@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
@@ -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-DkxiMwu0.cjs")));
801
- const Footer = react$1.lazy(() => Promise.resolve().then(() => require("./index-B-OdChcI.cjs")));
800
+ const Header$3 = react$1.lazy(() => Promise.resolve().then(() => require("./index-CtdwAmSJ.cjs")));
801
+ const Footer = react$1.lazy(() => Promise.resolve().then(() => require("./index-BTd7RekU.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-CyALadsH.cjs")));
885
+ const Header$2 = react$1.lazy(() => Promise.resolve().then(() => require("./index-vjtTGg1m.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-tbar1igU.cjs")));
1320
+ const Badge = react$1.lazy(() => Promise.resolve().then(() => require("./index-D03Y_bB5.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,
@@ -2254,46 +2301,115 @@ function AsideResizable({ children, asideCollapsed = false, onAsideToggle, width
2254
2301
  children
2255
2302
  ] });
2256
2303
  }
2257
- function SelectedIndicator() {
2304
+ function NavigationItemSkeleton() {
2258
2305
  const theme = useUITheme.useUITheme();
2259
- return /* @__PURE__ */ jsxRuntime.jsx(
2260
- "div",
2306
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2307
+ Flex,
2261
2308
  {
2309
+ align: "center",
2310
+ gap: 8,
2311
+ pl: 12,
2312
+ pr: 12,
2313
+ py: 6,
2262
2314
  style: {
2263
- position: "absolute",
2264
- left: -8,
2265
- width: 4,
2266
- height: 30,
2267
- backgroundColor: theme.neutral.whiteFull,
2268
- borderRadius: 4
2269
- }
2315
+ borderRadius: 8,
2316
+ backgroundColor: theme.bg.navIconsBg
2317
+ },
2318
+ children: [
2319
+ /* @__PURE__ */ jsxRuntime.jsx(Flex, { align: "center", gap: 4, style: { flex: 1 }, children: /* @__PURE__ */ jsxRuntime.jsx(
2320
+ core.Skeleton,
2321
+ {
2322
+ height: "15px",
2323
+ radius: "xl",
2324
+ sx: {
2325
+ "::before": { opacity: 0 },
2326
+ "::after": { opacity: 1 }
2327
+ },
2328
+ style: { opacity: 0.2 }
2329
+ }
2330
+ ) }),
2331
+ /* @__PURE__ */ jsxRuntime.jsx(
2332
+ core.Skeleton,
2333
+ {
2334
+ height: 16,
2335
+ width: 16,
2336
+ radius: 4,
2337
+ sx: {
2338
+ "::before": { opacity: 0 },
2339
+ "::after": { opacity: 1 }
2340
+ },
2341
+ style: { opacity: 0.3 }
2342
+ }
2343
+ )
2344
+ ]
2270
2345
  }
2271
2346
  );
2272
2347
  }
2273
- function SpaceItem({ icon, id, selectedSpace, onClick }) {
2348
+ function RoomItem({ room }) {
2274
2349
  const { hovered, ref } = hooks.useHover();
2275
2350
  const theme = useUITheme.useUITheme();
2276
- const isSelected = selectedSpace === id;
2277
2351
  return /* @__PURE__ */ jsxRuntime.jsxs(
2278
- core.Center,
2352
+ Flex,
2279
2353
  {
2280
2354
  ref,
2281
- sx: {
2355
+ align: "center",
2356
+ gap: 8,
2357
+ px: 12,
2358
+ py: 4,
2359
+ ml: 16,
2360
+ style: {
2282
2361
  cursor: "pointer",
2283
- borderRadius: 24
2362
+ borderRadius: 6,
2363
+ backgroundColor: room.isActive || hovered ? theme.neutral.transparent10 : "transparent",
2364
+ transform: hovered ? "translateX(2px)" : "translateX(0px)",
2365
+ transition: "all 0.15s ease"
2284
2366
  },
2285
- pos: "relative",
2286
- bg: hovered ? theme.neutral.transparent30 : theme.bg.navIconsBg,
2287
- mih: 40,
2288
- w: 40,
2289
- onClick: () => onClick(id),
2367
+ onClick: () => room.onClick(room.id),
2290
2368
  children: [
2291
- typeof icon === "string" ? /* @__PURE__ */ jsxRuntime.jsx(core.Image, { radius: 24, src: icon, w: 32, h: 32 }) : icon,
2292
- isSelected && /* @__PURE__ */ jsxRuntime.jsx(SelectedIndicator, {})
2369
+ /* @__PURE__ */ jsxRuntime.jsx(room.icon, { size: 16, color: "secondary" }),
2370
+ /* @__PURE__ */ jsxRuntime.jsx(core.Text, { fz: 13, c: theme.text.secondary, children: room.name })
2293
2371
  ]
2294
2372
  }
2295
2373
  );
2296
2374
  }
2375
+ function RoomCategory({ category }) {
2376
+ const { hovered, ref } = hooks.useHover();
2377
+ const theme = useUITheme.useUITheme();
2378
+ const { value, toggle } = useToggle(false);
2379
+ return /* @__PURE__ */ jsxRuntime.jsxs(core.Stack, { gap: 2, children: [
2380
+ /* @__PURE__ */ jsxRuntime.jsxs(
2381
+ Flex,
2382
+ {
2383
+ ref,
2384
+ align: "center",
2385
+ justify: "space-between",
2386
+ px: 12,
2387
+ py: 4,
2388
+ style: {
2389
+ cursor: "pointer",
2390
+ borderRadius: 6,
2391
+ backgroundColor: hovered ? theme.neutral.transparent50 : "transparent",
2392
+ transition: "all 0.15s ease"
2393
+ },
2394
+ onClick: toggle,
2395
+ children: [
2396
+ /* @__PURE__ */ jsxRuntime.jsx(core.Text, { fz: 12, c: theme.neutral.lightGray, children: category.name }),
2397
+ /* @__PURE__ */ jsxRuntime.jsx(
2398
+ core.Center,
2399
+ {
2400
+ sx: {
2401
+ transform: value ? "rotate(-90deg)" : "rotate(0deg)",
2402
+ transition: "transform 0.2s ease"
2403
+ },
2404
+ children: /* @__PURE__ */ jsxRuntime.jsx(UsersSolid.AngleLeftSolid, { size: 12, color: "secondary" })
2405
+ }
2406
+ )
2407
+ ]
2408
+ }
2409
+ ),
2410
+ !value && /* @__PURE__ */ jsxRuntime.jsx(core.Stack, { gap: 1, children: category.rooms.map((room) => /* @__PURE__ */ jsxRuntime.jsx(RoomItem, { room }, room.id)) })
2411
+ ] });
2412
+ }
2297
2413
  function MenuItem({ item, onMenuItemClick, depth = 0 }) {
2298
2414
  const { hovered, ref } = hooks.useHover();
2299
2415
  const theme = useUITheme.useUITheme();
@@ -2371,71 +2487,46 @@ function MenuItem({ item, onMenuItemClick, depth = 0 }) {
2371
2487
  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)) })
2372
2488
  ] });
2373
2489
  }
2374
- function RoomItem({ room }) {
2490
+ function SelectedIndicator() {
2491
+ const theme = useUITheme.useUITheme();
2492
+ return /* @__PURE__ */ jsxRuntime.jsx(
2493
+ "div",
2494
+ {
2495
+ style: {
2496
+ position: "absolute",
2497
+ left: -8,
2498
+ width: 4,
2499
+ height: 30,
2500
+ backgroundColor: theme.neutral.whiteFull,
2501
+ borderRadius: 4
2502
+ }
2503
+ }
2504
+ );
2505
+ }
2506
+ function SpaceItem({ icon, id, selectedSpace, onClick }) {
2375
2507
  const { hovered, ref } = hooks.useHover();
2376
2508
  const theme = useUITheme.useUITheme();
2509
+ const isSelected = selectedSpace === id;
2377
2510
  return /* @__PURE__ */ jsxRuntime.jsxs(
2378
- Flex,
2511
+ core.Center,
2379
2512
  {
2380
2513
  ref,
2381
- align: "center",
2382
- gap: 8,
2383
- px: 12,
2384
- py: 4,
2385
- ml: 16,
2386
- style: {
2514
+ sx: {
2387
2515
  cursor: "pointer",
2388
- borderRadius: 6,
2389
- backgroundColor: room.isActive || hovered ? theme.neutral.transparent10 : "transparent",
2390
- transform: hovered ? "translateX(2px)" : "translateX(0px)",
2391
- transition: "all 0.15s ease"
2516
+ borderRadius: 24
2392
2517
  },
2393
- onClick: () => room.onClick(room.id),
2518
+ pos: "relative",
2519
+ bg: hovered ? theme.neutral.transparent30 : theme.bg.navIconsBg,
2520
+ mih: 40,
2521
+ w: 40,
2522
+ onClick: () => onClick(id),
2394
2523
  children: [
2395
- /* @__PURE__ */ jsxRuntime.jsx(room.icon, { size: 16, color: "secondary" }),
2396
- /* @__PURE__ */ jsxRuntime.jsx(core.Text, { fz: 13, c: theme.text.secondary, children: room.name })
2524
+ typeof icon === "string" ? /* @__PURE__ */ jsxRuntime.jsx(core.Image, { radius: 24, src: icon, w: 32, h: 32 }) : icon,
2525
+ isSelected && /* @__PURE__ */ jsxRuntime.jsx(SelectedIndicator, {})
2397
2526
  ]
2398
2527
  }
2399
2528
  );
2400
2529
  }
2401
- function RoomCategory({ category }) {
2402
- const { hovered, ref } = hooks.useHover();
2403
- const theme = useUITheme.useUITheme();
2404
- const { value, toggle } = useToggle(false);
2405
- return /* @__PURE__ */ jsxRuntime.jsxs(core.Stack, { gap: 2, children: [
2406
- /* @__PURE__ */ jsxRuntime.jsxs(
2407
- Flex,
2408
- {
2409
- ref,
2410
- align: "center",
2411
- justify: "space-between",
2412
- px: 12,
2413
- py: 4,
2414
- style: {
2415
- cursor: "pointer",
2416
- borderRadius: 6,
2417
- backgroundColor: hovered ? theme.neutral.transparent50 : "transparent",
2418
- transition: "all 0.15s ease"
2419
- },
2420
- onClick: toggle,
2421
- children: [
2422
- /* @__PURE__ */ jsxRuntime.jsx(core.Text, { fz: 12, c: theme.neutral.lightGray, children: category.name }),
2423
- /* @__PURE__ */ jsxRuntime.jsx(
2424
- core.Center,
2425
- {
2426
- sx: {
2427
- transform: value ? "rotate(-90deg)" : "rotate(0deg)",
2428
- transition: "transform 0.2s ease"
2429
- },
2430
- children: /* @__PURE__ */ jsxRuntime.jsx(UsersSolid.AngleLeftSolid, { size: 12, color: "secondary" })
2431
- }
2432
- )
2433
- ]
2434
- }
2435
- ),
2436
- !value && /* @__PURE__ */ jsxRuntime.jsx(core.Stack, { gap: 1, children: category.rooms.map((room) => /* @__PURE__ */ jsxRuntime.jsx(RoomItem, { room }, room.id)) })
2437
- ] });
2438
- }
2439
2530
  function AppShellNavigation({
2440
2531
  spaces,
2441
2532
  pageItem,
@@ -2456,9 +2547,14 @@ function AppShellNavigation({
2456
2547
  asideCollapsed = true,
2457
2548
  onAsideToggle,
2458
2549
  onMaxExpand,
2459
- children
2550
+ onAiOpen,
2551
+ isAiOpened,
2552
+ isAiBtnVisible,
2553
+ loading,
2554
+ children,
2555
+ aiNavbarContent
2460
2556
  }) {
2461
- const [navbarCollapsed, { toggle: toggleNavbar }] = hooks.useDisclosure(true);
2557
+ const [isNavbarNotCollapsed, { toggle: toggleNavbar }] = hooks.useDisclosure(true);
2462
2558
  const [asideWidth, setAsideWidth] = react$1.useState(450);
2463
2559
  const theme = useUITheme.useUITheme();
2464
2560
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -2467,7 +2563,8 @@ function AppShellNavigation({
2467
2563
  withBorder: false,
2468
2564
  styles: {
2469
2565
  navbar: {
2470
- background: theme.bg.navScaled
2566
+ background: theme.bg.navScaled,
2567
+ transition: "width 0.3s ease"
2471
2568
  },
2472
2569
  aside: {
2473
2570
  background: theme.bg.navScaled
@@ -2475,7 +2572,7 @@ function AppShellNavigation({
2475
2572
  },
2476
2573
  bg: theme.bg.centralCanvasBg,
2477
2574
  navbar: {
2478
- width: navbarCollapsed ? 300 : 56,
2575
+ width: isNavbarNotCollapsed ? isAiOpened ? 450 : 300 : 56,
2479
2576
  breakpoint: "sm"
2480
2577
  },
2481
2578
  aside: {
@@ -2534,23 +2631,39 @@ function AppShellNavigation({
2534
2631
  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" }) }),
2535
2632
  /* @__PURE__ */ jsxRuntime.jsxs(core.Stack, { align: "center", gap: 8, children: [
2536
2633
  /* @__PURE__ */ jsxRuntime.jsx(core.Divider, { w: 40, mx: 10, color: theme.neutral.transparent10 }),
2537
- /* @__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" }) }),
2538
- !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" }) })
2634
+ /* @__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" }) })
2539
2635
  ] })
2540
2636
  ] }),
2541
- navbarCollapsed && /* @__PURE__ */ jsxRuntime.jsxs(core.Stack, { justify: "space-between", w: "100%", pt: 16, pb: 10, px: 12, children: [
2637
+ isAiOpened && isNavbarNotCollapsed && aiNavbarContent,
2638
+ isNavbarNotCollapsed && !isAiOpened && /* @__PURE__ */ jsxRuntime.jsxs(core.Stack, { justify: "space-between", w: "100%", pt: 16, pb: 10, px: 12, children: [
2542
2639
  /* @__PURE__ */ jsxRuntime.jsxs(core.Stack, { gap: 5, children: [
2543
2640
  /* @__PURE__ */ jsxRuntime.jsxs(Flex, { mb: 24, style: { width: "100%" }, justify: "space-between", align: "center", children: [
2544
2641
  /* @__PURE__ */ jsxRuntime.jsxs(Flex, { align: "center", gap: "10px", children: [
2545
2642
  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 }) }),
2546
2643
  /* @__PURE__ */ jsxRuntime.jsx(core.Text, { lh: 1, c: theme.text.overPicture, children: pageItem.pageTitle || "Unknown" })
2547
2644
  ] }),
2548
- /* @__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" }) }) })
2645
+ isAiBtnVisible && !isAiOpened && /* @__PURE__ */ jsxRuntime.jsx(
2646
+ core.Center,
2647
+ {
2648
+ sx: {
2649
+ cursor: "pointer",
2650
+ borderRadius: 8,
2651
+ transition: "background 0.15s",
2652
+ background: theme.bg.navIconsBg,
2653
+ "&:hover": {
2654
+ background: theme.neutral.transparent30
2655
+ }
2656
+ },
2657
+ p: 4,
2658
+ onClick: onAiOpen,
2659
+ children: /* @__PURE__ */ jsxRuntime.jsx(UsersSolid.Assistant, { size: 18, color: "primary" })
2660
+ }
2661
+ )
2549
2662
  ] }),
2550
- menuItems?.map((item) => /* @__PURE__ */ jsxRuntime.jsx(MenuItem, { onMenuItemClick, item }, item.id)),
2663
+ 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)),
2551
2664
  roomCategories && roomCategories.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(core.Stack, { gap: 8, mt: 16, children: roomCategories.map((category) => /* @__PURE__ */ jsxRuntime.jsx(RoomCategory, { category }, category.id)) })
2552
2665
  ] }),
2553
- /* @__PURE__ */ jsxRuntime.jsx(core.Stack, { gap: 5, children: footerMenuItems?.map((item) => /* @__PURE__ */ jsxRuntime.jsx(MenuItem, { onMenuItemClick, item }, item.id)) })
2666
+ /* @__PURE__ */ jsxRuntime.jsx(core.Stack, { gap: 5, children: loading ? Array.from({ length: 2 }).map((_, idx) => /* @__PURE__ */ jsxRuntime.jsx(NavigationItemSkeleton, {}, idx)) : footerMenuItems?.map((item) => /* @__PURE__ */ jsxRuntime.jsx(MenuItem, { onMenuItemClick, item }, item.id)) })
2554
2667
  ] })
2555
2668
  ] }) }),
2556
2669
  /* @__PURE__ */ jsxRuntime.jsx(core.AppShell.Main, { children }),
@@ -3081,7 +3194,7 @@ function OracleMessage({ oracleName, message }) {
3081
3194
  }
3082
3195
  function UserMessage({ message, sender }) {
3083
3196
  const theme = useUITheme.useUITheme();
3084
- return /* @__PURE__ */ jsxRuntime.jsxs(core.Box, { w: "fit-content", bg: theme.colors.focusTransparent10, sx: { borderRadius: 16 }, py: 12, px: 16, mb: 32, children: [
3197
+ return /* @__PURE__ */ jsxRuntime.jsxs(core.Box, { w: "fit-content", bg: theme.bg.navIconsBg, sx: { borderRadius: 16 }, py: 12, px: 16, mb: 32, children: [
3085
3198
  /* @__PURE__ */ jsxRuntime.jsx(core.Text, { c: theme.text.overPicture, fz: 12, children: sender }),
3086
3199
  /* @__PURE__ */ jsxRuntime.jsx(core.Text, { c: theme.text.overPicture, mt: 10, sx: { wordBreak: "break-all" }, children: message }, message)
3087
3200
  ] });
@@ -4401,7 +4514,8 @@ function FloatingInput({
4401
4514
  className,
4402
4515
  css: () => ({
4403
4516
  backgroundColor: "transparent",
4404
- borderRadius: 24,
4517
+ borderRadius: 20,
4518
+ outline: `1px solid ${theme.colors.focus}`,
4405
4519
  paddingTop: 16,
4406
4520
  position: "relative",
4407
4521
  animation: `${fadeIn} 0.3s ease-out`,
@@ -4498,7 +4612,7 @@ function FloatingInput({
4498
4612
  core.Box,
4499
4613
  {
4500
4614
  p: 16,
4501
- bg: theme.bg.glassmorphics,
4615
+ bg: theme.bg.navSpaces,
4502
4616
  w: 340,
4503
4617
  pos: "absolute",
4504
4618
  left: "50%",
@@ -5532,13 +5646,13 @@ function ActionButton({ onClick, left, right }) {
5532
5646
  }
5533
5647
  );
5534
5648
  }
5535
- const MainAction = react$1.lazy(() => Promise.resolve().then(() => require("./index-DSQZMIiq.cjs")));
5536
- const Header$1 = react$1.lazy(() => Promise.resolve().then(() => require("./index-CvlLzI5F.cjs")));
5537
- const Content = react$1.lazy(() => Promise.resolve().then(() => require("./index-C6QZLB5t.cjs")));
5649
+ const MainAction = react$1.lazy(() => Promise.resolve().then(() => require("./index-CFEGoEU_.cjs")));
5650
+ const Header$1 = react$1.lazy(() => Promise.resolve().then(() => require("./index-C68z2dhs.cjs")));
5651
+ const Content = react$1.lazy(() => Promise.resolve().then(() => require("./index-OFqzHKxE.cjs")));
5538
5652
  const Map = react$1.lazy(() => Promise.resolve().then(() => require("./index-D4PsPquZ.cjs")));
5539
5653
  const CustomContent = react$1.lazy(() => Promise.resolve().then(() => require("./index-ByrCNpS2.cjs")));
5540
- const Assets = react$1.lazy(() => Promise.resolve().then(() => require("./index-Dg7GVuRa.cjs")));
5541
- const Actions = react$1.lazy(() => Promise.resolve().then(() => require("./index-BRD5ffg_.cjs")));
5654
+ const Assets = react$1.lazy(() => Promise.resolve().then(() => require("./index-0QYujsdV.cjs")));
5655
+ const Actions = react$1.lazy(() => Promise.resolve().then(() => require("./index-vMylc9wu.cjs")));
5542
5656
  const HOVER_BORDER_WIDTH = 1;
5543
5657
  function SodaCardCmp({ numSelected = 0, expanded = true, mainAction, header, content, map, customContent, customFooter, actions, assets, onClick }, ref) {
5544
5658
  const wrapperRef = react$1.useRef(null);
@@ -10759,6 +10873,7 @@ function NavigationBar({
10759
10873
  hoveredItem === "user" && user && /* @__PURE__ */ jsxRuntime.jsx(UserModal, { items: userModalItems, position: modalPosition, onMouseEnter: handleModalEnter, onMouseLeave: handleModalLeave })
10760
10874
  ] });
10761
10875
  }
10876
+ exports.AIChatToolbar = AIChatToolbar;
10762
10877
  exports.AIInputBar = AIInputBar;
10763
10878
  exports.AIResponse = AIResponse;
10764
10879
  exports.Accordion = Accordion;
@@ -10850,4 +10965,4 @@ exports.UserMessage = UserMessage;
10850
10965
  exports.WorkspaceModal = WorkspaceModal;
10851
10966
  exports.cutText = cutText;
10852
10967
  exports.isValidClick = isValidClick;
10853
- //# sourceMappingURL=components-BNly6Y-x.cjs.map
10968
+ //# sourceMappingURL=components-Disquhlg.cjs.map