@ixo/ui 0.0.22 → 0.0.24

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 (81) hide show
  1. package/dist/.vite/manifest.json +53 -53
  2. package/dist/{UsersSolid-DaQkEA44.js → UsersSolid-BAU7PbE4.js} +44 -64
  3. package/dist/UsersSolid-BAU7PbE4.js.map +1 -0
  4. package/dist/{UsersSolid-3ru3TJi-.cjs → UsersSolid-D60imcQv.cjs} +1 -21
  5. package/dist/UsersSolid-D60imcQv.cjs.map +1 -0
  6. package/dist/components/AIChatToolbar/index.d.ts +12 -0
  7. package/dist/components/AIChatToolbar/index.d.ts.map +1 -0
  8. package/dist/components/AppShellNavigation/components/MenuItem.d.ts +22 -0
  9. package/dist/components/AppShellNavigation/components/MenuItem.d.ts.map +1 -0
  10. package/dist/components/AppShellNavigation/components/NavigationItemSkeleton.d.ts +2 -0
  11. package/dist/components/AppShellNavigation/components/NavigationItemSkeleton.d.ts.map +1 -0
  12. package/dist/components/AppShellNavigation/components/RoomCategory.d.ts +10 -0
  13. package/dist/components/AppShellNavigation/components/RoomCategory.d.ts.map +1 -0
  14. package/dist/components/AppShellNavigation/components/RoomItem.d.ts +12 -0
  15. package/dist/components/AppShellNavigation/components/RoomItem.d.ts.map +1 -0
  16. package/dist/components/AppShellNavigation/components/SelectedIndicator.d.ts +2 -0
  17. package/dist/components/AppShellNavigation/components/SelectedIndicator.d.ts.map +1 -0
  18. package/dist/components/AppShellNavigation/components/SpaceItem.d.ts +10 -0
  19. package/dist/components/AppShellNavigation/components/SpaceItem.d.ts.map +1 -0
  20. package/dist/components/AppShellNavigation/index.d.ts +9 -35
  21. package/dist/components/AppShellNavigation/index.d.ts.map +1 -1
  22. package/dist/components/Base/Flex.d.ts.map +1 -1
  23. package/dist/components/FloatingInput/index.d.ts.map +1 -1
  24. package/dist/{components-DiauxYoY.js → components-BeF0rZJR.js} +310 -195
  25. package/dist/components-BeF0rZJR.js.map +1 -0
  26. package/dist/{components-BNly6Y-x.cjs → components-Disquhlg.cjs} +242 -127
  27. package/dist/components-Disquhlg.cjs.map +1 -0
  28. package/dist/export/components.cjs +2 -1
  29. package/dist/export/components.cjs.map +1 -1
  30. package/dist/export/components.d.ts +5 -1
  31. package/dist/export/components.d.ts.map +1 -1
  32. package/dist/export/components.mjs +68 -67
  33. package/dist/export/icons/index.cjs +21 -2
  34. package/dist/export/icons/index.cjs.map +1 -1
  35. package/dist/export/icons/index.mjs +65 -46
  36. package/dist/export/icons/index.mjs.map +1 -1
  37. package/dist/{index-Dg7GVuRa.cjs → index-0QYujsdV.cjs} +2 -2
  38. package/dist/{index-Dg7GVuRa.cjs.map → index-0QYujsdV.cjs.map} +1 -1
  39. package/dist/{index-CFSb7f2s.js → index-7TeP_0qf.js} +2 -2
  40. package/dist/{index-CFSb7f2s.js.map → index-7TeP_0qf.js.map} +1 -1
  41. package/dist/{index-yCF1_HyR.js → index-BB7TxyW2.js} +3 -3
  42. package/dist/{index-yCF1_HyR.js.map → index-BB7TxyW2.js.map} +1 -1
  43. package/dist/{index-BEPf-oww.js → index-BDHM2tcG.js} +3 -3
  44. package/dist/{index-BEPf-oww.js.map → index-BDHM2tcG.js.map} +1 -1
  45. package/dist/{index-fNXZD1uS.js → index-BNQTKXpP.js} +2 -2
  46. package/dist/{index-fNXZD1uS.js.map → index-BNQTKXpP.js.map} +1 -1
  47. package/dist/{index-B-OdChcI.cjs → index-BTd7RekU.cjs} +3 -3
  48. package/dist/{index-B-OdChcI.cjs.map → index-BTd7RekU.cjs.map} +1 -1
  49. package/dist/{index-BYSvOzsh.js → index-Bbq_TLZu.js} +2 -2
  50. package/dist/{index-BYSvOzsh.js.map → index-Bbq_TLZu.js.map} +1 -1
  51. package/dist/{index-BSnZaaec.js → index-BcSuJ_FA.js} +2 -2
  52. package/dist/{index-BSnZaaec.js.map → index-BcSuJ_FA.js.map} +1 -1
  53. package/dist/{index-CvlLzI5F.cjs → index-C68z2dhs.cjs} +2 -2
  54. package/dist/{index-CvlLzI5F.cjs.map → index-C68z2dhs.cjs.map} +1 -1
  55. package/dist/{index-DSQZMIiq.cjs → index-CFEGoEU_.cjs} +2 -2
  56. package/dist/{index-DSQZMIiq.cjs.map → index-CFEGoEU_.cjs.map} +1 -1
  57. package/dist/{index-D1qxMoa7.js → index-CHeVp24g.js} +3 -3
  58. package/dist/{index-D1qxMoa7.js.map → index-CHeVp24g.js.map} +1 -1
  59. package/dist/{index-DkxiMwu0.cjs → index-CtdwAmSJ.cjs} +3 -3
  60. package/dist/{index-DkxiMwu0.cjs.map → index-CtdwAmSJ.cjs.map} +1 -1
  61. package/dist/{index-tbar1igU.cjs → index-D03Y_bB5.cjs} +2 -2
  62. package/dist/{index-tbar1igU.cjs.map → index-D03Y_bB5.cjs.map} +1 -1
  63. package/dist/{index-CgJoa5CY.js → index-D6Ji1bWd.js} +2 -2
  64. package/dist/{index-CgJoa5CY.js.map → index-D6Ji1bWd.js.map} +1 -1
  65. package/dist/{index-DiaEMA08.js → index-D7PlJiJR.js} +2 -2
  66. package/dist/{index-DiaEMA08.js.map → index-D7PlJiJR.js.map} +1 -1
  67. package/dist/{index-V6nXvrtz.js → index-D_iadqlc.js} +2 -2
  68. package/dist/{index-V6nXvrtz.js.map → index-D_iadqlc.js.map} +1 -1
  69. package/dist/{index-DWhpg1N7.cjs → index-Dj5QSN85.cjs} +2 -2
  70. package/dist/{index-DWhpg1N7.cjs.map → index-Dj5QSN85.cjs.map} +1 -1
  71. package/dist/{index-C6QZLB5t.cjs → index-OFqzHKxE.cjs} +2 -2
  72. package/dist/{index-C6QZLB5t.cjs.map → index-OFqzHKxE.cjs.map} +1 -1
  73. package/dist/{index-BRD5ffg_.cjs → index-vMylc9wu.cjs} +3 -3
  74. package/dist/{index-BRD5ffg_.cjs.map → index-vMylc9wu.cjs.map} +1 -1
  75. package/dist/{index-CyALadsH.cjs → index-vjtTGg1m.cjs} +2 -2
  76. package/dist/{index-CyALadsH.cjs.map → index-vjtTGg1m.cjs.map} +1 -1
  77. package/package.json +1 -1
  78. package/dist/UsersSolid-3ru3TJi-.cjs.map +0 -1
  79. package/dist/UsersSolid-DaQkEA44.js.map +0 -1
  80. package/dist/components-BNly6Y-x.cjs.map +0 -1
  81. package/dist/components-DiauxYoY.js.map +0 -1
@@ -1,15 +1,15 @@
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, U as User, M as MinusCircleSolid, d as SettingsBarSolid, e as AngleRightSolid, f as ArrowLeftSolid, G as Globe, h as PanelLeftSolid, i as AngleLeftSolid, D as Dashboard, j as Groups, k as UserCircleSolid, l as Assets$1, m as Claims, n as Accounts, H as HistorySolid, o as LinkedResources, p as Proposals, I as ImpactCredits, q as GoTo, r as Share, s as PiePiece, t as ImpactCertificates, u as CommentDotsSolid, v as CommentAltSolid, w as MicrophoneSolid, x as Command, y as ArrowCircleRightSolid, z as Protocols, B as Investments, O as Oracles, F as Projects, J as Daos, K as Star, 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-DaQkEA44.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, 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";
5
5
  import { useState, useCallback, useRef, useEffect, Suspense, lazy, forwardRef, useId, useMemo, 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, AppShell, Stack as Stack$1, Center, Divider, Badge as Badge$1 } 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, Divider } 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
11
  import { u as useUITheme } from "./useUITheme-7i8NJ2FG.js";
12
- import { useResizeObserver, useDisclosure, useHover } from "@mantine/hooks";
12
+ import { useResizeObserver, useHover, useDisclosure } from "@mantine/hooks";
13
13
  import Markdown from "react-markdown";
14
14
  import remarkGfm from "remark-gfm";
15
15
  import { useCombobox, useSelect } from "downshift";
@@ -774,8 +774,8 @@ function AccordionTable({
774
774
  }
775
775
  );
776
776
  }
777
- const Header$3 = lazy(() => import("./index-BEPf-oww.js"));
778
- const Footer = lazy(() => import("./index-D1qxMoa7.js"));
777
+ const Header$3 = lazy(() => import("./index-BDHM2tcG.js"));
778
+ const Footer = lazy(() => import("./index-CHeVp24g.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-DiaEMA08.js"));
862
+ const Header$2 = lazy(() => import("./index-D7PlJiJR.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-BSnZaaec.js"));
1297
+ const Badge = lazy(() => import("./index-BcSuJ_FA.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);
@@ -1898,34 +1898,35 @@ const Flex = forwardRef(
1898
1898
  children,
1899
1899
  ...props
1900
1900
  }, ref) => {
1901
- return /* @__PURE__ */ jsx(
1902
- "div",
1903
- {
1904
- ref,
1905
- ...props,
1906
- style: {
1907
- display: "flex",
1908
- flexDirection: direction,
1909
- alignItems: align,
1910
- justifyContent: justify,
1911
- gap,
1912
- margin: m,
1913
- marginTop: mt || my,
1914
- marginBottom: mb || my,
1915
- marginLeft: ml || mx,
1916
- marginRight: mr || mx,
1917
- padding: p,
1918
- paddingTop: pt || py,
1919
- paddingBottom: pb || py,
1920
- paddingLeft: pl || px,
1921
- paddingRight: pr || px,
1922
- backgroundColor: bg,
1923
- borderRadius: radius,
1924
- ...props.style
1925
- },
1926
- children
1927
- }
1928
- );
1901
+ const hasIndividualPadding = pt !== 0 || pb !== 0 || pl !== 0 || pr !== 0 || px !== 0 || py !== 0;
1902
+ const hasIndividualMargin = mt !== 0 || mb !== 0 || ml !== 0 || mr !== 0 || mx !== 0 || my !== 0;
1903
+ const style = {
1904
+ display: "flex",
1905
+ flexDirection: direction,
1906
+ alignItems: align,
1907
+ justifyContent: justify,
1908
+ gap,
1909
+ backgroundColor: bg,
1910
+ borderRadius: radius,
1911
+ ...props.style
1912
+ };
1913
+ if (hasIndividualMargin) {
1914
+ if (mt !== 0 || my !== 0) style.marginTop = mt || my;
1915
+ if (mb !== 0 || my !== 0) style.marginBottom = mb || my;
1916
+ if (ml !== 0 || mx !== 0) style.marginLeft = ml || mx;
1917
+ if (mr !== 0 || mx !== 0) style.marginRight = mr || mx;
1918
+ } else if (m !== 0) {
1919
+ style.margin = m;
1920
+ }
1921
+ if (hasIndividualPadding) {
1922
+ if (pt !== 0 || py !== 0) style.paddingTop = pt || py;
1923
+ if (pb !== 0 || py !== 0) style.paddingBottom = pb || py;
1924
+ if (pl !== 0 || px !== 0) style.paddingLeft = pl || px;
1925
+ if (pr !== 0 || px !== 0) style.paddingRight = pr || px;
1926
+ } else if (p !== 0) {
1927
+ style.padding = p;
1928
+ }
1929
+ return /* @__PURE__ */ jsx("div", { ref, ...props, style, children });
1929
1930
  }
1930
1931
  );
1931
1932
  Flex.displayName = "Flex";
@@ -2101,6 +2102,52 @@ function AIInputBar({ placeholder, icon, disabledInput, disabledButton, valueInp
2101
2102
  }
2102
2103
  );
2103
2104
  }
2105
+ function AIChatToolbar({ onClose, onHistoryClick, onPlusClick, onHistoryClose, isHistoryOpened, oracleModel, sessionTitle }) {
2106
+ const theme = useUITheme();
2107
+ return /* @__PURE__ */ jsxs(Flex, { bg: theme.bg.navScaled, py: 16, justify: "space-between", align: "center", children: [
2108
+ /* @__PURE__ */ jsxs(Flex, { gap: 6, align: "center", children: [
2109
+ sessionTitle && /* @__PURE__ */ jsx(Typography.Text, { color: "overPicture", size: "s", children: sessionTitle }),
2110
+ oracleModel && /* @__PURE__ */ jsx(Badge$1, { fw: 300, size: "sm", fz: 12, bg: theme.neutral.transparent10, tt: "initial", children: oracleModel })
2111
+ ] }),
2112
+ /* @__PURE__ */ jsx(Flex, { gap: 6, align: "center", justify: "flex-end", children: isHistoryOpened ? /* @__PURE__ */ jsx(
2113
+ Center,
2114
+ {
2115
+ sx: {
2116
+ cursor: "pointer",
2117
+ borderRadius: 8,
2118
+ transition: "background 0.15s",
2119
+ background: theme.bg.navIconsBg,
2120
+ "&:hover": {
2121
+ background: theme.neutral.transparent30
2122
+ }
2123
+ },
2124
+ p: 4,
2125
+ onClick: onHistoryClose,
2126
+ children: /* @__PURE__ */ jsx(ArrowLeftSolid, { size: 18 })
2127
+ }
2128
+ ) : /* @__PURE__ */ jsxs(Fragment, { children: [
2129
+ /* @__PURE__ */ jsx(Center, { sx: { cursor: "pointer", borderRadius: 24 }, onClick: onPlusClick, children: /* @__PURE__ */ jsx(PlusSolid, { size: 18 }) }),
2130
+ /* @__PURE__ */ jsx(Center, { sx: { cursor: "pointer", borderRadius: 24 }, onClick: onHistoryClick, children: /* @__PURE__ */ jsx(HistorySolid, { size: 18 }) }),
2131
+ /* @__PURE__ */ jsx(
2132
+ Center,
2133
+ {
2134
+ sx: {
2135
+ cursor: "pointer",
2136
+ borderRadius: 8,
2137
+ transition: "background 0.15s",
2138
+ background: theme.bg.navIconsBg,
2139
+ "&:hover": {
2140
+ background: theme.neutral.transparent30
2141
+ }
2142
+ },
2143
+ p: 4,
2144
+ onClick: onClose,
2145
+ children: /* @__PURE__ */ jsx(Close, { size: 18 })
2146
+ }
2147
+ )
2148
+ ] }) })
2149
+ ] });
2150
+ }
2104
2151
  function Avatar({ src, rounded = true, size = 62, did }) {
2105
2152
  const css2 = {
2106
2153
  width: size,
@@ -2231,46 +2278,115 @@ function AsideResizable({ children, asideCollapsed = false, onAsideToggle, width
2231
2278
  children
2232
2279
  ] });
2233
2280
  }
2234
- function SelectedIndicator() {
2281
+ function NavigationItemSkeleton() {
2235
2282
  const theme = useUITheme();
2236
- return /* @__PURE__ */ jsx(
2237
- "div",
2283
+ return /* @__PURE__ */ jsxs(
2284
+ Flex,
2238
2285
  {
2286
+ align: "center",
2287
+ gap: 8,
2288
+ pl: 12,
2289
+ pr: 12,
2290
+ py: 6,
2239
2291
  style: {
2240
- position: "absolute",
2241
- left: -8,
2242
- width: 4,
2243
- height: 30,
2244
- backgroundColor: theme.neutral.whiteFull,
2245
- borderRadius: 4
2246
- }
2292
+ borderRadius: 8,
2293
+ backgroundColor: theme.bg.navIconsBg
2294
+ },
2295
+ children: [
2296
+ /* @__PURE__ */ jsx(Flex, { align: "center", gap: 4, style: { flex: 1 }, children: /* @__PURE__ */ jsx(
2297
+ Skeleton,
2298
+ {
2299
+ height: "15px",
2300
+ radius: "xl",
2301
+ sx: {
2302
+ "::before": { opacity: 0 },
2303
+ "::after": { opacity: 1 }
2304
+ },
2305
+ style: { opacity: 0.2 }
2306
+ }
2307
+ ) }),
2308
+ /* @__PURE__ */ jsx(
2309
+ Skeleton,
2310
+ {
2311
+ height: 16,
2312
+ width: 16,
2313
+ radius: 4,
2314
+ sx: {
2315
+ "::before": { opacity: 0 },
2316
+ "::after": { opacity: 1 }
2317
+ },
2318
+ style: { opacity: 0.3 }
2319
+ }
2320
+ )
2321
+ ]
2247
2322
  }
2248
2323
  );
2249
2324
  }
2250
- function SpaceItem({ icon, id, selectedSpace, onClick }) {
2325
+ function RoomItem({ room }) {
2251
2326
  const { hovered, ref } = useHover();
2252
2327
  const theme = useUITheme();
2253
- const isSelected = selectedSpace === id;
2254
2328
  return /* @__PURE__ */ jsxs(
2255
- Center,
2329
+ Flex,
2256
2330
  {
2257
2331
  ref,
2258
- sx: {
2332
+ align: "center",
2333
+ gap: 8,
2334
+ px: 12,
2335
+ py: 4,
2336
+ ml: 16,
2337
+ style: {
2259
2338
  cursor: "pointer",
2260
- borderRadius: 24
2339
+ borderRadius: 6,
2340
+ backgroundColor: room.isActive || hovered ? theme.neutral.transparent10 : "transparent",
2341
+ transform: hovered ? "translateX(2px)" : "translateX(0px)",
2342
+ transition: "all 0.15s ease"
2261
2343
  },
2262
- pos: "relative",
2263
- bg: hovered ? theme.neutral.transparent30 : theme.bg.navIconsBg,
2264
- mih: 40,
2265
- w: 40,
2266
- onClick: () => onClick(id),
2344
+ onClick: () => room.onClick(room.id),
2267
2345
  children: [
2268
- typeof icon === "string" ? /* @__PURE__ */ jsx(Image, { radius: 24, src: icon, w: 32, h: 32 }) : icon,
2269
- isSelected && /* @__PURE__ */ jsx(SelectedIndicator, {})
2346
+ /* @__PURE__ */ jsx(room.icon, { size: 16, color: "secondary" }),
2347
+ /* @__PURE__ */ jsx(Text$1, { fz: 13, c: theme.text.secondary, children: room.name })
2270
2348
  ]
2271
2349
  }
2272
2350
  );
2273
2351
  }
2352
+ function RoomCategory({ category }) {
2353
+ const { hovered, ref } = useHover();
2354
+ const theme = useUITheme();
2355
+ const { value, toggle: toggle2 } = useToggle(false);
2356
+ return /* @__PURE__ */ jsxs(Stack$1, { gap: 2, children: [
2357
+ /* @__PURE__ */ jsxs(
2358
+ Flex,
2359
+ {
2360
+ ref,
2361
+ align: "center",
2362
+ justify: "space-between",
2363
+ px: 12,
2364
+ py: 4,
2365
+ style: {
2366
+ cursor: "pointer",
2367
+ borderRadius: 6,
2368
+ backgroundColor: hovered ? theme.neutral.transparent50 : "transparent",
2369
+ transition: "all 0.15s ease"
2370
+ },
2371
+ onClick: toggle2,
2372
+ children: [
2373
+ /* @__PURE__ */ jsx(Text$1, { fz: 12, c: theme.neutral.lightGray, children: category.name }),
2374
+ /* @__PURE__ */ jsx(
2375
+ Center,
2376
+ {
2377
+ sx: {
2378
+ transform: value ? "rotate(-90deg)" : "rotate(0deg)",
2379
+ transition: "transform 0.2s ease"
2380
+ },
2381
+ children: /* @__PURE__ */ jsx(AngleLeftSolid, { size: 12, color: "secondary" })
2382
+ }
2383
+ )
2384
+ ]
2385
+ }
2386
+ ),
2387
+ !value && /* @__PURE__ */ jsx(Stack$1, { gap: 1, children: category.rooms.map((room) => /* @__PURE__ */ jsx(RoomItem, { room }, room.id)) })
2388
+ ] });
2389
+ }
2274
2390
  function MenuItem({ item, onMenuItemClick, depth = 0 }) {
2275
2391
  const { hovered, ref } = useHover();
2276
2392
  const theme = useUITheme();
@@ -2348,71 +2464,46 @@ function MenuItem({ item, onMenuItemClick, depth = 0 }) {
2348
2464
  hasChildren && isExpanded && /* @__PURE__ */ jsx(Stack$1, { gap: 1, children: item.children?.map((childItem) => /* @__PURE__ */ jsx(MenuItem, { item: childItem, onMenuItemClick, depth: depth + 1 }, childItem.id)) })
2349
2465
  ] });
2350
2466
  }
2351
- function RoomItem({ room }) {
2467
+ function SelectedIndicator() {
2468
+ const theme = useUITheme();
2469
+ return /* @__PURE__ */ jsx(
2470
+ "div",
2471
+ {
2472
+ style: {
2473
+ position: "absolute",
2474
+ left: -8,
2475
+ width: 4,
2476
+ height: 30,
2477
+ backgroundColor: theme.neutral.whiteFull,
2478
+ borderRadius: 4
2479
+ }
2480
+ }
2481
+ );
2482
+ }
2483
+ function SpaceItem({ icon, id, selectedSpace, onClick }) {
2352
2484
  const { hovered, ref } = useHover();
2353
2485
  const theme = useUITheme();
2486
+ const isSelected = selectedSpace === id;
2354
2487
  return /* @__PURE__ */ jsxs(
2355
- Flex,
2488
+ Center,
2356
2489
  {
2357
2490
  ref,
2358
- align: "center",
2359
- gap: 8,
2360
- px: 12,
2361
- py: 4,
2362
- ml: 16,
2363
- style: {
2491
+ sx: {
2364
2492
  cursor: "pointer",
2365
- borderRadius: 6,
2366
- backgroundColor: room.isActive || hovered ? theme.neutral.transparent10 : "transparent",
2367
- transform: hovered ? "translateX(2px)" : "translateX(0px)",
2368
- transition: "all 0.15s ease"
2493
+ borderRadius: 24
2369
2494
  },
2370
- onClick: () => room.onClick(room.id),
2495
+ pos: "relative",
2496
+ bg: hovered ? theme.neutral.transparent30 : theme.bg.navIconsBg,
2497
+ mih: 40,
2498
+ w: 40,
2499
+ onClick: () => onClick(id),
2371
2500
  children: [
2372
- /* @__PURE__ */ jsx(room.icon, { size: 16, color: "secondary" }),
2373
- /* @__PURE__ */ jsx(Text$1, { fz: 13, c: theme.text.secondary, children: room.name })
2501
+ typeof icon === "string" ? /* @__PURE__ */ jsx(Image, { radius: 24, src: icon, w: 32, h: 32 }) : icon,
2502
+ isSelected && /* @__PURE__ */ jsx(SelectedIndicator, {})
2374
2503
  ]
2375
2504
  }
2376
2505
  );
2377
2506
  }
2378
- function RoomCategory({ category }) {
2379
- const { hovered, ref } = useHover();
2380
- const theme = useUITheme();
2381
- const { value, toggle: toggle2 } = useToggle(false);
2382
- return /* @__PURE__ */ jsxs(Stack$1, { gap: 2, children: [
2383
- /* @__PURE__ */ jsxs(
2384
- Flex,
2385
- {
2386
- ref,
2387
- align: "center",
2388
- justify: "space-between",
2389
- px: 12,
2390
- py: 4,
2391
- style: {
2392
- cursor: "pointer",
2393
- borderRadius: 6,
2394
- backgroundColor: hovered ? theme.neutral.transparent50 : "transparent",
2395
- transition: "all 0.15s ease"
2396
- },
2397
- onClick: toggle2,
2398
- children: [
2399
- /* @__PURE__ */ jsx(Text$1, { fz: 12, c: theme.neutral.lightGray, children: category.name }),
2400
- /* @__PURE__ */ jsx(
2401
- Center,
2402
- {
2403
- sx: {
2404
- transform: value ? "rotate(-90deg)" : "rotate(0deg)",
2405
- transition: "transform 0.2s ease"
2406
- },
2407
- children: /* @__PURE__ */ jsx(AngleLeftSolid, { size: 12, color: "secondary" })
2408
- }
2409
- )
2410
- ]
2411
- }
2412
- ),
2413
- !value && /* @__PURE__ */ jsx(Stack$1, { gap: 1, children: category.rooms.map((room) => /* @__PURE__ */ jsx(RoomItem, { room }, room.id)) })
2414
- ] });
2415
- }
2416
2507
  function AppShellNavigation({
2417
2508
  spaces,
2418
2509
  pageItem,
@@ -2433,9 +2524,14 @@ function AppShellNavigation({
2433
2524
  asideCollapsed = true,
2434
2525
  onAsideToggle,
2435
2526
  onMaxExpand,
2436
- children
2527
+ onAiOpen,
2528
+ isAiOpened,
2529
+ isAiBtnVisible,
2530
+ loading,
2531
+ children,
2532
+ aiNavbarContent
2437
2533
  }) {
2438
- const [navbarCollapsed, { toggle: toggleNavbar }] = useDisclosure(true);
2534
+ const [isNavbarNotCollapsed, { toggle: toggleNavbar }] = useDisclosure(true);
2439
2535
  const [asideWidth, setAsideWidth] = useState(450);
2440
2536
  const theme = useUITheme();
2441
2537
  return /* @__PURE__ */ jsxs(
@@ -2444,7 +2540,8 @@ function AppShellNavigation({
2444
2540
  withBorder: false,
2445
2541
  styles: {
2446
2542
  navbar: {
2447
- background: theme.bg.navScaled
2543
+ background: theme.bg.navScaled,
2544
+ transition: "width 0.3s ease"
2448
2545
  },
2449
2546
  aside: {
2450
2547
  background: theme.bg.navScaled
@@ -2452,7 +2549,7 @@ function AppShellNavigation({
2452
2549
  },
2453
2550
  bg: theme.bg.centralCanvasBg,
2454
2551
  navbar: {
2455
- width: navbarCollapsed ? 300 : 56,
2552
+ width: isNavbarNotCollapsed ? isAiOpened ? 450 : 300 : 56,
2456
2553
  breakpoint: "sm"
2457
2554
  },
2458
2555
  aside: {
@@ -2511,23 +2608,39 @@ function AppShellNavigation({
2511
2608
  onMinusSpaceClick && /* @__PURE__ */ jsx(Center, { sx: { cursor: "pointer", borderRadius: 24 }, bg: theme.bg.navIconsBg, h: 40, w: 40, onClick: onMinusSpaceClick, children: /* @__PURE__ */ jsx(MinusCircleSolid, { color: "secondary" }) }),
2512
2609
  /* @__PURE__ */ jsxs(Stack$1, { align: "center", gap: 8, children: [
2513
2610
  /* @__PURE__ */ jsx(Divider, { w: 40, mx: 10, color: theme.neutral.transparent10 }),
2514
- /* @__PURE__ */ jsx(Center, { sx: { cursor: "pointer", borderRadius: 24 }, bg: theme.bg.navIconsBg, h: 40, w: 40, onClick: onSettingsIconClick, children: /* @__PURE__ */ jsx(SettingsBarSolid, { size: 22, color: "secondary" }) }),
2515
- !navbarCollapsed && /* @__PURE__ */ jsx(Center, { sx: { cursor: "pointer", borderRadius: 24 }, bg: theme.bg.navIconsBg, h: 40, w: 40, onClick: toggleNavbar, children: /* @__PURE__ */ jsx(AngleRightSolid, { color: "secondary" }) })
2611
+ /* @__PURE__ */ jsx(Center, { sx: { cursor: "pointer", borderRadius: 24 }, bg: theme.bg.navIconsBg, h: 40, w: 40, onClick: onSettingsIconClick, children: /* @__PURE__ */ jsx(SettingsBarSolid, { size: 22, color: "secondary" }) })
2516
2612
  ] })
2517
2613
  ] }),
2518
- navbarCollapsed && /* @__PURE__ */ jsxs(Stack$1, { justify: "space-between", w: "100%", pt: 16, pb: 10, px: 12, children: [
2614
+ isAiOpened && isNavbarNotCollapsed && aiNavbarContent,
2615
+ isNavbarNotCollapsed && !isAiOpened && /* @__PURE__ */ jsxs(Stack$1, { justify: "space-between", w: "100%", pt: 16, pb: 10, px: 12, children: [
2519
2616
  /* @__PURE__ */ jsxs(Stack$1, { gap: 5, children: [
2520
2617
  /* @__PURE__ */ jsxs(Flex, { mb: 24, style: { width: "100%" }, justify: "space-between", align: "center", children: [
2521
2618
  /* @__PURE__ */ jsxs(Flex, { align: "center", gap: "10px", children: [
2522
2619
  isBackButtonVisible ? /* @__PURE__ */ jsx(Center, { onClick: onBackClick, sx: { borderRadius: 4, cursor: "pointer", padding: 2, background: theme.bg.navIconsBg }, children: /* @__PURE__ */ jsx(ArrowLeftSolid, { size: 18 }) }) : /* @__PURE__ */ jsx(Center, { sx: { borderRadius: 4, padding: 2, background: theme.bg.navIconsBg }, children: pageItem.pageIcon ? /* @__PURE__ */ jsx(pageItem.pageIcon, { size: 18 }) : /* @__PURE__ */ jsx(Globe, { size: 18 }) }),
2523
2620
  /* @__PURE__ */ jsx(Text$1, { lh: 1, c: theme.text.overPicture, children: pageItem.pageTitle || "Unknown" })
2524
2621
  ] }),
2525
- /* @__PURE__ */ jsx(Flex, { gap: 12, align: "center", children: /* @__PURE__ */ jsx(Center, { sx: { cursor: "pointer" }, onClick: toggleNavbar, children: /* @__PURE__ */ jsx(PanelLeftSolid, { size: 22, color: "secondary" }) }) })
2622
+ isAiBtnVisible && !isAiOpened && /* @__PURE__ */ jsx(
2623
+ Center,
2624
+ {
2625
+ sx: {
2626
+ cursor: "pointer",
2627
+ borderRadius: 8,
2628
+ transition: "background 0.15s",
2629
+ background: theme.bg.navIconsBg,
2630
+ "&:hover": {
2631
+ background: theme.neutral.transparent30
2632
+ }
2633
+ },
2634
+ p: 4,
2635
+ onClick: onAiOpen,
2636
+ children: /* @__PURE__ */ jsx(Assistant, { size: 18, color: "primary" })
2637
+ }
2638
+ )
2526
2639
  ] }),
2527
- menuItems?.map((item) => /* @__PURE__ */ jsx(MenuItem, { onMenuItemClick, item }, item.id)),
2640
+ loading ? /* @__PURE__ */ jsx(Stack$1, { gap: 5, children: Array.from({ length: 6 }).map((_, idx) => /* @__PURE__ */ jsx(NavigationItemSkeleton, {}, idx)) }) : menuItems?.map((item) => /* @__PURE__ */ jsx(MenuItem, { onMenuItemClick, item }, item.id)),
2528
2641
  roomCategories && roomCategories.length > 0 && /* @__PURE__ */ jsx(Stack$1, { gap: 8, mt: 16, children: roomCategories.map((category) => /* @__PURE__ */ jsx(RoomCategory, { category }, category.id)) })
2529
2642
  ] }),
2530
- /* @__PURE__ */ jsx(Stack$1, { gap: 5, children: footerMenuItems?.map((item) => /* @__PURE__ */ jsx(MenuItem, { onMenuItemClick, item }, item.id)) })
2643
+ /* @__PURE__ */ jsx(Stack$1, { gap: 5, children: loading ? Array.from({ length: 2 }).map((_, idx) => /* @__PURE__ */ jsx(NavigationItemSkeleton, {}, idx)) : footerMenuItems?.map((item) => /* @__PURE__ */ jsx(MenuItem, { onMenuItemClick, item }, item.id)) })
2531
2644
  ] })
2532
2645
  ] }) }),
2533
2646
  /* @__PURE__ */ jsx(AppShell.Main, { children }),
@@ -3058,7 +3171,7 @@ function OracleMessage({ oracleName, message }) {
3058
3171
  }
3059
3172
  function UserMessage({ message, sender }) {
3060
3173
  const theme = useUITheme();
3061
- return /* @__PURE__ */ jsxs(Box, { w: "fit-content", bg: theme.colors.focusTransparent10, sx: { borderRadius: 16 }, py: 12, px: 16, mb: 32, children: [
3174
+ return /* @__PURE__ */ jsxs(Box, { w: "fit-content", bg: theme.bg.navIconsBg, sx: { borderRadius: 16 }, py: 12, px: 16, mb: 32, children: [
3062
3175
  /* @__PURE__ */ jsx(Text$1, { c: theme.text.overPicture, fz: 12, children: sender }),
3063
3176
  /* @__PURE__ */ jsx(Text$1, { c: theme.text.overPicture, mt: 10, sx: { wordBreak: "break-all" }, children: message }, message)
3064
3177
  ] });
@@ -4378,7 +4491,8 @@ function FloatingInput({
4378
4491
  className,
4379
4492
  css: () => ({
4380
4493
  backgroundColor: "transparent",
4381
- borderRadius: 24,
4494
+ borderRadius: 20,
4495
+ outline: `1px solid ${theme.colors.focus}`,
4382
4496
  paddingTop: 16,
4383
4497
  position: "relative",
4384
4498
  animation: `${fadeIn} 0.3s ease-out`,
@@ -4475,7 +4589,7 @@ function FloatingInput({
4475
4589
  Box,
4476
4590
  {
4477
4591
  p: 16,
4478
- bg: theme.bg.glassmorphics,
4592
+ bg: theme.bg.navSpaces,
4479
4593
  w: 340,
4480
4594
  pos: "absolute",
4481
4595
  left: "50%",
@@ -5509,13 +5623,13 @@ function ActionButton({ onClick, left, right }) {
5509
5623
  }
5510
5624
  );
5511
5625
  }
5512
- const MainAction = lazy(() => import("./index-BYSvOzsh.js"));
5513
- const Header$1 = lazy(() => import("./index-fNXZD1uS.js"));
5514
- const Content = lazy(() => import("./index-V6nXvrtz.js"));
5626
+ const MainAction = lazy(() => import("./index-Bbq_TLZu.js"));
5627
+ const Header$1 = lazy(() => import("./index-BNQTKXpP.js"));
5628
+ const Content = lazy(() => import("./index-D_iadqlc.js"));
5515
5629
  const Map = lazy(() => import("./index-D5Ufmf-s.js"));
5516
5630
  const CustomContent = lazy(() => import("./index-DsYjW_4y.js"));
5517
- const Assets = lazy(() => import("./index-CFSb7f2s.js"));
5518
- const Actions = lazy(() => import("./index-yCF1_HyR.js"));
5631
+ const Assets = lazy(() => import("./index-7TeP_0qf.js"));
5632
+ const Actions = lazy(() => import("./index-BB7TxyW2.js"));
5519
5633
  const HOVER_BORDER_WIDTH = 1;
5520
5634
  function SodaCardCmp({ numSelected = 0, expanded = true, mainAction, header, content, map, customContent, customFooter, actions, assets, onClick }, ref) {
5521
5635
  const wrapperRef = useRef(null);
@@ -10737,72 +10851,73 @@ function NavigationBar({
10737
10851
  ] });
10738
10852
  }
10739
10853
  export {
10740
- GroupActivity as $,
10854
+ FilterTags as $,
10741
10855
  Avatar as A,
10742
10856
  Button as B,
10743
10857
  CARD_HEADER_HEIGHT as C,
10744
- CardUserFollowUp as D,
10745
- Chart$1 as E,
10858
+ CardOutput as D,
10859
+ CardUserFollowUp as E,
10746
10860
  FeedbackMessage as F,
10747
- Checkbox as G,
10748
- CheckboxGroup as H,
10861
+ Chart$1 as G,
10862
+ Checkbox as H,
10749
10863
  IconButton as I,
10750
- ComboBox as J,
10751
- DomainToolbar as K,
10864
+ CheckboxGroup as J,
10865
+ ComboBox as K,
10752
10866
  Loader as L,
10753
10867
  MoreMenu as M,
10754
- DropDown as N,
10868
+ DomainToolbar as N,
10755
10869
  OracleMessage as O,
10756
- DomainToolbarTypes as P,
10757
- FloatingInput as Q,
10758
- EcosystemCard as R,
10870
+ DropDown as P,
10871
+ DomainToolbarTypes as Q,
10872
+ FloatingInput as R,
10759
10873
  Spacer as S,
10760
10874
  Typography as T,
10761
10875
  UserMessage as U,
10762
- EntityList as V,
10763
- Event as W,
10764
- ExpandableButton as X,
10765
- FeaturedCard as Y,
10766
- FilterDropDown as Z,
10767
- FilterTags as _,
10876
+ EcosystemCard as V,
10877
+ EntityList as W,
10878
+ Event as X,
10879
+ ExpandableButton as Y,
10880
+ FeaturedCard as Z,
10881
+ FilterDropDown as _,
10768
10882
  Tag as a,
10769
- GroupSelector as a0,
10770
- HandlerSodaCard as a1,
10771
- HtmlRender as a2,
10772
- ImpactCreditState as a3,
10773
- Layout as a4,
10774
- Modal as a5,
10775
- ModalSearch as a6,
10776
- ModalSheet as a7,
10777
- OracleProtocolsSelection as a8,
10778
- OracleReply as a9,
10779
- WorkspaceModal as aA,
10780
- PageTitle as aa,
10781
- PlanCard as ab,
10782
- Post as ac,
10783
- ProfileCard as ad,
10784
- ProfileMenu as ae,
10785
- ProposalCard as af,
10786
- RoundedButton as ag,
10787
- ServiceOffering as ah,
10788
- SearchInput as ai,
10789
- Select as aj,
10790
- SodaCard as ak,
10791
- SomeComponent as al,
10792
- Switch as am,
10793
- SwitchText as an,
10794
- Table as ao,
10795
- TableList as ap,
10796
- TabNavigation as aq,
10797
- TabSelector as ar,
10798
- TextInput as as,
10799
- UiProvider as at,
10800
- FloatingModal as au,
10801
- NavigationBar as av,
10802
- NavigationItem as aw,
10803
- DomainModal as ax,
10804
- DomainSelector as ay,
10805
- MoreModal as az,
10883
+ GroupActivity as a0,
10884
+ GroupSelector as a1,
10885
+ HandlerSodaCard as a2,
10886
+ HtmlRender as a3,
10887
+ ImpactCreditState as a4,
10888
+ Layout as a5,
10889
+ Modal as a6,
10890
+ ModalSearch as a7,
10891
+ ModalSheet as a8,
10892
+ OracleProtocolsSelection as a9,
10893
+ MoreModal as aA,
10894
+ WorkspaceModal as aB,
10895
+ OracleReply as aa,
10896
+ PageTitle as ab,
10897
+ PlanCard as ac,
10898
+ Post as ad,
10899
+ ProfileCard as ae,
10900
+ ProfileMenu as af,
10901
+ ProposalCard as ag,
10902
+ RoundedButton as ah,
10903
+ ServiceOffering as ai,
10904
+ SearchInput as aj,
10905
+ Select as ak,
10906
+ SodaCard as al,
10907
+ SomeComponent as am,
10908
+ Switch as an,
10909
+ SwitchText as ao,
10910
+ Table as ap,
10911
+ TableList as aq,
10912
+ TabNavigation as ar,
10913
+ TabSelector as as,
10914
+ TextInput as at,
10915
+ UiProvider as au,
10916
+ FloatingModal as av,
10917
+ NavigationBar as aw,
10918
+ NavigationItem as ax,
10919
+ DomainModal as ay,
10920
+ DomainSelector as az,
10806
10921
  ActionButton as b,
10807
10922
  cutText as c,
10808
10923
  Tooltip$1 as d,
@@ -10816,17 +10931,17 @@ export {
10816
10931
  ActivityCard as l,
10817
10932
  AIResponse as m,
10818
10933
  AIInputBar as n,
10819
- AppShellNavigation as o,
10820
- AvatarInfo as p,
10821
- ButtonBasic as q,
10822
- ButtonReadOnly as r,
10823
- ButtonSubtle as s,
10824
- Card as t,
10825
- CardAction as u,
10826
- CardEntity as v,
10827
- CardHeader as w,
10828
- CardHero as x,
10829
- CardSelector as y,
10830
- CardOutput as z
10934
+ AIChatToolbar as o,
10935
+ AppShellNavigation as p,
10936
+ AvatarInfo as q,
10937
+ ButtonBasic as r,
10938
+ ButtonReadOnly as s,
10939
+ ButtonSubtle as t,
10940
+ Card as u,
10941
+ CardAction as v,
10942
+ CardEntity as w,
10943
+ CardHeader as x,
10944
+ CardHero as y,
10945
+ CardSelector as z
10831
10946
  };
10832
- //# sourceMappingURL=components-DiauxYoY.js.map
10947
+ //# sourceMappingURL=components-BeF0rZJR.js.map