@televet/kibble-ui 1.16.0 → 1.16.1-beta.30eeeuh.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/build/components/Forms/FormControl/formControl.component.d.ts +2 -1
- package/build/components/Forms/FormControl/formControl.types.d.ts +2 -0
- package/build/components/Forms/TextInput/components/ClearButton/clearButton.component.d.ts +6 -0
- package/build/components/Forms/TextInput/textInput.component.d.ts +4 -0
- package/build/index.js +33 -3
- package/build/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { Dict } from 'shared/types';
|
|
3
|
+
import { HelperTextAlignment } from './formControl.types';
|
|
3
4
|
export interface WithFormControlProps {
|
|
4
5
|
errorText?: string;
|
|
5
6
|
helperText?: string;
|
|
@@ -11,6 +12,6 @@ export interface WithFormControlProps {
|
|
|
11
12
|
label?: string;
|
|
12
13
|
labelStyle?: Dict;
|
|
13
14
|
formControlStyle?: Dict;
|
|
14
|
-
helperTextAlignment?:
|
|
15
|
+
helperTextAlignment?: HelperTextAlignment;
|
|
15
16
|
}
|
|
16
17
|
export declare function withFormControl<P extends WithFormControlProps>(Component: React.ComponentType<P>): React.FC<P>;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { FormControlSize } from 'components/Forms/FormControl/formControl.types';
|
|
2
|
+
export interface ClearButtonProps {
|
|
3
|
+
handleClear?: () => void;
|
|
4
|
+
size?: FormControlSize;
|
|
5
|
+
}
|
|
6
|
+
export declare const ClearButton: ({ handleClear, size }: ClearButtonProps) => JSX.Element;
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import React, { ForwardedRef, ReactElement } from 'react';
|
|
2
2
|
import { InputProps as CInputProps } from '@chakra-ui/react';
|
|
3
3
|
import { WithFormControlProps } from '../FormControl/formControl.component';
|
|
4
|
+
import { FormControlSize } from '../FormControl/formControl.types';
|
|
4
5
|
export interface TextInputProps extends WithFormControlProps, CInputProps {
|
|
5
6
|
leftElement?: ReactElement;
|
|
6
7
|
rightElement?: ReactElement;
|
|
7
8
|
inputRef?: ForwardedRef<HTMLInputElement>;
|
|
9
|
+
isClearable?: boolean;
|
|
10
|
+
onClear?: (val: string | number | readonly string[]) => void;
|
|
11
|
+
size?: FormControlSize;
|
|
8
12
|
}
|
|
9
13
|
declare const WrappedTextInput: React.ForwardRefExoticComponent<TextInputProps & React.RefAttributes<HTMLInputElement>>;
|
|
10
14
|
export { WrappedTextInput as TextInput };
|
package/build/index.js
CHANGED
|
@@ -4006,12 +4006,42 @@ var FormControlConfig = {
|
|
|
4006
4006
|
|
|
4007
4007
|
var TextareaConfig = __assign({}, FormControlConfig);
|
|
4008
4008
|
|
|
4009
|
-
var
|
|
4009
|
+
var closeButtonSize = {
|
|
4010
|
+
sm: 5,
|
|
4011
|
+
md: 5,
|
|
4012
|
+
lg: 6,
|
|
4013
|
+
};
|
|
4014
|
+
var ClearButton = function (_a) {
|
|
4015
|
+
var handleClear = _a.handleClear, _b = _a.size, size = _b === void 0 ? 'md' : _b;
|
|
4016
|
+
var colors = useTheme().colors;
|
|
4017
|
+
return (React__default["default"].createElement(react.Button, { color: colors.icon.light.default, display: "inline-flex", minW: "auto", w: closeButtonSize[size], h: closeButtonSize[size], variant: "unstyled", opacity: 0.5, _hover: { opacity: 0.8 }, _active: { opacity: 1 }, mr: size === 'sm' ? 3 : 4, onClick: handleClear },
|
|
4018
|
+
React__default["default"].createElement(Icon, { name: "close", color: "currentColor", size: size === 'lg' ? 'sm' : 'xs' })));
|
|
4019
|
+
};
|
|
4020
|
+
|
|
4021
|
+
var TextInput = withFormControl(function (_a) {
|
|
4022
|
+
var _b = _a.isClearable, isClearable = _b === void 0 ? false : _b, _c = _a.size, size = _c === void 0 ? 'md' : _c, props = __rest(_a, ["isClearable", "size"]);
|
|
4010
4023
|
// the disabled styles coming from the FormControlConfig weren't getting applied to the TextInput, so they're added inline instead
|
|
4011
|
-
var leftElement = props.leftElement,
|
|
4024
|
+
var leftElement = props.leftElement, inputRef = props.inputRef; props.isFieldInline; var domProps = __rest(props, ["leftElement", "inputRef", "isFieldInline"]);
|
|
4025
|
+
var rightElement = props.rightElement;
|
|
4026
|
+
var _d = __read(React.useState(props.value || ''), 2), value = _d[0], setValue = _d[1];
|
|
4027
|
+
var handleChange = function (e) {
|
|
4028
|
+
setValue(e.target.value);
|
|
4029
|
+
if (props.onChange) {
|
|
4030
|
+
props.onChange(e);
|
|
4031
|
+
}
|
|
4032
|
+
};
|
|
4033
|
+
var handleClear = function () {
|
|
4034
|
+
setValue('');
|
|
4035
|
+
if (props.onClear) {
|
|
4036
|
+
props.onClear(value);
|
|
4037
|
+
}
|
|
4038
|
+
};
|
|
4039
|
+
if (isClearable && !!value) {
|
|
4040
|
+
rightElement = React__default["default"].createElement(ClearButton, { size: size, handleClear: handleClear });
|
|
4041
|
+
}
|
|
4012
4042
|
return (React__default["default"].createElement(react.InputGroup, null,
|
|
4013
4043
|
leftElement ? React__default["default"].createElement(react.InputLeftElement, { children: leftElement, h: "100%" }) : null,
|
|
4014
|
-
React__default["default"].createElement(react.Input, __assign({ ref: inputRef }, domProps)),
|
|
4044
|
+
React__default["default"].createElement(react.Input, __assign({ ref: inputRef }, domProps, { onChange: function (e) { return handleChange(e); }, value: value, size: size })),
|
|
4015
4045
|
rightElement ? React__default["default"].createElement(react.InputRightElement, { children: rightElement, h: "100%" }) : null));
|
|
4016
4046
|
});
|
|
4017
4047
|
var WrappedTextInput = React.forwardRef(function (props, ref) { return (React__default["default"].createElement(TextInput, __assign({ inputRef: ref }, props))); });
|