@db-ux/react-core-components 4.9.1 → 4.10.0-esm-f121fc3

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 (241) hide show
  1. package/CHANGELOG.md +9 -2
  2. package/README.md +97 -35
  3. package/dist/components/accordion/accordion.d.ts +1 -1
  4. package/dist/components/accordion/accordion.js +102 -86
  5. package/dist/components/accordion/index.d.ts +1 -1
  6. package/dist/components/accordion/model.d.ts +1 -1
  7. package/dist/components/accordion/model.js +4 -2
  8. package/dist/components/accordion-item/accordion-item.d.ts +3 -2
  9. package/dist/components/accordion-item/accordion-item.js +89 -56
  10. package/dist/components/accordion-item/index.d.ts +1 -1
  11. package/dist/components/accordion-item/model.d.ts +5 -1
  12. package/dist/components/badge/badge.d.ts +1 -1
  13. package/dist/components/badge/badge.js +72 -32
  14. package/dist/components/badge/index.d.ts +1 -1
  15. package/dist/components/badge/model.d.ts +1 -1
  16. package/dist/components/badge/model.js +12 -1
  17. package/dist/components/brand/brand.d.ts +1 -1
  18. package/dist/components/brand/brand.js +60 -13
  19. package/dist/components/brand/index.d.ts +1 -1
  20. package/dist/components/brand/model.d.ts +1 -1
  21. package/dist/components/button/button.d.ts +1 -1
  22. package/dist/components/button/button.js +75 -21
  23. package/dist/components/button/index.d.ts +1 -1
  24. package/dist/components/button/model.d.ts +1 -1
  25. package/dist/components/button/model.js +13 -2
  26. package/dist/components/card/card.d.ts +1 -1
  27. package/dist/components/card/card.js +65 -15
  28. package/dist/components/card/index.d.ts +1 -1
  29. package/dist/components/card/model.d.ts +1 -1
  30. package/dist/components/card/model.js +8 -2
  31. package/dist/components/checkbox/checkbox.d.ts +1 -1
  32. package/dist/components/checkbox/checkbox.js +163 -157
  33. package/dist/components/checkbox/index.d.ts +1 -1
  34. package/dist/components/checkbox/model.d.ts +1 -1
  35. package/dist/components/custom-button/custom-button.d.ts +1 -1
  36. package/dist/components/custom-button/custom-button.js +65 -10
  37. package/dist/components/custom-button/index.d.ts +1 -1
  38. package/dist/components/custom-button/model.d.ts +2 -2
  39. package/dist/components/custom-select/custom-select.d.ts +1 -1
  40. package/dist/components/custom-select/custom-select.js +509 -727
  41. package/dist/components/custom-select/index.d.ts +1 -1
  42. package/dist/components/custom-select/model.d.ts +3 -3
  43. package/dist/components/custom-select/model.js +8 -1
  44. package/dist/components/custom-select-dropdown/custom-select-dropdown.d.ts +1 -1
  45. package/dist/components/custom-select-dropdown/custom-select-dropdown.js +62 -11
  46. package/dist/components/custom-select-dropdown/index.d.ts +1 -1
  47. package/dist/components/custom-select-dropdown/model.d.ts +1 -1
  48. package/dist/components/custom-select-dropdown/model.js +8 -1
  49. package/dist/components/custom-select-form-field/custom-select-form-field.d.ts +1 -1
  50. package/dist/components/custom-select-form-field/custom-select-form-field.js +57 -10
  51. package/dist/components/custom-select-form-field/index.d.ts +1 -1
  52. package/dist/components/custom-select-form-field/model.d.ts +1 -1
  53. package/dist/components/custom-select-list/custom-select-list.d.ts +1 -1
  54. package/dist/components/custom-select-list/custom-select-list.js +60 -11
  55. package/dist/components/custom-select-list/index.d.ts +1 -1
  56. package/dist/components/custom-select-list/model.d.ts +1 -1
  57. package/dist/components/custom-select-list-item/custom-select-list-item.d.ts +2 -2
  58. package/dist/components/custom-select-list-item/custom-select-list-item.js +89 -32
  59. package/dist/components/custom-select-list-item/index.d.ts +1 -1
  60. package/dist/components/custom-select-list-item/model.d.ts +1 -1
  61. package/dist/components/custom-select-list-item/model.js +4 -1
  62. package/dist/components/divider/divider.d.ts +1 -1
  63. package/dist/components/divider/divider.js +60 -10
  64. package/dist/components/divider/index.d.ts +1 -1
  65. package/dist/components/divider/model.d.ts +1 -1
  66. package/dist/components/divider/model.js +4 -2
  67. package/dist/components/drawer/drawer.d.ts +2 -2
  68. package/dist/components/drawer/drawer.js +118 -97
  69. package/dist/components/drawer/index.d.ts +1 -1
  70. package/dist/components/drawer/model.d.ts +1 -1
  71. package/dist/components/drawer/model.js +14 -4
  72. package/dist/components/header/header.d.ts +1 -1
  73. package/dist/components/header/header.js +143 -65
  74. package/dist/components/header/index.d.ts +1 -1
  75. package/dist/components/header/model.d.ts +1 -1
  76. package/dist/components/icon/icon.d.ts +1 -1
  77. package/dist/components/icon/icon.js +61 -12
  78. package/dist/components/icon/index.d.ts +1 -1
  79. package/dist/components/icon/model.d.ts +1 -1
  80. package/dist/components/icon/model.js +11 -1
  81. package/dist/components/infotext/index.d.ts +1 -1
  82. package/dist/components/infotext/infotext.d.ts +1 -1
  83. package/dist/components/infotext/infotext.js +62 -12
  84. package/dist/components/infotext/model.d.ts +1 -1
  85. package/dist/components/input/index.d.ts +1 -1
  86. package/dist/components/input/input.d.ts +1 -1
  87. package/dist/components/input/input.js +198 -167
  88. package/dist/components/input/model.d.ts +1 -1
  89. package/dist/components/input/model.js +21 -5
  90. package/dist/components/link/index.d.ts +1 -1
  91. package/dist/components/link/link.d.ts +1 -1
  92. package/dist/components/link/link.js +70 -12
  93. package/dist/components/link/model.d.ts +1 -1
  94. package/dist/components/link/model.js +8 -3
  95. package/dist/components/navigation/index.d.ts +1 -1
  96. package/dist/components/navigation/model.d.ts +1 -1
  97. package/dist/components/navigation/navigation.d.ts +1 -1
  98. package/dist/components/navigation/navigation.js +57 -11
  99. package/dist/components/navigation-item/index.d.ts +1 -1
  100. package/dist/components/navigation-item/model.d.ts +6 -2
  101. package/dist/components/navigation-item/navigation-item.d.ts +1 -1
  102. package/dist/components/navigation-item/navigation-item.js +117 -81
  103. package/dist/components/notification/index.d.ts +1 -1
  104. package/dist/components/notification/model.d.ts +1 -1
  105. package/dist/components/notification/model.js +12 -3
  106. package/dist/components/notification/notification.d.ts +2 -2
  107. package/dist/components/notification/notification.js +100 -32
  108. package/dist/components/page/index.d.ts +1 -1
  109. package/dist/components/page/model.d.ts +1 -1
  110. package/dist/components/page/model.js +4 -2
  111. package/dist/components/page/page.d.ts +1 -1
  112. package/dist/components/page/page.js +74 -46
  113. package/dist/components/popover/index.d.ts +1 -1
  114. package/dist/components/popover/model.d.ts +1 -1
  115. package/dist/components/popover/popover.d.ts +1 -1
  116. package/dist/components/popover/popover.js +126 -125
  117. package/dist/components/radio/index.d.ts +1 -1
  118. package/dist/components/radio/model.d.ts +1 -1
  119. package/dist/components/radio/radio.d.ts +1 -1
  120. package/dist/components/radio/radio.js +124 -85
  121. package/dist/components/section/index.d.ts +1 -1
  122. package/dist/components/section/model.d.ts +1 -1
  123. package/dist/components/section/section.d.ts +1 -1
  124. package/dist/components/section/section.js +59 -10
  125. package/dist/components/select/index.d.ts +1 -1
  126. package/dist/components/select/model.d.ts +1 -1
  127. package/dist/components/select/select.d.ts +1 -1
  128. package/dist/components/select/select.js +188 -191
  129. package/dist/components/stack/index.d.ts +1 -1
  130. package/dist/components/stack/model.d.ts +1 -1
  131. package/dist/components/stack/model.js +14 -4
  132. package/dist/components/stack/stack.d.ts +1 -1
  133. package/dist/components/stack/stack.js +63 -10
  134. package/dist/components/switch/index.d.ts +1 -1
  135. package/dist/components/switch/model.d.ts +1 -1
  136. package/dist/components/switch/switch.d.ts +1 -1
  137. package/dist/components/switch/switch.js +182 -150
  138. package/dist/components/tab-item/index.d.ts +1 -1
  139. package/dist/components/tab-item/model.d.ts +1 -1
  140. package/dist/components/tab-item/tab-item.d.ts +1 -1
  141. package/dist/components/tab-item/tab-item.js +105 -76
  142. package/dist/components/tab-list/index.d.ts +1 -1
  143. package/dist/components/tab-list/model.d.ts +1 -1
  144. package/dist/components/tab-list/tab-list.d.ts +1 -1
  145. package/dist/components/tab-list/tab-list.js +60 -11
  146. package/dist/components/tab-panel/index.d.ts +1 -1
  147. package/dist/components/tab-panel/model.d.ts +1 -1
  148. package/dist/components/tab-panel/tab-panel.d.ts +1 -1
  149. package/dist/components/tab-panel/tab-panel.js +59 -13
  150. package/dist/components/tabs/index.d.ts +1 -1
  151. package/dist/components/tabs/model.d.ts +1 -1
  152. package/dist/components/tabs/model.js +4 -2
  153. package/dist/components/tabs/tabs.d.ts +1 -1
  154. package/dist/components/tabs/tabs.js +191 -178
  155. package/dist/components/tag/index.d.ts +1 -1
  156. package/dist/components/tag/model.d.ts +1 -1
  157. package/dist/components/tag/model.js +4 -1
  158. package/dist/components/tag/tag.d.ts +1 -1
  159. package/dist/components/tag/tag.js +91 -32
  160. package/dist/components/textarea/index.d.ts +1 -1
  161. package/dist/components/textarea/model.d.ts +1 -1
  162. package/dist/components/textarea/model.js +13 -2
  163. package/dist/components/textarea/textarea.d.ts +1 -1
  164. package/dist/components/textarea/textarea.js +165 -150
  165. package/dist/components/tooltip/index.d.ts +1 -1
  166. package/dist/components/tooltip/model.d.ts +1 -1
  167. package/dist/components/tooltip/model.js +4 -1
  168. package/dist/components/tooltip/tooltip.d.ts +1 -1
  169. package/dist/components/tooltip/tooltip.js +119 -115
  170. package/dist/index.d.ts +26 -26
  171. package/dist/index.js +64 -81
  172. package/dist/shared/constants.js +32 -94
  173. package/dist/shared/figma.d.ts +12 -6
  174. package/dist/shared/model.js +73 -22
  175. package/dist/utils/document-click-listener.js +26 -29
  176. package/dist/utils/document-scroll-listener.js +30 -38
  177. package/dist/utils/floating-components.js +107 -358
  178. package/dist/utils/form-components.js +34 -60
  179. package/dist/utils/index.d.ts +1 -1
  180. package/dist/utils/index.js +49 -167
  181. package/dist/utils/navigation.js +68 -135
  182. package/dist/utils/react.js +10 -15
  183. package/package.json +13 -8
  184. package/dist/components/accordion/index.js +0 -1
  185. package/dist/components/accordion-item/index.js +0 -1
  186. package/dist/components/accordion-item/model.js +0 -1
  187. package/dist/components/badge/index.js +0 -1
  188. package/dist/components/brand/index.js +0 -1
  189. package/dist/components/brand/model.js +0 -1
  190. package/dist/components/button/index.js +0 -1
  191. package/dist/components/card/index.js +0 -1
  192. package/dist/components/checkbox/index.js +0 -1
  193. package/dist/components/checkbox/model.js +0 -1
  194. package/dist/components/custom-button/index.js +0 -1
  195. package/dist/components/custom-button/model.js +0 -1
  196. package/dist/components/custom-select/index.js +0 -1
  197. package/dist/components/custom-select-dropdown/index.js +0 -1
  198. package/dist/components/custom-select-form-field/index.js +0 -1
  199. package/dist/components/custom-select-form-field/model.js +0 -1
  200. package/dist/components/custom-select-list/index.js +0 -1
  201. package/dist/components/custom-select-list/model.js +0 -1
  202. package/dist/components/custom-select-list-item/index.js +0 -1
  203. package/dist/components/divider/index.js +0 -1
  204. package/dist/components/drawer/index.js +0 -1
  205. package/dist/components/header/index.js +0 -1
  206. package/dist/components/header/model.js +0 -1
  207. package/dist/components/icon/index.js +0 -1
  208. package/dist/components/infotext/index.js +0 -1
  209. package/dist/components/infotext/model.js +0 -1
  210. package/dist/components/input/index.js +0 -1
  211. package/dist/components/link/index.js +0 -1
  212. package/dist/components/navigation/index.js +0 -1
  213. package/dist/components/navigation/model.js +0 -1
  214. package/dist/components/navigation-item/index.js +0 -1
  215. package/dist/components/navigation-item/model.js +0 -1
  216. package/dist/components/notification/index.js +0 -1
  217. package/dist/components/page/index.js +0 -1
  218. package/dist/components/popover/index.js +0 -1
  219. package/dist/components/popover/model.js +0 -1
  220. package/dist/components/radio/index.js +0 -1
  221. package/dist/components/radio/model.js +0 -1
  222. package/dist/components/section/index.js +0 -1
  223. package/dist/components/section/model.js +0 -1
  224. package/dist/components/select/index.js +0 -1
  225. package/dist/components/select/model.js +0 -1
  226. package/dist/components/stack/index.js +0 -1
  227. package/dist/components/switch/index.js +0 -1
  228. package/dist/components/switch/model.js +0 -1
  229. package/dist/components/tab-item/index.js +0 -1
  230. package/dist/components/tab-item/model.js +0 -1
  231. package/dist/components/tab-list/index.js +0 -1
  232. package/dist/components/tab-list/model.js +0 -1
  233. package/dist/components/tab-panel/index.js +0 -1
  234. package/dist/components/tab-panel/model.js +0 -1
  235. package/dist/components/tabs/index.js +0 -1
  236. package/dist/components/tag/index.js +0 -1
  237. package/dist/components/textarea/index.js +0 -1
  238. package/dist/components/tooltip/index.js +0 -1
  239. package/dist/shared/examples/index.js +0 -4
  240. package/dist/shared/figma.js +0 -1
  241. package/dist/shared/showcase/show-code-link.js +0 -51
@@ -1,34 +1,93 @@
1
1
  "use client";
2
- import * as React from "react";
3
- import { filterPassingProps, getRootProps } from "../../utils/react";
4
- import { useRef, forwardRef } from "react";
5
- import { DEFAULT_REMOVE } from "../../shared/constants";
6
- import { cls, getBooleanAsString } from "../../utils";
7
- import DBTooltip from "../tooltip/tooltip";
8
- function DBTagFn(props, component) {
9
- var _a, _b, _c;
10
- const _ref = component || useRef(component);
11
- function handleRemove(event) {
12
- if (!event)
13
- return;
14
- event.stopPropagation();
15
- if (props.onRemove) {
16
- props.onRemove(event);
17
- }
18
- }
19
- function getRemoveButtonText() {
20
- if (props.removeButton) {
21
- return props.removeButton;
22
- }
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
- return DEFAULT_REMOVE;
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: (_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
- React.createElement(React.Fragment, null, props.content),
28
- props.text ? React.createElement(React.Fragment, null, props.text) : null,
29
- props.children,
30
- props.behavior === "removable" ? (React.createElement("button", { className: "db-button db-tab-remove-button", "data-icon": "cross", "data-size": "small", "data-no-text": "true", "data-variant": "ghost", type: "button", onClick: (event) => handleRemove(event) },
31
- React.createElement(DBTooltip, { variant: "label" }, getRemoveButtonText()))) : null));
2
+ import { filterPassingProps as e, getRootProps as t } from "../../utils/react.js";
3
+ import { cls as n, getBooleanAsString as r } from "../../utils/index.js";
4
+ import { DEFAULT_REMOVE as i } from "../../shared/constants.js";
5
+ import a from "../tooltip/tooltip.js";
6
+ import { forwardRef as o, useRef as s } from "react";
7
+ import { Fragment as c, jsx as l, jsxs as u } from "react/jsx-runtime";
8
+ //#region src/components/tag/tag.tsx
9
+ function d(o, d) {
10
+ let f = d || s(d);
11
+ function p(e) {
12
+ e && (e.stopPropagation(), o.onRemove && o.onRemove(e));
13
+ }
14
+ function m() {
15
+ return o.removeButton ? o.removeButton : i;
16
+ }
17
+ return /* @__PURE__ */ u("div", {
18
+ ref: f,
19
+ ...e(o, [
20
+ "data-icon-variant",
21
+ "data-icon-variant-before",
22
+ "data-icon-variant-after",
23
+ "data-icon-weight",
24
+ "data-icon-weight-before",
25
+ "data-icon-weight-after",
26
+ "data-interactive",
27
+ "data-force-mobile",
28
+ "data-color",
29
+ "data-container-color",
30
+ "data-bg-color",
31
+ "data-on-bg-color",
32
+ "data-color-scheme",
33
+ "data-font-size",
34
+ "data-headline-size",
35
+ "data-divider",
36
+ "data-focus",
37
+ "data-font",
38
+ "data-density",
39
+ "onRemove"
40
+ ]),
41
+ id: o.id ?? o.propOverrides?.id,
42
+ ...t(o, [
43
+ "data-icon-variant",
44
+ "data-icon-variant-before",
45
+ "data-icon-variant-after",
46
+ "data-icon-weight",
47
+ "data-icon-weight-before",
48
+ "data-icon-weight-after",
49
+ "data-interactive",
50
+ "data-force-mobile",
51
+ "data-color",
52
+ "data-container-color",
53
+ "data-bg-color",
54
+ "data-on-bg-color",
55
+ "data-color-scheme",
56
+ "data-font-size",
57
+ "data-headline-size",
58
+ "data-divider",
59
+ "data-focus",
60
+ "data-font",
61
+ "data-density"
62
+ ]),
63
+ className: n("db-tag", o.className),
64
+ "data-semantic": o.semantic,
65
+ "data-emphasis": o.emphasis,
66
+ "data-icon": o.icon,
67
+ "data-show-check-state": r(o.showCheckState ?? !0),
68
+ "data-show-icon": r(o.showIcon),
69
+ "data-no-text": r(o.noText),
70
+ "data-overflow": r(o.overflow),
71
+ children: [
72
+ /* @__PURE__ */ l(c, { children: o.content }),
73
+ o.text ? /* @__PURE__ */ l(c, { children: o.text }) : null,
74
+ o.children,
75
+ o.behavior === "removable" ? /* @__PURE__ */ l("button", {
76
+ className: "db-button db-tab-remove-button",
77
+ "data-icon": "cross",
78
+ "data-size": "small",
79
+ "data-no-text": "true",
80
+ "data-variant": "ghost",
81
+ type: "button",
82
+ onClick: (e) => p(e),
83
+ children: /* @__PURE__ */ l(a, {
84
+ variant: "label",
85
+ children: m()
86
+ })
87
+ }) : null
88
+ ]
89
+ });
32
90
  }
33
- const DBTag = forwardRef(DBTagFn);
34
- export default DBTag;
91
+ var f = o(d);
92
+ //#endregion
93
+ export { f as default };
@@ -1 +1 @@
1
- export { default as DBTextarea } from './textarea';
1
+ export { default as DBTextarea } from './textarea.js';
@@ -1,4 +1,4 @@
1
- import type { ChangeEventProps, ChangeEventState, FocusEventProps, FocusEventState, FormMessageProps, FormProps, FormState, FormTextProps, FromValidState, GlobalProps, GlobalState, InputEventProps, InputEventState } from '../../shared/model';
1
+ import type { ChangeEventProps, ChangeEventState, FocusEventProps, FocusEventState, FormMessageProps, FormProps, FormState, FormTextProps, FromValidState, GlobalProps, GlobalState, InputEventProps, InputEventState } from '../../shared/model.js';
2
2
  export declare const TextareaResizeList: readonly ["none", "both", "horizontal", "vertical"];
3
3
  export type TextareaResizeType = (typeof TextareaResizeList)[number];
4
4
  export declare const TextareaWrapList: readonly ["hard", "soft", "off"];
@@ -1,2 +1,13 @@
1
- export const TextareaResizeList = ['none', 'both', 'horizontal', 'vertical'];
2
- export const TextareaWrapList = ['hard', 'soft', 'off'];
1
+ //#region src/components/textarea/model.ts
2
+ var e = [
3
+ "none",
4
+ "both",
5
+ "horizontal",
6
+ "vertical"
7
+ ], t = [
8
+ "hard",
9
+ "soft",
10
+ "off"
11
+ ];
12
+ //#endregion
13
+ export { e as TextareaResizeList, t as TextareaWrapList };
@@ -1,3 +1,3 @@
1
1
  import * as React from "react";
2
- declare const DBTextarea: React.ForwardRefExoticComponent<Omit<React.TextareaHTMLAttributes<any>, keyof import("../../shared/model").GlobalProps | "value" | keyof import("../../shared/model").CustomFormProps | keyof import("../../shared/model").BaseFormProps | keyof import("../../shared/model").RequiredProps | "showLabel" | keyof import("../../shared/model").FormMessageProps | keyof import("../../shared/model").FormTextProps | keyof import("./model").DBTextareaDefaultProps | keyof import("../../shared/model").ChangeEventProps<HTMLTextAreaElement> | keyof import("../../shared/model").InputEventProps<HTMLTextAreaElement> | keyof import("../../shared/model").FocusEventProps<HTMLTextAreaElement>> & import("./model").DBTextareaDefaultProps & import("../../shared/model").ChangeEventProps<HTMLTextAreaElement> & import("../../shared/model").InputEventProps<HTMLTextAreaElement> & import("../../shared/model").FocusEventProps<HTMLTextAreaElement> & import("../../shared/model").CustomFormProps & import("../../shared/model").BaseFormProps & import("../../shared/model").RequiredProps & import("../../shared/model").ShowLabelProps & import("../../shared/model").ValueProps & import("../../shared/model").GlobalProps & import("../../shared/model").FormTextProps & import("../../shared/model").FormMessageProps & React.RefAttributes<any>>;
2
+ declare const DBTextarea: React.ForwardRefExoticComponent<Omit<React.TextareaHTMLAttributes<any>, keyof import("../../shared/model.js").GlobalProps | "value" | keyof import("../../shared/model.js").CustomFormProps | keyof import("../../shared/model.js").BaseFormProps | keyof import("../../shared/model.js").RequiredProps | "showLabel" | keyof import("../../shared/model.js").FormMessageProps | keyof import("../../shared/model.js").FormTextProps | keyof import("./model.js").DBTextareaDefaultProps | keyof import("../../shared/model.js").ChangeEventProps<HTMLTextAreaElement> | keyof import("../../shared/model.js").InputEventProps<HTMLTextAreaElement> | keyof import("../../shared/model.js").FocusEventProps<HTMLTextAreaElement>> & import("./model.js").DBTextareaDefaultProps & import("../../shared/model.js").ChangeEventProps<HTMLTextAreaElement> & import("../../shared/model.js").InputEventProps<HTMLTextAreaElement> & import("../../shared/model.js").FocusEventProps<HTMLTextAreaElement> & import("../../shared/model.js").CustomFormProps & import("../../shared/model.js").BaseFormProps & import("../../shared/model.js").RequiredProps & import("../../shared/model.js").ShowLabelProps & import("../../shared/model.js").ValueProps & import("../../shared/model.js").GlobalProps & import("../../shared/model.js").FormTextProps & import("../../shared/model.js").FormMessageProps & React.RefAttributes<any>>;
3
3
  export default DBTextarea;
@@ -1,152 +1,167 @@
1
1
  "use client";
2
- import * as React from "react";
3
- import { filterPassingProps, getRootProps } from "../../utils/react";
4
- import { useState, useRef, useEffect, forwardRef } from "react";
5
- import { DEFAULT_INVALID_MESSAGE, DEFAULT_INVALID_MESSAGE_ID_SUFFIX, DEFAULT_LABEL, DEFAULT_MESSAGE_ID_SUFFIX, DEFAULT_PLACEHOLDER, DEFAULT_ROWS, DEFAULT_VALID_MESSAGE, DEFAULT_VALID_MESSAGE_ID_SUFFIX, } from "../../shared/constants";
6
- import { cls, delay, getBoolean, getHideProp, getNumber, hasVoiceOver, stringPropVisible, } from "../../utils";
7
- import { addValueResetEventListener, } from "../../utils/form-components";
8
- import DBInfotext from "../infotext/infotext";
9
- import { useId } from "react";
10
- function DBTextareaFn(props, component) {
11
- var _a, _b, _c, _d, _e;
12
- const uuid = useId();
13
- const _ref = component || useRef(component);
14
- const [_id, set_id] = useState(() => undefined);
15
- const [_messageId, set_messageId] = useState(() => undefined);
16
- const [_validMessageId, set_validMessageId] = useState(() => undefined);
17
- const [_invalidMessageId, set_invalidMessageId] = useState(() => undefined);
18
- const [_invalidMessage, set_invalidMessage] = useState(() => undefined);
19
- const [_descByIds, set_descByIds] = useState(() => undefined);
20
- const [_value, set_value] = useState(() => "");
21
- const [_voiceOverFallback, set_voiceOverFallback] = useState(() => "");
22
- const [abortController, setAbortController] = useState(() => undefined);
23
- function hasValidState() {
24
- var _a;
25
- return !!((_a = props.validMessage) !== null && _a !== void 0 ? _a : props.validation === "valid");
26
- }
27
- function handleValidation() {
28
- var _a, _b, _c, _d;
29
- /* For a11y reasons we need to map the correct message with the textarea */
30
- if (!((_a = _ref.current) === null || _a === void 0 ? void 0 : _a.validity.valid) || props.validation === "invalid") {
31
- set_descByIds(_invalidMessageId);
32
- set_invalidMessage(props.invalidMessage ||
33
- ((_b = _ref.current) === null || _b === void 0 ? void 0 : _b.validationMessage) ||
34
- DEFAULT_INVALID_MESSAGE);
35
- if (hasVoiceOver()) {
36
- set_voiceOverFallback(_invalidMessage);
37
- delay(() => set_voiceOverFallback(""), 1000);
38
- }
39
- }
40
- else if (hasValidState() &&
41
- ((_c = _ref.current) === null || _c === void 0 ? void 0 : _c.validity.valid) &&
42
- (props.required || props.minLength || props.maxLength)) {
43
- set_descByIds(_validMessageId);
44
- if (hasVoiceOver()) {
45
- set_voiceOverFallback((_d = props.validMessage) !== null && _d !== void 0 ? _d : DEFAULT_VALID_MESSAGE);
46
- delay(() => set_voiceOverFallback(""), 1000);
47
- }
48
- }
49
- else if (stringPropVisible(props.message, props.showMessage)) {
50
- set_descByIds(_messageId);
51
- }
52
- else {
53
- set_descByIds(undefined);
54
- }
55
- }
56
- function handleInput(event, reset) {
57
- if (props.onInput) {
58
- props.onInput(event);
59
- }
60
- handleValidation();
61
- }
62
- function handleChange(event, reset) {
63
- if (props.onChange) {
64
- props.onChange(event);
65
- }
66
- handleValidation();
67
- }
68
- function handleBlur(event) {
69
- if (props.onBlur) {
70
- props.onBlur(event);
71
- }
72
- }
73
- function handleFocus(event) {
74
- if (props.onFocus) {
75
- props.onFocus(event);
76
- }
77
- }
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
- set_id(mId);
82
- set_messageId(mId + DEFAULT_MESSAGE_ID_SUFFIX);
83
- set_validMessageId(mId + DEFAULT_VALID_MESSAGE_ID_SUFFIX);
84
- set_invalidMessageId(mId + DEFAULT_INVALID_MESSAGE_ID_SUFFIX);
85
- }
86
- useEffect(() => {
87
- resetIds();
88
- set_invalidMessage(props.invalidMessage || DEFAULT_INVALID_MESSAGE);
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]);
96
- useEffect(() => {
97
- var _a;
98
- set_invalidMessage(props.invalidMessage ||
99
- ((_a = _ref.current) === null || _a === void 0 ? void 0 : _a.validationMessage) ||
100
- DEFAULT_INVALID_MESSAGE);
101
- }, [_ref.current, props.invalidMessage]);
102
- useEffect(() => {
103
- if (_id) {
104
- const messageId = _id + DEFAULT_MESSAGE_ID_SUFFIX;
105
- set_messageId(messageId);
106
- set_validMessageId(_id + DEFAULT_VALID_MESSAGE_ID_SUFFIX);
107
- set_invalidMessageId(_id + DEFAULT_INVALID_MESSAGE_ID_SUFFIX);
108
- if (stringPropVisible(props.message, props.showMessage)) {
109
- set_descByIds(messageId);
110
- }
111
- handleValidation();
112
- }
113
- }, [_id]);
114
- useEffect(() => {
115
- set_value(props.value);
116
- }, [props.value]);
117
- useEffect(() => {
118
- // If angular uses ngModel value and _value are null
119
- // then the value will be set afterward and the _ref will be refreshed
120
- const addResetListener = true;
121
- if (_ref.current && addResetListener) {
122
- const defaultValue = props.defaultValue;
123
- let controller = abortController;
124
- if (!controller) {
125
- controller = new AbortController();
126
- setAbortController(controller);
127
- }
128
- addValueResetEventListener(_ref.current, {
129
- value: props.value,
130
- defaultValue,
131
- }, (event) => {
132
- handleChange(event, true);
133
- handleInput(event, true);
134
- }, controller.signal);
135
- }
136
- }, [_ref.current]);
137
- useEffect(() => {
138
- return () => {
139
- abortController === null || abortController === void 0 ? void 0 : abortController.abort();
140
- };
141
- }, []);
142
- 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) }),
143
- React.createElement("label", { htmlFor: _id }, (_b = props.label) !== null && _b !== void 0 ? _b : DEFAULT_LABEL),
144
- 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") ||
145
- 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) })),
146
- stringPropVisible(props.message, props.showMessage) ? (React.createElement(DBInfotext, { size: "small", icon: props.messageIcon, id: _messageId }, props.message)) : null,
147
- hasValidState() ? (React.createElement(DBInfotext, { size: "small", semantic: "successful", id: _validMessageId }, props.validMessage || DEFAULT_VALID_MESSAGE)) : null,
148
- React.createElement(DBInfotext, { size: "small", semantic: "critical", id: _invalidMessageId }, _invalidMessage),
149
- React.createElement("span", { "data-visually-hidden": "true", role: "status" }, _voiceOverFallback)));
2
+ import { filterPassingProps as e, getRootProps as t } from "../../utils/react.js";
3
+ import { cls as n, delay as r, getBoolean as i, getHideProp as a, getNumber as o, hasVoiceOver as s, stringPropVisible as c } from "../../utils/index.js";
4
+ import { DEFAULT_INVALID_MESSAGE_ID_SUFFIX as l, DEFAULT_MESSAGE_ID_SUFFIX as u, DEFAULT_VALID_MESSAGE_ID_SUFFIX as d } from "../../shared/constants.js";
5
+ import { addValueResetEventListener as f } from "../../utils/form-components.js";
6
+ import p from "../infotext/infotext.js";
7
+ import { forwardRef as m, useEffect as h, useId as g, useRef as _, useState as v } from "react";
8
+ import { jsx as y, jsxs as b } from "react/jsx-runtime";
9
+ //#region src/components/textarea/textarea.tsx
10
+ function x(m, x) {
11
+ let S = g(), C = x || _(x), [w, T] = v(() => void 0), [E, D] = v(() => void 0), [O, k] = v(() => void 0), [A, j] = v(() => void 0), [M, N] = v(() => void 0), [P, F] = v(() => void 0), [I, L] = v(() => ""), [R, z] = v(() => ""), [B, V] = v(() => void 0);
12
+ function H() {
13
+ return !!(m.validMessage ?? m.validation === "valid");
14
+ }
15
+ function U() {
16
+ !C.current?.validity.valid || m.validation === "invalid" ? (F(A), N(m.invalidMessage || C.current?.validationMessage || "TODO: Add an invalidMessage"), s() && (z(M), r(() => z(""), 1e3))) : H() && C.current?.validity.valid && (m.required || m.minLength || m.maxLength) ? (F(O), s() && (z(m.validMessage ?? "TODO: Add a validMessage"), r(() => z(""), 1e3))) : c(m.message, m.showMessage) ? F(E) : F(void 0);
17
+ }
18
+ function W(e, t) {
19
+ m.onInput && m.onInput(e), U();
20
+ }
21
+ function G(e, t) {
22
+ m.onChange && m.onChange(e), U();
23
+ }
24
+ function K(e) {
25
+ m.onBlur && m.onBlur(e);
26
+ }
27
+ function q(e) {
28
+ m.onFocus && m.onFocus(e);
29
+ }
30
+ function J() {
31
+ let e = m.id ?? m.propOverrides?.id ?? `textarea-${S}`;
32
+ T(e), D(e + u), k(e + d), j(e + l);
33
+ }
34
+ return h(() => {
35
+ J(), N(m.invalidMessage || "TODO: Add an invalidMessage");
36
+ }, []), h(() => {
37
+ (m.id ?? m.propOverrides?.id) && J();
38
+ }, [m.id, m.propOverrides?.id]), h(() => {
39
+ N(m.invalidMessage || C.current?.validationMessage || "TODO: Add an invalidMessage");
40
+ }, [C.current, m.invalidMessage]), h(() => {
41
+ if (w) {
42
+ let e = w + u;
43
+ D(e), k(w + d), j(w + l), c(m.message, m.showMessage) && F(e), U();
44
+ }
45
+ }, [w]), h(() => {
46
+ L(m.value);
47
+ }, [m.value]), h(() => {
48
+ if (C.current) {
49
+ let e = m.defaultValue, t = B;
50
+ t || (t = new AbortController(), V(t)), f(C.current, {
51
+ value: m.value,
52
+ defaultValue: e
53
+ }, (e) => {
54
+ G(e, !0), W(e, !0);
55
+ }, t.signal);
56
+ }
57
+ }, [C.current]), h(() => () => {
58
+ B?.abort();
59
+ }, []), /* @__PURE__ */ b("div", {
60
+ ...t(m, [
61
+ "data-icon-variant",
62
+ "data-icon-variant-before",
63
+ "data-icon-variant-after",
64
+ "data-icon-weight",
65
+ "data-icon-weight-before",
66
+ "data-icon-weight-after",
67
+ "data-interactive",
68
+ "data-force-mobile",
69
+ "data-color",
70
+ "data-container-color",
71
+ "data-bg-color",
72
+ "data-on-bg-color",
73
+ "data-color-scheme",
74
+ "data-font-size",
75
+ "data-headline-size",
76
+ "data-divider",
77
+ "data-focus",
78
+ "data-font",
79
+ "data-density"
80
+ ]),
81
+ className: n("db-textarea", m.className),
82
+ "data-variant": m.variant,
83
+ "data-hide-asterisk": a(m.showRequiredAsterisk),
84
+ "data-hide-label": a(m.showLabel),
85
+ children: [
86
+ /* @__PURE__ */ y("label", {
87
+ htmlFor: w,
88
+ children: m.label ?? "LABEL SHOULD BE SET"
89
+ }),
90
+ /* @__PURE__ */ y("textarea", {
91
+ "aria-invalid": m.validation === "invalid",
92
+ "data-custom-validity": m.validation,
93
+ "data-field-sizing": m.fieldSizing,
94
+ ref: C,
95
+ ...e(m, [
96
+ "data-icon-variant",
97
+ "data-icon-variant-before",
98
+ "data-icon-variant-after",
99
+ "data-icon-weight",
100
+ "data-icon-weight-before",
101
+ "data-icon-weight-after",
102
+ "data-interactive",
103
+ "data-force-mobile",
104
+ "data-color",
105
+ "data-container-color",
106
+ "data-bg-color",
107
+ "data-on-bg-color",
108
+ "data-color-scheme",
109
+ "data-font-size",
110
+ "data-headline-size",
111
+ "data-divider",
112
+ "data-focus",
113
+ "data-font",
114
+ "data-density"
115
+ ]),
116
+ id: w,
117
+ "data-resize": m.resize,
118
+ "data-hide-resizer": a(m.showResizer ?? !0),
119
+ disabled: i(m.disabled, "disabled"),
120
+ required: i(m.required, "required"),
121
+ readOnly: i(m.readOnly, "readOnly") || i(m.readonly, "readonly"),
122
+ form: m.form,
123
+ maxLength: o(m.maxLength, m.maxlength),
124
+ minLength: o(m.minLength, m.minlength),
125
+ name: m.name,
126
+ wrap: m.wrap,
127
+ spellCheck: m.spellCheck,
128
+ autoComplete: m.autocomplete,
129
+ onInput: (e) => W(e),
130
+ onChange: (e) => G(e),
131
+ onBlur: (e) => K(e),
132
+ onFocus: (e) => q(e),
133
+ value: m.value,
134
+ "aria-describedby": m.ariaDescribedBy ?? P,
135
+ placeholder: m.placeholder ?? " ",
136
+ rows: o(m.rows, 4),
137
+ cols: o(m.cols)
138
+ }),
139
+ c(m.message, m.showMessage) ? /* @__PURE__ */ y(p, {
140
+ size: "small",
141
+ icon: m.messageIcon,
142
+ id: E,
143
+ children: m.message
144
+ }) : null,
145
+ H() ? /* @__PURE__ */ y(p, {
146
+ size: "small",
147
+ semantic: "successful",
148
+ id: O,
149
+ children: m.validMessage || "TODO: Add a validMessage"
150
+ }) : null,
151
+ /* @__PURE__ */ y(p, {
152
+ size: "small",
153
+ semantic: "critical",
154
+ id: A,
155
+ children: M
156
+ }),
157
+ /* @__PURE__ */ y("span", {
158
+ "data-visually-hidden": "true",
159
+ role: "status",
160
+ children: R
161
+ })
162
+ ]
163
+ });
150
164
  }
151
- const DBTextarea = forwardRef(DBTextareaFn);
152
- export default DBTextarea;
165
+ var S = m(x);
166
+ //#endregion
167
+ export { S as default };
@@ -1 +1 @@
1
- export { default as DBTooltip } from './tooltip';
1
+ export { default as DBTooltip } from './tooltip.js';
@@ -1,4 +1,4 @@
1
- import type { ClickEventState, DocumentScrollState, EmphasisProps, GlobalProps, GlobalState, InitializedState, PlacementProps, PopoverProps, PopoverState, ResetIdState, TextProps, WrapProps } from '../../shared/model';
1
+ import type { ClickEventState, DocumentScrollState, EmphasisProps, GlobalProps, GlobalState, InitializedState, PlacementProps, PopoverProps, PopoverState, ResetIdState, TextProps, WrapProps } from '../../shared/model.js';
2
2
  export declare const TooltipVariantList: readonly ["description", "label"];
3
3
  export type TooltipVariantType = (typeof TooltipVariantList)[number];
4
4
  export type DBTooltipDefaultProps = {
@@ -1 +1,4 @@
1
- export const TooltipVariantList = ['description', 'label'];
1
+ //#region src/components/tooltip/model.ts
2
+ var e = ["description", "label"];
3
+ //#endregion
4
+ export { e as TooltipVariantList };
@@ -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 | "text" | "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 & import("../../shared/model").TextProps & React.RefAttributes<any>>;
2
+ declare const DBTooltip: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<any>, keyof import("../../shared/model.js").GlobalProps | "text" | "placement" | "emphasis" | "wrap" | keyof import("./model.js").DBTooltipDefaultProps | keyof import("../../shared/model.js").PopoverProps> & import("./model.js").DBTooltipDefaultProps & import("../../shared/model.js").GlobalProps & import("../../shared/model.js").EmphasisProps & import("../../shared/model.js").PlacementProps & import("../../shared/model.js").PopoverProps & import("../../shared/model.js").WrapProps & import("../../shared/model.js").TextProps & React.RefAttributes<any>>;
3
3
  export default DBTooltip;