@omnitron-dev/prism 0.3.5 → 0.4.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.
- package/dist/{chunk-DHTYHUYI.js → chunk-74TJGLFR.js} +4 -4
- package/dist/{chunk-DHTYHUYI.js.map → chunk-74TJGLFR.js.map} +1 -1
- package/dist/{chunk-D4GFAJAZ.js → chunk-FADV3QAS.js} +4 -4
- package/dist/{chunk-D4GFAJAZ.js.map → chunk-FADV3QAS.js.map} +1 -1
- package/dist/chunk-GCXRYSWU.js +132 -0
- package/dist/chunk-GCXRYSWU.js.map +1 -0
- package/dist/{chunk-UEINJFLS.js → chunk-HCADZXAK.js} +19 -10
- package/dist/chunk-HCADZXAK.js.map +1 -0
- package/dist/{chunk-RSWVYIXK.js → chunk-KOOKHWTH.js} +6 -133
- package/dist/chunk-KOOKHWTH.js.map +1 -0
- package/dist/{chunk-F6RZ7LW6.js → chunk-SPK7E7BD.js} +3 -3
- package/dist/{chunk-F6RZ7LW6.js.map → chunk-SPK7E7BD.js.map} +1 -1
- package/dist/{chunk-AATAOOSF.js → chunk-UWYLMSIQ.js} +3 -3
- package/dist/{chunk-AATAOOSF.js.map → chunk-UWYLMSIQ.js.map} +1 -1
- package/dist/{chunk-NSNM53WI.js → chunk-YYQWPEOP.js} +12 -11
- package/dist/chunk-YYQWPEOP.js.map +1 -0
- package/dist/components/admin-filters/index.js +2 -2
- package/dist/components/index.js +13 -12
- package/dist/core/index.js +4 -3
- package/dist/core/provider.d.ts +10 -4
- package/dist/core/provider.d.ts.map +1 -1
- package/dist/hooks/index.js +5 -4
- package/dist/identity/geometry.d.ts +25 -0
- package/dist/identity/geometry.d.ts.map +1 -0
- package/dist/identity/index.d.ts +6 -0
- package/dist/identity/index.d.ts.map +1 -0
- package/dist/identity/index.js +278 -0
- package/dist/identity/index.js.map +1 -0
- package/dist/identity/omnitron-mark.d.ts +14 -0
- package/dist/identity/omnitron-mark.d.ts.map +1 -0
- package/dist/identity/omnitron-splash.d.ts +15 -0
- package/dist/identity/omnitron-splash.d.ts.map +1 -0
- package/dist/identity/theme.d.ts +7 -0
- package/dist/identity/theme.d.ts.map +1 -0
- package/dist/identity/tokens.d.ts +46 -0
- package/dist/identity/tokens.d.ts.map +1 -0
- package/dist/index.js +16 -15
- package/dist/index.js.map +1 -1
- package/dist/layouts/dashboard/sidenav.d.ts.map +1 -1
- package/dist/layouts/index.js +1 -1
- package/dist/theme/components/DataGrid.d.ts +0 -1
- package/dist/theme/components/DataGrid.d.ts.map +1 -1
- package/dist/theme/index.js +3 -2
- package/package.json +8 -4
- package/dist/chunk-NSNM53WI.js.map +0 -1
- package/dist/chunk-RSWVYIXK.js.map +0 -1
- package/dist/chunk-UEINJFLS.js.map +0 -1
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { createTypography, typography } from '../chunk-GCXRYSWU.js';
|
|
3
|
+
import { keyframes, alpha } from '@mui/material/styles';
|
|
4
|
+
import { useId, useRef, useState, useEffect } from 'react';
|
|
5
|
+
import Box from '@mui/material/Box';
|
|
6
|
+
import Typography2 from '@mui/material/Typography';
|
|
7
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
8
|
+
import LinearProgress from '@mui/material/LinearProgress';
|
|
9
|
+
|
|
10
|
+
// src/identity/tokens.ts
|
|
11
|
+
var omnitronTokens = {
|
|
12
|
+
font: {
|
|
13
|
+
sans: 'Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',
|
|
14
|
+
mono: 'ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace'
|
|
15
|
+
},
|
|
16
|
+
radius: 6,
|
|
17
|
+
color: {
|
|
18
|
+
light: {
|
|
19
|
+
background: "#F3F6F7",
|
|
20
|
+
surface: "#FFFFFF",
|
|
21
|
+
raised: "#E9EFF1",
|
|
22
|
+
text: "#162026",
|
|
23
|
+
muted: "#53646D",
|
|
24
|
+
disabled: "#6C7D86",
|
|
25
|
+
border: "#D2DCE1",
|
|
26
|
+
controlBorder: "#71818A",
|
|
27
|
+
accent: "#006D75",
|
|
28
|
+
onAccent: "#FFFFFF",
|
|
29
|
+
success: "#226742",
|
|
30
|
+
warning: "#8A5700",
|
|
31
|
+
error: "#B43A44",
|
|
32
|
+
info: "#2C609A"
|
|
33
|
+
},
|
|
34
|
+
dark: {
|
|
35
|
+
background: "#0B0F12",
|
|
36
|
+
surface: "#13191D",
|
|
37
|
+
raised: "#1B2328",
|
|
38
|
+
text: "#E6EDF0",
|
|
39
|
+
muted: "#A5B5BD",
|
|
40
|
+
disabled: "#83959F",
|
|
41
|
+
border: "#2D3B43",
|
|
42
|
+
controlBorder: "#61757F",
|
|
43
|
+
accent: "#71DDE3",
|
|
44
|
+
onAccent: "#0B2528",
|
|
45
|
+
success: "#7BCB9B",
|
|
46
|
+
warning: "#E8C36A",
|
|
47
|
+
error: "#F2969A",
|
|
48
|
+
info: "#8FBDF4"
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
function omnitronCssVariables(mode) {
|
|
53
|
+
const color = omnitronTokens.color[mode];
|
|
54
|
+
return {
|
|
55
|
+
"--omni-bg": color.background,
|
|
56
|
+
"--omni-surface": color.surface,
|
|
57
|
+
"--omni-surface-raised": color.raised,
|
|
58
|
+
"--omni-text": color.text,
|
|
59
|
+
"--omni-text-muted": color.muted,
|
|
60
|
+
"--omni-border": color.border,
|
|
61
|
+
"--omni-control-border": color.controlBorder,
|
|
62
|
+
"--omni-accent": color.accent,
|
|
63
|
+
"--omni-on-accent": color.onAccent,
|
|
64
|
+
"--omni-success": color.success,
|
|
65
|
+
"--omni-warning": color.warning,
|
|
66
|
+
"--omni-error": color.error,
|
|
67
|
+
"--omni-info": color.info,
|
|
68
|
+
"--omni-font-sans": omnitronTokens.font.sans,
|
|
69
|
+
"--omni-font-mono": omnitronTokens.font.mono,
|
|
70
|
+
"--omni-radius": `${omnitronTokens.radius}px`,
|
|
71
|
+
"--omni-focus-ring": `2px solid ${color.accent}`
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
function omnitronTheme({ mode }) {
|
|
75
|
+
const color = omnitronTokens.color[mode];
|
|
76
|
+
const focus = { outline: `2px solid ${color.accent}`, outlineOffset: 3 };
|
|
77
|
+
const overlay = {
|
|
78
|
+
borderRadius: omnitronTokens.radius,
|
|
79
|
+
border: `1px solid ${color.border}`,
|
|
80
|
+
boxShadow: `0 8px 24px ${alpha("#000000", mode === "dark" ? 0.24 : 0.1)}`
|
|
81
|
+
};
|
|
82
|
+
return {
|
|
83
|
+
palette: {
|
|
84
|
+
primary: { main: color.accent, contrastText: color.onAccent },
|
|
85
|
+
secondary: { main: color.muted },
|
|
86
|
+
success: { main: color.success },
|
|
87
|
+
warning: { main: color.warning },
|
|
88
|
+
error: { main: color.error },
|
|
89
|
+
info: { main: color.info },
|
|
90
|
+
text: { primary: color.text, secondary: color.muted, disabled: color.disabled },
|
|
91
|
+
divider: color.border,
|
|
92
|
+
background: {
|
|
93
|
+
default: color.background,
|
|
94
|
+
paper: color.surface,
|
|
95
|
+
neutral: color.raised,
|
|
96
|
+
elevation1: color.surface,
|
|
97
|
+
elevation2: color.raised,
|
|
98
|
+
elevation3: color.raised,
|
|
99
|
+
elevation4: color.raised,
|
|
100
|
+
menu: color.surface,
|
|
101
|
+
menuElevation1: color.raised,
|
|
102
|
+
menuElevation2: color.raised
|
|
103
|
+
},
|
|
104
|
+
action: {
|
|
105
|
+
active: color.muted,
|
|
106
|
+
hover: alpha(color.text, 0.05),
|
|
107
|
+
selected: alpha(color.accent, 0.1),
|
|
108
|
+
focus: alpha(color.accent, 0.16),
|
|
109
|
+
disabled: color.disabled,
|
|
110
|
+
disabledBackground: color.raised
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
shape: { borderRadius: omnitronTokens.radius },
|
|
114
|
+
typography: {
|
|
115
|
+
...createTypography({
|
|
116
|
+
fontFamily: { primary: omnitronTokens.font.sans, secondary: omnitronTokens.font.sans, mono: omnitronTokens.font.mono },
|
|
117
|
+
fontWeights: typography.fontWeights
|
|
118
|
+
}),
|
|
119
|
+
h1: { fontFamily: omnitronTokens.font.sans, fontSize: "3rem", fontWeight: 600, lineHeight: 1.12, letterSpacing: "-0.04em" },
|
|
120
|
+
h2: { fontFamily: omnitronTokens.font.sans, fontSize: "2.25rem", fontWeight: 600, lineHeight: 1.2, letterSpacing: "-0.035em" },
|
|
121
|
+
overline: { fontFamily: omnitronTokens.font.mono, fontSize: "0.75rem", fontWeight: 500, lineHeight: 1.5, letterSpacing: "0.08em" }
|
|
122
|
+
},
|
|
123
|
+
components: {
|
|
124
|
+
MuiCssBaseline: {
|
|
125
|
+
styleOverrides: {
|
|
126
|
+
":root": omnitronCssVariables(mode),
|
|
127
|
+
body: { WebkitFontSmoothing: "antialiased" },
|
|
128
|
+
"code, kbd, pre, samp": { fontFamily: omnitronTokens.font.mono },
|
|
129
|
+
"a:focus-visible, button:focus-visible, [tabindex]:focus-visible": focus,
|
|
130
|
+
"::selection": { backgroundColor: alpha(color.accent, 0.24) },
|
|
131
|
+
"@media (prefers-reduced-motion: reduce)": { html: { scrollBehavior: "auto" } }
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
MuiButtonBase: { styleOverrides: { root: { "&.Mui-focusVisible": focus } } },
|
|
135
|
+
MuiButton: {
|
|
136
|
+
styleOverrides: {
|
|
137
|
+
root: { borderRadius: omnitronTokens.radius, boxShadow: "none", "&:hover": { boxShadow: "none" } }
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
MuiOutlinedInput: { styleOverrides: { root: { borderRadius: omnitronTokens.radius }, notchedOutline: { borderColor: color.controlBorder } } },
|
|
141
|
+
MuiPaper: { styleOverrides: { root: { backgroundImage: "none" }, rounded: { borderRadius: omnitronTokens.radius }, outlined: { borderColor: color.border } } },
|
|
142
|
+
MuiCard: { styleOverrides: { root: { minWidth: 0, borderRadius: omnitronTokens.radius, boxShadow: "none" } } },
|
|
143
|
+
MuiCardHeader: {
|
|
144
|
+
styleOverrides: {
|
|
145
|
+
root: { flexWrap: "wrap", gap: 8 },
|
|
146
|
+
content: { minWidth: 0, overflowWrap: "anywhere" },
|
|
147
|
+
action: { margin: 0, alignSelf: "center" }
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
MuiDialog: { styleOverrides: { paper: overlay } },
|
|
151
|
+
MuiMenu: { styleOverrides: { paper: overlay } },
|
|
152
|
+
MuiPopover: { styleOverrides: { paper: overlay } },
|
|
153
|
+
MuiAlert: { styleOverrides: { root: { borderRadius: omnitronTokens.radius } } },
|
|
154
|
+
MuiDivider: { styleOverrides: { root: { borderColor: color.border } } },
|
|
155
|
+
MuiChip: { styleOverrides: { root: { borderRadius: 4 } } },
|
|
156
|
+
MuiTableCell: { styleOverrides: { head: { backgroundColor: color.raised, color: color.muted, fontWeight: 600 } } }
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
// src/identity/geometry.ts
|
|
162
|
+
var omnitronMarkGeometry = {
|
|
163
|
+
viewBox: "0 0 64 64",
|
|
164
|
+
core: "M23.545 43.786L43.837 37.929L28.618 23.285Z",
|
|
165
|
+
facets: [
|
|
166
|
+
{ path: "M22.023 44.226L8.496 48.131L30.478 10.056Z", x: -2.94, y: 0.849 },
|
|
167
|
+
{ path: "M28.999 21.747L32.38 8.079L54.363 46.154Z", x: 0.735, y: -2.97 },
|
|
168
|
+
{ path: "M44.978 39.027L55.124 48.79L11.159 48.79Z", x: 2.205, y: 2.122 }
|
|
169
|
+
]
|
|
170
|
+
};
|
|
171
|
+
var omnitronMarkSvg = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="${omnitronMarkGeometry.viewBox}" fill="currentColor"><style>:root{color:${omnitronTokens.color.light.accent}}@media(prefers-color-scheme:dark){:root{color:${omnitronTokens.color.dark.accent}}}</style><path d="${omnitronMarkGeometry.core}"/>${omnitronMarkGeometry.facets.map(({ path }) => `<path d="${path}"/>`).join("")}</svg>`;
|
|
172
|
+
var reflect = keyframes`
|
|
173
|
+
0%, 60%, 100% { transform: translate(0, 0); }
|
|
174
|
+
20%, 38% { transform: translate(var(--omni-shift-x), var(--omni-shift-y)); }
|
|
175
|
+
`;
|
|
176
|
+
function OmnitronMark({ size = 32, state = "idle", label = "Omnitron", sx }) {
|
|
177
|
+
const titleId = useId();
|
|
178
|
+
const ref = useRef(null);
|
|
179
|
+
const [visible, setVisible] = useState(true);
|
|
180
|
+
const loading = state === "loading";
|
|
181
|
+
useEffect(() => {
|
|
182
|
+
if (!loading) return void 0;
|
|
183
|
+
let intersecting = true;
|
|
184
|
+
const update = () => setVisible(intersecting && !document.hidden);
|
|
185
|
+
const observer = typeof IntersectionObserver === "undefined" ? void 0 : new IntersectionObserver(([entry]) => {
|
|
186
|
+
intersecting = entry?.isIntersecting ?? false;
|
|
187
|
+
update();
|
|
188
|
+
});
|
|
189
|
+
if (ref.current) observer?.observe(ref.current);
|
|
190
|
+
document.addEventListener("visibilitychange", update);
|
|
191
|
+
update();
|
|
192
|
+
return () => {
|
|
193
|
+
observer?.disconnect();
|
|
194
|
+
document.removeEventListener("visibilitychange", update);
|
|
195
|
+
};
|
|
196
|
+
}, [loading]);
|
|
197
|
+
return /* @__PURE__ */ jsxs(
|
|
198
|
+
Box,
|
|
199
|
+
{
|
|
200
|
+
ref,
|
|
201
|
+
component: "svg",
|
|
202
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
203
|
+
viewBox: omnitronMarkGeometry.viewBox,
|
|
204
|
+
role: label ? "img" : void 0,
|
|
205
|
+
"aria-labelledby": label ? titleId : void 0,
|
|
206
|
+
"aria-hidden": label ? void 0 : true,
|
|
207
|
+
focusable: "false",
|
|
208
|
+
"data-omnitron-mark": state,
|
|
209
|
+
sx: [
|
|
210
|
+
{
|
|
211
|
+
display: "block",
|
|
212
|
+
width: size,
|
|
213
|
+
height: size,
|
|
214
|
+
flexShrink: 0,
|
|
215
|
+
color: state === "error" ? "error.main" : state === "success" ? "success.main" : "primary.main",
|
|
216
|
+
fill: "currentColor",
|
|
217
|
+
"& [data-facet]": loading ? {
|
|
218
|
+
animation: `${reflect} 2.4s ease-in-out infinite`,
|
|
219
|
+
animationPlayState: visible ? "running" : "paused",
|
|
220
|
+
"@media (prefers-reduced-motion: reduce)": { animation: "none", transform: "none" }
|
|
221
|
+
} : {}
|
|
222
|
+
},
|
|
223
|
+
...Array.isArray(sx) ? sx : [sx]
|
|
224
|
+
],
|
|
225
|
+
children: [
|
|
226
|
+
label && /* @__PURE__ */ jsx("title", { id: titleId, children: label }),
|
|
227
|
+
omnitronMarkGeometry.facets.map(({ path, x, y }, index) => /* @__PURE__ */ jsx("path", { "data-facet": index, d: path, style: {
|
|
228
|
+
"--omni-shift-x": `${x}px`,
|
|
229
|
+
"--omni-shift-y": `${y}px`,
|
|
230
|
+
animationDelay: `${index * 160}ms`
|
|
231
|
+
} }, path)),
|
|
232
|
+
state === "success" ? /* @__PURE__ */ jsx("path", { d: "m28 35 3 2.5 5.5-4.5", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round" }) : state === "error" ? /* @__PURE__ */ jsx("path", { d: "m29 32 7 6m0-6-7 6", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round" }) : /* @__PURE__ */ jsx("path", { d: omnitronMarkGeometry.core })
|
|
233
|
+
]
|
|
234
|
+
}
|
|
235
|
+
);
|
|
236
|
+
}
|
|
237
|
+
function OmnitronBrand({ size = 32, sx }) {
|
|
238
|
+
return /* @__PURE__ */ jsxs(Box, { sx: [{ display: "inline-flex", alignItems: "center", gap: 1.25, minWidth: 0 }, ...Array.isArray(sx) ? sx : [sx]], children: [
|
|
239
|
+
/* @__PURE__ */ jsx(OmnitronMark, { size, label: null }),
|
|
240
|
+
/* @__PURE__ */ jsx(Typography2, { component: "span", sx: { fontFamily: omnitronTokens.font.sans, color: "text.primary", fontWeight: 600, fontSize: "0.875rem", letterSpacing: "0.12em", lineHeight: 1, whiteSpace: "nowrap" }, children: "OMNITRON" })
|
|
241
|
+
] });
|
|
242
|
+
}
|
|
243
|
+
function OmnitronSplash({ state = "loading", message, progress, action, fullScreen = false, sx }) {
|
|
244
|
+
const messageId = useId();
|
|
245
|
+
const value = state === "loading" && progress !== void 0 && Number.isFinite(progress) ? Math.min(100, Math.max(0, progress)) : void 0;
|
|
246
|
+
const text = message ?? (state === "error" ? "Unable to continue" : state === "success" ? "Ready" : "Loading\u2026");
|
|
247
|
+
return /* @__PURE__ */ jsxs(Box, { "data-omnitron-splash": state, sx: [
|
|
248
|
+
{
|
|
249
|
+
display: "flex",
|
|
250
|
+
flexDirection: "column",
|
|
251
|
+
alignItems: "center",
|
|
252
|
+
justifyContent: "center",
|
|
253
|
+
gap: 2,
|
|
254
|
+
p: 3,
|
|
255
|
+
width: "100%",
|
|
256
|
+
minWidth: 0,
|
|
257
|
+
minHeight: 200,
|
|
258
|
+
flexGrow: 1,
|
|
259
|
+
...fullScreen && { position: "fixed", inset: 0, zIndex: (theme) => theme.zIndex.modal + 1, bgcolor: "background.default" }
|
|
260
|
+
},
|
|
261
|
+
...Array.isArray(sx) ? sx : [sx]
|
|
262
|
+
], children: [
|
|
263
|
+
/* @__PURE__ */ jsx(OmnitronMark, { size: 72, state, label: null }),
|
|
264
|
+
/* @__PURE__ */ jsx(Typography2, { id: messageId, role: state === "error" ? "alert" : "status", variant: "body2", sx: { color: state === "error" ? "error.main" : "text.secondary", textAlign: "center", maxWidth: 420, overflowWrap: "anywhere" }, children: text }),
|
|
265
|
+
value !== void 0 && /* @__PURE__ */ jsxs(Box, { sx: { width: "100%", maxWidth: 240 }, children: [
|
|
266
|
+
/* @__PURE__ */ jsx(LinearProgress, { "aria-labelledby": messageId, variant: "determinate", value, sx: { height: 2, borderRadius: 0, "@media (prefers-reduced-motion: reduce)": { "& .MuiLinearProgress-bar": { transition: "none" } } } }),
|
|
267
|
+
/* @__PURE__ */ jsxs(Typography2, { component: "div", variant: "caption", sx: { mt: 1, color: "text.secondary", textAlign: "center", fontFamily: omnitronTokens.font.mono, fontVariantNumeric: "tabular-nums" }, children: [
|
|
268
|
+
Math.round(value),
|
|
269
|
+
"%"
|
|
270
|
+
] })
|
|
271
|
+
] }),
|
|
272
|
+
action
|
|
273
|
+
] });
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
export { OmnitronBrand, OmnitronMark, OmnitronSplash, omnitronCssVariables, omnitronMarkGeometry, omnitronMarkSvg, omnitronTheme, omnitronTokens };
|
|
277
|
+
//# sourceMappingURL=index.js.map
|
|
278
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/identity/tokens.ts","../../src/identity/theme.ts","../../src/identity/geometry.ts","../../src/identity/omnitron-mark.tsx","../../src/identity/omnitron-splash.tsx"],"names":["Typography","useId","jsxs","Box","jsx"],"mappings":"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","file":"index.js","sourcesContent":["/** Omnitron's visual contract, shared by Console and Lumen's server-rendered shell. */\nexport const omnitronTokens = {\n font: {\n sans: 'Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif',\n mono: 'ui-monospace, \"SFMono-Regular\", Consolas, \"Liberation Mono\", monospace',\n },\n radius: 6,\n color: {\n light: {\n background: '#F3F6F7', surface: '#FFFFFF', raised: '#E9EFF1',\n text: '#162026', muted: '#53646D', disabled: '#6C7D86',\n border: '#D2DCE1', controlBorder: '#71818A',\n accent: '#006D75', onAccent: '#FFFFFF',\n success: '#226742', warning: '#8A5700', error: '#B43A44', info: '#2C609A',\n },\n dark: {\n background: '#0B0F12', surface: '#13191D', raised: '#1B2328',\n text: '#E6EDF0', muted: '#A5B5BD', disabled: '#83959F',\n border: '#2D3B43', controlBorder: '#61757F',\n accent: '#71DDE3', onAccent: '#0B2528',\n success: '#7BCB9B', warning: '#E8C36A', error: '#F2969A', info: '#8FBDF4',\n },\n },\n} as const;\n\nexport type OmnitronColorMode = keyof typeof omnitronTokens.color;\n\n/** Apply on the server-rendered root; the palette never depends on hydration. */\nexport function omnitronCssVariables(mode: OmnitronColorMode): Record<string, string> {\n const color = omnitronTokens.color[mode];\n return {\n '--omni-bg': color.background,\n '--omni-surface': color.surface,\n '--omni-surface-raised': color.raised,\n '--omni-text': color.text,\n '--omni-text-muted': color.muted,\n '--omni-border': color.border,\n '--omni-control-border': color.controlBorder,\n '--omni-accent': color.accent,\n '--omni-on-accent': color.onAccent,\n '--omni-success': color.success,\n '--omni-warning': color.warning,\n '--omni-error': color.error,\n '--omni-info': color.info,\n '--omni-font-sans': omnitronTokens.font.sans,\n '--omni-font-mono': omnitronTokens.font.mono,\n '--omni-radius': `${omnitronTokens.radius}px`,\n '--omni-focus-ring': `2px solid ${color.accent}`,\n };\n}\n","import { alpha, type ThemeOptions } from '@mui/material/styles';\nimport { createTypography, typography } from '../theme/typography.js';\nimport { omnitronCssVariables, omnitronTokens, type OmnitronColorMode } from './tokens.js';\n\n/** Use as PrismProvider.themeOverrides in both Console and the public website. */\nexport function omnitronTheme({ mode }: { mode: OmnitronColorMode }): ThemeOptions & Record<string, unknown> {\n const color = omnitronTokens.color[mode];\n const focus = { outline: `2px solid ${color.accent}`, outlineOffset: 3 };\n const overlay = {\n borderRadius: omnitronTokens.radius,\n border: `1px solid ${color.border}`,\n boxShadow: `0 8px 24px ${alpha('#000000', mode === 'dark' ? 0.24 : 0.1)}`,\n };\n return {\n palette: {\n primary: { main: color.accent, contrastText: color.onAccent },\n secondary: { main: color.muted },\n success: { main: color.success },\n warning: { main: color.warning },\n error: { main: color.error },\n info: { main: color.info },\n text: { primary: color.text, secondary: color.muted, disabled: color.disabled },\n divider: color.border,\n background: {\n default: color.background, paper: color.surface, neutral: color.raised,\n elevation1: color.surface, elevation2: color.raised, elevation3: color.raised,\n elevation4: color.raised, menu: color.surface, menuElevation1: color.raised, menuElevation2: color.raised,\n },\n action: {\n active: color.muted, hover: alpha(color.text, 0.05), selected: alpha(color.accent, 0.1),\n focus: alpha(color.accent, 0.16), disabled: color.disabled, disabledBackground: color.raised,\n },\n },\n shape: { borderRadius: omnitronTokens.radius },\n typography: {\n ...createTypography({\n fontFamily: { primary: omnitronTokens.font.sans, secondary: omnitronTokens.font.sans, mono: omnitronTokens.font.mono },\n fontWeights: typography.fontWeights,\n }),\n h1: { fontFamily: omnitronTokens.font.sans, fontSize: '3rem', fontWeight: 600, lineHeight: 1.12, letterSpacing: '-0.04em' },\n h2: { fontFamily: omnitronTokens.font.sans, fontSize: '2.25rem', fontWeight: 600, lineHeight: 1.2, letterSpacing: '-0.035em' },\n overline: { fontFamily: omnitronTokens.font.mono, fontSize: '0.75rem', fontWeight: 500, lineHeight: 1.5, letterSpacing: '0.08em' },\n },\n components: {\n MuiCssBaseline: {\n styleOverrides: {\n ':root': omnitronCssVariables(mode),\n body: { WebkitFontSmoothing: 'antialiased' },\n 'code, kbd, pre, samp': { fontFamily: omnitronTokens.font.mono },\n 'a:focus-visible, button:focus-visible, [tabindex]:focus-visible': focus,\n '::selection': { backgroundColor: alpha(color.accent, 0.24) },\n '@media (prefers-reduced-motion: reduce)': { html: { scrollBehavior: 'auto' } },\n },\n },\n MuiButtonBase: { styleOverrides: { root: { '&.Mui-focusVisible': focus } } },\n MuiButton: {\n styleOverrides: {\n root: { borderRadius: omnitronTokens.radius, boxShadow: 'none', '&:hover': { boxShadow: 'none' } },\n },\n },\n MuiOutlinedInput: { styleOverrides: { root: { borderRadius: omnitronTokens.radius }, notchedOutline: { borderColor: color.controlBorder } } },\n MuiPaper: { styleOverrides: { root: { backgroundImage: 'none' }, rounded: { borderRadius: omnitronTokens.radius }, outlined: { borderColor: color.border } } },\n MuiCard: { styleOverrides: { root: { minWidth: 0, borderRadius: omnitronTokens.radius, boxShadow: 'none' } } },\n MuiCardHeader: {\n styleOverrides: {\n root: { flexWrap: 'wrap', gap: 8 },\n content: { minWidth: 0, overflowWrap: 'anywhere' },\n action: { margin: 0, alignSelf: 'center' },\n },\n },\n MuiDialog: { styleOverrides: { paper: overlay } },\n MuiMenu: { styleOverrides: { paper: overlay } },\n MuiPopover: { styleOverrides: { paper: overlay } },\n MuiAlert: { styleOverrides: { root: { borderRadius: omnitronTokens.radius } } },\n MuiDivider: { styleOverrides: { root: { borderColor: color.border } } },\n MuiChip: { styleOverrides: { root: { borderRadius: 4 } } },\n MuiTableCell: { styleOverrides: { head: { backgroundColor: color.raised, color: color.muted, fontWeight: 600 } } },\n },\n };\n}\n","import { omnitronTokens } from './tokens.js';\n\n/**\n * Four interlocking triangular planes around a stable central core.\n * Geometry is shared by React, the static SVG and server-rendered consumers.\n * No SVG engine, gradients, filters, masks, or per-frame JavaScript.\n */\nexport const omnitronMarkGeometry = {\n viewBox: '0 0 64 64',\n core: 'M23.545 43.786L43.837 37.929L28.618 23.285Z',\n facets: [\n { path: 'M22.023 44.226L8.496 48.131L30.478 10.056Z', x: -2.94, y: 0.849 },\n { path: 'M28.999 21.747L32.38 8.079L54.363 46.154Z', x: 0.735, y: -2.97 },\n { path: 'M44.978 39.027L55.124 48.79L11.159 48.79Z', x: 2.205, y: 2.122 },\n ],\n} as const;\n\n/** Standalone favicon/asset. Inline consumers should use OmnitronMark. */\nexport const omnitronMarkSvg = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"${omnitronMarkGeometry.viewBox}\" fill=\"currentColor\"><style>:root{color:${omnitronTokens.color.light.accent}}@media(prefers-color-scheme:dark){:root{color:${omnitronTokens.color.dark.accent}}}</style><path d=\"${omnitronMarkGeometry.core}\"/>${omnitronMarkGeometry.facets.map(({ path }) => `<path d=\"${path}\"/>`).join('')}</svg>`;\n","'use client';\n\nimport { useEffect, useId, useRef, useState, type CSSProperties } from 'react';\nimport Box from '@mui/material/Box';\nimport Typography from '@mui/material/Typography';\nimport { keyframes, type SxProps, type Theme } from '@mui/material/styles';\nimport { omnitronMarkGeometry } from './geometry.js';\nimport { omnitronTokens } from './tokens.js';\n\nexport type OmnitronMarkState = 'idle' | 'loading' | 'success' | 'error';\n\nexport interface OmnitronMarkProps {\n size?: number;\n state?: OmnitronMarkState;\n /** Null when adjacent text already names the brand or operation. */\n label?: string | null;\n sx?: SxProps<Theme>;\n}\n\nconst reflect = keyframes`\n 0%, 60%, 100% { transform: translate(0, 0); }\n 20%, 38% { transform: translate(var(--omni-shift-x), var(--omni-shift-y)); }\n`;\n\n/** A static identity first; activity moves only the three outer facets. */\nexport function OmnitronMark({ size = 32, state = 'idle', label = 'Omnitron', sx }: OmnitronMarkProps) {\n const titleId = useId();\n const ref = useRef<SVGSVGElement>(null);\n const [visible, setVisible] = useState(true);\n const loading = state === 'loading';\n\n useEffect(() => {\n if (!loading) return undefined;\n let intersecting = true;\n const update = () => setVisible(intersecting && !document.hidden);\n const observer = typeof IntersectionObserver === 'undefined' ? undefined : new IntersectionObserver(([entry]) => {\n intersecting = entry?.isIntersecting ?? false;\n update();\n });\n if (ref.current) observer?.observe(ref.current);\n document.addEventListener('visibilitychange', update);\n update();\n return () => {\n observer?.disconnect();\n document.removeEventListener('visibilitychange', update);\n };\n }, [loading]);\n\n return (\n <Box\n ref={ref}\n component=\"svg\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox={omnitronMarkGeometry.viewBox}\n role={label ? 'img' : undefined}\n aria-labelledby={label ? titleId : undefined}\n aria-hidden={label ? undefined : true}\n focusable=\"false\"\n data-omnitron-mark={state}\n sx={[\n {\n display: 'block', width: size, height: size, flexShrink: 0,\n color: state === 'error' ? 'error.main' : state === 'success' ? 'success.main' : 'primary.main',\n fill: 'currentColor',\n '& [data-facet]': loading ? {\n animation: `${reflect} 2.4s ease-in-out infinite`,\n animationPlayState: visible ? 'running' : 'paused',\n '@media (prefers-reduced-motion: reduce)': { animation: 'none', transform: 'none' },\n } : {},\n },\n ...(Array.isArray(sx) ? sx : [sx]),\n ]}\n >\n {label && <title id={titleId}>{label}</title>}\n {omnitronMarkGeometry.facets.map(({ path, x, y }, index) => (\n <path key={path} data-facet={index} d={path} style={{\n '--omni-shift-x': `${x}px`, '--omni-shift-y': `${y}px`, animationDelay: `${index * 160}ms`,\n } as CSSProperties} />\n ))}\n {state === 'success' ? (\n <path d=\"m28 35 3 2.5 5.5-4.5\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n ) : state === 'error' ? (\n <path d=\"m29 32 7 6m0-6-7 6\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\" strokeLinecap=\"round\" />\n ) : <path d={omnitronMarkGeometry.core} />}\n </Box>\n );\n}\n\n/** Text stays text: it scales, translates through assistive tools, and remains crisp. */\nexport function OmnitronBrand({ size = 32, sx }: Pick<OmnitronMarkProps, 'size' | 'sx'>) {\n return (\n <Box sx={[{ display: 'inline-flex', alignItems: 'center', gap: 1.25, minWidth: 0 }, ...(Array.isArray(sx) ? sx : [sx])]}>\n <OmnitronMark size={size} label={null} />\n <Typography component=\"span\" sx={{ fontFamily: omnitronTokens.font.sans, color: 'text.primary', fontWeight: 600, fontSize: '0.875rem', letterSpacing: '0.12em', lineHeight: 1, whiteSpace: 'nowrap' }}>\n OMNITRON\n </Typography>\n </Box>\n );\n}\n","'use client';\n\nimport { useId, type ReactNode } from 'react';\nimport Box from '@mui/material/Box';\nimport LinearProgress from '@mui/material/LinearProgress';\nimport Typography from '@mui/material/Typography';\nimport type { SxProps, Theme } from '@mui/material/styles';\nimport { OmnitronMark, type OmnitronMarkState } from './omnitron-mark.js';\nimport { omnitronTokens } from './tokens.js';\n\nexport interface OmnitronSplashProps {\n state?: Exclude<OmnitronMarkState, 'idle'>;\n message?: string;\n /** Actual measured completion only. Omit when the operation has no total. */\n progress?: number;\n action?: ReactNode;\n fullScreen?: boolean;\n sx?: SxProps<Theme>;\n}\n\n/** Honest loading, completion and failure states using the same identity as navigation. */\nexport function OmnitronSplash({ state = 'loading', message, progress, action, fullScreen = false, sx }: OmnitronSplashProps) {\n const messageId = useId();\n const value = state === 'loading' && progress !== undefined && Number.isFinite(progress)\n ? Math.min(100, Math.max(0, progress)) : undefined;\n const text = message ?? (state === 'error' ? 'Unable to continue' : state === 'success' ? 'Ready' : 'Loading…');\n\n return (\n <Box data-omnitron-splash={state} sx={[\n {\n display: 'flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center',\n gap: 2, p: 3, width: '100%', minWidth: 0, minHeight: 200, flexGrow: 1,\n ...(fullScreen && { position: 'fixed', inset: 0, zIndex: (theme: Theme) => theme.zIndex.modal + 1, bgcolor: 'background.default' }),\n },\n ...(Array.isArray(sx) ? sx : [sx]),\n ]}>\n <OmnitronMark size={72} state={state} label={null} />\n <Typography id={messageId} role={state === 'error' ? 'alert' : 'status'} variant=\"body2\" sx={{ color: state === 'error' ? 'error.main' : 'text.secondary', textAlign: 'center', maxWidth: 420, overflowWrap: 'anywhere' }}>\n {text}\n </Typography>\n {value !== undefined && (\n <Box sx={{ width: '100%', maxWidth: 240 }}>\n <LinearProgress aria-labelledby={messageId} variant=\"determinate\" value={value} sx={{ height: 2, borderRadius: 0, '@media (prefers-reduced-motion: reduce)': { '& .MuiLinearProgress-bar': { transition: 'none' } } }} />\n <Typography component=\"div\" variant=\"caption\" sx={{ mt: 1, color: 'text.secondary', textAlign: 'center', fontFamily: omnitronTokens.font.mono, fontVariantNumeric: 'tabular-nums' }}>\n {Math.round(value)}%\n </Typography>\n </Box>\n )}\n {action}\n </Box>\n );\n}\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type SxProps, type Theme } from '@mui/material/styles';
|
|
2
|
+
export type OmnitronMarkState = 'idle' | 'loading' | 'success' | 'error';
|
|
3
|
+
export interface OmnitronMarkProps {
|
|
4
|
+
size?: number;
|
|
5
|
+
state?: OmnitronMarkState;
|
|
6
|
+
/** Null when adjacent text already names the brand or operation. */
|
|
7
|
+
label?: string | null;
|
|
8
|
+
sx?: SxProps<Theme>;
|
|
9
|
+
}
|
|
10
|
+
/** A static identity first; activity moves only the three outer facets. */
|
|
11
|
+
export declare function OmnitronMark({ size, state, label, sx }: OmnitronMarkProps): import("react").JSX.Element;
|
|
12
|
+
/** Text stays text: it scales, translates through assistive tools, and remains crisp. */
|
|
13
|
+
export declare function OmnitronBrand({ size, sx }: Pick<OmnitronMarkProps, 'size' | 'sx'>): import("react").JSX.Element;
|
|
14
|
+
//# sourceMappingURL=omnitron-mark.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"omnitron-mark.d.ts","sourceRoot":"","sources":["../../src/identity/omnitron-mark.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAa,KAAK,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAI3E,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAEzE,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;CACrB;AAOD,2EAA2E;AAC3E,wBAAgB,YAAY,CAAC,EAAE,IAAS,EAAE,KAAc,EAAE,KAAkB,EAAE,EAAE,EAAE,EAAE,iBAAiB,+BA6DpG;AAED,yFAAyF;AACzF,wBAAgB,aAAa,CAAC,EAAE,IAAS,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC,+BAStF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import type { SxProps, Theme } from '@mui/material/styles';
|
|
3
|
+
import { type OmnitronMarkState } from './omnitron-mark.js';
|
|
4
|
+
export interface OmnitronSplashProps {
|
|
5
|
+
state?: Exclude<OmnitronMarkState, 'idle'>;
|
|
6
|
+
message?: string;
|
|
7
|
+
/** Actual measured completion only. Omit when the operation has no total. */
|
|
8
|
+
progress?: number;
|
|
9
|
+
action?: ReactNode;
|
|
10
|
+
fullScreen?: boolean;
|
|
11
|
+
sx?: SxProps<Theme>;
|
|
12
|
+
}
|
|
13
|
+
/** Honest loading, completion and failure states using the same identity as navigation. */
|
|
14
|
+
export declare function OmnitronSplash({ state, message, progress, action, fullScreen, sx }: OmnitronSplashProps): import("react").JSX.Element;
|
|
15
|
+
//# sourceMappingURL=omnitron-splash.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"omnitron-splash.d.ts","sourceRoot":"","sources":["../../src/identity/omnitron-splash.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAS,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAI9C,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAgB,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAG1E,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;CACrB;AAED,2FAA2F;AAC3F,wBAAgB,cAAc,CAAC,EAAE,KAAiB,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAkB,EAAE,EAAE,EAAE,EAAE,mBAAmB,+BA8B3H"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type ThemeOptions } from '@mui/material/styles';
|
|
2
|
+
import { type OmnitronColorMode } from './tokens.js';
|
|
3
|
+
/** Use as PrismProvider.themeOverrides in both Console and the public website. */
|
|
4
|
+
export declare function omnitronTheme({ mode }: {
|
|
5
|
+
mode: OmnitronColorMode;
|
|
6
|
+
}): ThemeOptions & Record<string, unknown>;
|
|
7
|
+
//# sourceMappingURL=theme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/identity/theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEhE,OAAO,EAAwC,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE3F,kFAAkF;AAClF,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,GAAG,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA0E3G"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/** Omnitron's visual contract, shared by Console and Lumen's server-rendered shell. */
|
|
2
|
+
export declare const omnitronTokens: {
|
|
3
|
+
readonly font: {
|
|
4
|
+
readonly sans: 'Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif';
|
|
5
|
+
readonly mono: 'ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace';
|
|
6
|
+
};
|
|
7
|
+
readonly radius: 6;
|
|
8
|
+
readonly color: {
|
|
9
|
+
readonly light: {
|
|
10
|
+
readonly background: '#F3F6F7';
|
|
11
|
+
readonly surface: '#FFFFFF';
|
|
12
|
+
readonly raised: '#E9EFF1';
|
|
13
|
+
readonly text: '#162026';
|
|
14
|
+
readonly muted: '#53646D';
|
|
15
|
+
readonly disabled: '#6C7D86';
|
|
16
|
+
readonly border: '#D2DCE1';
|
|
17
|
+
readonly controlBorder: '#71818A';
|
|
18
|
+
readonly accent: '#006D75';
|
|
19
|
+
readonly onAccent: '#FFFFFF';
|
|
20
|
+
readonly success: '#226742';
|
|
21
|
+
readonly warning: '#8A5700';
|
|
22
|
+
readonly error: '#B43A44';
|
|
23
|
+
readonly info: '#2C609A';
|
|
24
|
+
};
|
|
25
|
+
readonly dark: {
|
|
26
|
+
readonly background: '#0B0F12';
|
|
27
|
+
readonly surface: '#13191D';
|
|
28
|
+
readonly raised: '#1B2328';
|
|
29
|
+
readonly text: '#E6EDF0';
|
|
30
|
+
readonly muted: '#A5B5BD';
|
|
31
|
+
readonly disabled: '#83959F';
|
|
32
|
+
readonly border: '#2D3B43';
|
|
33
|
+
readonly controlBorder: '#61757F';
|
|
34
|
+
readonly accent: '#71DDE3';
|
|
35
|
+
readonly onAccent: '#0B2528';
|
|
36
|
+
readonly success: '#7BCB9B';
|
|
37
|
+
readonly warning: '#E8C36A';
|
|
38
|
+
readonly error: '#F2969A';
|
|
39
|
+
readonly info: '#8FBDF4';
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
export type OmnitronColorMode = keyof typeof omnitronTokens.color;
|
|
44
|
+
/** Apply on the server-rendered root; the palette never depends on hydration. */
|
|
45
|
+
export declare function omnitronCssVariables(mode: OmnitronColorMode): Record<string, string>;
|
|
46
|
+
//# sourceMappingURL=tokens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../src/identity/tokens.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,eAAO,MAAM,cAAc;aACzB,IAAI;iBACF,IAAI,EAAE,kEAAkE;iBACxE,IAAI,EAAE,wEAAwE;;aAEhF,MAAM,EAAE,CAAC;aACT,KAAK;iBACH,KAAK;qBACH,UAAU,EAAE,SAAS;qBAAE,OAAO,EAAE,SAAS;qBAAE,MAAM,EAAE,SAAS;qBAC5D,IAAI,EAAE,SAAS;qBAAE,KAAK,EAAE,SAAS;qBAAE,QAAQ,EAAE,SAAS;qBACtD,MAAM,EAAE,SAAS;qBAAE,aAAa,EAAE,SAAS;qBAC3C,MAAM,EAAE,SAAS;qBAAE,QAAQ,EAAE,SAAS;qBACtC,OAAO,EAAE,SAAS;qBAAE,OAAO,EAAE,SAAS;qBAAE,KAAK,EAAE,SAAS;qBAAE,IAAI,EAAE,SAAS;;iBAE3E,IAAI;qBACF,UAAU,EAAE,SAAS;qBAAE,OAAO,EAAE,SAAS;qBAAE,MAAM,EAAE,SAAS;qBAC5D,IAAI,EAAE,SAAS;qBAAE,KAAK,EAAE,SAAS;qBAAE,QAAQ,EAAE,SAAS;qBACtD,MAAM,EAAE,SAAS;qBAAE,aAAa,EAAE,SAAS;qBAC3C,MAAM,EAAE,SAAS;qBAAE,QAAQ,EAAE,SAAS;qBACtC,OAAO,EAAE,SAAS;qBAAE,OAAO,EAAE,SAAS;qBAAE,KAAK,EAAE,SAAS;qBAAE,IAAI,EAAE,SAAS;;;CAGrE,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,cAAc,CAAC,KAAK,CAAC;AAElE,iFAAiF;AACjF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAqBpF"}
|
package/dist/index.js
CHANGED
|
@@ -1,25 +1,26 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export { Accordion, Avatar, Badge, Carousel, ChangelogEntry, ChangelogTimeline, CircularProgress, ContentRenderer, ContextMenu, CountBadge, CountdownRing, CountrySelect, CustomAvatarGroup, DEFAULT_LIGHTBOX_LABELS, DEFAULT_SPONSORED_SLOT_LABELS, DeadlineChip, Drawer, DurationPicker, FlagIcon, Image, ImageWithDefault, Lightbox, LinearProgress, Markdown, MegaMenuHorizontal as MegaMenu, MegaMenuHorizontal, MegaMenuMobile, MegaMenuVertical, Menu, Nav, NavArrow, NavCard, NavCardGrid, NavIcon, NavInfo, NavItem, NavItemBase, NavLi, NavList, NavSectionVertical as NavSection, NavSectionHorizontal, NavSectionMini, NavSectionVertical, NavSubList, NavSubheader, NavTexts, NavUl, ProgressBar, Rail, SettingsDrawer, SettingsProvider, SimpleAccordion, SponsoredSlot, StatusDot, SvgColor, TagCloud, Tooltip, VirtualList, buildUrl, carouselClasses, createIconComponent, deadlineUrgency, formatDateString, getNavCssVars, getQueryParam, hasParams, htmlToMarkdown, isActiveLink, isEqualPath, isExternalLink, isExternalUrl, isMarkdownContent, lightboxClasses, megaMenuClasses, megaMenuCssVars, navSectionClasses, navSectionCssVars, parseDateString, parseQueryParams, relativeTimeLeft, removeLastSlash, removeParams, safeReturnUrl, useAccordion, useCarousel, useDateRangePicker, useLightbox, useMenu, useSettings, useSettingsDrawer } from './chunk-
|
|
2
|
+
export { Accordion, Avatar, Badge, Carousel, ChangelogEntry, ChangelogTimeline, CircularProgress, ContentRenderer, ContextMenu, CountBadge, CountdownRing, CountrySelect, CustomAvatarGroup, DEFAULT_LIGHTBOX_LABELS, DEFAULT_SPONSORED_SLOT_LABELS, DeadlineChip, Drawer, DurationPicker, FlagIcon, Image, ImageWithDefault, Lightbox, LinearProgress, Markdown, MegaMenuHorizontal as MegaMenu, MegaMenuHorizontal, MegaMenuMobile, MegaMenuVertical, Menu, Nav, NavArrow, NavCard, NavCardGrid, NavIcon, NavInfo, NavItem, NavItemBase, NavLi, NavList, NavSectionVertical as NavSection, NavSectionHorizontal, NavSectionMini, NavSectionVertical, NavSubList, NavSubheader, NavTexts, NavUl, ProgressBar, Rail, SettingsDrawer, SettingsProvider, SimpleAccordion, SponsoredSlot, StatusDot, SvgColor, TagCloud, Tooltip, VirtualList, buildUrl, carouselClasses, createIconComponent, deadlineUrgency, formatDateString, getNavCssVars, getQueryParam, hasParams, htmlToMarkdown, isActiveLink, isEqualPath, isExternalLink, isExternalUrl, isMarkdownContent, lightboxClasses, megaMenuClasses, megaMenuCssVars, navSectionClasses, navSectionCssVars, parseDateString, parseQueryParams, relativeTimeLeft, removeLastSlash, removeParams, safeReturnUrl, useAccordion, useCarousel, useDateRangePicker, useLightbox, useMenu, useSettings, useSettingsDrawer } from './chunk-FADV3QAS.js';
|
|
3
|
+
export { Map, MapCoverageLayer, Layer as MapLayer, MapMarker, MapPlaceSearch, MapPointPicker, Popup as MapPopup, Source as MapSource } from './chunk-3VSM7NZG.js';
|
|
3
4
|
export { DocLayout, DocSectionNav, ScrollSpyProvider, ScrollSpySection, useScrollSpy } from './chunk-E7WM2RXA.js';
|
|
4
5
|
export { ContentRoot, TipTapRenderer, contentClasses, registerTipTapNode } from './chunk-4B2LTPK2.js';
|
|
5
6
|
export { DocSidebar } from './chunk-7ATBURW2.js';
|
|
6
7
|
export { DEFAULT_EDITOR_LABELS, Editor, editorClasses, resolveToolbar } from './chunk-2E67PQ4T.js';
|
|
7
8
|
export { Emoji, EmojiPicker } from './chunk-Z2AN43YU.js';
|
|
9
|
+
import './chunk-YHM6GIHV.js';
|
|
8
10
|
export { ScrollToTop } from './chunk-NFJ7CPG3.js';
|
|
9
11
|
export { CardSkeleton, Skeleton, TableSkeleton } from './chunk-NTREGTG7.js';
|
|
10
12
|
export { SimpleSnackbar, SnackbarProvider, useSnackbar } from './chunk-G2GANYMW.js';
|
|
11
13
|
export { Stepper, StepperActions, useStepper } from './chunk-RPOGINR5.js';
|
|
12
14
|
export { Table, useTable } from './chunk-JTIUGPW5.js';
|
|
13
15
|
export { TabPanel, Tabs, useTabs } from './chunk-FOGY3HA4.js';
|
|
14
|
-
export {
|
|
16
|
+
export { ConfirmDialog, DeleteDialog } from './chunk-36FOXX25.js';
|
|
15
17
|
export { BooleanLabel, Label, StatusLabel } from './chunk-URFQX3I6.js';
|
|
16
18
|
export { LoadingScreen, Spinner, SplashScreen } from './chunk-AKLRKCYH.js';
|
|
17
19
|
export { NavigationProgress } from './chunk-SSEHL5VP.js';
|
|
18
20
|
export { CardGrid, PageContent } from './chunk-2UYRW6X3.js';
|
|
19
|
-
|
|
20
|
-
export { AdminDataTable, AmountCell, COIN_DISPLAY_DECIMALS, COIN_WIRE_DECIMALS, DateRangeInput, DateRangePicker, FilterToolbar, StatusChip, formatCoinAmount, formatCoinAmountList, formatDecimalString, fromScaledInteger, getCoinDecimals, getCoinWireDecimals, subtractDecimalStrings, sumDecimalStrings, toScaledInteger } from './chunk-F6RZ7LW6.js';
|
|
21
|
-
export { TableViewport } from './chunk-2KG2NI73.js';
|
|
21
|
+
export { AdminDataTable, AmountCell, COIN_DISPLAY_DECIMALS, COIN_WIRE_DECIMALS, DateRangeInput, DateRangePicker, FilterToolbar, StatusChip, formatCoinAmount, formatCoinAmountList, formatDecimalString, fromScaledInteger, getCoinDecimals, getCoinWireDecimals, subtractDecimalStrings, sumDecimalStrings, toScaledInteger } from './chunk-SPK7E7BD.js';
|
|
22
22
|
export { SearchInput } from './chunk-CT46KJOR.js';
|
|
23
|
+
export { TableViewport } from './chunk-2KG2NI73.js';
|
|
23
24
|
export { Alert, FormAlert, InlineAlert } from './chunk-XBYMG4QK.js';
|
|
24
25
|
export { AnimateBorder, MotionLazy, animateBorderClasses } from './chunk-36C5H56C.js';
|
|
25
26
|
export { Breadcrumbs } from './chunk-VG6FOMOH.js';
|
|
@@ -27,30 +28,30 @@ export { Card, CardSection, StatCard } from './chunk-ZNWHMQRM.js';
|
|
|
27
28
|
export { Chart, ChartLegends, ChartLoading, chartClasses, cn, mergeClasses, useChart } from './chunk-2AB7VGPW.js';
|
|
28
29
|
export { DEFAULT_CLASS_PREFIX, createClasses, createClassesObject, createComponentClasses, getClassPrefix, setClassPrefix } from './chunk-LH4ZZZYB.js';
|
|
29
30
|
export { CommandPalette } from './chunk-WD4N72DL.js';
|
|
30
|
-
export {
|
|
31
|
+
export { Field, FieldAutocomplete, FieldCheckbox, FieldCode, FieldCountrySelect, FieldCustomEditor, FieldDatePicker, FieldDateTimePicker, FieldEditor, FieldMultiCheckbox, FieldMultiSelect, FieldMultiSwitch, FieldNumber, FieldPhone, FieldRadio, FieldRating, FieldSelect, FieldSlider, FieldSwitch, FieldText, FieldTimePicker, FieldUpload, FieldUploadAvatar, FieldUploadBox, clampNumber, createNumberInputHandlers, parseNumber, roundToDecimals, transformForDisplay, transformOnBlur, transformOnChange } from './chunk-LFWKGNCX.js';
|
|
32
|
+
export { EmptyContent, LoadingEmptyContent, SearchEmptyContent } from './chunk-6IANOSMD.js';
|
|
33
|
+
export { ErrorBoundary, getErrorLocation, parseStackTrace, useErrorBoundary } from './chunk-I6DILPFE.js';
|
|
31
34
|
import './chunk-DEPJRTVT.js';
|
|
32
35
|
export { authStore, checkSettingsVersion, clearSettings, createAddFieldMigration, createMigration, createRemoveFieldMigration, createRenameMigration, createSettingsValidator, createTransformMigration, createVersionedPersistOptions, createVersionedStorage, exportSettings, getMigrationInfo, importSettings, runMigrations, themeStore, uiStore, useAuthStore, useThemeStore, useUIStore, validateMigrations } from './chunk-OKJA6SJM.js';
|
|
33
|
-
export { cookiesAvailable, getCookie, removeCookie, setCookie, useArray, useAsync, useAsyncFn, useBackToTop, useBreakpoint, useBreakpointChecks, useClientRect, useConfigFromQuery, useCookies, useCountdownDate, useCountdownSeconds, useDoubleClick, useEnterKey, useEscapeKey, useFocusTrap, useImageDimensions, useInfiniteScroll, useIntersectionObserver, useIsomorphicLayoutEffect, useKeyboardShortcut, useLazyQuery, useMultipleImageDimensions, useMutation, useOnlineStatus, usePasswordVisibility, usePopoverHover, useResponsiveQuery, useScrollLock, useScrollOffsetTop, useScrollPosition, useScrollToTop, useSessionStorage, useThrottle, useThrottleCallback, useUpdateEffect, useUpdateLayoutEffect, useWindowSize } from './chunk-
|
|
36
|
+
export { cookiesAvailable, getCookie, removeCookie, setCookie, useArray, useAsync, useAsyncFn, useBackToTop, useBreakpoint, useBreakpointChecks, useClientRect, useConfigFromQuery, useCookies, useCountdownDate, useCountdownSeconds, useDoubleClick, useEnterKey, useEscapeKey, useFocusTrap, useImageDimensions, useInfiniteScroll, useIntersectionObserver, useIsomorphicLayoutEffect, useKeyboardShortcut, useLazyQuery, useMultipleImageDimensions, useMutation, useOnlineStatus, usePasswordVisibility, usePopoverHover, useResponsiveQuery, useScrollLock, useScrollOffsetTop, useScrollPosition, useScrollToTop, useSessionStorage, useThrottle, useThrottleCallback, useUpdateEffect, useUpdateLayoutEffect, useWindowSize } from './chunk-74TJGLFR.js';
|
|
34
37
|
export { CustomPopover, usePopover } from './chunk-VUKOT432.js';
|
|
35
38
|
export { AuthGuard, AuthProvider, AuthenticationClient, BackendConnectionAware, BackendStatus, BearerClientTokenTransport, ConnectionAware, CookieClientTokenTransport, GuestGuard, Hide, HybridClientTokenTransport, MiddlewareStage, MultiBackendClient, MultiBackendConnectionAware, MultiBackendProvider, MutationCache, NetronProvider, NetronReactClient, NoopTokenStorage, PermissionGuard, QueryCache, RequireAllBackends, RequireAnyBackend, RequireBackendConnection, RequireConnection, RoleGuard, SessionTokenStorage, Show, WebSocketClient, createAuthErrorMiddleware, createCsrfMiddleware, createMultiBackendClient, createNetronClient, createServiceHook as createNetronServiceHook, createSimpleAuthErrorMiddleware, hashQueryKey, matchQueryKey, useAllBackendsConnected, useAnyBackendConnected, useAuth, useAuthRequired, useBackend, useBackendConnectionState, useBackendMutation, useBackendQuery, useBackendService, useDefaults, useHydration, useIsAuthenticated, useMultiBackend, useNetronClient, useNetronClientSafe, useNetronConnection, useInfiniteQuery as useNetronInfiniteQuery, useMutation as useNetronMutation, useQuery as useNetronQuery, useService as useNetronService, useSubscription as useNetronSubscription, useUser } from './chunk-TJ7DHXUX.js';
|
|
36
|
-
export { applyPrimaryOverride, cssVariables, defaultPreset, generateCssVariables, generatePaletteChannel, getPreset, luxuryPreset, presetNames } from './chunk-
|
|
37
|
-
export { PrismContext, PrismProvider, ProviderStack, composeProviders, conditionalProvider, createProviderStack, filterProviders, useBreakpoints, useClickOutside, useCopyToClipboard, useCountdown, useDebounce, useDebounceCallback, useEventListener, useInterval, useIsClient, useLocalStorage, useMuiMediaQuery as useMediaQuery, useMounted, useMultiSelect, usePrevious, usePrismContext, useSetState, useTimeout, withProviderProps } from './chunk-
|
|
39
|
+
export { applyPrimaryOverride, cssVariables, defaultPreset, generateCssVariables, generatePaletteChannel, getPreset, luxuryPreset, presetNames } from './chunk-UWYLMSIQ.js';
|
|
40
|
+
export { PrismContext, PrismProvider, ProviderStack, composeProviders, conditionalProvider, createProviderStack, filterProviders, useBreakpoints, useClickOutside, useCopyToClipboard, useCountdown, useDebounce, useDebounceCallback, useEventListener, useInterval, useIsClient, useLocalStorage, useMuiMediaQuery as useMediaQuery, useMounted, useMultiSelect, usePrevious, usePrismContext, useSetState, useTimeout, withProviderProps } from './chunk-HCADZXAK.js';
|
|
41
|
+
export { useBoolean } from './chunk-4R7EZ7GQ.js';
|
|
38
42
|
export { defaultPrismConfig } from './chunk-ZRJYQN6Y.js';
|
|
39
|
-
export { COLOR_GROUPS, PRESET_DISPLAY_NAMES, PRESET_INHERENT_MODE, PRESET_NAMES, arcticPreset, baseColors, basic, blue, buildAction, buildBackground, buildChartColors, buildPalette, buildPaletteColor, buildText, buildVibrant, componentOverrides, createButtonBaseOverrides, createButtonGroupOverrides, createButtonOverrides, createPrismTheme, createShadows,
|
|
43
|
+
export { COLOR_GROUPS, PRESET_DISPLAY_NAMES, PRESET_INHERENT_MODE, PRESET_NAMES, arcticPreset, baseColors, basic, blue, buildAction, buildBackground, buildChartColors, buildPalette, buildPaletteColor, buildText, buildVibrant, componentOverrides, createButtonBaseOverrides, createButtonGroupOverrides, createButtonOverrides, createPrismTheme, createShadows, darkShadow, defaultDarkPalette, defaultLightPalette, getPresetDisplayName, green, grey, lightBlue, luxuryColors, luxuryError, luxuryInfo, luxuryNeutral, luxuryPrimary, luxurySecondary, luxurySuccess, luxuryWarning, orange, purple, red, shadows } from './chunk-KOOKHWTH.js';
|
|
40
44
|
import './chunk-TZHWYT34.js';
|
|
41
45
|
import './chunk-TZWHELY4.js';
|
|
46
|
+
export { createTypography, typography } from './chunk-GCXRYSWU.js';
|
|
42
47
|
import './chunk-NFPOIHD4.js';
|
|
43
48
|
export { PrismInstaller, RegistryManager, createInstaller, createRegistryManager, defaultRegistrySchema, registry } from './chunk-JZBSPDED.js';
|
|
44
|
-
export { AuthCenteredContent, AuthCenteredLayout, AuthSimpleLayout, AuthSplitContent, AuthSplitIllustration, AuthSplitLayout, DEFAULT_LAYOUT_CSS_VARS, DRAWER_WIDTHS, DashboardContent, DashboardLayout, HEADER_HEIGHTS, HeaderSection, HeaderToolbar, LAYOUT_CSS_VARS, LayoutContext, LayoutGlobalStyles, LayoutProvider, LayoutSection, MainSection, MobileSidenav, Sidenav, SimpleCompactContent, UserMenu, defaultLayoutConfig, getBaseLayoutCssVars, getNavColorCssVars, mergeLayoutCssVars, useLayoutConfig, useLayoutContext, useNavActive, useSidenavVisible, useTopnavVisible } from './chunk-
|
|
49
|
+
export { AuthCenteredContent, AuthCenteredLayout, AuthSimpleLayout, AuthSplitContent, AuthSplitIllustration, AuthSplitLayout, DEFAULT_LAYOUT_CSS_VARS, DRAWER_WIDTHS, DashboardContent, DashboardLayout, HEADER_HEIGHTS, HeaderSection, HeaderToolbar, LAYOUT_CSS_VARS, LayoutContext, LayoutGlobalStyles, LayoutProvider, LayoutSection, MainSection, MobileSidenav, Sidenav, SimpleCompactContent, UserMenu, defaultLayoutConfig, getBaseLayoutCssVars, getNavColorCssVars, mergeLayoutCssVars, useLayoutConfig, useLayoutContext, useNavActive, useSidenavVisible, useTopnavVisible } from './chunk-YYQWPEOP.js';
|
|
45
50
|
export { PanelLayout, SidebarToggle } from './chunk-KPY7TA4D.js';
|
|
46
51
|
export { ARIA_LABELS, SkipLink, announceToScreenReader, combineAriaDescribedBy, focusVisibleStyles, generateAriaId, getAriaExpanded, handleListKeyDown, srOnly } from './chunk-ZYI3MHLE.js';
|
|
47
52
|
export { createPersistedStore, createPrismStore, createSelectors, createUIStore, getDefaultSettings, settingsStore, useSettingsStore } from './chunk-NJM5AVBM.js';
|
|
48
53
|
export { Scrollbar } from './chunk-4Q5L7LDG.js';
|
|
49
54
|
export { createPaletteColorFromScale, cssVarRgba, customScrollbarMixin, darken, focusRingMixin, generateColorScale, generateColorScaleWithChannels, generatePaletteColorWithChannels, getContrastRatio, getContrastText, getLuminance, glassMixin, hexToHsl, hexToRgb, hexToRgbChannel, hideScrollbarMixin, hslToHex, invertColorScale, isLightColor, lighten, mix, mixins, multiLineEllipsisMixin, rgbToHex, rgba, textEllipsisMixin } from './chunk-IRYU3NTG.js';
|
|
50
|
-
export { Field, FieldAutocomplete, FieldCheckbox, FieldCode, FieldCountrySelect, FieldCustomEditor, FieldDatePicker, FieldDateTimePicker, FieldEditor, FieldMultiCheckbox, FieldMultiSelect, FieldMultiSwitch, FieldNumber, FieldPhone, FieldRadio, FieldRating, FieldSelect, FieldSlider, FieldSwitch, FieldText, FieldTimePicker, FieldUpload, FieldUploadAvatar, FieldUploadBox, clampNumber, createNumberInputHandlers, parseNumber, roundToDecimals, transformForDisplay, transformOnBlur, transformOnChange } from './chunk-LFWKGNCX.js';
|
|
51
|
-
export { EmptyContent, LoadingEmptyContent, SearchEmptyContent } from './chunk-6IANOSMD.js';
|
|
52
|
-
export { ErrorBoundary, getErrorLocation, parseStackTrace, useErrorBoundary } from './chunk-I6DILPFE.js';
|
|
53
|
-
export { useBoolean } from './chunk-4R7EZ7GQ.js';
|
|
54
55
|
import './chunk-VQVVHMPG.js';
|
|
55
56
|
import './chunk-D5J3KW6Q.js';
|
|
56
57
|
import { toast as toast$1 } from 'sonner';
|