@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
@@ -24,7 +24,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
24
24
  const jsxRuntime = require("@emotion/react/jsx-runtime");
25
25
  const radash = require("radash");
26
26
  const react = require("@emotion/react");
27
- const UsersSolid = require("./UsersSolid-3ru3TJi-.cjs");
27
+ const UsersSolid = require("./UsersSolid-D60imcQv.cjs");
28
28
  const react$1 = require("react");
29
29
  const constants = require("./constants-DFJRYpE2.cjs");
30
30
  const core = require("@mantine/core");
@@ -797,8 +797,8 @@ function AccordionTable({
797
797
  }
798
798
  );
799
799
  }
800
- const Header$3 = react$1.lazy(() => Promise.resolve().then(() => require("./index-BdurzkQE.cjs")));
801
- const Footer = react$1.lazy(() => Promise.resolve().then(() => require("./index-BkHXIaln.cjs")));
800
+ const Header$3 = react$1.lazy(() => Promise.resolve().then(() => require("./index-DLhc3Hez.cjs")));
801
+ const Footer = react$1.lazy(() => Promise.resolve().then(() => require("./index-xXJk2P5Y.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-DFEKL4SE.cjs")));
885
+ const Header$2 = react$1.lazy(() => Promise.resolve().then(() => require("./index-B9ziLU7I.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-Cbh2O8ES.cjs")));
1320
+ const Badge = react$1.lazy(() => Promise.resolve().then(() => require("./index-BT80tCRs.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);
@@ -1921,34 +1921,35 @@ const Flex = react$1.forwardRef(
1921
1921
  children,
1922
1922
  ...props
1923
1923
  }, ref) => {
1924
- return /* @__PURE__ */ jsxRuntime.jsx(
1925
- "div",
1926
- {
1927
- ref,
1928
- ...props,
1929
- style: {
1930
- display: "flex",
1931
- flexDirection: direction,
1932
- alignItems: align,
1933
- justifyContent: justify,
1934
- gap,
1935
- margin: m,
1936
- marginTop: mt || my,
1937
- marginBottom: mb || my,
1938
- marginLeft: ml || mx,
1939
- marginRight: mr || mx,
1940
- padding: p,
1941
- paddingTop: pt || py,
1942
- paddingBottom: pb || py,
1943
- paddingLeft: pl || px,
1944
- paddingRight: pr || px,
1945
- backgroundColor: bg,
1946
- borderRadius: radius,
1947
- ...props.style
1948
- },
1949
- children
1950
- }
1951
- );
1924
+ const hasIndividualPadding = pt !== 0 || pb !== 0 || pl !== 0 || pr !== 0 || px !== 0 || py !== 0;
1925
+ const hasIndividualMargin = mt !== 0 || mb !== 0 || ml !== 0 || mr !== 0 || mx !== 0 || my !== 0;
1926
+ const style = {
1927
+ display: "flex",
1928
+ flexDirection: direction,
1929
+ alignItems: align,
1930
+ justifyContent: justify,
1931
+ gap,
1932
+ backgroundColor: bg,
1933
+ borderRadius: radius,
1934
+ ...props.style
1935
+ };
1936
+ if (hasIndividualMargin) {
1937
+ if (mt !== 0 || my !== 0) style.marginTop = mt || my;
1938
+ if (mb !== 0 || my !== 0) style.marginBottom = mb || my;
1939
+ if (ml !== 0 || mx !== 0) style.marginLeft = ml || mx;
1940
+ if (mr !== 0 || mx !== 0) style.marginRight = mr || mx;
1941
+ } else if (m !== 0) {
1942
+ style.margin = m;
1943
+ }
1944
+ if (hasIndividualPadding) {
1945
+ if (pt !== 0 || py !== 0) style.paddingTop = pt || py;
1946
+ if (pb !== 0 || py !== 0) style.paddingBottom = pb || py;
1947
+ if (pl !== 0 || px !== 0) style.paddingLeft = pl || px;
1948
+ if (pr !== 0 || px !== 0) style.paddingRight = pr || px;
1949
+ } else if (p !== 0) {
1950
+ style.padding = p;
1951
+ }
1952
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, ...props, style, children });
1952
1953
  }
1953
1954
  );
1954
1955
  Flex.displayName = "Flex";
@@ -2124,6 +2125,52 @@ function AIInputBar({ placeholder, icon, disabledInput, disabledButton, valueInp
2124
2125
  }
2125
2126
  );
2126
2127
  }
2128
+ function AIChatToolbar({ onClose, onHistoryClick, onPlusClick, onHistoryClose, isHistoryOpened, oracleModel, sessionTitle }) {
2129
+ const theme = useUITheme.useUITheme();
2130
+ return /* @__PURE__ */ jsxRuntime.jsxs(Flex, { bg: theme.bg.navScaled, py: 16, justify: "space-between", align: "center", children: [
2131
+ /* @__PURE__ */ jsxRuntime.jsxs(Flex, { gap: 6, align: "center", children: [
2132
+ sessionTitle && /* @__PURE__ */ jsxRuntime.jsx(Typography.Text, { color: "overPicture", size: "s", children: sessionTitle }),
2133
+ oracleModel && /* @__PURE__ */ jsxRuntime.jsx(core.Badge, { fw: 300, size: "sm", fz: 12, bg: theme.neutral.transparent10, tt: "initial", children: oracleModel })
2134
+ ] }),
2135
+ /* @__PURE__ */ jsxRuntime.jsx(Flex, { gap: 6, align: "center", justify: "flex-end", children: isHistoryOpened ? /* @__PURE__ */ jsxRuntime.jsx(
2136
+ core.Center,
2137
+ {
2138
+ sx: {
2139
+ cursor: "pointer",
2140
+ borderRadius: 8,
2141
+ transition: "background 0.15s",
2142
+ background: theme.bg.navIconsBg,
2143
+ "&:hover": {
2144
+ background: theme.neutral.transparent30
2145
+ }
2146
+ },
2147
+ p: 4,
2148
+ onClick: onHistoryClose,
2149
+ children: /* @__PURE__ */ jsxRuntime.jsx(UsersSolid.ArrowLeftSolid, { size: 18 })
2150
+ }
2151
+ ) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2152
+ /* @__PURE__ */ jsxRuntime.jsx(core.Center, { sx: { cursor: "pointer", borderRadius: 24 }, onClick: onPlusClick, children: /* @__PURE__ */ jsxRuntime.jsx(UsersSolid.PlusSolid, { size: 18 }) }),
2153
+ /* @__PURE__ */ jsxRuntime.jsx(core.Center, { sx: { cursor: "pointer", borderRadius: 24 }, onClick: onHistoryClick, children: /* @__PURE__ */ jsxRuntime.jsx(UsersSolid.HistorySolid, { size: 18 }) }),
2154
+ /* @__PURE__ */ jsxRuntime.jsx(
2155
+ core.Center,
2156
+ {
2157
+ sx: {
2158
+ cursor: "pointer",
2159
+ borderRadius: 8,
2160
+ transition: "background 0.15s",
2161
+ background: theme.bg.navIconsBg,
2162
+ "&:hover": {
2163
+ background: theme.neutral.transparent30
2164
+ }
2165
+ },
2166
+ p: 4,
2167
+ onClick: onClose,
2168
+ children: /* @__PURE__ */ jsxRuntime.jsx(UsersSolid.Close, { size: 18 })
2169
+ }
2170
+ )
2171
+ ] }) })
2172
+ ] });
2173
+ }
2127
2174
  function Avatar({ src, rounded = true, size = 62, did }) {
2128
2175
  const css2 = {
2129
2176
  width: size,
@@ -2234,39 +2281,42 @@ function AsideResizable({ children, asideCollapsed = false, onAsideToggle, width
2234
2281
  setIsResizing(true);
2235
2282
  };
2236
2283
  if (asideCollapsed) return null;
2237
- return /* @__PURE__ */ jsxRuntime.jsxs(core.AppShell.Aside, { w: width, miw: 200, maw: window.innerWidth - 340, ref, children: [
2238
- /* @__PURE__ */ jsxRuntime.jsx(
2239
- core.Box,
2240
- {
2241
- w: 4,
2242
- top: 0,
2243
- left: 0,
2244
- h: "100%",
2245
- pos: "absolute",
2246
- bg: isResizing ? theme.colors.focus : "transparent",
2247
- sx: {
2248
- cursor: "col-resize",
2249
- transition: "background-color 0.2s ease"
2250
- },
2251
- onMouseDown: handleMouseDown
2252
- }
2253
- ),
2254
- children
2255
- ] });
2256
- }
2257
- function SelectedIndicator() {
2258
- const theme = useUITheme.useUITheme();
2259
- return /* @__PURE__ */ jsxRuntime.jsx(
2260
- "div",
2284
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2285
+ core.AppShell.Aside,
2261
2286
  {
2262
- style: {
2263
- position: "absolute",
2264
- left: -8,
2265
- width: 4,
2266
- height: 30,
2267
- backgroundColor: theme.neutral.whiteFull,
2268
- borderRadius: 4
2269
- }
2287
+ w: width,
2288
+ miw: 200,
2289
+ maw: window.innerWidth - 340,
2290
+ ref,
2291
+ sx: {
2292
+ overflowY: "auto",
2293
+ overflowX: "hidden",
2294
+ scrollbarWidth: "none",
2295
+ msOverflowStyle: "none",
2296
+ "&::-webkit-scrollbar": {
2297
+ display: "none"
2298
+ }
2299
+ },
2300
+ children: [
2301
+ /* @__PURE__ */ jsxRuntime.jsx(
2302
+ core.Box,
2303
+ {
2304
+ w: 4,
2305
+ top: 0,
2306
+ left: 0,
2307
+ h: "100%",
2308
+ pos: "absolute",
2309
+ bg: isResizing ? theme.colors.focus : "transparent",
2310
+ sx: {
2311
+ zIndex: 1,
2312
+ cursor: "col-resize",
2313
+ transition: "background-color 0.2s ease"
2314
+ },
2315
+ onMouseDown: handleMouseDown
2316
+ }
2317
+ ),
2318
+ children
2319
+ ]
2270
2320
  }
2271
2321
  );
2272
2322
  }
@@ -2314,30 +2364,71 @@ function NavigationItemSkeleton() {
2314
2364
  }
2315
2365
  );
2316
2366
  }
2317
- function SpaceItem({ icon, id, selectedSpace, onClick }) {
2367
+ function RoomItem({ room }) {
2318
2368
  const { hovered, ref } = hooks.useHover();
2319
2369
  const theme = useUITheme.useUITheme();
2320
- const isSelected = selectedSpace === id;
2321
2370
  return /* @__PURE__ */ jsxRuntime.jsxs(
2322
- core.Center,
2371
+ Flex,
2323
2372
  {
2324
2373
  ref,
2325
- sx: {
2374
+ align: "center",
2375
+ gap: 8,
2376
+ px: 12,
2377
+ py: 4,
2378
+ ml: 16,
2379
+ style: {
2326
2380
  cursor: "pointer",
2327
- borderRadius: 24
2381
+ borderRadius: 6,
2382
+ backgroundColor: room.isActive || hovered ? theme.neutral.transparent10 : "transparent",
2383
+ transform: hovered ? "translateX(2px)" : "translateX(0px)",
2384
+ transition: "all 0.15s ease"
2328
2385
  },
2329
- pos: "relative",
2330
- bg: hovered ? theme.neutral.transparent30 : theme.bg.navIconsBg,
2331
- mih: 40,
2332
- w: 40,
2333
- onClick: () => onClick(id),
2386
+ onClick: () => room.onClick(room.id),
2334
2387
  children: [
2335
- typeof icon === "string" ? /* @__PURE__ */ jsxRuntime.jsx(core.Image, { radius: 24, src: icon, w: 32, h: 32 }) : icon,
2336
- isSelected && /* @__PURE__ */ jsxRuntime.jsx(SelectedIndicator, {})
2388
+ /* @__PURE__ */ jsxRuntime.jsx(room.icon, { size: 16, color: "secondary" }),
2389
+ /* @__PURE__ */ jsxRuntime.jsx(core.Text, { fz: 13, c: theme.text.secondary, children: room.name })
2337
2390
  ]
2338
2391
  }
2339
2392
  );
2340
2393
  }
2394
+ function RoomCategory({ category }) {
2395
+ const { hovered, ref } = hooks.useHover();
2396
+ const theme = useUITheme.useUITheme();
2397
+ const { value, toggle } = useToggle(false);
2398
+ return /* @__PURE__ */ jsxRuntime.jsxs(core.Stack, { gap: 2, children: [
2399
+ /* @__PURE__ */ jsxRuntime.jsxs(
2400
+ Flex,
2401
+ {
2402
+ ref,
2403
+ align: "center",
2404
+ justify: "space-between",
2405
+ px: 12,
2406
+ py: 4,
2407
+ style: {
2408
+ cursor: "pointer",
2409
+ borderRadius: 6,
2410
+ backgroundColor: hovered ? theme.neutral.transparent50 : "transparent",
2411
+ transition: "all 0.15s ease"
2412
+ },
2413
+ onClick: toggle,
2414
+ children: [
2415
+ /* @__PURE__ */ jsxRuntime.jsx(core.Text, { fz: 12, c: theme.neutral.lightGray, children: category.name }),
2416
+ /* @__PURE__ */ jsxRuntime.jsx(
2417
+ core.Center,
2418
+ {
2419
+ sx: {
2420
+ transform: value ? "rotate(-90deg)" : "rotate(0deg)",
2421
+ transition: "transform 0.2s ease"
2422
+ },
2423
+ children: /* @__PURE__ */ jsxRuntime.jsx(UsersSolid.AngleLeftSolid, { size: 12, color: "secondary" })
2424
+ }
2425
+ )
2426
+ ]
2427
+ }
2428
+ ),
2429
+ !value && /* @__PURE__ */ jsxRuntime.jsx(core.Stack, { gap: 1, children: category.rooms.map((room) => /* @__PURE__ */ jsxRuntime.jsx(RoomItem, { room }, room.id)) })
2430
+ ] });
2431
+ }
2341
2432
  function MenuItem({ item, onMenuItemClick, depth = 0 }) {
2342
2433
  const { hovered, ref } = hooks.useHover();
2343
2434
  const theme = useUITheme.useUITheme();
@@ -2415,71 +2506,46 @@ function MenuItem({ item, onMenuItemClick, depth = 0 }) {
2415
2506
  hasChildren && isExpanded && /* @__PURE__ */ jsxRuntime.jsx(core.Stack, { gap: 1, children: item.children?.map((childItem) => /* @__PURE__ */ jsxRuntime.jsx(MenuItem, { item: childItem, onMenuItemClick, depth: depth + 1 }, childItem.id)) })
2416
2507
  ] });
2417
2508
  }
2418
- function RoomItem({ room }) {
2509
+ function SelectedIndicator() {
2510
+ const theme = useUITheme.useUITheme();
2511
+ return /* @__PURE__ */ jsxRuntime.jsx(
2512
+ "div",
2513
+ {
2514
+ style: {
2515
+ position: "absolute",
2516
+ left: -8,
2517
+ width: 4,
2518
+ height: 30,
2519
+ backgroundColor: theme.neutral.whiteFull,
2520
+ borderRadius: 4
2521
+ }
2522
+ }
2523
+ );
2524
+ }
2525
+ function SpaceItem({ icon, id, selectedSpace, onClick }) {
2419
2526
  const { hovered, ref } = hooks.useHover();
2420
2527
  const theme = useUITheme.useUITheme();
2528
+ const isSelected = selectedSpace === id;
2421
2529
  return /* @__PURE__ */ jsxRuntime.jsxs(
2422
- Flex,
2530
+ core.Center,
2423
2531
  {
2424
2532
  ref,
2425
- align: "center",
2426
- gap: 8,
2427
- px: 12,
2428
- py: 4,
2429
- ml: 16,
2430
- style: {
2533
+ sx: {
2431
2534
  cursor: "pointer",
2432
- borderRadius: 6,
2433
- backgroundColor: room.isActive || hovered ? theme.neutral.transparent10 : "transparent",
2434
- transform: hovered ? "translateX(2px)" : "translateX(0px)",
2435
- transition: "all 0.15s ease"
2535
+ borderRadius: 24
2436
2536
  },
2437
- onClick: () => room.onClick(room.id),
2537
+ pos: "relative",
2538
+ bg: hovered ? theme.neutral.transparent30 : theme.bg.navIconsBg,
2539
+ mih: 40,
2540
+ w: 40,
2541
+ onClick: () => onClick(id),
2438
2542
  children: [
2439
- /* @__PURE__ */ jsxRuntime.jsx(room.icon, { size: 16, color: "secondary" }),
2440
- /* @__PURE__ */ jsxRuntime.jsx(core.Text, { fz: 13, c: theme.text.secondary, children: room.name })
2543
+ typeof icon === "string" ? /* @__PURE__ */ jsxRuntime.jsx(core.Image, { radius: 24, src: icon, w: 32, h: 32 }) : icon,
2544
+ isSelected && /* @__PURE__ */ jsxRuntime.jsx(SelectedIndicator, {})
2441
2545
  ]
2442
2546
  }
2443
2547
  );
2444
2548
  }
2445
- function RoomCategory({ category }) {
2446
- const { hovered, ref } = hooks.useHover();
2447
- const theme = useUITheme.useUITheme();
2448
- const { value, toggle } = useToggle(false);
2449
- return /* @__PURE__ */ jsxRuntime.jsxs(core.Stack, { gap: 2, children: [
2450
- /* @__PURE__ */ jsxRuntime.jsxs(
2451
- Flex,
2452
- {
2453
- ref,
2454
- align: "center",
2455
- justify: "space-between",
2456
- px: 12,
2457
- py: 4,
2458
- style: {
2459
- cursor: "pointer",
2460
- borderRadius: 6,
2461
- backgroundColor: hovered ? theme.neutral.transparent50 : "transparent",
2462
- transition: "all 0.15s ease"
2463
- },
2464
- onClick: toggle,
2465
- children: [
2466
- /* @__PURE__ */ jsxRuntime.jsx(core.Text, { fz: 12, c: theme.neutral.lightGray, children: category.name }),
2467
- /* @__PURE__ */ jsxRuntime.jsx(
2468
- core.Center,
2469
- {
2470
- sx: {
2471
- transform: value ? "rotate(-90deg)" : "rotate(0deg)",
2472
- transition: "transform 0.2s ease"
2473
- },
2474
- children: /* @__PURE__ */ jsxRuntime.jsx(UsersSolid.AngleLeftSolid, { size: 12, color: "secondary" })
2475
- }
2476
- )
2477
- ]
2478
- }
2479
- ),
2480
- !value && /* @__PURE__ */ jsxRuntime.jsx(core.Stack, { gap: 1, children: category.rooms.map((room) => /* @__PURE__ */ jsxRuntime.jsx(RoomItem, { room }, room.id)) })
2481
- ] });
2482
- }
2483
2549
  function AppShellNavigation({
2484
2550
  spaces,
2485
2551
  pageItem,
@@ -2500,10 +2566,14 @@ function AppShellNavigation({
2500
2566
  asideCollapsed = true,
2501
2567
  onAsideToggle,
2502
2568
  onMaxExpand,
2569
+ onAiOpen,
2570
+ isAiOpened,
2571
+ isAiBtnVisible,
2503
2572
  loading,
2504
- children
2573
+ children,
2574
+ aiNavbarContent
2505
2575
  }) {
2506
- const [navbarCollapsed, { toggle: toggleNavbar }] = hooks.useDisclosure(true);
2576
+ const [isNavbarNotCollapsed, { toggle: toggleNavbar }] = hooks.useDisclosure(true);
2507
2577
  const [asideWidth, setAsideWidth] = react$1.useState(450);
2508
2578
  const theme = useUITheme.useUITheme();
2509
2579
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -2512,7 +2582,8 @@ function AppShellNavigation({
2512
2582
  withBorder: false,
2513
2583
  styles: {
2514
2584
  navbar: {
2515
- background: theme.bg.navScaled
2585
+ background: theme.bg.navScaled,
2586
+ transition: "width 0.3s ease"
2516
2587
  },
2517
2588
  aside: {
2518
2589
  background: theme.bg.navScaled
@@ -2520,7 +2591,7 @@ function AppShellNavigation({
2520
2591
  },
2521
2592
  bg: theme.bg.centralCanvasBg,
2522
2593
  navbar: {
2523
- width: navbarCollapsed ? 300 : 56,
2594
+ width: isNavbarNotCollapsed ? isAiOpened ? 450 : 300 : 56,
2524
2595
  breakpoint: "sm"
2525
2596
  },
2526
2597
  aside: {
@@ -2579,18 +2650,34 @@ function AppShellNavigation({
2579
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" }) }),
2580
2651
  /* @__PURE__ */ jsxRuntime.jsxs(core.Stack, { align: "center", gap: 8, children: [
2581
2652
  /* @__PURE__ */ jsxRuntime.jsx(core.Divider, { w: 40, mx: 10, color: theme.neutral.transparent10 }),
2582
- /* @__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" }) }),
2583
- !navbarCollapsed && /* @__PURE__ */ jsxRuntime.jsx(core.Center, { sx: { cursor: "pointer", borderRadius: 24 }, bg: theme.bg.navIconsBg, h: 40, w: 40, onClick: toggleNavbar, children: /* @__PURE__ */ jsxRuntime.jsx(UsersSolid.AngleRightSolid, { color: "secondary" }) })
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" }) })
2584
2654
  ] })
2585
2655
  ] }),
2586
- navbarCollapsed && /* @__PURE__ */ jsxRuntime.jsxs(core.Stack, { justify: "space-between", w: "100%", pt: 16, pb: 10, px: 12, children: [
2656
+ isAiOpened && isNavbarNotCollapsed && aiNavbarContent,
2657
+ isNavbarNotCollapsed && !isAiOpened && /* @__PURE__ */ jsxRuntime.jsxs(core.Stack, { justify: "space-between", w: "100%", pt: 16, pb: 10, px: 12, children: [
2587
2658
  /* @__PURE__ */ jsxRuntime.jsxs(core.Stack, { gap: 5, children: [
2588
2659
  /* @__PURE__ */ jsxRuntime.jsxs(Flex, { mb: 24, style: { width: "100%" }, justify: "space-between", align: "center", children: [
2589
2660
  /* @__PURE__ */ jsxRuntime.jsxs(Flex, { align: "center", gap: "10px", children: [
2590
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 }) }),
2591
2662
  /* @__PURE__ */ jsxRuntime.jsx(core.Text, { lh: 1, c: theme.text.overPicture, children: pageItem.pageTitle || "Unknown" })
2592
2663
  ] }),
2593
- /* @__PURE__ */ jsxRuntime.jsx(Flex, { gap: 12, align: "center", children: /* @__PURE__ */ jsxRuntime.jsx(core.Center, { sx: { cursor: "pointer" }, onClick: toggleNavbar, children: /* @__PURE__ */ jsxRuntime.jsx(UsersSolid.PanelLeftSolid, { size: 22, color: "secondary" }) }) })
2664
+ isAiBtnVisible && !isAiOpened && /* @__PURE__ */ jsxRuntime.jsx(
2665
+ core.Center,
2666
+ {
2667
+ sx: {
2668
+ cursor: "pointer",
2669
+ borderRadius: 8,
2670
+ transition: "background 0.15s",
2671
+ background: theme.bg.navIconsBg,
2672
+ "&:hover": {
2673
+ background: theme.neutral.transparent30
2674
+ }
2675
+ },
2676
+ p: 4,
2677
+ onClick: onAiOpen,
2678
+ children: /* @__PURE__ */ jsxRuntime.jsx(UsersSolid.Assistant, { size: 18, color: "primary" })
2679
+ }
2680
+ )
2594
2681
  ] }),
2595
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)),
2596
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)) })
@@ -3126,7 +3213,7 @@ function OracleMessage({ oracleName, message }) {
3126
3213
  }
3127
3214
  function UserMessage({ message, sender }) {
3128
3215
  const theme = useUITheme.useUITheme();
3129
- return /* @__PURE__ */ jsxRuntime.jsxs(core.Box, { w: "fit-content", bg: theme.colors.focusTransparent10, sx: { borderRadius: 16 }, py: 12, px: 16, mb: 32, children: [
3216
+ return /* @__PURE__ */ jsxRuntime.jsxs(core.Box, { w: "fit-content", bg: theme.bg.navIconsBg, sx: { borderRadius: 16 }, py: 12, px: 16, mb: 32, children: [
3130
3217
  /* @__PURE__ */ jsxRuntime.jsx(core.Text, { c: theme.text.overPicture, fz: 12, children: sender }),
3131
3218
  /* @__PURE__ */ jsxRuntime.jsx(core.Text, { c: theme.text.overPicture, mt: 10, sx: { wordBreak: "break-all" }, children: message }, message)
3132
3219
  ] });
@@ -4446,7 +4533,8 @@ function FloatingInput({
4446
4533
  className,
4447
4534
  css: () => ({
4448
4535
  backgroundColor: "transparent",
4449
- borderRadius: 24,
4536
+ borderRadius: 20,
4537
+ outline: `1px solid ${theme.colors.focus}`,
4450
4538
  paddingTop: 16,
4451
4539
  position: "relative",
4452
4540
  animation: `${fadeIn} 0.3s ease-out`,
@@ -4543,7 +4631,7 @@ function FloatingInput({
4543
4631
  core.Box,
4544
4632
  {
4545
4633
  p: 16,
4546
- bg: theme.bg.glassmorphics,
4634
+ bg: theme.bg.navSpaces,
4547
4635
  w: 340,
4548
4636
  pos: "absolute",
4549
4637
  left: "50%",
@@ -5577,13 +5665,13 @@ function ActionButton({ onClick, left, right }) {
5577
5665
  }
5578
5666
  );
5579
5667
  }
5580
- const MainAction = react$1.lazy(() => Promise.resolve().then(() => require("./index-1_x_N7t0.cjs")));
5581
- const Header$1 = react$1.lazy(() => Promise.resolve().then(() => require("./index-paAq-KH4.cjs")));
5582
- const Content = react$1.lazy(() => Promise.resolve().then(() => require("./index-DtDKdj1b.cjs")));
5668
+ const MainAction = react$1.lazy(() => Promise.resolve().then(() => require("./index-BPivpKfd.cjs")));
5669
+ const Header$1 = react$1.lazy(() => Promise.resolve().then(() => require("./index-Djs9vGMH.cjs")));
5670
+ const Content = react$1.lazy(() => Promise.resolve().then(() => require("./index-BZyPy7D0.cjs")));
5583
5671
  const Map = react$1.lazy(() => Promise.resolve().then(() => require("./index-D4PsPquZ.cjs")));
5584
5672
  const CustomContent = react$1.lazy(() => Promise.resolve().then(() => require("./index-ByrCNpS2.cjs")));
5585
- const Assets = react$1.lazy(() => Promise.resolve().then(() => require("./index-B67PPfoW.cjs")));
5586
- const Actions = react$1.lazy(() => Promise.resolve().then(() => require("./index-Cjc9U9We.cjs")));
5673
+ const Assets = react$1.lazy(() => Promise.resolve().then(() => require("./index-cfms0zoI.cjs")));
5674
+ const Actions = react$1.lazy(() => Promise.resolve().then(() => require("./index-uieXu8xU.cjs")));
5587
5675
  const HOVER_BORDER_WIDTH = 1;
5588
5676
  function SodaCardCmp({ numSelected = 0, expanded = true, mainAction, header, content, map, customContent, customFooter, actions, assets, onClick }, ref) {
5589
5677
  const wrapperRef = react$1.useRef(null);
@@ -10804,6 +10892,7 @@ function NavigationBar({
10804
10892
  hoveredItem === "user" && user && /* @__PURE__ */ jsxRuntime.jsx(UserModal, { items: userModalItems, position: modalPosition, onMouseEnter: handleModalEnter, onMouseLeave: handleModalLeave })
10805
10893
  ] });
10806
10894
  }
10895
+ exports.AIChatToolbar = AIChatToolbar;
10807
10896
  exports.AIInputBar = AIInputBar;
10808
10897
  exports.AIResponse = AIResponse;
10809
10898
  exports.Accordion = Accordion;
@@ -10895,4 +10984,4 @@ exports.UserMessage = UserMessage;
10895
10984
  exports.WorkspaceModal = WorkspaceModal;
10896
10985
  exports.cutText = cutText;
10897
10986
  exports.isValidClick = isValidClick;
10898
- //# sourceMappingURL=components-_MkU3jTT.cjs.map
10987
+ //# sourceMappingURL=components-B9IT9zsg.cjs.map