@infineon/infineon-design-system-stencil 30.9.3--canary.1496.9fc4de9852ba9ec2e36ce3e0ff89d8fddb5acdc5.0 → 30.9.3--canary.1679.8d0c83c3f0040ae0386585c5203298c7d94911f3.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 (857) hide show
  1. package/dist/cjs/ifx-accordion_2.cjs.entry.js +2 -1
  2. package/dist/cjs/ifx-accordion_2.cjs.entry.js.map +1 -1
  3. package/dist/cjs/ifx-alert.cjs.entry.js +49 -0
  4. package/dist/cjs/ifx-alert.cjs.entry.js.map +1 -0
  5. package/dist/cjs/ifx-badge.cjs.entry.js +1 -1
  6. package/dist/cjs/ifx-basic-table.cjs.entry.js +7 -3
  7. package/dist/cjs/ifx-basic-table.cjs.entry.js.map +1 -1
  8. package/dist/cjs/ifx-breadcrumb-item-label.cjs.entry.js +3 -1
  9. package/dist/cjs/ifx-breadcrumb-item-label.cjs.entry.js.map +1 -1
  10. package/dist/cjs/ifx-breadcrumb-item.cjs.entry.js +2 -1
  11. package/dist/cjs/ifx-breadcrumb-item.cjs.entry.js.map +1 -1
  12. package/dist/cjs/ifx-breadcrumb.cjs.entry.js +1 -1
  13. package/dist/cjs/ifx-button.cjs.entry.js +11 -8
  14. package/dist/cjs/ifx-button.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ifx-card-headline.cjs.entry.js +3 -1
  16. package/dist/cjs/ifx-card-headline.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ifx-card-image.cjs.entry.js +4 -1
  18. package/dist/cjs/ifx-card-image.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ifx-card-links.cjs.entry.js +1 -1
  20. package/dist/cjs/ifx-card-overline.cjs.entry.js +1 -1
  21. package/dist/cjs/ifx-card-text.cjs.entry.js +2 -1
  22. package/dist/cjs/ifx-card-text.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ifx-card.cjs.entry.js +5 -1
  24. package/dist/cjs/ifx-card.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ifx-checkbox.cjs.entry.js +4 -1
  26. package/dist/cjs/ifx-checkbox.cjs.entry.js.map +1 -1
  27. package/dist/cjs/ifx-chip_3.cjs.entry.js +7 -6
  28. package/dist/cjs/ifx-chip_3.cjs.entry.js.map +1 -1
  29. package/dist/cjs/ifx-content-switcher-item.cjs.entry.js +2 -1
  30. package/dist/cjs/ifx-content-switcher-item.cjs.entry.js.map +1 -1
  31. package/dist/cjs/ifx-content-switcher.cjs.entry.js +3 -2
  32. package/dist/cjs/ifx-content-switcher.cjs.entry.js.map +1 -1
  33. package/dist/cjs/ifx-date-picker.cjs.entry.js +7 -1
  34. package/dist/cjs/ifx-date-picker.cjs.entry.js.map +1 -1
  35. package/dist/cjs/ifx-dropdown-header.cjs.entry.js +1 -1
  36. package/dist/cjs/ifx-dropdown-item.cjs.entry.js +2 -1
  37. package/dist/cjs/ifx-dropdown-item.cjs.entry.js.map +1 -1
  38. package/dist/cjs/ifx-dropdown-menu.cjs.entry.js +1 -1
  39. package/dist/cjs/ifx-dropdown-menu.cjs.entry.js.map +1 -1
  40. package/dist/cjs/ifx-dropdown-separator.cjs.entry.js +1 -1
  41. package/dist/cjs/ifx-dropdown-trigger-button.cjs.entry.js +3 -1
  42. package/dist/cjs/ifx-dropdown-trigger-button.cjs.entry.js.map +1 -1
  43. package/dist/cjs/ifx-dropdown-trigger.cjs.entry.js +1 -1
  44. package/dist/cjs/ifx-dropdown-trigger.cjs.entry.js.map +1 -1
  45. package/dist/cjs/ifx-dropdown.cjs.entry.js +4 -4
  46. package/dist/cjs/ifx-dropdown.cjs.entry.js.map +1 -1
  47. package/dist/cjs/ifx-faq.cjs.entry.js +2 -2
  48. package/dist/cjs/ifx-filter-accordion.cjs.entry.js +8 -7
  49. package/dist/cjs/ifx-filter-accordion.cjs.entry.js.map +1 -1
  50. package/dist/cjs/ifx-filter-bar.cjs.entry.js +7 -6
  51. package/dist/cjs/ifx-filter-bar.cjs.entry.js.map +1 -1
  52. package/dist/cjs/ifx-filter-search.cjs.entry.js +7 -3
  53. package/dist/cjs/ifx-filter-search.cjs.entry.js.map +1 -1
  54. package/dist/cjs/ifx-filter-type-group.cjs.entry.js +3 -3
  55. package/dist/cjs/ifx-filter-type-group.cjs.entry.js.map +1 -1
  56. package/dist/cjs/ifx-footer-column.cjs.entry.js +1 -1
  57. package/dist/cjs/ifx-footer.cjs.entry.js +3 -3
  58. package/dist/cjs/ifx-footer.cjs.entry.js.map +1 -1
  59. package/dist/cjs/ifx-icon-button.cjs.entry.js +6 -1
  60. package/dist/cjs/ifx-icon-button.cjs.entry.js.map +1 -1
  61. package/dist/cjs/ifx-icon.cjs.entry.js +2 -1
  62. package/dist/cjs/ifx-icon.cjs.entry.js.map +1 -1
  63. package/dist/cjs/ifx-icons-preview.cjs.entry.js +2 -1
  64. package/dist/cjs/ifx-icons-preview.cjs.entry.js.map +1 -1
  65. package/dist/cjs/ifx-link.cjs.entry.js +2 -1
  66. package/dist/cjs/ifx-link.cjs.entry.js.map +1 -1
  67. package/dist/cjs/ifx-list-entry.cjs.entry.js +5 -2
  68. package/dist/cjs/ifx-list-entry.cjs.entry.js.map +1 -1
  69. package/dist/cjs/ifx-list.cjs.entry.js +10 -9
  70. package/dist/cjs/ifx-list.cjs.entry.js.map +1 -1
  71. package/dist/cjs/ifx-modal.cjs.entry.js +12 -12
  72. package/dist/cjs/ifx-modal.cjs.entry.js.map +1 -1
  73. package/dist/cjs/{ifx-multiselect.cjs.entry.js → ifx-multiselect_2.cjs.entry.js} +93 -20
  74. package/dist/cjs/ifx-multiselect_2.cjs.entry.js.map +1 -0
  75. package/dist/cjs/ifx-navbar-item.cjs.entry.js +2 -1
  76. package/dist/cjs/ifx-navbar-item.cjs.entry.js.map +1 -1
  77. package/dist/cjs/ifx-navbar-profile.cjs.entry.js +5 -5
  78. package/dist/cjs/ifx-navbar-profile.cjs.entry.js.map +1 -1
  79. package/dist/cjs/ifx-navbar.cjs.entry.js +2 -1
  80. package/dist/cjs/ifx-navbar.cjs.entry.js.map +1 -1
  81. package/dist/cjs/ifx-notification.cjs.entry.js +4 -1
  82. package/dist/cjs/ifx-notification.cjs.entry.js.map +1 -1
  83. package/dist/cjs/ifx-number-indicator.cjs.entry.js +1 -1
  84. package/dist/cjs/ifx-number-indicator.cjs.entry.js.map +1 -1
  85. package/dist/cjs/ifx-overview-table.cjs.entry.js +2 -2
  86. package/dist/cjs/ifx-overview-table.cjs.entry.js.map +1 -1
  87. package/dist/cjs/ifx-progress-bar.cjs.entry.js +4 -2
  88. package/dist/cjs/ifx-progress-bar.cjs.entry.js.map +1 -1
  89. package/dist/cjs/ifx-radio-button.cjs.entry.js +7 -3
  90. package/dist/cjs/ifx-radio-button.cjs.entry.js.map +1 -1
  91. package/dist/cjs/ifx-search-bar.cjs.entry.js +7 -4
  92. package/dist/cjs/ifx-search-bar.cjs.entry.js.map +1 -1
  93. package/dist/cjs/ifx-search-field.cjs.entry.js +11 -11
  94. package/dist/cjs/ifx-search-field.cjs.entry.js.map +1 -1
  95. package/dist/cjs/ifx-segment.cjs.entry.js +5 -2
  96. package/dist/cjs/ifx-segment.cjs.entry.js.map +1 -1
  97. package/dist/cjs/ifx-segmented-control.cjs.entry.js +4 -4
  98. package/dist/cjs/ifx-segmented-control.cjs.entry.js.map +1 -1
  99. package/dist/cjs/ifx-select.cjs.entry.js +47 -5
  100. package/dist/cjs/ifx-select.cjs.entry.js.map +1 -1
  101. package/dist/cjs/ifx-set-filter.cjs.entry.js +5 -1
  102. package/dist/cjs/ifx-set-filter.cjs.entry.js.map +1 -1
  103. package/dist/cjs/ifx-sidebar-item.cjs.entry.js +5 -3
  104. package/dist/cjs/ifx-sidebar-item.cjs.entry.js.map +1 -1
  105. package/dist/cjs/ifx-sidebar-title.cjs.entry.js +1 -1
  106. package/dist/cjs/ifx-sidebar.cjs.entry.js +1 -1
  107. package/dist/cjs/ifx-sidebar.cjs.entry.js.map +1 -1
  108. package/dist/cjs/ifx-slider.cjs.entry.js +10 -3
  109. package/dist/cjs/ifx-slider.cjs.entry.js.map +1 -1
  110. package/dist/cjs/ifx-spinner.cjs.entry.js +35 -0
  111. package/dist/cjs/ifx-spinner.cjs.entry.js.map +1 -0
  112. package/dist/cjs/ifx-status.cjs.entry.js +3 -2
  113. package/dist/cjs/ifx-status.cjs.entry.js.map +1 -1
  114. package/dist/cjs/ifx-step.cjs.entry.js +6 -5
  115. package/dist/cjs/ifx-step.cjs.entry.js.map +1 -1
  116. package/dist/cjs/ifx-stepper.cjs.entry.js +4 -3
  117. package/dist/cjs/ifx-stepper.cjs.entry.js.map +1 -1
  118. package/dist/cjs/ifx-switch.cjs.entry.js +3 -2
  119. package/dist/cjs/ifx-switch.cjs.entry.js.map +1 -1
  120. package/dist/cjs/ifx-tab.cjs.entry.js +4 -2
  121. package/dist/cjs/ifx-tab.cjs.entry.js.map +1 -1
  122. package/dist/cjs/ifx-table.cjs.entry.js +10 -6
  123. package/dist/cjs/ifx-table.cjs.entry.js.map +1 -1
  124. package/dist/cjs/ifx-tabs.cjs.entry.js +4 -3
  125. package/dist/cjs/ifx-tabs.cjs.entry.js.map +1 -1
  126. package/dist/cjs/ifx-tag.cjs.entry.js +3 -2
  127. package/dist/cjs/ifx-tag.cjs.entry.js.map +1 -1
  128. package/dist/cjs/ifx-textarea.cjs.entry.js +11 -3
  129. package/dist/cjs/ifx-textarea.cjs.entry.js.map +1 -1
  130. package/dist/cjs/ifx-tooltip.cjs.entry.js +12 -11
  131. package/dist/cjs/ifx-tooltip.cjs.entry.js.map +1 -1
  132. package/dist/cjs/{index-76f7fe32.js → index-af3b4f6c.js} +116 -153
  133. package/dist/cjs/index-af3b4f6c.js.map +1 -0
  134. package/dist/cjs/infineon-design-system-stencil.cjs.js +3 -3
  135. package/dist/cjs/infineon-design-system-stencil.cjs.js.map +1 -1
  136. package/dist/cjs/loader.cjs.js +2 -2
  137. package/dist/collection/collection-manifest.json +1 -3
  138. package/dist/collection/components/accordion/accordion.js.map +1 -1
  139. package/dist/collection/components/accordion/accordionItem.js +1 -0
  140. package/dist/collection/components/accordion/accordionItem.js.map +1 -1
  141. package/dist/collection/components/alert/alert.js +5 -3
  142. package/dist/collection/components/alert/alert.js.map +1 -1
  143. package/dist/collection/components/breadcrumb/breadcrumb-item-label.js +2 -0
  144. package/dist/collection/components/breadcrumb/breadcrumb-item-label.js.map +1 -1
  145. package/dist/collection/components/breadcrumb/breadcrumb-item.js +1 -0
  146. package/dist/collection/components/breadcrumb/breadcrumb-item.js.map +1 -1
  147. package/dist/collection/components/button/button.js +10 -7
  148. package/dist/collection/components/button/button.js.map +1 -1
  149. package/dist/collection/components/card/card-headline/card-headline.js +4 -0
  150. package/dist/collection/components/card/card-headline/card-headline.js.map +1 -1
  151. package/dist/collection/components/card/card-image/card-image.js +5 -0
  152. package/dist/collection/components/card/card-image/card-image.js.map +1 -1
  153. package/dist/collection/components/card/card-text/card-text.js +3 -0
  154. package/dist/collection/components/card/card-text/card-text.js.map +1 -1
  155. package/dist/collection/components/card/card.js +4 -0
  156. package/dist/collection/components/card/card.js.map +1 -1
  157. package/dist/collection/components/checkbox/checkbox.js +3 -0
  158. package/dist/collection/components/checkbox/checkbox.js.map +1 -1
  159. package/dist/collection/components/chip/chip-item/chip-item.js.map +1 -1
  160. package/dist/collection/components/chip/chip.js +1 -0
  161. package/dist/collection/components/chip/chip.js.map +1 -1
  162. package/dist/collection/components/content-switcher/content-switcher-item.js +1 -0
  163. package/dist/collection/components/content-switcher/content-switcher-item.js.map +1 -1
  164. package/dist/collection/components/content-switcher/content-switcher.js +2 -1
  165. package/dist/collection/components/content-switcher/content-switcher.js.map +1 -1
  166. package/dist/collection/components/date-picker/date-picker.js +6 -0
  167. package/dist/collection/components/date-picker/date-picker.js.map +1 -1
  168. package/dist/collection/components/dropdown/dropdown-item/dropdown-item.js +1 -0
  169. package/dist/collection/components/dropdown/dropdown-item/dropdown-item.js.map +1 -1
  170. package/dist/collection/components/dropdown/dropdown-menu/dropdown-menu.js.map +1 -1
  171. package/dist/collection/components/dropdown/dropdown-trigger/dropdown-trigger.js.map +1 -1
  172. package/dist/collection/components/dropdown/dropdown-trigger-button/dropdown-trigger-button.js +2 -0
  173. package/dist/collection/components/dropdown/dropdown-trigger-button/dropdown-trigger-button.js.map +1 -1
  174. package/dist/collection/components/dropdown/dropdown.js +3 -3
  175. package/dist/collection/components/dropdown/dropdown.js.map +1 -1
  176. package/dist/collection/components/footer/footer.js +2 -2
  177. package/dist/collection/components/footer/footer.js.map +1 -1
  178. package/dist/collection/components/icon/infineonIconStencil.js +1 -0
  179. package/dist/collection/components/icon/infineonIconStencil.js.map +1 -1
  180. package/dist/collection/components/icon-button/icon-button.js +5 -0
  181. package/dist/collection/components/icon-button/icon-button.js.map +1 -1
  182. package/dist/collection/components/icons-preview/icons-preview.js +1 -0
  183. package/dist/collection/components/icons-preview/icons-preview.js.map +1 -1
  184. package/dist/collection/components/link/link.js +1 -0
  185. package/dist/collection/components/link/link.js.map +1 -1
  186. package/dist/collection/components/modal/modal.js +11 -11
  187. package/dist/collection/components/modal/modal.js.map +1 -1
  188. package/dist/collection/components/navigation/navbar/navbar-item.js +1 -0
  189. package/dist/collection/components/navigation/navbar/navbar-item.js.map +1 -1
  190. package/dist/collection/components/navigation/navbar/navbar-profile.js +4 -4
  191. package/dist/collection/components/navigation/navbar/navbar-profile.js.map +1 -1
  192. package/dist/collection/components/navigation/navbar/navbar.js +1 -0
  193. package/dist/collection/components/navigation/navbar/navbar.js.map +1 -1
  194. package/dist/collection/components/navigation/sidebar/sidebar-item.js +4 -2
  195. package/dist/collection/components/navigation/sidebar/sidebar-item.js.map +1 -1
  196. package/dist/collection/components/navigation/sidebar/sidebar.js.map +1 -1
  197. package/dist/collection/components/notification/notification.js +3 -0
  198. package/dist/collection/components/notification/notification.js.map +1 -1
  199. package/dist/collection/components/number-indicator/number-indicator.js.map +1 -1
  200. package/dist/collection/components/overview-table/overview-table.js +1 -1
  201. package/dist/collection/components/overview-table/overview-table.js.map +1 -1
  202. package/dist/collection/components/pagination/pagination.js +5 -5
  203. package/dist/collection/components/pagination/pagination.js.map +1 -1
  204. package/dist/collection/components/progress-bar/progress-bar.js +3 -1
  205. package/dist/collection/components/progress-bar/progress-bar.js.map +1 -1
  206. package/dist/collection/components/radio-button/radio-button.js +6 -2
  207. package/dist/collection/components/radio-button/radio-button.js.map +1 -1
  208. package/dist/collection/components/search-bar/search-bar.js +6 -3
  209. package/dist/collection/components/search-bar/search-bar.js.map +1 -1
  210. package/dist/collection/components/search-field/search-field.js +10 -10
  211. package/dist/collection/components/search-field/search-field.js.map +1 -1
  212. package/dist/collection/components/segmented-control/segment/segment.js +4 -1
  213. package/dist/collection/components/segmented-control/segment/segment.js.map +1 -1
  214. package/dist/collection/components/segmented-control/segmented-control.js +3 -3
  215. package/dist/collection/components/segmented-control/segmented-control.js.map +1 -1
  216. package/dist/collection/components/select/multi-select/multiselect.js +23 -18
  217. package/dist/collection/components/select/multi-select/multiselect.js.map +1 -1
  218. package/dist/collection/components/select/single-select/select.js +46 -4
  219. package/dist/collection/components/select/single-select/select.js.map +1 -1
  220. package/dist/collection/components/slider/slider.js +9 -2
  221. package/dist/collection/components/slider/slider.js.map +1 -1
  222. package/dist/collection/components/spinner/spinner.js +4 -2
  223. package/dist/collection/components/spinner/spinner.js.map +1 -1
  224. package/dist/collection/components/status/status.js +2 -1
  225. package/dist/collection/components/status/status.js.map +1 -1
  226. package/dist/collection/components/stepper/step/step.js +5 -4
  227. package/dist/collection/components/stepper/step/step.js.map +1 -1
  228. package/dist/collection/components/stepper/stepper.js +3 -2
  229. package/dist/collection/components/stepper/stepper.js.map +1 -1
  230. package/dist/collection/components/switch/switch.js +2 -1
  231. package/dist/collection/components/switch/switch.js.map +1 -1
  232. package/dist/collection/components/table-advanced-version/filter-bar/filter-bar.js +6 -5
  233. package/dist/collection/components/table-advanced-version/filter-bar/filter-bar.js.map +1 -1
  234. package/dist/collection/components/table-advanced-version/filter-type-group/filter-accordion/filter-accordion.js +7 -6
  235. package/dist/collection/components/table-advanced-version/filter-type-group/filter-accordion/filter-accordion.js.map +1 -1
  236. package/dist/collection/components/table-advanced-version/filter-type-group/filter-search/filter-search.js +6 -2
  237. package/dist/collection/components/table-advanced-version/filter-type-group/filter-search/filter-search.js.map +1 -1
  238. package/dist/collection/components/table-advanced-version/filter-type-group/filter-type-group.js +2 -2
  239. package/dist/collection/components/table-advanced-version/filter-type-group/filter-type-group.js.map +1 -1
  240. package/dist/collection/components/table-advanced-version/list/list-entry/list-entry.js +6 -1
  241. package/dist/collection/components/table-advanced-version/list/list-entry/list-entry.js.map +1 -1
  242. package/dist/collection/components/table-advanced-version/list/list.js +9 -8
  243. package/dist/collection/components/table-advanced-version/list/list.js.map +1 -1
  244. package/dist/collection/components/table-advanced-version/set-filter/setFilter.js +4 -0
  245. package/dist/collection/components/table-advanced-version/set-filter/setFilter.js.map +1 -1
  246. package/dist/collection/components/table-advanced-version/table.js +9 -5
  247. package/dist/collection/components/table-advanced-version/table.js.map +1 -1
  248. package/dist/collection/components/table-basic-version/table.js +6 -2
  249. package/dist/collection/components/table-basic-version/table.js.map +1 -1
  250. package/dist/collection/components/tabs/tab.js +3 -1
  251. package/dist/collection/components/tabs/tab.js.map +1 -1
  252. package/dist/collection/components/tabs/tabs.js +3 -2
  253. package/dist/collection/components/tabs/tabs.js.map +1 -1
  254. package/dist/collection/components/tag/tag.js +4 -1
  255. package/dist/collection/components/tag/tag.js.map +1 -1
  256. package/dist/collection/components/text-field/text-field.js +5 -4
  257. package/dist/collection/components/text-field/text-field.js.map +1 -1
  258. package/dist/collection/components/textarea/textarea.js +10 -2
  259. package/dist/collection/components/textarea/textarea.js.map +1 -1
  260. package/dist/collection/components/tooltip/tooltip.js +11 -10
  261. package/dist/collection/components/tooltip/tooltip.js.map +1 -1
  262. package/dist/collection/index.js.map +1 -1
  263. package/dist/collection/stories/setup-and-installation/faq/faq.js +1 -1
  264. package/dist/components/ifx-accordion-item.js +1 -1
  265. package/dist/components/ifx-accordion.js +1 -1
  266. package/dist/components/ifx-alert.js +68 -1
  267. package/dist/components/ifx-alert.js.map +1 -1
  268. package/dist/components/ifx-badge.js +1 -1
  269. package/dist/components/ifx-basic-table.js +7 -3
  270. package/dist/components/ifx-basic-table.js.map +1 -1
  271. package/dist/components/ifx-breadcrumb-item-label.js +4 -2
  272. package/dist/components/ifx-breadcrumb-item-label.js.map +1 -1
  273. package/dist/components/ifx-breadcrumb-item.js +2 -1
  274. package/dist/components/ifx-breadcrumb-item.js.map +1 -1
  275. package/dist/components/ifx-breadcrumb.js +1 -1
  276. package/dist/components/ifx-button.js +1 -1
  277. package/dist/components/ifx-card-headline.js +3 -1
  278. package/dist/components/ifx-card-headline.js.map +1 -1
  279. package/dist/components/ifx-card-image.js +4 -1
  280. package/dist/components/ifx-card-image.js.map +1 -1
  281. package/dist/components/ifx-card-links.js +1 -1
  282. package/dist/components/ifx-card-overline.js +1 -1
  283. package/dist/components/ifx-card-text.js +2 -1
  284. package/dist/components/ifx-card-text.js.map +1 -1
  285. package/dist/components/ifx-card.js +5 -1
  286. package/dist/components/ifx-card.js.map +1 -1
  287. package/dist/components/ifx-checkbox.js +1 -1
  288. package/dist/components/ifx-chip-item.js +1 -1
  289. package/dist/components/ifx-chip.js +1 -1
  290. package/dist/components/ifx-content-switcher-item.js +2 -1
  291. package/dist/components/ifx-content-switcher-item.js.map +1 -1
  292. package/dist/components/ifx-content-switcher.js +3 -2
  293. package/dist/components/ifx-content-switcher.js.map +1 -1
  294. package/dist/components/ifx-date-picker.js +8 -2
  295. package/dist/components/ifx-date-picker.js.map +1 -1
  296. package/dist/components/ifx-dropdown-header.js +1 -1
  297. package/dist/components/ifx-dropdown-item.js +3 -2
  298. package/dist/components/ifx-dropdown-item.js.map +1 -1
  299. package/dist/components/ifx-dropdown-menu.js +1 -1
  300. package/dist/components/ifx-dropdown-menu.js.map +1 -1
  301. package/dist/components/ifx-dropdown-separator.js +1 -1
  302. package/dist/components/ifx-dropdown-trigger-button.js +5 -3
  303. package/dist/components/ifx-dropdown-trigger-button.js.map +1 -1
  304. package/dist/components/ifx-dropdown-trigger.js +1 -1
  305. package/dist/components/ifx-dropdown-trigger.js.map +1 -1
  306. package/dist/components/ifx-dropdown.js +4 -4
  307. package/dist/components/ifx-dropdown.js.map +1 -1
  308. package/dist/components/ifx-faq.js +5 -5
  309. package/dist/components/ifx-filter-accordion.js +10 -9
  310. package/dist/components/ifx-filter-accordion.js.map +1 -1
  311. package/dist/components/ifx-filter-bar.js +9 -8
  312. package/dist/components/ifx-filter-bar.js.map +1 -1
  313. package/dist/components/ifx-filter-search.js +9 -5
  314. package/dist/components/ifx-filter-search.js.map +1 -1
  315. package/dist/components/ifx-filter-type-group.js +3 -3
  316. package/dist/components/ifx-filter-type-group.js.map +1 -1
  317. package/dist/components/ifx-footer-column.js +1 -1
  318. package/dist/components/ifx-footer.js +3 -3
  319. package/dist/components/ifx-footer.js.map +1 -1
  320. package/dist/components/ifx-icon-button.js +1 -1
  321. package/dist/components/ifx-icon.js +1 -1
  322. package/dist/components/ifx-icons-preview.js +3 -2
  323. package/dist/components/ifx-icons-preview.js.map +1 -1
  324. package/dist/components/ifx-link.js +1 -1
  325. package/dist/components/ifx-list-entry.js +8 -5
  326. package/dist/components/ifx-list-entry.js.map +1 -1
  327. package/dist/components/ifx-list.js +12 -11
  328. package/dist/components/ifx-list.js.map +1 -1
  329. package/dist/components/ifx-modal.js +14 -14
  330. package/dist/components/ifx-modal.js.map +1 -1
  331. package/dist/components/ifx-multiselect.js +1 -1
  332. package/dist/components/ifx-navbar-item.js +3 -2
  333. package/dist/components/ifx-navbar-item.js.map +1 -1
  334. package/dist/components/ifx-navbar-profile.js +5 -5
  335. package/dist/components/ifx-navbar-profile.js.map +1 -1
  336. package/dist/components/ifx-navbar.js +3 -2
  337. package/dist/components/ifx-navbar.js.map +1 -1
  338. package/dist/components/ifx-notification.js +6 -3
  339. package/dist/components/ifx-notification.js.map +1 -1
  340. package/dist/components/ifx-number-indicator.js +1 -1
  341. package/dist/components/ifx-overview-table.js +5 -5
  342. package/dist/components/ifx-overview-table.js.map +1 -1
  343. package/dist/components/ifx-pagination.js +1 -1
  344. package/dist/components/ifx-progress-bar.js +4 -2
  345. package/dist/components/ifx-progress-bar.js.map +1 -1
  346. package/dist/components/ifx-radio-button.js +1 -1
  347. package/dist/components/ifx-search-bar.js +9 -6
  348. package/dist/components/ifx-search-bar.js.map +1 -1
  349. package/dist/components/ifx-search-field.js +1 -1
  350. package/dist/components/ifx-segment.js +6 -3
  351. package/dist/components/ifx-segment.js.map +1 -1
  352. package/dist/components/ifx-segmented-control.js +5 -5
  353. package/dist/components/ifx-segmented-control.js.map +1 -1
  354. package/dist/components/ifx-select.js +1 -1
  355. package/dist/components/ifx-set-filter.js +11 -7
  356. package/dist/components/ifx-set-filter.js.map +1 -1
  357. package/dist/components/ifx-sidebar-item.js +7 -5
  358. package/dist/components/ifx-sidebar-item.js.map +1 -1
  359. package/dist/components/ifx-sidebar-title.js +1 -1
  360. package/dist/components/ifx-sidebar.js +1 -1
  361. package/dist/components/ifx-sidebar.js.map +1 -1
  362. package/dist/components/ifx-slider.js +11 -4
  363. package/dist/components/ifx-slider.js.map +1 -1
  364. package/dist/components/ifx-spinner.js +46 -1
  365. package/dist/components/ifx-spinner.js.map +1 -1
  366. package/dist/components/ifx-status.js +3 -2
  367. package/dist/components/ifx-status.js.map +1 -1
  368. package/dist/components/ifx-step.js +7 -6
  369. package/dist/components/ifx-step.js.map +1 -1
  370. package/dist/components/ifx-stepper.js +4 -3
  371. package/dist/components/ifx-stepper.js.map +1 -1
  372. package/dist/components/ifx-switch.js +3 -2
  373. package/dist/components/ifx-switch.js.map +1 -1
  374. package/dist/components/ifx-tab.js +4 -2
  375. package/dist/components/ifx-tab.js.map +1 -1
  376. package/dist/components/ifx-table.js +19 -15
  377. package/dist/components/ifx-table.js.map +1 -1
  378. package/dist/components/ifx-tabs.js +5 -4
  379. package/dist/components/ifx-tabs.js.map +1 -1
  380. package/dist/components/ifx-tag.js +4 -3
  381. package/dist/components/ifx-tag.js.map +1 -1
  382. package/dist/components/ifx-text-field.js +1 -1
  383. package/dist/components/ifx-textarea.js +11 -3
  384. package/dist/components/ifx-textarea.js.map +1 -1
  385. package/dist/components/ifx-tooltip.js +13 -12
  386. package/dist/components/ifx-tooltip.js.map +1 -1
  387. package/dist/components/index.js +1 -1
  388. package/dist/components/{p-bdeb1952.js → p-03181918.js} +8 -7
  389. package/dist/components/p-03181918.js.map +1 -0
  390. package/dist/components/{p-f0953b8a.js → p-04b73e62.js} +28 -23
  391. package/dist/components/p-04b73e62.js.map +1 -0
  392. package/dist/components/{p-2167e98c.js → p-094bb435.js} +2 -2
  393. package/dist/components/p-094bb435.js.map +1 -0
  394. package/dist/components/{p-6613f3b4.js → p-23cdd5a7.js} +4 -4
  395. package/dist/components/p-23cdd5a7.js.map +1 -0
  396. package/dist/components/{p-0c4e0d19.js → p-2f603818.js} +49 -7
  397. package/dist/components/p-2f603818.js.map +1 -0
  398. package/dist/components/{p-b62da6f0.js → p-4b3befbf.js} +2 -2
  399. package/dist/components/{p-b62da6f0.js.map → p-4b3befbf.js.map} +1 -1
  400. package/dist/components/{p-0b837c89.js → p-63edb8e2.js} +13 -13
  401. package/dist/components/p-63edb8e2.js.map +1 -0
  402. package/dist/components/{p-a99edff1.js → p-68d90201.js} +98 -126
  403. package/dist/components/p-68d90201.js.map +1 -0
  404. package/dist/components/{p-06410557.js → p-7e430b83.js} +3 -2
  405. package/dist/components/p-7e430b83.js.map +1 -0
  406. package/dist/components/{p-d454dd1b.js → p-8eed2f39.js} +8 -3
  407. package/dist/components/p-8eed2f39.js.map +1 -0
  408. package/dist/components/{p-90fa0583.js → p-9ee4ea24.js} +2 -2
  409. package/dist/components/p-9ee4ea24.js.map +1 -0
  410. package/dist/components/{p-474e011d.js → p-b2439194.js} +4 -3
  411. package/dist/components/p-b2439194.js.map +1 -0
  412. package/dist/components/{p-9f15ef5a.js → p-c1f3a68c.js} +5 -4
  413. package/dist/components/p-c1f3a68c.js.map +1 -0
  414. package/dist/components/{p-8b176518.js → p-cfb87c4d.js} +3 -2
  415. package/dist/components/p-cfb87c4d.js.map +1 -0
  416. package/dist/components/{p-d2197368.js → p-d0a26bd5.js} +12 -9
  417. package/dist/components/p-d0a26bd5.js.map +1 -0
  418. package/dist/components/{p-0d19a0d8.js → p-e181fc5c.js} +8 -4
  419. package/dist/components/p-e181fc5c.js.map +1 -0
  420. package/dist/components/{p-b4ee6732.js → p-f0f583d5.js} +6 -3
  421. package/dist/components/p-f0f583d5.js.map +1 -0
  422. package/dist/components/{p-ecfb353b.js → p-f9cdecb2.js} +10 -10
  423. package/dist/components/p-f9cdecb2.js.map +1 -0
  424. package/dist/esm/ifx-accordion_2.entry.js +2 -1
  425. package/dist/esm/ifx-accordion_2.entry.js.map +1 -1
  426. package/dist/{components/p-37b460af.js → esm/ifx-alert.entry.js} +13 -38
  427. package/dist/esm/ifx-alert.entry.js.map +1 -0
  428. package/dist/esm/ifx-badge.entry.js +1 -1
  429. package/dist/esm/ifx-basic-table.entry.js +7 -3
  430. package/dist/esm/ifx-basic-table.entry.js.map +1 -1
  431. package/dist/esm/ifx-breadcrumb-item-label.entry.js +3 -1
  432. package/dist/esm/ifx-breadcrumb-item-label.entry.js.map +1 -1
  433. package/dist/esm/ifx-breadcrumb-item.entry.js +2 -1
  434. package/dist/esm/ifx-breadcrumb-item.entry.js.map +1 -1
  435. package/dist/esm/ifx-breadcrumb.entry.js +1 -1
  436. package/dist/esm/ifx-button.entry.js +11 -8
  437. package/dist/esm/ifx-button.entry.js.map +1 -1
  438. package/dist/esm/ifx-card-headline.entry.js +3 -1
  439. package/dist/esm/ifx-card-headline.entry.js.map +1 -1
  440. package/dist/esm/ifx-card-image.entry.js +4 -1
  441. package/dist/esm/ifx-card-image.entry.js.map +1 -1
  442. package/dist/esm/ifx-card-links.entry.js +1 -1
  443. package/dist/esm/ifx-card-overline.entry.js +1 -1
  444. package/dist/esm/ifx-card-text.entry.js +2 -1
  445. package/dist/esm/ifx-card-text.entry.js.map +1 -1
  446. package/dist/esm/ifx-card.entry.js +5 -1
  447. package/dist/esm/ifx-card.entry.js.map +1 -1
  448. package/dist/esm/ifx-checkbox.entry.js +4 -1
  449. package/dist/esm/ifx-checkbox.entry.js.map +1 -1
  450. package/dist/esm/ifx-chip_3.entry.js +7 -6
  451. package/dist/esm/ifx-chip_3.entry.js.map +1 -1
  452. package/dist/esm/ifx-content-switcher-item.entry.js +2 -1
  453. package/dist/esm/ifx-content-switcher-item.entry.js.map +1 -1
  454. package/dist/esm/ifx-content-switcher.entry.js +3 -2
  455. package/dist/esm/ifx-content-switcher.entry.js.map +1 -1
  456. package/dist/esm/ifx-date-picker.entry.js +7 -1
  457. package/dist/esm/ifx-date-picker.entry.js.map +1 -1
  458. package/dist/esm/ifx-dropdown-header.entry.js +1 -1
  459. package/dist/esm/ifx-dropdown-item.entry.js +2 -1
  460. package/dist/esm/ifx-dropdown-item.entry.js.map +1 -1
  461. package/dist/esm/ifx-dropdown-menu.entry.js +1 -1
  462. package/dist/esm/ifx-dropdown-menu.entry.js.map +1 -1
  463. package/dist/esm/ifx-dropdown-separator.entry.js +1 -1
  464. package/dist/esm/ifx-dropdown-trigger-button.entry.js +3 -1
  465. package/dist/esm/ifx-dropdown-trigger-button.entry.js.map +1 -1
  466. package/dist/esm/ifx-dropdown-trigger.entry.js +1 -1
  467. package/dist/esm/ifx-dropdown-trigger.entry.js.map +1 -1
  468. package/dist/esm/ifx-dropdown.entry.js +4 -4
  469. package/dist/esm/ifx-dropdown.entry.js.map +1 -1
  470. package/dist/esm/ifx-faq.entry.js +2 -2
  471. package/dist/esm/ifx-filter-accordion.entry.js +8 -7
  472. package/dist/esm/ifx-filter-accordion.entry.js.map +1 -1
  473. package/dist/esm/ifx-filter-bar.entry.js +7 -6
  474. package/dist/esm/ifx-filter-bar.entry.js.map +1 -1
  475. package/dist/esm/ifx-filter-search.entry.js +7 -3
  476. package/dist/esm/ifx-filter-search.entry.js.map +1 -1
  477. package/dist/esm/ifx-filter-type-group.entry.js +3 -3
  478. package/dist/esm/ifx-filter-type-group.entry.js.map +1 -1
  479. package/dist/esm/ifx-footer-column.entry.js +1 -1
  480. package/dist/esm/ifx-footer.entry.js +3 -3
  481. package/dist/esm/ifx-footer.entry.js.map +1 -1
  482. package/dist/esm/ifx-icon-button.entry.js +6 -1
  483. package/dist/esm/ifx-icon-button.entry.js.map +1 -1
  484. package/dist/esm/ifx-icon.entry.js +2 -1
  485. package/dist/esm/ifx-icon.entry.js.map +1 -1
  486. package/dist/esm/ifx-icons-preview.entry.js +2 -1
  487. package/dist/esm/ifx-icons-preview.entry.js.map +1 -1
  488. package/dist/esm/ifx-link.entry.js +2 -1
  489. package/dist/esm/ifx-link.entry.js.map +1 -1
  490. package/dist/esm/ifx-list-entry.entry.js +5 -2
  491. package/dist/esm/ifx-list-entry.entry.js.map +1 -1
  492. package/dist/esm/ifx-list.entry.js +10 -9
  493. package/dist/esm/ifx-list.entry.js.map +1 -1
  494. package/dist/esm/ifx-modal.entry.js +12 -12
  495. package/dist/esm/ifx-modal.entry.js.map +1 -1
  496. package/dist/esm/{ifx-multiselect.entry.js → ifx-multiselect_2.entry.js} +93 -21
  497. package/dist/esm/ifx-multiselect_2.entry.js.map +1 -0
  498. package/dist/esm/ifx-navbar-item.entry.js +2 -1
  499. package/dist/esm/ifx-navbar-item.entry.js.map +1 -1
  500. package/dist/esm/ifx-navbar-profile.entry.js +5 -5
  501. package/dist/esm/ifx-navbar-profile.entry.js.map +1 -1
  502. package/dist/esm/ifx-navbar.entry.js +2 -1
  503. package/dist/esm/ifx-navbar.entry.js.map +1 -1
  504. package/dist/esm/ifx-notification.entry.js +4 -1
  505. package/dist/esm/ifx-notification.entry.js.map +1 -1
  506. package/dist/esm/ifx-number-indicator.entry.js +1 -1
  507. package/dist/esm/ifx-number-indicator.entry.js.map +1 -1
  508. package/dist/esm/ifx-overview-table.entry.js +2 -2
  509. package/dist/esm/ifx-overview-table.entry.js.map +1 -1
  510. package/dist/esm/ifx-progress-bar.entry.js +4 -2
  511. package/dist/esm/ifx-progress-bar.entry.js.map +1 -1
  512. package/dist/esm/ifx-radio-button.entry.js +7 -3
  513. package/dist/esm/ifx-radio-button.entry.js.map +1 -1
  514. package/dist/esm/ifx-search-bar.entry.js +7 -4
  515. package/dist/esm/ifx-search-bar.entry.js.map +1 -1
  516. package/dist/esm/ifx-search-field.entry.js +11 -11
  517. package/dist/esm/ifx-search-field.entry.js.map +1 -1
  518. package/dist/esm/ifx-segment.entry.js +5 -2
  519. package/dist/esm/ifx-segment.entry.js.map +1 -1
  520. package/dist/esm/ifx-segmented-control.entry.js +4 -4
  521. package/dist/esm/ifx-segmented-control.entry.js.map +1 -1
  522. package/dist/esm/ifx-select.entry.js +47 -5
  523. package/dist/esm/ifx-select.entry.js.map +1 -1
  524. package/dist/esm/ifx-set-filter.entry.js +5 -1
  525. package/dist/esm/ifx-set-filter.entry.js.map +1 -1
  526. package/dist/esm/ifx-sidebar-item.entry.js +5 -3
  527. package/dist/esm/ifx-sidebar-item.entry.js.map +1 -1
  528. package/dist/esm/ifx-sidebar-title.entry.js +1 -1
  529. package/dist/esm/ifx-sidebar.entry.js +1 -1
  530. package/dist/esm/ifx-sidebar.entry.js.map +1 -1
  531. package/dist/esm/ifx-slider.entry.js +10 -3
  532. package/dist/esm/ifx-slider.entry.js.map +1 -1
  533. package/dist/{components/p-3a49328a.js → esm/ifx-spinner.entry.js} +13 -30
  534. package/dist/esm/ifx-spinner.entry.js.map +1 -0
  535. package/dist/esm/ifx-status.entry.js +3 -2
  536. package/dist/esm/ifx-status.entry.js.map +1 -1
  537. package/dist/esm/ifx-step.entry.js +6 -5
  538. package/dist/esm/ifx-step.entry.js.map +1 -1
  539. package/dist/esm/ifx-stepper.entry.js +4 -3
  540. package/dist/esm/ifx-stepper.entry.js.map +1 -1
  541. package/dist/esm/ifx-switch.entry.js +3 -2
  542. package/dist/esm/ifx-switch.entry.js.map +1 -1
  543. package/dist/esm/ifx-tab.entry.js +4 -2
  544. package/dist/esm/ifx-tab.entry.js.map +1 -1
  545. package/dist/esm/ifx-table.entry.js +10 -6
  546. package/dist/esm/ifx-table.entry.js.map +1 -1
  547. package/dist/esm/ifx-tabs.entry.js +4 -3
  548. package/dist/esm/ifx-tabs.entry.js.map +1 -1
  549. package/dist/esm/ifx-tag.entry.js +3 -2
  550. package/dist/esm/ifx-tag.entry.js.map +1 -1
  551. package/dist/esm/ifx-textarea.entry.js +11 -3
  552. package/dist/esm/ifx-textarea.entry.js.map +1 -1
  553. package/dist/esm/ifx-tooltip.entry.js +12 -11
  554. package/dist/esm/ifx-tooltip.entry.js.map +1 -1
  555. package/dist/esm/{index-abb8c4b4.js → index-dc4139fb.js} +117 -153
  556. package/dist/esm/index-dc4139fb.js.map +1 -0
  557. package/dist/esm/infineon-design-system-stencil.js +4 -4
  558. package/dist/esm/infineon-design-system-stencil.js.map +1 -1
  559. package/dist/esm/loader.js +3 -3
  560. package/dist/infineon-design-system-stencil/infineon-design-system-stencil.esm.js +1 -1
  561. package/dist/infineon-design-system-stencil/infineon-design-system-stencil.esm.js.map +1 -1
  562. package/dist/infineon-design-system-stencil/p-04dcd856.entry.js +2 -0
  563. package/dist/infineon-design-system-stencil/p-04dcd856.entry.js.map +1 -0
  564. package/dist/infineon-design-system-stencil/p-0a629668.entry.js +2 -0
  565. package/dist/infineon-design-system-stencil/p-0a629668.entry.js.map +1 -0
  566. package/dist/infineon-design-system-stencil/p-0c4276df.entry.js +2 -0
  567. package/dist/infineon-design-system-stencil/p-0c4276df.entry.js.map +1 -0
  568. package/dist/infineon-design-system-stencil/p-117a6839.entry.js +2 -0
  569. package/dist/infineon-design-system-stencil/p-117a6839.entry.js.map +1 -0
  570. package/dist/infineon-design-system-stencil/p-15effb48.entry.js +2 -0
  571. package/dist/infineon-design-system-stencil/p-15effb48.entry.js.map +1 -0
  572. package/dist/infineon-design-system-stencil/p-189c89c3.entry.js +2 -0
  573. package/dist/infineon-design-system-stencil/p-189c89c3.entry.js.map +1 -0
  574. package/dist/infineon-design-system-stencil/p-1aed7d45.entry.js +2 -0
  575. package/dist/infineon-design-system-stencil/p-1aed7d45.entry.js.map +1 -0
  576. package/dist/infineon-design-system-stencil/p-222c1af9.entry.js +2 -0
  577. package/dist/infineon-design-system-stencil/p-222c1af9.entry.js.map +1 -0
  578. package/dist/infineon-design-system-stencil/p-2435017b.entry.js +2 -0
  579. package/dist/infineon-design-system-stencil/p-2435017b.entry.js.map +1 -0
  580. package/dist/infineon-design-system-stencil/{p-375f4a18.entry.js → p-24fcd716.entry.js} +2 -2
  581. package/dist/infineon-design-system-stencil/p-24fcd716.entry.js.map +1 -0
  582. package/dist/infineon-design-system-stencil/p-25266bf9.entry.js +2 -0
  583. package/dist/infineon-design-system-stencil/p-25266bf9.entry.js.map +1 -0
  584. package/dist/infineon-design-system-stencil/p-27a52d0b.entry.js +2 -0
  585. package/dist/infineon-design-system-stencil/p-27a52d0b.entry.js.map +1 -0
  586. package/dist/infineon-design-system-stencil/{p-cf0b4db9.entry.js → p-28fb795b.entry.js} +2 -2
  587. package/dist/infineon-design-system-stencil/p-2d4c5959.entry.js +2 -0
  588. package/dist/infineon-design-system-stencil/p-2d4c5959.entry.js.map +1 -0
  589. package/dist/infineon-design-system-stencil/p-32fc3ce3.entry.js +2 -0
  590. package/dist/infineon-design-system-stencil/{p-35f97aec.entry.js → p-34fb9dca.entry.js} +2 -2
  591. package/dist/infineon-design-system-stencil/p-379a2090.entry.js +2 -0
  592. package/dist/infineon-design-system-stencil/p-379a2090.entry.js.map +1 -0
  593. package/dist/infineon-design-system-stencil/{p-832acb52.entry.js → p-384ffeb8.entry.js} +3 -3
  594. package/dist/infineon-design-system-stencil/p-384ffeb8.entry.js.map +1 -0
  595. package/dist/infineon-design-system-stencil/{p-987630a9.entry.js → p-3b99fb06.entry.js} +2 -2
  596. package/dist/infineon-design-system-stencil/p-3b99fb06.entry.js.map +1 -0
  597. package/dist/infineon-design-system-stencil/{p-edcf4d92.entry.js → p-3c5a8615.entry.js} +2 -2
  598. package/dist/infineon-design-system-stencil/p-3c5a8615.entry.js.map +1 -0
  599. package/dist/infineon-design-system-stencil/p-3ef52c09.entry.js +2 -0
  600. package/dist/infineon-design-system-stencil/p-3ef52c09.entry.js.map +1 -0
  601. package/dist/infineon-design-system-stencil/p-436babb8.entry.js +2 -0
  602. package/dist/infineon-design-system-stencil/p-436babb8.entry.js.map +1 -0
  603. package/dist/infineon-design-system-stencil/p-466fea81.entry.js +2 -0
  604. package/dist/infineon-design-system-stencil/p-466fea81.entry.js.map +1 -0
  605. package/dist/infineon-design-system-stencil/p-4b0f836d.entry.js +2 -0
  606. package/dist/infineon-design-system-stencil/{p-bc1e9fa0.entry.js.map → p-4b0f836d.entry.js.map} +1 -1
  607. package/dist/infineon-design-system-stencil/{p-3206278c.entry.js → p-4b21c0e6.entry.js} +2 -2
  608. package/dist/infineon-design-system-stencil/p-4b21c0e6.entry.js.map +1 -0
  609. package/dist/infineon-design-system-stencil/p-50f06657.entry.js +2 -0
  610. package/dist/{esm/ifx-multiselect.entry.js.map → infineon-design-system-stencil/p-50f06657.entry.js.map} +1 -1
  611. package/dist/infineon-design-system-stencil/{p-a8b99e73.entry.js → p-51980b19.entry.js} +2 -2
  612. package/dist/infineon-design-system-stencil/p-51c4e760.entry.js +2 -0
  613. package/dist/infineon-design-system-stencil/{p-3cadb56f.entry.js.map → p-51c4e760.entry.js.map} +1 -1
  614. package/dist/infineon-design-system-stencil/{p-b87cae76.entry.js → p-584149bd.entry.js} +2 -2
  615. package/dist/infineon-design-system-stencil/p-584149bd.entry.js.map +1 -0
  616. package/dist/infineon-design-system-stencil/p-58966086.entry.js +2 -0
  617. package/dist/infineon-design-system-stencil/{p-c7c93327.entry.js.map → p-58966086.entry.js.map} +1 -1
  618. package/dist/infineon-design-system-stencil/{p-98762adc.entry.js → p-5c6d5571.entry.js} +2 -2
  619. package/dist/infineon-design-system-stencil/p-5c6d5571.entry.js.map +1 -0
  620. package/dist/infineon-design-system-stencil/p-5f34d2bc.entry.js +2 -0
  621. package/dist/infineon-design-system-stencil/p-5f34d2bc.entry.js.map +1 -0
  622. package/dist/infineon-design-system-stencil/p-6389a7b8.entry.js +2 -0
  623. package/dist/infineon-design-system-stencil/p-6389a7b8.entry.js.map +1 -0
  624. package/dist/infineon-design-system-stencil/{p-2ecc6869.entry.js → p-680f8e2c.entry.js} +2 -2
  625. package/dist/infineon-design-system-stencil/{p-e8b6c21c.entry.js → p-6ae18c50.entry.js} +2 -2
  626. package/dist/infineon-design-system-stencil/p-6ae18c50.entry.js.map +1 -0
  627. package/dist/infineon-design-system-stencil/p-6b122987.js +3 -0
  628. package/dist/infineon-design-system-stencil/p-6b122987.js.map +1 -0
  629. package/dist/infineon-design-system-stencil/p-6f00d371.entry.js +2 -0
  630. package/dist/infineon-design-system-stencil/p-6f00d371.entry.js.map +1 -0
  631. package/dist/infineon-design-system-stencil/p-775d187b.entry.js +2 -0
  632. package/dist/infineon-design-system-stencil/p-775d187b.entry.js.map +1 -0
  633. package/dist/infineon-design-system-stencil/p-79a73b5f.entry.js +2 -0
  634. package/dist/infineon-design-system-stencil/p-79a73b5f.entry.js.map +1 -0
  635. package/dist/infineon-design-system-stencil/p-7bef9272.entry.js +2 -0
  636. package/dist/infineon-design-system-stencil/p-7bef9272.entry.js.map +1 -0
  637. package/dist/infineon-design-system-stencil/{p-888eac03.entry.js → p-7c0bbef1.entry.js} +2 -2
  638. package/dist/infineon-design-system-stencil/p-7c0bbef1.entry.js.map +1 -0
  639. package/dist/infineon-design-system-stencil/{p-adaae6df.entry.js → p-8969f1e4.entry.js} +2 -2
  640. package/dist/infineon-design-system-stencil/p-8969f1e4.entry.js.map +1 -0
  641. package/dist/infineon-design-system-stencil/{p-5a1a1457.entry.js → p-91f91586.entry.js} +2 -2
  642. package/dist/infineon-design-system-stencil/p-91f91586.entry.js.map +1 -0
  643. package/dist/infineon-design-system-stencil/p-97e9e312.entry.js +2 -0
  644. package/dist/infineon-design-system-stencil/p-97e9e312.entry.js.map +1 -0
  645. package/dist/infineon-design-system-stencil/p-9a47f8ad.entry.js +2 -0
  646. package/dist/infineon-design-system-stencil/p-9a47f8ad.entry.js.map +1 -0
  647. package/dist/infineon-design-system-stencil/p-a16d5258.entry.js +2 -0
  648. package/dist/infineon-design-system-stencil/p-a16d5258.entry.js.map +1 -0
  649. package/dist/infineon-design-system-stencil/{p-5dd5e2e3.entry.js → p-a8ccf376.entry.js} +2 -2
  650. package/dist/infineon-design-system-stencil/p-b14bd5b7.entry.js +2 -0
  651. package/dist/infineon-design-system-stencil/p-b14bd5b7.entry.js.map +1 -0
  652. package/dist/infineon-design-system-stencil/{p-c7a73fff.entry.js → p-b5a3fad1.entry.js} +2 -2
  653. package/dist/infineon-design-system-stencil/p-bbaa8d57.entry.js +2 -0
  654. package/dist/infineon-design-system-stencil/{p-b4a3ea1d.entry.js.map → p-bbaa8d57.entry.js.map} +1 -1
  655. package/dist/infineon-design-system-stencil/{p-09a43d79.entry.js → p-bc8a4226.entry.js} +2 -2
  656. package/dist/infineon-design-system-stencil/p-bc8a4226.entry.js.map +1 -0
  657. package/dist/infineon-design-system-stencil/p-bddc382a.entry.js +2 -0
  658. package/dist/infineon-design-system-stencil/p-bddc382a.entry.js.map +1 -0
  659. package/dist/infineon-design-system-stencil/{p-28000a30.entry.js → p-c1b1b593.entry.js} +2 -2
  660. package/dist/infineon-design-system-stencil/p-c1b1b593.entry.js.map +1 -0
  661. package/dist/infineon-design-system-stencil/{p-ec5b7eef.entry.js → p-c668bc59.entry.js} +2 -2
  662. package/dist/infineon-design-system-stencil/p-c668bc59.entry.js.map +1 -0
  663. package/dist/infineon-design-system-stencil/p-c7f80bba.entry.js +2 -0
  664. package/dist/infineon-design-system-stencil/p-c7f80bba.entry.js.map +1 -0
  665. package/dist/infineon-design-system-stencil/{p-3f58926e.entry.js → p-c82d6a95.entry.js} +2 -2
  666. package/dist/infineon-design-system-stencil/p-c82d6a95.entry.js.map +1 -0
  667. package/dist/infineon-design-system-stencil/p-c8728936.entry.js +2 -0
  668. package/dist/infineon-design-system-stencil/p-c8728936.entry.js.map +1 -0
  669. package/dist/infineon-design-system-stencil/p-caff080b.entry.js +2 -0
  670. package/dist/infineon-design-system-stencil/p-caff080b.entry.js.map +1 -0
  671. package/dist/infineon-design-system-stencil/{p-d8df8c49.entry.js → p-ce413596.entry.js} +2 -2
  672. package/dist/infineon-design-system-stencil/p-ce413596.entry.js.map +1 -0
  673. package/dist/infineon-design-system-stencil/{p-2228b0fe.entry.js → p-d09be3a1.entry.js} +2 -2
  674. package/dist/infineon-design-system-stencil/p-d09be3a1.entry.js.map +1 -0
  675. package/dist/infineon-design-system-stencil/{p-c6150071.entry.js → p-d28dda66.entry.js} +2 -2
  676. package/dist/infineon-design-system-stencil/p-d28dda66.entry.js.map +1 -0
  677. package/dist/infineon-design-system-stencil/p-d52e5250.entry.js +2 -0
  678. package/dist/infineon-design-system-stencil/p-d52e5250.entry.js.map +1 -0
  679. package/dist/infineon-design-system-stencil/{p-8ce2934f.entry.js → p-d71e765c.entry.js} +2 -2
  680. package/dist/infineon-design-system-stencil/p-d71e765c.entry.js.map +1 -0
  681. package/dist/infineon-design-system-stencil/{p-17fb3b6e.entry.js → p-d82e1057.entry.js} +2 -2
  682. package/dist/infineon-design-system-stencil/p-d82e1057.entry.js.map +1 -0
  683. package/dist/infineon-design-system-stencil/p-db09429f.entry.js +2 -0
  684. package/dist/infineon-design-system-stencil/p-db09429f.entry.js.map +1 -0
  685. package/dist/infineon-design-system-stencil/p-e66c33ea.entry.js +2 -0
  686. package/dist/infineon-design-system-stencil/p-e66c33ea.entry.js.map +1 -0
  687. package/dist/infineon-design-system-stencil/p-eb8ba37f.entry.js +2 -0
  688. package/dist/infineon-design-system-stencil/p-eb8ba37f.entry.js.map +1 -0
  689. package/dist/infineon-design-system-stencil/{p-5a863742.entry.js → p-ee39e4ce.entry.js} +2 -2
  690. package/dist/infineon-design-system-stencil/p-f0052c72.entry.js +2 -0
  691. package/dist/infineon-design-system-stencil/{p-459b20f6.entry.js.map → p-f0052c72.entry.js.map} +1 -1
  692. package/dist/infineon-design-system-stencil/{p-9d712c50.entry.js → p-f856fa8b.entry.js} +2 -2
  693. package/dist/infineon-design-system-stencil/p-fbd9e58e.entry.js +2 -0
  694. package/dist/infineon-design-system-stencil/p-fbd9e58e.entry.js.map +1 -0
  695. package/dist/types/components.d.ts +0 -49
  696. package/package.json +1 -1
  697. package/dist/cjs/ifx-alert_2.cjs.entry.js +0 -195
  698. package/dist/cjs/ifx-alert_2.cjs.entry.js.map +0 -1
  699. package/dist/cjs/ifx-multiselect.cjs.entry.js.map +0 -1
  700. package/dist/cjs/ifx-spinner_2.cjs.entry.js +0 -100
  701. package/dist/cjs/ifx-spinner_2.cjs.entry.js.map +0 -1
  702. package/dist/cjs/ifx-templates-ui.cjs.entry.js +0 -61
  703. package/dist/cjs/ifx-templates-ui.cjs.entry.js.map +0 -1
  704. package/dist/cjs/index-76f7fe32.js.map +0 -1
  705. package/dist/collection/components/templates/template/template.css +0 -76
  706. package/dist/collection/components/templates/template/template.js +0 -263
  707. package/dist/collection/components/templates/template/template.js.map +0 -1
  708. package/dist/collection/components/templates/templates-ui/templates-ui.css +0 -33
  709. package/dist/collection/components/templates/templates-ui/templates-ui.js +0 -75
  710. package/dist/collection/components/templates/templates-ui/templates-ui.js.map +0 -1
  711. package/dist/components/ifx-template.d.ts +0 -11
  712. package/dist/components/ifx-template.js +0 -8
  713. package/dist/components/ifx-template.js.map +0 -1
  714. package/dist/components/ifx-templates-ui.d.ts +0 -11
  715. package/dist/components/ifx-templates-ui.js +0 -123
  716. package/dist/components/ifx-templates-ui.js.map +0 -1
  717. package/dist/components/p-06410557.js.map +0 -1
  718. package/dist/components/p-0b837c89.js.map +0 -1
  719. package/dist/components/p-0c4e0d19.js.map +0 -1
  720. package/dist/components/p-0d19a0d8.js.map +0 -1
  721. package/dist/components/p-2167e98c.js.map +0 -1
  722. package/dist/components/p-37b460af.js.map +0 -1
  723. package/dist/components/p-3a49328a.js.map +0 -1
  724. package/dist/components/p-474e011d.js.map +0 -1
  725. package/dist/components/p-6613f3b4.js.map +0 -1
  726. package/dist/components/p-8b176518.js.map +0 -1
  727. package/dist/components/p-90fa0583.js.map +0 -1
  728. package/dist/components/p-9f15ef5a.js.map +0 -1
  729. package/dist/components/p-a99edff1.js.map +0 -1
  730. package/dist/components/p-b12af9d1.js +0 -207
  731. package/dist/components/p-b12af9d1.js.map +0 -1
  732. package/dist/components/p-b4ee6732.js.map +0 -1
  733. package/dist/components/p-bdeb1952.js.map +0 -1
  734. package/dist/components/p-d2197368.js.map +0 -1
  735. package/dist/components/p-d454dd1b.js.map +0 -1
  736. package/dist/components/p-ecfb353b.js.map +0 -1
  737. package/dist/components/p-f0953b8a.js.map +0 -1
  738. package/dist/esm/ifx-alert_2.entry.js +0 -190
  739. package/dist/esm/ifx-alert_2.entry.js.map +0 -1
  740. package/dist/esm/ifx-spinner_2.entry.js +0 -95
  741. package/dist/esm/ifx-spinner_2.entry.js.map +0 -1
  742. package/dist/esm/ifx-templates-ui.entry.js +0 -57
  743. package/dist/esm/ifx-templates-ui.entry.js.map +0 -1
  744. package/dist/esm/index-abb8c4b4.js.map +0 -1
  745. package/dist/infineon-design-system-stencil/p-0074194f.entry.js +0 -2
  746. package/dist/infineon-design-system-stencil/p-0074194f.entry.js.map +0 -1
  747. package/dist/infineon-design-system-stencil/p-03666ad5.entry.js +0 -2
  748. package/dist/infineon-design-system-stencil/p-03666ad5.entry.js.map +0 -1
  749. package/dist/infineon-design-system-stencil/p-09a43d79.entry.js.map +0 -1
  750. package/dist/infineon-design-system-stencil/p-0ba5b108.entry.js +0 -2
  751. package/dist/infineon-design-system-stencil/p-0ba5b108.entry.js.map +0 -1
  752. package/dist/infineon-design-system-stencil/p-0cec6f6b.entry.js +0 -2
  753. package/dist/infineon-design-system-stencil/p-0cec6f6b.entry.js.map +0 -1
  754. package/dist/infineon-design-system-stencil/p-17fb3b6e.entry.js.map +0 -1
  755. package/dist/infineon-design-system-stencil/p-1f9cd046.entry.js +0 -2
  756. package/dist/infineon-design-system-stencil/p-1f9cd046.entry.js.map +0 -1
  757. package/dist/infineon-design-system-stencil/p-21c51783.entry.js +0 -2
  758. package/dist/infineon-design-system-stencil/p-21c51783.entry.js.map +0 -1
  759. package/dist/infineon-design-system-stencil/p-2228b0fe.entry.js.map +0 -1
  760. package/dist/infineon-design-system-stencil/p-28000a30.entry.js.map +0 -1
  761. package/dist/infineon-design-system-stencil/p-3206278c.entry.js.map +0 -1
  762. package/dist/infineon-design-system-stencil/p-375f4a18.entry.js.map +0 -1
  763. package/dist/infineon-design-system-stencil/p-3b262773.entry.js +0 -2
  764. package/dist/infineon-design-system-stencil/p-3b262773.entry.js.map +0 -1
  765. package/dist/infineon-design-system-stencil/p-3cadb56f.entry.js +0 -2
  766. package/dist/infineon-design-system-stencil/p-3f58926e.entry.js.map +0 -1
  767. package/dist/infineon-design-system-stencil/p-459b20f6.entry.js +0 -2
  768. package/dist/infineon-design-system-stencil/p-4e8efc0e.entry.js +0 -2
  769. package/dist/infineon-design-system-stencil/p-4e8efc0e.entry.js.map +0 -1
  770. package/dist/infineon-design-system-stencil/p-4f8af263.entry.js +0 -2
  771. package/dist/infineon-design-system-stencil/p-4f8af263.entry.js.map +0 -1
  772. package/dist/infineon-design-system-stencil/p-5a1a1457.entry.js.map +0 -1
  773. package/dist/infineon-design-system-stencil/p-62dca814.entry.js +0 -2
  774. package/dist/infineon-design-system-stencil/p-62dca814.entry.js.map +0 -1
  775. package/dist/infineon-design-system-stencil/p-6c932aaa.entry.js +0 -2
  776. package/dist/infineon-design-system-stencil/p-6c932aaa.entry.js.map +0 -1
  777. package/dist/infineon-design-system-stencil/p-74cf76c9.entry.js +0 -2
  778. package/dist/infineon-design-system-stencil/p-74cf76c9.entry.js.map +0 -1
  779. package/dist/infineon-design-system-stencil/p-78e8d73d.entry.js +0 -2
  780. package/dist/infineon-design-system-stencil/p-78e8d73d.entry.js.map +0 -1
  781. package/dist/infineon-design-system-stencil/p-7e63a602.entry.js +0 -2
  782. package/dist/infineon-design-system-stencil/p-7e63a602.entry.js.map +0 -1
  783. package/dist/infineon-design-system-stencil/p-7f7b4c70.entry.js +0 -2
  784. package/dist/infineon-design-system-stencil/p-7f7b4c70.entry.js.map +0 -1
  785. package/dist/infineon-design-system-stencil/p-82697ddd.entry.js +0 -2
  786. package/dist/infineon-design-system-stencil/p-82697ddd.entry.js.map +0 -1
  787. package/dist/infineon-design-system-stencil/p-832acb52.entry.js.map +0 -1
  788. package/dist/infineon-design-system-stencil/p-83ae1de5.entry.js +0 -2
  789. package/dist/infineon-design-system-stencil/p-83ae1de5.entry.js.map +0 -1
  790. package/dist/infineon-design-system-stencil/p-8880247f.entry.js +0 -2
  791. package/dist/infineon-design-system-stencil/p-8880247f.entry.js.map +0 -1
  792. package/dist/infineon-design-system-stencil/p-888eac03.entry.js.map +0 -1
  793. package/dist/infineon-design-system-stencil/p-8ce2934f.entry.js.map +0 -1
  794. package/dist/infineon-design-system-stencil/p-9104a62e.entry.js +0 -2
  795. package/dist/infineon-design-system-stencil/p-9104a62e.entry.js.map +0 -1
  796. package/dist/infineon-design-system-stencil/p-925041e5.entry.js +0 -2
  797. package/dist/infineon-design-system-stencil/p-925041e5.entry.js.map +0 -1
  798. package/dist/infineon-design-system-stencil/p-936a5a77.entry.js +0 -2
  799. package/dist/infineon-design-system-stencil/p-936a5a77.entry.js.map +0 -1
  800. package/dist/infineon-design-system-stencil/p-95a83b13.js +0 -3
  801. package/dist/infineon-design-system-stencil/p-95a83b13.js.map +0 -1
  802. package/dist/infineon-design-system-stencil/p-970cbb96.entry.js +0 -2
  803. package/dist/infineon-design-system-stencil/p-970cbb96.entry.js.map +0 -1
  804. package/dist/infineon-design-system-stencil/p-98762adc.entry.js.map +0 -1
  805. package/dist/infineon-design-system-stencil/p-987630a9.entry.js.map +0 -1
  806. package/dist/infineon-design-system-stencil/p-9dc24da3.entry.js +0 -2
  807. package/dist/infineon-design-system-stencil/p-9dc24da3.entry.js.map +0 -1
  808. package/dist/infineon-design-system-stencil/p-a6f8ab61.entry.js +0 -2
  809. package/dist/infineon-design-system-stencil/p-a6f8ab61.entry.js.map +0 -1
  810. package/dist/infineon-design-system-stencil/p-adaae6df.entry.js.map +0 -1
  811. package/dist/infineon-design-system-stencil/p-b053d3ad.entry.js +0 -2
  812. package/dist/infineon-design-system-stencil/p-b053d3ad.entry.js.map +0 -1
  813. package/dist/infineon-design-system-stencil/p-b4a3ea1d.entry.js +0 -2
  814. package/dist/infineon-design-system-stencil/p-b87cae76.entry.js.map +0 -1
  815. package/dist/infineon-design-system-stencil/p-b8d97c1c.entry.js +0 -2
  816. package/dist/infineon-design-system-stencil/p-b99fdf60.entry.js +0 -2
  817. package/dist/infineon-design-system-stencil/p-b99fdf60.entry.js.map +0 -1
  818. package/dist/infineon-design-system-stencil/p-ba3546e5.entry.js +0 -2
  819. package/dist/infineon-design-system-stencil/p-ba3546e5.entry.js.map +0 -1
  820. package/dist/infineon-design-system-stencil/p-bc1e9fa0.entry.js +0 -2
  821. package/dist/infineon-design-system-stencil/p-bf2de25d.entry.js +0 -2
  822. package/dist/infineon-design-system-stencil/p-bf2de25d.entry.js.map +0 -1
  823. package/dist/infineon-design-system-stencil/p-c368041f.entry.js +0 -2
  824. package/dist/infineon-design-system-stencil/p-c368041f.entry.js.map +0 -1
  825. package/dist/infineon-design-system-stencil/p-c6150071.entry.js.map +0 -1
  826. package/dist/infineon-design-system-stencil/p-c7c93327.entry.js +0 -2
  827. package/dist/infineon-design-system-stencil/p-c8a94d49.entry.js +0 -2
  828. package/dist/infineon-design-system-stencil/p-c8a94d49.entry.js.map +0 -1
  829. package/dist/infineon-design-system-stencil/p-cdc7b5f6.entry.js +0 -2
  830. package/dist/infineon-design-system-stencil/p-cdc7b5f6.entry.js.map +0 -1
  831. package/dist/infineon-design-system-stencil/p-d8aad76e.entry.js +0 -2
  832. package/dist/infineon-design-system-stencil/p-d8aad76e.entry.js.map +0 -1
  833. package/dist/infineon-design-system-stencil/p-d8df8c49.entry.js.map +0 -1
  834. package/dist/infineon-design-system-stencil/p-e8ada201.entry.js +0 -2
  835. package/dist/infineon-design-system-stencil/p-e8ada201.entry.js.map +0 -1
  836. package/dist/infineon-design-system-stencil/p-e8b6c21c.entry.js.map +0 -1
  837. package/dist/infineon-design-system-stencil/p-ec5b7eef.entry.js.map +0 -1
  838. package/dist/infineon-design-system-stencil/p-edcf4d92.entry.js.map +0 -1
  839. package/dist/infineon-design-system-stencil/p-f69af908.entry.js +0 -2
  840. package/dist/infineon-design-system-stencil/p-f69af908.entry.js.map +0 -1
  841. package/dist/infineon-design-system-stencil/p-f719fdcd.entry.js +0 -2
  842. package/dist/infineon-design-system-stencil/p-f719fdcd.entry.js.map +0 -1
  843. package/dist/infineon-design-system-stencil/p-f8742600.entry.js +0 -2
  844. package/dist/infineon-design-system-stencil/p-f8742600.entry.js.map +0 -1
  845. package/dist/infineon-design-system-stencil/p-f87ba073.entry.js +0 -2
  846. package/dist/infineon-design-system-stencil/p-f87ba073.entry.js.map +0 -1
  847. package/dist/types/components/templates/template/template.d.ts +0 -33
  848. package/dist/types/components/templates/templates-ui/templates-ui.d.ts +0 -10
  849. /package/dist/infineon-design-system-stencil/{p-cf0b4db9.entry.js.map → p-28fb795b.entry.js.map} +0 -0
  850. /package/dist/infineon-design-system-stencil/{p-b8d97c1c.entry.js.map → p-32fc3ce3.entry.js.map} +0 -0
  851. /package/dist/infineon-design-system-stencil/{p-35f97aec.entry.js.map → p-34fb9dca.entry.js.map} +0 -0
  852. /package/dist/infineon-design-system-stencil/{p-a8b99e73.entry.js.map → p-51980b19.entry.js.map} +0 -0
  853. /package/dist/infineon-design-system-stencil/{p-2ecc6869.entry.js.map → p-680f8e2c.entry.js.map} +0 -0
  854. /package/dist/infineon-design-system-stencil/{p-5dd5e2e3.entry.js.map → p-a8ccf376.entry.js.map} +0 -0
  855. /package/dist/infineon-design-system-stencil/{p-c7a73fff.entry.js.map → p-b5a3fad1.entry.js.map} +0 -0
  856. /package/dist/infineon-design-system-stencil/{p-5a863742.entry.js.map → p-ee39e4ce.entry.js.map} +0 -0
  857. /package/dist/infineon-design-system-stencil/{p-9d712c50.entry.js.map → p-f856fa8b.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"file":"ifx-list.entry.js","mappings":"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","names":[],"sources":["src/components/table-advanced-version/list/list.scss?tag=ifx-list&encapsulation=shadow","src/components/table-advanced-version/list/list.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n\n.link-wrapper {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: tokens.$ifxSpace100;\n margin-top: tokens.$ifxSpace100;\n}","import { Component, h, Prop, State, Event, EventEmitter, Element, Watch } from '@stencil/core';\n\n@Component({\n tag: 'ifx-list',\n styleUrl: 'list.scss',\n shadow: true,\n})\nexport class List {\n @Element() private el: HTMLElement;\n @State() expanded: boolean = false;\n @State() showMore = false;\n @State() selectedCount: number = 0;\n @State() totalItems = 0;\n @Prop() name = \"\";\n @Prop() maxVisibleItems = 6;\n @Prop() type: string = \"checkbox\"; //default value\n @Prop({ mutable: true }) resetTrigger: boolean;\n @State() internalResetTrigger: boolean = false;\n\n @Event() ifxListUpdate: EventEmitter;\n\n observer: MutationObserver;\n\n @Watch('type')\n handleTypeChange(newType: string) {\n this.updateListEntriesType(newType);\n }\n\n @Watch('resetTrigger')\n resetTriggerChanged(newValue: boolean) {\n if (newValue) {\n this.reset();\n this.resetTrigger = false; // Resetting the trigger after the action is performed\n }\n }\n\n componentWillLoad() {\n this.setupListenersAndObservers();\n this.initializeList();\n }\n\n disconnectedCallback() {\n this.cleanupListenersAndObservers();\n }\n\n reset() {\n this.resetListEntries();\n this.expanded = false;\n this.showMore = false;\n this.selectedCount = 0;\n this.ifxListUpdate.emit({ name: this.name, selectedItems: [] });\n }\n\n\n render() {\n return this.renderList();\n }\n\n\n // Refactored methods for clarity and maintainability\n private setupListenersAndObservers() {\n this.el.addEventListener('ifxListEntryChange', this.handleCheckedChange);\n this.observer = new MutationObserver(this.handleMutation);\n this.observer.observe(this.el, { childList: true });\n }\n\n private cleanupListenersAndObservers() {\n this.el.removeEventListener('ifxListEntryChange', this.handleCheckedChange);\n this.observer.disconnect();\n }\n \n private initializeList() {\n this.selectedCount = this.getSelectedItems(this.el).length;\n this.totalItems = this.getTotalItems();\n this.updateListEntriesType(this.type);\n this.checkRadioButtonConstraint();\n }\n\n \n private updateListEntriesType(newType: string) {\n const listEntries = Array.from(this.el.querySelectorAll('ifx-list-entry'));\n listEntries.forEach(entry => entry.setAttribute('type', newType));\n }\n\n private resetListEntries() {\n const listEntries = Array.from(this.el.querySelectorAll('ifx-list-entry'));\n listEntries.forEach(entry => {\n entry.value = false;\n entry.setAttribute('value', 'false');\n });\n }\n\n private handleMutation = () => {\n const newTotalItems = this.getTotalItems();\n if (newTotalItems !== this.totalItems) {\n this.totalItems = newTotalItems;\n this.handleCheckedChange();\n }\n this.updateListEntriesType(this.type);\n }\n\n private checkRadioButtonConstraint() {\n if (this.type === 'radio-button' && this.selectedCount > 1) {\n this.resetListEntries(); // Reset all and let the user select again\n this.selectedCount = 0;\n }\n }\n\n getTotalItems() {\n return this.el.querySelectorAll('ifx-list-entry').length;\n }\n\n\n toggleList = (event: MouseEvent) => {\n event.stopPropagation();\n this.expanded = !this.expanded;\n }\n\n toggleShowMore = (event: MouseEvent) => {\n event.stopPropagation();\n this.showMore = !this.showMore;\n }\n\n getSelectedItems(el: HTMLElement) {\n return Array.from(el.querySelectorAll('ifx-list-entry'))\n .filter(entry => entry.getAttribute('value') === 'true')\n .map(entry => ({\n label: entry.getAttribute('label'),\n value: entry.getAttribute('value'),\n type: entry.getAttribute('type'),\n element: entry\n }));\n }\n\n\n handleCheckedChange = (event?: CustomEvent) => {\n // If the type of the changed entry is 'radio-button' and its value is true, deselect all other radio buttons\n if (event && event.detail.type === 'radio-button' && event.detail.value) {\n const otherRadioButtons = Array.from(this.el.querySelectorAll('ifx-list-entry'))\n .filter(entry => entry.getAttribute('type') === 'radio-button' && entry !== event.target);\n otherRadioButtons.forEach(radioButton => radioButton.setAttribute('value', 'false'));\n }\n\n const selectedItems = this.getSelectedItems(this.el);\n this.selectedCount = selectedItems.length;\n\n this.ifxListUpdate.emit({ name: this.name, selectedItems });\n }\n\n private renderList() {\n const listEntries = Array.from(this.el.querySelectorAll('ifx-list-entry'));\n const visibleItems = this.showMore ? listEntries : listEntries.slice(0, this.maxVisibleItems);\n const remainingItems = listEntries.length - visibleItems.length;\n\n return (\n <div class=\"list-wrapper\">\n {visibleItems.map(entry => <slot name={entry.getAttribute('slot')}></slot>)}\n {(remainingItems > 0 || this.showMore) && (\n <div class=\"link-wrapper\" onClick={this.toggleShowMore}>\n <ifx-icon key={this.showMore.toString()} icon={this.showMore ? 'chevron-up-12' : 'chevron-down-12'} />\n <ifx-link size=\"s\" href=\"\" target=\"_blank\" variant=\"underlined\" disabled={false} >\n {this.showMore ? 'Show less' : `Show ${remainingItems} more`}\n </ifx-link>\n </div>\n )}\n </div>\n );\n }\n}"],"version":3}
1
+ {"file":"ifx-list.entry.js","mappings":"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","names":[],"sources":["src/components/table-advanced-version/list/list.scss?tag=ifx-list&encapsulation=shadow","src/components/table-advanced-version/list/list.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n\n.link-wrapper {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: tokens.$ifxSpace100;\n margin-top: tokens.$ifxSpace100;\n}","import { Component, h, Prop, State, Event, EventEmitter, Element, Watch } from '@stencil/core';\n\n@Component({\n tag: 'ifx-list',\n styleUrl: 'list.scss',\n shadow: true,\n})\nexport class List {\n @Element() private el: HTMLElement;\n @State() expanded: boolean = false;\n @State() showMore = false;\n @State() selectedCount: number = 0;\n @State() totalItems = 0;\n @Prop() name = \"\";\n @Prop() maxVisibleItems = 6;\n @Prop() type: string = \"checkbox\"; //default value\n @Prop({ mutable: true }) resetTrigger: boolean;\n @State() internalResetTrigger: boolean = false;\n\n @Event() ifxListUpdate: EventEmitter;\n\n observer: MutationObserver;\n\n @Watch('type')\n handleTypeChange(newType: string) {\n this.updateListEntriesType(newType);\n }\n\n @Watch('resetTrigger')\n resetTriggerChanged(newValue: boolean) {\n if (newValue) {\n this.reset();\n this.resetTrigger = false; // Resetting the trigger after the action is performed\n }\n }\n\n componentWillLoad() {\n this.setupListenersAndObservers();\n this.initializeList();\n }\n\n disconnectedCallback() {\n this.cleanupListenersAndObservers();\n }\n\n reset() {\n this.resetListEntries();\n this.expanded = false;\n this.showMore = false;\n this.selectedCount = 0;\n this.ifxListUpdate.emit({ name: this.name, selectedItems: [] });\n }\n\n\n render() {\n return this.renderList();\n }\n\n\n // Refactored methods for clarity and maintainability\n private setupListenersAndObservers() {\n this.el.addEventListener('ifxListEntryChange', this.handleCheckedChange);\n this.observer = new MutationObserver(this.handleMutation);\n this.observer.observe(this.el, { childList: true });\n }\n\n private cleanupListenersAndObservers() {\n this.el.removeEventListener('ifxListEntryChange', this.handleCheckedChange);\n this.observer.disconnect();\n }\n \n private initializeList() {\n this.selectedCount = this.getSelectedItems(this.el).length;\n this.totalItems = this.getTotalItems();\n this.updateListEntriesType(this.type);\n this.checkRadioButtonConstraint();\n }\n\n \n private updateListEntriesType(newType: string) {\n const listEntries = Array.from(this.el.querySelectorAll('ifx-list-entry'));\n listEntries.forEach(entry => entry.setAttribute('type', newType));\n }\n\n private resetListEntries() {\n const listEntries = Array.from(this.el.querySelectorAll('ifx-list-entry'));\n listEntries.forEach(entry => {\n entry.value = false;\n entry.setAttribute('value', 'false');\n });\n }\n\n private handleMutation = () => {\n const newTotalItems = this.getTotalItems();\n if (newTotalItems !== this.totalItems) {\n this.totalItems = newTotalItems;\n this.handleCheckedChange();\n }\n this.updateListEntriesType(this.type);\n }\n\n private checkRadioButtonConstraint() {\n if (this.type === 'radio-button' && this.selectedCount > 1) {\n this.resetListEntries(); // Reset all and let the user select again\n this.selectedCount = 0;\n }\n }\n\n getTotalItems() {\n return this.el.querySelectorAll('ifx-list-entry').length;\n }\n\n\n toggleList = (event: MouseEvent) => {\n event.stopPropagation();\n this.expanded = !this.expanded;\n }\n\n toggleShowMore = (event: MouseEvent) => {\n event.stopPropagation();\n this.showMore = !this.showMore;\n }\n\n getSelectedItems(el: HTMLElement) {\n return Array.from(el.querySelectorAll('ifx-list-entry'))\n .filter(entry => entry.getAttribute('value') === 'true')\n .map(entry => ({\n label: entry.getAttribute('label'),\n value: entry.getAttribute('value'),\n type: entry.getAttribute('type'),\n element: entry\n }));\n }\n\n\n handleCheckedChange = (event?: CustomEvent) => {\n // If the type of the changed entry is 'radio-button' and its value is true, deselect all other radio buttons\n if (event && event.detail.type === 'radio-button' && event.detail.value) {\n const otherRadioButtons = Array.from(this.el.querySelectorAll('ifx-list-entry'))\n .filter(entry => entry.getAttribute('type') === 'radio-button' && entry !== event.target);\n otherRadioButtons.forEach(radioButton => radioButton.setAttribute('value', 'false'));\n }\n\n const selectedItems = this.getSelectedItems(this.el);\n this.selectedCount = selectedItems.length;\n\n this.ifxListUpdate.emit({ name: this.name, selectedItems });\n }\n\n private renderList() {\n const listEntries = Array.from(this.el.querySelectorAll('ifx-list-entry'));\n const visibleItems = this.showMore ? listEntries : listEntries.slice(0, this.maxVisibleItems);\n const remainingItems = listEntries.length - visibleItems.length;\n\n return (\n <div class=\"list-wrapper\">\n {visibleItems.map(entry => <slot name={entry.getAttribute('slot')}></slot>)}\n {(remainingItems > 0 || this.showMore) && (\n <div class=\"link-wrapper\" onClick={this.toggleShowMore}>\n <ifx-icon key={this.showMore.toString()} icon={this.showMore ? 'chevron-up-12' : 'chevron-down-12'} />\n <ifx-link size=\"s\" href=\"\" target=\"_blank\" variant=\"underlined\" disabled={false} >\n {this.showMore ? 'Show less' : `Show ${remainingItems} more`}\n </ifx-link>\n </div>\n )}\n </div>\n );\n }\n}"],"version":3}
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h, a as Host, g as getElement } from './index-abb8c4b4.js';
1
+ import { r as registerInstance, c as createEvent, h, a as Host, g as getElement } from './index-dc4139fb.js';
2
2
 
3
3
  /**
4
4
  * Copy/pasted from https://github.com/andreasbm/focus-trap
@@ -152,17 +152,6 @@ const IfxModal = class {
152
152
  registerInstance(this, hostRef);
153
153
  this.ifxModalOpen = createEvent(this, "ifxModalOpen", 7);
154
154
  this.ifxModalClose = createEvent(this, "ifxModalClose", 7);
155
- this.opened = false;
156
- this.showModal = this.opened || false;
157
- this.caption = 'Modal Title';
158
- this.closeOnOverlayClick = true;
159
- this.variant = 'default';
160
- this.size = 's';
161
- this.alertIcon = '';
162
- this.okButtonLabel = 'OK';
163
- this.cancelButtonLabel = 'Cancel';
164
- this.slotButtonsPresent = false;
165
- this.showCloseButton = true;
166
155
  this.focusableElements = [];
167
156
  this.handleTopFocus = () => {
168
157
  this.attemptFocus(this.getLastFocusableElement());
@@ -178,6 +167,17 @@ const IfxModal = class {
178
167
  this.doBeforeClose('ESCAPE_KEY');
179
168
  }
180
169
  };
170
+ this.opened = false;
171
+ this.showModal = this.opened || false;
172
+ this.caption = 'Modal Title';
173
+ this.closeOnOverlayClick = true;
174
+ this.variant = 'default';
175
+ this.size = 's';
176
+ this.alertIcon = '';
177
+ this.okButtonLabel = 'OK';
178
+ this.cancelButtonLabel = 'Cancel';
179
+ this.slotButtonsPresent = false;
180
+ this.showCloseButton = true;
181
181
  }
182
182
  componentDidLoad() {
183
183
  // Query all focusable elements and store them in `focusableElements`.
@@ -1 +1 @@
1
- {"file":"ifx-modal.entry.js","mappings":";;AAAA;;;AAIA;;;;;;;;;;;;SAYgB,eAAe,CAC7B,IAA8B,EAC9B,QAAyC,EACzC,OAAwC,EACxC,WAAmB,EAAE,EACrB,QAAgB,CAAC;IAEjB,MAAM,OAAO,GAAkB,EAAE,CAAC;;IAGlC,IAAI,KAAK,IAAI,QAAQ,EAAE;QACrB,OAAO,OAAO,CAAC;KAChB;;IAGD,MAAM,YAAY,GAAG,CAAC,KAAsB;;;QAG1C,MAAM,aAAa,GAAG,KAAK;aACxB,aAAa,EAAE;aACf,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC;QACzC,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,MAAM,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,aAAc,CAAC;YACpD,OAAO,eAAe,CACpB,WAAW,EACX,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,KAAK,GAAG,CAAC,CACV,CAAC;SACH;QAED,OAAO,EAAE,CAAC;KACX,CAAC;;;;IAKF,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAkB,CAAC;IAClE,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE;;QAE7B,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE;;YAEpB,SAAS;SACV;;;QAKD,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE;YACnB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACtB;QAED,IAAI,MAAM,CAAC,UAAU,IAAI,IAAI,EAAE;;YAE7B,OAAO,CAAC,IAAI,CACV,GAAG,eAAe,CAChB,MAAM,CAAC,UAAU,EACjB,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,KAAK,GAAG,CAAC,CACV,CACF,CAAC;SACH;aAAM,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,EAAE;;YAEpC,OAAO,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,MAAyB,CAAC,CAAC,CAAC;SAC1D;aAAM;;YAEL,OAAO,CAAC,IAAI,CACV,GAAG,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC,CACnE,CAAC;SACH;KACF;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;SAIgB,QAAQ,CAAC,KAAkB;IACzC,QACE,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC;SAC3B,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC;YAChC,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,OAAO,CAAC;;;;;QAKhD,KAAK,CAAC,KAAK,CAAC,OAAO,KAAK,MAAM;QAC9B,KAAK,CAAC,KAAK,CAAC,OAAO,KAAK,GAAG;QAC3B,KAAK,CAAC,KAAK,CAAC,UAAU,KAAK,QAAQ;QACnC,KAAK,CAAC,KAAK,CAAC,UAAU,KAAK,UAAU,EACrC;;;;AAKJ,CAAC;AAED;;;;SAIgB,UAAU,CAAC,KAAkB;IAC3C,QACE,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC;SAC7B,KAAK,CAAC,YAAY,CAAC,eAAe,CAAC;YAClC,KAAK,CAAC,YAAY,CAAC,eAAe,CAAC,KAAK,OAAO,CAAC,EAClD;AACJ,CAAC;AAED;;;;;;SAMgB,WAAW,CAAC,KAAkB;;IAE5C,IACE,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,IAAI;QACvC,QAAQ,CAAC,KAAK,CAAC;QACf,UAAU,CAAC,KAAK,CAAC,EACjB;QACA,OAAO,KAAK,CAAC;KACd;IAED;;IAEE,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC;;SAE7B,CAAC,KAAK,YAAY,iBAAiB,IAAI,KAAK,YAAY,eAAe;YACtE,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;;QAE7B,KAAK,YAAY,iBAAiB;QAClC,KAAK,YAAY,gBAAgB;QACjC,KAAK,YAAY,mBAAmB;QACpC,KAAK,YAAY,iBAAiB;;QAElC,KAAK,YAAY,iBAAiB,EAClC;AACJ;;SChKgB,WAAW,CACzB,OAAoB,EACpB,SAAgC,EAChC,OAAkC;IAElC,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,kCAAO,OAAO,KAAE,IAAI,EAAE,MAAM,IAAG,CAAC;IAC1E,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE;;QAElC,QAAQ,CAAC,YAAY,EAAE,CAAC;QACxB,QAAQ,CAAC,MAAM,EAAE,CAAC;KACnB,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,gBAAgB,GAAG;IACvB,MAAM,EAAE,0CAA0C;CACnD,CAAC;AAEK,MAAM,SAAS,GAAG;IACvB,MAAM,EAAE;sCAEJ,MAAM,EAAE,CAAC,IACN,gBAAgB,KACnB,OAAO,EAAE,CAAC;sCAGV,MAAM,EAAE,CAAC,IACN,gBAAgB,KACnB,OAAO,EAAE,CAAC;KAEb;IACD,OAAO,EAAE;sCAEL,MAAM,EAAE,CAAC,IACN,gBAAgB,KACnB,OAAO,EAAE,CAAC;sCAGV,MAAM,EAAE,CAAC,IACN,gBAAgB,KACnB,OAAO,EAAE,CAAC;KAEb;CACF;;AC5CD,MAAM,QAAQ,GAAG,2uFAA2uF,CAAC;AAC7vF,uBAAe,QAAQ;;MCcV,QAAQ;IALrB;;;;QAM0C,WAAM,GAAa,KAAK,CAAC;QACxD,cAAS,GAAY,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC;QAE3C,YAAO,GAAW,aAAa,CAAC;QAChC,wBAAmB,GAAY,IAAI,CAAC;QAKpC,YAAO,GAA+C,SAAS,CAAC;QAEhE,SAAI,GAAoB,GAAG,CAAC;QAE5B,cAAS,GAAW,EAAE,CAAC;QACvB,kBAAa,GAAW,IAAI,CAAC;QAC7B,sBAAiB,GAAW,QAAQ,CAAC;QAGpC,uBAAkB,GAAY,KAAK,CAAC;QAErC,oBAAe,GAAY,IAAI,CAAC;QAGhC,sBAAiB,GAAkB,EAAE,CAAC;QAsB9C,mBAAc,GAAG;YACf,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;SACnD,CAAC;QAEF,sBAAiB,GAAG;YAClB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC;SACpD,CAAC;QA2DF,mBAAc,GAAG,CAAC,KAAoB;YACpC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBACnB,OAAO;aACR;YACD,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;gBAC1B,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;aAClC;SACF,CAAC;KA+FH;IA1LC,gBAAgB;;;QAGd,IAAI,CAAC,iBAAiB,GAAG,eAAe,CACtC,IAAI,CAAC,WAAW,CAAC,UAAU,EAC3B,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,wBAAwB,CAAC,EAC5D,WAAW,CACZ,CAAC;KAEH;IAED,wBAAwB;QACtB,OAAO,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KAClC;IAED,uBAAuB;QACrB,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;KAClE;IAWD,YAAY,CAAC,OAA2B;QACtC,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,UAAU,CAAC;gBACT,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;aAC1B,CAAE,CAAC;YACJ,OAAO;SACR;QAED,UAAU,CAAC;YACT,OAAO,CAAC,KAAK,EAAE,CAAC;SACjB,EAAE,CAAC,CAAC,CAAC;KACP;IAGD,IAAI;QACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI;YACF,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,MAAM,EAAE;gBAC9D,QAAQ,EAAE,GAAG;aACd,CAAC,CAAC;YACH,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE;;;gBAG9B,UAAU,CAAC;;oBACT,MAAA,IAAI,CAAC,uBAAuB,EAAE,0CAAE,KAAK,EAAE,CAAC;oBACxC,MAAA,IAAI,CAAC,uBAAuB,EAAE,0CAAE,IAAI,EAAE,CAAC;iBACxC,EAAE,CAAC,CAAC,CAAC;gBAEN,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;aAC1B,CAAC,CAAC;YAEH,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;SACnE;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;SAE1B;KAGF;IAED,KAAK;QACH,IAAI;YACF,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,OAAO,EAAE;gBAC/D,QAAQ,EAAE,GAAG;aACd,CAAC,CAAC;YACH,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE;gBAC9B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;aAC3B,CAAC,CAAC;YACH,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;SACtE;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;SAC3B;KACF;IAYD,aAAa,CAAC,OAA0B;QACtC,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACnE,IAAI,CAAC,SAAS,EAAE;YACd,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;SACrB;KACF;IAKD,aAAa,CAAC,QAAQ;QACpB,IAAI,QAAQ,KAAK,IAAI,EAAE;YACrB,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;aAAM;YACL,IAAI,CAAC,KAAK,EAAE,CAAA;SACb;KACF;IAGD,kBAAkB;QAChB,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;SAC/B;KACF;IAGD,uBAAuB,CAAC,CAAC;;QACvB,IAAG,CAAA,MAAA,CAAC,CAAC,aAAa,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,0CAAE,iBAAiB,IAAG,CAAC,EAAE;YAC/D,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;SAChC;aAAI;YACH,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;SACjC;KACF;IAGD,MAAM;QACJ,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC;QAClD,QACE,EAAC,IAAI,uDACH,4DACE,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC,EACvC,KAAK,EAAE,mBAAmB,IAAI,CAAC,SAAS,GAAG,MAAM,GAAG,EAAE,EAAE,IAExD,4DACE,KAAK,EAAC,eAAe,EACrB,OAAO,EAAE,MAAM,IAAI,CAAC,kBAAkB,EAAE,GACnC,EACP,0FAEE,OAAO,EAAE,IAAI,CAAC,cAAc,EAC5B,QAAQ,EAAC,GAAG,GACP,EACP,4DACE,KAAK,EAAE,2BAA2B,IAAI,CAAC,IAAI,EAAE,EAC7C,IAAI,EAAC,QAAQ,gBACF,MAAM,gBACL,IAAI,CAAC,OAAO,IACvB,cAAc,IACb,WAAK,KAAK,EAAE,wBAAwB,IAAI,CAAC,OAAO,KAAK,aAAa,GAAG,EAAE,GAAG,QAAQ,EAAE,IACjF,IAAI,CAAC,SAAS,GAAG,gBAAU,IAAI,EAAE,IAAI,CAAC,SAAS,GAAI,GAAG,IAAI,CACvD,IACJ,IAAI,EACR,4DAAK,KAAK,EAAC,eAAe,IACxB,4DAAK,KAAK,EAAC,cAAc,IACvB,2DAAI,KAAK,EAAC,eAAe,IAAE,IAAI,CAAC,OAAO,CAAM,EAE3C,IAAI,CAAC,eAAe;YACpB,wEAAiB,KAAK,EAAG,oBAAoB,EAAC,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,EAAE,IAAI,EAAC,UAAU,EAAC,OAAO,EAAC,UAAU,EAAC,OAAO,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,GACtJ,CAEhB,EACN,4DAAK,KAAK,EAAC,YAAY,IACrB,6DAAM,IAAI,EAAC,SAAS,mEAAmE,CACnF,EACN,4DAAK,KAAK,EAAE,gBAAgB,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,GAAG,EAAE,EAAE,IAC5E,6DAAM,IAAI,EAAC,SAAS,EAAC,YAAY,EAAE,CAAC,CAAC,KAAG,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,GAChE,CACH,CACF,CACF,EACN,0FAEE,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAC/B,QAAQ,EAAC,GAAG,GACP,CACH,CACD,EAEP;KACH;;;;;;;;;;","names":[],"sources":["src/global/utils/focus-trap.ts","src/global/utils/animation.ts","src/components/modal/modal.scss?tag=ifx-modal&encapsulation=shadow","src/components/modal/modal.tsx"],"sourcesContent":["/**\n * Copy/pasted from https://github.com/andreasbm/focus-trap\n */\n\n/**\n * Traverses the slots of the open shadowroots and returns all children matching the query.\n * We need to traverse each child-depth one at a time because if an element should be skipped\n * (for example because it is hidden) we need to skip all of it's children. If we use querySelectorAll(\"*\")\n * the information of whether the children is within a hidden parent is lost.\n * @param {ShadowRoot | HTMLElement} root\n * @param skipNode\n * @param isMatch\n * @param {number} maxDepth\n * @param {number} depth\n * @returns {HTMLElement[]}\n */\nexport function queryShadowRoot(\n root: ShadowRoot | HTMLElement,\n skipNode: ($elem: HTMLElement) => boolean,\n isMatch: ($elem: HTMLElement) => boolean,\n maxDepth: number = 20,\n depth: number = 0\n): HTMLElement[] {\n const matches: HTMLElement[] = [];\n\n // If the depth is above the max depth, abort the searching here.\n if (depth >= maxDepth) {\n return matches;\n }\n\n // Traverses a slot element\n const traverseSlot = ($slot: HTMLSlotElement) => {\n // Only check nodes that are of the type Node.ELEMENT_NODE\n // Read more here https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\n const assignedNodes = $slot\n .assignedNodes()\n .filter((node) => node.nodeType === 1);\n if (assignedNodes.length > 0) {\n const $slotParent = assignedNodes[0].parentElement!;\n return queryShadowRoot(\n $slotParent,\n skipNode,\n isMatch,\n maxDepth,\n depth + 1\n );\n }\n\n return [];\n };\n\n // Go through each child and continue the traversing if necessary\n // Even though the typing says that children can't be undefined, Edge 15 sometimes gives an undefined value.\n // Therefore we fallback to an empty array if it is undefined.\n const children = Array.from(root.children || []) as HTMLElement[];\n for (const $child of children) {\n // Check if the element and its descendants should be skipped\n if (skipNode($child)) {\n // console.log('-- SKIP', $child);\n continue;\n }\n\n // console.log('$child', $child);\n\n // If the element matches we always add it\n if (isMatch($child)) {\n matches.push($child);\n }\n\n if ($child.shadowRoot != null) {\n // If the element has a shadow root we need to traverse it\n matches.push(\n ...queryShadowRoot(\n $child.shadowRoot,\n skipNode,\n isMatch,\n maxDepth,\n depth + 1\n )\n );\n } else if ($child.tagName === 'SLOT') {\n // If the child is a slot we need to traverse each assigned node\n matches.push(...traverseSlot($child as HTMLSlotElement));\n } else {\n // Traverse the children of the element\n matches.push(\n ...queryShadowRoot($child, skipNode, isMatch, maxDepth, depth + 1)\n );\n }\n }\n\n return matches;\n}\n\n/**\n * Returns whether the element is hidden.\n * @param $elem\n */\nexport function isHidden($elem: HTMLElement): boolean {\n return (\n $elem.hasAttribute('hidden') ||\n ($elem.hasAttribute('aria-hidden') &&\n $elem.getAttribute('aria-hidden') !== 'false') ||\n // A quick and dirty way to check whether the element is hidden.\n // For a more fine-grained check we could use \"window.getComputedStyle\" but we don't because of bad performance.\n // If the element has visibility set to \"hidden\" or \"collapse\", display set to \"none\" or opacity set to \"0\" through CSS\n // we won't be able to catch it here. We accept it due to the huge performance benefits.\n $elem.style.display === `none` ||\n $elem.style.opacity === `0` ||\n $elem.style.visibility === `hidden` ||\n $elem.style.visibility === `collapse`\n );\n\n // If offsetParent is null we can assume that the element is hidden\n // https://stackoverflow.com/questions/306305/what-would-make-offsetparent-null\n // || $elem.offsetParent == null;\n}\n\n/**\n * Returns whether the element is disabled.\n * @param $elem\n */\nexport function isDisabled($elem: HTMLElement): boolean {\n return (\n $elem.hasAttribute('disabled') ||\n ($elem.hasAttribute('aria-disabled') &&\n $elem.getAttribute('aria-disabled') !== 'false')\n );\n}\n\n/**\n * Determines whether an element is focusable.\n * Read more here: https://stackoverflow.com/questions/1599660/which-html-elements-can-receive-focus/1600194#1600194\n * Or here: https://stackoverflow.com/questions/18261595/how-to-check-if-a-dom-element-is-focusable\n * @param $elem\n */\nexport function isFocusable($elem: HTMLElement): boolean {\n // Discard elements that are removed from the tab order.\n if (\n $elem.getAttribute('tabindex') === '-1' ||\n isHidden($elem) ||\n isDisabled($elem)\n ) {\n return false;\n }\n\n return (\n // At this point we know that the element can have focus (eg. won't be -1) if the tabindex attribute exists\n $elem.hasAttribute('tabindex') ||\n // Anchor tags or area tags with a href set\n (($elem instanceof HTMLAnchorElement || $elem instanceof HTMLAreaElement) &&\n $elem.hasAttribute('href')) ||\n // Form elements which are not disabled\n $elem instanceof HTMLButtonElement ||\n $elem instanceof HTMLInputElement ||\n $elem instanceof HTMLTextAreaElement ||\n $elem instanceof HTMLSelectElement ||\n // IFrames\n $elem instanceof HTMLIFrameElement\n );\n}","export function animationTo(\n element: HTMLElement,\n keyframes: Keyframe | Keyframe[],\n options?: KeyframeAnimationOptions\n) {\n const animated = element.animate(keyframes, { ...options, fill: 'both' });\n animated.addEventListener('finish', () => {\n // @ts-ignore\n animated.commitStyles();\n animated.cancel();\n });\n\n return animated;\n}\n\nconst keyframeDefaults = {\n easing: 'cubic-bezier(0.390, 0.575, 0.565, 1.000)',\n};\n\nexport const KEYFRAMES = {\n fadeIn: [\n {\n offset: 0,\n ...keyframeDefaults,\n opacity: 0,\n },\n {\n offset: 1,\n ...keyframeDefaults,\n opacity: 1,\n },\n ],\n fadeOut: [\n {\n offset: 0,\n ...keyframeDefaults,\n opacity: 1,\n },\n {\n offset: 1,\n ...keyframeDefaults,\n opacity: 0,\n },\n ],\n};","@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../global/font.scss\";\n\n:host {\n display: block;\n}\n\n.modal-container {\n display: none;\n justify-content: center;\n align-items: center;\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 1060;\n overflow-y: auto;\n font-family: var(--ifx-font-family);\n\n}\n\n.modal-container.open {\n display: flex;\n}\n\n.modal-overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: tokens.$ifxColorBaseBlack;\n opacity: 0.5;\n z-index: 0;\n}\n\n.modal-content-container {\n position: absolute;\n display: flex;\n justify-content: center;\n width: 90%;\n min-height: 218px;\n background-color: #fff;\n border-radius: tokens.$ifxBorderRadiusNone;\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);\n overflow: hidden;\n box-sizing: border-box;\n align-items: stretch;\n}\n\n/* Add desktop size here */\n@media screen and (min-width: 768px) {\n .modal-content-container {\n width: 540px;\n min-height: 132px;\n\n &.m,\n &.l,\n &.s {\n width: 90%;\n }\n }\n}\n\n@media screen and (min-width: 1024px) {\n .modal-content-container {\n\n &.s {\n width: 47vw;\n }\n\n &.m {\n width: 63vw;\n }\n\n &.l {\n width: 80%;\n }\n }\n}\n\n.modal-content {\n display: flex;\n flex-direction: column;\n width: 100%;\n max-height: 90vh;\n}\n\n.modal-icon-container {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n background-color: tokens.$ifxColorOcean500;\n align-self: stretch;\n\n &.danger {\n background-color: tokens.$ifxColorRed500;\n }\n\n & ifx-icon {\n color: tokens.$ifxColorBaseWhite;\n }\n}\n\n.modal-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 24px;\n min-height: 76px;\n max-height: 105px;\n box-sizing: border-box;\n border-radius: 1px 1px 0px 0px;\n border-bottom: 1px solid tokens.$ifxColorEngineering200;\n}\n\n.modal-caption {\n max-height: 56px;\n display: -webkit-box;\n overflow: hidden;\n white-space: pre-wrap;\n word-wrap: break-word;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical; \n}\n\n.modal-header h2 {\n margin: 0;\n font-weight: tokens.$ifxFontWeightSemibold;\n font-size: tokens.$ifxFontSizeXl;\n line-height: 28px;\n}\n\n.modal-header button {\n background: none;\n border: none;\n font-size: 1.5em;\n padding: 0;\n cursor: pointer;\n}\n\n.modal-close-button {\n align-self: flex-start;\n margin-right: -8px;\n}\n\n.modal-body {\n padding: 16px 24px;\n min-height: 56px;\n box-sizing: border-box;\n flex: 1;\n overflow-y: auto;\n}\n\n.modal-footer.buttons-present ::slotted(*){\n display: flex;\n justify-content: flex-end;\n gap: 16px;\n padding: 16px 24px 32px 16px\n}\n\n.modal-border {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n font-size: 1.5em;\n flex-grow: 1;\n\n &.primary {\n background-color: tokens.$ifxColorOcean500;\n }\n\n &.secondary {\n background-color: tokens.$ifxColorEngineering500;\n }\n\n &.danger {\n background-color: tokens.$ifxColorRed500;\n }\n\n &.success {\n background-color: tokens.$ifxColorGreen500;\n }\n\n &.warning {\n background-color: tokens.$ifxColorOrange500;\n }\n\n &.orange {\n background-color: tokens.$ifxColorOrange500;\n }\n\n &.ocean {\n background-color: tokens.$ifxColorOcean500;\n }\n\n &.grey {\n background-color: tokens.$ifxColorEngineering500;\n }\n\n &.grey-200 {\n background-color: tokens.$ifxColorEngineering200;\n }\n\n &.red {\n background-color: tokens.$ifxColorRed500;\n }\n\n &.green {\n background-color: tokens.$ifxColorGreen500;\n }\n\n &.berry {\n background-color: tokens.$ifxColorBerry500;\n }\n}","import { Component, Prop, Element, State, Event, Host, EventEmitter, h, Watch } from '@stencil/core';\nimport { queryShadowRoot, isHidden, isFocusable } from '../../global/utils/focus-trap';\nimport { animationTo, KEYFRAMES } from '../../global/utils/animation';\n \n\ntype CloseEventTrigger = 'CLOSE_BUTTON' | 'ESCAPE_KEY' | 'BACKDROP';\n\nexport interface BeforeCloseEventDetail {\n trigger: CloseEventTrigger;\n}\n@Component({\n tag: 'ifx-modal',\n styleUrl: 'modal.scss',\n shadow: true\n})\nexport class IfxModal {\n @Prop({ reflect: true, mutable: true }) opened?: boolean = false;\n @State() showModal: boolean = this.opened || false;\n\n @Prop() caption: string = 'Modal Title';\n @Prop() closeOnOverlayClick: boolean = true;\n\n @Event() ifxModalOpen: EventEmitter;\n @Event() ifxModalClose: EventEmitter;\n\n @Prop() variant: 'default' | 'alert-brand' | 'alert-danger' = 'default';\n \n @Prop() size: 's' | 'm' | 'l' = 's';\n\n @Prop() alertIcon: string = '';\n @Prop() okButtonLabel: string = 'OK';\n @Prop() cancelButtonLabel: string = 'Cancel';\n @Element() hostElement: HTMLElement;\n\n @State() slotButtonsPresent: boolean = false;\n\n @Prop() showCloseButton: boolean = true;\n\n private modalContainer: HTMLElement;\n private focusableElements: HTMLElement[] = [];\n private closeButton: HTMLButtonElement | HTMLIfxIconButtonElement;\n\n componentDidLoad() {\n // Query all focusable elements and store them in `focusableElements`.\n // Needed for the \"focus trap\" functionality.\n this.focusableElements = queryShadowRoot(\n this.hostElement.shadowRoot,\n (el) => isHidden(el) || el.matches('[data-focus-trap-edge]'),\n isFocusable\n );\n\n }\n\n getFirstFocusableElement(): HTMLElement | null {\n return this.focusableElements[0];\n }\n\n getLastFocusableElement(): HTMLElement | null {\n return this.focusableElements[this.focusableElements.length - 1];\n }\n\n handleTopFocus = () => {\n this.attemptFocus(this.getLastFocusableElement());\n };\n\n handleBottomFocus = () => {\n this.attemptFocus(this.getFirstFocusableElement());\n };\n\n\n attemptFocus(element: HTMLElement | null) {\n if (element == null) {\n setTimeout(() => { //wait until DOM is fully loaded\n this.closeButton.focus();\n },);\n return;\n }\n\n setTimeout(() => { //wait until DOM is fully loaded\n element.focus();\n }, 0);\n }\n\n\n open() {\n this.showModal = true;\n try {\n const anim = animationTo(this.modalContainer, KEYFRAMES.fadeIn, {\n duration: 200,\n });\n anim.addEventListener('finish', () => {\n // Setting focus on last item and removing immediately\n // so, on tab press first element is focused\n setTimeout(() => {\n this.getLastFocusableElement()?.focus();\n this.getLastFocusableElement()?.blur();\n }, 0);\n\n this.ifxModalOpen.emit();\n });\n\n this.hostElement.addEventListener('keydown', this.handleKeypress);\n } catch (err) {\n this.ifxModalOpen.emit();\n\n }\n\n\n }\n\n close() {\n try {\n const anim = animationTo(this.modalContainer, KEYFRAMES.fadeOut, {\n duration: 200,\n });\n anim.addEventListener('finish', () => {\n this.showModal = false;\n this.ifxModalClose.emit();\n });\n this.hostElement.removeEventListener('keydown', this.handleKeypress);\n } catch (err) {\n this.showModal = false;\n this.ifxModalClose.emit();\n }\n }\n\n handleKeypress = (event: KeyboardEvent) => {\n if (!this.showModal) {\n return;\n }\n if (event.key === 'Escape') {\n this.doBeforeClose('ESCAPE_KEY');\n }\n };\n\n\n doBeforeClose(trigger: CloseEventTrigger) {\n const triggers = [];\n triggers.push(trigger);\n const prevented = triggers.some((event) => event.defaultPrevented);\n if (!prevented) {\n this.opened = false;\n }\n }\n\n\n\n @Watch('opened')\n openedChanged(newValue) {\n if (newValue === true) {\n this.open();\n } else {\n this.close()\n }\n }\n\n\n handleOverlayClick() {\n if (this.closeOnOverlayClick) {\n this.doBeforeClose('BACKDROP')\n }\n }\n\n\n handleButtonsSlotChange(e) {\n if(e.currentTarget.assignedElements()[0]?.childElementCount > 0) {\n this.slotButtonsPresent = true;\n }else{\n this.slotButtonsPresent = false;\n }\n }\n\n\n render() {\n const isAlertVariant = this.variant !== 'default';\n return (\n <Host>\n <div\n ref={(el) => (this.modalContainer = el)}\n class={`modal-container ${this.showModal ? 'open' : ''}`}\n >\n <div\n class=\"modal-overlay\"\n onClick={() => this.handleOverlayClick()}\n ></div>\n <div\n data-focus-trap-edge\n onFocus={this.handleTopFocus}\n tabindex=\"0\"\n ></div>\n <div\n class={`modal-content-container ${this.size}`}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={this.caption}>\n {isAlertVariant ? (\n <div class={`modal-icon-container ${this.variant === 'alert-brand' ? '' : 'danger'}`}>\n {this.alertIcon ? <ifx-icon icon={this.alertIcon} /> : null}\n </div>\n ) : null}\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h2 class=\"modal-caption\">{this.caption}</h2>\n { \n this.showCloseButton && \n <ifx-icon-button class = 'modal-close-button' ref={(el) => (this.closeButton = el)} icon=\"cross-24\" variant=\"tertiary\" onClick={() => this.doBeforeClose('CLOSE_BUTTON') }>\n </ifx-icon-button>\n }\n </div>\n <div class=\"modal-body\">\n <slot name=\"content\" /*onSlotchange={() => console.log('slots children modified')}*/ />\n </div>\n <div class={`modal-footer ${this.slotButtonsPresent ? 'buttons-present' : ''}`}>\n <slot name=\"buttons\" onSlotchange={(e)=>this.handleButtonsSlotChange(e)}>\n </slot>\n </div>\n </div>\n </div>\n <div\n data-focus-trap-edge\n onFocus={this.handleBottomFocus}\n tabindex=\"0\"\n ></div>\n </div>\n </Host>\n\n );\n }\n}"],"version":3}
1
+ {"file":"ifx-modal.entry.js","mappings":"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","names":[],"sources":["src/global/utils/focus-trap.ts","src/global/utils/animation.ts","src/components/modal/modal.scss?tag=ifx-modal&encapsulation=shadow","src/components/modal/modal.tsx"],"sourcesContent":["/**\n * Copy/pasted from https://github.com/andreasbm/focus-trap\n */\n\n/**\n * Traverses the slots of the open shadowroots and returns all children matching the query.\n * We need to traverse each child-depth one at a time because if an element should be skipped\n * (for example because it is hidden) we need to skip all of it's children. If we use querySelectorAll(\"*\")\n * the information of whether the children is within a hidden parent is lost.\n * @param {ShadowRoot | HTMLElement} root\n * @param skipNode\n * @param isMatch\n * @param {number} maxDepth\n * @param {number} depth\n * @returns {HTMLElement[]}\n */\nexport function queryShadowRoot(\n root: ShadowRoot | HTMLElement,\n skipNode: ($elem: HTMLElement) => boolean,\n isMatch: ($elem: HTMLElement) => boolean,\n maxDepth: number = 20,\n depth: number = 0\n): HTMLElement[] {\n const matches: HTMLElement[] = [];\n\n // If the depth is above the max depth, abort the searching here.\n if (depth >= maxDepth) {\n return matches;\n }\n\n // Traverses a slot element\n const traverseSlot = ($slot: HTMLSlotElement) => {\n // Only check nodes that are of the type Node.ELEMENT_NODE\n // Read more here https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\n const assignedNodes = $slot\n .assignedNodes()\n .filter((node) => node.nodeType === 1);\n if (assignedNodes.length > 0) {\n const $slotParent = assignedNodes[0].parentElement!;\n return queryShadowRoot(\n $slotParent,\n skipNode,\n isMatch,\n maxDepth,\n depth + 1\n );\n }\n\n return [];\n };\n\n // Go through each child and continue the traversing if necessary\n // Even though the typing says that children can't be undefined, Edge 15 sometimes gives an undefined value.\n // Therefore we fallback to an empty array if it is undefined.\n const children = Array.from(root.children || []) as HTMLElement[];\n for (const $child of children) {\n // Check if the element and its descendants should be skipped\n if (skipNode($child)) {\n // console.log('-- SKIP', $child);\n continue;\n }\n\n // console.log('$child', $child);\n\n // If the element matches we always add it\n if (isMatch($child)) {\n matches.push($child);\n }\n\n if ($child.shadowRoot != null) {\n // If the element has a shadow root we need to traverse it\n matches.push(\n ...queryShadowRoot(\n $child.shadowRoot,\n skipNode,\n isMatch,\n maxDepth,\n depth + 1\n )\n );\n } else if ($child.tagName === 'SLOT') {\n // If the child is a slot we need to traverse each assigned node\n matches.push(...traverseSlot($child as HTMLSlotElement));\n } else {\n // Traverse the children of the element\n matches.push(\n ...queryShadowRoot($child, skipNode, isMatch, maxDepth, depth + 1)\n );\n }\n }\n\n return matches;\n}\n\n/**\n * Returns whether the element is hidden.\n * @param $elem\n */\nexport function isHidden($elem: HTMLElement): boolean {\n return (\n $elem.hasAttribute('hidden') ||\n ($elem.hasAttribute('aria-hidden') &&\n $elem.getAttribute('aria-hidden') !== 'false') ||\n // A quick and dirty way to check whether the element is hidden.\n // For a more fine-grained check we could use \"window.getComputedStyle\" but we don't because of bad performance.\n // If the element has visibility set to \"hidden\" or \"collapse\", display set to \"none\" or opacity set to \"0\" through CSS\n // we won't be able to catch it here. We accept it due to the huge performance benefits.\n $elem.style.display === `none` ||\n $elem.style.opacity === `0` ||\n $elem.style.visibility === `hidden` ||\n $elem.style.visibility === `collapse`\n );\n\n // If offsetParent is null we can assume that the element is hidden\n // https://stackoverflow.com/questions/306305/what-would-make-offsetparent-null\n // || $elem.offsetParent == null;\n}\n\n/**\n * Returns whether the element is disabled.\n * @param $elem\n */\nexport function isDisabled($elem: HTMLElement): boolean {\n return (\n $elem.hasAttribute('disabled') ||\n ($elem.hasAttribute('aria-disabled') &&\n $elem.getAttribute('aria-disabled') !== 'false')\n );\n}\n\n/**\n * Determines whether an element is focusable.\n * Read more here: https://stackoverflow.com/questions/1599660/which-html-elements-can-receive-focus/1600194#1600194\n * Or here: https://stackoverflow.com/questions/18261595/how-to-check-if-a-dom-element-is-focusable\n * @param $elem\n */\nexport function isFocusable($elem: HTMLElement): boolean {\n // Discard elements that are removed from the tab order.\n if (\n $elem.getAttribute('tabindex') === '-1' ||\n isHidden($elem) ||\n isDisabled($elem)\n ) {\n return false;\n }\n\n return (\n // At this point we know that the element can have focus (eg. won't be -1) if the tabindex attribute exists\n $elem.hasAttribute('tabindex') ||\n // Anchor tags or area tags with a href set\n (($elem instanceof HTMLAnchorElement || $elem instanceof HTMLAreaElement) &&\n $elem.hasAttribute('href')) ||\n // Form elements which are not disabled\n $elem instanceof HTMLButtonElement ||\n $elem instanceof HTMLInputElement ||\n $elem instanceof HTMLTextAreaElement ||\n $elem instanceof HTMLSelectElement ||\n // IFrames\n $elem instanceof HTMLIFrameElement\n );\n}","export function animationTo(\n element: HTMLElement,\n keyframes: Keyframe | Keyframe[],\n options?: KeyframeAnimationOptions\n) {\n const animated = element.animate(keyframes, { ...options, fill: 'both' });\n animated.addEventListener('finish', () => {\n // @ts-ignore\n animated.commitStyles();\n animated.cancel();\n });\n\n return animated;\n}\n\nconst keyframeDefaults = {\n easing: 'cubic-bezier(0.390, 0.575, 0.565, 1.000)',\n};\n\nexport const KEYFRAMES = {\n fadeIn: [\n {\n offset: 0,\n ...keyframeDefaults,\n opacity: 0,\n },\n {\n offset: 1,\n ...keyframeDefaults,\n opacity: 1,\n },\n ],\n fadeOut: [\n {\n offset: 0,\n ...keyframeDefaults,\n opacity: 1,\n },\n {\n offset: 1,\n ...keyframeDefaults,\n opacity: 0,\n },\n ],\n};","@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../global/font.scss\";\n\n:host {\n display: block;\n}\n\n.modal-container {\n display: none;\n justify-content: center;\n align-items: center;\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 1060;\n overflow-y: auto;\n font-family: var(--ifx-font-family);\n\n}\n\n.modal-container.open {\n display: flex;\n}\n\n.modal-overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: tokens.$ifxColorBaseBlack;\n opacity: 0.5;\n z-index: 0;\n}\n\n.modal-content-container {\n position: absolute;\n display: flex;\n justify-content: center;\n width: 90%;\n min-height: 218px;\n background-color: #fff;\n border-radius: tokens.$ifxBorderRadiusNone;\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);\n overflow: hidden;\n box-sizing: border-box;\n align-items: stretch;\n}\n\n/* Add desktop size here */\n@media screen and (min-width: 768px) {\n .modal-content-container {\n width: 540px;\n min-height: 132px;\n\n &.m,\n &.l,\n &.s {\n width: 90%;\n }\n }\n}\n\n@media screen and (min-width: 1024px) {\n .modal-content-container {\n\n &.s {\n width: 47vw;\n }\n\n &.m {\n width: 63vw;\n }\n\n &.l {\n width: 80%;\n }\n }\n}\n\n.modal-content {\n display: flex;\n flex-direction: column;\n width: 100%;\n max-height: 90vh;\n}\n\n.modal-icon-container {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n background-color: tokens.$ifxColorOcean500;\n align-self: stretch;\n\n &.danger {\n background-color: tokens.$ifxColorRed500;\n }\n\n & ifx-icon {\n color: tokens.$ifxColorBaseWhite;\n }\n}\n\n.modal-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 24px;\n min-height: 76px;\n max-height: 105px;\n box-sizing: border-box;\n border-radius: 1px 1px 0px 0px;\n border-bottom: 1px solid tokens.$ifxColorEngineering200;\n}\n\n.modal-caption {\n max-height: 56px;\n display: -webkit-box;\n overflow: hidden;\n white-space: pre-wrap;\n word-wrap: break-word;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical; \n}\n\n.modal-header h2 {\n margin: 0;\n font-weight: tokens.$ifxFontWeightSemibold;\n font-size: tokens.$ifxFontSizeXl;\n line-height: 28px;\n}\n\n.modal-header button {\n background: none;\n border: none;\n font-size: 1.5em;\n padding: 0;\n cursor: pointer;\n}\n\n.modal-close-button {\n align-self: flex-start;\n margin-right: -8px;\n}\n\n.modal-body {\n padding: 16px 24px;\n min-height: 56px;\n box-sizing: border-box;\n flex: 1;\n overflow-y: auto;\n}\n\n.modal-footer.buttons-present ::slotted(*){\n display: flex;\n justify-content: flex-end;\n gap: 16px;\n padding: 16px 24px 32px 16px\n}\n\n.modal-border {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n font-size: 1.5em;\n flex-grow: 1;\n\n &.primary {\n background-color: tokens.$ifxColorOcean500;\n }\n\n &.secondary {\n background-color: tokens.$ifxColorEngineering500;\n }\n\n &.danger {\n background-color: tokens.$ifxColorRed500;\n }\n\n &.success {\n background-color: tokens.$ifxColorGreen500;\n }\n\n &.warning {\n background-color: tokens.$ifxColorOrange500;\n }\n\n &.orange {\n background-color: tokens.$ifxColorOrange500;\n }\n\n &.ocean {\n background-color: tokens.$ifxColorOcean500;\n }\n\n &.grey {\n background-color: tokens.$ifxColorEngineering500;\n }\n\n &.grey-200 {\n background-color: tokens.$ifxColorEngineering200;\n }\n\n &.red {\n background-color: tokens.$ifxColorRed500;\n }\n\n &.green {\n background-color: tokens.$ifxColorGreen500;\n }\n\n &.berry {\n background-color: tokens.$ifxColorBerry500;\n }\n}","import { Component, Prop, Element, State, Event, Host, EventEmitter, h, Watch } from '@stencil/core';\nimport { queryShadowRoot, isHidden, isFocusable } from '../../global/utils/focus-trap';\nimport { animationTo, KEYFRAMES } from '../../global/utils/animation';\n \n\ntype CloseEventTrigger = 'CLOSE_BUTTON' | 'ESCAPE_KEY' | 'BACKDROP';\n\nexport interface BeforeCloseEventDetail {\n trigger: CloseEventTrigger;\n}\n@Component({\n tag: 'ifx-modal',\n styleUrl: 'modal.scss',\n shadow: true\n})\nexport class IfxModal {\n @Prop({ reflect: true, mutable: true }) opened?: boolean = false;\n @State() showModal: boolean = this.opened || false;\n\n @Prop() caption: string = 'Modal Title';\n @Prop() closeOnOverlayClick: boolean = true;\n\n @Event() ifxModalOpen: EventEmitter;\n @Event() ifxModalClose: EventEmitter;\n\n @Prop() variant: 'default' | 'alert-brand' | 'alert-danger' = 'default';\n \n @Prop() size: 's' | 'm' | 'l' = 's';\n\n @Prop() alertIcon: string = '';\n @Prop() okButtonLabel: string = 'OK';\n @Prop() cancelButtonLabel: string = 'Cancel';\n @Element() hostElement: HTMLElement;\n\n @State() slotButtonsPresent: boolean = false;\n\n @Prop() showCloseButton: boolean = true;\n\n private modalContainer: HTMLElement;\n private focusableElements: HTMLElement[] = [];\n private closeButton: HTMLButtonElement | HTMLIfxIconButtonElement;\n\n componentDidLoad() {\n // Query all focusable elements and store them in `focusableElements`.\n // Needed for the \"focus trap\" functionality.\n this.focusableElements = queryShadowRoot(\n this.hostElement.shadowRoot,\n (el) => isHidden(el) || el.matches('[data-focus-trap-edge]'),\n isFocusable\n );\n\n }\n\n getFirstFocusableElement(): HTMLElement | null {\n return this.focusableElements[0];\n }\n\n getLastFocusableElement(): HTMLElement | null {\n return this.focusableElements[this.focusableElements.length - 1];\n }\n\n handleTopFocus = () => {\n this.attemptFocus(this.getLastFocusableElement());\n };\n\n handleBottomFocus = () => {\n this.attemptFocus(this.getFirstFocusableElement());\n };\n\n\n attemptFocus(element: HTMLElement | null) {\n if (element == null) {\n setTimeout(() => { //wait until DOM is fully loaded\n this.closeButton.focus();\n },);\n return;\n }\n\n setTimeout(() => { //wait until DOM is fully loaded\n element.focus();\n }, 0);\n }\n\n\n open() {\n this.showModal = true;\n try {\n const anim = animationTo(this.modalContainer, KEYFRAMES.fadeIn, {\n duration: 200,\n });\n anim.addEventListener('finish', () => {\n // Setting focus on last item and removing immediately\n // so, on tab press first element is focused\n setTimeout(() => {\n this.getLastFocusableElement()?.focus();\n this.getLastFocusableElement()?.blur();\n }, 0);\n\n this.ifxModalOpen.emit();\n });\n\n this.hostElement.addEventListener('keydown', this.handleKeypress);\n } catch (err) {\n this.ifxModalOpen.emit();\n\n }\n\n\n }\n\n close() {\n try {\n const anim = animationTo(this.modalContainer, KEYFRAMES.fadeOut, {\n duration: 200,\n });\n anim.addEventListener('finish', () => {\n this.showModal = false;\n this.ifxModalClose.emit();\n });\n this.hostElement.removeEventListener('keydown', this.handleKeypress);\n } catch (err) {\n this.showModal = false;\n this.ifxModalClose.emit();\n }\n }\n\n handleKeypress = (event: KeyboardEvent) => {\n if (!this.showModal) {\n return;\n }\n if (event.key === 'Escape') {\n this.doBeforeClose('ESCAPE_KEY');\n }\n };\n\n\n doBeforeClose(trigger: CloseEventTrigger) {\n const triggers = [];\n triggers.push(trigger);\n const prevented = triggers.some((event) => event.defaultPrevented);\n if (!prevented) {\n this.opened = false;\n }\n }\n\n\n\n @Watch('opened')\n openedChanged(newValue) {\n if (newValue === true) {\n this.open();\n } else {\n this.close()\n }\n }\n\n\n handleOverlayClick() {\n if (this.closeOnOverlayClick) {\n this.doBeforeClose('BACKDROP')\n }\n }\n\n\n handleButtonsSlotChange(e) {\n if(e.currentTarget.assignedElements()[0]?.childElementCount > 0) {\n this.slotButtonsPresent = true;\n }else{\n this.slotButtonsPresent = false;\n }\n }\n\n\n render() {\n const isAlertVariant = this.variant !== 'default';\n return (\n <Host>\n <div\n ref={(el) => (this.modalContainer = el)}\n class={`modal-container ${this.showModal ? 'open' : ''}`}\n >\n <div\n class=\"modal-overlay\"\n onClick={() => this.handleOverlayClick()}\n ></div>\n <div\n data-focus-trap-edge\n onFocus={this.handleTopFocus}\n tabindex=\"0\"\n ></div>\n <div\n class={`modal-content-container ${this.size}`}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={this.caption}>\n {isAlertVariant ? (\n <div class={`modal-icon-container ${this.variant === 'alert-brand' ? '' : 'danger'}`}>\n {this.alertIcon ? <ifx-icon icon={this.alertIcon} /> : null}\n </div>\n ) : null}\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h2 class=\"modal-caption\">{this.caption}</h2>\n { \n this.showCloseButton && \n <ifx-icon-button class = 'modal-close-button' ref={(el) => (this.closeButton = el)} icon=\"cross-24\" variant=\"tertiary\" onClick={() => this.doBeforeClose('CLOSE_BUTTON') }>\n </ifx-icon-button>\n }\n </div>\n <div class=\"modal-body\">\n <slot name=\"content\" /*onSlotchange={() => console.log('slots children modified')}*/ />\n </div>\n <div class={`modal-footer ${this.slotButtonsPresent ? 'buttons-present' : ''}`}>\n <slot name=\"buttons\" onSlotchange={(e)=>this.handleButtonsSlotChange(e)}>\n </slot>\n </div>\n </div>\n </div>\n <div\n data-focus-trap-edge\n onFocus={this.handleBottomFocus}\n tabindex=\"0\"\n ></div>\n </div>\n </Host>\n\n );\n }\n}"],"version":3}
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h, g as getElement } from './index-abb8c4b4.js';
1
+ import { r as registerInstance, c as createEvent, h, g as getElement } from './index-dc4139fb.js';
2
2
 
3
3
  const multiselectCss = ":root{--ifx-font-family:\"Source Sans 3\";font-family:var(--ifx-font-family, sans-serif)}.ifx-multiselect-container{position:relative;box-sizing:border-box;font-family:var(--ifx-font-family)}.ifx-multiselect-container.small-select{height:36px}.ifx-multiselect-container.medium-select{height:40px}.ifx-multiselect-container:hover{cursor:pointer}.ifx-multiselect-container .ifx-label-wrapper{font-size:1rem;line-height:1.5rem;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:anywhere;max-width:100%}.ifx-multiselect-container .ifx-error-message-wrapper{color:#CD002F;font-size:0.75rem;line-height:1rem;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:anywhere;max-width:100%}.ifx-multiselect-container .ifx-multiselect-wrapper{background-color:#FFFFFF;box-sizing:border-box;position:relative;display:flex;align-items:center;border:1px solid #8D8786;border-radius:1px;width:100%;font-weight:400;font-style:normal}.ifx-multiselect-container .ifx-multiselect-wrapper.small-select{height:36px;padding:8px 12px;font-size:0.875rem;line-height:1.25rem}.ifx-multiselect-container .ifx-multiselect-wrapper.medium-select{height:40px;padding:8px 16px;font-size:1rem;line-height:1.5rem}.ifx-multiselect-container .ifx-multiselect-wrapper:focus-visible{outline:none}.ifx-multiselect-container .ifx-multiselect-wrapper:focus-visible:not(.active):not(:active){outline:none}.ifx-multiselect-container .ifx-multiselect-wrapper:focus-visible:not(.active):not(:active)::before{content:\"\";position:absolute;width:calc(100% + 4px);height:calc(100% + 4px);top:50%;left:50%;transform:translate(-50%, -50%);border:2px solid #0A8276;border-radius:2px}.ifx-multiselect-container .ifx-multiselect-wrapper.disabled{background:#EEEDED;color:#575352;border-color:#575352;cursor:default;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ifx-multiselect-container .ifx-multiselect-wrapper.error{border-color:#CD002F}.ifx-multiselect-container .ifx-multiselect-wrapper:hover:not(.focus,:focus){border-color:#575352}.ifx-multiselect-container .ifx-multiselect-wrapper.active{border-color:#0A8276 !important}.ifx-multiselect-container .ifx-multiselect-wrapper.active .icon-wrapper-up{display:flex;align-items:center;justify-content:center;padding-left:8px}.ifx-multiselect-container .ifx-multiselect-wrapper.active .icon-wrapper-down{display:none}.ifx-multiselect-container .ifx-multiselect-wrapper .icon-wrapper-up{display:none}.ifx-multiselect-container .ifx-multiselect-wrapper .icon-wrapper-down{display:flex;align-items:center;justify-content:center;padding-left:8px}.ifx-multiselect-container .ifx-multiselect-wrapper.is-flipped .ifx-multiselect-dropdown-menu{top:auto;bottom:100%}.ifx-multiselect-container .ifx-multiselect-input{flex-grow:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ifx-multiselect-container .ifx-multiselect-input.placeholder{opacity:0.5}.ifx-multiselect-container .ifx-multiselect-icon-container{margin-left:auto;align-items:center;display:flex}.ifx-multiselect-container .ifx-clear-button{display:flex}.ifx-multiselect-container .ifx-multiselect-dropdown-menu{position:absolute;top:100%;left:0;width:100%;margin-top:2px;background-color:#fff;box-shadow:0px 6px 9px 0px rgba(29, 29, 29, 0.1);max-height:300px;overflow-y:auto;z-index:var(--dynamic-z-index, 1)}.ifx-multiselect-container .ifx-multiselect-dropdown-menu .search-input{position:sticky;top:0;left:0;z-index:1;width:100%;padding:8px 16px;font-size:1rem;line-height:1.5rem;font-style:normal;font-weight:400;box-sizing:border-box;background-color:#FFFFFF;border:none;border-bottom:1px solid #8D8786}.ifx-multiselect-container .ifx-multiselect-dropdown-menu .search-input:focus{outline:none;border:1px solid #0A8276}.ifx-multiselect-container .ifx-multiselect-dropdown-menu .search-input::placeholder{color:#999}.ifx-multiselect-container .option{position:relative;padding:8px 16px;gap:8px;align-items:center;display:flex;font-style:normal;font-weight:400}.ifx-multiselect-container .option.small-select{font-size:0.875rem;line-height:1.25rem}.ifx-multiselect-container .option.medium-select{font-size:1rem;line-height:1.5rem}.ifx-multiselect-container .option:hover{background-color:#EEEDED}.ifx-multiselect-container .option:focus:not(.disabled){background-color:#BFBBBB;outline:none}.ifx-multiselect-container .option.is-highlighted{background-color:#EEEDED}.ifx-multiselect-container .option.sub-option{padding-left:30px;}.ifx-multiselect-container .option.disabled:hover{cursor:default}.ifx-multiselect-container .option label{cursor:inherit}.select-all-wrapper{padding-top:8px}";
4
4
  const IfxMultiselectStyle0 = multiselectCss;
@@ -27,25 +27,7 @@ const Multiselect = class {
27
27
  this.internals = hostRef.$hostElement$.attachInternals();
28
28
  hostRef.$hostElement$["s-ei"] = this.internals;
29
29
  }
30
- this.batchSize = 50;
31
- this.size = 'medium (40px)';
32
- this.disabled = false;
33
- this.error = false;
34
- this.internalError = false;
35
- this.errorMessage = "Error";
36
- this.label = "";
37
- this.persistentSelectedOptions = [];
38
- this.placeholder = "";
39
- this.dropdownOpen = false;
40
- this.zIndex = 1; // default z-index value
41
30
  this.currentIndex = 0; //needed for option selection using keyboard
42
- this.isLoading = false;
43
- this.loadedOptions = [];
44
- this.filteredOptions = [];
45
- this.showSearch = true;
46
- this.showSelectAll = true;
47
- this.optionCount = 0; // number of all options (leaves of the tree)
48
- this.optionsProcessed = false; // flag whether options have already been counted, intial selections saved
49
31
  this.handleSearch = debounce((targetElement) => {
50
32
  const searchTerm = targetElement.value.toLowerCase();
51
33
  if (searchTerm === '') {
@@ -64,6 +46,29 @@ const Multiselect = class {
64
46
  this.ifxMultiselectIsOpen.emit(this.dropdownOpen);
65
47
  }
66
48
  };
49
+ this.name = undefined;
50
+ this.options = undefined;
51
+ this.batchSize = 50;
52
+ this.size = 'medium (40px)';
53
+ this.disabled = false;
54
+ this.error = false;
55
+ this.internalError = false;
56
+ this.errorMessage = "Error";
57
+ this.internalErrorMessage = undefined;
58
+ this.label = "";
59
+ this.persistentSelectedOptions = [];
60
+ this.placeholder = "";
61
+ this.dropdownOpen = false;
62
+ this.dropdownFlipped = undefined;
63
+ this.maxItemCount = undefined;
64
+ this.zIndex = 1;
65
+ this.isLoading = false;
66
+ this.loadedOptions = [];
67
+ this.filteredOptions = [];
68
+ this.showSearch = true;
69
+ this.showSelectAll = true;
70
+ this.optionCount = 0;
71
+ this.optionsProcessed = false;
67
72
  }
68
73
  updateOptions() {
69
74
  this.loadedOptions = [];
@@ -524,6 +529,73 @@ const Multiselect = class {
524
529
  Multiselect.globalZIndex = 1; // This will be shared among all instances of the component.
525
530
  Multiselect.style = IfxMultiselectStyle0;
526
531
 
527
- export { Multiselect as ifx_multiselect };
532
+ const textFieldCss = ":root{--ifx-font-family:\"Source Sans 3\";font-family:var(--ifx-font-family, sans-serif)}:host{display:flex}.textInput__container{display:flex;flex-direction:column;align-items:flex-start;padding:0px;width:100%;flex:none;order:0;align-self:stretch;flex-grow:0;font-family:var(--ifx-font-family)}.textInput__container.disabled .textInput__top-wrapper label{color:#575352}.textInput__container.disabled .textInput__bottom-wrapper input{border:1px solid #575352;background-color:#EEEDED}.textInput__container.disabled .textInput__bottom-wrapper input::placeholder{font-size:0.875rem;color:#575352}.textInput__container .textInput__top-wrapper{display:flex;flex-direction:row;align-items:flex-start;padding:0px;gap:4px;flex:none;order:0;align-self:stretch;flex-grow:0}.textInput__container .textInput__top-wrapper label{font-style:normal;font-weight:400;font-size:1rem;line-height:1.5rem;display:flex;align-items:center;color:#1D1D1D;flex:none;order:0;flex-grow:0}.textInput__container .textInput__top-wrapper label .optional-required{margin-left:4px}.textInput__container .textInput__top-wrapper label .optional{margin-left:4px}.textInput__container .textInput__top-wrapper label .required{margin-left:4px}.textInput__container .textInput__top-wrapper label .required.error{color:#CD002F}.textInput__container .input-container{position:relative;display:flex;align-items:center;width:100%}.textInput__container .textInput__bottom-wrapper{flex-grow:1;position:relative;display:flex;flex-direction:column;align-items:flex-start;padding:0px;gap:4px;flex:none;order:1;align-self:stretch;flex-grow:0}.textInput__container .textInput__bottom-wrapper input{width:100%;box-sizing:border-box;display:flex;flex-direction:row;align-items:center;padding:8px 16px;gap:8px;height:40px;background-color:#FFFFFF;color:#1D1D1D;font-family:\"Source Sans 3\";font-size:1rem;line-height:1.5rem;border:1px solid #8D8786;border-radius:1px;flex:none;order:0;align-self:stretch;flex-grow:0;text-overflow:ellipsis}.textInput__container .textInput__bottom-wrapper input.input-s{height:36px;font-size:0.875rem;line-height:1.25rem}.textInput__container .textInput__bottom-wrapper input.input-s::placeholder{font-size:0.875rem;line-height:1.25rem}.textInput__container .textInput__bottom-wrapper input.icon{padding-left:40px}.textInput__container .textInput__bottom-wrapper input.error{border:1px solid #CD002F}.textInput__container .textInput__bottom-wrapper input.error:focus{outline:none}.textInput__container .textInput__bottom-wrapper input.success{border:1px solid #4CA460}.textInput__container .textInput__bottom-wrapper input.success:focus{outline:none}.textInput__container .textInput__bottom-wrapper input:focus:not(.error,.success){outline:none;border:1px solid #0A8276}.textInput__container .textInput__bottom-wrapper input:hover:not(:disabled,:focus,.error,.success){border:1px solid #575352}.textInput__container .textInput__bottom-wrapper input::placeholder{font-style:normal;font-weight:400;font-size:1rem;line-height:1.5rem;color:#8D8786;flex:none;order:1;flex-grow:1}.textInput__container .textInput__bottom-wrapper .input-icon{position:absolute;top:50%;transform:translateY(-50%);left:16px;transition:0.3s;color:#8D8786}.textInput__container .textInput__bottom-wrapper .textInput__bottom-wrapper-caption{font-style:normal;font-weight:400;font-size:0.75rem;line-height:1rem;letter-spacing:0.2px;color:#1D1D1D;flex:none;order:1;align-self:stretch;flex-grow:0}.textInput__container .textInput__bottom-wrapper .textInput__bottom-wrapper-caption.error{color:#CD002F}.textInput__container .textInput__bottom-wrapper .textInput__bottom-wrapper-caption.disabled{color:#575352}.textInput__container .delete-icon{position:absolute;right:16px}.textInput__container .delete-icon :hover{cursor:pointer}";
533
+ const IfxTextFieldStyle0 = textFieldCss;
534
+
535
+ const TextField = class {
536
+ constructor(hostRef) {
537
+ registerInstance(this, hostRef);
538
+ this.ifxInput = createEvent(this, "ifxInput", 7);
539
+ if (hostRef.$hostElement$["s-ei"]) {
540
+ this.internals = hostRef.$hostElement$["s-ei"];
541
+ }
542
+ else {
543
+ this.internals = hostRef.$hostElement$.attachInternals();
544
+ hostRef.$hostElement$["s-ei"] = this.internals;
545
+ }
546
+ this.placeholder = "Placeholder";
547
+ this.value = '';
548
+ this.error = false;
549
+ this.label = "";
550
+ this.icon = "";
551
+ this.caption = "";
552
+ this.size = 'm';
553
+ this.required = false;
554
+ this.optional = false;
555
+ this.success = false;
556
+ this.disabled = false;
557
+ this.maxlength = undefined;
558
+ this.showDeleteIcon = false;
559
+ }
560
+ valueWatcher(newValue) {
561
+ if (newValue !== this.inputElement.value) {
562
+ this.inputElement.value = newValue;
563
+ }
564
+ }
565
+ async reset() {
566
+ this.value = '';
567
+ this.inputElement.value = '';
568
+ }
569
+ handleDeleteContent() {
570
+ this.reset();
571
+ this.ifxInput.emit(this.value);
572
+ }
573
+ handleInput() {
574
+ const query = this.inputElement.value;
575
+ this.value = query; // update the value property when input changes
576
+ this.internals.setFormValue(query); // update form value
577
+ this.ifxInput.emit(this.value);
578
+ }
579
+ formResetCallback() {
580
+ this.internals.setValidity({});
581
+ this.internals.setFormValue("");
582
+ }
583
+ render() {
584
+ return (h("div", { key: 'bb23874d364dd5cd6a93018b402d5e903210b667', "aria-label": "a text field for user input", "aria-value": this.value, "aria-disabled": this.disabled, class: `textInput__container ${this.disabled ? 'disabled' : ""}` }, h("div", { key: '2dbde0b3989f6b86587396a85a3c3e8e02f3f4d7', class: "textInput__top-wrapper" }, h("label", { key: '90a36f87df7fc093f5ce2152a2cdbff0aa0fab96', htmlFor: "text-field" }, h("slot", { key: '70197d0b96b5e0f3c193d3fd3e09d4c3156165af' }), this.optional && this.required ? (h("span", { class: "optional-required" }, "(optional) *")) : this.optional ? (h("span", { class: "optional" }, "(optional)")) : this.required ? (h("span", { class: `required ${this.error ? 'error' : ""}` }, "*")) : null)), h("div", { key: '326320a974bd5b6af15430dc3aca413fc2637dd3', class: "textInput__bottom-wrapper" }, h("div", { key: '3e5187212136c6f03056de3f0755e387b46e0f35', class: "input-container" }, this.icon && (h("ifx-icon", { key: 'e748bf9dafec5c7dc917131bd96fd4d049606a42', class: 'input-icon', icon: this.icon })), h("input", { key: '96e3dc6d940e3a85493810a89f5ba5e9493f4c2a', ref: (el) => (this.inputElement = el), disabled: this.disabled, type: "text", id: 'text-field', value: this.value, onInput: () => this.handleInput(), placeholder: this.placeholder, maxlength: this.maxlength, class: `${this.icon ? 'icon' : ""}
585
+ ${this.error ? 'error' : ""}
586
+ ${this.size === "s" ? "input-s" : ""}
587
+ ${this.success ? "success" : ""}` }), (this.showDeleteIcon && this.value) && (h("ifx-icon", { key: '53a67b4e4c3dd2f861e248b6deaf31ffbe448093', class: "delete-icon", icon: "cremove16", onClick: () => this.handleDeleteContent() }))), this.caption && !this.error &&
588
+ h("div", { key: '35e9c9fa9f7e2104c6b08f46a2669e0c65a6a456', class: `textInput__bottom-wrapper-caption ${this.disabled} ? disabled : ""` }, this.caption), this.error &&
589
+ h("div", { key: 'e613e3a9eabb12cb6001466a3e85b72cb456529d', class: "textInput__bottom-wrapper-caption error" }, this.caption))));
590
+ }
591
+ static get formAssociated() { return true; }
592
+ get el() { return getElement(this); }
593
+ static get watchers() { return {
594
+ "value": ["valueWatcher"]
595
+ }; }
596
+ };
597
+ TextField.style = IfxTextFieldStyle0;
598
+
599
+ export { Multiselect as ifx_multiselect, TextField as ifx_text_field };
528
600
 
529
- //# sourceMappingURL=ifx-multiselect.entry.js.map
601
+ //# sourceMappingURL=ifx-multiselect_2.entry.js.map
@@ -0,0 +1 @@
1
+ {"file":"ifx-multiselect.ifx-text-field.entry.js","mappings":"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","names":[],"sources":["src/components/select/multi-select/multiselect.scss?tag=ifx-multiselect&encapsulation=shadow","src/components/select/multi-select/multiselect.tsx","src/components/text-field/text-field.scss?tag=ifx-text-field&encapsulation=shadow","src/components/text-field/text-field.tsx"],"sourcesContent":["// @import '~choices.js/public/assets/styles/choices.css';\n@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../../global/font.scss\";\n\n.ifx-multiselect-container {\n position: relative;\n box-sizing: border-box;\n font-family: var(--ifx-font-family);\n\n &.small-select {\n height: 36px;\n }\n\n &.medium-select {\n height: 40px;\n }\n\n &:hover {\n cursor: pointer;\n }\n\n\n .ifx-label-wrapper {\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n white-space: pre-wrap;\n word-wrap: break-word;\n overflow-wrap: anywhere;\n max-width: 100%;\n }\n\n .ifx-error-message-wrapper {\n color: #CD002F;\n font-size: tokens.$ifxFontSizeXs;\n line-height: tokens.$ifxLineHeightXs;\n white-space: pre-wrap;\n word-wrap: break-word;\n overflow-wrap: anywhere;\n max-width: 100%;\n }\n\n .ifx-multiselect-wrapper {\n background-color: tokens.$ifxColorBaseWhite;\n box-sizing: border-box;\n position: relative;\n display: flex;\n align-items: center;\n border: 1px solid tokens.$ifxColorEngineering400;\n border-radius: tokens.$ifxBorderRadius12;\n width: 100%;\n font-weight: 400;\n font-style: normal;\n\n\n &.small-select {\n height: 36px;\n padding: 8px 12px;\n font-size: tokens.$ifxFontSizeS;\n line-height: tokens.$ifxLineHeightS;\n }\n\n &.medium-select {\n height: 40px;\n padding: 8px 16px;\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n }\n\n &:focus-visible {\n outline: none;\n }\n\n &:focus-visible:not(.active):not(:active) {\n outline: none;\n\n &::before {\n content: '';\n position: absolute;\n width: calc(100% + 4px);\n height: calc(100% + 4px);\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n border: 2px solid tokens.$ifxColorOcean500;\n border-radius: 2px;\n\n }\n }\n\n &.disabled {\n background: tokens.$ifxColorEngineering200;\n color: #575352;\n border-color: #575352;\n cursor: default;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n }\n\n &.error {\n border-color: #CD002F;\n }\n\n &:hover:not(.focus, :focus) {\n border-color: tokens.$ifxColorEngineering500;\n }\n\n &.active {\n border-color: tokens.$ifxColorOcean500 !important; // Active border color\n\n & .icon-wrapper-up {\n display: flex;\n align-items: center;\n justify-content: center;\n padding-left: tokens.$ifxSpace100;\n }\n\n & .icon-wrapper-down {\n display: none\n }\n }\n\n\n & .icon-wrapper-up {\n display: none;\n }\n\n & .icon-wrapper-down {\n display: flex;\n align-items: center;\n justify-content: center;\n padding-left: tokens.$ifxSpace100;\n }\n\n &.is-flipped {\n .ifx-multiselect-dropdown-menu {\n top: auto;\n bottom: 100%;\n }\n }\n }\n\n .ifx-multiselect-input {\n flex-grow: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &.placeholder {\n opacity: 0.5;\n }\n\n }\n\n\n .ifx-multiselect-icon-container {\n margin-left: auto;\n align-items: center;\n display: flex;\n }\n\n\n .ifx-clear-button {\n display: flex;\n }\n\n .ifx-multiselect-dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n width: 100%;\n margin-top: 2px;\n background-color: #fff;\n box-shadow: 0px 6px 9px 0px rgba(29, 29, 29, 0.10);\n max-height: 300px;\n /* Adjust based on your design */\n overflow-y: auto;\n z-index: var(--dynamic-z-index, 1); // Fallback to 1\n\n .search-input {\n position: sticky;\n top: 0;\n left: 0;\n z-index: 1;\n width: 100%;\n padding: 8px 16px;\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n font-style: normal;\n font-weight: 400;\n box-sizing: border-box;\n background-color: tokens.$ifxColorBaseWhite;\n border: none;\n border-bottom: 1px solid tokens.$ifxColorEngineering400;\n\n &:focus {\n outline: none;\n border: 1px solid tokens.$ifxColorOcean500;\n }\n\n // Optional: Placeholder style\n &::placeholder {\n color: #999;\n }\n }\n }\n\n .option {\n position: relative;\n padding: 8px 16px;\n gap: 8px;\n align-items: center;\n display: flex;\n font-style: normal;\n font-weight: 400;\n\n &.small-select {\n font-size: tokens.$ifxFontSizeS;\n line-height: tokens.$ifxLineHeightS;\n }\n\n &.medium-select {\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n }\n\n &:hover {\n background-color: tokens.$ifxColorEngineering200;\n }\n\n &:focus:not(.disabled) {\n background-color: tokens.$ifxColorEngineering300;\n outline: none;\n }\n\n &.is-highlighted {\n background-color: tokens.$ifxColorEngineering200;\n ;\n }\n\n &.selected {\n // color: #0A8276;\n }\n\n &.sub-option {\n padding-left: 30px;\n /* or however much indentation you want */\n }\n\n &.disabled {\n &:hover {\n cursor: default;\n }\n }\n\n label {\n cursor: inherit;\n }\n }\n\n\n\n}\n\n.select-all-wrapper {\n padding-top: 8px;\n}","import { Component, Prop, State, Event, EventEmitter, Element, h, Watch, AttachInternals } from '@stencil/core';\nimport { Option } from './interfaces';\n\n// Debounce function\nfunction debounce(func, wait) {\n let timeout;\n return function executedFunction(...args) {\n const later = () => {\n clearTimeout(timeout);\n func(...args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n };\n};\n\n@Component({\n tag: 'ifx-multiselect',\n styleUrl: 'multiselect.scss',\n shadow: true,\n formAssociated: true\n})\n\n\n\nexport class Multiselect {\n\n @Prop() name: string;\n @Prop() options: any[] | string;\n @Prop() batchSize: number = 50;\n @Prop() size: string = 'medium (40px)';\n @Prop() disabled: boolean = false;\n @Prop() error: boolean = false;\n @State() internalError: boolean = false;\n @Prop() errorMessage: string = \"Error\";\n @State() internalErrorMessage: string;\n @Prop() label: string = \"\";\n @State() persistentSelectedOptions: Option[] = [];\n @Prop() placeholder: string = \"\";\n @State() dropdownOpen = false;\n @State() dropdownFlipped: boolean;\n @Prop() maxItemCount: number;\n @State() zIndex: number = 1; // default z-index value\n static globalZIndex = 1; // This will be shared among all instances of the component.\n private currentIndex: number = 0; //needed for option selection using keyboard\n @State() isLoading: boolean = false;\n @State() loadedOptions: Option[] = [];\n @State() filteredOptions: Option[] = [];\n @Prop() showSearch: boolean = true;\n @Prop() showSelectAll: boolean = true;\n @State() optionCount: number = 0; // number of all options (leaves of the tree)\n @State() optionsProcessed: boolean = false; // flag whether options have already been counted, intial selections saved\n\n\n @Event() ifxSelect: EventEmitter;\n @Event() ifxMultiselectIsOpen: EventEmitter;\n\n @Element() el: HTMLElement;\n dropdownElement!: HTMLElement;\n\n @AttachInternals() internals: ElementInternals;\n\n\n @Watch('options')\n updateOptions() { \n this.loadedOptions = [];\n this.filteredOptions = [];\n this.optionCount = 0;\n this.optionsProcessed = false;\n this.persistentSelectedOptions = [];\n\n this.loadInitialOptions();\n }\n\n\n async loadInitialOptions() {\n this.isLoading = true;\n this.internalError = this.error;\n this.internalErrorMessage = this.errorMessage;\n // Load the first batch of options (e.g., first 20)\n this.loadedOptions = await this.fetchOptions(0, this.batchSize);\n this.isLoading = false;\n }\n\n async fetchMoreOptions() {\n this.isLoading = true;\n const moreOptions = await this.fetchOptions(this.loadedOptions.length, this.batchSize);\n this.loadedOptions = [...this.loadedOptions, ...moreOptions];\n this.isLoading = false;\n }\n\n\n handleScroll(event: UIEvent) {\n const element = event.target as HTMLElement;\n const halfwayPoint = Math.floor((element.scrollHeight - element.clientHeight) / 2); //loading more options when the user has scrolled halfway through the current list\n\n if (element.scrollTop >= halfwayPoint) {\n this.fetchMoreOptions();\n }\n }\n\n\n\n\n async fetchOptions(startIndex: number, count: number): Promise<Option[]> {\n let allOptions: Option[] = [];\n\n // Parse options if it's a string, or use directly if it's an array\n if (typeof this.options === 'string') {\n try {\n allOptions = JSON.parse(this.options);\n \n } catch (err) {\n console.error('Failed to parse options:', err);\n }\n } else if (Array.isArray(this.options)) {\n allOptions = this.options;\n } else {\n console.error('Unexpected value for options:', this.options);\n }\n\n if (!this.optionsProcessed) {\n this.optionCount = this.countOptions(allOptions);\n const initiallySelected = this.collectSelectedOptions(allOptions);\n const initallySelectedNotInState = initiallySelected.filter(init => !this.persistentSelectedOptions.some(opt => opt.value == init.value));\n this.persistentSelectedOptions = [...this.persistentSelectedOptions, ...initallySelectedNotInState];\n this.optionsProcessed = true;\n }\n \n // Slice the options array based on startIndex and count\n const slicedOptions = allOptions.slice(startIndex, startIndex + count);\n return slicedOptions;\n }\n\n /**\n * Collects and returns all options that are selected.\n * When the parent is selected, then the value of the children will be overriden with selected as well.\n * It will only collect the leaves of the tree.\n * \n * @param options A list of options.\n * @returns A list with all selected options\n */\n private collectSelectedOptions(options: Option[]): Option[] {\n let selectedOptions: Option[] = [];\n \n for (const option of options) {\n if (option.selected) {\n if (option.children && option.children.length > 0) {\n // if parent is selected, then select all child options\n selectedOptions = selectedOptions.concat(this.collectLeafOptions(option.children));\n } else {\n selectedOptions.push(option);\n }\n } else {\n if (option.children && option.children.length > 0) {\n selectedOptions = selectedOptions.concat(this.collectSelectedOptions(option.children));\n }\n }\n }\n return selectedOptions;\n }\n\n /**\n * Collects all leaf children options.\n * \n * @param option A list with all leaf-children.\n */\n private collectLeafOptions(children: Option[]): Option[] {\n let leafOptions = [];\n \n for (const child of children) {\n if (child.children && child.children.length > 0) {\n leafOptions = leafOptions.concat(this.collectLeafOptions(child.children));\n } else {\n leafOptions.push(child);\n }\n } \n return leafOptions;\n }\n\n /**\n * Count the number of options. Only counts the leaves of the options tree.\n */\n countOptions(options: Option[]): number {\n let count = 0;\n for (const option of options) {\n if (option.children && option.children.length >= 0) {\n count += this.countOptions(option.children);\n } else {\n count++;\n }\n }\n return count;\n }\n\n\n handleSearch = debounce((targetElement: HTMLInputElement) => {\n const searchTerm = targetElement.value.toLowerCase();\n if (searchTerm === '') {\n this.filteredOptions = this.loadedOptions;\n } else {\n this.filteredOptions = this.loadedOptions.filter(option => option.label.toLowerCase().includes(searchTerm))\n }\n }, 300);\n\n componentDidLoad() {\n setTimeout(() => {\n this.positionDropdown();\n }, 500);\n\n // setInterval(this.handleScroll, 5000); // Runs every 5 seconds (5000 milliseconds)\n }\n\n componentWillLoad() {\n this.loadInitialOptions();\n this.filteredOptions = [...this.loadedOptions];\n }\n\n @Watch('error')\n updateInternalError() {\n this.internalError = this.error;\n }\n\n @Watch('errorMessage')\n updateInternalErrorMessage() {\n this.internalErrorMessage = this.errorMessage;\n }\n\n @Watch('loadedOptions')\n loadedOptionsChanged() {\n this.filteredOptions = [...this.loadedOptions];\n }\n\n @Watch('persistentSelectedOptions')\n onSelectionChange(newValue: Option[], _: Option[]) {\n const formData = new FormData();\n newValue.forEach(option => formData.append(this.name, option.value));\n this.internals.setFormValue(formData);\n }\n\n handleOptionClick(option: Option) {\n this.internalError = false;\n\n if (!option.selected && this.isSelectionLimitReached(option)) {\n option.checkboxRef.toggleCheckedState(false)\n this.internalError = true;\n this.internalErrorMessage = \"Please consider the maximum number of items to choose from\";\n return;\n }\n \n this.updateSelection(option);\n this.ifxSelect.emit(this.persistentSelectedOptions);\n }\n\n\n isSelectionLimitReached(option: Option): boolean {\n let newOptionsLength = option.children ? option.children.length : 1;\n return this.maxItemCount && this.persistentSelectedOptions.length + newOptionsLength > this.maxItemCount &&\n !this.persistentSelectedOptions.some(selectedOption => selectedOption.value === option.value)\n }\n\n updateSelection(option: Option) {\n const wasSelected = this.persistentSelectedOptions.some(selectedOption => selectedOption.value === option.value);\n\n if (option.children && option.children.length > 0) {\n this.handleParentOptionClick(option);\n } else {\n this.handleChildOptionClick(option, wasSelected);\n }\n }\n\n async selectAll() {\n const allOptions = await this.fetchOptions(0, this.optionCount);\n this.selectAllRecursive(allOptions);\n \n this.ifxSelect.emit(this.persistentSelectedOptions);\n }\n\n private selectAllRecursive(options: Option[]) {\n for (const opt of options) {\n if (opt.children && opt.children.length > 0) {\n this.selectAllRecursive(opt.children);\n } else {\n if (!this.persistentSelectedOptions.some((some) => some.value === opt.value )) {\n opt.selected = true;\n this.persistentSelectedOptions = [...this.persistentSelectedOptions, opt];\n }\n }\n }\n\n }\n\n handleParentOptionClick(option: Option) {\n const allChildrenSelected = option.children.every(child =>\n this.persistentSelectedOptions.some(selectedOption => selectedOption.value === child.value)\n );\n\n if (allChildrenSelected) {\n this.persistentSelectedOptions = [...this.persistentSelectedOptions.filter(\n selectedOption => !option.children.some(child => child.value === selectedOption.value)\n )];\n\n option.selected = false;\n option.children.forEach(child => {\n child.selected = false;\n })\n\n } else {\n const newChildren = [...option.children.filter(childOption =>\n !this.persistentSelectedOptions.some(selectedOption => selectedOption.value === childOption.value)\n )];\n option.selected = true;\n option.children.forEach(child => {\n child.selected = true;\n })\n this.persistentSelectedOptions = [...this.persistentSelectedOptions, ...newChildren];\n }\n }\n\n handleChildOptionClick(option: Option, wasSelected: boolean) {\n if (wasSelected) {\n this.persistentSelectedOptions = [...this.persistentSelectedOptions.filter(selectedOption => selectedOption.value !== option.value)];\n option.selected = false;\n } else {\n this.persistentSelectedOptions = [...this.persistentSelectedOptions, option];\n option.selected = true;\n }\n this.updateParentSelectedState();\n }\n\n updateParentSelectedState() {\n this.loadedOptions.forEach(option => {\n if(option.children?.length > 0) {\n if(option.children.every(child => child.selected === true)) option.selected = true;\n else {\n option.selected = false;\n if(this.isOptionIndeterminate(option)) {\n option.indeterminate = true;\n }else{\n option.indeterminate = false;\n }\n }\n }\n });\n }\n\n\n\n handleDocumentClick = (event: Event) => {\n const path = event.composedPath();\n if (!path.includes(this.dropdownElement)) {\n this.dropdownOpen = false;\n document.removeEventListener('click', this.handleDocumentClick);\n\n // Dispatch the ifxMultiselectIsOpen event\n this.ifxMultiselectIsOpen.emit(this.dropdownOpen);\n }\n }\n\n getSizeClass() {\n return `${this.size}` === \"s\"\n ? \"small-select\"\n : \"medium-select\";\n }\n\n toggleDropdown() {\n this.dropdownOpen = !this.dropdownOpen;\n setTimeout(() => {\n if (this.dropdownOpen) {\n document.addEventListener('click', this.handleDocumentClick);\n }\n // Dispatch the ifxMultiselectIsOpen event\n this.ifxMultiselectIsOpen.emit(this.dropdownOpen);\n }, 0);\n this.zIndex = Multiselect.globalZIndex++;\n }\n\n\n waitForElement(querySelectorFunc: Function, callback: Function, maxTries = 50) {\n let tries = 0;\n function request() {\n requestAnimationFrame(() => {\n const elements = querySelectorFunc();\n if (elements.length > 0 || tries > maxTries) {\n callback(elements);\n } else {\n tries++;\n request();\n }\n });\n }\n request();\n }\n\n\n handleKeyDown(event: KeyboardEvent) {\n if (this.disabled) return; // If it's disabled, don't do anything.\n\n const options = this.dropdownElement.querySelectorAll('.option');\n \n switch (event.code) {\n case 'Enter':\n this.toggleDropdown();\n // Wait a bit for the dropdown to finish rendering\n this.waitForElement(() => {\n return this.dropdownElement.querySelectorAll('.option');\n }, (options) => {\n this.updateHighlightedOption(options);\n });\n break;\n case 'Space': \n this.toggleDropdown();\n // Wait a bit for the dropdown to finish rendering\n this.waitForElement(() => {\n return this.dropdownElement.querySelectorAll('.option');\n }, (options) => {\n this.updateHighlightedOption(options);\n });\n break;\n case 'ArrowDown':\n this.handleArrowDown(options);\n if (this.dropdownOpen) {\n this.updateHighlightedOption(options);\n }\n break;\n case 'ArrowUp':\n this.handleArrowUp(options);\n if (this.dropdownOpen) {\n this.updateHighlightedOption(options);\n }\n break;\n }\n }\n\n handleWrapperClick(event: MouseEvent) {\n // This is your existing logic for positioning the dropdown\n this.positionDropdown();\n\n // Check if the event target is the wrapper itself and not a child element.\n if (event.currentTarget === event.target) {\n this.toggleDropdown();\n }\n }\n\n clearSelection() {\n this.persistentSelectedOptions = [];\n this.ifxSelect.emit(this.persistentSelectedOptions); // if you want to emit empty selection after clearing\n }\n\n positionDropdown() {\n const wrapperRect = this.el.shadowRoot.querySelector('.ifx-multiselect-wrapper')?.getBoundingClientRect();\n const spaceBelow = window.innerHeight - wrapperRect.bottom;\n const spaceAbove = wrapperRect.top;\n\n // If there's more space above than below the trigger and the dropdown doesn't fit below\n if ((spaceAbove > spaceBelow && wrapperRect.height > spaceBelow) || (wrapperRect.bottom > window.innerHeight)) {\n this.dropdownFlipped = true;\n } else {\n this.dropdownFlipped = false;\n }\n }\n\n\n\n // Helper function to update highlighted option based on currentIndex\n private updateHighlightedOption(options: NodeList) {\n // Clear all highlights\n options.forEach((option: Element) => option.classList.remove('is-highlighted'));\n\n // Apply highlight to the current option\n if (this.currentIndex >= 0 && this.currentIndex < options.length) {\n (options[this.currentIndex] as Element).classList.add('is-highlighted');\n (options[this.currentIndex] as HTMLElement).focus();\n }\n }\n\n // Helper function to handle arrow down navigation\n private handleArrowDown(options: NodeList) {\n if (this.currentIndex < options.length - 1) {\n this.currentIndex++;\n } else {\n this.currentIndex = 0; // Wrap to the beginning.\n }\n }\n\n // Helper function to handle arrow up navigation\n private handleArrowUp(options: NodeList) {\n if (this.currentIndex > 0) {\n this.currentIndex--;\n } else {\n this.currentIndex = options.length - 1; // Wrap to the end.\n }\n }\n \n handleOptionKeyDown(e: KeyboardEvent, option: Option) {\n if(e.key !== 'ArrowUp' && e.key !== 'ArrowDown') e.stopPropagation();\n if(e.key === 'Enter' || e.key === ' ') {\n this.handleOptionClick(option);\n }\n }\n\n renderOption(option: Option, index: number) {\n const isIndeterminate = this.isOptionIndeterminate(option);\n const isSelected = option.children ? isIndeterminate || this.isOptionSelected(option) : this.persistentSelectedOptions.some(selectedOption => selectedOption.value === option.value);\n const disableCheckbox = !isSelected && this.maxItemCount && this.persistentSelectedOptions.length >= this.maxItemCount;\n const uniqueId = `checkbox-${option.value}-${index}`; // Generate a unique ID using the index\n\n return (\n <div class=\"option-wrapper\">\n <div class={`option ${isSelected ? 'selected' : ''} ${disableCheckbox ? 'disabled' : ''} \n ${this.getSizeClass()}`}\n data-value={option.value}\n onKeyDown={(e) => !disableCheckbox && this.handleOptionKeyDown(e, option)}\n onClick={() => !disableCheckbox && this.handleOptionClick(option)}\n tabindex=\"0\"\n role={`${option.children?.length > 0 ? \"treeitem\" : \"option\"}`}>\n <ifx-checkbox tabIndex={-1} ref={(el) => option.checkboxRef = el} id={uniqueId} size=\"s\" checked={isIndeterminate ? false : isSelected} indeterminate={isIndeterminate} disabled={disableCheckbox}></ifx-checkbox>\n <label htmlFor={uniqueId} onClick={(e) => e.stopPropagation()}>{option.label}</label>\n </div>\n {option.children && option.children.map((child, childIndex) => this.renderSubOption(child, `${index}-${childIndex}`))}\n </div>\n );\n }\n\n isOptionSelected(option: Option): boolean {\n if (!option.children) return false;\n\n return option.children.every(child =>\n this.persistentSelectedOptions.some(persistentOption => persistentOption.value === child.value)\n );\n }\n\n\n isOptionIndeterminate(option: Option): boolean {\n if (!option.children) return false;\n\n const selectedChildren = option.children.filter(child =>\n this.persistentSelectedOptions.some(persistentOption => persistentOption.value === child.value)\n ).length;\n\n return selectedChildren > 0 && selectedChildren < option.children.length;\n }\n\n\n findInOptions(options: Option[], searchTerm: string): Option | null {\n for (const option of options) {\n if (option.value === searchTerm) {\n return option;\n }\n if (option.children) {\n const foundInChildren = this.findInOptions(option.children, searchTerm);\n if (foundInChildren) {\n return foundInChildren;\n }\n }\n }\n return null;\n }\n\n\n renderSubOption(option: Option, index: string) {\n const isSelected = this.persistentSelectedOptions.some(selectedOption => selectedOption.value === option.value);\n const disableCheckbox = !isSelected && this.maxItemCount && this.persistentSelectedOptions.length >= this.maxItemCount;\n const uniqueId = `checkbox-${option.value}-${index}`;\n\n return (\n <div class={`option sub-option ${isSelected ? 'selected' : ''} ${this.getSizeClass()} ${disableCheckbox ? 'disabled' : ''}`}\n data-value={option.value}\n role={`${option.children?.length > 0 ? \"option\" : \"treeitem\"}`}\n onKeyDown={(e) => !disableCheckbox && this.handleOptionKeyDown(e, option)}\n onClick={() => !disableCheckbox && this.handleOptionClick(option)}\n tabindex=\"0\">\n <ifx-checkbox tabIndex={-1} ref={(el) => option.checkboxRef = el} id={uniqueId} size=\"s\" checked={isSelected} disabled={disableCheckbox}></ifx-checkbox>\n <label htmlFor={uniqueId} onClick={(e) => e.stopPropagation()}>{option.label}</label>\n </div>\n );\n }\n\n private renderSelectAll() {\n const allSelected = this.persistentSelectedOptions.length === this.optionCount;\n const noneSelected = this.persistentSelectedOptions.length === 0;\n const indeterminate = this.optionCount > 0 && !noneSelected && !allSelected;\n\n const that = this;\n function toggleSelectAll() {\n if (allSelected) {\n that.clearSelection();\n } else {\n that.selectAll();\n }\n }\n\n function handleSelectAllKeydown(e: KeyboardEvent) {\n if(e.key !== 'ArrowUp' && e.key !== 'ArrowDown') e.stopPropagation();\n if(e.key === 'Enter' || e.key === ' ') {\n toggleSelectAll();\n }\n }\n\n return <div class=\"select-all-wrapper\">\n <div class={`option ${this.getSizeClass()}`} tabindex='0' onKeyDown={(e) => handleSelectAllKeydown(e)} onClick={toggleSelectAll}>\n <ifx-checkbox tabIndex={-1} id='selectAll' checked={allSelected} indeterminate={indeterminate} size=\"s\"></ifx-checkbox>\n <label htmlFor='selectAll'>Select all</label>\n </div>\n <ifx-dropdown-separator></ifx-dropdown-separator>\n </div>;\n }\n\n\n render() {\n // Create a label for the selected options\n const selectedOptionsLabels = this.persistentSelectedOptions\n .filter(option => {\n // check if option is a child and its parent is selected\n const isChildSelectedWithParent = this.persistentSelectedOptions.some(parentOption =>\n parentOption.children &&\n parentOption.children.some(child => child.value === option.value) &&\n parentOption.selected\n );\n return !isChildSelectedWithParent;\n })\n .map(option => option.label)\n .join(', ');\n\n return (\n <div class={`ifx-multiselect-container`} ref={el => this.dropdownElement = el as HTMLElement}>\n {\n this.label ?\n <div class=\"ifx-label-wrapper\">\n <span>{this.label}</span>\n </div> : null\n }\n <div class={`ifx-multiselect-wrapper \n ${this.getSizeClass()} \n ${this.dropdownOpen ? 'active' : ''} \n ${this.dropdownFlipped ? 'is-flipped' : ''}\n ${this.internalError ? 'error' : \"\"}\n ${this.disabled ? 'disabled' : \"\"}`}\n tabindex=\"0\"\n onClick={this.disabled ? undefined : (event) => this.handleWrapperClick(event)}\n onKeyDown={this.disabled ? undefined : (event) => this.handleKeyDown(event)} >\n <div class={`ifx-multiselect-input \n ${this.persistentSelectedOptions.length === 0 ? 'placeholder' : \"\"}\n `}\n onClick={this.disabled ? undefined : () => this.toggleDropdown()}\n >\n {this.persistentSelectedOptions.length > 0 ? selectedOptionsLabels : this.placeholder}\n </div>\n {this.dropdownOpen && (\n <div class=\"ifx-multiselect-dropdown-menu\"\n onScroll={(event) => this.handleScroll(event)}\n style={{ '--dynamic-z-index': this.zIndex.toString() }}>\n {this.showSearch && <input type=\"text\" role=\"textbox\" class=\"search-input\" onKeyDown={(e) => { e.stopPropagation() }} onInput={(event) => this.handleSearch(event.target)} placeholder=\"Search...\"></input>}\n {this.showSelectAll && this.renderSelectAll()}\n {this.filteredOptions.map((option, index) => this.renderOption(option, index))}\n {this.isLoading && <div>Loading more options...</div>}\n </div>\n )}\n <div class=\"ifx-multiselect-icon-container\">\n\n {/* Clear Button - will show only if there's a selection */}\n {this.persistentSelectedOptions.length > 0 && ( \n <div class=\"ifx-clear-button\" onClick={this.disabled ? undefined : () => this.clearSelection()}>\n <ifx-icon icon=\"cremove16\"></ifx-icon>\n </div>\n )}\n <div class=\"icon-wrapper-up\" onClick={this.disabled ? undefined : () => this.toggleDropdown()}>\n <ifx-icon\n key='icon-up'\n icon='chevronup-16'></ifx-icon>\n </div>\n <div class=\"icon-wrapper-down\" onClick={this.disabled ? undefined : () => this.toggleDropdown()}>\n <ifx-icon\n key='icon-down'\n icon='chevron-down-16'></ifx-icon>\n </div>\n </div>\n\n </div>\n {\n this.internalError ?\n <div class=\"ifx-error-message-wrapper\">\n <span>{this.internalErrorMessage}</span>\n </div> : null\n }\n </div>\n );\n }\n\n}\n","@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../global/font.scss\";\n\n:host {\n display: flex;\n}\n\n.textInput__container {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n padding: 0px;\n width: 100%;\n flex: none;\n order: 0;\n align-self: stretch;\n flex-grow: 0;\n font-family: var(--ifx-font-family);\n\n\n &.disabled {\n & .textInput__top-wrapper {\n & label {\n color: tokens.$ifxColorEngineering500;\n }\n }\n\n & .textInput__bottom-wrapper {\n input {\n border: 1px solid tokens.$ifxColorEngineering500;\n background-color: tokens.$ifxColorEngineering200;\n\n &::placeholder {\n font-size: tokens.$ifxFontSizeS;\n color: tokens.$ifxColorEngineering500;\n }\n }\n }\n }\n\n & .textInput__top-wrapper {\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n padding: 0px;\n gap: 4px;\n flex: none;\n order: 0;\n align-self: stretch;\n flex-grow: 0;\n\n & label {\n font-style: normal;\n font-weight: 400;\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n display: flex;\n align-items: center;\n color: tokens.$ifxColorBaseBlack;\n flex: none;\n order: 0;\n flex-grow: 0;\n\n & .optional-required {\n margin-left: 4px;\n }\n\n & .optional {\n margin-left: 4px;\n }\n\n & .required {\n margin-left: 4px;\n \n &.error {\n color: #CD002F;\n }\n }\n }\n }\n\n .input-container {\n position: relative;\n display: flex;\n align-items: center;\n width: 100%;\n }\n\n\n & .textInput__bottom-wrapper {\n flex-grow: 1;\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n padding: 0px;\n gap: 4px;\n flex: none;\n order: 1;\n align-self: stretch;\n flex-grow: 0;\n\n & input {\n width: 100%;\n box-sizing: border-box;\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: tokens.$ifxSpace100 tokens.$ifxSpace200;\n gap: tokens.$ifxSpace100;\n height: tokens.$ifxSize500;\n background-color: tokens.$ifxColorBaseWhite;\n color: tokens.$ifxColorBaseBlack;\n font-family: tokens.$ifxFontFamilyBody;\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n border: 1px solid tokens.$ifxColorEngineering400;\n border-radius: tokens.$ifxBorderRadius12;\n flex: none;\n order: 0;\n align-self: stretch;\n flex-grow: 0;\n text-overflow: ellipsis;\n\n &.input-s {\n height: tokens.$ifxSize450;\n font-size: tokens.$ifxFontSizeS;\n line-height: tokens.$ifxLineHeightS;\n\n &::placeholder {\n font-size: tokens.$ifxFontSizeS;\n line-height: tokens.$ifxLineHeightS;\n }\n\n }\n\n &.icon {\n padding-left: tokens.$ifxSpace500;\n }\n\n &.error {\n border: 1px solid #CD002F;\n\n &:focus {\n outline: none;\n }\n }\n\n &.success {\n border: 1px solid #4CA460;\n\n &:focus {\n outline: none;\n }\n }\n\n\n &:focus:not(.error, .success) {\n outline: none;\n border: 1px solid tokens.$ifxColorOcean500;\n }\n\n &:hover:not(:disabled, :focus, .error, .success) {\n border: 1px solid tokens.$ifxColorEngineering500;\n }\n\n &::placeholder {\n font-style: normal;\n font-weight: 400;\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n color: #8D8786;\n flex: none;\n order: 1;\n flex-grow: 1;\n }\n }\n\n & .input-icon {\n // Position the icon within the icon container\n // Adjust the positioning as needed\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n left: tokens.$ifxSpace200;\n /* Adjust this value to control the icon's left offset */\n transition: .3s;\n color: tokens.$ifxColorEngineering400;\n }\n\n & .textInput__bottom-wrapper-caption {\n font-style: normal;\n font-weight: 400;\n font-size: tokens.$ifxFontSizeXs;\n line-height: tokens.$ifxLineHeightXs;\n letter-spacing: 0.2px;\n color: tokens.$ifxColorBaseBlack;\n flex: none;\n order: 1;\n align-self: stretch;\n flex-grow: 0;\n\n &.error {\n color: #CD002F;\n\n }\n\n &.disabled {\n color: tokens.$ifxColorEngineering500;\n }\n }\n\n \n }\n .delete-icon {\n position: absolute;\n right: tokens.$ifxSpace200;\n\n :hover {\n cursor: pointer;\n }\n }\n}","import { Component, h, Event, Element, Prop, EventEmitter, Watch, Method, AttachInternals } from '@stencil/core';\n \n\n@Component({\n tag: 'ifx-text-field',\n styleUrl: 'text-field.scss',\n shadow: true,\n formAssociated: true\n})\n\nexport class TextField {\n private inputElement: HTMLInputElement;\n @Element() el;\n @Prop() placeholder: string = \"Placeholder\"\n @Prop({ mutable: true }) value: string = '';\n @Prop() error: boolean = false;\n @Prop() label: string = \"\";\n @Prop() icon: string = \"\";\n @Prop() caption: string = \"\";\n @Prop() size: string = 'm';\n @Prop() required: boolean = false;\n @Prop() optional: boolean = false;\n @Prop() success: boolean = false;\n @Prop() disabled: boolean = false;\n @Prop() maxlength?: number;\n @Prop() showDeleteIcon: boolean = false;\n @Event() ifxInput: EventEmitter<String>;\n // @Prop({ reflect: true })\n // resetOnSubmit: boolean = false;\n\n @AttachInternals() internals: ElementInternals;\n\n\n @Watch('value')\n valueWatcher(newValue: string) {\n if (newValue !== this.inputElement.value) {\n this.inputElement.value = newValue;\n }\n }\n\n @Method()\n async reset() {\n this.value = '';\n this.inputElement.value = '';\n }\n\n handleDeleteContent() {\n this.reset();\n this.ifxInput.emit(this.value);\n }\n\n handleInput() {\n const query = this.inputElement.value;\n this.value = query; // update the value property when input changes\n this.internals.setFormValue(query) // update form value\n this.ifxInput.emit(this.value);\n }\n\n formResetCallback() {\n this.internals.setValidity({});\n this.internals.setFormValue(\"\");\n }\n\n render() {\n return (\n <div aria-label=\"a text field for user input\" aria-value={this.value} aria-disabled={this.disabled} class={`textInput__container ${this.disabled ? 'disabled' : \"\"}`}>\n <div class=\"textInput__top-wrapper\">\n <label htmlFor=\"text-field\">\n <slot></slot>\n {this.optional && this.required ? (\n <span class=\"optional-required\">(optional) *</span>\n ) : this.optional ? (\n <span class=\"optional\">(optional)</span>\n ) : this.required ? (\n <span class={`required ${this.error ? 'error' : \"\"}`}>*</span>\n ) : null}\n </label>\n </div>\n\n <div class=\"textInput__bottom-wrapper\">\n <div class=\"input-container\">\n {this.icon && (\n <ifx-icon class='input-icon' icon={this.icon} />\n )}\n <input\n ref={(el) => (this.inputElement = el)}\n disabled={this.disabled}\n type=\"text\"\n id='text-field'\n value={this.value}\n onInput={() => this.handleInput()}\n placeholder={this.placeholder}\n maxlength={this.maxlength}\n class={\n `${this.icon ? 'icon' : \"\"}\n ${this.error ? 'error' : \"\"} \n ${this.size === \"s\" ? \"input-s\" : \"\"}\n ${this.success ? \"success\" : \"\"}`} />\n\n { (this.showDeleteIcon && this.value) && (\n <ifx-icon class=\"delete-icon\" icon=\"cremove16\" onClick={() => this.handleDeleteContent()}></ifx-icon> \n )}\n </div>\n {this.caption && !this.error &&\n <div class={`textInput__bottom-wrapper-caption ${this.disabled} ? disabled : \"\"`}>\n {this.caption}\n </div>}\n {this.error &&\n <div class=\"textInput__bottom-wrapper-caption error\">\n {this.caption}\n </div>}\n </div>\n </div>\n );\n }\n}\n"],"version":3}
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h, g as getElement } from './index-abb8c4b4.js';
1
+ import { r as registerInstance, c as createEvent, h, g as getElement } from './index-dc4139fb.js';
2
2
 
3
3
  const navbarItemCss = ".navbar__item{position:relative;display:flex;flex-direction:row;align-items:center;padding:0px 8px;flex:none;order:0;flex-grow:0;font-family:var(--ifx-font-family);text-decoration:none;font-weight:400;font-size:16px;color:#1D1D1D}.navbar__item.hide{display:none}.navbar__item.isParent{gap:8px}.navbar__item .navItemIconWrapper{transition:0.3s}.navbar__item.open .navItemIconWrapper{transform:rotate(-180deg);transition:0.3s}.navbar__item:hover{color:#0A8276;cursor:pointer}.navbar__item:hover .username__tooltip{display:block}.navbar__item:hover .navbar__container-right-content-navigation-item-icon-wrapper .initials__wrapper{cursor:pointer;background-color:#08665C}.navbar__item.remove{display:none}.navbar__item.removeLabel .label__wrapper{display:none}.navbar__item .navbar__container-right-content-navigation-item-icon-wrapper{position:relative;display:flex;flex-direction:row;justify-content:center;align-items:center;padding:0px;gap:8px;flex:none;order:0;flex-grow:0}.navbar__item .navbar__container-right-content-navigation-item-icon-wrapper .username__tooltip{display:none;position:absolute;top:35px;right:0;text-wrap:nowrap;padding:1px 5px;font-size:13px;font-family:\"Source Sans 3\";background-color:black;color:#fff;z-index:99}.navbar__item .navbar__container-right-content-navigation-item-icon-wrapper:hover .username__tooltip{display:block}.navbar__item .navbar__container-right-content-navigation-item-icon-wrapper .initials__wrapper{display:flex;width:24px;height:24px;justify-content:center;align-items:center;border-radius:100%;background-color:#0A8276}.navbar__item .navbar__container-right-content-navigation-item-icon-wrapper .initials__wrapper .initials{color:#FFF;text-align:center;font-family:\"Source Sans 3\";font-size:14px;font-style:normal;font-weight:600;line-height:20px;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.navbar__item .navbar__container-right-content-navigation-item-icon-wrapper img{width:24px;height:24px;border-radius:100%}.navbar__item .navbar__container-right-content-navigation-item-icon-wrapper.removeWrapper{display:none}.navbar__item .navbar__container-right-content-navigation-item-icon-wrapper.hide{display:none}.container{position:relative}.container .sub__layer-back-button{display:none}.container .sub__layer-back-button.show{display:flex;justify-content:flex-start}.container .sub__layer-back-button.show .back__button-wrapper{display:flex;align-items:center;gap:8px;padding:8px 0 16px 0;color:#0A8276;font-size:16px;font-style:normal;font-weight:600;line-height:24px}.container .sub__layer-back-button.show .back__button-wrapper span:hover,.container .sub__layer-back-button.show .back__button-wrapper ifx-icon:hover{cursor:pointer}.container.hide{display:none}.container .inner__content-wrapper{display:flex;justify-content:space-between;align-items:center;gap:8px}.container .inner__content-wrapper.no-gap{gap:0px}.navbar-menu{position:absolute;display:none;list-style-type:none;visibility:visible;flex-direction:column;width:224px;min-width:224px;background:#FFFFFF;box-shadow:0px 6px 9px 0px rgba(29, 29, 29, 0.1019607843);border:1px solid #EEEDED;padding:8px 0px;font-family:var(--ifx-font-family)}.navbar-menu.open:not(.itemInMobileMenu){display:flex}.navbar-menu.itemInMobileMenu{display:none}.navbar-menu.right{left:100%;top:-40%}.navbar-menu.left{top:-40%;right:100%}.navbar-menu.rightSideItemMenu{left:initial;right:0px}.navbar__item.layer__item-parent{color:#1D1D1D;font-size:24px;font-style:normal;font-weight:600;line-height:32px;letter-spacing:-0.24px;cursor:initial}.navbar__item.layer__item-parent .navbar__container-right-content-navigation-item-icon-wrapper ifx-icon svg{width:24px;height:24px}.navbar__item.sidebarMenuItem{justify-content:space-between;padding:0}.navbar__item.menuItem{text-decoration:none;color:#1D1D1D;display:flex;align-items:center;justify-content:space-between;padding:8px 16px;gap:8px;font-family:var(--ifx-font-family)}.navbar__item.menuItem.hide{display:none}.navbar__item.menuItem .label__wrapper{color:#1D1D1D;font-size:16px;font-style:normal;font-weight:400;line-height:24px}.navbar__item.menuItem:hover{cursor:pointer;background-color:#EEEDED}.navbar__item.menuItem:active{background-color:#BFBBBB}.sub__layer-menu{padding:5px;display:none}.sub__layer-menu.remove__margin{margin:0;padding:0}.sub__layer-menu.open{display:block}.navbar__item.hide{display:none}.menuItemRightIconWrapper.hide{display:none}.navItemIconWrapper.hide{display:none}";
4
4
  const IfxNavbarItemStyle0 = navbarItemCss;
@@ -16,6 +16,7 @@ const NavbarItem = class {
16
16
  this.isMenuItem = false;
17
17
  this.hasChildNavItems = false;
18
18
  this.isSidebarMenuItem = false;
19
+ this.itemPosition = undefined;
19
20
  }
20
21
  handleOutsideClick(event) {
21
22
  const path = event.composedPath();