@siemens/ix 5.2.0 → 5.2.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 (437) hide show
  1. package/READMEOSS.html +1 -1
  2. package/components/index.js +1 -1
  3. package/components/ix-action-card.js +1 -1
  4. package/components/ix-application-header.js +1 -1
  5. package/components/ix-application-switch-modal.js +1 -1
  6. package/components/ix-avatar.js +1 -1
  7. package/components/ix-badge.js +1 -1
  8. package/components/ix-blind.js +1 -1
  9. package/components/ix-breadcrumb-item.js +1 -1
  10. package/components/ix-breadcrumb.js +1 -1
  11. package/components/ix-button.js +1 -1
  12. package/components/ix-card-accordion.js +1 -1
  13. package/components/ix-card-list.js +1 -1
  14. package/components/ix-category-filter.js +1 -1
  15. package/components/ix-chat-attachment.js +1 -1
  16. package/components/ix-chat-input.js +1 -1
  17. package/components/ix-checkbox-group.js +1 -1
  18. package/components/ix-checkbox.js +1 -1
  19. package/components/ix-chip.js +1 -1
  20. package/components/ix-content-header.js +1 -1
  21. package/components/ix-custom-field.js +1 -1
  22. package/components/ix-date-dropdown.js +1 -1
  23. package/components/ix-date-input.js +1 -1
  24. package/components/ix-date-picker.js +1 -1
  25. package/components/ix-datetime-input.js +1 -1
  26. package/components/ix-datetime-picker.js +1 -1
  27. package/components/ix-dropdown-button.js +1 -1
  28. package/components/ix-dropdown-item.js +1 -1
  29. package/components/ix-dropdown.js +1 -1
  30. package/components/ix-empty-state.js +1 -1
  31. package/components/ix-event-list-item.js +1 -1
  32. package/components/ix-event-list.js +1 -1
  33. package/components/ix-expanding-search.js +1 -1
  34. package/components/ix-field-label.js +1 -1
  35. package/components/ix-field-wrapper.js +1 -1
  36. package/components/ix-filter-chip.js +1 -1
  37. package/components/ix-flip-tile.js +1 -1
  38. package/components/ix-group-context-menu.js +1 -1
  39. package/components/ix-group.js +1 -1
  40. package/components/ix-helper-text.js +1 -1
  41. package/components/ix-icon-button.js +1 -1
  42. package/components/ix-icon-toggle-button.js +1 -1
  43. package/components/ix-input.js +1 -1
  44. package/components/ix-menu-about-news.js +1 -1
  45. package/components/ix-menu-about.js +1 -1
  46. package/components/ix-menu-avatar-item.js +1 -1
  47. package/components/ix-menu-avatar.js +1 -1
  48. package/components/ix-menu-category.js +1 -1
  49. package/components/ix-menu-expand-icon.js +1 -1
  50. package/components/ix-menu-item.js +1 -1
  51. package/components/ix-menu-settings.js +1 -1
  52. package/components/ix-menu.js +1 -1
  53. package/components/ix-message-bar.js +1 -1
  54. package/components/ix-modal-header.js +1 -1
  55. package/components/ix-modal-loading.js +1 -1
  56. package/components/ix-modal.js +1 -1
  57. package/components/ix-number-input.js +1 -1
  58. package/components/ix-pagination.js +1 -1
  59. package/components/ix-pane.js +1 -1
  60. package/components/ix-pill.js +1 -1
  61. package/components/ix-popover-header.js +1 -1
  62. package/components/ix-popover.js +1 -1
  63. package/components/ix-progress-indicator.js +1 -1
  64. package/components/ix-push-card.js +1 -1
  65. package/components/ix-radio-group.js +1 -1
  66. package/components/ix-radio.js +1 -1
  67. package/components/ix-select-item.js +1 -1
  68. package/components/ix-select.js +1 -1
  69. package/components/ix-slider.js +1 -1
  70. package/components/ix-spinner.js +1 -1
  71. package/components/ix-split-button.js +1 -1
  72. package/components/ix-tab-item.js +1 -1
  73. package/components/ix-tabs.js +1 -1
  74. package/components/ix-textarea.js +1 -1
  75. package/components/ix-time-input.js +1 -1
  76. package/components/ix-time-picker.js +1 -1
  77. package/components/ix-toast-container.js +1 -1
  78. package/components/ix-toast.js +1 -1
  79. package/components/ix-toggle-button.js +1 -1
  80. package/components/ix-toggle.js +1 -1
  81. package/components/ix-tooltip.js +1 -1
  82. package/components/ix-upload.js +1 -1
  83. package/components/ix-workflow-step.js +1 -1
  84. package/components/{p-Bs5X90wM.js → p-B3ZUi0gM.js} +1 -1
  85. package/components/p-BE708_H3.js +1 -0
  86. package/components/p-BF2IsI5j.js +1 -0
  87. package/components/{p-l9UTiHpM.js → p-BGpGr8Qv.js} +1 -1
  88. package/components/{p-CEE0wwD3.js → p-BKCLcJ_A.js} +1 -1
  89. package/components/{p-D7sEY2UQ.js → p-BKVBe7Co.js} +1 -1
  90. package/components/{p-3U_cSqu_.js → p-BOImZPcG.js} +1 -1
  91. package/components/{p-CtZAuwv3.js → p-BpE93ty6.js} +1 -1
  92. package/components/p-BqeSHO6C.js +1 -0
  93. package/components/{p-BGOtCwtj.js → p-CAd-WgR8.js} +1 -1
  94. package/components/p-CFH9HkmQ.js +1 -0
  95. package/components/p-CGGWaScq.js +1 -0
  96. package/components/{p-WisOWbJ8.js → p-CHJbp28K.js} +1 -1
  97. package/components/{p-BQ-hS49k.js → p-CRbQNmxe.js} +1 -1
  98. package/components/{p-DmtgI24u.js → p-CYgC-XN6.js} +1 -1
  99. package/components/p-CiP3eKpd.js +1 -0
  100. package/components/{p-OxstEnSC.js → p-CqWfy46u.js} +1 -1
  101. package/components/p-D5-dW4IM.js +1 -0
  102. package/components/p-DB-zpRCO.js +1 -0
  103. package/components/{p-C21npbUc.js → p-DD206pTM.js} +1 -1
  104. package/components/{p-D_HzQCU-.js → p-DIq_C5Sa.js} +1 -1
  105. package/components/p-DKU5FVxI.js +1 -0
  106. package/components/{p-snX1FfdL.js → p-DLgZfUmI.js} +1 -1
  107. package/components/p-DXmwthlZ.js +1 -0
  108. package/components/p-D_VBAyPm.js +1 -0
  109. package/components/p-DcOoa9vE.js +1 -0
  110. package/components/{p-CatmTvkh.js → p-DyC90hvu.js} +1 -1
  111. package/components/p-DzDB4UBp.js +1 -0
  112. package/components/p-QnnFQ3fz.js +1 -0
  113. package/components/p-WX1HYV2-.js +1 -0
  114. package/components/{p-BC2PyjjU.js → p-_irxfS9S.js} +1 -1
  115. package/components/{p-CUpOF7jN.js → p-n2_EOgMr.js} +1 -1
  116. package/components/p-q_MHsaAK.js +1 -0
  117. package/components/{p-eGuQ8D3W.js → p-viP8I2_s.js} +1 -1
  118. package/dist/cjs/{a11y-_XjpTo2w.js → a11y--G19CFwe.js} +1 -0
  119. package/dist/cjs/{animation-hxDbANsw.js → animation-BIfSQAkX.js} +8 -12
  120. package/dist/cjs/{base-button-BP6iIMR7.js → base-button-DIhNZecD.js} +1 -1
  121. package/dist/cjs/{base-icon-button-BmiGQb9v.js → base-icon-button-DASKxRmK.js} +1 -1
  122. package/dist/cjs/{focus-visible.mixin-1V7Eldn_.js → focus-visible.mixin-GrZAmMez.js} +1 -1
  123. package/dist/cjs/{helper-text-util-Ci_KFQZ4.js → helper-text-util-EAfzAOH6.js} +1 -1
  124. package/dist/cjs/index.cjs.js +1 -1
  125. package/dist/cjs/inherit-aria-attributes.mixin-DZ_vNjkJ.js +306 -0
  126. package/dist/cjs/{input.fc-xGzM_I6q.js → input.fc-ellguRiE.js} +8 -3
  127. package/dist/cjs/ix-action-card.cjs.entry.js +1 -1
  128. package/dist/cjs/ix-application-header.cjs.entry.js +1 -1
  129. package/dist/cjs/ix-avatar_2.cjs.entry.js +2 -2
  130. package/dist/cjs/ix-badge.cjs.entry.js +8 -159
  131. package/dist/cjs/ix-blind.cjs.entry.js +13 -7
  132. package/dist/cjs/ix-breadcrumb-item.cjs.entry.js +4 -157
  133. package/dist/cjs/ix-breadcrumb.cjs.entry.js +1 -1
  134. package/dist/cjs/ix-button.cjs.entry.js +4 -157
  135. package/dist/cjs/ix-card-accordion_2.cjs.entry.js +7 -4
  136. package/dist/cjs/ix-category-filter.cjs.entry.js +7 -7
  137. package/dist/cjs/ix-chat-input.cjs.entry.js +8 -8
  138. package/dist/cjs/ix-checkbox-group.cjs.entry.js +1 -1
  139. package/dist/cjs/ix-checkbox.cjs.entry.js +1 -1
  140. package/dist/cjs/ix-chip.cjs.entry.js +2 -157
  141. package/dist/cjs/ix-col_4.cjs.entry.js +5 -5
  142. package/dist/cjs/ix-date-dropdown.cjs.entry.js +6 -6
  143. package/dist/cjs/ix-date-input.cjs.entry.js +3 -3
  144. package/dist/cjs/ix-date-picker.cjs.entry.js +15 -11
  145. package/dist/cjs/ix-datetime-input.cjs.entry.js +3 -3
  146. package/dist/cjs/ix-dropdown-button.cjs.entry.js +9 -6
  147. package/dist/cjs/ix-dropdown_2.cjs.entry.js +13 -7
  148. package/dist/cjs/ix-event-list-item.cjs.entry.js +1 -1
  149. package/dist/cjs/ix-event-list.cjs.entry.js +6 -2
  150. package/dist/cjs/ix-field-label_2.cjs.entry.js +2 -2
  151. package/dist/cjs/ix-filter-chip_2.cjs.entry.js +2 -2
  152. package/dist/cjs/ix-flip-tile.cjs.entry.js +1 -1
  153. package/dist/cjs/ix-group.cjs.entry.js +9 -9
  154. package/dist/cjs/ix-helper-text.cjs.entry.js +2 -2
  155. package/dist/cjs/ix-icon-button_2.cjs.entry.js +5 -160
  156. package/dist/cjs/ix-icon-toggle-button.cjs.entry.js +5 -160
  157. package/dist/cjs/ix-input.cjs.entry.js +3 -3
  158. package/dist/cjs/ix-menu-avatar.cjs.entry.js +1 -1
  159. package/dist/cjs/ix-menu-category.cjs.entry.js +24 -166
  160. package/dist/cjs/ix-menu-expand-icon.cjs.entry.js +3 -3
  161. package/dist/cjs/ix-menu-item.cjs.entry.js +11 -160
  162. package/dist/cjs/ix-menu.cjs.entry.js +40 -18
  163. package/dist/cjs/ix-modal-content_2.cjs.entry.js +2 -2
  164. package/dist/cjs/ix-modal.cjs.entry.js +15 -8
  165. package/dist/cjs/ix-number-input.cjs.entry.js +16 -13
  166. package/dist/cjs/ix-pagination.cjs.entry.js +3 -3
  167. package/dist/cjs/ix-pane.cjs.entry.js +2 -2
  168. package/dist/cjs/ix-pill_4.cjs.entry.js +12 -160
  169. package/dist/cjs/ix-popover-header.cjs.entry.js +1 -1
  170. package/dist/cjs/ix-popover.cjs.entry.js +5 -156
  171. package/dist/cjs/ix-radio.cjs.entry.js +1 -1
  172. package/dist/cjs/ix-select.cjs.entry.js +10 -10
  173. package/dist/cjs/ix-slider.cjs.entry.js +1 -1
  174. package/dist/cjs/ix-textarea.cjs.entry.js +3 -3
  175. package/dist/cjs/ix-time-input.cjs.entry.js +3 -3
  176. package/dist/cjs/ix-toggle-button.cjs.entry.js +4 -159
  177. package/dist/cjs/ix-toggle.cjs.entry.js +2 -155
  178. package/dist/cjs/ix-tooltip.cjs.entry.js +6 -2
  179. package/dist/cjs/ix-tree.cjs.entry.js +1 -0
  180. package/dist/cjs/ix-upload.cjs.entry.js +1 -1
  181. package/dist/cjs/ix-workflow-step.cjs.entry.js +11 -5
  182. package/dist/cjs/loader.cjs.js +1 -1
  183. package/dist/cjs/siemens-ix.cjs.js +1 -1
  184. package/dist/collection/components/badge/badge.js +7 -5
  185. package/dist/collection/components/badge/test/badge.page.js +6 -2
  186. package/dist/collection/components/blind/blind.js +11 -5
  187. package/dist/collection/components/breadcrumb-item/breadcrumb-item.css +108 -0
  188. package/dist/collection/components/button/button.css +54 -0
  189. package/dist/collection/components/card-accordion/card-accordion.js +7 -4
  190. package/dist/collection/components/category-filter/category-filter.css +54 -0
  191. package/dist/collection/components/category-filter/category-filter.js +4 -4
  192. package/dist/collection/components/chat-input/chat-input.js +8 -8
  193. package/dist/collection/components/checkbox-group/checkbox-group.css +1 -1
  194. package/dist/collection/components/date-dropdown/date-dropdown.js +4 -4
  195. package/dist/collection/components/date-picker/date-picker.js +15 -11
  196. package/dist/collection/components/dropdown/dropdown.js +11 -5
  197. package/dist/collection/components/dropdown-button/dropdown-button.css +9 -180
  198. package/dist/collection/components/dropdown-button/dropdown-button.js +7 -4
  199. package/dist/collection/components/event-list/event-list.js +6 -2
  200. package/dist/collection/components/group/group.js +9 -9
  201. package/dist/collection/components/icon-button/icon-button.css +54 -0
  202. package/dist/collection/components/icon-toggle-button/icon-toggle-button.css +54 -0
  203. package/dist/collection/components/input/input.util.js +6 -1
  204. package/dist/collection/components/input/number-input.js +13 -10
  205. package/dist/collection/components/menu/menu-expand-icon.css +6 -0
  206. package/dist/collection/components/menu/menu.js +39 -17
  207. package/dist/collection/components/menu-category/menu-category.js +22 -11
  208. package/dist/collection/components/menu-item/menu-item.js +9 -5
  209. package/dist/collection/components/modal/modal.js +13 -6
  210. package/dist/collection/components/modal-header/modal-header.js +2 -2
  211. package/dist/collection/components/pagination/pagination.css +54 -0
  212. package/dist/collection/components/popover/popover.js +3 -1
  213. package/dist/collection/components/popover/test/popover.page.js +3 -2
  214. package/dist/collection/components/select/select.js +9 -9
  215. package/dist/collection/components/tabs/tabs.js +10 -5
  216. package/dist/collection/components/time-picker/test/expect-defined.js +13 -0
  217. package/dist/collection/components/time-picker/time-picker.js +5 -5
  218. package/dist/collection/components/toggle-button/toggle-button.css +54 -0
  219. package/dist/collection/components/tooltip/tooltip.js +6 -2
  220. package/dist/collection/components/utils/a11y.js +1 -1
  221. package/dist/collection/components/utils/animation.js +8 -12
  222. package/dist/collection/components/utils/internal/mixins/accessibility/aria-attribute-observer.js +106 -0
  223. package/dist/collection/components/utils/internal/mixins/accessibility/inherit-aria-attributes.mixin.js +175 -166
  224. package/dist/collection/components/utils/lazy-list/lazy.js +1 -0
  225. package/dist/collection/components/workflow-step/workflow-step.css +2 -2
  226. package/dist/collection/components/workflow-step/workflow-step.js +10 -4
  227. package/dist/collection/tests/utils/test/page.js +3 -0
  228. package/dist/esm/{a11y-C21npbUc.js → a11y-DD206pTM.js} +1 -1
  229. package/dist/esm/{animation-DNIQ2C1K.js → animation-BqeSHO6C.js} +8 -12
  230. package/dist/esm/{base-button-DZdtpLxn.js → base-button-Oanl-VqF.js} +1 -1
  231. package/dist/esm/{base-icon-button-DufFLJC-.js → base-icon-button-CxmfMOOd.js} +1 -1
  232. package/dist/esm/{focus-visible.mixin-CaRK3Ex_.js → focus-visible.mixin-DNYMa4dY.js} +1 -1
  233. package/dist/esm/{helper-text-util-sQKO6RPJ.js → helper-text-util-BJ-ZMW2J.js} +1 -1
  234. package/dist/esm/index.js +1 -1
  235. package/dist/esm/inherit-aria-attributes.mixin-BmTKblYV.js +304 -0
  236. package/dist/esm/{input.fc-DliqEtCM.js → input.fc-Cwmx0lGN.js} +8 -3
  237. package/dist/esm/ix-action-card.entry.js +1 -1
  238. package/dist/esm/ix-application-header.entry.js +1 -1
  239. package/dist/esm/ix-avatar_2.entry.js +2 -2
  240. package/dist/esm/ix-badge.entry.js +8 -159
  241. package/dist/esm/ix-blind.entry.js +13 -7
  242. package/dist/esm/ix-breadcrumb-item.entry.js +4 -157
  243. package/dist/esm/ix-breadcrumb.entry.js +1 -1
  244. package/dist/esm/ix-button.entry.js +4 -157
  245. package/dist/esm/ix-card-accordion_2.entry.js +7 -4
  246. package/dist/esm/ix-category-filter.entry.js +7 -7
  247. package/dist/esm/ix-chat-input.entry.js +8 -8
  248. package/dist/esm/ix-checkbox-group.entry.js +1 -1
  249. package/dist/esm/ix-checkbox.entry.js +1 -1
  250. package/dist/esm/ix-chip.entry.js +2 -157
  251. package/dist/esm/ix-col_4.entry.js +5 -5
  252. package/dist/esm/ix-date-dropdown.entry.js +6 -6
  253. package/dist/esm/ix-date-input.entry.js +3 -3
  254. package/dist/esm/ix-date-picker.entry.js +15 -11
  255. package/dist/esm/ix-datetime-input.entry.js +3 -3
  256. package/dist/esm/ix-dropdown-button.entry.js +9 -6
  257. package/dist/esm/ix-dropdown_2.entry.js +13 -7
  258. package/dist/esm/ix-event-list-item.entry.js +1 -1
  259. package/dist/esm/ix-event-list.entry.js +6 -2
  260. package/dist/esm/ix-field-label_2.entry.js +2 -2
  261. package/dist/esm/ix-filter-chip_2.entry.js +2 -2
  262. package/dist/esm/ix-flip-tile.entry.js +1 -1
  263. package/dist/esm/ix-group.entry.js +9 -9
  264. package/dist/esm/ix-helper-text.entry.js +2 -2
  265. package/dist/esm/ix-icon-button_2.entry.js +5 -160
  266. package/dist/esm/ix-icon-toggle-button.entry.js +5 -160
  267. package/dist/esm/ix-input.entry.js +3 -3
  268. package/dist/esm/ix-menu-avatar.entry.js +1 -1
  269. package/dist/esm/ix-menu-category.entry.js +24 -166
  270. package/dist/esm/ix-menu-expand-icon.entry.js +3 -3
  271. package/dist/esm/ix-menu-item.entry.js +11 -160
  272. package/dist/esm/ix-menu.entry.js +40 -18
  273. package/dist/esm/ix-modal-content_2.entry.js +2 -2
  274. package/dist/esm/ix-modal.entry.js +15 -8
  275. package/dist/esm/ix-number-input.entry.js +16 -13
  276. package/dist/esm/ix-pagination.entry.js +3 -3
  277. package/dist/esm/ix-pane.entry.js +2 -2
  278. package/dist/esm/ix-pill_4.entry.js +12 -160
  279. package/dist/esm/ix-popover-header.entry.js +1 -1
  280. package/dist/esm/ix-popover.entry.js +5 -156
  281. package/dist/esm/ix-radio.entry.js +1 -1
  282. package/dist/esm/ix-select.entry.js +10 -10
  283. package/dist/esm/ix-slider.entry.js +1 -1
  284. package/dist/esm/ix-textarea.entry.js +3 -3
  285. package/dist/esm/ix-time-input.entry.js +3 -3
  286. package/dist/esm/ix-toggle-button.entry.js +4 -159
  287. package/dist/esm/ix-toggle.entry.js +2 -155
  288. package/dist/esm/ix-tooltip.entry.js +6 -2
  289. package/dist/esm/ix-tree.entry.js +1 -0
  290. package/dist/esm/ix-upload.entry.js +1 -1
  291. package/dist/esm/ix-workflow-step.entry.js +11 -5
  292. package/dist/esm/loader.js +1 -1
  293. package/dist/esm/siemens-ix.js +1 -1
  294. package/dist/siemens-ix/index.esm.js +1 -1
  295. package/dist/siemens-ix/p-0409f281.entry.js +1 -0
  296. package/dist/siemens-ix/{p-2e780c86.entry.js → p-0819923e.entry.js} +1 -1
  297. package/dist/siemens-ix/p-0b875bbd.entry.js +1 -0
  298. package/dist/siemens-ix/p-1a7b51d8.entry.js +1 -0
  299. package/dist/siemens-ix/{p-2b0ffba0.entry.js → p-1aef893c.entry.js} +1 -1
  300. package/dist/siemens-ix/{p-03745110.entry.js → p-213059a9.entry.js} +1 -1
  301. package/dist/siemens-ix/p-24138425.entry.js +1 -0
  302. package/dist/siemens-ix/{p-29e8126a.entry.js → p-32104d25.entry.js} +1 -1
  303. package/dist/siemens-ix/{p-447d52de.entry.js → p-35042cda.entry.js} +1 -1
  304. package/dist/siemens-ix/p-351e8732.entry.js +1 -0
  305. package/dist/siemens-ix/{p-884fd236.entry.js → p-38eef16a.entry.js} +1 -1
  306. package/dist/siemens-ix/p-3a60004f.entry.js +1 -0
  307. package/dist/siemens-ix/p-3ad11c04.entry.js +1 -0
  308. package/dist/siemens-ix/p-3c92d126.entry.js +1 -0
  309. package/dist/siemens-ix/{p-d0649c07.entry.js → p-3fe85552.entry.js} +1 -1
  310. package/dist/siemens-ix/{p-f4575603.entry.js → p-40239cf6.entry.js} +1 -1
  311. package/dist/siemens-ix/{p-a92495b8.entry.js → p-403b7d10.entry.js} +1 -1
  312. package/dist/siemens-ix/p-4739e88e.entry.js +1 -0
  313. package/dist/siemens-ix/p-4c765c73.entry.js +1 -0
  314. package/dist/siemens-ix/{p-0b10bb78.entry.js → p-50ece3e2.entry.js} +1 -1
  315. package/dist/siemens-ix/p-53319a22.entry.js +1 -0
  316. package/dist/siemens-ix/{p-1fbb010f.entry.js → p-571a1628.entry.js} +1 -1
  317. package/dist/siemens-ix/{p-4079292f.entry.js → p-60f7be48.entry.js} +1 -1
  318. package/dist/siemens-ix/p-643ed439.entry.js +1 -0
  319. package/dist/siemens-ix/p-6505e43d.entry.js +1 -0
  320. package/dist/siemens-ix/{p-217dc62a.entry.js → p-675e2aa8.entry.js} +1 -1
  321. package/dist/siemens-ix/{p-99b97922.entry.js → p-79a08a2a.entry.js} +1 -1
  322. package/dist/siemens-ix/p-83827bb2.entry.js +1 -0
  323. package/dist/siemens-ix/p-859294b4.entry.js +1 -0
  324. package/dist/siemens-ix/p-8af23465.entry.js +1 -0
  325. package/dist/siemens-ix/{p-6ffe8ec7.entry.js → p-8bc225b7.entry.js} +1 -1
  326. package/dist/siemens-ix/p-9254cb19.entry.js +1 -0
  327. package/dist/siemens-ix/p-9c6e5dcc.entry.js +1 -0
  328. package/dist/siemens-ix/{p-bf827cb3.entry.js → p-9df616d3.entry.js} +1 -1
  329. package/dist/siemens-ix/p-Bemn50Nk.js +1 -0
  330. package/dist/siemens-ix/p-BqeSHO6C.js +1 -0
  331. package/dist/siemens-ix/{p-HpQs38Y0.js → p-CDKWxg_L.js} +1 -1
  332. package/dist/siemens-ix/{p-CXbob2Ew.js → p-CLxF-dX8.js} +1 -1
  333. package/dist/siemens-ix/p-Cv_omozQ.js +1 -0
  334. package/dist/siemens-ix/{p-C21npbUc.js → p-DD206pTM.js} +1 -1
  335. package/dist/siemens-ix/p-a05bf6b5.entry.js +1 -0
  336. package/dist/siemens-ix/p-a4c3f3d3.entry.js +1 -0
  337. package/dist/siemens-ix/{p-836df58e.entry.js → p-aa0770ab.entry.js} +1 -1
  338. package/dist/siemens-ix/{p-89f6329b.entry.js → p-b5bf48cb.entry.js} +1 -1
  339. package/dist/siemens-ix/p-b9dcbd84.entry.js +1 -0
  340. package/dist/siemens-ix/{p-f3528209.entry.js → p-c393c20e.entry.js} +1 -1
  341. package/dist/siemens-ix/{p-b3eaf43d.entry.js → p-caac5984.entry.js} +1 -1
  342. package/dist/siemens-ix/p-cfd75035.entry.js +1 -0
  343. package/dist/siemens-ix/{p-47e2c5a1.entry.js → p-d4d99140.entry.js} +1 -1
  344. package/dist/siemens-ix/p-d94ad8f8.entry.js +1 -0
  345. package/dist/siemens-ix/p-da700215.entry.js +1 -0
  346. package/dist/siemens-ix/p-ddb49318.entry.js +1 -0
  347. package/dist/siemens-ix/{p-1afa8fb3.entry.js → p-de9a4607.entry.js} +1 -1
  348. package/dist/siemens-ix/{p-4b85292e.entry.js → p-e2e7c16a.entry.js} +1 -1
  349. package/dist/siemens-ix/p-e5239c6d.entry.js +1 -0
  350. package/dist/siemens-ix/p-e87e947c.entry.js +1 -0
  351. package/dist/siemens-ix/p-e8d73d19.entry.js +1 -0
  352. package/dist/siemens-ix/{p-0329eb6e.entry.js → p-e8f5519f.entry.js} +1 -1
  353. package/dist/siemens-ix/{p-92804589.entry.js → p-f7f6cf46.entry.js} +1 -1
  354. package/dist/siemens-ix/{p-bd2f7002.entry.js → p-fcfecc91.entry.js} +1 -1
  355. package/dist/siemens-ix/{p-kmPsIcs5.js → p-rgh7lt60.js} +1 -1
  356. package/dist/siemens-ix/p-xptA1Kt1.js +1 -0
  357. package/dist/siemens-ix/siemens-ix.esm.js +1 -1
  358. package/dist/types/components/badge/badge.d.ts +1 -16
  359. package/dist/types/components/breadcrumb-item/breadcrumb-item.d.ts +1 -16
  360. package/dist/types/components/button/button.d.ts +1 -16
  361. package/dist/types/components/chip/chip.d.ts +1 -16
  362. package/dist/types/components/dropdown/dropdown-focus.d.ts +1 -1
  363. package/dist/types/components/group/group.d.ts +1 -1
  364. package/dist/types/components/icon-button/icon-button.d.ts +2 -17
  365. package/dist/types/components/icon-toggle-button/icon-toggle-button.d.ts +1 -16
  366. package/dist/types/components/input/input.util.d.ts +2 -3
  367. package/dist/types/components/input/number-input.d.ts +1 -0
  368. package/dist/types/components/menu/menu.d.ts +1 -1
  369. package/dist/types/components/menu-category/menu-category.d.ts +2 -17
  370. package/dist/types/components/menu-item/menu-item.d.ts +1 -16
  371. package/dist/types/components/modal/modal.d.ts +1 -0
  372. package/dist/types/components/modal-header/modal-header.d.ts +1 -1
  373. package/dist/types/components/popover/popover.d.ts +1 -16
  374. package/dist/types/components/tabs/tabs.d.ts +3 -16
  375. package/dist/types/components/time-picker/test/expect-defined.d.ts +1 -0
  376. package/dist/types/components/toggle/toggle.d.ts +1 -16
  377. package/dist/types/components/toggle-button/toggle-button.d.ts +1 -16
  378. package/dist/types/components/tree/tree.d.ts +1 -1
  379. package/dist/types/components/utils/a11y.d.ts +1 -0
  380. package/dist/types/components/utils/internal/mixins/accessibility/aria-attribute-observer.d.ts +7 -0
  381. package/dist/types/components/utils/internal/mixins/accessibility/inherit-aria-attributes.mixin.d.ts +7 -18
  382. package/dist/types/components/utils/shadow-dom.d.ts +1 -1
  383. package/dist/types/components/workflow-step/workflow-step.d.ts +1 -0
  384. package/hydrate/index.js +535 -2015
  385. package/hydrate/index.mjs +535 -2015
  386. package/package.json +1 -1
  387. package/components/p-1FBWW6v2.js +0 -1
  388. package/components/p-BDnx22Gp.js +0 -1
  389. package/components/p-BHoJOFM-.js +0 -1
  390. package/components/p-BST8QY5w.js +0 -1
  391. package/components/p-BcbFeRB0.js +0 -1
  392. package/components/p-CLDB-pmj.js +0 -1
  393. package/components/p-CRtj-KBq.js +0 -1
  394. package/components/p-CTRSoM-z.js +0 -1
  395. package/components/p-CgPr717U.js +0 -1
  396. package/components/p-CvAmaEU2.js +0 -1
  397. package/components/p-DNIQ2C1K.js +0 -1
  398. package/components/p-DdlGyKd2.js +0 -1
  399. package/components/p-DtWFUcZO.js +0 -1
  400. package/components/p-DylHkzl6.js +0 -1
  401. package/components/p-NXyac9kC.js +0 -1
  402. package/components/p-hf_zqlB1.js +0 -1
  403. package/dist/cjs/inherit-aria-attributes.mixin-EyRU0cDO.js +0 -36
  404. package/dist/esm/inherit-aria-attributes.mixin-nCmPujqf.js +0 -34
  405. package/dist/siemens-ix/p-0555a6fb.entry.js +0 -1
  406. package/dist/siemens-ix/p-05c35730.entry.js +0 -1
  407. package/dist/siemens-ix/p-0f2ac675.entry.js +0 -1
  408. package/dist/siemens-ix/p-12bce791.entry.js +0 -1
  409. package/dist/siemens-ix/p-30008054.entry.js +0 -1
  410. package/dist/siemens-ix/p-488b7074.entry.js +0 -1
  411. package/dist/siemens-ix/p-49d8b129.entry.js +0 -1
  412. package/dist/siemens-ix/p-55a57ce6.entry.js +0 -1
  413. package/dist/siemens-ix/p-55ae6204.entry.js +0 -1
  414. package/dist/siemens-ix/p-55e8ad3b.entry.js +0 -1
  415. package/dist/siemens-ix/p-5f48d238.entry.js +0 -1
  416. package/dist/siemens-ix/p-64432fa0.entry.js +0 -1
  417. package/dist/siemens-ix/p-6ebf66b8.entry.js +0 -1
  418. package/dist/siemens-ix/p-7690a56d.entry.js +0 -1
  419. package/dist/siemens-ix/p-80d7a07a.entry.js +0 -1
  420. package/dist/siemens-ix/p-816bcf01.entry.js +0 -1
  421. package/dist/siemens-ix/p-86ad005e.entry.js +0 -1
  422. package/dist/siemens-ix/p-8c3e7613.entry.js +0 -1
  423. package/dist/siemens-ix/p-8df1362f.entry.js +0 -1
  424. package/dist/siemens-ix/p-9094212f.entry.js +0 -1
  425. package/dist/siemens-ix/p-99df3561.entry.js +0 -1
  426. package/dist/siemens-ix/p-B4oiZyZC.js +0 -1
  427. package/dist/siemens-ix/p-DNIQ2C1K.js +0 -1
  428. package/dist/siemens-ix/p-a1d79970.entry.js +0 -1
  429. package/dist/siemens-ix/p-a7d695f5.entry.js +0 -1
  430. package/dist/siemens-ix/p-baf74d39.entry.js +0 -1
  431. package/dist/siemens-ix/p-bf75d77b.entry.js +0 -1
  432. package/dist/siemens-ix/p-cddc43e2.entry.js +0 -1
  433. package/dist/siemens-ix/p-cfd83faa.entry.js +0 -1
  434. package/dist/siemens-ix/p-fff1f8b1.entry.js +0 -1
  435. package/dist/siemens-ix/p-vphIrWGB.js +0 -1
  436. package/dist/siemens-ix/p-yUgQMMln.js +0 -1
  437. /package/dist/siemens-ix/{p-383e95ad.entry.js → p-f4d8f94b.entry.js} +0 -0
@@ -593,6 +593,12 @@ input.ix-form-control:read-only, input.ix-form-control.readonly {
593
593
  color: var(--theme-btn-primary--color--active);
594
594
  }
595
595
 
596
+ :host(.active:not(.disabled)) .btn-primary:not(.disabled):not(:disabled) {
597
+ border-color: var(--theme-btn-primary--border-color--active);
598
+ background-color: var(--theme-btn-primary--background--active);
599
+ color: var(--theme-btn-primary--color--active);
600
+ }
601
+
596
602
  :host(.disabled) {
597
603
  pointer-events: none;
598
604
  }
@@ -655,6 +661,12 @@ input.ix-form-control:read-only, input.ix-form-control.readonly {
655
661
  color: var(--theme-btn-secondary--color--active);
656
662
  }
657
663
 
664
+ :host(.active:not(.disabled)) .btn-secondary:not(.disabled):not(:disabled) {
665
+ border-color: var(--theme-btn-secondary--border-color--active);
666
+ background-color: var(--theme-btn-secondary--background--active);
667
+ color: var(--theme-btn-secondary--color--active);
668
+ }
669
+
658
670
  :host(.disabled) {
659
671
  pointer-events: none;
660
672
  }
@@ -717,6 +729,12 @@ input.ix-form-control:read-only, input.ix-form-control.readonly {
717
729
  color: var(--theme-btn-tertiary--color--active);
718
730
  }
719
731
 
732
+ :host(.active:not(.disabled)) .btn-tertiary:not(.disabled):not(:disabled) {
733
+ border-color: var(--theme-btn-tertiary--border-color--active);
734
+ background-color: var(--theme-btn-tertiary--background--active);
735
+ color: var(--theme-btn-tertiary--color--active);
736
+ }
737
+
720
738
  :host(.disabled) {
721
739
  pointer-events: none;
722
740
  }
@@ -779,6 +797,12 @@ input.ix-form-control:read-only, input.ix-form-control.readonly {
779
797
  color: var(--theme-btn-subtle-primary--color--active);
780
798
  }
781
799
 
800
+ :host(.active:not(.disabled)) .btn-subtle-primary:not(.disabled):not(:disabled) {
801
+ border-color: var(--theme-btn-subtle-primary--border-color--active);
802
+ background-color: var(--theme-btn-subtle-primary--background--active);
803
+ color: var(--theme-btn-subtle-primary--color--active);
804
+ }
805
+
782
806
  :host(.disabled) {
783
807
  pointer-events: none;
784
808
  }
@@ -841,6 +865,12 @@ input.ix-form-control:read-only, input.ix-form-control.readonly {
841
865
  color: var(--theme-btn-subtle-secondary--color--active);
842
866
  }
843
867
 
868
+ :host(.active:not(.disabled)) .btn-subtle-secondary:not(.disabled):not(:disabled) {
869
+ border-color: var(--theme-btn-subtle-secondary--border-color--active);
870
+ background-color: var(--theme-btn-subtle-secondary--background--active);
871
+ color: var(--theme-btn-subtle-secondary--color--active);
872
+ }
873
+
844
874
  :host(.disabled) {
845
875
  pointer-events: none;
846
876
  }
@@ -903,6 +933,12 @@ input.ix-form-control:read-only, input.ix-form-control.readonly {
903
933
  color: var(--theme-btn-subtle-tertiary--color--active);
904
934
  }
905
935
 
936
+ :host(.active:not(.disabled)) .btn-subtle-tertiary:not(.disabled):not(:disabled) {
937
+ border-color: var(--theme-btn-subtle-tertiary--border-color--active);
938
+ background-color: var(--theme-btn-subtle-tertiary--background--active);
939
+ color: var(--theme-btn-subtle-tertiary--color--active);
940
+ }
941
+
906
942
  :host(.disabled) {
907
943
  pointer-events: none;
908
944
  }
@@ -965,6 +1001,12 @@ input.ix-form-control:read-only, input.ix-form-control.readonly {
965
1001
  color: var(--theme-btn-danger-primary--color--active);
966
1002
  }
967
1003
 
1004
+ :host(.active:not(.disabled)) .btn-danger-primary:not(.disabled):not(:disabled) {
1005
+ border-color: var(--theme-btn-danger-primary--border-color--active);
1006
+ background-color: var(--theme-btn-danger-primary--background--active);
1007
+ color: var(--theme-btn-danger-primary--color--active);
1008
+ }
1009
+
968
1010
  :host(.disabled) {
969
1011
  pointer-events: none;
970
1012
  }
@@ -1027,6 +1069,12 @@ input.ix-form-control:read-only, input.ix-form-control.readonly {
1027
1069
  color: var(--theme-btn-danger-secondary--color--active);
1028
1070
  }
1029
1071
 
1072
+ :host(.active:not(.disabled)) .btn-danger-secondary:not(.disabled):not(:disabled) {
1073
+ border-color: var(--theme-btn-danger-secondary--border-color--active);
1074
+ background-color: var(--theme-btn-danger-secondary--background--active);
1075
+ color: var(--theme-btn-danger-secondary--color--active);
1076
+ }
1077
+
1030
1078
  :host(.disabled) {
1031
1079
  pointer-events: none;
1032
1080
  }
@@ -1089,6 +1137,12 @@ input.ix-form-control:read-only, input.ix-form-control.readonly {
1089
1137
  color: var(--theme-btn-danger-tertiary--color--active);
1090
1138
  }
1091
1139
 
1140
+ :host(.active:not(.disabled)) .btn-danger-tertiary:not(.disabled):not(:disabled) {
1141
+ border-color: var(--theme-btn-danger-tertiary--border-color--active);
1142
+ background-color: var(--theme-btn-danger-tertiary--background--active);
1143
+ color: var(--theme-btn-danger-tertiary--color--active);
1144
+ }
1145
+
1092
1146
  :host(.disabled) {
1093
1147
  pointer-events: none;
1094
1148
  }
@@ -187,6 +187,7 @@ export class Popover extends Mixin(...DefaultMixins, InheritAriaAttributesMixin,
187
187
  }
188
188
  }
189
189
  connectedCallback() {
190
+ super.connectedCallback();
190
191
  if (this.hasDisconnected) {
191
192
  popoverController.connected(this);
192
193
  void this.initializePopover();
@@ -208,6 +209,7 @@ export class Popover extends Mixin(...DefaultMixins, InheritAriaAttributesMixin,
208
209
  }
209
210
  }
210
211
  disconnectedCallback() {
212
+ super.disconnectedCallback();
211
213
  this.hasDisconnected = true;
212
214
  this.clearHideTimeout();
213
215
  this.disposeAutoUpdate?.();
@@ -670,7 +672,7 @@ export class Popover extends Mixin(...DefaultMixins, InheritAriaAttributesMixin,
670
672
  }
671
673
  }
672
674
  render() {
673
- return (h(Host, { key: 'd3950e6a33913834d9ac23937918ed2a119c339e', class: { visible: this.show }, "data-ix-popover": this.popoverPanelId }, h("dialog", { key: '5c2c659d9fbd6c8c6124e48ac23d0563a6a349dd', ref: this.dialogRef, id: this.popoverPanelId, class: "dialog", popover: "manual", inert: !this.show, ...this.inheritAriaAttributes, role: this.inheritAriaAttributes['role'] ?? 'dialog', onMouseEnter: () => this.onDialogMouseEnter(), onMouseLeave: () => this.onDialogMouseLeave() }, h("div", { key: '020ab467f0f869f890e99dfae2eb8882ec6b313c', class: "popover-container" }, h("div", { key: '6d765907691e15b9f37782c0b4c64e31bae5cf22', class: "popover-body" }, h("slot", { key: 'e1f14fa9be44cc63f15dbb3d3c8e75c0019646b0' })), this.hasSpike ? h("div", { class: "spike" }) : null))));
675
+ return (h(Host, { key: '800528be7326703a5fca61e0a03e90b3e6231905', class: { visible: this.show }, "data-ix-popover": this.popoverPanelId }, h("dialog", { key: 'a7b501ed22173801f1820b2ae1e47edd50d3a596', ref: this.dialogRef, id: this.popoverPanelId, class: "dialog", popover: "manual", inert: !this.show, ...this.inheritAriaAttributes, role: this.inheritAriaAttributes['role'] ?? 'dialog', onMouseEnter: () => this.onDialogMouseEnter(), onMouseLeave: () => this.onDialogMouseLeave() }, h("div", { key: '804589dd5243897bd9965abee685fcf0608b3398', class: "popover-container" }, h("div", { key: '0607a218729bd1715ee8eccf06f83cdd1938db8e', class: "popover-body" }, h("slot", { key: '481b1891c9a092597f2b483d3e8237821769d583' })), this.hasSpike ? h("div", { class: "spike" }) : null))));
674
676
  }
675
677
  static get is() { return "ix-popover"; }
676
678
  static get encapsulation() { return "shadow"; }
@@ -257,8 +257,9 @@ export async function expectPlacement(page, triggerSelector, popover, placement)
257
257
  await expect(async () => {
258
258
  const triggerBox = await page.locator(triggerSelector).boundingBox();
259
259
  const dialogBox = await getDialog(popover).boundingBox();
260
- expect(triggerBox).not.toBeNull();
261
- expect(dialogBox).not.toBeNull();
260
+ if (!triggerBox || !dialogBox) {
261
+ throw new Error('Expected trigger and popover dialog bounding boxes to exist');
262
+ }
262
263
  const tolerance = 24;
263
264
  if (placement === 'bottom') {
264
265
  expect(dialogBox.y).toBeGreaterThanOrEqual(triggerBox.y + triggerBox.height - tolerance);
@@ -956,7 +956,7 @@ export class Select extends Mixin(...DefaultMixins, ComponentIdMixin, AriaActive
956
956
  }
957
957
  updateAriaProxyListbox() {
958
958
  const ariaActiveDescendantHelper = this.hostElement.shadowRoot?.getElementById(`${this.hostId}-proxy-listbox`);
959
- if (this.focusableItems.length === 0) {
959
+ if (this.focusableItems.length === 0 || !ariaActiveDescendantHelper) {
960
960
  return;
961
961
  }
962
962
  updateFocusProxyList(ariaActiveDescendantHelper, this.focusableItems, (item, proxyElement) => {
@@ -987,18 +987,18 @@ export class Select extends Mixin(...DefaultMixins, ComponentIdMixin, AriaActive
987
987
  });
988
988
  }
989
989
  render() {
990
- return (h(Host, { key: '12f066e4fcda30b4df4420847adfed06fa6eb51e', id: this.getHostElementId(), class: {
990
+ return (h(Host, { key: 'a2ce9b8b0ae76c6d88cb59f34a6846370f835484', id: this.getHostElementId(), class: {
991
991
  readonly: this.readonly,
992
992
  disabled: this.disabled,
993
993
  'show-focus-outline': this.hasInputFocus && !this.dropdownItemsVisualFocused,
994
- }, tabIndex: this.disabled ? -1 : 0 }, h("ix-field-wrapper", { key: 'ef30284c6d2bfe8c67bd61222aa4908b4533f6eb', required: this.required, label: this.label, helperText: this.helperText, invalidText: this.invalidText, infoText: this.infoText, warningText: this.warningText, validText: this.validText, showTextAsTooltip: this.showTextAsTooltip, isInvalid: this.isInvalid, isValid: this.isValid, isInfo: this.isInfo, isWarning: this.isWarning, controlRef: this.inputRef }, h("div", { key: 'c28253243a825e85ef9ff8cc863ce407191f462d', class: {
994
+ }, tabIndex: this.disabled ? -1 : 0 }, h("ix-field-wrapper", { key: 'a9ffed67c87f60a01cbc6f8524369d4b0db0a445', required: this.required, label: this.label, helperText: this.helperText, invalidText: this.invalidText, infoText: this.infoText, warningText: this.warningText, validText: this.validText, showTextAsTooltip: this.showTextAsTooltip, isInvalid: this.isInvalid, isValid: this.isValid, isInfo: this.isInfo, isWarning: this.isWarning, controlRef: this.inputRef }, h("div", { key: '7692ac7e4522d7629e810090609fd870fa670bd7', class: {
995
995
  select: true,
996
996
  disabled: this.disabled,
997
997
  readonly: this.readonly,
998
998
  }, ref: (ref) => {
999
999
  this.dropdownAnchorRef(ref);
1000
1000
  this.dropdownWrapperRef(ref);
1001
- } }, h("div", { key: '841ae12c0dfbc999374644a4ec777f3de2c8e414', class: "input-container" }, h("div", { key: '46e892e8f13331dfb840f3f789dff9e0e94f7bf3', class: "chips", ref: this.chipsContainerRef }, this.isMultipleMode && this.renderMultipleModeChips(), h("div", { key: '3bf138f72a341dba37b522697ba357d8d735f0e2', class: "trigger" }, h("input", { key: '7630af0620fe089e9289794340a5a9a3571d877a', id: `${this.hostId}-input`, role: "combobox", "aria-controls": `${this.hostId}-proxy-listbox`, "aria-expanded": a11yBoolean(this.dropdownShow), "aria-autocomplete": "list", "aria-disabled": a11yBoolean(this.disabled), autocomplete: "off", "data-testid": "input", disabled: this.disabled, readOnly: this.readonly, required: this.required, type: "text", class: {
1001
+ } }, h("div", { key: '9ed9e05581b8079cb2c17c0d2ccc099af151b2d5', class: "input-container" }, h("div", { key: '66e7a4593c6e895e9b94704488fcac9531f6054a', class: "chips", ref: this.chipsContainerRef }, this.isMultipleMode && this.renderMultipleModeChips(), h("div", { key: 'c8a50e9f809602f22ebe950d26519e037c546068', class: "trigger" }, h("input", { key: 'beda6c6b5a4479a221a600e53c56842f0c2183ed', id: `${this.hostId}-input`, role: "combobox", "aria-controls": `${this.hostId}-proxy-listbox`, "aria-expanded": a11yBoolean(this.dropdownShow), "aria-autocomplete": "list", "aria-disabled": a11yBoolean(this.disabled), autocomplete: "off", "data-testid": "input", disabled: this.disabled, readOnly: this.readonly, required: this.required, type: "text", class: {
1002
1002
  'allow-clear': this.allowClear && !!this.selectedLabels?.length,
1003
1003
  }, placeholder: this.placeholderValue(), value: this.inputValue ?? '', ref: (ref) => {
1004
1004
  this.inputElement = ref;
@@ -1023,7 +1023,7 @@ export class Select extends Mixin(...DefaultMixins, ComponentIdMixin, AriaActive
1023
1023
  element.ariaHidden = 'true';
1024
1024
  }, "data-select-dropdown": true, key: "dropdown", class: { 'dropdown-visible': this.dropdownShow }, icon: this.dropdownShow
1025
1025
  ? iconChevronUpSmall
1026
- : iconChevronDownSmall, variant: "subtle-tertiary" }))))))), h("ix-dropdown", { key: '98815c0cc3ab87dea8cbba41b0285eef62ae3e50', id: `${this.hostId}-listbox`, keyboardActivationKeys: ['ArrowUp', 'ArrowDown'], keyboardItemTriggerKeys: ['Enter'], disableFocusTrap: true, focusHost: this.hostElement, ref: this.dropdownRef, show: this.dropdownShow, closeBehavior: this.isMultipleMode ? 'outside' : 'both', hidden: this.disabled || this.readonly, anchor: this.dropdownAnchorRef.waitForCurrent(), trigger: this.dropdownWrapperRef.waitForCurrent(), onShowChange: (event) => {
1026
+ : iconChevronDownSmall, variant: "subtle-tertiary" }))))))), h("ix-dropdown", { key: 'd51a5df17402acb7aa4181b2a986425868619720', id: `${this.hostId}-listbox`, keyboardActivationKeys: ['ArrowUp', 'ArrowDown'], keyboardItemTriggerKeys: ['Enter'], disableFocusTrap: true, focusHost: this.hostElement, ref: this.dropdownRef, show: this.dropdownShow, closeBehavior: this.isMultipleMode ? 'outside' : 'both', hidden: this.disabled || this.readonly, anchor: this.dropdownAnchorRef.waitForCurrent(), trigger: this.dropdownWrapperRef.waitForCurrent(), onShowChange: (event) => {
1027
1027
  if ((this.disabled || this.readonly) && event.detail) {
1028
1028
  event.preventDefault();
1029
1029
  }
@@ -1062,16 +1062,16 @@ export class Select extends Mixin(...DefaultMixins, ComponentIdMixin, AriaActive
1062
1062
  if (this.isSingleMode) {
1063
1063
  this.dropdownShow = false;
1064
1064
  }
1065
- } }, h("div", { key: '99bce854b460b54621001ae07fc9f36d10684df8', "aria-hidden": "true", class: {
1065
+ } }, h("div", { key: '2d84de2ab363ca2e8148f63b482d5814fe2bcf5f', "aria-hidden": "true", class: {
1066
1066
  'select-list-header': true,
1067
1067
  hidden: this.hideListHeader || this.isDropdownEmpty,
1068
- }, title: this.i18nSelectListHeader, onClick: (e) => e.preventDefault() }, this.i18nSelectListHeader), h("slot", { key: '49916fd0b14b1ff8a0b8f00cf2133c6f08c94a80', onSlotchange: () => {
1068
+ }, title: this.i18nSelectListHeader, onClick: (e) => e.preventDefault() }, this.i18nSelectListHeader), h("slot", { key: 'a2b0df2eaf8d74a7229f5564789aec20672ee038', onSlotchange: () => {
1069
1069
  this.updateSelection();
1070
- } }), h(FocusProxy, { key: 'f09bdadcc1c886ef78299322f3318eaf2ca0ccd2', hostId: this.hostId, otherProps: {
1070
+ } }), h(FocusProxy, { key: '51d97f6e697f9bfc591089bbd431a542988b80e6', hostId: this.hostId, otherProps: {
1071
1071
  'aria-hidden': a11yBoolean(!this.dropdownShow),
1072
1072
  'aria-multiselectable': a11yBoolean(this.isMultipleMode),
1073
1073
  hidden: this.disabled || this.readonly,
1074
- } }), this.isDropdownEmpty && !this.editable && (h("div", { key: '70c18c30db4dc6af1c84b6a4a81fbb133cf02a1b', class: "select-list-header" }, this.i18nNoMatches))), this.isMultipleMode &&
1074
+ } }), this.isDropdownEmpty && !this.editable && (h("div", { key: '7315bb1ce002a82d9d99c77a60b711f7430bb127', class: "select-list-header" }, this.i18nNoMatches))), this.isMultipleMode &&
1075
1075
  !this.shouldDisplayAllChip() &&
1076
1076
  this.hiddenChipValues.length > 0 &&
1077
1077
  this.renderOverflowDropdown()));
@@ -22,6 +22,9 @@ export class Tabs extends Mixin(...DefaultMixins, InheritAriaAttributesMixin) {
22
22
  super();
23
23
  }
24
24
  hostElement;
25
+ getIgnoredAriaAttributes() {
26
+ return ['role'];
27
+ }
25
28
  /**
26
29
  * Set tab items to small size
27
30
  */
@@ -96,12 +99,14 @@ export class Tabs extends Mixin(...DefaultMixins, InheritAriaAttributesMixin) {
96
99
  this.onComponentResize();
97
100
  }
98
101
  componentWillLoad() {
102
+ super.componentWillLoad();
99
103
  this.onComponentChildrenChange();
100
104
  if (this.activeTabKey) {
101
105
  this.setTabActive(this.activeTabKey);
102
106
  }
103
107
  }
104
108
  disconnectedCallback() {
109
+ super.disconnectedCallback();
105
110
  if (this.resizeObserver) {
106
111
  this.resizeObserver.disconnect();
107
112
  }
@@ -230,19 +235,19 @@ export class Tabs extends Mixin(...DefaultMixins, InheritAriaAttributesMixin) {
230
235
  }
231
236
  }
232
237
  render() {
233
- return (h(Host, { key: '59be7687531f1e2c2196232dbe2ae5a874481b3a', onTabClick: (event) => this.onTabClick(event), class: {
238
+ return (h(Host, { key: '5554f09b7834c47e4c1890100ed750b15d6858d8', onTabClick: (event) => this.onTabClick(event), class: {
234
239
  small: this.small,
235
- } }, h("div", { key: '55697ae33bb24e020417996ef311fe1863e87047', ref: this.tabsContainerRef, class: {
240
+ } }, h("div", { key: 'b076db8284d73f8659cdf2932594133c655d695d', ref: this.tabsContainerRef, class: {
236
241
  'tabs-container': true,
237
242
  top: this.placement === 'top',
238
243
  bottom: this.placement === 'bottom',
239
- } }, h("div", { key: '0e1296872121e4951b16df684877246fa21f6e0f', class: {
244
+ } }, h("div", { key: '73fa1a3e4ad9b30b6a8a47f8a74a7b44267ae328', class: {
240
245
  'overflow-shadow-container': true,
241
246
  'overflow-shadow': this.isTabsOverflow,
242
- } }, h("div", { key: 'afd9c8c5173ac2030476892b0dd79bcccef46f57', role: "tablist", ...this.inheritAriaAttributes, ref: this.tabsRef, class: {
247
+ } }, h("div", { key: '2defca0131e7c714e619f70265d5775d8aebf553', role: "tablist", ...this.inheritAriaAttributes, ref: this.tabsRef, class: {
243
248
  tabs: true,
244
249
  'tabs-stretched': this.layout === 'stretched',
245
- }, tabIndex: this.isTabsOverflow ? 0 : -1, onKeyDown: (event) => this.onTabsNavigate(event) }, h("slot", { key: '73ab7f836156f9eb8e32ef0c0ce1f153e32e2936' }))), this.isTabsOverflow && this.layout !== 'stretched' && (h("ix-dropdown-button", { key: 'cae99e1f6e20e6004d853aff98af0032e53730f3', ariaLabel: this.ariaLabelMoreTabs, icon: iconMoreMenu, class: {
250
+ }, tabIndex: this.isTabsOverflow ? 0 : -1, onKeyDown: (event) => this.onTabsNavigate(event) }, h("slot", { key: '3684ddc5023e0553ab0175150692256fc3109006' }))), this.isTabsOverflow && this.layout !== 'stretched' && (h("ix-dropdown-button", { key: '6827cbb9086793efd0f496f8ba81f81eba5266e9', ariaLabel: this.ariaLabelMoreTabs, icon: iconMoreMenu, class: {
246
251
  'tabs-context-menu': true,
247
252
  }, variant: "subtle-tertiary" }, this.overflowMenuItems.map((item) => (h("ix-dropdown-item", { key: item.tabKey, checked: item.tabKey === this.activeTabKey, icon: item.icon, label: item.label, disabled: item.disabled, onClick: () => (this.activeTabKey = item.tabKey) }))))))));
248
253
  }
@@ -0,0 +1,13 @@
1
+ /*
2
+ * SPDX-FileCopyrightText: 2026 Siemens AG
3
+ *
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import { expect } from "vitest";
7
+ export function expectDefined(value) {
8
+ expect(value).toBeDefined();
9
+ if (value === null || value === undefined) {
10
+ throw new Error('Expected value to be defined');
11
+ }
12
+ return value;
13
+ }
@@ -846,7 +846,7 @@ export class TimePicker extends Mixin(...DefaultMixins) {
846
846
  }
847
847
  render() {
848
848
  const { bounds } = this.getUnitSelectionContext();
849
- return (h(Host, { key: '26fc55b40e07bde5fff6a21502925a88aa1eaf14' }, h("ix-date-time-card", { key: 'e6d72d2e2762ea0a67e69fcae8d89a49fd6bc6ec', embedded: this.embedded, timePickerAppearance: true, corners: this.corners, hasFooter: !this.dateTimePickerAppearance, hideHeader: this.hideHeader }, h("div", { key: 'de11595ccaeef7d0372d6af2c3e72ded18ed03d9', class: "header", slot: "header" }, h("ix-typography", { key: 'b001917ac3090679081c49852b2610adc381403f', format: "body" }, this.i18nHeader)), h("div", { key: '9bf75682fe81bf9a5c8bc668a533083d41776690', class: "clock" }, this.timePickerDescriptors.map((descriptor, index) => {
849
+ return (h(Host, { key: '843508f1f761b09aa9f804d8508f073fc4e456c2' }, h("ix-date-time-card", { key: '5bd462965737df20d1bfaafb6fe909f9072e172f', embedded: this.embedded, timePickerAppearance: true, corners: this.corners, hasFooter: !this.dateTimePickerAppearance, hideHeader: this.hideHeader }, h("div", { key: '0a4753c97c668bbea0bf08fbc6ede9be9c7fec00', class: "header", slot: "header" }, h("ix-typography", { key: 'f16526b69e956e416f7cb71192ce59f8cacf757c', format: "body" }, this.i18nHeader)), h("div", { key: '18c828b4355fd21ad48bf0fccc485437eb99bcec', class: "clock" }, this.timePickerDescriptors.map((descriptor, index) => {
850
850
  return (h("div", { class: "flex" }, h("div", { class: { columns: true, hidden: descriptor.hidden }, hidden: descriptor.hidden }, h("div", { class: "column-header", title: descriptor.header }, descriptor.header), h("div", { role: "listbox", "aria-label": descriptor.header, "data-element-list-id": descriptor.unit, class: "element-list", tabindex: -1 }, descriptor.numberArray.map((number) => {
851
851
  const cellTabIndex = this.getUnitCellTabIndex(descriptor.unit, number);
852
852
  const disabled = !this.canSelectUnitValue(descriptor.unit, number, bounds, this.buildCandidateBaseBeforeUnit(descriptor.unit));
@@ -862,16 +862,16 @@ export class TimePicker extends Mixin(...DefaultMixins) {
862
862
  'column-separator': true,
863
863
  hidden: descriptor.hidden,
864
864
  } }, this.getColumnSeparator(index)))));
865
- }), this.timeRef && (h("div", { key: '7d7a125d05231b0dc38d168308210ea6cd0aa5c9', class: "flex" }, h("div", { key: 'b3a8870552cbb4b665f63413a97bd5c4a82b1335', class: "column-separator" }), h("div", { key: '33e8cc862740c6348b7056acf33d62636136b4b4', class: "columns" }, h("div", { key: 'eb8a24da30e71e94d1a10528a2bc2e4e04529680', class: "column-header", title: "AM/PM" }), h("div", { key: '54ab57b53a21734900b856f6a98f59f8ed7ca789', role: "listbox", "aria-label": "AM/PM", class: "element-list", tabindex: -1 }, h("button", { key: '7dfd20d6f16bc1f5c2ed9c2b72589289b34b7207', role: "option", "aria-selected": this.timeRef === 'AM' ? 'true' : 'false', "data-am-pm-id": "AM", class: {
865
+ }), this.timeRef && (h("div", { key: '7ad04e4572dd11cc77509e5782364052811089d0', class: "flex" }, h("div", { key: 'd6b423fd2cd5c3b238504f951374d0b9b6435909', class: "column-separator" }), h("div", { key: 'f74cab2bcf22852af1b2f7a705ef8726bb779040', class: "columns" }, h("div", { key: '9e8f74e738d9dd95df814329a0e09b49633d2343', class: "column-header", title: "AM/PM" }), h("div", { key: '57cd6b520883953a66cddf6ab9ba486e0b32512a', role: "listbox", "aria-label": "AM/PM", class: "element-list", tabindex: -1 }, h("button", { key: '9486d0c81c91a235e1c9204afcbc794db7f063fe', role: "option", "aria-selected": this.timeRef === 'AM' ? 'true' : 'false', "data-am-pm-id": "AM", class: {
866
866
  selected: this.timeRef === 'AM',
867
867
  'element-container': true,
868
- }, onClick: () => this.changeTimeReference('AM'), tabindex: "0", "aria-label": "AM" }, "AM"), h("button", { key: 'd6fee9560179caa7050fdb1add2d8b558e87d890', role: "option", "aria-selected": this.timeRef === 'PM' ? 'true' : 'false', "data-am-pm-id": "PM", class: {
868
+ }, onClick: () => this.changeTimeReference('AM'), tabindex: "0", "aria-label": "AM" }, "AM"), h("button", { key: '90602f7ec60c50c8d4edec394de2d205f506ed6d', role: "option", "aria-selected": this.timeRef === 'PM' ? 'true' : 'false', "data-am-pm-id": "PM", class: {
869
869
  selected: this.timeRef === 'PM',
870
870
  'element-container': true,
871
- }, onClick: () => this.changeTimeReference('PM'), tabindex: "0", "aria-label": "PM" }, "PM")))))), h("div", { key: '4544617138a6372ac583b62113f5be2a98550f8c', class: {
871
+ }, onClick: () => this.changeTimeReference('PM'), tabindex: "0", "aria-label": "PM" }, "PM")))))), h("div", { key: '73907cc1c7cdf44a249ea2557d14e1a61f4f66ea', class: {
872
872
  footer: true,
873
873
  'footer--compact': this.timePickerDescriptors.length <= 2,
874
- }, slot: "footer" }, h("ix-button", { key: '21b4ad3eb7e3ad466d1f4e8f1e7975df27bddc6e', class: "confirm-button", disabled: this.isConfirmDisabled(), onClick: () => {
874
+ }, slot: "footer" }, h("ix-button", { key: 'b2c32715f3a41323314f0da0f0b89c5e98f81dd4', class: "confirm-button", disabled: this.isConfirmDisabled(), onClick: () => {
875
875
  this.timeSelect.emit(this._time?.toFormat(this.format));
876
876
  } }, this.i18nConfirmTime)))));
877
877
  }
@@ -353,6 +353,12 @@
353
353
  color: var(--theme-btn-primary--color--active);
354
354
  }
355
355
 
356
+ :host(.active:not(.disabled)) .btn-primary:not(.disabled):not(:disabled) {
357
+ border-color: var(--theme-btn-primary--border-color--active);
358
+ background-color: var(--theme-btn-primary--background--active);
359
+ color: var(--theme-btn-primary--color--active);
360
+ }
361
+
356
362
  :host(.disabled) {
357
363
  pointer-events: none;
358
364
  }
@@ -415,6 +421,12 @@
415
421
  color: var(--theme-btn-secondary--color--active);
416
422
  }
417
423
 
424
+ :host(.active:not(.disabled)) .btn-secondary:not(.disabled):not(:disabled) {
425
+ border-color: var(--theme-btn-secondary--border-color--active);
426
+ background-color: var(--theme-btn-secondary--background--active);
427
+ color: var(--theme-btn-secondary--color--active);
428
+ }
429
+
418
430
  :host(.disabled) {
419
431
  pointer-events: none;
420
432
  }
@@ -477,6 +489,12 @@
477
489
  color: var(--theme-btn-tertiary--color--active);
478
490
  }
479
491
 
492
+ :host(.active:not(.disabled)) .btn-tertiary:not(.disabled):not(:disabled) {
493
+ border-color: var(--theme-btn-tertiary--border-color--active);
494
+ background-color: var(--theme-btn-tertiary--background--active);
495
+ color: var(--theme-btn-tertiary--color--active);
496
+ }
497
+
480
498
  :host(.disabled) {
481
499
  pointer-events: none;
482
500
  }
@@ -539,6 +557,12 @@
539
557
  color: var(--theme-btn-subtle-primary--color--active);
540
558
  }
541
559
 
560
+ :host(.active:not(.disabled)) .btn-subtle-primary:not(.disabled):not(:disabled) {
561
+ border-color: var(--theme-btn-subtle-primary--border-color--active);
562
+ background-color: var(--theme-btn-subtle-primary--background--active);
563
+ color: var(--theme-btn-subtle-primary--color--active);
564
+ }
565
+
542
566
  :host(.disabled) {
543
567
  pointer-events: none;
544
568
  }
@@ -601,6 +625,12 @@
601
625
  color: var(--theme-btn-subtle-secondary--color--active);
602
626
  }
603
627
 
628
+ :host(.active:not(.disabled)) .btn-subtle-secondary:not(.disabled):not(:disabled) {
629
+ border-color: var(--theme-btn-subtle-secondary--border-color--active);
630
+ background-color: var(--theme-btn-subtle-secondary--background--active);
631
+ color: var(--theme-btn-subtle-secondary--color--active);
632
+ }
633
+
604
634
  :host(.disabled) {
605
635
  pointer-events: none;
606
636
  }
@@ -663,6 +693,12 @@
663
693
  color: var(--theme-btn-subtle-tertiary--color--active);
664
694
  }
665
695
 
696
+ :host(.active:not(.disabled)) .btn-subtle-tertiary:not(.disabled):not(:disabled) {
697
+ border-color: var(--theme-btn-subtle-tertiary--border-color--active);
698
+ background-color: var(--theme-btn-subtle-tertiary--background--active);
699
+ color: var(--theme-btn-subtle-tertiary--color--active);
700
+ }
701
+
666
702
  :host(.disabled) {
667
703
  pointer-events: none;
668
704
  }
@@ -725,6 +761,12 @@
725
761
  color: var(--theme-btn-danger-primary--color--active);
726
762
  }
727
763
 
764
+ :host(.active:not(.disabled)) .btn-danger-primary:not(.disabled):not(:disabled) {
765
+ border-color: var(--theme-btn-danger-primary--border-color--active);
766
+ background-color: var(--theme-btn-danger-primary--background--active);
767
+ color: var(--theme-btn-danger-primary--color--active);
768
+ }
769
+
728
770
  :host(.disabled) {
729
771
  pointer-events: none;
730
772
  }
@@ -787,6 +829,12 @@
787
829
  color: var(--theme-btn-danger-secondary--color--active);
788
830
  }
789
831
 
832
+ :host(.active:not(.disabled)) .btn-danger-secondary:not(.disabled):not(:disabled) {
833
+ border-color: var(--theme-btn-danger-secondary--border-color--active);
834
+ background-color: var(--theme-btn-danger-secondary--background--active);
835
+ color: var(--theme-btn-danger-secondary--color--active);
836
+ }
837
+
790
838
  :host(.disabled) {
791
839
  pointer-events: none;
792
840
  }
@@ -849,6 +897,12 @@
849
897
  color: var(--theme-btn-danger-tertiary--color--active);
850
898
  }
851
899
 
900
+ :host(.active:not(.disabled)) .btn-danger-tertiary:not(.disabled):not(:disabled) {
901
+ border-color: var(--theme-btn-danger-tertiary--border-color--active);
902
+ background-color: var(--theme-btn-danger-tertiary--background--active);
903
+ color: var(--theme-btn-danger-tertiary--color--active);
904
+ }
905
+
852
906
  :host(.disabled) {
853
907
  pointer-events: none;
854
908
  }
@@ -101,7 +101,11 @@ export class Tooltip {
101
101
  }
102
102
  }
103
103
  computeArrowPosition({ placement, middlewareData, }) {
104
- let { x, y } = middlewareData.arrow;
104
+ const arrow = middlewareData.arrow;
105
+ if (!arrow) {
106
+ return undefined;
107
+ }
108
+ let { x, y } = arrow;
105
109
  const resetPosition = {
106
110
  top: 'unset',
107
111
  right: 'unset',
@@ -369,7 +373,7 @@ export class Tooltip {
369
373
  }
370
374
  }
371
375
  render() {
372
- return (h(Host, { key: '59edeeb4c78daf4679cb73e1639781e2df1d57c0', role: "tooltip", class: { visible: this.visible } }, h("dialog", { key: 'c1e5d1fcddb87609654c945e42b04379a94cae79', ref: this.dialogRef, id: 'tooltip-' + this.instance, class: "dialog", popover: "manual", inert: !this.visible }, h("div", { key: '3e24a73fb904b4a8861322e84a97ed72234c672c', class: "tooltip-container" }, h("div", { key: 'aa68b5bbe623e094fa5311ee19dbd96090776779', class: "content-wrapper" }, h("div", { key: 'c3304e93fc6fa38c3f31ebf3773054247bfa1c61', class: 'tooltip-title' }, h("slot", { key: '5859428cdc8a2502930760a2cb8491ba506200e0', name: "title-icon", onSlotchange: (e) => this.handleTitleIconSlotChange(e) }), h("ix-typography", { key: 'dcb18580a59c5cf0200b89d176e8ca56fca98b24', format: "h5" }, this.titleContent, h("slot", { key: 'b495bec36b40b39538f54aeee58591b3815e3cf6', name: "title-content" }))), h("slot", { key: '59970a04ae9909460aeb2c4f9a515ed1ce7b2863' }), h("div", { key: 'ff994a212b5b355ed18a002f2e8aaadaaae09b1b', class: "arrow" }))))));
376
+ return (h(Host, { key: 'fe826b9faedc373c7ed059d063cc0f41fbfc6178', role: "tooltip", class: { visible: this.visible } }, h("dialog", { key: '4c3615e531e598ca3bfb71f5d96d0c510d14a18f', ref: this.dialogRef, id: 'tooltip-' + this.instance, class: "dialog", popover: "manual", inert: !this.visible }, h("div", { key: 'd9b77b657d7c96525f12bc0c357f37be745b0df2', class: "tooltip-container" }, h("div", { key: '3226301a8e9a91c6ca0d9e7a1268357c94885461', class: "content-wrapper" }, h("div", { key: '224fd0e67de09fc486e02bf2d1023d7ed0fce25a', class: 'tooltip-title' }, h("slot", { key: '16c48a015cd22857dbe43ff941a6a380e14b89dc', name: "title-icon", onSlotchange: (e) => this.handleTitleIconSlotChange(e) }), h("ix-typography", { key: 'ef2a7d59693e79d1a40ed44705841af6101e9949', format: "h5" }, this.titleContent, h("slot", { key: '64f1d0ab84cbbf75067447c123e6a970d2e06545', name: "title-content" }))), h("slot", { key: 'fd235ecbcd9862169fb6f825d6260f817b30d073' }), h("div", { key: 'be5d8640b05978f23a4ccab0271262dbbe712890', class: "arrow" }))))));
373
377
  }
374
378
  static get is() { return "ix-tooltip"; }
375
379
  static get encapsulation() { return "shadow"; }
@@ -57,7 +57,7 @@ export const a11yHostAttributes = (hostElement, ignoreAttributes = []) => {
57
57
  });
58
58
  return attributeObject;
59
59
  };
60
- const a11yAttributes = [
60
+ export const a11yAttributes = [
61
61
  'role',
62
62
  'aria-activedescendant',
63
63
  'aria-atomic',
@@ -22,11 +22,11 @@ export default class Animation {
22
22
  }
23
23
  static ensureCache() {
24
24
  if (this.#cache !== null)
25
- return;
25
+ return this.#cache;
26
26
  if (typeof window === 'undefined') {
27
27
  // SSR only
28
28
  this.#cache = { ...this.#FALLBACKS };
29
- return;
29
+ return this.#cache;
30
30
  }
31
31
  const root = document.documentElement || document.body;
32
32
  const styles = window.getComputedStyle(root);
@@ -43,6 +43,7 @@ export default class Animation {
43
43
  slow: read('--theme-slow-time', this.#FALLBACKS.slow),
44
44
  xslow: read('--theme-x-slow-time', this.#FALLBACKS.xslow),
45
45
  };
46
+ return this.#cache;
46
47
  }
47
48
  static prefersReducedMotion() {
48
49
  if (typeof window === 'undefined' || !window.matchMedia)
@@ -50,28 +51,23 @@ export default class Animation {
50
51
  return window.matchMedia('(prefers-reduced-motion: reduce)').matches;
51
52
  }
52
53
  static get shortTime() {
53
- this.ensureCache();
54
- const t = this.#cache.short;
54
+ const t = this.ensureCache().short;
55
55
  return this.prefersReducedMotion() ? 0 : t;
56
56
  }
57
57
  static get defaultTime() {
58
- this.ensureCache();
59
- const t = this.#cache.default;
58
+ const t = this.ensureCache().default;
60
59
  return this.prefersReducedMotion() ? 0 : t;
61
60
  }
62
61
  static get mediumTime() {
63
- this.ensureCache();
64
- const t = this.#cache.medium;
62
+ const t = this.ensureCache().medium;
65
63
  return this.prefersReducedMotion() ? 0 : t;
66
64
  }
67
65
  static get slowTime() {
68
- this.ensureCache();
69
- const t = this.#cache.slow;
66
+ const t = this.ensureCache().slow;
70
67
  return this.prefersReducedMotion() ? 0 : t;
71
68
  }
72
69
  static get xSlowTime() {
73
- this.ensureCache();
74
- const t = this.#cache.xslow;
70
+ const t = this.ensureCache().xslow;
75
71
  return this.prefersReducedMotion() ? 0 : t;
76
72
  }
77
73
  }
@@ -0,0 +1,106 @@
1
+ /*
2
+ * SPDX-FileCopyrightText: 2026 Siemens AG
3
+ *
4
+ * SPDX-License-Identifier: MIT
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */
9
+ import { a11yAttributes } from "./../../../a11y";
10
+ const reportMutationError = (error) => {
11
+ if (typeof reportError === 'function') {
12
+ reportError(error);
13
+ return;
14
+ }
15
+ console.error(error);
16
+ };
17
+ // A MutationObserver can watch many direct targets and keeps only weak references
18
+ // to them, so all IX hosts can share one observer without observing a whole subtree.
19
+ const registrations = new WeakMap();
20
+ const suppressedHosts = new WeakSet();
21
+ let observer;
22
+ let registrationCount = 0;
23
+ const dispatchMutations = (mutations) => {
24
+ const changesByHandler = new Map();
25
+ mutations.forEach((mutation) => {
26
+ const hostElement = mutation.target;
27
+ if (suppressedHosts.has(hostElement)) {
28
+ return;
29
+ }
30
+ const registration = registrations.get(hostElement);
31
+ const attributeName = mutation.attributeName;
32
+ if (!registration || !attributeName) {
33
+ return;
34
+ }
35
+ let changedAttributes = changesByHandler.get(registration.handler);
36
+ if (!changedAttributes) {
37
+ changedAttributes = new Set();
38
+ changesByHandler.set(registration.handler, changedAttributes);
39
+ }
40
+ changedAttributes.add(attributeName);
41
+ });
42
+ changesByHandler.forEach((attributeNames, handler) => {
43
+ try {
44
+ handler(attributeNames);
45
+ }
46
+ catch (error) {
47
+ reportMutationError(error);
48
+ }
49
+ });
50
+ };
51
+ const getObserver = () => {
52
+ if (typeof MutationObserver === 'undefined') {
53
+ return undefined;
54
+ }
55
+ observer ??= new MutationObserver(dispatchMutations);
56
+ return observer;
57
+ };
58
+ export const observeAriaAttributes = (hostElement, handler) => {
59
+ const ariaObserver = getObserver();
60
+ if (!ariaObserver) {
61
+ return false;
62
+ }
63
+ if (!registrations.has(hostElement)) {
64
+ registrationCount++;
65
+ }
66
+ registrations.set(hostElement, { handler });
67
+ ariaObserver.observe(hostElement, {
68
+ attributeFilter: a11yAttributes,
69
+ attributes: true,
70
+ });
71
+ return true;
72
+ };
73
+ export const unobserveAriaAttributes = (hostElement) => {
74
+ if (!registrations.delete(hostElement)) {
75
+ return;
76
+ }
77
+ registrationCount--;
78
+ if (registrationCount === 0) {
79
+ observer?.disconnect();
80
+ observer = undefined;
81
+ }
82
+ };
83
+ export const runWithoutAriaAttributeObservation = (hostElement, callback) => {
84
+ const registration = registrations.get(hostElement);
85
+ if (!registration || !observer) {
86
+ return callback();
87
+ }
88
+ const activeObserver = observer;
89
+ dispatchMutations(activeObserver.takeRecords(), activeObserver);
90
+ suppressedHosts.add(hostElement);
91
+ try {
92
+ return callback();
93
+ }
94
+ finally {
95
+ const remainingMutations = activeObserver
96
+ .takeRecords()
97
+ .filter((mutation) => mutation.target !== hostElement);
98
+ suppressedHosts.delete(hostElement);
99
+ dispatchMutations(remainingMutations, activeObserver);
100
+ }
101
+ };
102
+ export const flushAriaAttributeMutations = () => {
103
+ if (observer) {
104
+ dispatchMutations(observer.takeRecords(), observer);
105
+ }
106
+ };