@synerise/ds-subtle-form 1.0.3 → 1.1.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/CHANGELOG.md +19 -0
- package/dist/Elements/DatePicker/DatePicker.js +9 -10
- package/dist/Elements/DatePicker/DatePicker.styles.d.ts +0 -3
- package/dist/Elements/DatePicker/DatePicker.styles.js +2 -8
- package/dist/Elements/Field/Field.d.ts +1 -1
- package/dist/Elements/Field/Field.js +20 -20
- package/dist/Elements/Input/Input.d.ts +2 -2
- package/dist/Elements/Input/Input.js +24 -24
- package/dist/Elements/Input/Input.types.d.ts +0 -2
- package/dist/Elements/Select/Select.d.ts +1 -1
- package/dist/Elements/Select/Select.js +19 -20
- package/dist/Elements/Select/Select.styles.d.ts +0 -3
- package/dist/Elements/Select/Select.styles.js +1 -7
- package/dist/Elements/TextArea/TextArea.d.ts +1 -1
- package/dist/Elements/TextArea/TextArea.js +27 -27
- package/dist/Elements/TextArea/TextArea.types.d.ts +0 -2
- package/dist/SubtleForm.styles.d.ts +2 -1
- package/dist/SubtleForm.styles.js +5 -4
- package/dist/SubtleForm.types.d.ts +3 -3
- package/package.json +8 -7
- package/dist/Elements/Field/Field.styles.d.ts +0 -3
- package/dist/Elements/Field/Field.styles.js +0 -9
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,25 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [1.1.0](https://github.com/Synerise/synerise-design/compare/@synerise/ds-subtle-form@1.0.4...@synerise/ds-subtle-form@1.1.0) (2025-04-16)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **form-field:** add form-field component ([7f6b191](https://github.com/Synerise/synerise-design/commit/7f6b191132a3b0d694c21fb4d649f4deea6acb89))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
## [1.0.4](https://github.com/Synerise/synerise-design/compare/@synerise/ds-subtle-form@1.0.3...@synerise/ds-subtle-form@1.0.4) (2025-04-02)
|
|
18
|
+
|
|
19
|
+
**Note:** Version bump only for package @synerise/ds-subtle-form
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
6
25
|
## [1.0.3](https://github.com/Synerise/synerise-design/compare/@synerise/ds-subtle-form@1.0.2...@synerise/ds-subtle-form@1.0.3) (2025-03-31)
|
|
7
26
|
|
|
8
27
|
**Note:** Version bump only for package @synerise/ds-subtle-form
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
var _excluded = ["value", "suffix", "suffixTooltip", "format", "label", "children", "labelTooltip", "placeholder", "onApply", "onClear", "errorText", "error", "activeProp", "onDropdownVisibleChange", "disabled"];
|
|
2
|
-
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (
|
|
3
|
-
function _objectWithoutPropertiesLoose(
|
|
2
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
3
|
+
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
4
4
|
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
5
5
|
import Icon, { CalendarM } from '@synerise/ds-icon';
|
|
6
6
|
import Tooltip from '@synerise/ds-tooltip';
|
|
7
|
-
import {
|
|
8
|
-
import { Label } from '@synerise/ds-input';
|
|
7
|
+
import { useTheme } from '@synerise/ds-core';
|
|
9
8
|
import DatePicker from '@synerise/ds-date-picker';
|
|
10
9
|
import format from '@synerise/ds-date-picker/dist/format';
|
|
11
10
|
import * as S from '../../SubtleForm.styles';
|
|
12
|
-
import { SelectContainer,
|
|
11
|
+
import { SelectContainer, MaskedDatePlaceholder } from './DatePicker.styles';
|
|
13
12
|
import { getFormattingString, replaceLettersWithUnderscore } from './utils';
|
|
14
13
|
var SubtleDatePicker = function SubtleDatePicker(_ref) {
|
|
15
14
|
var value = _ref.value,
|
|
@@ -35,6 +34,7 @@ var SubtleDatePicker = function SubtleDatePicker(_ref) {
|
|
|
35
34
|
blurred = _useState2[0],
|
|
36
35
|
setBlurred = _useState2[1];
|
|
37
36
|
var containerRef = useRef(null);
|
|
37
|
+
var theme = useTheme();
|
|
38
38
|
var hasError = error || !!errorText;
|
|
39
39
|
var showTime = rest.showTime;
|
|
40
40
|
var dateFormattingString = useMemo(function () {
|
|
@@ -63,12 +63,11 @@ var SubtleDatePicker = function SubtleDatePicker(_ref) {
|
|
|
63
63
|
}, []);
|
|
64
64
|
return /*#__PURE__*/React.createElement(S.Subtle, {
|
|
65
65
|
className: "ds-subtle-form"
|
|
66
|
-
}, /*#__PURE__*/React.createElement(
|
|
67
|
-
active: active || hasError
|
|
68
|
-
}, /*#__PURE__*/React.createElement(Label, {
|
|
66
|
+
}, /*#__PURE__*/React.createElement(S.SubtleFormField, {
|
|
67
|
+
active: active || hasError,
|
|
69
68
|
label: label,
|
|
70
69
|
tooltip: labelTooltip
|
|
71
|
-
}
|
|
70
|
+
}, /*#__PURE__*/React.createElement(SelectContainer, {
|
|
72
71
|
disabled: !!disabled,
|
|
73
72
|
ref: containerRef,
|
|
74
73
|
className: "ds-subtle-date-picker",
|
|
@@ -106,6 +105,6 @@ var SubtleDatePicker = function SubtleDatePicker(_ref) {
|
|
|
106
105
|
}, suffix != null ? suffix : /*#__PURE__*/React.createElement(Icon, {
|
|
107
106
|
component: /*#__PURE__*/React.createElement(CalendarM, null),
|
|
108
107
|
color: theme.palette['grey-600']
|
|
109
|
-
}))))));
|
|
108
|
+
})))))));
|
|
110
109
|
};
|
|
111
110
|
export default SubtleDatePicker;
|
|
@@ -2,9 +2,6 @@ export declare const SelectContainer: import("styled-components").StyledComponen
|
|
|
2
2
|
active: boolean;
|
|
3
3
|
disabled: boolean;
|
|
4
4
|
}, never>;
|
|
5
|
-
export declare const ContentAbove: import("styled-components").StyledComponent<"div", any, {
|
|
6
|
-
active: boolean;
|
|
7
|
-
}, never>;
|
|
8
5
|
export declare const MaskedDatePlaceholder: import("styled-components").StyledComponent<"div", any, {
|
|
9
6
|
disabled?: boolean | undefined;
|
|
10
7
|
}, never>;
|
|
@@ -2,20 +2,14 @@ import styled, { css } from 'styled-components';
|
|
|
2
2
|
export var SelectContainer = styled.div.withConfig({
|
|
3
3
|
displayName: "DatePickerstyles__SelectContainer",
|
|
4
4
|
componentId: "sc-xiwxgz-0"
|
|
5
|
-
})(["position:relative;height:32px;width:100%;", " > div{margin:0;}", ""], function (props) {
|
|
5
|
+
})(["position:relative;min-height:32px;width:100%;", " > div{margin:0;}", ""], function (props) {
|
|
6
6
|
return props.active && css(["margin:-2px 0 0 -1px;"]);
|
|
7
7
|
}, function (props) {
|
|
8
8
|
return !!props.disabled && css(["&&{cursor:not-allowed;}"]);
|
|
9
9
|
});
|
|
10
|
-
export var ContentAbove = styled.div.withConfig({
|
|
11
|
-
displayName: "DatePickerstyles__ContentAbove",
|
|
12
|
-
componentId: "sc-xiwxgz-1"
|
|
13
|
-
})(["padding:0;display:flex;justify-content:space-between;margin-bottom:", ";"], function (props) {
|
|
14
|
-
return props.active ? "10px" : "8px";
|
|
15
|
-
});
|
|
16
10
|
export var MaskedDatePlaceholder = styled.div.withConfig({
|
|
17
11
|
displayName: "DatePickerstyles__MaskedDatePlaceholder",
|
|
18
|
-
componentId: "sc-xiwxgz-
|
|
12
|
+
componentId: "sc-xiwxgz-1"
|
|
19
13
|
})(["font-size:13px;color:transparent;position:absolute;left:0;top:8px;transition:", ";"], function (props) {
|
|
20
14
|
return props.disabled ? 'none' : 'left 0.1s ease-in 0.2s, color 0.1s ease-in 0.2s';
|
|
21
15
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { SubtleFieldProps } from '../../SubtleForm.types';
|
|
3
|
-
declare const SubtleField: React.
|
|
3
|
+
declare const SubtleField: ({ disabled, suffix, suffixTooltip, label, labelTooltip, activeElement, inactiveElement, mask, maskVisible, errorText, active: activeProp, }: SubtleFieldProps) => React.JSX.Element;
|
|
4
4
|
export default SubtleField;
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
|
2
2
|
import Tooltip from '@synerise/ds-tooltip';
|
|
3
3
|
import Icon, { EditS } from '@synerise/ds-icon';
|
|
4
|
-
import {
|
|
5
|
-
import { Label } from '@synerise/ds-input';
|
|
4
|
+
import { useTheme } from '@synerise/ds-core';
|
|
6
5
|
import { useOnClickOutside } from '@synerise/ds-utils';
|
|
7
6
|
import * as S from '../../SubtleForm.styles';
|
|
8
|
-
import { ContentAbove } from './Field.styles';
|
|
9
7
|
import { MaskedDatePlaceholder } from '../DatePicker/DatePicker.styles';
|
|
10
8
|
var SubtleField = function SubtleField(_ref) {
|
|
11
9
|
var disabled = _ref.disabled,
|
|
@@ -17,41 +15,43 @@ var SubtleField = function SubtleField(_ref) {
|
|
|
17
15
|
inactiveElement = _ref.inactiveElement,
|
|
18
16
|
mask = _ref.mask,
|
|
19
17
|
maskVisible = _ref.maskVisible,
|
|
18
|
+
errorText = _ref.errorText,
|
|
20
19
|
activeProp = _ref.active;
|
|
21
|
-
var
|
|
22
|
-
active =
|
|
23
|
-
setActive =
|
|
24
|
-
var
|
|
25
|
-
blurred =
|
|
26
|
-
setBlurred =
|
|
27
|
-
var containerRef =
|
|
28
|
-
var handleDeactivate =
|
|
20
|
+
var _useState = useState(activeProp),
|
|
21
|
+
active = _useState[0],
|
|
22
|
+
setActive = _useState[1];
|
|
23
|
+
var _useState2 = useState(false),
|
|
24
|
+
blurred = _useState2[0],
|
|
25
|
+
setBlurred = _useState2[1];
|
|
26
|
+
var containerRef = useRef(null);
|
|
27
|
+
var handleDeactivate = useCallback(function () {
|
|
29
28
|
setActive(false);
|
|
30
29
|
setBlurred(true);
|
|
31
30
|
}, []);
|
|
32
|
-
var handleActivate =
|
|
31
|
+
var handleActivate = useCallback(function () {
|
|
33
32
|
setActive(true);
|
|
34
33
|
setBlurred(false);
|
|
35
34
|
}, []);
|
|
36
|
-
|
|
35
|
+
var theme = useTheme();
|
|
36
|
+
useEffect(function () {
|
|
37
37
|
return setActive(activeProp);
|
|
38
38
|
}, [activeProp]);
|
|
39
|
+
var isActive = Boolean(errorText || active && !blurred && !!activeElement);
|
|
39
40
|
useOnClickOutside(containerRef, function () {
|
|
40
41
|
handleDeactivate();
|
|
41
42
|
});
|
|
42
43
|
return /*#__PURE__*/React.createElement(S.Subtle, {
|
|
43
44
|
className: "ds-subtle-form",
|
|
44
45
|
disabled: disabled
|
|
45
|
-
}, /*#__PURE__*/React.createElement(
|
|
46
|
-
active:
|
|
47
|
-
}, /*#__PURE__*/React.createElement(Label, {
|
|
46
|
+
}, /*#__PURE__*/React.createElement(S.SubtleFormField, {
|
|
47
|
+
active: isActive,
|
|
48
48
|
label: label,
|
|
49
49
|
tooltip: labelTooltip
|
|
50
|
-
}
|
|
50
|
+
}, /*#__PURE__*/React.createElement(S.Container, {
|
|
51
51
|
ref: containerRef,
|
|
52
52
|
className: "ds-subtle-field",
|
|
53
53
|
active: active
|
|
54
|
-
},
|
|
54
|
+
}, isActive && activeElement ? activeElement() : /*#__PURE__*/React.createElement(S.Inactive, {
|
|
55
55
|
tabIndex: 0,
|
|
56
56
|
onFocus: !disabled ? handleActivate : undefined,
|
|
57
57
|
onClick: !disabled ? handleActivate : undefined,
|
|
@@ -68,6 +68,6 @@ var SubtleField = function SubtleField(_ref) {
|
|
|
68
68
|
}, suffix != null ? suffix : /*#__PURE__*/React.createElement(Icon, {
|
|
69
69
|
component: /*#__PURE__*/React.createElement(EditS, null),
|
|
70
70
|
color: theme.palette['grey-600']
|
|
71
|
-
}))))));
|
|
71
|
+
})))))));
|
|
72
72
|
};
|
|
73
73
|
export default SubtleField;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { SubtleInputProps } from './Input.types';
|
|
3
|
-
declare const
|
|
4
|
-
export default
|
|
3
|
+
declare const SubtleInput: ({ disabled, value, onChange, placeholder, label, labelTooltip, suffixTooltip, suffix, error, errorText, inputProps, ...rest }: SubtleInputProps) => React.JSX.Element;
|
|
4
|
+
export default SubtleInput;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
var _excluded = ["disabled", "value", "onChange", "placeholder", "label", "labelTooltip", "suffixTooltip", "suffix", "error", "errorText", "inputProps"];
|
|
2
|
-
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (
|
|
3
|
-
function _objectWithoutPropertiesLoose(
|
|
4
|
-
import React from 'react';
|
|
2
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
3
|
+
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
4
|
+
import React, { useCallback, useRef, useState } from 'react';
|
|
5
5
|
import Tooltip from '@synerise/ds-tooltip';
|
|
6
6
|
import Icon, { EditS } from '@synerise/ds-icon';
|
|
7
|
-
import {
|
|
8
|
-
import { Input
|
|
7
|
+
import { useTheme } from '@synerise/ds-core';
|
|
8
|
+
import { Input } from '@synerise/ds-input';
|
|
9
9
|
import * as S from '../../SubtleForm.styles';
|
|
10
10
|
import { focusPadding } from '../../SubtleForm.styles';
|
|
11
|
-
var
|
|
11
|
+
var SubtleInput = function SubtleInput(_ref) {
|
|
12
12
|
var disabled = _ref.disabled,
|
|
13
13
|
value = _ref.value,
|
|
14
14
|
_onChange = _ref.onChange,
|
|
@@ -21,34 +21,34 @@ var SubtleTextArea = function SubtleTextArea(_ref) {
|
|
|
21
21
|
errorText = _ref.errorText,
|
|
22
22
|
inputProps = _ref.inputProps,
|
|
23
23
|
rest = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
24
|
-
var
|
|
25
|
-
active =
|
|
26
|
-
setActive =
|
|
27
|
-
var
|
|
28
|
-
blurred =
|
|
29
|
-
setBlurred =
|
|
30
|
-
var containerRef =
|
|
24
|
+
var _useState = useState(false),
|
|
25
|
+
active = _useState[0],
|
|
26
|
+
setActive = _useState[1];
|
|
27
|
+
var _useState2 = useState(false),
|
|
28
|
+
blurred = _useState2[0],
|
|
29
|
+
setBlurred = _useState2[1];
|
|
30
|
+
var containerRef = useRef(null);
|
|
31
|
+
var theme = useTheme();
|
|
31
32
|
var hasError = error || !!errorText;
|
|
32
|
-
var handleDeactivate =
|
|
33
|
+
var handleDeactivate = useCallback(function (event) {
|
|
33
34
|
if (inputProps) {
|
|
34
35
|
var onBlur = inputProps.onBlur;
|
|
35
|
-
onBlur && onBlur(
|
|
36
|
+
onBlur && onBlur(event);
|
|
36
37
|
}
|
|
37
38
|
setActive(false);
|
|
38
39
|
setBlurred(true);
|
|
39
40
|
}, [inputProps]);
|
|
40
|
-
var handleActivate =
|
|
41
|
+
var handleActivate = useCallback(function () {
|
|
41
42
|
setActive(true);
|
|
42
43
|
setBlurred(false);
|
|
43
44
|
}, []);
|
|
44
45
|
return /*#__PURE__*/React.createElement(S.Subtle, {
|
|
45
46
|
className: "ds-subtle-form"
|
|
46
|
-
}, /*#__PURE__*/React.createElement(S.
|
|
47
|
-
active: active
|
|
48
|
-
}, /*#__PURE__*/React.createElement(Label, {
|
|
47
|
+
}, /*#__PURE__*/React.createElement(S.SubtleFormField, {
|
|
48
|
+
active: active,
|
|
49
49
|
label: label,
|
|
50
50
|
tooltip: labelTooltip
|
|
51
|
-
}
|
|
51
|
+
}, /*#__PURE__*/React.createElement(S.Container, {
|
|
52
52
|
ref: containerRef,
|
|
53
53
|
className: "ds-subtle-input",
|
|
54
54
|
active: active,
|
|
@@ -59,8 +59,8 @@ var SubtleTextArea = function SubtleTextArea(_ref) {
|
|
|
59
59
|
React.createElement(Input, _extends({
|
|
60
60
|
autoFocus: !hasError && !disabled,
|
|
61
61
|
disabled: disabled,
|
|
62
|
-
onChange: function onChange(
|
|
63
|
-
_onChange && _onChange(
|
|
62
|
+
onChange: function onChange(event) {
|
|
63
|
+
_onChange && _onChange(event.currentTarget.value);
|
|
64
64
|
},
|
|
65
65
|
onBlur: !disabled ? handleDeactivate : undefined,
|
|
66
66
|
value: value,
|
|
@@ -80,6 +80,6 @@ var SubtleTextArea = function SubtleTextArea(_ref) {
|
|
|
80
80
|
}, suffix != null ? suffix : /*#__PURE__*/React.createElement(Icon, {
|
|
81
81
|
component: /*#__PURE__*/React.createElement(EditS, null),
|
|
82
82
|
color: theme.palette['grey-600']
|
|
83
|
-
}))))));
|
|
83
|
+
})))))));
|
|
84
84
|
};
|
|
85
|
-
export default
|
|
85
|
+
export default SubtleInput;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
import { InputProps } from 'antd/lib/input';
|
|
3
2
|
import { SubtleFieldProps } from '../../SubtleForm.types';
|
|
4
3
|
export type SubtleInputProps = {
|
|
@@ -6,6 +5,5 @@ export type SubtleInputProps = {
|
|
|
6
5
|
value?: string;
|
|
7
6
|
placeholder?: string;
|
|
8
7
|
error?: boolean;
|
|
9
|
-
errorText?: string | React.ReactNode;
|
|
10
8
|
inputProps: InputProps;
|
|
11
9
|
} & SubtleFieldProps;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { SubtleSelectProps } from './Select.types';
|
|
3
|
-
declare const SubtleSelect: React.
|
|
3
|
+
declare const SubtleSelect: ({ disabled, value, suffix, suffixTooltip, label, children, labelTooltip, placeholder, error, errorText, dropdownAlign, ...rest }: SubtleSelectProps) => React.JSX.Element;
|
|
4
4
|
export default SubtleSelect;
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
var _excluded = ["disabled", "value", "suffix", "suffixTooltip", "label", "children", "labelTooltip", "placeholder", "error", "errorText", "dropdownAlign"];
|
|
2
|
-
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (
|
|
3
|
-
function _objectWithoutPropertiesLoose(
|
|
4
|
-
import React from 'react';
|
|
2
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
3
|
+
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
4
|
+
import React, { useCallback, useRef, useState } from 'react';
|
|
5
5
|
import Icon, { AngleDownS } from '@synerise/ds-icon';
|
|
6
6
|
import Tooltip from '@synerise/ds-tooltip';
|
|
7
|
-
import {
|
|
8
|
-
import { Label } from '@synerise/ds-input';
|
|
7
|
+
import { useTheme } from '@synerise/ds-core';
|
|
9
8
|
import Select from '@synerise/ds-select';
|
|
10
9
|
import * as S from '../../SubtleForm.styles';
|
|
11
|
-
import { SelectContainer
|
|
10
|
+
import { SelectContainer } from './Select.styles';
|
|
12
11
|
var SubtleSelect = function SubtleSelect(_ref) {
|
|
13
12
|
var disabled = _ref.disabled,
|
|
14
13
|
value = _ref.value,
|
|
@@ -23,31 +22,31 @@ var SubtleSelect = function SubtleSelect(_ref) {
|
|
|
23
22
|
_ref$dropdownAlign = _ref.dropdownAlign,
|
|
24
23
|
dropdownAlign = _ref$dropdownAlign === void 0 ? {} : _ref$dropdownAlign,
|
|
25
24
|
rest = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
26
|
-
var
|
|
27
|
-
active =
|
|
28
|
-
setActive =
|
|
29
|
-
var
|
|
30
|
-
blurred =
|
|
31
|
-
setBlurred =
|
|
32
|
-
var containerRef =
|
|
25
|
+
var _useState = useState(false),
|
|
26
|
+
active = _useState[0],
|
|
27
|
+
setActive = _useState[1];
|
|
28
|
+
var _useState2 = useState(false),
|
|
29
|
+
blurred = _useState2[0],
|
|
30
|
+
setBlurred = _useState2[1];
|
|
31
|
+
var containerRef = useRef(null);
|
|
33
32
|
var hasError = error || !!errorText;
|
|
34
|
-
var handleDeactivate =
|
|
33
|
+
var handleDeactivate = useCallback(function () {
|
|
35
34
|
setActive(false);
|
|
36
35
|
setBlurred(true);
|
|
37
36
|
}, []);
|
|
38
|
-
var handleActivate =
|
|
37
|
+
var handleActivate = useCallback(function () {
|
|
39
38
|
setActive(true);
|
|
40
39
|
setBlurred(false);
|
|
41
40
|
}, []);
|
|
41
|
+
var theme = useTheme();
|
|
42
42
|
return /*#__PURE__*/React.createElement(S.Subtle, {
|
|
43
43
|
className: "ds-subtle-form",
|
|
44
44
|
disabled: disabled
|
|
45
|
-
}, /*#__PURE__*/React.createElement(
|
|
46
|
-
active: active
|
|
47
|
-
}, /*#__PURE__*/React.createElement(Label, {
|
|
45
|
+
}, /*#__PURE__*/React.createElement(S.SubtleFormField, {
|
|
46
|
+
active: active,
|
|
48
47
|
label: label,
|
|
49
48
|
tooltip: labelTooltip
|
|
50
|
-
}
|
|
49
|
+
}, /*#__PURE__*/React.createElement(SelectContainer, {
|
|
51
50
|
ref: containerRef,
|
|
52
51
|
className: "ds-subtle-select",
|
|
53
52
|
active: active
|
|
@@ -79,6 +78,6 @@ var SubtleSelect = function SubtleSelect(_ref) {
|
|
|
79
78
|
}, suffix != null ? suffix : /*#__PURE__*/React.createElement(Icon, {
|
|
80
79
|
component: /*#__PURE__*/React.createElement(AngleDownS, null),
|
|
81
80
|
color: theme.palette['grey-600']
|
|
82
|
-
}))))));
|
|
81
|
+
})))))));
|
|
83
82
|
};
|
|
84
83
|
export default SubtleSelect;
|
|
@@ -2,12 +2,6 @@ import styled, { css } from 'styled-components';
|
|
|
2
2
|
export var SelectContainer = styled.div.withConfig({
|
|
3
3
|
displayName: "Selectstyles__SelectContainer",
|
|
4
4
|
componentId: "sc-u85d8m-0"
|
|
5
|
-
})(["position:relative;height:32px;width:100%;", " .ant-select-focused{.ds-status{margin:-1px 0 0 0;}}.ds-status{margin:0;}div.ant-select-selector{transition:border 0s linear !important;}"], function (props) {
|
|
5
|
+
})(["position:relative;min-height:32px;width:100%;", " .ant-select-focused{.ds-status{margin:-1px 0 0 0;}}.ds-status{margin:0;}div.ant-select-selector{transition:border 0s linear !important;}"], function (props) {
|
|
6
6
|
return props.active && css(["margin:-2px 0 0 -1px;"]);
|
|
7
|
-
});
|
|
8
|
-
export var ContentAbove = styled.div.withConfig({
|
|
9
|
-
displayName: "Selectstyles__ContentAbove",
|
|
10
|
-
componentId: "sc-u85d8m-1"
|
|
11
|
-
})(["padding:0 0 0 0;display:flex;justify-content:space-between;margin-bottom:", ";"], function (props) {
|
|
12
|
-
return props.active ? "10px" : "8px";
|
|
13
7
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { SubtleTextAreaProps } from './TextArea.types';
|
|
3
|
-
declare const SubtleTextArea: React.
|
|
3
|
+
declare const SubtleTextArea: ({ disabled, minRows, maxRows, value, onChange, placeholder, label, labelTooltip, suffixTooltip, suffix, error, errorText, textAreaProps, ...rest }: SubtleTextAreaProps) => React.JSX.Element;
|
|
4
4
|
export default SubtleTextArea;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
var _excluded = ["disabled", "minRows", "maxRows", "value", "onChange", "placeholder", "label", "labelTooltip", "suffixTooltip", "suffix", "error", "errorText", "textAreaProps"];
|
|
2
|
-
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (
|
|
3
|
-
function _objectWithoutPropertiesLoose(
|
|
4
|
-
import React from 'react';
|
|
2
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
3
|
+
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
4
|
+
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
|
5
5
|
import Icon, { EditS } from '@synerise/ds-icon';
|
|
6
6
|
import Tooltip from '@synerise/ds-tooltip';
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
7
|
+
import { useTheme } from '@synerise/ds-core';
|
|
8
|
+
import { TextArea } from '@synerise/ds-input';
|
|
9
9
|
import calculateSize from 'calculate-size';
|
|
10
10
|
import * as S from '../../SubtleForm.styles';
|
|
11
11
|
import { focusPadding } from '../../SubtleForm.styles';
|
|
@@ -30,18 +30,19 @@ var SubtleTextArea = function SubtleTextArea(_ref) {
|
|
|
30
30
|
errorText = _ref.errorText,
|
|
31
31
|
textAreaProps = _ref.textAreaProps,
|
|
32
32
|
rest = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
33
|
-
var
|
|
34
|
-
active =
|
|
35
|
-
setActive =
|
|
36
|
-
var
|
|
37
|
-
blurred =
|
|
38
|
-
setBlurred =
|
|
39
|
-
var containerRef =
|
|
40
|
-
var
|
|
41
|
-
visibleRows =
|
|
42
|
-
setVisibleRows =
|
|
33
|
+
var _useState = useState(false),
|
|
34
|
+
active = _useState[0],
|
|
35
|
+
setActive = _useState[1];
|
|
36
|
+
var _useState2 = useState(false),
|
|
37
|
+
blurred = _useState2[0],
|
|
38
|
+
setBlurred = _useState2[1];
|
|
39
|
+
var containerRef = useRef(null);
|
|
40
|
+
var _useState3 = useState(minRows),
|
|
41
|
+
visibleRows = _useState3[0],
|
|
42
|
+
setVisibleRows = _useState3[1];
|
|
43
|
+
var theme = useTheme();
|
|
43
44
|
var hasError = error || !!errorText;
|
|
44
|
-
var calculateTextHeight =
|
|
45
|
+
var calculateTextHeight = useCallback(function () {
|
|
45
46
|
var textHeight = 0;
|
|
46
47
|
if (!!value && !!containerRef.current) {
|
|
47
48
|
var _calculateSize = calculateSize(value, {
|
|
@@ -54,7 +55,7 @@ var SubtleTextArea = function SubtleTextArea(_ref) {
|
|
|
54
55
|
}
|
|
55
56
|
return textHeight;
|
|
56
57
|
}, [value, containerRef]);
|
|
57
|
-
|
|
58
|
+
useEffect(function () {
|
|
58
59
|
var keyboardBasedLines = Number(value == null ? void 0 : value.split('\n').length);
|
|
59
60
|
var refBasedLines = Math.floor((calculateTextHeight() + 2 * VERTICAL_PADDING_PX) / ROW_HEIGHT_PX);
|
|
60
61
|
var lines = Math.max(Number(refBasedLines), keyboardBasedLines);
|
|
@@ -70,34 +71,33 @@ var SubtleTextArea = function SubtleTextArea(_ref) {
|
|
|
70
71
|
setVisibleRows(lines);
|
|
71
72
|
}
|
|
72
73
|
}, [minRows, maxRows, value, calculateTextHeight]);
|
|
73
|
-
var handleDeactivate =
|
|
74
|
+
var handleDeactivate = useCallback(function (event) {
|
|
74
75
|
if (textAreaProps) {
|
|
75
76
|
var onBlur = textAreaProps.onBlur;
|
|
76
|
-
onBlur && onBlur(
|
|
77
|
+
onBlur && onBlur(event);
|
|
77
78
|
}
|
|
78
79
|
setActive(false);
|
|
79
80
|
setBlurred(true);
|
|
80
81
|
}, [textAreaProps]);
|
|
81
|
-
var handleActivate =
|
|
82
|
+
var handleActivate = useCallback(function () {
|
|
82
83
|
setActive(true);
|
|
83
84
|
setBlurred(false);
|
|
84
85
|
}, []);
|
|
85
86
|
return /*#__PURE__*/React.createElement(S.Subtle, {
|
|
86
87
|
className: "ds-subtle-form"
|
|
87
|
-
},
|
|
88
|
-
active: active
|
|
89
|
-
}, /*#__PURE__*/React.createElement(Label, {
|
|
88
|
+
}, /*#__PURE__*/React.createElement(S.SubtleFormField, {
|
|
89
|
+
active: active,
|
|
90
90
|
label: label,
|
|
91
91
|
tooltip: labelTooltip
|
|
92
|
-
}
|
|
92
|
+
}, /*#__PURE__*/React.createElement(S.Container, {
|
|
93
93
|
ref: containerRef,
|
|
94
94
|
className: "ds-subtle-textarea",
|
|
95
95
|
active: active,
|
|
96
96
|
disabled: disabled
|
|
97
97
|
}, (active || hasError) && !disabled ? /*#__PURE__*/React.createElement(TextArea, _extends({
|
|
98
98
|
autoFocus: !hasError && !disabled,
|
|
99
|
-
onChange: !disabled ? function (
|
|
100
|
-
onChange && onChange(
|
|
99
|
+
onChange: !disabled ? function (event) {
|
|
100
|
+
onChange && onChange(event.currentTarget.value);
|
|
101
101
|
} : undefined,
|
|
102
102
|
onBlur: !disabled ? handleDeactivate : undefined,
|
|
103
103
|
value: value,
|
|
@@ -129,6 +129,6 @@ var SubtleTextArea = function SubtleTextArea(_ref) {
|
|
|
129
129
|
}, suffix != null ? suffix : /*#__PURE__*/React.createElement(Icon, {
|
|
130
130
|
component: /*#__PURE__*/React.createElement(EditS, null),
|
|
131
131
|
color: theme.palette['grey-600']
|
|
132
|
-
}))))));
|
|
132
|
+
})))))));
|
|
133
133
|
};
|
|
134
134
|
export default SubtleTextArea;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
import { TextAreaProps } from '@synerise/ds-input/dist/Textarea/Textarea.types';
|
|
3
2
|
import { SubtleFieldProps } from '../../SubtleForm.types';
|
|
4
3
|
export type SubtleTextAreaProps = {
|
|
@@ -9,7 +8,6 @@ export type SubtleTextAreaProps = {
|
|
|
9
8
|
placeholder?: string;
|
|
10
9
|
autoSize?: TextareaAutosize;
|
|
11
10
|
error?: boolean;
|
|
12
|
-
errorText?: React.ReactNode;
|
|
13
11
|
textAreaProps?: TextAreaProps;
|
|
14
12
|
} & SubtleFieldProps;
|
|
15
13
|
export type TextareaAutosize = {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
1
2
|
export declare const blurPadding = "7px 40px 7px 0px";
|
|
2
3
|
export declare const focusPadding = "7px 28px 7px 12px";
|
|
3
4
|
export declare const blurAnimation: import("styled-components").Keyframes;
|
|
@@ -24,6 +25,6 @@ export declare const Container: import("styled-components").StyledComponent<"div
|
|
|
24
25
|
export declare const Subtle: import("styled-components").StyledComponent<"div", any, {
|
|
25
26
|
disabled?: boolean | undefined;
|
|
26
27
|
}, never>;
|
|
27
|
-
export declare const
|
|
28
|
+
export declare const SubtleFormField: import("styled-components").StyledComponent<({ label, tooltip, id, rightSide, tooltipConfig, description, errorText, children, ...rest }: import("@synerise/ds-form-field").FormFieldProps) => import("react").JSX.Element, any, {
|
|
28
29
|
active: boolean;
|
|
29
30
|
}, never>;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import styled, { css, keyframes } from 'styled-components';
|
|
2
|
+
import FormField from '@synerise/ds-form-field';
|
|
2
3
|
import { MaskedDatePlaceholder } from './Elements/DatePicker/DatePicker.styles';
|
|
3
4
|
var disableBlinkingCursor = function disableBlinkingCursor(props) {
|
|
4
5
|
return css(["color:transparent;text-shadow:0 1px ", ";"], props.grey ? props.theme.palette['grey-500'] : props.theme.palette['grey-600']);
|
|
@@ -56,9 +57,9 @@ export var Subtle = styled.div.withConfig({
|
|
|
56
57
|
})(["", ""], function (props) {
|
|
57
58
|
return !!props.disabled && css(["&&{cursor:not-allowed;}"]);
|
|
58
59
|
});
|
|
59
|
-
export var
|
|
60
|
-
displayName: "
|
|
60
|
+
export var SubtleFormField = styled(FormField).withConfig({
|
|
61
|
+
displayName: "SubtleFormstyles__SubtleFormField",
|
|
61
62
|
componentId: "sc-1wunvof-6"
|
|
62
|
-
})(["
|
|
63
|
-
return props.active ? "
|
|
63
|
+
})(["gap:", ";"], function (props) {
|
|
64
|
+
return props.active ? "10px" : "8px";
|
|
64
65
|
});
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { FormFieldCommonProps } from '@synerise/ds-form-field';
|
|
2
3
|
import { SubtleTextAreaProps } from './Elements/TextArea/TextArea.types';
|
|
3
4
|
import { SubtleSelectProps } from './Elements/Select/Select.types';
|
|
4
5
|
import { SubtleDatePickerProps } from './Elements/DatePicker/DatePicker.types';
|
|
@@ -13,12 +14,11 @@ export type SubtleFormSubComponents = {
|
|
|
13
14
|
export type SubtleFieldProps = {
|
|
14
15
|
active?: boolean;
|
|
15
16
|
disabled?: boolean;
|
|
16
|
-
|
|
17
|
-
labelTooltip?: React.ReactNode | string;
|
|
17
|
+
labelTooltip?: FormFieldCommonProps['tooltip'];
|
|
18
18
|
suffix?: React.ReactNode | string;
|
|
19
19
|
suffixTooltip?: React.ReactNode | string;
|
|
20
20
|
activeElement?: () => React.ReactElement;
|
|
21
21
|
inactiveElement?: () => React.ReactElement;
|
|
22
22
|
mask?: string;
|
|
23
23
|
maskVisible?: boolean;
|
|
24
|
-
}
|
|
24
|
+
} & Pick<FormFieldCommonProps, 'label' | 'errorText'>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@synerise/ds-subtle-form",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "SubtleForm UI Component for the Synerise Design System",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"repository": "Synerise/synerise-design",
|
|
@@ -34,11 +34,12 @@
|
|
|
34
34
|
],
|
|
35
35
|
"types": "dist/index.d.ts",
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@synerise/ds-date-picker": "^1.0
|
|
38
|
-
"@synerise/ds-
|
|
39
|
-
"@synerise/ds-
|
|
40
|
-
"@synerise/ds-
|
|
41
|
-
"@synerise/ds-
|
|
37
|
+
"@synerise/ds-date-picker": "^1.1.0",
|
|
38
|
+
"@synerise/ds-form-field": "^1.1.0",
|
|
39
|
+
"@synerise/ds-icon": "^1.4.0",
|
|
40
|
+
"@synerise/ds-input": "^1.1.0",
|
|
41
|
+
"@synerise/ds-select": "^1.1.0",
|
|
42
|
+
"@synerise/ds-tooltip": "^1.1.4",
|
|
42
43
|
"@synerise/ds-utils": "^1.0.1",
|
|
43
44
|
"calculate-size": "^1.1.1"
|
|
44
45
|
},
|
|
@@ -48,5 +49,5 @@
|
|
|
48
49
|
"react": ">=16.9.0 <= 18.3.1",
|
|
49
50
|
"styled-components": "^5.3.3"
|
|
50
51
|
},
|
|
51
|
-
"gitHead": "
|
|
52
|
+
"gitHead": "6735f9babfeef53122f54ca86cba5f581e8870d9"
|
|
52
53
|
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import styled from 'styled-components';
|
|
2
|
-
|
|
3
|
-
// eslint-disable-next-line import/prefer-default-export
|
|
4
|
-
export var ContentAbove = styled.div.withConfig({
|
|
5
|
-
displayName: "Fieldstyles__ContentAbove",
|
|
6
|
-
componentId: "sc-1etqryf-0"
|
|
7
|
-
})(["padding:0 0 0 0;display:flex;justify-content:space-between;margin-bottom:", ";"], function (props) {
|
|
8
|
-
return props.active ? "10px" : "8px";
|
|
9
|
-
});
|