@elevasis/ui 2.33.2 → 2.35.0

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 (116) hide show
  1. package/dist/api/index.d.ts +9 -2
  2. package/dist/api/index.js +3 -3
  3. package/dist/app/index.css +452 -0
  4. package/dist/app/index.d.ts +1255 -8
  5. package/dist/app/index.js +151 -13
  6. package/dist/charts/index.js +3 -6
  7. package/dist/chunk-26HFM4MH.js +41449 -0
  8. package/dist/{chunk-52K5RFDH.js → chunk-4U3XAWCN.js} +1328 -2492
  9. package/dist/{chunk-ND5TDV2J.js → chunk-57OZ3AEG.js} +1 -1
  10. package/dist/{chunk-E4WQGJNS.js → chunk-7FPLLSHN.js} +14 -1
  11. package/dist/{chunk-RQA2EVN3.js → chunk-AKW7KISS.js} +39 -3
  12. package/dist/chunk-AUDNF2Q7.js +2050 -0
  13. package/dist/{chunk-TYRUKGGD.js → chunk-GX6XBRRF.js} +1 -2
  14. package/dist/{chunk-V6SZ4ECN.js → chunk-LUYVRATI.js} +257 -6
  15. package/dist/{chunk-X4WBGKJQ.js → chunk-R3VCBZDC.js} +50 -3
  16. package/dist/chunk-SIQ3P4OR.js +1764 -0
  17. package/dist/{chunk-Z2K2EAPL.js → chunk-VDOOGGBA.js} +5 -6
  18. package/dist/{chunk-3FV6HBXS.js → chunk-WF7CONXF.js} +23 -23
  19. package/dist/chunk-YYX7OPZQ.js +25 -0
  20. package/dist/components/index.d.ts +69 -92
  21. package/dist/components/index.js +20 -3216
  22. package/dist/components/navigation/index.js +25 -7
  23. package/dist/execution/index.d.ts +9 -9
  24. package/dist/execution/index.js +1 -2
  25. package/dist/features/auth/index.js +23 -2
  26. package/dist/features/clients/index.js +20 -31
  27. package/dist/features/crm/index.js +20 -35
  28. package/dist/features/dashboard/index.d.ts +68 -91
  29. package/dist/features/dashboard/index.js +20 -33
  30. package/dist/features/delivery/index.js +20 -35
  31. package/dist/features/knowledge/index.js +25 -11
  32. package/dist/features/lead-gen/index.d.ts +9 -9
  33. package/dist/features/lead-gen/index.js +20 -36
  34. package/dist/features/monitoring/index.js +20 -35
  35. package/dist/features/monitoring/requests/index.js +20 -30
  36. package/dist/features/operations/index.d.ts +197 -188
  37. package/dist/features/operations/index.js +18 -42
  38. package/dist/features/seo/index.js +3 -4
  39. package/dist/features/settings/index.js +20 -32
  40. package/dist/graph/index.js +1 -1
  41. package/dist/hooks/delivery/index.js +30 -2
  42. package/dist/hooks/index.d.ts +105 -112
  43. package/dist/hooks/index.js +20 -26
  44. package/dist/hooks/operations/command-view/utils/transformCommandViewData.d.ts +55 -62
  45. package/dist/hooks/published.d.ts +105 -112
  46. package/dist/hooks/published.js +20 -25
  47. package/dist/index.css +532 -532
  48. package/dist/index.d.ts +10261 -6793
  49. package/dist/index.js +22 -31
  50. package/dist/knowledge/index.d.ts +51 -59
  51. package/dist/knowledge/index.js +40 -211
  52. package/dist/{knowledge-search-index-VMAW7FLR.js → knowledge-search-index-ORIJCEZX.js} +3 -3
  53. package/dist/layout/index.js +4 -10
  54. package/dist/organization/index.js +27 -2
  55. package/dist/provider/index.d.ts +71 -52
  56. package/dist/provider/index.js +20 -20
  57. package/dist/provider/published.d.ts +39 -47
  58. package/dist/provider/published.js +20 -15
  59. package/dist/test-utils/index.d.ts +2 -0
  60. package/dist/test-utils/index.js +16 -4
  61. package/dist/test-utils/setup.js +38 -0
  62. package/dist/theme/index.js +2 -3
  63. package/dist/theme/presets/index.d.ts +28 -3
  64. package/dist/theme/presets/index.js +1 -1
  65. package/dist/typeform/index.js +1 -2049
  66. package/dist/types/index.d.ts +88 -95
  67. package/dist/utils/index.d.ts +46 -69
  68. package/dist/utils/index.js +1 -1
  69. package/dist/zustand/index.d.ts +21 -8
  70. package/dist/zustand/index.js +32 -1
  71. package/package.json +5 -5
  72. package/dist/chunk-2ZZ72TAB.js +0 -2281
  73. package/dist/chunk-32I2RCGC.js +0 -85
  74. package/dist/chunk-3MEXPLWT.js +0 -265
  75. package/dist/chunk-3ZMAGTWF.js +0 -18
  76. package/dist/chunk-44I4LOH6.js +0 -1593
  77. package/dist/chunk-4DYOXEH6.js +0 -951
  78. package/dist/chunk-7M2VOCYN.js +0 -1
  79. package/dist/chunk-A4VDJJCV.js +0 -1864
  80. package/dist/chunk-BZZCNLT6.js +0 -12
  81. package/dist/chunk-CLDCYJQT.js +0 -1
  82. package/dist/chunk-E565XMTQ.js +0 -17
  83. package/dist/chunk-EPTHX4VZ.js +0 -749
  84. package/dist/chunk-GWGQI6V4.js +0 -447
  85. package/dist/chunk-HUJCU55S.js +0 -159
  86. package/dist/chunk-IBWMR4TI.js +0 -469
  87. package/dist/chunk-IIMU5YAJ.js +0 -53
  88. package/dist/chunk-IOXOPMYS.js +0 -145
  89. package/dist/chunk-J2UD7BOH.js +0 -347
  90. package/dist/chunk-JA5ECJJB.js +0 -387
  91. package/dist/chunk-JFL3GRD4.js +0 -39
  92. package/dist/chunk-KW7ZNQD7.js +0 -126
  93. package/dist/chunk-LGKLC5MG.js +0 -44
  94. package/dist/chunk-N55DVMAG.js +0 -14
  95. package/dist/chunk-O56ESZCQ.js +0 -1874
  96. package/dist/chunk-OIBHQH5Q.js +0 -96
  97. package/dist/chunk-PDHTXPSF.js +0 -12
  98. package/dist/chunk-QDFJSUG3.js +0 -13
  99. package/dist/chunk-R2XR4FCV.js +0 -48
  100. package/dist/chunk-R66W5UDG.js +0 -26
  101. package/dist/chunk-RYTEQBAO.js +0 -37
  102. package/dist/chunk-SZHARWKU.js +0 -15
  103. package/dist/chunk-T3J6U77J.js +0 -12056
  104. package/dist/chunk-TBVLQRXT.js +0 -68
  105. package/dist/chunk-TGVAIWIL.js +0 -1778
  106. package/dist/chunk-TKAYX2SP.js +0 -204
  107. package/dist/chunk-TUMSNGTX.js +0 -35
  108. package/dist/chunk-VGU4ZFYZ.js +0 -4752
  109. package/dist/chunk-VNAZTCHA.js +0 -65
  110. package/dist/chunk-VNFR57DF.js +0 -87
  111. package/dist/chunk-WKW6B5ID.js +0 -29
  112. package/dist/chunk-XCYKC6OZ.js +0 -1
  113. package/dist/chunk-XZGSCABI.js +0 -383
  114. package/dist/chunk-ZMK5Z6KE.js +0 -5198
  115. /package/dist/{chunk-2RJMVWFJ.js → chunk-GEFWMU26.js} +0 -0
  116. /package/dist/{chunk-22UVE3RA.js → chunk-HENXLGVD.js} +0 -0
@@ -1,5 +1,4 @@
1
- import { SubshellNavItem } from './chunk-X4WBGKJQ.js';
2
- import { SubshellSidebarSection } from './chunk-IIMU5YAJ.js';
1
+ import { SubshellSidebarSection, SubshellNavItem } from './chunk-R3VCBZDC.js';
3
2
  import { useRouterContext } from './chunk-Q7DJKLEN.js';
4
3
  import { Stack } from '@mantine/core';
5
4
  import { IconSearch, IconChartBar, IconTrendingUp } from '@tabler/icons-react';
@@ -1,12 +1,11 @@
1
- import { SubshellNavItem } from './chunk-X4WBGKJQ.js';
2
1
  import { NavigationButton } from './chunk-NYBEU5TE.js';
2
+ import { SubshellNavItem } from './chunk-R3VCBZDC.js';
3
+ import { sidebarItemGap, sidebarSubLinkPaddingY, sidebarSubLinkPaddingX, sidebarSubLinkIndent, sidebarHoverDelay, sidebarTransitionDuration, sidebarCollapsedWidth, sidebarWidth, topbarHeight, sidebarToggleIconSize, sidebarSectionPadding, sidebarGroupChevronSize, sidebarIconInnerSize, sidebarBottomSectionHeight } from './chunk-DT3QYZVU.js';
3
4
  import { useRouterContext } from './chunk-Q7DJKLEN.js';
4
- import { useAppearance } from './chunk-E565XMTQ.js';
5
- import { sidebarItemGap, sidebarSubLinkPaddingY, sidebarSubLinkPaddingX, sidebarSubLinkIndent, sidebarHoverDelay, sidebarTransitionDuration, sidebarCollapsedWidth, sidebarWidth, topbarHeight, sidebarToggleIconSize, sidebarSectionPadding, sidebarGroupChevronSize, sidebarIconInnerSize } from './chunk-DT3QYZVU.js';
6
5
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
7
6
  import { createContext, memo, useEffect, useRef, createElement, useContext, useLayoutEffect, useState } from 'react';
8
- import { Collapse, HoverCard, Stack, Group, Text, UnstyledButton, Tooltip, ScrollArea, Menu, Avatar, Box, useMantineColorScheme, Switch, Code } from '@mantine/core';
9
- import { IconLayoutSidebarLeftExpand, IconLayoutSidebarLeftCollapse, IconUser, IconLogout, IconChevronDown, IconChevronRight, IconMoonStars, IconSun } from '@tabler/icons-react';
7
+ import { Collapse, HoverCard, Stack, Group, Text, UnstyledButton, Tooltip, ScrollArea, Menu, Avatar, Container, Title, Button, Box, Center, useMantineColorScheme, Switch, Code } from '@mantine/core';
8
+ import { IconLayoutSidebarLeftExpand, IconLayoutSidebarLeftCollapse, IconUser, IconLogout, IconAlertCircle, IconChevronDown, IconChevronRight, IconMoonStars, IconSun } from '@tabler/icons-react';
10
9
 
11
10
  var randRange = (min, max) => min + Math.random() * (max - min);
12
11
  var FLUX_SPARKS = Array.from({ length: 30 }, () => {
@@ -228,6 +227,17 @@ function Vignette({ strength = 0.35, className }) {
228
227
  }
229
228
  );
230
229
  }
230
+ var AppearanceContext = createContext(null);
231
+ function AppearanceProvider({ value, children }) {
232
+ return /* @__PURE__ */ jsx(AppearanceContext.Provider, { value, children });
233
+ }
234
+ function useAppearance() {
235
+ const ctx = useContext(AppearanceContext);
236
+ if (!ctx) {
237
+ throw new Error("useAppearance must be used within an AppearanceProvider (ElevasisCoreProvider)");
238
+ }
239
+ return ctx;
240
+ }
231
241
  var AppShellContainer = ({ children }) => {
232
242
  const { background } = useAppearance();
233
243
  return /* @__PURE__ */ jsxs(
@@ -288,10 +298,45 @@ var AppShellContentContainer = ({ children }) => {
288
298
  }
289
299
  );
290
300
  };
301
+ var PageContainer = ({ children }) => {
302
+ return (
303
+ // Add padding to the top of the container to adjust for the topbar height
304
+ /* @__PURE__ */ jsx(Container, { size: "xl", p: 0, w: "100%", children: /* @__PURE__ */ jsx(Stack, { gap: "lg", children }) })
305
+ );
306
+ };
291
307
  var AppTopbarAdjusterWrapper = ({ children }) => {
292
308
  const padding = `${topbarHeight}px`;
293
309
  return /* @__PURE__ */ jsx("div", { style: { paddingTop: padding }, children });
294
310
  };
311
+ var standardMdSpacing = 16;
312
+ var topAndBottomSpacing = standardMdSpacing * 2;
313
+ var AppShellCenteredContainer = ({ children }) => {
314
+ return /* @__PURE__ */ jsx(
315
+ "div",
316
+ {
317
+ style: {
318
+ display: "flex",
319
+ alignItems: "center",
320
+ justifyContent: "center",
321
+ margin: "auto auto",
322
+ height: `calc(100vh - ${topbarHeight + topAndBottomSpacing}px)`,
323
+ textAlign: "center"
324
+ },
325
+ children
326
+ }
327
+ );
328
+ };
329
+ var AppShellLoader = () => {
330
+ const { loader } = useAppearance();
331
+ return /* @__PURE__ */ jsx(AppShellCenteredContainer, { children: loader });
332
+ };
333
+ var AppShellError = ({ message, retry }) => {
334
+ return /* @__PURE__ */ jsx(AppShellCenteredContainer, { children: /* @__PURE__ */ jsxs(Stack, { align: "center", gap: "md", children: [
335
+ /* @__PURE__ */ jsx(IconAlertCircle, { size: 48, color: "var(--color-error)" }),
336
+ /* @__PURE__ */ jsx(Title, { order: 3, c: "dimmed", children: message }),
337
+ retry && /* @__PURE__ */ jsx(Button, { onClick: retry, children: "Retry" })
338
+ ] }) });
339
+ };
295
340
  var SidebarContext = createContext(void 0);
296
341
  var SIDEBAR_COLLAPSED_KEY = "sidebar-collapsed";
297
342
  var SidebarProvider = ({ children }) => {
@@ -1078,6 +1123,204 @@ var CollapsibleSidebarGroup = ({
1078
1123
  ) })
1079
1124
  ] });
1080
1125
  };
1126
+ var SubshellContainer = ({ children, className }) => {
1127
+ return /* @__PURE__ */ jsx(
1128
+ "div",
1129
+ {
1130
+ className,
1131
+ style: {
1132
+ display: "flex",
1133
+ height: "100%",
1134
+ width: "100%",
1135
+ position: "relative"
1136
+ },
1137
+ children
1138
+ }
1139
+ );
1140
+ };
1141
+ var SubshellRightSideContainer = ({ children, className }) => {
1142
+ return /* @__PURE__ */ jsx(
1143
+ "div",
1144
+ {
1145
+ className,
1146
+ style: {
1147
+ flex: 1,
1148
+ minWidth: 0,
1149
+ display: "flex",
1150
+ flexDirection: "column",
1151
+ overflow: "hidden"
1152
+ },
1153
+ children
1154
+ }
1155
+ );
1156
+ };
1157
+ var mdSpacing = 16;
1158
+ var SubshellContentContainer = ({ children, className }) => {
1159
+ return /* @__PURE__ */ jsx(
1160
+ "div",
1161
+ {
1162
+ className,
1163
+ style: {
1164
+ display: "flex",
1165
+ flexDirection: "column",
1166
+ flex: 1,
1167
+ overflowX: "clip",
1168
+ overflowY: "auto",
1169
+ minWidth: 0,
1170
+ minHeight: 0,
1171
+ padding: "var(--mantine-spacing-md)",
1172
+ paddingTop: `${topbarHeight + mdSpacing}px`
1173
+ },
1174
+ children
1175
+ }
1176
+ );
1177
+ };
1178
+ var SubshellSidebar = ({
1179
+ children,
1180
+ className,
1181
+ width,
1182
+ collapsible = true,
1183
+ defaultOpen = true
1184
+ }) => {
1185
+ const [isOpen, setIsOpen] = useState(defaultOpen);
1186
+ const effectiveWidth = collapsible && !isOpen ? 0 : width;
1187
+ if (!collapsible) {
1188
+ return /* @__PURE__ */ jsx(
1189
+ "aside",
1190
+ {
1191
+ className,
1192
+ style: {
1193
+ width: `${width}px`,
1194
+ flexShrink: 0,
1195
+ display: "flex",
1196
+ flexDirection: "column",
1197
+ backgroundColor: "color-mix(in srgb, var(--glass-background) 80%, transparent)",
1198
+ backdropFilter: "var(--glass-blur)",
1199
+ WebkitBackdropFilter: "var(--glass-blur)",
1200
+ borderRight: "1px solid var(--color-border)",
1201
+ boxShadow: "var(--card-shadow)",
1202
+ clipPath: "inset(-100px -100px -100px 0)",
1203
+ height: `calc(100vh - ${topbarHeight}px)`,
1204
+ minHeight: 0,
1205
+ marginTop: `${topbarHeight}px`,
1206
+ fontFamily: "var(--elevasis-font-family-subtitle)",
1207
+ overflow: "hidden"
1208
+ },
1209
+ children
1210
+ }
1211
+ );
1212
+ }
1213
+ return /* @__PURE__ */ jsxs(
1214
+ "div",
1215
+ {
1216
+ style: {
1217
+ position: "relative",
1218
+ flexShrink: 0,
1219
+ marginTop: `${topbarHeight}px`,
1220
+ height: `calc(100vh - ${topbarHeight}px)`,
1221
+ minHeight: 0
1222
+ },
1223
+ children: [
1224
+ /* @__PURE__ */ jsx(
1225
+ "aside",
1226
+ {
1227
+ className,
1228
+ style: {
1229
+ width: `${effectiveWidth}px`,
1230
+ flexShrink: 0,
1231
+ display: "flex",
1232
+ flexDirection: "column",
1233
+ backgroundColor: "color-mix(in srgb, var(--glass-background) 80%, transparent)",
1234
+ backdropFilter: "var(--glass-blur)",
1235
+ WebkitBackdropFilter: "var(--glass-blur)",
1236
+ borderRight: isOpen ? "1px solid var(--color-border)" : "none",
1237
+ boxShadow: isOpen ? "var(--card-shadow)" : "none",
1238
+ clipPath: isOpen ? "inset(-100px -100px -100px 0)" : "none",
1239
+ height: "100%",
1240
+ fontFamily: "var(--elevasis-font-family-subtitle)",
1241
+ overflow: "hidden",
1242
+ transition: `width ${sidebarTransitionDuration}ms var(--easing)`
1243
+ },
1244
+ children: /* @__PURE__ */ jsx(
1245
+ "div",
1246
+ {
1247
+ style: {
1248
+ width: `${width}px`,
1249
+ flexShrink: 0,
1250
+ height: "100%",
1251
+ minHeight: 0,
1252
+ display: "flex",
1253
+ flexDirection: "column",
1254
+ opacity: isOpen ? 1 : 0,
1255
+ transition: `opacity var(--duration-fast) var(--easing)`
1256
+ },
1257
+ children
1258
+ }
1259
+ )
1260
+ }
1261
+ ),
1262
+ /* @__PURE__ */ jsx(
1263
+ "button",
1264
+ {
1265
+ onClick: () => setIsOpen((prev) => !prev),
1266
+ style: {
1267
+ position: "absolute",
1268
+ right: 0,
1269
+ bottom: 0,
1270
+ transform: "translateX(100%)",
1271
+ width: "20px",
1272
+ // Match the live height of the outer Sidebar's bottom profile section.
1273
+ // SidebarBottomSection publishes --elevasis-sidebar-bottom-section-height
1274
+ // via ResizeObserver so this follows its actual height through
1275
+ // collapse/expand transitions. Falls back to the expanded-state
1276
+ // constant when rendered outside a Sidebar layout.
1277
+ height: `var(--elevasis-sidebar-bottom-section-height, ${sidebarBottomSectionHeight}px)`,
1278
+ display: "flex",
1279
+ alignItems: "center",
1280
+ justifyContent: "center",
1281
+ backgroundColor: "color-mix(in srgb, var(--glass-background) 80%, transparent)",
1282
+ backdropFilter: "var(--glass-blur)",
1283
+ WebkitBackdropFilter: "var(--glass-blur)",
1284
+ border: "1px solid var(--color-border)",
1285
+ borderLeft: "none",
1286
+ borderBottom: "none",
1287
+ borderRadius: "0 4px 0 0",
1288
+ cursor: "pointer",
1289
+ color: "var(--color-text-subtle)",
1290
+ padding: 0,
1291
+ zIndex: 10,
1292
+ transition: `color var(--duration-fast) var(--easing)`
1293
+ },
1294
+ "aria-label": isOpen ? "Collapse sidebar" : "Expand sidebar",
1295
+ children: /* @__PURE__ */ jsx(
1296
+ "svg",
1297
+ {
1298
+ width: "6",
1299
+ height: "10",
1300
+ viewBox: "0 0 8 12",
1301
+ fill: "none",
1302
+ style: {
1303
+ transform: isOpen ? void 0 : "rotate(180deg)",
1304
+ transition: `transform var(--duration-fast) var(--easing)`
1305
+ },
1306
+ children: /* @__PURE__ */ jsx(
1307
+ "path",
1308
+ {
1309
+ d: "M6 1L1 6L6 11",
1310
+ stroke: "currentColor",
1311
+ strokeWidth: "1.5",
1312
+ strokeLinecap: "round",
1313
+ strokeLinejoin: "round"
1314
+ }
1315
+ )
1316
+ }
1317
+ )
1318
+ }
1319
+ )
1320
+ ]
1321
+ }
1322
+ );
1323
+ };
1081
1324
  var SubshellNavList = ({ items }) => {
1082
1325
  const { currentPath, navigate } = useRouterContext();
1083
1326
  return /* @__PURE__ */ jsx(Fragment, { children: items.map((item) => {
@@ -1098,6 +1341,14 @@ var SubshellNavList = ({ items }) => {
1098
1341
 
1099
1342
  // src/components/layout/sub-shell/constants.ts
1100
1343
  var subsidebarWidth = 200;
1344
+ function SubshellLoader() {
1345
+ const { loader } = useAppearance();
1346
+ return /* @__PURE__ */ jsx(Center, { mih: "calc(100vh - 70px)", children: loader });
1347
+ }
1348
+ function SubshellSidebarLoader({ padding = "sm" }) {
1349
+ const { loader } = useAppearance();
1350
+ return /* @__PURE__ */ jsx(Box, { style: { flex: 1, minHeight: 0, display: "flex" }, children: /* @__PURE__ */ jsx(Center, { p: padding, style: { flex: 1, minHeight: 0 }, children: loader }) });
1351
+ }
1101
1352
  var TopbarContainer = ({ children }) => {
1102
1353
  const { isCollapsed } = useSidebar();
1103
1354
  const actualSidebarWidth = isCollapsed ? sidebarCollapsedWidth : sidebarWidth;
@@ -1188,4 +1439,4 @@ var Topbar = ({ version, leftContent, children }) => {
1188
1439
  ] });
1189
1440
  };
1190
1441
 
1191
- export { AppShellContainer, AppShellContentContainer, AppShellRightSideContainer, AppShellRightSideOuterContainer, AppTopbarAdjusterWrapper, CollapsibleSidebarGroup, CyberParticles, LinksGroup, Sidebar, SidebarContext, SidebarProvider, SubshellNavList, Topbar, TopbarContainer, Vignette, subsidebarWidth, useSidebar, useSidebarCollapse };
1442
+ export { AppShellCenteredContainer, AppShellContainer, AppShellContentContainer, AppShellError, AppShellLoader, AppShellRightSideContainer, AppShellRightSideOuterContainer, AppTopbarAdjusterWrapper, AppearanceProvider, CollapsibleSidebarGroup, CyberParticles, LinksGroup, PageContainer, Sidebar, SidebarContext, SidebarProvider, SubshellContainer, SubshellContentContainer, SubshellLoader, SubshellNavList, SubshellRightSideContainer, SubshellSidebar, SubshellSidebarLoader, Topbar, TopbarContainer, Vignette, subsidebarWidth, useAppearance, useSidebar, useSidebarCollapse };
@@ -1,5 +1,5 @@
1
- import { subshellNavItemIconSize } from './chunk-DT3QYZVU.js';
2
- import { UnstyledButton, Stack, Group, Text } from '@mantine/core';
1
+ import { sidebarIconSize, sidebarIconStroke, sidebarIconInnerSize, subshellNavItemIconSize } from './chunk-DT3QYZVU.js';
2
+ import { UnstyledButton, Box, Group, ThemeIcon, Stack, Text } from '@mantine/core';
3
3
  import { jsx, jsxs } from 'react/jsx-runtime';
4
4
 
5
5
  var activeColor = "var(--color-primary)";
@@ -134,5 +134,52 @@ var SubshellNavItem = ({
134
134
  }
135
135
  );
136
136
  };
137
+ var SubshellSidebarSection = ({
138
+ icon: Icon,
139
+ label,
140
+ rightSection,
141
+ withTopBorder = false
142
+ }) => {
143
+ return /* @__PURE__ */ jsx(
144
+ Box,
145
+ {
146
+ p: "sm",
147
+ style: {
148
+ borderTop: withTopBorder ? "1px solid var(--color-border)" : void 0,
149
+ borderBottom: "1px solid var(--color-border)"
150
+ },
151
+ children: /* @__PURE__ */ jsxs(Group, { gap: "xs", children: [
152
+ /* @__PURE__ */ jsx(
153
+ ThemeIcon,
154
+ {
155
+ variant: "light",
156
+ size: sidebarIconSize,
157
+ style: {
158
+ backgroundColor: "var(--color-surface)",
159
+ color: "var(--color-primary)",
160
+ flexShrink: 0
161
+ },
162
+ children: /* @__PURE__ */ jsx(Icon, { size: sidebarIconInnerSize, stroke: sidebarIconStroke })
163
+ }
164
+ ),
165
+ /* @__PURE__ */ jsx(
166
+ Box,
167
+ {
168
+ c: "var(--color-text)",
169
+ style: {
170
+ fontFamily: "var(--elevasis-font-family-subtitle)",
171
+ flex: 1,
172
+ fontSize: "var(--mantine-font-size-md)",
173
+ fontWeight: 500,
174
+ lineHeight: 1.2
175
+ },
176
+ children: label
177
+ }
178
+ ),
179
+ rightSection
180
+ ] })
181
+ }
182
+ );
183
+ };
137
184
 
138
- export { SubshellNavItem };
185
+ export { SubshellNavItem, SubshellSidebarSection };