@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,193 +1,190 @@
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_ID_SUFFIX, DEFAULT_VALID_MESSAGE, DEFAULT_VALID_MESSAGE_ID_SUFFIX, } from "../../shared/constants";
6
- import { cls, delay, getBoolean, getBooleanAsString, getHideProp, getOptionKey, hasVoiceOver, stringPropVisible, } from "../../utils";
7
- import { addValueResetEventListener, } from "../../utils/form-components";
8
- import DBInfotext from "../infotext/infotext";
9
- import { useId } from "react";
10
- function DBSelectFn(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 [_placeholderId, set_placeholderId] = useState(() => "");
20
- const [_descByIds, set_descByIds] = useState(() => undefined);
21
- const [_value, set_value] = useState(() => "");
22
- const [initialized, setInitialized] = useState(() => false);
23
- const [_voiceOverFallback, set_voiceOverFallback] = useState(() => "");
24
- const [abortController, setAbortController] = useState(() => undefined);
25
- function hasValidState() {
26
- var _a;
27
- return !!((_a = props.validMessage) !== null && _a !== void 0 ? _a : props.validation === "valid");
28
- }
29
- function handleValidation() {
30
- var _a, _b, _c, _d;
31
- /* For a11y reasons we need to map the correct message with the select */
32
- if (!((_a = _ref.current) === null || _a === void 0 ? void 0 : _a.validity.valid) || props.validation === "invalid") {
33
- set_descByIds(_invalidMessageId);
34
- set_invalidMessage(props.invalidMessage ||
35
- ((_b = _ref.current) === null || _b === void 0 ? void 0 : _b.validationMessage) ||
36
- DEFAULT_INVALID_MESSAGE);
37
- if (hasVoiceOver()) {
38
- set_voiceOverFallback(_invalidMessage);
39
- delay(() => set_voiceOverFallback(""), 1000);
40
- }
41
- }
42
- else if (hasValidState() &&
43
- ((_c = _ref.current) === null || _c === void 0 ? void 0 : _c.validity.valid) &&
44
- props.required) {
45
- set_descByIds(_validMessageId);
46
- if (hasVoiceOver()) {
47
- set_voiceOverFallback((_d = props.validMessage) !== null && _d !== void 0 ? _d : DEFAULT_VALID_MESSAGE);
48
- delay(() => set_voiceOverFallback(""), 1000);
49
- }
50
- }
51
- else if (stringPropVisible(props.message, props.showMessage)) {
52
- set_descByIds(_messageId);
53
- }
54
- else if (props.placeholder) {
55
- set_descByIds(_placeholderId);
56
- }
57
- else {
58
- set_descByIds(undefined);
59
- }
60
- }
61
- function handleClick(event) {
62
- if (props.onClick) {
63
- props.onClick(event);
64
- }
65
- }
66
- function handleInput(event, reset) {
67
- if (props.onInput) {
68
- props.onInput(event);
69
- }
70
- handleValidation();
71
- }
72
- function handleChange(event, reset) {
73
- if (props.onChange) {
74
- props.onChange(event);
75
- }
76
- handleValidation();
77
- }
78
- function handleBlur(event) {
79
- if (props.onBlur) {
80
- props.onBlur(event);
81
- }
82
- }
83
- function handleFocus(event) {
84
- if (props.onFocus) {
85
- props.onFocus(event);
86
- }
87
- }
88
- function getOptionLabel(option) {
89
- var _a, _b;
90
- return (_a = option.label) !== null && _a !== void 0 ? _a : (_b = option.value) === null || _b === void 0 ? void 0 : _b.toString();
91
- }
92
- function shouldShowEmptyOption() {
93
- const hasPlaceholderOrFloating = props.variant === "floating" || !!props.placeholder;
94
- if (!hasPlaceholderOrFloating) {
95
- return false;
96
- }
97
- if (props.showEmptyOption !== undefined) {
98
- return props.showEmptyOption;
99
- }
100
- // Default: show empty option for non-required selects
101
- return !props.required;
102
- }
103
- function resetIds() {
104
- var _a, _b, _c;
105
- 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 : `select-${uuid}`;
106
- set_id(mId);
107
- set_messageId(mId + DEFAULT_MESSAGE_ID_SUFFIX);
108
- set_validMessageId(mId + DEFAULT_VALID_MESSAGE_ID_SUFFIX);
109
- set_invalidMessageId(mId + DEFAULT_INVALID_MESSAGE_ID_SUFFIX);
110
- set_placeholderId(mId + DEFAULT_PLACEHOLDER_ID_SUFFIX);
111
- }
112
- useEffect(() => {
113
- setInitialized(true);
114
- resetIds();
115
- set_invalidMessage(props.invalidMessage || DEFAULT_INVALID_MESSAGE);
116
- }, []);
117
- useEffect(() => {
118
- var _a, _b;
119
- if ((_a = props.id) !== null && _a !== void 0 ? _a : (_b = props.propOverrides) === null || _b === void 0 ? void 0 : _b.id) {
120
- resetIds();
121
- }
122
- }, [props.id, (_a = props.propOverrides) === null || _a === void 0 ? void 0 : _a.id]);
123
- useEffect(() => {
124
- var _a;
125
- set_invalidMessage(props.invalidMessage ||
126
- ((_a = _ref.current) === null || _a === void 0 ? void 0 : _a.validationMessage) ||
127
- DEFAULT_INVALID_MESSAGE);
128
- }, [_ref.current, props.invalidMessage]);
129
- useEffect(() => {
130
- if (_id && initialized) {
131
- const messageId = _id + DEFAULT_MESSAGE_ID_SUFFIX;
132
- const placeholderId = _id + DEFAULT_PLACEHOLDER_ID_SUFFIX;
133
- set_messageId(messageId);
134
- set_validMessageId(_id + DEFAULT_VALID_MESSAGE_ID_SUFFIX);
135
- set_invalidMessageId(_id + DEFAULT_INVALID_MESSAGE_ID_SUFFIX);
136
- set_placeholderId(placeholderId);
137
- if (stringPropVisible(props.message, props.showMessage)) {
138
- set_descByIds(messageId);
139
- }
140
- else if (props.placeholder) {
141
- set_descByIds(placeholderId);
142
- }
143
- else {
144
- set_descByIds(undefined);
145
- }
146
- handleValidation();
147
- setInitialized(false);
148
- }
149
- }, [_id, initialized]);
150
- useEffect(() => {
151
- set_value(props.value);
152
- }, [props.value]);
153
- useEffect(() => {
154
- // If angular uses ngModel value and _value are null
155
- // then the value will be set afterward and the _ref will be refreshed
156
- const addResetListener = true;
157
- if (_ref.current && addResetListener) {
158
- const defaultValue = props.defaultValue;
159
- let controller = abortController;
160
- if (!controller) {
161
- controller = new AbortController();
162
- setAbortController(controller);
163
- }
164
- addValueResetEventListener(_ref.current, {
165
- value: props.value,
166
- defaultValue,
167
- }, (event) => {
168
- handleChange(event, true);
169
- handleInput(event, true);
170
- }, controller.signal);
171
- }
172
- }, [_ref.current]);
173
- useEffect(() => {
174
- return () => {
175
- abortController === null || abortController === void 0 ? void 0 : abortController.abort();
176
- };
177
- }, []);
178
- 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-select", props.className), "data-variant": props.variant, "data-hide-label": getHideProp(props.showLabel), "data-hide-asterisk": getHideProp(props.showRequiredAsterisk), "data-icon": props.icon, "data-show-icon": getBooleanAsString(props.showIcon) }),
179
- React.createElement("label", { htmlFor: _id }, (_b = props.label) !== null && _b !== void 0 ? _b : DEFAULT_LABEL),
180
- React.createElement("select", Object.assign({ "aria-invalid": props.validation === "invalid", "data-custom-validity": props.validation, 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"]), { required: getBoolean(props.required, "required"), disabled: getBoolean(props.disabled, "disabled"), id: _id, name: props.name, size: props.size, value: props.value, autoComplete: props.autocomplete, multiple: props.multiple, onInput: (event) => handleInput(event), onClick: (event) => handleClick(event), onChange: (event) => handleChange(event), onBlur: (event) => handleBlur(event), onFocus: (event) => handleFocus(event), "aria-describedby": (_c = props.ariaDescribedBy) !== null && _c !== void 0 ? _c : _descByIds }),
181
- props.variant === "floating" || !!props.placeholder ? (React.createElement("option", { className: "placeholder", value: "", "data-show-empty-option": getBooleanAsString(shouldShowEmptyOption()) })) : null,
182
- ((_d = props.options) === null || _d === void 0 ? void 0 : _d.length) ? (React.createElement(React.Fragment, null, (_e = props.options) === null || _e === void 0 ? void 0 : _e.map((option) => {
183
- var _a;
184
- return option.options ? (React.createElement("optgroup", { label: getOptionLabel(option), key: getOptionKey(option, "select-optgroup-") }, (_a = option.options) === null || _a === void 0 ? void 0 : _a.map((optgroupOption) => (React.createElement("option", { value: optgroupOption.value, disabled: optgroupOption.disabled, key: getOptionKey(optgroupOption, "select-optgroup-option-") }, getOptionLabel(optgroupOption)))))) : (React.createElement("option", { value: option.value, disabled: option.disabled, key: getOptionKey(option, "select-option-") }, getOptionLabel(option)));
185
- }))) : (React.createElement(React.Fragment, null, props.children))),
186
- props.placeholder ? (React.createElement("span", { className: "db-select-placeholder", id: _placeholderId }, props.placeholder)) : null,
187
- stringPropVisible(props.message, props.showMessage) ? (React.createElement(DBInfotext, { size: "small", icon: props.messageIcon, id: _messageId }, props.message)) : null,
188
- hasValidState() ? (React.createElement(DBInfotext, { size: "small", semantic: "successful", id: _validMessageId }, props.validMessage || DEFAULT_VALID_MESSAGE)) : null,
189
- React.createElement(DBInfotext, { size: "small", semantic: "critical", id: _invalidMessageId }, _invalidMessage),
190
- 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, getBooleanAsString as a, getHideProp as o, getOptionKey as s, hasVoiceOver as c, stringPropVisible as l } from "../../utils/index.js";
4
+ import { DEFAULT_INVALID_MESSAGE_ID_SUFFIX as u, DEFAULT_MESSAGE_ID_SUFFIX as d, DEFAULT_PLACEHOLDER_ID_SUFFIX as f, DEFAULT_VALID_MESSAGE_ID_SUFFIX as p } from "../../shared/constants.js";
5
+ import { addValueResetEventListener as m } from "../../utils/form-components.js";
6
+ import h from "../infotext/infotext.js";
7
+ import { forwardRef as g, useEffect as _, useId as ee, useRef as v, useState as y } from "react";
8
+ import { Fragment as b, jsx as x, jsxs as S } from "react/jsx-runtime";
9
+ //#region src/components/select/select.tsx
10
+ function C(g, C) {
11
+ let w = ee(), T = C || v(C), [E, D] = y(() => void 0), [O, k] = y(() => void 0), [A, j] = y(() => void 0), [M, N] = y(() => void 0), [P, F] = y(() => void 0), [I, L] = y(() => ""), [R, z] = y(() => void 0), [te, B] = y(() => ""), [V, H] = y(() => !1), [ne, U] = y(() => ""), [W, G] = y(() => void 0);
12
+ function K() {
13
+ return !!(g.validMessage ?? g.validation === "valid");
14
+ }
15
+ function q() {
16
+ !T.current?.validity.valid || g.validation === "invalid" ? (z(M), F(g.invalidMessage || T.current?.validationMessage || "TODO: Add an invalidMessage"), c() && (U(P), r(() => U(""), 1e3))) : K() && T.current?.validity.valid && g.required ? (z(A), c() && (U(g.validMessage ?? "TODO: Add a validMessage"), r(() => U(""), 1e3))) : l(g.message, g.showMessage) ? z(O) : g.placeholder ? z(I) : z(void 0);
17
+ }
18
+ function J(e) {
19
+ g.onClick && g.onClick(e);
20
+ }
21
+ function Y(e, t) {
22
+ g.onInput && g.onInput(e), q();
23
+ }
24
+ function X(e, t) {
25
+ g.onChange && g.onChange(e), q();
26
+ }
27
+ function Z(e) {
28
+ g.onBlur && g.onBlur(e);
29
+ }
30
+ function re(e) {
31
+ g.onFocus && g.onFocus(e);
32
+ }
33
+ function Q(e) {
34
+ return e.label ?? e.value?.toString();
35
+ }
36
+ function ie() {
37
+ return g.variant === "floating" || g.placeholder ? g.showEmptyOption === void 0 ? !g.required : g.showEmptyOption : !1;
38
+ }
39
+ function $() {
40
+ let e = g.id ?? g.propOverrides?.id ?? `select-${w}`;
41
+ D(e), k(e + d), j(e + p), N(e + u), L(e + f);
42
+ }
43
+ return _(() => {
44
+ H(!0), $(), F(g.invalidMessage || "TODO: Add an invalidMessage");
45
+ }, []), _(() => {
46
+ (g.id ?? g.propOverrides?.id) && $();
47
+ }, [g.id, g.propOverrides?.id]), _(() => {
48
+ F(g.invalidMessage || T.current?.validationMessage || "TODO: Add an invalidMessage");
49
+ }, [T.current, g.invalidMessage]), _(() => {
50
+ if (E && V) {
51
+ let e = E + d, t = E + f;
52
+ k(e), j(E + p), N(E + u), L(t), l(g.message, g.showMessage) ? z(e) : g.placeholder ? z(t) : z(void 0), q(), H(!1);
53
+ }
54
+ }, [E, V]), _(() => {
55
+ B(g.value);
56
+ }, [g.value]), _(() => {
57
+ if (T.current) {
58
+ let e = g.defaultValue, t = W;
59
+ t || (t = new AbortController(), G(t)), m(T.current, {
60
+ value: g.value,
61
+ defaultValue: e
62
+ }, (e) => {
63
+ X(e, !0), Y(e, !0);
64
+ }, t.signal);
65
+ }
66
+ }, [T.current]), _(() => () => {
67
+ W?.abort();
68
+ }, []), /* @__PURE__ */ S("div", {
69
+ ...t(g, [
70
+ "data-icon-variant",
71
+ "data-icon-variant-before",
72
+ "data-icon-variant-after",
73
+ "data-icon-weight",
74
+ "data-icon-weight-before",
75
+ "data-icon-weight-after",
76
+ "data-interactive",
77
+ "data-force-mobile",
78
+ "data-color",
79
+ "data-container-color",
80
+ "data-bg-color",
81
+ "data-on-bg-color",
82
+ "data-color-scheme",
83
+ "data-font-size",
84
+ "data-headline-size",
85
+ "data-divider",
86
+ "data-focus",
87
+ "data-font",
88
+ "data-density"
89
+ ]),
90
+ className: n("db-select", g.className),
91
+ "data-variant": g.variant,
92
+ "data-hide-label": o(g.showLabel),
93
+ "data-hide-asterisk": o(g.showRequiredAsterisk),
94
+ "data-icon": g.icon,
95
+ "data-show-icon": a(g.showIcon),
96
+ children: [
97
+ /* @__PURE__ */ x("label", {
98
+ htmlFor: E,
99
+ children: g.label ?? "LABEL SHOULD BE SET"
100
+ }),
101
+ /* @__PURE__ */ S("select", {
102
+ "aria-invalid": g.validation === "invalid",
103
+ "data-custom-validity": g.validation,
104
+ ref: T,
105
+ ...e(g, [
106
+ "data-icon-variant",
107
+ "data-icon-variant-before",
108
+ "data-icon-variant-after",
109
+ "data-icon-weight",
110
+ "data-icon-weight-before",
111
+ "data-icon-weight-after",
112
+ "data-interactive",
113
+ "data-force-mobile",
114
+ "data-color",
115
+ "data-container-color",
116
+ "data-bg-color",
117
+ "data-on-bg-color",
118
+ "data-color-scheme",
119
+ "data-font-size",
120
+ "data-headline-size",
121
+ "data-divider",
122
+ "data-focus",
123
+ "data-font",
124
+ "data-density"
125
+ ]),
126
+ required: i(g.required, "required"),
127
+ disabled: i(g.disabled, "disabled"),
128
+ id: E,
129
+ name: g.name,
130
+ size: g.size,
131
+ value: g.value,
132
+ autoComplete: g.autocomplete,
133
+ multiple: g.multiple,
134
+ onInput: (e) => Y(e),
135
+ onClick: (e) => J(e),
136
+ onChange: (e) => X(e),
137
+ onBlur: (e) => Z(e),
138
+ onFocus: (e) => re(e),
139
+ "aria-describedby": g.ariaDescribedBy ?? R,
140
+ children: [g.variant === "floating" || g.placeholder ? /* @__PURE__ */ x("option", {
141
+ className: "placeholder",
142
+ value: "",
143
+ "data-show-empty-option": a(ie())
144
+ }) : null, g.options?.length ? /* @__PURE__ */ x(b, { children: g.options?.map((e) => e.options ? /* @__PURE__ */ x("optgroup", {
145
+ label: Q(e),
146
+ children: e.options?.map((e) => /* @__PURE__ */ x("option", {
147
+ value: e.value,
148
+ disabled: e.disabled,
149
+ children: Q(e)
150
+ }, s(e, "select-optgroup-option-")))
151
+ }, s(e, "select-optgroup-")) : /* @__PURE__ */ x("option", {
152
+ value: e.value,
153
+ disabled: e.disabled,
154
+ children: Q(e)
155
+ }, s(e, "select-option-"))) }) : /* @__PURE__ */ x(b, { children: g.children })]
156
+ }),
157
+ g.placeholder ? /* @__PURE__ */ x("span", {
158
+ className: "db-select-placeholder",
159
+ id: I,
160
+ children: g.placeholder
161
+ }) : null,
162
+ l(g.message, g.showMessage) ? /* @__PURE__ */ x(h, {
163
+ size: "small",
164
+ icon: g.messageIcon,
165
+ id: O,
166
+ children: g.message
167
+ }) : null,
168
+ K() ? /* @__PURE__ */ x(h, {
169
+ size: "small",
170
+ semantic: "successful",
171
+ id: A,
172
+ children: g.validMessage || "TODO: Add a validMessage"
173
+ }) : null,
174
+ /* @__PURE__ */ x(h, {
175
+ size: "small",
176
+ semantic: "critical",
177
+ id: M,
178
+ children: P
179
+ }),
180
+ /* @__PURE__ */ x("span", {
181
+ "data-visually-hidden": "true",
182
+ role: "status",
183
+ children: ne
184
+ })
185
+ ]
186
+ });
191
187
  }
192
- const DBSelect = forwardRef(DBSelectFn);
193
- export default DBSelect;
188
+ var w = g(C);
189
+ //#endregion
190
+ export { w as default };
@@ -1 +1 @@
1
- export { default as DBStack } from './stack';
1
+ export { default as DBStack } from './stack.js';
@@ -1,4 +1,4 @@
1
- import type { GapSpacingProps, GlobalProps, GlobalState } from '../../shared/model';
1
+ import type { GapSpacingProps, GlobalProps, GlobalState } from '../../shared/model.js';
2
2
  export declare const StackVariantList: readonly ["simple", "divider"];
3
3
  export type StackVariantType = (typeof StackVariantList)[number];
4
4
  export declare const StackDirectionList: readonly ["row", "column"];
@@ -1,4 +1,14 @@
1
- export const StackVariantList = ['simple', 'divider'];
2
- export const StackDirectionList = ['row', 'column'];
3
- export const StackAlignmentList = ['stretch', 'start', 'end', 'center'];
4
- export const StackJustifyContentList = ['space-between', 'start', 'end', 'center'];
1
+ //#region src/components/stack/model.ts
2
+ var e = ["simple", "divider"], t = ["row", "column"], n = [
3
+ "stretch",
4
+ "start",
5
+ "end",
6
+ "center"
7
+ ], r = [
8
+ "space-between",
9
+ "start",
10
+ "end",
11
+ "center"
12
+ ];
13
+ //#endregion
14
+ export { n as StackAlignmentList, t as StackDirectionList, r as StackJustifyContentList, e as StackVariantList };
@@ -1,3 +1,3 @@
1
1
  import * as React from "react";
2
- declare const DBStack: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<any>, keyof import("../..").GlobalProps | "gap" | keyof import("./model").DBStackDefaultProps> & import("./model").DBStackDefaultProps & import("../..").GlobalProps & import("../..").GapSpacingProps & React.RefAttributes<any>>;
2
+ declare const DBStack: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<any>, keyof import("../../index.js").GlobalProps | "gap" | keyof import("./model.js").DBStackDefaultProps> & import("./model.js").DBStackDefaultProps & import("../../index.js").GlobalProps & import("../../index.js").GapSpacingProps & React.RefAttributes<any>>;
3
3
  export default DBStack;
@@ -1,12 +1,65 @@
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 { cls, getBooleanAsString } from "../../utils";
6
- function DBStackFn(props, component) {
7
- var _a, _b;
8
- const _ref = component || useRef(component);
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-stack", props.className), "data-gap": props.gap, "data-variant": props.variant, "data-direction": props.direction, "data-alignment": props.alignment, "data-justify-content": props.justifyContent, "data-wrap": getBooleanAsString(props.wrap) }), props.children));
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 { forwardRef as i, useRef as a } from "react";
5
+ import { jsx as o } from "react/jsx-runtime";
6
+ //#region src/components/stack/stack.tsx
7
+ function s(i, s) {
8
+ return /* @__PURE__ */ o("div", {
9
+ ref: s || a(s),
10
+ ...e(i, [
11
+ "data-icon-variant",
12
+ "data-icon-variant-before",
13
+ "data-icon-variant-after",
14
+ "data-icon-weight",
15
+ "data-icon-weight-before",
16
+ "data-icon-weight-after",
17
+ "data-interactive",
18
+ "data-force-mobile",
19
+ "data-color",
20
+ "data-container-color",
21
+ "data-bg-color",
22
+ "data-on-bg-color",
23
+ "data-color-scheme",
24
+ "data-font-size",
25
+ "data-headline-size",
26
+ "data-divider",
27
+ "data-focus",
28
+ "data-font",
29
+ "data-density"
30
+ ]),
31
+ id: i.id ?? i.propOverrides?.id,
32
+ ...t(i, [
33
+ "data-icon-variant",
34
+ "data-icon-variant-before",
35
+ "data-icon-variant-after",
36
+ "data-icon-weight",
37
+ "data-icon-weight-before",
38
+ "data-icon-weight-after",
39
+ "data-interactive",
40
+ "data-force-mobile",
41
+ "data-color",
42
+ "data-container-color",
43
+ "data-bg-color",
44
+ "data-on-bg-color",
45
+ "data-color-scheme",
46
+ "data-font-size",
47
+ "data-headline-size",
48
+ "data-divider",
49
+ "data-focus",
50
+ "data-font",
51
+ "data-density"
52
+ ]),
53
+ className: n("db-stack", i.className),
54
+ "data-gap": i.gap,
55
+ "data-variant": i.variant,
56
+ "data-direction": i.direction,
57
+ "data-alignment": i.alignment,
58
+ "data-justify-content": i.justifyContent,
59
+ "data-wrap": r(i.wrap),
60
+ children: i.children
61
+ });
10
62
  }
11
- const DBStack = forwardRef(DBStackFn);
12
- export default DBStack;
63
+ var c = i(s);
64
+ //#endregion
65
+ export { c as default };
@@ -1 +1 @@
1
- export { default as DBSwitch } from './switch';
1
+ export { default as DBSwitch } from './switch.js';
@@ -1,4 +1,4 @@
1
- import type { ChangeEventProps, ChangeEventState, FocusEventProps, FocusEventState, FormCheckProps, FormMessageProps, FormProps, FormState, FromValidState, GeneralKeyboardEvent, GlobalProps, GlobalState, IconLeadingProps, IconProps, IconTrailingProps, LabelVariantHorizontalType, SizeProps } from '../../shared/model';
1
+ import type { ChangeEventProps, ChangeEventState, FocusEventProps, FocusEventState, FormCheckProps, FormMessageProps, FormProps, FormState, FromValidState, GeneralKeyboardEvent, GlobalProps, GlobalState, IconLeadingProps, IconProps, IconTrailingProps, LabelVariantHorizontalType, SizeProps } from '../../shared/model.js';
2
2
  export type DBSwitchDefaultProps = {
3
3
  /**
4
4
  * Add additional icons to indicate active/inactive state.
@@ -1,3 +1,3 @@
1
1
  import * as React from "react";
2
- declare const DBSwitch: React.ForwardRefExoticComponent<Omit<React.InputHTMLAttributes<any>, keyof import("../../shared/model").GlobalProps | "value" | "size" | "icon" | "iconLeading" | "iconTrailing" | keyof import("../../shared/model").ChangeEventProps<HTMLInputElement> | keyof import("../../shared/model").FocusEventProps<HTMLInputElement> | keyof import("../../shared/model").CustomFormProps | keyof import("../../shared/model").BaseFormProps | keyof import("../../shared/model").RequiredProps | "showLabel" | "checked" | "placeholder" | "message" | "validMessage" | "invalidMessage" | "messageIcon" | "autocomplete" | "showMessage" | keyof import("./model").DBSwitchDefaultProps> & import("../../shared/model").GlobalProps & import("../../shared/model").ChangeEventProps<HTMLInputElement> & import("../../shared/model").FocusEventProps<HTMLInputElement> & import("../../shared/model").CustomFormProps & import("../../shared/model").BaseFormProps & import("../../shared/model").RequiredProps & import("../../shared/model").ShowLabelProps & import("../../shared/model").ValueProps & import("../../shared/model").FormCheckProps & Omit<import("../../shared/model").FormMessageProps, "variant"> & import("../../shared/model").SizeProps & import("../../shared/model").IconProps & import("../../shared/model").IconTrailingProps & import("../../shared/model").IconLeadingProps & import("./model").DBSwitchDefaultProps & React.RefAttributes<any>>;
2
+ declare const DBSwitch: React.ForwardRefExoticComponent<Omit<React.InputHTMLAttributes<any>, keyof import("../../shared/model.js").GlobalProps | "value" | "size" | "icon" | "iconLeading" | "iconTrailing" | keyof import("../../shared/model.js").ChangeEventProps<HTMLInputElement> | keyof import("../../shared/model.js").FocusEventProps<HTMLInputElement> | keyof import("../../shared/model.js").CustomFormProps | keyof import("../../shared/model.js").BaseFormProps | keyof import("../../shared/model.js").RequiredProps | "showLabel" | "checked" | "placeholder" | "message" | "validMessage" | "invalidMessage" | "messageIcon" | "autocomplete" | "showMessage" | keyof import("./model").DBSwitchDefaultProps> & import("../../shared/model.js").GlobalProps & import("../../shared/model.js").ChangeEventProps<HTMLInputElement> & import("../../shared/model.js").FocusEventProps<HTMLInputElement> & 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").FormCheckProps & Omit<import("../../shared/model.js").FormMessageProps, "variant"> & import("../../shared/model.js").SizeProps & import("../../shared/model.js").IconProps & import("../../shared/model.js").IconTrailingProps & import("../../shared/model.js").IconLeadingProps & import("./model").DBSwitchDefaultProps & React.RefAttributes<any>>;
3
3
  export default DBSwitch;