@infineon/infineon-design-system-stencil 31.0.0 → 31.0.1--canary.1496.8c737dd1d967a94232501b111e63ebeb3fc3923f.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 (363) hide show
  1. package/dist/cjs/ifx-accordion_2.cjs.entry.js +1 -1
  2. package/dist/cjs/ifx-alert_2.cjs.entry.js +195 -0
  3. package/dist/cjs/ifx-alert_2.cjs.entry.js.map +1 -0
  4. package/dist/cjs/ifx-badge.cjs.entry.js +1 -1
  5. package/dist/cjs/ifx-basic-table.cjs.entry.js +1 -1
  6. package/dist/cjs/ifx-breadcrumb-item-label.cjs.entry.js +1 -1
  7. package/dist/cjs/ifx-breadcrumb-item.cjs.entry.js +1 -1
  8. package/dist/cjs/ifx-breadcrumb.cjs.entry.js +1 -1
  9. package/dist/cjs/ifx-button.cjs.entry.js +1 -1
  10. package/dist/cjs/ifx-card-headline.cjs.entry.js +1 -1
  11. package/dist/cjs/ifx-card-image.cjs.entry.js +1 -1
  12. package/dist/cjs/ifx-card-links.cjs.entry.js +1 -1
  13. package/dist/cjs/ifx-card-overline.cjs.entry.js +1 -1
  14. package/dist/cjs/ifx-card-text.cjs.entry.js +1 -1
  15. package/dist/cjs/ifx-card.cjs.entry.js +1 -1
  16. package/dist/cjs/ifx-checkbox.cjs.entry.js +1 -1
  17. package/dist/cjs/ifx-chip_3.cjs.entry.js +1 -1
  18. package/dist/cjs/ifx-content-switcher-item.cjs.entry.js +1 -1
  19. package/dist/cjs/ifx-content-switcher.cjs.entry.js +1 -1
  20. package/dist/cjs/ifx-date-picker.cjs.entry.js +1 -1
  21. package/dist/cjs/ifx-dropdown-header.cjs.entry.js +1 -1
  22. package/dist/cjs/ifx-dropdown-item.cjs.entry.js +1 -1
  23. package/dist/cjs/ifx-dropdown-menu.cjs.entry.js +1 -1
  24. package/dist/cjs/ifx-dropdown-separator.cjs.entry.js +1 -1
  25. package/dist/cjs/ifx-dropdown-trigger-button.cjs.entry.js +1 -1
  26. package/dist/cjs/ifx-dropdown-trigger.cjs.entry.js +1 -1
  27. package/dist/cjs/ifx-dropdown.cjs.entry.js +1 -1
  28. package/dist/cjs/ifx-faq.cjs.entry.js +2 -2
  29. package/dist/cjs/ifx-filter-accordion.cjs.entry.js +1 -1
  30. package/dist/cjs/ifx-filter-bar.cjs.entry.js +1 -1
  31. package/dist/cjs/ifx-filter-search.cjs.entry.js +1 -1
  32. package/dist/cjs/ifx-filter-type-group.cjs.entry.js +1 -1
  33. package/dist/cjs/ifx-footer-column.cjs.entry.js +1 -1
  34. package/dist/cjs/ifx-footer.cjs.entry.js +1 -1
  35. package/dist/cjs/ifx-icon-button.cjs.entry.js +1 -1
  36. package/dist/cjs/ifx-icon.cjs.entry.js +1 -1
  37. package/dist/cjs/ifx-icons-preview.cjs.entry.js +1 -1
  38. package/dist/cjs/ifx-link.cjs.entry.js +1 -1
  39. package/dist/cjs/ifx-list-entry.cjs.entry.js +1 -1
  40. package/dist/cjs/ifx-list.cjs.entry.js +1 -1
  41. package/dist/cjs/ifx-modal.cjs.entry.js +1 -1
  42. package/dist/cjs/{ifx-multiselect_2.cjs.entry.js → ifx-multiselect.cjs.entry.js} +2 -69
  43. package/dist/cjs/ifx-multiselect.cjs.entry.js.map +1 -0
  44. package/dist/cjs/ifx-navbar-item.cjs.entry.js +1 -1
  45. package/dist/cjs/ifx-navbar-profile.cjs.entry.js +1 -1
  46. package/dist/cjs/ifx-navbar.cjs.entry.js +1 -1
  47. package/dist/cjs/ifx-notification.cjs.entry.js +1 -1
  48. package/dist/cjs/ifx-number-indicator.cjs.entry.js +1 -1
  49. package/dist/cjs/ifx-overview-table.cjs.entry.js +1 -1
  50. package/dist/cjs/ifx-progress-bar.cjs.entry.js +1 -1
  51. package/dist/cjs/ifx-radio-button.cjs.entry.js +1 -1
  52. package/dist/cjs/ifx-search-bar.cjs.entry.js +1 -1
  53. package/dist/cjs/ifx-search-field.cjs.entry.js +1 -1
  54. package/dist/cjs/ifx-segment.cjs.entry.js +1 -1
  55. package/dist/cjs/ifx-segmented-control.cjs.entry.js +1 -1
  56. package/dist/cjs/ifx-select.cjs.entry.js +1 -1
  57. package/dist/cjs/ifx-set-filter.cjs.entry.js +1 -1
  58. package/dist/cjs/ifx-sidebar-item.cjs.entry.js +1 -1
  59. package/dist/cjs/ifx-sidebar-title.cjs.entry.js +1 -1
  60. package/dist/cjs/ifx-sidebar.cjs.entry.js +1 -1
  61. package/dist/cjs/ifx-slider.cjs.entry.js +1 -1
  62. package/dist/cjs/ifx-spinner_2.cjs.entry.js +100 -0
  63. package/dist/cjs/ifx-spinner_2.cjs.entry.js.map +1 -0
  64. package/dist/cjs/ifx-status.cjs.entry.js +1 -1
  65. package/dist/cjs/ifx-step.cjs.entry.js +1 -1
  66. package/dist/cjs/ifx-stepper.cjs.entry.js +1 -1
  67. package/dist/cjs/ifx-switch.cjs.entry.js +1 -1
  68. package/dist/cjs/ifx-tab.cjs.entry.js +1 -1
  69. package/dist/cjs/ifx-table.cjs.entry.js +1 -1
  70. package/dist/cjs/ifx-tabs.cjs.entry.js +1 -1
  71. package/dist/cjs/ifx-tag.cjs.entry.js +1 -1
  72. package/dist/cjs/ifx-templates-ui.cjs.entry.js +61 -0
  73. package/dist/cjs/ifx-templates-ui.cjs.entry.js.map +1 -0
  74. package/dist/cjs/ifx-textarea.cjs.entry.js +3 -3
  75. package/dist/cjs/ifx-tooltip.cjs.entry.js +5 -5
  76. package/dist/cjs/{index-051c2b85.js → index-1afa6e30.js} +30 -19
  77. package/dist/cjs/index-1afa6e30.js.map +1 -0
  78. package/dist/cjs/infineon-design-system-stencil.cjs.js +2 -2
  79. package/dist/cjs/loader.cjs.js +2 -2
  80. package/dist/collection/collection-manifest.json +2 -0
  81. package/dist/collection/components/templates/template/template.css +76 -0
  82. package/dist/collection/components/templates/template/template.js +263 -0
  83. package/dist/collection/components/templates/template/template.js.map +1 -0
  84. package/dist/collection/components/templates/templates-ui/templates-ui.css +33 -0
  85. package/dist/collection/components/templates/templates-ui/templates-ui.js +75 -0
  86. package/dist/collection/components/templates/templates-ui/templates-ui.js.map +1 -0
  87. package/dist/collection/components/text-field/text-field.js +4 -4
  88. package/dist/collection/components/textarea/textarea.js +2 -2
  89. package/dist/collection/components/tooltip/tooltip.js +4 -4
  90. package/dist/collection/index.js.map +1 -1
  91. package/dist/collection/stories/setup-and-installation/faq/faq.js +1 -1
  92. package/dist/components/ifx-alert.js +1 -66
  93. package/dist/components/ifx-alert.js.map +1 -1
  94. package/dist/components/ifx-faq.js +1 -1
  95. package/dist/components/ifx-set-filter.js +1 -1
  96. package/dist/components/ifx-spinner.js +1 -44
  97. package/dist/components/ifx-spinner.js.map +1 -1
  98. package/dist/components/ifx-template.d.ts +11 -0
  99. package/dist/components/ifx-template.js +8 -0
  100. package/dist/components/ifx-template.js.map +1 -0
  101. package/dist/components/ifx-templates-ui.d.ts +11 -0
  102. package/dist/components/ifx-templates-ui.js +123 -0
  103. package/dist/components/ifx-templates-ui.js.map +1 -0
  104. package/dist/components/ifx-text-field.js +1 -1
  105. package/dist/components/ifx-textarea.js +2 -2
  106. package/dist/components/ifx-tooltip.js +4 -4
  107. package/dist/components/p-5d9615b0.js +207 -0
  108. package/dist/components/p-5d9615b0.js.map +1 -0
  109. package/dist/components/{p-1704ea58.js → p-875ff581.js} +5 -5
  110. package/dist/components/{p-1704ea58.js.map → p-875ff581.js.map} +1 -1
  111. package/dist/{esm/ifx-spinner.entry.js → components/p-b04bbe31.js} +28 -9
  112. package/dist/components/p-b04bbe31.js.map +1 -0
  113. package/dist/{esm/ifx-alert.entry.js → components/p-c25e4109.js} +35 -8
  114. package/dist/components/p-c25e4109.js.map +1 -0
  115. package/dist/esm/ifx-accordion_2.entry.js +1 -1
  116. package/dist/esm/ifx-alert_2.entry.js +190 -0
  117. package/dist/esm/ifx-alert_2.entry.js.map +1 -0
  118. package/dist/esm/ifx-badge.entry.js +1 -1
  119. package/dist/esm/ifx-basic-table.entry.js +1 -1
  120. package/dist/esm/ifx-breadcrumb-item-label.entry.js +1 -1
  121. package/dist/esm/ifx-breadcrumb-item.entry.js +1 -1
  122. package/dist/esm/ifx-breadcrumb.entry.js +1 -1
  123. package/dist/esm/ifx-button.entry.js +1 -1
  124. package/dist/esm/ifx-card-headline.entry.js +1 -1
  125. package/dist/esm/ifx-card-image.entry.js +1 -1
  126. package/dist/esm/ifx-card-links.entry.js +1 -1
  127. package/dist/esm/ifx-card-overline.entry.js +1 -1
  128. package/dist/esm/ifx-card-text.entry.js +1 -1
  129. package/dist/esm/ifx-card.entry.js +1 -1
  130. package/dist/esm/ifx-checkbox.entry.js +1 -1
  131. package/dist/esm/ifx-chip_3.entry.js +1 -1
  132. package/dist/esm/ifx-content-switcher-item.entry.js +1 -1
  133. package/dist/esm/ifx-content-switcher.entry.js +1 -1
  134. package/dist/esm/ifx-date-picker.entry.js +1 -1
  135. package/dist/esm/ifx-dropdown-header.entry.js +1 -1
  136. package/dist/esm/ifx-dropdown-item.entry.js +1 -1
  137. package/dist/esm/ifx-dropdown-menu.entry.js +1 -1
  138. package/dist/esm/ifx-dropdown-separator.entry.js +1 -1
  139. package/dist/esm/ifx-dropdown-trigger-button.entry.js +1 -1
  140. package/dist/esm/ifx-dropdown-trigger.entry.js +1 -1
  141. package/dist/esm/ifx-dropdown.entry.js +1 -1
  142. package/dist/esm/ifx-faq.entry.js +2 -2
  143. package/dist/esm/ifx-filter-accordion.entry.js +1 -1
  144. package/dist/esm/ifx-filter-bar.entry.js +1 -1
  145. package/dist/esm/ifx-filter-search.entry.js +1 -1
  146. package/dist/esm/ifx-filter-type-group.entry.js +1 -1
  147. package/dist/esm/ifx-footer-column.entry.js +1 -1
  148. package/dist/esm/ifx-footer.entry.js +1 -1
  149. package/dist/esm/ifx-icon-button.entry.js +1 -1
  150. package/dist/esm/ifx-icon.entry.js +1 -1
  151. package/dist/esm/ifx-icons-preview.entry.js +1 -1
  152. package/dist/esm/ifx-link.entry.js +1 -1
  153. package/dist/esm/ifx-list-entry.entry.js +1 -1
  154. package/dist/esm/ifx-list.entry.js +1 -1
  155. package/dist/esm/ifx-modal.entry.js +1 -1
  156. package/dist/esm/{ifx-multiselect_2.entry.js → ifx-multiselect.entry.js} +3 -69
  157. package/dist/esm/ifx-multiselect.entry.js.map +1 -0
  158. package/dist/esm/ifx-navbar-item.entry.js +1 -1
  159. package/dist/esm/ifx-navbar-profile.entry.js +1 -1
  160. package/dist/esm/ifx-navbar.entry.js +1 -1
  161. package/dist/esm/ifx-notification.entry.js +1 -1
  162. package/dist/esm/ifx-number-indicator.entry.js +1 -1
  163. package/dist/esm/ifx-overview-table.entry.js +1 -1
  164. package/dist/esm/ifx-progress-bar.entry.js +1 -1
  165. package/dist/esm/ifx-radio-button.entry.js +1 -1
  166. package/dist/esm/ifx-search-bar.entry.js +1 -1
  167. package/dist/esm/ifx-search-field.entry.js +1 -1
  168. package/dist/esm/ifx-segment.entry.js +1 -1
  169. package/dist/esm/ifx-segmented-control.entry.js +1 -1
  170. package/dist/esm/ifx-select.entry.js +1 -1
  171. package/dist/esm/ifx-set-filter.entry.js +1 -1
  172. package/dist/esm/ifx-sidebar-item.entry.js +1 -1
  173. package/dist/esm/ifx-sidebar-title.entry.js +1 -1
  174. package/dist/esm/ifx-sidebar.entry.js +1 -1
  175. package/dist/esm/ifx-slider.entry.js +1 -1
  176. package/dist/esm/ifx-spinner_2.entry.js +95 -0
  177. package/dist/esm/ifx-spinner_2.entry.js.map +1 -0
  178. package/dist/esm/ifx-status.entry.js +1 -1
  179. package/dist/esm/ifx-step.entry.js +1 -1
  180. package/dist/esm/ifx-stepper.entry.js +1 -1
  181. package/dist/esm/ifx-switch.entry.js +1 -1
  182. package/dist/esm/ifx-tab.entry.js +1 -1
  183. package/dist/esm/ifx-table.entry.js +1 -1
  184. package/dist/esm/ifx-tabs.entry.js +1 -1
  185. package/dist/esm/ifx-tag.entry.js +1 -1
  186. package/dist/esm/ifx-templates-ui.entry.js +57 -0
  187. package/dist/esm/ifx-templates-ui.entry.js.map +1 -0
  188. package/dist/esm/ifx-textarea.entry.js +3 -3
  189. package/dist/esm/ifx-tooltip.entry.js +5 -5
  190. package/dist/esm/{index-835fed6c.js → index-adb4dbd9.js} +30 -20
  191. package/dist/esm/index-adb4dbd9.js.map +1 -0
  192. package/dist/esm/infineon-design-system-stencil.js +3 -3
  193. package/dist/esm/loader.js +3 -3
  194. package/dist/infineon-design-system-stencil/infineon-design-system-stencil.esm.js +1 -1
  195. package/dist/infineon-design-system-stencil/infineon-design-system-stencil.esm.js.map +1 -1
  196. package/dist/infineon-design-system-stencil/{p-b78de976.entry.js → p-06b50ff3.entry.js} +2 -2
  197. package/dist/infineon-design-system-stencil/{p-4d315bca.entry.js → p-0a615868.entry.js} +2 -2
  198. package/dist/infineon-design-system-stencil/{p-2cd1bc96.entry.js → p-0ade1663.entry.js} +2 -2
  199. package/dist/infineon-design-system-stencil/{p-8f2cc008.entry.js → p-0d05f879.entry.js} +2 -2
  200. package/dist/infineon-design-system-stencil/{p-35ee2105.entry.js → p-0e190d11.entry.js} +2 -2
  201. package/dist/infineon-design-system-stencil/{p-356db73e.entry.js → p-0ec9c8cc.entry.js} +2 -2
  202. package/dist/infineon-design-system-stencil/{p-095f26a2.entry.js → p-10d7d655.entry.js} +2 -2
  203. package/dist/infineon-design-system-stencil/{p-16023b8a.entry.js → p-11ad5f10.entry.js} +2 -2
  204. package/dist/infineon-design-system-stencil/{p-189d4d1f.entry.js → p-14d26e65.entry.js} +2 -2
  205. package/dist/infineon-design-system-stencil/{p-0b9c7ab7.entry.js → p-17678d4e.entry.js} +2 -2
  206. package/dist/infineon-design-system-stencil/{p-75556b75.entry.js → p-1853d450.entry.js} +2 -2
  207. package/dist/infineon-design-system-stencil/{p-9297efbe.entry.js → p-19e2ffcf.entry.js} +2 -2
  208. package/dist/infineon-design-system-stencil/{p-8cf5d054.entry.js → p-1b8cf86c.entry.js} +2 -2
  209. package/dist/infineon-design-system-stencil/{p-d630716a.entry.js → p-24eb5a94.entry.js} +2 -2
  210. package/dist/infineon-design-system-stencil/{p-59d0f2d9.entry.js → p-27238b0c.entry.js} +2 -2
  211. package/dist/infineon-design-system-stencil/{p-cee407bb.entry.js → p-292da47b.entry.js} +2 -2
  212. package/dist/infineon-design-system-stencil/{p-364bcc43.entry.js → p-2a8944c3.entry.js} +2 -2
  213. package/dist/infineon-design-system-stencil/p-2fd73ad3.entry.js +2 -0
  214. package/dist/infineon-design-system-stencil/p-2fd73ad3.entry.js.map +1 -0
  215. package/dist/infineon-design-system-stencil/{p-54911d95.entry.js → p-3387945d.entry.js} +2 -2
  216. package/dist/infineon-design-system-stencil/p-3604def6.js +3 -0
  217. package/dist/infineon-design-system-stencil/{p-014d2c5a.js.map → p-3604def6.js.map} +1 -1
  218. package/dist/infineon-design-system-stencil/{p-a722dd38.entry.js → p-3fa1bf3a.entry.js} +2 -2
  219. package/dist/infineon-design-system-stencil/{p-3cf45ded.entry.js → p-42234750.entry.js} +2 -2
  220. package/dist/infineon-design-system-stencil/{p-b4ed1b8b.entry.js → p-455b7dd6.entry.js} +2 -2
  221. package/dist/infineon-design-system-stencil/{p-13951b60.entry.js → p-46b6f5a4.entry.js} +2 -2
  222. package/dist/infineon-design-system-stencil/{p-e06dc41b.entry.js → p-4a80433b.entry.js} +2 -2
  223. package/dist/infineon-design-system-stencil/{p-b09a9f07.entry.js → p-4c6b1882.entry.js} +2 -2
  224. package/dist/infineon-design-system-stencil/{p-961b12af.entry.js → p-4c92e69c.entry.js} +2 -2
  225. package/dist/infineon-design-system-stencil/p-575246db.entry.js +2 -0
  226. package/dist/infineon-design-system-stencil/p-575246db.entry.js.map +1 -0
  227. package/dist/infineon-design-system-stencil/p-5876b194.entry.js +2 -0
  228. package/dist/infineon-design-system-stencil/p-5876b194.entry.js.map +1 -0
  229. package/dist/infineon-design-system-stencil/{p-8fc46f6c.entry.js → p-5a43b099.entry.js} +2 -2
  230. package/dist/infineon-design-system-stencil/{p-7415f5bf.entry.js → p-5b3d96f1.entry.js} +2 -2
  231. package/dist/infineon-design-system-stencil/{p-8640d834.entry.js → p-5d7b76b5.entry.js} +2 -2
  232. package/dist/infineon-design-system-stencil/{p-b372fe7d.entry.js → p-6b38715d.entry.js} +2 -2
  233. package/dist/infineon-design-system-stencil/{p-d3051bbf.entry.js → p-6b58ed27.entry.js} +2 -2
  234. package/dist/infineon-design-system-stencil/{p-f86f7020.entry.js → p-6e2634b2.entry.js} +2 -2
  235. package/dist/infineon-design-system-stencil/{p-4c2b5642.entry.js → p-6fc2a56c.entry.js} +2 -2
  236. package/dist/infineon-design-system-stencil/{p-6b61e09e.entry.js → p-7381aae4.entry.js} +2 -2
  237. package/dist/infineon-design-system-stencil/{p-c2ed0a00.entry.js → p-77f46443.entry.js} +2 -2
  238. package/dist/infineon-design-system-stencil/{p-8a349fb4.entry.js → p-7cbf8421.entry.js} +2 -2
  239. package/dist/infineon-design-system-stencil/{p-317304e2.entry.js → p-7cdb5ee4.entry.js} +2 -2
  240. package/dist/infineon-design-system-stencil/{p-c0698c6a.entry.js → p-7ee6173c.entry.js} +2 -2
  241. package/dist/infineon-design-system-stencil/{p-3c0396d6.entry.js → p-7f19e900.entry.js} +2 -2
  242. package/dist/infineon-design-system-stencil/{p-ac4825f2.entry.js → p-80531643.entry.js} +2 -2
  243. package/dist/infineon-design-system-stencil/{p-a4d2a1b0.entry.js → p-8248d8c0.entry.js} +2 -2
  244. package/dist/infineon-design-system-stencil/{p-d2dbc80b.entry.js → p-83feb0a3.entry.js} +2 -2
  245. package/dist/infineon-design-system-stencil/{p-5e954f0b.entry.js → p-8a06f209.entry.js} +2 -2
  246. package/dist/infineon-design-system-stencil/{p-a74a35d2.entry.js → p-9be1b9c8.entry.js} +2 -2
  247. package/dist/infineon-design-system-stencil/{p-56e54271.entry.js → p-a1883884.entry.js} +2 -2
  248. package/dist/infineon-design-system-stencil/{p-f9ca49f1.entry.js → p-a2c1d71b.entry.js} +2 -2
  249. package/dist/infineon-design-system-stencil/{p-1f17cbfe.entry.js → p-a96a529d.entry.js} +2 -2
  250. package/dist/infineon-design-system-stencil/{p-97854fec.entry.js → p-ad2155dc.entry.js} +2 -2
  251. package/dist/infineon-design-system-stencil/{p-e2d80669.entry.js → p-b4f856ec.entry.js} +2 -2
  252. package/dist/infineon-design-system-stencil/{p-8252f9c7.entry.js → p-b51f918f.entry.js} +2 -2
  253. package/dist/infineon-design-system-stencil/{p-1293841a.entry.js → p-b9d7e438.entry.js} +2 -2
  254. package/dist/infineon-design-system-stencil/{p-ea180cce.entry.js → p-c52cc3c2.entry.js} +2 -2
  255. package/dist/infineon-design-system-stencil/{p-9435833d.entry.js → p-c641af6a.entry.js} +2 -2
  256. package/dist/infineon-design-system-stencil/p-cc622212.entry.js +2 -0
  257. package/dist/infineon-design-system-stencil/{p-d0b64bca.entry.js → p-ccd32b01.entry.js} +2 -2
  258. package/dist/infineon-design-system-stencil/{p-8ee88c7e.entry.js → p-cd1a498a.entry.js} +2 -2
  259. package/dist/infineon-design-system-stencil/{p-408c049a.entry.js → p-d23538c4.entry.js} +2 -2
  260. package/dist/infineon-design-system-stencil/{p-3479b38d.entry.js → p-d3388d1e.entry.js} +2 -2
  261. package/dist/infineon-design-system-stencil/{p-afeba5e9.entry.js → p-d4a5b04a.entry.js} +2 -2
  262. package/dist/infineon-design-system-stencil/{p-332a86b5.entry.js → p-d5c652f5.entry.js} +2 -2
  263. package/dist/infineon-design-system-stencil/{p-6d9c1cd0.entry.js → p-dd597610.entry.js} +2 -2
  264. package/dist/infineon-design-system-stencil/{p-0cbb7404.entry.js → p-e1558a3f.entry.js} +2 -2
  265. package/dist/infineon-design-system-stencil/{p-b642a0c9.entry.js → p-e3bd44e5.entry.js} +2 -2
  266. package/dist/infineon-design-system-stencil/p-e403099a.entry.js +2 -0
  267. package/dist/infineon-design-system-stencil/p-e7733535.entry.js +2 -0
  268. package/dist/infineon-design-system-stencil/p-ebc75378.entry.js +2 -0
  269. package/dist/infineon-design-system-stencil/p-ebc75378.entry.js.map +1 -0
  270. package/dist/infineon-design-system-stencil/{p-2ab2c5cf.entry.js → p-ec8e99ff.entry.js} +2 -2
  271. package/dist/infineon-design-system-stencil/{p-e6212e02.entry.js → p-f733c692.entry.js} +2 -2
  272. package/dist/infineon-design-system-stencil/{p-4e07c00d.entry.js → p-f952a1f8.entry.js} +2 -2
  273. package/dist/types/components/templates/template/template.d.ts +33 -0
  274. package/dist/types/components/templates/templates-ui/templates-ui.d.ts +10 -0
  275. package/dist/types/components.d.ts +49 -0
  276. package/package.json +1 -1
  277. package/dist/cjs/ifx-alert.cjs.entry.js +0 -47
  278. package/dist/cjs/ifx-alert.cjs.entry.js.map +0 -1
  279. package/dist/cjs/ifx-multiselect_2.cjs.entry.js.map +0 -1
  280. package/dist/cjs/ifx-spinner.cjs.entry.js +0 -33
  281. package/dist/cjs/ifx-spinner.cjs.entry.js.map +0 -1
  282. package/dist/cjs/index-051c2b85.js.map +0 -1
  283. package/dist/esm/ifx-alert.entry.js.map +0 -1
  284. package/dist/esm/ifx-multiselect_2.entry.js.map +0 -1
  285. package/dist/esm/ifx-spinner.entry.js.map +0 -1
  286. package/dist/esm/index-835fed6c.js.map +0 -1
  287. package/dist/infineon-design-system-stencil/p-014d2c5a.js +0 -3
  288. package/dist/infineon-design-system-stencil/p-114f04b4.entry.js +0 -2
  289. package/dist/infineon-design-system-stencil/p-114f04b4.entry.js.map +0 -1
  290. package/dist/infineon-design-system-stencil/p-40f16247.entry.js +0 -2
  291. package/dist/infineon-design-system-stencil/p-40f16247.entry.js.map +0 -1
  292. package/dist/infineon-design-system-stencil/p-480d7667.entry.js +0 -2
  293. package/dist/infineon-design-system-stencil/p-480d7667.entry.js.map +0 -1
  294. package/dist/infineon-design-system-stencil/p-ef18e376.entry.js +0 -2
  295. package/dist/infineon-design-system-stencil/p-efde6e57.entry.js +0 -2
  296. package/dist/infineon-design-system-stencil/p-f0067aa9.entry.js +0 -2
  297. /package/dist/infineon-design-system-stencil/{p-b78de976.entry.js.map → p-06b50ff3.entry.js.map} +0 -0
  298. /package/dist/infineon-design-system-stencil/{p-4d315bca.entry.js.map → p-0a615868.entry.js.map} +0 -0
  299. /package/dist/infineon-design-system-stencil/{p-2cd1bc96.entry.js.map → p-0ade1663.entry.js.map} +0 -0
  300. /package/dist/infineon-design-system-stencil/{p-8f2cc008.entry.js.map → p-0d05f879.entry.js.map} +0 -0
  301. /package/dist/infineon-design-system-stencil/{p-35ee2105.entry.js.map → p-0e190d11.entry.js.map} +0 -0
  302. /package/dist/infineon-design-system-stencil/{p-356db73e.entry.js.map → p-0ec9c8cc.entry.js.map} +0 -0
  303. /package/dist/infineon-design-system-stencil/{p-095f26a2.entry.js.map → p-10d7d655.entry.js.map} +0 -0
  304. /package/dist/infineon-design-system-stencil/{p-16023b8a.entry.js.map → p-11ad5f10.entry.js.map} +0 -0
  305. /package/dist/infineon-design-system-stencil/{p-189d4d1f.entry.js.map → p-14d26e65.entry.js.map} +0 -0
  306. /package/dist/infineon-design-system-stencil/{p-0b9c7ab7.entry.js.map → p-17678d4e.entry.js.map} +0 -0
  307. /package/dist/infineon-design-system-stencil/{p-75556b75.entry.js.map → p-1853d450.entry.js.map} +0 -0
  308. /package/dist/infineon-design-system-stencil/{p-9297efbe.entry.js.map → p-19e2ffcf.entry.js.map} +0 -0
  309. /package/dist/infineon-design-system-stencil/{p-8cf5d054.entry.js.map → p-1b8cf86c.entry.js.map} +0 -0
  310. /package/dist/infineon-design-system-stencil/{p-d630716a.entry.js.map → p-24eb5a94.entry.js.map} +0 -0
  311. /package/dist/infineon-design-system-stencil/{p-59d0f2d9.entry.js.map → p-27238b0c.entry.js.map} +0 -0
  312. /package/dist/infineon-design-system-stencil/{p-cee407bb.entry.js.map → p-292da47b.entry.js.map} +0 -0
  313. /package/dist/infineon-design-system-stencil/{p-364bcc43.entry.js.map → p-2a8944c3.entry.js.map} +0 -0
  314. /package/dist/infineon-design-system-stencil/{p-54911d95.entry.js.map → p-3387945d.entry.js.map} +0 -0
  315. /package/dist/infineon-design-system-stencil/{p-a722dd38.entry.js.map → p-3fa1bf3a.entry.js.map} +0 -0
  316. /package/dist/infineon-design-system-stencil/{p-3cf45ded.entry.js.map → p-42234750.entry.js.map} +0 -0
  317. /package/dist/infineon-design-system-stencil/{p-b4ed1b8b.entry.js.map → p-455b7dd6.entry.js.map} +0 -0
  318. /package/dist/infineon-design-system-stencil/{p-13951b60.entry.js.map → p-46b6f5a4.entry.js.map} +0 -0
  319. /package/dist/infineon-design-system-stencil/{p-e06dc41b.entry.js.map → p-4a80433b.entry.js.map} +0 -0
  320. /package/dist/infineon-design-system-stencil/{p-b09a9f07.entry.js.map → p-4c6b1882.entry.js.map} +0 -0
  321. /package/dist/infineon-design-system-stencil/{p-961b12af.entry.js.map → p-4c92e69c.entry.js.map} +0 -0
  322. /package/dist/infineon-design-system-stencil/{p-8fc46f6c.entry.js.map → p-5a43b099.entry.js.map} +0 -0
  323. /package/dist/infineon-design-system-stencil/{p-7415f5bf.entry.js.map → p-5b3d96f1.entry.js.map} +0 -0
  324. /package/dist/infineon-design-system-stencil/{p-8640d834.entry.js.map → p-5d7b76b5.entry.js.map} +0 -0
  325. /package/dist/infineon-design-system-stencil/{p-b372fe7d.entry.js.map → p-6b38715d.entry.js.map} +0 -0
  326. /package/dist/infineon-design-system-stencil/{p-d3051bbf.entry.js.map → p-6b58ed27.entry.js.map} +0 -0
  327. /package/dist/infineon-design-system-stencil/{p-f86f7020.entry.js.map → p-6e2634b2.entry.js.map} +0 -0
  328. /package/dist/infineon-design-system-stencil/{p-4c2b5642.entry.js.map → p-6fc2a56c.entry.js.map} +0 -0
  329. /package/dist/infineon-design-system-stencil/{p-6b61e09e.entry.js.map → p-7381aae4.entry.js.map} +0 -0
  330. /package/dist/infineon-design-system-stencil/{p-c2ed0a00.entry.js.map → p-77f46443.entry.js.map} +0 -0
  331. /package/dist/infineon-design-system-stencil/{p-8a349fb4.entry.js.map → p-7cbf8421.entry.js.map} +0 -0
  332. /package/dist/infineon-design-system-stencil/{p-317304e2.entry.js.map → p-7cdb5ee4.entry.js.map} +0 -0
  333. /package/dist/infineon-design-system-stencil/{p-c0698c6a.entry.js.map → p-7ee6173c.entry.js.map} +0 -0
  334. /package/dist/infineon-design-system-stencil/{p-3c0396d6.entry.js.map → p-7f19e900.entry.js.map} +0 -0
  335. /package/dist/infineon-design-system-stencil/{p-ac4825f2.entry.js.map → p-80531643.entry.js.map} +0 -0
  336. /package/dist/infineon-design-system-stencil/{p-a4d2a1b0.entry.js.map → p-8248d8c0.entry.js.map} +0 -0
  337. /package/dist/infineon-design-system-stencil/{p-d2dbc80b.entry.js.map → p-83feb0a3.entry.js.map} +0 -0
  338. /package/dist/infineon-design-system-stencil/{p-5e954f0b.entry.js.map → p-8a06f209.entry.js.map} +0 -0
  339. /package/dist/infineon-design-system-stencil/{p-a74a35d2.entry.js.map → p-9be1b9c8.entry.js.map} +0 -0
  340. /package/dist/infineon-design-system-stencil/{p-56e54271.entry.js.map → p-a1883884.entry.js.map} +0 -0
  341. /package/dist/infineon-design-system-stencil/{p-f9ca49f1.entry.js.map → p-a2c1d71b.entry.js.map} +0 -0
  342. /package/dist/infineon-design-system-stencil/{p-1f17cbfe.entry.js.map → p-a96a529d.entry.js.map} +0 -0
  343. /package/dist/infineon-design-system-stencil/{p-97854fec.entry.js.map → p-ad2155dc.entry.js.map} +0 -0
  344. /package/dist/infineon-design-system-stencil/{p-e2d80669.entry.js.map → p-b4f856ec.entry.js.map} +0 -0
  345. /package/dist/infineon-design-system-stencil/{p-8252f9c7.entry.js.map → p-b51f918f.entry.js.map} +0 -0
  346. /package/dist/infineon-design-system-stencil/{p-1293841a.entry.js.map → p-b9d7e438.entry.js.map} +0 -0
  347. /package/dist/infineon-design-system-stencil/{p-ea180cce.entry.js.map → p-c52cc3c2.entry.js.map} +0 -0
  348. /package/dist/infineon-design-system-stencil/{p-9435833d.entry.js.map → p-c641af6a.entry.js.map} +0 -0
  349. /package/dist/infineon-design-system-stencil/{p-ef18e376.entry.js.map → p-cc622212.entry.js.map} +0 -0
  350. /package/dist/infineon-design-system-stencil/{p-d0b64bca.entry.js.map → p-ccd32b01.entry.js.map} +0 -0
  351. /package/dist/infineon-design-system-stencil/{p-8ee88c7e.entry.js.map → p-cd1a498a.entry.js.map} +0 -0
  352. /package/dist/infineon-design-system-stencil/{p-408c049a.entry.js.map → p-d23538c4.entry.js.map} +0 -0
  353. /package/dist/infineon-design-system-stencil/{p-3479b38d.entry.js.map → p-d3388d1e.entry.js.map} +0 -0
  354. /package/dist/infineon-design-system-stencil/{p-afeba5e9.entry.js.map → p-d4a5b04a.entry.js.map} +0 -0
  355. /package/dist/infineon-design-system-stencil/{p-332a86b5.entry.js.map → p-d5c652f5.entry.js.map} +0 -0
  356. /package/dist/infineon-design-system-stencil/{p-6d9c1cd0.entry.js.map → p-dd597610.entry.js.map} +0 -0
  357. /package/dist/infineon-design-system-stencil/{p-0cbb7404.entry.js.map → p-e1558a3f.entry.js.map} +0 -0
  358. /package/dist/infineon-design-system-stencil/{p-b642a0c9.entry.js.map → p-e3bd44e5.entry.js.map} +0 -0
  359. /package/dist/infineon-design-system-stencil/{p-f0067aa9.entry.js.map → p-e403099a.entry.js.map} +0 -0
  360. /package/dist/infineon-design-system-stencil/{p-efde6e57.entry.js.map → p-e7733535.entry.js.map} +0 -0
  361. /package/dist/infineon-design-system-stencil/{p-2ab2c5cf.entry.js.map → p-ec8e99ff.entry.js.map} +0 -0
  362. /package/dist/infineon-design-system-stencil/{p-e6212e02.entry.js.map → p-f733c692.entry.js.map} +0 -0
  363. /package/dist/infineon-design-system-stencil/{p-4e07c00d.entry.js.map → p-f952a1f8.entry.js.map} +0 -0
@@ -1,2 +0,0 @@
1
- import{r as t,c as e,h as i,g as s}from"./p-014d2c5a.js";const n=':root{--ifx-font-family:"Source Sans 3";font-family:var(--ifx-font-family, sans-serif)}.ifx-multiselect-container{position:relative;box-sizing:border-box;font-family:var(--ifx-font-family)}.ifx-multiselect-container.small-select{height:36px}.ifx-multiselect-container.medium-select{height:40px}.ifx-multiselect-container:hover{cursor:pointer}.ifx-multiselect-container .ifx-label-wrapper{font-size:1rem;line-height:1.5rem;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:anywhere;max-width:100%}.ifx-multiselect-container .ifx-error-message-wrapper{color:#CD002F;font-size:0.75rem;line-height:1rem;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:anywhere;max-width:100%}.ifx-multiselect-container .ifx-multiselect-wrapper{background-color:#FFFFFF;box-sizing:border-box;position:relative;display:flex;align-items:center;border:1px solid #8D8786;border-radius:1px;width:100%;font-weight:400;font-style:normal}.ifx-multiselect-container .ifx-multiselect-wrapper.small-select{height:36px;padding:8px 12px;font-size:0.875rem;line-height:1.25rem}.ifx-multiselect-container .ifx-multiselect-wrapper.medium-select{height:40px;padding:8px 16px;font-size:1rem;line-height:1.5rem}.ifx-multiselect-container .ifx-multiselect-wrapper:focus-visible{outline:none}.ifx-multiselect-container .ifx-multiselect-wrapper:focus-visible:not(.active):not(:active){outline:none}.ifx-multiselect-container .ifx-multiselect-wrapper:focus-visible:not(.active):not(:active)::before{content:"";position:absolute;width:calc(100% + 4px);height:calc(100% + 4px);top:50%;left:50%;transform:translate(-50%, -50%);border:2px solid #0A8276;border-radius:2px}.ifx-multiselect-container .ifx-multiselect-wrapper.disabled{background:#EEEDED;color:#575352;border-color:#575352;cursor:default;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ifx-multiselect-container .ifx-multiselect-wrapper.error{border-color:#CD002F}.ifx-multiselect-container .ifx-multiselect-wrapper:hover:not(.focus,:focus){border-color:#575352}.ifx-multiselect-container .ifx-multiselect-wrapper.active{border-color:#0A8276 !important}.ifx-multiselect-container .ifx-multiselect-wrapper.active .icon-wrapper-up{display:flex;align-items:center;justify-content:center;padding-left:8px}.ifx-multiselect-container .ifx-multiselect-wrapper.active .icon-wrapper-down{display:none}.ifx-multiselect-container .ifx-multiselect-wrapper .icon-wrapper-up{display:none}.ifx-multiselect-container .ifx-multiselect-wrapper .icon-wrapper-down{display:flex;align-items:center;justify-content:center;padding-left:8px}.ifx-multiselect-container .ifx-multiselect-wrapper.is-flipped .ifx-multiselect-dropdown-menu{top:auto;bottom:100%}.ifx-multiselect-container .ifx-multiselect-input{flex-grow:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ifx-multiselect-container .ifx-multiselect-input.placeholder{opacity:0.5}.ifx-multiselect-container .ifx-multiselect-icon-container{margin-left:auto;align-items:center;display:flex}.ifx-multiselect-container .ifx-clear-button{display:flex}.ifx-multiselect-container .ifx-multiselect-dropdown-menu{position:absolute;top:100%;left:0;width:100%;margin-top:2px;background-color:#fff;box-shadow:0px 6px 9px 0px rgba(29, 29, 29, 0.1);max-height:300px;overflow-y:auto;z-index:var(--dynamic-z-index, 1)}.ifx-multiselect-container .ifx-multiselect-dropdown-menu .search-input{position:sticky;top:0;left:0;z-index:1;width:100%;padding:8px 16px;font-size:1rem;line-height:1.5rem;font-style:normal;font-weight:400;box-sizing:border-box;background-color:#FFFFFF;border:none;border-bottom:1px solid #8D8786}.ifx-multiselect-container .ifx-multiselect-dropdown-menu .search-input:focus{outline:none;border:1px solid #0A8276}.ifx-multiselect-container .ifx-multiselect-dropdown-menu .search-input::placeholder{color:#999}.ifx-multiselect-container .option{position:relative;padding:8px 16px;gap:8px;align-items:center;display:flex;font-style:normal;font-weight:400}.ifx-multiselect-container .option.small-select{font-size:0.875rem;line-height:1.25rem}.ifx-multiselect-container .option.medium-select{font-size:1rem;line-height:1.5rem}.ifx-multiselect-container .option:hover{background-color:#EEEDED}.ifx-multiselect-container .option:focus:not(.disabled){background-color:#BFBBBB;outline:none}.ifx-multiselect-container .option.is-highlighted{background-color:#EEEDED}.ifx-multiselect-container .option.sub-option{padding-left:30px;}.ifx-multiselect-container .option.disabled:hover{cursor:default}.ifx-multiselect-container .option label{cursor:inherit}.select-all-wrapper{padding-top:8px}';const o=n;function r(t,e){let i;return function s(...n){const o=()=>{clearTimeout(i);t(...n)};clearTimeout(i);i=setTimeout(o,e)}}const l=class{constructor(i){t(this,i);this.ifxSelect=e(this,"ifxSelect",7);this.ifxOpen=e(this,"ifxOpen",7);if(i.$hostElement$["s-ei"]){this.internals=i.$hostElement$["s-ei"]}else{this.internals=i.$hostElement$.attachInternals();i.$hostElement$["s-ei"]=this.internals}this.batchSize=50;this.size="medium (40px)";this.disabled=false;this.error=false;this.internalError=false;this.errorMessage="Error";this.label="";this.persistentSelectedOptions=[];this.placeholder="";this.dropdownOpen=false;this.zIndex=1;this.currentIndex=0;this.isLoading=false;this.loadedOptions=[];this.filteredOptions=[];this.showSearch=true;this.showSelectAll=true;this.optionCount=0;this.optionsProcessed=false;this.handleSearch=r((t=>{const e=t.value.toLowerCase();if(e===""){this.filteredOptions=this.loadedOptions}else{this.filteredOptions=this.loadedOptions.filter((t=>{const i=t.label.toLowerCase().includes(e);if(t.children){const s=t.children.some((t=>t.label.toLowerCase().includes(e)));return i||s}return i}))}}),300);this.handleDocumentClick=t=>{const e=t.composedPath();if(!e.includes(this.dropdownElement)){this.dropdownOpen=false;document.removeEventListener("click",this.handleDocumentClick);this.filteredOptions=this.loadedOptions;this.ifxOpen.emit(this.dropdownOpen)}}}updateOptions(){this.loadedOptions=[];this.filteredOptions=[];this.optionCount=0;this.optionsProcessed=false;this.persistentSelectedOptions=[];this.loadInitialOptions()}async loadInitialOptions(){this.isLoading=true;this.internalError=this.error;this.internalErrorMessage=this.errorMessage;this.loadedOptions=await this.fetchOptions(0,this.batchSize);this.isLoading=false}async fetchMoreOptions(){this.isLoading=true;const t=await this.fetchOptions(this.loadedOptions.length,this.batchSize);this.loadedOptions=[...this.loadedOptions,...t];this.isLoading=false}handleScroll(t){const e=t.target;const i=Math.floor((e.scrollHeight-e.clientHeight)/2);if(e.scrollTop>=i){this.fetchMoreOptions()}}async fetchOptions(t,e){let i=[];if(typeof this.options==="string"){try{i=JSON.parse(this.options)}catch(t){console.error("Failed to parse options:",t)}}else if(Array.isArray(this.options)){i=this.options}else{console.error("Unexpected value for options:",this.options)}if(!this.optionsProcessed){this.optionCount=this.countOptions(i);const t=this.collectSelectedOptions(i);const e=t.filter((t=>!this.persistentSelectedOptions.some((e=>e.value==t.value))));this.persistentSelectedOptions=[...this.persistentSelectedOptions,...e];this.optionsProcessed=true}const s=i.slice(t,t+e);return s}collectSelectedOptions(t){let e=[];for(const i of t){if(i.selected){if(i.children&&i.children.length>0){e=e.concat(this.collectLeafOptions(i.children))}else{if(!e.some((t=>t.value===i.value))){e.push(i)}}}else{if(i.children&&i.children.length>0){e=e.concat(this.collectSelectedOptions(i.children))}}}return e}collectLeafOptions(t){let e=[];for(const i of t){if(i.children&&i.children.length>0){e=e.concat(this.collectLeafOptions(i.children))}else{e.push(i)}}return e}countOptions(t){let e=0;for(const i of t){if(i.children&&i.children.length>=0){e+=this.countOptions(i.children)}else{e++}}return e}componentDidLoad(){setTimeout((()=>{this.positionDropdown()}),500)}componentWillLoad(){this.loadInitialOptions();this.filteredOptions=[...this.loadedOptions]}updateInternalError(){this.internalError=this.error}updateInternalErrorMessage(){this.internalErrorMessage=this.errorMessage}loadedOptionsChanged(){this.filteredOptions=[...this.loadedOptions]}onSelectionChange(t,e){const i=new FormData;t.forEach((t=>i.append(this.name,t.value)));this.internals.setFormValue(i)}handleOptionClick(t){this.internalError=false;if(!t.selected&&this.isSelectionLimitReached(t)){t.checkboxRef.toggleCheckedState(false);this.internalError=true;this.internalErrorMessage="Please consider the maximum number of items to choose from";return}this.updateSelection(t);this.ifxSelect.emit(this.persistentSelectedOptions)}isSelectionLimitReached(t){let e=t.children?t.children.length:1;return this.maxItemCount&&this.persistentSelectedOptions.length+e>this.maxItemCount&&!this.persistentSelectedOptions.some((e=>e.value===t.value))}updateSelection(t){const e=this.persistentSelectedOptions.some((e=>e.value===t.value));if(t.children&&t.children.length>0){this.handleParentOptionClick(t)}else{this.handleChildOptionClick(t,e)}}async selectAll(){const t=await this.fetchOptions(0,this.optionCount);this.selectAllRecursive(t);this.ifxSelect.emit(this.persistentSelectedOptions)}selectAllRecursive(t){for(const e of t){if(e.children&&e.children.length>0){this.selectAllRecursive(e.children)}else{if(!this.persistentSelectedOptions.some((t=>t.value===e.value))){e.selected=true;this.persistentSelectedOptions=[...this.persistentSelectedOptions,e];this.optionCount=this.countOptions(this.persistentSelectedOptions)}}}}handleParentOptionClick(t){const e=t.children.every((t=>this.persistentSelectedOptions.some((e=>e.value===t.value))));if(e){this.persistentSelectedOptions=[...this.persistentSelectedOptions.filter((e=>!t.children.some((t=>t.value===e.value))))];t.selected=false;t.children.forEach((t=>{t.selected=false}))}else{const e=[...t.children.filter((t=>!this.persistentSelectedOptions.some((e=>e.value===t.value))))];t.selected=true;t.children.forEach((t=>{t.selected=true}));this.persistentSelectedOptions=[...this.persistentSelectedOptions,...e]}}handleChildOptionClick(t,e){if(e){this.persistentSelectedOptions=[...this.persistentSelectedOptions.filter((e=>e.value!==t.value))];t.selected=false}else{this.persistentSelectedOptions=[...this.persistentSelectedOptions,t];t.selected=true}this.updateParentSelectedState()}updateParentSelectedState(){this.loadedOptions.forEach((t=>{var e;if(((e=t.children)===null||e===void 0?void 0:e.length)>0){if(t.children.every((t=>t.selected===true)))t.selected=true;else{t.selected=false;if(this.isOptionIndeterminate(t)){t.indeterminate=true}else{t.indeterminate=false}}}}))}getSizeClass(){return`${this.size}`==="s"?"small-select":"medium-select"}toggleDropdown(){this.dropdownOpen=!this.dropdownOpen;setTimeout((()=>{if(this.dropdownOpen){document.addEventListener("click",this.handleDocumentClick)}this.ifxOpen.emit(this.dropdownOpen)}),0);this.zIndex=l.globalZIndex++}waitForElement(t,e,i=50){let s=0;function n(){requestAnimationFrame((()=>{const o=t();if(o.length>0||s>i){e(o)}else{s++;n()}}))}n()}handleKeyDown(t){if(this.disabled)return;const e=this.dropdownElement.querySelectorAll(".option");switch(t.code){case"Enter":this.toggleDropdown();this.waitForElement((()=>this.dropdownElement.querySelectorAll(".option")),(t=>{this.updateHighlightedOption(t)}));break;case"Space":this.toggleDropdown();this.waitForElement((()=>this.dropdownElement.querySelectorAll(".option")),(t=>{this.updateHighlightedOption(t)}));break;case"ArrowDown":this.handleArrowDown(e);if(this.dropdownOpen){this.updateHighlightedOption(e)}break;case"ArrowUp":this.handleArrowUp(e);if(this.dropdownOpen){this.updateHighlightedOption(e)}break}}handleWrapperClick(t){this.positionDropdown();if(t.currentTarget===t.target){this.toggleDropdown()}}clearSelection(){this.persistentSelectedOptions=[];this.ifxSelect.emit(this.persistentSelectedOptions)}positionDropdown(){var t;const e=(t=this.el.shadowRoot.querySelector(".ifx-multiselect-wrapper"))===null||t===void 0?void 0:t.getBoundingClientRect();const i=window.innerHeight-e.bottom;const s=e.top;if(s>i&&e.height>i||e.bottom>window.innerHeight){this.dropdownFlipped=true}else{this.dropdownFlipped=false}}updateHighlightedOption(t){t.forEach((t=>t.classList.remove("is-highlighted")));if(this.currentIndex>=0&&this.currentIndex<t.length){t[this.currentIndex].classList.add("is-highlighted");t[this.currentIndex].focus()}}handleArrowDown(t){if(this.currentIndex<t.length-1){this.currentIndex++}else{this.currentIndex=0}}handleArrowUp(t){if(this.currentIndex>0){this.currentIndex--}else{this.currentIndex=t.length-1}}handleOptionKeyDown(t,e){if(t.key!=="ArrowUp"&&t.key!=="ArrowDown")t.stopPropagation();if(t.key==="Enter"||t.key===" "){this.handleOptionClick(e)}}renderOption(t,e){var s;const n=this.isOptionIndeterminate(t);const o=t.children?n||this.isOptionSelected(t):this.persistentSelectedOptions.some((e=>e.value===t.value));const r=!o&&this.maxItemCount&&this.persistentSelectedOptions.length>=this.maxItemCount;const l=`checkbox-${t.value}-${e}`;return i("div",{class:"option-wrapper"},i("div",{class:`option ${o?"selected":""} ${r?"disabled":""} \n ${this.getSizeClass()}`,"data-value":t.value,onKeyDown:e=>!r&&this.handleOptionKeyDown(e,t),onClick:()=>!r&&this.handleOptionClick(t),tabindex:"0",role:`${((s=t.children)===null||s===void 0?void 0:s.length)>0?"treeitem":"option"}`},i("ifx-checkbox",{tabIndex:-1,ref:e=>t.checkboxRef=e,id:l,size:"s",checked:n?false:o,indeterminate:n,disabled:r}),i("label",{htmlFor:l,onClick:t=>t.stopPropagation()},t.label)),t.children&&t.children.map(((t,i)=>this.renderSubOption(t,`${e}-${i}`))))}isOptionSelected(t){if(!t.children)return false;return t.children.every((t=>this.persistentSelectedOptions.some((e=>e.value===t.value))))}isOptionIndeterminate(t){if(!t.children)return false;const e=t.children.filter((t=>this.persistentSelectedOptions.some((e=>e.value===t.value)))).length;return e>0&&e<t.children.length}findInOptions(t,e){for(const i of t){if(i.value===e){return i}if(i.children){const t=this.findInOptions(i.children,e);if(t){return t}}}return null}renderSubOption(t,e){var s;const n=this.persistentSelectedOptions.some((e=>e.value===t.value));const o=!n&&this.maxItemCount&&this.persistentSelectedOptions.length>=this.maxItemCount;const r=`checkbox-${t.value}-${e}`;return i("div",{class:`option sub-option ${n?"selected":""} ${this.getSizeClass()} ${o?"disabled":""}`,"data-value":t.value,role:`${((s=t.children)===null||s===void 0?void 0:s.length)>0?"option":"treeitem"}`,onKeyDown:e=>!o&&this.handleOptionKeyDown(e,t),onClick:()=>!o&&this.handleOptionClick(t),tabindex:"0"},i("ifx-checkbox",{tabIndex:-1,ref:e=>t.checkboxRef=e,id:r,size:"s",checked:n,disabled:o}),i("label",{htmlFor:r,onClick:t=>t.stopPropagation()},t.label))}renderSelectAll(){const t=this.persistentSelectedOptions.length===this.optionCount;const e=this.persistentSelectedOptions.length===0;const s=this.optionCount>0&&!e&&!t;const n=this;function o(){if(t){n.clearSelection()}else{n.selectAll()}}function r(t){if(t.key!=="ArrowUp"&&t.key!=="ArrowDown")t.stopPropagation();if(t.key==="Enter"||t.key===" "){o()}}return i("div",{class:"select-all-wrapper"},i("div",{class:`option ${this.getSizeClass()}`,tabindex:"0",onKeyDown:t=>r(t),onClick:o},i("ifx-checkbox",{tabIndex:-1,id:"selectAll",checked:t,indeterminate:s,size:"s"}),i("label",{htmlFor:"selectAll"},"Select all")),i("ifx-dropdown-separator",null))}render(){const t=this.persistentSelectedOptions.filter((t=>{const e=this.persistentSelectedOptions.some((e=>e.children&&e.children.some((e=>e.value===t.value))&&e.selected));return!e})).map((t=>t.label)).join(", ");return i("div",{class:`ifx-multiselect-container`,ref:t=>this.dropdownElement=t},this.label?i("div",{class:"ifx-label-wrapper"},i("span",null,this.label)):null,i("div",{class:`ifx-multiselect-wrapper \n ${this.getSizeClass()} \n ${this.dropdownOpen?"active":""} \n ${this.dropdownFlipped?"is-flipped":""}\n ${this.internalError?"error":""}\n ${this.disabled?"disabled":""}`,tabindex:"0",onClick:this.disabled?undefined:t=>this.handleWrapperClick(t),onKeyDown:this.disabled?undefined:t=>this.handleKeyDown(t)},i("div",{class:`ifx-multiselect-input \n ${this.persistentSelectedOptions.length===0?"placeholder":""}\n `,onClick:this.disabled?undefined:()=>this.toggleDropdown()},this.persistentSelectedOptions.length>0?t:this.placeholder),this.dropdownOpen&&i("div",{class:"ifx-multiselect-dropdown-menu",onScroll:t=>this.handleScroll(t),style:{"--dynamic-z-index":this.zIndex.toString()}},this.showSearch&&i("input",{type:"text",role:"textbox",class:"search-input",onKeyDown:t=>{t.stopPropagation()},onInput:t=>this.handleSearch(t.target),placeholder:"Search..."}),this.showSelectAll&&this.renderSelectAll(),this.filteredOptions.map(((t,e)=>this.renderOption(t,e))),this.isLoading&&i("div",null,"Loading more options...")),i("div",{class:"ifx-multiselect-icon-container"},this.persistentSelectedOptions.length>0&&i("div",{class:"ifx-clear-button",onClick:this.disabled?undefined:()=>this.clearSelection()},i("ifx-icon",{icon:"cremove16"})),i("div",{class:"icon-wrapper-up",onClick:this.disabled?undefined:()=>this.toggleDropdown()},i("ifx-icon",{key:"icon-up",icon:"chevronup-16"})),i("div",{class:"icon-wrapper-down",onClick:this.disabled?undefined:()=>this.toggleDropdown()},i("ifx-icon",{key:"icon-down",icon:"chevron-down-16"})))),this.internalError?i("div",{class:"ifx-error-message-wrapper"},i("span",null,this.internalErrorMessage)):null)}static get formAssociated(){return true}get el(){return s(this)}static get watchers(){return{options:["updateOptions"],error:["updateInternalError"],errorMessage:["updateInternalErrorMessage"],loadedOptions:["loadedOptionsChanged"],persistentSelectedOptions:["onSelectionChange"]}}};l.globalZIndex=1;l.style=o;const a=':root{--ifx-font-family:"Source Sans 3";font-family:var(--ifx-font-family, sans-serif)}:host{display:flex}.textInput__container{display:flex;flex-direction:column;align-items:flex-start;padding:0px;width:100%;flex:none;order:0;align-self:stretch;flex-grow:0;font-family:var(--ifx-font-family)}.textInput__container.disabled .textInput__top-wrapper label{color:#575352}.textInput__container.disabled .textInput__bottom-wrapper input{border:1px solid #575352;background-color:#EEEDED}.textInput__container.disabled .textInput__bottom-wrapper input::placeholder{font-size:0.875rem;color:#575352}.textInput__container .textInput__top-wrapper{display:flex;flex-direction:row;align-items:flex-start;padding:0px;gap:4px;flex:none;order:0;align-self:stretch;flex-grow:0}.textInput__container .textInput__top-wrapper label{font-style:normal;font-weight:400;font-size:1rem;line-height:1.5rem;display:flex;align-items:center;color:#1D1D1D;flex:none;order:0;flex-grow:0}.textInput__container .textInput__top-wrapper label .optional-required{margin-left:4px}.textInput__container .textInput__top-wrapper label .optional{margin-left:4px}.textInput__container .textInput__top-wrapper label .required{margin-left:4px}.textInput__container .textInput__top-wrapper label .required.error{color:#CD002F}.textInput__container .input-container{position:relative;display:flex;align-items:center;width:100%}.textInput__container .textInput__bottom-wrapper{flex-grow:1;position:relative;display:flex;flex-direction:column;align-items:flex-start;padding:0px;gap:4px;flex:none;order:1;align-self:stretch;flex-grow:0}.textInput__container .textInput__bottom-wrapper input{width:100%;box-sizing:border-box;display:flex;flex-direction:row;align-items:center;padding:8px 16px;gap:8px;height:40px;background-color:#FFFFFF;color:#1D1D1D;font-family:"Source Sans 3";font-size:1rem;line-height:1.5rem;border:1px solid #8D8786;border-radius:1px;flex:none;order:0;align-self:stretch;flex-grow:0;text-overflow:ellipsis}.textInput__container .textInput__bottom-wrapper input.input-s{height:36px;font-size:0.875rem;line-height:1.25rem}.textInput__container .textInput__bottom-wrapper input.input-s::placeholder{font-size:0.875rem;line-height:1.25rem}.textInput__container .textInput__bottom-wrapper input.icon{padding-left:40px}.textInput__container .textInput__bottom-wrapper input.error{border:1px solid #CD002F}.textInput__container .textInput__bottom-wrapper input.error:focus{outline:none}.textInput__container .textInput__bottom-wrapper input.success{border:1px solid #4CA460}.textInput__container .textInput__bottom-wrapper input.success:focus{outline:none}.textInput__container .textInput__bottom-wrapper input:focus:not(.error,.success){outline:none;border:1px solid #0A8276}.textInput__container .textInput__bottom-wrapper input:hover:not(:disabled,:focus,.error,.success){border:1px solid #575352}.textInput__container .textInput__bottom-wrapper input::placeholder{font-style:normal;font-weight:400;font-size:1rem;line-height:1.5rem;color:#8D8786;flex:none;order:1;flex-grow:1}.textInput__container .textInput__bottom-wrapper .input-icon{position:absolute;top:50%;transform:translateY(-50%);left:16px;transition:0.3s;color:#8D8786}.textInput__container .textInput__bottom-wrapper .textInput__bottom-wrapper-caption{font-style:normal;font-weight:400;font-size:0.75rem;line-height:1rem;letter-spacing:0.2px;color:#1D1D1D;flex:none;order:1;align-self:stretch;flex-grow:0}.textInput__container .textInput__bottom-wrapper .textInput__bottom-wrapper-caption.error{color:#CD002F}.textInput__container .textInput__bottom-wrapper .textInput__bottom-wrapper-caption.disabled{color:#575352}.textInput__container .delete-icon{position:absolute;right:16px}.textInput__container .delete-icon :hover{cursor:pointer}';const c=a;const p=class{constructor(i){t(this,i);this.ifxInput=e(this,"ifxInput",7);if(i.$hostElement$["s-ei"]){this.internals=i.$hostElement$["s-ei"]}else{this.internals=i.$hostElement$.attachInternals();i.$hostElement$["s-ei"]=this.internals}this.placeholder="Placeholder";this.value="";this.error=false;this.label="";this.icon="";this.caption="";this.size="m";this.required=false;this.optional=false;this.success=false;this.disabled=false;this.showDeleteIcon=false}valueWatcher(t){if(t!==this.inputElement.value){this.inputElement.value=t}}async reset(){this.value="";this.inputElement.value=""}handleDeleteContent(){this.reset();this.ifxInput.emit(this.value)}handleInput(){const t=this.inputElement.value;this.value=t;this.internals.setFormValue(t);this.ifxInput.emit(this.value)}formResetCallback(){this.internals.setValidity({});this.internals.setFormValue("")}render(){return i("div",{key:"344fcdc99073aa39a1c7f5e8754e5d1ab6601d51","aria-label":"a text field for user input","aria-value":this.value,"aria-disabled":this.disabled,class:`textInput__container ${this.disabled?"disabled":""}`},i("div",{key:"19f3475dd13f9c60dfbf6e05ca46c6ba1763787a",class:"textInput__top-wrapper"},i("label",{key:"491557a610d0f960208e777584ae7890007de72b",htmlFor:"text-field"},i("slot",{key:"b5383e076e18434c8b1ea4c6f7e34dd2a159ccc3"}),this.optional&&this.required?i("span",{class:"optional-required"},"(optional) *"):this.optional?i("span",{class:"optional"},"(optional)"):this.required?i("span",{class:`required ${this.error?"error":""}`},"*"):null)),i("div",{key:"0d0425e3de92c73a73f0226805dfffa166c232d7",class:"textInput__bottom-wrapper"},i("div",{key:"211fb12acdd71c4bbe51abad547ed849f6d50d32",class:"input-container"},this.icon&&i("ifx-icon",{key:"a9db8e91ca48bf5b03f1a6140c1455e83ae5ecac",class:"input-icon",icon:this.icon}),i("input",{key:"a674019c9b4a2fb8166687e1da2b68a3cb751b4a",ref:t=>this.inputElement=t,disabled:this.disabled,type:"text",id:"text-field",value:this.value,onInput:()=>this.handleInput(),placeholder:this.placeholder,maxlength:this.maxlength,class:`${this.icon?"icon":""}\n ${this.error?"error":""} \n ${this.size==="s"?"input-s":""}\n ${this.success?"success":""}`}),this.showDeleteIcon&&this.value&&i("ifx-icon",{key:"a6f33a57e0a1afa7cfbd979ab04639a024c186fc",class:"delete-icon",icon:"cremove16",onClick:()=>this.handleDeleteContent()})),this.caption&&!this.error&&i("div",{key:"e2e28f6efe952e9b48db2d48bfdbe9d35240c41a",class:`textInput__bottom-wrapper-caption ${this.disabled} ? disabled : ""`},this.caption),this.error&&i("div",{key:"38531a94862030b6e64f0551a8182f49be8cca97",class:"textInput__bottom-wrapper-caption error"},this.caption)))}static get formAssociated(){return true}get el(){return s(this)}static get watchers(){return{value:["valueWatcher"]}}};p.style=c;export{l as ifx_multiselect,p as ifx_text_field};
2
- //# sourceMappingURL=p-114f04b4.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["multiselectCss","IfxMultiselectStyle0","debounce","func","wait","timeout","executedFunction","args","later","clearTimeout","setTimeout","Multiselect","constructor","hostRef","this","batchSize","size","disabled","error","internalError","errorMessage","label","persistentSelectedOptions","placeholder","dropdownOpen","zIndex","currentIndex","isLoading","loadedOptions","filteredOptions","showSearch","showSelectAll","optionCount","optionsProcessed","handleSearch","targetElement","searchTerm","value","toLowerCase","filter","option","matchesSearchTerm","includes","children","childrenMatch","some","child","handleDocumentClick","event","path","composedPath","dropdownElement","document","removeEventListener","ifxOpen","emit","updateOptions","loadInitialOptions","internalErrorMessage","fetchOptions","fetchMoreOptions","moreOptions","length","handleScroll","element","target","halfwayPoint","Math","floor","scrollHeight","clientHeight","scrollTop","startIndex","count","allOptions","options","JSON","parse","err","console","Array","isArray","countOptions","initiallySelected","collectSelectedOptions","initallySelectedNotInState","init","opt","slicedOptions","slice","selectedOptions","selected","concat","collectLeafOptions","existingOption","push","leafOptions","componentDidLoad","positionDropdown","componentWillLoad","updateInternalError","updateInternalErrorMessage","loadedOptionsChanged","onSelectionChange","newValue","_","formData","FormData","forEach","append","name","internals","setFormValue","handleOptionClick","isSelectionLimitReached","checkboxRef","toggleCheckedState","updateSelection","ifxSelect","newOptionsLength","maxItemCount","selectedOption","wasSelected","handleParentOptionClick","handleChildOptionClick","selectAll","selectAllRecursive","allChildrenSelected","every","newChildren","childOption","updateParentSelectedState","_a","isOptionIndeterminate","indeterminate","getSizeClass","toggleDropdown","addEventListener","globalZIndex","waitForElement","querySelectorFunc","callback","maxTries","tries","request","requestAnimationFrame","elements","handleKeyDown","querySelectorAll","code","updateHighlightedOption","handleArrowDown","handleArrowUp","handleWrapperClick","currentTarget","clearSelection","wrapperRect","el","shadowRoot","querySelector","getBoundingClientRect","spaceBelow","window","innerHeight","bottom","spaceAbove","top","height","dropdownFlipped","classList","remove","add","focus","handleOptionKeyDown","e","key","stopPropagation","renderOption","index","isIndeterminate","isSelected","isOptionSelected","disableCheckbox","uniqueId","h","class","onKeyDown","onClick","tabindex","role","tabIndex","ref","id","checked","htmlFor","map","childIndex","renderSubOption","persistentOption","selectedChildren","findInOptions","foundInChildren","renderSelectAll","allSelected","noneSelected","that","toggleSelectAll","handleSelectAllKeydown","render","selectedOptionsLabels","isChildSelectedWithParent","parentOption","join","undefined","onScroll","style","toString","type","onInput","icon","textFieldCss","IfxTextFieldStyle0","TextField","caption","required","optional","success","showDeleteIcon","valueWatcher","inputElement","reset","handleDeleteContent","ifxInput","handleInput","query","formResetCallback","setValidity","maxlength"],"sources":["src/components/select/multi-select/multiselect.scss?tag=ifx-multiselect&encapsulation=shadow","src/components/select/multi-select/multiselect.tsx","src/components/text-field/text-field.scss?tag=ifx-text-field&encapsulation=shadow","src/components/text-field/text-field.tsx"],"sourcesContent":["// @import '~choices.js/public/assets/styles/choices.css';\n@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../../global/font.scss\";\n\n.ifx-multiselect-container {\n position: relative;\n box-sizing: border-box;\n font-family: var(--ifx-font-family);\n\n &.small-select {\n height: 36px;\n }\n\n &.medium-select {\n height: 40px;\n }\n\n &:hover {\n cursor: pointer;\n }\n\n\n .ifx-label-wrapper {\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n white-space: pre-wrap;\n word-wrap: break-word;\n overflow-wrap: anywhere;\n max-width: 100%;\n }\n\n .ifx-error-message-wrapper {\n color: #CD002F;\n font-size: tokens.$ifxFontSizeXs;\n line-height: tokens.$ifxLineHeightXs;\n white-space: pre-wrap;\n word-wrap: break-word;\n overflow-wrap: anywhere;\n max-width: 100%;\n }\n\n .ifx-multiselect-wrapper {\n background-color: tokens.$ifxColorBaseWhite;\n box-sizing: border-box;\n position: relative;\n display: flex;\n align-items: center;\n border: 1px solid tokens.$ifxColorEngineering400;\n border-radius: tokens.$ifxBorderRadius12;\n width: 100%;\n font-weight: 400;\n font-style: normal;\n\n\n &.small-select {\n height: 36px;\n padding: 8px 12px;\n font-size: tokens.$ifxFontSizeS;\n line-height: tokens.$ifxLineHeightS;\n }\n\n &.medium-select {\n height: 40px;\n padding: 8px 16px;\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n }\n\n &:focus-visible {\n outline: none;\n }\n\n &:focus-visible:not(.active):not(:active) {\n outline: none;\n\n &::before {\n content: '';\n position: absolute;\n width: calc(100% + 4px);\n height: calc(100% + 4px);\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n border: 2px solid tokens.$ifxColorOcean500;\n border-radius: 2px;\n\n }\n }\n\n &.disabled {\n background: tokens.$ifxColorEngineering200;\n color: #575352;\n border-color: #575352;\n cursor: default;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n }\n\n &.error {\n border-color: #CD002F;\n }\n\n &:hover:not(.focus, :focus) {\n border-color: tokens.$ifxColorEngineering500;\n }\n\n &.active {\n border-color: tokens.$ifxColorOcean500 !important; // Active border color\n\n & .icon-wrapper-up {\n display: flex;\n align-items: center;\n justify-content: center;\n padding-left: tokens.$ifxSpace100;\n }\n\n & .icon-wrapper-down {\n display: none\n }\n }\n\n\n & .icon-wrapper-up {\n display: none;\n }\n\n & .icon-wrapper-down {\n display: flex;\n align-items: center;\n justify-content: center;\n padding-left: tokens.$ifxSpace100;\n }\n\n &.is-flipped {\n .ifx-multiselect-dropdown-menu {\n top: auto;\n bottom: 100%;\n }\n }\n }\n\n .ifx-multiselect-input {\n flex-grow: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &.placeholder {\n opacity: 0.5;\n }\n\n }\n\n\n .ifx-multiselect-icon-container {\n margin-left: auto;\n align-items: center;\n display: flex;\n }\n\n\n .ifx-clear-button {\n display: flex;\n }\n\n .ifx-multiselect-dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n width: 100%;\n margin-top: 2px;\n background-color: #fff;\n box-shadow: 0px 6px 9px 0px rgba(29, 29, 29, 0.10);\n max-height: 300px;\n /* Adjust based on your design */\n overflow-y: auto;\n z-index: var(--dynamic-z-index, 1); // Fallback to 1\n\n .search-input {\n position: sticky;\n top: 0;\n left: 0;\n z-index: 1;\n width: 100%;\n padding: 8px 16px;\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n font-style: normal;\n font-weight: 400;\n box-sizing: border-box;\n background-color: tokens.$ifxColorBaseWhite;\n border: none;\n border-bottom: 1px solid tokens.$ifxColorEngineering400;\n\n &:focus {\n outline: none;\n border: 1px solid tokens.$ifxColorOcean500;\n }\n\n // Optional: Placeholder style\n &::placeholder {\n color: #999;\n }\n }\n }\n\n .option {\n position: relative;\n padding: 8px 16px;\n gap: 8px;\n align-items: center;\n display: flex;\n font-style: normal;\n font-weight: 400;\n\n &.small-select {\n font-size: tokens.$ifxFontSizeS;\n line-height: tokens.$ifxLineHeightS;\n }\n\n &.medium-select {\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n }\n\n &:hover {\n background-color: tokens.$ifxColorEngineering200;\n }\n\n &:focus:not(.disabled) {\n background-color: tokens.$ifxColorEngineering300;\n outline: none;\n }\n\n &.is-highlighted {\n background-color: tokens.$ifxColorEngineering200;\n ;\n }\n\n &.selected {\n // color: #0A8276;\n }\n\n &.sub-option {\n padding-left: 30px;\n /* or however much indentation you want */\n }\n\n &.disabled {\n &:hover {\n cursor: default;\n }\n }\n\n label {\n cursor: inherit;\n }\n }\n\n\n\n}\n\n.select-all-wrapper {\n padding-top: 8px;\n}","import { Component, Prop, State, Event, EventEmitter, Element, h, Watch, AttachInternals } from '@stencil/core';\nimport { Option } from './interfaces';\n\n// Debounce function\nfunction debounce(func, wait) {\n let timeout;\n return function executedFunction(...args) {\n const later = () => {\n clearTimeout(timeout);\n func(...args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n };\n};\n\n@Component({\n tag: 'ifx-multiselect',\n styleUrl: 'multiselect.scss',\n shadow: true,\n formAssociated: true\n})\n\n\n\nexport class Multiselect {\n\n @Prop() name: string;\n @Prop() options: any[] | string;\n @Prop() batchSize: number = 50;\n @Prop() size: string = 'medium (40px)';\n @Prop() disabled: boolean = false;\n @Prop() error: boolean = false;\n @State() internalError: boolean = false;\n @Prop() errorMessage: string = \"Error\";\n @State() internalErrorMessage: string;\n @Prop() label: string = \"\";\n @State() persistentSelectedOptions: Option[] = [];\n @Prop() placeholder: string = \"\";\n @State() dropdownOpen = false;\n @State() dropdownFlipped: boolean;\n @Prop() maxItemCount: number;\n @State() zIndex: number = 1; // default z-index value\n static globalZIndex = 1; // This will be shared among all instances of the component.\n private currentIndex: number = 0; //needed for option selection using keyboard\n @State() isLoading: boolean = false;\n @State() loadedOptions: Option[] = [];\n @State() filteredOptions: Option[] = [];\n @Prop() showSearch: boolean = true;\n @Prop() showSelectAll: boolean = true;\n @State() optionCount: number = 0; // number of all options (leaves of the tree)\n @State() optionsProcessed: boolean = false; // flag whether options have already been counted, intial selections saved\n\n\n @Event() ifxSelect: EventEmitter;\n @Event() ifxOpen: EventEmitter;\n\n @Element() el: HTMLElement;\n dropdownElement!: HTMLElement;\n\n @AttachInternals() internals: ElementInternals;\n\n\n @Watch('options')\n updateOptions() { \n this.loadedOptions = [];\n this.filteredOptions = [];\n this.optionCount = 0;\n this.optionsProcessed = false;\n this.persistentSelectedOptions = [];\n\n this.loadInitialOptions();\n }\n\n\n async loadInitialOptions() {\n this.isLoading = true;\n this.internalError = this.error;\n this.internalErrorMessage = this.errorMessage;\n // Load the first batch of options (e.g., first 20)\n this.loadedOptions = await this.fetchOptions(0, this.batchSize);\n this.isLoading = false;\n }\n\n async fetchMoreOptions() {\n this.isLoading = true;\n const moreOptions = await this.fetchOptions(this.loadedOptions.length, this.batchSize);\n this.loadedOptions = [...this.loadedOptions, ...moreOptions];\n this.isLoading = false;\n }\n\n\n handleScroll(event: UIEvent) {\n const element = event.target as HTMLElement;\n const halfwayPoint = Math.floor((element.scrollHeight - element.clientHeight) / 2); //loading more options when the user has scrolled halfway through the current list\n\n if (element.scrollTop >= halfwayPoint) {\n this.fetchMoreOptions();\n }\n }\n\n\n\n\n async fetchOptions(startIndex: number, count: number): Promise<Option[]> {\n let allOptions: Option[] = [];\n\n // Parse options if it's a string, or use directly if it's an array\n if (typeof this.options === 'string') {\n try {\n allOptions = JSON.parse(this.options);\n \n } catch (err) {\n console.error('Failed to parse options:', err);\n }\n } else if (Array.isArray(this.options)) {\n allOptions = this.options;\n } else {\n console.error('Unexpected value for options:', this.options);\n }\n\n if (!this.optionsProcessed) {\n this.optionCount = this.countOptions(allOptions);\n const initiallySelected = this.collectSelectedOptions(allOptions);\n const initallySelectedNotInState = initiallySelected.filter(init => !this.persistentSelectedOptions.some(opt => opt.value == init.value));\n this.persistentSelectedOptions = [...this.persistentSelectedOptions, ...initallySelectedNotInState];\n this.optionsProcessed = true;\n }\n // Slice the options array based on startIndex and count\n const slicedOptions = allOptions.slice(startIndex, startIndex + count);\n return slicedOptions;\n }\n\n /**\n * Collects and returns all options that are selected.\n * When the parent is selected, then the value of the children will be overriden with selected as well.\n * It will only collect the leaves of the tree.\n * \n * @param options A list of options.\n * @returns A list with all selected options\n */\n private collectSelectedOptions(options: Option[]): Option[] {\n let selectedOptions: Option[] = [];\n \n for (const option of options) {\n if (option.selected) {\n if (option.children && option.children.length > 0) {\n // if parent is selected, then select all child options\n selectedOptions = selectedOptions.concat(this.collectLeafOptions(option.children));\n } else {\n if (!selectedOptions.some(existingOption => existingOption.value === option.value)) {\n selectedOptions.push(option);\n }\n }\n } else {\n if (option.children && option.children.length > 0) {\n selectedOptions = selectedOptions.concat(this.collectSelectedOptions(option.children));\n }\n }\n }\n\n return selectedOptions;\n }\n\n /**\n * Collects all leaf children options.\n * \n * @param option A list with all leaf-children.\n */\n private collectLeafOptions(children: Option[]): Option[] {\n let leafOptions = [];\n \n for (const child of children) {\n if (child.children && child.children.length > 0) {\n leafOptions = leafOptions.concat(this.collectLeafOptions(child.children));\n } else {\n leafOptions.push(child);\n }\n } \n return leafOptions;\n }\n\n /**\n * Count the number of options. Only counts the leaves of the options tree.\n */\n countOptions(options: Option[]): number {\n let count = 0;\n for (const option of options) {\n if (option.children && option.children.length >= 0) {\n count += this.countOptions(option.children);\n } else {\n count++;\n }\n }\n return count;\n }\n\n\n handleSearch = debounce((targetElement: HTMLInputElement) => {\n const searchTerm = targetElement.value.toLowerCase();\n if (searchTerm === '') {\n this.filteredOptions = this.loadedOptions;\n } else {\n this.filteredOptions = this.loadedOptions.filter(option => {\n const matchesSearchTerm = option.label.toLowerCase().includes(searchTerm);\n if (option.children) {\n const childrenMatch = option.children.some(child => {\n return child.label.toLowerCase().includes(searchTerm);\n });\n return matchesSearchTerm || childrenMatch;\n }\n return matchesSearchTerm;\n });\n }\n }, 300);\n\n componentDidLoad() {\n setTimeout(() => {\n this.positionDropdown();\n }, 500);\n\n // setInterval(this.handleScroll, 5000); // Runs every 5 seconds (5000 milliseconds)\n }\n\n componentWillLoad() {\n this.loadInitialOptions();\n this.filteredOptions = [...this.loadedOptions];\n }\n\n @Watch('error')\n updateInternalError() {\n this.internalError = this.error;\n }\n\n @Watch('errorMessage')\n updateInternalErrorMessage() {\n this.internalErrorMessage = this.errorMessage;\n }\n\n @Watch('loadedOptions')\n loadedOptionsChanged() {\n this.filteredOptions = [...this.loadedOptions];\n }\n\n @Watch('persistentSelectedOptions')\n onSelectionChange(newValue: Option[], _: Option[]) {\n const formData = new FormData();\n newValue.forEach(option => formData.append(this.name, option.value));\n this.internals.setFormValue(formData);\n }\n\n handleOptionClick(option: Option) {\n this.internalError = false;\n\n if (!option.selected && this.isSelectionLimitReached(option)) {\n option.checkboxRef.toggleCheckedState(false)\n this.internalError = true;\n this.internalErrorMessage = \"Please consider the maximum number of items to choose from\";\n return;\n }\n \n this.updateSelection(option);\n this.ifxSelect.emit(this.persistentSelectedOptions);\n }\n\n\n isSelectionLimitReached(option: Option): boolean {\n let newOptionsLength = option.children ? option.children.length : 1;\n return this.maxItemCount && this.persistentSelectedOptions.length + newOptionsLength > this.maxItemCount &&\n !this.persistentSelectedOptions.some(selectedOption => selectedOption.value === option.value)\n }\n\n updateSelection(option: Option) {\n const wasSelected = this.persistentSelectedOptions.some(selectedOption => selectedOption.value === option.value);\n\n if (option.children && option.children.length > 0) {\n this.handleParentOptionClick(option);\n } else {\n this.handleChildOptionClick(option, wasSelected);\n }\n }\n\n async selectAll() {\n const allOptions = await this.fetchOptions(0, this.optionCount);\n this.selectAllRecursive(allOptions);\n \n this.ifxSelect.emit(this.persistentSelectedOptions);\n }\n\n private selectAllRecursive(options: Option[]) {\n for (const opt of options) {\n if (opt.children && opt.children.length > 0) {\n this.selectAllRecursive(opt.children);\n } else {\n if (!this.persistentSelectedOptions.some((some) => some.value === opt.value )) {\n opt.selected = true;\n this.persistentSelectedOptions = [...this.persistentSelectedOptions, opt];\n this.optionCount = this.countOptions( this.persistentSelectedOptions)\n }\n }\n }\n\n }\n\n handleParentOptionClick(option: Option) {\n const allChildrenSelected = option.children.every(child =>\n this.persistentSelectedOptions.some(selectedOption => selectedOption.value === child.value)\n );\n\n if (allChildrenSelected) {\n this.persistentSelectedOptions = [...this.persistentSelectedOptions.filter(\n selectedOption => !option.children.some(child => child.value === selectedOption.value)\n )];\n\n option.selected = false;\n option.children.forEach(child => {\n child.selected = false;\n })\n\n } else {\n const newChildren = [...option.children.filter(childOption =>\n !this.persistentSelectedOptions.some(selectedOption => selectedOption.value === childOption.value)\n )];\n option.selected = true;\n option.children.forEach(child => {\n child.selected = true;\n })\n this.persistentSelectedOptions = [...this.persistentSelectedOptions, ...newChildren];\n }\n }\n\n handleChildOptionClick(option: Option, wasSelected: boolean) {\n if (wasSelected) {\n this.persistentSelectedOptions = [...this.persistentSelectedOptions.filter(selectedOption => selectedOption.value !== option.value)];\n option.selected = false;\n } else {\n this.persistentSelectedOptions = [...this.persistentSelectedOptions, option];\n option.selected = true;\n }\n this.updateParentSelectedState();\n }\n\n updateParentSelectedState() {\n this.loadedOptions.forEach(option => {\n if(option.children?.length > 0) {\n if(option.children.every(child => child.selected === true)) option.selected = true;\n else {\n option.selected = false;\n if(this.isOptionIndeterminate(option)) {\n option.indeterminate = true;\n }else{\n option.indeterminate = false;\n }\n }\n }\n });\n }\n\n\n\n handleDocumentClick = (event: Event) => {\n const path = event.composedPath();\n if (!path.includes(this.dropdownElement)) {\n this.dropdownOpen = false;\n document.removeEventListener('click', this.handleDocumentClick);\n this.filteredOptions = this.loadedOptions;\n // Dispatch the ifxMultiselectIsOpen event\n this.ifxOpen.emit(this.dropdownOpen);\n }\n }\n\n getSizeClass() {\n return `${this.size}` === \"s\"\n ? \"small-select\"\n : \"medium-select\";\n }\n\n toggleDropdown() {\n this.dropdownOpen = !this.dropdownOpen;\n setTimeout(() => {\n if (this.dropdownOpen) {\n document.addEventListener('click', this.handleDocumentClick);\n }\n // Dispatch the ifxOpen event\n this.ifxOpen.emit(this.dropdownOpen);\n }, 0);\n this.zIndex = Multiselect.globalZIndex++;\n }\n\n\n waitForElement(querySelectorFunc: Function, callback: Function, maxTries = 50) {\n let tries = 0;\n function request() {\n requestAnimationFrame(() => {\n const elements = querySelectorFunc();\n if (elements.length > 0 || tries > maxTries) {\n callback(elements);\n } else {\n tries++;\n request();\n }\n });\n }\n request();\n }\n\n\n handleKeyDown(event: KeyboardEvent) {\n if (this.disabled) return; // If it's disabled, don't do anything.\n\n const options = this.dropdownElement.querySelectorAll('.option');\n \n switch (event.code) {\n case 'Enter':\n this.toggleDropdown();\n // Wait a bit for the dropdown to finish rendering\n this.waitForElement(() => {\n return this.dropdownElement.querySelectorAll('.option');\n }, (options) => {\n this.updateHighlightedOption(options);\n });\n break;\n case 'Space': \n this.toggleDropdown();\n // Wait a bit for the dropdown to finish rendering\n this.waitForElement(() => {\n return this.dropdownElement.querySelectorAll('.option');\n }, (options) => {\n this.updateHighlightedOption(options);\n });\n break;\n case 'ArrowDown':\n this.handleArrowDown(options);\n if (this.dropdownOpen) {\n this.updateHighlightedOption(options);\n }\n break;\n case 'ArrowUp':\n this.handleArrowUp(options);\n if (this.dropdownOpen) {\n this.updateHighlightedOption(options);\n }\n break;\n }\n }\n\n handleWrapperClick(event: MouseEvent) {\n // This is your existing logic for positioning the dropdown\n this.positionDropdown();\n\n // Check if the event target is the wrapper itself and not a child element.\n if (event.currentTarget === event.target) {\n this.toggleDropdown();\n }\n }\n\n clearSelection() {\n this.persistentSelectedOptions = [];\n this.ifxSelect.emit(this.persistentSelectedOptions); // if you want to emit empty selection after clearing\n }\n\n positionDropdown() {\n const wrapperRect = this.el.shadowRoot.querySelector('.ifx-multiselect-wrapper')?.getBoundingClientRect();\n const spaceBelow = window.innerHeight - wrapperRect.bottom;\n const spaceAbove = wrapperRect.top;\n\n // If there's more space above than below the trigger and the dropdown doesn't fit below\n if ((spaceAbove > spaceBelow && wrapperRect.height > spaceBelow) || (wrapperRect.bottom > window.innerHeight)) {\n this.dropdownFlipped = true;\n } else {\n this.dropdownFlipped = false;\n }\n }\n\n\n\n // Helper function to update highlighted option based on currentIndex\n private updateHighlightedOption(options: NodeList) {\n // Clear all highlights\n options.forEach((option: Element) => option.classList.remove('is-highlighted'));\n\n // Apply highlight to the current option\n if (this.currentIndex >= 0 && this.currentIndex < options.length) {\n (options[this.currentIndex] as Element).classList.add('is-highlighted');\n (options[this.currentIndex] as HTMLElement).focus();\n }\n }\n\n // Helper function to handle arrow down navigation\n private handleArrowDown(options: NodeList) {\n if (this.currentIndex < options.length - 1) {\n this.currentIndex++;\n } else {\n this.currentIndex = 0; // Wrap to the beginning.\n }\n }\n\n // Helper function to handle arrow up navigation\n private handleArrowUp(options: NodeList) {\n if (this.currentIndex > 0) {\n this.currentIndex--;\n } else {\n this.currentIndex = options.length - 1; // Wrap to the end.\n }\n }\n \n handleOptionKeyDown(e: KeyboardEvent, option: Option) {\n if(e.key !== 'ArrowUp' && e.key !== 'ArrowDown') e.stopPropagation();\n if(e.key === 'Enter' || e.key === ' ') {\n this.handleOptionClick(option);\n }\n }\n\n renderOption(option: Option, index: number) {\n const isIndeterminate = this.isOptionIndeterminate(option);\n const isSelected = option.children ? isIndeterminate || this.isOptionSelected(option) : this.persistentSelectedOptions.some(selectedOption => selectedOption.value === option.value);\n const disableCheckbox = !isSelected && this.maxItemCount && this.persistentSelectedOptions.length >= this.maxItemCount;\n const uniqueId = `checkbox-${option.value}-${index}`; // Generate a unique ID using the index\n \n return (\n <div class=\"option-wrapper\">\n <div class={`option ${isSelected ? 'selected' : ''} ${disableCheckbox ? 'disabled' : ''} \n ${this.getSizeClass()}`}\n data-value={option.value}\n onKeyDown={(e) => !disableCheckbox && this.handleOptionKeyDown(e, option)}\n onClick={() => !disableCheckbox && this.handleOptionClick(option)}\n tabindex=\"0\"\n role={`${option.children?.length > 0 ? \"treeitem\" : \"option\"}`}>\n <ifx-checkbox tabIndex={-1} ref={(el) => option.checkboxRef = el} id={uniqueId} size=\"s\" checked={isIndeterminate ? false : isSelected} indeterminate={isIndeterminate} disabled={disableCheckbox}></ifx-checkbox>\n <label htmlFor={uniqueId} onClick={(e) => e.stopPropagation()}>{option.label}</label>\n </div>\n {option.children && option.children.map((child, childIndex) => this.renderSubOption(child, `${index}-${childIndex}`))}\n </div>\n );\n }\n\n isOptionSelected(option: Option): boolean {\n if (!option.children) return false;\n\n return option.children.every(child =>\n this.persistentSelectedOptions.some(persistentOption => persistentOption.value === child.value)\n );\n }\n\n\n isOptionIndeterminate(option: Option): boolean {\n if (!option.children) return false;\n\n const selectedChildren = option.children.filter(child =>\n this.persistentSelectedOptions.some(persistentOption => persistentOption.value === child.value)\n ).length;\n\n return selectedChildren > 0 && selectedChildren < option.children.length;\n }\n\n\n findInOptions(options: Option[], searchTerm: string): Option | null {\n for (const option of options) {\n if (option.value === searchTerm) {\n return option;\n }\n if (option.children) {\n const foundInChildren = this.findInOptions(option.children, searchTerm);\n if (foundInChildren) {\n return foundInChildren;\n }\n }\n }\n return null;\n }\n\n\n renderSubOption(option: Option, index: string) {\n const isSelected = this.persistentSelectedOptions.some(selectedOption => selectedOption.value === option.value);\n const disableCheckbox = !isSelected && this.maxItemCount && this.persistentSelectedOptions.length >= this.maxItemCount;\n const uniqueId = `checkbox-${option.value}-${index}`;\n\n return (\n <div class={`option sub-option ${isSelected ? 'selected' : ''} ${this.getSizeClass()} ${disableCheckbox ? 'disabled' : ''}`}\n data-value={option.value}\n role={`${option.children?.length > 0 ? \"option\" : \"treeitem\"}`}\n onKeyDown={(e) => !disableCheckbox && this.handleOptionKeyDown(e, option)}\n onClick={() => !disableCheckbox && this.handleOptionClick(option)}\n tabindex=\"0\">\n <ifx-checkbox tabIndex={-1} ref={(el) => option.checkboxRef = el} id={uniqueId} size=\"s\" checked={isSelected} disabled={disableCheckbox}></ifx-checkbox>\n <label htmlFor={uniqueId} onClick={(e) => e.stopPropagation()}>{option.label}</label>\n </div>\n );\n }\n\n private renderSelectAll() {\n const allSelected = this.persistentSelectedOptions.length === this.optionCount;\n const noneSelected = this.persistentSelectedOptions.length === 0;\n const indeterminate = this.optionCount > 0 && !noneSelected && !allSelected;\n\n const that = this;\n function toggleSelectAll() {\n if (allSelected) {\n that.clearSelection();\n } else {\n that.selectAll();\n }\n }\n\n function handleSelectAllKeydown(e: KeyboardEvent) {\n if(e.key !== 'ArrowUp' && e.key !== 'ArrowDown') e.stopPropagation();\n if(e.key === 'Enter' || e.key === ' ') {\n toggleSelectAll();\n }\n }\n\n return <div class=\"select-all-wrapper\">\n <div class={`option ${this.getSizeClass()}`} tabindex='0' onKeyDown={(e) => handleSelectAllKeydown(e)} onClick={toggleSelectAll}>\n <ifx-checkbox tabIndex={-1} id='selectAll' checked={allSelected} indeterminate={indeterminate} size=\"s\"></ifx-checkbox>\n <label htmlFor='selectAll'>Select all</label>\n </div>\n <ifx-dropdown-separator></ifx-dropdown-separator>\n </div>;\n }\n\n\n render() {\n // Create a label for the selected options\n const selectedOptionsLabels = this.persistentSelectedOptions\n .filter(option => {\n // check if option is a child and its parent is selected\n const isChildSelectedWithParent = this.persistentSelectedOptions.some(parentOption =>\n parentOption.children &&\n parentOption.children.some(child => child.value === option.value) &&\n parentOption.selected\n );\n return !isChildSelectedWithParent;\n })\n .map(option => option.label)\n .join(', ');\n\n return (\n <div class={`ifx-multiselect-container`} ref={el => this.dropdownElement = el as HTMLElement}>\n {\n this.label ?\n <div class=\"ifx-label-wrapper\">\n <span>{this.label}</span>\n </div> : null\n }\n <div class={`ifx-multiselect-wrapper \n ${this.getSizeClass()} \n ${this.dropdownOpen ? 'active' : ''} \n ${this.dropdownFlipped ? 'is-flipped' : ''}\n ${this.internalError ? 'error' : \"\"}\n ${this.disabled ? 'disabled' : \"\"}`}\n tabindex=\"0\"\n onClick={this.disabled ? undefined : (event) => this.handleWrapperClick(event)}\n onKeyDown={this.disabled ? undefined : (event) => this.handleKeyDown(event)} >\n <div class={`ifx-multiselect-input \n ${this.persistentSelectedOptions.length === 0 ? 'placeholder' : \"\"}\n `}\n onClick={this.disabled ? undefined : () => this.toggleDropdown()}\n >\n {this.persistentSelectedOptions.length > 0 ? selectedOptionsLabels : this.placeholder}\n </div>\n {this.dropdownOpen && (\n <div class=\"ifx-multiselect-dropdown-menu\"\n onScroll={(event) => this.handleScroll(event)}\n style={{ '--dynamic-z-index': this.zIndex.toString() }}>\n {this.showSearch && <input type=\"text\" role=\"textbox\" class=\"search-input\" onKeyDown={(e) => { e.stopPropagation() }} onInput={(event) => this.handleSearch(event.target)} placeholder=\"Search...\"></input>}\n {this.showSelectAll && this.renderSelectAll()}\n {this.filteredOptions.map((option, index) => this.renderOption(option, index))}\n {this.isLoading && <div>Loading more options...</div>}\n </div>\n )}\n <div class=\"ifx-multiselect-icon-container\">\n\n {/* Clear Button - will show only if there's a selection */}\n {this.persistentSelectedOptions.length > 0 && ( \n <div class=\"ifx-clear-button\" onClick={this.disabled ? undefined : () => this.clearSelection()}>\n <ifx-icon icon=\"cremove16\"></ifx-icon>\n </div>\n )}\n <div class=\"icon-wrapper-up\" onClick={this.disabled ? undefined : () => this.toggleDropdown()}>\n <ifx-icon\n key='icon-up'\n icon='chevronup-16'></ifx-icon>\n </div>\n <div class=\"icon-wrapper-down\" onClick={this.disabled ? undefined : () => this.toggleDropdown()}>\n <ifx-icon\n key='icon-down'\n icon='chevron-down-16'></ifx-icon>\n </div>\n </div>\n\n </div>\n {\n this.internalError ?\n <div class=\"ifx-error-message-wrapper\">\n <span>{this.internalErrorMessage}</span>\n </div> : null\n }\n </div>\n );\n }\n\n}\n","@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../global/font.scss\";\n\n:host {\n display: flex;\n}\n\n.textInput__container {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n padding: 0px;\n width: 100%;\n flex: none;\n order: 0;\n align-self: stretch;\n flex-grow: 0;\n font-family: var(--ifx-font-family);\n\n\n &.disabled {\n & .textInput__top-wrapper {\n & label {\n color: tokens.$ifxColorEngineering500;\n }\n }\n\n & .textInput__bottom-wrapper {\n input {\n border: 1px solid tokens.$ifxColorEngineering500;\n background-color: tokens.$ifxColorEngineering200;\n\n &::placeholder {\n font-size: tokens.$ifxFontSizeS;\n color: tokens.$ifxColorEngineering500;\n }\n }\n }\n }\n\n & .textInput__top-wrapper {\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n padding: 0px;\n gap: 4px;\n flex: none;\n order: 0;\n align-self: stretch;\n flex-grow: 0;\n\n & label {\n font-style: normal;\n font-weight: 400;\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n display: flex;\n align-items: center;\n color: tokens.$ifxColorBaseBlack;\n flex: none;\n order: 0;\n flex-grow: 0;\n\n & .optional-required {\n margin-left: 4px;\n }\n\n & .optional {\n margin-left: 4px;\n }\n\n & .required {\n margin-left: 4px;\n \n &.error {\n color: #CD002F;\n }\n }\n }\n }\n\n .input-container {\n position: relative;\n display: flex;\n align-items: center;\n width: 100%;\n }\n\n\n & .textInput__bottom-wrapper {\n flex-grow: 1;\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n padding: 0px;\n gap: 4px;\n flex: none;\n order: 1;\n align-self: stretch;\n flex-grow: 0;\n\n & input {\n width: 100%;\n box-sizing: border-box;\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: tokens.$ifxSpace100 tokens.$ifxSpace200;\n gap: tokens.$ifxSpace100;\n height: tokens.$ifxSize500;\n background-color: tokens.$ifxColorBaseWhite;\n color: tokens.$ifxColorBaseBlack;\n font-family: tokens.$ifxFontFamilyBody;\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n border: 1px solid tokens.$ifxColorEngineering400;\n border-radius: tokens.$ifxBorderRadius12;\n flex: none;\n order: 0;\n align-self: stretch;\n flex-grow: 0;\n text-overflow: ellipsis;\n\n &.input-s {\n height: tokens.$ifxSize450;\n font-size: tokens.$ifxFontSizeS;\n line-height: tokens.$ifxLineHeightS;\n\n &::placeholder {\n font-size: tokens.$ifxFontSizeS;\n line-height: tokens.$ifxLineHeightS;\n }\n\n }\n\n &.icon {\n padding-left: tokens.$ifxSpace500;\n }\n\n &.error {\n border: 1px solid #CD002F;\n\n &:focus {\n outline: none;\n }\n }\n\n &.success {\n border: 1px solid #4CA460;\n\n &:focus {\n outline: none;\n }\n }\n\n\n &:focus:not(.error, .success) {\n outline: none;\n border: 1px solid tokens.$ifxColorOcean500;\n }\n\n &:hover:not(:disabled, :focus, .error, .success) {\n border: 1px solid tokens.$ifxColorEngineering500;\n }\n\n &::placeholder {\n font-style: normal;\n font-weight: 400;\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n color: #8D8786;\n flex: none;\n order: 1;\n flex-grow: 1;\n }\n }\n\n & .input-icon {\n // Position the icon within the icon container\n // Adjust the positioning as needed\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n left: tokens.$ifxSpace200;\n /* Adjust this value to control the icon's left offset */\n transition: .3s;\n color: tokens.$ifxColorEngineering400;\n }\n\n & .textInput__bottom-wrapper-caption {\n font-style: normal;\n font-weight: 400;\n font-size: tokens.$ifxFontSizeXs;\n line-height: tokens.$ifxLineHeightXs;\n letter-spacing: 0.2px;\n color: tokens.$ifxColorBaseBlack;\n flex: none;\n order: 1;\n align-self: stretch;\n flex-grow: 0;\n\n &.error {\n color: #CD002F;\n\n }\n\n &.disabled {\n color: tokens.$ifxColorEngineering500;\n }\n }\n\n \n }\n .delete-icon {\n position: absolute;\n right: tokens.$ifxSpace200;\n\n :hover {\n cursor: pointer;\n }\n }\n}","import { Component, h, Event, Element, Prop, EventEmitter, Watch, Method, AttachInternals } from '@stencil/core';\n \n\n@Component({\n tag: 'ifx-text-field',\n styleUrl: 'text-field.scss',\n shadow: true,\n formAssociated: true\n})\n\nexport class TextField {\n private inputElement: HTMLInputElement;\n @Element() el;\n @Prop() placeholder: string = \"Placeholder\"\n @Prop({ mutable: true }) value: string = '';\n @Prop() error: boolean = false;\n @Prop() label: string = \"\";\n @Prop() icon: string = \"\";\n @Prop() caption: string = \"\";\n @Prop() size: string = 'm';\n @Prop() required: boolean = false;\n @Prop() optional: boolean = false;\n @Prop() success: boolean = false;\n @Prop() disabled: boolean = false;\n @Prop() maxlength?: number;\n @Prop() showDeleteIcon: boolean = false;\n @Event() ifxInput: EventEmitter<String>;\n // @Prop({ reflect: true })\n // resetOnSubmit: boolean = false;\n\n @AttachInternals() internals: ElementInternals;\n\n\n @Watch('value')\n valueWatcher(newValue: string) {\n if (newValue !== this.inputElement.value) {\n this.inputElement.value = newValue;\n }\n }\n\n @Method()\n async reset() {\n this.value = '';\n this.inputElement.value = '';\n }\n\n handleDeleteContent() {\n this.reset();\n this.ifxInput.emit(this.value);\n }\n\n handleInput() {\n const query = this.inputElement.value;\n this.value = query; // update the value property when input changes\n this.internals.setFormValue(query) // update form value\n this.ifxInput.emit(this.value);\n }\n\n formResetCallback() {\n this.internals.setValidity({});\n this.internals.setFormValue(\"\");\n }\n\n render() {\n return (\n <div aria-label=\"a text field for user input\" aria-value={this.value} aria-disabled={this.disabled} class={`textInput__container ${this.disabled ? 'disabled' : \"\"}`}>\n <div class=\"textInput__top-wrapper\">\n <label htmlFor=\"text-field\">\n <slot></slot>\n {this.optional && this.required ? (\n <span class=\"optional-required\">(optional) *</span>\n ) : this.optional ? (\n <span class=\"optional\">(optional)</span>\n ) : this.required ? (\n <span class={`required ${this.error ? 'error' : \"\"}`}>*</span>\n ) : null}\n </label>\n </div>\n\n <div class=\"textInput__bottom-wrapper\">\n <div class=\"input-container\">\n {this.icon && (\n <ifx-icon class='input-icon' icon={this.icon} />\n )}\n <input\n ref={(el) => (this.inputElement = el)}\n disabled={this.disabled}\n type=\"text\"\n id='text-field'\n value={this.value}\n onInput={() => this.handleInput()}\n placeholder={this.placeholder}\n maxlength={this.maxlength}\n class={\n `${this.icon ? 'icon' : \"\"}\n ${this.error ? 'error' : \"\"} \n ${this.size === \"s\" ? \"input-s\" : \"\"}\n ${this.success ? \"success\" : \"\"}`} />\n\n { (this.showDeleteIcon && this.value) && (\n <ifx-icon class=\"delete-icon\" icon=\"cremove16\" onClick={() => this.handleDeleteContent()}></ifx-icon> \n )}\n </div>\n {this.caption && !this.error &&\n <div class={`textInput__bottom-wrapper-caption ${this.disabled} ? disabled : \"\"`}>\n {this.caption}\n </div>}\n {this.error &&\n <div class=\"textInput__bottom-wrapper-caption error\">\n {this.caption}\n </div>}\n </div>\n </div>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as e,h as r}from"./p-014d2c5a.js";import{c as i}from"./p-5cdc6210.js";const t=":host{display:inline-block}.spinner{position:relative;width:40px;height:40px}.spinner.s{width:24px;height:24px}.border{box-sizing:border-box;position:absolute;width:100%;height:100%;border:4px solid transparent;border-top-color:#0A8276;border-left-color:#0A8276;border-right-color:#0A8276;border-top-left-radius:1px;border-top-right-radius:1px;border-radius:50%;animation:spin 2s linear infinite}.border.inverted{border-top-color:#FFFFFF;border-left-color:#FFFFFF;border-right-color:#FFFFFF}.semiconductor{width:100%;height:100%;animation:spin 2s linear infinite}.semiconductor svg{fill:#0A8276}.semiconductor.inverted svg{fill:#FFFFFF}.semiconductor.s svg{width:24px;height:24px}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}";const s=t;const o=class{constructor(r){e(this,r);this.inverted=false}render(){return r("div",{key:"6db48f54c2484025c92300c3c63698d4f16965ff","aria-label":"spinner indicating a loading process",class:this.getClassNames()},r("div",{key:"85f604c1cae6f9e290f5a07cdab730cb4ce445c1",class:`${this.variant!=="brand"?"border":""} ${this.inverted?"inverted":""}`}),this.variant==="brand"&&r("div",{key:"6a3132d2ebb933fbd4007dbf9cfb2943078939ed",class:`semiconductor ${this.inverted?"inverted":""} ${this.getSizeClass()}`},r("svg",{key:"22f7f2edd61e25e6c73c2fa18738f4c2f9c67e44",width:"40",height:"40",viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg"},r("g",{key:"4d72092059485d2bb662cc2451f20953afcf5200",id:"spinner/conductor"},r("path",{key:"9cbec7c69604cd24de46bd63b336f224a386c23b",id:"Vector",d:"M38.75 18.75C39.4375 18.75 40 19.3125 40 20C40 20.6875 39.4409 21.25 38.75 21.25H35V26.25H38.75C39.4375 26.25 40 26.8125 40 27.5C40 28.1875 39.4409 28.75 38.75 28.75H35V30C35 32.7617 32.7617 35 30 35H28.75V38.75C28.75 39.4409 28.1875 40 27.5 40C26.8125 40 26.25 39.4409 26.25 38.75V35H21.25V38.75C21.25 39.4409 20.6875 40 20 40C19.3125 40 18.75 39.4409 18.75 38.75V35H13.75V38.75C13.75 39.4409 13.1875 40 12.5 40C11.8125 40 11.25 39.4409 11.25 38.75V35H10C7.23828 35 5 32.7617 5 30V28.75H1.25C0.559062 28.75 0 28.1875 0 27.5C0 26.8125 0.559062 26.25 1.25 26.25H5V21.25H1.25C0.559062 21.25 0 20.6875 0 20C0 19.3125 0.559062 18.75 1.25 18.75H5V13.75H1.25C0.559062 13.75 0 13.1875 0 12.5C0 11.8125 0.559062 11.25 1.25 11.25H5V10C5 7.23828 7.23828 5 10 5H11.25V1.25C11.25 0.5625 11.8125 0 12.5 0C13.1875 0 13.75 0.559063 13.75 1.25V5H18.75V1.25C18.75 0.559063 19.3091 0 20 0C20.6909 0 21.25 0.559063 21.25 1.25V5H26.25V1.25C26.25 0.559063 26.8091 0 27.5 0C28.1909 0 28.75 0.559063 28.75 1.25V5H30C32.7617 5 35 7.23828 35 10V11.25H38.75C39.4409 11.25 40 11.8091 40 12.5C40 13.1909 39.4409 13.75 38.75 13.75H35V18.75H38.75ZM32.5 10C32.5 8.62188 31.3781 7.5 30 7.5H10C8.62187 7.5 7.5 8.62188 7.5 10V30C7.5 31.3781 8.62187 32.5 10 32.5H30C31.3781 32.5 32.5 31.3781 32.5 30V10Z"})))))}getSizeClass(){return`${this.size}`==="s"?"s":""}getClassNames(){return i("spinner",this.size&&`spinner ${this.getSizeClass()}`)}};o.style=s;export{o as ifx_spinner};
2
- //# sourceMappingURL=p-40f16247.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["spinnerCss","IfxSpinnerStyle0","Spinner","constructor","hostRef","this","inverted","render","h","key","class","getClassNames","variant","getSizeClass","width","height","viewBox","fill","xmlns","id","d","size","classNames"],"sources":["src/components/spinner/spinner.scss?tag=ifx-spinner&encapsulation=shadow","src/components/spinner/spinner.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n\n:host {\n display: inline-block;\n\n}\n\n.spinner {\n position: relative;\n width: tokens.$ifxSize500;\n height: tokens.$ifxSize500;\n\n}\n\n.spinner.s {\n width: tokens.$ifxSize300;\n height: tokens.$ifxSize300;\n}\n\n.border {\n box-sizing: border-box;\n position: absolute;\n width: 100%;\n height: 100%;\n border: 4px solid transparent;\n border-top-color: tokens.$ifxColorOcean500;\n border-left-color: tokens.$ifxColorOcean500;\n border-right-color: tokens.$ifxColorOcean500;\n border-top-left-radius: 1px;\n border-top-right-radius: 1px;\n border-radius: 50%;\n animation: spin 2s linear infinite;\n\n &.inverted {\n border-top-color: tokens.$ifxColorBaseWhite;\n border-left-color: tokens.$ifxColorBaseWhite;\n border-right-color: tokens.$ifxColorBaseWhite;\n }\n}\n\n.semiconductor {\n width: 100%;\n height: 100%;\n animation: spin 2s linear infinite;\n\n & svg {\n fill: tokens.$ifxColorOcean500;\n }\n\n &.inverted {\n & svg {\n fill: tokens.$ifxColorBaseWhite;\n }\n }\n\n &.s {\n & svg {\n width: tokens.$ifxSize300;\n height: tokens.$ifxSize300;\n }\n }\n}\n\n\n@keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n}","import { Component, h, Prop } from '@stencil/core';\nimport classNames from 'classnames';\n \n\n@Component({\n tag: 'ifx-spinner',\n styleUrl: 'spinner.scss',\n shadow: true,\n})\nexport class Spinner {\n @Prop() size: string;\n @Prop() variant: string;\n @Prop() inverted: boolean = false;\n\n\n render() {\n return (\n <div aria-label=\"spinner indicating a loading process\" class={this.getClassNames()}>\n <div class={`${this.variant !== 'brand' ? 'border' : \"\"} ${this.inverted ? 'inverted' : \"\"}`}></div>\n {this.variant === 'brand'\n && <div class={`semiconductor ${this.inverted ? 'inverted' : \"\"} ${this.getSizeClass()}`}>\n <svg width='40' height='40' viewBox=\"0 0 40 40\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <g id=\"spinner/conductor\">\n <path id=\"Vector\" d=\"M38.75 18.75C39.4375 18.75 40 19.3125 40 20C40 20.6875 39.4409 21.25 38.75 21.25H35V26.25H38.75C39.4375 26.25 40 26.8125 40 27.5C40 28.1875 39.4409 28.75 38.75 28.75H35V30C35 32.7617 32.7617 35 30 35H28.75V38.75C28.75 39.4409 28.1875 40 27.5 40C26.8125 40 26.25 39.4409 26.25 38.75V35H21.25V38.75C21.25 39.4409 20.6875 40 20 40C19.3125 40 18.75 39.4409 18.75 38.75V35H13.75V38.75C13.75 39.4409 13.1875 40 12.5 40C11.8125 40 11.25 39.4409 11.25 38.75V35H10C7.23828 35 5 32.7617 5 30V28.75H1.25C0.559062 28.75 0 28.1875 0 27.5C0 26.8125 0.559062 26.25 1.25 26.25H5V21.25H1.25C0.559062 21.25 0 20.6875 0 20C0 19.3125 0.559062 18.75 1.25 18.75H5V13.75H1.25C0.559062 13.75 0 13.1875 0 12.5C0 11.8125 0.559062 11.25 1.25 11.25H5V10C5 7.23828 7.23828 5 10 5H11.25V1.25C11.25 0.5625 11.8125 0 12.5 0C13.1875 0 13.75 0.559063 13.75 1.25V5H18.75V1.25C18.75 0.559063 19.3091 0 20 0C20.6909 0 21.25 0.559063 21.25 1.25V5H26.25V1.25C26.25 0.559063 26.8091 0 27.5 0C28.1909 0 28.75 0.559063 28.75 1.25V5H30C32.7617 5 35 7.23828 35 10V11.25H38.75C39.4409 11.25 40 11.8091 40 12.5C40 13.1909 39.4409 13.75 38.75 13.75H35V18.75H38.75ZM32.5 10C32.5 8.62188 31.3781 7.5 30 7.5H10C8.62187 7.5 7.5 8.62188 7.5 10V30C7.5 31.3781 8.62187 32.5 10 32.5H30C31.3781 32.5 32.5 31.3781 32.5 30V10Z\" />\n </g>\n </svg>\n </div>}\n </div>\n );\n }\n\n getSizeClass() {\n return `${this.size}` === \"s\"\n ? \"s\"\n : \"\";\n }\n\n getClassNames() {\n return classNames(\n 'spinner',\n this.size && `spinner ${this.getSizeClass()}`\n );\n }\n}\n"],"mappings":"+EAAA,MAAMA,EAAa,ovBACnB,MAAAC,EAAeD,E,MCQFE,EAAO,MALpB,WAAAC,CAAAC,G,UAQUC,KAAAC,SAAoB,K,CAG5B,MAAAC,GACE,OACEC,EAAA,OAAAC,IAAA,wDAAgB,uCAAuCC,MAAOL,KAAKM,iBACjEH,EAAA,OAAAC,IAAA,2CAAKC,MAAO,GAAGL,KAAKO,UAAY,QAAU,SAAW,MAAMP,KAAKC,SAAW,WAAa,OACvFD,KAAKO,UAAY,SACbJ,EAAA,OAAAC,IAAA,2CAAKC,MAAO,iBAAiBL,KAAKC,SAAW,WAAa,MAAMD,KAAKQ,kBACtEL,EAAA,OAAAC,IAAA,2CAAKK,MAAM,KAAKC,OAAO,KAAKC,QAAQ,YAAYC,KAAK,OAAOC,MAAM,8BAChEV,EAAA,KAAAC,IAAA,2CAAGU,GAAG,qBACJX,EAAA,QAAAC,IAAA,2CAAMU,GAAG,SAASC,EAAE,4vC,CAQlC,YAAAP,GACE,MAAO,GAAGR,KAAKgB,SAAW,IACtB,IACA,E,CAGN,aAAAV,GACE,OAAOW,EACL,UACAjB,KAAKgB,MAAQ,WAAWhB,KAAKQ,iB","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as e,c as r,h as i}from"./p-014d2c5a.js";const t=':root{--ifx-font-family:"Source Sans 3";font-family:var(--ifx-font-family, sans-serif)}:host{display:block}.alert__info-wrapper{display:flex;padding:16px 24px;font-family:var(--ifx-font-family);box-shadow:0px 6px 9px 0px rgba(29, 29, 29, 0.1019607843)}.alert__info-wrapper .info__text-wrapper{display:flex;flex-direction:column;gap:8px;width:100%}.alert__info-wrapper .info__text-wrapper .info__headline-wrapper{display:-webkit-box;-webkit-line-clamp:1;line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.alert__info-wrapper .info__text-wrapper .info__headline-wrapper,.alert__info-wrapper .info__text-wrapper .info__description-wrapper{color:#1D1D1D;font-size:16px;font-style:normal;font-weight:600;line-height:24px}.alert__info-wrapper .info__text-wrapper .info__headline-wrapper ::slotted(p),.alert__info-wrapper .info__text-wrapper .info__description-wrapper ::slotted(p){padding:0;margin:0}.alert__info-wrapper .info__text-wrapper .info__description-wrapper{font-weight:400}.alert__info-wrapper .close-icon-wrapper{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start}.alert__info-wrapper .close-icon-wrapper button{all:unset;display:flex;align-items:center;justify-content:center;line-height:0;color:#1D1D1D;height:24px;width:24px}.alert__info-wrapper .close-icon-wrapper button:focus{outline:2px solid #0A8276;outline-offset:2px}.alert{display:flex;border:1px solid #0A8276;border-radius:1px;color:#1D1D1D;background-color:#FFFFFF;font-family:var(--ifx-font-family);box-shadow:0px 6px 9px 0px rgba(29, 29, 29, 0.1019607843)}.alert .close-icon-wrapper{display:flex;align-items:center;justify-content:center;min-width:40px}.alert .close-icon-wrapper button{all:unset;display:flex;align-items:center;justify-content:center;line-height:0;color:#1D1D1D;height:24px;width:24px}.alert .close-icon-wrapper button:focus{outline:2px solid #0A8276;outline-offset:2px}.alert .icon-wrapper{position:relative;min-width:48px;display:flex;justify-content:center;align-items:center;background-color:#0A8276}.alert .alert-text{font-size:16px;width:100%;padding:12px 0px 12px 12px;color:#1D1D1D;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:anywhere;}.alert.primary{border:1px solid #0A8276}.alert.primary .icon-wrapper{background-color:#0A8276;color:#FFFFFF}.alert.success{border:1px solid #4CA460}.alert.success .icon-wrapper{background-color:#4CA460;color:#FFFFFF}.alert.danger{border:1px solid #CD002F}.alert.danger .icon-wrapper{background-color:#CD002F;color:#FFFFFF}.alert.warning{border:1px solid #E16B25}.alert.warning .icon-wrapper{background-color:#E16B25;color:#FFFFFF}.close-icon-wrapper ifx-icon:hover{cursor:pointer}';const o=t;const a=class{constructor(i){e(this,i);this.ifxClose=r(this,"ifxClose",7);this.variant="primary";this.closable=true;this.AriaLive="assertive";this.alertTypeDescription={primary:"Neutral alert",success:"Success Alert",danger:"Error Alert",warning:"Warning Alert",info:"Neutral alert"}}handleClose(){this.ifxClose.emit()}renderCloseButton(){return i("div",{class:"close-icon-wrapper"},i("button",{onClick:this.handleClose.bind(this),"aria-label":"Dismiss alert"},i("ifx-icon",{icon:"cross-16"})))}generateUniqueId(e="id"){return`${e}-${Math.random().toString(36).substring(2,9)}`}componentWillLoad(){if(!this.uniqueId){this.uniqueId=this.generateUniqueId("alert")}}render(){return this.variant==="info"?i("div",{class:"alert__info-wrapper",role:"alert","aria-live":this.AriaLive,"aria-describedby":this.alertTypeDescription[this.variant],"aria-labelledby":"alert-text alert-description"},i("div",{class:"info__text-wrapper"},i("div",{class:"info__headline-wrapper"},i("slot",{name:"headline"})),i("div",{id:`alert-description-${this.uniqueId}`,class:"info__description-wrapper"},i("slot",{name:"desc"}))),this.closable?this.renderCloseButton():null):i("div",{class:`alert ${this.variant}`,role:"alert"},this.icon&&i("div",{class:"icon-wrapper"},i("ifx-icon",{icon:this.icon})),i("div",{class:"alert-text",id:`alert-text-${this.uniqueId}`},i("slot",null)),this.closable?this.renderCloseButton():null)}};a.style=o;export{a as ifx_alert};
2
- //# sourceMappingURL=p-480d7667.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["alertCss","IfxAlertStyle0","Alert","constructor","hostRef","this","variant","closable","AriaLive","alertTypeDescription","primary","success","danger","warning","info","handleClose","ifxClose","emit","renderCloseButton","h","class","onClick","bind","icon","generateUniqueId","prefix","Math","random","toString","substring","componentWillLoad","uniqueId","render","role","name","id"],"sources":["src/components/alert/alert.scss?tag=ifx-alert&encapsulation=shadow","src/components/alert/alert.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../global/font.scss\";\n\n:host {\n display: block;\n}\n\n.alert__info-wrapper {\n display: flex;\n padding: 16px 24px;\n font-family: var(--ifx-font-family);\n box-shadow: 0px 6px 9px 0px #1D1D1D1A;\n\n\n & .info__text-wrapper {\n display: flex;\n flex-direction: column;\n gap: tokens.$ifxSpace100;\n width: 100%;\n\n & .info__headline-wrapper {\n display: -webkit-box;\n -webkit-line-clamp: 1;\n line-clamp: 1;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n & .info__headline-wrapper,\n .info__description-wrapper {\n color: #1D1D1D;\n font-size: 16px;\n font-style: normal;\n font-weight: 600;\n line-height: 24px;\n\n ::slotted(p) {\n padding: 0;\n margin: 0;\n }\n }\n\n & .info__description-wrapper {\n font-weight: 400;\n }\n }\n\n & .close-icon-wrapper {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: flex-start;\n //min-width: tokens.$ifxSize500;\n\n & button {\n all: unset;\n display: flex;\n align-items: center;\n justify-content: center;\n line-height: 0;\n color: tokens.$ifxColorBaseBlack;\n height: tokens.$ifxSize300;\n width: tokens.$ifxSize300;\n\n\n &:focus {\n outline: 2px solid tokens.$ifxColorOcean500;\n outline-offset: 2px;\n }\n }\n }\n}\n\n.alert {\n display: flex;\n border: 1px solid tokens.$ifxColorOcean500;\n border-radius: tokens.$ifxBorderRadius12;\n color: tokens.$ifxColorBaseBlack;\n background-color: tokens.$ifxColorBaseWhite;\n font-family: var(--ifx-font-family);\n box-shadow: 0px 6px 9px 0px #1D1D1D1A;\n\n\n & .close-icon-wrapper {\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: tokens.$ifxSize500;\n\n & button {\n all: unset;\n display: flex;\n align-items: center;\n justify-content: center;\n line-height: 0;\n color: tokens.$ifxColorBaseBlack;\n height: tokens.$ifxSize300;\n width: tokens.$ifxSize300;\n\n &:focus {\n outline: 2px solid tokens.$ifxColorOcean500;\n outline-offset: 2px;\n }\n }\n }\n\n & .icon-wrapper {\n position: relative;\n min-width: tokens.$ifxSize600;\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: tokens.$ifxColorOcean500;\n }\n\n & .alert-text {\n font-size: 16px;\n width: 100%;\n padding: 12px 0px 12px 12px;\n color: tokens.$ifxColorBaseBlack;\n\n white-space: pre-wrap;\n /* wraps text at spaces and within words */\n word-wrap: break-word;\n /* breaks text within a word if necessary */\n overflow-wrap: anywhere;\n /* breaks text at arbitrary points when needed */\n }\n\n &.primary {\n border: 1px solid tokens.$ifxColorOcean500;\n\n & .icon-wrapper {\n background-color: tokens.$ifxColorOcean500;\n color: tokens.$ifxColorBaseWhite;\n }\n }\n\n &.success {\n border: 1px solid tokens.$ifxColorGreen500;\n\n & .icon-wrapper {\n background-color: tokens.$ifxColorGreen500;\n color: tokens.$ifxColorBaseWhite;\n }\n }\n\n &.danger {\n border: 1px solid tokens.$ifxColorRed500;\n\n & .icon-wrapper {\n background-color: tokens.$ifxColorRed500;\n color: tokens.$ifxColorBaseWhite;\n }\n }\n\n &.warning {\n border: 1px solid tokens.$ifxColorOrange500;\n\n & .icon-wrapper {\n background-color: tokens.$ifxColorOrange500;\n color: tokens.$ifxColorBaseWhite;\n }\n }\n}\n\n.close-icon-wrapper {\n & ifx-icon {\n &:hover {\n cursor: pointer;\n }\n }\n}","import { Component, Prop, h, Event, EventEmitter, State } from '@stencil/core';\n\n@Component({\n tag: 'ifx-alert',\n styleUrl: 'alert.scss',\n shadow: true,\n})\nexport class Alert {\n @Prop() variant: 'primary' | 'success' | 'danger' | 'warning' | 'info' = 'primary';\n @Prop() icon: string;\n @Event() ifxClose: EventEmitter;\n @Prop() closable: boolean = true;\n @Prop() AriaLive = 'assertive';\n @State() uniqueId: string;\n\n alertTypeDescription = {\n \"primary\": 'Neutral alert',\n \"success\": 'Success Alert',\n \"danger\": 'Error Alert',\n \"warning\": 'Warning Alert',\n \"info\": 'Neutral alert',\n };\n\n handleClose() {\n this.ifxClose.emit();\n }\n\n renderCloseButton() {\n return (\n <div class=\"close-icon-wrapper\">\n <button onClick={this.handleClose.bind(this)} aria-label=\"Dismiss alert\">\n <ifx-icon icon=\"cross-16\" />\n </button>\n </div>\n );\n }\n\n generateUniqueId(prefix = 'id') {\n return `${prefix}-${Math.random().toString(36).substring(2, 9)}`;\n }\n\n componentWillLoad() { \n if (!this.uniqueId) {\n this.uniqueId = this.generateUniqueId('alert');\n }\n }\n\n render() {\n return this.variant === 'info' ? (\n <div class=\"alert__info-wrapper\" role=\"alert\" aria-live={this.AriaLive} aria-describedby={this.alertTypeDescription[this.variant]} aria-labelledby=\"alert-text alert-description\">\n <div class=\"info__text-wrapper\">\n <div class=\"info__headline-wrapper\">\n <slot name=\"headline\" />\n </div>\n <div id={`alert-description-${this.uniqueId}`} class=\"info__description-wrapper\">\n <slot name=\"desc\" />\n </div>\n </div>\n {this.closable ? this.renderCloseButton() : null}\n </div>\n ) : (\n <div class={`alert ${this.variant}`} role=\"alert\">\n {this.icon && (\n <div class=\"icon-wrapper\">\n <ifx-icon icon={this.icon} />\n </div>\n )}\n <div class=\"alert-text\" id={`alert-text-${this.uniqueId}`}>\n <slot />\n </div>\n {this.closable ? this.renderCloseButton() : null}\n </div>\n );\n }\n}\n"],"mappings":"kDAAA,MAAMA,EAAW,qoFACjB,MAAAC,EAAeD,E,MCMFE,EAAK,MALlB,WAAAC,CAAAC,G,6CAMUC,KAAAC,QAAiE,UAGjED,KAAAE,SAAoB,KACpBF,KAAAG,SAAW,YAGnBH,KAAAI,qBAAuB,CACrBC,QAAW,gBACXC,QAAW,gBACXC,OAAU,cACVC,QAAW,gBACXC,KAAQ,gB,CAGV,WAAAC,GACEV,KAAKW,SAASC,M,CAGhB,iBAAAC,GACE,OACEC,EAAA,OAAKC,MAAM,sBACTD,EAAA,UAAQE,QAAShB,KAAKU,YAAYO,KAAKjB,MAAK,aAAa,iBACvDc,EAAA,YAAUI,KAAK,c,CAMvB,gBAAAC,CAAiBC,EAAS,MACxB,MAAO,GAAGA,KAAUC,KAAKC,SAASC,SAAS,IAAIC,UAAU,EAAG,I,CAG9D,iBAAAC,GACE,IAAKzB,KAAK0B,SAAU,CAClB1B,KAAK0B,SAAW1B,KAAKmB,iBAAiB,Q,EAI1C,MAAAQ,GACE,OAAO3B,KAAKC,UAAY,OACtBa,EAAA,OAAKC,MAAM,sBAAsBa,KAAK,QAAO,YAAY5B,KAAKG,SAAQ,mBAAoBH,KAAKI,qBAAqBJ,KAAKC,SAAQ,kBAAkB,gCACjJa,EAAA,OAAKC,MAAM,sBACTD,EAAA,OAAKC,MAAM,0BACTD,EAAA,QAAMe,KAAK,cAEbf,EAAA,OAAKgB,GAAI,qBAAqB9B,KAAK0B,WAAYX,MAAM,6BACnDD,EAAA,QAAMe,KAAK,WAGd7B,KAAKE,SAAWF,KAAKa,oBAAsB,MAG9CC,EAAA,OAAKC,MAAO,SAASf,KAAKC,UAAW2B,KAAK,SACvC5B,KAAKkB,MACJJ,EAAA,OAAKC,MAAM,gBACTD,EAAA,YAAUI,KAAMlB,KAAKkB,QAGzBJ,EAAA,OAAKC,MAAM,aAAae,GAAI,cAAc9B,KAAK0B,YAC7CZ,EAAA,cAEDd,KAAKE,SAAWF,KAAKa,oBAAsB,K","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r,h as s}from"./p-014d2c5a.js";const o=":host{display:inline-block;cursor:pointer}";const e=o;const t=class{constructor(s){r(this,s);this.isOpen=false}render(){return s("slot",{key:"3e51ceb827b5c52cb850e6433d3235e9400fe5c0"})}};t.style=e;export{t as ifx_dropdown_trigger};
2
- //# sourceMappingURL=p-ef18e376.entry.js.map
@@ -1,2 +0,0 @@
1
- import{r as t,c as s,h as c,g as e}from"./p-014d2c5a.js";const a=":host{display:block}";const o=a;const r=class{constructor(c){t(this,c);this.tabHeaderChange=s(this,"tabHeaderChange",7);this.icon="";this.iconPosition="left"}componentWillUpdate(){this.tabHeaderChange.emit(this.header)}render(){return c("slot",{key:"68fdfaa881c7619f208c32bf8f1ec579997fc7cf"})}get el(){return e(this)}};r.style=o;export{r as ifx_tab};
2
- //# sourceMappingURL=p-efde6e57.entry.js.map
@@ -1,2 +0,0 @@
1
- import{r,h as o}from"./p-014d2c5a.js";const a=".dropdown-separator{height:1px;background-color:#EEEDED;margin:8px 16px}";const c=a;const s=class{constructor(o){r(this,o)}render(){return o("div",{key:"2c7435f309112c640c3ff68a244d3c663ceb5b7a",class:"dropdown-separator"})}};s.style=c;export{s as ifx_dropdown_separator};
2
- //# sourceMappingURL=p-f0067aa9.entry.js.map