@db-ux/wc-core-components 4.11.0 → 4.11.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 (316) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/bundle/db-accordion-item.js +1 -1
  3. package/bundle/db-accordion.js +1 -1
  4. package/bundle/db-badge.js +1 -1
  5. package/bundle/db-brand.js +1 -1
  6. package/bundle/db-button.js +1 -1
  7. package/bundle/db-card.js +1 -1
  8. package/bundle/db-checkbox.js +1 -1
  9. package/bundle/db-custom-button.js +1 -1
  10. package/bundle/db-custom-select-dropdown.js +1 -1
  11. package/bundle/db-custom-select-form-field.js +1 -1
  12. package/bundle/db-custom-select-list-item.js +1 -1
  13. package/bundle/db-custom-select-list.js +1 -1
  14. package/bundle/db-custom-select.js +1 -1
  15. package/bundle/db-divider.js +1 -1
  16. package/bundle/db-drawer.js +1 -1
  17. package/bundle/db-header.js +1 -1
  18. package/bundle/db-icon.js +1 -1
  19. package/bundle/db-infotext.js +1 -1
  20. package/bundle/db-input.js +1 -1
  21. package/bundle/db-link.js +1 -1
  22. package/bundle/db-navigation-item.js +1 -1
  23. package/bundle/db-navigation.js +1 -1
  24. package/bundle/db-notification.js +1 -1
  25. package/bundle/db-page.js +1 -1
  26. package/bundle/db-popover.js +1 -1
  27. package/bundle/db-radio.js +1 -1
  28. package/bundle/db-section.js +1 -1
  29. package/bundle/db-select.js +1 -1
  30. package/bundle/db-stack.js +1 -1
  31. package/bundle/db-switch.js +1 -1
  32. package/bundle/db-tab-item.js +1 -1
  33. package/bundle/db-tab-list.js +1 -1
  34. package/bundle/db-tab-panel.js +1 -1
  35. package/bundle/db-table-body.js +1 -1
  36. package/bundle/db-table-caption.js +1 -1
  37. package/bundle/db-table-data-cell.js +1 -1
  38. package/bundle/db-table-footer.js +1 -1
  39. package/bundle/db-table-head.js +1 -1
  40. package/bundle/db-table-header-cell.js +1 -1
  41. package/bundle/db-table-row.js +1 -1
  42. package/bundle/db-table.js +1 -1
  43. package/bundle/db-tabs.js +1 -1
  44. package/bundle/db-tag.js +1 -1
  45. package/bundle/db-textarea.js +1 -1
  46. package/bundle/db-tooltip.js +1 -1
  47. package/bundle/p-3Da4lo5j.js +1 -0
  48. package/bundle/p-BEcb3EOO.js +1 -0
  49. package/bundle/p-BEolc6Da.js +1 -0
  50. package/bundle/p-BekmqY3B.js +1 -0
  51. package/bundle/p-BmRO4X-P.js +1 -0
  52. package/bundle/p-BrQIYm5N.js +1 -0
  53. package/bundle/p-BxZ0zFXf.js +1 -0
  54. package/bundle/p-C2viXF7U.js +1 -0
  55. package/bundle/p-C4iD-won.js +1 -0
  56. package/bundle/p-CHg_VPD9.js +1 -0
  57. package/bundle/p-CZ9SsTOA.js +1 -0
  58. package/bundle/p-CewqZGHg.js +1 -0
  59. package/bundle/p-CotiEHZi.js +1 -0
  60. package/bundle/p-D1orcIJf.js +1 -0
  61. package/bundle/p-D9RSX1St.js +1 -0
  62. package/bundle/p-DbgzEek1.js +1 -0
  63. package/bundle/p-DqNXsduK.js +1 -0
  64. package/bundle/p-Duacd-NX.js +1 -0
  65. package/bundle/p-k5Hci0ok.js +1 -0
  66. package/bundle/p-mk64Fltq.js +1 -0
  67. package/dist/cjs/db-accordion-item.cjs.entry.js +46 -9
  68. package/dist/cjs/db-accordion.cjs.entry.js +43 -6
  69. package/dist/cjs/db-badge.cjs.entry.js +43 -6
  70. package/dist/cjs/db-brand.cjs.entry.js +36 -5
  71. package/dist/cjs/db-button.cjs.entry.js +36 -5
  72. package/dist/cjs/db-card.cjs.entry.js +36 -5
  73. package/dist/cjs/db-checkbox.cjs.entry.js +45 -11
  74. package/dist/cjs/db-custom-button.cjs.entry.js +36 -5
  75. package/dist/cjs/db-custom-select-dropdown_5.cjs.entry.js +190 -31
  76. package/dist/cjs/db-custom-select-form-field.cjs.entry.js +36 -5
  77. package/dist/cjs/db-custom-select.cjs.entry.js +60 -26
  78. package/dist/cjs/db-divider.cjs.entry.js +35 -4
  79. package/dist/cjs/db-drawer.cjs.entry.js +45 -8
  80. package/dist/cjs/db-header.cjs.entry.js +43 -6
  81. package/dist/cjs/db-icon.cjs.entry.js +36 -5
  82. package/dist/cjs/db-infotext.cjs.entry.js +36 -5
  83. package/dist/cjs/db-link_4.cjs.entry.js +65 -19
  84. package/dist/cjs/db-navigation-item.cjs.entry.js +46 -9
  85. package/dist/cjs/db-navigation.cjs.entry.js +36 -5
  86. package/dist/cjs/db-notification.cjs.entry.js +36 -5
  87. package/dist/cjs/db-page.cjs.entry.js +48 -13
  88. package/dist/cjs/db-popover.cjs.entry.js +43 -6
  89. package/dist/cjs/db-radio.cjs.entry.js +42 -8
  90. package/dist/cjs/db-section.cjs.entry.js +36 -5
  91. package/dist/cjs/db-select.cjs.entry.js +45 -11
  92. package/dist/cjs/db-stack.cjs.entry.js +36 -5
  93. package/dist/cjs/db-switch.cjs.entry.js +45 -11
  94. package/dist/cjs/db-tab-item_3.cjs.entry.js +118 -19
  95. package/dist/cjs/db-table-body_3.cjs.entry.js +53 -12
  96. package/dist/cjs/db-table-caption.cjs.entry.js +36 -5
  97. package/dist/cjs/db-table.cjs.entry.js +35 -4
  98. package/dist/cjs/db-tabs.cjs.entry.js +42 -8
  99. package/dist/cjs/db-textarea.cjs.entry.js +45 -10
  100. package/dist/cjs/db-tooltip.cjs.entry.js +144 -20
  101. package/dist/cjs/db-ux.cjs.js +1 -1
  102. package/dist/cjs/loader.cjs.js +1 -1
  103. package/dist/collection/components/accordion/accordion.js +45 -7
  104. package/dist/collection/components/accordion-item/accordion-item.js +48 -10
  105. package/dist/collection/components/badge/badge.js +45 -7
  106. package/dist/collection/components/brand/brand.js +43 -5
  107. package/dist/collection/components/button/button.js +43 -5
  108. package/dist/collection/components/card/card.js +43 -5
  109. package/dist/collection/components/checkbox/checkbox.js +47 -12
  110. package/dist/collection/components/custom-button/custom-button.js +43 -5
  111. package/dist/collection/components/custom-select/custom-select.js +62 -27
  112. package/dist/collection/components/custom-select-dropdown/custom-select-dropdown.js +41 -5
  113. package/dist/collection/components/custom-select-form-field/custom-select-form-field.js +43 -5
  114. package/dist/collection/components/custom-select-list/custom-select-list.js +43 -5
  115. package/dist/collection/components/custom-select-list-item/custom-select-list-item.js +37 -5
  116. package/dist/collection/components/divider/divider.js +42 -4
  117. package/dist/collection/components/drawer/drawer.js +47 -9
  118. package/dist/collection/components/header/header.js +45 -7
  119. package/dist/collection/components/icon/icon.js +43 -5
  120. package/dist/collection/components/infotext/infotext.js +43 -5
  121. package/dist/collection/components/input/input.js +49 -13
  122. package/dist/collection/components/link/link.js +43 -5
  123. package/dist/collection/components/navigation/navigation.js +43 -5
  124. package/dist/collection/components/navigation-item/navigation-item.js +48 -10
  125. package/dist/collection/components/notification/notification.js +43 -5
  126. package/dist/collection/components/page/page.js +50 -14
  127. package/dist/collection/components/popover/popover.js +45 -7
  128. package/dist/collection/components/radio/radio.js +44 -9
  129. package/dist/collection/components/section/section.js +43 -5
  130. package/dist/collection/components/select/select.js +47 -12
  131. package/dist/collection/components/stack/stack.js +43 -5
  132. package/dist/collection/components/switch/switch.js +47 -12
  133. package/dist/collection/components/tab-item/tab-item.js +45 -10
  134. package/dist/collection/components/tab-list/tab-list.js +43 -5
  135. package/dist/collection/components/tab-panel/tab-panel.js +48 -5
  136. package/dist/collection/components/table/table.js +37 -5
  137. package/dist/collection/components/table-body/table-body.js +9 -4
  138. package/dist/collection/components/table-caption/table-caption.js +43 -5
  139. package/dist/collection/components/table-data-cell/table-data-cell.js +10 -5
  140. package/dist/collection/components/table-footer/table-footer.js +9 -4
  141. package/dist/collection/components/table-head/table-head.js +42 -4
  142. package/dist/collection/components/table-header-cell/table-header-cell.js +10 -5
  143. package/dist/collection/components/table-row/table-row.js +9 -4
  144. package/dist/collection/components/tabs/tabs.js +44 -9
  145. package/dist/collection/components/tag/tag.js +43 -5
  146. package/dist/collection/components/textarea/textarea.js +47 -11
  147. package/dist/collection/components/tooltip/tooltip.js +150 -21
  148. package/dist/custom-elements.json +710 -0
  149. package/dist/db-ux/db-ux.esm.js +1 -1
  150. package/dist/db-ux/p-0123ee1b.entry.js +1 -0
  151. package/dist/db-ux/p-090b1797.entry.js +1 -0
  152. package/dist/db-ux/p-0e17c5a0.entry.js +1 -0
  153. package/dist/db-ux/p-194e851c.entry.js +1 -0
  154. package/dist/db-ux/p-281f5e3e.entry.js +1 -0
  155. package/dist/db-ux/p-2ae377e6.entry.js +1 -0
  156. package/dist/db-ux/p-2cf4345f.entry.js +1 -0
  157. package/dist/db-ux/p-2e6c8304.entry.js +1 -0
  158. package/dist/db-ux/p-335391d4.entry.js +1 -0
  159. package/dist/db-ux/p-34235204.entry.js +1 -0
  160. package/dist/db-ux/p-3569bb3c.entry.js +1 -0
  161. package/dist/db-ux/p-398f9165.entry.js +1 -0
  162. package/dist/db-ux/p-5070470f.entry.js +1 -0
  163. package/dist/db-ux/p-5e08712d.entry.js +1 -0
  164. package/dist/db-ux/p-63d98f9d.entry.js +1 -0
  165. package/dist/db-ux/p-6aa92091.entry.js +1 -0
  166. package/dist/db-ux/p-78b7e6f6.entry.js +1 -0
  167. package/dist/db-ux/p-7ca4bc82.entry.js +1 -0
  168. package/dist/db-ux/p-8f989150.entry.js +1 -0
  169. package/dist/db-ux/p-8fa7a578.entry.js +1 -0
  170. package/dist/db-ux/p-91052c75.entry.js +1 -0
  171. package/dist/db-ux/p-9ccd42b1.entry.js +1 -0
  172. package/dist/db-ux/p-a4d9f6e2.entry.js +1 -0
  173. package/dist/db-ux/p-af248e57.entry.js +1 -0
  174. package/dist/db-ux/p-ba82a0b0.entry.js +1 -0
  175. package/dist/db-ux/p-c2ce6ecd.entry.js +1 -0
  176. package/dist/db-ux/p-d7b5748d.entry.js +1 -0
  177. package/dist/db-ux/p-dfbbe502.entry.js +1 -0
  178. package/dist/db-ux/p-e7a400a2.entry.js +1 -0
  179. package/dist/db-ux/p-ef1aa878.entry.js +1 -0
  180. package/dist/db-ux/p-f1daaefa.entry.js +1 -0
  181. package/dist/db-ux/p-f6312d2c.entry.js +1 -0
  182. package/dist/db-ux/p-fbf09569.entry.js +1 -0
  183. package/dist/db-ux/p-ff11c071.entry.js +1 -0
  184. package/dist/esm/db-accordion-item.entry.js +46 -9
  185. package/dist/esm/db-accordion.entry.js +43 -6
  186. package/dist/esm/db-badge.entry.js +43 -6
  187. package/dist/esm/db-brand.entry.js +36 -5
  188. package/dist/esm/db-button.entry.js +36 -5
  189. package/dist/esm/db-card.entry.js +36 -5
  190. package/dist/esm/db-checkbox.entry.js +45 -11
  191. package/dist/esm/db-custom-button.entry.js +36 -5
  192. package/dist/esm/db-custom-select-dropdown_5.entry.js +190 -31
  193. package/dist/esm/db-custom-select-form-field.entry.js +36 -5
  194. package/dist/esm/db-custom-select.entry.js +60 -26
  195. package/dist/esm/db-divider.entry.js +35 -4
  196. package/dist/esm/db-drawer.entry.js +45 -8
  197. package/dist/esm/db-header.entry.js +43 -6
  198. package/dist/esm/db-icon.entry.js +36 -5
  199. package/dist/esm/db-infotext.entry.js +36 -5
  200. package/dist/esm/db-link_4.entry.js +65 -19
  201. package/dist/esm/db-navigation-item.entry.js +47 -10
  202. package/dist/esm/db-navigation.entry.js +36 -5
  203. package/dist/esm/db-notification.entry.js +36 -5
  204. package/dist/esm/db-page.entry.js +48 -13
  205. package/dist/esm/db-popover.entry.js +43 -6
  206. package/dist/esm/db-radio.entry.js +42 -8
  207. package/dist/esm/db-section.entry.js +36 -5
  208. package/dist/esm/db-select.entry.js +45 -11
  209. package/dist/esm/db-stack.entry.js +36 -5
  210. package/dist/esm/db-switch.entry.js +45 -11
  211. package/dist/esm/db-tab-item_3.entry.js +118 -19
  212. package/dist/esm/db-table-body_3.entry.js +53 -12
  213. package/dist/esm/db-table-caption.entry.js +36 -5
  214. package/dist/esm/db-table.entry.js +35 -4
  215. package/dist/esm/db-tabs.entry.js +43 -9
  216. package/dist/esm/db-textarea.entry.js +45 -10
  217. package/dist/esm/db-tooltip.entry.js +144 -20
  218. package/dist/esm/db-ux.js +1 -1
  219. package/dist/esm/loader.js +1 -1
  220. package/dist/types/components/accordion/accordion.d.ts +3 -0
  221. package/dist/types/components/accordion-item/accordion-item.d.ts +3 -0
  222. package/dist/types/components/badge/badge.d.ts +3 -0
  223. package/dist/types/components/brand/brand.d.ts +3 -0
  224. package/dist/types/components/button/button.d.ts +3 -0
  225. package/dist/types/components/card/card.d.ts +3 -0
  226. package/dist/types/components/checkbox/checkbox.d.ts +2 -0
  227. package/dist/types/components/custom-button/custom-button.d.ts +3 -0
  228. package/dist/types/components/custom-select/custom-select.d.ts +2 -0
  229. package/dist/types/components/custom-select-dropdown/custom-select-dropdown.d.ts +3 -0
  230. package/dist/types/components/custom-select-form-field/custom-select-form-field.d.ts +3 -0
  231. package/dist/types/components/custom-select-list/custom-select-list.d.ts +3 -0
  232. package/dist/types/components/custom-select-list-item/custom-select-list-item.d.ts +3 -0
  233. package/dist/types/components/divider/divider.d.ts +3 -0
  234. package/dist/types/components/drawer/drawer.d.ts +3 -0
  235. package/dist/types/components/header/header.d.ts +3 -0
  236. package/dist/types/components/icon/icon.d.ts +3 -0
  237. package/dist/types/components/infotext/infotext.d.ts +3 -0
  238. package/dist/types/components/input/input.d.ts +2 -0
  239. package/dist/types/components/link/link.d.ts +3 -0
  240. package/dist/types/components/navigation/navigation.d.ts +3 -0
  241. package/dist/types/components/navigation-item/navigation-item.d.ts +3 -0
  242. package/dist/types/components/notification/notification.d.ts +3 -0
  243. package/dist/types/components/page/page.d.ts +2 -0
  244. package/dist/types/components/popover/popover.d.ts +3 -0
  245. package/dist/types/components/radio/radio.d.ts +2 -0
  246. package/dist/types/components/section/section.d.ts +3 -0
  247. package/dist/types/components/select/select.d.ts +2 -0
  248. package/dist/types/components/stack/stack.d.ts +3 -0
  249. package/dist/types/components/switch/switch.d.ts +2 -0
  250. package/dist/types/components/tab-item/tab-item.d.ts +2 -0
  251. package/dist/types/components/tab-list/tab-list.d.ts +3 -0
  252. package/dist/types/components/tab-panel/tab-panel.d.ts +3 -0
  253. package/dist/types/components/table/table.d.ts +3 -0
  254. package/dist/types/components/table-caption/table-caption.d.ts +3 -0
  255. package/dist/types/components/table-head/table-head.d.ts +3 -0
  256. package/dist/types/components/tabs/tabs.d.ts +2 -0
  257. package/dist/types/components/tag/tag.d.ts +3 -0
  258. package/dist/types/components/textarea/textarea.d.ts +2 -0
  259. package/dist/types/components/tooltip/model.d.ts +9 -0
  260. package/dist/types/components/tooltip/tooltip.d.ts +8 -0
  261. package/dist/web-types.json +84 -40
  262. package/package.json +6 -6
  263. package/bundle/p-B5ANMEnQ.js +0 -1
  264. package/bundle/p-BJwvv-yT.js +0 -1
  265. package/bundle/p-BNiKxu3y.js +0 -1
  266. package/bundle/p-B_bPnncM.js +0 -1
  267. package/bundle/p-BnLhi6Lz.js +0 -1
  268. package/bundle/p-BrBlnLrn.js +0 -1
  269. package/bundle/p-CByFfoSH.js +0 -1
  270. package/bundle/p-CQo0C7QE.js +0 -1
  271. package/bundle/p-CR2ZbfYe.js +0 -1
  272. package/bundle/p-CeDu282h.js +0 -1
  273. package/bundle/p-CfLPOLHz.js +0 -1
  274. package/bundle/p-CoOxyQb2.js +0 -1
  275. package/bundle/p-CqED0CfD.js +0 -1
  276. package/bundle/p-Cr_z1Jfi.js +0 -1
  277. package/bundle/p-D-XzX0R7.js +0 -1
  278. package/bundle/p-DMSIvqcA.js +0 -1
  279. package/bundle/p-DUiroUyR.js +0 -1
  280. package/bundle/p-DdyMClpj.js +0 -1
  281. package/bundle/p-DjVjS2Tb.js +0 -1
  282. package/bundle/p-in4Kv88F.js +0 -1
  283. package/dist/db-ux/p-08271c80.entry.js +0 -1
  284. package/dist/db-ux/p-105ffa74.entry.js +0 -1
  285. package/dist/db-ux/p-15adca91.entry.js +0 -1
  286. package/dist/db-ux/p-1a322a0c.entry.js +0 -1
  287. package/dist/db-ux/p-1f7232c0.entry.js +0 -1
  288. package/dist/db-ux/p-27e2f6f2.entry.js +0 -1
  289. package/dist/db-ux/p-2907f214.entry.js +0 -1
  290. package/dist/db-ux/p-2ff958e4.entry.js +0 -1
  291. package/dist/db-ux/p-3423b7af.entry.js +0 -1
  292. package/dist/db-ux/p-365e6edf.entry.js +0 -1
  293. package/dist/db-ux/p-42516007.entry.js +0 -1
  294. package/dist/db-ux/p-5045182c.entry.js +0 -1
  295. package/dist/db-ux/p-5e1d42e5.entry.js +0 -1
  296. package/dist/db-ux/p-61b28212.entry.js +0 -1
  297. package/dist/db-ux/p-6850a53c.entry.js +0 -1
  298. package/dist/db-ux/p-6bff55b4.entry.js +0 -1
  299. package/dist/db-ux/p-6e7c5e42.entry.js +0 -1
  300. package/dist/db-ux/p-76adf385.entry.js +0 -1
  301. package/dist/db-ux/p-78f7b353.entry.js +0 -1
  302. package/dist/db-ux/p-7fa5d304.entry.js +0 -1
  303. package/dist/db-ux/p-95b69e71.entry.js +0 -1
  304. package/dist/db-ux/p-99ebe6ec.entry.js +0 -1
  305. package/dist/db-ux/p-a5dc355d.entry.js +0 -1
  306. package/dist/db-ux/p-a6113789.entry.js +0 -1
  307. package/dist/db-ux/p-b9c0feaf.entry.js +0 -1
  308. package/dist/db-ux/p-c14fa91a.entry.js +0 -1
  309. package/dist/db-ux/p-c65b807e.entry.js +0 -1
  310. package/dist/db-ux/p-dd9cedbe.entry.js +0 -1
  311. package/dist/db-ux/p-e3f705fd.entry.js +0 -1
  312. package/dist/db-ux/p-e4cddc9f.entry.js +0 -1
  313. package/dist/db-ux/p-e7a8612c.entry.js +0 -1
  314. package/dist/db-ux/p-ee8c3243.entry.js +0 -1
  315. package/dist/db-ux/p-f0d0acfc.entry.js +0 -1
  316. package/dist/db-ux/p-f15748ea.entry.js +0 -1
@@ -7,6 +7,27 @@ const DBCustomSelectDropdown = class {
7
7
  constructor(hostRef) {
8
8
  registerInstance(this, hostRef);
9
9
  this.width = "fixed";
10
+ this.observer = undefined;
11
+ }
12
+ setupObserver(element) {
13
+ if (!element)
14
+ return;
15
+ const parent = element.closest("db-custom-select-dropdown");
16
+ if (!parent || this.observer)
17
+ return;
18
+ this.observer = new MutationObserver((mutations) => {
19
+ if (mutations.some((mutation) => {
20
+ var _a;
21
+ const attr = mutation.target.attributes.getNamedItem((_a = mutation.attributeName) !== null && _a !== void 0 ? _a : "");
22
+ return (attr === null || attr === void 0 ? void 0 : attr.value) !== mutation.oldValue;
23
+ })) {
24
+ this.enableAttributePassing(element, "db-custom-select-dropdown");
25
+ }
26
+ });
27
+ this.observer.observe(parent, {
28
+ attributes: true,
29
+ attributeOldValue: true,
30
+ });
10
31
  }
11
32
  /**
12
33
  * Passes `aria-*`, `data-*` & `class` attributes to correct child. Used in angular and stencil.
@@ -21,10 +42,15 @@ const DBCustomSelectDropdown = class {
21
42
  const attr = attributes.item(i);
22
43
  if (attr && attr.name !== 'data-density' &&
23
44
  (attr.name.startsWith("data-") || attr.name.startsWith("aria-"))) {
24
- element.setAttribute(attr.name, attr.value);
45
+ if (attr.value) {
46
+ element.setAttribute(attr.name, attr.value);
47
+ }
48
+ else {
49
+ element.removeAttribute(attr.name);
50
+ }
25
51
  parent.removeAttribute(attr.name);
26
52
  }
27
- else if (attr && attr.name !== 'data-density' && attr.name !== "class" && attr.name === "style") {
53
+ else if (attr && ["style"].includes(attr.name)) {
28
54
  element.setAttribute(attr.name, attr.value);
29
55
  parent.removeAttribute(attr.name);
30
56
  }
@@ -32,7 +58,7 @@ const DBCustomSelectDropdown = class {
32
58
  const isWebComponent = attr.value.includes("hydrated");
33
59
  const value = attr.value.replace("hydrated", "").trim();
34
60
  const currentClass = element.getAttribute("class");
35
- element.setAttribute(attr.name, `${currentClass ? `${currentClass} ` : ""}${value}`);
61
+ element.setAttribute(attr.name, `${currentClass ? currentClass : ""}${value ? ` ${value}` : ""}`);
36
62
  if (isWebComponent) {
37
63
  // Stencil is using this class for lazy loading component
38
64
  parent.setAttribute("class", "hydrated");
@@ -52,12 +78,17 @@ const DBCustomSelectDropdown = class {
52
78
  }
53
79
  }
54
80
  this.enableAttributePassing(this._ref, "db-custom-select-dropdown");
81
+ this.setupObserver(this._ref);
82
+ }
83
+ disconnectedCallback() {
84
+ var _a;
85
+ (_a = this.observer) === null || _a === void 0 ? void 0 : _a.disconnect();
55
86
  }
56
87
  render() {
57
88
  var _a, _b;
58
- return (h("article", { key: '13b37b76ab0d131cf2af06244ed304c8c408c9d8', class: cls("db-custom-select-dropdown db-card", this.className), "data-spacing": "none", ref: (el) => {
89
+ return (h("article", { key: '49bd2cef7c2c04b2ae3696fea83057858a59fd9a', class: cls("db-custom-select-dropdown db-card", this.className), "data-spacing": "none", ref: (el) => {
59
90
  this._ref = el;
60
- }, id: (_a = this.id) !== null && _a !== void 0 ? _a : (_b = this.propOverrides) === null || _b === void 0 ? void 0 : _b.id, "data-width": this.width }, h("slot", { key: '517f62713be2bd021d767e7e2a2eb3817a96856b' })));
91
+ }, id: (_a = this.id) !== null && _a !== void 0 ? _a : (_b = this.propOverrides) === null || _b === void 0 ? void 0 : _b.id, "data-width": this.width }, h("slot", { key: '89ceec1851f4ffdb27f99b5f301e70784607c2c8' })));
61
92
  }
62
93
  get rootElement() { return getElement(this); }
63
94
  };
@@ -65,6 +96,27 @@ const DBCustomSelectDropdown = class {
65
96
  const DBCustomSelectList = class {
66
97
  constructor(hostRef) {
67
98
  registerInstance(this, hostRef);
99
+ this.observer = undefined;
100
+ }
101
+ setupObserver(element) {
102
+ if (!element)
103
+ return;
104
+ const parent = element.closest("db-custom-select-list");
105
+ if (!parent || this.observer)
106
+ return;
107
+ this.observer = new MutationObserver((mutations) => {
108
+ if (mutations.some((mutation) => {
109
+ var _a;
110
+ const attr = mutation.target.attributes.getNamedItem((_a = mutation.attributeName) !== null && _a !== void 0 ? _a : "");
111
+ return (attr === null || attr === void 0 ? void 0 : attr.value) !== mutation.oldValue;
112
+ })) {
113
+ this.enableAttributePassing(element, "db-custom-select-list");
114
+ }
115
+ });
116
+ this.observer.observe(parent, {
117
+ attributes: true,
118
+ attributeOldValue: true,
119
+ });
68
120
  }
69
121
  /**
70
122
  * Passes `aria-*`, `data-*` & `class` attributes to correct child. Used in angular and stencil.
@@ -79,10 +131,15 @@ const DBCustomSelectList = class {
79
131
  const attr = attributes.item(i);
80
132
  if (attr && attr.name !== 'data-density' &&
81
133
  (attr.name.startsWith("data-") || attr.name.startsWith("aria-"))) {
82
- element.setAttribute(attr.name, attr.value);
134
+ if (attr.value) {
135
+ element.setAttribute(attr.name, attr.value);
136
+ }
137
+ else {
138
+ element.removeAttribute(attr.name);
139
+ }
83
140
  parent.removeAttribute(attr.name);
84
141
  }
85
- else if (attr && attr.name !== 'data-density' && attr.name !== "class" && attr.name === "style") {
142
+ else if (attr && ["style"].includes(attr.name)) {
86
143
  element.setAttribute(attr.name, attr.value);
87
144
  parent.removeAttribute(attr.name);
88
145
  }
@@ -90,7 +147,7 @@ const DBCustomSelectList = class {
90
147
  const isWebComponent = attr.value.includes("hydrated");
91
148
  const value = attr.value.replace("hydrated", "").trim();
92
149
  const currentClass = element.getAttribute("class");
93
- element.setAttribute(attr.name, `${currentClass ? `${currentClass} ` : ""}${value}`);
150
+ element.setAttribute(attr.name, `${currentClass ? currentClass : ""}${value ? ` ${value}` : ""}`);
94
151
  if (isWebComponent) {
95
152
  // Stencil is using this class for lazy loading component
96
153
  parent.setAttribute("class", "hydrated");
@@ -110,12 +167,17 @@ const DBCustomSelectList = class {
110
167
  }
111
168
  }
112
169
  this.enableAttributePassing(this._ref, "db-custom-select-list");
170
+ this.setupObserver(this._ref);
171
+ }
172
+ disconnectedCallback() {
173
+ var _a;
174
+ (_a = this.observer) === null || _a === void 0 ? void 0 : _a.disconnect();
113
175
  }
114
176
  render() {
115
177
  var _a, _b;
116
- return (h("div", { key: 'd15aae83f167178e808513fd0ba9d35209db0b10', class: cls("db-custom-select-list", this.className), role: this.multiple ? "group" : "radiogroup", "aria-label": this.label, ref: (el) => {
178
+ return (h("div", { key: '2dee04c035ef27c7f398805eee1c77e7a3ad893c', class: cls("db-custom-select-list", this.className), role: this.multiple ? "group" : "radiogroup", "aria-label": this.label, ref: (el) => {
117
179
  this._ref = el;
118
- }, id: (_a = this.id) !== null && _a !== void 0 ? _a : (_b = this.propOverrides) === null || _b === void 0 ? void 0 : _b.id }, h("ul", { key: 'c3ec4c14ca8c857a690c4d51d89654d0e1f49a4f' }, h("slot", { key: '663e6a50f1e117b7981a05946fc86f04b5892bb0' }))));
180
+ }, id: (_a = this.id) !== null && _a !== void 0 ? _a : (_b = this.propOverrides) === null || _b === void 0 ? void 0 : _b.id }, h("ul", { key: '64b6f1efc4344d7e274a5dd3ad78ce80983a8b77' }, h("slot", { key: '26e0de28808a85216b9f1dcb8f788928a0c62c15' }))));
119
181
  }
120
182
  get rootElement() { return getElement(this); }
121
183
  };
@@ -125,6 +187,7 @@ const DBCustomSelectListItem = class {
125
187
  registerInstance(this, hostRef);
126
188
  this.change = createEvent(this, "change");
127
189
  this.hasDivider = false;
190
+ this.observer = undefined;
128
191
  }
129
192
  handleChange(event) {
130
193
  event.stopPropagation();
@@ -138,6 +201,26 @@ const DBCustomSelectListItem = class {
138
201
  }
139
202
  return getBoolean(this.checked, "checked") ? "check" : "x_placeholder";
140
203
  }
204
+ setupObserver(element) {
205
+ if (!element)
206
+ return;
207
+ const parent = element.closest("db-custom-select-list-item");
208
+ if (!parent || this.observer)
209
+ return;
210
+ this.observer = new MutationObserver((mutations) => {
211
+ if (mutations.some((mutation) => {
212
+ var _a;
213
+ const attr = mutation.target.attributes.getNamedItem((_a = mutation.attributeName) !== null && _a !== void 0 ? _a : "");
214
+ return (attr === null || attr === void 0 ? void 0 : attr.value) !== mutation.oldValue;
215
+ })) {
216
+ this.enableAttributePassing(element, "db-custom-select-list-item");
217
+ }
218
+ });
219
+ this.observer.observe(parent, {
220
+ attributes: true,
221
+ attributeOldValue: true,
222
+ });
223
+ }
141
224
  /**
142
225
  * Passes `aria-*`, `data-*` & `class` attributes to correct child. Used in angular and stencil.
143
226
  * @param element the ref for the component
@@ -151,10 +234,15 @@ const DBCustomSelectListItem = class {
151
234
  const attr = attributes.item(i);
152
235
  if (attr && attr.name !== 'data-density' &&
153
236
  (attr.name.startsWith("data-") || attr.name.startsWith("aria-"))) {
154
- element.setAttribute(attr.name, attr.value);
237
+ if (attr.value) {
238
+ element.setAttribute(attr.name, attr.value);
239
+ }
240
+ else {
241
+ element.removeAttribute(attr.name);
242
+ }
155
243
  parent.removeAttribute(attr.name);
156
244
  }
157
- else if (attr && attr.name !== 'data-density' && attr.name !== "class" && attr.name === "style") {
245
+ else if (attr && ["style"].includes(attr.name)) {
158
246
  element.setAttribute(attr.name, attr.value);
159
247
  parent.removeAttribute(attr.name);
160
248
  }
@@ -162,7 +250,7 @@ const DBCustomSelectListItem = class {
162
250
  const isWebComponent = attr.value.includes("hydrated");
163
251
  const value = attr.value.replace("hydrated", "").trim();
164
252
  const currentClass = element.getAttribute("class");
165
- element.setAttribute(attr.name, `${currentClass ? `${currentClass} ` : ""}${value}`);
253
+ element.setAttribute(attr.name, `${currentClass ? currentClass : ""}${value ? ` ${value}` : ""}`);
166
254
  if (isWebComponent) {
167
255
  // Stencil is using this class for lazy loading component
168
256
  parent.setAttribute("class", "hydrated");
@@ -188,11 +276,16 @@ const DBCustomSelectListItem = class {
188
276
  }
189
277
  }
190
278
  this.enableAttributePassing(this._ref, "db-custom-select-list-item");
279
+ this.setupObserver(this._ref);
191
280
  this.watch0Fn();
192
281
  }
282
+ disconnectedCallback() {
283
+ var _a;
284
+ (_a = this.observer) === null || _a === void 0 ? void 0 : _a.disconnect();
285
+ }
193
286
  render() {
194
287
  var _a, _b;
195
- return (h("li", { key: '059526061cdd0b2c8d9e135d0594338e6a5f9579', class: cls("db-custom-select-list-item", this.className, {
288
+ return (h("li", { key: 'cb467f74569cd0505dab2ac02a9b375de8f5a9bc', class: cls("db-custom-select-list-item", this.className, {
196
289
  "db-checkbox": this.type === "checkbox" && !this.isGroupTitle,
197
290
  "db-radio": this.type !== "checkbox" && !this.isGroupTitle,
198
291
  }), ref: (el) => {
@@ -227,6 +320,7 @@ const DBInput = class {
227
320
  this._value = "";
228
321
  this._voiceOverFallback = "";
229
322
  this.abortController = undefined;
323
+ this.observer = undefined;
230
324
  }
231
325
  hasValidState() {
232
326
  var _a;
@@ -243,7 +337,7 @@ const DBInput = class {
243
337
  DEFAULT_INVALID_MESSAGE;
244
338
  if (hasVoiceOver()) {
245
339
  this._voiceOverFallback = this._invalidMessage;
246
- delay(() => (this._voiceOverFallback = ""), 1000);
340
+ void delay(() => (this._voiceOverFallback = ""), 1000);
247
341
  }
248
342
  }
249
343
  else if (this.hasValidState() &&
@@ -252,7 +346,7 @@ const DBInput = class {
252
346
  this._descByIds = this._validMessageId;
253
347
  if (hasVoiceOver()) {
254
348
  this._voiceOverFallback = (_d = this.validMessage) !== null && _d !== void 0 ? _d : DEFAULT_VALID_MESSAGE;
255
- delay(() => (this._voiceOverFallback = ""), 1000);
349
+ void delay(() => (this._voiceOverFallback = ""), 1000);
256
350
  }
257
351
  }
258
352
  else if (stringPropVisible(this.message, this.showMessage)) {
@@ -302,6 +396,26 @@ const DBInput = class {
302
396
  this._invalidMessageId = mId + DEFAULT_INVALID_MESSAGE_ID_SUFFIX;
303
397
  this._dataListId = mId + DEFAULT_DATALIST_ID_SUFFIX;
304
398
  }
399
+ setupObserver(element) {
400
+ if (!element)
401
+ return;
402
+ const parent = element.closest("db-input");
403
+ if (!parent || this.observer)
404
+ return;
405
+ this.observer = new MutationObserver((mutations) => {
406
+ if (mutations.some((mutation) => {
407
+ var _a;
408
+ const attr = mutation.target.attributes.getNamedItem((_a = mutation.attributeName) !== null && _a !== void 0 ? _a : "");
409
+ return (attr === null || attr === void 0 ? void 0 : attr.value) !== mutation.oldValue;
410
+ })) {
411
+ this.enableAttributePassing(element, "db-input");
412
+ }
413
+ });
414
+ this.observer.observe(parent, {
415
+ attributes: true,
416
+ attributeOldValue: true,
417
+ });
418
+ }
305
419
  /**
306
420
  * Passes `aria-*`, `data-*` & `class` attributes to correct child. Used in angular and stencil.
307
421
  * @param element the ref for the component
@@ -315,10 +429,15 @@ const DBInput = class {
315
429
  const attr = attributes.item(i);
316
430
  if (attr && attr.name !== 'data-density' &&
317
431
  (attr.name.startsWith("data-") || attr.name.startsWith("aria-"))) {
318
- element.setAttribute(attr.name, attr.value);
432
+ if (attr.value) {
433
+ element.setAttribute(attr.name, attr.value);
434
+ }
435
+ else {
436
+ element.removeAttribute(attr.name);
437
+ }
319
438
  parent.removeAttribute(attr.name);
320
439
  }
321
- else if (attr && attr.name !== 'data-density' && attr.name !== "class" && attr.name === "style") {
440
+ else if (attr && ["style"].includes(attr.name)) {
322
441
  element.setAttribute(attr.name, attr.value);
323
442
  parent.removeAttribute(attr.name);
324
443
  }
@@ -326,7 +445,7 @@ const DBInput = class {
326
445
  const isWebComponent = attr.value.includes("hydrated");
327
446
  const value = attr.value.replace("hydrated", "").trim();
328
447
  const currentClass = element.getAttribute("class");
329
- element.setAttribute(attr.name, `${currentClass ? `${currentClass} ` : ""}${value}`);
448
+ element.setAttribute(attr.name, `${currentClass ? currentClass : ""}${value ? ` ${value}` : ""}`);
330
449
  if (isWebComponent) {
331
450
  // Stencil is using this class for lazy loading component
332
451
  parent.setAttribute("class", "hydrated");
@@ -412,8 +531,15 @@ const DBInput = class {
412
531
  }
413
532
  }
414
533
  this.enableAttributePassing(this._ref, "db-input");
415
- this.resetIds();
416
- this._invalidMessage = this.invalidMessage || DEFAULT_INVALID_MESSAGE;
534
+ const onMountHook_0 = () => {
535
+ this.resetIds();
536
+ this._invalidMessage = this.invalidMessage || DEFAULT_INVALID_MESSAGE;
537
+ };
538
+ onMountHook_0();
539
+ const onMountHook_1 = () => {
540
+ this.setupObserver(this._ref);
541
+ };
542
+ onMountHook_1();
417
543
  this.watch0Fn();
418
544
  this.watch1Fn();
419
545
  this.watch2Fn();
@@ -421,16 +547,18 @@ const DBInput = class {
421
547
  this.watch4Fn();
422
548
  }
423
549
  disconnectedCallback() {
424
- var _a;
550
+ var _a, _b;
425
551
  (_a = this.abortController) === null || _a === void 0 ? void 0 : _a.abort();
552
+ (_b = this.observer) === null || _b === void 0 ? void 0 : _b.disconnect();
426
553
  }
427
554
  render() {
428
555
  var _a, _b, _c, _d, _e, _f, _g, _h;
429
- return (h("div", { key: '64a07c04f43170bf1595b0081713388a216d5fc7', class: cls("db-input", this.className), "data-variant": this.variant, "data-hide-label": getHideProp(this.showLabel), "data-show-icon": getBooleanAsString(this.showIconLeading, "showIconLeading") ||
430
- getBooleanAsString(this.showIcon, "showIcon"), "data-icon": (_a = this.iconLeading) !== null && _a !== void 0 ? _a : this.icon, "data-icon-trailing": this.iconTrailing, "data-hide-asterisk": getHideProp(this.showRequiredAsterisk), "data-show-icon-trailing": getBooleanAsString(this.showIconTrailing, "showIconTrailing") }, h("label", { key: '7a8d23a161226ed00f450b27a761230c29b12594', htmlFor: this._id }, (_b = this.label) !== null && _b !== void 0 ? _b : DEFAULT_LABEL), h("input", { key: '1564ed32f96a2b74bdcf3caf559cf2d2d10ec0b9', "aria-invalid": this.validation === "invalid", "data-custom-validity": this.validation, "data-field-sizing": this.fieldSizing, ref: (el) => {
556
+ return (h("div", { key: 'c8140e1e7d447fd4d65829dde8090110d0e421dc', class: cls("db-input", this.className), "data-variant": this.variant, "data-hide-label": getHideProp(this.showLabel), "data-show-icon": getBooleanAsString(this.showIconLeading, "showIconLeading") ||
557
+ getBooleanAsString(this.showIcon, "showIcon"), "data-icon": (_a = this.iconLeading) !== null && _a !== void 0 ? _a : this.icon, "data-icon-trailing": this.iconTrailing, "data-hide-asterisk": getHideProp(this.showRequiredAsterisk), "data-show-icon-trailing": getBooleanAsString(this.showIconTrailing, "showIconTrailing") }, h("label", { key: '7ce81ede48602af85d5bf770c01ef0731d1774ec', htmlFor: this._id }, (_b = this.label) !== null && _b !== void 0 ? _b : DEFAULT_LABEL), h("input", { key: '880aea669e5decea1d0c865bd27981ab082c9fec', "aria-invalid": this.validation === "invalid", "data-custom-validity": this.validation, "data-field-sizing": this.fieldSizing, ref: (el) => {
431
558
  this._ref = el;
432
559
  }, id: this._id, name: this.name, type: this.type || "text", multiple: getBoolean(this.multiple, "multiple"), accept: this.accept, placeholder: (_c = this.placeholder) !== null && _c !== void 0 ? _c : DEFAULT_PLACEHOLDER, disabled: getBoolean(this.disabled, "disabled"), required: getBoolean(this.required, "required"), step: getStep(this.step), value: (_e = (_d = this.value) !== null && _d !== void 0 ? _d : this._value) !== null && _e !== void 0 ? _e : "", maxLength: getNumber(this.maxLength, this.maxlength), minLength: getNumber(this.minLength, this.minlength), max: getInputValue(this.max, this.type), min: getInputValue(this.min, this.type), readOnly: getBoolean(this.readOnly, "readOnly") ||
433
- getBoolean(this.readonly, "readonly"), form: this.form, pattern: this.pattern, size: this.size, autoComplete: this.autocomplete, autoFocus: getBoolean(this.autofocus, "autofocus"), enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, onInput: (event) => this.handleInput(event), onChange: (event) => this.handleChange(event), onBlur: (event) => this.handleBlur(event), onFocus: (event) => this.handleFocus(event), list: this.dataList && this._dataListId, "aria-describedby": (_f = this.ariaDescribedBy) !== null && _f !== void 0 ? _f : this._descByIds, role: [
560
+ getBoolean(this.readonly, "readonly") ||
561
+ undefined, form: this.form, pattern: this.pattern, size: this.size, autoComplete: this.autocomplete, autoFocus: getBoolean(this.autofocus, "autofocus"), enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, onInput: (event) => this.handleInput(event), onChange: (event) => this.handleChange(event), onBlur: (event) => this.handleBlur(event), onFocus: (event) => this.handleFocus(event), list: this.dataList && this._dataListId, "aria-describedby": (_f = this.ariaDescribedBy) !== null && _f !== void 0 ? _f : this._descByIds, role: [
434
562
  "datetime-local",
435
563
  "date",
436
564
  "time",
@@ -439,7 +567,7 @@ const DBInput = class {
439
567
  "color",
440
568
  ].includes((_g = this.type) !== null && _g !== void 0 ? _g : "") && isIOSSafari()
441
569
  ? "textbox"
442
- : undefined }), this.dataList ? (h("datalist", { id: this._dataListId }, (_h = this.getDataList()) === null || _h === void 0 ? void 0 : _h.map((option) => (h("option", { key: this._dataListId + "-option-" + option.value, value: option.value }, option.label))))) : null, h("slot", { key: '8af26ede51b91478695480eb1d2b2e2f1da92200' }), stringPropVisible(this.message, this.showMessage) ? (h("db-infotext", { size: this.messageSize || "small", icon: this.messageIcon, id: this._messageId }, this.message)) : null, this.hasValidState() ? (h("db-infotext", { semantic: "successful", id: this._validMessageId, size: this.validMessageSize || "small" }, this.validMessage || DEFAULT_VALID_MESSAGE)) : null, h("db-infotext", { key: '752867b52a5abc2bcd4355af5c339e255d1bd36a', semantic: "critical", id: this._invalidMessageId, size: this.invalidMessageSize || "small" }, this._invalidMessage), h("span", { key: '49df2802f19e930d5900d9fa639cfc1c5be584de', "data-visually-hidden": "true", role: "status" }, this._voiceOverFallback)));
570
+ : undefined }), this.dataList ? (h("datalist", { id: this._dataListId }, (_h = this.getDataList()) === null || _h === void 0 ? void 0 : _h.map((option) => (h("option", { key: this._dataListId + "-option-" + option.value, value: option.value }, option.label))))) : null, h("slot", { key: 'c119d0f17fc00de285fba88f3748235b914691ff' }), stringPropVisible(this.message, this.showMessage) ? (h("db-infotext", { size: this.messageSize || "small", icon: this.messageIcon, id: this._messageId }, this.message)) : null, this.hasValidState() ? (h("db-infotext", { semantic: "successful", id: this._validMessageId, size: this.validMessageSize || "small" }, this.validMessage || DEFAULT_VALID_MESSAGE)) : null, h("db-infotext", { key: '2ee3dc9555e0a21f6645807077c0b1af6dd08043', semantic: "critical", id: this._invalidMessageId, size: this.invalidMessageSize || "small" }, this._invalidMessage), h("span", { key: '5a3a55b62468522a3198957be4b5a72c818316b4', "data-visually-hidden": "true", role: "status" }, this._voiceOverFallback)));
443
571
  }
444
572
  get rootElement() { return getElement(this); }
445
573
  static get watchers() { return {
@@ -470,6 +598,7 @@ const DBTag = class {
470
598
  constructor(hostRef) {
471
599
  registerInstance(this, hostRef);
472
600
  this.remove = createEvent(this, "remove");
601
+ this.observer = undefined;
473
602
  }
474
603
  handleRemove(event) {
475
604
  if (!event)
@@ -486,6 +615,26 @@ const DBTag = class {
486
615
  // TODO: We should think this through again, if we would really like to have default and especially english, instead of german labels in here
487
616
  return DEFAULT_REMOVE;
488
617
  }
618
+ setupObserver(element) {
619
+ if (!element)
620
+ return;
621
+ const parent = element.closest("db-tag");
622
+ if (!parent || this.observer)
623
+ return;
624
+ this.observer = new MutationObserver((mutations) => {
625
+ if (mutations.some((mutation) => {
626
+ var _a;
627
+ const attr = mutation.target.attributes.getNamedItem((_a = mutation.attributeName) !== null && _a !== void 0 ? _a : "");
628
+ return (attr === null || attr === void 0 ? void 0 : attr.value) !== mutation.oldValue;
629
+ })) {
630
+ this.enableAttributePassing(element, "db-tag");
631
+ }
632
+ });
633
+ this.observer.observe(parent, {
634
+ attributes: true,
635
+ attributeOldValue: true,
636
+ });
637
+ }
489
638
  /**
490
639
  * Passes `aria-*`, `data-*` & `class` attributes to correct child. Used in angular and stencil.
491
640
  * @param element the ref for the component
@@ -499,10 +648,15 @@ const DBTag = class {
499
648
  const attr = attributes.item(i);
500
649
  if (attr && attr.name !== 'data-density' &&
501
650
  (attr.name.startsWith("data-") || attr.name.startsWith("aria-"))) {
502
- element.setAttribute(attr.name, attr.value);
651
+ if (attr.value) {
652
+ element.setAttribute(attr.name, attr.value);
653
+ }
654
+ else {
655
+ element.removeAttribute(attr.name);
656
+ }
503
657
  parent.removeAttribute(attr.name);
504
658
  }
505
- else if (attr && attr.name !== 'data-density' && attr.name !== "class" && attr.name === "style") {
659
+ else if (attr && ["style"].includes(attr.name)) {
506
660
  element.setAttribute(attr.name, attr.value);
507
661
  parent.removeAttribute(attr.name);
508
662
  }
@@ -510,7 +664,7 @@ const DBTag = class {
510
664
  const isWebComponent = attr.value.includes("hydrated");
511
665
  const value = attr.value.replace("hydrated", "").trim();
512
666
  const currentClass = element.getAttribute("class");
513
- element.setAttribute(attr.name, `${currentClass ? `${currentClass} ` : ""}${value}`);
667
+ element.setAttribute(attr.name, `${currentClass ? currentClass : ""}${value ? ` ${value}` : ""}`);
514
668
  if (isWebComponent) {
515
669
  // Stencil is using this class for lazy loading component
516
670
  parent.setAttribute("class", "hydrated");
@@ -530,12 +684,17 @@ const DBTag = class {
530
684
  }
531
685
  }
532
686
  this.enableAttributePassing(this._ref, "db-tag");
687
+ this.setupObserver(this._ref);
688
+ }
689
+ disconnectedCallback() {
690
+ var _a;
691
+ (_a = this.observer) === null || _a === void 0 ? void 0 : _a.disconnect();
533
692
  }
534
693
  render() {
535
694
  var _a, _b, _c;
536
- return (h("div", { key: '107c28ac3b48e7802773283ed706536b3448f7fd', class: cls("db-tag", this.className), ref: (el) => {
695
+ return (h("div", { key: '22654726ea465c2b07942705dfcf72162c11e314', class: cls("db-tag", this.className), ref: (el) => {
537
696
  this._ref = el;
538
- }, id: (_a = this.id) !== null && _a !== void 0 ? _a : (_b = this.propOverrides) === null || _b === void 0 ? void 0 : _b.id, "data-semantic": this.semantic, "data-emphasis": this.emphasis, "data-icon": this.icon, "data-show-check-state": getBooleanAsString((_c = this.showCheckState) !== null && _c !== void 0 ? _c : true, "showCheckState"), "data-show-icon": getBooleanAsString(this.showIcon, "showIcon"), "data-no-text": getBooleanAsString(this.noText, "noText"), "data-overflow": getBooleanAsString(this.overflow, "overflow") }, h("slot", { key: '7a552ce39473ee8f5ab9ff0fa26e1c9cb746141a', name: "content" }), this.text ? this.text : null, h("slot", { key: '3ace0ceb3415b63574e959214beb6af40071e1b6' }), this.behavior === "removable" ? (h("button", { class: "db-button db-tab-remove-button", "data-icon": "cross", "data-size": "small", "data-no-text": "true", "data-variant": "ghost", type: "button", onClick: (event) => this.handleRemove(event) }, h("db-tooltip", { variant: "label" }, this.getRemoveButtonText()))) : null));
697
+ }, id: (_a = this.id) !== null && _a !== void 0 ? _a : (_b = this.propOverrides) === null || _b === void 0 ? void 0 : _b.id, "data-semantic": this.semantic, "data-emphasis": this.emphasis, "data-icon": this.icon, "data-show-check-state": getBooleanAsString((_c = this.showCheckState) !== null && _c !== void 0 ? _c : true, "showCheckState"), "data-show-icon": getBooleanAsString(this.showIcon, "showIcon"), "data-no-text": getBooleanAsString(this.noText, "noText"), "data-overflow": getBooleanAsString(this.overflow, "overflow") }, h("slot", { key: '284aa3b6bce1595939f667e8a511319879545e27', name: "content" }), this.text ? this.text : null, h("slot", { key: '7471ead10bf5f95654444020e6b76d0b2f64486b' }), this.behavior === "removable" ? (h("button", { class: "db-button db-tab-remove-button", "data-icon": "cross", "data-size": "small", "data-no-text": "true", "data-variant": "ghost", type: "button", onClick: (event) => this.handleRemove(event) }, h("db-tooltip", { variant: "label" }, this.getRemoveButtonText()))) : null));
539
698
  }
540
699
  get rootElement() { return getElement(this); }
541
700
  };
@@ -4,6 +4,27 @@ import { c as cls } from './index-fumiz06Y.js';
4
4
  const DBCustomSelectFormField = class {
5
5
  constructor(hostRef) {
6
6
  registerInstance(this, hostRef);
7
+ this.observer = undefined;
8
+ }
9
+ setupObserver(element) {
10
+ if (!element)
11
+ return;
12
+ const parent = element.closest("db-custom-select-form-field");
13
+ if (!parent || this.observer)
14
+ return;
15
+ this.observer = new MutationObserver((mutations) => {
16
+ if (mutations.some((mutation) => {
17
+ var _a;
18
+ const attr = mutation.target.attributes.getNamedItem((_a = mutation.attributeName) !== null && _a !== void 0 ? _a : "");
19
+ return (attr === null || attr === void 0 ? void 0 : attr.value) !== mutation.oldValue;
20
+ })) {
21
+ this.enableAttributePassing(element, "db-custom-select-form-field");
22
+ }
23
+ });
24
+ this.observer.observe(parent, {
25
+ attributes: true,
26
+ attributeOldValue: true,
27
+ });
7
28
  }
8
29
  /**
9
30
  * Passes `aria-*`, `data-*` & `class` attributes to correct child. Used in angular and stencil.
@@ -18,10 +39,15 @@ const DBCustomSelectFormField = class {
18
39
  const attr = attributes.item(i);
19
40
  if (attr && attr.name !== 'data-density' &&
20
41
  (attr.name.startsWith("data-") || attr.name.startsWith("aria-"))) {
21
- element.setAttribute(attr.name, attr.value);
42
+ if (attr.value) {
43
+ element.setAttribute(attr.name, attr.value);
44
+ }
45
+ else {
46
+ element.removeAttribute(attr.name);
47
+ }
22
48
  parent.removeAttribute(attr.name);
23
49
  }
24
- else if (attr && attr.name !== 'data-density' && attr.name !== "class" && attr.name === "style") {
50
+ else if (attr && ["style"].includes(attr.name)) {
25
51
  element.setAttribute(attr.name, attr.value);
26
52
  parent.removeAttribute(attr.name);
27
53
  }
@@ -29,7 +55,7 @@ const DBCustomSelectFormField = class {
29
55
  const isWebComponent = attr.value.includes("hydrated");
30
56
  const value = attr.value.replace("hydrated", "").trim();
31
57
  const currentClass = element.getAttribute("class");
32
- element.setAttribute(attr.name, `${currentClass ? `${currentClass} ` : ""}${value}`);
58
+ element.setAttribute(attr.name, `${currentClass ? currentClass : ""}${value ? ` ${value}` : ""}`);
33
59
  if (isWebComponent) {
34
60
  // Stencil is using this class for lazy loading component
35
61
  parent.setAttribute("class", "hydrated");
@@ -49,12 +75,17 @@ const DBCustomSelectFormField = class {
49
75
  }
50
76
  }
51
77
  this.enableAttributePassing(this._ref, "db-custom-select-form-field");
78
+ this.setupObserver(this._ref);
79
+ }
80
+ disconnectedCallback() {
81
+ var _a;
82
+ (_a = this.observer) === null || _a === void 0 ? void 0 : _a.disconnect();
52
83
  }
53
84
  render() {
54
85
  var _a, _b;
55
- return (h("summary", { key: '29aec52d355ed2fd7f032cc70cb7fbda8e22f3ad', class: cls("db-custom-select-form-field", this.className), ref: (el) => {
86
+ return (h("summary", { key: 'e74ace4d1b8b882d93a74274f0ae0b278f6daf42', class: cls("db-custom-select-form-field", this.className), ref: (el) => {
56
87
  this._ref = el;
57
- }, id: (_a = this.id) !== null && _a !== void 0 ? _a : (_b = this.propOverrides) === null || _b === void 0 ? void 0 : _b.id }, h("slot", { key: '797ccea7210fbfe800a3c3c08e37b0d73690e419' })));
88
+ }, id: (_a = this.id) !== null && _a !== void 0 ? _a : (_b = this.propOverrides) === null || _b === void 0 ? void 0 : _b.id }, h("slot", { key: 'a336ba54bc2165846100b211d0f7f67755fb98d7' })));
58
89
  }
59
90
  get rootElement() { return getElement(this); }
60
91
  };