@elevasis/ui 2.41.0 → 2.41.1

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 (80) hide show
  1. package/dist/api/index.js +4 -6
  2. package/dist/app/index.css +384 -0
  3. package/dist/app/index.js +17 -26
  4. package/dist/auth/index.css +659 -0
  5. package/dist/auth/index.js +19 -5
  6. package/dist/charts/index.css +533 -0
  7. package/dist/charts/index.js +18 -14
  8. package/dist/{chunk-RXH4D6TY.js → chunk-5M4HSHQ5.js} +631 -2
  9. package/dist/{chunk-TE4P6OSJ.js → chunk-7FJI76OH.js} +1 -1
  10. package/dist/chunk-GMXGDO3I.js +244 -0
  11. package/dist/{chunk-CXY7FMUM.js → chunk-GUKY77FJ.js} +50 -4
  12. package/dist/{chunk-5JYKCULK.js → chunk-NZ2F5RQ4.js} +44 -2
  13. package/dist/{chunk-WF7CONXF.js → chunk-OJJK27GC.js} +658 -6
  14. package/dist/{chunk-JAN2ZXN5.js → chunk-QDXTIQT4.js} +29307 -18446
  15. package/dist/{chunk-73EWE2EW.js → chunk-V5HWC5EW.js} +1 -1
  16. package/dist/components/chat/index.js +1 -2
  17. package/dist/components/index.css +149 -149
  18. package/dist/components/index.js +13 -36
  19. package/dist/components/navigation/index.css +659 -0
  20. package/dist/components/navigation/index.js +25 -3
  21. package/dist/features/auth/index.js +14 -37
  22. package/dist/features/clients/index.css +149 -149
  23. package/dist/features/clients/index.js +13 -36
  24. package/dist/features/crm/index.js +13 -36
  25. package/dist/features/dashboard/index.js +13 -36
  26. package/dist/features/delivery/index.js +13 -36
  27. package/dist/features/knowledge/index.css +659 -0
  28. package/dist/features/knowledge/index.js +25 -247
  29. package/dist/features/lead-gen/index.js +13 -36
  30. package/dist/features/monitoring/index.js +13 -36
  31. package/dist/features/monitoring/requests/index.js +19 -149
  32. package/dist/features/operations/index.js +13 -36
  33. package/dist/features/seo/index.js +1 -4
  34. package/dist/features/settings/index.js +13 -36
  35. package/dist/hooks/access/index.css +659 -0
  36. package/dist/hooks/access/index.js +19 -4
  37. package/dist/hooks/delivery/index.js +13 -36
  38. package/dist/hooks/index.js +13 -36
  39. package/dist/hooks/published.js +13 -36
  40. package/dist/index.js +14 -37
  41. package/dist/initialization/index.js +1 -1
  42. package/dist/knowledge/index.css +659 -0
  43. package/dist/knowledge/index.js +25 -15
  44. package/dist/layout/index.css +659 -0
  45. package/dist/layout/index.js +24 -9
  46. package/dist/organization/index.js +13 -36
  47. package/dist/provider/index.css +384 -0
  48. package/dist/provider/index.js +18 -21
  49. package/dist/provider/published.css +533 -0
  50. package/dist/provider/published.js +18 -16
  51. package/dist/test-utils/index.js +4 -6
  52. package/dist/theme/index.js +2 -5
  53. package/dist/theme/presets/index.js +1 -2
  54. package/dist/utils/index.js +1 -3
  55. package/package.json +4 -4
  56. package/dist/chunk-3KMDHCAR.js +0 -52
  57. package/dist/chunk-4DRI3G36.js +0 -1016
  58. package/dist/chunk-56O7QQE7.js +0 -356
  59. package/dist/chunk-5EYJ2GIN.js +0 -122
  60. package/dist/chunk-66U7JOWV.js +0 -425
  61. package/dist/chunk-6D4LCJ52.js +0 -10
  62. package/dist/chunk-6ROXVZ3L.js +0 -9
  63. package/dist/chunk-A2XN6PR2.js +0 -111
  64. package/dist/chunk-B2DZLPDL.js +0 -39
  65. package/dist/chunk-CLDCYJQT.js +0 -1
  66. package/dist/chunk-CTJBPF3Z.js +0 -734
  67. package/dist/chunk-DT3QYZVU.js +0 -23
  68. package/dist/chunk-FIMGOWOT.js +0 -3644
  69. package/dist/chunk-IIMU5YAJ.js +0 -53
  70. package/dist/chunk-JHVEA5NE.js +0 -133
  71. package/dist/chunk-L7GXUSCV.js +0 -215
  72. package/dist/chunk-NYBEU5TE.js +0 -118
  73. package/dist/chunk-QVQMOQXB.js +0 -1240
  74. package/dist/chunk-RH5VWWSC.js +0 -624
  75. package/dist/chunk-S4R2ZQS7.js +0 -2131
  76. package/dist/chunk-TYRUKGGD.js +0 -46
  77. package/dist/chunk-VAAU2Z3S.js +0 -85
  78. package/dist/chunk-WLOQ4IBG.js +0 -654
  79. package/dist/chunk-X4WBGKJQ.js +0 -138
  80. package/dist/chunk-YPWN2WQ3.js +0 -340
@@ -1,425 +0,0 @@
1
- import { useAppearance } from './chunk-L7GXUSCV.js';
2
- import { useState, Component } from 'react';
3
- import { CopyButton, Tooltip } from '@mantine/core';
4
- import { IconCheck, IconCopy } from '@tabler/icons-react';
5
- import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
6
-
7
- var tokens = {
8
- cardBg: "rgba(16, 16, 20, 0.92)",
9
- cardBorder: "rgba(255, 255, 255, 0.06)",
10
- accentRed: "#ff5555",
11
- accentRedDim: "rgba(255, 85, 85, 0.15)",
12
- textPrimary: "#e8e8e8",
13
- textSecondary: "rgba(255, 255, 255, 0.5)",
14
- textTertiary: "rgba(255, 255, 255, 0.3)",
15
- codeBg: "rgba(0, 0, 0, 0.35)",
16
- codeBorder: "rgba(255, 255, 255, 0.05)",
17
- fileHighlight: "#7dd3fc",
18
- separator: "rgba(255, 255, 255, 0.06)",
19
- mono: "'JetBrains Mono', 'Fira Code', 'Cascadia Code', ui-monospace, monospace",
20
- sans: "'Inter', -apple-system, system-ui, sans-serif"
21
- };
22
- function parseStackFrames(stack) {
23
- return stack.split("\n").filter((line) => line.trim().startsWith("at ")).map((line) => {
24
- const trimmed = line.trim();
25
- const parenMatch = trimmed.match(/^at\s+(.+?)\s+\((.+)\)$/);
26
- if (parenMatch) {
27
- return { fn: parenMatch[1], file: parenMatch[2], raw: trimmed };
28
- }
29
- const simpleMatch = trimmed.match(/^at\s+(.+)$/);
30
- if (simpleMatch) {
31
- return { fn: "", file: simpleMatch[1], raw: trimmed };
32
- }
33
- return { fn: "", file: "", raw: trimmed };
34
- });
35
- }
36
- var COMPONENT_NOISE = /* @__PURE__ */ new Set([
37
- "div",
38
- "main",
39
- "span",
40
- "section",
41
- "Lazy",
42
- "Suspense",
43
- "SafeFragment",
44
- "MatchImpl",
45
- "MatchInnerImpl",
46
- "OutletImpl",
47
- "CatchBoundaryImpl",
48
- "CatchBoundary",
49
- "MatchesInner",
50
- "Matches",
51
- "SplitComponent"
52
- ]);
53
- function isNoiseComponent(name) {
54
- if (COMPONENT_NOISE.has(name)) return true;
55
- if (name.startsWith("@mantine/") || name.startsWith("@tanstack/")) return true;
56
- return false;
57
- }
58
- function parseComponentStack(stack) {
59
- return stack.trim().split("\n").map((line) => line.trim()).filter((line) => line.startsWith("at ")).map((line) => {
60
- const match = line.match(/^at\s+(\S+)/);
61
- return match ? match[1] : line.replace(/^at\s+/, "");
62
- }).filter((name) => !isNoiseComponent(name));
63
- }
64
- function SectionLabel({ children }) {
65
- return /* @__PURE__ */ jsx(
66
- "div",
67
- {
68
- style: {
69
- fontSize: 10,
70
- fontFamily: tokens.sans,
71
- fontWeight: 600,
72
- textTransform: "uppercase",
73
- letterSpacing: "0.08em",
74
- color: tokens.textTertiary,
75
- marginBottom: 6
76
- },
77
- children
78
- }
79
- );
80
- }
81
- function CodeBlock({ children, style }) {
82
- return /* @__PURE__ */ jsx(
83
- "div",
84
- {
85
- style: {
86
- background: tokens.codeBg,
87
- border: `1px solid ${tokens.codeBorder}`,
88
- borderRadius: 6,
89
- padding: "10px 14px",
90
- fontFamily: tokens.mono,
91
- fontSize: 12,
92
- lineHeight: 1.6,
93
- color: tokens.textPrimary,
94
- overflowX: "auto",
95
- ...style
96
- },
97
- children
98
- }
99
- );
100
- }
101
- function StackFrameRow({ frame }) {
102
- return /* @__PURE__ */ jsxs("div", { style: { display: "flex", gap: 8, alignItems: "baseline" }, children: [
103
- frame.fn && /* @__PURE__ */ jsx("span", { style: { color: tokens.textPrimary, flexShrink: 0 }, children: frame.fn }),
104
- /* @__PURE__ */ jsx("span", { style: { color: tokens.fileHighlight, opacity: 0.7, fontSize: 11 }, children: frame.file })
105
- ] });
106
- }
107
- function Separator() {
108
- return /* @__PURE__ */ jsx("div", { style: { height: 1, background: tokens.separator, margin: "4px 0" } });
109
- }
110
- function ErrorReportCard({
111
- errorName,
112
- errorMessage,
113
- errorStack,
114
- componentStack,
115
- eventId,
116
- url,
117
- timestamp,
118
- reportText,
119
- appVersion
120
- }) {
121
- const [expanded, setExpanded] = useState(true);
122
- const frames = errorStack ? parseStackFrames(errorStack) : [];
123
- const components = componentStack ? parseComponentStack(componentStack) : [];
124
- return /* @__PURE__ */ jsxs(
125
- "div",
126
- {
127
- style: {
128
- background: tokens.cardBg,
129
- border: `1px solid ${tokens.cardBorder}`,
130
- borderTop: `3px solid ${tokens.accentRed}`,
131
- borderRadius: 10,
132
- maxWidth: 720,
133
- width: "100%",
134
- fontFamily: tokens.sans,
135
- backdropFilter: "blur(20px)",
136
- boxShadow: "0 25px 60px rgba(0, 0, 0, 0.5), 0 0 40px rgba(255, 85, 85, 0.05)"
137
- },
138
- children: [
139
- /* @__PURE__ */ jsxs("div", { style: { padding: "20px 24px 0" }, children: [
140
- /* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", justifyContent: "space-between", marginBottom: 12 }, children: [
141
- /* @__PURE__ */ jsx("div", { style: { display: "flex", alignItems: "center", gap: 10 }, children: /* @__PURE__ */ jsx(
142
- "span",
143
- {
144
- style: {
145
- background: tokens.accentRedDim,
146
- color: tokens.accentRed,
147
- fontSize: 12,
148
- fontWeight: 600,
149
- fontFamily: tokens.mono,
150
- padding: "3px 10px",
151
- borderRadius: 4,
152
- letterSpacing: "0.02em"
153
- },
154
- children: errorName
155
- }
156
- ) }),
157
- /* @__PURE__ */ jsx(CopyButton, { value: reportText, timeout: 2e3, children: ({ copied, copy }) => /* @__PURE__ */ jsx(Tooltip, { label: copied ? "Copied!" : "Copy error report", position: "left", children: /* @__PURE__ */ jsxs(
158
- "button",
159
- {
160
- onClick: copy,
161
- style: {
162
- background: copied ? "rgba(45, 212, 191, 0.15)" : "rgba(255, 255, 255, 0.06)",
163
- border: `1px solid ${copied ? "rgba(45, 212, 191, 0.3)" : "rgba(255, 255, 255, 0.08)"}`,
164
- borderRadius: 6,
165
- padding: "5px 12px",
166
- color: copied ? "#2dd4bf" : tokens.textSecondary,
167
- cursor: "pointer",
168
- display: "flex",
169
- alignItems: "center",
170
- gap: 6,
171
- fontSize: 12,
172
- fontFamily: tokens.sans,
173
- transition: "all 0.15s ease"
174
- },
175
- children: [
176
- copied ? /* @__PURE__ */ jsx(IconCheck, { size: 13 }) : /* @__PURE__ */ jsx(IconCopy, { size: 13 }),
177
- copied ? "Copied" : "Copy"
178
- ]
179
- }
180
- ) }) })
181
- ] }),
182
- /* @__PURE__ */ jsx(
183
- "div",
184
- {
185
- style: {
186
- fontSize: 16,
187
- fontWeight: 500,
188
- color: tokens.textPrimary,
189
- lineHeight: 1.5,
190
- marginBottom: 16
191
- },
192
- children: errorMessage
193
- }
194
- ),
195
- /* @__PURE__ */ jsxs(
196
- "div",
197
- {
198
- style: {
199
- background: tokens.codeBg,
200
- border: `1px solid ${tokens.codeBorder}`,
201
- borderRadius: 6,
202
- padding: "8px 12px",
203
- fontFamily: tokens.mono,
204
- fontSize: 12,
205
- color: tokens.fileHighlight,
206
- marginBottom: 16,
207
- display: "flex",
208
- alignItems: "center",
209
- gap: 8
210
- },
211
- children: [
212
- /* @__PURE__ */ jsx("span", { style: { color: tokens.textTertiary, fontSize: 10, flexShrink: 0 }, children: "URL" }),
213
- /* @__PURE__ */ jsx("span", { style: { opacity: 0.8 }, children: url })
214
- ]
215
- }
216
- )
217
- ] }),
218
- /* @__PURE__ */ jsx("div", { style: { padding: "0 24px" }, children: /* @__PURE__ */ jsxs(
219
- "button",
220
- {
221
- onClick: () => setExpanded((v) => !v),
222
- style: {
223
- background: "none",
224
- border: "none",
225
- color: tokens.textTertiary,
226
- fontSize: 11,
227
- fontFamily: tokens.sans,
228
- cursor: "pointer",
229
- padding: "4px 0",
230
- display: "flex",
231
- alignItems: "center",
232
- gap: 4,
233
- letterSpacing: "0.05em",
234
- textTransform: "uppercase",
235
- fontWeight: 600
236
- },
237
- children: [
238
- expanded ? "- Hide" : "+ Show",
239
- " details"
240
- ]
241
- }
242
- ) }),
243
- expanded && /* @__PURE__ */ jsxs("div", { style: { padding: "8px 24px 20px" }, children: [
244
- frames.length > 0 && /* @__PURE__ */ jsxs("div", { style: { marginBottom: 16 }, children: [
245
- /* @__PURE__ */ jsx(SectionLabel, { children: "Stack Trace" }),
246
- /* @__PURE__ */ jsx(CodeBlock, { style: { maxHeight: 220, overflowY: "auto" }, children: frames.map((frame, i) => /* @__PURE__ */ jsx(StackFrameRow, { frame }, i)) })
247
- ] }),
248
- components.length > 0 && /* @__PURE__ */ jsxs("div", { style: { marginBottom: 16 }, children: [
249
- /* @__PURE__ */ jsx(SectionLabel, { children: "Component Tree" }),
250
- /* @__PURE__ */ jsx(CodeBlock, { style: { maxHeight: 120, overflowY: "auto" }, children: /* @__PURE__ */ jsx("div", { style: { display: "flex", flexWrap: "wrap", gap: "2px 0", alignItems: "center" }, children: components.map((name, i) => /* @__PURE__ */ jsxs("span", { style: { display: "inline-flex", alignItems: "center" }, children: [
251
- /* @__PURE__ */ jsx(
252
- "span",
253
- {
254
- style: {
255
- color: i === 0 ? tokens.accentRed : tokens.textPrimary,
256
- fontWeight: i === 0 ? 600 : 400
257
- },
258
- children: name
259
- }
260
- ),
261
- i < components.length - 1 && /* @__PURE__ */ jsx("span", { style: { color: tokens.textTertiary, margin: "0 6px", fontSize: 10 }, children: "\u203A" })
262
- ] }, i)) }) })
263
- ] }),
264
- /* @__PURE__ */ jsx(Separator, {}),
265
- /* @__PURE__ */ jsxs(
266
- "div",
267
- {
268
- style: {
269
- display: "grid",
270
- gridTemplateColumns: "auto 1fr",
271
- gap: "4px 16px",
272
- fontSize: 11,
273
- fontFamily: tokens.mono,
274
- paddingTop: 12
275
- },
276
- children: [
277
- appVersion && /* @__PURE__ */ jsxs(Fragment, { children: [
278
- /* @__PURE__ */ jsx("span", { style: { color: tokens.textTertiary }, children: "version" }),
279
- /* @__PURE__ */ jsx("span", { style: { color: tokens.textSecondary }, children: appVersion })
280
- ] }),
281
- /* @__PURE__ */ jsx("span", { style: { color: tokens.textTertiary }, children: "timestamp" }),
282
- /* @__PURE__ */ jsx("span", { style: { color: tokens.textSecondary }, children: timestamp }),
283
- /* @__PURE__ */ jsx("span", { style: { color: tokens.textTertiary }, children: "viewport" }),
284
- /* @__PURE__ */ jsxs("span", { style: { color: tokens.textSecondary }, children: [
285
- window.innerWidth,
286
- "x",
287
- window.innerHeight
288
- ] }),
289
- eventId && /* @__PURE__ */ jsxs(Fragment, { children: [
290
- /* @__PURE__ */ jsx("span", { style: { color: tokens.textTertiary }, children: "sentry" }),
291
- /* @__PURE__ */ jsx("span", { style: { color: tokens.textSecondary }, children: eventId })
292
- ] })
293
- ]
294
- }
295
- )
296
- ] }),
297
- /* @__PURE__ */ jsx(
298
- "div",
299
- {
300
- style: {
301
- borderTop: `1px solid ${tokens.separator}`,
302
- padding: "12px 24px",
303
- display: "flex",
304
- justifyContent: "center"
305
- },
306
- children: /* @__PURE__ */ jsx(
307
- "button",
308
- {
309
- onClick: () => window.location.reload(),
310
- style: {
311
- background: "none",
312
- border: "none",
313
- color: tokens.textTertiary,
314
- fontSize: 12,
315
- fontFamily: tokens.sans,
316
- cursor: "pointer",
317
- padding: "2px 8px",
318
- textDecoration: "underline",
319
- textUnderlineOffset: 3
320
- },
321
- children: "Reload page"
322
- }
323
- )
324
- }
325
- )
326
- ]
327
- }
328
- );
329
- }
330
- function getErrorName(error) {
331
- if (error instanceof Error) {
332
- return error.constructor.name === "Error" ? "Error" : error.constructor.name;
333
- }
334
- return "Error";
335
- }
336
- function buildErrorReport(opts) {
337
- const { error, componentStack, eventId } = opts;
338
- const errorMessage = error instanceof Error ? error.message : String(error);
339
- const errorStack = error instanceof Error ? error.stack : void 0;
340
- const url = opts.url ?? window.location.href;
341
- const sections = [
342
- `## Error Report`,
343
- `**Timestamp:** ${(/* @__PURE__ */ new Date()).toISOString()}`,
344
- `**URL:** ${url}`,
345
- opts.appVersion && `**App Version:** ${opts.appVersion}`,
346
- eventId && `**Sentry Event ID:** ${eventId}`,
347
- `**User Agent:** ${navigator.userAgent}`,
348
- `**Viewport:** ${window.innerWidth}x${window.innerHeight}`,
349
- "",
350
- `### Error`,
351
- "```",
352
- `${getErrorName(error)}: ${errorMessage}`,
353
- "```",
354
- "",
355
- errorStack && `### Stack Trace`,
356
- errorStack && "```",
357
- errorStack,
358
- errorStack && "```",
359
- errorStack && "",
360
- componentStack && `### Component Stack`,
361
- componentStack && "```",
362
- componentStack?.trim(),
363
- componentStack && "```"
364
- ];
365
- return sections.filter(Boolean).join("\n");
366
- }
367
- function CrashErrorFallback({ error, componentStack, eventId, appVersion }) {
368
- const { background } = useAppearance();
369
- const errorMessage = error instanceof Error ? error.message : String(error);
370
- const errorStack = error instanceof Error ? error.stack : void 0;
371
- const errorName = getErrorName(error);
372
- const reportText = buildErrorReport({ error, componentStack, eventId, appVersion });
373
- const timestamp = (/* @__PURE__ */ new Date()).toISOString();
374
- return /* @__PURE__ */ jsxs(
375
- "div",
376
- {
377
- style: {
378
- position: "fixed",
379
- inset: 0,
380
- overflow: "auto",
381
- background: "var(--color-background)",
382
- display: "flex",
383
- alignItems: "center",
384
- justifyContent: "center",
385
- padding: 24
386
- },
387
- children: [
388
- background,
389
- /* @__PURE__ */ jsx("div", { style: { position: "relative", zIndex: 1, width: "100%", display: "flex", justifyContent: "center" }, children: /* @__PURE__ */ jsx(
390
- ErrorReportCard,
391
- {
392
- errorName,
393
- errorMessage,
394
- errorStack,
395
- componentStack,
396
- eventId,
397
- url: window.location.href,
398
- timestamp,
399
- reportText,
400
- appVersion
401
- }
402
- ) })
403
- ]
404
- }
405
- );
406
- }
407
- var AppErrorBoundary = class extends Component {
408
- state = { error: null, componentStack: "" };
409
- static getDerivedStateFromError(error) {
410
- return { error };
411
- }
412
- componentDidCatch(error, errorInfo) {
413
- this.setState({ componentStack: errorInfo.componentStack ?? "" });
414
- this.props.onError?.(error, errorInfo);
415
- }
416
- render() {
417
- if (this.state.error !== null) {
418
- const props = { error: this.state.error, componentStack: this.state.componentStack };
419
- return this.props.fallback ? this.props.fallback(props) : /* @__PURE__ */ jsx(CrashErrorFallback, { ...props, appVersion: this.props.appVersion });
420
- }
421
- return this.props.children;
422
- }
423
- };
424
-
425
- export { AppErrorBoundary, CrashErrorFallback, ErrorReportCard, buildErrorReport };
@@ -1,10 +0,0 @@
1
- import { PRESETS } from './chunk-WF7CONXF.js';
2
- import { createContext, useContext } from 'react';
3
-
4
- var PresetsContext = createContext(PRESETS);
5
- var PresetsProvider = PresetsContext.Provider;
6
- function usePresetsContext() {
7
- return useContext(PresetsContext);
8
- }
9
-
10
- export { PresetsProvider, usePresetsContext };
@@ -1,9 +0,0 @@
1
- // src/utils/constants/cache.ts
2
- var STALE_TIME_MONITORING = 3e4;
3
- var STALE_TIME_ADMIN = 6e4;
4
- var STALE_TIME_DEFAULT = 3e5;
5
- var GC_TIME_SHORT = 3e5;
6
- var GC_TIME_MEDIUM = 6e5;
7
- var GC_TIME_LONG = 18e5;
8
-
9
- export { GC_TIME_LONG, GC_TIME_MEDIUM, GC_TIME_SHORT, STALE_TIME_ADMIN, STALE_TIME_DEFAULT, STALE_TIME_MONITORING };
@@ -1,111 +0,0 @@
1
- import { mantineThemeOverride, createCssVariablesResolver } from './chunk-5JYKCULK.js';
2
- import { PresetsProvider } from './chunk-6D4LCJ52.js';
3
- import { PRESETS, getPreset, generateShades } from './chunk-WF7CONXF.js';
4
- import { AppBackground } from './chunk-WLOQ4IBG.js';
5
- import { ElevasisCoreProvider } from './chunk-YPWN2WQ3.js';
6
- import { ElevasisLoader } from './chunk-CTJBPF3Z.js';
7
- import { AppearanceProvider } from './chunk-L7GXUSCV.js';
8
- import { getErrorInfo, formatErrorMessage, getErrorTitle } from './chunk-RXH4D6TY.js';
9
- import { resolveOrganizationModel, useElevasisSystems, ElevasisSystemsProvider } from './chunk-FIMGOWOT.js';
10
- import { useMemo, useEffect } from 'react';
11
- import { Loader, mergeThemeOverrides, MantineProvider } from '@mantine/core';
12
- import '@mantine/core/styles.css';
13
- import '@mantine/notifications/styles.css';
14
- import { notifications } from '@mantine/notifications';
15
- import { jsx } from 'react/jsx-runtime';
16
-
17
- var EMPTY_CANONICAL_MODEL = resolveOrganizationModel(void 0, { mergeDefaults: false });
18
- function useResolvedOrganizationModel() {
19
- const { organizationModel } = useElevasisSystems();
20
- return useMemo(() => organizationModel ?? EMPTY_CANONICAL_MODEL, [organizationModel]);
21
- }
22
- var mantineAdapter = {
23
- success(title, message) {
24
- notifications.show({ title, message, autoClose: 5e3, color: "green", position: "top-right" });
25
- },
26
- error(title, message) {
27
- notifications.show({ title, message, autoClose: 5e3, color: "red", position: "top-right" });
28
- },
29
- info(title, message) {
30
- notifications.show({ title, message, autoClose: 5e3, color: "blue", position: "top-right" });
31
- },
32
- warning(title, message) {
33
- notifications.show({ title, message, autoClose: 5e3, color: "orange", position: "top-right" });
34
- },
35
- apiError(error) {
36
- const { message, code, requestId, fields, retryAfter } = getErrorInfo(error);
37
- const hasFields = fields && Object.keys(fields).length > 0;
38
- notifications.show({
39
- title: getErrorTitle(code),
40
- message: formatErrorMessage(message, requestId, fields, retryAfter),
41
- autoClose: retryAfter ? retryAfter * 1e3 : hasFields ? 8e3 : 5e3,
42
- color: "red",
43
- position: "top-right"
44
- });
45
- }
46
- };
47
- function ElevasisUIProvider({ theme, children, ...coreProps }) {
48
- const resolvedColorScheme = theme?.colorScheme ?? "dark";
49
- const activePresets = theme?.presets ?? PRESETS;
50
- const preset = useMemo(() => getPreset(theme?.preset ?? "default", theme?.presets), [theme?.preset, theme?.presets]);
51
- const resolvedAppearance = {
52
- background: theme?.background ?? preset.background ?? /* @__PURE__ */ jsx(AppBackground, {}),
53
- loader: theme?.loader ?? preset.loader ?? /* @__PURE__ */ jsx(Loader, { size: "xl", loaders: { elevasis: ElevasisLoader }, type: "elevasis" })
54
- };
55
- useEffect(() => {
56
- if (!preset.fontImports?.length) return;
57
- const links = [];
58
- for (const href of preset.fontImports) {
59
- if (document.querySelector(`link[href="${href}"]`)) continue;
60
- const link = document.createElement("link");
61
- link.rel = "stylesheet";
62
- link.href = href;
63
- document.head.appendChild(link);
64
- links.push(link);
65
- }
66
- const subtitleFont = preset.subtitleFontFamily ?? preset.framework?.headings?.fontFamily ?? preset.framework?.fontFamily ?? "";
67
- document.documentElement.style.setProperty("--elevasis-font-family-subtitle", subtitleFont);
68
- return () => {
69
- links.forEach((l) => l.remove());
70
- document.documentElement.style.removeProperty("--elevasis-font-family-subtitle");
71
- };
72
- }, [
73
- preset.fontImports,
74
- preset.subtitleFontFamily,
75
- preset.framework?.headings?.fontFamily,
76
- preset.framework?.fontFamily
77
- ]);
78
- const resolvedTheme = useMemo(() => {
79
- const primaryHex = theme?.tokens?.primary ?? preset.dark.primary;
80
- const primaryOverride = {
81
- primaryColor: "primary",
82
- colors: { primary: generateShades(primaryHex) }
83
- };
84
- let base = mergeThemeOverrides(mantineThemeOverride, primaryOverride);
85
- if (preset.framework) base = mergeThemeOverrides(base, preset.framework);
86
- return theme?.mantine ? mergeThemeOverrides(base, theme.mantine) : base;
87
- }, [theme?.mantine, preset, theme?.tokens?.primary]);
88
- const cssVariablesResolver = useMemo(
89
- () => createCssVariablesResolver(theme?.tokens, theme?.preset, theme?.presets),
90
- [theme?.tokens, theme?.preset, theme?.presets]
91
- );
92
- return /* @__PURE__ */ jsx(
93
- MantineProvider,
94
- {
95
- theme: resolvedTheme,
96
- defaultColorScheme: resolvedColorScheme,
97
- cssVariablesResolver,
98
- children: /* @__PURE__ */ jsx(PresetsProvider, { value: activePresets, children: /* @__PURE__ */ jsx(AppearanceProvider, { value: resolvedAppearance, children: /* @__PURE__ */ jsx(ElevasisCoreProvider, { notifications: mantineAdapter, ...coreProps, children }) }) })
99
- }
100
- );
101
- }
102
- function createTestSystemsProvider({
103
- organizationModel,
104
- systems = []
105
- } = {}) {
106
- return function TestSystemsProvider({ children }) {
107
- return /* @__PURE__ */ jsx(ElevasisSystemsProvider, { systems, organizationModel, children });
108
- };
109
- }
110
-
111
- export { ElevasisUIProvider, createTestSystemsProvider, useResolvedOrganizationModel };
@@ -1,39 +0,0 @@
1
- import { usePresetsContext } from './chunk-6D4LCJ52.js';
2
- import { useMemo } from 'react';
3
-
4
- var BUILT_IN_NAMES = /* @__PURE__ */ new Set([
5
- "default",
6
- "tactical",
7
- "regal",
8
- "cyber-volt",
9
- "aurora",
10
- "rose-gold",
11
- "midnight",
12
- "titanium",
13
- "obsidian",
14
- "honey",
15
- "abyss",
16
- "canopy",
17
- "slate",
18
- "cyber-strike",
19
- "cyber-chrome",
20
- "cyber-void",
21
- "quarry"
22
- ]);
23
- function titleCase(str) {
24
- return str.replace(/(^|-)(\w)/g, (_, sep, char) => (sep ? " " : "") + char.toUpperCase());
25
- }
26
- function useAvailablePresets() {
27
- const presetsMap = usePresetsContext();
28
- return useMemo(() => {
29
- return Object.entries(presetsMap).map(([key, preset]) => ({
30
- value: key,
31
- label: preset.label ?? titleCase(key),
32
- description: preset.description ?? "",
33
- colors: preset.colors ?? [preset.dark.primary, preset.dark.background, preset.light.background],
34
- isCustom: !BUILT_IN_NAMES.has(key)
35
- }));
36
- }, [presetsMap]);
37
- }
38
-
39
- export { useAvailablePresets };
@@ -1 +0,0 @@
1
-