@infineon/infineon-design-system-stencil 35.0.0--canary.1896.bd752bd5c16c367ec3fb0493b8ca8e6508a16e48.0 → 35.0.0--canary.1896.76b85ade60616149af2cd2912c41e3dd45bfd15f.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 (366) hide show
  1. package/dist/cjs/icons-14857a37.js +1234 -0
  2. package/dist/cjs/icons-14857a37.js.map +1 -0
  3. package/dist/cjs/ifx-alert_2.cjs.entry.js +1 -1
  4. package/dist/cjs/ifx-basic-table.cjs.entry.js +1 -1
  5. package/dist/cjs/ifx-chip_3.cjs.entry.js +1 -1
  6. package/dist/cjs/ifx-faq.cjs.entry.js +1 -1
  7. package/dist/cjs/ifx-filter-accordion.cjs.entry.js +2 -2
  8. package/dist/cjs/ifx-filter-bar.cjs.entry.js +1 -1
  9. package/dist/cjs/ifx-filter-search.cjs.entry.js +1 -1
  10. package/dist/cjs/ifx-filter-type-group.cjs.entry.js +1 -1
  11. package/dist/cjs/ifx-icon.cjs.entry.js +1 -1
  12. package/dist/cjs/ifx-icons-preview.cjs.entry.js +26 -7
  13. package/dist/cjs/ifx-icons-preview.cjs.entry.js.map +1 -1
  14. package/dist/cjs/ifx-indicator.cjs.entry.js +2 -2
  15. package/dist/cjs/ifx-link.cjs.entry.js +1 -1
  16. package/dist/cjs/ifx-list-entry.cjs.entry.js +1 -1
  17. package/dist/cjs/ifx-modal.cjs.entry.js +11 -6
  18. package/dist/cjs/ifx-modal.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ifx-navbar-item.cjs.entry.js +5 -5
  20. package/dist/cjs/ifx-navbar-profile.cjs.entry.js +3 -3
  21. package/dist/cjs/ifx-navbar.cjs.entry.js +3 -3
  22. package/dist/cjs/ifx-notification.cjs.entry.js +2 -2
  23. package/dist/cjs/ifx-overview-table.cjs.entry.js +1 -1
  24. package/dist/cjs/ifx-progress-bar.cjs.entry.js +1 -1
  25. package/dist/cjs/ifx-radio-button-group.cjs.entry.js +1 -1
  26. package/dist/cjs/ifx-radio-button.cjs.entry.js +2 -2
  27. package/dist/cjs/ifx-search-bar.cjs.entry.js +1 -1
  28. package/dist/cjs/ifx-search-field.cjs.entry.js +1 -1
  29. package/dist/cjs/ifx-segment.cjs.entry.js +1 -1
  30. package/dist/cjs/ifx-segmented-control.cjs.entry.js +2 -2
  31. package/dist/cjs/ifx-select.cjs.entry.js +2 -2
  32. package/dist/cjs/ifx-sidebar-item.cjs.entry.js +5 -5
  33. package/dist/cjs/ifx-sidebar-title.cjs.entry.js +1 -1
  34. package/dist/cjs/ifx-sidebar.cjs.entry.js +5 -5
  35. package/dist/cjs/ifx-slider.cjs.entry.js +2 -2
  36. package/dist/cjs/ifx-spinner_2.cjs.entry.js +6 -6
  37. package/dist/cjs/ifx-status.cjs.entry.js +1 -1
  38. package/dist/cjs/ifx-step.cjs.entry.js +4 -4
  39. package/dist/cjs/ifx-stepper.cjs.entry.js +2 -2
  40. package/dist/cjs/ifx-switch.cjs.entry.js +1 -1
  41. package/dist/cjs/ifx-tab.cjs.entry.js +1 -1
  42. package/dist/cjs/ifx-table.cjs.entry.js +2 -2
  43. package/dist/cjs/ifx-tabs.cjs.entry.js +2 -2
  44. package/dist/cjs/ifx-tag.cjs.entry.js +1 -1
  45. package/dist/cjs/ifx-templates-ui.cjs.entry.js +1 -1
  46. package/dist/cjs/ifx-textarea.cjs.entry.js +1 -1
  47. package/dist/cjs/ifx-tooltip.cjs.entry.js +4 -4
  48. package/dist/cjs/ifx-tree-view-item.cjs.entry.js +2 -2
  49. package/dist/cjs/ifx-tree-view.cjs.entry.js +1 -1
  50. package/dist/cjs/index-7f4df11a.js +4 -4
  51. package/dist/cjs/infineon-design-system-stencil.cjs.js +1 -1
  52. package/dist/cjs/loader.cjs.js +1 -1
  53. package/dist/collection/components/icons-preview/icons-preview.css +15 -4
  54. package/dist/collection/components/icons-preview/icons-preview.js +27 -6
  55. package/dist/collection/components/icons-preview/icons-preview.js.map +1 -1
  56. package/dist/collection/components/indicator/indicator.js +2 -2
  57. package/dist/collection/components/link/link.js +1 -1
  58. package/dist/collection/components/modal/modal.js +11 -6
  59. package/dist/collection/components/modal/modal.js.map +1 -1
  60. package/dist/collection/components/navigation/navbar/navbar-item.js +5 -5
  61. package/dist/collection/components/navigation/navbar/navbar-profile.js +3 -3
  62. package/dist/collection/components/navigation/navbar/navbar.js +3 -3
  63. package/dist/collection/components/navigation/sidebar/sidebar-item.js +5 -5
  64. package/dist/collection/components/navigation/sidebar/sidebar-title.js +1 -1
  65. package/dist/collection/components/navigation/sidebar/sidebar.js +5 -5
  66. package/dist/collection/components/notification/notification.js +2 -2
  67. package/dist/collection/components/overview-table/overview-table.js +1 -1
  68. package/dist/collection/components/pagination/pagination.js +1 -1
  69. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  70. package/dist/collection/components/radio-button/radio-button.js +2 -2
  71. package/dist/collection/components/radio-button-group/radio-button-group.js +1 -1
  72. package/dist/collection/components/search-bar/search-bar.js +1 -1
  73. package/dist/collection/components/search-field/search-field.js +1 -1
  74. package/dist/collection/components/segmented-control/segment/segment.js +1 -1
  75. package/dist/collection/components/segmented-control/segmented-control.js +2 -2
  76. package/dist/collection/components/select/single-select/select.js +2 -2
  77. package/dist/collection/components/slider/slider.js +2 -2
  78. package/dist/collection/components/spinner/spinner.js +2 -2
  79. package/dist/collection/components/status/status.js +1 -1
  80. package/dist/collection/components/stepper/step/step.js +4 -4
  81. package/dist/collection/components/stepper/stepper.js +2 -2
  82. package/dist/collection/components/switch/switch.js +1 -1
  83. package/dist/collection/components/table-advanced-version/filter-bar/filter-bar.js +1 -1
  84. package/dist/collection/components/table-advanced-version/filter-type-group/filter-accordion/filter-accordion.js +2 -2
  85. package/dist/collection/components/table-advanced-version/filter-type-group/filter-search/filter-search.js +1 -1
  86. package/dist/collection/components/table-advanced-version/filter-type-group/filter-type-group.js +1 -1
  87. package/dist/collection/components/table-advanced-version/list/list-entry/list-entry.js +1 -1
  88. package/dist/collection/components/table-advanced-version/table.js +2 -2
  89. package/dist/collection/components/table-basic-version/table.js +1 -1
  90. package/dist/collection/components/tabs/tab.js +1 -1
  91. package/dist/collection/components/tabs/tabs.js +2 -2
  92. package/dist/collection/components/tag/tag.js +1 -1
  93. package/dist/collection/components/templates/template/template.js +1 -1
  94. package/dist/collection/components/templates/templates-ui/templates-ui.js +1 -1
  95. package/dist/collection/components/text-field/text-field.js +4 -4
  96. package/dist/collection/components/textarea/textarea.js +1 -1
  97. package/dist/collection/components/tooltip/tooltip.js +4 -4
  98. package/dist/collection/components/tree-view/tree-view-item.js +2 -2
  99. package/dist/collection/components/tree-view/tree-view.js +1 -1
  100. package/dist/collection/stories/setup-and-installation/faq/faq.js +1 -1
  101. package/dist/components/ifx-accordion-item.js +1 -1
  102. package/dist/components/ifx-alert.js +1 -1
  103. package/dist/components/ifx-basic-table.js +1 -1
  104. package/dist/components/ifx-breadcrumb-item-label.js +1 -1
  105. package/dist/components/ifx-checkbox-group.js +1 -1
  106. package/dist/components/ifx-checkbox.js +1 -1
  107. package/dist/components/ifx-chip-item.js +1 -1
  108. package/dist/components/ifx-chip.js +1 -1
  109. package/dist/components/ifx-date-picker.js +1 -1
  110. package/dist/components/ifx-download.js +1 -1
  111. package/dist/components/ifx-dropdown-item.js +1 -1
  112. package/dist/components/ifx-dropdown-trigger-button.js +1 -1
  113. package/dist/components/ifx-faq.js +3 -3
  114. package/dist/components/ifx-file-upload.js +3 -3
  115. package/dist/components/ifx-filter-accordion.js +4 -4
  116. package/dist/components/ifx-filter-bar.js +2 -2
  117. package/dist/components/ifx-filter-search.js +3 -3
  118. package/dist/components/ifx-filter-type-group.js +1 -1
  119. package/dist/components/ifx-icon-button.js +1 -1
  120. package/dist/components/ifx-icon.js +1 -1
  121. package/dist/components/ifx-icons-preview.js +40 -13
  122. package/dist/components/ifx-icons-preview.js.map +1 -1
  123. package/dist/components/ifx-indicator.js +1 -1
  124. package/dist/components/ifx-link.js +1 -1
  125. package/dist/components/ifx-list-entry.js +4 -4
  126. package/dist/components/ifx-list.js +2 -2
  127. package/dist/components/ifx-modal.js +13 -8
  128. package/dist/components/ifx-modal.js.map +1 -1
  129. package/dist/components/ifx-multiselect.js +1 -1
  130. package/dist/components/ifx-navbar-item.js +7 -7
  131. package/dist/components/ifx-navbar-profile.js +3 -3
  132. package/dist/components/ifx-navbar.js +4 -4
  133. package/dist/components/ifx-notification.js +1 -1
  134. package/dist/components/ifx-overview-table.js +4 -4
  135. package/dist/components/ifx-pagination.js +1 -1
  136. package/dist/components/ifx-progress-bar.js +1 -1
  137. package/dist/components/ifx-radio-button-group.js +2 -2
  138. package/dist/components/ifx-radio-button.js +1 -1
  139. package/dist/components/ifx-search-bar.js +3 -3
  140. package/dist/components/ifx-search-field.js +1 -1
  141. package/dist/components/ifx-segment.js +2 -2
  142. package/dist/components/ifx-segmented-control.js +3 -3
  143. package/dist/components/ifx-select.js +1 -1
  144. package/dist/components/ifx-set-filter.js +5 -5
  145. package/dist/components/ifx-sidebar-item.js +7 -7
  146. package/dist/components/ifx-sidebar-title.js +1 -1
  147. package/dist/components/ifx-sidebar.js +5 -5
  148. package/dist/components/ifx-slider.js +3 -3
  149. package/dist/components/ifx-spinner.js +1 -1
  150. package/dist/components/ifx-status.js +1 -1
  151. package/dist/components/ifx-step.js +5 -5
  152. package/dist/components/ifx-stepper.js +2 -2
  153. package/dist/components/ifx-switch.js +1 -1
  154. package/dist/components/ifx-tab.js +1 -1
  155. package/dist/components/ifx-table.js +10 -10
  156. package/dist/components/ifx-tabs.js +3 -3
  157. package/dist/components/ifx-tag.js +2 -2
  158. package/dist/components/ifx-template.js +1 -1
  159. package/dist/components/ifx-templates-ui.js +8 -8
  160. package/dist/components/ifx-text-field.js +1 -1
  161. package/dist/components/ifx-textarea.js +1 -1
  162. package/dist/components/ifx-tooltip.js +5 -5
  163. package/dist/components/ifx-tree-view-item.js +4 -4
  164. package/dist/components/ifx-tree-view.js +1 -1
  165. package/dist/components/{p-e9f53aae.js → p-0ed48c83.js} +2 -2
  166. package/dist/components/{p-e9f53aae.js.map → p-0ed48c83.js.map} +1 -1
  167. package/dist/components/p-25193d1c.js +1323 -0
  168. package/dist/components/p-25193d1c.js.map +1 -0
  169. package/dist/components/{p-d6ba69e2.js → p-322abc25.js} +2 -2
  170. package/dist/components/{p-d6ba69e2.js.map → p-322abc25.js.map} +1 -1
  171. package/dist/components/{p-de6b551c.js → p-357107c5.js} +3 -3
  172. package/dist/components/{p-de6b551c.js.map → p-357107c5.js.map} +1 -1
  173. package/dist/components/{p-bd905594.js → p-35f780cc.js} +5 -5
  174. package/dist/components/{p-bd905594.js.map → p-35f780cc.js.map} +1 -1
  175. package/dist/components/{p-59b3c1f0.js → p-39ddb6de.js} +3 -3
  176. package/dist/components/{p-59b3c1f0.js.map → p-39ddb6de.js.map} +1 -1
  177. package/dist/components/{p-73014925.js → p-4b44776b.js} +5 -5
  178. package/dist/components/{p-73014925.js.map → p-4b44776b.js.map} +1 -1
  179. package/dist/components/{p-0579fe19.js → p-4f7e657d.js} +2 -2
  180. package/dist/components/{p-0579fe19.js.map → p-4f7e657d.js.map} +1 -1
  181. package/dist/components/{p-38037d65.js → p-53d4339c.js} +2 -2
  182. package/dist/components/{p-38037d65.js.map → p-53d4339c.js.map} +1 -1
  183. package/dist/components/{p-a541805b.js → p-5e9d3450.js} +2 -2
  184. package/dist/components/{p-a541805b.js.map → p-5e9d3450.js.map} +1 -1
  185. package/dist/components/{p-e3091464.js → p-6e1e2d56.js} +3 -3
  186. package/dist/components/{p-e3091464.js.map → p-6e1e2d56.js.map} +1 -1
  187. package/dist/components/{p-059709d0.js → p-86ffef9d.js} +3 -3
  188. package/dist/components/{p-059709d0.js.map → p-86ffef9d.js.map} +1 -1
  189. package/dist/components/{p-643bcbdf.js → p-9142f93b.js} +3 -3
  190. package/dist/components/{p-643bcbdf.js.map → p-9142f93b.js.map} +1 -1
  191. package/dist/components/{p-f0ee192b.js → p-952417f3.js} +4 -4
  192. package/dist/components/{p-f0ee192b.js.map → p-952417f3.js.map} +1 -1
  193. package/dist/components/{p-3b6a432e.js → p-a4922416.js} +3 -3
  194. package/dist/components/{p-3b6a432e.js.map → p-a4922416.js.map} +1 -1
  195. package/dist/components/{p-a9b659df.js → p-bfa4cccd.js} +2 -2
  196. package/dist/components/{p-a9b659df.js.map → p-bfa4cccd.js.map} +1 -1
  197. package/dist/components/{p-08e3be43.js → p-c7cd5e92.js} +3 -3
  198. package/dist/components/{p-08e3be43.js.map → p-c7cd5e92.js.map} +1 -1
  199. package/dist/components/{p-7a4fa8b6.js → p-e53e2c1c.js} +6 -6
  200. package/dist/components/{p-7a4fa8b6.js.map → p-e53e2c1c.js.map} +1 -1
  201. package/dist/components/{p-c11d7ab3.js → p-f4f71c1d.js} +6 -6
  202. package/dist/components/{p-c11d7ab3.js.map → p-f4f71c1d.js.map} +1 -1
  203. package/dist/esm/icons-e2536d40.js +1231 -0
  204. package/dist/esm/icons-e2536d40.js.map +1 -0
  205. package/dist/esm/ifx-alert_2.entry.js +1 -1
  206. package/dist/esm/ifx-basic-table.entry.js +1 -1
  207. package/dist/esm/ifx-chip_3.entry.js +1 -1
  208. package/dist/esm/ifx-faq.entry.js +1 -1
  209. package/dist/esm/ifx-filter-accordion.entry.js +2 -2
  210. package/dist/esm/ifx-filter-bar.entry.js +1 -1
  211. package/dist/esm/ifx-filter-search.entry.js +1 -1
  212. package/dist/esm/ifx-filter-type-group.entry.js +1 -1
  213. package/dist/esm/ifx-icon.entry.js +1 -1
  214. package/dist/esm/ifx-icons-preview.entry.js +26 -7
  215. package/dist/esm/ifx-icons-preview.entry.js.map +1 -1
  216. package/dist/esm/ifx-indicator.entry.js +2 -2
  217. package/dist/esm/ifx-link.entry.js +1 -1
  218. package/dist/esm/ifx-list-entry.entry.js +1 -1
  219. package/dist/esm/ifx-modal.entry.js +11 -6
  220. package/dist/esm/ifx-modal.entry.js.map +1 -1
  221. package/dist/esm/ifx-navbar-item.entry.js +5 -5
  222. package/dist/esm/ifx-navbar-profile.entry.js +3 -3
  223. package/dist/esm/ifx-navbar.entry.js +3 -3
  224. package/dist/esm/ifx-notification.entry.js +2 -2
  225. package/dist/esm/ifx-overview-table.entry.js +1 -1
  226. package/dist/esm/ifx-progress-bar.entry.js +1 -1
  227. package/dist/esm/ifx-radio-button-group.entry.js +1 -1
  228. package/dist/esm/ifx-radio-button.entry.js +2 -2
  229. package/dist/esm/ifx-search-bar.entry.js +1 -1
  230. package/dist/esm/ifx-search-field.entry.js +1 -1
  231. package/dist/esm/ifx-segment.entry.js +1 -1
  232. package/dist/esm/ifx-segmented-control.entry.js +2 -2
  233. package/dist/esm/ifx-select.entry.js +2 -2
  234. package/dist/esm/ifx-sidebar-item.entry.js +5 -5
  235. package/dist/esm/ifx-sidebar-title.entry.js +1 -1
  236. package/dist/esm/ifx-sidebar.entry.js +5 -5
  237. package/dist/esm/ifx-slider.entry.js +2 -2
  238. package/dist/esm/ifx-spinner_2.entry.js +6 -6
  239. package/dist/esm/ifx-status.entry.js +1 -1
  240. package/dist/esm/ifx-step.entry.js +4 -4
  241. package/dist/esm/ifx-stepper.entry.js +2 -2
  242. package/dist/esm/ifx-switch.entry.js +1 -1
  243. package/dist/esm/ifx-tab.entry.js +1 -1
  244. package/dist/esm/ifx-table.entry.js +2 -2
  245. package/dist/esm/ifx-tabs.entry.js +2 -2
  246. package/dist/esm/ifx-tag.entry.js +1 -1
  247. package/dist/esm/ifx-templates-ui.entry.js +1 -1
  248. package/dist/esm/ifx-textarea.entry.js +1 -1
  249. package/dist/esm/ifx-tooltip.entry.js +4 -4
  250. package/dist/esm/ifx-tree-view-item.entry.js +2 -2
  251. package/dist/esm/ifx-tree-view.entry.js +1 -1
  252. package/dist/esm/index-6c9eba32.js +4 -4
  253. package/dist/esm/infineon-design-system-stencil.js +1 -1
  254. package/dist/esm/loader.js +1 -1
  255. package/dist/infineon-design-system-stencil/infineon-design-system-stencil.esm.js +1 -1
  256. package/dist/infineon-design-system-stencil/infineon-design-system-stencil.esm.js.map +1 -1
  257. package/dist/infineon-design-system-stencil/{p-6df28c5a.entry.js → p-061bfdb1.entry.js} +2 -2
  258. package/dist/infineon-design-system-stencil/{p-ee46527d.entry.js → p-06bfabcf.entry.js} +2 -2
  259. package/dist/infineon-design-system-stencil/{p-2d265c95.entry.js → p-09a8d63d.entry.js} +2 -2
  260. package/dist/infineon-design-system-stencil/{p-18b80502.entry.js → p-0f096cf1.entry.js} +2 -2
  261. package/dist/infineon-design-system-stencil/{p-6bb4f51c.entry.js → p-142878ee.entry.js} +2 -2
  262. package/dist/infineon-design-system-stencil/{p-c8c295c8.entry.js → p-18addbff.entry.js} +2 -2
  263. package/dist/infineon-design-system-stencil/{p-eb806fd6.entry.js → p-2d89c5e0.entry.js} +2 -2
  264. package/dist/infineon-design-system-stencil/p-2d89c5e0.entry.js.map +1 -0
  265. package/dist/infineon-design-system-stencil/{p-2d033cc1.entry.js → p-2f22605b.entry.js} +2 -2
  266. package/dist/infineon-design-system-stencil/p-34738a10.entry.js +2 -0
  267. package/dist/infineon-design-system-stencil/{p-395145ac.entry.js → p-37d6c639.entry.js} +2 -2
  268. package/dist/infineon-design-system-stencil/{p-0bab4a9b.entry.js → p-3ff96710.entry.js} +2 -2
  269. package/dist/infineon-design-system-stencil/{p-79b2e461.entry.js → p-47a3e831.entry.js} +2 -2
  270. package/dist/infineon-design-system-stencil/{p-519dc715.entry.js → p-487d2155.entry.js} +2 -2
  271. package/dist/infineon-design-system-stencil/{p-6483ca08.entry.js → p-5650fe08.entry.js} +2 -2
  272. package/dist/infineon-design-system-stencil/p-65e57b85.entry.js +2 -0
  273. package/dist/infineon-design-system-stencil/{p-04974a30.entry.js → p-6cb40415.entry.js} +2 -2
  274. package/dist/infineon-design-system-stencil/{p-28cfabbf.entry.js → p-6d99d01d.entry.js} +2 -2
  275. package/dist/infineon-design-system-stencil/{p-20ceef6f.entry.js → p-702a48f8.entry.js} +2 -2
  276. package/dist/infineon-design-system-stencil/{p-7a440ea3.entry.js → p-7619bd75.entry.js} +2 -2
  277. package/dist/infineon-design-system-stencil/{p-a4f7beca.entry.js → p-7b7ac7fa.entry.js} +2 -2
  278. package/dist/infineon-design-system-stencil/p-813f56d7.entry.js +2 -0
  279. package/dist/infineon-design-system-stencil/p-816cfb79.js +2 -0
  280. package/dist/infineon-design-system-stencil/p-816cfb79.js.map +1 -0
  281. package/dist/infineon-design-system-stencil/{p-36a241b3.entry.js → p-8503d1d1.entry.js} +2 -2
  282. package/dist/infineon-design-system-stencil/{p-5d03ee4f.entry.js → p-87fbd617.entry.js} +2 -2
  283. package/dist/infineon-design-system-stencil/{p-a85366f1.entry.js → p-959285a7.entry.js} +2 -2
  284. package/dist/infineon-design-system-stencil/{p-87fbefa1.entry.js → p-99faadcf.entry.js} +2 -2
  285. package/dist/infineon-design-system-stencil/p-a0b60618.entry.js +2 -0
  286. package/dist/infineon-design-system-stencil/{p-62303f57.entry.js → p-a9cfb70d.entry.js} +2 -2
  287. package/dist/infineon-design-system-stencil/{p-62c416a8.entry.js → p-aadd1a9d.entry.js} +2 -2
  288. package/dist/infineon-design-system-stencil/{p-d824195b.entry.js → p-acf0f4ed.entry.js} +2 -2
  289. package/dist/infineon-design-system-stencil/{p-cd445592.entry.js → p-b4758d2a.entry.js} +2 -2
  290. package/dist/infineon-design-system-stencil/{p-da304621.entry.js → p-b637c44c.entry.js} +2 -2
  291. package/dist/infineon-design-system-stencil/{p-cd85bddb.entry.js → p-b73a5f18.entry.js} +2 -2
  292. package/dist/infineon-design-system-stencil/{p-017e7bc5.entry.js → p-b9c761d3.entry.js} +2 -2
  293. package/dist/infineon-design-system-stencil/{p-41d1fd2c.entry.js → p-babf3f2d.entry.js} +2 -2
  294. package/dist/infineon-design-system-stencil/{p-cca0bd9c.entry.js → p-c2791360.entry.js} +2 -2
  295. package/dist/infineon-design-system-stencil/{p-59d2355e.entry.js → p-c28936ee.entry.js} +2 -2
  296. package/dist/infineon-design-system-stencil/{p-68c98a04.entry.js → p-c5a785d7.entry.js} +2 -2
  297. package/dist/infineon-design-system-stencil/{p-77b13cb9.entry.js → p-c84ef603.entry.js} +2 -2
  298. package/dist/infineon-design-system-stencil/p-e1184177.entry.js +2 -0
  299. package/dist/infineon-design-system-stencil/p-e1184177.entry.js.map +1 -0
  300. package/dist/infineon-design-system-stencil/{p-bdea9b32.entry.js → p-e44ff006.entry.js} +2 -2
  301. package/dist/infineon-design-system-stencil/{p-3a1220ee.entry.js → p-ebf0ee06.entry.js} +2 -2
  302. package/dist/infineon-design-system-stencil/{p-a2f38b5e.entry.js → p-ecc17497.entry.js} +2 -2
  303. package/dist/infineon-design-system-stencil/{p-d17282e3.entry.js → p-ee2f21e1.entry.js} +2 -2
  304. package/dist/infineon-design-system-stencil/{p-00a1ec40.entry.js → p-f2bea855.entry.js} +2 -2
  305. package/dist/infineon-design-system-stencil/{p-fe049ed9.entry.js → p-f338fb85.entry.js} +2 -2
  306. package/dist/types/components/icons-preview/icons-preview.d.ts +7 -1
  307. package/dist/types/components/modal/modal.d.ts +1 -1
  308. package/package.json +1 -1
  309. package/dist/cjs/icons-b9fd1601.js +0 -1222
  310. package/dist/cjs/icons-b9fd1601.js.map +0 -1
  311. package/dist/components/p-88962325.js +0 -1311
  312. package/dist/components/p-88962325.js.map +0 -1
  313. package/dist/esm/icons-f814ed16.js +0 -1219
  314. package/dist/esm/icons-f814ed16.js.map +0 -1
  315. package/dist/infineon-design-system-stencil/p-02634b6e.entry.js +0 -2
  316. package/dist/infineon-design-system-stencil/p-02634b6e.entry.js.map +0 -1
  317. package/dist/infineon-design-system-stencil/p-2c8c0e87.js +0 -2
  318. package/dist/infineon-design-system-stencil/p-2c8c0e87.js.map +0 -1
  319. package/dist/infineon-design-system-stencil/p-34019d16.entry.js +0 -2
  320. package/dist/infineon-design-system-stencil/p-34930b99.entry.js +0 -2
  321. package/dist/infineon-design-system-stencil/p-488408d3.entry.js +0 -2
  322. package/dist/infineon-design-system-stencil/p-90ffd930.entry.js +0 -2
  323. package/dist/infineon-design-system-stencil/p-eb806fd6.entry.js.map +0 -1
  324. /package/dist/infineon-design-system-stencil/{p-6df28c5a.entry.js.map → p-061bfdb1.entry.js.map} +0 -0
  325. /package/dist/infineon-design-system-stencil/{p-ee46527d.entry.js.map → p-06bfabcf.entry.js.map} +0 -0
  326. /package/dist/infineon-design-system-stencil/{p-2d265c95.entry.js.map → p-09a8d63d.entry.js.map} +0 -0
  327. /package/dist/infineon-design-system-stencil/{p-18b80502.entry.js.map → p-0f096cf1.entry.js.map} +0 -0
  328. /package/dist/infineon-design-system-stencil/{p-6bb4f51c.entry.js.map → p-142878ee.entry.js.map} +0 -0
  329. /package/dist/infineon-design-system-stencil/{p-c8c295c8.entry.js.map → p-18addbff.entry.js.map} +0 -0
  330. /package/dist/infineon-design-system-stencil/{p-2d033cc1.entry.js.map → p-2f22605b.entry.js.map} +0 -0
  331. /package/dist/infineon-design-system-stencil/{p-488408d3.entry.js.map → p-34738a10.entry.js.map} +0 -0
  332. /package/dist/infineon-design-system-stencil/{p-395145ac.entry.js.map → p-37d6c639.entry.js.map} +0 -0
  333. /package/dist/infineon-design-system-stencil/{p-0bab4a9b.entry.js.map → p-3ff96710.entry.js.map} +0 -0
  334. /package/dist/infineon-design-system-stencil/{p-79b2e461.entry.js.map → p-47a3e831.entry.js.map} +0 -0
  335. /package/dist/infineon-design-system-stencil/{p-519dc715.entry.js.map → p-487d2155.entry.js.map} +0 -0
  336. /package/dist/infineon-design-system-stencil/{p-6483ca08.entry.js.map → p-5650fe08.entry.js.map} +0 -0
  337. /package/dist/infineon-design-system-stencil/{p-34930b99.entry.js.map → p-65e57b85.entry.js.map} +0 -0
  338. /package/dist/infineon-design-system-stencil/{p-04974a30.entry.js.map → p-6cb40415.entry.js.map} +0 -0
  339. /package/dist/infineon-design-system-stencil/{p-28cfabbf.entry.js.map → p-6d99d01d.entry.js.map} +0 -0
  340. /package/dist/infineon-design-system-stencil/{p-20ceef6f.entry.js.map → p-702a48f8.entry.js.map} +0 -0
  341. /package/dist/infineon-design-system-stencil/{p-7a440ea3.entry.js.map → p-7619bd75.entry.js.map} +0 -0
  342. /package/dist/infineon-design-system-stencil/{p-a4f7beca.entry.js.map → p-7b7ac7fa.entry.js.map} +0 -0
  343. /package/dist/infineon-design-system-stencil/{p-90ffd930.entry.js.map → p-813f56d7.entry.js.map} +0 -0
  344. /package/dist/infineon-design-system-stencil/{p-36a241b3.entry.js.map → p-8503d1d1.entry.js.map} +0 -0
  345. /package/dist/infineon-design-system-stencil/{p-5d03ee4f.entry.js.map → p-87fbd617.entry.js.map} +0 -0
  346. /package/dist/infineon-design-system-stencil/{p-a85366f1.entry.js.map → p-959285a7.entry.js.map} +0 -0
  347. /package/dist/infineon-design-system-stencil/{p-87fbefa1.entry.js.map → p-99faadcf.entry.js.map} +0 -0
  348. /package/dist/infineon-design-system-stencil/{p-34019d16.entry.js.map → p-a0b60618.entry.js.map} +0 -0
  349. /package/dist/infineon-design-system-stencil/{p-62303f57.entry.js.map → p-a9cfb70d.entry.js.map} +0 -0
  350. /package/dist/infineon-design-system-stencil/{p-62c416a8.entry.js.map → p-aadd1a9d.entry.js.map} +0 -0
  351. /package/dist/infineon-design-system-stencil/{p-d824195b.entry.js.map → p-acf0f4ed.entry.js.map} +0 -0
  352. /package/dist/infineon-design-system-stencil/{p-cd445592.entry.js.map → p-b4758d2a.entry.js.map} +0 -0
  353. /package/dist/infineon-design-system-stencil/{p-da304621.entry.js.map → p-b637c44c.entry.js.map} +0 -0
  354. /package/dist/infineon-design-system-stencil/{p-cd85bddb.entry.js.map → p-b73a5f18.entry.js.map} +0 -0
  355. /package/dist/infineon-design-system-stencil/{p-017e7bc5.entry.js.map → p-b9c761d3.entry.js.map} +0 -0
  356. /package/dist/infineon-design-system-stencil/{p-41d1fd2c.entry.js.map → p-babf3f2d.entry.js.map} +0 -0
  357. /package/dist/infineon-design-system-stencil/{p-cca0bd9c.entry.js.map → p-c2791360.entry.js.map} +0 -0
  358. /package/dist/infineon-design-system-stencil/{p-59d2355e.entry.js.map → p-c28936ee.entry.js.map} +0 -0
  359. /package/dist/infineon-design-system-stencil/{p-68c98a04.entry.js.map → p-c5a785d7.entry.js.map} +0 -0
  360. /package/dist/infineon-design-system-stencil/{p-77b13cb9.entry.js.map → p-c84ef603.entry.js.map} +0 -0
  361. /package/dist/infineon-design-system-stencil/{p-bdea9b32.entry.js.map → p-e44ff006.entry.js.map} +0 -0
  362. /package/dist/infineon-design-system-stencil/{p-3a1220ee.entry.js.map → p-ebf0ee06.entry.js.map} +0 -0
  363. /package/dist/infineon-design-system-stencil/{p-a2f38b5e.entry.js.map → p-ecc17497.entry.js.map} +0 -0
  364. /package/dist/infineon-design-system-stencil/{p-d17282e3.entry.js.map → p-ee2f21e1.entry.js.map} +0 -0
  365. /package/dist/infineon-design-system-stencil/{p-00a1ec40.entry.js.map → p-f2bea855.entry.js.map} +0 -0
  366. /package/dist/infineon-design-system-stencil/{p-fe049ed9.entry.js.map → p-f338fb85.entry.js.map} +0 -0
@@ -177,7 +177,7 @@ const Template = class {
177
177
  }
178
178
  }
179
179
  render() {
180
- return (index.h("div", { key: '168d0844f5ce2d89964476d312579e1771c35886' }, this.isTemplatePage
180
+ return (index.h("div", { key: '993f20bb1a7970d938d09ea001ee77b777d2a817' }, this.isTemplatePage
181
181
  ?
182
182
  index.h("div", { class: "template__page-wrapper" }, !this.repoUrl && !this.repoError &&
183
183
  index.h("div", null, index.h("h3", null, "Your repository is getting ready.."), index.h("p", null, "This will only take a minute.")), this.isLoading && !this.repoError && index.h("div", null, index.h("ifx-spinner", { variant: 'default', size: 's' })), this.repoUrl && index.h("ifx-link", { href: this.repoUrl, target: "_parent", size: "m", variant: "underlined" }, "Your repository"), this.repoError && index.h("div", null, this.repoError))
@@ -183,7 +183,7 @@ const Table = class {
183
183
  return {};
184
184
  }
185
185
  render() {
186
- return (index.h(index.Host, { key: 'bb4f66d3a409a2b06cb72f7fdc445df10358c591' }, index.h("div", { key: '873b1fa7aa2086cc4de9763c001dbcabc649d68f', id: "table-wrapper", class: this.getClassNames() }, index.h("div", { key: 'a0cfe32c9f60f075234b4e29cbdd56c867699417', id: `ifxTable-${this.uniqueKey}`, class: `ifx-ag-grid ${this.variant === 'zebra' ? 'zebra' : ""}`, style: this.getTableStyle(), ref: (el) => (this.container = el) }))));
186
+ return (index.h(index.Host, { key: '66fa0163c04b424ad320d80d44ecd1b6d8e617ca' }, index.h("div", { key: '257db8e8be943058fed5823f21c38277cfa953b9', id: "table-wrapper", class: this.getClassNames() }, index.h("div", { key: '27043b90cd6940ad534ae885e72a1de5be20cc19', id: `ifxTable-${this.uniqueKey}`, class: `ifx-ag-grid ${this.variant === 'zebra' ? 'zebra' : ""}`, style: this.getTableStyle(), ref: (el) => (this.container = el) }))));
187
187
  }
188
188
  get host() { return index.getElement(this); }
189
189
  };
@@ -485,7 +485,7 @@ const Pagination = class {
485
485
  this.initPagination();
486
486
  }
487
487
  render() {
488
- return (index.h("div", { key: '2db22cea600f9d93a048dbfa6748f6c0a12aa5f5', class: "container" }, index.h("div", { key: '33a7bf4cc2178bd8777264177411ba19cf944a78', class: "items__per-page-wrapper" }, index.h("div", { key: '9d6bcb6005180b6cd06c6b619317283d047b2f68', class: "items__per-page-label" }, "Results per Page"), index.h("div", { key: 'd468243b87792d9543481022c7a4f0c5b3fdd805', class: "items__per-page-field" }, index.h("ifx-select", { key: '48b87e0a1dbfcff4b9468b134f0f3a609c7b2aca', placeholder: 'false', "show-search": 'false', value: undefined, disabled: false, error: false, size: "s", options: this.filteredItemsPerPage, "placeholder-value": "Select" }))), index.h("div", { key: '11c0559524ac4239d4239e97088c7b8f7dee813e', class: "items__total-wrapper" }, index.h("div", { key: 'a0c52f73524aec6c33b4af18010e8783e1cea524', class: "pagination" }, index.h("ifx-icon-button", { key: '40a755dce92de2dd8d14846bcf2269a0e74ff6db', class: "prev", icon: "arrow-left-16", onClick: () => this.changePage(this.internalPage - 1) }), index.h("ol", { key: '24cd5cb3dfc5b33d809099efd1b979c24e19d676' }, this.visiblePages.map((page, i) => typeof page === 'number' ? (index.h("li", { key: `page-${page}`, class: { [this.CLASS_ACTIVE]: page === this.internalPage }, "data-page": page }, index.h("a", { href: "javascript:void(0)" }, page))) : (index.h("li", { class: "ellipsis", key: `ellipsis-${i}` }, index.h("span", null, "..."))))), index.h("ifx-icon-button", { key: '4c8276b66ff84a6280543066c48e6eb88310de83', class: "next", icon: "arrow-right-16", onClick: () => this.changePage(this.internalPage + 1) })))));
488
+ return (index.h("div", { key: 'f34d51257e81560aec1de209b91a18f8d3b80909', class: "container" }, index.h("div", { key: 'b437f38a7c494793ef43392a5200602d1ea280f7', class: "items__per-page-wrapper" }, index.h("div", { key: '54fb7a4952ad76351188a3177611bf4bca95b007', class: "items__per-page-label" }, "Results per Page"), index.h("div", { key: 'd0bc72f83111f631485da2b6fe52b29c98208c83', class: "items__per-page-field" }, index.h("ifx-select", { key: '62eea5b69a124994a159f04119cdcf5e54cb6e8e', placeholder: 'false', "show-search": 'false', value: undefined, disabled: false, error: false, size: "s", options: this.filteredItemsPerPage, "placeholder-value": "Select" }))), index.h("div", { key: '689680c6df19027528fffd8e9ff4938952e9245f', class: "items__total-wrapper" }, index.h("div", { key: 'be26d81808f23878a51cf1fb9992433c6abeed26', class: "pagination" }, index.h("ifx-icon-button", { key: '6abeed920c4f97763170459f714a3c2a0f7b144c', class: "prev", icon: "arrow-left-16", onClick: () => this.changePage(this.internalPage - 1) }), index.h("ol", { key: 'bce48e8aed58fa1f92a04a294fa1dcffd04ed42c' }, this.visiblePages.map((page, i) => typeof page === 'number' ? (index.h("li", { key: `page-${page}`, class: { [this.CLASS_ACTIVE]: page === this.internalPage }, "data-page": page }, index.h("a", { href: "javascript:void(0)" }, page))) : (index.h("li", { class: "ellipsis", key: `ellipsis-${i}` }, index.h("span", null, "..."))))), index.h("ifx-icon-button", { key: '7e63ce955d14f7f19219bc856ca0bce02b180e08', class: "next", icon: "arrow-right-16", onClick: () => this.changePage(this.internalPage + 1) })))));
489
489
  }
490
490
  get el() { return index.getElement(this); }
491
491
  };
@@ -12,7 +12,7 @@ const Faq = class {
12
12
  index.registerInstance(this, hostRef);
13
13
  }
14
14
  render() {
15
- return (index.h("div", { key: 'b6a295a5fcd3822cec18fcea5be65cd6ca694403', class: 'container' }, index.h("ifx-accordion", { key: 'c1f797d5061e13ad5ecb4faed585ae11d6584814' }, index.h("ifx-accordion-item", { key: '31d5e4edbeeb2f076d163979fab39b66828c07dc', caption: "What is the Infineon DDS?" }, "The Infineon Digital Design System consists of code components, design principles, tools and guidelines as well as a dedicated interdisciplinary team. Its purpose is to support internal and external colleagues create digital user interfaces with a high level of usability as well as a consistent expression of the Infineon brand. The DDS does not focus on the content of a web application but it describes how the design of the application\u2019s structure should be."), index.h("ifx-accordion-item", { key: '1166136dfff3448320117820fd1cb0fb9f15396e', caption: "How do I get access to the DDS?" }, "You can use the provided Figma file as a foundation for mockups and prototypes, use Storybook to view what UI components and variants are available and use code components provided via Storybook or Github."), index.h("ifx-accordion-item", { key: '7c138a0003e9c26799c4db406c9d5aac57ecfa93', caption: "Can I integrate the Infineon DDS into my project?" }, "Yes, you can. We are happy to discuss with you which point in time and which scope of integration is bestsuited for updating your interface to the Infineon DDS. (To avoid that users get confused by a mixture of UI components, we recommend choosing larger updates or technology changes as opportunity to integrate the Infineon DDS.)"), index.h("ifx-accordion-item", { key: 'ac7304ccb5552bf1122c933891c7cf6ff4044b04', caption: "Are Infineon DDS components accessable?" }, "We have taken WCAG 2.0 Level AA as baseline level for all design decisions inside the Infineon Digital Design System. To make an online experience truly accessible you have to implement the specific code, content, and visual design according to the accessibility standard. Find an introduction to this topic here."), index.h("ifx-accordion-item", { key: '4dece35f001fcc0d3354e67d869aaf7d4cea0b1d', caption: "How to request a new component?" }, "Please contact us like described in the contribution section! We are planning to expand the number of components continually. If your component is also usable for multiple other projects, there is a good chance we might work together with you."))));
15
+ return (index.h("div", { key: '4a4dd3e7914d1446e881f385c6901498ffbd2590', class: 'container' }, index.h("ifx-accordion", { key: 'b2c1b72db75d80650788bf93ba93214b9f8d47a9' }, index.h("ifx-accordion-item", { key: '062a7f7004039ccf7cf4af69397d8fe995306b54', caption: "What is the Infineon DDS?" }, "The Infineon Digital Design System consists of code components, design principles, tools and guidelines as well as a dedicated interdisciplinary team. Its purpose is to support internal and external colleagues create digital user interfaces with a high level of usability as well as a consistent expression of the Infineon brand. The DDS does not focus on the content of a web application but it describes how the design of the application\u2019s structure should be."), index.h("ifx-accordion-item", { key: '2e4a3ec5a0825d3ab6b29f7ea4ed1702c7922d10', caption: "How do I get access to the DDS?" }, "You can use the provided Figma file as a foundation for mockups and prototypes, use Storybook to view what UI components and variants are available and use code components provided via Storybook or Github."), index.h("ifx-accordion-item", { key: '62f9a4aac5bba71505b5af95e25b6c0021cb4559', caption: "Can I integrate the Infineon DDS into my project?" }, "Yes, you can. We are happy to discuss with you which point in time and which scope of integration is bestsuited for updating your interface to the Infineon DDS. (To avoid that users get confused by a mixture of UI components, we recommend choosing larger updates or technology changes as opportunity to integrate the Infineon DDS.)"), index.h("ifx-accordion-item", { key: '0a16702be715953bb2f50c9410478a9be13822f2', caption: "Are Infineon DDS components accessable?" }, "We have taken WCAG 2.0 Level AA as baseline level for all design decisions inside the Infineon Digital Design System. To make an online experience truly accessible you have to implement the specific code, content, and visual design according to the accessibility standard. Find an introduction to this topic here."), index.h("ifx-accordion-item", { key: 'cdad5c370c579464c9fbd322cf634d5ed547ea41', caption: "How to request a new component?" }, "Please contact us like described in the contribution section! We are planning to expand the number of components continually. If your component is also usable for multiple other projects, there is a good chance we might work together with you."))));
16
16
  }
17
17
  };
18
18
  Faq.style = IfxFaqStyle0;
@@ -53,8 +53,8 @@ const FilterAccordion = class {
53
53
  this.el.removeEventListener('ifxListUpdate', this.handleCheckedChange);
54
54
  }
55
55
  render() {
56
- return (index.h("div", { key: 'dcee8e0efc95236f519e28d19819ec4ff308f5b6', class: `accordion ${this.expanded ? 'expanded' : ''}` }, index.h("div", { key: '53b7dae8f8a2798408ace40dcf18c602946c1b1f', class: `header ${this.expanded ? 'expanded' : ''}`, onClick: this.toggleAccordion }, index.h("div", { key: '1e8047d0e9808475d8bfaad216fa7d0a1024b696', class: `text-and-icon ${this.expanded ? 'expanded' : ''}` }, index.h("div", { key: '8ca900b6cd9539106789327caef0e26120ecf795', class: "text" }, index.h("span", { key: '6da0944b9bfca9ad62ef0000da328a4a7ad7c972' }, this.filterGroupName), index.h("ifx-indicator", { key: '5f586a9f3f366642b027e303bf4026d2b446ba7c', variant: 'number', number: this.count })), index.h("ifx-icon", { key: '8c296860ddedc2cd3069d7eaa4fca00f8a98b65d', class: this.expanded ? '' : 'hidden', icon: "minus-16", onClick: this.toggleAccordion }), index.h("ifx-icon", { key: '99050fc03f6301f0ff144df0164cea86dce1e3e6', class: this.expanded ? 'hidden' : '', icon: "plus-16", onClick: this.toggleAccordion }))), this.expanded &&
57
- index.h("div", { key: 'b5162242fb32c6aa1edc7f9bf20243ba6929493d', class: "filter-accordion-container" }, index.h("slot", { key: '08e51213aea8e5bd15ab07598423743592ac1dce', name: "list" }))));
56
+ return (index.h("div", { key: '58a9fc554a0111ecaae73e6bf916854565cdb4ce', class: `accordion ${this.expanded ? 'expanded' : ''}` }, index.h("div", { key: '02f5eb1f65b0a9c557e86f4b775066cdc9e0f2e9', class: `header ${this.expanded ? 'expanded' : ''}`, onClick: this.toggleAccordion }, index.h("div", { key: 'b403fb42b57402a50369da150397d2110a86e24b', class: `text-and-icon ${this.expanded ? 'expanded' : ''}` }, index.h("div", { key: '97169901c1141a46ce053badc8c83843b0acb722', class: "text" }, index.h("span", { key: '9b08d8bcfd2fff174479047c91c2a1de298b0aa9' }, this.filterGroupName), index.h("ifx-indicator", { key: '1938781cf1a52eb558fbd81165c08c652d9d2e7e', variant: 'number', number: this.count })), index.h("ifx-icon", { key: 'ff0e000cd7b8ed8dbe348c2a27a7dda50feb7be2', class: this.expanded ? '' : 'hidden', icon: "minus-16", onClick: this.toggleAccordion }), index.h("ifx-icon", { key: '95f0716c4cfe0e935aff7e2e808cb69b3adb1db2', class: this.expanded ? 'hidden' : '', icon: "plus-16", onClick: this.toggleAccordion }))), this.expanded &&
57
+ index.h("div", { key: '7b05929ad4ef69a3d6f774573104d71de02b0425', class: "filter-accordion-container" }, index.h("slot", { key: '3c6192595ac49026d2a1fdb63003663da228d0e2', name: "list" }))));
58
58
  }
59
59
  get el() { return index.getElement(this); }
60
60
  };
@@ -97,7 +97,7 @@ const FilterBar = class {
97
97
  // Calculate slotsToShow safely
98
98
  const slotsToShow = Math.min(safeVisibleSlots, actualNumberOfComponents, Number.MAX_SAFE_INTEGER);
99
99
  const slots = Array.from({ length: slotsToShow }, (_, i) => (index.h("div", { class: "filter-slot-wrapper" }, index.h("slot", { name: `filter-component-${i + 1}` }))));
100
- return (index.h(index.Host, { key: '6b6f43a15e34306b15e594b3a73dbcab0ebe881e' }, index.h("div", { key: 'a444719b8ca1599f2416c3bd9d690731562a7fe4', class: "search-container" }, index.h("slot", { key: '4d8f9bee4ec182e3c17ebd1714c5ea903bc5e538', name: "filter-search" }), " "), index.h("div", { key: '4d3755201694ddefe9b4d9d1b7a3ad65036e91b2', class: "components-container" }, slots.length > 0 ? slots : index.h("slot", { name: "filter-component" }), this.showMoreFiltersButton && !this.showAllFilters && (index.h("div", { key: '5ab036d16a8d8441a586770258b40c8bf6d06a40', class: "more-filters-wrapper", onClick: this.handleMoreFiltersClick }, index.h("ifx-button", { key: '82fa6ad85af9e6dd5b42d5b9087ab0cd15cefa44', type: "button", disabled: false, variant: "tertiary", size: "m", target: "_blank", theme: "default", "full-width": "false" }, index.h("ifx-icon", { key: '23085121e53980f58471af19fd9322f618c58313', icon: "filter-16" }), "More filters"))))));
100
+ return (index.h(index.Host, { key: '7b2cb9b7074cd66edfe0c31ef19e18f72252e569' }, index.h("div", { key: 'fabc0fa624802d65510c4bff239f4d83bb23f520', class: "search-container" }, index.h("slot", { key: '2a990d12a8e17c1c7a5db629b2fa050ca55b65d1', name: "filter-search" }), " "), index.h("div", { key: '874b0e25ca8aa4465d49ebe6db00116843127242', class: "components-container" }, slots.length > 0 ? slots : index.h("slot", { name: "filter-component" }), this.showMoreFiltersButton && !this.showAllFilters && (index.h("div", { key: 'fe500afb7ff3ab37d8a20ccf781499501bd3b70f', class: "more-filters-wrapper", onClick: this.handleMoreFiltersClick }, index.h("ifx-button", { key: '7d1ddf8679f50e87488cc62dd01d6571ec203a5a', type: "button", disabled: false, variant: "tertiary", size: "m", target: "_blank", theme: "default", "full-width": "false" }, index.h("ifx-icon", { key: 'dfb8ae890ccb73b8635d041a5cd5344d198c647f', icon: "filter-16" }), "More filters"))))));
101
101
  }
102
102
  get el() { return index.getElement(this); }
103
103
  };
@@ -33,7 +33,7 @@ const FilterSearch = class {
33
33
  this.ifxFilterSearchChange.emit({ filterName: this.filterName, filterValue: this.filterValue, filterKey: this.filterKey }); // Emitting filterKey along with other properties
34
34
  }
35
35
  render() {
36
- return (index.h("div", { key: '5580e31d167e1559594e3e1f4580dc6d19dc9968', class: `${this.filterOrientation === 'sidebar' ? 'sidebar-filter-search-wrapper' : 'topbar-filter-search-wrapper'}` }, index.h("div", { key: '7eac96b49e4e281c6daf1c74bacd957ec86d01ca', class: "filter-name" }, this.filterName), index.h("ifx-search-field", { key: '827596a91c60c83ac1831427947305105952fe73', placeholder: this.placeholder, "show-delete-icon": this.showDeleteIcon, disabled: this.disabled, value: this.filterValue })));
36
+ return (index.h("div", { key: '3d139dc274dbfc4e288cb510e49a86ce261e0659', class: `${this.filterOrientation === 'sidebar' ? 'sidebar-filter-search-wrapper' : 'topbar-filter-search-wrapper'}` }, index.h("div", { key: 'c5287d8e763fe0b3994b87cd71ab35371e21a82b', class: "filter-name" }, this.filterName), index.h("ifx-search-field", { key: '6799eff98a2cd93c79bde4ac761f5ff2c0f0d2b8', placeholder: this.placeholder, "show-delete-icon": this.showDeleteIcon, disabled: this.disabled, value: this.filterValue })));
37
37
  }
38
38
  get host() { return index.getElement(this); }
39
39
  static get watchers() { return {
@@ -129,7 +129,7 @@ const IfxFilterTypeGroup = class {
129
129
  window.removeEventListener('ifxResetFiltersEvent', this.handleResetEvent);
130
130
  }
131
131
  render() {
132
- return (index.h(index.Host, { key: '88595f680a4453f9d514a0f2f15ccd659b9a9ea3' }, index.h("div", { key: '71eade5ef05a39413fa51619ca731adc0cc846f6', class: "filter-type-group" }, index.h("slot", { key: '63021a6178acdb0534ba2dc940a3eb806e4751ce', name: "filter-search" }), index.h("slot", { key: '90726fa79bcc88dccd96cd0f53d2b17f506897e7', name: "filter-accordion" }))));
132
+ return (index.h(index.Host, { key: '30471c9617c8701450157ef5e99aa341edccaa68' }, index.h("div", { key: 'ba65236b497cf26293e0e318b5b9073a82faa67c', class: "filter-type-group" }, index.h("slot", { key: '3e86a028c265405782169e1d08784b87f1d7bbef', name: "filter-search" }), index.h("slot", { key: '2a6cf246a7d24e83a247ae4c94f10679893b5b09', name: "filter-accordion" }))));
133
133
  }
134
134
  get el() { return index.getElement(this); }
135
135
  };
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-7f4df11a.js');
6
- const icons = require('./icons-b9fd1601.js');
6
+ const icons = require('./icons-14857a37.js');
7
7
 
8
8
  const infineonIconStencilCss = "ifx-icon{display:inline-flex;justify-content:center}ifx-icon:empty{display:none}";
9
9
  const IfxIconStyle0 = infineonIconStencilCss;
@@ -3,9 +3,9 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-7f4df11a.js');
6
- const icons = require('./icons-b9fd1601.js');
6
+ const icons = require('./icons-14857a37.js');
7
7
 
8
- const iconsPreviewCss = ".container{display:flex;flex-direction:column;gap:10px}.alert__wrapper{margin-bottom:40px}.html-wrapper{background:rgb(38, 38, 38);padding:20px;color:white;font-family:monospace;position:sticky;top:0;left:0;z-index:99}.html-wrapper button{position:absolute;right:0px;bottom:0px;background:rgba(0, 0, 0, 0.85);color:#C9CDCF;border:0 none;padding:4px 10px;font-size:0.75rem;font-family:\"Nunito Sans\";font-weight:700;border-top:1px solid rgba(255, 255, 255, 0.1);border-left:1px solid rgba(255, 255, 255, 0.1);margin-left:-1px;border-radius:4px 0 0 0;cursor:pointer}.html-wrapper .component-name{color:#A8FF60}.html-wrapper .attribute-name{color:rgb(150, 203, 254)}.html-wrapper .attribute-value{color:rgb(180, 116, 221)}.preview__container{box-sizing:border-box;display:flex;align-items:center;padding:2px;flex-wrap:wrap;gap:4px}.preview__container .preview__container-item{display:flex;justify-content:center;align-items:center;border:1px solid #f1f1f1;padding:2px;width:50px;height:50px;position:relative}.preview__container .preview__container-item:active{border-color:#378375}.preview__container .preview__container-item:hover{cursor:pointer}.preview__container .preview__container-item.copied::after{z-index:50;content:\"copied!\";position:absolute;top:0;left:50px;background-color:#000;color:white;padding:3px;border-radius:4px}";
8
+ const iconsPreviewCss = ".container{display:flex;flex-direction:column;gap:10px}.alert__wrapper{margin-bottom:40px}.snippet__wrapper{display:flex;flex-direction:column;gap:5px;position:sticky;top:0;left:0;z-index:99;background-color:white}.html-wrapper{background:rgb(38, 38, 38);padding:20px;color:white;font-family:monospace}.html-wrapper button{position:absolute;right:0px;bottom:0px;background:rgba(0, 0, 0, 0.85);color:#C9CDCF;border:0 none;padding:4px 10px;font-size:0.75rem;font-family:\"Nunito Sans\";font-weight:700;border-top:1px solid rgba(255, 255, 255, 0.1);border-left:1px solid rgba(255, 255, 255, 0.1);margin-left:-1px;border-radius:4px 0 0 0;cursor:pointer}.html-wrapper .component-name{color:#A8FF60}.html-wrapper .attribute-name{color:rgb(150, 203, 254)}.html-wrapper .attribute-value{color:rgb(180, 116, 221)}.preview__container{box-sizing:border-box;display:flex;align-items:center;padding:2px;flex-wrap:wrap;gap:4px}.preview__container .no-results{width:100%;text-align:center}.preview__container .preview__container-item{display:flex;justify-content:center;align-items:center;border:1px solid #f1f1f1;padding:2px;width:50px;height:50px;position:relative}.preview__container .preview__container-item:active{border-color:#378375}.preview__container .preview__container-item:hover{cursor:pointer}.preview__container .preview__container-item.copied::after{z-index:50;content:\"copied!\";position:absolute;top:0;left:50px;background-color:#000;color:white;padding:3px;border-radius:4px}";
9
9
  const IfxIconsPreviewStyle0 = iconsPreviewCss;
10
10
 
11
11
  const IconsPreview = class {
@@ -13,8 +13,10 @@ const IconsPreview = class {
13
13
  index.registerInstance(this, hostRef);
14
14
  this.iconsArray = [];
15
15
  this.isCopied = false;
16
+ this.copiedIcon = null;
16
17
  this.htmlTag = '<ifx-icon icon="calendar-16"></ifx-icon>';
17
- this.iconName = `"c-info-16"`;
18
+ this.iconName = `""`;
19
+ this.searchTerm = '';
18
20
  }
19
21
  handleCopiedText() {
20
22
  this.isCopied = true;
@@ -25,19 +27,36 @@ const IconsPreview = class {
25
27
  copyIconText(icon) {
26
28
  this.htmlTag = `<ifx-icon icon="${icon}"></ifx-icon>`;
27
29
  this.iconName = `"${icon}"`;
30
+ this.copiedIcon = icon;
28
31
  }
29
32
  copyHtmlString() {
30
33
  const copiedTag = `<ifx-icon icon=${this.iconName}></ifx-icon>`;
31
34
  navigator.clipboard.writeText(copiedTag);
32
35
  this.handleCopiedText();
33
36
  }
37
+ get filteredIcons() {
38
+ const term = this.searchTerm.toLowerCase().trim();
39
+ if (!term)
40
+ return this.iconsArray;
41
+ return this.iconsArray.filter(icon => icon.toLowerCase().includes(term));
42
+ }
43
+ getIconIndex(icon) {
44
+ return this.iconsArray.indexOf(icon);
45
+ }
46
+ handleIconFilter() {
47
+ const searchField = this.el.shadowRoot.querySelector('#search__field');
48
+ searchField.addEventListener('ifxInput', (e) => {
49
+ this.searchTerm = e.detail;
50
+ });
51
+ }
34
52
  componentWillLoad() {
35
- for (let icon in icons.icons) {
36
- this.iconsArray.push(icon);
37
- }
53
+ this.iconsArray = Object.keys(icons.icons);
54
+ }
55
+ componentDidLoad() {
56
+ this.handleIconFilter();
38
57
  }
39
58
  render() {
40
- return (index.h("div", { key: 'e5e0788565bb50d8b50f202e3824afe86e2a158e', class: 'container' }, index.h("div", { key: 'ae158193f2a9181eb1426480ea2b94f7430f5eca', class: "alert__wrapper" }, index.h("ifx-notification", { key: '8345b299944d276859d0ddc7514fc6df1cb13784', icon: "c-check-16", variant: "neutral", "link-text": "Figma icon library", "link-href": "https://www.figma.com/design/yWwaLoqsWLWygDxXfvdym9/Infineon-DDS-%7C-UI-icon-library?node-id=13284-1289&p=f&t=SD6EdmXaSufsjPCv-0", "link-target": "_blank" }, "You can also find the UI icons in Figma for use in mockups.")), index.h("div", { key: '1aa82aeee7fbf2fcbdef49dad691cc1a45da9fc3', class: 'html-wrapper' }, index.h("span", { key: 'd8ed26f941d413ed9c97ad913ab0099119a824c6', class: "html-tag" }, "<"), index.h("span", { key: '5061e0909765b0e654a387610a05cb66c5218265', class: "component-name" }, "ifx-icon"), index.h("span", { key: 'c72b7029ae8c6a61ef58a337a203952e8f313d3e', class: "attribute-name" }, " icon"), "=", index.h("span", { key: '9dc24de771b12f7c35ef12a666446053043b70c5', class: "attribute-value" }, this.iconName), index.h("span", { key: '5fab1ce949dbe53f00c350ad5f214448d9b57e7a', class: "html-tag" }, ">"), index.h("span", { key: '84a21a9f0f9a8b2c0c92d9d12f43e371d0773810', class: "html-tag" }, "</"), index.h("span", { key: '2a41361f12ccd3c314b3fce84e1db9a667c594a9', class: "component-name" }, "ifx-icon"), index.h("span", { key: '8a0e75935ce8736caccac24709904112ec539b73', class: "html-tag" }, ">"), index.h("button", { key: '83a4d63fec9460cc387abe1488f220472ab3b16f', onClick: () => this.copyHtmlString() }, this.isCopied ? 'Copied' : 'Copy')), index.h("div", { key: '972b1d933d4e31c5ba78e629414c8f20c52cbb23', class: "preview__container" }, this.iconsArray.map((icon, index$1) => index.h("div", { class: `preview__container-item ${this.isCopied && this.copiedIndex === index$1 ? 'copied' : ""}`, onClick: () => this.copyIconText(icon) }, index.h("ifx-icon", { icon: icon }))))));
59
+ return (index.h("div", { key: '7b9c4b5b3212cdae77e4522bd573939b1bc32e62', class: 'container' }, index.h("div", { key: '8e4047341dd331f402a2ce249b6bd68b7fe398d5', class: "alert__wrapper" }, index.h("ifx-notification", { key: '42e17eefa571360711ea0aca45d57dae6a5b70a6', icon: "c-check-16", variant: "neutral", "link-text": "Figma icon library", "link-href": "https://www.figma.com/design/yWwaLoqsWLWygDxXfvdym9/Infineon-DDS-%7C-UI-icon-library?node-id=13284-1289&p=f&t=SD6EdmXaSufsjPCv-0", "link-target": "_blank" }, "You can also find the UI icons in Figma for use in mockups.")), index.h("div", { key: 'ecd1f37f5edb25b913157626ba674f10c2a00026', class: "snippet__wrapper" }, index.h("div", { key: '58f5fd04a7fef398ba47d71c23c74515c5461337', class: "search__wrapper" }, index.h("ifx-search-field", { key: '76802675d5c01562a0f7d69f8d3bd3df15c2944b', id: "search__field", size: "m", "show-delete-icon": "true", value: "", autocomplete: "on", placeholder: "Search icon" })), index.h("div", { key: '2160ef2e64b86140232aa6566db2f153d724b107', class: 'html-wrapper' }, index.h("span", { key: '810aa571906d82fbe93d631322bec4ed08b956d4', class: "html-tag" }, "<"), index.h("span", { key: '2aeeb86927938a7b2a3d9f5fb2ef57f0aa925eaa', class: "component-name" }, "ifx-icon"), index.h("span", { key: 'de18997563df168af3e976b1ad81d205cd2a850a', class: "attribute-name" }, " icon"), "=", index.h("span", { key: 'a93dfbec210940b2d9b2c1dd349a727e5f7185ce', class: "attribute-value" }, this.iconName), index.h("span", { key: 'b2900ea9e7099ab4fcb890d6df05cab4d6109c55', class: "html-tag" }, ">"), index.h("span", { key: 'fee18bd1c39103e29ec84bc115b1719c11a66849', class: "html-tag" }, "</"), index.h("span", { key: '57c6db27a4156d0ad50c20d691138817db80ba18', class: "component-name" }, "ifx-icon"), index.h("span", { key: '395b55e085cb49a133beaca0bf79338662c0905b', class: "html-tag" }, ">"), index.h("button", { key: 'a6c81538ec62f435c06460e8822aa1784ec06138', onClick: () => this.copyHtmlString() }, this.isCopied ? 'Copied' : 'Copy'))), index.h("div", { key: 'dcac1dacdfc1f4d0cdeeabbe908b2b71bc79334e', class: "preview__container" }, this.filteredIcons.map((icon) => (index.h("div", { key: icon, class: `preview__container-item ${this.isCopied && this.copiedIcon === icon ? 'copied' : ""}`, onClick: () => this.copyIconText(icon) }, index.h("ifx-icon", { icon: icon })))), this.filteredIcons.length === 0 && (index.h("div", { key: '128cee79fdfa10ea937e704b1a48ae83485c0c1f', class: "no-results" }, "No icons found matching \"", this.searchTerm, "\"")))));
41
60
  }
42
61
  get el() { return index.getElement(this); }
43
62
  };
@@ -1 +1 @@
1
- {"file":"ifx-icons-preview.entry.cjs.js","mappings":";;;;;;;AAAA,MAAM,eAAe,GAAG,wzCAAwzC,CAAC;AACj1C,8BAAe,eAAe;;MCQjB,YAAY;IANzB;;QAOW,eAAU,GAAa,EAAE,CAAC;QAC1B,aAAQ,GAAY,KAAK,CAAC;QAE1B,YAAO,GAAW,0CAA0C,CAAC;QAC7D,aAAQ,GAAW,aAAa,CAAC;KA2D3C;IAxDC,gBAAgB;QACd,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,UAAU,CAAC;YACT,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;SACtB,EAAE,IAAI,CAAC,CAAC;KACV;IAED,YAAY,CAAC,IAAI;QACf,IAAI,CAAC,OAAO,GAAG,mBAAmB,IAAI,eAAe,CAAC;QACtD,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,GAAG,CAAA;KAC5B;IAED,cAAc;QACZ,MAAM,SAAS,GAAG,kBAAkB,IAAI,CAAC,QAAQ,cAAc,CAAC;QAChE,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,gBAAgB,EAAE,CAAA;KACxB;IAED,iBAAiB;QACf,KAAI,IAAI,IAAI,IAAIA,WAAK,EAAE;YACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;SAC3B;KACF;IAED,MAAM;QACJ,QACEC,kEAAK,KAAK,EAAC,WAAW,IACpBA,kEAAK,KAAK,EAAC,gBAAgB,IACvBA,+EACE,IAAI,EAAC,YAAY,EACjB,OAAO,EAAC,SAAS,eACP,oBAAoB,eACpB,kIAAkI,iBAChI,QAAQ,kEAEH,CACjB,EACNA,kEAAK,KAAK,EAAC,cAAc,IACvBA,mEAAM,KAAK,EAAC,UAAU,QAAY,EAClCA,mEAAM,KAAK,EAAC,gBAAgB,eAAgB,EAC5CA,mEAAM,KAAK,EAAC,gBAAgB,YAAa,OAACA,mEAAM,KAAK,EAAC,iBAAiB,IAAE,IAAI,CAAC,QAAQ,CAAQ,EAC9FA,mEAAM,KAAK,EAAC,UAAU,QAAY,EAClCA,mEAAM,KAAK,EAAC,UAAU,SAAa,EACnCA,mEAAM,KAAK,EAAC,gBAAgB,eAAgB,EAC5CA,mEAAM,KAAK,EAAC,UAAU,QAAY,EAClCA,qEAAQ,OAAO,EAAE,MAAM,IAAI,CAAC,cAAc,EAAE,IAAG,IAAI,CAAC,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAU,CACtF,EACNA,kEAAK,KAAK,EAAC,oBAAoB,IAC5B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAEC,OAAK,KACjCD,iBAAK,KAAK,EAAE,2BAA2B,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,KAAKC,OAAK,GAAG,QAAQ,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAC1ID,sBAAU,IAAI,EAAE,IAAI,GAAa,CAC7B,CAAC,CACH,CACF,EACP;KACF;;;;;;;","names":["icons","h","index"],"sources":["src/components/icons-preview/icons-preview.scss?tag=ifx-icons-preview&encapsulation=shadow","src/components/icons-preview/icons-preview.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n\n.container {\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.alert__wrapper { \n margin-bottom: 40px;\n}\n\n.html-wrapper {\n background: rgb(38, 38, 38);\n padding: 20px;\n color: white;\n font-family: monospace;\n position: sticky;\n top: 0;\n left: 0;\n z-index: 99;\n\n & button {\n position: absolute;\n right: 0px;\n bottom: 0px;\n background: rgba(0, 0, 0, 0.85);\n color: #C9CDCF;\n border: 0 none;\n padding: 4px 10px;\n font-size: tokens.$ifxFontSizeXs;\n font-family: \"Nunito Sans\";\n font-weight: 700;\n border-top: 1px solid rgba(255, 255, 255, .1);\n border-left: 1px solid rgba(255, 255, 255, .1);\n margin-left: -1px;\n border-radius: 4px 0 0 0;\n cursor: pointer;\n }\n\n & .component-name {\n color: #A8FF60;\n }\n\n & .attribute-name {\n color: rgb(150, 203, 254);\n }\n\n & .attribute-value {\n color: rgb(180, 116, 221);\n }\n\n\n}\n\n.preview__container {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n padding: 2px;\n flex-wrap: wrap;\n gap: 4px;\n\n & .preview__container-item {\n display: flex;\n justify-content: center;\n align-items: center;\n border: 1px solid #f1f1f1;\n padding: 2px;\n width: 50px;\n height: 50px;\n position: relative;\n\n &:active {\n border-color: #378375;\n }\n\n &:hover {\n cursor: pointer;\n }\n\n &.copied {\n &::after {\n z-index: 50;\n content: 'copied!';\n position: absolute;\n top: 0;\n left: 50px;\n background-color: #000;\n color: white;\n padding: 3px;\n border-radius: 4px;\n }\n }\n }\n}","import { Component, h, Element, State } from \"@stencil/core\";\nimport { icons } from '@infineon/infineon-icons';\n\n@Component({\n tag: 'ifx-icons-preview',\n styleUrl: './icons-preview.scss',\n shadow: true\n})\n\nexport class IconsPreview {\n @State() iconsArray: string[] = [];\n @State() isCopied: boolean = false;\n @State() copiedIndex: number;\n @State() htmlTag: string = '<ifx-icon icon=\"calendar-16\"></ifx-icon>';\n @State() iconName: string = `\"c-info-16\"`;\n @Element() el;\n\n handleCopiedText() { \n this.isCopied = true;\n setTimeout(() => {\n this.isCopied = false\n }, 2000);\n }\n\n copyIconText(icon) { \n this.htmlTag = `<ifx-icon icon=\"${icon}\"></ifx-icon>`;\n this.iconName = `\"${icon}\"`\n }\n\n copyHtmlString() { \n const copiedTag = `<ifx-icon icon=${this.iconName}></ifx-icon>`;\n navigator.clipboard.writeText(copiedTag);\n this.handleCopiedText()\n }\n\n componentWillLoad() { \n for(let icon in icons) { \n this.iconsArray.push(icon)\n }\n }\n\n render() {\n return (\n <div class='container'>\n <div class=\"alert__wrapper\">\n <ifx-notification \n icon=\"c-check-16\" \n variant=\"neutral\" \n link-text=\"Figma icon library\" \n link-href=\"https://www.figma.com/design/yWwaLoqsWLWygDxXfvdym9/Infineon-DDS-%7C-UI-icon-library?node-id=13284-1289&p=f&t=SD6EdmXaSufsjPCv-0\"\n link-target=\"_blank\">\n You can also find the UI icons in Figma for use in mockups.\n </ifx-notification>\n </div>\n <div class='html-wrapper'>\n <span class=\"html-tag\">&lt;</span>\n <span class=\"component-name\">ifx-icon</span>\n <span class=\"attribute-name\"> icon</span>=<span class=\"attribute-value\">{this.iconName}</span>\n <span class=\"html-tag\">&gt;</span>\n <span class=\"html-tag\">&lt;/</span>\n <span class=\"component-name\">ifx-icon</span>\n <span class=\"html-tag\">&gt;</span>\n <button onClick={() => this.copyHtmlString()}>{this.isCopied ? 'Copied' : 'Copy'}</button>\n </div>\n <div class=\"preview__container\">\n {this.iconsArray.map((icon, index) => \n <div class={`preview__container-item ${this.isCopied && this.copiedIndex === index ? 'copied' : \"\"}`} onClick={() => this.copyIconText(icon)}>\n <ifx-icon icon={icon}></ifx-icon>\n </div>)}\n </div>\n </div>\n )\n }\n}"],"version":3}
1
+ {"file":"ifx-icons-preview.entry.cjs.js","mappings":"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","names":["icons","h"],"sources":["src/components/icons-preview/icons-preview.scss?tag=ifx-icons-preview&encapsulation=shadow","src/components/icons-preview/icons-preview.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n\n.container {\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.alert__wrapper { \n margin-bottom: 40px;\n}\n\n.snippet__wrapper { \n display: flex;\n flex-direction: column;\n gap: 5px;\n position: sticky;\n top: 0;\n left: 0;\n z-index: 99;\n background-color: white;\n}\n\n.html-wrapper {\n background: rgb(38, 38, 38);\n padding: 20px;\n color: white;\n font-family: monospace;\n\n & button {\n position: absolute;\n right: 0px;\n bottom: 0px;\n background: rgba(0, 0, 0, 0.85);\n color: #C9CDCF;\n border: 0 none;\n padding: 4px 10px;\n font-size: tokens.$ifxFontSizeXs;\n font-family: \"Nunito Sans\";\n font-weight: 700;\n border-top: 1px solid rgba(255, 255, 255, .1);\n border-left: 1px solid rgba(255, 255, 255, .1);\n margin-left: -1px;\n border-radius: 4px 0 0 0;\n cursor: pointer;\n }\n\n & .component-name {\n color: #A8FF60;\n }\n\n & .attribute-name {\n color: rgb(150, 203, 254);\n }\n\n & .attribute-value {\n color: rgb(180, 116, 221);\n }\n\n\n}\n\n.preview__container {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n padding: 2px;\n flex-wrap: wrap;\n gap: 4px;\n\n & .no-results { \n width: 100%;\n text-align: center;\n }\n\n & .preview__container-item {\n display: flex;\n justify-content: center;\n align-items: center;\n border: 1px solid #f1f1f1;\n padding: 2px;\n width: 50px;\n height: 50px;\n position: relative;\n\n &:active {\n border-color: #378375;\n }\n\n &:hover {\n cursor: pointer;\n }\n\n &.copied {\n &::after {\n z-index: 50;\n content: 'copied!';\n position: absolute;\n top: 0;\n left: 50px;\n background-color: #000;\n color: white;\n padding: 3px;\n border-radius: 4px;\n }\n }\n }\n}","import { Component, h, Element, State } from \"@stencil/core\";\nimport { icons } from '@infineon/infineon-icons';\n\n@Component({\n tag: 'ifx-icons-preview',\n styleUrl: './icons-preview.scss',\n shadow: true\n})\n\nexport class IconsPreview {\n @State() iconsArray: string[] = [];\n @State() isCopied: boolean = false;\n @State() copiedIndex: number;\n @State() copiedIcon: string | null = null;\n @State() htmlTag: string = '<ifx-icon icon=\"calendar-16\"></ifx-icon>';\n @State() iconName: string = `\"\"`;\n @State() searchTerm: string = '';\n @Element() el;\n\n handleCopiedText() { \n this.isCopied = true;\n setTimeout(() => {\n this.isCopied = false\n }, 2000);\n }\n\n copyIconText(icon: string) { \n this.htmlTag = `<ifx-icon icon=\"${icon}\"></ifx-icon>`;\n this.iconName = `\"${icon}\"`;\n this.copiedIcon = icon;\n }\n\n copyHtmlString() { \n const copiedTag = `<ifx-icon icon=${this.iconName}></ifx-icon>`;\n navigator.clipboard.writeText(copiedTag);\n this.handleCopiedText()\n }\n\n get filteredIcons() {\n const term = this.searchTerm.toLowerCase().trim();\n if (!term) return this.iconsArray;\n \n return this.iconsArray.filter(icon => \n icon.toLowerCase().includes(term)\n );\n }\n\n getIconIndex(icon: string): number {\n return this.iconsArray.indexOf(icon);\n }\n\n handleIconFilter() { \n const searchField = this.el.shadowRoot.querySelector('#search__field');\n searchField.addEventListener('ifxInput', (e) => { \n this.searchTerm = e.detail;\n })\n }\n\n componentWillLoad() { \n this.iconsArray = Object.keys(icons);\n }\n\n componentDidLoad() { \n this.handleIconFilter()\n }\n\n render() {\n return (\n <div class='container'>\n <div class=\"alert__wrapper\">\n <ifx-notification \n icon=\"c-check-16\" \n variant=\"neutral\" \n link-text=\"Figma icon library\" \n link-href=\"https://www.figma.com/design/yWwaLoqsWLWygDxXfvdym9/Infineon-DDS-%7C-UI-icon-library?node-id=13284-1289&p=f&t=SD6EdmXaSufsjPCv-0\"\n link-target=\"_blank\">\n You can also find the UI icons in Figma for use in mockups.\n </ifx-notification>\n </div>\n <div class=\"snippet__wrapper\">\n <div class=\"search__wrapper\">\n <ifx-search-field id=\"search__field\" size=\"m\" show-delete-icon=\"true\" value=\"\" autocomplete=\"on\" placeholder=\"Search icon\"></ifx-search-field>\n </div>\n <div class='html-wrapper'>\n <span class=\"html-tag\">&lt;</span>\n <span class=\"component-name\">ifx-icon</span>\n <span class=\"attribute-name\"> icon</span>=<span class=\"attribute-value\">{this.iconName}</span>\n <span class=\"html-tag\">&gt;</span>\n <span class=\"html-tag\">&lt;/</span>\n <span class=\"component-name\">ifx-icon</span>\n <span class=\"html-tag\">&gt;</span>\n <button onClick={() => this.copyHtmlString()}>{this.isCopied ? 'Copied' : 'Copy'}</button>\n </div>\n </div>\n <div class=\"preview__container\">\n {this.filteredIcons.map((icon) => (\n <div \n key={icon}\n class={`preview__container-item ${\n this.isCopied && this.copiedIcon === icon ? 'copied' : \"\"\n }`} \n onClick={() => this.copyIconText(icon)}\n >\n <ifx-icon icon={icon}></ifx-icon>\n </div>\n ))}\n {this.filteredIcons.length === 0 && (\n <div class=\"no-results\">No icons found matching \"{this.searchTerm}\"</div>\n )}\n </div>\n </div>\n )\n }\n}"],"version":3}
@@ -24,8 +24,8 @@ const Indicator = class {
24
24
  this.handleNumber();
25
25
  }
26
26
  render() {
27
- return (index.h("div", { key: 'd5990eba87822345236d9fbe47c882e205b1ec5f', "aria-label": this.ariaLabel, class: 'indicator__container' }, this.variant === 'number' &&
28
- index.h("div", { key: '3a00aed3a5061e233420ec4fa8dfbce1c62e6f92', class: `number__container ${this.inverted ? 'inverted' : ""}` }, index.h("div", { key: 'a1c61453d1d4eaa38f78ef839a4a9ba0c1cfe812', class: "number__wrapper" }, this.filteredNumber)), this.variant === 'dot' && index.h("div", { key: '4ab45b177a45afda00886b77ae101299c134d201', class: "dot__wrapper" })));
27
+ return (index.h("div", { key: '38dd6e80e8950d4b8fa1062cb2276c6a9214809e', "aria-label": this.ariaLabel, class: 'indicator__container' }, this.variant === 'number' &&
28
+ index.h("div", { key: '419f38192a6fdaf19e3c71108a01d0170239cecd', class: `number__container ${this.inverted ? 'inverted' : ""}` }, index.h("div", { key: '40a78fd803c313a5e8be4101c428f70a5d336ec8', class: "number__wrapper" }, this.filteredNumber)), this.variant === 'dot' && index.h("div", { key: 'dbbf946c8aa56c26e7a4da8d5e2320ccf1cb0c0b', class: "dot__wrapper" })));
29
29
  }
30
30
  get el() { return index.getElement(this); }
31
31
  };
@@ -41,7 +41,7 @@ const Link = class {
41
41
  }
42
42
  }
43
43
  render() {
44
- return (index.h("a", { key: '2897df5640a0bcc1c032f1329b53636a1567e6aa', role: "link", "aria-label": this.ariaLabel, "aria-disabled": this.disabled || !this.internalHref, href: this.disabled ? undefined : this.internalHref, download: this.download, target: this.internalTarget, class: this.linkClassNames() }, index.h("slot", { key: '35b879c6940b9211d07c1cc043d61da45f2a3035' })));
44
+ return (index.h("a", { key: 'f9fa681a791a4184c448d7072425c014a83020bd', role: "link", "aria-label": this.ariaLabel, "aria-disabled": this.disabled || !this.internalHref, href: this.disabled ? undefined : this.internalHref, download: this.download, target: this.internalTarget, class: this.linkClassNames() }, index.h("slot", { key: '2e6a023c4693eedfa03e8440e5e62e76386ec2ef' })));
45
45
  }
46
46
  getSizeClass() {
47
47
  const small = this.size === 's' ? 'small' : null;
@@ -25,7 +25,7 @@ const ListEntry = class {
25
25
  this.ifxListEntryChange.emit({ label: this.label, value: this.value, type: this.type });
26
26
  }
27
27
  render() {
28
- return (index.h("div", { key: 'd3e8cf091f71dc4e2fb56230a807712bc6012dc3', class: "wrapper" }, this.type === 'checkbox' ? (index.h("div", { class: "list-entry" }, index.h("ifx-checkbox", { size: "s", checked: this.value }, this.label))) : (index.h("div", { class: "list-entry" }, index.h("ifx-radio-button", { size: "s", checked: this.value }, this.label)))));
28
+ return (index.h("div", { key: '98a28e98105de08df0c165f4786ee9cea56d7784', class: "wrapper" }, this.type === 'checkbox' ? (index.h("div", { class: "list-entry" }, index.h("ifx-checkbox", { size: "s", checked: this.value }, this.label))) : (index.h("div", { class: "list-entry" }, index.h("ifx-radio-button", { size: "s", checked: this.value }, this.label)))));
29
29
  }
30
30
  get host() { return index.getElement(this); }
31
31
  static get watchers() { return {
@@ -311,15 +311,20 @@ const IfxModal = class {
311
311
  }
312
312
  }
313
313
  isModalContentContainerHeightReachedViewport() {
314
- const modalContent = this.hostElement.shadowRoot.querySelector('.modal-content');
315
- const viewportHeight = window.innerHeight;
316
- const modalContentHeight = modalContent.offsetHeight;
317
- return modalContentHeight >= viewportHeight * 0.9;
314
+ //Adding timeout for proper height detection on Edge browser
315
+ return new Promise(resolve => {
316
+ setTimeout(() => {
317
+ const modalContent = this.hostElement.shadowRoot.querySelector('.modal-content');
318
+ const modalContentHeight = modalContent.offsetHeight;
319
+ const viewportHeight = window.innerHeight;
320
+ resolve(modalContentHeight >= viewportHeight * 0.9);
321
+ }, 100);
322
+ });
318
323
  }
319
324
  render() {
320
325
  const isAlertVariant = this.variant !== 'default';
321
- return (index.h(index.Host, { key: '17d6875b06e84d97c5ec5fe406b067e3b8a89cfd' }, index.h("div", { key: 'bf3ac7d192d52b00338cc51df4223666ec6f3a6f', ref: (el) => (this.modalContainer = el), class: `modal-container ${this.showModal ? 'open' : ''}` }, index.h("div", { key: 'ae9ea60511ef423e02503f26aa60de0cda68ef0b', class: "modal-overlay", onClick: () => this.handleOverlayClick() }), index.h("div", { key: '8cec672cb52dcec16d1b573af9a804814d8bd721', "data-focus-trap-edge": true, onFocus: this.handleTopFocus, tabindex: "0" }), index.h("div", { key: 'af2862cf1cf750311c7db8fa52cce02e8dafb579', class: `modal-content-container ${this.size}`, role: "dialog", "aria-modal": "true", "aria-label": this.caption }, isAlertVariant ? (index.h("div", { class: `modal-icon-container ${this.variant === 'alert-brand' ? '' : 'danger'}` }, this.alertIcon ? index.h("ifx-icon", { icon: this.alertIcon }) : null)) : null, index.h("div", { key: '28eb3b25740e198f4a821dd08972cb8a32af251d', class: "modal-content" }, index.h("div", { key: 'c6c7c7a33a2c54f80d84974f291da77bda1e9b32', class: "modal-header" }, index.h("h2", { key: 'd83f94c594402ab62a7df3eaa5066ba6db5ce7a4', class: "modal-caption" }, this.caption), this.showCloseButton &&
322
- index.h("ifx-icon-button", { key: '9136aa70370ea024595dd38b4aed244e6f4d2e92', class: 'modal-close-button', ref: (el) => (this.closeButton = el), icon: "cross-16", variant: "tertiary", onClick: () => this.doBeforeClose('CLOSE_BUTTON') })), index.h("div", { key: '025c4ba66b524990994c3d282dad0ad8ef9fa025', class: "modal-body" }, index.h("slot", { key: 'ee6c23a794022df9377f024225a73021a5b20833', name: "content", onSlotchange: (e) => this.handleContentUpdate(e) })), index.h("div", { key: '5b3c1db9daf678a9c0f49bde2ee6634bde4d27b0', class: `modal-footer ${this.slotButtonsPresent ? 'buttons-present' : ''}` }, index.h("slot", { key: 'ac84e7c3598ff81944b8413ddd67b0d9202998c2', name: "buttons", onSlotchange: (e) => this.handleButtonsSlotChange(e) })))), index.h("div", { key: 'eaaceffa354b1b17554881687c99643f3ff3c701', "data-focus-trap-edge": true, onFocus: this.handleBottomFocus, tabindex: "0" }))));
326
+ return (index.h(index.Host, { key: 'fb6bc415247be8eec46bebe51f26c7bc71a5b010' }, index.h("div", { key: 'cfabe9bf352ca821f99714603a86b2cc25874af1', ref: (el) => (this.modalContainer = el), class: `modal-container ${this.showModal ? 'open' : ''}` }, index.h("div", { key: '6d22eecd23e6a6017e30afa0cb0372c6518ff9ec', class: "modal-overlay", onClick: () => this.handleOverlayClick() }), index.h("div", { key: '8ee13636de9b591bf7b15aa033ef158fcd70ab57', "data-focus-trap-edge": true, onFocus: this.handleTopFocus, tabindex: "0" }), index.h("div", { key: '62a1b4e9c98f6e51936bc9af14464038b0c16639', class: `modal-content-container ${this.size}`, role: "dialog", "aria-modal": "true", "aria-label": this.caption }, isAlertVariant ? (index.h("div", { class: `modal-icon-container ${this.variant === 'alert-brand' ? '' : 'danger'}` }, this.alertIcon ? index.h("ifx-icon", { icon: this.alertIcon }) : null)) : null, index.h("div", { key: '699217ea2e1d414ad68939334cd078aa711fe472', class: "modal-content" }, index.h("div", { key: 'ab02f75a7b5c2befb1509731b289c4e76f7e3f3e', class: "modal-header" }, index.h("h2", { key: '9b1adec6e486f5f03bd369709669c22bbddf3922', class: "modal-caption" }, this.caption), this.showCloseButton &&
327
+ index.h("ifx-icon-button", { key: '8edae1ae2e3ddf2517d52682fcc1ae3247b5e1e5', class: 'modal-close-button', ref: (el) => (this.closeButton = el), icon: "cross-16", variant: "tertiary", onClick: () => this.doBeforeClose('CLOSE_BUTTON') })), index.h("div", { key: '62f9c425009b5498b5301a7fc6c5490d7401086c', class: "modal-body" }, index.h("slot", { key: 'fb1494da685e6b0986ef660a9e94dfb8b43a7a48', name: "content", onSlotchange: (e) => this.handleContentUpdate(e) })), index.h("div", { key: '3b427fe2debc1e2bea474982dfff079afdd6dfcc', class: `modal-footer ${this.slotButtonsPresent ? 'buttons-present' : ''}` }, index.h("slot", { key: 'b0874a1766cfde0f0ccb5f1ebbec6e753dfeb2f0', name: "buttons", onSlotchange: (e) => this.handleButtonsSlotChange(e) })))), index.h("div", { key: '8b376a945b278faf81f9f3d1117cd01e3d11c8b5', "data-focus-trap-edge": true, onFocus: this.handleBottomFocus, tabindex: "0" }))));
323
328
  }
324
329
  get hostElement() { return index.getElement(this); }
325
330
  static get watchers() { return {
@@ -1 +1 @@
1
- {"file":"ifx-modal.entry.cjs.js","mappings":"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","names":["h","Host"],"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); // tokens.$ifxFontFamilyBody;\n\n\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 \n //overflow: hidden;\n\n box-sizing: border-box;\n align-items: stretch;\n}\n\n.modal-content-container {\n &.no-overflow { \n overflow: hidden;\n & .modal-body { \n overflow-y: auto;\n }\n }\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 \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() ifxOpen: EventEmitter;\n @Event() ifxClose: 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 componentWillRender() { \n if(this.showModal) { \n this.handleComponentOverflow();\n }\n }\n\n handleComponentOverflow() { \n const modalContentContainer = this.hostElement.shadowRoot.querySelector('.modal-content-container');\n if (this.showModal && this.isModalContentContainerHeightReachedViewport()) {\n modalContentContainer.classList.add('no-overflow')\n } else if(modalContentContainer?.classList.contains('no-overflow')) { \n modalContentContainer?.classList.remove('no-overflow')\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 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 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.ifxOpen.emit();\n });\n\n this.hostElement.addEventListener('keydown', this.handleKeypress);\n } catch (err) {\n this.ifxOpen.emit();\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.ifxClose.emit();\n });\n this.hostElement.removeEventListener('keydown', this.handleKeypress);\n } catch (err) {\n this.showModal = false;\n this.ifxClose.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 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 @Watch('opened')\n openedChanged(newValue) {\n if (newValue === true) {\n this.open();\n } else {\n this.close()\n }\n }\n\n handleOverlayClick() {\n if (this.closeOnOverlayClick) {\n this.doBeforeClose('BACKDROP')\n }\n }\n\n handleContentUpdate(e) {\n const slotElement = e.target;\n const nodes = slotElement.assignedNodes();\n if(nodes.length > 0) {\n nodes.forEach(node => {\n if (node.observer) {\n node.observer.disconnect();\n delete node.observer;\n }\n const observer = new MutationObserver((mutationsList, _) => {\n for(let mutation of mutationsList) {\n if (mutation.type === 'childList') {\n if(this.showModal) { \n this.handleComponentOverflow();\n }\n }\n }\n });\n observer.observe(node, { attributes: true, childList: true, subtree: true });\n node.observer = observer;\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 isModalContentContainerHeightReachedViewport() {\n const modalContent = this.hostElement.shadowRoot.querySelector('.modal-content') as HTMLElement;\n const viewportHeight = window.innerHeight;\n const modalContentHeight = modalContent.offsetHeight;\n return modalContentHeight >= viewportHeight * 0.9;\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-16\" variant=\"tertiary\" onClick={() => this.doBeforeClose('CLOSE_BUTTON') }>\n </ifx-icon-button>\n }\n </div>\n <div class=\"modal-body\">\n <slot name=\"content\" onSlotchange={(e) => this.handleContentUpdate(e)} />\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.cjs.js","mappings":"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","names":["h","Host"],"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); // tokens.$ifxFontFamilyBody;\n\n\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 \n //overflow: hidden;\n\n box-sizing: border-box;\n align-items: stretch;\n}\n\n.modal-content-container {\n &.no-overflow { \n overflow: hidden;\n & .modal-body { \n overflow-y: auto;\n }\n }\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 \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() ifxOpen: EventEmitter;\n @Event() ifxClose: 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 componentWillRender() { \n if(this.showModal) { \n this.handleComponentOverflow();\n }\n }\n\n handleComponentOverflow() { \n const modalContentContainer = this.hostElement.shadowRoot.querySelector('.modal-content-container');\n if (this.showModal && this.isModalContentContainerHeightReachedViewport()) {\n modalContentContainer.classList.add('no-overflow')\n } else if(modalContentContainer?.classList.contains('no-overflow')) { \n modalContentContainer?.classList.remove('no-overflow')\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 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 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.ifxOpen.emit();\n });\n\n this.hostElement.addEventListener('keydown', this.handleKeypress);\n } catch (err) {\n this.ifxOpen.emit();\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.ifxClose.emit();\n });\n this.hostElement.removeEventListener('keydown', this.handleKeypress);\n } catch (err) {\n this.showModal = false;\n this.ifxClose.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 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 @Watch('opened')\n openedChanged(newValue) {\n if (newValue === true) {\n this.open();\n } else {\n this.close()\n }\n }\n\n handleOverlayClick() {\n if (this.closeOnOverlayClick) {\n this.doBeforeClose('BACKDROP')\n }\n }\n\n handleContentUpdate(e) {\n const slotElement = e.target;\n const nodes = slotElement.assignedNodes();\n if(nodes.length > 0) {\n nodes.forEach(node => {\n if (node.observer) {\n node.observer.disconnect();\n delete node.observer;\n }\n const observer = new MutationObserver((mutationsList, _) => {\n for(let mutation of mutationsList) {\n if (mutation.type === 'childList') {\n if(this.showModal) { \n this.handleComponentOverflow();\n }\n }\n }\n });\n observer.observe(node, { attributes: true, childList: true, subtree: true });\n node.observer = observer;\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 isModalContentContainerHeightReachedViewport() {\n //Adding timeout for proper height detection on Edge browser\n return new Promise(resolve => {\n setTimeout(() => {\n const modalContent = this.hostElement.shadowRoot.querySelector('.modal-content') as HTMLElement;\n const modalContentHeight = modalContent.offsetHeight;\n const viewportHeight = window.innerHeight;\n resolve(modalContentHeight >= viewportHeight * 0.9);\n }, 100);\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-16\" variant=\"tertiary\" onClick={() => this.doBeforeClose('CLOSE_BUTTON') }>\n </ifx-icon-button>\n }\n </div>\n <div class=\"modal-body\">\n <slot name=\"content\" onSlotchange={(e) => this.handleContentUpdate(e)} />\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}
@@ -333,14 +333,14 @@ const NavbarItem = class {
333
333
  }
334
334
  }
335
335
  render() {
336
- return (index.h("div", { key: 'e2601a0327ccc31f2451fcc2490191eb582a0016', class: "container", onMouseLeave: e => this.handleNestedLayerMenu(e), onMouseEnter: e => this.handleNestedLayerMenu(e) }, index.h("div", { key: '3ec0353eb436ea0adc828f56b508624f525264ec', class: "sub__layer-back-button" }, index.h("div", { key: '39284ea8b7f17a83084f948c7ea3b12c1d2fac2a', class: "back__button-wrapper", onClick: () => this.returnToFirstLayer() }, index.h("ifx-icon", { key: '2d6e46c606579b12ba9680039e2f88c5dc31a4eb', icon: "arrow-left-16" }), index.h("span", { key: 'a5fd3d1d8551b6be567f608568b97ca2c4c5348e' }, "Back"))), index.h("a", { key: 'fea66a4b956ec1671a7e9fcf7441a5bf676a200e', href: this.internalHref, target: this.target, onClick: () => this.toggleItemMenu(), class: `navbar__item ${this.isSidebarMenuItem ? 'sidebarMenuItem' : ""} ${!this.showLabel ? 'removeLabel' : ""} ${this.isMenuItem ? 'menuItem' : ""} ${this.hasChildNavItems ? 'isParent' : ""}` }, index.h("div", { key: '29e17c7b770251a917a4c84c08fa013693d22a60', class: "inner__content-wrapper" }, index.h("div", { key: '5e35323bc544eeacdf08d985fc59dfccbf5d17f7', class: `navbar__container-right-content-navigation-item-icon-wrapper ${!this.icon ? "removeWrapper" : ""}` }, this.icon && index.h("ifx-icon", { key: '7572d24b3f914d43f98ff551de9a27d323a2a791', icon: this.icon }), this.icon && !this.showLabel && !isNaN(this.numberIndicator) &&
337
- index.h("div", { key: '93a14b1b3ecec23fbed6c57295eceb42bf71f729', class: "number__indicator-wrapper" }, index.h("ifx-indicator", { key: '8d199195005806e77a66610619ea4941999e6b04', variant: "number", number: this.numberIndicator })), this.icon && !this.showLabel && !this.numberIndicator && this.dotIndicator &&
338
- index.h("div", { key: 'ca4d41d281c7d812ffd79d2ecebf98206509c11e', class: "dot__indicator-wrapper" })), this.itemPosition === 'left'
336
+ return (index.h("div", { key: 'b280f35c54c022d2680e2bccc7046c5571f2e2f6', class: "container", onMouseLeave: e => this.handleNestedLayerMenu(e), onMouseEnter: e => this.handleNestedLayerMenu(e) }, index.h("div", { key: '129062da312350e199f41f810542fd37b2ce9229', class: "sub__layer-back-button" }, index.h("div", { key: 'cd10e6862f6c70a535fc5e03f9737906b130c958', class: "back__button-wrapper", onClick: () => this.returnToFirstLayer() }, index.h("ifx-icon", { key: '7f70ad46568b16d5ae20751d812a43db83c9c4f4', icon: "arrow-left-16" }), index.h("span", { key: 'e0b336725a290ab00de4a2e2839be56e541294d4' }, "Back"))), index.h("a", { key: '3f792a8341842d59a21fd7c0d802aa605ca13c31', href: this.internalHref, target: this.target, onClick: () => this.toggleItemMenu(), class: `navbar__item ${this.isSidebarMenuItem ? 'sidebarMenuItem' : ""} ${!this.showLabel ? 'removeLabel' : ""} ${this.isMenuItem ? 'menuItem' : ""} ${this.hasChildNavItems ? 'isParent' : ""}` }, index.h("div", { key: '795fc779af0e47c25795a44c33a7394c4932586c', class: "inner__content-wrapper" }, index.h("div", { key: '1dc71a167a93de0907ff57fcef942f64ea64d368', class: `navbar__container-right-content-navigation-item-icon-wrapper ${!this.icon ? "removeWrapper" : ""}` }, this.icon && index.h("ifx-icon", { key: '8ef39bc62d393d591f9a506cf1cc92ec07a9c62b', icon: this.icon }), this.icon && !this.showLabel && !isNaN(this.numberIndicator) &&
337
+ index.h("div", { key: '1e2f95b3a239b62d791455ebbfc4bd9eac52b99d', class: "number__indicator-wrapper" }, index.h("ifx-indicator", { key: 'b40f98051f3e788fd7f22704fbc8d8e114346fc2', variant: "number", number: this.numberIndicator })), this.icon && !this.showLabel && !this.numberIndicator && this.dotIndicator &&
338
+ index.h("div", { key: '88b20e85b1279986cac793885aa09f7184e4bd2a', class: "dot__indicator-wrapper" })), this.itemPosition === 'left'
339
339
  && this.hasChildNavItems
340
340
  && this.isMenuItem &&
341
- index.h("div", { key: '112b20051b5ffab13d9d0c0bcd66a1828735a5e2', class: "menuItemLeftIconWrapper" }, index.h("ifx-icon", { key: '0294d7fa95431d7485807ab9825de32cb7cc1c96', icon: "chevron-left-16" })), index.h("span", { key: '45eb2664782d473678ffdf1ffd243d18bf721d1b', class: "label__wrapper" }, index.h("slot", { key: 'c3fdf303fb5eb539c64a6c1f8905f773e184efe8' }))), this.showLabel && this.numberIndicator && !isNaN(this.numberIndicator) ?
341
+ index.h("div", { key: '94a55a0201cf25943261ec383586ccce40bebb43', class: "menuItemLeftIconWrapper" }, index.h("ifx-icon", { key: '4ead2adf20c4e16916ca0fc1f444423c933a47f0', icon: "chevron-left-16" })), index.h("span", { key: '8c8fba4d242992d93cf79a9c0faa2a00ea0c65e5', class: "label__wrapper" }, index.h("slot", { key: '3be7349f19527cb51b676af4f9b0cba0cb52cafe' }))), this.showLabel && this.numberIndicator && !isNaN(this.numberIndicator) ?
342
342
  index.h("div", { class: "number__indicator-wrapper" }, index.h("ifx-indicator", { variant: "number", number: this.numberIndicator })) : "", this.showLabel && !this.numberIndicator && this.dotIndicator ?
343
- index.h("ifx-indicator", { variant: "dot" }) : "", index.h("div", { key: '62555991fa617ac0dddaa347086245214da42a68', class: `navItemIconWrapper ${this.hasChildNavItems && !this.isMenuItem && !this.isSidebarMenuItem ? '' : "hide"}` }, index.h("ifx-icon", { key: '788a12f3719f1c4f43d1532dcca232867b5cbe91', icon: "chevron-down-16" })), index.h("div", { key: '68d2677b612fb670930c41b5e22c3b7521ecf07a', class: `menuItemRightIconWrapper ${((this.itemPosition === 'right' && this.hasChildNavItems && this.isMenuItem) || (this.isSidebarMenuItem && this.hasChildNavItems)) ? '' : "hide"}` }, index.h("ifx-icon", { key: '9caf7fcdfc151e631daa735c26fbd0e51ac89a95', icon: "chevron-right-16" }))), this.hasChildNavItems && !this.isSidebarMenuItem && index.h("ul", { key: '7f86354e5c3db42d1d2a6ca3227fce444ca8b1e1', class: 'navbar-menu' }, " ", index.h("slot", { key: '6dd2300504349618730ccf50c133b97d9d7e6993', name: "first__layer" }), " "), this.isSidebarMenuItem && index.h("ul", { key: '0035b465e812546856240dea531d4a0e4d443ec0', class: 'sub__layer-menu' }, " ", index.h("slot", { key: 'b61eeb9d819b6691d1c3cfa99b27b304d612dd0f', name: "second__layer" }), " ")));
343
+ index.h("ifx-indicator", { variant: "dot" }) : "", index.h("div", { key: 'f80a901e2e6e50027be24433a57e64868be1f598', class: `navItemIconWrapper ${this.hasChildNavItems && !this.isMenuItem && !this.isSidebarMenuItem ? '' : "hide"}` }, index.h("ifx-icon", { key: '812c7912ff752c681bf8202abb73dc7486f3787d', icon: "chevron-down-16" })), index.h("div", { key: 'fe9dd2e1f44831edccf16e30dab7606d2dcc291a', class: `menuItemRightIconWrapper ${((this.itemPosition === 'right' && this.hasChildNavItems && this.isMenuItem) || (this.isSidebarMenuItem && this.hasChildNavItems)) ? '' : "hide"}` }, index.h("ifx-icon", { key: '659a72a598e5bac8ffac63536c59262da396a83e', icon: "chevron-right-16" }))), this.hasChildNavItems && !this.isSidebarMenuItem && index.h("ul", { key: '0f793dae80d8777b3b678749c5a1db424845529a', class: 'navbar-menu' }, " ", index.h("slot", { key: 'facfe5d4e204b0ab9f39acb959f411ee4f7ea9e2', name: "first__layer" }), " "), this.isSidebarMenuItem && index.h("ul", { key: 'ebd2675911badc717e500795fa6b8e4a87e5c1ce', class: 'sub__layer-menu' }, " ", index.h("slot", { key: '301f078486b698d2f5b27990db6cb0b178c32bb9', name: "second__layer" }), " ")));
344
344
  }
345
345
  get el() { return index.getElement(this); }
346
346
  };
@@ -158,9 +158,9 @@ const NavbarProfile = class {
158
158
  }
159
159
  }
160
160
  render() {
161
- return (index.h("div", { key: 'e2ff46a8b617a21014374771815562729cbb767a', class: "container" }, index.h("a", { key: '211198dc2152321998f7d50ffec394101ee7c4b6', href: this.internalHref, target: this.target, onClick: () => this.toggleItemMenu(), class: `navbar__item ${!this.showLabel ? 'removeLabel' : ""} ${this.hasChildNavItems ? 'isParent' : ""}` }, index.h("div", { key: '458d702dc49a119b8ce66e2475f1a14124c3b65a', class: "inner__content-wrapper" }, index.h("div", { key: '0d2a7aa856129d7e97ab7fc46cc051c1263cde14', class: `navbar__container-right-content-navigation-item-icon-wrapper` }, this.userName.trim() !== "" && index.h("div", { key: 'de53dd0ef7e401da7cb8960934430d87df6e45ae', class: 'username__tooltip' }, this.userName), this.internalImageUrl.type !== 'initials' &&
162
- index.h("img", { key: 'db610509513b7f5e8088e159de25978bbbd8a484', src: this.internalImageUrl.type === 'url' ? this.internalImageUrl.value : `data:image/svg+xml,${encodeURIComponent(this.defaultProfileImage)}`, alt: this.alt }), this.internalImageUrl.type === 'initials' &&
163
- index.h("div", { key: '004b8ee0d4e917b0526695dadfdb45017e7a7796', class: "initials__wrapper" }, index.h("span", { key: '9cd8dd710240053cbc782ffdb6a5330a21f8fbc7', class: "initials" }, this.internalImageUrl.value))), index.h("span", { key: '35b67f66c89205128e5eeff512a29a7fc635bf7b', class: "label__wrapper" }, index.h("slot", { key: 'c4ca3de67675606286a61623a35de9fce4b1199e', onSlotchange: () => this.setProfileGap() })))), this.hasChildNavItems && index.h("ul", { key: '7a6e73dd73698c1d04e3e13dd58b91bf431e1b0a', class: 'navbar-menu rightSideItemMenu' }, " ", index.h("slot", { key: '7ccdd3bf27954a619f06e0a4a660fca68be44a09', name: "first__layer" }), " ")));
161
+ return (index.h("div", { key: '8ecc7a4bfb1f0567c36f7feb7871071795442e46', class: "container" }, index.h("a", { key: '72ee8139fcd89ff4f942e48106007e0e405c6848', href: this.internalHref, target: this.target, onClick: () => this.toggleItemMenu(), class: `navbar__item ${!this.showLabel ? 'removeLabel' : ""} ${this.hasChildNavItems ? 'isParent' : ""}` }, index.h("div", { key: '52a4b16952c82671c9baf03985639c3abf87cd10', class: "inner__content-wrapper" }, index.h("div", { key: 'd0690e50912aad27e734126151b497ab6a97ea53', class: `navbar__container-right-content-navigation-item-icon-wrapper` }, this.userName.trim() !== "" && index.h("div", { key: '4bf55d1b2c612cf077d0a8be069460aa10bae990', class: 'username__tooltip' }, this.userName), this.internalImageUrl.type !== 'initials' &&
162
+ index.h("img", { key: 'b1347b123a5dd8d13e368f0662891bb06fa7e375', src: this.internalImageUrl.type === 'url' ? this.internalImageUrl.value : `data:image/svg+xml,${encodeURIComponent(this.defaultProfileImage)}`, alt: this.alt }), this.internalImageUrl.type === 'initials' &&
163
+ index.h("div", { key: 'cc0dce453c29e2e6b7323e8c5f89aba9d233a933', class: "initials__wrapper" }, index.h("span", { key: 'e14fda7b01a57332292a760726c7187b2f0b1506', class: "initials" }, this.internalImageUrl.value))), index.h("span", { key: '480d5c605421eb1e0150c805a61f7b4ff9141d9d', class: "label__wrapper" }, index.h("slot", { key: '99167bd48bc34154101445e91bbe4b20e862bf6f', onSlotchange: () => this.setProfileGap() })))), this.hasChildNavItems && index.h("ul", { key: '2b3826ea51c4967999fe536139c739d597e4079a', class: 'navbar-menu rightSideItemMenu' }, " ", index.h("slot", { key: '499f9a61dfff2d1016c8da8145f6e671fdbe3b28', name: "first__layer" }), " ")));
164
164
  }
165
165
  static get assetsDirs() { return ["assets"]; }
166
166
  get el() { return index.getElement(this); }