@ixo/ui 0.0.23 → 0.0.25

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 (82) 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/AsideResizable.d.ts.map +1 -1
  9. package/dist/components/AppShellNavigation/components/MenuItem.d.ts +22 -0
  10. package/dist/components/AppShellNavigation/components/MenuItem.d.ts.map +1 -0
  11. package/dist/components/AppShellNavigation/components/NavigationItemSkeleton.d.ts +2 -0
  12. package/dist/components/AppShellNavigation/components/NavigationItemSkeleton.d.ts.map +1 -0
  13. package/dist/components/AppShellNavigation/components/RoomCategory.d.ts +10 -0
  14. package/dist/components/AppShellNavigation/components/RoomCategory.d.ts.map +1 -0
  15. package/dist/components/AppShellNavigation/components/RoomItem.d.ts +12 -0
  16. package/dist/components/AppShellNavigation/components/RoomItem.d.ts.map +1 -0
  17. package/dist/components/AppShellNavigation/components/SelectedIndicator.d.ts +2 -0
  18. package/dist/components/AppShellNavigation/components/SelectedIndicator.d.ts.map +1 -0
  19. package/dist/components/AppShellNavigation/components/SpaceItem.d.ts +10 -0
  20. package/dist/components/AppShellNavigation/components/SpaceItem.d.ts.map +1 -0
  21. package/dist/components/AppShellNavigation/index.d.ts +8 -35
  22. package/dist/components/AppShellNavigation/index.d.ts.map +1 -1
  23. package/dist/components/Base/Flex.d.ts.map +1 -1
  24. package/dist/components/FloatingInput/index.d.ts.map +1 -1
  25. package/dist/{components-_MkU3jTT.cjs → components-B9IT9zsg.cjs} +236 -147
  26. package/dist/components-B9IT9zsg.cjs.map +1 -0
  27. package/dist/{components-BVa_RzKb.js → components-DOmagp83.js} +304 -215
  28. package/dist/components-DOmagp83.js.map +1 -0
  29. package/dist/export/components.cjs +2 -1
  30. package/dist/export/components.cjs.map +1 -1
  31. package/dist/export/components.d.ts +5 -1
  32. package/dist/export/components.d.ts.map +1 -1
  33. package/dist/export/components.mjs +68 -67
  34. package/dist/export/icons/index.cjs +21 -2
  35. package/dist/export/icons/index.cjs.map +1 -1
  36. package/dist/export/icons/index.mjs +65 -46
  37. package/dist/export/icons/index.mjs.map +1 -1
  38. package/dist/{index-CLUVUEvd.cjs → index-B1Zf0Hjl.cjs} +2 -2
  39. package/dist/{index-CLUVUEvd.cjs.map → index-B1Zf0Hjl.cjs.map} +1 -1
  40. package/dist/{index-BOTqKAb1.js → index-B5LLjyl8.js} +2 -2
  41. package/dist/{index-BOTqKAb1.js.map → index-B5LLjyl8.js.map} +1 -1
  42. package/dist/{index-DFEKL4SE.cjs → index-B9ziLU7I.cjs} +2 -2
  43. package/dist/{index-DFEKL4SE.cjs.map → index-B9ziLU7I.cjs.map} +1 -1
  44. package/dist/{index-1_x_N7t0.cjs → index-BPivpKfd.cjs} +2 -2
  45. package/dist/{index-1_x_N7t0.cjs.map → index-BPivpKfd.cjs.map} +1 -1
  46. package/dist/{index-Cbh2O8ES.cjs → index-BT80tCRs.cjs} +2 -2
  47. package/dist/{index-Cbh2O8ES.cjs.map → index-BT80tCRs.cjs.map} +1 -1
  48. package/dist/{index-DtDKdj1b.cjs → index-BZyPy7D0.cjs} +2 -2
  49. package/dist/{index-DtDKdj1b.cjs.map → index-BZyPy7D0.cjs.map} +1 -1
  50. package/dist/{index-xNbZOX1W.js → index-BwpX2MW2.js} +2 -2
  51. package/dist/{index-xNbZOX1W.js.map → index-BwpX2MW2.js.map} +1 -1
  52. package/dist/{index-BXJlwJE1.js → index-C8fwTdC7.js} +2 -2
  53. package/dist/{index-BXJlwJE1.js.map → index-C8fwTdC7.js.map} +1 -1
  54. package/dist/{index-BcQO39Nm.js → index-CETHt-ci.js} +2 -2
  55. package/dist/{index-BcQO39Nm.js.map → index-CETHt-ci.js.map} +1 -1
  56. package/dist/{index-DgTFhRUq.js → index-CRTmPwdM.js} +2 -2
  57. package/dist/{index-DgTFhRUq.js.map → index-CRTmPwdM.js.map} +1 -1
  58. package/dist/{index-CXPbR4SM.js → index-Cc5uWgPn.js} +3 -3
  59. package/dist/{index-CXPbR4SM.js.map → index-Cc5uWgPn.js.map} +1 -1
  60. package/dist/{index--LjJTdzu.js → index-CkxcB6nr.js} +3 -3
  61. package/dist/{index--LjJTdzu.js.map → index-CkxcB6nr.js.map} +1 -1
  62. package/dist/{index-CjplLGYu.js → index-CvR50Mc1.js} +3 -3
  63. package/dist/{index-CjplLGYu.js.map → index-CvR50Mc1.js.map} +1 -1
  64. package/dist/{index-BdurzkQE.cjs → index-DLhc3Hez.cjs} +3 -3
  65. package/dist/{index-BdurzkQE.cjs.map → index-DLhc3Hez.cjs.map} +1 -1
  66. package/dist/{index-C89NsxdP.js → index-DgjMTMef.js} +2 -2
  67. package/dist/{index-C89NsxdP.js.map → index-DgjMTMef.js.map} +1 -1
  68. package/dist/{index-DYBoPRXQ.js → index-DjBUFBDf.js} +2 -2
  69. package/dist/{index-DYBoPRXQ.js.map → index-DjBUFBDf.js.map} +1 -1
  70. package/dist/{index-paAq-KH4.cjs → index-Djs9vGMH.cjs} +2 -2
  71. package/dist/{index-paAq-KH4.cjs.map → index-Djs9vGMH.cjs.map} +1 -1
  72. package/dist/{index-B67PPfoW.cjs → index-cfms0zoI.cjs} +2 -2
  73. package/dist/{index-B67PPfoW.cjs.map → index-cfms0zoI.cjs.map} +1 -1
  74. package/dist/{index-Cjc9U9We.cjs → index-uieXu8xU.cjs} +3 -3
  75. package/dist/{index-Cjc9U9We.cjs.map → index-uieXu8xU.cjs.map} +1 -1
  76. package/dist/{index-BkHXIaln.cjs → index-xXJk2P5Y.cjs} +3 -3
  77. package/dist/{index-BkHXIaln.cjs.map → index-xXJk2P5Y.cjs.map} +1 -1
  78. package/package.json +1 -1
  79. package/dist/UsersSolid-3ru3TJi-.cjs.map +0 -1
  80. package/dist/UsersSolid-DaQkEA44.js.map +0 -1
  81. package/dist/components-BVa_RzKb.js.map +0 -1
  82. package/dist/components-_MkU3jTT.cjs.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, Skeleton, 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--LjJTdzu.js"));
778
- const Footer = lazy(() => import("./index-CXPbR4SM.js"));
777
+ const Header$3 = lazy(() => import("./index-CkxcB6nr.js"));
778
+ const Footer = lazy(() => import("./index-Cc5uWgPn.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-BOTqKAb1.js"));
862
+ const Header$2 = lazy(() => import("./index-B5LLjyl8.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-DYBoPRXQ.js"));
1297
+ const Badge = lazy(() => import("./index-DjBUFBDf.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,
@@ -2211,39 +2258,42 @@ function AsideResizable({ children, asideCollapsed = false, onAsideToggle, width
2211
2258
  setIsResizing(true);
2212
2259
  };
2213
2260
  if (asideCollapsed) return null;
2214
- return /* @__PURE__ */ jsxs(AppShell.Aside, { w: width, miw: 200, maw: window.innerWidth - 340, ref, children: [
2215
- /* @__PURE__ */ jsx(
2216
- Box,
2217
- {
2218
- w: 4,
2219
- top: 0,
2220
- left: 0,
2221
- h: "100%",
2222
- pos: "absolute",
2223
- bg: isResizing ? theme.colors.focus : "transparent",
2224
- sx: {
2225
- cursor: "col-resize",
2226
- transition: "background-color 0.2s ease"
2227
- },
2228
- onMouseDown: handleMouseDown
2229
- }
2230
- ),
2231
- children
2232
- ] });
2233
- }
2234
- function SelectedIndicator() {
2235
- const theme = useUITheme();
2236
- return /* @__PURE__ */ jsx(
2237
- "div",
2261
+ return /* @__PURE__ */ jsxs(
2262
+ AppShell.Aside,
2238
2263
  {
2239
- style: {
2240
- position: "absolute",
2241
- left: -8,
2242
- width: 4,
2243
- height: 30,
2244
- backgroundColor: theme.neutral.whiteFull,
2245
- borderRadius: 4
2246
- }
2264
+ w: width,
2265
+ miw: 200,
2266
+ maw: window.innerWidth - 340,
2267
+ ref,
2268
+ sx: {
2269
+ overflowY: "auto",
2270
+ overflowX: "hidden",
2271
+ scrollbarWidth: "none",
2272
+ msOverflowStyle: "none",
2273
+ "&::-webkit-scrollbar": {
2274
+ display: "none"
2275
+ }
2276
+ },
2277
+ children: [
2278
+ /* @__PURE__ */ jsx(
2279
+ Box,
2280
+ {
2281
+ w: 4,
2282
+ top: 0,
2283
+ left: 0,
2284
+ h: "100%",
2285
+ pos: "absolute",
2286
+ bg: isResizing ? theme.colors.focus : "transparent",
2287
+ sx: {
2288
+ zIndex: 1,
2289
+ cursor: "col-resize",
2290
+ transition: "background-color 0.2s ease"
2291
+ },
2292
+ onMouseDown: handleMouseDown
2293
+ }
2294
+ ),
2295
+ children
2296
+ ]
2247
2297
  }
2248
2298
  );
2249
2299
  }
@@ -2291,30 +2341,71 @@ function NavigationItemSkeleton() {
2291
2341
  }
2292
2342
  );
2293
2343
  }
2294
- function SpaceItem({ icon, id, selectedSpace, onClick }) {
2344
+ function RoomItem({ room }) {
2295
2345
  const { hovered, ref } = useHover();
2296
2346
  const theme = useUITheme();
2297
- const isSelected = selectedSpace === id;
2298
2347
  return /* @__PURE__ */ jsxs(
2299
- Center,
2348
+ Flex,
2300
2349
  {
2301
2350
  ref,
2302
- sx: {
2351
+ align: "center",
2352
+ gap: 8,
2353
+ px: 12,
2354
+ py: 4,
2355
+ ml: 16,
2356
+ style: {
2303
2357
  cursor: "pointer",
2304
- borderRadius: 24
2358
+ borderRadius: 6,
2359
+ backgroundColor: room.isActive || hovered ? theme.neutral.transparent10 : "transparent",
2360
+ transform: hovered ? "translateX(2px)" : "translateX(0px)",
2361
+ transition: "all 0.15s ease"
2305
2362
  },
2306
- pos: "relative",
2307
- bg: hovered ? theme.neutral.transparent30 : theme.bg.navIconsBg,
2308
- mih: 40,
2309
- w: 40,
2310
- onClick: () => onClick(id),
2363
+ onClick: () => room.onClick(room.id),
2311
2364
  children: [
2312
- typeof icon === "string" ? /* @__PURE__ */ jsx(Image, { radius: 24, src: icon, w: 32, h: 32 }) : icon,
2313
- isSelected && /* @__PURE__ */ jsx(SelectedIndicator, {})
2365
+ /* @__PURE__ */ jsx(room.icon, { size: 16, color: "secondary" }),
2366
+ /* @__PURE__ */ jsx(Text$1, { fz: 13, c: theme.text.secondary, children: room.name })
2314
2367
  ]
2315
2368
  }
2316
2369
  );
2317
2370
  }
2371
+ function RoomCategory({ category }) {
2372
+ const { hovered, ref } = useHover();
2373
+ const theme = useUITheme();
2374
+ const { value, toggle: toggle2 } = useToggle(false);
2375
+ return /* @__PURE__ */ jsxs(Stack$1, { gap: 2, children: [
2376
+ /* @__PURE__ */ jsxs(
2377
+ Flex,
2378
+ {
2379
+ ref,
2380
+ align: "center",
2381
+ justify: "space-between",
2382
+ px: 12,
2383
+ py: 4,
2384
+ style: {
2385
+ cursor: "pointer",
2386
+ borderRadius: 6,
2387
+ backgroundColor: hovered ? theme.neutral.transparent50 : "transparent",
2388
+ transition: "all 0.15s ease"
2389
+ },
2390
+ onClick: toggle2,
2391
+ children: [
2392
+ /* @__PURE__ */ jsx(Text$1, { fz: 12, c: theme.neutral.lightGray, children: category.name }),
2393
+ /* @__PURE__ */ jsx(
2394
+ Center,
2395
+ {
2396
+ sx: {
2397
+ transform: value ? "rotate(-90deg)" : "rotate(0deg)",
2398
+ transition: "transform 0.2s ease"
2399
+ },
2400
+ children: /* @__PURE__ */ jsx(AngleLeftSolid, { size: 12, color: "secondary" })
2401
+ }
2402
+ )
2403
+ ]
2404
+ }
2405
+ ),
2406
+ !value && /* @__PURE__ */ jsx(Stack$1, { gap: 1, children: category.rooms.map((room) => /* @__PURE__ */ jsx(RoomItem, { room }, room.id)) })
2407
+ ] });
2408
+ }
2318
2409
  function MenuItem({ item, onMenuItemClick, depth = 0 }) {
2319
2410
  const { hovered, ref } = useHover();
2320
2411
  const theme = useUITheme();
@@ -2392,71 +2483,46 @@ function MenuItem({ item, onMenuItemClick, depth = 0 }) {
2392
2483
  hasChildren && isExpanded && /* @__PURE__ */ jsx(Stack$1, { gap: 1, children: item.children?.map((childItem) => /* @__PURE__ */ jsx(MenuItem, { item: childItem, onMenuItemClick, depth: depth + 1 }, childItem.id)) })
2393
2484
  ] });
2394
2485
  }
2395
- function RoomItem({ room }) {
2486
+ function SelectedIndicator() {
2487
+ const theme = useUITheme();
2488
+ return /* @__PURE__ */ jsx(
2489
+ "div",
2490
+ {
2491
+ style: {
2492
+ position: "absolute",
2493
+ left: -8,
2494
+ width: 4,
2495
+ height: 30,
2496
+ backgroundColor: theme.neutral.whiteFull,
2497
+ borderRadius: 4
2498
+ }
2499
+ }
2500
+ );
2501
+ }
2502
+ function SpaceItem({ icon, id, selectedSpace, onClick }) {
2396
2503
  const { hovered, ref } = useHover();
2397
2504
  const theme = useUITheme();
2505
+ const isSelected = selectedSpace === id;
2398
2506
  return /* @__PURE__ */ jsxs(
2399
- Flex,
2507
+ Center,
2400
2508
  {
2401
2509
  ref,
2402
- align: "center",
2403
- gap: 8,
2404
- px: 12,
2405
- py: 4,
2406
- ml: 16,
2407
- style: {
2510
+ sx: {
2408
2511
  cursor: "pointer",
2409
- borderRadius: 6,
2410
- backgroundColor: room.isActive || hovered ? theme.neutral.transparent10 : "transparent",
2411
- transform: hovered ? "translateX(2px)" : "translateX(0px)",
2412
- transition: "all 0.15s ease"
2512
+ borderRadius: 24
2413
2513
  },
2414
- onClick: () => room.onClick(room.id),
2514
+ pos: "relative",
2515
+ bg: hovered ? theme.neutral.transparent30 : theme.bg.navIconsBg,
2516
+ mih: 40,
2517
+ w: 40,
2518
+ onClick: () => onClick(id),
2415
2519
  children: [
2416
- /* @__PURE__ */ jsx(room.icon, { size: 16, color: "secondary" }),
2417
- /* @__PURE__ */ jsx(Text$1, { fz: 13, c: theme.text.secondary, children: room.name })
2520
+ typeof icon === "string" ? /* @__PURE__ */ jsx(Image, { radius: 24, src: icon, w: 32, h: 32 }) : icon,
2521
+ isSelected && /* @__PURE__ */ jsx(SelectedIndicator, {})
2418
2522
  ]
2419
2523
  }
2420
2524
  );
2421
2525
  }
2422
- function RoomCategory({ category }) {
2423
- const { hovered, ref } = useHover();
2424
- const theme = useUITheme();
2425
- const { value, toggle: toggle2 } = useToggle(false);
2426
- return /* @__PURE__ */ jsxs(Stack$1, { gap: 2, children: [
2427
- /* @__PURE__ */ jsxs(
2428
- Flex,
2429
- {
2430
- ref,
2431
- align: "center",
2432
- justify: "space-between",
2433
- px: 12,
2434
- py: 4,
2435
- style: {
2436
- cursor: "pointer",
2437
- borderRadius: 6,
2438
- backgroundColor: hovered ? theme.neutral.transparent50 : "transparent",
2439
- transition: "all 0.15s ease"
2440
- },
2441
- onClick: toggle2,
2442
- children: [
2443
- /* @__PURE__ */ jsx(Text$1, { fz: 12, c: theme.neutral.lightGray, children: category.name }),
2444
- /* @__PURE__ */ jsx(
2445
- Center,
2446
- {
2447
- sx: {
2448
- transform: value ? "rotate(-90deg)" : "rotate(0deg)",
2449
- transition: "transform 0.2s ease"
2450
- },
2451
- children: /* @__PURE__ */ jsx(AngleLeftSolid, { size: 12, color: "secondary" })
2452
- }
2453
- )
2454
- ]
2455
- }
2456
- ),
2457
- !value && /* @__PURE__ */ jsx(Stack$1, { gap: 1, children: category.rooms.map((room) => /* @__PURE__ */ jsx(RoomItem, { room }, room.id)) })
2458
- ] });
2459
- }
2460
2526
  function AppShellNavigation({
2461
2527
  spaces,
2462
2528
  pageItem,
@@ -2477,10 +2543,14 @@ function AppShellNavigation({
2477
2543
  asideCollapsed = true,
2478
2544
  onAsideToggle,
2479
2545
  onMaxExpand,
2546
+ onAiOpen,
2547
+ isAiOpened,
2548
+ isAiBtnVisible,
2480
2549
  loading,
2481
- children
2550
+ children,
2551
+ aiNavbarContent
2482
2552
  }) {
2483
- const [navbarCollapsed, { toggle: toggleNavbar }] = useDisclosure(true);
2553
+ const [isNavbarNotCollapsed, { toggle: toggleNavbar }] = useDisclosure(true);
2484
2554
  const [asideWidth, setAsideWidth] = useState(450);
2485
2555
  const theme = useUITheme();
2486
2556
  return /* @__PURE__ */ jsxs(
@@ -2489,7 +2559,8 @@ function AppShellNavigation({
2489
2559
  withBorder: false,
2490
2560
  styles: {
2491
2561
  navbar: {
2492
- background: theme.bg.navScaled
2562
+ background: theme.bg.navScaled,
2563
+ transition: "width 0.3s ease"
2493
2564
  },
2494
2565
  aside: {
2495
2566
  background: theme.bg.navScaled
@@ -2497,7 +2568,7 @@ function AppShellNavigation({
2497
2568
  },
2498
2569
  bg: theme.bg.centralCanvasBg,
2499
2570
  navbar: {
2500
- width: navbarCollapsed ? 300 : 56,
2571
+ width: isNavbarNotCollapsed ? isAiOpened ? 450 : 300 : 56,
2501
2572
  breakpoint: "sm"
2502
2573
  },
2503
2574
  aside: {
@@ -2556,18 +2627,34 @@ function AppShellNavigation({
2556
2627
  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" }) }),
2557
2628
  /* @__PURE__ */ jsxs(Stack$1, { align: "center", gap: 8, children: [
2558
2629
  /* @__PURE__ */ jsx(Divider, { w: 40, mx: 10, color: theme.neutral.transparent10 }),
2559
- /* @__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" }) }),
2560
- !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" }) })
2630
+ /* @__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" }) })
2561
2631
  ] })
2562
2632
  ] }),
2563
- navbarCollapsed && /* @__PURE__ */ jsxs(Stack$1, { justify: "space-between", w: "100%", pt: 16, pb: 10, px: 12, children: [
2633
+ isAiOpened && isNavbarNotCollapsed && aiNavbarContent,
2634
+ isNavbarNotCollapsed && !isAiOpened && /* @__PURE__ */ jsxs(Stack$1, { justify: "space-between", w: "100%", pt: 16, pb: 10, px: 12, children: [
2564
2635
  /* @__PURE__ */ jsxs(Stack$1, { gap: 5, children: [
2565
2636
  /* @__PURE__ */ jsxs(Flex, { mb: 24, style: { width: "100%" }, justify: "space-between", align: "center", children: [
2566
2637
  /* @__PURE__ */ jsxs(Flex, { align: "center", gap: "10px", children: [
2567
2638
  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 }) }),
2568
2639
  /* @__PURE__ */ jsx(Text$1, { lh: 1, c: theme.text.overPicture, children: pageItem.pageTitle || "Unknown" })
2569
2640
  ] }),
2570
- /* @__PURE__ */ jsx(Flex, { gap: 12, align: "center", children: /* @__PURE__ */ jsx(Center, { sx: { cursor: "pointer" }, onClick: toggleNavbar, children: /* @__PURE__ */ jsx(PanelLeftSolid, { size: 22, color: "secondary" }) }) })
2641
+ isAiBtnVisible && !isAiOpened && /* @__PURE__ */ jsx(
2642
+ Center,
2643
+ {
2644
+ sx: {
2645
+ cursor: "pointer",
2646
+ borderRadius: 8,
2647
+ transition: "background 0.15s",
2648
+ background: theme.bg.navIconsBg,
2649
+ "&:hover": {
2650
+ background: theme.neutral.transparent30
2651
+ }
2652
+ },
2653
+ p: 4,
2654
+ onClick: onAiOpen,
2655
+ children: /* @__PURE__ */ jsx(Assistant, { size: 18, color: "primary" })
2656
+ }
2657
+ )
2571
2658
  ] }),
2572
2659
  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)),
2573
2660
  roomCategories && roomCategories.length > 0 && /* @__PURE__ */ jsx(Stack$1, { gap: 8, mt: 16, children: roomCategories.map((category) => /* @__PURE__ */ jsx(RoomCategory, { category }, category.id)) })
@@ -3103,7 +3190,7 @@ function OracleMessage({ oracleName, message }) {
3103
3190
  }
3104
3191
  function UserMessage({ message, sender }) {
3105
3192
  const theme = useUITheme();
3106
- return /* @__PURE__ */ jsxs(Box, { w: "fit-content", bg: theme.colors.focusTransparent10, sx: { borderRadius: 16 }, py: 12, px: 16, mb: 32, children: [
3193
+ return /* @__PURE__ */ jsxs(Box, { w: "fit-content", bg: theme.bg.navIconsBg, sx: { borderRadius: 16 }, py: 12, px: 16, mb: 32, children: [
3107
3194
  /* @__PURE__ */ jsx(Text$1, { c: theme.text.overPicture, fz: 12, children: sender }),
3108
3195
  /* @__PURE__ */ jsx(Text$1, { c: theme.text.overPicture, mt: 10, sx: { wordBreak: "break-all" }, children: message }, message)
3109
3196
  ] });
@@ -4423,7 +4510,8 @@ function FloatingInput({
4423
4510
  className,
4424
4511
  css: () => ({
4425
4512
  backgroundColor: "transparent",
4426
- borderRadius: 24,
4513
+ borderRadius: 20,
4514
+ outline: `1px solid ${theme.colors.focus}`,
4427
4515
  paddingTop: 16,
4428
4516
  position: "relative",
4429
4517
  animation: `${fadeIn} 0.3s ease-out`,
@@ -4520,7 +4608,7 @@ function FloatingInput({
4520
4608
  Box,
4521
4609
  {
4522
4610
  p: 16,
4523
- bg: theme.bg.glassmorphics,
4611
+ bg: theme.bg.navSpaces,
4524
4612
  w: 340,
4525
4613
  pos: "absolute",
4526
4614
  left: "50%",
@@ -5554,13 +5642,13 @@ function ActionButton({ onClick, left, right }) {
5554
5642
  }
5555
5643
  );
5556
5644
  }
5557
- const MainAction = lazy(() => import("./index-xNbZOX1W.js"));
5558
- const Header$1 = lazy(() => import("./index-DgTFhRUq.js"));
5559
- const Content = lazy(() => import("./index-BXJlwJE1.js"));
5645
+ const MainAction = lazy(() => import("./index-BwpX2MW2.js"));
5646
+ const Header$1 = lazy(() => import("./index-CRTmPwdM.js"));
5647
+ const Content = lazy(() => import("./index-C8fwTdC7.js"));
5560
5648
  const Map = lazy(() => import("./index-D5Ufmf-s.js"));
5561
5649
  const CustomContent = lazy(() => import("./index-DsYjW_4y.js"));
5562
- const Assets = lazy(() => import("./index-C89NsxdP.js"));
5563
- const Actions = lazy(() => import("./index-CjplLGYu.js"));
5650
+ const Assets = lazy(() => import("./index-DgjMTMef.js"));
5651
+ const Actions = lazy(() => import("./index-CvR50Mc1.js"));
5564
5652
  const HOVER_BORDER_WIDTH = 1;
5565
5653
  function SodaCardCmp({ numSelected = 0, expanded = true, mainAction, header, content, map, customContent, customFooter, actions, assets, onClick }, ref) {
5566
5654
  const wrapperRef = useRef(null);
@@ -10782,72 +10870,73 @@ function NavigationBar({
10782
10870
  ] });
10783
10871
  }
10784
10872
  export {
10785
- GroupActivity as $,
10873
+ FilterTags as $,
10786
10874
  Avatar as A,
10787
10875
  Button as B,
10788
10876
  CARD_HEADER_HEIGHT as C,
10789
- CardUserFollowUp as D,
10790
- Chart$1 as E,
10877
+ CardOutput as D,
10878
+ CardUserFollowUp as E,
10791
10879
  FeedbackMessage as F,
10792
- Checkbox as G,
10793
- CheckboxGroup as H,
10880
+ Chart$1 as G,
10881
+ Checkbox as H,
10794
10882
  IconButton as I,
10795
- ComboBox as J,
10796
- DomainToolbar as K,
10883
+ CheckboxGroup as J,
10884
+ ComboBox as K,
10797
10885
  Loader as L,
10798
10886
  MoreMenu as M,
10799
- DropDown as N,
10887
+ DomainToolbar as N,
10800
10888
  OracleMessage as O,
10801
- DomainToolbarTypes as P,
10802
- FloatingInput as Q,
10803
- EcosystemCard as R,
10889
+ DropDown as P,
10890
+ DomainToolbarTypes as Q,
10891
+ FloatingInput as R,
10804
10892
  Spacer as S,
10805
10893
  Typography as T,
10806
10894
  UserMessage as U,
10807
- EntityList as V,
10808
- Event as W,
10809
- ExpandableButton as X,
10810
- FeaturedCard as Y,
10811
- FilterDropDown as Z,
10812
- FilterTags as _,
10895
+ EcosystemCard as V,
10896
+ EntityList as W,
10897
+ Event as X,
10898
+ ExpandableButton as Y,
10899
+ FeaturedCard as Z,
10900
+ FilterDropDown as _,
10813
10901
  Tag as a,
10814
- GroupSelector as a0,
10815
- HandlerSodaCard as a1,
10816
- HtmlRender as a2,
10817
- ImpactCreditState as a3,
10818
- Layout as a4,
10819
- Modal as a5,
10820
- ModalSearch as a6,
10821
- ModalSheet as a7,
10822
- OracleProtocolsSelection as a8,
10823
- OracleReply as a9,
10824
- WorkspaceModal as aA,
10825
- PageTitle as aa,
10826
- PlanCard as ab,
10827
- Post as ac,
10828
- ProfileCard as ad,
10829
- ProfileMenu as ae,
10830
- ProposalCard as af,
10831
- RoundedButton as ag,
10832
- ServiceOffering as ah,
10833
- SearchInput as ai,
10834
- Select as aj,
10835
- SodaCard as ak,
10836
- SomeComponent as al,
10837
- Switch as am,
10838
- SwitchText as an,
10839
- Table as ao,
10840
- TableList as ap,
10841
- TabNavigation as aq,
10842
- TabSelector as ar,
10843
- TextInput as as,
10844
- UiProvider as at,
10845
- FloatingModal as au,
10846
- NavigationBar as av,
10847
- NavigationItem as aw,
10848
- DomainModal as ax,
10849
- DomainSelector as ay,
10850
- MoreModal as az,
10902
+ GroupActivity as a0,
10903
+ GroupSelector as a1,
10904
+ HandlerSodaCard as a2,
10905
+ HtmlRender as a3,
10906
+ ImpactCreditState as a4,
10907
+ Layout as a5,
10908
+ Modal as a6,
10909
+ ModalSearch as a7,
10910
+ ModalSheet as a8,
10911
+ OracleProtocolsSelection as a9,
10912
+ MoreModal as aA,
10913
+ WorkspaceModal as aB,
10914
+ OracleReply as aa,
10915
+ PageTitle as ab,
10916
+ PlanCard as ac,
10917
+ Post as ad,
10918
+ ProfileCard as ae,
10919
+ ProfileMenu as af,
10920
+ ProposalCard as ag,
10921
+ RoundedButton as ah,
10922
+ ServiceOffering as ai,
10923
+ SearchInput as aj,
10924
+ Select as ak,
10925
+ SodaCard as al,
10926
+ SomeComponent as am,
10927
+ Switch as an,
10928
+ SwitchText as ao,
10929
+ Table as ap,
10930
+ TableList as aq,
10931
+ TabNavigation as ar,
10932
+ TabSelector as as,
10933
+ TextInput as at,
10934
+ UiProvider as au,
10935
+ FloatingModal as av,
10936
+ NavigationBar as aw,
10937
+ NavigationItem as ax,
10938
+ DomainModal as ay,
10939
+ DomainSelector as az,
10851
10940
  ActionButton as b,
10852
10941
  cutText as c,
10853
10942
  Tooltip$1 as d,
@@ -10861,17 +10950,17 @@ export {
10861
10950
  ActivityCard as l,
10862
10951
  AIResponse as m,
10863
10952
  AIInputBar as n,
10864
- AppShellNavigation as o,
10865
- AvatarInfo as p,
10866
- ButtonBasic as q,
10867
- ButtonReadOnly as r,
10868
- ButtonSubtle as s,
10869
- Card as t,
10870
- CardAction as u,
10871
- CardEntity as v,
10872
- CardHeader as w,
10873
- CardHero as x,
10874
- CardSelector as y,
10875
- CardOutput as z
10953
+ AIChatToolbar as o,
10954
+ AppShellNavigation as p,
10955
+ AvatarInfo as q,
10956
+ ButtonBasic as r,
10957
+ ButtonReadOnly as s,
10958
+ ButtonSubtle as t,
10959
+ Card as u,
10960
+ CardAction as v,
10961
+ CardEntity as w,
10962
+ CardHeader as x,
10963
+ CardHero as y,
10964
+ CardSelector as z
10876
10965
  };
10877
- //# sourceMappingURL=components-BVa_RzKb.js.map
10966
+ //# sourceMappingURL=components-DOmagp83.js.map