@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
- props.dataList ? (React.createElement("datalist", { id: _dataListId }, (_f = getDataList()) === null || _f === void 0 ? void 0 : _f.map((option) => (React.createElement("option", { key: _dataListId + "-option-" + option.value, value: option.value }, option.label))))) : null,
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
- * The size of the message infotext. Defaults to "small".
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.18",
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.18",
45
- "@db-ux/core-foundations": "3.1.18"
45
+ "@db-ux/core-components": "3.1.20",
46
+ "@db-ux/core-foundations": "3.1.20"
46
47
  }
47
48
  }