x-ui-design 1.0.28 → 1.0.30

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.
@@ -2,10 +2,14 @@ import React from 'react';
2
2
  import { InputProps } from '../../types/input';
3
3
  import Textarea from './Textarea/Textarea';
4
4
  import './style.css';
5
- declare const InputComponent: {
6
- ({ size, error, suffix, prefix, addonAfter, addonBefore, onPressEnter, disabled, allowClear, prefixCls, prefixClsV3, className, value, iconRender, noStyle, feedbackIcons, mask, maskChar, maskRegex, __injected, defaultValue, child, ref, ...props }: InputProps): React.JSX.Element;
7
- displayName: string;
5
+ type InputHandle = {
6
+ focus: () => void;
7
+ input: HTMLInputElement | null;
8
+ blur: () => void;
9
+ nativeElement: HTMLInputElement | null;
10
+ setSelectionRange: (start: number, end: number) => void;
8
11
  };
12
+ declare const InputComponent: React.ForwardRefExoticComponent<Omit<InputProps, "ref"> & React.RefAttributes<InputHandle>>;
9
13
  declare const Input: typeof InputComponent & {
10
14
  TextArea: typeof Textarea;
11
15
  };
@@ -9,7 +9,13 @@ declare const RangePicker: import("react").ComponentType<import("@/types/datepic
9
9
  declare const TimePicker: import("react").ComponentType<import("@/types/datepicker").TimePickerProps>;
10
10
  declare const Form: import("react").ComponentType<import("@/types/form").FormProps>;
11
11
  declare const FormItem: import("react").ComponentType<import("@/types/form").FormItemProps>;
12
- declare const Input: import("react").ComponentType<import("@/types/input").InputProps>;
12
+ declare const Input: import("react").ComponentType<Omit<import("@/types/input").InputProps, "ref"> & import("react").RefAttributes<{
13
+ focus: () => void;
14
+ input: HTMLInputElement | null;
15
+ blur: () => void;
16
+ nativeElement: HTMLInputElement | null;
17
+ setSelectionRange: (start: number, end: number) => void;
18
+ }>>;
13
19
  declare const Textarea: import("react").ComponentType<import("@/types/input").TextareaProps>;
14
20
  declare const Radio: import("react").ComponentType<import("@/types/radio").RadioProps>;
15
21
  declare const RadioButton: import("react").ComponentType<import("@/types/radio").RadioButtonProps>;
package/dist/index.d.ts CHANGED
@@ -122,7 +122,13 @@ declare const RangePicker: react.ComponentType<__types_datepicker.TRangePickerPr
122
122
  declare const TimePicker: react.ComponentType<__types_datepicker.TimePickerProps>;
123
123
  declare const Form: react.ComponentType<__types_form.FormProps>;
124
124
  declare const FormItem: react.ComponentType<__types_form.FormItemProps>;
125
- declare const Input: react.ComponentType<__types_input.InputProps>;
125
+ declare const Input: react.ComponentType<Omit<__types_input.InputProps, "ref"> & react.RefAttributes<{
126
+ focus: () => void;
127
+ input: HTMLInputElement | null;
128
+ blur: () => void;
129
+ nativeElement: HTMLInputElement | null;
130
+ setSelectionRange: (start: number, end: number) => void;
131
+ }>>;
126
132
  declare const Textarea: react.ComponentType<__types_input.TextareaProps>;
127
133
  declare const Radio: react.ComponentType<__types_radio.RadioProps>;
128
134
  declare const RadioButton: react.ComponentType<__types_radio.RadioButtonProps>;
package/dist/index.esm.js CHANGED
@@ -3848,7 +3848,7 @@ function applyMask(raw, mask, maskChar = MASK_CHAR) {
3848
3848
  var css_248z$f = ".xUi-input-container{align-items:center;background-color:transparent;border:1px solid var(--xui-border-color);border-radius:var(--xui-border-radius-sm);display:flex;overflow:hidden}.xUi-input-container:not(.xUi-input-error):not(.xUi-input-disabled):has(.xUi-input):hover,.xUi-input-container:not(.xUi-input-error):not(.xUi-input-disabled):has(.xUi-input:focus){border:1px solid var(--xui-primary-color)}.xUi-input-container.xUi-input-error{border-color:var(--xui-error-color)}.xUi-input-container.xUi-input-error .error-svg-icon,.xUi-input-suffix .error-svg-icon{color:var(--xui-error-color)}.xUi-input-wrapper{align-items:center;display:flex;flex-grow:1;position:relative;transition:border .3s}.xUi-input,.xUi-input-wrapper{background-color:transparent;height:-webkit-fill-available}.xUi-input{border:none;color:var(--xui-text-color);flex:1;outline:none;padding:.1px 7px;width:100%}.xUi-input:placeholder-shown{text-overflow:ellipsis}.xUi-input::placeholder{color:var(--xui-text-color);opacity:.6}.xUi-input-prefix,.xUi-input-suffix{background-color:transparent;gap:4px}.xUi-input-addon,.xUi-input-prefix,.xUi-input-suffix{align-items:center;color:var(--xui-text-color);display:flex;height:-webkit-fill-available;padding:0 7px}.xUi-input-addon.xUi-input-after{border-left:1px solid var(--xui-border-color)}.xUi-input-addon.xUi-input-before{border-right:1px solid var(--xui-border-color)}.xUi-input-large .xUi-input-addon{padding:0 10px}.xUi-input-clear{align-items:center;cursor:pointer;display:flex;margin:0 5px;position:relative;width:16px}.xUi-input-clear svg{color:var(--xui-text-color)}.xUi-input-disabled,.xUi-input-disabled .xUi-input,.xUi-input-disabled .xUi-input-suffix{background-color:var(--xui-color-disabled);cursor:not-allowed}.xUi-input-small{height:22px}.xUi-input-large .xUi-input-clear,.xUi-input-small .xUi-input,.xUi-input-small .xUi-input::placeholder{font-size:var(--xui-font-size-md)}.xUi-input-middle{border-radius:var(--xui-border-radius-md);height:30px}.xUi-input-large .xUi-input-clear,.xUi-input-middle .xUi-input,.xUi-input-middle .xUi-input::placeholder{font-size:var(--xui-font-size-md)}.xUi-input-large{border-radius:var(--xui-border-radius-lg);height:44px}.xUi-input-large .xUi-input,.xUi-input-large .xUi-input-clear,.xUi-input-large .xUi-input::placeholder{font-size:var(--xui-font-size-lg)}";
3849
3849
  styleInject(css_248z$f);
3850
3850
 
3851
- const InputComponent = ({
3851
+ const InputComponent = /*#__PURE__*/React.forwardRef(({
3852
3852
  size = 'large',
3853
3853
  error,
3854
3854
  suffix,
@@ -3876,9 +3876,8 @@ const InputComponent = ({
3876
3876
  defaultValue,
3877
3877
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
3878
3878
  child,
3879
- ref,
3880
3879
  ...props
3881
- }) => {
3880
+ }, ref) => {
3882
3881
  const inputRef = useRef(null);
3883
3882
  const lastKeyPressed = useRef(null);
3884
3883
  const internalValue = mask ? applyMask(stripMask(`${value ?? ''}`, mask, maskChar), mask, maskChar).masked : value ?? '';
@@ -3886,18 +3885,20 @@ const InputComponent = ({
3886
3885
  const [iconRenderVisible, setIconRenderVisible] = useState(false);
3887
3886
  const animationRef = useRef(null);
3888
3887
  useImperativeHandle(ref, () => ({
3889
- retry: () => ({
3890
- focus: () => inputRef.current?.focus(),
3891
- blur: () => inputRef.current?.blur(),
3892
- input: inputRef.current,
3893
- nativeElement: inputRef.current,
3894
- setSelectionRange: (start, end) => {
3895
- if (inputRef.current) {
3896
- inputRef.current.setSelectionRange(start, end);
3897
- }
3888
+ focus: () => {
3889
+ inputRef.current?.focus();
3890
+ },
3891
+ input: inputRef.current,
3892
+ blur: () => {
3893
+ inputRef.current?.blur();
3894
+ },
3895
+ nativeElement: inputRef.current,
3896
+ setSelectionRange: (start, end) => {
3897
+ if (inputRef.current) {
3898
+ inputRef.current.setSelectionRange(start, end);
3898
3899
  }
3899
- })
3900
- }));
3900
+ }
3901
+ }), []);
3901
3902
  useEffect(() => {
3902
3903
  setMaskValue(mask ? applyMask(stripMask(`${value ?? ''}`, mask, maskChar), mask, maskChar).masked : value ?? '');
3903
3904
  }, [value, mask, maskChar]);
@@ -3989,7 +3990,7 @@ const InputComponent = ({
3989
3990
  } : {}), suffix || iconRender?.(iconRenderVisible), error && feedbackIcons ? /*#__PURE__*/React.createElement(ErrorIcon, null) : null)), addonAfter ? /*#__PURE__*/React.createElement("span", {
3990
3991
  className: `${prefixCls}-addon ${prefixCls}-after ${prefixClsV3}-addon ${prefixClsV3}-after`
3991
3992
  }, addonAfter) : null);
3992
- };
3993
+ });
3993
3994
  InputComponent.displayName = 'Input';
3994
3995
  const Input$1 = InputComponent;
3995
3996
  Input$1.TextArea = Textarea;