@televet/kibble-ui 1.17.1 → 1.17.3

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.
@@ -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?: 'start' | 'end';
15
+ helperTextAlignment?: HelperTextAlignment;
15
16
  }
16
17
  export declare function withFormControl<P extends WithFormControlProps>(Component: React.ComponentType<P>): React.FC<P>;
@@ -0,0 +1,2 @@
1
+ export declare type FormControlSize = 'sm' | 'md' | 'lg';
2
+ export declare type HelperTextAlignment = 'start' | 'end';
@@ -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
- export interface TextInputProps extends WithFormControlProps, CInputProps {
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 };
@@ -1,5 +1,6 @@
1
- export * as BetaPopover from './popover.component';
1
+ export * from './popover.component';
2
2
  export * from './popover.config';
3
+ export * from './popover.types';
3
4
  export * from './components/PopoverBody/popoverBody.component';
4
5
  export * from './components/PopoverFooter/popoverFooter.component';
5
6
  export * from './components/PopoverCloseButton/popoverCloseButton.component';
package/build/index.js CHANGED
@@ -14649,12 +14649,33 @@ var FormControlConfig = {
14649
14649
 
14650
14650
  var TextareaConfig = __assign({}, FormControlConfig);
14651
14651
 
14652
- var TextInput = withFormControl(function (props) {
14653
- // the disabled styles coming from the FormControlConfig weren't getting applied to the TextInput, so they're added inline instead
14654
- var leftElement = props.leftElement, rightElement = props.rightElement, inputRef = props.inputRef; props.isFieldInline; var domProps = __rest(props, ["leftElement", "rightElement", "inputRef", "isFieldInline"]);
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 }, domProps)),
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))); });
@@ -21652,11 +21673,6 @@ var Popover = function (_a) {
21652
21673
  React__default["default"].createElement(Text, { size: "sm" }, children)), !!darkMode)));
21653
21674
  };
21654
21675
 
21655
- var popover_component = /*#__PURE__*/Object.freeze({
21656
- __proto__: null,
21657
- Popover: Popover
21658
- });
21659
-
21660
21676
  var PopoverConfig = {
21661
21677
  xs: { width: 160 },
21662
21678
  sm: { width: 200 },
@@ -24566,7 +24582,6 @@ exports.AvatarConfig = AvatarConfig;
24566
24582
  exports.AvatarGroup = AvatarGroup;
24567
24583
  exports.BetaMenu = BetaMenu;
24568
24584
  exports.BetaModal = modal_component;
24569
- exports.BetaPopover = popover_component;
24570
24585
  exports.Button = Button;
24571
24586
  exports.ButtonSizeConfig = ButtonSizeConfig;
24572
24587
  exports.ButtonVariantConfig = ButtonVariantConfig;
@@ -24590,6 +24605,7 @@ exports.ModalFooter = ModalFooter;
24590
24605
  exports.ModalFooterButtons = ModalFooterButtons;
24591
24606
  exports.ModalHeader = ModalHeader;
24592
24607
  exports.NotificationCounter = NotificationCounter;
24608
+ exports.Popover = Popover;
24593
24609
  exports.PopoverBody = PopoverBody;
24594
24610
  exports.PopoverCloseButton = PopoverCloseButton;
24595
24611
  exports.PopoverConfig = PopoverConfig;