@wavelengthusaf/components 2.7.0 → 2.7.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.
- package/README.md +5 -0
- package/dist/cjs/index.cjs +112 -38
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.d.cts +4 -1
- package/dist/components/TextField/WavelengthTextField.d.ts +4 -1
- package/dist/components/TextField/WavelengthTextField.d.ts.map +1 -1
- package/dist/esm/index.d.ts +4 -1
- package/dist/esm/index.js +113 -39
- package/dist/esm/index.js.map +1 -1
- package/package.json +1 -1
package/dist/cjs/index.d.cts
CHANGED
|
@@ -497,7 +497,10 @@ interface TextFieldProps {
|
|
|
497
497
|
regex?: RegExp;
|
|
498
498
|
placeholder?: string;
|
|
499
499
|
type?: string;
|
|
500
|
+
variant?: "outlined" | "standard";
|
|
501
|
+
error?: boolean;
|
|
502
|
+
errorMessage?: string;
|
|
500
503
|
}
|
|
501
|
-
declare function WavelengthTextField(props: TextFieldProps): react_jsx_runtime.JSX.Element;
|
|
504
|
+
declare function WavelengthTextField(props: TextFieldProps): react_jsx_runtime.JSX.Element | null;
|
|
502
505
|
|
|
503
506
|
export { AppLogo, ButtonIcon, ButtonMenu, DefaultCarousel, DefaultIcon, DefaultPagination, ManyPlanesComponent, NotAvailablePage, type SearchProps, type SearchResult, SearchTextField, SliderCardCarousel, type StyledButtonPropsTwo, TestSnackbar, type ThemeProperties, WavelengthAppTheme, WavelengthAutocomplete, WavelengthBanner, WavelengthBox, WavelengthButton, WavelengthCommentDisplay, WavelengthConfirmationModal, WavelengthContentModal, WavelengthContentPlaceholder, WavelengthDragAndDrop, WavelengthDropdown, WavelengthDropdownButton, WavelengthExampleComponent, WavelengthFileDownloader, WavelengthFooter, WavelengthPlaneTrail, WavelengthPopUpMenu, WavelengthProgressBar, WavelengthSearch, WavelengthSideBar, WavelengthSlider, WavelengthSnackbar, WavelengthSpinningLogo, WavelengthSpinningOuterCircle, WavelengthStandardSnackbar, WavelengthStyledButton, WavelengthTextField, WavelengthTitleBar, add, ascendingRange, concat, findBestStringMatch, type menuItemProps, range, useOutsideClick, useThemeContext };
|
|
@@ -13,7 +13,10 @@ interface TextFieldProps {
|
|
|
13
13
|
regex?: RegExp;
|
|
14
14
|
placeholder?: string;
|
|
15
15
|
type?: string;
|
|
16
|
+
variant?: "outlined" | "standard";
|
|
17
|
+
error?: boolean;
|
|
18
|
+
errorMessage?: string;
|
|
16
19
|
}
|
|
17
|
-
export declare function WavelengthTextField(props: TextFieldProps): import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
export declare function WavelengthTextField(props: TextFieldProps): import("react/jsx-runtime").JSX.Element | null;
|
|
18
21
|
export default WavelengthTextField;
|
|
19
22
|
//# sourceMappingURL=WavelengthTextField.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WavelengthTextField.d.ts","sourceRoot":"","sources":["../../../src/components/TextField/WavelengthTextField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"WavelengthTextField.d.ts","sourceRoot":"","sources":["../../../src/components/TextField/WavelengthTextField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAyDrD,UAAU,cAAc;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,kBAAkB,CAAC,gBAAgB,GAAG,mBAAmB,CAAC,GAAG,SAAS,CAAC;IACxF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;IAClC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,kDAoFxD;AAED,eAAe,mBAAmB,CAAC"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -497,7 +497,10 @@ interface TextFieldProps {
|
|
|
497
497
|
regex?: RegExp;
|
|
498
498
|
placeholder?: string;
|
|
499
499
|
type?: string;
|
|
500
|
+
variant?: "outlined" | "standard";
|
|
501
|
+
error?: boolean;
|
|
502
|
+
errorMessage?: string;
|
|
500
503
|
}
|
|
501
|
-
declare function WavelengthTextField(props: TextFieldProps): react_jsx_runtime.JSX.Element;
|
|
504
|
+
declare function WavelengthTextField(props: TextFieldProps): react_jsx_runtime.JSX.Element | null;
|
|
502
505
|
|
|
503
506
|
export { AppLogo, ButtonIcon, ButtonMenu, DefaultCarousel, DefaultIcon, DefaultPagination, ManyPlanesComponent, NotAvailablePage, type SearchProps, type SearchResult, SearchTextField, SliderCardCarousel, type StyledButtonPropsTwo, TestSnackbar, type ThemeProperties, WavelengthAppTheme, WavelengthAutocomplete, WavelengthBanner, WavelengthBox, WavelengthButton, WavelengthCommentDisplay, WavelengthConfirmationModal, WavelengthContentModal, WavelengthContentPlaceholder, WavelengthDragAndDrop, WavelengthDropdown, WavelengthDropdownButton, WavelengthExampleComponent, WavelengthFileDownloader, WavelengthFooter, WavelengthPlaneTrail, WavelengthPopUpMenu, WavelengthProgressBar, WavelengthSearch, WavelengthSideBar, WavelengthSlider, WavelengthSnackbar, WavelengthSpinningLogo, WavelengthSpinningOuterCircle, WavelengthStandardSnackbar, WavelengthStyledButton, WavelengthTextField, WavelengthTitleBar, add, ascendingRange, concat, findBestStringMatch, type menuItemProps, range, useOutsideClick, useThemeContext };
|
package/dist/esm/index.js
CHANGED
|
@@ -206,7 +206,7 @@ var require_react_is_development = __commonJS({
|
|
|
206
206
|
var ContextProvider = REACT_PROVIDER_TYPE;
|
|
207
207
|
var Element = REACT_ELEMENT_TYPE;
|
|
208
208
|
var ForwardRef2 = REACT_FORWARD_REF_TYPE;
|
|
209
|
-
var
|
|
209
|
+
var Fragment14 = REACT_FRAGMENT_TYPE;
|
|
210
210
|
var Lazy = REACT_LAZY_TYPE;
|
|
211
211
|
var Memo2 = REACT_MEMO_TYPE;
|
|
212
212
|
var Portal = REACT_PORTAL_TYPE;
|
|
@@ -265,7 +265,7 @@ var require_react_is_development = __commonJS({
|
|
|
265
265
|
exports.ContextProvider = ContextProvider;
|
|
266
266
|
exports.Element = Element;
|
|
267
267
|
exports.ForwardRef = ForwardRef2;
|
|
268
|
-
exports.Fragment =
|
|
268
|
+
exports.Fragment = Fragment14;
|
|
269
269
|
exports.Lazy = Lazy;
|
|
270
270
|
exports.Memo = Memo2;
|
|
271
271
|
exports.Portal = Portal;
|
|
@@ -5958,7 +5958,55 @@ function DefaultPagination({ totalPages, currentPageNumber, siblingCount = 1, bo
|
|
|
5958
5958
|
// src/components/TextField/WavelengthTextField.tsx
|
|
5959
5959
|
import { useCallback, useState as useState9 } from "react";
|
|
5960
5960
|
import TextField4 from "@mui/material/TextField";
|
|
5961
|
-
import
|
|
5961
|
+
import styled10 from "styled-components";
|
|
5962
|
+
import { jsx as jsx37, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
5963
|
+
var InputWrapper = styled10.div`
|
|
5964
|
+
position: relative;
|
|
5965
|
+
width: 100%;
|
|
5966
|
+
`;
|
|
5967
|
+
var StandardTextField = styled10.input`
|
|
5968
|
+
width: ${(props) => props.width || "320px"};
|
|
5969
|
+
height: ${(props) => props.height || "35px"};
|
|
5970
|
+
padding-left: 12px;
|
|
5971
|
+
font-size: 16px;
|
|
5972
|
+
border: none;
|
|
5973
|
+
border-bottom: 2px solid ${(props) => props.error ? "red" : props.borderColor || "#ccc"}; /* Red border when error */
|
|
5974
|
+
color: ${(props) => props.textColor || "black"};
|
|
5975
|
+
outline: none;
|
|
5976
|
+
box-sizing: border-box;
|
|
5977
|
+
background-color: transparent;
|
|
5978
|
+
|
|
5979
|
+
&:focus {
|
|
5980
|
+
border-bottom-color: ${(props) => props.error ? "red" : props.focusColor || "#d16a2f"};
|
|
5981
|
+
}
|
|
5982
|
+
|
|
5983
|
+
&::placeholder {
|
|
5984
|
+
opacity: 0.4;
|
|
5985
|
+
color: ${(props) => props.error ? "red" : "#888"}; /* Placeholder color changes to red on error */
|
|
5986
|
+
}
|
|
5987
|
+
|
|
5988
|
+
&:focus + label,
|
|
5989
|
+
&:valid + label {
|
|
5990
|
+
top: -5px;
|
|
5991
|
+
font-size: 12px;
|
|
5992
|
+
color: ${(props) => props.error ? "red" : props.labelColor}; // Change label color on error
|
|
5993
|
+
}
|
|
5994
|
+
|
|
5995
|
+
&:not(:placeholder-shown) + label {
|
|
5996
|
+
top: -8px;
|
|
5997
|
+
font-size: 12px;
|
|
5998
|
+
color: ${(props) => props.error ? "red" : props.labelColor}; // Label color when input has a value
|
|
5999
|
+
}
|
|
6000
|
+
`;
|
|
6001
|
+
var StyledLabel = styled10.label`
|
|
6002
|
+
position: absolute;
|
|
6003
|
+
top: 8px;
|
|
6004
|
+
left: 16px;
|
|
6005
|
+
font-size: 14px;
|
|
6006
|
+
color: ${(props) => props.color || "#aaa"};
|
|
6007
|
+
pointer-events: none;
|
|
6008
|
+
transition: all 0.3s ease-out;
|
|
6009
|
+
`;
|
|
5962
6010
|
function WavelengthTextField(props) {
|
|
5963
6011
|
const [hasError, setHasError] = useState9(false);
|
|
5964
6012
|
const handleChange = useCallback(
|
|
@@ -5969,48 +6017,74 @@ function WavelengthTextField(props) {
|
|
|
5969
6017
|
}
|
|
5970
6018
|
},
|
|
5971
6019
|
[props.regex]
|
|
5972
|
-
// Ensures function doesn't change unless `regex` does
|
|
5973
6020
|
);
|
|
5974
|
-
|
|
5975
|
-
|
|
5976
|
-
|
|
5977
|
-
|
|
5978
|
-
|
|
5979
|
-
|
|
5980
|
-
|
|
5981
|
-
|
|
5982
|
-
|
|
5983
|
-
|
|
5984
|
-
error: hasError,
|
|
5985
|
-
helperText: hasError ? "Invalid Input" : "",
|
|
5986
|
-
sx: {
|
|
5987
|
-
"& .MuiInputBase-root": {
|
|
5988
|
-
height: props.height || "51px",
|
|
5989
|
-
width: props.width || "320px",
|
|
5990
|
-
borderRadius: "8px"
|
|
6021
|
+
if (props.variant === "outlined") {
|
|
6022
|
+
return /* @__PURE__ */ jsx37(
|
|
6023
|
+
TextField4,
|
|
6024
|
+
{
|
|
6025
|
+
type: props.type,
|
|
6026
|
+
required: props.required,
|
|
6027
|
+
label: props.label,
|
|
6028
|
+
onChange: (e) => {
|
|
6029
|
+
handleChange(e);
|
|
6030
|
+
props.onChange?.(e);
|
|
5991
6031
|
},
|
|
5992
|
-
|
|
5993
|
-
|
|
5994
|
-
|
|
5995
|
-
|
|
5996
|
-
|
|
5997
|
-
|
|
5998
|
-
|
|
5999
|
-
|
|
6000
|
-
|
|
6032
|
+
error: hasError,
|
|
6033
|
+
helperText: hasError ? props.errorMessage : "",
|
|
6034
|
+
sx: {
|
|
6035
|
+
"& .MuiInputBase-root": {
|
|
6036
|
+
height: props.height || "51px",
|
|
6037
|
+
width: props.width || "320px",
|
|
6038
|
+
borderRadius: "8px"
|
|
6039
|
+
},
|
|
6040
|
+
"&.MuiTextField-root": {
|
|
6041
|
+
"& label": { color: !hasError ? props.labelColor || "rgba(89, 99, 129, 1)" : "red" },
|
|
6042
|
+
"& .MuiOutlinedInput-root": {
|
|
6043
|
+
"& fieldset": {
|
|
6044
|
+
border: "1px solid",
|
|
6045
|
+
borderColor: !hasError ? props.borderColor || `rgba(89, 99, 129, 1)` : "red"
|
|
6046
|
+
},
|
|
6047
|
+
"&.Mui-focused fieldset": {
|
|
6048
|
+
borderColor: !hasError ? props.focusColor || `rgba(26, 128, 131, 0.1)` : "red"
|
|
6049
|
+
}
|
|
6001
6050
|
}
|
|
6002
6051
|
}
|
|
6052
|
+
},
|
|
6053
|
+
placeholder: props.placeholder,
|
|
6054
|
+
InputLabelProps: {
|
|
6055
|
+
shrink: props.shrink
|
|
6056
|
+
},
|
|
6057
|
+
InputProps: {
|
|
6058
|
+
style: { color: props.textColor || "inherit" }
|
|
6003
6059
|
}
|
|
6004
|
-
},
|
|
6005
|
-
placeholder: props.placeholder,
|
|
6006
|
-
InputLabelProps: {
|
|
6007
|
-
shrink: props.shrink
|
|
6008
|
-
},
|
|
6009
|
-
InputProps: {
|
|
6010
|
-
style: { color: props.textColor || "inherit" }
|
|
6011
6060
|
}
|
|
6012
|
-
|
|
6013
|
-
)
|
|
6061
|
+
);
|
|
6062
|
+
} else if (props.variant === "standard") {
|
|
6063
|
+
return /* @__PURE__ */ jsxs29(InputWrapper, { children: [
|
|
6064
|
+
/* @__PURE__ */ jsx37(
|
|
6065
|
+
StandardTextField,
|
|
6066
|
+
{
|
|
6067
|
+
type: props.type,
|
|
6068
|
+
id: "custom-input",
|
|
6069
|
+
placeholder: props.placeholder,
|
|
6070
|
+
required: props.required,
|
|
6071
|
+
focusColor: props.focusColor,
|
|
6072
|
+
borderColor: props.borderColor,
|
|
6073
|
+
width: props.width,
|
|
6074
|
+
height: props.height,
|
|
6075
|
+
textColor: props.textColor,
|
|
6076
|
+
error: hasError,
|
|
6077
|
+
onChange: (e) => {
|
|
6078
|
+
handleChange(e);
|
|
6079
|
+
props.onChange?.(e);
|
|
6080
|
+
}
|
|
6081
|
+
}
|
|
6082
|
+
),
|
|
6083
|
+
props.label && /* @__PURE__ */ jsx37(StyledLabel, { htmlFor: "custom-input", color: props.labelColor, children: props.label }),
|
|
6084
|
+
props.error && /* @__PURE__ */ jsx37("div", { style: { fontSize: ".75rem", color: "red", paddingLeft: "12px", marginTop: "3px" }, children: props.errorMessage })
|
|
6085
|
+
] });
|
|
6086
|
+
}
|
|
6087
|
+
return null;
|
|
6014
6088
|
}
|
|
6015
6089
|
export {
|
|
6016
6090
|
AppLogo,
|