@react-fabric/form 1.0.0-beta.55 → 1.0.0-beta.56
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/dist/cjs/builder/FileField.js +2 -2
- package/dist/cjs/input/AvatarInput.js +17 -13
- package/dist/cjs/input/ColorInput.js +5 -3
- package/dist/cjs/input/DateInput.js +6 -4
- package/dist/cjs/input/Input.js +6 -4
- package/dist/cjs/input/Number.js +6 -4
- package/dist/cjs/input/Password.js +6 -4
- package/dist/cjs/input/Search.js +6 -4
- package/dist/cjs/input/Textarea.js +6 -4
- package/dist/cjs/select/AutoComplete.js +1 -2
- package/dist/esm/builder/FileField.js +3 -3
- package/dist/esm/input/AvatarInput.js +18 -14
- package/dist/esm/input/ColorInput.js +5 -3
- package/dist/esm/input/DateInput.js +6 -4
- package/dist/esm/input/Input.js +6 -4
- package/dist/esm/input/Number.js +6 -4
- package/dist/esm/input/Password.js +6 -4
- package/dist/esm/input/Search.js +6 -4
- package/dist/esm/input/Textarea.js +6 -4
- package/dist/esm/select/AutoComplete.js +1 -2
- package/dist/types/input/AvatarInput.d.ts +5 -1
- package/dist/types/input/DateInput.d.ts +1 -1
- package/dist/types/input/Input.d.ts +1 -1
- package/dist/types/input/Number.d.ts +1 -1
- package/dist/types/input/Password.d.ts +1 -1
- package/dist/types/input/RangeSlider.d.ts +1 -1
- package/dist/types/input/Search.d.ts +1 -1
- package/dist/types/input/Slider.d.ts +1 -1
- package/dist/types/input/Textarea.d.ts +1 -1
- package/dist/types/types/index.d.ts +4 -0
- package/package.json +2 -2
- package/src/builder/FileField.tsx +9 -3
- package/src/input/AvatarInput.tsx +19 -10
- package/src/input/ColorInput.tsx +5 -3
- package/src/input/DateInput.tsx +4 -3
- package/src/input/Input.tsx +4 -3
- package/src/input/Number.tsx +4 -3
- package/src/input/Password.tsx +4 -3
- package/src/input/RangeSlider.tsx +1 -1
- package/src/input/Search.tsx +4 -3
- package/src/input/Slider.tsx +4 -1
- package/src/input/Textarea.tsx +4 -3
- package/src/select/AutoComplete.tsx +1 -1
- package/src/types/index.ts +4 -0
package/dist/esm/input/Number.js
CHANGED
|
@@ -9,7 +9,7 @@ import { useHandleEnter } from '../utils/eventHandlers.js';
|
|
|
9
9
|
import '@react-fabric/utilities';
|
|
10
10
|
import { jsx } from 'react/jsx-runtime';
|
|
11
11
|
|
|
12
|
-
var _excluded = ["ref", "value", "invalid", "readOnly", "disabled", "required", "placeholder", "autoFocus", "name", "min", "max", "step", "onBlur", "onFocus", "onChange", "onEnterPressed"];
|
|
12
|
+
var _excluded = ["ref", "value", "invalid", "readOnly", "disabled", "required", "placeholder", "defaultValue", "autoFocus", "name", "min", "max", "step", "onBlur", "onFocus", "onChange", "onEnterPressed"];
|
|
13
13
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
14
14
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
15
15
|
/**
|
|
@@ -28,6 +28,7 @@ var Number = function Number(_ref) {
|
|
|
28
28
|
disabled = _ref.disabled,
|
|
29
29
|
required = _ref.required,
|
|
30
30
|
placeholder = _ref.placeholder,
|
|
31
|
+
defaultValue = _ref.defaultValue,
|
|
31
32
|
autoFocus = _ref.autoFocus,
|
|
32
33
|
name = _ref.name,
|
|
33
34
|
min = _ref.min,
|
|
@@ -42,16 +43,17 @@ var Number = function Number(_ref) {
|
|
|
42
43
|
_useState2 = _slicedToArray(_useState, 2),
|
|
43
44
|
actualValue = _useState2[0],
|
|
44
45
|
setActualValue = _useState2[1];
|
|
45
|
-
var deferred = useDeferredValue(value);
|
|
46
|
+
var deferred = useDeferredValue(value !== null && value !== void 0 ? value : defaultValue);
|
|
46
47
|
var handleEnterPressed = useHandleEnter(onEnterPressed);
|
|
47
48
|
useEffect(function () {
|
|
48
49
|
setActualValue(deferred !== null && deferred !== void 0 ? deferred : "");
|
|
49
50
|
}, [deferred]);
|
|
50
51
|
var handleChange = useCallback(function (e) {
|
|
51
|
-
var
|
|
52
|
+
var _e$target$valueAsNumb;
|
|
53
|
+
var number = (_e$target$valueAsNumb = e === null || e === void 0 ? void 0 : e.target.valueAsNumber) !== null && _e$target$valueAsNumb !== void 0 ? _e$target$valueAsNumb : defaultValue;
|
|
52
54
|
setActualValue(number !== null && number !== void 0 ? number : "");
|
|
53
55
|
onChange === null || onChange === void 0 || onChange(number !== null && number !== void 0 ? number : null);
|
|
54
|
-
}, [onChange]);
|
|
56
|
+
}, [onChange, defaultValue]);
|
|
55
57
|
return /*#__PURE__*/jsx(InputWrapper, _objectSpread(_objectSpread({
|
|
56
58
|
showClear: !!actualValue && !disabled && !readOnly,
|
|
57
59
|
onClear: handleChange,
|
|
@@ -12,7 +12,7 @@ import { useHandleEnter } from '../utils/eventHandlers.js';
|
|
|
12
12
|
import '@react-fabric/utilities';
|
|
13
13
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
14
14
|
|
|
15
|
-
var _excluded = ["ref", "value", "name", "strength", "invalid", "readOnly", "disabled", "required", "placeholder", "autoFocus", "showToggle", "onBlur", "onFocus", "onChange", "onEnterPressed"];
|
|
15
|
+
var _excluded = ["ref", "value", "name", "strength", "invalid", "readOnly", "disabled", "required", "placeholder", "defaultValue", "autoFocus", "showToggle", "onBlur", "onFocus", "onChange", "onEnterPressed"];
|
|
16
16
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
17
17
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
18
18
|
/**
|
|
@@ -31,6 +31,7 @@ var Password = function Password(_ref) {
|
|
|
31
31
|
disabled = _ref.disabled,
|
|
32
32
|
required = _ref.required,
|
|
33
33
|
placeholder = _ref.placeholder,
|
|
34
|
+
defaultValue = _ref.defaultValue,
|
|
34
35
|
autoFocus = _ref.autoFocus,
|
|
35
36
|
showToggle = _ref.showToggle,
|
|
36
37
|
onBlur = _ref.onBlur,
|
|
@@ -48,16 +49,17 @@ var Password = function Password(_ref) {
|
|
|
48
49
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
49
50
|
actualValue = _useState4[0],
|
|
50
51
|
setActualValue = _useState4[1];
|
|
51
|
-
var deferred = useDeferredValue(value);
|
|
52
|
+
var deferred = useDeferredValue(value !== null && value !== void 0 ? value : defaultValue);
|
|
52
53
|
var handleEnterPressed = useHandleEnter(onEnterPressed);
|
|
53
54
|
useEffect(function () {
|
|
54
55
|
setActualValue(deferred !== null && deferred !== void 0 ? deferred : "");
|
|
55
56
|
}, [deferred]);
|
|
56
57
|
var handleChange = useCallback(function (e) {
|
|
57
|
-
var
|
|
58
|
+
var _e$target$value;
|
|
59
|
+
var value = (_e$target$value = e === null || e === void 0 ? void 0 : e.target.value) !== null && _e$target$value !== void 0 ? _e$target$value : defaultValue;
|
|
58
60
|
setActualValue(value !== null && value !== void 0 ? value : "");
|
|
59
61
|
onChange === null || onChange === void 0 || onChange(value !== null && value !== void 0 ? value : null);
|
|
60
|
-
}, [onChange]);
|
|
62
|
+
}, [onChange, defaultValue]);
|
|
61
63
|
return /*#__PURE__*/jsxs(InputWrapper, _objectSpread(_objectSpread({
|
|
62
64
|
showClear: !!actualValue && !disabled && !readOnly,
|
|
63
65
|
onClear: handleChange,
|
package/dist/esm/input/Search.js
CHANGED
|
@@ -10,7 +10,7 @@ import { useHandleEnter } from '../utils/eventHandlers.js';
|
|
|
10
10
|
import '@react-fabric/utilities';
|
|
11
11
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
12
12
|
|
|
13
|
-
var _excluded = ["ref", "value", "name", "invalid", "readOnly", "disabled", "required", "searching", "placeholder", "autoFocus", "hideHandle", "allowClear", "searchOnChange", "onBlur", "onFocus", "onSearch", "onChange", "onEnterPressed"];
|
|
13
|
+
var _excluded = ["ref", "value", "name", "invalid", "readOnly", "disabled", "required", "searching", "placeholder", "defaultValue", "autoFocus", "hideHandle", "allowClear", "searchOnChange", "onBlur", "onFocus", "onSearch", "onChange", "onEnterPressed"];
|
|
14
14
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
15
15
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
16
16
|
/**
|
|
@@ -32,6 +32,7 @@ var Search = function Search(_ref) {
|
|
|
32
32
|
required = _ref.required,
|
|
33
33
|
searching = _ref.searching,
|
|
34
34
|
placeholder = _ref.placeholder,
|
|
35
|
+
defaultValue = _ref.defaultValue,
|
|
35
36
|
autoFocus = _ref.autoFocus,
|
|
36
37
|
hideHandle = _ref.hideHandle,
|
|
37
38
|
_ref$allowClear = _ref.allowClear,
|
|
@@ -48,7 +49,7 @@ var Search = function Search(_ref) {
|
|
|
48
49
|
_useState2 = _slicedToArray(_useState, 2),
|
|
49
50
|
actualValue = _useState2[0],
|
|
50
51
|
setActualValue = _useState2[1];
|
|
51
|
-
var deferred = useDeferredValue(value);
|
|
52
|
+
var deferred = useDeferredValue(value !== null && value !== void 0 ? value : defaultValue);
|
|
52
53
|
var refValue = useRef("");
|
|
53
54
|
var handleSearch = useDebounce(function () {
|
|
54
55
|
return onSearch === null || onSearch === void 0 ? void 0 : onSearch(refValue.current);
|
|
@@ -58,7 +59,8 @@ var Search = function Search(_ref) {
|
|
|
58
59
|
setActualValue(deferred !== null && deferred !== void 0 ? deferred : "");
|
|
59
60
|
}, [deferred]);
|
|
60
61
|
var handleChange = useCallback(function (e) {
|
|
61
|
-
var
|
|
62
|
+
var _e$target$value;
|
|
63
|
+
var value = (_e$target$value = e === null || e === void 0 ? void 0 : e.target.value) !== null && _e$target$value !== void 0 ? _e$target$value : defaultValue;
|
|
62
64
|
refValue.current = value !== null && value !== void 0 ? value : "";
|
|
63
65
|
setActualValue(value !== null && value !== void 0 ? value : "");
|
|
64
66
|
onChange === null || onChange === void 0 || onChange(value !== null && value !== void 0 ? value : null);
|
|
@@ -67,7 +69,7 @@ var Search = function Search(_ref) {
|
|
|
67
69
|
if (!e || searchOnChange) {
|
|
68
70
|
handleSearch();
|
|
69
71
|
}
|
|
70
|
-
}, [onChange, searchOnChange, handleSearch]);
|
|
72
|
+
}, [onChange, searchOnChange, handleSearch, defaultValue]);
|
|
71
73
|
return /*#__PURE__*/jsx(InputWrapper, _objectSpread(_objectSpread({
|
|
72
74
|
showClear: !!actualValue && !disabled && !readOnly,
|
|
73
75
|
onClear: handleChange,
|
|
@@ -9,7 +9,7 @@ import { useHandleEnter } from '../utils/eventHandlers.js';
|
|
|
9
9
|
import '@react-fabric/utilities';
|
|
10
10
|
import { jsx } from 'react/jsx-runtime';
|
|
11
11
|
|
|
12
|
-
var _excluded = ["ref", "value", "name", "invalid", "readOnly", "disabled", "required", "placeholder", "autoFocus", "rows", "maxRows", "variableRows", "expandable", "onBlur", "onFocus", "onChange", "onEnterPressed"];
|
|
12
|
+
var _excluded = ["ref", "value", "name", "invalid", "readOnly", "disabled", "required", "placeholder", "defaultValue", "autoFocus", "rows", "maxRows", "variableRows", "expandable", "onBlur", "onFocus", "onChange", "onEnterPressed"];
|
|
13
13
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
14
14
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
15
15
|
/**
|
|
@@ -31,6 +31,7 @@ var Textarea = function Textarea(_ref) {
|
|
|
31
31
|
disabled = _ref.disabled,
|
|
32
32
|
required = _ref.required,
|
|
33
33
|
placeholder = _ref.placeholder,
|
|
34
|
+
defaultValue = _ref.defaultValue,
|
|
34
35
|
autoFocus = _ref.autoFocus,
|
|
35
36
|
_ref$rows = _ref.rows,
|
|
36
37
|
rows = _ref$rows === void 0 ? 5 : _ref$rows,
|
|
@@ -51,16 +52,17 @@ var Textarea = function Textarea(_ref) {
|
|
|
51
52
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
52
53
|
fixedRows = _useState4[0],
|
|
53
54
|
setFixedRows = _useState4[1];
|
|
54
|
-
var deferred = useDeferredValue(value);
|
|
55
|
+
var deferred = useDeferredValue(value !== null && value !== void 0 ? value : defaultValue);
|
|
55
56
|
var wrapperRef = useRef(null);
|
|
56
57
|
useEffect(function () {
|
|
57
58
|
setActualValue(deferred !== null && deferred !== void 0 ? deferred : "");
|
|
58
59
|
}, [deferred]);
|
|
59
60
|
var handleChange = useCallback(function (e) {
|
|
60
|
-
var
|
|
61
|
+
var _e$target$value;
|
|
62
|
+
var value = (_e$target$value = e === null || e === void 0 ? void 0 : e.target.value) !== null && _e$target$value !== void 0 ? _e$target$value : defaultValue;
|
|
61
63
|
setActualValue(value !== null && value !== void 0 ? value : "");
|
|
62
64
|
onChange === null || onChange === void 0 || onChange(value !== null && value !== void 0 ? value : null);
|
|
63
|
-
}, [onChange]);
|
|
65
|
+
}, [onChange, defaultValue]);
|
|
64
66
|
useEffect(function () {
|
|
65
67
|
if (variableRows) {
|
|
66
68
|
var _actualValue$split$le;
|
|
@@ -141,9 +141,8 @@ var AutoComplete = function AutoComplete(_ref) {
|
|
|
141
141
|
handleChange("");
|
|
142
142
|
return false;
|
|
143
143
|
} else {
|
|
144
|
-
var _submitRef$current;
|
|
145
144
|
onEnterPressed === null || onEnterPressed === void 0 || onEnterPressed(evt);
|
|
146
|
-
(
|
|
145
|
+
setOpen(false);
|
|
147
146
|
}
|
|
148
147
|
} else if (evt.key === "Backspace") {
|
|
149
148
|
!state.query && multiple && handleRemove();
|
|
@@ -9,6 +9,10 @@ export interface Props extends RefProp {
|
|
|
9
9
|
* actual avatar storage path
|
|
10
10
|
*/
|
|
11
11
|
value?: string;
|
|
12
|
+
/**
|
|
13
|
+
* default avatar image
|
|
14
|
+
*/
|
|
15
|
+
defaultValue?: string;
|
|
12
16
|
/**
|
|
13
17
|
* avatar name
|
|
14
18
|
*/
|
|
@@ -39,4 +43,4 @@ export interface Props extends RefProp {
|
|
|
39
43
|
* @param {Props} props - The properties for the AvatarInput component.
|
|
40
44
|
* @returns {JSX.Element} - The rendered AvatarInput component.
|
|
41
45
|
*/
|
|
42
|
-
export declare const AvatarInput: ({ size, avatarName, value, fileUrl, uploadHandler, ...rest }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
46
|
+
export declare const AvatarInput: ({ size, avatarName, value, defaultValue, fileUrl, uploadHandler, ...rest }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -25,4 +25,4 @@ export interface DateProps extends InputProps<string>, RefProp<HTMLInputElement>
|
|
|
25
25
|
* @param {DateProps} props - The properties for the DateInput component.
|
|
26
26
|
* @returns {JSX.Element} - The rendered DateInput component.
|
|
27
27
|
*/
|
|
28
|
-
export declare const DateInput: ({ ref, name, value, invalid, readOnly, disabled, required, placeholder, autoFocus, error, type, onBlur, onFocus, onChange, onEnterPressed, format, min, max, ...rest }: DateProps) => import("react/jsx-runtime").JSX.Element;
|
|
28
|
+
export declare const DateInput: ({ ref, name, value, invalid, readOnly, disabled, required, placeholder, defaultValue, autoFocus, error, type, onBlur, onFocus, onChange, onEnterPressed, format, min, max, ...rest }: DateProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -14,4 +14,4 @@ export interface TextInputProps extends InputProps, RefProp<HTMLInputElement> {
|
|
|
14
14
|
* @param {TextInputProps} props - The properties for the text input component.
|
|
15
15
|
* @returns {JSX.Element} - A JSX element representing the text input field.
|
|
16
16
|
*/
|
|
17
|
-
export declare const Input: ({ ref, name, value, invalid, readOnly, disabled, required, placeholder, autoFocus, error, monospace, type, onBlur, onFocus, onChange, onEnterPressed, ...rest }: TextInputProps) => import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export declare const Input: ({ ref, name, value, invalid, readOnly, disabled, required, placeholder, defaultValue, autoFocus, error, monospace, type, onBlur, onFocus, onChange, onEnterPressed, ...rest }: TextInputProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -22,4 +22,4 @@ export interface NumberProps extends InputProps<number>, RefProp<HTMLInputElemen
|
|
|
22
22
|
* @param {NumberProps} props - The properties for the Number input component.
|
|
23
23
|
* @returns {JSX.Element} The rendered Number input component.
|
|
24
24
|
*/
|
|
25
|
-
export declare const Number: ({ ref, value, invalid, readOnly, disabled, required, placeholder, autoFocus, name, min, max, step, onBlur, onFocus, onChange, onEnterPressed, ...rest }: NumberProps) => import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
export declare const Number: ({ ref, value, invalid, readOnly, disabled, required, placeholder, defaultValue, autoFocus, name, min, max, step, onBlur, onFocus, onChange, onEnterPressed, ...rest }: NumberProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -16,4 +16,4 @@ export interface PasswordProps extends InputProps, RefProp<HTMLInputElement> {
|
|
|
16
16
|
* @param {PasswordProps} props - The properties for the Password component.
|
|
17
17
|
* @returns {JSX.Element} The rendered Password input component.
|
|
18
18
|
*/
|
|
19
|
-
export declare const Password: ({ ref, value, name, strength, invalid, readOnly, disabled, required, placeholder, autoFocus, showToggle, onBlur, onFocus, onChange, onEnterPressed, ...rest }: PasswordProps) => import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
export declare const Password: ({ ref, value, name, strength, invalid, readOnly, disabled, required, placeholder, defaultValue, autoFocus, showToggle, onBlur, onFocus, onChange, onEnterPressed, ...rest }: PasswordProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type InputProps } from "../types";
|
|
2
|
-
export interface RangeProps extends Omit<InputProps<[number, number]>, "placeholder" | "allowClear" | "children"> {
|
|
2
|
+
export interface RangeProps extends Omit<InputProps<[number, number]>, "placeholder" | "allowClear" | "children" | "defaultValue"> {
|
|
3
3
|
/**
|
|
4
4
|
* min value
|
|
5
5
|
*/
|
|
@@ -27,4 +27,4 @@ export interface SearchProps extends InputProps, RefProp<HTMLInputElement> {
|
|
|
27
27
|
* @param {SearchProps} props - The properties for the Search component.
|
|
28
28
|
* @returns {JSX.Element} The rendered Search input component.
|
|
29
29
|
*/
|
|
30
|
-
export declare const Search: ({ ref, value, name, invalid, readOnly, disabled, required, searching, placeholder, autoFocus, hideHandle, allowClear, searchOnChange, onBlur, onFocus, onSearch, onChange, onEnterPressed, ...rest }: SearchProps) => import("react/jsx-runtime").JSX.Element;
|
|
30
|
+
export declare const Search: ({ ref, value, name, invalid, readOnly, disabled, required, searching, placeholder, defaultValue, autoFocus, hideHandle, allowClear, searchOnChange, onBlur, onFocus, onSearch, onChange, onEnterPressed, ...rest }: SearchProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type InputProps } from "../types";
|
|
2
|
-
export interface SliderProps extends Omit<InputProps<number>, "placeholder" | "allowClear" | "children"> {
|
|
2
|
+
export interface SliderProps extends Omit<InputProps<number>, "placeholder" | "allowClear" | "children" | "defaultValue"> {
|
|
3
3
|
/**
|
|
4
4
|
* min value
|
|
5
5
|
*/
|
|
@@ -28,4 +28,4 @@ export interface TextareaProps extends InputProps, RefProp<HTMLTextAreaElement>
|
|
|
28
28
|
* @param {TextareaProps} props - The properties for the Textarea component.
|
|
29
29
|
* @returns {JSX.Element} The rendered Textarea component.
|
|
30
30
|
*/
|
|
31
|
-
export declare const Textarea: ({ ref, value, name, invalid, readOnly, disabled, required, placeholder, autoFocus, rows, maxRows, variableRows, expandable, onBlur, onFocus, onChange, onEnterPressed, ...rest }: TextareaProps) => import("react/jsx-runtime").JSX.Element;
|
|
31
|
+
export declare const Textarea: ({ ref, value, name, invalid, readOnly, disabled, required, placeholder, defaultValue, autoFocus, rows, maxRows, variableRows, expandable, onBlur, onFocus, onChange, onEnterPressed, ...rest }: TextareaProps) => import("react/jsx-runtime").JSX.Element;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-fabric/form",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.56",
|
|
4
4
|
"description": "RUF: Form package",
|
|
5
5
|
"author": "Adarsh Pastakia <adarshpastakia@outlook.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -63,5 +63,5 @@
|
|
|
63
63
|
"node": ">=18.12.0",
|
|
64
64
|
"npm": ">=8.19.0"
|
|
65
65
|
},
|
|
66
|
-
"gitHead": "
|
|
66
|
+
"gitHead": "fd9dd6cfd1a58efb5c4bfb6446928a78cb4f4266"
|
|
67
67
|
}
|
|
@@ -21,7 +21,13 @@
|
|
|
21
21
|
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
|
-
import {
|
|
24
|
+
import {
|
|
25
|
+
Button,
|
|
26
|
+
CoreIcons,
|
|
27
|
+
Icon,
|
|
28
|
+
ProgressBar,
|
|
29
|
+
Tooltip,
|
|
30
|
+
} from "@react-fabric/core";
|
|
25
31
|
import { FileUtil, Format, isString } from "@react-fabric/utilities";
|
|
26
32
|
import { Fragment } from "react";
|
|
27
33
|
import { useTranslation } from "react-i18next";
|
|
@@ -118,7 +124,7 @@ export const FileField = ({
|
|
|
118
124
|
</div>
|
|
119
125
|
{file.progress && (
|
|
120
126
|
<Icon
|
|
121
|
-
icon=
|
|
127
|
+
icon={CoreIcons.stop}
|
|
122
128
|
bg="danger"
|
|
123
129
|
color="white"
|
|
124
130
|
size="sm"
|
|
@@ -129,7 +135,7 @@ export const FileField = ({
|
|
|
129
135
|
)}
|
|
130
136
|
{!file.progress && (
|
|
131
137
|
<Icon
|
|
132
|
-
icon=
|
|
138
|
+
icon={CoreIcons.trash}
|
|
133
139
|
color="danger"
|
|
134
140
|
size="sm"
|
|
135
141
|
aria-label="remove"
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
|
-
import { Avatar, Icon, ProgressBar } from "@react-fabric/core";
|
|
24
|
+
import { Avatar, CoreIcons, Icon, ProgressBar } from "@react-fabric/core";
|
|
25
25
|
import { type RefProp } from "@react-fabric/core/dist/types/types";
|
|
26
26
|
import { useEffect, useState } from "react";
|
|
27
27
|
import { useFileUploader, type UploadHandler } from "../hooks/useFileUploader";
|
|
@@ -36,6 +36,10 @@ export interface Props extends RefProp {
|
|
|
36
36
|
* actual avatar storage path
|
|
37
37
|
*/
|
|
38
38
|
value?: string;
|
|
39
|
+
/**
|
|
40
|
+
* default avatar image
|
|
41
|
+
*/
|
|
42
|
+
defaultValue?: string;
|
|
39
43
|
/**
|
|
40
44
|
* avatar name
|
|
41
45
|
*/
|
|
@@ -71,6 +75,7 @@ export const AvatarInput = ({
|
|
|
71
75
|
size = "6rem",
|
|
72
76
|
avatarName,
|
|
73
77
|
value,
|
|
78
|
+
defaultValue,
|
|
74
79
|
fileUrl,
|
|
75
80
|
uploadHandler,
|
|
76
81
|
...rest
|
|
@@ -99,16 +104,19 @@ export const AvatarInput = ({
|
|
|
99
104
|
})
|
|
100
105
|
);
|
|
101
106
|
} else {
|
|
102
|
-
setBase64("");
|
|
107
|
+
setBase64(fileUrl?.(defaultValue ?? "") ?? defaultValue ?? "");
|
|
103
108
|
}
|
|
104
|
-
}, [files, list]);
|
|
109
|
+
}, [files, list, defaultValue]);
|
|
105
110
|
|
|
106
111
|
useEffect(() => {
|
|
112
|
+
!value &&
|
|
113
|
+
defaultValue &&
|
|
114
|
+
setBase64(fileUrl?.(defaultValue) ?? defaultValue);
|
|
107
115
|
value && setBase64(fileUrl?.(value) ?? value);
|
|
108
|
-
}, [value]);
|
|
116
|
+
}, [value, defaultValue]);
|
|
109
117
|
|
|
110
118
|
return (
|
|
111
|
-
<div className="flex flex-nowrap items-end">
|
|
119
|
+
<div className="flex flex-nowrap items-end overflow-hidden">
|
|
112
120
|
<div className="inline-block leading-none rounded-full relative outline overflow-hidden">
|
|
113
121
|
<Avatar name={avatarName ?? "temp"} size={size} avatar={base64} />
|
|
114
122
|
<div className="absolute inset-x-0 bottom-0 cursor-pointer bg-black/20 hover:bg-black/50 text-white text-xs text-center py-1">
|
|
@@ -121,9 +129,9 @@ export const AvatarInput = ({
|
|
|
121
129
|
/>
|
|
122
130
|
</div>
|
|
123
131
|
</div>
|
|
124
|
-
<HiddenInput hiddenValue={list?.[0]?.path} {...rest} />
|
|
132
|
+
<HiddenInput hiddenValue={list?.[0]?.path ?? defaultValue} {...rest} />
|
|
125
133
|
{files.map((file, idx) => (
|
|
126
|
-
<div key={idx} className="px-2 py-1 flex-1">
|
|
134
|
+
<div key={idx} className="px-2 py-1 flex-1 overflow-hidden">
|
|
127
135
|
<div className="flex flex-nowrap gap-1 items-center">
|
|
128
136
|
<div className="flex-initial truncate pe-2">{file.filename}</div>
|
|
129
137
|
{file.error && (
|
|
@@ -133,20 +141,21 @@ export const AvatarInput = ({
|
|
|
133
141
|
)}
|
|
134
142
|
{file.progress && (
|
|
135
143
|
<Icon
|
|
136
|
-
icon=
|
|
144
|
+
icon={CoreIcons.stop}
|
|
137
145
|
bg="danger"
|
|
138
146
|
color="white"
|
|
139
147
|
size="sm"
|
|
140
|
-
className="p-[2px]"
|
|
148
|
+
className="p-[2px] flex-content"
|
|
141
149
|
aria-label="abort"
|
|
142
150
|
onClick={() => file.abort?.()}
|
|
143
151
|
/>
|
|
144
152
|
)}
|
|
145
153
|
{!file.progress && (
|
|
146
154
|
<Icon
|
|
147
|
-
icon=
|
|
155
|
+
icon={CoreIcons.trash}
|
|
148
156
|
color="danger"
|
|
149
157
|
size="sm"
|
|
158
|
+
className="flex-content"
|
|
150
159
|
aria-label="remove"
|
|
151
160
|
onClick={() => remove(file.key)}
|
|
152
161
|
/>
|
package/src/input/ColorInput.tsx
CHANGED
|
@@ -96,10 +96,11 @@ export const ColorInput = ({
|
|
|
96
96
|
|
|
97
97
|
const handleChange = useCallback(
|
|
98
98
|
(e?: string) => {
|
|
99
|
-
|
|
100
|
-
|
|
99
|
+
const value = e ?? defaultColor;
|
|
100
|
+
setActualValue(value);
|
|
101
|
+
onChange != null && startTransition(() => onChange(value ?? null));
|
|
101
102
|
},
|
|
102
|
-
[onChange],
|
|
103
|
+
[onChange, defaultColor],
|
|
103
104
|
);
|
|
104
105
|
|
|
105
106
|
const arrowRef = useRef(null);
|
|
@@ -200,6 +201,7 @@ export const ColorInput = ({
|
|
|
200
201
|
)}
|
|
201
202
|
{!disabled && showPicker && (
|
|
202
203
|
<Icon
|
|
204
|
+
className="flex-content p-1"
|
|
203
205
|
icon={CoreIcons.colorPicker}
|
|
204
206
|
onClick={() =>
|
|
205
207
|
(window as AnyObject).EyeDropper &&
|
package/src/input/DateInput.tsx
CHANGED
|
@@ -88,6 +88,7 @@ export const DateInput = ({
|
|
|
88
88
|
disabled,
|
|
89
89
|
required,
|
|
90
90
|
placeholder,
|
|
91
|
+
defaultValue,
|
|
91
92
|
autoFocus,
|
|
92
93
|
error,
|
|
93
94
|
type = "date",
|
|
@@ -102,7 +103,7 @@ export const DateInput = ({
|
|
|
102
103
|
}: DateProps) => {
|
|
103
104
|
const [actualValue, setActualValue] = useState("");
|
|
104
105
|
const [inputValue, setInputValue] = useState("");
|
|
105
|
-
const deferred = useDeferredValue(value);
|
|
106
|
+
const deferred = useDeferredValue(value ?? defaultValue);
|
|
106
107
|
|
|
107
108
|
const inputFormat = useMemo(
|
|
108
109
|
() => (type === "datetime" ? "yyyy-MM-dd HH:mm" : "yyyy-MM-dd"),
|
|
@@ -118,7 +119,7 @@ export const DateInput = ({
|
|
|
118
119
|
|
|
119
120
|
const handleChange = useCallback(
|
|
120
121
|
(e?: ChangeEvent<HTMLInputElement>) => {
|
|
121
|
-
const value = e?.currentTarget.value;
|
|
122
|
+
const value = e?.currentTarget.value ?? defaultValue;
|
|
122
123
|
if (value) {
|
|
123
124
|
const parsed = DateUtil.parseDate(value);
|
|
124
125
|
setActualValue(parsed?.toISOString?.());
|
|
@@ -131,7 +132,7 @@ export const DateInput = ({
|
|
|
131
132
|
onChange != null && startTransition(() => onChange(null));
|
|
132
133
|
}
|
|
133
134
|
},
|
|
134
|
-
[onChange, inputFormat],
|
|
135
|
+
[onChange, inputFormat, defaultValue],
|
|
135
136
|
);
|
|
136
137
|
|
|
137
138
|
const handleDateChange = useCallback(
|
package/src/input/Input.tsx
CHANGED
|
@@ -58,6 +58,7 @@ export const Input = ({
|
|
|
58
58
|
disabled,
|
|
59
59
|
required,
|
|
60
60
|
placeholder,
|
|
61
|
+
defaultValue,
|
|
61
62
|
autoFocus,
|
|
62
63
|
error,
|
|
63
64
|
monospace,
|
|
@@ -69,7 +70,7 @@ export const Input = ({
|
|
|
69
70
|
...rest
|
|
70
71
|
}: TextInputProps) => {
|
|
71
72
|
const [actualValue, setActualValue] = useState("");
|
|
72
|
-
const deferred = useDeferredValue(value);
|
|
73
|
+
const deferred = useDeferredValue(value ?? defaultValue);
|
|
73
74
|
|
|
74
75
|
const handleEnterPressed = useHandleEnter(onEnterPressed);
|
|
75
76
|
|
|
@@ -79,11 +80,11 @@ export const Input = ({
|
|
|
79
80
|
|
|
80
81
|
const handleChange = useCallback(
|
|
81
82
|
(e?: ChangeEvent<HTMLInputElement>) => {
|
|
82
|
-
const value = e?.target.value;
|
|
83
|
+
const value = e?.target.value ?? defaultValue;
|
|
83
84
|
setActualValue(value ?? "");
|
|
84
85
|
onChange?.(value ?? null);
|
|
85
86
|
},
|
|
86
|
-
[
|
|
87
|
+
[onChange, defaultValue],
|
|
87
88
|
);
|
|
88
89
|
|
|
89
90
|
return (
|
package/src/input/Number.tsx
CHANGED
|
@@ -66,6 +66,7 @@ export const Number = ({
|
|
|
66
66
|
disabled,
|
|
67
67
|
required,
|
|
68
68
|
placeholder,
|
|
69
|
+
defaultValue,
|
|
69
70
|
autoFocus,
|
|
70
71
|
name,
|
|
71
72
|
min,
|
|
@@ -78,7 +79,7 @@ export const Number = ({
|
|
|
78
79
|
...rest
|
|
79
80
|
}: NumberProps) => {
|
|
80
81
|
const [actualValue, setActualValue] = useState<"" | number>("");
|
|
81
|
-
const deferred = useDeferredValue(value);
|
|
82
|
+
const deferred = useDeferredValue(value ?? defaultValue);
|
|
82
83
|
|
|
83
84
|
const handleEnterPressed = useHandleEnter(onEnterPressed);
|
|
84
85
|
|
|
@@ -88,11 +89,11 @@ export const Number = ({
|
|
|
88
89
|
|
|
89
90
|
const handleChange = useCallback(
|
|
90
91
|
(e?: ChangeEvent<HTMLInputElement>) => {
|
|
91
|
-
const number = e?.target.valueAsNumber;
|
|
92
|
+
const number = e?.target.valueAsNumber ?? defaultValue;
|
|
92
93
|
setActualValue(number ?? "");
|
|
93
94
|
onChange?.(number ?? null);
|
|
94
95
|
},
|
|
95
|
-
[onChange],
|
|
96
|
+
[onChange, defaultValue],
|
|
96
97
|
);
|
|
97
98
|
|
|
98
99
|
return (
|
package/src/input/Password.tsx
CHANGED
|
@@ -63,6 +63,7 @@ export const Password = ({
|
|
|
63
63
|
disabled,
|
|
64
64
|
required,
|
|
65
65
|
placeholder,
|
|
66
|
+
defaultValue,
|
|
66
67
|
autoFocus,
|
|
67
68
|
showToggle,
|
|
68
69
|
onBlur,
|
|
@@ -75,7 +76,7 @@ export const Password = ({
|
|
|
75
76
|
const [show, setShow] = useState(false);
|
|
76
77
|
|
|
77
78
|
const [actualValue, setActualValue] = useState("");
|
|
78
|
-
const deferred = useDeferredValue(value);
|
|
79
|
+
const deferred = useDeferredValue(value ?? defaultValue);
|
|
79
80
|
|
|
80
81
|
const handleEnterPressed = useHandleEnter(onEnterPressed);
|
|
81
82
|
|
|
@@ -85,11 +86,11 @@ export const Password = ({
|
|
|
85
86
|
|
|
86
87
|
const handleChange = useCallback(
|
|
87
88
|
(e?: ChangeEvent<HTMLInputElement>) => {
|
|
88
|
-
const value = e?.target.value;
|
|
89
|
+
const value = e?.target.value ?? defaultValue;
|
|
89
90
|
setActualValue(value ?? "");
|
|
90
91
|
onChange?.(value ?? null);
|
|
91
92
|
},
|
|
92
|
-
[onChange],
|
|
93
|
+
[onChange, defaultValue],
|
|
93
94
|
);
|
|
94
95
|
|
|
95
96
|
return (
|
|
@@ -38,7 +38,7 @@ import { type InputProps } from "../types";
|
|
|
38
38
|
export interface RangeProps
|
|
39
39
|
extends Omit<
|
|
40
40
|
InputProps<[number, number]>,
|
|
41
|
-
"placeholder" | "allowClear" | "children"
|
|
41
|
+
"placeholder" | "allowClear" | "children" | "defaultValue"
|
|
42
42
|
> {
|
|
43
43
|
/**
|
|
44
44
|
* min value
|
package/src/input/Search.tsx
CHANGED
|
@@ -74,6 +74,7 @@ export const Search = ({
|
|
|
74
74
|
required,
|
|
75
75
|
searching,
|
|
76
76
|
placeholder,
|
|
77
|
+
defaultValue,
|
|
77
78
|
autoFocus,
|
|
78
79
|
hideHandle,
|
|
79
80
|
allowClear = true,
|
|
@@ -86,7 +87,7 @@ export const Search = ({
|
|
|
86
87
|
...rest
|
|
87
88
|
}: SearchProps) => {
|
|
88
89
|
const [actualValue, setActualValue] = useState("");
|
|
89
|
-
const deferred = useDeferredValue(value);
|
|
90
|
+
const deferred = useDeferredValue(value ?? defaultValue);
|
|
90
91
|
|
|
91
92
|
const refValue = useRef("");
|
|
92
93
|
const handleSearch = useDebounce(
|
|
@@ -103,7 +104,7 @@ export const Search = ({
|
|
|
103
104
|
|
|
104
105
|
const handleChange = useCallback(
|
|
105
106
|
(e?: ChangeEvent<HTMLInputElement>) => {
|
|
106
|
-
const value = e?.target.value;
|
|
107
|
+
const value = e?.target.value ?? defaultValue;
|
|
107
108
|
refValue.current = value ?? "";
|
|
108
109
|
setActualValue(value ?? "");
|
|
109
110
|
onChange?.(value ?? null);
|
|
@@ -113,7 +114,7 @@ export const Search = ({
|
|
|
113
114
|
handleSearch();
|
|
114
115
|
}
|
|
115
116
|
},
|
|
116
|
-
[onChange, searchOnChange, handleSearch],
|
|
117
|
+
[onChange, searchOnChange, handleSearch, defaultValue],
|
|
117
118
|
);
|
|
118
119
|
|
|
119
120
|
return (
|
package/src/input/Slider.tsx
CHANGED
|
@@ -36,7 +36,10 @@ import { useRanger } from "../ranger";
|
|
|
36
36
|
import { type InputProps } from "../types";
|
|
37
37
|
|
|
38
38
|
export interface SliderProps
|
|
39
|
-
extends Omit<
|
|
39
|
+
extends Omit<
|
|
40
|
+
InputProps<number>,
|
|
41
|
+
"placeholder" | "allowClear" | "children" | "defaultValue"
|
|
42
|
+
> {
|
|
40
43
|
/**
|
|
41
44
|
* min value
|
|
42
45
|
*/
|
package/src/input/Textarea.tsx
CHANGED
|
@@ -74,6 +74,7 @@ export const Textarea = ({
|
|
|
74
74
|
disabled,
|
|
75
75
|
required,
|
|
76
76
|
placeholder,
|
|
77
|
+
defaultValue,
|
|
77
78
|
autoFocus,
|
|
78
79
|
rows = 5,
|
|
79
80
|
maxRows = 12,
|
|
@@ -87,7 +88,7 @@ export const Textarea = ({
|
|
|
87
88
|
}: TextareaProps) => {
|
|
88
89
|
const [actualValue, setActualValue] = useState("");
|
|
89
90
|
const [fixedRows, setFixedRows] = useState(rows);
|
|
90
|
-
const deferred = useDeferredValue(value);
|
|
91
|
+
const deferred = useDeferredValue(value ?? defaultValue);
|
|
91
92
|
const wrapperRef = useRef(null);
|
|
92
93
|
|
|
93
94
|
useEffect(() => {
|
|
@@ -96,11 +97,11 @@ export const Textarea = ({
|
|
|
96
97
|
|
|
97
98
|
const handleChange = useCallback(
|
|
98
99
|
(e?: ChangeEvent<HTMLTextAreaElement>) => {
|
|
99
|
-
const value = e?.target.value;
|
|
100
|
+
const value = e?.target.value ?? defaultValue;
|
|
100
101
|
setActualValue(value ?? "");
|
|
101
102
|
onChange?.(value ?? null);
|
|
102
103
|
},
|
|
103
|
-
[onChange],
|
|
104
|
+
[onChange, defaultValue],
|
|
104
105
|
);
|
|
105
106
|
|
|
106
107
|
useEffect(() => {
|