@ixo/ui 0.0.4 → 0.0.6

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 (78) hide show
  1. package/dist/.vite/manifest.json +50 -50
  2. package/dist/{UsersSolid-Cr_JcwNT.cjs → UsersSolid-Bj2vwEHq.cjs} +1 -33
  3. package/dist/UsersSolid-Bj2vwEHq.cjs.map +1 -0
  4. package/dist/{UsersSolid-CEMcHCoD.js → UsersSolid-CYOWcNJV.js} +42 -74
  5. package/dist/{UsersSolid-Cr_JcwNT.cjs.map → UsersSolid-CYOWcNJV.js.map} +1 -1
  6. package/dist/components/AppShellNavigation/index.d.ts +46 -0
  7. package/dist/components/AppShellNavigation/index.d.ts.map +1 -0
  8. package/dist/components/NavigationBar/MoreModal.d.ts +4 -2
  9. package/dist/components/NavigationBar/MoreModal.d.ts.map +1 -1
  10. package/dist/components/NavigationBar/NavigationBar.d.ts.map +1 -1
  11. package/dist/{components-_1aj7fli.cjs → components-2IYis_pS.cjs} +305 -139
  12. package/dist/components-2IYis_pS.cjs.map +1 -0
  13. package/dist/{components-qFMVWjVp.js → components-BoLr9Qow.js} +371 -205
  14. package/dist/components-BoLr9Qow.js.map +1 -0
  15. package/dist/constants/themes.d.ts.map +1 -1
  16. package/dist/export/components.cjs +2 -1
  17. package/dist/export/components.cjs.map +1 -1
  18. package/dist/export/components.d.ts +2 -0
  19. package/dist/export/components.d.ts.map +1 -1
  20. package/dist/export/components.mjs +67 -66
  21. package/dist/export/icons/index.cjs +33 -3
  22. package/dist/export/icons/index.cjs.map +1 -1
  23. package/dist/export/icons/index.mjs +75 -45
  24. package/dist/export/icons/index.mjs.map +1 -1
  25. package/dist/export/themes.cjs +1 -1
  26. package/dist/export/themes.mjs +1 -1
  27. package/dist/{index-Buc_qqM8.js → index-2RkJbTMY.js} +2 -2
  28. package/dist/{index-Buc_qqM8.js.map → index-2RkJbTMY.js.map} +1 -1
  29. package/dist/{index-DOi5Kjo8.cjs → index-7ENn--8R.cjs} +2 -2
  30. package/dist/{index-DOi5Kjo8.cjs.map → index-7ENn--8R.cjs.map} +1 -1
  31. package/dist/{index-C6py_EuP.js → index-7eiS7IVr.js} +2 -2
  32. package/dist/{index-C6py_EuP.js.map → index-7eiS7IVr.js.map} +1 -1
  33. package/dist/{index-CDhhze5V.cjs → index-B6xg69Dq.cjs} +2 -2
  34. package/dist/{index-CDhhze5V.cjs.map → index-B6xg69Dq.cjs.map} +1 -1
  35. package/dist/{index-nO1TT3Hv.cjs → index-BViyRAH_.cjs} +3 -3
  36. package/dist/{index-nO1TT3Hv.cjs.map → index-BViyRAH_.cjs.map} +1 -1
  37. package/dist/{index-sTelSbrd.js → index-Bd5Hg5BP.js} +2 -2
  38. package/dist/{index-sTelSbrd.js.map → index-Bd5Hg5BP.js.map} +1 -1
  39. package/dist/{index-BAoRqihu.js → index-BfkAX8vS.js} +2 -2
  40. package/dist/{index-BAoRqihu.js.map → index-BfkAX8vS.js.map} +1 -1
  41. package/dist/{index-yE1fBF8R.js → index-BwK5-98B.js} +2 -2
  42. package/dist/{index-yE1fBF8R.js.map → index-BwK5-98B.js.map} +1 -1
  43. package/dist/{index-BRCeR851.cjs → index-C68HB9Av.cjs} +2 -2
  44. package/dist/{index-BRCeR851.cjs.map → index-C68HB9Av.cjs.map} +1 -1
  45. package/dist/{index-4Ok7zUt7.js → index-CNWC1hG3.js} +3 -3
  46. package/dist/{index-4Ok7zUt7.js.map → index-CNWC1hG3.js.map} +1 -1
  47. package/dist/{index-qhANrzdI.js → index-D-yx5xCK.js} +3 -3
  48. package/dist/{index-qhANrzdI.js.map → index-D-yx5xCK.js.map} +1 -1
  49. package/dist/{index-CcgvizQl.cjs → index-D9Jjiwns.cjs} +2 -2
  50. package/dist/{index-CcgvizQl.cjs.map → index-D9Jjiwns.cjs.map} +1 -1
  51. package/dist/{index-BAhWhzU2.cjs → index-DBvgEa5H.cjs} +3 -3
  52. package/dist/{index-BAhWhzU2.cjs.map → index-DBvgEa5H.cjs.map} +1 -1
  53. package/dist/{index-DeBEdBiR.js → index-DRT7h4xd.js} +2 -2
  54. package/dist/{index-DeBEdBiR.js.map → index-DRT7h4xd.js.map} +1 -1
  55. package/dist/{index-DGfDxTQ6.cjs → index-D_Sg8YF7.cjs} +2 -2
  56. package/dist/{index-DGfDxTQ6.cjs.map → index-D_Sg8YF7.cjs.map} +1 -1
  57. package/dist/{index-9wbX0zfU.cjs → index-Dit9UCpC.cjs} +2 -2
  58. package/dist/{index-9wbX0zfU.cjs.map → index-Dit9UCpC.cjs.map} +1 -1
  59. package/dist/{index-B-QsOYPK.cjs → index-DoeAXBYv.cjs} +2 -2
  60. package/dist/{index-B-QsOYPK.cjs.map → index-DoeAXBYv.cjs.map} +1 -1
  61. package/dist/{index-DQYpSmzE.js → index-GZOZ7L0s.js} +3 -3
  62. package/dist/{index-DQYpSmzE.js.map → index-GZOZ7L0s.js.map} +1 -1
  63. package/dist/{index-r8jIjbnw.cjs → index-Jt88FVTH.cjs} +3 -3
  64. package/dist/{index-r8jIjbnw.cjs.map → index-Jt88FVTH.cjs.map} +1 -1
  65. package/dist/{index-DkjLBaSk.js → index-ufMtBCkV.js} +2 -2
  66. package/dist/{index-DkjLBaSk.js.map → index-ufMtBCkV.js.map} +1 -1
  67. package/dist/{themes-BxAZpKEj.js → themes-B3gRP8Wm.js} +3 -1
  68. package/dist/themes-B3gRP8Wm.js.map +1 -0
  69. package/dist/{themes-ssj6M2ml.cjs → themes-DxTEP-Kl.cjs} +3 -1
  70. package/dist/themes-DxTEP-Kl.cjs.map +1 -0
  71. package/dist/types/UITheme.d.ts +2 -0
  72. package/dist/types/UITheme.d.ts.map +1 -1
  73. package/package.json +1 -1
  74. package/dist/UsersSolid-CEMcHCoD.js.map +0 -1
  75. package/dist/components-_1aj7fli.cjs.map +0 -1
  76. package/dist/components-qFMVWjVp.js.map +0 -1
  77. package/dist/themes-BxAZpKEj.js.map +0 -1
  78. package/dist/themes-ssj6M2ml.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-Cr_JcwNT.cjs");
27
+ const UsersSolid = require("./UsersSolid-Bj2vwEHq.cjs");
28
28
  const react$1 = require("react");
29
29
  const constants = require("./constants-DFJRYpE2.cjs");
30
30
  const core = require("@mantine/core");
@@ -32,15 +32,15 @@ const css = require("@emotion/css");
32
32
  const reactDom = require("react-dom");
33
33
  const DOMPurify = require("dompurify");
34
34
  const reactTinyPopover = require("react-tiny-popover");
35
+ const hooks = require("@mantine/hooks");
35
36
  const useUITheme = require("./useUITheme-DqgAb7n1.cjs");
36
37
  const Markdown = require("react-markdown");
37
38
  const remarkGfm = require("remark-gfm");
38
39
  const downshift = require("downshift");
39
- const hooks = require("@mantine/hooks");
40
40
  const dayjs = require("dayjs");
41
41
  const Blank = require("./Blank-DapEucFF.cjs");
42
42
  const useEventSubscribe = require("./useEventSubscribe-BTFTMdWH.cjs");
43
- const themes = require("./themes-ssj6M2ml.cjs");
43
+ const themes = require("./themes-DxTEP-Kl.cjs");
44
44
  function SlideUpArea({ children, isVisible }) {
45
45
  return /* @__PURE__ */ jsxRuntime.jsx(
46
46
  "div",
@@ -797,8 +797,8 @@ function AccordionTable({
797
797
  }
798
798
  );
799
799
  }
800
- const Header$3 = react$1.lazy(() => Promise.resolve().then(() => require("./index-BAhWhzU2.cjs")));
801
- const Footer = react$1.lazy(() => Promise.resolve().then(() => require("./index-nO1TT3Hv.cjs")));
800
+ const Header$3 = react$1.lazy(() => Promise.resolve().then(() => require("./index-DBvgEa5H.cjs")));
801
+ const Footer = react$1.lazy(() => Promise.resolve().then(() => require("./index-BViyRAH_.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-DGfDxTQ6.cjs")));
885
+ const Header$2 = react$1.lazy(() => Promise.resolve().then(() => require("./index-D_Sg8YF7.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-CDhhze5V.cjs")));
1320
+ const Badge = react$1.lazy(() => Promise.resolve().then(() => require("./index-B6xg69Dq.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);
@@ -2095,6 +2095,281 @@ function Avatar({ src, rounded = true, size = 62, did }) {
2095
2095
  }
2096
2096
  return /* @__PURE__ */ jsxRuntime.jsx(UsersSolid.User, { css: ({ text }) => ({ ...css2, backgroundColor: text.secondary }) });
2097
2097
  }
2098
+ const Flex = react$1.forwardRef(
2099
+ ({
2100
+ direction = "row",
2101
+ align = "stretch",
2102
+ justify = "flex-start",
2103
+ gap = 0,
2104
+ m = 0,
2105
+ mt = 0,
2106
+ mb = 0,
2107
+ ml = 0,
2108
+ mr = 0,
2109
+ mx = 0,
2110
+ my = 0,
2111
+ p = 0,
2112
+ pt = 0,
2113
+ pb = 0,
2114
+ pl = 0,
2115
+ pr = 0,
2116
+ px = 0,
2117
+ py = 0,
2118
+ bg,
2119
+ radius = 0,
2120
+ children,
2121
+ ...props
2122
+ }, ref) => {
2123
+ return /* @__PURE__ */ jsxRuntime.jsx(
2124
+ "div",
2125
+ {
2126
+ ref,
2127
+ ...props,
2128
+ style: {
2129
+ display: "flex",
2130
+ flexDirection: direction,
2131
+ alignItems: align,
2132
+ justifyContent: justify,
2133
+ gap,
2134
+ margin: m,
2135
+ marginTop: mt || my,
2136
+ marginBottom: mb || my,
2137
+ marginLeft: ml || mx,
2138
+ marginRight: mr || mx,
2139
+ padding: p,
2140
+ paddingTop: pt || py,
2141
+ paddingBottom: pb || py,
2142
+ paddingLeft: pl || px,
2143
+ paddingRight: pr || px,
2144
+ backgroundColor: bg,
2145
+ borderRadius: radius,
2146
+ ...props.style
2147
+ },
2148
+ children
2149
+ }
2150
+ );
2151
+ }
2152
+ );
2153
+ Flex.displayName = "Flex";
2154
+ function SpaceItem({ icon, id, onClick }) {
2155
+ const { hovered, ref } = hooks.useHover();
2156
+ const theme = useUITheme.useUITheme();
2157
+ return /* @__PURE__ */ jsxRuntime.jsx(
2158
+ core.Center,
2159
+ {
2160
+ ref,
2161
+ sx: {
2162
+ cursor: "pointer",
2163
+ borderRadius: 24,
2164
+ transform: hovered ? "scale(1.1)" : "scale(1)",
2165
+ transition: "transform 0.2s ease"
2166
+ },
2167
+ pos: "relative",
2168
+ bg: hovered ? theme.neutral.transparent10 : theme.bg.navScaled,
2169
+ mih: 40,
2170
+ w: 40,
2171
+ onClick: () => onClick(id),
2172
+ children: typeof icon === "string" ? /* @__PURE__ */ jsxRuntime.jsx(core.Image, { radius: 24, src: icon, w: 32, h: 32 }) : icon
2173
+ }
2174
+ );
2175
+ }
2176
+ function MenuItem({ item, onMenuItemClick }) {
2177
+ const { hovered, ref } = hooks.useHover();
2178
+ const theme = useUITheme.useUITheme();
2179
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2180
+ Flex,
2181
+ {
2182
+ ref,
2183
+ align: "center",
2184
+ gap: 8,
2185
+ px: 12,
2186
+ py: 6,
2187
+ style: {
2188
+ cursor: "pointer",
2189
+ borderRadius: 8,
2190
+ backgroundColor: item.isActive ? theme.neutral.transparent10 : hovered ? theme.neutral.transparent10 : "transparent",
2191
+ transform: hovered ? "translateX(4px)" : "translateX(0px)",
2192
+ transition: "all 0.2s ease"
2193
+ },
2194
+ onClick: () => onMenuItemClick(item),
2195
+ children: [
2196
+ /* @__PURE__ */ jsxRuntime.jsx(item.icon, { size: 20, color: "secondary" }),
2197
+ /* @__PURE__ */ jsxRuntime.jsx(core.Text, { fz: 14, c: theme.neutral.lightGray, children: item.name })
2198
+ ]
2199
+ }
2200
+ );
2201
+ }
2202
+ function RoomItem({ room }) {
2203
+ const { hovered, ref } = hooks.useHover();
2204
+ const theme = useUITheme.useUITheme();
2205
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2206
+ Flex,
2207
+ {
2208
+ ref,
2209
+ align: "center",
2210
+ gap: 8,
2211
+ px: 12,
2212
+ py: 4,
2213
+ ml: 16,
2214
+ style: {
2215
+ cursor: "pointer",
2216
+ borderRadius: 6,
2217
+ backgroundColor: room.isActive || hovered ? theme.neutral.transparent10 : "transparent",
2218
+ transform: hovered ? "translateX(2px)" : "translateX(0px)",
2219
+ transition: "all 0.15s ease"
2220
+ },
2221
+ onClick: () => room.onClick(room.id),
2222
+ children: [
2223
+ /* @__PURE__ */ jsxRuntime.jsx(room.icon, { size: 16, color: "secondary" }),
2224
+ /* @__PURE__ */ jsxRuntime.jsx(core.Text, { fz: 13, c: theme.text.secondary, children: room.name })
2225
+ ]
2226
+ }
2227
+ );
2228
+ }
2229
+ function RoomCategory({ category }) {
2230
+ const { hovered, ref } = hooks.useHover();
2231
+ const theme = useUITheme.useUITheme();
2232
+ const { value, toggle } = useToggle(false);
2233
+ return /* @__PURE__ */ jsxRuntime.jsxs(core.Stack, { gap: 2, children: [
2234
+ /* @__PURE__ */ jsxRuntime.jsxs(
2235
+ Flex,
2236
+ {
2237
+ ref,
2238
+ align: "center",
2239
+ justify: "space-between",
2240
+ px: 12,
2241
+ py: 4,
2242
+ style: {
2243
+ cursor: "pointer",
2244
+ borderRadius: 6,
2245
+ backgroundColor: hovered ? theme.neutral.transparent50 : "transparent",
2246
+ transition: "all 0.15s ease"
2247
+ },
2248
+ onClick: toggle,
2249
+ children: [
2250
+ /* @__PURE__ */ jsxRuntime.jsx(core.Text, { fz: 12, c: theme.neutral.lightGray, children: category.name }),
2251
+ /* @__PURE__ */ jsxRuntime.jsx(
2252
+ core.Center,
2253
+ {
2254
+ sx: {
2255
+ transform: value ? "rotate(-90deg)" : "rotate(0deg)",
2256
+ transition: "transform 0.2s ease"
2257
+ },
2258
+ children: /* @__PURE__ */ jsxRuntime.jsx(UsersSolid.AngleLeftSolid, { size: 12, color: "secondary" })
2259
+ }
2260
+ )
2261
+ ]
2262
+ }
2263
+ ),
2264
+ !value && /* @__PURE__ */ jsxRuntime.jsx(core.Stack, { gap: 1, children: category.rooms.map((room) => /* @__PURE__ */ jsxRuntime.jsx(RoomItem, { room }, room.id)) })
2265
+ ] });
2266
+ }
2267
+ function AppShellNavigation({
2268
+ spaces,
2269
+ selectedSpace,
2270
+ menuItems,
2271
+ roomCategories,
2272
+ companyIcon,
2273
+ onAddSpaceClick,
2274
+ avatarIcon,
2275
+ onMenuItemClick,
2276
+ onPersonalSpaceClick,
2277
+ children
2278
+ }) {
2279
+ const [desktopOpened, { toggle: toggleDesktop }] = hooks.useDisclosure(true);
2280
+ const theme = useUITheme.useUITheme();
2281
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2282
+ core.AppShell,
2283
+ {
2284
+ withBorder: false,
2285
+ styles: {
2286
+ navbar: {
2287
+ background: theme.bg.navScaled
2288
+ }
2289
+ },
2290
+ bg: theme.bg.navScaled,
2291
+ navbar: {
2292
+ width: desktopOpened ? 300 : 56,
2293
+ breakpoint: "sm"
2294
+ },
2295
+ children: [
2296
+ /* @__PURE__ */ jsxRuntime.jsx(core.AppShell.Navbar, { children: /* @__PURE__ */ jsxRuntime.jsxs(Flex, { style: { height: "100%" }, children: [
2297
+ /* @__PURE__ */ jsxRuntime.jsxs(core.Stack, { p: 8, w: 56, justify: "space-between", h: "100%", bg: theme.bg.navSpaces, children: [
2298
+ /* @__PURE__ */ jsxRuntime.jsxs(core.Stack, { align: "center", style: { flex: 1, overflowY: "auto", overflowX: "hidden" }, gap: 8, children: [
2299
+ /* @__PURE__ */ jsxRuntime.jsx(core.Center, { sx: { cursor: "pointer", borderRadius: 24 }, bg: theme.bg.navScaled, h: 40, w: 40, onClick: companyIcon.onClick, children: typeof companyIcon.icon === "string" ? /* @__PURE__ */ jsxRuntime.jsx(core.Image, { radius: 24, src: companyIcon.icon, w: 32, h: 32 }) : companyIcon.icon }),
2300
+ /* @__PURE__ */ jsxRuntime.jsx(core.Center, { sx: { cursor: "pointer", borderRadius: 24 }, bg: theme.bg.navScaled, h: 40, w: 40, onClick: onPersonalSpaceClick, children: /* @__PURE__ */ jsxRuntime.jsx(UsersSolid.User, { color: "secondary" }) }),
2301
+ /* @__PURE__ */ jsxRuntime.jsx(core.Divider, { w: 40, mx: 10, color: theme.neutral.transparent10 }),
2302
+ /* @__PURE__ */ jsxRuntime.jsx(
2303
+ core.Stack,
2304
+ {
2305
+ align: "center",
2306
+ gap: 8,
2307
+ style: {
2308
+ flex: 1,
2309
+ overflowY: "auto",
2310
+ maxHeight: "calc(100vh - 300px)",
2311
+ scrollbarWidth: "none",
2312
+ msOverflowStyle: "none"
2313
+ },
2314
+ sx: {
2315
+ "&::-webkit-scrollbar": {
2316
+ display: "none"
2317
+ }
2318
+ },
2319
+ children: spaces.map(({ icon, id, name, onClick }, i) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2320
+ selectedSpace === id && /* @__PURE__ */ jsxRuntime.jsx(core.Paper, { bg: theme.neutral.whiteFull, h: 30, w: 4, pos: "absolute", left: 0, top: 116 + i * 49.5 }),
2321
+ /* @__PURE__ */ jsxRuntime.jsx(SpaceItem, { icon, name, id, onClick }, id)
2322
+ ] }))
2323
+ }
2324
+ )
2325
+ ] }),
2326
+ /* @__PURE__ */ jsxRuntime.jsx(core.Center, { sx: { cursor: "pointer", borderRadius: 24 }, bg: theme.bg.navScaled, h: 40, w: 40, onClick: onAddSpaceClick, children: /* @__PURE__ */ jsxRuntime.jsx(UsersSolid.PlusSolid, { color: "secondary" }) }),
2327
+ /* @__PURE__ */ jsxRuntime.jsxs(core.Stack, { align: "center", gap: 8, children: [
2328
+ /* @__PURE__ */ jsxRuntime.jsx(core.Divider, { w: 40, mx: 10, color: theme.neutral.transparent10 }),
2329
+ /* @__PURE__ */ jsxRuntime.jsx(core.Center, { sx: { cursor: "pointer", borderRadius: 24 }, bg: theme.bg.navScaled, h: 40, w: 40, onClick: avatarIcon.onClick, children: typeof avatarIcon.icon === "string" ? /* @__PURE__ */ jsxRuntime.jsx(core.Image, { radius: 24, src: avatarIcon.icon, w: 32, h: 32 }) : avatarIcon.icon }),
2330
+ !desktopOpened && /* @__PURE__ */ jsxRuntime.jsx(core.Center, { sx: { cursor: "pointer", borderRadius: 24 }, bg: theme.bg.navScaled, h: 40, w: 40, onClick: toggleDesktop, children: /* @__PURE__ */ jsxRuntime.jsx(UsersSolid.AngleRightSolid, { color: "secondary" }) })
2331
+ ] })
2332
+ ] }),
2333
+ desktopOpened && /* @__PURE__ */ jsxRuntime.jsxs(core.Stack, { w: "100%", gap: 5, py: 16, px: 12, children: [
2334
+ /* @__PURE__ */ jsxRuntime.jsxs(Flex, { mb: 24, style: { width: "100%" }, justify: "space-between", align: "center", children: [
2335
+ /* @__PURE__ */ jsxRuntime.jsx(core.Text, { lh: 1, c: theme.text.overPicture, children: spaces.find(({ id }) => id === selectedSpace)?.name || "Unknown" }),
2336
+ /* @__PURE__ */ jsxRuntime.jsxs(Flex, { gap: 12, align: "center", children: [
2337
+ /* @__PURE__ */ jsxRuntime.jsx(UsersSolid.EllipsisHSolid, { color: "secondary" }),
2338
+ /* @__PURE__ */ jsxRuntime.jsx(core.Center, { sx: { cursor: "pointer" }, onClick: toggleDesktop, children: /* @__PURE__ */ jsxRuntime.jsx(UsersSolid.AngleLeftSolid, { color: "secondary" }) })
2339
+ ] })
2340
+ ] }),
2341
+ menuItems?.map((item) => /* @__PURE__ */ jsxRuntime.jsx(MenuItem, { onMenuItemClick, item }, item.id)),
2342
+ /* @__PURE__ */ jsxRuntime.jsxs(
2343
+ Flex,
2344
+ {
2345
+ align: "center",
2346
+ gap: 8,
2347
+ px: 12,
2348
+ py: 6,
2349
+ style: {
2350
+ cursor: "pointer",
2351
+ borderRadius: 8,
2352
+ backgroundColor: "transparent"
2353
+ },
2354
+ onClick: () => {
2355
+ },
2356
+ children: [
2357
+ /* @__PURE__ */ jsxRuntime.jsx(UsersSolid.EllipsisHSolid, { size: 20, color: "secondary" }),
2358
+ /* @__PURE__ */ jsxRuntime.jsx(core.Text, { fz: 14, c: theme.neutral.lightGray, children: "More" })
2359
+ ]
2360
+ }
2361
+ ),
2362
+ roomCategories && roomCategories.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2363
+ /* @__PURE__ */ jsxRuntime.jsx(core.Text, { pl: 11, mt: 16, fz: 14, c: theme.neutral.lightGray, children: "Rooms" }),
2364
+ /* @__PURE__ */ jsxRuntime.jsx(core.Stack, { gap: 8, children: roomCategories.map((category) => /* @__PURE__ */ jsxRuntime.jsx(RoomCategory, { category }, category.id)) })
2365
+ ] })
2366
+ ] })
2367
+ ] }) }),
2368
+ /* @__PURE__ */ jsxRuntime.jsx(core.AppShell.Main, { children })
2369
+ ]
2370
+ }
2371
+ );
2372
+ }
2098
2373
  function AvatarInfo({ src, title, description, onClick }) {
2099
2374
  const content = /* @__PURE__ */ jsxRuntime.jsxs(Spacer, { children: [
2100
2375
  /* @__PURE__ */ jsxRuntime.jsx(Avatar, { size: 40, src }),
@@ -3737,62 +4012,6 @@ function DomainToolbarTypes({ domainType, active, onClick, ConnectActive }) {
3737
4012
  document.body
3738
4013
  );
3739
4014
  }
3740
- const Flex = react$1.forwardRef(
3741
- ({
3742
- direction = "row",
3743
- align = "stretch",
3744
- justify = "flex-start",
3745
- gap = 0,
3746
- m = 0,
3747
- mt = 0,
3748
- mb = 0,
3749
- ml = 0,
3750
- mr = 0,
3751
- mx = 0,
3752
- my = 0,
3753
- p = 0,
3754
- pt = 0,
3755
- pb = 0,
3756
- pl = 0,
3757
- pr = 0,
3758
- px = 0,
3759
- py = 0,
3760
- bg,
3761
- radius = 0,
3762
- children,
3763
- ...props
3764
- }, ref) => {
3765
- return /* @__PURE__ */ jsxRuntime.jsx(
3766
- "div",
3767
- {
3768
- ref,
3769
- ...props,
3770
- style: {
3771
- display: "flex",
3772
- flexDirection: direction,
3773
- alignItems: align,
3774
- justifyContent: justify,
3775
- gap,
3776
- margin: m,
3777
- marginTop: mt || my,
3778
- marginBottom: mb || my,
3779
- marginLeft: ml || mx,
3780
- marginRight: mr || mx,
3781
- padding: p,
3782
- paddingTop: pt || py,
3783
- paddingBottom: pb || py,
3784
- paddingLeft: pl || px,
3785
- paddingRight: pr || px,
3786
- backgroundColor: bg,
3787
- borderRadius: radius,
3788
- ...props.style
3789
- },
3790
- children
3791
- }
3792
- );
3793
- }
3794
- );
3795
- Flex.displayName = "Flex";
3796
4015
  const CommandItem = ({
3797
4016
  name,
3798
4017
  description,
@@ -5082,13 +5301,13 @@ function ActionButton({ onClick, left, right }) {
5082
5301
  }
5083
5302
  );
5084
5303
  }
5085
- const MainAction = react$1.lazy(() => Promise.resolve().then(() => require("./index-DOi5Kjo8.cjs")));
5086
- const Header$1 = react$1.lazy(() => Promise.resolve().then(() => require("./index-CcgvizQl.cjs")));
5087
- const Content = react$1.lazy(() => Promise.resolve().then(() => require("./index-B-QsOYPK.cjs")));
5304
+ const MainAction = react$1.lazy(() => Promise.resolve().then(() => require("./index-7ENn--8R.cjs")));
5305
+ const Header$1 = react$1.lazy(() => Promise.resolve().then(() => require("./index-D9Jjiwns.cjs")));
5306
+ const Content = react$1.lazy(() => Promise.resolve().then(() => require("./index-DoeAXBYv.cjs")));
5088
5307
  const Map = react$1.lazy(() => Promise.resolve().then(() => require("./index-D4PsPquZ.cjs")));
5089
5308
  const CustomContent = react$1.lazy(() => Promise.resolve().then(() => require("./index-ByrCNpS2.cjs")));
5090
- const Assets = react$1.lazy(() => Promise.resolve().then(() => require("./index-9wbX0zfU.cjs")));
5091
- const Actions = react$1.lazy(() => Promise.resolve().then(() => require("./index-r8jIjbnw.cjs")));
5309
+ const Assets = react$1.lazy(() => Promise.resolve().then(() => require("./index-Dit9UCpC.cjs")));
5310
+ const Actions = react$1.lazy(() => Promise.resolve().then(() => require("./index-Jt88FVTH.cjs")));
5092
5311
  const HOVER_BORDER_WIDTH = 1;
5093
5312
  function SodaCardCmp({ numSelected = 0, expanded = true, mainAction, header, content, map, customContent, customFooter, actions, assets, onClick }, ref) {
5094
5313
  const wrapperRef = react$1.useRef(null);
@@ -9471,22 +9690,6 @@ function NavigationActionSelector({ action, onClick }) {
9471
9690
  color: "rgba(255, 255, 255, 0.5)",
9472
9691
  margin: 0
9473
9692
  };
9474
- const premiumTagStyle = {
9475
- display: "flex",
9476
- alignItems: "center",
9477
- padding: "0 8px",
9478
- height: "20px",
9479
- background: "rgba(0, 210, 255, 0.2)",
9480
- borderRadius: "16px",
9481
- fontSize: "12px",
9482
- fontWeight: "400",
9483
- color: "#00D2FF",
9484
- fontFamily: theme.font.main,
9485
- position: "absolute",
9486
- right: "16px",
9487
- top: "50%",
9488
- transform: "translateY(-50%)"
9489
- };
9490
9693
  const handleClick = () => {
9491
9694
  onClick?.(action);
9492
9695
  };
@@ -9500,53 +9703,12 @@ function NavigationActionSelector({ action, onClick }) {
9500
9703
  return /* @__PURE__ */ jsxRuntime.jsxs("button", { style: containerStyle, onClick: handleClick, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, children: [
9501
9704
  /* @__PURE__ */ jsxRuntime.jsx("div", { style: iconContainerStyle, children: /* @__PURE__ */ jsxRuntime.jsx(IconComponent, {}) }),
9502
9705
  /* @__PURE__ */ jsxRuntime.jsxs("div", { style: textContentStyle, children: [
9503
- /* @__PURE__ */ jsxRuntime.jsx("div", { style: titleStyle, children: action.title }),
9504
- /* @__PURE__ */ jsxRuntime.jsx("div", { style: descriptionStyle, children: action.description })
9505
- ] }),
9506
- action.isPremium && /* @__PURE__ */ jsxRuntime.jsx("div", { style: premiumTagStyle, children: "Premium" })
9706
+ /* @__PURE__ */ jsxRuntime.jsx("div", { style: titleStyle, children: action.label }),
9707
+ /* @__PURE__ */ jsxRuntime.jsx("div", { style: descriptionStyle, children: action.label })
9708
+ ] })
9507
9709
  ] });
9508
9710
  }
9509
- function MoreModal({ position, onMouseEnter, onMouseLeave, additionalItems }) {
9510
- const defaultNavigationActions = [
9511
- {
9512
- id: "resources",
9513
- title: "Resources",
9514
- description: "Linked Resources of the Domain",
9515
- Icon: UsersSolid.Resources
9516
- },
9517
- {
9518
- id: "activity",
9519
- title: "Activity",
9520
- description: "Show the past activity of the Domain",
9521
- Icon: UsersSolid.HistorySolid
9522
- },
9523
- {
9524
- id: "credentials",
9525
- title: "Credentials",
9526
- description: "Shows the Credentials of the Domain",
9527
- Icon: UsersSolid.ShieldAltSolid
9528
- },
9529
- {
9530
- id: "impacts",
9531
- title: "Impacts",
9532
- description: "Verify the impacts of your Domain",
9533
- Icon: UsersSolid.Resources,
9534
- // Using Resources as placeholder for impacts icon
9535
- isPremium: true
9536
- }
9537
- ];
9538
- const convertNavItemsToActions = (items) => {
9539
- return items.map((item) => ({
9540
- id: item.id,
9541
- title: item.label,
9542
- description: `Navigate to ${item.label}`,
9543
- // Generic description
9544
- Icon: item.Icon,
9545
- isPremium: false
9546
- // NavItems don't have premium flag
9547
- }));
9548
- };
9549
- const navigationActions = additionalItems.length > 0 ? convertNavItemsToActions(additionalItems) : defaultNavigationActions;
9711
+ function MoreModal({ onItemClick, position, onMouseEnter, onMouseLeave, items }) {
9550
9712
  const modalStyle = {
9551
9713
  position: "fixed",
9552
9714
  left: `${position.x}px`,
@@ -9584,12 +9746,9 @@ function MoreModal({ position, onMouseEnter, onMouseLeave, additionalItems }) {
9584
9746
  scrollbarWidth: "thin",
9585
9747
  scrollbarColor: "rgba(255, 255, 255, 0.3) transparent"
9586
9748
  };
9587
- const handleActionClick = (action) => {
9588
- console.log("Clicked navigation action:", action);
9589
- };
9590
9749
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { style: modalStyle, onMouseEnter, onMouseLeave, children: [
9591
9750
  /* @__PURE__ */ jsxRuntime.jsx("div", { style: headerStyle, children: /* @__PURE__ */ jsxRuntime.jsx(Typography.Text, { size: "xs", color: "overPicture", children: "More" }) }),
9592
- /* @__PURE__ */ jsxRuntime.jsx("div", { style: navigationActionsContainerStyle, children: navigationActions.map((action) => /* @__PURE__ */ jsxRuntime.jsx(NavigationActionSelector, { action, onClick: handleActionClick }, action.id)) })
9751
+ /* @__PURE__ */ jsxRuntime.jsx("div", { style: navigationActionsContainerStyle, children: onItemClick && items.map((action) => /* @__PURE__ */ jsxRuntime.jsx(NavigationActionSelector, { action, onClick: () => onItemClick(action) }, action.id)) })
9593
9752
  ] });
9594
9753
  }
9595
9754
  function SpaceSelector({ space, onClick, className }) {
@@ -10223,15 +10382,12 @@ function NavigationBar({
10223
10382
  if (estimatedModalHeight <= dynamicNavHeight) {
10224
10383
  maxHeight = dynamicNavHeight;
10225
10384
  yPosition = dynamicRect.bottom - estimatedModalHeight;
10226
- console.log(`Small modal: positioning at Y=${yPosition} (DynamicNav bottom - modal height)`);
10227
10385
  } else if (estimatedModalHeight <= navBarRect.height) {
10228
10386
  maxHeight = navBarRect.height;
10229
10387
  yPosition = navBarRect.top;
10230
- console.log(`Medium modal: positioning at Y=${yPosition} (NavigationBar top)`);
10231
10388
  } else {
10232
10389
  maxHeight = navBarRect.height;
10233
10390
  yPosition = navBarRect.top;
10234
- console.log(`Large modal: positioning at Y=${yPosition} (NavigationBar top, will be scrollable)`);
10235
10391
  }
10236
10392
  }
10237
10393
  } else if (itemId === "workspaces") {
@@ -10242,7 +10398,6 @@ function NavigationBar({
10242
10398
  yPosition = navBarRect.bottom;
10243
10399
  }
10244
10400
  } else {
10245
- console.warn("NavigationBar rect not found, using fallback positioning");
10246
10401
  xPosition = rect.right + 8;
10247
10402
  yPosition = rect.top;
10248
10403
  maxHeight = Math.min(400, window.innerHeight - rect.top - 20);
@@ -10346,7 +10501,17 @@ function NavigationBar({
10346
10501
  onEcosystemClick
10347
10502
  }
10348
10503
  ),
10349
- hoveredItem === "more" && /* @__PURE__ */ jsxRuntime.jsx(MoreModal, { position: modalPosition, onClose: handleModalLeave, onMouseEnter: handleModalEnter, onMouseLeave: handleModalLeave, additionalItems: getMoreItems() }),
10504
+ hoveredItem === "more" && /* @__PURE__ */ jsxRuntime.jsx(
10505
+ MoreModal,
10506
+ {
10507
+ position: modalPosition,
10508
+ onClose: handleModalLeave,
10509
+ onItemClick: onNavigate,
10510
+ onMouseEnter: handleModalEnter,
10511
+ onMouseLeave: handleModalLeave,
10512
+ items: getMoreItems()
10513
+ }
10514
+ ),
10350
10515
  hoveredItem === "workspaces" && /* @__PURE__ */ jsxRuntime.jsx(
10351
10516
  WorkspaceModal,
10352
10517
  {
@@ -10372,6 +10537,7 @@ exports.ActionCard = ActionCard;
10372
10537
  exports.ActionSheet = ActionSheet;
10373
10538
  exports.ActionSheetCompanion = ActionSheetCompanion;
10374
10539
  exports.ActivityCard = ActivityCard;
10540
+ exports.AppShellNavigation = AppShellNavigation;
10375
10541
  exports.Avatar = Avatar;
10376
10542
  exports.AvatarInfo = AvatarInfo;
10377
10543
  exports.Button = Button;
@@ -10453,4 +10619,4 @@ exports.UserMessage = UserMessage;
10453
10619
  exports.WorkspaceModal = WorkspaceModal;
10454
10620
  exports.cutText = cutText;
10455
10621
  exports.isValidClick = isValidClick;
10456
- //# sourceMappingURL=components-_1aj7fli.cjs.map
10622
+ //# sourceMappingURL=components-2IYis_pS.cjs.map