@ixo/ui 0.0.6 → 0.0.8

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 (86) hide show
  1. package/dist/.vite/manifest.json +54 -54
  2. package/dist/{UsersSolid-Bj2vwEHq.cjs → UsersSolid-B9DXA9NX.cjs} +41 -1
  3. package/dist/UsersSolid-B9DXA9NX.cjs.map +1 -0
  4. package/dist/{UsersSolid-CYOWcNJV.js → UsersSolid-DNy80FwB.js} +82 -42
  5. package/dist/UsersSolid-DNy80FwB.js.map +1 -0
  6. package/dist/components/AppShellNavigation/index.d.ts +16 -2
  7. package/dist/components/AppShellNavigation/index.d.ts.map +1 -1
  8. package/dist/components/ButtonBasic/index.d.ts.map +1 -1
  9. package/dist/components/ButtonSubtle/index.d.ts.map +1 -1
  10. package/dist/components/EcosystemCard/index.d.ts.map +1 -1
  11. package/dist/components/MoreMenu/components/Item/index.d.ts +1 -1
  12. package/dist/components/MoreMenu/components/Item/index.d.ts.map +1 -1
  13. package/dist/components/MoreMenu/components/Item/types.d.ts +2 -0
  14. package/dist/components/MoreMenu/components/Item/types.d.ts.map +1 -1
  15. package/dist/components/MoreMenu/index.d.ts +1 -1
  16. package/dist/components/MoreMenu/index.d.ts.map +1 -1
  17. package/dist/components/NavButton/index.d.ts.map +1 -1
  18. package/dist/{components-BoLr9Qow.js → components-BAyyDDDY.js} +237 -200
  19. package/dist/{components-BoLr9Qow.js.map → components-BAyyDDDY.js.map} +1 -1
  20. package/dist/{components-2IYis_pS.cjs → components-C0CDgjvn.cjs} +234 -197
  21. package/dist/{components-2IYis_pS.cjs.map → components-C0CDgjvn.cjs.map} +1 -1
  22. package/dist/constants/themes.d.ts.map +1 -1
  23. package/dist/export/components.cjs +1 -1
  24. package/dist/export/components.mjs +1 -1
  25. package/dist/export/icons/index.cjs +3 -1
  26. package/dist/export/icons/index.cjs.map +1 -1
  27. package/dist/export/icons/index.mjs +45 -43
  28. package/dist/export/themes.cjs +1 -1
  29. package/dist/export/themes.mjs +1 -1
  30. package/dist/icons/PanelLeftSolid.d.ts +4 -0
  31. package/dist/icons/PanelLeftSolid.d.ts.map +1 -0
  32. package/dist/icons/SettingsBarSolid.d.ts +4 -0
  33. package/dist/icons/SettingsBarSolid.d.ts.map +1 -0
  34. package/dist/icons/index.d.ts +2 -0
  35. package/dist/icons/index.d.ts.map +1 -1
  36. package/dist/{index-BViyRAH_.cjs → index-1BIqaTq6.cjs} +3 -3
  37. package/dist/{index-BViyRAH_.cjs.map → index-1BIqaTq6.cjs.map} +1 -1
  38. package/dist/{index-GZOZ7L0s.js → index-A8uoDM6y.js} +3 -3
  39. package/dist/{index-GZOZ7L0s.js.map → index-A8uoDM6y.js.map} +1 -1
  40. package/dist/{index-DoeAXBYv.cjs → index-B4Wox4lv.cjs} +2 -2
  41. package/dist/{index-DoeAXBYv.cjs.map → index-B4Wox4lv.cjs.map} +1 -1
  42. package/dist/{index-BfkAX8vS.js → index-BB2FOFog.js} +2 -2
  43. package/dist/{index-BfkAX8vS.js.map → index-BB2FOFog.js.map} +1 -1
  44. package/dist/{index-B6xg69Dq.cjs → index-BLRJBp-_.cjs} +2 -2
  45. package/dist/{index-B6xg69Dq.cjs.map → index-BLRJBp-_.cjs.map} +1 -1
  46. package/dist/{index-D-yx5xCK.js → index-Bfl1m3Ui.js} +3 -3
  47. package/dist/{index-D-yx5xCK.js.map → index-Bfl1m3Ui.js.map} +1 -1
  48. package/dist/{index-D9Jjiwns.cjs → index-BwpGcQGZ.cjs} +2 -2
  49. package/dist/{index-D9Jjiwns.cjs.map → index-BwpGcQGZ.cjs.map} +1 -1
  50. package/dist/{index-DRT7h4xd.js → index-C6EdX2d9.js} +2 -2
  51. package/dist/{index-DRT7h4xd.js.map → index-C6EdX2d9.js.map} +1 -1
  52. package/dist/{index-DBvgEa5H.cjs → index-CPh7xFzh.cjs} +3 -3
  53. package/dist/{index-DBvgEa5H.cjs.map → index-CPh7xFzh.cjs.map} +1 -1
  54. package/dist/{index-7eiS7IVr.js → index-CggCDtn-.js} +2 -2
  55. package/dist/{index-7eiS7IVr.js.map → index-CggCDtn-.js.map} +1 -1
  56. package/dist/{index-D_Sg8YF7.cjs → index-CoEXRr42.cjs} +2 -2
  57. package/dist/{index-D_Sg8YF7.cjs.map → index-CoEXRr42.cjs.map} +1 -1
  58. package/dist/{index-BwK5-98B.js → index-D5e7qnjY.js} +2 -2
  59. package/dist/{index-BwK5-98B.js.map → index-D5e7qnjY.js.map} +1 -1
  60. package/dist/{index-2RkJbTMY.js → index-DCpQFNqj.js} +2 -2
  61. package/dist/{index-2RkJbTMY.js.map → index-DCpQFNqj.js.map} +1 -1
  62. package/dist/{index-Jt88FVTH.cjs → index-DEbK4rzc.cjs} +3 -3
  63. package/dist/{index-Jt88FVTH.cjs.map → index-DEbK4rzc.cjs.map} +1 -1
  64. package/dist/{index-ufMtBCkV.js → index-DHZY_QlO.js} +2 -2
  65. package/dist/{index-ufMtBCkV.js.map → index-DHZY_QlO.js.map} +1 -1
  66. package/dist/{index-C68HB9Av.cjs → index-DXGbncOU.cjs} +2 -2
  67. package/dist/{index-C68HB9Av.cjs.map → index-DXGbncOU.cjs.map} +1 -1
  68. package/dist/{index-Bd5Hg5BP.js → index-DuOYVQF3.js} +2 -2
  69. package/dist/{index-Bd5Hg5BP.js.map → index-DuOYVQF3.js.map} +1 -1
  70. package/dist/{index-Dit9UCpC.cjs → index-Dy_poZN2.cjs} +2 -2
  71. package/dist/{index-Dit9UCpC.cjs.map → index-Dy_poZN2.cjs.map} +1 -1
  72. package/dist/{index-7ENn--8R.cjs → index-DzLu1w4C.cjs} +2 -2
  73. package/dist/{index-7ENn--8R.cjs.map → index-DzLu1w4C.cjs.map} +1 -1
  74. package/dist/{index-CNWC1hG3.js → index-hNGq5T2S.js} +3 -3
  75. package/dist/{index-CNWC1hG3.js.map → index-hNGq5T2S.js.map} +1 -1
  76. package/dist/{themes-DxTEP-Kl.cjs → themes-CAW1Y0Nk.cjs} +4 -3
  77. package/dist/themes-CAW1Y0Nk.cjs.map +1 -0
  78. package/dist/{themes-B3gRP8Wm.js → themes-Dxo8D1cq.js} +4 -3
  79. package/dist/themes-Dxo8D1cq.js.map +1 -0
  80. package/dist/types/UITheme.d.ts +1 -0
  81. package/dist/types/UITheme.d.ts.map +1 -1
  82. package/package.json +1 -1
  83. package/dist/UsersSolid-Bj2vwEHq.cjs.map +0 -1
  84. package/dist/UsersSolid-CYOWcNJV.js.map +0 -1
  85. package/dist/themes-B3gRP8Wm.js.map +0 -1
  86. package/dist/themes-DxTEP-Kl.cjs.map +0 -1
@@ -24,23 +24,23 @@ 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-Bj2vwEHq.cjs");
27
+ const UsersSolid = require("./UsersSolid-B9DXA9NX.cjs");
28
28
  const react$1 = require("react");
29
29
  const constants = require("./constants-DFJRYpE2.cjs");
30
30
  const core = require("@mantine/core");
31
31
  const css = require("@emotion/css");
32
32
  const reactDom = require("react-dom");
33
33
  const DOMPurify = require("dompurify");
34
- const reactTinyPopover = require("react-tiny-popover");
35
- const hooks = require("@mantine/hooks");
36
34
  const useUITheme = require("./useUITheme-DqgAb7n1.cjs");
35
+ const hooks = require("@mantine/hooks");
37
36
  const Markdown = require("react-markdown");
38
37
  const remarkGfm = require("remark-gfm");
39
38
  const downshift = require("downshift");
39
+ const reactTinyPopover = require("react-tiny-popover");
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-DxTEP-Kl.cjs");
43
+ const themes = require("./themes-CAW1Y0Nk.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-DBvgEa5H.cjs")));
801
- const Footer = react$1.lazy(() => Promise.resolve().then(() => require("./index-BViyRAH_.cjs")));
800
+ const Header$3 = react$1.lazy(() => Promise.resolve().then(() => require("./index-CPh7xFzh.cjs")));
801
+ const Footer = react$1.lazy(() => Promise.resolve().then(() => require("./index-1BIqaTq6.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-D_Sg8YF7.cjs")));
885
+ const Header$2 = react$1.lazy(() => Promise.resolve().then(() => require("./index-CoEXRr42.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-B6xg69Dq.cjs")));
1320
+ const Badge = react$1.lazy(() => Promise.resolve().then(() => require("./index-BLRJBp-_.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);
@@ -1896,90 +1896,154 @@ function HtmlRender({ content, className }) {
1896
1896
  const safeHTML = DOMPurify.sanitize(content, { FORBID_ATTR: ["style"] });
1897
1897
  return /* @__PURE__ */ jsxRuntime.jsx(StyleDOMApplier, { children: /* @__PURE__ */ jsxRuntime.jsx("div", { className, dangerouslySetInnerHTML: { __html: safeHTML } }) });
1898
1898
  }
1899
- function Item({ label, disabled, active, onClick }) {
1900
- return /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(
1899
+ const Flex = react$1.forwardRef(
1900
+ ({
1901
+ direction = "row",
1902
+ align = "stretch",
1903
+ justify = "flex-start",
1904
+ gap = 0,
1905
+ m = 0,
1906
+ mt = 0,
1907
+ mb = 0,
1908
+ ml = 0,
1909
+ mr = 0,
1910
+ mx = 0,
1911
+ my = 0,
1912
+ p = 0,
1913
+ pt = 0,
1914
+ pb = 0,
1915
+ pl = 0,
1916
+ pr = 0,
1917
+ px = 0,
1918
+ py = 0,
1919
+ bg,
1920
+ radius = 0,
1921
+ children,
1922
+ ...props
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
+ );
1952
+ }
1953
+ );
1954
+ Flex.displayName = "Flex";
1955
+ function Item({ icon, label, disabled, active, onClick }) {
1956
+ const IconComponent = icon;
1957
+ return /* @__PURE__ */ jsxRuntime.jsx(
1901
1958
  "button",
1902
1959
  {
1903
- css: ({ spacing, bg }) => ({
1960
+ css: ({ bg, colors }) => ({
1904
1961
  width: "100%",
1905
- background: active ? bg.actionPanel : "none",
1962
+ borderRadius: 4,
1963
+ padding: "4px 12px",
1964
+ background: bg.navIconsBg,
1906
1965
  border: "none",
1907
- padding: spacing,
1908
1966
  cursor: disabled ? "not-allowed" : "pointer",
1909
1967
  textAlign: "left",
1910
1968
  "&:hover": {
1911
- backgroundColor: disabled ? void 0 : bg.cardHighlight
1969
+ backgroundColor: disabled ? void 0 : colors.whiteTransparent10
1912
1970
  }
1913
1971
  }),
1914
1972
  disabled,
1915
1973
  onClick,
1916
- children: /* @__PURE__ */ jsxRuntime.jsx(
1917
- Typography.Text,
1918
- {
1919
- css: ({ fontSize, text, colors }) => ({
1920
- fontSize: fontSize.s,
1921
- color: disabled ? text.secondary : active ? colors.focus : text.main
1922
- }),
1923
- children: label
1924
- }
1925
- )
1974
+ children: /* @__PURE__ */ jsxRuntime.jsxs(Flex, { align: "center", gap: 8, children: [
1975
+ IconComponent && /* @__PURE__ */ jsxRuntime.jsx(IconComponent, { size: 16 }),
1976
+ /* @__PURE__ */ jsxRuntime.jsx(
1977
+ Typography.Text,
1978
+ {
1979
+ css: ({ fontSize, text, colors }) => ({
1980
+ fontSize: fontSize.xs,
1981
+ color: disabled ? text.secondary : active ? colors.focus : text.overPicture
1982
+ }),
1983
+ children: label
1984
+ }
1985
+ )
1986
+ ] })
1926
1987
  }
1927
- ) });
1988
+ );
1928
1989
  }
1929
- function MoreMenu({ items, controlColor = "primary", positions = ["bottom", "right", "left", "top"] }) {
1930
- const { value: isVisible, toggle: toggleMenu, off: hideMenu } = useToggle(false);
1931
- return /* @__PURE__ */ jsxRuntime.jsx(
1932
- reactTinyPopover.Popover,
1990
+ function MoreMenu({ items, controlColor = "primary" }) {
1991
+ const theme = useUITheme.useUITheme();
1992
+ const [opened, setOpened] = react$1.useState(false);
1993
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1994
+ core.Popover,
1933
1995
  {
1934
- isOpen: isVisible,
1935
- positions,
1936
- align: "start",
1937
- onClickOutside: hideMenu,
1938
- content: /* @__PURE__ */ jsxRuntime.jsx(
1939
- "ul",
1940
- {
1941
- css: ({ bg, neutral }) => ({
1942
- padding: 0,
1943
- margin: 0,
1944
- listStyle: "none",
1945
- whiteSpace: "nowrap",
1946
- borderWidth: 1,
1947
- borderStyle: "solid",
1948
- borderColor: bg.actionPanel,
1949
- backgroundColor: neutral.whiteFull
1950
- }),
1951
- children: items.map((item) => /* @__PURE__ */ jsxRuntime.jsx(
1996
+ opened,
1997
+ onChange: setOpened,
1998
+ closeOnClickOutside: true,
1999
+ styles: {
2000
+ dropdown: {
2001
+ background: theme.bg.navIconsBg,
2002
+ border: "none",
2003
+ padding: "12px 4px",
2004
+ marginLeft: 10
2005
+ }
2006
+ },
2007
+ trapFocus: true,
2008
+ width: 200,
2009
+ position: "right-start",
2010
+ shadow: "md",
2011
+ children: [
2012
+ /* @__PURE__ */ jsxRuntime.jsx(core.Popover.Target, { children: /* @__PURE__ */ jsxRuntime.jsx(
2013
+ "button",
2014
+ {
2015
+ css: {
2016
+ background: "none",
2017
+ border: "none",
2018
+ padding: 0,
2019
+ cursor: "pointer",
2020
+ position: "relative",
2021
+ display: "flex",
2022
+ alignItems: "center",
2023
+ justifyContent: "center"
2024
+ },
2025
+ onClick: () => setOpened((o) => !o),
2026
+ children: /* @__PURE__ */ jsxRuntime.jsx(UsersSolid.EllipsisVSolid, { size: 20, color: controlColor })
2027
+ }
2028
+ ) }),
2029
+ /* @__PURE__ */ jsxRuntime.jsxs(core.Popover.Dropdown, { children: [
2030
+ /* @__PURE__ */ jsxRuntime.jsx(core.Text, { ml: 12, mb: 10, fz: 12, c: theme.text.secondary, children: "Page" }),
2031
+ items.map((item) => /* @__PURE__ */ jsxRuntime.jsx(
1952
2032
  Item,
1953
2033
  {
2034
+ icon: item.icon,
1954
2035
  label: item.label,
1955
2036
  disabled: item.disabled,
1956
2037
  active: item.active,
1957
2038
  onClick: () => {
1958
2039
  item.onClick();
1959
- hideMenu();
2040
+ setOpened(false);
1960
2041
  }
1961
2042
  },
1962
2043
  item.label
1963
2044
  ))
1964
- }
1965
- ),
1966
- children: /* @__PURE__ */ jsxRuntime.jsx(
1967
- "button",
1968
- {
1969
- css: {
1970
- background: "none",
1971
- border: "none",
1972
- padding: 0,
1973
- cursor: "pointer",
1974
- position: "relative",
1975
- display: "flex",
1976
- alignItems: "center",
1977
- justifyContent: "center"
1978
- },
1979
- onClick: toggleMenu,
1980
- children: /* @__PURE__ */ jsxRuntime.jsx(UsersSolid.EllipsisVSolid, { color: controlColor })
1981
- }
1982
- )
2045
+ ] })
2046
+ ]
1983
2047
  }
1984
2048
  );
1985
2049
  }
@@ -2095,62 +2159,6 @@ function Avatar({ src, rounded = true, size = 62, did }) {
2095
2159
  }
2096
2160
  return /* @__PURE__ */ jsxRuntime.jsx(UsersSolid.User, { css: ({ text }) => ({ ...css2, backgroundColor: text.secondary }) });
2097
2161
  }
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
2162
  function SpaceItem({ icon, id, onClick }) {
2155
2163
  const { hovered, ref } = hooks.useHover();
2156
2164
  const theme = useUITheme.useUITheme();
@@ -2165,7 +2173,7 @@ function SpaceItem({ icon, id, onClick }) {
2165
2173
  transition: "transform 0.2s ease"
2166
2174
  },
2167
2175
  pos: "relative",
2168
- bg: hovered ? theme.neutral.transparent10 : theme.bg.navScaled,
2176
+ bg: hovered ? theme.neutral.transparent10 : theme.bg.navIconsBg,
2169
2177
  mih: 40,
2170
2178
  w: 40,
2171
2179
  onClick: () => onClick(id),
@@ -2173,31 +2181,80 @@ function SpaceItem({ icon, id, onClick }) {
2173
2181
  }
2174
2182
  );
2175
2183
  }
2176
- function MenuItem({ item, onMenuItemClick }) {
2184
+ function MenuItem({ item, onMenuItemClick, depth = 0 }) {
2177
2185
  const { hovered, ref } = hooks.useHover();
2178
2186
  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
- );
2187
+ const { value: isExpanded, toggle } = useToggle(false);
2188
+ const hasChildren = item.children && item.children.length > 0;
2189
+ const handleItemClick = () => {
2190
+ onMenuItemClick(item);
2191
+ };
2192
+ const handleToggleClick = (e) => {
2193
+ e.stopPropagation();
2194
+ toggle();
2195
+ };
2196
+ return /* @__PURE__ */ jsxRuntime.jsxs(core.Stack, { gap: 1, children: [
2197
+ /* @__PURE__ */ jsxRuntime.jsxs(
2198
+ Flex,
2199
+ {
2200
+ ref,
2201
+ align: "center",
2202
+ gap: 8,
2203
+ justify: "space-between",
2204
+ pl: 12 + depth * 16,
2205
+ pr: 12,
2206
+ py: 6,
2207
+ style: {
2208
+ cursor: "pointer",
2209
+ borderRadius: 8,
2210
+ backgroundColor: item.isActive ? theme.bg.navIconsBg : hovered ? theme.bg.navIconsBg : "transparent",
2211
+ transform: hovered ? "translateX(4px)" : "translateX(0px)",
2212
+ transition: "all 0.2s ease"
2213
+ },
2214
+ onClick: handleItemClick,
2215
+ children: [
2216
+ /* @__PURE__ */ jsxRuntime.jsxs(Flex, { align: "center", gap: 4, children: [
2217
+ /* @__PURE__ */ jsxRuntime.jsx(item.icon, { size: 20, color: item.isActive ? "overPicture" : "secondary" }),
2218
+ /* @__PURE__ */ jsxRuntime.jsx(core.Text, { fz: 14, fw: 500, c: item.isActive ? theme.neutral.lightGray : theme.text.secondary, style: { flex: 1 }, children: item.name })
2219
+ ] }),
2220
+ /* @__PURE__ */ jsxRuntime.jsxs(Flex, { children: [
2221
+ hasChildren && /* @__PURE__ */ jsxRuntime.jsx(
2222
+ core.Center,
2223
+ {
2224
+ onClick: handleToggleClick,
2225
+ p: 4,
2226
+ sx: {
2227
+ cursor: "pointer",
2228
+ borderRadius: 4,
2229
+ transform: isExpanded ? "rotate(-90deg)" : "rotate(0deg)",
2230
+ transition: "transform 0.2s ease",
2231
+ "&:hover": {
2232
+ backgroundColor: theme.neutral.transparent10
2233
+ }
2234
+ },
2235
+ children: /* @__PURE__ */ jsxRuntime.jsx(UsersSolid.AngleLeftSolid, { size: 12, color: "secondary" })
2236
+ }
2237
+ ),
2238
+ item?.actions && item.actions.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
2239
+ core.Center,
2240
+ {
2241
+ sx: {
2242
+ cursor: "pointer",
2243
+ borderRadius: 4,
2244
+ transition: "transform 0.2s ease",
2245
+ "&:hover": {
2246
+ backgroundColor: theme.neutral.transparent10
2247
+ }
2248
+ },
2249
+ children: /* @__PURE__ */ jsxRuntime.jsx(MoreMenu, { items: item.actions, controlColor: "secondary" })
2250
+ }
2251
+ )
2252
+ ] })
2253
+ ]
2254
+ }
2255
+ ),
2256
+ 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)) })
2257
+ ] });
2201
2258
  }
2202
2259
  function RoomItem({ room }) {
2203
2260
  const { hovered, ref } = hooks.useHover();
@@ -2266,14 +2323,18 @@ function RoomCategory({ category }) {
2266
2323
  }
2267
2324
  function AppShellNavigation({
2268
2325
  spaces,
2326
+ pageItem,
2269
2327
  selectedSpace,
2270
2328
  menuItems,
2271
- roomCategories,
2272
2329
  companyIcon,
2273
2330
  onAddSpaceClick,
2274
2331
  avatarIcon,
2275
2332
  onMenuItemClick,
2276
- onPersonalSpaceClick,
2333
+ onSettingsIconClick,
2334
+ onBackClick,
2335
+ isBackButtonVisible,
2336
+ footerMenuItems,
2337
+ roomCategories,
2277
2338
  children
2278
2339
  }) {
2279
2340
  const [desktopOpened, { toggle: toggleDesktop }] = hooks.useDisclosure(true);
@@ -2287,7 +2348,7 @@ function AppShellNavigation({
2287
2348
  background: theme.bg.navScaled
2288
2349
  }
2289
2350
  },
2290
- bg: theme.bg.navScaled,
2351
+ bg: theme.bg.navIconsBg,
2291
2352
  navbar: {
2292
2353
  width: desktopOpened ? 300 : 56,
2293
2354
  breakpoint: "sm"
@@ -2296,8 +2357,8 @@ function AppShellNavigation({
2296
2357
  /* @__PURE__ */ jsxRuntime.jsx(core.AppShell.Navbar, { children: /* @__PURE__ */ jsxRuntime.jsxs(Flex, { style: { height: "100%" }, children: [
2297
2358
  /* @__PURE__ */ jsxRuntime.jsxs(core.Stack, { p: 8, w: 56, justify: "space-between", h: "100%", bg: theme.bg.navSpaces, children: [
2298
2359
  /* @__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" }) }),
2360
+ /* @__PURE__ */ jsxRuntime.jsx(core.Center, { sx: { cursor: "pointer", borderRadius: 24 }, 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 }),
2361
+ /* @__PURE__ */ jsxRuntime.jsx(core.Center, { sx: { cursor: "pointer", borderRadius: 24 }, bg: theme.bg.navIconsBg, 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 }),
2301
2362
  /* @__PURE__ */ jsxRuntime.jsx(core.Divider, { w: 40, mx: 10, color: theme.neutral.transparent10 }),
2302
2363
  /* @__PURE__ */ jsxRuntime.jsx(
2303
2364
  core.Stack,
@@ -2323,46 +2384,26 @@ function AppShellNavigation({
2323
2384
  }
2324
2385
  )
2325
2386
  ] }),
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" }) }),
2387
+ /* @__PURE__ */ jsxRuntime.jsx(core.Center, { sx: { cursor: "pointer", borderRadius: 24 }, bg: theme.bg.navIconsBg, h: 40, w: 40, onClick: onAddSpaceClick, children: /* @__PURE__ */ jsxRuntime.jsx(UsersSolid.PlusSolid, { color: "secondary" }) }),
2327
2388
  /* @__PURE__ */ jsxRuntime.jsxs(core.Stack, { align: "center", gap: 8, children: [
2328
2389
  /* @__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" }) })
2390
+ /* @__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" }) }),
2391
+ !desktopOpened && /* @__PURE__ */ jsxRuntime.jsx(core.Center, { sx: { cursor: "pointer", borderRadius: 24 }, bg: theme.bg.navIconsBg, h: 40, w: 40, onClick: toggleDesktop, children: /* @__PURE__ */ jsxRuntime.jsx(UsersSolid.AngleRightSolid, { color: "secondary" }) })
2331
2392
  ] })
2332
2393
  ] }),
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
- ] })
2394
+ desktopOpened && /* @__PURE__ */ jsxRuntime.jsxs(core.Stack, { justify: "space-between", w: "100%", pt: 16, pb: 10, px: 12, children: [
2395
+ /* @__PURE__ */ jsxRuntime.jsxs(core.Stack, { gap: 5, children: [
2396
+ /* @__PURE__ */ jsxRuntime.jsxs(Flex, { mb: 24, style: { width: "100%" }, justify: "space-between", align: "center", children: [
2397
+ /* @__PURE__ */ jsxRuntime.jsxs(Flex, { align: "center", gap: "10px", children: [
2398
+ 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 }) }),
2399
+ /* @__PURE__ */ jsxRuntime.jsx(core.Text, { lh: 1, c: theme.text.overPicture, children: pageItem.pageTitle || "Unknown" })
2400
+ ] }),
2401
+ /* @__PURE__ */ jsxRuntime.jsx(Flex, { gap: 12, align: "center", children: /* @__PURE__ */ jsxRuntime.jsx(core.Center, { sx: { cursor: "pointer" }, onClick: toggleDesktop, children: /* @__PURE__ */ jsxRuntime.jsx(UsersSolid.PanelLeftSolid, { size: 22, color: "secondary" }) }) })
2402
+ ] }),
2403
+ menuItems?.map((item) => /* @__PURE__ */ jsxRuntime.jsx(MenuItem, { onMenuItemClick, item }, item.id)),
2404
+ roomCategories && roomCategories.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(core.Stack, { gap: 8, mt: 16, children: roomCategories.map((category) => /* @__PURE__ */ jsxRuntime.jsx(RoomCategory, { category }, category.id)) })
2340
2405
  ] }),
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
- ] })
2406
+ /* @__PURE__ */ jsxRuntime.jsx(core.Stack, { gap: 5, children: footerMenuItems?.map((item) => /* @__PURE__ */ jsxRuntime.jsx(MenuItem, { onMenuItemClick, item }, item.id)) })
2366
2407
  ] })
2367
2408
  ] }) }),
2368
2409
  /* @__PURE__ */ jsxRuntime.jsx(core.AppShell.Main, { children })
@@ -2494,8 +2535,6 @@ function ButtonBasic({
2494
2535
  width = "100%";
2495
2536
  }
2496
2537
  const baseStyles = {
2497
- fontFamily: '"DM Sans", "Roboto", Arial, sans-serif',
2498
- // DM Sans from Figma
2499
2538
  fontSize,
2500
2539
  fontWeight: 400,
2501
2540
  lineHeight,
@@ -2654,7 +2693,6 @@ function ButtonSubtle({ state = "default", type = "iconLeft", disabled = false,
2654
2693
  padding: isIconOnly ? "2px" : "2px 8px",
2655
2694
  width: isIconOnly ? "28px" : "auto",
2656
2695
  height: isIconOnly ? "28px" : "auto",
2657
- fontFamily: "DM Sans",
2658
2696
  fontSize: "16px",
2659
2697
  fontWeight: 400,
2660
2698
  lineHeight: "1.5em",
@@ -4420,7 +4458,6 @@ const EcosystemCard = ({ title = "Ecosystem Name", subtitle = "Short Ecosystem S
4420
4458
  backdropFilter: "blur(30px)",
4421
4459
  WebkitBackdropFilter: "blur(30px)",
4422
4460
  color: "#fff",
4423
- fontFamily: "Roboto",
4424
4461
  fontWeight: 700,
4425
4462
  fontSize: 20,
4426
4463
  boxShadow: "0 4px 24px 0 rgba(0,0,0,0.04)"
@@ -5301,13 +5338,13 @@ function ActionButton({ onClick, left, right }) {
5301
5338
  }
5302
5339
  );
5303
5340
  }
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")));
5341
+ const MainAction = react$1.lazy(() => Promise.resolve().then(() => require("./index-DzLu1w4C.cjs")));
5342
+ const Header$1 = react$1.lazy(() => Promise.resolve().then(() => require("./index-BwpGcQGZ.cjs")));
5343
+ const Content = react$1.lazy(() => Promise.resolve().then(() => require("./index-B4Wox4lv.cjs")));
5307
5344
  const Map = react$1.lazy(() => Promise.resolve().then(() => require("./index-D4PsPquZ.cjs")));
5308
5345
  const CustomContent = react$1.lazy(() => Promise.resolve().then(() => require("./index-ByrCNpS2.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")));
5346
+ const Assets = react$1.lazy(() => Promise.resolve().then(() => require("./index-Dy_poZN2.cjs")));
5347
+ const Actions = react$1.lazy(() => Promise.resolve().then(() => require("./index-DEbK4rzc.cjs")));
5311
5348
  const HOVER_BORDER_WIDTH = 1;
5312
5349
  function SodaCardCmp({ numSelected = 0, expanded = true, mainAction, header, content, map, customContent, customFooter, actions, assets, onClick }, ref) {
5313
5350
  const wrapperRef = react$1.useRef(null);
@@ -10619,4 +10656,4 @@ exports.UserMessage = UserMessage;
10619
10656
  exports.WorkspaceModal = WorkspaceModal;
10620
10657
  exports.cutText = cutText;
10621
10658
  exports.isValidClick = isValidClick;
10622
- //# sourceMappingURL=components-2IYis_pS.cjs.map
10659
+ //# sourceMappingURL=components-C0CDgjvn.cjs.map