@siemens/ix 2.4.1 → 2.5.0

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 (830) hide show
  1. package/components/a11y.js +1 -1
  2. package/components/a11y.js.map +1 -1
  3. package/components/application-header.js +37 -7
  4. package/components/application-header.js.map +1 -1
  5. package/components/card-accordion.js +1 -1
  6. package/components/card-accordion.js.map +1 -1
  7. package/components/card-content.js +1 -1
  8. package/components/card-title.js +1 -1
  9. package/components/card.js +3 -3
  10. package/components/card.js.map +1 -1
  11. package/components/col.js.map +1 -1
  12. package/components/context.js +1 -1
  13. package/components/context.js.map +1 -1
  14. package/components/divider.js +1 -1
  15. package/components/dropdown-controller.js +140 -0
  16. package/components/dropdown-controller.js.map +1 -0
  17. package/components/dropdown-item.js +4 -4
  18. package/components/dropdown-item.js.map +1 -1
  19. package/components/dropdown.js +5 -141
  20. package/components/dropdown.js.map +1 -1
  21. package/components/filter-chip.js +1 -1
  22. package/components/floating-ui.dom.esm.js +533 -60
  23. package/components/floating-ui.dom.esm.js.map +1 -1
  24. package/components/group-context-menu.js +1 -1
  25. package/components/group-context-menu.js.map +1 -1
  26. package/components/group-item.js +2 -2
  27. package/components/index.js +1 -0
  28. package/components/index.js.map +1 -1
  29. package/components/ix-action-card.js +1 -1
  30. package/components/ix-action-card.js.map +1 -1
  31. package/components/ix-application-sidebar.js +1 -1
  32. package/components/ix-application-switch-modal.js +1 -1
  33. package/components/ix-application.js +2 -2
  34. package/components/ix-application.js.map +1 -1
  35. package/components/ix-basic-navigation.js +2 -2
  36. package/components/ix-basic-navigation.js.map +1 -1
  37. package/components/ix-blind.js.map +1 -1
  38. package/components/ix-breadcrumb.js +2 -2
  39. package/components/ix-card-list.js +6 -6
  40. package/components/ix-card-list.js.map +1 -1
  41. package/components/ix-category-filter.js +8 -4
  42. package/components/ix-category-filter.js.map +1 -1
  43. package/components/ix-chip.js +4 -4
  44. package/components/ix-chip.js.map +1 -1
  45. package/components/ix-content.js +3 -3
  46. package/components/ix-css-grid-item.js +1 -1
  47. package/components/ix-drawer.js +2 -2
  48. package/components/ix-dropdown-header.js +1 -1
  49. package/components/ix-dropdown-quick-actions.js +1 -1
  50. package/components/ix-event-list-item.js +4 -4
  51. package/components/ix-event-list.js +2 -2
  52. package/components/ix-expanding-search.js +4 -4
  53. package/components/ix-flip-tile-content.js +1 -1
  54. package/components/ix-flip-tile.js +4 -4
  55. package/components/ix-form-field.js +1 -1
  56. package/components/ix-group.js +58 -38
  57. package/components/ix-group.js.map +1 -1
  58. package/components/ix-icon-toggle-button.js +1 -1
  59. package/components/ix-input-group.js +1 -1
  60. package/components/ix-key-value-list.js +1 -1
  61. package/components/ix-kpi.js +3 -3
  62. package/components/ix-kpi.js.map +1 -1
  63. package/components/ix-link-button.js +3 -3
  64. package/components/ix-map-navigation.js +3 -3
  65. package/components/ix-map-navigation.js.map +1 -1
  66. package/components/ix-menu-about-item.js +1 -1
  67. package/components/ix-menu-about-news.js +4 -4
  68. package/components/ix-menu-avatar.js +2 -2
  69. package/components/ix-menu-category.js +5 -5
  70. package/components/ix-menu-settings-item.js +1 -1
  71. package/components/ix-menu.js +12 -12
  72. package/components/ix-menu.js.map +1 -1
  73. package/components/ix-message-bar.js +1 -1
  74. package/components/ix-modal-example.js +1 -1
  75. package/components/ix-modal-footer.js +2 -2
  76. package/components/ix-modal-footer.js.map +1 -1
  77. package/components/ix-modal-loading.js +1 -1
  78. package/components/ix-modal.js +1 -1
  79. package/components/ix-modal.js.map +1 -1
  80. package/components/ix-pagination.js +2 -2
  81. package/components/ix-pane-layout.js +1 -1
  82. package/components/ix-pane.js.map +1 -1
  83. package/components/ix-pill.js +4 -4
  84. package/components/ix-pill.js.map +1 -1
  85. package/components/ix-playground-internal.js +1 -1
  86. package/components/ix-playground-internal.js.map +1 -1
  87. package/components/ix-push-card.js +1 -1
  88. package/components/ix-push-card.js.map +1 -1
  89. package/components/ix-split-button-item.js +1 -1
  90. package/components/ix-tile.js +4 -4
  91. package/components/ix-tile.js.map +1 -1
  92. package/components/ix-toast-container.js.map +1 -1
  93. package/components/ix-toggle-button.js +2 -2
  94. package/components/ix-toggle.js +2 -2
  95. package/components/ix-tree.js +21 -7
  96. package/components/ix-tree.js.map +1 -1
  97. package/components/ix-upload.js +3 -3
  98. package/components/ix-upload.js.map +1 -1
  99. package/components/ix-validation-tooltip.js +2 -2
  100. package/components/ix-workflow-step.js +3 -3
  101. package/components/ix-workflow-step.js.map +1 -1
  102. package/components/ix-workflow-steps.js +1 -1
  103. package/components/ix-workflow-steps.js.map +1 -1
  104. package/components/layout-grid.js +2 -2
  105. package/components/layout-grid.js.map +1 -1
  106. package/components/listener.js +1 -1
  107. package/components/listener.js.map +1 -1
  108. package/components/logical-filter-operator.js +1 -1
  109. package/components/logical-filter-operator.js.map +1 -1
  110. package/components/map-navigation-overlay.js +2 -2
  111. package/components/menu-avatar-item.js +1 -1
  112. package/components/menu-expand-icon.js +1 -1
  113. package/components/menu-expand-icon.js.map +1 -1
  114. package/components/menu-item.js +14 -14
  115. package/components/menu-item.js.map +1 -1
  116. package/components/modal-content.js +1 -1
  117. package/components/modal-content.js.map +1 -1
  118. package/components/modal-header.js +1 -1
  119. package/components/modal-header.js.map +1 -1
  120. package/components/row.js +1 -1
  121. package/components/row.js.map +1 -1
  122. package/components/select-item.js +1 -1
  123. package/components/select.js +27 -30
  124. package/components/select.js.map +1 -1
  125. package/components/shadow-dom.js +1 -1
  126. package/components/shadow-dom.js.map +1 -1
  127. package/components/spinner.js +1 -1
  128. package/components/tabs.js +2 -2
  129. package/components/tabs.js.map +1 -1
  130. package/components/toast.js +2 -2
  131. package/components/toast.js.map +1 -1
  132. package/components/tooltip.js +22 -20
  133. package/components/tooltip.js.map +1 -1
  134. package/components/tree-item.js +8 -8
  135. package/components/tree-item.js.map +1 -1
  136. package/dist/cjs/{a11y-d3ce56d1.js → a11y-eba397e8.js} +2 -2
  137. package/dist/cjs/{a11y-d3ce56d1.js.map → a11y-eba397e8.js.map} +1 -1
  138. package/dist/cjs/{context-98f4a0b3.js → context-938f7470.js} +2 -2
  139. package/dist/cjs/{context-98f4a0b3.js.map → context-938f7470.js.map} +1 -1
  140. package/dist/cjs/dropdown-controller-5ef3d018.js +144 -0
  141. package/dist/cjs/dropdown-controller-5ef3d018.js.map +1 -0
  142. package/dist/cjs/{floating-ui.dom.esm-94b4d17c.js → floating-ui.dom.esm-9dde6cd6.js} +534 -60
  143. package/dist/cjs/floating-ui.dom.esm-9dde6cd6.js.map +1 -0
  144. package/dist/cjs/index.cjs.js +3 -2
  145. package/dist/cjs/index.cjs.js.map +1 -1
  146. package/dist/cjs/ix-action-card.cjs.entry.js +1 -1
  147. package/dist/cjs/ix-action-card.cjs.entry.js.map +1 -1
  148. package/dist/cjs/ix-application-header.cjs.entry.js +34 -8
  149. package/dist/cjs/ix-application-header.cjs.entry.js.map +1 -1
  150. package/dist/cjs/ix-application-sidebar.cjs.entry.js +1 -1
  151. package/dist/cjs/ix-application-switch-modal.cjs.entry.js +1 -1
  152. package/dist/cjs/ix-application.cjs.entry.js +4 -4
  153. package/dist/cjs/ix-application.cjs.entry.js.map +1 -1
  154. package/dist/cjs/ix-avatar_2.cjs.entry.js +2 -2
  155. package/dist/cjs/ix-basic-navigation.cjs.entry.js +3 -3
  156. package/dist/cjs/ix-basic-navigation.cjs.entry.js.map +1 -1
  157. package/dist/cjs/ix-blind.cjs.entry.js +1 -1
  158. package/dist/cjs/ix-blind.cjs.entry.js.map +1 -1
  159. package/dist/cjs/ix-breadcrumb-item.cjs.entry.js +1 -1
  160. package/dist/cjs/ix-breadcrumb.cjs.entry.js +3 -3
  161. package/dist/cjs/ix-card-accordion_2.cjs.entry.js +2 -2
  162. package/dist/cjs/ix-card-accordion_2.cjs.entry.js.map +1 -1
  163. package/dist/cjs/ix-card-list.cjs.entry.js +6 -6
  164. package/dist/cjs/ix-card-list.cjs.entry.js.map +1 -1
  165. package/dist/cjs/ix-card_2.cjs.entry.js +4 -4
  166. package/dist/cjs/ix-card_2.cjs.entry.js.map +1 -1
  167. package/dist/cjs/ix-category-filter.cjs.entry.js +9 -5
  168. package/dist/cjs/ix-category-filter.cjs.entry.js.map +1 -1
  169. package/dist/cjs/ix-chip.cjs.entry.js +4 -4
  170. package/dist/cjs/ix-chip.cjs.entry.js.map +1 -1
  171. package/dist/cjs/ix-col_4.cjs.entry.js +4 -4
  172. package/dist/cjs/ix-col_4.cjs.entry.js.map +1 -1
  173. package/dist/cjs/ix-content.cjs.entry.js +4 -4
  174. package/dist/cjs/ix-css-grid-item.cjs.entry.js +1 -1
  175. package/dist/cjs/ix-divider.cjs.entry.js +1 -1
  176. package/dist/cjs/ix-drawer.cjs.entry.js +2 -2
  177. package/dist/cjs/ix-dropdown-header.cjs.entry.js +1 -1
  178. package/dist/cjs/ix-dropdown-item.cjs.entry.js +4 -4
  179. package/dist/cjs/ix-dropdown-item.cjs.entry.js.map +1 -1
  180. package/dist/cjs/ix-dropdown-quick-actions.cjs.entry.js +1 -1
  181. package/dist/cjs/ix-dropdown.cjs.entry.js +18 -154
  182. package/dist/cjs/ix-dropdown.cjs.entry.js.map +1 -1
  183. package/dist/cjs/ix-event-list-item.cjs.entry.js +5 -5
  184. package/dist/cjs/ix-event-list.cjs.entry.js +2 -2
  185. package/dist/cjs/ix-expanding-search.cjs.entry.js +4 -4
  186. package/dist/cjs/ix-filter-chip_2.cjs.entry.js +2 -2
  187. package/dist/cjs/ix-flip-tile-content.cjs.entry.js +1 -1
  188. package/dist/cjs/ix-flip-tile.cjs.entry.js +4 -4
  189. package/dist/cjs/ix-form-field.cjs.entry.js +1 -1
  190. package/dist/cjs/ix-group-context-menu_2.cjs.entry.js +4 -4
  191. package/dist/cjs/ix-group-context-menu_2.cjs.entry.js.map +1 -1
  192. package/dist/cjs/ix-group.cjs.entry.js +57 -39
  193. package/dist/cjs/ix-group.cjs.entry.js.map +1 -1
  194. package/dist/cjs/ix-icon-button_2.cjs.entry.js +2 -2
  195. package/dist/cjs/ix-icon-toggle-button.cjs.entry.js +2 -2
  196. package/dist/cjs/ix-input-group.cjs.entry.js +2 -2
  197. package/dist/cjs/ix-key-value-list.cjs.entry.js +1 -1
  198. package/dist/cjs/ix-kpi.cjs.entry.js +3 -3
  199. package/dist/cjs/ix-kpi.cjs.entry.js.map +1 -1
  200. package/dist/cjs/ix-link-button.cjs.entry.js +3 -3
  201. package/dist/cjs/ix-map-navigation-overlay.cjs.entry.js +2 -2
  202. package/dist/cjs/ix-map-navigation.cjs.entry.js +4 -4
  203. package/dist/cjs/ix-map-navigation.cjs.entry.js.map +1 -1
  204. package/dist/cjs/ix-menu-about-item.cjs.entry.js +1 -1
  205. package/dist/cjs/ix-menu-about-news.cjs.entry.js +4 -4
  206. package/dist/cjs/ix-menu-avatar.cjs.entry.js +3 -3
  207. package/dist/cjs/ix-menu-category.cjs.entry.js +6 -6
  208. package/dist/cjs/ix-menu-expand-icon.cjs.entry.js +2 -2
  209. package/dist/cjs/ix-menu-expand-icon.cjs.entry.js.map +1 -1
  210. package/dist/cjs/ix-menu-item.cjs.entry.js +13 -13
  211. package/dist/cjs/ix-menu-item.cjs.entry.js.map +1 -1
  212. package/dist/cjs/ix-menu-settings-item.cjs.entry.js +1 -1
  213. package/dist/cjs/ix-menu.cjs.entry.js +13 -13
  214. package/dist/cjs/ix-menu.cjs.entry.js.map +1 -1
  215. package/dist/cjs/ix-message-bar.cjs.entry.js +1 -1
  216. package/dist/cjs/ix-modal-content_2.cjs.entry.js +3 -3
  217. package/dist/cjs/ix-modal-content_2.cjs.entry.js.map +1 -1
  218. package/dist/cjs/ix-modal-example.cjs.entry.js +1 -1
  219. package/dist/cjs/ix-modal-footer.cjs.entry.js +2 -2
  220. package/dist/cjs/ix-modal-footer.cjs.entry.js.map +1 -1
  221. package/dist/cjs/ix-modal-loading.cjs.entry.js +1 -1
  222. package/dist/cjs/ix-modal.cjs.entry.js +3 -3
  223. package/dist/cjs/ix-modal.cjs.entry.js.map +1 -1
  224. package/dist/cjs/ix-pagination.cjs.entry.js +3 -3
  225. package/dist/cjs/ix-pane-layout.cjs.entry.js +1 -1
  226. package/dist/cjs/ix-pane.cjs.entry.js.map +1 -1
  227. package/dist/cjs/ix-pill.cjs.entry.js +4 -4
  228. package/dist/cjs/ix-pill.cjs.entry.js.map +1 -1
  229. package/dist/cjs/ix-playground-internal.cjs.entry.js +1 -1
  230. package/dist/cjs/ix-playground-internal.cjs.entry.js.map +1 -1
  231. package/dist/cjs/ix-push-card.cjs.entry.js +1 -1
  232. package/dist/cjs/ix-push-card.cjs.entry.js.map +1 -1
  233. package/dist/cjs/ix-select.cjs.entry.js +28 -31
  234. package/dist/cjs/ix-select.cjs.entry.js.map +1 -1
  235. package/dist/cjs/ix-slider.cjs.entry.js +2 -2
  236. package/dist/cjs/ix-split-button-item.cjs.entry.js +1 -1
  237. package/dist/cjs/ix-tab-item_2.cjs.entry.js +2 -2
  238. package/dist/cjs/ix-tab-item_2.cjs.entry.js.map +1 -1
  239. package/dist/cjs/ix-tile.cjs.entry.js +4 -4
  240. package/dist/cjs/ix-tile.cjs.entry.js.map +1 -1
  241. package/dist/cjs/ix-toast-container.cjs.entry.js.map +1 -1
  242. package/dist/cjs/ix-toast.cjs.entry.js +2 -2
  243. package/dist/cjs/ix-toast.cjs.entry.js.map +1 -1
  244. package/dist/cjs/ix-toggle-button.cjs.entry.js +3 -3
  245. package/dist/cjs/ix-toggle.cjs.entry.js +3 -3
  246. package/dist/cjs/ix-tooltip.cjs.entry.js +23 -21
  247. package/dist/cjs/ix-tooltip.cjs.entry.js.map +1 -1
  248. package/dist/cjs/ix-tree-item.cjs.entry.js +8 -8
  249. package/dist/cjs/ix-tree-item.cjs.entry.js.map +1 -1
  250. package/dist/cjs/ix-tree.cjs.entry.js +21 -7
  251. package/dist/cjs/ix-tree.cjs.entry.js.map +1 -1
  252. package/dist/cjs/ix-upload.cjs.entry.js +3 -3
  253. package/dist/cjs/ix-upload.cjs.entry.js.map +1 -1
  254. package/dist/cjs/ix-validation-tooltip.cjs.entry.js +3 -3
  255. package/dist/cjs/ix-workflow-step.cjs.entry.js +3 -3
  256. package/dist/cjs/ix-workflow-step.cjs.entry.js.map +1 -1
  257. package/dist/cjs/ix-workflow-steps.cjs.entry.js +1 -1
  258. package/dist/cjs/ix-workflow-steps.cjs.entry.js.map +1 -1
  259. package/dist/cjs/{listener-bc3e7c0c.js → listener-a124ed49.js} +2 -2
  260. package/dist/cjs/{listener-bc3e7c0c.js.map → listener-a124ed49.js.map} +1 -1
  261. package/dist/cjs/loader.cjs.js +1 -1
  262. package/dist/cjs/{logical-filter-operator-5564322e.js → logical-filter-operator-4917393f.js} +2 -2
  263. package/dist/cjs/{logical-filter-operator-5564322e.js.map → logical-filter-operator-4917393f.js.map} +1 -1
  264. package/dist/cjs/{shadow-dom-73f9d553.js → shadow-dom-454acc38.js} +2 -2
  265. package/dist/cjs/{shadow-dom-73f9d553.js.map → shadow-dom-454acc38.js.map} +1 -1
  266. package/dist/cjs/siemens-ix.cjs.js +1 -1
  267. package/dist/collection/components/action-card/action-card.js +6 -3
  268. package/dist/collection/components/action-card/action-card.js.map +1 -1
  269. package/dist/collection/components/application/application.css +26 -6
  270. package/dist/collection/components/application/application.js +1 -1
  271. package/dist/collection/components/application/application.js.map +1 -1
  272. package/dist/collection/components/application-header/application-header.css +9 -7
  273. package/dist/collection/components/application-header/application-header.js +77 -5
  274. package/dist/collection/components/application-header/application-header.js.map +1 -1
  275. package/dist/collection/components/application-header/application-switch-modal/application-switch-modal.js +1 -1
  276. package/dist/collection/components/application-sidebar/application-sidebar.js +1 -1
  277. package/dist/collection/components/basic-navigation/basic-navigation.js +7 -4
  278. package/dist/collection/components/basic-navigation/basic-navigation.js.map +1 -1
  279. package/dist/collection/components/blind/blind.css +1 -1
  280. package/dist/collection/components/blind/blind.js +2 -2
  281. package/dist/collection/components/blind/blind.js.map +1 -1
  282. package/dist/collection/components/blind/test/blind.ct.js +1 -1
  283. package/dist/collection/components/blind/test/blind.ct.js.map +1 -1
  284. package/dist/collection/components/breadcrumb/breadcrumb.js +2 -2
  285. package/dist/collection/components/card/card.css +3 -3
  286. package/dist/collection/components/card/card.js +7 -4
  287. package/dist/collection/components/card/card.js.map +1 -1
  288. package/dist/collection/components/card-accordion/card-accordion.css +4 -4
  289. package/dist/collection/components/card-content/card-content.js +1 -1
  290. package/dist/collection/components/card-list/card-list.css +6 -0
  291. package/dist/collection/components/card-list/card-list.js +5 -5
  292. package/dist/collection/components/card-list/card-list.js.map +1 -1
  293. package/dist/collection/components/card-title/card-title.js +1 -1
  294. package/dist/collection/components/category-filter/category-filter.js +18 -13
  295. package/dist/collection/components/category-filter/category-filter.js.map +1 -1
  296. package/dist/collection/components/category-filter/logical-filter-operator.js +1 -1
  297. package/dist/collection/components/category-filter/logical-filter-operator.js.map +1 -1
  298. package/dist/collection/components/category-filter/test/category-filter.ct.js +52 -0
  299. package/dist/collection/components/category-filter/test/category-filter.ct.js.map +1 -0
  300. package/dist/collection/components/chip/chip.css +2 -2
  301. package/dist/collection/components/chip/chip.js +5 -5
  302. package/dist/collection/components/chip/chip.js.map +1 -1
  303. package/dist/collection/components/col/col.css +1 -1
  304. package/dist/collection/components/col/col.js +1 -1
  305. package/dist/collection/components/col/col.js.map +1 -1
  306. package/dist/collection/components/content/content.js +3 -3
  307. package/dist/collection/components/css-grid/css-grid-item.js +1 -1
  308. package/dist/collection/components/divider/divider.js +1 -1
  309. package/dist/collection/components/drawer/drawer.js +2 -2
  310. package/dist/collection/components/dropdown/dropdown.js +2 -2
  311. package/dist/collection/components/dropdown-header/dropdown-header.js +1 -1
  312. package/dist/collection/components/dropdown-item/dropdown-item.css +3 -3
  313. package/dist/collection/components/dropdown-item/dropdown-item.js +5 -5
  314. package/dist/collection/components/dropdown-item/dropdown-item.js.map +1 -1
  315. package/dist/collection/components/dropdown-quick-actions/dropdown-quick-actions.js +1 -1
  316. package/dist/collection/components/event-list/event-list.js +2 -2
  317. package/dist/collection/components/event-list-item/event-list-item.js +4 -4
  318. package/dist/collection/components/expanding-search/expanding-search.js +4 -4
  319. package/dist/collection/components/filter-chip/filter-chip.js +1 -1
  320. package/dist/collection/components/flip-tile/flip-tile.js +4 -4
  321. package/dist/collection/components/flip-tile-content/flip-tile-content.js +1 -1
  322. package/dist/collection/components/form-field/form-field.js +1 -1
  323. package/dist/collection/components/grid/layout-grid.css +1 -1
  324. package/dist/collection/components/grid/layout-grid.js +3 -3
  325. package/dist/collection/components/grid/layout-grid.js.map +1 -1
  326. package/dist/collection/components/group/group-context-menu.css +1 -1
  327. package/dist/collection/components/group/group-context-menu.js +2 -2
  328. package/dist/collection/components/group/group-context-menu.js.map +1 -1
  329. package/dist/collection/components/group/group.css +3 -2
  330. package/dist/collection/components/group/group.js +68 -38
  331. package/dist/collection/components/group/group.js.map +1 -1
  332. package/dist/collection/components/group/test/group.ct.js +34 -4
  333. package/dist/collection/components/group/test/group.ct.js.map +1 -1
  334. package/dist/collection/components/group-item/group-item.js +2 -2
  335. package/dist/collection/components/icon-toggle-button/icon-toggle-button.js +1 -1
  336. package/dist/collection/components/input-group/input-group.js +1 -1
  337. package/dist/collection/components/key-value-list/key-value-list.js +1 -1
  338. package/dist/collection/components/kpi/kpi.css +1 -1
  339. package/dist/collection/components/kpi/kpi.js +4 -4
  340. package/dist/collection/components/kpi/kpi.js.map +1 -1
  341. package/dist/collection/components/link-button/link-button.js +3 -3
  342. package/dist/collection/components/map-navigation/map-navigation.css +3 -3
  343. package/dist/collection/components/map-navigation/map-navigation.js +2 -2
  344. package/dist/collection/components/map-navigation-overlay/map-navigation-overlay.js +2 -2
  345. package/dist/collection/components/menu/menu-expand-icon.css +1 -1
  346. package/dist/collection/components/menu/menu-expand-icon.js +3 -3
  347. package/dist/collection/components/menu/menu-expand-icon.js.map +1 -1
  348. package/dist/collection/components/menu/menu.css +4 -3
  349. package/dist/collection/components/menu/menu.js +12 -12
  350. package/dist/collection/components/menu/menu.js.map +1 -1
  351. package/dist/collection/components/menu/test/menu.ct.js +1 -1
  352. package/dist/collection/components/menu/test/menu.ct.js.map +1 -1
  353. package/dist/collection/components/menu-about-item/menu-about-item.js +1 -1
  354. package/dist/collection/components/menu-about-news/menu-about-news.js +4 -4
  355. package/dist/collection/components/menu-avatar/menu-avatar.js +2 -2
  356. package/dist/collection/components/menu-avatar-item/menu-avatar-item.js +1 -1
  357. package/dist/collection/components/menu-category/menu-category.js +5 -5
  358. package/dist/collection/components/menu-item/menu-item.js +24 -21
  359. package/dist/collection/components/menu-item/menu-item.js.map +1 -1
  360. package/dist/collection/components/menu-settings-item/menu-settings-item.js +1 -1
  361. package/dist/collection/components/message-bar/message-bar.js +1 -1
  362. package/dist/collection/components/modal/modal.css +18 -8
  363. package/dist/collection/components/modal/modal.js +1 -1
  364. package/dist/collection/components/modal/modal.js.map +1 -1
  365. package/dist/collection/components/modal/test/modal.ct.js +1 -1
  366. package/dist/collection/components/modal/test/modal.ct.js.map +1 -1
  367. package/dist/collection/components/modal-content/modal-content.css +1 -1
  368. package/dist/collection/components/modal-content/modal-content.js +1 -1
  369. package/dist/collection/components/modal-footer/modal-footer.css +1 -0
  370. package/dist/collection/components/modal-footer/modal-footer.js +1 -1
  371. package/dist/collection/components/modal-header/modal-header.js +2 -2
  372. package/dist/collection/components/modal-header/modal-header.js.map +1 -1
  373. package/dist/collection/components/modal-loading/modal-loading.js +1 -1
  374. package/dist/collection/components/pagination/pagination.js +2 -2
  375. package/dist/collection/components/pane/pane.css +1 -1
  376. package/dist/collection/components/pane/pane.js +1 -1
  377. package/dist/collection/components/pane/pane.js.map +1 -1
  378. package/dist/collection/components/pane/test/panes.ct.js +1 -1
  379. package/dist/collection/components/pane/test/panes.ct.js.map +1 -1
  380. package/dist/collection/components/pane-layout/pane-layout.js +1 -1
  381. package/dist/collection/components/pill/pill.css +2 -2
  382. package/dist/collection/components/pill/pill.js +5 -5
  383. package/dist/collection/components/pill/pill.js.map +1 -1
  384. package/dist/collection/components/playground/example-modal.js +1 -1
  385. package/dist/collection/components/playground/playground.js +2 -2
  386. package/dist/collection/components/playground/playground.js.map +1 -1
  387. package/dist/collection/components/push-card/push-card.js +9 -6
  388. package/dist/collection/components/push-card/push-card.js.map +1 -1
  389. package/dist/collection/components/row/row.css +1 -1
  390. package/dist/collection/components/row/row.js +2 -2
  391. package/dist/collection/components/row/row.js.map +1 -1
  392. package/dist/collection/components/select/select.js +27 -30
  393. package/dist/collection/components/select/select.js.map +1 -1
  394. package/dist/collection/components/select/test/select.ct.js +44 -0
  395. package/dist/collection/components/select/test/select.ct.js.map +1 -1
  396. package/dist/collection/components/select-item/select-item.js +1 -1
  397. package/dist/collection/components/spinner/spinner.js +1 -1
  398. package/dist/collection/components/split-button-item/split-button-item.js +1 -1
  399. package/dist/collection/components/tabs/tabs.css +1 -1
  400. package/dist/collection/components/tabs/tabs.js +3 -3
  401. package/dist/collection/components/tabs/tabs.js.map +1 -1
  402. package/dist/collection/components/tile/tile.css +1 -1
  403. package/dist/collection/components/tile/tile.js +5 -5
  404. package/dist/collection/components/tile/tile.js.map +1 -1
  405. package/dist/collection/components/toast/styles/toast-container.css +1 -1
  406. package/dist/collection/components/toast/toast-container.js +1 -1
  407. package/dist/collection/components/toast/toast-container.js.map +1 -1
  408. package/dist/collection/components/toast/toast-utils.js.map +1 -1
  409. package/dist/collection/components/toast/toast.css +1 -1
  410. package/dist/collection/components/toast/toast.js +3 -3
  411. package/dist/collection/components/toast/toast.js.map +1 -1
  412. package/dist/collection/components/toggle/toggle.js +2 -2
  413. package/dist/collection/components/toggle-button/toggle-button.js +2 -2
  414. package/dist/collection/components/tooltip/tooltip.css +15 -5
  415. package/dist/collection/components/tooltip/tooltip.js +22 -20
  416. package/dist/collection/components/tooltip/tooltip.js.map +1 -1
  417. package/dist/collection/components/tree/test/tree.ct.js +37 -1
  418. package/dist/collection/components/tree/test/tree.ct.js.map +1 -1
  419. package/dist/collection/components/tree/tree-model.js.map +1 -1
  420. package/dist/collection/components/tree/tree.css +1 -1
  421. package/dist/collection/components/tree/tree.js +26 -11
  422. package/dist/collection/components/tree/tree.js.map +1 -1
  423. package/dist/collection/components/tree-item/tree-item.css +9 -0
  424. package/dist/collection/components/tree-item/tree-item.js +13 -12
  425. package/dist/collection/components/tree-item/tree-item.js.map +1 -1
  426. package/dist/collection/components/upload/upload.js +4 -4
  427. package/dist/collection/components/upload/upload.js.map +1 -1
  428. package/dist/collection/components/utils/condition-checks.js +1 -1
  429. package/dist/collection/components/utils/condition-checks.js.map +1 -1
  430. package/dist/collection/components/utils/context.js +1 -1
  431. package/dist/collection/components/utils/context.js.map +1 -1
  432. package/dist/collection/components/utils/listener.js +1 -1
  433. package/dist/collection/components/utils/listener.js.map +1 -1
  434. package/dist/collection/components/utils/notification-color.js.map +1 -1
  435. package/dist/collection/components/utils/shadow-dom.js +1 -1
  436. package/dist/collection/components/utils/shadow-dom.js.map +1 -1
  437. package/dist/collection/components/validation-tooltip/validation-tooltip.js +2 -2
  438. package/dist/collection/components/workflow-step/workflow-step.css +1 -1
  439. package/dist/collection/components/workflow-step/workflow-step.js +4 -4
  440. package/dist/collection/components/workflow-step/workflow-step.js.map +1 -1
  441. package/dist/collection/components/workflow-steps/test/workflow-steps.ct.js +2 -2
  442. package/dist/collection/components/workflow-steps/test/workflow-steps.ct.js.map +1 -1
  443. package/dist/collection/components/workflow-steps/workflow-steps.css +1 -1
  444. package/dist/collection/components/workflow-steps/workflow-steps.js +2 -2
  445. package/dist/collection/components/workflow-steps/workflow-steps.js.map +1 -1
  446. package/dist/collection/index.js +1 -0
  447. package/dist/collection/index.js.map +1 -1
  448. package/dist/collection/tests/application-header/application-header.e2e.js +9 -0
  449. package/dist/collection/tests/application-header/application-header.e2e.js.map +1 -1
  450. package/dist/collection/tests/card-list/card-list.e2e.js +7 -1
  451. package/dist/collection/tests/card-list/card-list.e2e.js.map +1 -1
  452. package/dist/collection/tests/dropdown/dropdown.e2e.js +6 -0
  453. package/dist/collection/tests/dropdown/dropdown.e2e.js.map +1 -1
  454. package/dist/collection/tests/group/group.e2e.js +12 -3
  455. package/dist/collection/tests/group/group.e2e.js.map +1 -1
  456. package/dist/collection/tests/tooltip/tooltip.e2e.js +22 -0
  457. package/dist/collection/tests/tooltip/tooltip.e2e.js.map +1 -1
  458. package/dist/collection/tests/tree/tree.e2e.js +12 -0
  459. package/dist/collection/tests/tree/tree.e2e.js.map +1 -1
  460. package/dist/esm/{a11y-d5444a76.js → a11y-2e34777f.js} +2 -2
  461. package/dist/esm/{a11y-d5444a76.js.map → a11y-2e34777f.js.map} +1 -1
  462. package/dist/esm/{context-c9078420.js → context-82a1ccf8.js} +2 -2
  463. package/dist/esm/{context-c9078420.js.map → context-82a1ccf8.js.map} +1 -1
  464. package/dist/esm/dropdown-controller-95bd6750.js +140 -0
  465. package/dist/esm/dropdown-controller-95bd6750.js.map +1 -0
  466. package/dist/esm/{floating-ui.dom.esm-6e7c098f.js → floating-ui.dom.esm-d4ad786a.js} +534 -61
  467. package/dist/esm/floating-ui.dom.esm-d4ad786a.js.map +1 -0
  468. package/dist/esm/index.js +2 -2
  469. package/dist/esm/index.js.map +1 -1
  470. package/dist/esm/ix-action-card.entry.js +1 -1
  471. package/dist/esm/ix-action-card.entry.js.map +1 -1
  472. package/dist/esm/ix-application-header.entry.js +35 -9
  473. package/dist/esm/ix-application-header.entry.js.map +1 -1
  474. package/dist/esm/ix-application-sidebar.entry.js +1 -1
  475. package/dist/esm/ix-application-switch-modal.entry.js +1 -1
  476. package/dist/esm/ix-application.entry.js +4 -4
  477. package/dist/esm/ix-application.entry.js.map +1 -1
  478. package/dist/esm/ix-avatar_2.entry.js +2 -2
  479. package/dist/esm/ix-basic-navigation.entry.js +3 -3
  480. package/dist/esm/ix-basic-navigation.entry.js.map +1 -1
  481. package/dist/esm/ix-blind.entry.js +1 -1
  482. package/dist/esm/ix-blind.entry.js.map +1 -1
  483. package/dist/esm/ix-breadcrumb-item.entry.js +1 -1
  484. package/dist/esm/ix-breadcrumb.entry.js +3 -3
  485. package/dist/esm/ix-card-accordion_2.entry.js +2 -2
  486. package/dist/esm/ix-card-accordion_2.entry.js.map +1 -1
  487. package/dist/esm/ix-card-list.entry.js +6 -6
  488. package/dist/esm/ix-card-list.entry.js.map +1 -1
  489. package/dist/esm/ix-card_2.entry.js +4 -4
  490. package/dist/esm/ix-card_2.entry.js.map +1 -1
  491. package/dist/esm/ix-category-filter.entry.js +9 -5
  492. package/dist/esm/ix-category-filter.entry.js.map +1 -1
  493. package/dist/esm/ix-chip.entry.js +4 -4
  494. package/dist/esm/ix-chip.entry.js.map +1 -1
  495. package/dist/esm/ix-col_4.entry.js +4 -4
  496. package/dist/esm/ix-col_4.entry.js.map +1 -1
  497. package/dist/esm/ix-content.entry.js +4 -4
  498. package/dist/esm/ix-css-grid-item.entry.js +1 -1
  499. package/dist/esm/ix-divider.entry.js +1 -1
  500. package/dist/esm/ix-drawer.entry.js +2 -2
  501. package/dist/esm/ix-dropdown-header.entry.js +1 -1
  502. package/dist/esm/ix-dropdown-item.entry.js +4 -4
  503. package/dist/esm/ix-dropdown-item.entry.js.map +1 -1
  504. package/dist/esm/ix-dropdown-quick-actions.entry.js +1 -1
  505. package/dist/esm/ix-dropdown.entry.js +4 -140
  506. package/dist/esm/ix-dropdown.entry.js.map +1 -1
  507. package/dist/esm/ix-event-list-item.entry.js +5 -5
  508. package/dist/esm/ix-event-list.entry.js +2 -2
  509. package/dist/esm/ix-expanding-search.entry.js +4 -4
  510. package/dist/esm/ix-filter-chip_2.entry.js +2 -2
  511. package/dist/esm/ix-flip-tile-content.entry.js +1 -1
  512. package/dist/esm/ix-flip-tile.entry.js +4 -4
  513. package/dist/esm/ix-form-field.entry.js +1 -1
  514. package/dist/esm/ix-group-context-menu_2.entry.js +4 -4
  515. package/dist/esm/ix-group-context-menu_2.entry.js.map +1 -1
  516. package/dist/esm/ix-group.entry.js +57 -39
  517. package/dist/esm/ix-group.entry.js.map +1 -1
  518. package/dist/esm/ix-icon-button_2.entry.js +2 -2
  519. package/dist/esm/ix-icon-toggle-button.entry.js +2 -2
  520. package/dist/esm/ix-input-group.entry.js +2 -2
  521. package/dist/esm/ix-key-value-list.entry.js +1 -1
  522. package/dist/esm/ix-kpi.entry.js +3 -3
  523. package/dist/esm/ix-kpi.entry.js.map +1 -1
  524. package/dist/esm/ix-link-button.entry.js +3 -3
  525. package/dist/esm/ix-map-navigation-overlay.entry.js +2 -2
  526. package/dist/esm/ix-map-navigation.entry.js +4 -4
  527. package/dist/esm/ix-map-navigation.entry.js.map +1 -1
  528. package/dist/esm/ix-menu-about-item.entry.js +1 -1
  529. package/dist/esm/ix-menu-about-news.entry.js +4 -4
  530. package/dist/esm/ix-menu-avatar.entry.js +3 -3
  531. package/dist/esm/ix-menu-category.entry.js +6 -6
  532. package/dist/esm/ix-menu-expand-icon.entry.js +2 -2
  533. package/dist/esm/ix-menu-expand-icon.entry.js.map +1 -1
  534. package/dist/esm/ix-menu-item.entry.js +14 -14
  535. package/dist/esm/ix-menu-item.entry.js.map +1 -1
  536. package/dist/esm/ix-menu-settings-item.entry.js +1 -1
  537. package/dist/esm/ix-menu.entry.js +13 -13
  538. package/dist/esm/ix-menu.entry.js.map +1 -1
  539. package/dist/esm/ix-message-bar.entry.js +1 -1
  540. package/dist/esm/ix-modal-content_2.entry.js +3 -3
  541. package/dist/esm/ix-modal-content_2.entry.js.map +1 -1
  542. package/dist/esm/ix-modal-example.entry.js +1 -1
  543. package/dist/esm/ix-modal-footer.entry.js +2 -2
  544. package/dist/esm/ix-modal-footer.entry.js.map +1 -1
  545. package/dist/esm/ix-modal-loading.entry.js +1 -1
  546. package/dist/esm/ix-modal.entry.js +3 -3
  547. package/dist/esm/ix-modal.entry.js.map +1 -1
  548. package/dist/esm/ix-pagination.entry.js +3 -3
  549. package/dist/esm/ix-pane-layout.entry.js +1 -1
  550. package/dist/esm/ix-pane.entry.js.map +1 -1
  551. package/dist/esm/ix-pill.entry.js +4 -4
  552. package/dist/esm/ix-pill.entry.js.map +1 -1
  553. package/dist/esm/ix-playground-internal.entry.js +1 -1
  554. package/dist/esm/ix-playground-internal.entry.js.map +1 -1
  555. package/dist/esm/ix-push-card.entry.js +1 -1
  556. package/dist/esm/ix-push-card.entry.js.map +1 -1
  557. package/dist/esm/ix-select.entry.js +28 -31
  558. package/dist/esm/ix-select.entry.js.map +1 -1
  559. package/dist/esm/ix-slider.entry.js +2 -2
  560. package/dist/esm/ix-split-button-item.entry.js +1 -1
  561. package/dist/esm/ix-tab-item_2.entry.js +2 -2
  562. package/dist/esm/ix-tab-item_2.entry.js.map +1 -1
  563. package/dist/esm/ix-tile.entry.js +4 -4
  564. package/dist/esm/ix-tile.entry.js.map +1 -1
  565. package/dist/esm/ix-toast-container.entry.js.map +1 -1
  566. package/dist/esm/ix-toast.entry.js +2 -2
  567. package/dist/esm/ix-toast.entry.js.map +1 -1
  568. package/dist/esm/ix-toggle-button.entry.js +3 -3
  569. package/dist/esm/ix-toggle.entry.js +3 -3
  570. package/dist/esm/ix-tooltip.entry.js +23 -21
  571. package/dist/esm/ix-tooltip.entry.js.map +1 -1
  572. package/dist/esm/ix-tree-item.entry.js +8 -8
  573. package/dist/esm/ix-tree-item.entry.js.map +1 -1
  574. package/dist/esm/ix-tree.entry.js +21 -7
  575. package/dist/esm/ix-tree.entry.js.map +1 -1
  576. package/dist/esm/ix-upload.entry.js +3 -3
  577. package/dist/esm/ix-upload.entry.js.map +1 -1
  578. package/dist/esm/ix-validation-tooltip.entry.js +3 -3
  579. package/dist/esm/ix-workflow-step.entry.js +3 -3
  580. package/dist/esm/ix-workflow-step.entry.js.map +1 -1
  581. package/dist/esm/ix-workflow-steps.entry.js +1 -1
  582. package/dist/esm/ix-workflow-steps.entry.js.map +1 -1
  583. package/dist/esm/{listener-4f3baab5.js → listener-2c562054.js} +2 -2
  584. package/dist/esm/{listener-4f3baab5.js.map → listener-2c562054.js.map} +1 -1
  585. package/dist/esm/loader.js +1 -1
  586. package/dist/esm/{logical-filter-operator-f6701df5.js → logical-filter-operator-d793d1c3.js} +2 -2
  587. package/dist/esm/{logical-filter-operator-f6701df5.js.map → logical-filter-operator-d793d1c3.js.map} +1 -1
  588. package/dist/esm/{shadow-dom-60e9243d.js → shadow-dom-cc0bc152.js} +2 -2
  589. package/dist/esm/{shadow-dom-60e9243d.js.map → shadow-dom-cc0bc152.js.map} +1 -1
  590. package/dist/esm/siemens-ix.js +1 -1
  591. package/dist/siemens-ix/index.esm.js +1 -1
  592. package/dist/siemens-ix/index.esm.js.map +1 -1
  593. package/dist/siemens-ix/p-04af3853.entry.js +2 -0
  594. package/dist/siemens-ix/{p-4df0cdd7.entry.js → p-04ec538b.entry.js} +2 -2
  595. package/dist/siemens-ix/{p-68644ee1.entry.js → p-05dc6b2d.entry.js} +2 -2
  596. package/dist/siemens-ix/{p-68644ee1.entry.js.map → p-05dc6b2d.entry.js.map} +1 -1
  597. package/dist/siemens-ix/{p-af099ca4.entry.js → p-0632731e.entry.js} +2 -2
  598. package/dist/siemens-ix/{p-6af4415c.entry.js → p-085d5ec2.entry.js} +2 -2
  599. package/dist/siemens-ix/{p-6af4415c.entry.js.map → p-085d5ec2.entry.js.map} +1 -1
  600. package/dist/siemens-ix/{p-0d2a6886.entry.js → p-091b036d.entry.js} +2 -2
  601. package/dist/siemens-ix/{p-453fa360.entry.js → p-0ef97555.entry.js} +2 -2
  602. package/dist/siemens-ix/{p-453fa360.entry.js.map → p-0ef97555.entry.js.map} +1 -1
  603. package/dist/siemens-ix/{p-2946fd70.entry.js → p-0fafba48.entry.js} +2 -2
  604. package/dist/siemens-ix/{p-7076210b.entry.js → p-1483f65d.entry.js} +2 -2
  605. package/dist/siemens-ix/{p-4f8ac3bf.js → p-157b1b28.js} +1 -1
  606. package/dist/siemens-ix/{p-4f8ac3bf.js.map → p-157b1b28.js.map} +1 -1
  607. package/dist/siemens-ix/p-15f44099.entry.js +2 -0
  608. package/dist/siemens-ix/{p-87e692d9.entry.js.map → p-15f44099.entry.js.map} +1 -1
  609. package/dist/siemens-ix/{p-2908cacd.entry.js → p-17a8aab2.entry.js} +2 -2
  610. package/dist/siemens-ix/{p-2908cacd.entry.js.map → p-17a8aab2.entry.js.map} +1 -1
  611. package/dist/siemens-ix/{p-c1968b80.entry.js → p-1bd98772.entry.js} +2 -2
  612. package/dist/siemens-ix/p-1c3a0b1f.js +2 -0
  613. package/dist/siemens-ix/p-1c3a0b1f.js.map +1 -0
  614. package/dist/siemens-ix/{p-8629db91.entry.js → p-25f1749c.entry.js} +2 -2
  615. package/dist/siemens-ix/{p-5696bb62.entry.js → p-306269ae.entry.js} +2 -2
  616. package/dist/siemens-ix/{p-dde7eb80.entry.js → p-33a7a26d.entry.js} +2 -2
  617. package/dist/siemens-ix/{p-dde7eb80.entry.js.map → p-33a7a26d.entry.js.map} +1 -1
  618. package/dist/siemens-ix/{p-712e0ee0.js → p-345e1c73.js} +1 -1
  619. package/dist/siemens-ix/{p-712e0ee0.js.map → p-345e1c73.js.map} +1 -1
  620. package/dist/siemens-ix/p-35fff1e6.entry.js +2 -0
  621. package/dist/siemens-ix/{p-9ebc4fc3.entry.js → p-37229f30.entry.js} +2 -2
  622. package/dist/siemens-ix/{p-9ebc4fc3.entry.js.map → p-37229f30.entry.js.map} +1 -1
  623. package/dist/siemens-ix/p-3dc1294b.entry.js +2 -0
  624. package/dist/siemens-ix/{p-e9a3f58a.entry.js.map → p-3dc1294b.entry.js.map} +1 -1
  625. package/dist/siemens-ix/p-3f59a3c3.entry.js +2 -0
  626. package/dist/siemens-ix/p-3f59a3c3.entry.js.map +1 -0
  627. package/dist/siemens-ix/p-411f51c5.entry.js +2 -0
  628. package/dist/siemens-ix/{p-f78246bd.entry.js → p-44a27b29.entry.js} +2 -2
  629. package/dist/siemens-ix/{p-d03df401.entry.js → p-49d3fc15.entry.js} +2 -2
  630. package/dist/siemens-ix/{p-25ee1b62.js → p-4ac31849.js} +1 -1
  631. package/dist/siemens-ix/{p-25ee1b62.js.map → p-4ac31849.js.map} +1 -1
  632. package/dist/siemens-ix/{p-dbe8f5e6.entry.js → p-4e547dd3.entry.js} +2 -2
  633. package/dist/siemens-ix/{p-dbe8f5e6.entry.js.map → p-4e547dd3.entry.js.map} +1 -1
  634. package/dist/siemens-ix/p-5099c070.entry.js +2 -0
  635. package/dist/siemens-ix/p-5099c070.entry.js.map +1 -0
  636. package/dist/siemens-ix/{p-fc5814df.entry.js → p-5351225b.entry.js} +2 -2
  637. package/dist/siemens-ix/p-5351225b.entry.js.map +1 -0
  638. package/dist/siemens-ix/p-5aa0b93c.entry.js.map +1 -1
  639. package/dist/siemens-ix/{p-113cc793.entry.js → p-5af99eaa.entry.js} +2 -2
  640. package/dist/siemens-ix/{p-e30ed20a.entry.js → p-62b089b6.entry.js} +2 -2
  641. package/dist/siemens-ix/{p-e30ed20a.entry.js.map → p-62b089b6.entry.js.map} +1 -1
  642. package/dist/siemens-ix/p-63f0755e.entry.js +2 -0
  643. package/dist/siemens-ix/{p-14a41c8c.entry.js → p-6618b2db.entry.js} +2 -2
  644. package/dist/siemens-ix/{p-0653a145.entry.js → p-67f44540.entry.js} +2 -2
  645. package/dist/siemens-ix/{p-15b3c17e.entry.js → p-6e4c9e3d.entry.js} +2 -2
  646. package/dist/siemens-ix/{p-15b3c17e.entry.js.map → p-6e4c9e3d.entry.js.map} +1 -1
  647. package/dist/siemens-ix/p-7402f42a.entry.js +2 -0
  648. package/dist/siemens-ix/p-7402f42a.entry.js.map +1 -0
  649. package/dist/siemens-ix/{p-53352bfb.entry.js → p-77273517.entry.js} +2 -2
  650. package/dist/siemens-ix/{p-882a0233.entry.js → p-78ac2ff1.entry.js} +2 -2
  651. package/dist/siemens-ix/p-7947ef3d.entry.js +2 -0
  652. package/dist/siemens-ix/{p-fb47546b.entry.js → p-7c2f34f0.entry.js} +2 -2
  653. package/dist/siemens-ix/p-82d33168.entry.js +2 -0
  654. package/dist/siemens-ix/p-82f9d976.entry.js +2 -0
  655. package/dist/siemens-ix/p-82f9d976.entry.js.map +1 -0
  656. package/dist/siemens-ix/{p-85423643.entry.js → p-86bbc005.entry.js} +2 -2
  657. package/dist/siemens-ix/p-86bbc005.entry.js.map +1 -0
  658. package/dist/siemens-ix/p-86fd5922.entry.js +2 -0
  659. package/dist/siemens-ix/p-86fd5922.entry.js.map +1 -0
  660. package/dist/siemens-ix/p-89e48bea.entry.js +2 -0
  661. package/dist/siemens-ix/p-89e48bea.entry.js.map +1 -0
  662. package/dist/siemens-ix/{p-052340f9.entry.js → p-8acc09aa.entry.js} +2 -2
  663. package/dist/siemens-ix/{p-6fd7ecd0.entry.js → p-9079f6c8.entry.js} +2 -2
  664. package/dist/siemens-ix/p-928209e1.entry.js +2 -0
  665. package/dist/siemens-ix/p-928209e1.entry.js.map +1 -0
  666. package/dist/siemens-ix/{p-e8d3cf35.entry.js → p-958c5970.entry.js} +2 -2
  667. package/dist/siemens-ix/{p-e8d3cf35.entry.js.map → p-958c5970.entry.js.map} +1 -1
  668. package/dist/siemens-ix/{p-16b923e9.entry.js → p-9bdda7ff.entry.js} +2 -2
  669. package/dist/siemens-ix/p-a08efce0.entry.js +2 -0
  670. package/dist/siemens-ix/p-a08efce0.entry.js.map +1 -0
  671. package/dist/siemens-ix/p-a4755205.entry.js +2 -0
  672. package/dist/siemens-ix/p-a4755205.entry.js.map +1 -0
  673. package/dist/siemens-ix/{p-2c4c03d4.entry.js → p-aa814811.entry.js} +2 -2
  674. package/dist/siemens-ix/{p-7c36d3fa.js → p-accec846.js} +1 -1
  675. package/dist/siemens-ix/{p-7c36d3fa.js.map → p-accec846.js.map} +1 -1
  676. package/dist/siemens-ix/{p-8d599677.entry.js → p-adee6045.entry.js} +2 -2
  677. package/dist/siemens-ix/{p-8d599677.entry.js.map → p-adee6045.entry.js.map} +1 -1
  678. package/dist/siemens-ix/{p-d95cbd1f.entry.js → p-ae31be0d.entry.js} +2 -2
  679. package/dist/siemens-ix/{p-d95cbd1f.entry.js.map → p-ae31be0d.entry.js.map} +1 -1
  680. package/dist/siemens-ix/{p-feac09bc.entry.js → p-ba24e694.entry.js} +2 -2
  681. package/dist/siemens-ix/p-ba6e955a.js +2 -0
  682. package/dist/siemens-ix/p-ba6e955a.js.map +1 -0
  683. package/dist/siemens-ix/p-c022d6cc.entry.js +2 -0
  684. package/dist/siemens-ix/{p-eb6268a6.entry.js.map → p-c022d6cc.entry.js.map} +1 -1
  685. package/dist/siemens-ix/p-c05a98c8.entry.js +2 -0
  686. package/dist/siemens-ix/{p-71315e2e.entry.js → p-c072ddb5.entry.js} +2 -2
  687. package/dist/siemens-ix/p-c1fe9f3d.entry.js +2 -0
  688. package/dist/siemens-ix/p-c1fe9f3d.entry.js.map +1 -0
  689. package/dist/siemens-ix/p-c33cee36.entry.js.map +1 -1
  690. package/dist/siemens-ix/{p-0b4e398e.entry.js → p-c62966f8.entry.js} +2 -2
  691. package/dist/siemens-ix/{p-0b4e398e.entry.js.map → p-c62966f8.entry.js.map} +1 -1
  692. package/dist/siemens-ix/p-c7280736.entry.js +2 -0
  693. package/dist/siemens-ix/{p-0f7ef743.entry.js.map → p-c7280736.entry.js.map} +1 -1
  694. package/dist/siemens-ix/{p-8d0758c1.entry.js → p-c7e58e9e.entry.js} +2 -2
  695. package/dist/siemens-ix/{p-4430117a.entry.js → p-c81c4b9d.entry.js} +2 -2
  696. package/dist/siemens-ix/{p-d950c3a8.entry.js → p-cc65617d.entry.js} +2 -2
  697. package/dist/siemens-ix/{p-1a122c76.entry.js → p-d300b332.entry.js} +2 -2
  698. package/dist/siemens-ix/p-d6fc0727.entry.js +2 -0
  699. package/dist/siemens-ix/p-d6fc0727.entry.js.map +1 -0
  700. package/dist/siemens-ix/p-df370362.entry.js +2 -0
  701. package/dist/siemens-ix/p-df370362.entry.js.map +1 -0
  702. package/dist/siemens-ix/{p-5f25e7fd.entry.js → p-e0d03d67.entry.js} +2 -2
  703. package/dist/siemens-ix/{p-5f25e7fd.entry.js.map → p-e0d03d67.entry.js.map} +1 -1
  704. package/dist/siemens-ix/{p-ff1ac5b3.entry.js → p-e14384df.entry.js} +2 -2
  705. package/dist/siemens-ix/{p-fb2b78f7.entry.js → p-e35805d0.entry.js} +2 -2
  706. package/dist/siemens-ix/p-e35805d0.entry.js.map +1 -0
  707. package/dist/siemens-ix/{p-0c8a98cd.js → p-e948bcb0.js} +1 -1
  708. package/dist/siemens-ix/{p-0c8a98cd.js.map → p-e948bcb0.js.map} +1 -1
  709. package/dist/siemens-ix/{p-5b135f6b.entry.js → p-e95a5a97.entry.js} +2 -2
  710. package/dist/siemens-ix/{p-5b135f6b.entry.js.map → p-e95a5a97.entry.js.map} +1 -1
  711. package/dist/siemens-ix/p-ed7e76a3.entry.js +2 -0
  712. package/dist/siemens-ix/p-ed7e76a3.entry.js.map +1 -0
  713. package/dist/siemens-ix/{p-bea7c748.entry.js → p-ee96d1eb.entry.js} +2 -2
  714. package/dist/siemens-ix/p-f001ecc1.entry.js +2 -0
  715. package/dist/siemens-ix/p-f001ecc1.entry.js.map +1 -0
  716. package/dist/siemens-ix/p-f06b21f9.entry.js +2 -0
  717. package/dist/siemens-ix/p-f06b21f9.entry.js.map +1 -0
  718. package/dist/siemens-ix/{p-bc2c74c5.entry.js → p-fd5bee44.entry.js} +2 -2
  719. package/dist/siemens-ix/p-fefd5743.entry.js +2 -0
  720. package/dist/siemens-ix/p-fefd5743.entry.js.map +1 -0
  721. package/dist/siemens-ix/{p-dcb3e5be.entry.js → p-ffa856df.entry.js} +2 -2
  722. package/dist/siemens-ix/siemens-ix-core.css +1 -1
  723. package/dist/siemens-ix/siemens-ix.css +5 -1
  724. package/dist/siemens-ix/siemens-ix.esm.js +1 -1
  725. package/dist/siemens-ix/siemens-ix.esm.js.map +1 -1
  726. package/dist/types/components/action-card/action-card.d.ts +1 -0
  727. package/dist/types/components/application-header/application-header.d.ts +18 -0
  728. package/dist/types/components/basic-navigation/basic-navigation.d.ts +2 -1
  729. package/dist/types/components/card/card.d.ts +2 -1
  730. package/dist/types/components/category-filter/category-filter.d.ts +9 -9
  731. package/dist/types/components/category-filter/test/category-filter.ct.d.ts +1 -0
  732. package/dist/types/components/dropdown-item/dropdown-item.d.ts +2 -2
  733. package/dist/types/components/group/group.d.ts +4 -2
  734. package/dist/types/components/menu-item/menu-item.d.ts +6 -5
  735. package/dist/types/components/push-card/push-card.d.ts +4 -3
  736. package/dist/types/components/tooltip/tooltip.d.ts +2 -3
  737. package/dist/types/components/tree/tree.d.ts +1 -1
  738. package/dist/types/components/tree-item/tree-item.d.ts +3 -3
  739. package/dist/types/components.d.ts +67 -29
  740. package/dist/types/index.d.ts +1 -0
  741. package/hydrate/index.js +872 -338
  742. package/package.json +3 -2
  743. package/scss/_core.scss +5 -0
  744. package/dist/cjs/floating-ui.dom.esm-94b4d17c.js.map +0 -1
  745. package/dist/esm/floating-ui.dom.esm-6e7c098f.js.map +0 -1
  746. package/dist/siemens-ix/p-0b4e3779.entry.js +0 -2
  747. package/dist/siemens-ix/p-0b4e3779.entry.js.map +0 -1
  748. package/dist/siemens-ix/p-0f7ef743.entry.js +0 -2
  749. package/dist/siemens-ix/p-1cff59db.entry.js +0 -2
  750. package/dist/siemens-ix/p-1cff59db.entry.js.map +0 -1
  751. package/dist/siemens-ix/p-1f4b8463.entry.js +0 -2
  752. package/dist/siemens-ix/p-1f4b8463.entry.js.map +0 -1
  753. package/dist/siemens-ix/p-2ec7f841.entry.js +0 -2
  754. package/dist/siemens-ix/p-2ec7f841.entry.js.map +0 -1
  755. package/dist/siemens-ix/p-309ac3ad.entry.js +0 -2
  756. package/dist/siemens-ix/p-309ac3ad.entry.js.map +0 -1
  757. package/dist/siemens-ix/p-32375ddb.entry.js +0 -2
  758. package/dist/siemens-ix/p-427676f4.entry.js +0 -2
  759. package/dist/siemens-ix/p-427676f4.entry.js.map +0 -1
  760. package/dist/siemens-ix/p-44db3646.entry.js +0 -2
  761. package/dist/siemens-ix/p-4b3facea.entry.js +0 -2
  762. package/dist/siemens-ix/p-4b3facea.entry.js.map +0 -1
  763. package/dist/siemens-ix/p-52857629.entry.js +0 -2
  764. package/dist/siemens-ix/p-52857629.entry.js.map +0 -1
  765. package/dist/siemens-ix/p-6227e62b.entry.js +0 -2
  766. package/dist/siemens-ix/p-6227e62b.entry.js.map +0 -1
  767. package/dist/siemens-ix/p-7bfd6cd2.entry.js +0 -2
  768. package/dist/siemens-ix/p-7bfd6cd2.entry.js.map +0 -1
  769. package/dist/siemens-ix/p-7faa148f.entry.js +0 -2
  770. package/dist/siemens-ix/p-85423643.entry.js.map +0 -1
  771. package/dist/siemens-ix/p-87e692d9.entry.js +0 -2
  772. package/dist/siemens-ix/p-92a18c10.entry.js +0 -2
  773. package/dist/siemens-ix/p-a0a44a2b.entry.js +0 -2
  774. package/dist/siemens-ix/p-a0a44a2b.entry.js.map +0 -1
  775. package/dist/siemens-ix/p-b3b23af7.entry.js +0 -2
  776. package/dist/siemens-ix/p-b3f35666.js +0 -2
  777. package/dist/siemens-ix/p-b3f35666.js.map +0 -1
  778. package/dist/siemens-ix/p-c1222581.entry.js +0 -2
  779. package/dist/siemens-ix/p-d331216f.entry.js +0 -2
  780. package/dist/siemens-ix/p-d331216f.entry.js.map +0 -1
  781. package/dist/siemens-ix/p-d8790ff5.entry.js +0 -2
  782. package/dist/siemens-ix/p-d8790ff5.entry.js.map +0 -1
  783. package/dist/siemens-ix/p-d998415f.entry.js +0 -2
  784. package/dist/siemens-ix/p-d998415f.entry.js.map +0 -1
  785. package/dist/siemens-ix/p-e9a3f58a.entry.js +0 -2
  786. package/dist/siemens-ix/p-eb6268a6.entry.js +0 -2
  787. package/dist/siemens-ix/p-ebb277f0.entry.js +0 -2
  788. package/dist/siemens-ix/p-ebb277f0.entry.js.map +0 -1
  789. package/dist/siemens-ix/p-f318140c.entry.js +0 -2
  790. package/dist/siemens-ix/p-f318140c.entry.js.map +0 -1
  791. package/dist/siemens-ix/p-fb2b78f7.entry.js.map +0 -1
  792. package/dist/siemens-ix/p-fb4c79c6.entry.js +0 -2
  793. package/dist/siemens-ix/p-fc5814df.entry.js.map +0 -1
  794. /package/dist/siemens-ix/{p-fb4c79c6.entry.js.map → p-04af3853.entry.js.map} +0 -0
  795. /package/dist/siemens-ix/{p-4df0cdd7.entry.js.map → p-04ec538b.entry.js.map} +0 -0
  796. /package/dist/siemens-ix/{p-af099ca4.entry.js.map → p-0632731e.entry.js.map} +0 -0
  797. /package/dist/siemens-ix/{p-0d2a6886.entry.js.map → p-091b036d.entry.js.map} +0 -0
  798. /package/dist/siemens-ix/{p-2946fd70.entry.js.map → p-0fafba48.entry.js.map} +0 -0
  799. /package/dist/siemens-ix/{p-7076210b.entry.js.map → p-1483f65d.entry.js.map} +0 -0
  800. /package/dist/siemens-ix/{p-c1968b80.entry.js.map → p-1bd98772.entry.js.map} +0 -0
  801. /package/dist/siemens-ix/{p-8629db91.entry.js.map → p-25f1749c.entry.js.map} +0 -0
  802. /package/dist/siemens-ix/{p-5696bb62.entry.js.map → p-306269ae.entry.js.map} +0 -0
  803. /package/dist/siemens-ix/{p-b3b23af7.entry.js.map → p-35fff1e6.entry.js.map} +0 -0
  804. /package/dist/siemens-ix/{p-92a18c10.entry.js.map → p-411f51c5.entry.js.map} +0 -0
  805. /package/dist/siemens-ix/{p-f78246bd.entry.js.map → p-44a27b29.entry.js.map} +0 -0
  806. /package/dist/siemens-ix/{p-d03df401.entry.js.map → p-49d3fc15.entry.js.map} +0 -0
  807. /package/dist/siemens-ix/{p-113cc793.entry.js.map → p-5af99eaa.entry.js.map} +0 -0
  808. /package/dist/siemens-ix/{p-c1222581.entry.js.map → p-63f0755e.entry.js.map} +0 -0
  809. /package/dist/siemens-ix/{p-14a41c8c.entry.js.map → p-6618b2db.entry.js.map} +0 -0
  810. /package/dist/siemens-ix/{p-0653a145.entry.js.map → p-67f44540.entry.js.map} +0 -0
  811. /package/dist/siemens-ix/{p-53352bfb.entry.js.map → p-77273517.entry.js.map} +0 -0
  812. /package/dist/siemens-ix/{p-882a0233.entry.js.map → p-78ac2ff1.entry.js.map} +0 -0
  813. /package/dist/siemens-ix/{p-32375ddb.entry.js.map → p-7947ef3d.entry.js.map} +0 -0
  814. /package/dist/siemens-ix/{p-fb47546b.entry.js.map → p-7c2f34f0.entry.js.map} +0 -0
  815. /package/dist/siemens-ix/{p-7faa148f.entry.js.map → p-82d33168.entry.js.map} +0 -0
  816. /package/dist/siemens-ix/{p-052340f9.entry.js.map → p-8acc09aa.entry.js.map} +0 -0
  817. /package/dist/siemens-ix/{p-6fd7ecd0.entry.js.map → p-9079f6c8.entry.js.map} +0 -0
  818. /package/dist/siemens-ix/{p-16b923e9.entry.js.map → p-9bdda7ff.entry.js.map} +0 -0
  819. /package/dist/siemens-ix/{p-2c4c03d4.entry.js.map → p-aa814811.entry.js.map} +0 -0
  820. /package/dist/siemens-ix/{p-feac09bc.entry.js.map → p-ba24e694.entry.js.map} +0 -0
  821. /package/dist/siemens-ix/{p-44db3646.entry.js.map → p-c05a98c8.entry.js.map} +0 -0
  822. /package/dist/siemens-ix/{p-71315e2e.entry.js.map → p-c072ddb5.entry.js.map} +0 -0
  823. /package/dist/siemens-ix/{p-8d0758c1.entry.js.map → p-c7e58e9e.entry.js.map} +0 -0
  824. /package/dist/siemens-ix/{p-4430117a.entry.js.map → p-c81c4b9d.entry.js.map} +0 -0
  825. /package/dist/siemens-ix/{p-d950c3a8.entry.js.map → p-cc65617d.entry.js.map} +0 -0
  826. /package/dist/siemens-ix/{p-1a122c76.entry.js.map → p-d300b332.entry.js.map} +0 -0
  827. /package/dist/siemens-ix/{p-ff1ac5b3.entry.js.map → p-e14384df.entry.js.map} +0 -0
  828. /package/dist/siemens-ix/{p-bea7c748.entry.js.map → p-ee96d1eb.entry.js.map} +0 -0
  829. /package/dist/siemens-ix/{p-bc2c74c5.entry.js.map → p-fd5bee44.entry.js.map} +0 -0
  830. /package/dist/siemens-ix/{p-dcb3e5be.entry.js.map → p-ffa856df.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"card-list.e2e.js","sourceRoot":"","sources":["../../../src/tests/card-list/card-list.e2e.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,cAAc,CAAC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAC/C,cAAc,CAAC,oCAAoC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACtE,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACnC,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,CACJ,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAClE,CAAC,eAAe,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,cAAc,CAAC,6BAA6B,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QAC/D,MAAM,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAC3C,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,CACJ,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAClE,CAAC,eAAe,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,cAAc,CAAC,kBAAkB,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACpD,MAAM,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAC3C,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,CACJ,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAClE,CAAC,eAAe,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,cAAc,CAAC,sBAAsB,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACxD,MAAM,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAE3C,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,sBAAsB,EAAE,CAAC;QACpD,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,CACJ,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAClE,CAAC,eAAe,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { expect } from '@playwright/test';\nimport { regressionTest } from '@utils/test';\n\nregressionTest.describe('card-list: basic', () => {\n regressionTest('should not have visual regressions', async ({ page }) => {\n await page.goto('card-list/basic');\n await page.waitForTimeout(1000);\n expect(\n await page.screenshot({ fullPage: true, animations: 'disabled' })\n ).toMatchSnapshot();\n });\n\n regressionTest('should hide show all button', async ({ page }) => {\n await page.goto('card-list/hide-show-all');\n await page.waitForTimeout(1000);\n expect(\n await page.screenshot({ fullPage: true, animations: 'disabled' })\n ).toMatchSnapshot();\n });\n\n regressionTest('layout scrolling', async ({ page }) => {\n await page.goto('card-list/layout-scroll');\n await page.waitForTimeout(1000);\n expect(\n await page.screenshot({ fullPage: true, animations: 'disabled' })\n ).toMatchSnapshot();\n });\n\n regressionTest('layout scrolling end', async ({ page }) => {\n await page.goto('card-list/layout-scroll');\n\n await page.locator('#end').scrollIntoViewIfNeeded();\n await page.waitForTimeout(1000);\n expect(\n await page.screenshot({ fullPage: true, animations: 'disabled' })\n ).toMatchSnapshot();\n });\n});\n"]}
1
+ {"version":3,"file":"card-list.e2e.js","sourceRoot":"","sources":["../../../src/tests/card-list/card-list.e2e.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExD,cAAc,CAAC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAC/C,cAAc,CAAC,oCAAoC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACtE,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACnC,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAEhC,MAAM,CACJ,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAClE,CAAC,eAAe,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,cAAc,CAAC,6BAA6B,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QAC/D,MAAM,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACxC,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,cAAc,CAAC,6BAA6B,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QAC/D,MAAM,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAC3C,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,CACJ,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAClE,CAAC,eAAe,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,cAAc,CAAC,kBAAkB,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACpD,MAAM,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAC3C,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,CACJ,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAClE,CAAC,eAAe,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,cAAc,CAAC,sBAAsB,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACxD,MAAM,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAE3C,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,sBAAsB,EAAE,CAAC;QACpD,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,CACJ,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAClE,CAAC,eAAe,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { expect } from '@playwright/test';\nimport { regressionTest, viewPorts } from '@utils/test';\n\nregressionTest.describe('card-list: basic', () => {\n regressionTest('should not have visual regressions', async ({ page }) => {\n await page.goto('card-list/basic');\n await page.waitForTimeout(1000);\n\n expect(\n await page.screenshot({ fullPage: true, animations: 'disabled' })\n ).toMatchSnapshot();\n });\n\n regressionTest('should show ellipsis label', async ({ page }) => {\n await page.goto('card-list/long-label');\n await page.waitForTimeout(1000);\n await page.setViewportSize(viewPorts.sm);\n expect(await page.screenshot({ animations: 'disabled' })).toMatchSnapshot();\n });\n\n regressionTest('should hide show all button', async ({ page }) => {\n await page.goto('card-list/hide-show-all');\n await page.waitForTimeout(1000);\n expect(\n await page.screenshot({ fullPage: true, animations: 'disabled' })\n ).toMatchSnapshot();\n });\n\n regressionTest('layout scrolling', async ({ page }) => {\n await page.goto('card-list/layout-scroll');\n await page.waitForTimeout(1000);\n expect(\n await page.screenshot({ fullPage: true, animations: 'disabled' })\n ).toMatchSnapshot();\n });\n\n regressionTest('layout scrolling end', async ({ page }) => {\n await page.goto('card-list/layout-scroll');\n\n await page.locator('#end').scrollIntoViewIfNeeded();\n await page.waitForTimeout(1000);\n expect(\n await page.screenshot({ fullPage: true, animations: 'disabled' })\n ).toMatchSnapshot();\n });\n});\n"]}
@@ -15,6 +15,12 @@ regressionTest.describe('dropdown', () => {
15
15
  await page.waitForSelector('.dropdown-menu.show');
16
16
  await expect(page).toHaveScreenshot();
17
17
  });
18
+ regressionTest('checked', async ({ page }) => {
19
+ await page.goto('dropdown/checked');
20
+ await page.locator('ix-button').click();
21
+ await page.waitForSelector('.dropdown-menu.show');
22
+ await expect(page).toHaveScreenshot();
23
+ });
18
24
  regressionTest('overflow', async ({ page }) => {
19
25
  await page.goto('dropdown/overflow');
20
26
  const menuHandle = await page.waitForSelector('.dropdown-menu.show');
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown.e2e.js","sourceRoot":"","sources":["../../../src/tests/dropdown/dropdown.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { expect } from '@playwright/test';\nimport { regressionTest } from '@utils/test';\n\nregressionTest.describe('dropdown', () => {\n regressionTest('basic', async ({ page }) => {\n await page.goto('dropdown/basic');\n\n await page.locator('ix-button').click();\n await page.waitForSelector('.dropdown-menu.show');\n\n await expect(page).toHaveScreenshot();\n });\n\n regressionTest('overflow', async ({ page }) => {\n await page.goto('dropdown/overflow');\n\n const menuHandle = await page.waitForSelector('.dropdown-menu.show');\n\n page.evaluate((menuElement) => {\n menuElement.scrollTop = 9999;\n menuElement.classList.add('__SCROLLED__');\n }, menuHandle);\n\n await page.waitForSelector('.dropdown-menu.show.__SCROLLED__');\n await expect(page).toHaveScreenshot();\n });\n\n regressionTest('disabled', async ({ page }) => {\n await page.goto('dropdown/disabled');\n\n await page.locator('ix-button').click();\n await page.waitForSelector('.dropdown-menu.show');\n\n await expect(page).toHaveScreenshot();\n });\n\n regressionTest('handle multiple', async ({ page }) => {\n await page.goto('dropdown/multiple');\n\n await page.locator('#trigger-a').click();\n await page.waitForSelector('.dropdown-menu.show');\n\n await page.locator('#trigger-b').click();\n await page.waitForSelector('.dropdown-menu.show');\n\n await expect(page).toHaveScreenshot();\n });\n\n regressionTest('zoom', async ({ page }) => {\n await page.goto('dropdown/basic');\n\n // Set the zoom\n await page.setViewportSize({ width: 1280, height: 720 });\n await page.evaluate(() => {\n (document.body.style as any).zoom = '110%';\n });\n\n await page.locator('ix-button').click();\n await page.waitForSelector('.dropdown-menu.show');\n\n await expect(page).toHaveScreenshot();\n });\n});\n"]}
1
+ {"version":3,"file":"dropdown.e2e.js","sourceRoot":"","sources":["../../../src/tests/dropdown/dropdown.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { expect } from '@playwright/test';\nimport { regressionTest } from '@utils/test';\n\nregressionTest.describe('dropdown', () => {\n regressionTest('basic', async ({ page }) => {\n await page.goto('dropdown/basic');\n\n await page.locator('ix-button').click();\n await page.waitForSelector('.dropdown-menu.show');\n\n await expect(page).toHaveScreenshot();\n });\n\n regressionTest('checked', async ({ page }) => {\n await page.goto('dropdown/checked');\n\n await page.locator('ix-button').click();\n await page.waitForSelector('.dropdown-menu.show');\n\n await expect(page).toHaveScreenshot();\n });\n\n regressionTest('overflow', async ({ page }) => {\n await page.goto('dropdown/overflow');\n\n const menuHandle = await page.waitForSelector('.dropdown-menu.show');\n\n page.evaluate((menuElement) => {\n menuElement.scrollTop = 9999;\n menuElement.classList.add('__SCROLLED__');\n }, menuHandle);\n\n await page.waitForSelector('.dropdown-menu.show.__SCROLLED__');\n await expect(page).toHaveScreenshot();\n });\n\n regressionTest('disabled', async ({ page }) => {\n await page.goto('dropdown/disabled');\n\n await page.locator('ix-button').click();\n await page.waitForSelector('.dropdown-menu.show');\n\n await expect(page).toHaveScreenshot();\n });\n\n regressionTest('handle multiple', async ({ page }) => {\n await page.goto('dropdown/multiple');\n\n await page.locator('#trigger-a').click();\n await page.waitForSelector('.dropdown-menu.show');\n\n await page.locator('#trigger-b').click();\n await page.waitForSelector('.dropdown-menu.show');\n\n await expect(page).toHaveScreenshot();\n });\n\n regressionTest('zoom', async ({ page }) => {\n await page.goto('dropdown/basic');\n\n // Set the zoom\n await page.setViewportSize({ width: 1280, height: 720 });\n await page.evaluate(() => {\n (document.body.style as any).zoom = '110%';\n });\n\n await page.locator('ix-button').click();\n await page.waitForSelector('.dropdown-menu.show');\n\n await expect(page).toHaveScreenshot();\n });\n});\n"]}
@@ -32,9 +32,18 @@ regressionTest.describe('group', () => {
32
32
  });
33
33
  regressionTest('item selected', async ({ page }) => {
34
34
  await page.goto('group/basic');
35
- await page.locator('.btn-expand-header ix-icon').click();
36
- await page.locator('text=Example text 1').first().click();
37
- await page.locator('text=Example text 2').first().hover();
35
+ await page.getByTestId('expand-collapsed-icon').click();
36
+ await page.locator('text=Example text 1').click();
37
+ await page.locator('text=Example text 2').hover();
38
+ expect(await page.screenshot({ fullPage: true })).toMatchSnapshot();
39
+ });
40
+ regressionTest('adapt-width', async ({ page }) => {
41
+ await page.goto('group/adapt-width');
42
+ const children = await page.locator('ix-group').all();
43
+ for (const child of children) {
44
+ const groupExpand = child.getByTestId('expand-collapsed-icon');
45
+ await groupExpand.click();
46
+ }
38
47
  expect(await page.screenshot({ fullPage: true })).toMatchSnapshot();
39
48
  });
40
49
  });
@@ -1 +1 @@
1
- {"version":3,"file":"group.e2e.js","sourceRoot":"","sources":["../../../src/tests/group/group.e2e.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,cAAc,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACpC,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACzC,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC/B,MAAM,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,cAAc,CAAC,mBAAmB,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACrD,MAAM,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACtC,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,KAAK,EAAE,CAAC;QAC7C,MAAM,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QAC5C,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC/B,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACjC,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACjC,MAAM,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,cAAc,CAAC,iBAAiB,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACnD,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAClC,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACjC,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACjC,MAAM,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,cAAc,CAAC,eAAe,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACjD,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC/B,MAAM,IAAI,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,KAAK,EAAE,CAAC;QACzD,MAAM,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC;QAC1D,MAAM,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC;QAE1D,MAAM,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;IACtE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { expect } from '@playwright/test';\nimport { regressionTest } from '@utils/test';\n\nregressionTest.describe('group', () => {\n regressionTest('basic', async ({ page }) => {\n await page.goto('group/basic');\n expect(await page.screenshot({ fullPage: true })).toMatchSnapshot();\n });\n\n regressionTest('with context menu', async ({ page }) => {\n await page.goto('group/context-menu');\n await page.locator('ix-icon-button').click();\n expect(await page.screenshot({ fullPage: true })).toMatchSnapshot();\n });\n\n regressionTest('selected', async ({ page }) => {\n await page.goto('group/basic');\n await page.click(\"[id='group']\");\n await page.hover(\"[id='group']\");\n expect(await page.screenshot({ fullPage: true })).toMatchSnapshot();\n });\n\n regressionTest('header overflow', async ({ page }) => {\n await page.goto('group/overflow');\n await page.click(\"[id='group']\");\n await page.hover(\"[id='group']\");\n expect(await page.screenshot({ fullPage: true })).toMatchSnapshot();\n });\n\n regressionTest('item selected', async ({ page }) => {\n await page.goto('group/basic');\n await page.locator('.btn-expand-header ix-icon').click();\n await page.locator('text=Example text 1').first().click();\n await page.locator('text=Example text 2').first().hover();\n\n expect(await page.screenshot({ fullPage: true })).toMatchSnapshot();\n });\n});\n"]}
1
+ {"version":3,"file":"group.e2e.js","sourceRoot":"","sources":["../../../src/tests/group/group.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { expect } from '@playwright/test';\nimport { regressionTest } from '@utils/test';\n\nregressionTest.describe('group', () => {\n regressionTest('basic', async ({ page }) => {\n await page.goto('group/basic');\n expect(await page.screenshot({ fullPage: true })).toMatchSnapshot();\n });\n\n regressionTest('with context menu', async ({ page }) => {\n await page.goto('group/context-menu');\n await page.locator('ix-icon-button').click();\n expect(await page.screenshot({ fullPage: true })).toMatchSnapshot();\n });\n\n regressionTest('selected', async ({ page }) => {\n await page.goto('group/basic');\n await page.click(\"[id='group']\");\n await page.hover(\"[id='group']\");\n expect(await page.screenshot({ fullPage: true })).toMatchSnapshot();\n });\n\n regressionTest('header overflow', async ({ page }) => {\n await page.goto('group/overflow');\n await page.click(\"[id='group']\");\n await page.hover(\"[id='group']\");\n expect(await page.screenshot({ fullPage: true })).toMatchSnapshot();\n });\n\n regressionTest('item selected', async ({ page }) => {\n await page.goto('group/basic');\n await page.getByTestId('expand-collapsed-icon').click();\n await page.locator('text=Example text 1').click();\n await page.locator('text=Example text 2').hover();\n\n expect(await page.screenshot({ fullPage: true })).toMatchSnapshot();\n });\n\n regressionTest('adapt-width', async ({ page }) => {\n await page.goto('group/adapt-width');\n const children = await page.locator('ix-group').all();\n for (const child of children) {\n const groupExpand = child.getByTestId('expand-collapsed-icon');\n await groupExpand.click();\n }\n expect(await page.screenshot({ fullPage: true })).toMatchSnapshot();\n });\n});\n"]}
@@ -45,6 +45,28 @@ regressionTest.describe('tooltip', () => {
45
45
  maxDiffPixelRatio: 0.01,
46
46
  });
47
47
  });
48
+ regressionTest('placement near viewport edge', async ({ page }) => {
49
+ await page.goto('tooltip/placement-on-edge');
50
+ const tooltips = [
51
+ 'myTooltip-left',
52
+ 'myTooltip-right',
53
+ 'myTooltip-top',
54
+ 'myTooltip-bottom',
55
+ ];
56
+ for (const tooltip of tooltips) {
57
+ const tooltipTriggerHandler = await page.waitForSelector(`[data-tooltip="${tooltip}"]`);
58
+ await tooltipTriggerHandler.hover();
59
+ await page.waitForTimeout(500);
60
+ expect(await page.screenshot({ fullPage: true })).toMatchSnapshot();
61
+ }
62
+ });
63
+ regressionTest('global style not bleeding into tooltip', async ({ page }) => {
64
+ await page.goto('tooltip/overlapping-styles');
65
+ const tooltipTriggerHandler = await page.waitForSelector('#test');
66
+ await tooltipTriggerHandler.hover();
67
+ await page.waitForTimeout(500);
68
+ expect(await page.screenshot({ fullPage: true })).toMatchSnapshot();
69
+ });
48
70
  test('tooltip position top', async ({ mount, page }) => {
49
71
  await mount(`
50
72
  <div style="padding: 10rem">
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip.e2e.js","sourceRoot":"","sources":["../../../src/tests/tooltip/tooltip.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { expect } from '@playwright/test';\nimport { regressionTest, test } from '@utils/test';\n\nregressionTest.describe('tooltip', () => {\n regressionTest('Long Text long words', async ({ page }) => {\n await page.goto('tooltip/basic');\n\n const tooltipTriggerHandler = await page.waitForSelector(\n '[data-tooltip=\"Test1\"]'\n );\n\n await tooltipTriggerHandler.hover();\n await page.waitForTimeout(500);\n\n expect(await page.screenshot({ fullPage: true })).toMatchSnapshot({\n maxDiffPixelRatio: 0.01,\n });\n });\n\n regressionTest('Short', async ({ page }) => {\n await page.goto('tooltip/basic');\n\n const tooltipTriggerHandler = await page.waitForSelector(\n '[data-tooltip=\"Test2\"]'\n );\n\n await tooltipTriggerHandler.hover();\n await page.waitForTimeout(500);\n\n expect(await page.screenshot({ fullPage: true })).toMatchSnapshot({\n maxDiffPixelRatio: 0.01,\n });\n });\n\n regressionTest('Long text short words', async ({ page }) => {\n await page.goto('tooltip/basic');\n\n const tooltipTriggerHandler = await page.waitForSelector(\n '[data-tooltip=\"Test3\"]'\n );\n\n await tooltipTriggerHandler.hover();\n await page.waitForTimeout(500);\n\n expect(await page.screenshot({ fullPage: true })).toMatchSnapshot({\n maxDiffPixelRatio: 0.01,\n });\n });\n\n regressionTest('fallback placement', async ({ page }) => {\n await page.goto('tooltip/placement-fallback');\n\n const tooltipTriggerHandler = await page.waitForSelector(\n '[data-tooltip=\"Test3\"]'\n );\n\n await tooltipTriggerHandler.hover();\n await page.waitForTimeout(500);\n\n expect(await page.screenshot({ fullPage: true })).toMatchSnapshot({\n maxDiffPixelRatio: 0.01,\n });\n });\n\n test('tooltip position top', async ({ mount, page }) => {\n await mount(`\n <div style=\"padding: 10rem\">\n <ix-button id=\"trigger\">Trigger</ix-button>\n <ix-tooltip for=\"#trigger\" placement=\"top\">\n Tooltip content 123 123\n </ix-tooltip>\n </div>\n `);\n\n const trigger = await page.waitForSelector('#trigger');\n await trigger.hover();\n await page.waitForTimeout(500);\n\n expect(await page.screenshot({ fullPage: true })).toMatchSnapshot();\n });\n\n test('tooltip position right', async ({ mount, page }) => {\n await mount(`\n <div style=\"padding: 10rem\">\n <ix-button id=\"trigger\">Trigger</ix-button>\n <ix-tooltip for=\"#trigger\" placement=\"right\">\n Tooltip content 123 123\n </ix-tooltip>\n </div>\n `);\n\n const trigger = await page.waitForSelector('#trigger');\n await trigger.hover();\n await page.waitForTimeout(500);\n\n expect(await page.screenshot({ fullPage: true })).toMatchSnapshot();\n });\n\n test('tooltip position bottom', async ({ mount, page }) => {\n await mount(`\n <div style=\"padding: 10rem\">\n <ix-button id=\"trigger\">Trigger</ix-button>\n <ix-tooltip for=\"#trigger\" placement=\"bottom\">\n Tooltip content 123 123\n </ix-tooltip>\n </div>\n `);\n\n const trigger = await page.waitForSelector('#trigger');\n await trigger.hover();\n await page.waitForTimeout(500);\n\n expect(await page.screenshot({ fullPage: true })).toMatchSnapshot();\n });\n\n test('tooltip position left', async ({ mount, page }) => {\n await mount(`\n <div style=\"width: 10rem; height: 10rem\">\n <ix-button id=\"trigger\" style=\"position: absolute; left: 20rem; top: 10rem;\">Trigger</ix-button>\n <ix-tooltip for=\"#trigger\" placement=\"left\">\n Tooltip content 123 123\n </ix-tooltip>\n </div>\n `);\n\n const trigger = await page.waitForSelector('#trigger');\n await trigger.hover();\n await page.waitForTimeout(500);\n\n expect(await page.screenshot({ fullPage: true })).toMatchSnapshot();\n });\n});\n\nregressionTest.describe('tooltip delay', () => {\n ['top', 'right', 'bottom', 'left'].forEach((placement) => {\n test(`tooltip placement ${placement} with delay`, async ({\n mount,\n page,\n }) => {\n const testDelayToShowTooltip = 1100;\n await mount(`\n <div style=\"margin: 20rem\">\n <ix-button>Long text</ix-button>\n <ix-tooltip\n for=\"ix-button\"\n title-content=\"Test\"\n showDelay=\"1000\"\n placement=\"${placement}\"\n >\n Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam\n Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam\n </ix-tooltip>\n </div>\n `);\n\n const tooltipTrigger = page.locator('ix-button');\n await tooltipTrigger.hover();\n\n await page.waitForTimeout(testDelayToShowTooltip);\n\n expect(await page.screenshot()).toMatchSnapshot();\n });\n });\n});\n"]}
1
+ {"version":3,"file":"tooltip.e2e.js","sourceRoot":"","sources":["../../../src/tests/tooltip/tooltip.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { expect } from '@playwright/test';\nimport { regressionTest, test } from '@utils/test';\n\nregressionTest.describe('tooltip', () => {\n regressionTest('Long Text long words', async ({ page }) => {\n await page.goto('tooltip/basic');\n\n const tooltipTriggerHandler = await page.waitForSelector(\n '[data-tooltip=\"Test1\"]'\n );\n\n await tooltipTriggerHandler.hover();\n await page.waitForTimeout(500);\n\n expect(await page.screenshot({ fullPage: true })).toMatchSnapshot({\n maxDiffPixelRatio: 0.01,\n });\n });\n\n regressionTest('Short', async ({ page }) => {\n await page.goto('tooltip/basic');\n\n const tooltipTriggerHandler = await page.waitForSelector(\n '[data-tooltip=\"Test2\"]'\n );\n\n await tooltipTriggerHandler.hover();\n await page.waitForTimeout(500);\n\n expect(await page.screenshot({ fullPage: true })).toMatchSnapshot({\n maxDiffPixelRatio: 0.01,\n });\n });\n\n regressionTest('Long text short words', async ({ page }) => {\n await page.goto('tooltip/basic');\n\n const tooltipTriggerHandler = await page.waitForSelector(\n '[data-tooltip=\"Test3\"]'\n );\n\n await tooltipTriggerHandler.hover();\n await page.waitForTimeout(500);\n\n expect(await page.screenshot({ fullPage: true })).toMatchSnapshot({\n maxDiffPixelRatio: 0.01,\n });\n });\n\n regressionTest('fallback placement', async ({ page }) => {\n await page.goto('tooltip/placement-fallback');\n\n const tooltipTriggerHandler = await page.waitForSelector(\n '[data-tooltip=\"Test3\"]'\n );\n\n await tooltipTriggerHandler.hover();\n await page.waitForTimeout(500);\n\n expect(await page.screenshot({ fullPage: true })).toMatchSnapshot({\n maxDiffPixelRatio: 0.01,\n });\n });\n\n regressionTest('placement near viewport edge', async ({ page }) => {\n await page.goto('tooltip/placement-on-edge');\n\n const tooltips = [\n 'myTooltip-left',\n 'myTooltip-right',\n 'myTooltip-top',\n 'myTooltip-bottom',\n ];\n\n for (const tooltip of tooltips) {\n const tooltipTriggerHandler = await page.waitForSelector(\n `[data-tooltip=\"${tooltip}\"]`\n );\n\n await tooltipTriggerHandler.hover();\n await page.waitForTimeout(500);\n\n expect(await page.screenshot({ fullPage: true })).toMatchSnapshot();\n }\n });\n\n regressionTest('global style not bleeding into tooltip', async ({ page }) => {\n await page.goto('tooltip/overlapping-styles');\n\n const tooltipTriggerHandler = await page.waitForSelector('#test');\n\n await tooltipTriggerHandler.hover();\n await page.waitForTimeout(500);\n\n expect(await page.screenshot({ fullPage: true })).toMatchSnapshot();\n });\n\n test('tooltip position top', async ({ mount, page }) => {\n await mount(`\n <div style=\"padding: 10rem\">\n <ix-button id=\"trigger\">Trigger</ix-button>\n <ix-tooltip for=\"#trigger\" placement=\"top\">\n Tooltip content 123 123\n </ix-tooltip>\n </div>\n `);\n\n const trigger = await page.waitForSelector('#trigger');\n await trigger.hover();\n await page.waitForTimeout(500);\n\n expect(await page.screenshot({ fullPage: true })).toMatchSnapshot();\n });\n\n test('tooltip position right', async ({ mount, page }) => {\n await mount(`\n <div style=\"padding: 10rem\">\n <ix-button id=\"trigger\">Trigger</ix-button>\n <ix-tooltip for=\"#trigger\" placement=\"right\">\n Tooltip content 123 123\n </ix-tooltip>\n </div>\n `);\n\n const trigger = await page.waitForSelector('#trigger');\n await trigger.hover();\n await page.waitForTimeout(500);\n\n expect(await page.screenshot({ fullPage: true })).toMatchSnapshot();\n });\n\n test('tooltip position bottom', async ({ mount, page }) => {\n await mount(`\n <div style=\"padding: 10rem\">\n <ix-button id=\"trigger\">Trigger</ix-button>\n <ix-tooltip for=\"#trigger\" placement=\"bottom\">\n Tooltip content 123 123\n </ix-tooltip>\n </div>\n `);\n\n const trigger = await page.waitForSelector('#trigger');\n await trigger.hover();\n await page.waitForTimeout(500);\n\n expect(await page.screenshot({ fullPage: true })).toMatchSnapshot();\n });\n\n test('tooltip position left', async ({ mount, page }) => {\n await mount(`\n <div style=\"width: 10rem; height: 10rem\">\n <ix-button id=\"trigger\" style=\"position: absolute; left: 20rem; top: 10rem;\">Trigger</ix-button>\n <ix-tooltip for=\"#trigger\" placement=\"left\">\n Tooltip content 123 123\n </ix-tooltip>\n </div>\n `);\n\n const trigger = await page.waitForSelector('#trigger');\n await trigger.hover();\n await page.waitForTimeout(500);\n\n expect(await page.screenshot({ fullPage: true })).toMatchSnapshot();\n });\n});\n\nregressionTest.describe('tooltip delay', () => {\n ['top', 'right', 'bottom', 'left'].forEach((placement) => {\n test(`tooltip placement ${placement} with delay`, async ({\n mount,\n page,\n }) => {\n const testDelayToShowTooltip = 1100;\n await mount(`\n <div style=\"margin: 20rem\">\n <ix-button>Long text</ix-button>\n <ix-tooltip\n for=\"ix-button\"\n title-content=\"Test\"\n showDelay=\"1000\"\n placement=\"${placement}\"\n >\n Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam\n Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam\n </ix-tooltip>\n </div>\n `);\n\n const tooltipTrigger = page.locator('ix-button');\n await tooltipTrigger.hover();\n\n await page.waitForTimeout(testDelayToShowTooltip);\n\n expect(await page.screenshot()).toMatchSnapshot();\n });\n });\n});\n"]}
@@ -49,5 +49,17 @@ regressionTest.describe('tree', () => {
49
49
  }, treeViewportHandle);
50
50
  expect(await page.screenshot({ fullPage: true })).toMatchSnapshot();
51
51
  });
52
+ regressionTest('item overflow', async ({ page }) => {
53
+ await page.goto('tree/overflow');
54
+ page.setViewportSize({ width: 100, height: 100 });
55
+ const treeViewportHandle = await page.waitForSelector('ix-tree');
56
+ await page.evaluate((tree) => {
57
+ const model = tree.model;
58
+ model['sample-child-1'].data.name =
59
+ 'This is a very long text that should overflow';
60
+ tree.model = Object.assign({}, model);
61
+ }, treeViewportHandle);
62
+ expect(await page.screenshot({ fullPage: true })).toMatchSnapshot();
63
+ });
52
64
  });
53
65
  //# sourceMappingURL=tree.e2e.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tree.e2e.js","sourceRoot":"","sources":["../../../src/tests/tree/tree.e2e.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,cAAc,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;IACnC,cAAc,CAAC,4BAA4B,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QAC9D,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAE9B,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAEjE,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE;YAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAEzB,KAAK,CAAC,YAAY,CAAC,GAAG;gBACpB,EAAE,EAAE,YAAY;gBAChB,QAAQ,EAAE,EAAE;gBACZ,WAAW,EAAE,KAAK;gBAClB,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;aAC7B,CAAC;YAEF,KAAK,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAE5C,IAAI,CAAC,KAAK,qBAAQ,KAAK,CAAE,CAAC;QAC5B,CAAC,EAAE,kBAAkB,CAAC,CAAC;QAEvB,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAE/B,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,YAAY,EAAE,EAAE;YACnC,YAAY,CAAC,SAAS,GAAG,EAAE,GAAG,GAAG,CAAC;QACpC,CAAC,EAAE,kBAAkB,CAAC,CAAC;QAEvB,MAAM,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,cAAc,CAAC,0BAA0B,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QAC5D,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAE9B,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAEjE,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,YAAY,EAAE,EAAE;YACnC,YAAY,CAAC,SAAS,GAAG,EAAE,GAAG,EAAE,CAAC;QACnC,CAAC,EAAE,kBAAkB,CAAC,CAAC;QAEvB,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE;YAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAEzB,KAAK,CAAC,iBAAiB,CAAC,GAAG;gBACzB,EAAE,EAAE,iBAAiB;gBACrB,QAAQ,EAAE,EAAE;gBACZ,WAAW,EAAE,KAAK;gBAClB,IAAI,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE;aAClC,CAAC;YAEF,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CACxD,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,iBAAiB,CACjC,CAAC;YAEF,KAAK,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC,EAAE,iBAAiB,CAAC,CAAC;YAEzE,IAAI,CAAC,KAAK,qBAAQ,KAAK,CAAE,CAAC;QAC5B,CAAC,EAAE,kBAAkB,CAAC,CAAC;QAEvB,MAAM,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;IACtE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { expect } from '@playwright/test';\nimport { regressionTest } from '@utils/test';\n\nregressionTest.describe('tree', () => {\n regressionTest('should append item to tree', async ({ page }) => {\n await page.goto('tree/basic');\n\n const treeViewportHandle = await page.waitForSelector('ix-tree');\n\n await page.evaluate((tree) => {\n const model = tree.model;\n\n model['last-child'] = {\n id: 'last-child',\n children: [],\n hasChildren: false,\n data: { name: 'last-child' },\n };\n\n model['sample'].children.push('last-child');\n\n tree.model = { ...model };\n }, treeViewportHandle);\n\n await page.waitForTimeout(500);\n\n await page.evaluate((treeViewport) => {\n treeViewport.scrollTop = 32 * 999;\n }, treeViewportHandle);\n\n expect(await page.screenshot({ fullPage: true })).toMatchSnapshot();\n });\n\n regressionTest('should keep scroll state', async ({ page }) => {\n await page.goto('tree/basic');\n\n const treeViewportHandle = await page.waitForSelector('ix-tree');\n\n await page.evaluate((treeViewport) => {\n treeViewport.scrollTop = 32 * 50;\n }, treeViewportHandle);\n\n await page.evaluate((tree) => {\n const model = tree.model;\n\n model['insert-below-50'] = {\n id: 'insert-below-50',\n children: [],\n hasChildren: false,\n data: { name: 'insert-below-50' },\n };\n\n const indexOfItem50 = tree.model.sample.children.findIndex(\n (id) => id === 'sample-child-50'\n );\n\n model['sample'].children.splice(indexOfItem50 + 1, 0, 'insert-below-50');\n\n tree.model = { ...model };\n }, treeViewportHandle);\n\n expect(await page.screenshot({ fullPage: true })).toMatchSnapshot();\n });\n});\n"]}
1
+ {"version":3,"file":"tree.e2e.js","sourceRoot":"","sources":["../../../src/tests/tree/tree.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { expect } from '@playwright/test';\nimport { regressionTest } from '@utils/test';\n\nregressionTest.describe('tree', () => {\n regressionTest('should append item to tree', async ({ page }) => {\n await page.goto('tree/basic');\n\n const treeViewportHandle = await page.waitForSelector('ix-tree');\n\n await page.evaluate((tree) => {\n const model = tree.model;\n\n model['last-child'] = {\n id: 'last-child',\n children: [],\n hasChildren: false,\n data: { name: 'last-child' },\n };\n\n model['sample'].children.push('last-child');\n\n tree.model = { ...model };\n }, treeViewportHandle);\n\n await page.waitForTimeout(500);\n\n await page.evaluate((treeViewport) => {\n treeViewport.scrollTop = 32 * 999;\n }, treeViewportHandle);\n\n expect(await page.screenshot({ fullPage: true })).toMatchSnapshot();\n });\n\n regressionTest('should keep scroll state', async ({ page }) => {\n await page.goto('tree/basic');\n\n const treeViewportHandle = await page.waitForSelector('ix-tree');\n\n await page.evaluate((treeViewport) => {\n treeViewport.scrollTop = 32 * 50;\n }, treeViewportHandle);\n\n await page.evaluate((tree) => {\n const model = tree.model;\n\n model['insert-below-50'] = {\n id: 'insert-below-50',\n children: [],\n hasChildren: false,\n data: { name: 'insert-below-50' },\n };\n\n const indexOfItem50 = tree.model.sample.children.findIndex(\n (id) => id === 'sample-child-50'\n );\n\n model['sample'].children.splice(indexOfItem50 + 1, 0, 'insert-below-50');\n\n tree.model = { ...model };\n }, treeViewportHandle);\n\n expect(await page.screenshot({ fullPage: true })).toMatchSnapshot();\n });\n\n regressionTest('item overflow', async ({ page }) => {\n await page.goto('tree/overflow');\n\n page.setViewportSize({ width: 100, height: 100 });\n\n const treeViewportHandle = await page.waitForSelector('ix-tree');\n\n await page.evaluate((tree) => {\n const model = tree.model;\n\n model['sample-child-1'].data.name =\n 'This is a very long text that should overflow';\n\n tree.model = { ...model };\n }, treeViewportHandle);\n\n expect(await page.screenshot({ fullPage: true })).toMatchSnapshot();\n });\n});\n"]}
@@ -1,5 +1,5 @@
1
1
  /*
2
- * SPDX-FileCopyrightText: 2023 Siemens AG
2
+ * SPDX-FileCopyrightText: 2024 Siemens AG
3
3
  *
4
4
  * SPDX-License-Identifier: MIT
5
5
  *
@@ -139,4 +139,4 @@ const a11yAttributes = [
139
139
 
140
140
  export { a11yBoolean as a, a11yHostAttributes as b, getFallbackLabelFromIconName as g };
141
141
 
142
- //# sourceMappingURL=a11y-d5444a76.js.map
142
+ //# sourceMappingURL=a11y-2e34777f.js.map
@@ -1 +1 @@
1
- {"file":"a11y-d5444a76.js","mappings":"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","names":[],"sources":["src/components/utils/condition-checks.ts","src/components/utils/a11y.ts"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nexport const isHttpUrl = (link: string) => {\n if (!link) {\n return false;\n }\n\n let url: URL;\n\n try {\n url = new URL(link);\n } catch (e) {\n return false;\n }\n\n return url.protocol === 'http:' || url.protocol === 'https:';\n};\n\nexport const isSvgDataUrl = (url: string) => {\n if (!url) {\n return false;\n }\n\n if (typeof url !== 'string') {\n return false;\n }\n\n return url.startsWith('data:image/svg+xml');\n};\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { isHttpUrl, isSvgDataUrl } from './condition-checks';\n\nexport const a11yBoolean = (value: boolean) => (value ? 'true' : 'false');\n\nconst kebabCaseToUpperCaseSentence = (kebabCase: string) => {\n const withoutFilledSuffix = kebabCase.replace('-filled', '');\n const words = withoutFilledSuffix.split('-');\n const sentence = words\n .map((word) => {\n const trimWord = word.trim();\n const digitLessWord = trimWord.replace(/\\d+/g, '');\n\n if (digitLessWord.length === 0) {\n return trimWord;\n }\n\n return digitLessWord;\n })\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' ');\n\n return sentence;\n};\n\nexport const getFallbackLabelFromIconName = (iconName: string) => {\n if (!iconName) {\n return 'Unknown';\n }\n\n if (isHttpUrl(iconName)) {\n return 'Unknown';\n }\n\n if (isSvgDataUrl(iconName)) {\n return 'Unknown';\n }\n\n const label = kebabCaseToUpperCaseSentence(iconName);\n\n if (label.length === 0) {\n return 'Unknown';\n }\n\n return label;\n};\n\nexport const a11yHostAttributes = (\n hostElement: HTMLElement,\n ignoreAttributes: A11yAttributeName[] = []\n): Record<A11yAttributeName, any> => {\n const attributeObject: Record<string, any> = {};\n a11yAttributes.forEach((attr) => {\n if (hostElement.hasAttribute(attr)) {\n const value = hostElement.getAttribute(attr);\n if (value !== null && !ignoreAttributes.includes(attr)) {\n attributeObject[attr] = hostElement.getAttribute(attr);\n hostElement.removeAttribute(attr);\n }\n }\n });\n\n return attributeObject;\n};\n\ntype PartialRecord<K extends keyof any, T> = {\n [P in K]?: T;\n};\nexport type A11yAttributes = PartialRecord<A11yAttributeName, any>;\n\nexport type A11yAttributeName =\n | 'role'\n | 'aria-activedescendant'\n | 'aria-atomic'\n | 'aria-autocomplete'\n | 'aria-braillelabel'\n | 'aria-brailleroledescription'\n | 'aria-busy'\n | 'aria-checked'\n | 'aria-colcount'\n | 'aria-colindex'\n | 'aria-colindextext'\n | 'aria-colspan'\n | 'aria-controls'\n | 'aria-current'\n | 'aria-describedby'\n | 'aria-description'\n | 'aria-details'\n | 'aria-disabled'\n | 'aria-errormessage'\n | 'aria-expanded'\n | 'aria-flowto'\n | 'aria-haspopup'\n | 'aria-hidden'\n | 'aria-invalid'\n | 'aria-keyshortcuts'\n | 'aria-label'\n | 'aria-labelledby'\n | 'aria-level'\n | 'aria-live'\n | 'aria-multiline'\n | 'aria-multiselectable'\n | 'aria-orientation'\n | 'aria-owns'\n | 'aria-placeholder'\n | 'aria-posinset'\n | 'aria-pressed'\n | 'aria-readonly'\n | 'aria-relevant'\n | 'aria-required'\n | 'aria-roledescription'\n | 'aria-rowcount'\n | 'aria-rowindex'\n | 'aria-rowindextext'\n | 'aria-rowspan'\n | 'aria-selected'\n | 'aria-setsize'\n | 'aria-sort'\n | 'aria-valuemax'\n | 'aria-valuemin'\n | 'aria-valuenow'\n | 'aria-valuetext';\n\nconst a11yAttributes: A11yAttributeName[] = [\n 'role',\n 'aria-activedescendant',\n 'aria-atomic',\n 'aria-autocomplete',\n 'aria-braillelabel',\n 'aria-brailleroledescription',\n 'aria-busy',\n 'aria-checked',\n 'aria-colcount',\n 'aria-colindex',\n 'aria-colindextext',\n 'aria-colspan',\n 'aria-controls',\n 'aria-current',\n 'aria-describedby',\n 'aria-description',\n 'aria-details',\n 'aria-disabled',\n 'aria-errormessage',\n 'aria-expanded',\n 'aria-flowto',\n 'aria-haspopup',\n 'aria-hidden',\n 'aria-invalid',\n 'aria-keyshortcuts',\n 'aria-label',\n 'aria-labelledby',\n 'aria-level',\n 'aria-live',\n 'aria-multiline',\n 'aria-multiselectable',\n 'aria-orientation',\n 'aria-owns',\n 'aria-placeholder',\n 'aria-posinset',\n 'aria-pressed',\n 'aria-readonly',\n 'aria-relevant',\n 'aria-required',\n 'aria-roledescription',\n 'aria-rowcount',\n 'aria-rowindex',\n 'aria-rowindextext',\n 'aria-rowspan',\n 'aria-selected',\n 'aria-setsize',\n 'aria-sort',\n 'aria-valuemax',\n 'aria-valuemin',\n 'aria-valuenow',\n 'aria-valuetext',\n];\n"],"version":3}
1
+ {"file":"a11y-2e34777f.js","mappings":"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","names":[],"sources":["src/components/utils/condition-checks.ts","src/components/utils/a11y.ts"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nexport const isHttpUrl = (link: string) => {\n if (!link) {\n return false;\n }\n\n let url: URL;\n\n try {\n url = new URL(link);\n } catch (e) {\n return false;\n }\n\n return url.protocol === 'http:' || url.protocol === 'https:';\n};\n\nexport const isSvgDataUrl = (url: string) => {\n if (!url) {\n return false;\n }\n\n if (typeof url !== 'string') {\n return false;\n }\n\n return url.startsWith('data:image/svg+xml');\n};\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { isHttpUrl, isSvgDataUrl } from './condition-checks';\n\nexport const a11yBoolean = (value: boolean) => (value ? 'true' : 'false');\n\nconst kebabCaseToUpperCaseSentence = (kebabCase: string) => {\n const withoutFilledSuffix = kebabCase.replace('-filled', '');\n const words = withoutFilledSuffix.split('-');\n const sentence = words\n .map((word) => {\n const trimWord = word.trim();\n const digitLessWord = trimWord.replace(/\\d+/g, '');\n\n if (digitLessWord.length === 0) {\n return trimWord;\n }\n\n return digitLessWord;\n })\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' ');\n\n return sentence;\n};\n\nexport const getFallbackLabelFromIconName = (iconName: string) => {\n if (!iconName) {\n return 'Unknown';\n }\n\n if (isHttpUrl(iconName)) {\n return 'Unknown';\n }\n\n if (isSvgDataUrl(iconName)) {\n return 'Unknown';\n }\n\n const label = kebabCaseToUpperCaseSentence(iconName);\n\n if (label.length === 0) {\n return 'Unknown';\n }\n\n return label;\n};\n\nexport const a11yHostAttributes = (\n hostElement: HTMLElement,\n ignoreAttributes: A11yAttributeName[] = []\n): Record<A11yAttributeName, any> => {\n const attributeObject: Record<string, any> = {};\n a11yAttributes.forEach((attr) => {\n if (hostElement.hasAttribute(attr)) {\n const value = hostElement.getAttribute(attr);\n if (value !== null && !ignoreAttributes.includes(attr)) {\n attributeObject[attr] = hostElement.getAttribute(attr);\n hostElement.removeAttribute(attr);\n }\n }\n });\n\n return attributeObject;\n};\n\ntype PartialRecord<K extends keyof any, T> = {\n [P in K]?: T;\n};\nexport type A11yAttributes = PartialRecord<A11yAttributeName, any>;\n\nexport type A11yAttributeName =\n | 'role'\n | 'aria-activedescendant'\n | 'aria-atomic'\n | 'aria-autocomplete'\n | 'aria-braillelabel'\n | 'aria-brailleroledescription'\n | 'aria-busy'\n | 'aria-checked'\n | 'aria-colcount'\n | 'aria-colindex'\n | 'aria-colindextext'\n | 'aria-colspan'\n | 'aria-controls'\n | 'aria-current'\n | 'aria-describedby'\n | 'aria-description'\n | 'aria-details'\n | 'aria-disabled'\n | 'aria-errormessage'\n | 'aria-expanded'\n | 'aria-flowto'\n | 'aria-haspopup'\n | 'aria-hidden'\n | 'aria-invalid'\n | 'aria-keyshortcuts'\n | 'aria-label'\n | 'aria-labelledby'\n | 'aria-level'\n | 'aria-live'\n | 'aria-multiline'\n | 'aria-multiselectable'\n | 'aria-orientation'\n | 'aria-owns'\n | 'aria-placeholder'\n | 'aria-posinset'\n | 'aria-pressed'\n | 'aria-readonly'\n | 'aria-relevant'\n | 'aria-required'\n | 'aria-roledescription'\n | 'aria-rowcount'\n | 'aria-rowindex'\n | 'aria-rowindextext'\n | 'aria-rowspan'\n | 'aria-selected'\n | 'aria-setsize'\n | 'aria-sort'\n | 'aria-valuemax'\n | 'aria-valuemin'\n | 'aria-valuenow'\n | 'aria-valuetext';\n\nconst a11yAttributes: A11yAttributeName[] = [\n 'role',\n 'aria-activedescendant',\n 'aria-atomic',\n 'aria-autocomplete',\n 'aria-braillelabel',\n 'aria-brailleroledescription',\n 'aria-busy',\n 'aria-checked',\n 'aria-colcount',\n 'aria-colindex',\n 'aria-colindextext',\n 'aria-colspan',\n 'aria-controls',\n 'aria-current',\n 'aria-describedby',\n 'aria-description',\n 'aria-details',\n 'aria-disabled',\n 'aria-errormessage',\n 'aria-expanded',\n 'aria-flowto',\n 'aria-haspopup',\n 'aria-hidden',\n 'aria-invalid',\n 'aria-keyshortcuts',\n 'aria-label',\n 'aria-labelledby',\n 'aria-level',\n 'aria-live',\n 'aria-multiline',\n 'aria-multiselectable',\n 'aria-orientation',\n 'aria-owns',\n 'aria-placeholder',\n 'aria-posinset',\n 'aria-pressed',\n 'aria-readonly',\n 'aria-relevant',\n 'aria-required',\n 'aria-roledescription',\n 'aria-rowcount',\n 'aria-rowindex',\n 'aria-rowindextext',\n 'aria-rowspan',\n 'aria-selected',\n 'aria-setsize',\n 'aria-sort',\n 'aria-valuemax',\n 'aria-valuemin',\n 'aria-valuenow',\n 'aria-valuetext',\n];\n"],"version":3}
@@ -1,7 +1,7 @@
1
1
  import { T as TypedEvent } from './typed-event-ad6484c5.js';
2
2
 
3
3
  /*
4
- * SPDX-FileCopyrightText: 2023 Siemens AG
4
+ * SPDX-FileCopyrightText: 2024 Siemens AG
5
5
  *
6
6
  * SPDX-License-Identifier: MIT
7
7
  *
@@ -98,4 +98,4 @@ const ApplicationLayoutContext = createContext('application-layout-context', {
98
98
 
99
99
  export { ApplicationLayoutContext as A, useContextConsumer as a, closestIxMenu as c, useContextProvider as u };
100
100
 
101
- //# sourceMappingURL=context-c9078420.js.map
101
+ //# sourceMappingURL=context-82a1ccf8.js.map
@@ -1 +1 @@
1
- {"file":"context-c9078420.js","mappings":";;AAAA;;;;;;;;AA+BA;;;SAGgB,aAAa,CAC3B,IAAY,EACZ,YAAgB;IAEhB,OAAO;QACL,IAAI;QACJ,YAAY;KACb,CAAC;AACJ,CAAC;AAWD;;;;;;;;;;MAUa,YAAuC,SAAQ,KAAK;IAC/D,YACkB,OAAU,EACV,QAAyC,EACzC,SAAmB;QAEnC,KAAK,CAAC,iBAAiB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAJ5C,YAAO,GAAP,OAAO,CAAG;QACV,aAAQ,GAAR,QAAQ,CAAiC;QACzC,cAAS,GAAT,SAAS,CAAU;KAGpC;CACF;SAgBe,kBAAkB,CAIhC,WAAc,EACd,OAAU,EACV,iBAGS,EACT,SAAmB;IAEnB,IAAI,YAAwB,CAAC;IAC7B,WAAW,CAAC,aAAa,CACvB,IAAI,YAAY,CACd,OAAO,EACP,CAAC,GAAG,EAAE,KAAK;QACT,iBAAiB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC9B,YAAY,GAAG,KAAK,CAAC;KACtB,EACD,SAAS,CACV,CACF,CAAC;IAEF,OAAO;QACL,WAAW,EAAE;YACX,YAAY,EAAE,CAAC;SAChB;KACF,CAAC;AACJ,CAAC;SAKe,kBAAkB,CAKhC,WAAc,EACd,OAAU,EACV,cAA+B;IAE/B,MAAM,cAAc,GAAG,IAAI,UAAU,EAAmB,CAAC;IACzD,MAAM,aAAa,GAAG,IAAI,UAAU,EAAkB,CAAC;IAEvD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAgC,CAAC;IAEzD,WAAW,CAAC,gBAAgB,CAC1B,iBAAiB,EACjB,CAAC,mBAAoC;QACnC,IAAI,CAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,OAAO,CAAC,IAAI,MAAK,OAAO,CAAC,IAAI,EAAE;YACtD,OAAO;SACR;QAED,mBAAmB,CAAC,eAAe,EAAE,CAAC;QAEtC,IAAI,mBAAmB,CAAC,SAAS,EAAE;YACjC,QAAQ,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;SACnC;QACD,cAAc,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAEzC,IAAI,cAAc,EAAE;YAClB,mBAAmB,CAAC,QAAQ,CAAC,cAAc,EAAE;gBAC3C,QAAQ,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;aACtC,CAAC,CAAC;SACJ;KACF,CACF,CAAC;IAEF,aAAa,CAAC,EAAE,CAAC,CAAC,OAAuB;QACvC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,KACjB,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE;YAClB,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SACpB,CAAC,CACH,CAAC;KACH,CAAC,CAAC;IAEH,OAAO;QACL,IAAI,EAAE,CAAC,OAAuB;YAC5B,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAC7B;KACF,CAAC;AACJ;;AC1KA;;;;;;;;MAWa,aAAa,GAAG,CAAC,OAAgB;IAC5C,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC/C,OAAO,WAAW,CAAC;AACrB,EAAE;MAuBW,wBAAwB,GAAG,aAAa,CAKlD,4BAA4B,EAAE;IAC/B,UAAU,EAAE,KAAK;IACjB,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,KAAK;CACf;;;;","names":[],"sources":["src/components/utils/context.ts","src/components/utils/application-layout/context.ts"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { TypedEvent } from './typed-event';\n\n/**\n * A Context object defines an optional initial value for a Context, as well as a name identifier for debugging purposes.\n */\nexport type Context<T> = {\n name: string;\n initialValue?: T;\n};\n\n/**\n * An unknown context type\n */\nexport type UnknownContext = Context<unknown>;\n\n/**\n * A helper type which can extract a Context value type from a Context type\n */\nexport type ContextType<T extends UnknownContext> = T extends Context<infer Y>\n ? Y\n : never;\n\n/**\n * A function which creates a Context value object\n */\nexport function createContext<T>(\n name: string,\n initialValue?: T\n): Readonly<Context<T>> {\n return {\n name,\n initialValue,\n };\n}\n\n/**\n * A callback which is provided by a context requester and is called with the value satisfying the request.\n * This callback can be called multiple times by context providers as the requested value is changed.\n */\nexport type ContextCallback<ValueType> = (\n value: ValueType,\n unsubscribe?: () => void\n) => void;\n\n/**\n * An event fired by a context requester to signal it desires a named context.\n *\n * A provider should inspect the `context` property of the event to determine if it has a value that can\n * satisfy the request, calling the `callback` with the requested value if so.\n *\n * If the requested context event contains a truthy `subscribe` value, then a provider can call the callback\n * multiple times if the value is changed, if this is the case the provider should pass an `unsubscribe`\n * function to the callback which requesters can invoke to indicate they no longer wish to receive these updates.\n */\nexport class ContextEvent<T extends UnknownContext> extends Event {\n public constructor(\n public readonly context: T,\n public readonly callback: ContextCallback<ContextType<T>>,\n public readonly subscribe?: boolean\n ) {\n super('context-request', { bubbles: true, composed: true });\n }\n}\n\ndeclare global {\n interface HTMLElementEventMap {\n /**\n * A 'context-request' event can be emitted by any element which desires\n * a context value to be injected by an external provider.\n */\n 'context-request': ContextEvent<UnknownContext>;\n }\n}\n\nexport type ContextConsumerSubscription = {\n unsubscribe: () => void;\n};\n\nexport function useContextConsumer<\n T extends HTMLElement,\n C extends UnknownContext,\n>(\n hostElement: T,\n context: C,\n onContextReceived: (\n context: ContextType<C>,\n unsubscribe?: () => void\n ) => void,\n subscribe?: boolean\n): ContextConsumerSubscription {\n let _unsubscribe: () => void;\n hostElement.dispatchEvent(\n new ContextEvent(\n context,\n (ctx, unSub) => {\n onContextReceived(ctx, unSub);\n _unsubscribe = unSub;\n },\n subscribe\n )\n );\n\n return {\n unsubscribe: () => {\n _unsubscribe();\n },\n };\n}\nexport type ContextProvider<C extends Context<{}> = Context<any>> = {\n emit: (context: ContextType<C>) => void;\n};\n\nexport function useContextProvider<\n X extends {},\n C extends Context<X>,\n T extends HTMLElement = HTMLElement,\n>(\n hostElement: T,\n context: C,\n contextPayload?: ContextType<C>\n): ContextProvider<C> {\n const requestContext = new TypedEvent<ContextEvent<C>>();\n const updateContext = new TypedEvent<ContextType<C>>();\n\n const requests = new Set<ContextEvent<UnknownContext>>();\n\n hostElement.addEventListener(\n 'context-request',\n (requestContextEvent: ContextEvent<C>) => {\n if (requestContextEvent?.context.name !== context.name) {\n return;\n }\n\n requestContextEvent.stopPropagation();\n\n if (requestContextEvent.subscribe) {\n requests.add(requestContextEvent);\n }\n requestContext.emit(requestContextEvent);\n\n if (contextPayload) {\n requestContextEvent.callback(contextPayload, () => {\n requests.delete(requestContextEvent);\n });\n }\n }\n );\n\n updateContext.on((context: ContextType<C>) => {\n requests.forEach((r) =>\n r.callback(context, () => {\n requests.delete(r);\n })\n );\n });\n\n return {\n emit: (context: ContextType<C>) => {\n updateContext.emit(context);\n },\n };\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { createContext } from '../context';\n\nexport const closestIxMenu = (element: Element) => {\n const menuElement = element.closest('ix-menu');\n return menuElement;\n};\n\nexport type AppSwitchConfigurationTarget =\n | '_self'\n | '_blank'\n | '_parent'\n | '_top'\n | (string & {});\n\nexport type AppSwitchConfiguration = {\n currentAppId: string;\n apps: {\n id: string;\n name: string;\n description: string;\n url: string;\n target: AppSwitchConfigurationTarget;\n iconSrc: string;\n }[];\n i18nAppSwitch?: string;\n i18nLoadingApps?: string;\n};\n\nexport const ApplicationLayoutContext = createContext<{\n hideHeader: boolean;\n host: 'basic-navigation' | 'map-navigation' | null;\n appSwitchConfig?: AppSwitchConfiguration;\n sidebar?: boolean;\n}>('application-layout-context', {\n hideHeader: false,\n host: null,\n sidebar: false,\n});\n"],"version":3}
1
+ {"file":"context-82a1ccf8.js","mappings":";;AAAA;;;;;;;;AA+BA;;;SAGgB,aAAa,CAC3B,IAAY,EACZ,YAAgB;IAEhB,OAAO;QACL,IAAI;QACJ,YAAY;KACb,CAAC;AACJ,CAAC;AAWD;;;;;;;;;;MAUa,YAAuC,SAAQ,KAAK;IAC/D,YACkB,OAAU,EACV,QAAyC,EACzC,SAAmB;QAEnC,KAAK,CAAC,iBAAiB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAJ5C,YAAO,GAAP,OAAO,CAAG;QACV,aAAQ,GAAR,QAAQ,CAAiC;QACzC,cAAS,GAAT,SAAS,CAAU;KAGpC;CACF;SAgBe,kBAAkB,CAIhC,WAAc,EACd,OAAU,EACV,iBAGS,EACT,SAAmB;IAEnB,IAAI,YAAwB,CAAC;IAC7B,WAAW,CAAC,aAAa,CACvB,IAAI,YAAY,CACd,OAAO,EACP,CAAC,GAAG,EAAE,KAAK;QACT,iBAAiB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC9B,YAAY,GAAG,KAAK,CAAC;KACtB,EACD,SAAS,CACV,CACF,CAAC;IAEF,OAAO;QACL,WAAW,EAAE;YACX,YAAY,EAAE,CAAC;SAChB;KACF,CAAC;AACJ,CAAC;SAKe,kBAAkB,CAKhC,WAAc,EACd,OAAU,EACV,cAA+B;IAE/B,MAAM,cAAc,GAAG,IAAI,UAAU,EAAmB,CAAC;IACzD,MAAM,aAAa,GAAG,IAAI,UAAU,EAAkB,CAAC;IAEvD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAgC,CAAC;IAEzD,WAAW,CAAC,gBAAgB,CAC1B,iBAAiB,EACjB,CAAC,mBAAoC;QACnC,IAAI,CAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,OAAO,CAAC,IAAI,MAAK,OAAO,CAAC,IAAI,EAAE;YACtD,OAAO;SACR;QAED,mBAAmB,CAAC,eAAe,EAAE,CAAC;QAEtC,IAAI,mBAAmB,CAAC,SAAS,EAAE;YACjC,QAAQ,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;SACnC;QACD,cAAc,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAEzC,IAAI,cAAc,EAAE;YAClB,mBAAmB,CAAC,QAAQ,CAAC,cAAc,EAAE;gBAC3C,QAAQ,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;aACtC,CAAC,CAAC;SACJ;KACF,CACF,CAAC;IAEF,aAAa,CAAC,EAAE,CAAC,CAAC,OAAuB;QACvC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,KACjB,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE;YAClB,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SACpB,CAAC,CACH,CAAC;KACH,CAAC,CAAC;IAEH,OAAO;QACL,IAAI,EAAE,CAAC,OAAuB;YAC5B,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAC7B;KACF,CAAC;AACJ;;AC1KA;;;;;;;;MAWa,aAAa,GAAG,CAAC,OAAgB;IAC5C,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC/C,OAAO,WAAW,CAAC;AACrB,EAAE;MAuBW,wBAAwB,GAAG,aAAa,CAKlD,4BAA4B,EAAE;IAC/B,UAAU,EAAE,KAAK;IACjB,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,KAAK;CACf;;;;","names":[],"sources":["src/components/utils/context.ts","src/components/utils/application-layout/context.ts"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { TypedEvent } from './typed-event';\n\n/**\n * A Context object defines an optional initial value for a Context, as well as a name identifier for debugging purposes.\n */\nexport type Context<T> = {\n name: string;\n initialValue?: T;\n};\n\n/**\n * An unknown context type\n */\nexport type UnknownContext = Context<unknown>;\n\n/**\n * A helper type which can extract a Context value type from a Context type\n */\nexport type ContextType<T extends UnknownContext> = T extends Context<infer Y>\n ? Y\n : never;\n\n/**\n * A function which creates a Context value object\n */\nexport function createContext<T>(\n name: string,\n initialValue?: T\n): Readonly<Context<T>> {\n return {\n name,\n initialValue,\n };\n}\n\n/**\n * A callback which is provided by a context requester and is called with the value satisfying the request.\n * This callback can be called multiple times by context providers as the requested value is changed.\n */\nexport type ContextCallback<ValueType> = (\n value: ValueType,\n unsubscribe?: () => void\n) => void;\n\n/**\n * An event fired by a context requester to signal it desires a named context.\n *\n * A provider should inspect the `context` property of the event to determine if it has a value that can\n * satisfy the request, calling the `callback` with the requested value if so.\n *\n * If the requested context event contains a truthy `subscribe` value, then a provider can call the callback\n * multiple times if the value is changed, if this is the case the provider should pass an `unsubscribe`\n * function to the callback which requesters can invoke to indicate they no longer wish to receive these updates.\n */\nexport class ContextEvent<T extends UnknownContext> extends Event {\n public constructor(\n public readonly context: T,\n public readonly callback: ContextCallback<ContextType<T>>,\n public readonly subscribe?: boolean\n ) {\n super('context-request', { bubbles: true, composed: true });\n }\n}\n\ndeclare global {\n interface HTMLElementEventMap {\n /**\n * A 'context-request' event can be emitted by any element which desires\n * a context value to be injected by an external provider.\n */\n 'context-request': ContextEvent<UnknownContext>;\n }\n}\n\nexport type ContextConsumerSubscription = {\n unsubscribe: () => void;\n};\n\nexport function useContextConsumer<\n T extends HTMLElement,\n C extends UnknownContext,\n>(\n hostElement: T,\n context: C,\n onContextReceived: (\n context: ContextType<C>,\n unsubscribe?: () => void\n ) => void,\n subscribe?: boolean\n): ContextConsumerSubscription {\n let _unsubscribe: () => void;\n hostElement.dispatchEvent(\n new ContextEvent(\n context,\n (ctx, unSub) => {\n onContextReceived(ctx, unSub);\n _unsubscribe = unSub;\n },\n subscribe\n )\n );\n\n return {\n unsubscribe: () => {\n _unsubscribe();\n },\n };\n}\nexport type ContextProvider<C extends Context<{}> = Context<any>> = {\n emit: (context: ContextType<C>) => void;\n};\n\nexport function useContextProvider<\n X extends {},\n C extends Context<X>,\n T extends HTMLElement = HTMLElement,\n>(\n hostElement: T,\n context: C,\n contextPayload?: ContextType<C>\n): ContextProvider<C> {\n const requestContext = new TypedEvent<ContextEvent<C>>();\n const updateContext = new TypedEvent<ContextType<C>>();\n\n const requests = new Set<ContextEvent<UnknownContext>>();\n\n hostElement.addEventListener(\n 'context-request',\n (requestContextEvent: ContextEvent<C>) => {\n if (requestContextEvent?.context.name !== context.name) {\n return;\n }\n\n requestContextEvent.stopPropagation();\n\n if (requestContextEvent.subscribe) {\n requests.add(requestContextEvent);\n }\n requestContext.emit(requestContextEvent);\n\n if (contextPayload) {\n requestContextEvent.callback(contextPayload, () => {\n requests.delete(requestContextEvent);\n });\n }\n }\n );\n\n updateContext.on((context: ContextType<C>) => {\n requests.forEach((r) =>\n r.callback(context, () => {\n requests.delete(r);\n })\n );\n });\n\n return {\n emit: (context: ContextType<C>) => {\n updateContext.emit(context);\n },\n };\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { createContext } from '../context';\n\nexport const closestIxMenu = (element: Element) => {\n const menuElement = element.closest('ix-menu');\n return menuElement;\n};\n\nexport type AppSwitchConfigurationTarget =\n | '_self'\n | '_blank'\n | '_parent'\n | '_top'\n | (string & {});\n\nexport type AppSwitchConfiguration = {\n currentAppId: string;\n apps: {\n id: string;\n name: string;\n description: string;\n url: string;\n target: AppSwitchConfigurationTarget;\n iconSrc: string;\n }[];\n i18nAppSwitch?: string;\n i18nLoadingApps?: string;\n};\n\nexport const ApplicationLayoutContext = createContext<{\n hideHeader: boolean;\n host: 'basic-navigation' | 'map-navigation' | null;\n appSwitchConfig?: AppSwitchConfiguration;\n sidebar?: boolean;\n}>('application-layout-context', {\n hideHeader: false,\n host: null,\n sidebar: false,\n});\n"],"version":3}
@@ -0,0 +1,140 @@
1
+ /*
2
+ * SPDX-FileCopyrightText: 2024 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
+ function hasDropdownItemWrapperImplemented(item) {
10
+ return (item &&
11
+ item.getDropdownItemElement !== undefined &&
12
+ typeof item.getDropdownItemElement === 'function');
13
+ }
14
+ class DropdownController {
15
+ constructor() {
16
+ this.dropdowns = new Map();
17
+ this.submenuIds = {};
18
+ this.isWindowListenerActive = false;
19
+ }
20
+ connected(dropdown) {
21
+ if (!this.isWindowListenerActive) {
22
+ this.addOverlayListeners();
23
+ }
24
+ this.dropdowns.set(dropdown.getId(), dropdown);
25
+ if (dropdown.discoverAllSubmenus) {
26
+ this.discoverSubmenus();
27
+ }
28
+ }
29
+ disconnected(dropdown) {
30
+ this.dropdowns.delete(dropdown.getId());
31
+ }
32
+ discoverSubmenus() {
33
+ this.dropdowns.forEach((dropdown) => {
34
+ dropdown.discoverSubmenu();
35
+ });
36
+ }
37
+ present(dropdown) {
38
+ if (!dropdown.isPresent() && dropdown.willPresent()) {
39
+ this.submenuIds[dropdown.getId()] = dropdown.getAssignedSubmenuIds();
40
+ dropdown.present();
41
+ }
42
+ }
43
+ dismissChildren(uid) {
44
+ const childIds = this.submenuIds[uid] || [];
45
+ for (const id of childIds) {
46
+ this.dismiss(this.dropdowns.get(id));
47
+ }
48
+ }
49
+ dismiss(dropdown) {
50
+ if (dropdown.isPresent() && dropdown.willDismiss()) {
51
+ this.dismissChildren(dropdown.getId());
52
+ dropdown.dismiss();
53
+ delete this.submenuIds[dropdown.getId()];
54
+ }
55
+ }
56
+ dismissAll(ignoreBehaviorForIds = [], ignoreRelatedDropdowns = false) {
57
+ this.dropdowns.forEach((dropdown) => {
58
+ const preventClosing = dropdown.closeBehavior === 'inside' || dropdown.closeBehavior === false;
59
+ const shouldIgnore = ignoreBehaviorForIds.includes(dropdown.getId());
60
+ const path = this.buildComposedPath(dropdown.getId(), new Set());
61
+ if (ignoreBehaviorForIds.length > 0 && ignoreRelatedDropdowns) {
62
+ let skipRelatedDropdown = false;
63
+ ignoreBehaviorForIds.forEach((id) => {
64
+ if (path.has(id)) {
65
+ skipRelatedDropdown = true;
66
+ return;
67
+ }
68
+ });
69
+ if (!skipRelatedDropdown) {
70
+ return;
71
+ }
72
+ }
73
+ if (!shouldIgnore && preventClosing) {
74
+ return;
75
+ }
76
+ this.dismiss(dropdown);
77
+ });
78
+ }
79
+ dismissOthers(uid) {
80
+ let path = this.buildComposedPath(uid, new Set());
81
+ path.add(uid);
82
+ this.dropdowns.forEach((dropdown) => {
83
+ if (dropdown.closeBehavior !== 'inside' &&
84
+ dropdown.closeBehavior !== false &&
85
+ !path.has(dropdown.getId())) {
86
+ this.dismiss(dropdown);
87
+ }
88
+ });
89
+ }
90
+ pathIncludesTrigger(eventTargets) {
91
+ for (let eventTarget of eventTargets) {
92
+ if (eventTarget instanceof HTMLElement) {
93
+ if (eventTarget.hasAttribute('data-ix-dropdown-trigger')) {
94
+ return eventTarget;
95
+ }
96
+ }
97
+ }
98
+ return;
99
+ }
100
+ pathIncludesDropdown(eventTargets) {
101
+ return !!eventTargets.find((element) => element.tagName === 'IX-DROPDOWN');
102
+ }
103
+ buildComposedPath(id, path) {
104
+ if (this.submenuIds[id]) {
105
+ path.add(id);
106
+ }
107
+ for (const ruleKey of Object.keys(this.submenuIds)) {
108
+ if (this.submenuIds[ruleKey].includes(id)) {
109
+ this.buildComposedPath(ruleKey, path).forEach((key) => path.add(key));
110
+ }
111
+ }
112
+ return path;
113
+ }
114
+ addOverlayListeners() {
115
+ this.isWindowListenerActive = true;
116
+ window.addEventListener('click', (event) => {
117
+ const hasTrigger = this.pathIncludesTrigger(event.composedPath());
118
+ const hasDropdown = this.pathIncludesDropdown(event.composedPath());
119
+ if (!hasTrigger && !hasDropdown) {
120
+ this.dismissAll();
121
+ }
122
+ });
123
+ window.addEventListener('keydown', (event) => {
124
+ if (event.key === 'Escape') {
125
+ this.dismissAll([...this.dropdowns.keys()]);
126
+ }
127
+ });
128
+ }
129
+ }
130
+ const addDisposableEventListener = (element, eventType, callback) => {
131
+ element.addEventListener(eventType, callback);
132
+ return () => {
133
+ element.removeEventListener(eventType, callback);
134
+ };
135
+ };
136
+ const dropdownController = new DropdownController();
137
+
138
+ export { addDisposableEventListener as a, dropdownController as d, hasDropdownItemWrapperImplemented as h };
139
+
140
+ //# sourceMappingURL=dropdown-controller-95bd6750.js.map
@@ -0,0 +1 @@
1
+ {"file":"dropdown-controller-95bd6750.js","mappings":"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","names":[],"sources":["src/components/dropdown/dropdown-controller.ts"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { IxComponent } from '../utils/internal';\nexport type CloseBehavior = 'inside' | 'outside' | 'both' | boolean;\n\nexport interface DropdownInterface extends IxComponent {\n closeBehavior: CloseBehavior;\n discoverAllSubmenus: boolean;\n\n getAssignedSubmenuIds(): string[];\n getId(): string;\n\n discoverSubmenu(): void;\n\n isPresent(): boolean;\n\n willPresent?(): boolean;\n willDismiss?(): boolean;\n\n present(): void;\n dismiss(): void;\n}\n\nexport function hasDropdownItemWrapperImplemented(\n item: unknown\n): item is DropdownItemWrapper {\n return (\n item &&\n (item as DropdownItemWrapper).getDropdownItemElement !== undefined &&\n typeof (item as DropdownItemWrapper).getDropdownItemElement === 'function'\n );\n}\n\nexport interface DropdownItemWrapper {\n getDropdownItemElement(): Promise<HTMLIxDropdownItemElement>;\n}\n\ntype SubmenuIds = Record<string, string[]>;\n\nclass DropdownController {\n private dropdowns: Map<string, DropdownInterface> = new Map<\n string,\n DropdownInterface\n >();\n private submenuIds: SubmenuIds = {};\n\n private isWindowListenerActive = false;\n\n connected(dropdown: DropdownInterface) {\n if (!this.isWindowListenerActive) {\n this.addOverlayListeners();\n }\n this.dropdowns.set(dropdown.getId(), dropdown);\n\n if (dropdown.discoverAllSubmenus) {\n this.discoverSubmenus();\n }\n }\n\n disconnected(dropdown: DropdownInterface) {\n this.dropdowns.delete(dropdown.getId());\n }\n\n discoverSubmenus() {\n this.dropdowns.forEach((dropdown) => {\n dropdown.discoverSubmenu();\n });\n }\n\n present(dropdown: DropdownInterface) {\n if (!dropdown.isPresent() && dropdown.willPresent()) {\n this.submenuIds[dropdown.getId()] = dropdown.getAssignedSubmenuIds();\n dropdown.present();\n }\n }\n\n dismissChildren(uid: string) {\n const childIds = this.submenuIds[uid] || [];\n for (const id of childIds) {\n this.dismiss(this.dropdowns.get(id));\n }\n }\n\n dismiss(dropdown: DropdownInterface) {\n if (dropdown.isPresent() && dropdown.willDismiss()) {\n this.dismissChildren(dropdown.getId());\n dropdown.dismiss();\n delete this.submenuIds[dropdown.getId()];\n }\n }\n\n dismissAll(\n ignoreBehaviorForIds: string[] = [],\n ignoreRelatedDropdowns = false\n ) {\n this.dropdowns.forEach((dropdown) => {\n const preventClosing =\n dropdown.closeBehavior === 'inside' || dropdown.closeBehavior === false;\n\n const shouldIgnore = ignoreBehaviorForIds.includes(dropdown.getId());\n const path = this.buildComposedPath(dropdown.getId(), new Set<string>());\n\n if (ignoreBehaviorForIds.length > 0 && ignoreRelatedDropdowns) {\n let skipRelatedDropdown = false;\n\n ignoreBehaviorForIds.forEach((id) => {\n if (path.has(id)) {\n skipRelatedDropdown = true;\n return;\n }\n });\n\n if (!skipRelatedDropdown) {\n return;\n }\n }\n\n if (!shouldIgnore && preventClosing) {\n return;\n }\n\n this.dismiss(dropdown);\n });\n }\n\n dismissOthers(uid: string) {\n let path = this.buildComposedPath(uid, new Set<string>());\n path.add(uid);\n\n this.dropdowns.forEach((dropdown) => {\n if (\n dropdown.closeBehavior !== 'inside' &&\n dropdown.closeBehavior !== false &&\n !path.has(dropdown.getId())\n ) {\n this.dismiss(dropdown);\n }\n });\n }\n\n pathIncludesTrigger(eventTargets: EventTarget[]) {\n for (let eventTarget of eventTargets) {\n if (eventTarget instanceof HTMLElement) {\n if (eventTarget.hasAttribute('data-ix-dropdown-trigger')) {\n return eventTarget;\n }\n }\n }\n\n return;\n }\n\n private pathIncludesDropdown(eventTargets: EventTarget[]) {\n return !!eventTargets.find(\n (element: HTMLElement) => element.tagName === 'IX-DROPDOWN'\n );\n }\n\n private buildComposedPath(id: string, path: Set<string>): Set<string> {\n if (this.submenuIds[id]) {\n path.add(id);\n }\n\n for (const ruleKey of Object.keys(this.submenuIds)) {\n if (this.submenuIds[ruleKey].includes(id)) {\n this.buildComposedPath(ruleKey, path).forEach((key) => path.add(key));\n }\n }\n\n return path;\n }\n\n private addOverlayListeners() {\n this.isWindowListenerActive = true;\n\n window.addEventListener('click', (event: PointerEvent) => {\n const hasTrigger = this.pathIncludesTrigger(event.composedPath());\n const hasDropdown = this.pathIncludesDropdown(event.composedPath());\n\n if (!hasTrigger && !hasDropdown) {\n this.dismissAll();\n }\n });\n\n window.addEventListener('keydown', (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n this.dismissAll([...this.dropdowns.keys()]);\n }\n });\n }\n}\n\nexport const addDisposableEventListener = (\n element: Element | Window | Document,\n eventType: string,\n callback: EventListenerOrEventListenerObject\n) => {\n element.addEventListener(eventType, callback);\n\n return () => {\n element.removeEventListener(eventType, callback);\n };\n};\n\nexport const addDisposableEventListenerAsArray = (\n listener: {\n element: Element | Window | Document;\n eventType: string;\n callback: EventListenerOrEventListenerObject;\n }[]\n) => {\n const disposables = listener.map(({ callback, element, eventType }) =>\n addDisposableEventListener(element, eventType, callback)\n );\n\n return () => disposables.forEach((dispose) => dispose());\n};\n\nexport const dropdownController = new DropdownController();\n"],"version":3}