@wandelbots/mui 0.0.0 → 1.0.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.
- package/README.md +131 -1
- package/dist/components/AdornedSelect/AdornedSelect.cjs +2 -0
- package/dist/components/AdornedSelect/AdornedSelect.d.ts +19 -0
- package/dist/components/AdornedSelect/AdornedSelect.d.ts.map +1 -0
- package/dist/components/AdornedSelect/AdornedSelect.js +85 -0
- package/dist/components/AdornedSelect/index.d.ts +2 -0
- package/dist/components/AdornedSelect/index.d.ts.map +1 -0
- package/dist/components/AdornedTextField/AdornedAutocomplete.cjs +2 -0
- package/dist/components/AdornedTextField/AdornedAutocomplete.d.ts +19 -0
- package/dist/components/AdornedTextField/AdornedAutocomplete.d.ts.map +1 -0
- package/dist/components/AdornedTextField/AdornedAutocomplete.js +46 -0
- package/dist/components/AdornedTextField/AdornedTextField.cjs +2 -0
- package/dist/components/AdornedTextField/AdornedTextField.d.ts +12 -0
- package/dist/components/AdornedTextField/AdornedTextField.d.ts.map +1 -0
- package/dist/components/AdornedTextField/AdornedTextField.js +158 -0
- package/dist/components/AdornedTextField/index.d.ts +3 -0
- package/dist/components/AdornedTextField/index.d.ts.map +1 -0
- package/dist/components/ElevationCard/ElevationCard.cjs +2 -0
- package/dist/components/ElevationCard/ElevationCard.d.ts +36 -0
- package/dist/components/ElevationCard/ElevationCard.d.ts.map +1 -0
- package/dist/components/ElevationCard/ElevationCard.js +39 -0
- package/dist/components/ElevationCard/index.d.ts +2 -0
- package/dist/components/ElevationCard/index.d.ts.map +1 -0
- package/dist/components/PrimaryButton/PrimaryButton.cjs +2 -0
- package/dist/components/PrimaryButton/PrimaryButton.d.ts +8 -0
- package/dist/components/PrimaryButton/PrimaryButton.d.ts.map +1 -0
- package/dist/components/PrimaryButton/PrimaryButton.js +18 -0
- package/dist/components/PrimaryButton/index.d.ts +2 -0
- package/dist/components/PrimaryButton/index.d.ts.map +1 -0
- package/dist/components/RoundedIconButton/RoundedIconButton.cjs +2 -0
- package/dist/components/RoundedIconButton/RoundedIconButton.d.ts +21 -0
- package/dist/components/RoundedIconButton/RoundedIconButton.d.ts.map +1 -0
- package/dist/components/RoundedIconButton/RoundedIconButton.js +35 -0
- package/dist/components/RoundedIconButton/index.d.ts +2 -0
- package/dist/components/RoundedIconButton/index.d.ts.map +1 -0
- package/dist/components/SecondaryButton/SecondaryButton.cjs +2 -0
- package/dist/components/SecondaryButton/SecondaryButton.d.ts +8 -0
- package/dist/components/SecondaryButton/SecondaryButton.d.ts.map +1 -0
- package/dist/components/SecondaryButton/SecondaryButton.js +26 -0
- package/dist/components/SecondaryButton/index.d.ts +2 -0
- package/dist/components/SecondaryButton/index.d.ts.map +1 -0
- package/dist/components/fields/FloatTextField.cjs +2 -0
- package/dist/components/fields/FloatTextField.d.ts +5 -0
- package/dist/components/fields/FloatTextField.d.ts.map +1 -0
- package/dist/components/fields/FloatTextField.js +17 -0
- package/dist/components/fields/IntegerTextField.cjs +2 -0
- package/dist/components/fields/IntegerTextField.d.ts +5 -0
- package/dist/components/fields/IntegerTextField.d.ts.map +1 -0
- package/dist/components/fields/IntegerTextField.js +17 -0
- package/dist/components/fields/IpAddressTextField.cjs +2 -0
- package/dist/components/fields/IpAddressTextField.d.ts +5 -0
- package/dist/components/fields/IpAddressTextField.d.ts.map +1 -0
- package/dist/components/fields/IpAddressTextField.js +17 -0
- package/dist/components/fields/ParsingTextField.cjs +2 -0
- package/dist/components/fields/ParsingTextField.d.ts +18 -0
- package/dist/components/fields/ParsingTextField.d.ts.map +1 -0
- package/dist/components/fields/ParsingTextField.js +35 -0
- package/dist/components/fields/PortTextField.cjs +2 -0
- package/dist/components/fields/PortTextField.d.ts +5 -0
- package/dist/components/fields/PortTextField.d.ts.map +1 -0
- package/dist/components/fields/PortTextField.js +17 -0
- package/dist/components/fields/StringValidationTextField.cjs +2 -0
- package/dist/components/fields/StringValidationTextField.d.ts +5 -0
- package/dist/components/fields/StringValidationTextField.d.ts.map +1 -0
- package/dist/components/fields/StringValidationTextField.js +9 -0
- package/dist/components/fields/index.d.ts +7 -0
- package/dist/components/fields/index.d.ts.map +1 -0
- package/dist/components/index.d.ts +8 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/index.cjs +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +53 -0
- package/dist/theme/createNovaMuiTheme.cjs +2 -0
- package/dist/theme/createNovaMuiTheme.d.ts +144 -0
- package/dist/theme/createNovaMuiTheme.d.ts.map +1 -0
- package/dist/theme/createNovaMuiTheme.js +374 -0
- package/dist/theme/index.d.ts +3 -0
- package/dist/theme/index.d.ts.map +1 -0
- package/dist/validators/core.cjs +1 -0
- package/dist/validators/core.d.ts +7 -0
- package/dist/validators/core.d.ts.map +1 -0
- package/dist/validators/core.js +10 -0
- package/dist/validators/index.cjs +1 -0
- package/dist/validators/index.d.ts +5 -0
- package/dist/validators/index.d.ts.map +1 -0
- package/dist/validators/index.js +25 -0
- package/dist/validators/network.cjs +1 -0
- package/dist/validators/network.d.ts +21 -0
- package/dist/validators/network.d.ts.map +1 -0
- package/dist/validators/network.js +40 -0
- package/dist/validators/number.cjs +1 -0
- package/dist/validators/number.d.ts +13 -0
- package/dist/validators/number.d.ts.map +1 -0
- package/dist/validators/number.js +40 -0
- package/dist/validators/string.cjs +1 -0
- package/dist/validators/string.d.ts +7 -0
- package/dist/validators/string.d.ts.map +1 -0
- package/dist/validators/string.js +32 -0
- package/package.json +79 -3
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as o } from "react/jsx-runtime";
|
|
3
|
+
import t from "@mui/material/Button";
|
|
4
|
+
import { styled as a } from "@mui/material/styles";
|
|
5
|
+
const n = a(t)(({ theme: r }) => ({
|
|
6
|
+
backgroundColor: r.palette.primary.main,
|
|
7
|
+
color: r.palette.primary.contrastText,
|
|
8
|
+
borderRadius: `${r.shape.borderRadius}px`,
|
|
9
|
+
"&:hover": {
|
|
10
|
+
backgroundColor: r.palette.primary.dark
|
|
11
|
+
}
|
|
12
|
+
}));
|
|
13
|
+
function e(r) {
|
|
14
|
+
return /* @__PURE__ */ o(n, { variant: "contained", ...r });
|
|
15
|
+
}
|
|
16
|
+
export {
|
|
17
|
+
e as PrimaryButton
|
|
18
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/PrimaryButton/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),l=require("@mui/material/IconButton");function p({icon:a,onClick:d,bgColor:e,isActive:n,disabled:u,dataTestId:i,ariaLabel:c}){return s.jsx(l,{onClick:d,disabled:u,sx:t=>{var o,r;return{backgroundColor:n!==void 0?n?e??((o=t.palette.backgroundPaperElevation)==null?void 0:o[11]):"transparent":e??((r=t.palette.backgroundPaperElevation)==null?void 0:r[11]),borderRadius:`${t.shape.borderRadius}px`,width:"30px",height:"30px"}},"data-testid":i,"aria-label":c,children:a})}exports.RoundedIconButton=p;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
export type RoundedIconButtonProps = {
|
|
3
|
+
icon: ReactNode;
|
|
4
|
+
onClick?: () => void;
|
|
5
|
+
/** Overrides the default background (`backgroundPaperElevation[11]`). */
|
|
6
|
+
bgColor?: string;
|
|
7
|
+
/**
|
|
8
|
+
* If undefined, the button always has a background. If set, it only shows
|
|
9
|
+
* a background when `true`.
|
|
10
|
+
*/
|
|
11
|
+
isActive?: boolean;
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
dataTestId?: string;
|
|
14
|
+
ariaLabel?: string;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Small square (30×30) icon button with rounded corners on an elevated
|
|
18
|
+
* background, styled to NovaDeck's canonical look.
|
|
19
|
+
*/
|
|
20
|
+
export declare function RoundedIconButton({ icon, onClick, bgColor, isActive, disabled, dataTestId, ariaLabel, }: RoundedIconButtonProps): import("react").JSX.Element;
|
|
21
|
+
//# sourceMappingURL=RoundedIconButton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RoundedIconButton.d.ts","sourceRoot":"","sources":["../../../src/components/RoundedIconButton/RoundedIconButton.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,SAAS,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAWD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,EACJ,OAAO,EACP,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,SAAS,GACV,EAAE,sBAAsB,+BAsBxB"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as l } from "react/jsx-runtime";
|
|
3
|
+
import c from "@mui/material/IconButton";
|
|
4
|
+
function b({
|
|
5
|
+
icon: d,
|
|
6
|
+
onClick: e,
|
|
7
|
+
bgColor: a,
|
|
8
|
+
isActive: o,
|
|
9
|
+
disabled: p,
|
|
10
|
+
dataTestId: i,
|
|
11
|
+
ariaLabel: u
|
|
12
|
+
}) {
|
|
13
|
+
return /* @__PURE__ */ l(
|
|
14
|
+
c,
|
|
15
|
+
{
|
|
16
|
+
onClick: e,
|
|
17
|
+
disabled: p,
|
|
18
|
+
sx: (r) => {
|
|
19
|
+
var t, n;
|
|
20
|
+
return {
|
|
21
|
+
backgroundColor: o !== void 0 ? o ? a ?? ((t = r.palette.backgroundPaperElevation) == null ? void 0 : t[11]) : "transparent" : a ?? ((n = r.palette.backgroundPaperElevation) == null ? void 0 : n[11]),
|
|
22
|
+
borderRadius: `${r.shape.borderRadius}px`,
|
|
23
|
+
width: "30px",
|
|
24
|
+
height: "30px"
|
|
25
|
+
};
|
|
26
|
+
},
|
|
27
|
+
"data-testid": i,
|
|
28
|
+
"aria-label": u,
|
|
29
|
+
children: d
|
|
30
|
+
}
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
export {
|
|
34
|
+
b as RoundedIconButton
|
|
35
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/RoundedIconButton/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("react/jsx-runtime"),n=require("@mui/material/Button"),a=require("@mui/material/styles"),i=a.styled(n)(({theme:t,size:o="medium"})=>{var r,e;return{...t.typography.body2,fontWeight:t.typography.fontWeightMedium,background:(e=(r=t.paletteExt)==null?void 0:r.secondary)==null?void 0:e.tonal,color:t.palette.secondary.contrastText,border:`1px solid ${t.palette.divider}`,borderRadius:`${t.shape.borderRadius}px`,padding:o==="small"?"4px 10px":o==="large"?"8px 22px":"6px 16px","&:hover":{background:t.palette.action.hover,border:`1px solid ${t.palette.divider}`}}});function p(t){return d.jsx(i,{...t})}exports.SecondaryButton=p;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ButtonProps } from "@mui/material/Button";
|
|
2
|
+
export type SecondaryButtonProps = ButtonProps;
|
|
3
|
+
/**
|
|
4
|
+
* Grey outlined-looking button for secondary actions (Cancel, Export, …),
|
|
5
|
+
* styled to NovaDeck's canonical look. Accepts all MUI `ButtonProps`.
|
|
6
|
+
*/
|
|
7
|
+
export declare function SecondaryButton(props: SecondaryButtonProps): import("react").JSX.Element;
|
|
8
|
+
//# sourceMappingURL=SecondaryButton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SecondaryButton.d.ts","sourceRoot":"","sources":["../../../src/components/SecondaryButton/SecondaryButton.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAIvD,MAAM,MAAM,oBAAoB,GAAG,WAAW,CAAA;AAmC9C;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,+BAE1D"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as p } from "react/jsx-runtime";
|
|
3
|
+
import a from "@mui/material/Button";
|
|
4
|
+
import { styled as n } from "@mui/material/styles";
|
|
5
|
+
const e = n(a)(({ theme: o, size: r = "medium" }) => {
|
|
6
|
+
var t, d;
|
|
7
|
+
return {
|
|
8
|
+
...o.typography.body2,
|
|
9
|
+
fontWeight: o.typography.fontWeightMedium,
|
|
10
|
+
background: (d = (t = o.paletteExt) == null ? void 0 : t.secondary) == null ? void 0 : d.tonal,
|
|
11
|
+
color: o.palette.secondary.contrastText,
|
|
12
|
+
border: `1px solid ${o.palette.divider}`,
|
|
13
|
+
borderRadius: `${o.shape.borderRadius}px`,
|
|
14
|
+
padding: r === "small" ? "4px 10px" : r === "large" ? "8px 22px" : "6px 16px",
|
|
15
|
+
"&:hover": {
|
|
16
|
+
background: o.palette.action.hover,
|
|
17
|
+
border: `1px solid ${o.palette.divider}`
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
});
|
|
21
|
+
function s(o) {
|
|
22
|
+
return /* @__PURE__ */ p(e, { ...o });
|
|
23
|
+
}
|
|
24
|
+
export {
|
|
25
|
+
s as SecondaryButton
|
|
26
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/SecondaryButton/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),i=require("../../validators/number.cjs"),n=require("./ParsingTextField.cjs");function o(e){return r.jsx(n.ParsingTextField,{parse:i.parseFloatStrict,stringify:t=>t.toString(),...e})}exports.FloatTextField=o;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ParsingTextFieldProps } from "./ParsingTextField";
|
|
2
|
+
export type FloatTextFieldProps = Omit<ParsingTextFieldProps<number>, "parse" | "stringify">;
|
|
3
|
+
/** Text field that accepts only valid floating point numbers. */
|
|
4
|
+
export declare function FloatTextField(props: FloatTextFieldProps): import("react").JSX.Element;
|
|
5
|
+
//# sourceMappingURL=FloatTextField.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FloatTextField.d.ts","sourceRoot":"","sources":["../../../src/components/fields/FloatTextField.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAK/D,MAAM,MAAM,mBAAmB,GAAG,IAAI,CACpC,qBAAqB,CAAC,MAAM,CAAC,EAC7B,OAAO,GAAG,WAAW,CACtB,CAAA;AAED,iEAAiE;AACjE,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,+BAQxD"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as i } from "react/jsx-runtime";
|
|
3
|
+
import { parseFloatStrict as o } from "../../validators/number.js";
|
|
4
|
+
import { ParsingTextField as e } from "./ParsingTextField.js";
|
|
5
|
+
function a(r) {
|
|
6
|
+
return /* @__PURE__ */ i(
|
|
7
|
+
e,
|
|
8
|
+
{
|
|
9
|
+
parse: o,
|
|
10
|
+
stringify: (t) => t.toString(),
|
|
11
|
+
...r
|
|
12
|
+
}
|
|
13
|
+
);
|
|
14
|
+
}
|
|
15
|
+
export {
|
|
16
|
+
a as FloatTextField
|
|
17
|
+
};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),i=require("../../validators/number.cjs"),n=require("./ParsingTextField.cjs");function s(e){return t.jsx(n.ParsingTextField,{parse:i.parseInteger,stringify:r=>r.toString(),...e})}exports.IntegerTextField=s;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ParsingTextFieldProps } from "./ParsingTextField";
|
|
2
|
+
export type IntegerTextFieldProps = Omit<ParsingTextFieldProps<number>, "parse" | "stringify">;
|
|
3
|
+
/** Text field that accepts only whole numbers. */
|
|
4
|
+
export declare function IntegerTextField(props: IntegerTextFieldProps): import("react").JSX.Element;
|
|
5
|
+
//# sourceMappingURL=IntegerTextField.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IntegerTextField.d.ts","sourceRoot":"","sources":["../../../src/components/fields/IntegerTextField.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAG/D,MAAM,MAAM,qBAAqB,GAAG,IAAI,CACtC,qBAAqB,CAAC,MAAM,CAAC,EAC7B,OAAO,GAAG,WAAW,CACtB,CAAA;AAED,kDAAkD;AAClD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,+BAQ5D"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as e } from "react/jsx-runtime";
|
|
3
|
+
import { parseInteger as i } from "../../validators/number.js";
|
|
4
|
+
import { ParsingTextField as o } from "./ParsingTextField.js";
|
|
5
|
+
function f(r) {
|
|
6
|
+
return /* @__PURE__ */ e(
|
|
7
|
+
o,
|
|
8
|
+
{
|
|
9
|
+
parse: i,
|
|
10
|
+
stringify: (t) => t.toString(),
|
|
11
|
+
...r
|
|
12
|
+
}
|
|
13
|
+
);
|
|
14
|
+
}
|
|
15
|
+
export {
|
|
16
|
+
f as IntegerTextField
|
|
17
|
+
};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),i=require("../../validators/network.cjs"),s=require("./ParsingTextField.cjs");function n(e){return t.jsx(s.ParsingTextField,{parse:i.parseIpv4,stringify:r=>r,...e})}exports.IpAddressTextField=n;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ParsingTextFieldProps } from "./ParsingTextField";
|
|
2
|
+
export type IpAddressTextFieldProps = Omit<ParsingTextFieldProps<string>, "parse" | "stringify">;
|
|
3
|
+
/** Text field that accepts only valid IPv4 addresses. */
|
|
4
|
+
export declare function IpAddressTextField(props: IpAddressTextFieldProps): import("react").JSX.Element;
|
|
5
|
+
//# sourceMappingURL=IpAddressTextField.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IpAddressTextField.d.ts","sourceRoot":"","sources":["../../../src/components/fields/IpAddressTextField.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAI/D,MAAM,MAAM,uBAAuB,GAAG,IAAI,CACxC,qBAAqB,CAAC,MAAM,CAAC,EAC7B,OAAO,GAAG,WAAW,CACtB,CAAA;AAED,yDAAyD;AACzD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,+BAQhE"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as i } from "react/jsx-runtime";
|
|
3
|
+
import { parseIpv4 as t } from "../../validators/network.js";
|
|
4
|
+
import { ParsingTextField as o } from "./ParsingTextField.js";
|
|
5
|
+
function f(r) {
|
|
6
|
+
return /* @__PURE__ */ i(
|
|
7
|
+
o,
|
|
8
|
+
{
|
|
9
|
+
parse: t,
|
|
10
|
+
stringify: (e) => e,
|
|
11
|
+
...r
|
|
12
|
+
}
|
|
13
|
+
);
|
|
14
|
+
}
|
|
15
|
+
export {
|
|
16
|
+
f as IpAddressTextField
|
|
17
|
+
};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react/jsx-runtime"),q=require("@mui/material/TextField"),l=require("react"),P=require("../AdornedTextField/AdornedTextField.cjs");function f({initialValue:d,onChange:n,parse:x,stringify:o,onErrorStateChange:e,plain:T,adornedSize:p,...a}){const[F,j]=l.useState(o(d)),[t,u]=l.useState(""),r={value:F,onChange:i=>{j(i.target.value);try{const s=x(i.target.value);n(s),u(""),e==null||e(!1)}catch(s){u(s.message),e==null||e(!0)}},error:t!=="",helperText:t,...a};return T?c.jsx(q,{...r}):c.jsx(P.AdornedTextField,{adornedSize:p,...r})}exports.ParsingTextField=f;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { AdornedTextFieldProps } from "../AdornedTextField";
|
|
2
|
+
export interface ParsingTextFieldProps<T> extends Omit<AdornedTextFieldProps, "value" | "onChange" | "error" | "helperText"> {
|
|
3
|
+
initialValue: T;
|
|
4
|
+
onChange: (value: T) => void;
|
|
5
|
+
/** Throws `Error(message)` on invalid input; the message becomes the helper text. */
|
|
6
|
+
parse: (value: string) => T;
|
|
7
|
+
stringify: (value: T) => string;
|
|
8
|
+
onErrorStateChange?: (hasError: boolean) => void;
|
|
9
|
+
/** Render a plain MUI TextField instead of the AdornedTextField base. */
|
|
10
|
+
plain?: boolean;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Text field driven by a throwing parser: on every change the raw input is
|
|
14
|
+
* parsed; success calls `onChange(parsed)`, a throw shows the error message
|
|
15
|
+
* as helper text. The proven RobotPad pattern.
|
|
16
|
+
*/
|
|
17
|
+
export declare function ParsingTextField<T>({ initialValue, onChange, parse, stringify, onErrorStateChange, plain, adornedSize, ...textFieldProps }: ParsingTextFieldProps<T>): import("react").JSX.Element;
|
|
18
|
+
//# sourceMappingURL=ParsingTextField.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ParsingTextField.d.ts","sourceRoot":"","sources":["../../../src/components/fields/ParsingTextField.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAMhE,MAAM,WAAW,qBAAqB,CAAC,CAAC,CACtC,SAAQ,IAAI,CACV,qBAAqB,EACrB,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,YAAY,CAC9C;IACD,YAAY,EAAE,CAAC,CAAA;IACf,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAA;IAC5B,qFAAqF;IACrF,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,CAAA;IAC3B,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAA;IAC/B,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAA;IAChD,yEAAyE;IACzE,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,EAClC,YAAY,EACZ,QAAQ,EACR,KAAK,EACL,SAAS,EACT,kBAAkB,EAClB,KAAK,EACL,WAAW,EACX,GAAG,cAAc,EAClB,EAAE,qBAAqB,CAAC,CAAC,CAAC,+BAiC1B"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as l } from "react/jsx-runtime";
|
|
3
|
+
import V from "@mui/material/TextField";
|
|
4
|
+
import { useState as i } from "react";
|
|
5
|
+
import { AdornedTextField as a } from "../AdornedTextField/AdornedTextField.js";
|
|
6
|
+
function b({
|
|
7
|
+
initialValue: c,
|
|
8
|
+
onChange: m,
|
|
9
|
+
parse: o,
|
|
10
|
+
stringify: x,
|
|
11
|
+
onErrorStateChange: s,
|
|
12
|
+
plain: d,
|
|
13
|
+
adornedSize: f,
|
|
14
|
+
...T
|
|
15
|
+
}) {
|
|
16
|
+
const [F, I] = i(x(c)), [t, u] = i(""), p = {
|
|
17
|
+
value: F,
|
|
18
|
+
onChange: (r) => {
|
|
19
|
+
I(r.target.value);
|
|
20
|
+
try {
|
|
21
|
+
const e = o(r.target.value);
|
|
22
|
+
m(e), u(""), s == null || s(!1);
|
|
23
|
+
} catch (e) {
|
|
24
|
+
u(e.message), s == null || s(!0);
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
error: t !== "",
|
|
28
|
+
helperText: t,
|
|
29
|
+
...T
|
|
30
|
+
};
|
|
31
|
+
return d ? /* @__PURE__ */ l(V, { ...p }) : /* @__PURE__ */ l(a, { adornedSize: f, ...p });
|
|
32
|
+
}
|
|
33
|
+
export {
|
|
34
|
+
b as ParsingTextField
|
|
35
|
+
};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),i=require("../../validators/network.cjs"),n=require("./ParsingTextField.cjs");function o(e){return r.jsx(n.ParsingTextField,{parse:i.parsePort,stringify:t=>t.toString(),...e})}exports.PortTextField=o;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ParsingTextFieldProps } from "./ParsingTextField";
|
|
2
|
+
export type PortTextFieldProps = Omit<ParsingTextFieldProps<number>, "parse" | "stringify">;
|
|
3
|
+
/** Text field that accepts only valid ports (1–65535). */
|
|
4
|
+
export declare function PortTextField(props: PortTextFieldProps): import("react").JSX.Element;
|
|
5
|
+
//# sourceMappingURL=PortTextField.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PortTextField.d.ts","sourceRoot":"","sources":["../../../src/components/fields/PortTextField.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAG/D,MAAM,MAAM,kBAAkB,GAAG,IAAI,CACnC,qBAAqB,CAAC,MAAM,CAAC,EAC7B,OAAO,GAAG,WAAW,CACtB,CAAA;AAED,0DAA0D;AAC1D,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,+BAQtD"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as o } from "react/jsx-runtime";
|
|
3
|
+
import { parsePort as i } from "../../validators/network.js";
|
|
4
|
+
import { ParsingTextField as e } from "./ParsingTextField.js";
|
|
5
|
+
function f(r) {
|
|
6
|
+
return /* @__PURE__ */ o(
|
|
7
|
+
e,
|
|
8
|
+
{
|
|
9
|
+
parse: i,
|
|
10
|
+
stringify: (t) => t.toString(),
|
|
11
|
+
...r
|
|
12
|
+
}
|
|
13
|
+
);
|
|
14
|
+
}
|
|
15
|
+
export {
|
|
16
|
+
f as PortTextField
|
|
17
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ParsingTextFieldProps } from "./ParsingTextField";
|
|
2
|
+
export type StringValidationTextFieldProps = Omit<ParsingTextFieldProps<string>, "stringify">;
|
|
3
|
+
/** String field with a caller-supplied throwing validator as `parse`. */
|
|
4
|
+
export declare function StringValidationTextField(props: StringValidationTextFieldProps): import("react").JSX.Element;
|
|
5
|
+
//# sourceMappingURL=StringValidationTextField.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StringValidationTextField.d.ts","sourceRoot":"","sources":["../../../src/components/fields/StringValidationTextField.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAI/D,MAAM,MAAM,8BAA8B,GAAG,IAAI,CAC/C,qBAAqB,CAAC,MAAM,CAAC,EAC7B,WAAW,CACZ,CAAA;AAED,yEAAyE;AACzE,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,8BAA8B,+BAGtC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from "./FloatTextField";
|
|
2
|
+
export * from "./IntegerTextField";
|
|
3
|
+
export * from "./IpAddressTextField";
|
|
4
|
+
export * from "./ParsingTextField";
|
|
5
|
+
export * from "./PortTextField";
|
|
6
|
+
export * from "./StringValidationTextField";
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/fields/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,6BAA6B,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from "./AdornedSelect";
|
|
2
|
+
export * from "./AdornedTextField";
|
|
3
|
+
export * from "./ElevationCard";
|
|
4
|
+
export * from "./fields";
|
|
5
|
+
export * from "./PrimaryButton";
|
|
6
|
+
export * from "./RoundedIconButton";
|
|
7
|
+
export * from "./SecondaryButton";
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA"}
|
package/dist/index.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./validators/core.cjs"),e=require("./validators/network.cjs"),t=require("./validators/number.cjs"),r=require("./validators/string.cjs"),o=require("./components/AdornedTextField/AdornedAutocomplete.cjs"),i=require("./components/AdornedSelect/AdornedSelect.cjs"),a=require("./components/AdornedTextField/AdornedTextField.cjs"),d=require("./components/ElevationCard/ElevationCard.cjs"),s=require("./components/fields/FloatTextField.cjs"),l=require("./components/fields/IntegerTextField.cjs"),c=require("./components/fields/IpAddressTextField.cjs"),u=require("./components/fields/ParsingTextField.cjs"),p=require("./components/fields/PortTextField.cjs"),F=require("./components/PrimaryButton/PrimaryButton.cjs"),T=require("./components/RoundedIconButton/RoundedIconButton.cjs"),g=require("./components/SecondaryButton/SecondaryButton.cjs"),m=require("./components/fields/StringValidationTextField.cjs"),x=require("./theme/createNovaMuiTheme.cjs");exports.assertValid=n.assertValid;exports.isCidr=e.isCidr;exports.isHostname=e.isHostname;exports.isHttpUrl=e.isHttpUrl;exports.isIpv4=e.isIpv4;exports.isPort=e.isPort;exports.parseCidr=e.parseCidr;exports.parseHostname=e.parseHostname;exports.parseHttpUrl=e.parseHttpUrl;exports.parseIpv4=e.parseIpv4;exports.parsePort=e.parsePort;exports.parseFloatInRange=t.parseFloatInRange;exports.parseFloatStrict=t.parseFloatStrict;exports.parseInteger=t.parseInteger;exports.parseIntegerInRange=t.parseIntegerInRange;exports.matches=r.matches;exports.maxLength=r.maxLength;exports.minLength=r.minLength;exports.nonEmpty=r.nonEmpty;exports.AdornedAutocomplete=o.AdornedAutocomplete;exports.AdornedSelect=i.AdornedSelect;exports.AdornedTextField=a.AdornedTextField;exports.ElevationCard=d.ElevationCard;exports.FloatTextField=s.FloatTextField;exports.IntegerTextField=l.IntegerTextField;exports.IpAddressTextField=c.IpAddressTextField;exports.ParsingTextField=u.ParsingTextField;exports.PortTextField=p.PortTextField;exports.PrimaryButton=F.PrimaryButton;exports.RoundedIconButton=T.RoundedIconButton;exports.SecondaryButton=g.SecondaryButton;exports.StringValidationTextField=m.StringValidationTextField;exports.createNovaMuiTheme=x.createNovaMuiTheme;
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,cAAc,CAAA;AAC5B,YAAY,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAC5C,cAAc,cAAc,CAAA"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { assertValid as t } from "./validators/core.js";
|
|
2
|
+
import { isCidr as p, isHostname as a, isHttpUrl as m, isIpv4 as n, isPort as x, parseCidr as i, parseHostname as d, parseHttpUrl as s, parseIpv4 as f, parsePort as l } from "./validators/network.js";
|
|
3
|
+
import { parseFloatInRange as g, parseFloatStrict as I, parseInteger as T, parseIntegerInRange as c } from "./validators/number.js";
|
|
4
|
+
import { matches as A, maxLength as P, minLength as h, nonEmpty as v } from "./validators/string.js";
|
|
5
|
+
import { AdornedAutocomplete as S } from "./components/AdornedTextField/AdornedAutocomplete.js";
|
|
6
|
+
import { AdornedSelect as B } from "./components/AdornedSelect/AdornedSelect.js";
|
|
7
|
+
import { AdornedTextField as R } from "./components/AdornedTextField/AdornedTextField.js";
|
|
8
|
+
import { ElevationCard as L } from "./components/ElevationCard/ElevationCard.js";
|
|
9
|
+
import { FloatTextField as V } from "./components/fields/FloatTextField.js";
|
|
10
|
+
import { IntegerTextField as N } from "./components/fields/IntegerTextField.js";
|
|
11
|
+
import { IpAddressTextField as j } from "./components/fields/IpAddressTextField.js";
|
|
12
|
+
import { ParsingTextField as q } from "./components/fields/ParsingTextField.js";
|
|
13
|
+
import { PortTextField as z } from "./components/fields/PortTextField.js";
|
|
14
|
+
import { PrimaryButton as G } from "./components/PrimaryButton/PrimaryButton.js";
|
|
15
|
+
import { RoundedIconButton as K } from "./components/RoundedIconButton/RoundedIconButton.js";
|
|
16
|
+
import { SecondaryButton as Q } from "./components/SecondaryButton/SecondaryButton.js";
|
|
17
|
+
import { StringValidationTextField as X } from "./components/fields/StringValidationTextField.js";
|
|
18
|
+
import { createNovaMuiTheme as Z } from "./theme/createNovaMuiTheme.js";
|
|
19
|
+
export {
|
|
20
|
+
S as AdornedAutocomplete,
|
|
21
|
+
B as AdornedSelect,
|
|
22
|
+
R as AdornedTextField,
|
|
23
|
+
L as ElevationCard,
|
|
24
|
+
V as FloatTextField,
|
|
25
|
+
N as IntegerTextField,
|
|
26
|
+
j as IpAddressTextField,
|
|
27
|
+
q as ParsingTextField,
|
|
28
|
+
z as PortTextField,
|
|
29
|
+
G as PrimaryButton,
|
|
30
|
+
K as RoundedIconButton,
|
|
31
|
+
Q as SecondaryButton,
|
|
32
|
+
X as StringValidationTextField,
|
|
33
|
+
t as assertValid,
|
|
34
|
+
Z as createNovaMuiTheme,
|
|
35
|
+
p as isCidr,
|
|
36
|
+
a as isHostname,
|
|
37
|
+
m as isHttpUrl,
|
|
38
|
+
n as isIpv4,
|
|
39
|
+
x as isPort,
|
|
40
|
+
A as matches,
|
|
41
|
+
P as maxLength,
|
|
42
|
+
h as minLength,
|
|
43
|
+
v as nonEmpty,
|
|
44
|
+
i as parseCidr,
|
|
45
|
+
g as parseFloatInRange,
|
|
46
|
+
I as parseFloatStrict,
|
|
47
|
+
d as parseHostname,
|
|
48
|
+
s as parseHttpUrl,
|
|
49
|
+
T as parseInteger,
|
|
50
|
+
c as parseIntegerInRange,
|
|
51
|
+
f as parseIpv4,
|
|
52
|
+
l as parsePort
|
|
53
|
+
};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("@mui/material/styles"),e=require("@wandelbots/design-tokens");function n(){return{palette:{mode:"dark",text:{primary:e.ZeroGravityTextPrimary,secondary:e.ZeroGravityTextSecondary,disabled:e.ZeroGravityTextDisabled},primary:{main:e.ZeroGravityNovaViolet5,dark:e.ZeroGravityNovaViolet4,light:e.ZeroGravityNovaViolet6,contrastText:"rgba(255, 255, 255, 0.87)"},secondary:{main:e.ZeroGravitySecondaryMain,dark:e.ZeroGravitySecondaryDark,contrastText:e.ZeroGravitySecondaryContrast},tertiary:{main:e.ColorsTealA200,dark:e.ColorsTeal400,light:e.ColorsTealA100,contrastText:"rgba(0, 0, 0, 1)"},error:{main:e.ColorsRed400,dark:e.ColorsRed600,light:e.ColorsRed200,contrastText:"rgba(255, 255, 255, 1)"},warning:{main:e.ColorsOrangeA200,dark:e.ColorsOrangeA400,light:e.ColorsOrangeA100,contrastText:"rgba(0, 0, 0, 0.87)"},success:{main:e.ColorsTeal400,dark:e.ColorsTeal700,light:e.ColorsTeal200,contrastText:"rgba(255, 255, 255, 0.87)"},background:{default:"#161825",paper:"#11131f"},action:{active:e.ZeroGravityActionActive,hover:e.ZeroGravityActionHover,selected:e.ZeroGravityActionSelected,disabledBackground:e.ZeroGravityActionDisabledBackground,focus:"#ffffff1f",disabled:e.ZeroGravityActionDisabled},common:{white:"rgba(255, 255, 255, 1)",black:"rgba(0, 0, 0, 1)"},divider:e.ZeroGravityDivider,backgroundPaperElevation:{0:"#11131f",1:e.ZeroGravityBackgroundPaperElevation1,2:e.ZeroGravityBackgroundPaperElevation2,3:"#1a1c2b",4:"#1d1f2f",5:e.ZeroGravityBackgroundPaperElevation5,6:"#232537",7:"#26283b",8:e.ZeroGravityBackgroundPaperElevation8,9:"#2c2e43",10:"#2f3147",11:e.ZeroGravityBackgroundPaperElevation11,12:"#35374f",13:"#383a53",14:"#3b3d57",15:"#3e405b",16:"#393f57"}},paletteExt:{primary:{hover:`${e.ZeroGravityNovaViolet5}14`,selected:`${e.ZeroGravityNovaViolet5}29`,focus:`${e.ZeroGravityNovaViolet5}1f`,focusVisible:`${e.ZeroGravityNovaViolet5}4d`,outlineBorder:`${e.ZeroGravityNovaViolet5}80`},secondary:{tonal:e.ZeroGravitySecondaryTonal},components:{inputFilledEnabledFill:e.ZeroGravityComponentsInputFilledEnabledFill}},shape:{borderRadius:Number.parseInt(e.RadiusSm,10)},typography:{fontFamily:'"Inter", "Roboto", "Helvetica", "Arial", system-ui, sans-serif',fontWeightRegular:500,body2:{fontSize:14,fontWeight:400}}}}function l(){const t=e.RadiusSm;return{MuiCssBaseline:{styleOverrides:{"html, body, *":{scrollbarWidth:"none",msOverflowStyle:"none"},"html:hover, body:hover, *:hover":{scrollbarWidth:"thin",scrollbarColor:`${e.ZeroGravityDivider} transparent`}}},MuiButton:{styleOverrides:{root:{textTransform:"none",borderRadius:t}},variants:[{props:{color:"secondary",variant:"contained"},style:({theme:r})=>{var o,a,i;return{border:`1px solid ${r.palette.divider}`,background:(i=(a=(o=r.paletteExt)==null?void 0:o.secondary)==null?void 0:a.tonal)==null?void 0:i.toString()}}},{props:{color:"secondary",variant:"outlined"},style:({theme:r})=>({border:`1px solid ${r.palette.divider}`})}]},MuiTab:{styleOverrides:{root:({theme:r})=>({textTransform:"none",color:r.palette.text.secondary,"&.Mui-selected":{color:r.palette.text.primary}})}},MuiTabs:{styleOverrides:{root:({theme:r})=>{var o;return{background:(o=r.palette.backgroundPaperElevation)==null?void 0:o[1]}}}},MuiToggleButtonGroup:{styleOverrides:{root:{".MuiToggleButtonGroup-firstButton":{borderRadius:`${t} 0 0 ${t}`},".MuiToggleButtonGroup-lastButton":{borderRadius:`0 ${t} ${t} 0`}}}},MuiToggleButton:{styleOverrides:{root:{textTransform:"none",padding:"6px 16px"}}},MuiAutocomplete:{styleOverrides:{root:({theme:r})=>({background:r.palette.secondary.dark,fieldset:{border:"none"},"&.MuiAutocomplete-root":{borderRadius:"16px",border:"1px solid transparent"},"&.Mui-focused":{border:`1px solid ${r.palette.primary.main}`,label:{transform:"translate(14px, 6px) scale(0.75)",color:r.palette.text.secondary}},"&.MuiAutocomplete-hasClearIcon":{label:{transform:"translate(14px, 6px) scale(0.75)"}},label:{color:r.palette.text.secondary},input:{transform:"translate(0px, 6px)"}})}},MuiSelect:{styleOverrides:{root:({theme:r})=>({background:r.palette.secondary.dark,borderRadius:"16px",border:"1px solid transparent",fieldset:{border:"none"},"&:hover":{border:`1px solid ${r.palette.action.hover}`},"&.Mui-focused":{border:`1px solid ${r.palette.primary.main}`}})},variants:[{props:{variant:"filled"},style:{borderRadius:t,"::before, ::after":{visibility:"collapse"},".MuiInputBase-input":{padding:"6px 16px",borderRadius:t}}}]},MuiTooltip:{styleOverrides:{tooltip:({theme:r})=>{var o;return{background:(o=r.palette.backgroundPaperElevation)==null?void 0:o[1],border:`1px solid ${r.palette.divider}`,borderRadius:e.RadiusSm,padding:"8px 12px",lineHeight:"1.8em",fontWeight:"300",fontSize:"10px",maxWidth:"260px"}},arrow:({theme:r})=>{var o;return{"&:before":{border:`1px solid ${r.palette.divider}`,background:(o=r.palette.backgroundPaperElevation)==null?void 0:o[1]},color:r.palette.common.white}}}},MuiDrawer:{styleOverrides:{paper:{border:"none",boxShadow:"4px 0 8px -4px rgba(0, 0, 0, 0.3)"}}},MuiDialog:{styleOverrides:{paper:({theme:r})=>{var o;return{background:(o=r.palette.backgroundPaperElevation)==null?void 0:o[2],border:`1px solid ${r.palette.divider}`,borderRadius:"16px"}}}},MuiFab:{styleOverrides:{root:({theme:r})=>{var o,a;return{background:(a=(o=r.paletteExt)==null?void 0:o.secondary)==null?void 0:a.tonal}}},variants:[{props:{color:"primary"},style:({theme:r})=>({background:r.palette.primary.main})}]}}}function s(t){var r;for(const o of t)if(((r=o==null?void 0:o.palette)==null?void 0:r.mode)==="light")throw new Error("createNovaMuiTheme: palette.mode 'light' is not yet supported by @wandelbots/mui. Use the default dark theme or omit palette.mode. Light tokens will land when synced from Figma.")}function p(...t){return s(t),d.createTheme(n(),{components:l()},...t)}exports.commonComponents=l;exports.createNovaMuiTheme=p;exports.darkBaseOptions=n;
|