@db-ux/react-core-components 4.11.1 → 4.12.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 (289) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/components/accordion/accordion.d.ts +1 -1
  3. package/dist/components/accordion/accordion.js +83 -102
  4. package/dist/components/accordion/index.d.ts +1 -1
  5. package/dist/components/accordion/index.js +1 -0
  6. package/dist/components/accordion/model.d.ts +2 -2
  7. package/dist/components/accordion/model.js +2 -4
  8. package/dist/components/accordion-item/accordion-item.d.ts +2 -2
  9. package/dist/components/accordion-item/accordion-item.js +56 -89
  10. package/dist/components/accordion-item/index.d.ts +1 -1
  11. package/dist/components/accordion-item/index.js +1 -0
  12. package/dist/components/accordion-item/model.d.ts +1 -1
  13. package/dist/components/accordion-item/model.js +1 -0
  14. package/dist/components/badge/badge.d.ts +1 -1
  15. package/dist/components/badge/badge.js +28 -72
  16. package/dist/components/badge/index.d.ts +1 -1
  17. package/dist/components/badge/index.js +1 -0
  18. package/dist/components/badge/model.d.ts +1 -1
  19. package/dist/components/badge/model.js +1 -12
  20. package/dist/components/brand/brand.d.ts +1 -1
  21. package/dist/components/brand/brand.js +10 -60
  22. package/dist/components/brand/index.d.ts +1 -1
  23. package/dist/components/brand/index.js +1 -0
  24. package/dist/components/brand/model.d.ts +1 -1
  25. package/dist/components/brand/model.js +1 -0
  26. package/dist/components/button/button.d.ts +1 -1
  27. package/dist/components/button/button.js +19 -75
  28. package/dist/components/button/index.d.ts +1 -1
  29. package/dist/components/button/index.js +1 -0
  30. package/dist/components/button/model.d.ts +1 -1
  31. package/dist/components/button/model.js +2 -13
  32. package/dist/components/card/card.d.ts +1 -1
  33. package/dist/components/card/card.js +14 -65
  34. package/dist/components/card/index.d.ts +1 -1
  35. package/dist/components/card/index.js +1 -0
  36. package/dist/components/card/model.d.ts +1 -1
  37. package/dist/components/card/model.js +2 -8
  38. package/dist/components/checkbox/checkbox.d.ts +1 -1
  39. package/dist/components/checkbox/checkbox.js +143 -163
  40. package/dist/components/checkbox/index.d.ts +1 -1
  41. package/dist/components/checkbox/index.js +1 -0
  42. package/dist/components/checkbox/model.d.ts +1 -1
  43. package/dist/components/checkbox/model.js +1 -0
  44. package/dist/components/custom-button/custom-button.d.ts +1 -1
  45. package/dist/components/custom-button/custom-button.js +10 -65
  46. package/dist/components/custom-button/index.d.ts +1 -1
  47. package/dist/components/custom-button/index.js +1 -0
  48. package/dist/components/custom-button/model.d.ts +2 -2
  49. package/dist/components/custom-button/model.js +1 -0
  50. package/dist/components/custom-select/custom-select.d.ts +1 -1
  51. package/dist/components/custom-select/custom-select.js +688 -509
  52. package/dist/components/custom-select/index.d.ts +1 -1
  53. package/dist/components/custom-select/index.js +1 -0
  54. package/dist/components/custom-select/model.d.ts +4 -4
  55. package/dist/components/custom-select/model.js +1 -8
  56. package/dist/components/custom-select-dropdown/custom-select-dropdown.d.ts +1 -1
  57. package/dist/components/custom-select-dropdown/custom-select-dropdown.js +10 -62
  58. package/dist/components/custom-select-dropdown/index.d.ts +1 -1
  59. package/dist/components/custom-select-dropdown/index.js +1 -0
  60. package/dist/components/custom-select-dropdown/model.d.ts +1 -1
  61. package/dist/components/custom-select-dropdown/model.js +1 -8
  62. package/dist/components/custom-select-form-field/custom-select-form-field.d.ts +1 -1
  63. package/dist/components/custom-select-form-field/custom-select-form-field.js +9 -57
  64. package/dist/components/custom-select-form-field/index.d.ts +1 -1
  65. package/dist/components/custom-select-form-field/index.js +1 -0
  66. package/dist/components/custom-select-form-field/model.d.ts +1 -1
  67. package/dist/components/custom-select-form-field/model.js +1 -0
  68. package/dist/components/custom-select-list/custom-select-list.d.ts +1 -1
  69. package/dist/components/custom-select-list/custom-select-list.js +9 -60
  70. package/dist/components/custom-select-list/index.d.ts +1 -1
  71. package/dist/components/custom-select-list/index.js +1 -0
  72. package/dist/components/custom-select-list/model.d.ts +1 -1
  73. package/dist/components/custom-select-list/model.js +1 -0
  74. package/dist/components/custom-select-list-item/custom-select-list-item.d.ts +2 -2
  75. package/dist/components/custom-select-list-item/custom-select-list-item.js +28 -89
  76. package/dist/components/custom-select-list-item/index.d.ts +1 -1
  77. package/dist/components/custom-select-list-item/index.js +1 -0
  78. package/dist/components/custom-select-list-item/model.d.ts +1 -1
  79. package/dist/components/custom-select-list-item/model.js +1 -4
  80. package/dist/components/divider/divider.d.ts +1 -1
  81. package/dist/components/divider/divider.js +9 -60
  82. package/dist/components/divider/index.d.ts +1 -1
  83. package/dist/components/divider/index.js +1 -0
  84. package/dist/components/divider/model.d.ts +1 -1
  85. package/dist/components/divider/model.js +2 -4
  86. package/dist/components/drawer/drawer.d.ts +2 -2
  87. package/dist/components/drawer/drawer.js +109 -118
  88. package/dist/components/drawer/index.d.ts +1 -1
  89. package/dist/components/drawer/index.js +1 -0
  90. package/dist/components/drawer/model.d.ts +4 -1
  91. package/dist/components/drawer/model.js +4 -14
  92. package/dist/components/header/header.d.ts +1 -1
  93. package/dist/components/header/header.js +43 -143
  94. package/dist/components/header/index.d.ts +1 -1
  95. package/dist/components/header/index.js +1 -0
  96. package/dist/components/header/model.d.ts +1 -1
  97. package/dist/components/header/model.js +1 -0
  98. package/dist/components/icon/icon.d.ts +1 -1
  99. package/dist/components/icon/icon.js +9 -61
  100. package/dist/components/icon/index.d.ts +1 -1
  101. package/dist/components/icon/index.js +1 -0
  102. package/dist/components/icon/model.d.ts +1 -1
  103. package/dist/components/icon/model.js +1 -11
  104. package/dist/components/infotext/index.d.ts +1 -1
  105. package/dist/components/infotext/index.js +1 -0
  106. package/dist/components/infotext/infotext.d.ts +1 -1
  107. package/dist/components/infotext/infotext.js +9 -62
  108. package/dist/components/infotext/model.d.ts +1 -1
  109. package/dist/components/infotext/model.js +1 -0
  110. package/dist/components/input/index.d.ts +1 -1
  111. package/dist/components/input/index.js +1 -0
  112. package/dist/components/input/input.d.ts +1 -1
  113. package/dist/components/input/input.js +154 -198
  114. package/dist/components/input/model.d.ts +1 -1
  115. package/dist/components/input/model.js +5 -21
  116. package/dist/components/link/index.d.ts +1 -1
  117. package/dist/components/link/index.js +1 -0
  118. package/dist/components/link/link.d.ts +1 -1
  119. package/dist/components/link/link.js +9 -70
  120. package/dist/components/link/model.d.ts +1 -1
  121. package/dist/components/link/model.js +3 -8
  122. package/dist/components/navigation/index.d.ts +1 -1
  123. package/dist/components/navigation/index.js +1 -0
  124. package/dist/components/navigation/model.d.ts +1 -1
  125. package/dist/components/navigation/model.js +1 -0
  126. package/dist/components/navigation/navigation.d.ts +1 -1
  127. package/dist/components/navigation/navigation.js +9 -57
  128. package/dist/components/navigation-item/index.d.ts +1 -1
  129. package/dist/components/navigation-item/index.js +1 -0
  130. package/dist/components/navigation-item/model.d.ts +2 -2
  131. package/dist/components/navigation-item/model.js +1 -0
  132. package/dist/components/navigation-item/navigation-item.d.ts +1 -1
  133. package/dist/components/navigation-item/navigation-item.js +71 -117
  134. package/dist/components/notification/index.d.ts +1 -1
  135. package/dist/components/notification/index.js +1 -0
  136. package/dist/components/notification/model.d.ts +1 -1
  137. package/dist/components/notification/model.js +3 -12
  138. package/dist/components/notification/notification.d.ts +2 -2
  139. package/dist/components/notification/notification.js +23 -100
  140. package/dist/components/page/index.d.ts +1 -1
  141. package/dist/components/page/index.js +1 -0
  142. package/dist/components/page/model.d.ts +1 -1
  143. package/dist/components/page/model.js +2 -4
  144. package/dist/components/page/page.d.ts +1 -1
  145. package/dist/components/page/page.js +42 -74
  146. package/dist/components/popover/index.d.ts +1 -1
  147. package/dist/components/popover/index.js +1 -0
  148. package/dist/components/popover/model.d.ts +1 -1
  149. package/dist/components/popover/model.js +1 -0
  150. package/dist/components/popover/popover.d.ts +1 -1
  151. package/dist/components/popover/popover.js +119 -126
  152. package/dist/components/radio/index.d.ts +1 -1
  153. package/dist/components/radio/index.js +1 -0
  154. package/dist/components/radio/model.d.ts +1 -1
  155. package/dist/components/radio/model.js +1 -0
  156. package/dist/components/radio/radio.d.ts +1 -1
  157. package/dist/components/radio/radio.js +86 -124
  158. package/dist/components/section/index.d.ts +1 -1
  159. package/dist/components/section/index.js +1 -0
  160. package/dist/components/section/model.d.ts +1 -1
  161. package/dist/components/section/model.js +1 -0
  162. package/dist/components/section/section.d.ts +1 -1
  163. package/dist/components/section/section.js +9 -59
  164. package/dist/components/select/index.d.ts +1 -1
  165. package/dist/components/select/index.js +1 -0
  166. package/dist/components/select/model.d.ts +1 -1
  167. package/dist/components/select/model.js +1 -0
  168. package/dist/components/select/select.d.ts +1 -1
  169. package/dist/components/select/select.js +172 -188
  170. package/dist/components/stack/index.d.ts +1 -1
  171. package/dist/components/stack/index.js +1 -0
  172. package/dist/components/stack/model.d.ts +1 -1
  173. package/dist/components/stack/model.js +4 -14
  174. package/dist/components/stack/stack.d.ts +1 -1
  175. package/dist/components/stack/stack.js +9 -63
  176. package/dist/components/switch/index.d.ts +1 -1
  177. package/dist/components/switch/index.js +1 -0
  178. package/dist/components/switch/model.d.ts +1 -1
  179. package/dist/components/switch/model.js +1 -0
  180. package/dist/components/switch/switch.d.ts +1 -1
  181. package/dist/components/switch/switch.js +135 -182
  182. package/dist/components/tab-item/index.d.ts +1 -1
  183. package/dist/components/tab-item/index.js +1 -0
  184. package/dist/components/tab-item/model.d.ts +1 -1
  185. package/dist/components/tab-item/model.js +1 -0
  186. package/dist/components/tab-item/tab-item.d.ts +1 -1
  187. package/dist/components/tab-item/tab-item.js +72 -105
  188. package/dist/components/tab-list/index.d.ts +1 -1
  189. package/dist/components/tab-list/index.js +1 -0
  190. package/dist/components/tab-list/model.d.ts +1 -1
  191. package/dist/components/tab-list/model.js +1 -0
  192. package/dist/components/tab-list/tab-list.d.ts +1 -1
  193. package/dist/components/tab-list/tab-list.js +9 -60
  194. package/dist/components/tab-panel/index.d.ts +1 -1
  195. package/dist/components/tab-panel/index.js +1 -0
  196. package/dist/components/tab-panel/model.d.ts +1 -1
  197. package/dist/components/tab-panel/model.js +1 -0
  198. package/dist/components/tab-panel/tab-panel.d.ts +1 -1
  199. package/dist/components/tab-panel/tab-panel.js +10 -59
  200. package/dist/components/table/examples/data.d.ts +1 -1
  201. package/dist/components/table/examples/data.js +258 -0
  202. package/dist/components/table/index.d.ts +1 -1
  203. package/dist/components/table/index.js +1 -0
  204. package/dist/components/table/model.d.ts +2 -2
  205. package/dist/components/table/model.js +6 -28
  206. package/dist/components/table/table.d.ts +1 -1
  207. package/dist/components/table/table.js +77 -111
  208. package/dist/components/table-body/index.d.ts +1 -1
  209. package/dist/components/table-body/index.js +1 -0
  210. package/dist/components/table-body/model.d.ts +2 -2
  211. package/dist/components/table-body/model.js +1 -0
  212. package/dist/components/table-body/table-body.d.ts +1 -1
  213. package/dist/components/table-body/table-body.js +12 -64
  214. package/dist/components/table-caption/index.d.ts +1 -1
  215. package/dist/components/table-caption/index.js +1 -0
  216. package/dist/components/table-caption/model.d.ts +1 -1
  217. package/dist/components/table-caption/model.js +1 -0
  218. package/dist/components/table-caption/table-caption.d.ts +1 -1
  219. package/dist/components/table-caption/table-caption.js +9 -57
  220. package/dist/components/table-data-cell/index.d.ts +1 -1
  221. package/dist/components/table-data-cell/index.js +1 -0
  222. package/dist/components/table-data-cell/model.d.ts +1 -1
  223. package/dist/components/table-data-cell/model.js +1 -0
  224. package/dist/components/table-data-cell/table-data-cell.d.ts +1 -1
  225. package/dist/components/table-data-cell/table-data-cell.js +9 -62
  226. package/dist/components/table-footer/index.d.ts +1 -1
  227. package/dist/components/table-footer/index.js +1 -0
  228. package/dist/components/table-footer/model.d.ts +2 -2
  229. package/dist/components/table-footer/model.js +1 -0
  230. package/dist/components/table-footer/table-footer.d.ts +1 -1
  231. package/dist/components/table-footer/table-footer.js +12 -64
  232. package/dist/components/table-head/index.d.ts +1 -1
  233. package/dist/components/table-head/index.js +1 -0
  234. package/dist/components/table-head/model.d.ts +2 -2
  235. package/dist/components/table-head/model.js +1 -0
  236. package/dist/components/table-head/table-head.d.ts +1 -1
  237. package/dist/components/table-head/table-head.js +18 -71
  238. package/dist/components/table-header-cell/index.d.ts +1 -1
  239. package/dist/components/table-header-cell/index.js +1 -0
  240. package/dist/components/table-header-cell/model.d.ts +1 -1
  241. package/dist/components/table-header-cell/model.js +1 -9
  242. package/dist/components/table-header-cell/table-header-cell.d.ts +1 -1
  243. package/dist/components/table-header-cell/table-header-cell.js +9 -65
  244. package/dist/components/table-row/index.d.ts +1 -1
  245. package/dist/components/table-row/index.js +1 -0
  246. package/dist/components/table-row/model.d.ts +4 -4
  247. package/dist/components/table-row/model.js +1 -8
  248. package/dist/components/table-row/table-row.d.ts +1 -1
  249. package/dist/components/table-row/table-row.js +20 -127
  250. package/dist/components/tabs/index.d.ts +1 -1
  251. package/dist/components/tabs/index.js +1 -0
  252. package/dist/components/tabs/model.d.ts +3 -3
  253. package/dist/components/tabs/model.js +2 -4
  254. package/dist/components/tabs/tabs.d.ts +1 -1
  255. package/dist/components/tabs/tabs.js +170 -191
  256. package/dist/components/tag/index.d.ts +1 -1
  257. package/dist/components/tag/index.js +1 -0
  258. package/dist/components/tag/model.d.ts +1 -1
  259. package/dist/components/tag/model.js +1 -4
  260. package/dist/components/tag/tag.d.ts +1 -1
  261. package/dist/components/tag/tag.js +26 -91
  262. package/dist/components/textarea/index.d.ts +1 -1
  263. package/dist/components/textarea/index.js +1 -0
  264. package/dist/components/textarea/model.d.ts +1 -1
  265. package/dist/components/textarea/model.js +2 -13
  266. package/dist/components/textarea/textarea.d.ts +1 -1
  267. package/dist/components/textarea/textarea.js +139 -165
  268. package/dist/components/tooltip/index.d.ts +1 -1
  269. package/dist/components/tooltip/index.js +1 -0
  270. package/dist/components/tooltip/model.d.ts +1 -1
  271. package/dist/components/tooltip/model.js +1 -4
  272. package/dist/components/tooltip/tooltip.d.ts +1 -1
  273. package/dist/components/tooltip/tooltip.js +197 -160
  274. package/dist/index.d.ts +97 -97
  275. package/dist/index.js +97 -75
  276. package/dist/shared/constants.js +100 -32
  277. package/dist/shared/examples/index.js +4 -0
  278. package/dist/shared/figma.js +1 -0
  279. package/dist/shared/model.js +22 -77
  280. package/dist/shared/showcase/show-code-link.js +51 -0
  281. package/dist/utils/document-click-listener.js +29 -26
  282. package/dist/utils/document-scroll-listener.js +38 -30
  283. package/dist/utils/floating-components.js +404 -107
  284. package/dist/utils/form-components.js +71 -34
  285. package/dist/utils/index.d.ts +1 -1
  286. package/dist/utils/index.js +170 -49
  287. package/dist/utils/navigation.js +134 -68
  288. package/dist/utils/react.js +21 -10
  289. package/package.json +6 -9
package/CHANGELOG.md CHANGED
@@ -1,5 +1,28 @@
1
1
  # @db-ux/react-core-components
2
2
 
3
+ ## 4.12.1
4
+
5
+ ### Patch Changes
6
+
7
+ - fix(custom-select): dropdown with `dropdownWidth="auto"` now correctly sizes to content width and respects the trigger minimum width. Long option labels no longer get truncated: `auto` keeps them on a single line (dropdown grows to the longest option), while `fixed` and `full` wrap long labels onto new lines. - [see commit 68dedc3](https://github.com/db-ux-design-system/core-web/commit/68dedc33c324b48339d5bb73a85fdff3045ed059)
8
+
9
+ - fix(drawer): prevent backdrop drag-close when selection starts inside content - [see commit b53ff8a](https://github.com/db-ux-design-system/core-web/commit/b53ff8a4f0a5350c5be41fad072e14797676bba7)
10
+
11
+ ## 4.12.0
12
+
13
+ ### Minor Changes
14
+
15
+ - feat: emit spec-compliant ESM with explicit import extensions - [see commit 73808d6](https://github.com/db-ux-design-system/core-web/commit/73808d6ec80085451d72e5ad73eb154198a60558):
16
+
17
+ - The generated React, Vue and Web Component outputs now produce standards-compliant
18
+ - ESM: every relative import/export carries an explicit `.js` / `/index.js` (or `.vue`)
19
+ - extension, added during Mitosis generation. This resolves `ERR_UNSUPPORTED_DIR_IMPORT`
20
+ - in strict ESM environments such as Node.js native ESM and Vitest 4.
21
+ - The React output additionally compiles with `module`/`moduleResolution: "node16"`
22
+ - (plus `jsx: "react-jsx"` and `target: "es2022"`), so missing extensions are caught at
23
+ - compile time. As a result the emitted React JS uses the `react/jsx-runtime` transform
24
+ - and es2022 syntax (React 19 compatible).
25
+
3
26
  ## 4.11.1
4
27
 
5
28
  ### Patch Changes
@@ -1,3 +1,3 @@
1
1
  import * as React from "react";
2
- declare const DBAccordion: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<any>, keyof import("../..").GlobalProps | keyof import("./model").DBAccordionDefaultProps> & import("./model").DBAccordionDefaultProps & import("../..").GlobalProps & React.RefAttributes<any>>;
2
+ declare const DBAccordion: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<any>, keyof import("../../index.js").GlobalProps | keyof import("./model.js").DBAccordionDefaultProps> & import("./model.js").DBAccordionDefaultProps & import("../../index.js").GlobalProps & React.RefAttributes<any>>;
3
3
  export default DBAccordion;
@@ -1,104 +1,85 @@
1
1
  "use client";
2
- import { filterPassingProps as e, getRootProps as t } from "../../utils/react.js";
3
- import { cls as n } from "../../utils/index.js";
4
- import r from "../accordion-item/accordion-item.js";
5
- import { forwardRef as i, useEffect as a, useId as o, useRef as s, useState as c } from "react";
6
- import { Fragment as l, jsx as u, jsxs as d } from "react/jsx-runtime";
7
- //#region src/components/accordion/accordion.tsx
8
- function f(i, f) {
9
- let p = o(), m = f || s(f), [h, g] = c(() => ""), [_, v] = c(() => !1), [y, b] = c(() => !1);
10
- function x() {
11
- try {
12
- return typeof i.items == "string" ? JSON.parse(i.items) : i.items;
13
- } catch (e) {
14
- console.error(e);
15
- }
16
- return [];
17
- }
18
- return a(() => {
19
- v(!0), b(!0);
20
- }, []), a(() => {
21
- _ && m.current && (i.behavior === "single" ? i.name ? h !== i.name && g(i.name) : g(`accordion-${p}`) : g(""));
22
- }, [
23
- _,
24
- i.name,
25
- i.behavior
26
- ]), a(() => {
27
- if (m.current) {
28
- let e = m.current.getElementsByTagName("details");
29
- if (e) for (let t of Array.from(e)) h === "" ? t.removeAttribute("name") : t.name = h ?? "";
30
- }
31
- }, [m.current, h]), a(() => {
32
- if (m.current && y) {
33
- if (i?.initOpenIndex && i.initOpenIndex.length > 0) {
34
- let e = m.current.getElementsByTagName("details");
35
- if (e) {
36
- let t = i.behavior === "single" && i.initOpenIndex.length > 1 ? [i.initOpenIndex[0]] : i.initOpenIndex;
37
- Array.from(e).forEach((e, n) => {
38
- t?.includes(n) && (e.open = !0);
39
- });
40
- }
41
- }
42
- b(!1);
43
- }
44
- }, [
45
- m.current,
46
- y,
47
- i.initOpenIndex
48
- ]), /* @__PURE__ */ d("ul", {
49
- ref: m,
50
- ...e(i, [
51
- "data-icon-variant",
52
- "data-icon-variant-before",
53
- "data-icon-variant-after",
54
- "data-icon-weight",
55
- "data-icon-weight-before",
56
- "data-icon-weight-after",
57
- "data-interactive",
58
- "data-force-mobile",
59
- "data-color",
60
- "data-container-color",
61
- "data-bg-color",
62
- "data-on-bg-color",
63
- "data-color-scheme",
64
- "data-font-size",
65
- "data-headline-size",
66
- "data-divider",
67
- "data-focus",
68
- "data-font",
69
- "data-density"
70
- ]),
71
- id: i.id ?? i.propOverrides?.id,
72
- ...t(i, [
73
- "data-icon-variant",
74
- "data-icon-variant-before",
75
- "data-icon-variant-after",
76
- "data-icon-weight",
77
- "data-icon-weight-before",
78
- "data-icon-weight-after",
79
- "data-interactive",
80
- "data-force-mobile",
81
- "data-color",
82
- "data-container-color",
83
- "data-bg-color",
84
- "data-on-bg-color",
85
- "data-color-scheme",
86
- "data-font-size",
87
- "data-headline-size",
88
- "data-divider",
89
- "data-focus",
90
- "data-font",
91
- "data-density"
92
- ]),
93
- className: n("db-accordion", i.className),
94
- "data-variant": i.variant,
95
- children: [i.items ? null : /* @__PURE__ */ u(l, { children: i.children }), i.items ? /* @__PURE__ */ u(l, { children: x()?.map((e, t) => /* @__PURE__ */ u(r, {
96
- headlinePlain: e.headlinePlain,
97
- disabled: e.disabled,
98
- text: e.text
99
- }, `accordion-item-${t}`)) }) : null]
100
- });
2
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { filterPassingProps, getRootProps } from "../../utils/react.js";
4
+ import { useState, useRef, useEffect, forwardRef } from "react";
5
+ import { cls } from "../../utils/index.js";
6
+ import DBAccordionItem from "../accordion-item/accordion-item.js";
7
+ import { useId } from "react";
8
+ function DBAccordionFn(props, component) {
9
+ const uuid = useId();
10
+ const _ref = component || useRef(component);
11
+ const [_name, set_name] = useState(() => "");
12
+ const [initialized, setInitialized] = useState(() => false);
13
+ const [_initOpenIndexDone, set_initOpenIndexDone] = useState(() => false);
14
+ function convertItems() {
15
+ try {
16
+ if (typeof props.items === "string") {
17
+ return JSON.parse(props.items);
18
+ }
19
+ return props.items;
20
+ }
21
+ catch (error) {
22
+ console.error(error);
23
+ }
24
+ return [];
25
+ }
26
+ useEffect(() => {
27
+ setInitialized(true);
28
+ set_initOpenIndexDone(true);
29
+ }, []);
30
+ useEffect(() => {
31
+ // If we have a single behavior we first check for
32
+ // props.name otherwise for state_id
33
+ if (initialized && _ref.current) {
34
+ if (props.behavior === "single") {
35
+ if (props.name) {
36
+ if (_name !== props.name) {
37
+ set_name(props.name);
38
+ }
39
+ }
40
+ else {
41
+ set_name(`accordion-${uuid}`);
42
+ }
43
+ }
44
+ else {
45
+ set_name("");
46
+ }
47
+ }
48
+ }, [initialized, props.name, props.behavior]);
49
+ useEffect(() => {
50
+ if (_ref.current) {
51
+ const childDetails = _ref.current.getElementsByTagName("details");
52
+ if (childDetails) {
53
+ for (const details of Array.from(childDetails)) {
54
+ if (_name === "") {
55
+ details.removeAttribute("name");
56
+ }
57
+ else {
58
+ details.name = _name ?? "";
59
+ }
60
+ }
61
+ }
62
+ }
63
+ }, [_ref.current, _name]);
64
+ useEffect(() => {
65
+ if (_ref.current && _initOpenIndexDone) {
66
+ if (props?.initOpenIndex && props.initOpenIndex.length > 0) {
67
+ const childDetails = _ref.current.getElementsByTagName("details");
68
+ if (childDetails) {
69
+ const initOpenIndex = props.behavior === "single" && props.initOpenIndex.length > 1
70
+ ? [props.initOpenIndex[0]] // use only one index for behavior=single
71
+ : props.initOpenIndex;
72
+ Array.from(childDetails).forEach((details, index) => {
73
+ if (initOpenIndex?.includes(index)) {
74
+ details.open = true;
75
+ }
76
+ });
77
+ }
78
+ }
79
+ set_initOpenIndexDone(false);
80
+ }
81
+ }, [_ref.current, _initOpenIndexDone, props.initOpenIndex]);
82
+ return (_jsxs("ul", { 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 ?? props.propOverrides?.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-accordion", props.className), "data-variant": props.variant, children: [!props.items ? _jsx(_Fragment, { children: props.children }) : null, props.items ? (_jsx(_Fragment, { children: convertItems()?.map((item, index) => (_jsx(DBAccordionItem, { headlinePlain: item.headlinePlain, disabled: item.disabled, text: item.text }, `accordion-item-${index}`))) })) : null] }));
101
83
  }
102
- var p = i(f);
103
- //#endregion
104
- export { p as default };
84
+ const DBAccordion = forwardRef(DBAccordionFn);
85
+ export default DBAccordion;
@@ -1 +1 @@
1
- export { default as DBAccordion } from './accordion';
1
+ export { default as DBAccordion } from './accordion.js';
@@ -0,0 +1 @@
1
+ export { default as DBAccordion } from './accordion.js';
@@ -1,5 +1,5 @@
1
- import type { GlobalProps, InitializedState } from '../../shared/model';
2
- import type { DBAccordionItemDefaultProps } from '../accordion-item/model';
1
+ import type { GlobalProps, InitializedState } from '../../shared/model.js';
2
+ import type { DBAccordionItemDefaultProps } from '../accordion-item/model.js';
3
3
  export declare const AccordionVariantList: readonly ["divider", "card"];
4
4
  export type AccordionVariantType = (typeof AccordionVariantList)[number];
5
5
  export declare const AccordionBehaviorList: readonly ["multiple", "single"];
@@ -1,4 +1,2 @@
1
- //#region src/components/accordion/model.ts
2
- var e = ["divider", "card"], t = ["multiple", "single"];
3
- //#endregion
4
- export { t as AccordionBehaviorList, e as AccordionVariantList };
1
+ export const AccordionVariantList = ['divider', 'card'];
2
+ export const AccordionBehaviorList = ['multiple', 'single'];
@@ -1,9 +1,9 @@
1
1
  import * as React from "react";
2
- declare const DBAccordionItem: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<any>, keyof import("../../shared/model").GlobalProps | "name" | "text" | "defaultOpen" | "open" | "disabled" | "headline" | "headlinePlain" | keyof import("../../shared/model").ToggleEventProps> & {
2
+ declare const DBAccordionItem: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<any>, keyof import("../../shared/model.js").GlobalProps | "name" | "text" | "defaultOpen" | "open" | "disabled" | "headline" | "headlinePlain" | keyof import("../../shared/model.js").ToggleEventProps> & {
3
3
  defaultOpen?: boolean;
4
4
  open?: boolean | string;
5
5
  disabled?: boolean | string;
6
6
  headline?: any;
7
7
  headlinePlain?: string;
8
- } & import("../../shared/model").TextProps & import("../../shared/model").GlobalProps & import("../../shared/model").ToggleEventProps & import("../../shared/model").NameProps & React.RefAttributes<any>>;
8
+ } & import("../../shared/model.js").TextProps & import("../../shared/model.js").GlobalProps & import("../../shared/model.js").ToggleEventProps & import("../../shared/model.js").NameProps & React.RefAttributes<any>>;
9
9
  export default DBAccordionItem;
@@ -1,91 +1,58 @@
1
1
  "use client";
2
- import { filterPassingProps as e, getRootProps as t } from "../../utils/react.js";
3
- import { cls as n, getBoolean as r, getBooleanAsString as i } from "../../utils/index.js";
4
- import { forwardRef as a, useEffect as o, useRef as s, useState as c } from "react";
5
- import { Fragment as l, jsx as u, jsxs as d } from "react/jsx-runtime";
6
- //#region src/components/accordion-item/accordion-item.tsx
7
- function f(a, f) {
8
- let p = f || s(f), [m, h] = c(() => !1), [g, _] = c(() => void 0), [v, y] = c(() => !1);
9
- function b() {
10
- if (p.current) {
11
- let e = p.current.setAttribute;
12
- p.current.setAttribute = (t, n) => {
13
- e.call(p.current, t, n), t === "name" && _(n);
14
- };
15
- }
16
- }
17
- function x(e) {
18
- e?.preventDefault();
19
- let t = !m;
20
- a.onToggle && a.onToggle(t), a.open === void 0 && h(t);
21
- }
22
- return o(() => {
23
- a.defaultOpen && h(a.defaultOpen), y(!0);
24
- }, []), o(() => {
25
- p.current && v && b();
26
- }, [p.current, v]), o(() => {
27
- a.name && _(a.name);
28
- }, [a.name]), o(() => {
29
- let e = r(a.open, "open");
30
- e !== void 0 && h(e);
31
- }, [a.open]), /* @__PURE__ */ u("li", {
32
- id: a.id ?? a.propOverrides?.id,
33
- ...t(a, [
34
- "data-icon-variant",
35
- "data-icon-variant-before",
36
- "data-icon-variant-after",
37
- "data-icon-weight",
38
- "data-icon-weight-before",
39
- "data-icon-weight-after",
40
- "data-interactive",
41
- "data-force-mobile",
42
- "data-color",
43
- "data-container-color",
44
- "data-bg-color",
45
- "data-on-bg-color",
46
- "data-color-scheme",
47
- "data-font-size",
48
- "data-headline-size",
49
- "data-divider",
50
- "data-focus",
51
- "data-font",
52
- "data-density"
53
- ]),
54
- className: n("db-accordion-item", a.className),
55
- children: /* @__PURE__ */ d("details", {
56
- "aria-disabled": i(a.disabled, "disabled"),
57
- ref: p,
58
- ...e(a, [
59
- "data-icon-variant",
60
- "data-icon-variant-before",
61
- "data-icon-variant-after",
62
- "data-icon-weight",
63
- "data-icon-weight-before",
64
- "data-icon-weight-after",
65
- "data-interactive",
66
- "data-force-mobile",
67
- "data-color",
68
- "data-container-color",
69
- "data-bg-color",
70
- "data-on-bg-color",
71
- "data-color-scheme",
72
- "data-font-size",
73
- "data-headline-size",
74
- "data-divider",
75
- "data-focus",
76
- "data-font",
77
- "data-density",
78
- "onToggle"
79
- ]),
80
- name: g,
81
- open: m,
82
- children: [/* @__PURE__ */ d("summary", {
83
- onClick: (e) => x(e),
84
- children: [a.headlinePlain ? /* @__PURE__ */ u(l, { children: a.headlinePlain }) : null, a.headlinePlain ? null : /* @__PURE__ */ u(l, { children: a.headline })]
85
- }), /* @__PURE__ */ d("div", { children: [a.text ? /* @__PURE__ */ u(l, { children: a.text }) : null, a.children] })]
86
- })
87
- });
2
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { filterPassingProps, getRootProps } from "../../utils/react.js";
4
+ import { useState, useRef, useEffect, forwardRef } from "react";
5
+ import { cls, getBoolean, getBooleanAsString } from "../../utils/index.js";
6
+ function DBAccordionItemFn(props, component) {
7
+ const _ref = component || useRef(component);
8
+ const [_open, set_open] = useState(() => false);
9
+ const [_name, set_name] = useState(() => undefined);
10
+ const [initialized, setInitialized] = useState(() => false);
11
+ function handleNameAttribute() {
12
+ if (_ref.current) {
13
+ const setAttribute = _ref.current.setAttribute;
14
+ _ref.current.setAttribute = (attribute, value) => {
15
+ setAttribute.call(_ref.current, attribute, value);
16
+ if (attribute === "name") {
17
+ set_name(value);
18
+ }
19
+ };
20
+ }
21
+ }
22
+ function handleToggle(event) {
23
+ // We need this for react https://github.com/facebook/react/issues/15486#issuecomment-488028431
24
+ event?.preventDefault();
25
+ const newStateOpen = !_open;
26
+ if (props.onToggle) {
27
+ props.onToggle(newStateOpen);
28
+ }
29
+ if (props.open === undefined) {
30
+ set_open(newStateOpen);
31
+ }
32
+ }
33
+ useEffect(() => {
34
+ if (props.defaultOpen) {
35
+ set_open(props.defaultOpen);
36
+ }
37
+ setInitialized(true);
38
+ }, []);
39
+ useEffect(() => {
40
+ if (_ref.current && initialized) {
41
+ handleNameAttribute();
42
+ }
43
+ }, [_ref.current, initialized]);
44
+ useEffect(() => {
45
+ if (props.name) {
46
+ set_name(props.name);
47
+ }
48
+ }, [props.name]);
49
+ useEffect(() => {
50
+ const nextOpen = getBoolean(props.open, "open");
51
+ if (nextOpen !== undefined) {
52
+ set_open(nextOpen);
53
+ }
54
+ }, [props.open]);
55
+ return (_jsx("li", { id: props.id ?? props.propOverrides?.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-accordion-item", props.className), children: _jsxs("details", { "aria-disabled": getBooleanAsString(props.disabled, "disabled"), 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", "onToggle"]), name: _name, open: _open, children: [_jsxs("summary", { onClick: (event) => handleToggle(event), children: [props.headlinePlain ? _jsx(_Fragment, { children: props.headlinePlain }) : null, !props.headlinePlain ? _jsx(_Fragment, { children: props.headline }) : null] }), _jsxs("div", { children: [props.text ? _jsx(_Fragment, { children: props.text }) : null, props.children] })] }) }));
88
56
  }
89
- var p = a(f);
90
- //#endregion
91
- export { p as default };
57
+ const DBAccordionItem = forwardRef(DBAccordionItemFn);
58
+ export default DBAccordionItem;
@@ -1 +1 @@
1
- export { default as DBAccordionItem } from './accordion-item';
1
+ export { default as DBAccordionItem } from './accordion-item.js';
@@ -0,0 +1 @@
1
+ export { default as DBAccordionItem } from './accordion-item.js';
@@ -1,4 +1,4 @@
1
- import type { GlobalProps, InitializedState, NameProps, NameState, TextProps, ToggleEventProps, ToggleEventState } from '../../shared/model';
1
+ import type { GlobalProps, InitializedState, NameProps, NameState, TextProps, ToggleEventProps, ToggleEventState } from '../../shared/model.js';
2
2
  export type DBAccordionItemDefaultProps = {
3
3
  /**
4
4
  * Initial state for the accordion item
@@ -0,0 +1 @@
1
+ export {};
@@ -1,3 +1,3 @@
1
1
  import * as React from "react";
2
- declare const DBBadge: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<any>, keyof import("../..").GlobalProps | "semantic" | "text" | keyof import("./model").DBBadgeDefaultProps | "size" | "emphasis" | "wrap"> & import("./model").DBBadgeDefaultProps & import("../..").GlobalProps & import("../..").SemanticProps & import("../..").SizeProps & import("../..").EmphasisProps & import("../..").TextProps & import("../..").WrapProps & React.RefAttributes<any>>;
2
+ declare const DBBadge: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<any>, keyof import("../../index.js").GlobalProps | "semantic" | "text" | keyof import("./model.js").DBBadgeDefaultProps | "size" | "emphasis" | "wrap"> & import("./model.js").DBBadgeDefaultProps & import("../../index.js").GlobalProps & import("../../index.js").SemanticProps & import("../../index.js").SizeProps & import("../../index.js").EmphasisProps & import("../../index.js").TextProps & import("../../index.js").WrapProps & React.RefAttributes<any>>;
3
3
  export default DBBadge;
@@ -1,74 +1,30 @@
1
1
  "use client";
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 "../../shared/constants.js";
5
- import { forwardRef as i, useEffect as a, useRef as o, useState as s } from "react";
6
- import { Fragment as c, jsx as l, jsxs as u } from "react/jsx-runtime";
7
- //#region src/components/badge/badge.tsx
8
- function d(i, d) {
9
- let f = d || o(d), [p, m] = s(() => !1);
10
- return a(() => {
11
- m(!0);
12
- }, []), a(() => {
13
- if (f.current && p && i.placement?.startsWith("corner")) {
14
- let e = f.current.parentElement;
15
- e && e.localName.includes("badge") && (e = e.parentElement), e && (e.dataset.hasBadge = "true");
16
- }
17
- }, [f.current, p]), /* @__PURE__ */ u("span", {
18
- ref: f,
19
- ...e(i, [
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
- ]),
40
- id: i.id ?? i.propOverrides?.id,
41
- ...t(i, [
42
- "data-icon-variant",
43
- "data-icon-variant-before",
44
- "data-icon-variant-after",
45
- "data-icon-weight",
46
- "data-icon-weight-before",
47
- "data-icon-weight-after",
48
- "data-interactive",
49
- "data-force-mobile",
50
- "data-color",
51
- "data-container-color",
52
- "data-bg-color",
53
- "data-on-bg-color",
54
- "data-color-scheme",
55
- "data-font-size",
56
- "data-headline-size",
57
- "data-divider",
58
- "data-focus",
59
- "data-font",
60
- "data-density"
61
- ]),
62
- className: n("db-badge", i.className),
63
- "data-semantic": i.semantic,
64
- "data-size": i.size,
65
- "data-emphasis": i.emphasis,
66
- "data-placement": i.placement,
67
- "data-wrap": r(i.wrap, "wrap"),
68
- "data-label": i.placement?.startsWith("corner") && (i.label ?? "LABEL SHOULD BE SET"),
69
- children: [i.text ? /* @__PURE__ */ l(c, { children: i.text }) : null, i.children]
70
- });
2
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { filterPassingProps, getRootProps } from "../../utils/react.js";
4
+ import { useState, useRef, useEffect, forwardRef } from "react";
5
+ import { DEFAULT_LABEL } from "../../shared/constants.js";
6
+ import { cls, getBooleanAsString } from "../../utils/index.js";
7
+ function DBBadgeFn(props, component) {
8
+ const _ref = component || useRef(component);
9
+ const [initialized, setInitialized] = useState(() => false);
10
+ useEffect(() => {
11
+ setInitialized(true);
12
+ }, []);
13
+ useEffect(() => {
14
+ if (_ref.current && initialized) {
15
+ if (props.placement?.startsWith("corner")) {
16
+ let parent = _ref.current.parentElement;
17
+ if (parent && parent.localName.includes("badge")) {
18
+ // Angular workaround
19
+ parent = parent.parentElement;
20
+ }
21
+ if (parent) {
22
+ parent.dataset["hasBadge"] = "true";
23
+ }
24
+ }
25
+ }
26
+ }, [_ref.current, initialized]);
27
+ return (_jsxs("span", { 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 ?? props.propOverrides?.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-badge", props.className), "data-semantic": props.semantic, "data-size": props.size, "data-emphasis": props.emphasis, "data-placement": props.placement, "data-wrap": getBooleanAsString(props.wrap, "wrap"), "data-label": props.placement?.startsWith("corner") && (props.label ?? DEFAULT_LABEL), children: [props.text ? _jsx(_Fragment, { children: props.text }) : null, props.children] }));
71
28
  }
72
- var f = i(d);
73
- //#endregion
74
- export { f as default };
29
+ const DBBadge = forwardRef(DBBadgeFn);
30
+ export default DBBadge;
@@ -1 +1 @@
1
- export { default as DBBadge } from './badge';
1
+ export { default as DBBadge } from './badge.js';
@@ -0,0 +1 @@
1
+ export { default as DBBadge } from './badge.js';
@@ -1,4 +1,4 @@
1
- import type { EmphasisProps, GlobalProps, GlobalState, InitializedState, SemanticProps, SizeProps, TextProps, WrapProps } from '../../shared/model';
1
+ import type { EmphasisProps, GlobalProps, GlobalState, InitializedState, SemanticProps, SizeProps, TextProps, WrapProps } from '../../shared/model.js';
2
2
  export declare const BadgePlacementList: readonly ["inline", "corner-top-left", "corner-top-right", "corner-center-left", "corner-center-right", "corner-bottom-left", "corner-bottom-right"];
3
3
  export type BadgePlacementType = (typeof BadgePlacementList)[number];
4
4
  export type DBBadgeDefaultProps = {
@@ -1,12 +1 @@
1
- //#region src/components/badge/model.ts
2
- var e = [
3
- "inline",
4
- "corner-top-left",
5
- "corner-top-right",
6
- "corner-center-left",
7
- "corner-center-right",
8
- "corner-bottom-left",
9
- "corner-bottom-right"
10
- ];
11
- //#endregion
12
- export { e as BadgePlacementList };
1
+ export const BadgePlacementList = ['inline', 'corner-top-left', 'corner-top-right', 'corner-center-left', 'corner-center-right', 'corner-bottom-left', 'corner-bottom-right'];
@@ -1,3 +1,3 @@
1
1
  import * as React from "react";
2
- declare const DBBrand: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<any>, keyof import("../..").GlobalProps | "text" | "hideLogo" | "icon" | "showIcon"> & import("./model").DBBrandDefaultProps & import("../..").GlobalProps & import("../..").IconProps & import("../..").ShowIconProps & import("../..").TextProps & React.RefAttributes<any>>;
2
+ declare const DBBrand: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<any>, keyof import("../../index.js").GlobalProps | "text" | "hideLogo" | "icon" | "showIcon"> & import("./model.js").DBBrandDefaultProps & import("../../index.js").GlobalProps & import("../../index.js").IconProps & import("../../index.js").ShowIconProps & import("../../index.js").TextProps & React.RefAttributes<any>>;
3
3
  export default DBBrand;