@televet/kibble-ui 1.17.1 → 1.17.2
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/DatePicker/datepicker.component.d.ts +1 -1
- 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 +12 -1
- package/build/index.js +25 -4
- package/build/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -5,7 +5,7 @@ export interface DatePickerProps {
|
|
|
5
5
|
date: Date | null;
|
|
6
6
|
onDateChange?: (date: Date | null) => void;
|
|
7
7
|
dateFormat?: string | DateFormats;
|
|
8
|
-
inputProps?: Omit<TextInputProps, 'onChange' | 'value'>;
|
|
8
|
+
inputProps?: Omit<TextInputProps, 'onChange' | 'value' | 'isClearable' | 'onClear'>;
|
|
9
9
|
placement?: PlacementWithLogical;
|
|
10
10
|
minYear?: number;
|
|
11
11
|
maxYear?: number;
|
|
@@ -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,21 @@
|
|
|
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
|
-
|
|
4
|
+
import { FormControlSize } from '../FormControl/formControl.types';
|
|
5
|
+
export interface TextInputBaseProps extends WithFormControlProps, CInputProps {
|
|
5
6
|
leftElement?: ReactElement;
|
|
6
7
|
rightElement?: ReactElement;
|
|
7
8
|
inputRef?: ForwardedRef<HTMLInputElement>;
|
|
9
|
+
size?: FormControlSize;
|
|
8
10
|
}
|
|
11
|
+
export interface DefaultTextInputProps extends TextInputBaseProps {
|
|
12
|
+
isClearable?: never;
|
|
13
|
+
onClear?: never;
|
|
14
|
+
}
|
|
15
|
+
export interface ClearableTextInputProps extends TextInputBaseProps {
|
|
16
|
+
isClearable: boolean;
|
|
17
|
+
onClear: (val: string | number | readonly string[]) => void;
|
|
18
|
+
}
|
|
19
|
+
export declare type TextInputProps = DefaultTextInputProps | ClearableTextInputProps;
|
|
9
20
|
declare const WrappedTextInput: React.ForwardRefExoticComponent<TextInputProps & React.RefAttributes<HTMLInputElement>>;
|
|
10
21
|
export { WrappedTextInput as TextInput };
|
package/build/index.js
CHANGED
|
@@ -14649,12 +14649,33 @@ var FormControlConfig = {
|
|
|
14649
14649
|
|
|
14650
14650
|
var TextareaConfig = __assign({}, FormControlConfig);
|
|
14651
14651
|
|
|
14652
|
-
var
|
|
14653
|
-
|
|
14654
|
-
|
|
14652
|
+
var closeButtonSize = {
|
|
14653
|
+
sm: 5,
|
|
14654
|
+
md: 5,
|
|
14655
|
+
lg: 6,
|
|
14656
|
+
};
|
|
14657
|
+
var ClearButton = function (_a) {
|
|
14658
|
+
var handleClear = _a.handleClear, _b = _a.size, size = _b === void 0 ? 'md' : _b;
|
|
14659
|
+
var colors = useTheme().colors;
|
|
14660
|
+
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 },
|
|
14661
|
+
React__default["default"].createElement(Icon, { name: "close", color: "currentColor", size: size === 'lg' ? 'sm' : 'xs' })));
|
|
14662
|
+
};
|
|
14663
|
+
|
|
14664
|
+
var TextInput = withFormControl(function (_a) {
|
|
14665
|
+
var _b = _a.isClearable, isClearable = _b === void 0 ? false : _b, _c = _a.size, size = _c === void 0 ? 'md' : _c, props = __rest(_a, ["isClearable", "size"]);
|
|
14666
|
+
var leftElement = props.leftElement, inputRef = props.inputRef; props.isFieldInline; var onClear = props.onClear, value = props.value, domProps = __rest(props, ["leftElement", "inputRef", "isFieldInline", "onClear", "value"]);
|
|
14667
|
+
var rightElement = props.rightElement;
|
|
14668
|
+
var handleClear = function () {
|
|
14669
|
+
if (onClear) {
|
|
14670
|
+
onClear(value || '');
|
|
14671
|
+
}
|
|
14672
|
+
};
|
|
14673
|
+
if (isClearable && !!value) {
|
|
14674
|
+
rightElement = React__default["default"].createElement(ClearButton, { size: size, handleClear: handleClear });
|
|
14675
|
+
}
|
|
14655
14676
|
return (React__default["default"].createElement(react.InputGroup, null,
|
|
14656
14677
|
leftElement ? React__default["default"].createElement(react.InputLeftElement, { children: leftElement, h: "100%" }) : null,
|
|
14657
|
-
React__default["default"].createElement(react.Input, __assign({ ref: inputRef
|
|
14678
|
+
React__default["default"].createElement(react.Input, __assign({}, domProps, { ref: inputRef, size: size, value: value })),
|
|
14658
14679
|
rightElement ? React__default["default"].createElement(react.InputRightElement, { children: rightElement, h: "100%" }) : null));
|
|
14659
14680
|
});
|
|
14660
14681
|
var WrappedTextInput = React.forwardRef(function (props, ref) { return (React__default["default"].createElement(TextInput, __assign({ inputRef: ref }, props))); });
|