@db-ux/react-core-components 3.1.18 → 3.1.20
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
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# @db-ux/react-core-components
|
|
2
|
+
|
|
3
|
+
## 3.1.20
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- fix(input): iOS Safari VoiceOver bug for types `date`, `datetime-local`, `week`, `month`, `time` and `color` - [see commit 2ca96c8](https://github.com/db-ux-design-system/core-web/commit/2ca96c8852b7413f9a3281d69e9c4fc6f79c4f13)
|
|
8
|
+
|
|
9
|
+
## 3.1.19
|
|
10
|
+
|
|
11
|
+
_version bump_
|
|
12
|
+
|
|
13
|
+
## 3.1.18
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- fix(DBTabs): ensure navigation arrows appear correctly on window resize - [see commit 4e65e00](https://github.com/db-ux-design-system/core-web/commit/4e65e00d280cae18baee03b5a7a9b13eec063835):
|
|
18
|
+
- This update resolves an issue where navigation arrows in DBTabs would not appear or update correctly when the window was resized. The component now properly responds to resize events, ensuring arrows are always shown or hidden as needed.
|
|
19
|
+
|
|
20
|
+
- fix(select): jumping placeholder for label above - [see commit 7ed8d22](https://github.com/db-ux-design-system/core-web/commit/7ed8d2225102e0e9044437e95917e11eef4bc73f)
|
|
21
|
+
|
|
22
|
+
- enabled [`@db-ux/agent-cli`](https://www.npmjs.com/package/@db-ux/agent-cli) for every package - [see commit 0233048](https://github.com/db-ux-design-system/core-web/commit/023304869e61f5a506dca66a22d69e5f3d70f4d0):
|
|
23
|
+
- auto-generate/auto-update `.github/copilot-instructions.md`, to ensure GitHub Copilot uses DB UX Components for code generation
|
|
24
|
+
|
|
25
|
+
## 3.1.17
|
|
26
|
+
|
|
27
|
+
### Patch Changes
|
|
28
|
+
|
|
29
|
+
- 0c20c00: fix: color mode for textarea resizer control set by color-mode-switch documentation UI component
|
|
30
|
+
- 0c20c00: refactor: enabling `hidden` HTML attribute in every context in which we need to set overwriting styling declarations (`display`)
|
|
31
|
+
- Updated dependencies [0c20c00]
|
|
32
|
+
- Updated dependencies [0c20c00]
|
|
33
|
+
- @db-ux/core-components@3.1.17
|
|
34
|
+
- @db-ux/core-foundations@3.1.17
|
|
35
|
+
|
|
36
|
+
## 3.1.16
|
|
37
|
+
|
|
38
|
+
### Patch Changes
|
|
39
|
+
|
|
40
|
+
- a28eb71: fix(custom-select): keyboard navigation for option groups in single-select mode:
|
|
41
|
+
- Fixes a keyboard accessibility issue where users could not navigate to options in subsequent option groups using arrow keys in single-select mode.
|
|
42
|
+
- Now, all options are accessible via keyboard regardless of group boundaries.
|
|
43
|
+
- a28eb71: fix: JS framework core-components packages are missing `@db-ux` dependencies
|
|
44
|
+
- Updated dependencies [a28eb71]
|
|
45
|
+
- Updated dependencies [a28eb71]
|
|
46
|
+
- @db-ux/core-components@3.1.16
|
|
47
|
+
- @db-ux/core-foundations@3.1.16
|
|
48
|
+
|
|
49
|
+
## 3.1.15
|
|
50
|
+
|
|
51
|
+
### Patch Changes
|
|
52
|
+
|
|
53
|
+
- 262964b: fix(Switch): double event firing with Angular signals
|
|
54
|
+
- 262964b: fix(CustomSelect): tags remaining visible when form values are reset
|
|
55
|
+
- 262964b: fix(CustomSelect): custom removeTagsTexts are not applied correctly
|
|
@@ -6,7 +6,7 @@ import { DEFAULT_DATALIST_ID_SUFFIX, DEFAULT_INVALID_MESSAGE, DEFAULT_INVALID_ME
|
|
|
6
6
|
import { cls, delay, getBoolean, getBooleanAsString, getHideProp, getInputValue, getNumber, hasVoiceOver, isArrayOfStrings, stringPropVisible, uuid, } from "../../utils";
|
|
7
7
|
import DBInfotext from "../infotext/infotext";
|
|
8
8
|
function DBInputFn(props, component) {
|
|
9
|
-
var _a, _b, _c, _d, _e, _f;
|
|
9
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
10
10
|
const _ref = component || useRef(component);
|
|
11
11
|
const [_id, set_id] = useState(() => undefined);
|
|
12
12
|
const [_messageId, set_messageId] = useState(() => undefined);
|
|
@@ -81,6 +81,16 @@ function DBInputFn(props, component) {
|
|
|
81
81
|
}))
|
|
82
82
|
: _list) || []);
|
|
83
83
|
}
|
|
84
|
+
function isIOSSafari() {
|
|
85
|
+
if (typeof window === "undefined" || typeof navigator === "undefined")
|
|
86
|
+
return false;
|
|
87
|
+
const ua = navigator.userAgent;
|
|
88
|
+
// iOS detection
|
|
89
|
+
const isIOS = /iP(ad|hone|od)/.test(ua);
|
|
90
|
+
// Safari detection (not Chrome or Firefox on iOS)
|
|
91
|
+
const isSafari = !!ua.match(/Safari/) && !ua.match(/CriOS|FxiOS|OPiOS|EdgiOS/);
|
|
92
|
+
return isIOS && isSafari;
|
|
93
|
+
}
|
|
84
94
|
useEffect(() => {
|
|
85
95
|
var _a;
|
|
86
96
|
const mId = (_a = props.id) !== null && _a !== void 0 ? _a : `input-${uuid()}`;
|
|
@@ -117,8 +127,10 @@ function DBInputFn(props, component) {
|
|
|
117
127
|
return (React.createElement("div", Object.assign({}, getRootProps(props, ["data-icon-variant", "data-icon-variant-before", "data-icon-variant-after", "data-icon-weight", "data-icon-weight-before", "data-icon-weight-after", "data-interactive", "data-force-mobile", "data-color", "data-container-color", "data-bg-color", "data-on-bg-color", "data-color-scheme", "data-font-size", "data-headline-size", "data-divider", "data-focus", "data-font"]), { className: cls("db-input", props.className), "data-variant": props.variant, "data-hide-label": getHideProp(props.showLabel), "data-show-icon": getBooleanAsString((_a = props.showIconLeading) !== null && _a !== void 0 ? _a : props.showIcon), "data-icon": (_b = props.iconLeading) !== null && _b !== void 0 ? _b : props.icon, "data-icon-trailing": props.iconTrailing, "data-hide-asterisk": getHideProp(props.showRequiredAsterisk), "data-show-icon-trailing": getBooleanAsString(props.showIconTrailing) }),
|
|
118
128
|
React.createElement("label", { htmlFor: _id }, (_c = props.label) !== null && _c !== void 0 ? _c : DEFAULT_LABEL),
|
|
119
129
|
React.createElement("input", Object.assign({ "aria-invalid": props.validation === "invalid", "data-custom-validity": props.validation, "data-field-sizing": props.fieldSizing, ref: _ref }, filterPassingProps(props, ["data-icon-variant", "data-icon-variant-before", "data-icon-variant-after", "data-icon-weight", "data-icon-weight-before", "data-icon-weight-after", "data-interactive", "data-force-mobile", "data-color", "data-container-color", "data-bg-color", "data-on-bg-color", "data-color-scheme", "data-font-size", "data-headline-size", "data-divider", "data-focus", "data-font"]), { id: _id, name: props.name, type: props.type || "text", multiple: getBoolean(props.multiple, "multiple"), placeholder: (_d = props.placeholder) !== null && _d !== void 0 ? _d : DEFAULT_PLACEHOLDER, disabled: getBoolean(props.disabled, "disabled"), required: getBoolean(props.required, "required"), step: getNumber(props.step), value: props.value, maxLength: getNumber(props.maxLength, props.maxlength), minLength: getNumber(props.minLength, props.minlength), max: getInputValue(props.max, props.type), min: getInputValue(props.min, props.type), readOnly: getBoolean(props.readOnly, "readOnly") ||
|
|
120
|
-
getBoolean(props.readonly, "readonly"), form: props.form, pattern: props.pattern, size: props.size, autoComplete: props.autocomplete, autoFocus: getBoolean(props.autofocus, "autofocus"), enterKeyHint: props.enterkeyhint, inputMode: props.inputmode, onInput: (event) => handleInput(event), onChange: (event) => handleChange(event), onBlur: (event) => handleBlur(event), onFocus: (event) => handleFocus(event), list: props.dataList && _dataListId, "aria-describedby": (_e = props.ariaDescribedBy) !== null && _e !== void 0 ? _e : _descByIds
|
|
121
|
-
|
|
130
|
+
getBoolean(props.readonly, "readonly"), form: props.form, pattern: props.pattern, size: props.size, autoComplete: props.autocomplete, autoFocus: getBoolean(props.autofocus, "autofocus"), enterKeyHint: props.enterkeyhint, inputMode: props.inputmode, onInput: (event) => handleInput(event), onChange: (event) => handleChange(event), onBlur: (event) => handleBlur(event), onFocus: (event) => handleFocus(event), list: props.dataList && _dataListId, "aria-describedby": (_e = props.ariaDescribedBy) !== null && _e !== void 0 ? _e : _descByIds, role: ["datetime-local", "date", "time", "week", "month", "color"].includes((_f = props.type) !== null && _f !== void 0 ? _f : "") && isIOSSafari()
|
|
131
|
+
? "textbox"
|
|
132
|
+
: undefined })),
|
|
133
|
+
props.dataList ? (React.createElement("datalist", { id: _dataListId }, (_g = getDataList()) === null || _g === void 0 ? void 0 : _g.map((option) => (React.createElement("option", { key: _dataListId + "-option-" + option.value, value: option.value }, option.label))))) : null,
|
|
122
134
|
props.children,
|
|
123
135
|
stringPropVisible(props.message, props.showMessage) ? (React.createElement(DBInfotext, { size: props.messageSize || "small", icon: props.messageIcon, id: _messageId }, props.message)) : null,
|
|
124
136
|
hasValidState() ? (React.createElement(DBInfotext, { semantic: "successful", id: _validMessageId, size: props.validMessageSize || "small" }, props.validMessage || DEFAULT_VALID_MESSAGE)) : null,
|
|
@@ -43,8 +43,8 @@ export type DBInputDefaultProps = {
|
|
|
43
43
|
*/
|
|
44
44
|
inputmode?: 'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url';
|
|
45
45
|
/**
|
|
46
|
-
|
|
47
|
-
|
|
46
|
+
* The size of the message infotext. Defaults to "small".
|
|
47
|
+
*/
|
|
48
48
|
messageSize?: SizeType;
|
|
49
49
|
/**
|
|
50
50
|
* The size of the valid message infotext. Defaults to "small".
|
|
@@ -59,5 +59,6 @@ export type DBInputProps = DBInputDefaultProps & GlobalProps & FormTextProps & I
|
|
|
59
59
|
export type DBInputDefaultState = {
|
|
60
60
|
_dataListId?: string;
|
|
61
61
|
getDataList: () => ValueLabelType[];
|
|
62
|
+
isIOSSafari: () => boolean;
|
|
62
63
|
};
|
|
63
64
|
export type DBInputState = DBInputDefaultState & GlobalState & InputEventState<HTMLInputElement> & ChangeEventState<HTMLInputElement> & FocusEventState<HTMLInputElement> & FormState & FromValidState;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@db-ux/react-core-components",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.20",
|
|
4
4
|
"description": "React components for @db-ux/core-components",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
"build": "npm-run-all tsc",
|
|
20
20
|
"mv:dist": "cpr dist ../../build-outputs/react/dist --overwrite",
|
|
21
21
|
"mv:agent": "cpr agent ../../build-outputs/react/agent --overwrite",
|
|
22
|
+
"mv:changelog": "cpr CHANGELOG.md ../../build-outputs/react/CHANGELOG.md --overwrite",
|
|
22
23
|
"mv:package.json": "cpr package.json ../../build-outputs/react/package.json --overwrite",
|
|
23
24
|
"mv:readme": "cpr README.md ../../build-outputs/react/README.md --overwrite",
|
|
24
25
|
"open:report": "npx playwright show-report",
|
|
@@ -41,7 +42,7 @@
|
|
|
41
42
|
},
|
|
42
43
|
"sideEffects": false,
|
|
43
44
|
"dependencies": {
|
|
44
|
-
"@db-ux/core-components": "3.1.
|
|
45
|
-
"@db-ux/core-foundations": "3.1.
|
|
45
|
+
"@db-ux/core-components": "3.1.20",
|
|
46
|
+
"@db-ux/core-foundations": "3.1.20"
|
|
46
47
|
}
|
|
47
48
|
}
|