@db-ux/react-core-components 4.4.3 → 4.5.1

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.
Files changed (99) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/agent/.gitkeep +0 -0
  3. package/dist/components/accordion/accordion.js +3 -3
  4. package/dist/components/accordion-item/accordion-item.d.ts +1 -1
  5. package/dist/components/accordion-item/accordion-item.js +2 -1
  6. package/dist/components/badge/badge.d.ts +1 -1
  7. package/dist/components/badge/badge.js +3 -3
  8. package/dist/components/badge/model.d.ts +2 -2
  9. package/dist/components/brand/brand.d.ts +1 -1
  10. package/dist/components/brand/brand.js +2 -2
  11. package/dist/components/button/button.d.ts +1 -1
  12. package/dist/components/button/button.js +2 -2
  13. package/dist/components/button/model.d.ts +8 -10
  14. package/dist/components/card/card.js +2 -1
  15. package/dist/components/checkbox/checkbox.js +15 -6
  16. package/dist/components/custom-button/custom-button.d.ts +3 -0
  17. package/dist/components/custom-button/custom-button.js +12 -0
  18. package/dist/components/custom-button/index.d.ts +1 -0
  19. package/dist/components/custom-button/index.js +1 -0
  20. package/dist/components/custom-button/model.d.ts +6 -0
  21. package/dist/components/custom-button/model.js +1 -0
  22. package/dist/components/custom-select/custom-select.js +33 -20
  23. package/dist/components/custom-select-dropdown/custom-select-dropdown.js +2 -1
  24. package/dist/components/custom-select-form-field/custom-select-form-field.js +2 -1
  25. package/dist/components/custom-select-list/custom-select-list.js +2 -1
  26. package/dist/components/custom-select-list-item/custom-select-list-item.js +2 -1
  27. package/dist/components/divider/divider.js +2 -1
  28. package/dist/components/drawer/drawer.js +3 -3
  29. package/dist/components/header/header.js +3 -3
  30. package/dist/components/icon/icon.d.ts +1 -1
  31. package/dist/components/icon/icon.js +2 -1
  32. package/dist/components/infotext/infotext.d.ts +1 -1
  33. package/dist/components/infotext/infotext.js +2 -2
  34. package/dist/components/infotext/model.d.ts +2 -2
  35. package/dist/components/input/input.js +18 -9
  36. package/dist/components/link/link.d.ts +1 -1
  37. package/dist/components/link/link.js +2 -2
  38. package/dist/components/navigation/navigation.js +2 -1
  39. package/dist/components/navigation-item/navigation-item.d.ts +1 -1
  40. package/dist/components/navigation-item/navigation-item.js +3 -3
  41. package/dist/components/notification/model.d.ts +2 -2
  42. package/dist/components/notification/notification.d.ts +1 -1
  43. package/dist/components/notification/notification.js +3 -3
  44. package/dist/components/page/page.js +2 -1
  45. package/dist/components/popover/popover.js +3 -3
  46. package/dist/components/radio/radio.js +12 -2
  47. package/dist/components/section/section.js +2 -1
  48. package/dist/components/select/select.js +17 -8
  49. package/dist/components/stack/stack.js +2 -1
  50. package/dist/components/switch/switch.js +25 -8
  51. package/dist/components/tab-item/tab-item.d.ts +1 -1
  52. package/dist/components/tab-item/tab-item.js +3 -3
  53. package/dist/components/tab-list/tab-list.js +2 -1
  54. package/dist/components/tab-panel/tab-panel.js +2 -1
  55. package/dist/components/tabs/tabs.js +4 -4
  56. package/dist/components/tag/model.d.ts +2 -6
  57. package/dist/components/tag/tag.d.ts +1 -1
  58. package/dist/components/tag/tag.js +2 -2
  59. package/dist/components/textarea/textarea.js +16 -7
  60. package/dist/components/tooltip/model.d.ts +3 -3
  61. package/dist/components/tooltip/tooltip.d.ts +1 -1
  62. package/dist/components/tooltip/tooltip.js +11 -6
  63. package/dist/index.d.ts +2 -0
  64. package/dist/index.js +2 -0
  65. package/dist/shared/model.d.ts +15 -1
  66. package/dist/utils/floating-components.js +4 -0
  67. package/dist/utils/index.js +6 -7
  68. package/package.json +3 -3
  69. package/agent/Accordion.md +0 -47
  70. package/agent/AccordionItem.md +0 -36
  71. package/agent/Badge.md +0 -43
  72. package/agent/Brand.md +0 -24
  73. package/agent/Button.md +0 -60
  74. package/agent/Card.md +0 -34
  75. package/agent/Checkbox.md +0 -41
  76. package/agent/CustomSelect.md +0 -81
  77. package/agent/Divider.md +0 -32
  78. package/agent/Drawer.md +0 -87
  79. package/agent/Header.md +0 -45
  80. package/agent/Icon.md +0 -31
  81. package/agent/Infotext.md +0 -36
  82. package/agent/Input.md +0 -50
  83. package/agent/Link.md +0 -63
  84. package/agent/Navigation.md +0 -31
  85. package/agent/NavigationItem.md +0 -34
  86. package/agent/Notification.md +0 -45
  87. package/agent/Page.md +0 -36
  88. package/agent/Popover.md +0 -55
  89. package/agent/Radio.md +0 -34
  90. package/agent/Section.md +0 -32
  91. package/agent/Select.md +0 -90
  92. package/agent/Stack.md +0 -46
  93. package/agent/Switch.md +0 -41
  94. package/agent/TabItem.md +0 -34
  95. package/agent/Tabs.md +0 -75
  96. package/agent/Tag.md +0 -56
  97. package/agent/Textarea.md +0 -45
  98. package/agent/Tooltip.md +0 -47
  99. package/agent/_instructions.md +0 -31
@@ -81,14 +81,25 @@ function DBSwitchFn(props, component) {
81
81
  }
82
82
  }
83
83
  }
84
+ function resetIds() {
85
+ var _a, _b, _c;
86
+ const mId = (_c = (_a = props.id) !== null && _a !== void 0 ? _a : (_b = props.propOverrides) === null || _b === void 0 ? void 0 : _b.id) !== null && _c !== void 0 ? _c : `switch-${uuid}`;
87
+ set_id(mId);
88
+ set_messageId(`${mId}${DEFAULT_MESSAGE_ID_SUFFIX}`);
89
+ set_validMessageId(`${mId}${DEFAULT_VALID_MESSAGE_ID_SUFFIX}`);
90
+ set_invalidMessageId(`${mId}${DEFAULT_INVALID_MESSAGE_ID_SUFFIX}`);
91
+ }
84
92
  useEffect(() => {
85
- var _a;
86
- set_id((_a = props.id) !== null && _a !== void 0 ? _a : `switch-${uuid}`);
87
- set_messageId(`${_id}${DEFAULT_MESSAGE_ID_SUFFIX}`);
88
- set_validMessageId(`${_id}${DEFAULT_VALID_MESSAGE_ID_SUFFIX}`);
89
- set_invalidMessageId(`${_id}${DEFAULT_INVALID_MESSAGE_ID_SUFFIX}`);
93
+ resetIds();
90
94
  handleValidation();
95
+ set_invalidMessage(props.invalidMessage || DEFAULT_INVALID_MESSAGE);
91
96
  }, []);
97
+ useEffect(() => {
98
+ var _a, _b;
99
+ if ((_a = props.id) !== null && _a !== void 0 ? _a : (_b = props.propOverrides) === null || _b === void 0 ? void 0 : _b.id) {
100
+ resetIds();
101
+ }
102
+ }, [props.id, (_a = props.propOverrides) === null || _a === void 0 ? void 0 : _a.id]);
92
103
  useEffect(() => {
93
104
  handleValidation();
94
105
  }, [
@@ -100,6 +111,12 @@ function DBSwitchFn(props, component) {
100
111
  props.invalidMessage,
101
112
  props.checked,
102
113
  ]);
114
+ useEffect(() => {
115
+ var _a;
116
+ set_invalidMessage(props.invalidMessage ||
117
+ ((_a = _ref.current) === null || _a === void 0 ? void 0 : _a.validationMessage) ||
118
+ DEFAULT_INVALID_MESSAGE);
119
+ }, [_ref.current, props.invalidMessage]);
103
120
  useEffect(() => {
104
121
  if (_ref.current) {
105
122
  const defaultChecked = props.defaultChecked;
@@ -123,11 +140,11 @@ function DBSwitchFn(props, component) {
123
140
  }, []);
124
141
  return (React.createElement("div", Object.assign({ "data-visual-aid": getBooleanAsString(props.visualAid), "data-size": props.size, "data-hide-label": getHideProp(props.showLabel), "data-variant": props.variant, "data-hide-asterisk": getHideProp(props.showRequiredAsterisk), "data-custom-validity": props.validation }, 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", "data-density"]), { className: cls("db-switch", props.className) }),
125
142
  React.createElement("label", { htmlFor: _id },
126
- React.createElement("input", Object.assign({ type: "checkbox", role: "switch", id: _id, 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", "data-density"]), { checked: getBoolean(props.checked, "checked"), value: props.value, disabled: getBoolean(props.disabled, "disabled"), "aria-invalid": props.validation === "invalid" ? "true" : undefined, "aria-describedby": _descByIds, name: props.name, required: getBoolean(props.required, "required"), "data-aid-icon": (_a = props.iconLeading) !== null && _a !== void 0 ? _a : props.icon, "data-aid-icon-trailing": props.iconTrailing, onChange: (event) => handleChange(event), onBlur: (event) => handleBlur(event), onFocus: (event) => handleFocus(event), onKeyDown: (event) => handleKeyDown(event) })),
143
+ React.createElement("input", Object.assign({ type: "checkbox", role: "switch", id: _id, 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", "data-density"]), { checked: getBoolean(props.checked, "checked"), value: props.value, disabled: getBoolean(props.disabled, "disabled"), "aria-invalid": props.validation === "invalid" ? "true" : undefined, "aria-describedby": _descByIds, name: props.name, required: getBoolean(props.required, "required"), "data-aid-icon": (_b = props.iconLeading) !== null && _b !== void 0 ? _b : props.icon, "data-aid-icon-trailing": props.iconTrailing, onChange: (event) => handleChange(event), onBlur: (event) => handleBlur(event), onFocus: (event) => handleFocus(event), onKeyDown: (event) => handleKeyDown(event) })),
127
144
  props.label ? React.createElement(React.Fragment, null, props.label) : React.createElement(React.Fragment, null, props.children)),
128
145
  stringPropVisible(props.message, props.showMessage) ? (React.createElement(DBInfotext, { size: "small", semantic: "adaptive", id: _messageId, icon: props.messageIcon }, props.message)) : null,
129
- hasValidState() ? (React.createElement(DBInfotext, { size: "small", semantic: "successful", id: _validMessageId }, (_b = props.validMessage) !== null && _b !== void 0 ? _b : DEFAULT_VALID_MESSAGE)) : null,
130
- React.createElement(DBInfotext, { size: "small", semantic: "critical", id: _invalidMessageId }, (_c = _invalidMessage !== null && _invalidMessage !== void 0 ? _invalidMessage : props.invalidMessage) !== null && _c !== void 0 ? _c : DEFAULT_INVALID_MESSAGE),
146
+ hasValidState() ? (React.createElement(DBInfotext, { size: "small", semantic: "successful", id: _validMessageId }, (_c = props.validMessage) !== null && _c !== void 0 ? _c : DEFAULT_VALID_MESSAGE)) : null,
147
+ React.createElement(DBInfotext, { size: "small", semantic: "critical", id: _invalidMessageId }, _invalidMessage),
131
148
  React.createElement("span", { "data-visually-hidden": "true", role: "status" }, _voiceOverFallback)));
132
149
  }
133
150
  const DBSwitch = forwardRef(DBSwitchFn);
@@ -1,3 +1,3 @@
1
1
  import * as React from "react";
2
- declare const DBTabItem: React.ForwardRefExoticComponent<Omit<React.InputHTMLAttributes<any>, "name" | keyof import("../..").GlobalProps | "icon" | "showIcon" | "showIconLeading" | "showIconTrailing" | "iconLeading" | "iconTrailing" | keyof import("../..").ChangeEventProps<HTMLInputElement> | "active" | keyof import("./model").DBTabItemDefaultProps> & import("../..").GlobalProps & import("./model").DBTabItemDefaultProps & import("../..").IconProps & import("../..").IconTrailingProps & import("../..").IconLeadingProps & import("../..").ShowIconLeadingProps & import("../..").ShowIconTrailingProps & import("../..").ActiveProps & import("../..").ChangeEventProps<HTMLInputElement> & import("../..").ShowIconProps & import("../..").NameProps & React.RefAttributes<any>>;
2
+ declare const DBTabItem: React.ForwardRefExoticComponent<Omit<React.InputHTMLAttributes<any>, keyof import("../..").GlobalProps | "name" | "icon" | "showIcon" | "showIconLeading" | "showIconTrailing" | "iconLeading" | "iconTrailing" | keyof import("../..").ChangeEventProps<HTMLInputElement> | "active" | keyof import("./model").DBTabItemDefaultProps> & import("../..").GlobalProps & import("./model").DBTabItemDefaultProps & import("../..").IconProps & import("../..").IconTrailingProps & import("../..").IconLeadingProps & import("../..").ShowIconLeadingProps & import("../..").ShowIconTrailingProps & import("../..").ActiveProps & import("../..").ChangeEventProps<HTMLInputElement> & import("../..").ShowIconProps & import("../..").NameProps & React.RefAttributes<any>>;
3
3
  export default DBTabItem;
@@ -4,7 +4,7 @@ import { filterPassingProps, getRootProps } from "../../utils/react";
4
4
  import { useState, useRef, useEffect, forwardRef } from "react";
5
5
  import { cls, getBoolean, getBooleanAsString } from "../../utils";
6
6
  function DBTabItemFn(props, component) {
7
- var _a, _b;
7
+ var _a, _b, _c, _d, _e, _f;
8
8
  const _ref = component || useRef(component);
9
9
  const [_selected, set_selected] = useState(() => false);
10
10
  const [_name, set_name] = useState(() => undefined);
@@ -69,8 +69,8 @@ function DBTabItemFn(props, component) {
69
69
  };
70
70
  }, []);
71
71
  return (React.createElement("li", Object.assign({ role: "none" }, 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", "data-density"]), { className: cls("db-tab-item", props.className) }),
72
- React.createElement("label", { htmlFor: props.id, "data-icon": (_a = props.iconLeading) !== null && _a !== void 0 ? _a : props.icon, "data-icon-trailing": props.iconTrailing, "data-show-icon": getBooleanAsString((_b = props.showIconLeading) !== null && _b !== void 0 ? _b : props.showIcon), "data-show-icon-trailing": getBooleanAsString(props.showIconTrailing), "data-no-text": getBooleanAsString(props.noText) },
73
- React.createElement("input", Object.assign({ type: "radio", role: "tab", disabled: getBoolean(props.disabled, "disabled"), "aria-selected": _selected, checked: getBoolean(props.checked, "checked"), 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", "data-density"]), { name: _name, id: props.id, onInput: (event) => handleChange(event) })),
72
+ React.createElement("label", { htmlFor: (_a = props.id) !== null && _a !== void 0 ? _a : (_b = props.propOverrides) === null || _b === void 0 ? void 0 : _b.id, "data-icon": (_c = props.iconLeading) !== null && _c !== void 0 ? _c : props.icon, "data-icon-trailing": props.iconTrailing, "data-show-icon": getBooleanAsString((_d = props.showIconLeading) !== null && _d !== void 0 ? _d : props.showIcon), "data-show-icon-trailing": getBooleanAsString(props.showIconTrailing), "data-no-text": getBooleanAsString(props.noText) },
73
+ React.createElement("input", Object.assign({ type: "radio", role: "tab", disabled: getBoolean(props.disabled, "disabled"), "aria-selected": _selected, checked: getBoolean(props.checked, "checked"), 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", "data-density"]), { name: _name, id: (_e = props.id) !== null && _e !== void 0 ? _e : (_f = props.propOverrides) === null || _f === void 0 ? void 0 : _f.id, onInput: (event) => handleChange(event) })),
74
74
  props.label ? React.createElement(React.Fragment, null, props.label) : null,
75
75
  props.children)));
76
76
  }
@@ -4,8 +4,9 @@ import { filterPassingProps, getRootProps } from "../../utils/react";
4
4
  import { useRef, forwardRef } from "react";
5
5
  import { cls } from "../../utils";
6
6
  function DBTabListFn(props, component) {
7
+ var _a, _b;
7
8
  const _ref = component || useRef(component);
8
- return (React.createElement("div", Object.assign({ 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", "data-density"]), { id: props.id }, 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", "data-density"]), { className: cls("db-tab-list", props.className) }),
9
+ return (React.createElement("div", Object.assign({ 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", "data-density"]), { id: (_a = props.id) !== null && _a !== void 0 ? _a : (_b = props.propOverrides) === null || _b === void 0 ? void 0 : _b.id }, 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", "data-density"]), { className: cls("db-tab-list", props.className) }),
9
10
  React.createElement("ul", { role: "tablist" }, props.children)));
10
11
  }
11
12
  const DBTabList = forwardRef(DBTabListFn);
@@ -4,9 +4,10 @@ import { filterPassingProps, getRootProps } from "../../utils/react";
4
4
  import { useRef, useEffect, forwardRef } from "react";
5
5
  import { cls } from "../../utils";
6
6
  function DBTabPanelFn(props, component) {
7
+ var _a, _b;
7
8
  const _ref = component || useRef(component);
8
9
  useEffect(() => { }, []);
9
- return (React.createElement("section", Object.assign({ role: "tabpanel", 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", "data-density"]), 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", "data-density"]), { className: cls("db-tab-panel", props.className), id: props.id }),
10
+ return (React.createElement("section", Object.assign({ role: "tabpanel", 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", "data-density"]), 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", "data-density"]), { className: cls("db-tab-panel", props.className), id: (_a = props.id) !== null && _a !== void 0 ? _a : (_b = props.propOverrides) === null || _b === void 0 ? void 0 : _b.id }),
10
11
  props.content ? React.createElement(React.Fragment, null, props.content) : null,
11
12
  props.children));
12
13
  }
@@ -9,7 +9,7 @@ import DBTabList from "../tab-list/tab-list";
9
9
  import DBTabPanel from "../tab-panel/tab-panel";
10
10
  import { useId } from "react";
11
11
  function DBTabsFn(props, component) {
12
- var _a, _b, _c, _d;
12
+ var _a, _b, _c, _d, _e, _f;
13
13
  const uuid = useId();
14
14
  const _ref = component || useRef(component);
15
15
  const [_name, set_name] = useState(() => "");
@@ -168,11 +168,11 @@ function DBTabsFn(props, component) {
168
168
  set_resizeObserver(undefined);
169
169
  };
170
170
  }, []);
171
- return (React.createElement("div", Object.assign({ 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", "data-density", "onTabSelect", "onIndexChange"]), { id: props.id }, 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", "data-density"]), { className: cls("db-tabs", props.className), "data-orientation": props.orientation, "data-scroll-behavior": props.behavior, "data-alignment": (_a = props.alignment) !== null && _a !== void 0 ? _a : "start", "data-width": (_b = props.width) !== null && _b !== void 0 ? _b : "auto", onInput: (event) => handleChange(event), onChange: (event) => handleChange(event) }),
171
+ return (React.createElement("div", Object.assign({ 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", "data-density", "onTabSelect", "onIndexChange"]), { id: (_a = props.id) !== null && _a !== void 0 ? _a : (_b = props.propOverrides) === null || _b === void 0 ? void 0 : _b.id }, 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", "data-density"]), { className: cls("db-tabs", props.className), "data-orientation": props.orientation, "data-scroll-behavior": props.behavior, "data-alignment": (_c = props.alignment) !== null && _c !== void 0 ? _c : "start", "data-width": (_d = props.width) !== null && _d !== void 0 ? _d : "auto", onInput: (event) => handleChange(event), onChange: (event) => handleChange(event) }),
172
172
  showScrollLeft ? (React.createElement(DBButton, { className: "tabs-scroll-left", variant: "ghost", icon: "chevron_left", type: "button", noText: true, onClick: (event) => scroll(true) }, "Scroll left")) : null,
173
173
  props.tabs ? (React.createElement(React.Fragment, null,
174
- React.createElement(DBTabList, null, (_c = convertTabs()) === null || _c === void 0 ? void 0 : _c.map((tab, index) => (React.createElement(DBTabItem, { key: props.name + "tab-item" + index, active: tab.active, label: tab.label, iconTrailing: tab.iconTrailing, icon: tab.icon, noText: tab.noText })))), (_d = convertTabs()) === null || _d === void 0 ? void 0 :
175
- _d.map((tab, index) => (React.createElement(DBTabPanel, { key: props.name + "tab-panel" + index, content: tab.content }, tab.children))))) : null,
174
+ React.createElement(DBTabList, null, (_e = convertTabs()) === null || _e === void 0 ? void 0 : _e.map((tab, index) => (React.createElement(DBTabItem, { key: props.name + "tab-item" + index, active: tab.active, label: tab.label, iconTrailing: tab.iconTrailing, icon: tab.icon, noText: tab.noText })))), (_f = convertTabs()) === null || _f === void 0 ? void 0 :
175
+ _f.map((tab, index) => (React.createElement(DBTabPanel, { key: props.name + "tab-panel" + index, content: tab.content }, tab.children))))) : null,
176
176
  showScrollRight ? (React.createElement(DBButton, { className: "tabs-scroll-right", variant: "ghost", icon: "chevron_right", type: "button", noText: true, onClick: (event) => scroll() }, "Scroll right")) : null,
177
177
  props.children));
178
178
  }
@@ -1,4 +1,4 @@
1
- import { ClickEvent, ContentSlotProps, EmphasisProps, GlobalProps, GlobalState, IconProps, OverflowProps, SemanticProps, ShowIconProps } from '../../shared/model';
1
+ import { ClickEvent, ContentSlotProps, EmphasisProps, GlobalProps, GlobalState, IconProps, NoTextProps, OverflowProps, SemanticProps, ShowIconProps } from '../../shared/model';
2
2
  export declare const TagBehaviorList: readonly ["static", "removable"];
3
3
  export type TagBehaviorType = (typeof TagBehaviorList)[number];
4
4
  export type DBTagEventsProps = {
@@ -18,10 +18,6 @@ export type DBTagDefaultProps = {
18
18
  * - removable: add a remove button at the end of the tag
19
19
  */
20
20
  behavior?: TagBehaviorType | string;
21
- /**
22
- * Define the text next to the icon specified via the icon Property to get hidden.
23
- */
24
- noText?: boolean | string;
25
21
  /**
26
22
  * The removeButton attribute shows the cancel button.
27
23
  */
@@ -39,7 +35,7 @@ export type DBTagDefaultProps = {
39
35
  */
40
36
  value?: string;
41
37
  };
42
- export type DBTagProps = DBTagDefaultProps & GlobalProps & IconProps & SemanticProps & OverflowProps & EmphasisProps & ShowIconProps & ContentSlotProps & DBTagEventsProps;
38
+ export type DBTagProps = DBTagDefaultProps & GlobalProps & IconProps & SemanticProps & OverflowProps & EmphasisProps & ShowIconProps & ContentSlotProps & DBTagEventsProps & NoTextProps;
43
39
  export type DBTagDefaultState = {
44
40
  getRemoveButtonText: () => string;
45
41
  handleRemove: (event?: ClickEvent<HTMLButtonElement> | void) => void;
@@ -1,3 +1,3 @@
1
1
  import * as React from "react";
2
- declare const DBTag: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<any>, "content" | "semantic" | keyof import("../../shared/model").GlobalProps | "emphasis" | "icon" | "showIcon" | keyof import("./model").DBTagDefaultProps | "overflow" | keyof import("./model").DBTagEventsProps> & import("./model").DBTagDefaultProps & import("../../shared/model").GlobalProps & import("../../shared/model").IconProps & import("../../shared/model").SemanticProps & import("../../shared/model").OverflowProps & import("../../shared/model").EmphasisProps & import("../../shared/model").ShowIconProps & import("../../shared/model").ContentSlotProps & import("./model").DBTagEventsProps & React.RefAttributes<any>>;
2
+ declare const DBTag: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<any>, "content" | keyof import("../../shared/model").GlobalProps | "semantic" | "emphasis" | "icon" | "showIcon" | "noText" | keyof import("./model").DBTagDefaultProps | "overflow" | keyof import("./model").DBTagEventsProps> & import("./model").DBTagDefaultProps & import("../../shared/model").GlobalProps & import("../../shared/model").IconProps & import("../../shared/model").SemanticProps & import("../../shared/model").OverflowProps & import("../../shared/model").EmphasisProps & import("../../shared/model").ShowIconProps & import("../../shared/model").ContentSlotProps & import("./model").DBTagEventsProps & import("../../shared/model").NoTextProps & React.RefAttributes<any>>;
3
3
  export default DBTag;
@@ -6,7 +6,7 @@ import { DEFAULT_REMOVE } from "../../shared/constants";
6
6
  import { cls, getBooleanAsString } from "../../utils";
7
7
  import DBTooltip from "../tooltip/tooltip";
8
8
  function DBTagFn(props, component) {
9
- var _a;
9
+ var _a, _b, _c;
10
10
  const _ref = component || useRef(component);
11
11
  function handleRemove(event) {
12
12
  if (!event)
@@ -23,7 +23,7 @@ function DBTagFn(props, component) {
23
23
  // TODO: We should think this through again, if we would really like to have default and especially english, instead of german labels in here
24
24
  return DEFAULT_REMOVE;
25
25
  }
26
- return (React.createElement("div", Object.assign({ 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", "data-density", "onRemove"]), { id: props.id }, 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", "data-density"]), { className: cls("db-tag", props.className), "data-semantic": props.semantic, "data-emphasis": props.emphasis, "data-icon": props.icon, "data-show-check-state": getBooleanAsString((_a = props.showCheckState) !== null && _a !== void 0 ? _a : true), "data-show-icon": getBooleanAsString(props.showIcon), "data-no-text": getBooleanAsString(props.noText), "data-overflow": getBooleanAsString(props.overflow) }),
26
+ return (React.createElement("div", Object.assign({ 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", "data-density", "onRemove"]), { id: (_a = props.id) !== null && _a !== void 0 ? _a : (_b = props.propOverrides) === null || _b === void 0 ? void 0 : _b.id }, 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", "data-density"]), { className: cls("db-tag", props.className), "data-semantic": props.semantic, "data-emphasis": props.emphasis, "data-icon": props.icon, "data-show-check-state": getBooleanAsString((_c = props.showCheckState) !== null && _c !== void 0 ? _c : true), "data-show-icon": getBooleanAsString(props.showIcon), "data-no-text": getBooleanAsString(props.noText), "data-overflow": getBooleanAsString(props.overflow) }),
27
27
  React.createElement(React.Fragment, null, props.content),
28
28
  props.children,
29
29
  props.text ? React.createElement(React.Fragment, null, props.text) : null,
@@ -8,7 +8,7 @@ import { addValueResetEventListener, } from "../../utils/form-components";
8
8
  import DBInfotext from "../infotext/infotext";
9
9
  import { useId } from "react";
10
10
  function DBTextareaFn(props, component) {
11
- var _a, _b, _c, _d;
11
+ var _a, _b, _c, _d, _e;
12
12
  const uuid = useId();
13
13
  const _ref = component || useRef(component);
14
14
  const [_id, set_id] = useState(() => undefined);
@@ -75,15 +75,24 @@ function DBTextareaFn(props, component) {
75
75
  props.onFocus(event);
76
76
  }
77
77
  }
78
- useEffect(() => {
79
- var _a;
80
- const mId = (_a = props.id) !== null && _a !== void 0 ? _a : `textarea-${uuid}`;
78
+ function resetIds() {
79
+ var _a, _b, _c;
80
+ const mId = (_c = (_a = props.id) !== null && _a !== void 0 ? _a : (_b = props.propOverrides) === null || _b === void 0 ? void 0 : _b.id) !== null && _c !== void 0 ? _c : `textarea-${uuid}`;
81
81
  set_id(mId);
82
82
  set_messageId(mId + DEFAULT_MESSAGE_ID_SUFFIX);
83
83
  set_validMessageId(mId + DEFAULT_VALID_MESSAGE_ID_SUFFIX);
84
84
  set_invalidMessageId(mId + DEFAULT_INVALID_MESSAGE_ID_SUFFIX);
85
+ }
86
+ useEffect(() => {
87
+ resetIds();
85
88
  set_invalidMessage(props.invalidMessage || DEFAULT_INVALID_MESSAGE);
86
89
  }, []);
90
+ useEffect(() => {
91
+ var _a, _b;
92
+ if ((_a = props.id) !== null && _a !== void 0 ? _a : (_b = props.propOverrides) === null || _b === void 0 ? void 0 : _b.id) {
93
+ resetIds();
94
+ }
95
+ }, [props.id, (_a = props.propOverrides) === null || _a === void 0 ? void 0 : _a.id]);
87
96
  useEffect(() => {
88
97
  var _a;
89
98
  set_invalidMessage(props.invalidMessage ||
@@ -133,9 +142,9 @@ function DBTextareaFn(props, component) {
133
142
  };
134
143
  }, []);
135
144
  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", "data-density"]), { className: cls("db-textarea", props.className), "data-variant": props.variant, "data-hide-asterisk": getHideProp(props.showRequiredAsterisk), "data-hide-label": getHideProp(props.showLabel) }),
136
- React.createElement("label", { htmlFor: _id }, (_a = props.label) !== null && _a !== void 0 ? _a : DEFAULT_LABEL),
137
- React.createElement("textarea", 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", "data-density"]), { id: _id, "data-resize": props.resize, "data-hide-resizer": getHideProp((_b = props.showResizer) !== null && _b !== void 0 ? _b : true), disabled: getBoolean(props.disabled, "disabled"), required: getBoolean(props.required, "required"), readOnly: getBoolean(props.readOnly, "readOnly") ||
138
- getBoolean(props.readonly, "readonly"), form: props.form, maxLength: getNumber(props.maxLength, props.maxlength), minLength: getNumber(props.minLength, props.minlength), name: props.name, wrap: props.wrap, spellCheck: props.spellCheck, autoComplete: props.autocomplete, onInput: (event) => handleInput(event), onChange: (event) => handleChange(event), onBlur: (event) => handleBlur(event), onFocus: (event) => handleFocus(event), value: props.value, "aria-describedby": (_c = props.ariaDescribedBy) !== null && _c !== void 0 ? _c : _descByIds, placeholder: (_d = props.placeholder) !== null && _d !== void 0 ? _d : DEFAULT_PLACEHOLDER, rows: getNumber(props.rows, DEFAULT_ROWS), cols: getNumber(props.cols) })),
145
+ React.createElement("label", { htmlFor: _id }, (_b = props.label) !== null && _b !== void 0 ? _b : DEFAULT_LABEL),
146
+ React.createElement("textarea", 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", "data-density"]), { id: _id, "data-resize": props.resize, "data-hide-resizer": getHideProp((_c = props.showResizer) !== null && _c !== void 0 ? _c : true), disabled: getBoolean(props.disabled, "disabled"), required: getBoolean(props.required, "required"), readOnly: getBoolean(props.readOnly, "readOnly") ||
147
+ getBoolean(props.readonly, "readonly"), form: props.form, maxLength: getNumber(props.maxLength, props.maxlength), minLength: getNumber(props.minLength, props.minlength), name: props.name, wrap: props.wrap, spellCheck: props.spellCheck, autoComplete: props.autocomplete, onInput: (event) => handleInput(event), onChange: (event) => handleChange(event), onBlur: (event) => handleBlur(event), onFocus: (event) => handleFocus(event), value: props.value, "aria-describedby": (_d = props.ariaDescribedBy) !== null && _d !== void 0 ? _d : _descByIds, placeholder: (_e = props.placeholder) !== null && _e !== void 0 ? _e : DEFAULT_PLACEHOLDER, rows: getNumber(props.rows, DEFAULT_ROWS), cols: getNumber(props.cols) })),
139
148
  stringPropVisible(props.message, props.showMessage) ? (React.createElement(DBInfotext, { size: "small", icon: props.messageIcon, id: _messageId }, props.message)) : null,
140
149
  hasValidState() ? (React.createElement(DBInfotext, { size: "small", semantic: "successful", id: _validMessageId }, props.validMessage || DEFAULT_VALID_MESSAGE)) : null,
141
150
  React.createElement(DBInfotext, { size: "small", semantic: "critical", id: _invalidMessageId }, _invalidMessage),
@@ -1,4 +1,4 @@
1
- import { ClickEventState, DocumentScrollState, EmphasisProps, GlobalProps, GlobalState, InitializedState, PlacementProps, PopoverProps, PopoverState } from '../../shared/model';
1
+ import { ClickEventState, DocumentScrollState, EmphasisProps, GlobalProps, GlobalState, InitializedState, PlacementProps, PopoverProps, PopoverState, ResetIdState, WrapProps } from '../../shared/model';
2
2
  export declare const TooltipVariantList: readonly ["description", "label"];
3
3
  export type TooltipVariantType = (typeof TooltipVariantList)[number];
4
4
  export type DBTooltipDefaultProps = {
@@ -13,8 +13,8 @@ export type DBTooltipDefaultProps = {
13
13
  */
14
14
  variant?: TooltipVariantType;
15
15
  };
16
- export type DBTooltipProps = DBTooltipDefaultProps & GlobalProps & EmphasisProps & PlacementProps & PopoverProps;
16
+ export type DBTooltipProps = DBTooltipDefaultProps & GlobalProps & EmphasisProps & PlacementProps & PopoverProps & WrapProps;
17
17
  export type DBTooltipDefaultState = {
18
18
  getParent: () => HTMLElement;
19
19
  };
20
- export type DBTooltipState = DBTooltipDefaultState & GlobalState & ClickEventState<HTMLElement> & PopoverState & InitializedState & DocumentScrollState;
20
+ export type DBTooltipState = DBTooltipDefaultState & GlobalState & ClickEventState<HTMLElement> & PopoverState & InitializedState & DocumentScrollState & ResetIdState;
@@ -1,3 +1,3 @@
1
1
  import * as React from "react";
2
- declare const DBTooltip: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<any>, keyof import("../../shared/model").GlobalProps | "placement" | "emphasis" | keyof import("./model").DBTooltipDefaultProps | keyof import("../../shared/model").PopoverProps> & import("./model").DBTooltipDefaultProps & import("../../shared/model").GlobalProps & import("../../shared/model").EmphasisProps & import("../../shared/model").PlacementProps & import("../../shared/model").PopoverProps & React.RefAttributes<any>>;
2
+ declare const DBTooltip: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<any>, keyof import("../../shared/model").GlobalProps | "placement" | "emphasis" | "wrap" | keyof import("./model").DBTooltipDefaultProps | keyof import("../../shared/model").PopoverProps> & import("./model").DBTooltipDefaultProps & import("../../shared/model").GlobalProps & import("../../shared/model").EmphasisProps & import("../../shared/model").PlacementProps & import("../../shared/model").PopoverProps & import("../../shared/model").WrapProps & React.RefAttributes<any>>;
3
3
  export default DBTooltip;
@@ -8,7 +8,7 @@ import { DocumentScrollListener } from "../../utils/document-scroll-listener";
8
8
  import { handleFixedPopover } from "../../utils/floating-components";
9
9
  import { useId } from "react";
10
10
  function DBTooltipFn(props, component) {
11
- var _a, _b;
11
+ var _a, _b, _c;
12
12
  const uuid = useId();
13
13
  const _ref = component || useRef(component);
14
14
  const [_id, set_id] = useState(() => DEFAULT_ID);
@@ -64,15 +64,20 @@ function DBTooltipFn(props, component) {
64
64
  handleAutoPlacement(parent);
65
65
  _observer === null || _observer === void 0 ? void 0 : _observer.observe(getParent());
66
66
  }
67
+ function resetIds() {
68
+ var _a, _b, _c;
69
+ set_id((_c = (_a = props.id) !== null && _a !== void 0 ? _a : (_b = props.propOverrides) === null || _b === void 0 ? void 0 : _b.id) !== null && _c !== void 0 ? _c : "tooltip-" + uuid);
70
+ }
67
71
  useEffect(() => {
68
- set_id(props.id || "tooltip-" + uuid);
72
+ resetIds();
69
73
  setInitialized(true);
70
74
  }, []);
71
75
  useEffect(() => {
72
- if (props.id) {
73
- set_id(props.id);
76
+ var _a, _b;
77
+ if ((_a = props.id) !== null && _a !== void 0 ? _a : (_b = props.propOverrides) === null || _b === void 0 ? void 0 : _b.id) {
78
+ resetIds();
74
79
  }
75
- }, [props.id]);
80
+ }, [props.id, (_a = props.propOverrides) === null || _a === void 0 ? void 0 : _a.id]);
76
81
  useEffect(() => {
77
82
  if (_ref.current && initialized && _id) {
78
83
  const parent = getParent();
@@ -104,7 +109,7 @@ function DBTooltipFn(props, component) {
104
109
  setInitialized(false);
105
110
  }
106
111
  }, [_ref.current, initialized, _id]);
107
- return (React.createElement("i", Object.assign({ role: "tooltip", "aria-hidden": "true", "data-gap": "true", 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", "data-density"]), 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", "data-density"]), { className: cls("db-tooltip", props.className), id: _id, "data-emphasis": props.emphasis, "data-animation": getBooleanAsString((_a = props.animation) !== null && _a !== void 0 ? _a : true), "data-delay": props.delay, "data-width": props.width, "data-show-arrow": getBooleanAsString((_b = props.showArrow) !== null && _b !== void 0 ? _b : true), "data-placement": props.placement, onClick: (event) => handleClick(event) }), props.children));
112
+ return (React.createElement("i", Object.assign({ role: "tooltip", "aria-hidden": "true", "data-gap": "true", 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", "data-density"]), 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", "data-density"]), { className: cls("db-tooltip", props.className), id: _id, "data-emphasis": props.emphasis, "data-wrap": getBooleanAsString(props.wrap), "data-animation": getBooleanAsString((_b = props.animation) !== null && _b !== void 0 ? _b : true), "data-delay": props.delay, "data-width": props.width, "data-show-arrow": getBooleanAsString((_c = props.showArrow) !== null && _c !== void 0 ? _c : true), "data-placement": props.placement, onClick: (event) => handleClick(event) }), props.children));
108
113
  }
109
114
  const DBTooltip = forwardRef(DBTooltipFn);
110
115
  export default DBTooltip;
package/dist/index.d.ts CHANGED
@@ -12,6 +12,8 @@ export * from './components/card';
12
12
  export * from './components/card/model';
13
13
  export * from './components/checkbox';
14
14
  export * from './components/checkbox/model';
15
+ export * from './components/custom-button';
16
+ export * from './components/custom-button/model';
15
17
  export * from './components/custom-select';
16
18
  export * from './components/custom-select-dropdown';
17
19
  export * from './components/custom-select-dropdown/model';
package/dist/index.js CHANGED
@@ -12,6 +12,8 @@ export * from './components/card';
12
12
  export * from './components/card/model';
13
13
  export * from './components/checkbox';
14
14
  export * from './components/checkbox/model';
15
+ export * from './components/custom-button';
16
+ export * from './components/custom-button/model';
15
17
  export * from './components/custom-select';
16
18
  export * from './components/custom-select-dropdown';
17
19
  export * from './components/custom-select-dropdown/model';
@@ -21,7 +21,12 @@ export interface GlobalProps {
21
21
  * Before using please check for the [accessibility concerns](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/autofocus#accessibility_concerns)
22
22
  */
23
23
  autofocus?: boolean | string;
24
+ /**
25
+ * Allows overriding specific props on nested elements or internal component structure.
26
+ */
27
+ propOverrides?: PropOverridesType;
24
28
  }
29
+ export type PropOverridesType = Pick<GlobalProps, 'id'>;
25
30
  export type GlobalState = {
26
31
  _id?: string;
27
32
  };
@@ -352,6 +357,9 @@ export type FromValidState = {
352
357
  handleValidation: () => void;
353
358
  _invalidMessage?: string;
354
359
  };
360
+ export type ResetIdState = {
361
+ resetIds: () => void;
362
+ };
355
363
  export type FormState = {
356
364
  _messageId?: string;
357
365
  _validMessageId?: string;
@@ -369,7 +377,7 @@ export type FormState = {
369
377
  * We use this to remove form event listener
370
378
  */
371
379
  abortController?: AbortController;
372
- };
380
+ } & ResetIdState;
373
381
  export type InitializedState = {
374
382
  initialized: boolean;
375
383
  };
@@ -520,6 +528,12 @@ export type AriaControlsProps = {
520
528
  */
521
529
  controls?: string;
522
530
  };
531
+ export type NoTextProps = {
532
+ /**
533
+ * Define the text next to the icon specified via the icon Property to get hidden.
534
+ */
535
+ noText?: boolean | string;
536
+ };
523
537
  export type ValueLabelType = {
524
538
  value: string;
525
539
  label?: string;
@@ -60,6 +60,8 @@ export const handleDataOutside = (el) => {
60
60
  return dataOutsidePair;
61
61
  };
62
62
  export const handleFixedDropdown = (element, parent, placement) => {
63
+ if (!element || !parent)
64
+ return;
63
65
  // We skip this if we are in mobile it's already fixed
64
66
  if (getComputedStyle(element).zIndex === '9999')
65
67
  return;
@@ -249,6 +251,8 @@ const getAncestorHasCorrectedPlacement = (element) => {
249
251
  };
250
252
  export const handleFixedPopover = (element, parent, placement) => {
251
253
  var _a, _b;
254
+ if (!element || !parent)
255
+ return;
252
256
  const parentComputedStyles = getComputedStyle(parent);
253
257
  const parentHasFloatingPosition = ['absolute', 'fixed'].includes(parentComputedStyles.position);
254
258
  const ancestorWithCorrectedPlacement = getAncestorHasCorrectedPlacement(element);
@@ -70,15 +70,15 @@ export const getBooleanAsString = (originBool) => {
70
70
  if (originBool === undefined || originBool === null)
71
71
  return;
72
72
  if (typeof originBool === 'string') {
73
- return String(Boolean(originBool));
73
+ return String(originBool === 'true');
74
74
  }
75
75
  return String(originBool);
76
76
  };
77
77
  export const getBoolean = (originBool, propertyName) => {
78
78
  if (originBool === undefined || originBool === null)
79
79
  return;
80
- if (typeof originBool === 'string' && propertyName) {
81
- return Boolean(propertyName === originBool || originBool);
80
+ if (typeof originBool === 'string') {
81
+ return Boolean(propertyName === originBool || originBool === 'true');
82
82
  }
83
83
  return Boolean(originBool);
84
84
  };
@@ -119,20 +119,19 @@ export const getStep = (step) => {
119
119
  export const getInputValue = (value, inputType) => {
120
120
  return inputType && ['number', 'range'].includes(inputType) ? getNumber(value) : value;
121
121
  };
122
+ const toBool = (value) => typeof value === 'string' ? value === 'true' : value;
122
123
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
123
124
  export const getHideProp = (show) => {
124
125
  if (show === undefined || show === null) {
125
126
  return undefined;
126
127
  }
127
- return getBooleanAsString(!Boolean(show));
128
+ return getBooleanAsString(!toBool(show));
128
129
  };
129
130
  export const stringPropVisible = (givenString, showString) => {
130
131
  if (showString === undefined) {
131
132
  return !!givenString;
132
133
  }
133
- else {
134
- return Boolean(showString) && Boolean(givenString);
135
- }
134
+ return toBool(showString) && Boolean(givenString);
136
135
  };
137
136
  export const getSearchInput = (element) => element.querySelector(`input[type="search"]`);
138
137
  export const getOptionKey = (option, prefix) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@db-ux/react-core-components",
3
- "version": "4.4.3",
3
+ "version": "4.5.1",
4
4
  "description": "React components for @db-ux/core-components",
5
5
  "repository": {
6
6
  "type": "git",
@@ -41,7 +41,7 @@
41
41
  },
42
42
  "sideEffects": false,
43
43
  "dependencies": {
44
- "@db-ux/core-components": "4.4.3",
45
- "@db-ux/core-foundations": "4.4.3"
44
+ "@db-ux/core-components": "4.5.1",
45
+ "@db-ux/core-foundations": "4.5.1"
46
46
  }
47
47
  }
@@ -1,47 +0,0 @@
1
-
2
-
3
- # Accordion Examples (react)
4
-
5
- ```tsx
6
- import * as React from "react";
7
- import { DBAccordion } from "@db-ux/react-react-core-components";
8
-
9
- function Accordion(props: any) {
10
- function getItems() {
11
- return [
12
- {
13
- text: "Item 1 Content",
14
- headlinePlain: "Item 1",
15
- disabled: false,
16
- },
17
- {
18
- text: "Item 2 Content",
19
- headlinePlain: "Item 2",
20
- disabled: true,
21
- },
22
- ];
23
- }
24
-
25
- return (
26
- <>
27
- <h1>DBAccordion Documentation Examples</h1>
28
- <h2>1. Default Accordion</h2>
29
- <DBAccordion>Default Accordion</DBAccordion>
30
- <h2>2. Behavior Variants</h2>
31
- <DBAccordion behavior="multiple">Multiple Behavior</DBAccordion>
32
- <DBAccordion behavior="single">Single Behavior</DBAccordion>
33
- <h2>3. Initial Open Index</h2>
34
- <DBAccordion initOpenIndex={[0, 1]}>Initial Open Index</DBAccordion>
35
- <h2>4. Items</h2>
36
- <DBAccordion items={getItems()}>Accordion with Items</DBAccordion>
37
- <h2>5. Name Attribute</h2>
38
- <DBAccordion name="accordion-name">With Name</DBAccordion>
39
- <h2>6. Variant Types</h2>
40
- <DBAccordion variant="divider">Divider Variant</DBAccordion>
41
- <DBAccordion variant="card">Card Variant</DBAccordion>
42
- </>
43
- );
44
- }
45
-
46
- export default Accordion;
47
- ```
@@ -1,36 +0,0 @@
1
-
2
-
3
- # AccordionItem Examples (react)
4
-
5
- ```tsx
6
- import * as React from "react";
7
- import { DBAccordionItem } from "@db-ux/react-react-core-components";
8
-
9
- function AccordionItem(props: any) {
10
- return (
11
- <>
12
- <h1>DBAccordionItem Documentation Examples</h1>
13
- <h2>1. Default Accordion Item</h2>
14
- <DBAccordionItem>Default Accordion Item</DBAccordionItem>
15
- <h2>2. Initial State</h2>
16
- <DBAccordionItem defaultOpen>Initially Open</DBAccordionItem>
17
- <DBAccordionItem defaultOpen={false}>Initially Closed</DBAccordionItem>
18
- <h2>3. Disabled State</h2>
19
- <DBAccordionItem disabled>Disabled Accordion Item</DBAccordionItem>
20
- <h2>4. Headline Variants</h2>
21
- <DBAccordionItem headline={<strong>Custom Headline</strong>}>
22
- With Custom Headline
23
- </DBAccordionItem>
24
- <DBAccordionItem headlinePlain="Plain Headline">
25
- With Plain Headline
26
- </DBAccordionItem>
27
- <h2>5. Toggle Event</h2>
28
- <DBAccordionItem onToggle={(open) => console.log("Toggled:", open)}>
29
- With Toggle Event
30
- </DBAccordionItem>
31
- </>
32
- );
33
- }
34
-
35
- export default AccordionItem;
36
- ```