@infineon/infineon-design-system-stencil 39.5.3--canary.2139.e4938f63762e51c5b6c1bdf4c1421264956fa3fc.0 → 39.5.3--canary.2139.d0b33fbe33894b18307e791c76e8f04ff38af687.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 (755) hide show
  1. package/dist/cjs/ifx-accordion.ifx-accordion-item.entry.cjs.js.map +1 -1
  2. package/dist/cjs/ifx-accordion_2.cjs.entry.js +3 -3
  3. package/dist/cjs/ifx-accordion_2.cjs.entry.js.map +1 -1
  4. package/dist/cjs/ifx-action-list-item.cjs.entry.js +2 -2
  5. package/dist/cjs/ifx-action-list-item.cjs.entry.js.map +1 -1
  6. package/dist/cjs/ifx-action-list-item.entry.cjs.js.map +1 -1
  7. package/dist/cjs/ifx-action-list.cjs.entry.js +2 -2
  8. package/dist/cjs/ifx-action-list.cjs.entry.js.map +1 -1
  9. package/dist/cjs/ifx-action-list.entry.cjs.js.map +1 -1
  10. package/dist/cjs/ifx-alert.ifx-template.entry.cjs.js.map +1 -1
  11. package/dist/cjs/ifx-alert_2.cjs.entry.js +2 -2
  12. package/dist/cjs/ifx-alert_2.cjs.entry.js.map +1 -1
  13. package/dist/cjs/ifx-basic-table.cjs.entry.js +2 -2
  14. package/dist/cjs/ifx-basic-table.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ifx-basic-table.entry.cjs.js.map +1 -1
  16. package/dist/cjs/ifx-breadcrumb-item-label.cjs.entry.js +2 -2
  17. package/dist/cjs/ifx-breadcrumb-item-label.cjs.entry.js.map +1 -1
  18. package/dist/cjs/ifx-breadcrumb-item-label.entry.cjs.js.map +1 -1
  19. package/dist/cjs/ifx-breadcrumb-item.cjs.entry.js +2 -2
  20. package/dist/cjs/ifx-breadcrumb-item.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ifx-breadcrumb-item.entry.cjs.js.map +1 -1
  22. package/dist/cjs/ifx-breadcrumb.cjs.entry.js +2 -2
  23. package/dist/cjs/ifx-breadcrumb.cjs.entry.js.map +1 -1
  24. package/dist/cjs/ifx-breadcrumb.entry.cjs.js.map +1 -1
  25. package/dist/cjs/ifx-button.cjs.entry.js +2 -2
  26. package/dist/cjs/ifx-button.cjs.entry.js.map +1 -1
  27. package/dist/cjs/ifx-button.entry.cjs.js.map +1 -1
  28. package/dist/cjs/ifx-card-headline.cjs.entry.js +2 -2
  29. package/dist/cjs/ifx-card-headline.cjs.entry.js.map +1 -1
  30. package/dist/cjs/ifx-card-headline.entry.cjs.js.map +1 -1
  31. package/dist/cjs/ifx-card-image.cjs.entry.js +1 -1
  32. package/dist/cjs/ifx-card-links.cjs.entry.js +2 -2
  33. package/dist/cjs/ifx-card-links.cjs.entry.js.map +1 -1
  34. package/dist/cjs/ifx-card-links.entry.cjs.js.map +1 -1
  35. package/dist/cjs/ifx-card-overline.cjs.entry.js +2 -2
  36. package/dist/cjs/ifx-card-overline.cjs.entry.js.map +1 -1
  37. package/dist/cjs/ifx-card-overline.entry.cjs.js.map +1 -1
  38. package/dist/cjs/ifx-card-text.cjs.entry.js +2 -2
  39. package/dist/cjs/ifx-card-text.cjs.entry.js.map +1 -1
  40. package/dist/cjs/ifx-card-text.entry.cjs.js.map +1 -1
  41. package/dist/cjs/ifx-card.cjs.entry.js +2 -2
  42. package/dist/cjs/ifx-card.cjs.entry.js.map +1 -1
  43. package/dist/cjs/ifx-card.entry.cjs.js.map +1 -1
  44. package/dist/cjs/ifx-checkbox-group.cjs.entry.js +2 -2
  45. package/dist/cjs/ifx-checkbox-group.cjs.entry.js.map +1 -1
  46. package/dist/cjs/ifx-checkbox-group.entry.cjs.js.map +1 -1
  47. package/dist/cjs/ifx-checkbox.cjs.entry.js +1 -1
  48. package/dist/cjs/ifx-chip.ifx-chip-item.ifx-pagination.entry.cjs.js.map +1 -1
  49. package/dist/cjs/ifx-chip_3.cjs.entry.js +4 -4
  50. package/dist/cjs/ifx-chip_3.cjs.entry.js.map +1 -1
  51. package/dist/cjs/ifx-content-switcher-item.cjs.entry.js +1 -1
  52. package/dist/cjs/ifx-content-switcher.cjs.entry.js +1 -1
  53. package/dist/cjs/ifx-date-picker.cjs.entry.js +1 -1
  54. package/dist/cjs/ifx-download.cjs.entry.js +1 -1
  55. package/dist/cjs/ifx-dropdown-header.cjs.entry.js +2 -2
  56. package/dist/cjs/ifx-dropdown-header.cjs.entry.js.map +1 -1
  57. package/dist/cjs/ifx-dropdown-header.entry.cjs.js.map +1 -1
  58. package/dist/cjs/ifx-dropdown-item.cjs.entry.js +2 -2
  59. package/dist/cjs/ifx-dropdown-item.cjs.entry.js.map +1 -1
  60. package/dist/cjs/ifx-dropdown-item.entry.cjs.js.map +1 -1
  61. package/dist/cjs/ifx-dropdown-menu.cjs.entry.js +1 -1
  62. package/dist/cjs/ifx-dropdown-separator.cjs.entry.js +1 -1
  63. package/dist/cjs/ifx-dropdown-trigger-button.cjs.entry.js +1 -1
  64. package/dist/cjs/ifx-dropdown-trigger.cjs.entry.js +1 -1
  65. package/dist/cjs/ifx-dropdown.cjs.entry.js +1 -1
  66. package/dist/cjs/ifx-faq.cjs.entry.js +1 -1
  67. package/dist/cjs/ifx-file-upload.cjs.entry.js +2 -2
  68. package/dist/cjs/ifx-file-upload.cjs.entry.js.map +1 -1
  69. package/dist/cjs/ifx-file-upload.entry.cjs.js.map +1 -1
  70. package/dist/cjs/ifx-filter-accordion.cjs.entry.js +1 -1
  71. package/dist/cjs/ifx-filter-bar.cjs.entry.js +1 -1
  72. package/dist/cjs/ifx-filter-search.cjs.entry.js +1 -1
  73. package/dist/cjs/ifx-filter-type-group.cjs.entry.js +1 -1
  74. package/dist/cjs/ifx-footer-column.cjs.entry.js +2 -2
  75. package/dist/cjs/ifx-footer-column.cjs.entry.js.map +1 -1
  76. package/dist/cjs/ifx-footer-column.entry.cjs.js.map +1 -1
  77. package/dist/cjs/ifx-footer.cjs.entry.js +2 -2
  78. package/dist/cjs/ifx-footer.cjs.entry.js.map +1 -1
  79. package/dist/cjs/ifx-footer.entry.cjs.js.map +1 -1
  80. package/dist/cjs/ifx-icon-button.cjs.entry.js +1 -1
  81. package/dist/cjs/ifx-icon.cjs.entry.js +1 -1
  82. package/dist/cjs/ifx-icons-preview.cjs.entry.js +1 -1
  83. package/dist/cjs/ifx-indicator.cjs.entry.js +2 -2
  84. package/dist/cjs/ifx-indicator.cjs.entry.js.map +1 -1
  85. package/dist/cjs/ifx-indicator.entry.cjs.js.map +1 -1
  86. package/dist/cjs/ifx-link.cjs.entry.js +2 -2
  87. package/dist/cjs/ifx-link.cjs.entry.js.map +1 -1
  88. package/dist/cjs/ifx-link.entry.cjs.js.map +1 -1
  89. package/dist/cjs/ifx-list-entry.cjs.entry.js +1 -1
  90. package/dist/cjs/ifx-list.cjs.entry.js +1 -1
  91. package/dist/cjs/ifx-modal.cjs.entry.js +2 -2
  92. package/dist/cjs/ifx-modal.cjs.entry.js.map +1 -1
  93. package/dist/cjs/ifx-modal.entry.cjs.js.map +1 -1
  94. package/dist/cjs/ifx-multiselect.ifx-multiselect-option.entry.cjs.js.map +1 -1
  95. package/dist/cjs/ifx-multiselect_2.cjs.entry.js +2 -2
  96. package/dist/cjs/ifx-multiselect_2.cjs.entry.js.map +1 -1
  97. package/dist/cjs/ifx-navbar-item.cjs.entry.js +1 -1
  98. package/dist/cjs/ifx-navbar-profile.cjs.entry.js +1 -1
  99. package/dist/cjs/ifx-navbar.cjs.entry.js +2 -2
  100. package/dist/cjs/ifx-navbar.cjs.entry.js.map +1 -1
  101. package/dist/cjs/ifx-navbar.entry.cjs.js.map +1 -1
  102. package/dist/cjs/ifx-notification.cjs.entry.js +2 -2
  103. package/dist/cjs/ifx-notification.cjs.entry.js.map +1 -1
  104. package/dist/cjs/ifx-notification.entry.cjs.js.map +1 -1
  105. package/dist/cjs/ifx-overview-table.cjs.entry.js +1 -1
  106. package/dist/cjs/ifx-progress-bar.cjs.entry.js +2 -2
  107. package/dist/cjs/ifx-progress-bar.cjs.entry.js.map +1 -1
  108. package/dist/cjs/ifx-progress-bar.entry.cjs.js.map +1 -1
  109. package/dist/cjs/ifx-radio-button-group.cjs.entry.js +2 -2
  110. package/dist/cjs/ifx-radio-button-group.cjs.entry.js.map +1 -1
  111. package/dist/cjs/ifx-radio-button-group.entry.cjs.js.map +1 -1
  112. package/dist/cjs/ifx-radio-button.cjs.entry.js +2 -2
  113. package/dist/cjs/ifx-radio-button.cjs.entry.js.map +1 -1
  114. package/dist/cjs/ifx-radio-button.entry.cjs.js.map +1 -1
  115. package/dist/cjs/ifx-search-bar.cjs.entry.js +2 -2
  116. package/dist/cjs/ifx-search-bar.cjs.entry.js.map +1 -1
  117. package/dist/cjs/ifx-search-bar.entry.cjs.js.map +1 -1
  118. package/dist/cjs/ifx-search-field.cjs.entry.js +2 -2
  119. package/dist/cjs/ifx-search-field.cjs.entry.js.map +1 -1
  120. package/dist/cjs/ifx-search-field.entry.cjs.js.map +1 -1
  121. package/dist/cjs/ifx-segment.cjs.entry.js +2 -2
  122. package/dist/cjs/ifx-segment.cjs.entry.js.map +1 -1
  123. package/dist/cjs/ifx-segment.entry.cjs.js.map +1 -1
  124. package/dist/cjs/ifx-segmented-control.cjs.entry.js +2 -2
  125. package/dist/cjs/ifx-segmented-control.cjs.entry.js.map +1 -1
  126. package/dist/cjs/ifx-segmented-control.entry.cjs.js.map +1 -1
  127. package/dist/cjs/ifx-select.cjs.entry.js +2 -2
  128. package/dist/cjs/ifx-select.cjs.entry.js.map +1 -1
  129. package/dist/cjs/ifx-select.entry.cjs.js.map +1 -1
  130. package/dist/cjs/ifx-set-filter.cjs.entry.js +1 -1
  131. package/dist/cjs/ifx-sidebar-item.cjs.entry.js +2 -2
  132. package/dist/cjs/ifx-sidebar-item.cjs.entry.js.map +1 -1
  133. package/dist/cjs/ifx-sidebar-item.entry.cjs.js.map +1 -1
  134. package/dist/cjs/ifx-sidebar-title.cjs.entry.js +2 -2
  135. package/dist/cjs/ifx-sidebar-title.cjs.entry.js.map +1 -1
  136. package/dist/cjs/ifx-sidebar-title.entry.cjs.js.map +1 -1
  137. package/dist/cjs/ifx-sidebar.cjs.entry.js +2 -2
  138. package/dist/cjs/ifx-sidebar.cjs.entry.js.map +1 -1
  139. package/dist/cjs/ifx-sidebar.entry.cjs.js.map +1 -1
  140. package/dist/cjs/ifx-slider.cjs.entry.js +2 -2
  141. package/dist/cjs/ifx-slider.cjs.entry.js.map +1 -1
  142. package/dist/cjs/ifx-slider.entry.cjs.js.map +1 -1
  143. package/dist/cjs/ifx-spinner.ifx-text-field.entry.cjs.js.map +1 -1
  144. package/dist/cjs/ifx-spinner_2.cjs.entry.js +2 -2
  145. package/dist/cjs/ifx-spinner_2.cjs.entry.js.map +1 -1
  146. package/dist/cjs/ifx-status.cjs.entry.js +2 -2
  147. package/dist/cjs/ifx-status.cjs.entry.js.map +1 -1
  148. package/dist/cjs/ifx-status.entry.cjs.js.map +1 -1
  149. package/dist/cjs/ifx-step.cjs.entry.js +2 -2
  150. package/dist/cjs/ifx-step.cjs.entry.js.map +1 -1
  151. package/dist/cjs/ifx-step.entry.cjs.js.map +1 -1
  152. package/dist/cjs/ifx-stepper.cjs.entry.js +2 -2
  153. package/dist/cjs/ifx-stepper.cjs.entry.js.map +1 -1
  154. package/dist/cjs/ifx-stepper.entry.cjs.js.map +1 -1
  155. package/dist/cjs/ifx-switch.cjs.entry.js +2 -2
  156. package/dist/cjs/ifx-switch.cjs.entry.js.map +1 -1
  157. package/dist/cjs/ifx-switch.entry.cjs.js.map +1 -1
  158. package/dist/cjs/ifx-tab.cjs.entry.js +1 -1
  159. package/dist/cjs/ifx-table.cjs.entry.js +2 -2
  160. package/dist/cjs/ifx-table.cjs.entry.js.map +1 -1
  161. package/dist/cjs/ifx-table.entry.cjs.js.map +1 -1
  162. package/dist/cjs/ifx-tabs.cjs.entry.js +2 -2
  163. package/dist/cjs/ifx-tabs.cjs.entry.js.map +1 -1
  164. package/dist/cjs/ifx-tabs.entry.cjs.js.map +1 -1
  165. package/dist/cjs/ifx-templates-ui.cjs.entry.js +1 -1
  166. package/dist/cjs/ifx-textarea.cjs.entry.js +2 -2
  167. package/dist/cjs/ifx-textarea.cjs.entry.js.map +1 -1
  168. package/dist/cjs/ifx-textarea.entry.cjs.js.map +1 -1
  169. package/dist/cjs/ifx-tooltip.cjs.entry.js +2 -2
  170. package/dist/cjs/ifx-tooltip.cjs.entry.js.map +1 -1
  171. package/dist/cjs/ifx-tooltip.entry.cjs.js.map +1 -1
  172. package/dist/cjs/ifx-tree-view-item.cjs.entry.js +1 -1
  173. package/dist/cjs/ifx-tree-view.cjs.entry.js +1 -1
  174. package/dist/cjs/{index-n_pDKBY2.js → index-Dc5gCGlQ.js} +3 -3
  175. package/dist/cjs/index-Dc5gCGlQ.js.map +1 -0
  176. package/dist/cjs/infineon-design-system-stencil.cjs.js +1 -1
  177. package/dist/cjs/loader.cjs.js +1 -1
  178. package/dist/collection/components/accordion/accordion.css +1 -1
  179. package/dist/collection/components/accordion/accordionItem.css +1 -1
  180. package/dist/collection/components/action-list/action-list-item.css +1 -1
  181. package/dist/collection/components/action-list/action-list.css +1 -1
  182. package/dist/collection/components/alert/alert.css +1 -1
  183. package/dist/collection/components/breadcrumb/breadcrumb-item-label.css +1 -1
  184. package/dist/collection/components/breadcrumb/breadcrumb-item.css +1 -1
  185. package/dist/collection/components/breadcrumb/breadcrumb.css +1 -1
  186. package/dist/collection/components/button/button.css +1 -1
  187. package/dist/collection/components/card/card-headline/card-headline.css +1 -1
  188. package/dist/collection/components/card/card-links/card-links.css +1 -1
  189. package/dist/collection/components/card/card-overline/card-overline.css +1 -1
  190. package/dist/collection/components/card/card-text/card-text.css +1 -1
  191. package/dist/collection/components/card/card.css +1 -1
  192. package/dist/collection/components/checkbox-group/checkbox-group.css +1 -1
  193. package/dist/collection/components/chip/chip-item/chip-item.css +1 -1
  194. package/dist/collection/components/chip/chip.css +1 -1
  195. package/dist/collection/components/dropdown/dropdown-header/dropdown-header.css +1 -1
  196. package/dist/collection/components/dropdown/dropdown-item/dropdown-item.css +1 -1
  197. package/dist/collection/components/file-upload/file-upload.css +1 -1
  198. package/dist/collection/components/footer/footer-column.css +1 -1
  199. package/dist/collection/components/footer/footer.css +1 -1
  200. package/dist/collection/components/indicator/indicator.css +1 -1
  201. package/dist/collection/components/link/link.css +1 -1
  202. package/dist/collection/components/modal/modal.css +1 -1
  203. package/dist/collection/components/navigation/navbar/navbar.css +1 -1
  204. package/dist/collection/components/navigation/sidebar/sidebar-item.css +1 -1
  205. package/dist/collection/components/navigation/sidebar/sidebar-title.css +1 -1
  206. package/dist/collection/components/navigation/sidebar/sidebar.css +1 -1
  207. package/dist/collection/components/notification/notification.css +1 -1
  208. package/dist/collection/components/pagination/pagination.css +1 -1
  209. package/dist/collection/components/progress-bar/progress-bar.css +1 -1
  210. package/dist/collection/components/radio-button/radio-button.css +1 -1
  211. package/dist/collection/components/radio-button-group/radio-button-group.css +1 -1
  212. package/dist/collection/components/search-bar/search-bar.css +1 -1
  213. package/dist/collection/components/search-field/search-field.css +1 -1
  214. package/dist/collection/components/segmented-control/segment/segment.css +1 -1
  215. package/dist/collection/components/segmented-control/segmented-control.css +1 -1
  216. package/dist/collection/components/select/multi-select/multiselect.css +1 -1
  217. package/dist/collection/components/select/single-select/select.css +1 -1
  218. package/dist/collection/components/slider/slider.css +1 -1
  219. package/dist/collection/components/status/status.css +1 -1
  220. package/dist/collection/components/stepper/step/step.css +1 -1
  221. package/dist/collection/components/stepper/stepper.css +1 -1
  222. package/dist/collection/components/switch/switch.css +1 -1
  223. package/dist/collection/components/table-advanced-version/table.css +1 -1
  224. package/dist/collection/components/table-basic-version/table.css +1 -1
  225. package/dist/collection/components/tabs/tabs.css +1 -1
  226. package/dist/collection/components/text-field/text-field.css +1 -1
  227. package/dist/collection/components/textarea/textarea.css +1 -1
  228. package/dist/collection/components/tooltip/tooltip.css +1 -1
  229. package/dist/components/ifx-accordion-item.js +1 -1
  230. package/dist/components/ifx-accordion.js +1 -1
  231. package/dist/components/ifx-action-list-item.js +1 -1
  232. package/dist/components/ifx-action-list-item.js.map +1 -1
  233. package/dist/components/ifx-action-list.js +1 -1
  234. package/dist/components/ifx-action-list.js.map +1 -1
  235. package/dist/components/ifx-alert.js +1 -1
  236. package/dist/components/ifx-basic-table.js +1 -1
  237. package/dist/components/ifx-basic-table.js.map +1 -1
  238. package/dist/components/ifx-breadcrumb-item-label.js +1 -1
  239. package/dist/components/ifx-breadcrumb-item-label.js.map +1 -1
  240. package/dist/components/ifx-breadcrumb-item.js +1 -1
  241. package/dist/components/ifx-breadcrumb-item.js.map +1 -1
  242. package/dist/components/ifx-breadcrumb.js +1 -1
  243. package/dist/components/ifx-breadcrumb.js.map +1 -1
  244. package/dist/components/ifx-button.js +1 -1
  245. package/dist/components/ifx-card-headline.js +1 -1
  246. package/dist/components/ifx-card-headline.js.map +1 -1
  247. package/dist/components/ifx-card-links.js +1 -1
  248. package/dist/components/ifx-card-links.js.map +1 -1
  249. package/dist/components/ifx-card-overline.js +1 -1
  250. package/dist/components/ifx-card-overline.js.map +1 -1
  251. package/dist/components/ifx-card-text.js +1 -1
  252. package/dist/components/ifx-card-text.js.map +1 -1
  253. package/dist/components/ifx-card.js +1 -1
  254. package/dist/components/ifx-card.js.map +1 -1
  255. package/dist/components/ifx-checkbox-group.js +1 -1
  256. package/dist/components/ifx-checkbox-group.js.map +1 -1
  257. package/dist/components/ifx-chip-item.js +1 -1
  258. package/dist/components/ifx-chip.js +1 -1
  259. package/dist/components/ifx-download.js +1 -1
  260. package/dist/components/ifx-dropdown-header.js +1 -1
  261. package/dist/components/ifx-dropdown-header.js.map +1 -1
  262. package/dist/components/ifx-dropdown-item.js +1 -1
  263. package/dist/components/ifx-dropdown-item.js.map +1 -1
  264. package/dist/components/ifx-dropdown-trigger-button.js +1 -1
  265. package/dist/components/ifx-faq.js +2 -2
  266. package/dist/components/ifx-file-upload.js +3 -3
  267. package/dist/components/ifx-file-upload.js.map +1 -1
  268. package/dist/components/ifx-filter-accordion.js +1 -1
  269. package/dist/components/ifx-filter-bar.js +1 -1
  270. package/dist/components/ifx-filter-search.js +1 -1
  271. package/dist/components/ifx-footer-column.js +1 -1
  272. package/dist/components/ifx-footer-column.js.map +1 -1
  273. package/dist/components/ifx-footer.js +1 -1
  274. package/dist/components/ifx-footer.js.map +1 -1
  275. package/dist/components/ifx-icons-preview.js +3 -3
  276. package/dist/components/ifx-indicator.js +1 -1
  277. package/dist/components/ifx-link.js +1 -1
  278. package/dist/components/ifx-list-entry.js +1 -1
  279. package/dist/components/ifx-list.js +1 -1
  280. package/dist/components/ifx-modal.js +1 -1
  281. package/dist/components/ifx-modal.js.map +1 -1
  282. package/dist/components/ifx-multiselect.js +1 -1
  283. package/dist/components/ifx-navbar-item.js +1 -1
  284. package/dist/components/ifx-navbar.js +1 -1
  285. package/dist/components/ifx-navbar.js.map +1 -1
  286. package/dist/components/ifx-notification.js +1 -1
  287. package/dist/components/ifx-overview-table.js +2 -2
  288. package/dist/components/ifx-pagination.js +1 -1
  289. package/dist/components/ifx-progress-bar.js +1 -1
  290. package/dist/components/ifx-radio-button-group.js +1 -1
  291. package/dist/components/ifx-radio-button-group.js.map +1 -1
  292. package/dist/components/ifx-radio-button.js +1 -1
  293. package/dist/components/ifx-search-bar.js +2 -2
  294. package/dist/components/ifx-search-bar.js.map +1 -1
  295. package/dist/components/ifx-search-field.js +1 -1
  296. package/dist/components/ifx-segment.js +1 -1
  297. package/dist/components/ifx-segment.js.map +1 -1
  298. package/dist/components/ifx-segmented-control.js +1 -1
  299. package/dist/components/ifx-segmented-control.js.map +1 -1
  300. package/dist/components/ifx-select.js +1 -1
  301. package/dist/components/ifx-set-filter.js +4 -4
  302. package/dist/components/ifx-sidebar-item.js +2 -2
  303. package/dist/components/ifx-sidebar-item.js.map +1 -1
  304. package/dist/components/ifx-sidebar-title.js +1 -1
  305. package/dist/components/ifx-sidebar-title.js.map +1 -1
  306. package/dist/components/ifx-sidebar.js +1 -1
  307. package/dist/components/ifx-sidebar.js.map +1 -1
  308. package/dist/components/ifx-slider.js +1 -1
  309. package/dist/components/ifx-slider.js.map +1 -1
  310. package/dist/components/ifx-status.js +1 -1
  311. package/dist/components/ifx-status.js.map +1 -1
  312. package/dist/components/ifx-step.js +1 -1
  313. package/dist/components/ifx-step.js.map +1 -1
  314. package/dist/components/ifx-stepper.js +1 -1
  315. package/dist/components/ifx-stepper.js.map +1 -1
  316. package/dist/components/ifx-switch.js +1 -1
  317. package/dist/components/ifx-switch.js.map +1 -1
  318. package/dist/components/ifx-table.js +7 -7
  319. package/dist/components/ifx-table.js.map +1 -1
  320. package/dist/components/ifx-tabs.js +1 -1
  321. package/dist/components/ifx-tabs.js.map +1 -1
  322. package/dist/components/ifx-template.js +1 -1
  323. package/dist/components/ifx-templates-ui.js +5 -5
  324. package/dist/components/ifx-text-field.js +1 -1
  325. package/dist/components/ifx-textarea.js +1 -1
  326. package/dist/components/ifx-textarea.js.map +1 -1
  327. package/dist/components/ifx-tooltip.js +1 -1
  328. package/dist/components/ifx-tooltip.js.map +1 -1
  329. package/dist/components/index.js +1 -1
  330. package/dist/components/index.js.map +1 -1
  331. package/dist/components/{p-Bux5F8Jt.js → p-BGgzlGhs.js} +3 -3
  332. package/dist/components/{p-Bux5F8Jt.js.map → p-BGgzlGhs.js.map} +1 -1
  333. package/dist/components/{p-BRgFU560.js → p-BR9GBwm3.js} +3 -3
  334. package/dist/components/{p-BRgFU560.js.map → p-BR9GBwm3.js.map} +1 -1
  335. package/dist/components/{p-C53lC4vo.js → p-BXzO4n5s.js} +4 -4
  336. package/dist/components/{p-C53lC4vo.js.map → p-BXzO4n5s.js.map} +1 -1
  337. package/dist/components/{p-BJpqCkkb.js → p-BxahGQyq.js} +3 -3
  338. package/dist/components/{p-BJpqCkkb.js.map → p-BxahGQyq.js.map} +1 -1
  339. package/dist/components/{p-BxvlRqa4.js → p-C12r4j5b.js} +3 -3
  340. package/dist/components/{p-BxvlRqa4.js.map → p-C12r4j5b.js.map} +1 -1
  341. package/dist/components/{p-ByoPzMNu.js → p-CGQrMuO5.js} +3 -3
  342. package/dist/components/{p-ByoPzMNu.js.map → p-CGQrMuO5.js.map} +1 -1
  343. package/dist/components/{p-BG2S8rtL.js → p-CGiuqlV6.js} +3 -3
  344. package/dist/components/{p-BG2S8rtL.js.map → p-CGiuqlV6.js.map} +1 -1
  345. package/dist/components/{p-DsbrEtP9.js → p-CafcSYVH.js} +4 -4
  346. package/dist/components/{p-DsbrEtP9.js.map → p-CafcSYVH.js.map} +1 -1
  347. package/dist/components/{p-BerfCR8L.js → p-CuW3ASZY.js} +3 -3
  348. package/dist/components/{p-BerfCR8L.js.map → p-CuW3ASZY.js.map} +1 -1
  349. package/dist/components/{p-BMQLGfWX.js → p-D993ZAZ7.js} +4 -4
  350. package/dist/components/{p-BMQLGfWX.js.map → p-D993ZAZ7.js.map} +1 -1
  351. package/dist/components/{p-B61i82g5.js → p-DJMMjs4C.js} +3 -3
  352. package/dist/components/{p-B61i82g5.js.map → p-DJMMjs4C.js.map} +1 -1
  353. package/dist/components/{p-B-I2VhI5.js → p-DZDL9mJT.js} +4 -4
  354. package/dist/components/{p-B-I2VhI5.js.map → p-DZDL9mJT.js.map} +1 -1
  355. package/dist/components/{p-GP5uSTr1.js → p-DceacY9Q.js} +3 -3
  356. package/dist/components/{p-GP5uSTr1.js.map → p-DceacY9Q.js.map} +1 -1
  357. package/dist/components/{p-ZCLJED5S.js → p-DtkiOAQY.js} +3 -3
  358. package/dist/components/{p-ZCLJED5S.js.map → p-DtkiOAQY.js.map} +1 -1
  359. package/dist/components/{p-Dn3cSDWF.js → p-R79iWjuc.js} +3 -3
  360. package/dist/components/{p-Dn3cSDWF.js.map → p-R79iWjuc.js.map} +1 -1
  361. package/dist/components/{p-D9skJwQF.js → p-RF9z92mE.js} +3 -3
  362. package/dist/components/{p-D9skJwQF.js.map → p-RF9z92mE.js.map} +1 -1
  363. package/dist/components/{p-DmM40b2X.js → p-egr4FehX.js} +5 -5
  364. package/dist/components/{p-DmM40b2X.js.map → p-egr4FehX.js.map} +1 -1
  365. package/dist/esm/ifx-accordion.ifx-accordion-item.entry.js.map +1 -1
  366. package/dist/esm/ifx-accordion_2.entry.js +3 -3
  367. package/dist/esm/ifx-accordion_2.entry.js.map +1 -1
  368. package/dist/esm/ifx-action-list-item.entry.js +2 -2
  369. package/dist/esm/ifx-action-list-item.entry.js.map +1 -1
  370. package/dist/esm/ifx-action-list.entry.js +2 -2
  371. package/dist/esm/ifx-action-list.entry.js.map +1 -1
  372. package/dist/esm/ifx-alert.ifx-template.entry.js.map +1 -1
  373. package/dist/esm/ifx-alert_2.entry.js +2 -2
  374. package/dist/esm/ifx-alert_2.entry.js.map +1 -1
  375. package/dist/esm/ifx-basic-table.entry.js +2 -2
  376. package/dist/esm/ifx-basic-table.entry.js.map +1 -1
  377. package/dist/esm/ifx-breadcrumb-item-label.entry.js +2 -2
  378. package/dist/esm/ifx-breadcrumb-item-label.entry.js.map +1 -1
  379. package/dist/esm/ifx-breadcrumb-item.entry.js +2 -2
  380. package/dist/esm/ifx-breadcrumb-item.entry.js.map +1 -1
  381. package/dist/esm/ifx-breadcrumb.entry.js +2 -2
  382. package/dist/esm/ifx-breadcrumb.entry.js.map +1 -1
  383. package/dist/esm/ifx-button.entry.js +2 -2
  384. package/dist/esm/ifx-button.entry.js.map +1 -1
  385. package/dist/esm/ifx-card-headline.entry.js +2 -2
  386. package/dist/esm/ifx-card-headline.entry.js.map +1 -1
  387. package/dist/esm/ifx-card-image.entry.js +1 -1
  388. package/dist/esm/ifx-card-links.entry.js +2 -2
  389. package/dist/esm/ifx-card-links.entry.js.map +1 -1
  390. package/dist/esm/ifx-card-overline.entry.js +2 -2
  391. package/dist/esm/ifx-card-overline.entry.js.map +1 -1
  392. package/dist/esm/ifx-card-text.entry.js +2 -2
  393. package/dist/esm/ifx-card-text.entry.js.map +1 -1
  394. package/dist/esm/ifx-card.entry.js +2 -2
  395. package/dist/esm/ifx-card.entry.js.map +1 -1
  396. package/dist/esm/ifx-checkbox-group.entry.js +2 -2
  397. package/dist/esm/ifx-checkbox-group.entry.js.map +1 -1
  398. package/dist/esm/ifx-checkbox.entry.js +1 -1
  399. package/dist/esm/ifx-chip.ifx-chip-item.ifx-pagination.entry.js.map +1 -1
  400. package/dist/esm/ifx-chip_3.entry.js +4 -4
  401. package/dist/esm/ifx-chip_3.entry.js.map +1 -1
  402. package/dist/esm/ifx-content-switcher-item.entry.js +1 -1
  403. package/dist/esm/ifx-content-switcher.entry.js +1 -1
  404. package/dist/esm/ifx-date-picker.entry.js +1 -1
  405. package/dist/esm/ifx-download.entry.js +1 -1
  406. package/dist/esm/ifx-dropdown-header.entry.js +2 -2
  407. package/dist/esm/ifx-dropdown-header.entry.js.map +1 -1
  408. package/dist/esm/ifx-dropdown-item.entry.js +2 -2
  409. package/dist/esm/ifx-dropdown-item.entry.js.map +1 -1
  410. package/dist/esm/ifx-dropdown-menu.entry.js +1 -1
  411. package/dist/esm/ifx-dropdown-separator.entry.js +1 -1
  412. package/dist/esm/ifx-dropdown-trigger-button.entry.js +1 -1
  413. package/dist/esm/ifx-dropdown-trigger.entry.js +1 -1
  414. package/dist/esm/ifx-dropdown.entry.js +1 -1
  415. package/dist/esm/ifx-faq.entry.js +1 -1
  416. package/dist/esm/ifx-file-upload.entry.js +2 -2
  417. package/dist/esm/ifx-file-upload.entry.js.map +1 -1
  418. package/dist/esm/ifx-filter-accordion.entry.js +1 -1
  419. package/dist/esm/ifx-filter-bar.entry.js +1 -1
  420. package/dist/esm/ifx-filter-search.entry.js +1 -1
  421. package/dist/esm/ifx-filter-type-group.entry.js +1 -1
  422. package/dist/esm/ifx-footer-column.entry.js +2 -2
  423. package/dist/esm/ifx-footer-column.entry.js.map +1 -1
  424. package/dist/esm/ifx-footer.entry.js +2 -2
  425. package/dist/esm/ifx-footer.entry.js.map +1 -1
  426. package/dist/esm/ifx-icon-button.entry.js +1 -1
  427. package/dist/esm/ifx-icon.entry.js +1 -1
  428. package/dist/esm/ifx-icons-preview.entry.js +1 -1
  429. package/dist/esm/ifx-indicator.entry.js +2 -2
  430. package/dist/esm/ifx-indicator.entry.js.map +1 -1
  431. package/dist/esm/ifx-link.entry.js +2 -2
  432. package/dist/esm/ifx-link.entry.js.map +1 -1
  433. package/dist/esm/ifx-list-entry.entry.js +1 -1
  434. package/dist/esm/ifx-list.entry.js +1 -1
  435. package/dist/esm/ifx-modal.entry.js +2 -2
  436. package/dist/esm/ifx-modal.entry.js.map +1 -1
  437. package/dist/esm/ifx-multiselect.ifx-multiselect-option.entry.js.map +1 -1
  438. package/dist/esm/ifx-multiselect_2.entry.js +2 -2
  439. package/dist/esm/ifx-multiselect_2.entry.js.map +1 -1
  440. package/dist/esm/ifx-navbar-item.entry.js +1 -1
  441. package/dist/esm/ifx-navbar-profile.entry.js +1 -1
  442. package/dist/esm/ifx-navbar.entry.js +2 -2
  443. package/dist/esm/ifx-navbar.entry.js.map +1 -1
  444. package/dist/esm/ifx-notification.entry.js +2 -2
  445. package/dist/esm/ifx-notification.entry.js.map +1 -1
  446. package/dist/esm/ifx-overview-table.entry.js +1 -1
  447. package/dist/esm/ifx-progress-bar.entry.js +2 -2
  448. package/dist/esm/ifx-progress-bar.entry.js.map +1 -1
  449. package/dist/esm/ifx-radio-button-group.entry.js +2 -2
  450. package/dist/esm/ifx-radio-button-group.entry.js.map +1 -1
  451. package/dist/esm/ifx-radio-button.entry.js +2 -2
  452. package/dist/esm/ifx-radio-button.entry.js.map +1 -1
  453. package/dist/esm/ifx-search-bar.entry.js +2 -2
  454. package/dist/esm/ifx-search-bar.entry.js.map +1 -1
  455. package/dist/esm/ifx-search-field.entry.js +2 -2
  456. package/dist/esm/ifx-search-field.entry.js.map +1 -1
  457. package/dist/esm/ifx-segment.entry.js +2 -2
  458. package/dist/esm/ifx-segment.entry.js.map +1 -1
  459. package/dist/esm/ifx-segmented-control.entry.js +2 -2
  460. package/dist/esm/ifx-segmented-control.entry.js.map +1 -1
  461. package/dist/esm/ifx-select.entry.js +2 -2
  462. package/dist/esm/ifx-select.entry.js.map +1 -1
  463. package/dist/esm/ifx-set-filter.entry.js +1 -1
  464. package/dist/esm/ifx-sidebar-item.entry.js +2 -2
  465. package/dist/esm/ifx-sidebar-item.entry.js.map +1 -1
  466. package/dist/esm/ifx-sidebar-title.entry.js +2 -2
  467. package/dist/esm/ifx-sidebar-title.entry.js.map +1 -1
  468. package/dist/esm/ifx-sidebar.entry.js +2 -2
  469. package/dist/esm/ifx-sidebar.entry.js.map +1 -1
  470. package/dist/esm/ifx-slider.entry.js +2 -2
  471. package/dist/esm/ifx-slider.entry.js.map +1 -1
  472. package/dist/esm/ifx-spinner.ifx-text-field.entry.js.map +1 -1
  473. package/dist/esm/ifx-spinner_2.entry.js +2 -2
  474. package/dist/esm/ifx-spinner_2.entry.js.map +1 -1
  475. package/dist/esm/ifx-status.entry.js +2 -2
  476. package/dist/esm/ifx-status.entry.js.map +1 -1
  477. package/dist/esm/ifx-step.entry.js +2 -2
  478. package/dist/esm/ifx-step.entry.js.map +1 -1
  479. package/dist/esm/ifx-stepper.entry.js +2 -2
  480. package/dist/esm/ifx-stepper.entry.js.map +1 -1
  481. package/dist/esm/ifx-switch.entry.js +2 -2
  482. package/dist/esm/ifx-switch.entry.js.map +1 -1
  483. package/dist/esm/ifx-tab.entry.js +1 -1
  484. package/dist/esm/ifx-table.entry.js +2 -2
  485. package/dist/esm/ifx-table.entry.js.map +1 -1
  486. package/dist/esm/ifx-tabs.entry.js +2 -2
  487. package/dist/esm/ifx-tabs.entry.js.map +1 -1
  488. package/dist/esm/ifx-templates-ui.entry.js +1 -1
  489. package/dist/esm/ifx-textarea.entry.js +2 -2
  490. package/dist/esm/ifx-textarea.entry.js.map +1 -1
  491. package/dist/esm/ifx-tooltip.entry.js +2 -2
  492. package/dist/esm/ifx-tooltip.entry.js.map +1 -1
  493. package/dist/esm/ifx-tree-view-item.entry.js +1 -1
  494. package/dist/esm/ifx-tree-view.entry.js +1 -1
  495. package/dist/esm/{index-DtIEDtZ8.js → index-PqnYwNKt.js} +3 -3
  496. package/dist/esm/index-PqnYwNKt.js.map +1 -0
  497. package/dist/esm/infineon-design-system-stencil.js +2 -2
  498. package/dist/esm/loader.js +2 -2
  499. package/dist/infineon-design-system-stencil/ifx-accordion.ifx-accordion-item.entry.esm.js.map +1 -1
  500. package/dist/infineon-design-system-stencil/ifx-action-list-item.entry.esm.js.map +1 -1
  501. package/dist/infineon-design-system-stencil/ifx-action-list.entry.esm.js.map +1 -1
  502. package/dist/infineon-design-system-stencil/ifx-alert.ifx-template.entry.esm.js.map +1 -1
  503. package/dist/infineon-design-system-stencil/ifx-basic-table.entry.esm.js.map +1 -1
  504. package/dist/infineon-design-system-stencil/ifx-breadcrumb-item-label.entry.esm.js.map +1 -1
  505. package/dist/infineon-design-system-stencil/ifx-breadcrumb-item.entry.esm.js.map +1 -1
  506. package/dist/infineon-design-system-stencil/ifx-breadcrumb.entry.esm.js.map +1 -1
  507. package/dist/infineon-design-system-stencil/ifx-button.entry.esm.js.map +1 -1
  508. package/dist/infineon-design-system-stencil/ifx-card-headline.entry.esm.js.map +1 -1
  509. package/dist/infineon-design-system-stencil/ifx-card-links.entry.esm.js.map +1 -1
  510. package/dist/infineon-design-system-stencil/ifx-card-overline.entry.esm.js.map +1 -1
  511. package/dist/infineon-design-system-stencil/ifx-card-text.entry.esm.js.map +1 -1
  512. package/dist/infineon-design-system-stencil/ifx-card.entry.esm.js.map +1 -1
  513. package/dist/infineon-design-system-stencil/ifx-checkbox-group.entry.esm.js.map +1 -1
  514. package/dist/infineon-design-system-stencil/ifx-chip.ifx-chip-item.ifx-pagination.entry.esm.js.map +1 -1
  515. package/dist/infineon-design-system-stencil/ifx-dropdown-header.entry.esm.js.map +1 -1
  516. package/dist/infineon-design-system-stencil/ifx-dropdown-item.entry.esm.js.map +1 -1
  517. package/dist/infineon-design-system-stencil/ifx-file-upload.entry.esm.js.map +1 -1
  518. package/dist/infineon-design-system-stencil/ifx-footer-column.entry.esm.js.map +1 -1
  519. package/dist/infineon-design-system-stencil/ifx-footer.entry.esm.js.map +1 -1
  520. package/dist/infineon-design-system-stencil/ifx-indicator.entry.esm.js.map +1 -1
  521. package/dist/infineon-design-system-stencil/ifx-link.entry.esm.js.map +1 -1
  522. package/dist/infineon-design-system-stencil/ifx-modal.entry.esm.js.map +1 -1
  523. package/dist/infineon-design-system-stencil/ifx-multiselect.ifx-multiselect-option.entry.esm.js.map +1 -1
  524. package/dist/infineon-design-system-stencil/ifx-navbar.entry.esm.js.map +1 -1
  525. package/dist/infineon-design-system-stencil/ifx-notification.entry.esm.js.map +1 -1
  526. package/dist/infineon-design-system-stencil/ifx-progress-bar.entry.esm.js.map +1 -1
  527. package/dist/infineon-design-system-stencil/ifx-radio-button-group.entry.esm.js.map +1 -1
  528. package/dist/infineon-design-system-stencil/ifx-radio-button.entry.esm.js.map +1 -1
  529. package/dist/infineon-design-system-stencil/ifx-search-bar.entry.esm.js.map +1 -1
  530. package/dist/infineon-design-system-stencil/ifx-search-field.entry.esm.js.map +1 -1
  531. package/dist/infineon-design-system-stencil/ifx-segment.entry.esm.js.map +1 -1
  532. package/dist/infineon-design-system-stencil/ifx-segmented-control.entry.esm.js.map +1 -1
  533. package/dist/infineon-design-system-stencil/ifx-select.entry.esm.js.map +1 -1
  534. package/dist/infineon-design-system-stencil/ifx-sidebar-item.entry.esm.js.map +1 -1
  535. package/dist/infineon-design-system-stencil/ifx-sidebar-title.entry.esm.js.map +1 -1
  536. package/dist/infineon-design-system-stencil/ifx-sidebar.entry.esm.js.map +1 -1
  537. package/dist/infineon-design-system-stencil/ifx-slider.entry.esm.js.map +1 -1
  538. package/dist/infineon-design-system-stencil/ifx-spinner.ifx-text-field.entry.esm.js.map +1 -1
  539. package/dist/infineon-design-system-stencil/ifx-status.entry.esm.js.map +1 -1
  540. package/dist/infineon-design-system-stencil/ifx-step.entry.esm.js.map +1 -1
  541. package/dist/infineon-design-system-stencil/ifx-stepper.entry.esm.js.map +1 -1
  542. package/dist/infineon-design-system-stencil/ifx-switch.entry.esm.js.map +1 -1
  543. package/dist/infineon-design-system-stencil/ifx-table.entry.esm.js.map +1 -1
  544. package/dist/infineon-design-system-stencil/ifx-tabs.entry.esm.js.map +1 -1
  545. package/dist/infineon-design-system-stencil/ifx-textarea.entry.esm.js.map +1 -1
  546. package/dist/infineon-design-system-stencil/ifx-tooltip.entry.esm.js.map +1 -1
  547. package/dist/infineon-design-system-stencil/infineon-design-system-stencil.css +1 -1
  548. package/dist/infineon-design-system-stencil/infineon-design-system-stencil.esm.js +1 -1
  549. package/dist/infineon-design-system-stencil/p-05f66dcb.entry.js +2 -0
  550. package/dist/infineon-design-system-stencil/{p-412f510b.entry.js.map → p-05f66dcb.entry.js.map} +1 -1
  551. package/dist/infineon-design-system-stencil/{p-0dbe2818.entry.js → p-060845fd.entry.js} +2 -2
  552. package/dist/infineon-design-system-stencil/p-06d2f85b.entry.js +2 -0
  553. package/dist/infineon-design-system-stencil/{p-13fed6df.entry.js.map → p-06d2f85b.entry.js.map} +1 -1
  554. package/dist/infineon-design-system-stencil/p-0929589d.entry.js +2 -0
  555. package/dist/infineon-design-system-stencil/{p-4850e2df.entry.js.map → p-0929589d.entry.js.map} +1 -1
  556. package/dist/infineon-design-system-stencil/p-0be8f0c9.entry.js +2 -0
  557. package/dist/infineon-design-system-stencil/{p-58552d96.entry.js.map → p-0be8f0c9.entry.js.map} +1 -1
  558. package/dist/infineon-design-system-stencil/{p-dfd77261.entry.js → p-0fb9f42b.entry.js} +2 -2
  559. package/dist/infineon-design-system-stencil/{p-d3a6bbf7.entry.js → p-116c853e.entry.js} +2 -2
  560. package/dist/infineon-design-system-stencil/p-169f26ae.entry.js +2 -0
  561. package/dist/infineon-design-system-stencil/{p-1df9b181.entry.js.map → p-169f26ae.entry.js.map} +1 -1
  562. package/dist/infineon-design-system-stencil/p-1c1b1a1f.entry.js +2 -0
  563. package/dist/infineon-design-system-stencil/{p-240a4cb3.entry.js.map → p-1c1b1a1f.entry.js.map} +1 -1
  564. package/dist/infineon-design-system-stencil/{p-fd206fce.entry.js → p-1d494424.entry.js} +2 -2
  565. package/dist/infineon-design-system-stencil/p-22e9960d.entry.js +2 -0
  566. package/dist/infineon-design-system-stencil/{p-f5811026.entry.js.map → p-22e9960d.entry.js.map} +1 -1
  567. package/dist/infineon-design-system-stencil/p-2503d869.entry.js +2 -0
  568. package/dist/infineon-design-system-stencil/{p-84735ae2.entry.js.map → p-2503d869.entry.js.map} +1 -1
  569. package/dist/infineon-design-system-stencil/p-273907cb.entry.js +2 -0
  570. package/dist/infineon-design-system-stencil/{p-a1c63832.entry.js.map → p-273907cb.entry.js.map} +1 -1
  571. package/dist/infineon-design-system-stencil/p-2813423a.entry.js +2 -0
  572. package/dist/infineon-design-system-stencil/{p-249372a1.entry.js.map → p-2813423a.entry.js.map} +1 -1
  573. package/dist/infineon-design-system-stencil/p-2b4b2b06.entry.js +2 -0
  574. package/dist/infineon-design-system-stencil/{p-fe373208.entry.js.map → p-2b4b2b06.entry.js.map} +1 -1
  575. package/dist/infineon-design-system-stencil/{p-8c44be53.entry.js → p-2e172019.entry.js} +2 -2
  576. package/dist/infineon-design-system-stencil/p-307e6a72.entry.js +2 -0
  577. package/dist/infineon-design-system-stencil/p-35d2266a.entry.js +2 -0
  578. package/dist/infineon-design-system-stencil/{p-4016e7cf.entry.js.map → p-35d2266a.entry.js.map} +1 -1
  579. package/dist/infineon-design-system-stencil/p-380368ca.entry.js +2 -0
  580. package/dist/infineon-design-system-stencil/{p-4c846056.entry.js.map → p-380368ca.entry.js.map} +1 -1
  581. package/dist/infineon-design-system-stencil/p-39561a49.entry.js +2 -0
  582. package/dist/infineon-design-system-stencil/{p-0100cbfb.entry.js.map → p-39561a49.entry.js.map} +1 -1
  583. package/dist/infineon-design-system-stencil/{p-0d9da371.entry.js → p-39e3ee45.entry.js} +2 -2
  584. package/dist/infineon-design-system-stencil/{p-0d9da371.entry.js.map → p-39e3ee45.entry.js.map} +1 -1
  585. package/dist/infineon-design-system-stencil/p-3d77ef02.entry.js +2 -0
  586. package/dist/infineon-design-system-stencil/{p-d3236a63.entry.js.map → p-3d77ef02.entry.js.map} +1 -1
  587. package/dist/infineon-design-system-stencil/p-3eeacac9.entry.js +2 -0
  588. package/dist/infineon-design-system-stencil/{p-c6fa6fd3.entry.js.map → p-3eeacac9.entry.js.map} +1 -1
  589. package/dist/infineon-design-system-stencil/{p-ba4ee343.entry.js → p-45dad0d1.entry.js} +2 -2
  590. package/dist/infineon-design-system-stencil/{p-7468590a.entry.js → p-4669e01f.entry.js} +2 -2
  591. package/dist/infineon-design-system-stencil/p-4da5a2a5.entry.js +2 -0
  592. package/dist/infineon-design-system-stencil/{p-ae513612.entry.js.map → p-4da5a2a5.entry.js.map} +1 -1
  593. package/dist/infineon-design-system-stencil/p-4fba0543.entry.js +2 -0
  594. package/dist/infineon-design-system-stencil/{p-b23596f4.entry.js.map → p-4fba0543.entry.js.map} +1 -1
  595. package/dist/infineon-design-system-stencil/p-5367db9d.entry.js +2 -0
  596. package/dist/infineon-design-system-stencil/{p-ee2ca575.entry.js.map → p-5367db9d.entry.js.map} +1 -1
  597. package/dist/infineon-design-system-stencil/p-58dd6f5c.entry.js +2 -0
  598. package/dist/infineon-design-system-stencil/{p-43943864.entry.js.map → p-58dd6f5c.entry.js.map} +1 -1
  599. package/dist/infineon-design-system-stencil/p-5b571505.entry.js +2 -0
  600. package/dist/infineon-design-system-stencil/{p-9ea43bb7.entry.js.map → p-5b571505.entry.js.map} +1 -1
  601. package/dist/infineon-design-system-stencil/{p-f63ba4a3.entry.js → p-5e3d0ff0.entry.js} +2 -2
  602. package/dist/infineon-design-system-stencil/p-5fb3eb8b.entry.js +2 -0
  603. package/dist/infineon-design-system-stencil/{p-ad702dcc.entry.js.map → p-5fb3eb8b.entry.js.map} +1 -1
  604. package/dist/infineon-design-system-stencil/p-6a07106e.entry.js +2 -0
  605. package/dist/infineon-design-system-stencil/{p-29d78bf2.entry.js.map → p-6a07106e.entry.js.map} +1 -1
  606. package/dist/infineon-design-system-stencil/p-6e115707.entry.js +2 -0
  607. package/dist/infineon-design-system-stencil/{p-8ab64504.entry.js.map → p-6e115707.entry.js.map} +1 -1
  608. package/dist/infineon-design-system-stencil/{p-e7b72d33.entry.js → p-744c1c8e.entry.js} +2 -2
  609. package/dist/infineon-design-system-stencil/p-760cfc7e.entry.js +2 -0
  610. package/dist/infineon-design-system-stencil/{p-765dd1b4.entry.js.map → p-760cfc7e.entry.js.map} +1 -1
  611. package/dist/infineon-design-system-stencil/{p-76e88a63.entry.js → p-86945915.entry.js} +2 -2
  612. package/dist/infineon-design-system-stencil/{p-eed36710.entry.js → p-8ceb2ccc.entry.js} +2 -2
  613. package/dist/infineon-design-system-stencil/{p-242fc6b0.entry.js → p-8df7755e.entry.js} +3 -3
  614. package/dist/infineon-design-system-stencil/{p-242fc6b0.entry.js.map → p-8df7755e.entry.js.map} +1 -1
  615. package/dist/infineon-design-system-stencil/p-8fe80a72.entry.js +2 -0
  616. package/dist/infineon-design-system-stencil/{p-b5db443a.entry.js.map → p-8fe80a72.entry.js.map} +1 -1
  617. package/dist/infineon-design-system-stencil/{p-d4fea918.entry.js → p-92ee6f73.entry.js} +2 -2
  618. package/dist/infineon-design-system-stencil/{p-c9d594e1.entry.js → p-94dfe026.entry.js} +2 -2
  619. package/dist/infineon-design-system-stencil/{p-0d4211db.entry.js → p-9517d1b0.entry.js} +2 -2
  620. package/dist/infineon-design-system-stencil/p-97b2ac42.entry.js +2 -0
  621. package/dist/infineon-design-system-stencil/{p-933da006.entry.js.map → p-97b2ac42.entry.js.map} +1 -1
  622. package/dist/infineon-design-system-stencil/{p-5c673497.entry.js → p-9b06df76.entry.js} +2 -2
  623. package/dist/infineon-design-system-stencil/p-9ba730bb.entry.js +2 -0
  624. package/dist/infineon-design-system-stencil/{p-d56ee584.entry.js.map → p-9ba730bb.entry.js.map} +1 -1
  625. package/dist/infineon-design-system-stencil/p-9deaa65e.entry.js +2 -0
  626. package/dist/infineon-design-system-stencil/{p-1c2d0b17.entry.js.map → p-9deaa65e.entry.js.map} +1 -1
  627. package/dist/infineon-design-system-stencil/{p-DtIEDtZ8.js → p-PqnYwNKt.js} +2 -2
  628. package/dist/infineon-design-system-stencil/p-PqnYwNKt.js.map +1 -0
  629. package/dist/infineon-design-system-stencil/p-a4dd2fe1.entry.js +2 -0
  630. package/dist/infineon-design-system-stencil/{p-453bd9bd.entry.js.map → p-a4dd2fe1.entry.js.map} +1 -1
  631. package/dist/infineon-design-system-stencil/{p-bbd819a8.entry.js → p-acd0cede.entry.js} +2 -2
  632. package/dist/infineon-design-system-stencil/{p-b969b2c0.entry.js → p-b7672947.entry.js} +2 -2
  633. package/dist/infineon-design-system-stencil/p-bd8c6834.entry.js +2 -0
  634. package/dist/infineon-design-system-stencil/{p-550283fa.entry.js.map → p-bd8c6834.entry.js.map} +1 -1
  635. package/dist/infineon-design-system-stencil/{p-27808b00.entry.js → p-beaba918.entry.js} +2 -2
  636. package/dist/infineon-design-system-stencil/{p-b5efb1d6.entry.js → p-c578a728.entry.js} +2 -2
  637. package/dist/infineon-design-system-stencil/{p-2151de2a.entry.js → p-c6826c1e.entry.js} +2 -2
  638. package/dist/infineon-design-system-stencil/p-ca312cbb.entry.js +2 -0
  639. package/dist/infineon-design-system-stencil/{p-6407c496.entry.js.map → p-ca312cbb.entry.js.map} +1 -1
  640. package/dist/infineon-design-system-stencil/p-ca870353.entry.js +2 -0
  641. package/dist/infineon-design-system-stencil/{p-3f29b8fd.entry.js.map → p-ca870353.entry.js.map} +1 -1
  642. package/dist/infineon-design-system-stencil/p-ce799b3d.entry.js +2 -0
  643. package/dist/infineon-design-system-stencil/{p-913a8693.entry.js.map → p-ce799b3d.entry.js.map} +1 -1
  644. package/dist/infineon-design-system-stencil/p-d267f6d2.entry.js +2 -0
  645. package/dist/infineon-design-system-stencil/{p-dd1b2b14.entry.js.map → p-d267f6d2.entry.js.map} +1 -1
  646. package/dist/infineon-design-system-stencil/{p-213a4829.entry.js → p-d2b076fe.entry.js} +2 -2
  647. package/dist/infineon-design-system-stencil/{p-55227732.entry.js → p-d4373c36.entry.js} +2 -2
  648. package/dist/infineon-design-system-stencil/p-d65a334c.entry.js +2 -0
  649. package/dist/infineon-design-system-stencil/{p-dcc7240e.entry.js.map → p-d65a334c.entry.js.map} +1 -1
  650. package/dist/infineon-design-system-stencil/p-dac7d817.entry.js +2 -0
  651. package/dist/infineon-design-system-stencil/{p-7910df8a.entry.js.map → p-dac7d817.entry.js.map} +1 -1
  652. package/dist/infineon-design-system-stencil/p-dbc6ae20.entry.js +2 -0
  653. package/dist/infineon-design-system-stencil/{p-cae1ea22.entry.js.map → p-dbc6ae20.entry.js.map} +1 -1
  654. package/dist/infineon-design-system-stencil/{p-372fa9eb.entry.js → p-dcd0af23.entry.js} +2 -2
  655. package/dist/infineon-design-system-stencil/{p-83816596.entry.js → p-e3c11b6c.entry.js} +2 -2
  656. package/dist/infineon-design-system-stencil/{p-22a45c93.entry.js → p-e6c4c4cf.entry.js} +2 -2
  657. package/dist/infineon-design-system-stencil/{p-8a9d3e04.entry.js → p-e78ffc43.entry.js} +2 -2
  658. package/dist/infineon-design-system-stencil/p-e7c656cd.entry.js +2 -0
  659. package/dist/infineon-design-system-stencil/{p-6ceae9a3.entry.js.map → p-e7c656cd.entry.js.map} +1 -1
  660. package/dist/infineon-design-system-stencil/p-edbfa46e.entry.js +2 -0
  661. package/dist/infineon-design-system-stencil/{p-98c2e3a9.entry.js.map → p-edbfa46e.entry.js.map} +1 -1
  662. package/dist/infineon-design-system-stencil/p-ee04eb6e.entry.js +2 -0
  663. package/dist/infineon-design-system-stencil/{p-6504f8d0.entry.js.map → p-ee04eb6e.entry.js.map} +1 -1
  664. package/dist/infineon-design-system-stencil/p-f06b0ae3.entry.js +2 -0
  665. package/dist/infineon-design-system-stencil/{p-6af7d062.entry.js.map → p-f06b0ae3.entry.js.map} +1 -1
  666. package/dist/infineon-design-system-stencil/p-f1ba768a.entry.js +2 -0
  667. package/dist/infineon-design-system-stencil/{p-af1e0cb5.entry.js.map → p-f1ba768a.entry.js.map} +1 -1
  668. package/dist/infineon-design-system-stencil/p-f2c8c7a6.entry.js +2 -0
  669. package/dist/infineon-design-system-stencil/{p-3f3a5140.entry.js.map → p-f2c8c7a6.entry.js.map} +1 -1
  670. package/dist/infineon-design-system-stencil/p-fb92000d.entry.js +2 -0
  671. package/dist/infineon-design-system-stencil/p-fc359efa.entry.js +2 -0
  672. package/dist/infineon-design-system-stencil/{p-3cdd03ed.entry.js.map → p-fc359efa.entry.js.map} +1 -1
  673. package/dist/infineon-design-system-stencil/{p-54785004.entry.js → p-fcae5dc1.entry.js} +2 -2
  674. package/dist/infineon-design-system-stencil/{p-54785004.entry.js.map → p-fcae5dc1.entry.js.map} +1 -1
  675. package/dist/infineon-design-system-stencil/{p-91ce7e7b.entry.js → p-ff4cc197.entry.js} +2 -2
  676. package/package.json +1 -1
  677. package/dist/cjs/index-n_pDKBY2.js.map +0 -1
  678. package/dist/esm/index-DtIEDtZ8.js.map +0 -1
  679. package/dist/infineon-design-system-stencil/p-0100cbfb.entry.js +0 -2
  680. package/dist/infineon-design-system-stencil/p-13fed6df.entry.js +0 -2
  681. package/dist/infineon-design-system-stencil/p-1c2d0b17.entry.js +0 -2
  682. package/dist/infineon-design-system-stencil/p-1df9b181.entry.js +0 -2
  683. package/dist/infineon-design-system-stencil/p-240a4cb3.entry.js +0 -2
  684. package/dist/infineon-design-system-stencil/p-249372a1.entry.js +0 -2
  685. package/dist/infineon-design-system-stencil/p-29d78bf2.entry.js +0 -2
  686. package/dist/infineon-design-system-stencil/p-3cdd03ed.entry.js +0 -2
  687. package/dist/infineon-design-system-stencil/p-3f29b8fd.entry.js +0 -2
  688. package/dist/infineon-design-system-stencil/p-3f3a5140.entry.js +0 -2
  689. package/dist/infineon-design-system-stencil/p-4016e7cf.entry.js +0 -2
  690. package/dist/infineon-design-system-stencil/p-412f510b.entry.js +0 -2
  691. package/dist/infineon-design-system-stencil/p-43943864.entry.js +0 -2
  692. package/dist/infineon-design-system-stencil/p-453bd9bd.entry.js +0 -2
  693. package/dist/infineon-design-system-stencil/p-4850e2df.entry.js +0 -2
  694. package/dist/infineon-design-system-stencil/p-4afddabf.entry.js +0 -2
  695. package/dist/infineon-design-system-stencil/p-4c846056.entry.js +0 -2
  696. package/dist/infineon-design-system-stencil/p-550283fa.entry.js +0 -2
  697. package/dist/infineon-design-system-stencil/p-58552d96.entry.js +0 -2
  698. package/dist/infineon-design-system-stencil/p-6407c496.entry.js +0 -2
  699. package/dist/infineon-design-system-stencil/p-6504f8d0.entry.js +0 -2
  700. package/dist/infineon-design-system-stencil/p-6af7d062.entry.js +0 -2
  701. package/dist/infineon-design-system-stencil/p-6ceae9a3.entry.js +0 -2
  702. package/dist/infineon-design-system-stencil/p-765dd1b4.entry.js +0 -2
  703. package/dist/infineon-design-system-stencil/p-7910df8a.entry.js +0 -2
  704. package/dist/infineon-design-system-stencil/p-84735ae2.entry.js +0 -2
  705. package/dist/infineon-design-system-stencil/p-8ab64504.entry.js +0 -2
  706. package/dist/infineon-design-system-stencil/p-913a8693.entry.js +0 -2
  707. package/dist/infineon-design-system-stencil/p-933da006.entry.js +0 -2
  708. package/dist/infineon-design-system-stencil/p-98c2e3a9.entry.js +0 -2
  709. package/dist/infineon-design-system-stencil/p-9ea43bb7.entry.js +0 -2
  710. package/dist/infineon-design-system-stencil/p-DtIEDtZ8.js.map +0 -1
  711. package/dist/infineon-design-system-stencil/p-a1c63832.entry.js +0 -2
  712. package/dist/infineon-design-system-stencil/p-ad702dcc.entry.js +0 -2
  713. package/dist/infineon-design-system-stencil/p-ae513612.entry.js +0 -2
  714. package/dist/infineon-design-system-stencil/p-af1e0cb5.entry.js +0 -2
  715. package/dist/infineon-design-system-stencil/p-b23596f4.entry.js +0 -2
  716. package/dist/infineon-design-system-stencil/p-b5db443a.entry.js +0 -2
  717. package/dist/infineon-design-system-stencil/p-c6fa6fd3.entry.js +0 -2
  718. package/dist/infineon-design-system-stencil/p-cae1ea22.entry.js +0 -2
  719. package/dist/infineon-design-system-stencil/p-d3236a63.entry.js +0 -2
  720. package/dist/infineon-design-system-stencil/p-d56ee584.entry.js +0 -2
  721. package/dist/infineon-design-system-stencil/p-dcc7240e.entry.js +0 -2
  722. package/dist/infineon-design-system-stencil/p-dd1b2b14.entry.js +0 -2
  723. package/dist/infineon-design-system-stencil/p-ee2ca575.entry.js +0 -2
  724. package/dist/infineon-design-system-stencil/p-f5811026.entry.js +0 -2
  725. package/dist/infineon-design-system-stencil/p-f68887c5.entry.js +0 -2
  726. package/dist/infineon-design-system-stencil/p-fe373208.entry.js +0 -2
  727. /package/dist/infineon-design-system-stencil/{p-0dbe2818.entry.js.map → p-060845fd.entry.js.map} +0 -0
  728. /package/dist/infineon-design-system-stencil/{p-dfd77261.entry.js.map → p-0fb9f42b.entry.js.map} +0 -0
  729. /package/dist/infineon-design-system-stencil/{p-d3a6bbf7.entry.js.map → p-116c853e.entry.js.map} +0 -0
  730. /package/dist/infineon-design-system-stencil/{p-fd206fce.entry.js.map → p-1d494424.entry.js.map} +0 -0
  731. /package/dist/infineon-design-system-stencil/{p-8c44be53.entry.js.map → p-2e172019.entry.js.map} +0 -0
  732. /package/dist/infineon-design-system-stencil/{p-4afddabf.entry.js.map → p-307e6a72.entry.js.map} +0 -0
  733. /package/dist/infineon-design-system-stencil/{p-ba4ee343.entry.js.map → p-45dad0d1.entry.js.map} +0 -0
  734. /package/dist/infineon-design-system-stencil/{p-7468590a.entry.js.map → p-4669e01f.entry.js.map} +0 -0
  735. /package/dist/infineon-design-system-stencil/{p-f63ba4a3.entry.js.map → p-5e3d0ff0.entry.js.map} +0 -0
  736. /package/dist/infineon-design-system-stencil/{p-e7b72d33.entry.js.map → p-744c1c8e.entry.js.map} +0 -0
  737. /package/dist/infineon-design-system-stencil/{p-76e88a63.entry.js.map → p-86945915.entry.js.map} +0 -0
  738. /package/dist/infineon-design-system-stencil/{p-eed36710.entry.js.map → p-8ceb2ccc.entry.js.map} +0 -0
  739. /package/dist/infineon-design-system-stencil/{p-d4fea918.entry.js.map → p-92ee6f73.entry.js.map} +0 -0
  740. /package/dist/infineon-design-system-stencil/{p-c9d594e1.entry.js.map → p-94dfe026.entry.js.map} +0 -0
  741. /package/dist/infineon-design-system-stencil/{p-0d4211db.entry.js.map → p-9517d1b0.entry.js.map} +0 -0
  742. /package/dist/infineon-design-system-stencil/{p-5c673497.entry.js.map → p-9b06df76.entry.js.map} +0 -0
  743. /package/dist/infineon-design-system-stencil/{p-bbd819a8.entry.js.map → p-acd0cede.entry.js.map} +0 -0
  744. /package/dist/infineon-design-system-stencil/{p-b969b2c0.entry.js.map → p-b7672947.entry.js.map} +0 -0
  745. /package/dist/infineon-design-system-stencil/{p-27808b00.entry.js.map → p-beaba918.entry.js.map} +0 -0
  746. /package/dist/infineon-design-system-stencil/{p-b5efb1d6.entry.js.map → p-c578a728.entry.js.map} +0 -0
  747. /package/dist/infineon-design-system-stencil/{p-2151de2a.entry.js.map → p-c6826c1e.entry.js.map} +0 -0
  748. /package/dist/infineon-design-system-stencil/{p-213a4829.entry.js.map → p-d2b076fe.entry.js.map} +0 -0
  749. /package/dist/infineon-design-system-stencil/{p-55227732.entry.js.map → p-d4373c36.entry.js.map} +0 -0
  750. /package/dist/infineon-design-system-stencil/{p-372fa9eb.entry.js.map → p-dcd0af23.entry.js.map} +0 -0
  751. /package/dist/infineon-design-system-stencil/{p-83816596.entry.js.map → p-e3c11b6c.entry.js.map} +0 -0
  752. /package/dist/infineon-design-system-stencil/{p-22a45c93.entry.js.map → p-e6c4c4cf.entry.js.map} +0 -0
  753. /package/dist/infineon-design-system-stencil/{p-8a9d3e04.entry.js.map → p-e78ffc43.entry.js.map} +0 -0
  754. /package/dist/infineon-design-system-stencil/{p-f68887c5.entry.js.map → p-fb92000d.entry.js.map} +0 -0
  755. /package/dist/infineon-design-system-stencil/{p-91ce7e7b.entry.js.map → p-ff4cc197.entry.js.map} +0 -0
@@ -0,0 +1,2 @@
1
+ import{r as e,c as i,h as t,a}from"./p-PqnYwNKt.js";import{d as r,t as s}from"./p-DcmcuUOA.js";import{i as n}from"./p-Bw2fh5LT.js";const l=':root{--ifx-font-family:"Source Sans 3", "Arial, sans-serif"}:host{display:inline-block}.chip{position:relative}.chip__wrapper{display:inline-flex;align-items:center;justify-content:center;gap:8px;box-sizing:border-box;border-radius:9999px;background:#FFFFFF;cursor:pointer;transition:border 100ms ease;font:400 0.875rem/1.25rem "Source Sans 3"}.chip__wrapper .icon__wrapper{display:flex}.chip__wrapper.outlined,.chip__wrapper.filled-dark,.chip__wrapper.filled-light{outline:2px solid transparent}.chip__wrapper.outlined:focus-visible,.chip__wrapper.filled-dark:focus-visible,.chip__wrapper.filled-light:focus-visible{outline:2px solid #0A8276;outline-offset:2px}.chip__wrapper.outlined.chip__wrapper--opened .wrapper__open-button,.chip__wrapper.filled-dark.chip__wrapper--opened .wrapper__open-button,.chip__wrapper.filled-light.chip__wrapper--opened .wrapper__open-button{transform:rotate(-180deg)}.chip__wrapper.outlined.chip__wrapper--selected .wrapper__label .label__selected-options,.chip__wrapper.filled-dark.chip__wrapper--selected .wrapper__label .label__selected-options,.chip__wrapper.filled-light.chip__wrapper--selected .wrapper__label .label__selected-options{font:400 0.875rem/1.25rem "Source Sans 3"}.chip__wrapper.filled-dark.chip__wrapper--selected:not(.read-only),.chip__wrapper.filled-light.chip__wrapper--selected:not(.read-only){background-color:#0A8276;color:white}.chip__wrapper.filled-dark.chip__wrapper--selected:not(.read-only):hover,.chip__wrapper.filled-light.chip__wrapper--selected:not(.read-only):hover{background-color:#08665C}.chip__wrapper.filled-dark.chip__wrapper--selected:not(.read-only):hover.disabled,.chip__wrapper.filled-light.chip__wrapper--selected:not(.read-only):hover.disabled{background-color:#0A8276}.chip__wrapper.outlined{border:1px solid #8D8786}.chip__wrapper.outlined:hover:not(.read-only){border-color:#575352;background-color:#F7F7F7}.chip__wrapper.outlined:active:not(.read-only){border-color:#575352;background-color:#BFBBBB}.chip__wrapper.outlined.chip__wrapper--opened{border:1px solid #0A8276}.chip__wrapper.outlined.chip__wrapper--selected{outline:3px solid #0A8276;border:1px solid transparent;background-color:white}.chip__wrapper.outlined.chip__wrapper--selected:focus-visible{outline-offset:0px}.chip__wrapper.outlined.chip__wrapper--selected:hover:not(.read-only){outline-color:#08665C}.chip__wrapper.outlined.chip__wrapper--selected.read-only{outline:none;border:1px solid black}.chip__wrapper.outlined.disabled{outline:none;color:#BFBBBB;border:1px solid #BFBBBB}.chip__wrapper.outlined.disabled:hover{outline:none;border-color:#BFBBBB;background-color:white}.chip__wrapper.outlined.read-only{border:1px solid black}.chip__wrapper.outlined.read-only:focus-visible{outline:2px solid #0A8276;outline-offset:2px}.chip__wrapper.filled-dark{background-color:#3C3A39;color:white}.chip__wrapper.filled-dark:hover:not(.chip__wrapper--selected,.disabled,.read-only){background-color:#575352}.chip__wrapper.filled-dark:active:not(.chip__wrapper--selected,.disabled,.read-only){background-color:#8D8786;color:black}.chip__wrapper.filled-dark.disabled{outline:none;color:#BFBBBB}.chip__wrapper.filled-dark.disabled:hover:not(.chip__wrapper--selected){background-color:#3C3A39}.chip__wrapper.filled-dark.chip__wrapper--selected.read-only{border:1px solid #8D8786}.chip__wrapper.filled-dark.read-only{border:1px solid #8D8786}.chip__wrapper.filled-light{background-color:#EEEDED}.chip__wrapper.filled-light:hover:not(.read-only){background-color:#BFBBBB}.chip__wrapper.filled-light:active:not(.read-only){background-color:#8D8786}.chip__wrapper.filled-light.disabled{outline:none;color:#BFBBBB}.chip__wrapper.filled-light.disabled:hover:not(.chip__wrapper--selected){background-color:#EEEDED}.chip__wrapper.filled-light.chip__wrapper--selected.read-only{border:1px solid black}.chip__wrapper.filled-light.read-only{border:1px solid black}.chip__wrapper.chip__wrapper--small{padding:4px 8px;height:24px}.chip__wrapper.chip__wrapper--medium{padding:4px 12px;height:28px}.chip__wrapper.chip__wrapper--large{padding:8px 12px;height:36px}.wrapper__label{display:inline-flex;align-items:center;gap:4px}.wrapper__label .label__selected-options{font:600 0.875rem/1.25rem "Source Sans 3"}.wrapper__open-button{display:flex;align-items:center}.wrapper__unselect-button{display:flex;align-items:center}.chip__dropdown{position:absolute;z-index:1;box-shadow:0px 6px 9px 0px rgba(29, 29, 29, 0.1019607843);border:1px solid #EEEDED;border-radius:1px;padding:8px 0;min-width:222px;background-color:#FFFFFF}';const o=class{constructor(t){e(this,t);this.ifxChange=i(this,"ifxChange",7);this.placeholder="";this.size="medium";this.value=undefined;this.variant="single";this.theme="outlined";this.readOnly=false;this.disabled=false;this.icon="";this.opened=false;this.selectedOptions=[]}handleValueChange(e){this.syncSelectedOptionsWithProp(e)}handleReadOnlyChange(e){if(e){this.opened=false}}closeDropdownOnOutsideClick(e){const i=e.composedPath();const t=this.chip.shadowRoot.querySelector(".chip__wrapper");const a=this.chip.shadowRoot.querySelector(".chip__dropdown");if(!i.includes(a)&&!i.includes(t)&&this.opened){this.toggleDropdownMenu()}}handleKeyDown(e){if(e.code!=="Tab"){e.preventDefault()}if(e.target.tagName==="IFX-CHIP"){this.handleWrapperKeyDown(e)}else if(e.target.tagName==="IFX-CHIP-ITEM"){this.handleDropdownKeyDown(e)}}updateSelectedOptions(e){const i=e.detail;const t=[...this.selectedOptions];if(this.variant!=="multi"){if(i.selected){this.opened=false;const t=this.getChipItems();t.forEach((i=>{if(i.selected&&i!==e.target){i.chipState=Object.assign(Object.assign({},i.chipState),{emitIfxChipItemSelect:false});i.selected=false}}));this.selectedOptions=[i]}else{this.selectedOptions=[]}this.value=this.selectedOptions[0]?this.selectedOptions[0].value:undefined}else{if(i.selected){if(!this.selectedOptions.find((e=>e.value===i.value))){this.selectedOptions=[...this.selectedOptions,i]}}else{this.selectedOptions=this.selectedOptions.filter((e=>e.value!==i.value))}this.value=this.selectedOptions.map((e=>e.value))}if(i.emitIfxChange){this.ifxChange.emit({previousSelection:t,currentSelection:this.selectedOptions,name:this.placeholder})}}getChipItems(){return this.chip.querySelectorAll("ifx-chip-item")}getSelectedOptions(){if(this.variant!=="multi"){return this.selectedOptions.map((e=>e.label)).join("")}return this.selectedOptions.slice(0,2).map((e=>e.label)).join(", ")}toggleDropdownMenu(){if(this.readOnly)return;this.opened=!this.opened}focusChipItemAt(e=0){this.opened=true;const i=this.getChipItems();let t;if(e===-1){t=i.item(i.length-1)}else if(e>=0&&e<i.length){t=i.item(e)}else{console.error(`Invalid index: ${e}`);return}const a=t.shadowRoot.querySelector(".chip-item");if(a){setTimeout((()=>{a.focus()}),1)}}focusChip(){const e=this.chip.shadowRoot.querySelector(".chip__wrapper");e.focus()}handleUnselectButtonClick(e){e.stopPropagation();this.opened=false;let i=false;const t=this.getChipItems();t.forEach((e=>{if(e.selected){i=true;e.chipState=Object.assign(Object.assign({},e.chipState),{emitIfxChipItemSelect:false});e.selected=false}}));if(i){const e=this.selectedOptions;this.selectedOptions=[];this.value=[];this.ifxChange.emit({previousSelection:e,currentSelection:[],name:this.placeholder})}}handleWrapperClick(){if(!this.readOnly){this.toggleDropdownMenu()}}handleWrapperKeyDown(e){if(this.readOnly)return;if(!this.opened){switch(e.code){case"Space":case"Enter":case"ArrowDown":this.focusChipItemAt(0);break;case"ArrowUp":this.focusChipItemAt(-1);break}}else{switch(e.code){case"Escape":this.opened=false;this.focusChip();break}}}handleDropdownKeyDown(e){let i=this.getChipItems();let t=Array.from(i).indexOf(e.target);if(t===-1){console.error("Target not found in chip items");return}switch(e.code){case"ArrowDown":if(t===i.length-1)break;this.focusChipItemAt(t+1);break;case"ArrowUp":if(t===0)break;this.focusChipItemAt(t-1);break;case"Escape":this.opened=false;this.focusChip();break;case"Space":if(this.variant==="single"){this.opened=false;this.focusChip()}break;case"Enter":this.opened=false;this.focusChip();break}}syncChipState(){const e=this.getChipItems();let i=0;e.forEach((e=>{e.chipState={emitIfxChipItemSelect:true,size:this.size?this.size:"medium",variant:this.variant==="multi"?"multi":"single",key:i++}}))}syncSelectedOptionsWithProp(e){this.selectedOptions=[];const i=(()=>{let e=0;return()=>e++})();if(Array.isArray(e)){this.selectedOptions=e.map((e=>({value:e,label:e,selected:true,key:i(),emitIfxChange:true})))}else if(typeof e==="string"){this.selectedOptions=[{value:e,label:e,selected:true,key:i(),emitIfxChange:true}]}this.syncChipState()}componentWillLoad(){this.syncSelectedOptionsWithProp(this.value)}async componentDidLoad(){if(!n(this.chip)){const e=r();s("ifx-chip",await e)}}render(){return t("div",{key:"cd16644a94a1e31cea0b2cbbe39394d4a05a5a5b",class:"chip"},t("div",{key:"951decf38e88ff684f283a09f6bc513ca4a2c704",class:`chip__wrapper chip__wrapper--${this.size?this.size:"medium"}\n chip__wrapper--${this.variant==="multi"?"multi":"single"}\n ${this.opened&&!this.readOnly?"chip__wrapper--opened":""}\n ${this.selectedOptions.length?"chip__wrapper--selected":""}\n ${this.theme?this.theme:"outlined"}\n ${this.disabled?"disabled":""}\n ${this.readOnly?"read-only":""}`,tabIndex:0,onClick:!this.readOnly&&!this.disabled?()=>{this.handleWrapperClick()}:undefined,role:"combobox","aria-label":this.ariaLabel,"aria-value":this.getSelectedOptions(),"aria-haspopup":!this.readOnly?"listbox":undefined,"aria-expanded":!this.readOnly?this.opened.toString():undefined,"aria-controls":!this.readOnly?"dropdown":undefined,"aria-readonly":this.readOnly?"true":undefined,"aria-multiselectable":this.variant==="multi"?"true":undefined},this.icon&&t("div",{key:"cd8ab00ddfde3ba1dcdb7a82f963df1b81e4b5d5",class:"icon__wrapper"},t("ifx-icon",{key:"b14f92a609f24bc0b4617bb2b0d8262c52f11fab",icon:this.icon})),t("div",{key:"7ac3305d90985ddf45eb4df3cc22f9de89bf60de",class:"wrapper__label"},this.selectedOptions.length===0&&`${this.placeholder}`,this.selectedOptions.length!==0&&this.variant==="multi"&&this.placeholder!==""&&`${this.placeholder}:`,this.selectedOptions.length!==0&&t("div",{key:"e7c907adafd7e1601a4cbd05e1a7b415e1da05b6",class:"label__selected-options"},this.getSelectedOptions()),this.selectedOptions.length>2&&this.variant==="multi"&&t("ifx-indicator",{key:"4520777b0d729d95d57d87d5a32a95fcf44e0d84",variant:"number",inverted:this.theme==="outlined"?false:true,number:this.selectedOptions.length-2})),!this.readOnly&&(this.variant!=="multi"||this.variant==="multi"&&this.selectedOptions.length===0)&&t("div",{key:"ade24c6456b5443be577a4c0bd61d1b2dba68c91",class:"wrapper__open-button"},t("ifx-icon",{key:1,icon:`chevron-down-16`})),this.selectedOptions.length>=1&&this.variant==="multi"&&t("div",{key:"8b1937382b467ca305493896aaf065c10f7a01e8",class:"wrapper__unselect-button",onClick:!this.readOnly&&!this.disabled?e=>{this.handleUnselectButtonClick(e)}:undefined},t("ifx-icon",{key:2,icon:`cross16`}))),this.opened&&!this.readOnly&&t("div",{key:"073b6641d2320716a6d4b1149e72b61fa9b47dd8",id:"dropdown",role:"listbox",class:"chip__dropdown"},t("slot",{key:"55587cb1d438b11f0682c3b1d596a5dfb1d251d0"})))}get chip(){return a(this)}static get watchers(){return{value:["handleValueChange"],readOnly:["handleReadOnlyChange"]}}};o.style=l;const p=':root{--ifx-font-family:"Source Sans 3", "Arial, sans-serif"}.chip-item{display:flex;align-items:center;gap:8px;padding:8px 16px;user-select:none;transition:all 100ms ease;transition-property:background, color}.chip-item:hover{cursor:pointer;background-color:#EEEDED}.chip-item:active{background-color:#BFBBBB}.chip-item:focus{outline:2px solid #0A8276}.chip-item.chip-item--large{font:400 1rem/1.5rem "Source Sans 3"}.chip-item.chip-item--small{font:400 0.875rem/1.25rem "Source Sans 3"}.chip-item.chip-item--selected{color:#0A8276}.chip-item.chip-item--selected .chip-item__selected-indicator{display:block}.chip-item__selected-indicator{display:none;margin-left:auto}';const c=class{constructor(t){e(this,t);this.ifxChipItemSelect=i(this,"ifxChipItemSelect",5);this.value=undefined;this.chipState={emitIfxChipItemSelect:true,variant:"multi",size:"large"};this.selected=false}updateItemSelection(e){if(this.chipState.variant==="single"){const i=e.target;if(this.chipItem!==i&&this.chipItem.parentElement===i.parentElement){this.selected=false}}}validateSelected(e,i){if(e!==i){if(this.chipState.emitIfxChipItemSelect){this.emitIfxChipItemSelectEvent()}else{this.chipState.emitIfxChipItemSelect=true}}}getItemLabel(){return this.chipItem.innerText}toggleItemSelection(){this.selected=!this.selected}emitIfxChipItemSelectEvent(e=true){this.ifxChipItemSelect.emit({emitIfxChange:e,key:this.chipState.key,label:this.getItemLabel(),selected:this.selected,value:this.value})}handleItemClick(){this.toggleItemSelection()}handleItemKeyDown(e){if(e.code==="Enter"||e.code==="Space"){this.toggleItemSelection()}}handleSelectedState(){if(this.selected){this.emitIfxChipItemSelectEvent(false)}}componentWillLoad(){this.handleSelectedState()}render(){return t("div",{key:"4d5ace01c02658ed46fbf42c36138a06c3d46049",class:`chip-item chip-item--${this.chipState.size} \n chip-item--${(this.selected&&this.chipState.variant)==="single"?"selected":""}`,tabIndex:0,onClick:()=>{this.handleItemClick()},onKeyDown:e=>{this.handleItemKeyDown(e)},role:"option","aria-selected":this.selected.toString()},this.chipState.variant==="multi"&&t("ifx-checkbox",{key:"bf1af2aaf0944351eb33ace8c704bbb4973951d6",checked:this.selected,tabIndex:-1,size:"s"}),t("div",{key:"50347975f1554b7a02ef2bde34750b361daad549",class:"chip-item__label"}," ",t("slot",{key:"9667dd32c70e5f4a7946499f828883efb10caff2"})," "),t("div",{key:"f2fcab283b717837bc8b6c09b6b3c6c72675e40c",class:"chip-item__selected-indicator"},t("ifx-icon",{key:"84e489e9a638f2165c436b10bea8d826ae6db11c",icon:"check-16"}," ")))}get chipItem(){return a(this)}static get watchers(){return{selected:["validateSelected"]}}};c.style=p;const h=':root{--ifx-font-family:"Source Sans 3", "Arial, sans-serif"}:host{display:inline-flex}.container{display:inline-flex;justify-content:center;align-items:center;gap:32px;font-family:var(--ifx-font-family);flex-wrap:wrap}.container .items__per-page-wrapper{display:flex;align-items:center;gap:16px}.container .items__per-page-wrapper .items__per-page-label{color:#1D1D1D;font-size:14px;font-style:normal;font-weight:600;line-height:20px}.container .items__per-page-wrapper .items__per-page-field{display:flex;flex-direction:column;align-items:flex-start}.container .items__per-page-wrapper .items__per-page-field ifx-select{width:92px}.container .items__total-wrapper{display:flex;justify-content:center;align-items:center;gap:12px}.container .items__total-wrapper .items__total-button{display:flex;width:40px;height:40px;justify-content:center;align-items:center;border-radius:100px;border:1px solid #BFBBBB;background:#FFF}.container .items__total-wrapper .page__numbers-wrapper{display:flex;justify-content:center;align-items:center;gap:12px}.container .items__total-wrapper .page__numbers-wrapper .page__number-item{display:flex;padding:6px;flex-direction:column;justify-content:center;align-items:center;gap:10px;border-radius:100px}.container .items__total-wrapper .page__numbers-wrapper .page__number-item.active{background-color:#0A8276}.container .items__total-wrapper .page__numbers-wrapper .page__number-item.active span{color:#fff}.container .items__total-wrapper .page__numbers-wrapper .page__number-item:hover{cursor:pointer}.container .items__total-wrapper .page__numbers-wrapper .page__number-item:hover:not(.active){background-color:#ddd}.container .items__total-wrapper .page__numbers-wrapper .page__number-item:active:not(.active){background-color:#575352}.container .items__total-wrapper .page__numbers-wrapper .page__number-item span{display:flex;width:16px;height:16px;flex-direction:column;justify-content:center;color:#1D1D1D;text-align:center;font-size:13px;font-style:normal;font-weight:400;line-height:20px}.pagination{display:flex}.pagination ifx-icon-button:first-of-type{margin-right:12px}.pagination ifx-icon-button:last-of-type{margin-left:12px}.page__button{padding:8px;border-radius:100px}ol{list-style-type:none;padding:0;margin:0;display:inline-flex;align-items:center;gap:12px}li{display:flex;flex-direction:column;justify-content:center;align-items:center;border-radius:100px}li:hover:not(.active) page__button{background-color:#EEEDED}li:active:not(.active) .page__button{background-color:#575352;color:#fff}li.active{background-color:#0A8276}li.active .page__button{color:#fff}li:hover{cursor:pointer}li .page__button{text-decoration:none;display:flex;width:16px;height:16px;flex-direction:column;justify-content:center;color:#1D1D1D;text-align:center;font-size:13px;font-style:normal;font-weight:400;line-height:20px;align-items:center}.prev.disabled,.next.disabled{cursor:default}.prev.disabled:hover,.next.disabled:hover{cursor:default;text-decoration:none}.prev{margin-right:2.5px}.next{margin-left:2.5px}@media (max-width: 768px){.container{gap:16px;justify-content:left}.container .items__total-wrapper .pagination ol{gap:12px}}@media (max-width: 374px){.pagination .ellipsis+.active{margin-left:8px}.pagination .active+.ellipsis{margin-left:8px}}';const d=class{constructor(t){e(this,t);this.ifxPageChange=i(this,"ifxPageChange",7);this.ifxItemsPerPageChange=i(this,"ifxItemsPerPageChange",7);this.currentPage=1;this.showItemsPerPage=true;this.internalPage=1;this.internalItemsPerPage=10;this.numberOfPages=[];this.total=1;this.filteredItemsPerPage=[];this.visiblePages=[];this.CLASS_DISABLED="disabled";this.CLASS_ACTIVE="active";this.handlePageClick=e=>{const i=e.currentTarget;const t=parseInt(i.dataset.page);if(!isNaN(t))this.changePage(t)};this.handleResize=()=>{clearTimeout(this.resizeTimeout);this.resizeTimeout=setTimeout((()=>{this.updateVisiblePages()}),100)}}watchTotalHandler(){this.calculateNumberOfPages();this.updateVisiblePages()}currentPageWatcher(e){this.internalPage=Math.max(1,Math.min(e,this.numberOfPages.length));this.calculateNumberOfPages();this.updateVisiblePages()}setItemsPerPage(e){var i,t;const a=((i=e.detail)===null||i===void 0?void 0:i.value)||((t=e.detail)===null||t===void 0?void 0:t.label);const r=parseInt(a)||10;if(r===this.internalItemsPerPage){return}this.internalItemsPerPage=r;this.internalPage=1;this.calculateNumberOfPages();this.updateVisiblePages();this.handleEventEmission()}emitItemsPerPage(e){this.ifxItemsPerPageChange.emit(e.detail.label)}async componentDidLoad(){if(this.showItemsPerPage){const e=this.el.shadowRoot.querySelector("#itemsPerPageSelect");if(e){e.addEventListener("ifxSelect",(e=>this.emitItemsPerPage(e)))}}window.addEventListener("resize",this.handleResize);if(!n(this.el)){const e=r();s("ifx-pagination",await e)}this.initPagination()}disconnectedCallback(){if(this.showItemsPerPage){const e=this.el.shadowRoot.querySelector("#itemsPerPageSelect");if(e){e.removeEventListener("ifxSelect",(e=>this.emitItemsPerPage(e)))}}window.removeEventListener("resize",this.handleResize);if(this.resizeTimeout){clearTimeout(this.resizeTimeout)}}updateVisiblePages(){const e=window.innerWidth<375;const i=this.numberOfPages.length;const t=this.internalPage;let a=[];if(e){if(i<=5){a=[...this.numberOfPages]}else{a.push(1);if(t<=2){a.push(2,3,"...",i)}else if(t>=i-1){a.push("...",i-2,i-1,i)}else{a.push("...",t,"...",i)}}}else{const e=2;if(i<=7){a=[...this.numberOfPages]}else{a.push(1);let r=Math.max(2,t-e);let s=Math.min(i-1,t+e);if(t<=4){r=2;s=Math.min(i-1,5)}else if(t>=i-3){r=Math.max(2,i-4);s=i-1}else{r=t-1;s=t+1}if(r>2){a.push("...")}for(let e=r;e<=s;e++){a.push(e)}if(s<i-1){a.push("...")}a.push(i)}}this.visiblePages=a}calculateNumberOfPages(){const e=Math.ceil(this.total/this.internalItemsPerPage);this.numberOfPages=Array.from({length:e},((e,i)=>i+1));this.internalPage=Math.max(1,Math.min(this.currentPage,e))}filterOptionsArray(){const e=typeof this.itemsPerPage==="string"?JSON.parse(this.itemsPerPage):this.itemsPerPage;this.filteredItemsPerPage=e.map((e=>Object.assign(Object.assign({},e),{label:e.label||e.value})))}componentWillLoad(){this.filterOptionsArray();const e=this.filteredItemsPerPage.find((e=>e.selected));if(e){this.internalItemsPerPage=Number(e.value)}else if(this.filteredItemsPerPage.length>0){this.internalItemsPerPage=Number(this.filteredItemsPerPage[0].value)}this.calculateNumberOfPages();this.internalPage=Math.max(1,Math.min(this.currentPage,this.numberOfPages.length));this.updateVisiblePages()}componentWillUpdate(){if(this.prevInternalPage!==this.internalPage){this.updateVisiblePages();this.prevInternalPage=this.internalPage}}componentDidUpdate(){this.initPagination()}handleEventEmission(){this.ifxPageChange.emit({currentPage:this.internalPage,totalPages:this.numberOfPages.length,itemsPerPage:this.internalItemsPerPage})}initPagination(){const e=this.el.shadowRoot.querySelector(".pagination");if(!e)return;const i=()=>{const i=e.querySelector(".prev");const t=e.querySelector(".next");if(i){i.disabled=this.internalPage===1;i.classList.toggle(this.CLASS_DISABLED,this.internalPage===1)}if(t){t.disabled=this.internalPage===this.numberOfPages.length;t.classList.toggle(this.CLASS_DISABLED,this.internalPage===this.numberOfPages.length)}};e.querySelectorAll("li").forEach((e=>{e.removeEventListener("click",this.handlePageClick);e.addEventListener("click",this.handlePageClick)}));i()}changePage(e){e=Math.max(1,Math.min(e,this.numberOfPages.length));if(e===this.internalPage)return;this.internalPage=e;this.handleEventEmission();this.initPagination()}render(){return t("div",{key:"9a4b41bb714202dcc144f626b9a2096480852ad6",class:"container"},this.showItemsPerPage&&t("div",{key:"9e829381e98967180e89bf8f8988c67bbb998814",class:"items__per-page-wrapper"},t("div",{key:"be5d328337c18096cd1363f3c7c0c060693fe525",class:"items__per-page-label"},"Results per Page"),t("div",{key:"37f663194a695059779305e0723321c26f55d191",class:"items__per-page-field"},t("ifx-select",{key:"916cc188fd2f7d86243db5955f091e188defbacc",id:"itemsPerPageSelect",placeholder:"false","show-search":"false",value:undefined,disabled:false,error:false,size:"s",options:this.filteredItemsPerPage,"placeholder-value":"Select"}))),t("div",{key:"f6531ac8c0710f53ff375e8ee4fa19bb47be5cef",class:"items__total-wrapper"},t("div",{key:"4edaf3f1bc17c3423c2b39473a0f5ddc959278d6",class:"pagination"},t("ifx-icon-button",{key:"7341fced786739f5970cfc9940381b2b2901de63",class:"prev",icon:"arrow-left-16","aria-label":"Previous Page",onClick:()=>this.changePage(this.internalPage-1),variant:"secondary"}),t("ol",{key:"b7af29f3b08ee99b3c880c7af51b4d491630e55c"},this.visiblePages.map(((e,i)=>typeof e==="number"?t("li",{key:`page-${e}`,class:{[this.CLASS_ACTIVE]:e===this.internalPage},"data-page":e},t("span",{class:"page__button",role:"button",tabindex:"0","aria-current":e===this.internalPage?"page":undefined,"aria-label":`Page ${e}`,onClick:()=>this.changePage(e),onKeyDown:i=>(i.key==="Enter"||i.key===" ")&&this.changePage(e)},e)):t("li",{class:"ellipsis",key:`ellipsis-${i}`},t("span",{"aria-hidden":"true"},"..."))))),t("ifx-icon-button",{key:"5bdcefa2773fb49f8d7c4190a48fe5a98f6e0442",class:"next",icon:"arrow-right-16","aria-label":"Next Page",onClick:()=>this.changePage(this.internalPage+1),variant:"secondary"}))))}get el(){return a(this)}static get watchers(){return{total:["watchTotalHandler"],currentPage:["currentPageWatcher"]}}};d.style=h;export{o as ifx_chip,c as ifx_chip_item,d as ifx_pagination};
2
+ //# sourceMappingURL=p-4da5a2a5.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["chipCss","Chip","constructor","hostRef","this","placeholder","size","value","undefined","variant","theme","readOnly","disabled","icon","opened","selectedOptions","handleValueChange","newValue","syncSelectedOptionsWithProp","handleReadOnlyChange","closeDropdownOnOutsideClick","event","path","composedPath","chipWrapper","chip","shadowRoot","querySelector","chipDropdown","includes","toggleDropdownMenu","handleKeyDown","code","preventDefault","target","tagName","handleWrapperKeyDown","handleDropdownKeyDown","updateSelectedOptions","eventDetail","detail","previousSelection","selected","chipItems","getChipItems","forEach","chipItem","chipState","Object","assign","emitIfxChipItemSelect","find","option","filter","map","emitIfxChange","ifxChange","emit","currentSelection","name","querySelectorAll","getSelectedOptions","label","join","slice","focusChipItemAt","index","item","length","console","error","shadowItem","setTimeout","focus","focusChip","handleUnselectButtonClick","stopPropagation","itemGotUnselected","handleWrapperClick","chipitems","targetIndex","Array","from","indexOf","syncChipState","key","generateKey","count","isArray","componentWillLoad","componentDidLoad","isNestedInIfxComponent","framework","detectFramework","trackComponent","render","h","class","tabIndex","onClick","role","ariaLabel","toString","inverted","number","e","id","chipItemCss","ChipItem","updateItemSelection","parentElement","validateSelected","oldValue","emitIfxChipItemSelectEvent","getItemLabel","innerText","toggleItemSelection","ifxChipItemSelect","handleItemClick","handleItemKeyDown","handleSelectedState","onKeyDown","checked","paginationCss","Pagination","currentPage","showItemsPerPage","internalPage","internalItemsPerPage","numberOfPages","total","filteredItemsPerPage","visiblePages","CLASS_DISABLED","CLASS_ACTIVE","handlePageClick","li","currentTarget","page","parseInt","dataset","isNaN","changePage","handleResize","clearTimeout","resizeTimeout","updateVisiblePages","watchTotalHandler","calculateNumberOfPages","currentPageWatcher","newVal","Math","max","min","setItemsPerPage","selectedValue","_a","_b","newItemsPerPage","handleEventEmission","emitItemsPerPage","ifxItemsPerPageChange","select","el","addEventListener","window","initPagination","disconnectedCallback","removeEventListener","isMobile","innerWidth","totalPages","current","pages","push","buffer","start","end","i","ceil","_","filterOptionsArray","items","itemsPerPage","JSON","parse","selectedOption","Number","componentWillUpdate","prevInternalPage","componentDidUpdate","ifxPageChange","pagination","updateButtons","prev","next","classList","toggle","newPage","options","tabindex"],"sources":["src/components/chip/chip.scss?tag=ifx-chip&encapsulation=shadow","src/components/chip/chip.tsx","src/components/chip/chip-item/chip-item.scss?tag=ifx-chip-item&encapsulation=shadow","src/components/chip/chip-item/chip-item.tsx","src/components/pagination/pagination.scss?tag=ifx-pagination&encapsulation=shadow","src/components/pagination/pagination.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../global/font.scss\";\n\n:host {\n display: inline-block;\n}\n\n.chip {\n position: relative;\n}\n\n.chip__wrapper {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: tokens.$ifxSpace100;\n box-sizing: border-box;\n border-radius: tokens.$ifxBorderRadiusRound;\n background: tokens.$ifxColorBaseWhite;\n cursor: pointer; \n transition: border 100ms ease;\n font: tokens.$ifxBodyBody04;\n\n & .icon__wrapper { \n display: flex;\n }\n\n &.outlined, &.filled-dark, &.filled-light { \n outline: 2px solid transparent;\n &:focus-visible {\n outline: 2px solid tokens.$ifxColorOcean500;\n outline-offset: 2px;\n }\n \n &.chip__wrapper--opened {\n .wrapper__open-button {\n transform: rotate(-180deg);\n }\n }\n\n &.chip__wrapper--selected {\n .wrapper__label {\n .label__selected-options {\n font: tokens.$ifxBodyBody04;\n }\n }\n }\n }\n\n &.filled-dark, &.filled-light { \n &.chip__wrapper--selected:not(.read-only) {\n background-color: tokens.$ifxColorOcean500;\n color: white;\n &:hover { \n background-color: tokens.$ifxColorOcean600;\n }\n\n &:hover.disabled { \n background-color: tokens.$ifxColorOcean500;\n }\n }\n }\n \n &.outlined { \n border: 1px solid tokens.$ifxColorEngineering400;\n &:hover:not(.read-only) {\n border-color: tokens.$ifxColorEngineering500;\n background-color: tokens.$ifxColorEngineering100;\n }\n\n &:active:not(.read-only) { \n border-color: tokens.$ifxColorEngineering500;\n background-color: tokens.$ifxColorEngineering300;\n }\n\n &.chip__wrapper--opened {\n border: 1px solid tokens.$ifxColorOcean500;\n }\n\n &.chip__wrapper--selected {\n outline: 3px solid tokens.$ifxColorOcean500;\n border: 1px solid transparent;\n background-color: white;\n\n &:focus-visible {\n outline-offset: 0px;\n }\n &:hover:not(.read-only) { \n outline-color: tokens.$ifxColorOcean600;\n }\n\n &.read-only { \n outline: none;\n border: 1px solid black;\n }\n }\n\n &.disabled { \n outline: none;\n color: tokens.$ifxColorEngineering300;\n border: 1px solid tokens.$ifxColorEngineering300;\n &:hover { \n outline: none;\n border-color: tokens.$ifxColorEngineering300;\n background-color: white;\n }\n }\n\n &.read-only { \n border: 1px solid black;\n &:focus-visible { \n outline: 2px solid tokens.$ifxColorOcean500;\n outline-offset: 2px;\n }\n }\n }\n\n &.filled-dark { \n background-color: tokens.$ifxColorEngineering600;\n color: white;\n\n &:hover:not(.chip__wrapper--selected, .disabled, .read-only) { \n background-color: tokens.$ifxColorEngineering500;\n }\n\n &:active:not(.chip__wrapper--selected, .disabled, .read-only) { \n background-color: tokens.$ifxColorEngineering400;\n color: black;\n }\n\n &.disabled { \n outline: none;\n color: tokens.$ifxColorEngineering300;\n &:hover:not(.chip__wrapper--selected) { \n background-color: tokens.$ifxColorEngineering600;\n }\n }\n\n &.chip__wrapper--selected { \n &.read-only { \n border: 1px solid tokens.$ifxColorEngineering400;\n }\n }\n\n &.read-only { \n border: 1px solid tokens.$ifxColorEngineering400;\n }\n }\n\n &.filled-light { \n background-color: tokens.$ifxColorEngineering200;\n\n &:hover:not(.read-only) { \n background-color: tokens.$ifxColorEngineering300;\n }\n\n &:active:not(.read-only) { \n background-color: tokens.$ifxColorEngineering400;\n }\n\n &.disabled { \n outline: none;\n color: tokens.$ifxColorEngineering300;\n &:hover:not(.chip__wrapper--selected) { \n background-color: tokens.$ifxColorEngineering200;\n }\n }\n\n &.chip__wrapper--selected { \n &.read-only { \n border: 1px solid black;\n }\n }\n\n &.read-only { \n border: 1px solid black;\n }\n }\n \n &.chip__wrapper--small {\n padding: tokens.$ifxSpace50 tokens.$ifxSpace100;\n height: tokens.$ifxSize300;\n }\n\n &.chip__wrapper--medium {\n padding: tokens.$ifxSpace50 tokens.$ifxSpace150;\n height: tokens.$ifxSize350;\n }\n \n &.chip__wrapper--large {\n padding: tokens.$ifxSpace100 tokens.$ifxSpace150;\n height: tokens.$ifxSize450;\n }\n}\n\n.wrapper__label {\n display: inline-flex;\n align-items: center;\n gap: tokens.$ifxSpace50;\n\n .label__selected-options {\n font: tokens.$ifxBodyBodySemibold04;\n }\n}\n\n.wrapper__open-button {\n display:flex;\n align-items: center;\n}\n\n.wrapper__unselect-button {\n display:flex;\n align-items: center;\n}\n\n.chip__dropdown {\n position: absolute;\n z-index: 1;\n box-shadow: 0px 6px 9px 0px #1D1D1D1A;\n border: 1px solid tokens.$ifxColorEngineering200;\n border-radius: tokens.$ifxBorderRadius12;\n padding: tokens.$ifxSpace100 0;\n min-width: 222px;\n background-color: tokens.$ifxColorBaseWhite;\n}\n","import { h, Component, Element, Event, EventEmitter, Listen, Prop, State, Watch } from '@stencil/core';\nimport { ChipItemSelectEvent } from './interfaces';\nimport { trackComponent } from '../../global/utils/tracking';\nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\nimport { detectFramework } from '../../global/utils/framework-detection';\n\n@Component({\n tag: 'ifx-chip',\n styleUrl: 'chip.scss',\n shadow: true\n})\nexport class Chip {\n @Element() chip: HTMLIfxChipElement;\n\n @Event() ifxChange: EventEmitter<{ previousSelection: Array<ChipItemSelectEvent>, currentSelection: Array<ChipItemSelectEvent>, name: string }>;\n @Prop() placeholder: string = '';\n @Prop() size: 'small' | 'medium' | 'large' = 'medium';\n @Prop({ mutable: true }) value: Array<string> | string = undefined;\n @Prop() variant: 'single' | 'multi' = 'single';\n @Prop() theme: 'outlined' | 'filled-light' | 'filled-dark' = 'outlined';\n @Prop() readOnly: boolean = false;\n @Prop() ariaLabel: string | null;\n @Prop() disabled: boolean = false;\n @Prop() icon: string = \"\";\n\n @State() opened: boolean = false;\n @State() selectedOptions: Array<ChipItemSelectEvent> = [];\n\n @Watch('value')\n handleValueChange(newValue: Array<string> | string) {\n this.syncSelectedOptionsWithProp(newValue);\n }\n\n @Watch('readOnly')\n handleReadOnlyChange(newValue: boolean) {\n if (newValue) {\n this.opened = false;\n }\n }\n\n @Listen('mousedown', { target: 'document' })\n closeDropdownOnOutsideClick(event: MouseEvent) {\n const path = event.composedPath();\n const chipWrapper: HTMLElement = this.chip.shadowRoot.querySelector('.chip__wrapper');\n const chipDropdown: HTMLElement = this.chip.shadowRoot.querySelector('.chip__dropdown');\n if (!path.includes(chipDropdown) && !path.includes(chipWrapper) && this.opened) {\n this.toggleDropdownMenu();\n }\n }\n\n @Listen('keydown')\n handleKeyDown(event: KeyboardEvent) {\n // override behavior of all keys except Tab. Users should be able to tab out of the component.\n if (event.code !== 'Tab') {\n event.preventDefault(); \n }\n\n if ((event.target as HTMLElement).tagName === 'IFX-CHIP') {\n this.handleWrapperKeyDown(event);\n } else if ((event.target as HTMLElement).tagName === 'IFX-CHIP-ITEM') {\n this.handleDropdownKeyDown(event);\n }\n }\n\n @Listen('ifxChipItemSelect')\n updateSelectedOptions(event: CustomEvent<ChipItemSelectEvent>) {\n const eventDetail: ChipItemSelectEvent = event.detail;\n const previousSelection: Array<ChipItemSelectEvent> = [...this.selectedOptions];\n\n if (this.variant !== 'multi') {\n if (eventDetail.selected) {\n this.opened = false;\n const chipItems: NodeList = this.getChipItems();\n chipItems.forEach((chipItem: HTMLIfxChipItemElement) => {\n if (chipItem.selected && chipItem !== event.target) {\n chipItem.chipState = {\n ...chipItem.chipState,\n emitIfxChipItemSelect: false,\n };\n chipItem.selected = false;\n }\n });\n this.selectedOptions = [eventDetail];\n } else {\n this.selectedOptions = [];\n }\n this.value = this.selectedOptions[0] ? this.selectedOptions[0].value : undefined;\n } else {\n if (eventDetail.selected) {\n // Prevent duplicate entries\n if (!this.selectedOptions.find(option => option.value === eventDetail.value)) {\n this.selectedOptions = [...this.selectedOptions, eventDetail];\n }\n } else {\n this.selectedOptions = this.selectedOptions.filter((option) => option.value !== eventDetail.value);\n }\n this.value = this.selectedOptions.map((option) => option.value);\n }\n\n if (eventDetail.emitIfxChange) {\n this.ifxChange.emit({\n previousSelection: previousSelection,\n currentSelection: this.selectedOptions,\n name: this.placeholder\n });\n }\n }\n\n getChipItems(): NodeList {\n return this.chip.querySelectorAll('ifx-chip-item');\n }\n\n getSelectedOptions(): string {\n if (this.variant !== 'multi') {\n return this.selectedOptions.map(option => option.label).join('');\n }\n return this.selectedOptions.slice(0, 2).map(option => option.label).join(', ');\n }\n\n toggleDropdownMenu() {\n if (this.readOnly) return;\n this.opened = !this.opened;\n }\n\n /**\n * Focuses the chip item at the specified index.\n * @param index the index of the chip item to focus. -1 will focus the last chip item.\n */\n focusChipItemAt(index: number = 0) {\n this.opened = true;\n const chipItems: NodeList = this.getChipItems();\n let item: HTMLIfxChipItemElement;\n \n if (index === -1) {\n item = chipItems.item(chipItems.length - 1) as HTMLIfxChipItemElement;\n } else if (index >= 0 && index < chipItems.length) {\n item = chipItems.item(index) as HTMLIfxChipItemElement;\n } else {\n console.error(`Invalid index: ${index}`);\n return;\n }\n\n const shadowItem = item.shadowRoot.querySelector('.chip-item') as HTMLDivElement;\n if (shadowItem) {\n // Delay needed for the shadow item to be rendered.\n setTimeout(() => {\n shadowItem.focus();\n }, 1);\n }\n }\n\n focusChip() {\n const chipWrapper: HTMLElement = this.chip.shadowRoot.querySelector('.chip__wrapper');\n chipWrapper.focus();\n }\n\n handleUnselectButtonClick(event: MouseEvent) {\n event.stopPropagation();\n this.opened = false;\n\n let itemGotUnselected = false;\n const chipItems: NodeList = this.getChipItems();\n chipItems.forEach((chipItem: HTMLIfxChipItemElement) => {\n if (chipItem.selected) {\n itemGotUnselected = true;\n chipItem.chipState = {\n ...chipItem.chipState,\n emitIfxChipItemSelect: false,\n }\n chipItem.selected = false;\n }\n });\n\n /* Emit event only if at least one item was unselected. */\n if (itemGotUnselected) {\n const previousSelection: Array<ChipItemSelectEvent> = this.selectedOptions;\n this.selectedOptions = [];\n this.value = [];\n this.ifxChange.emit({\n previousSelection: previousSelection,\n currentSelection: [],\n name: this.placeholder\n });\n }\n }\n\n handleWrapperClick() {\n if (!this.readOnly) {\n this.toggleDropdownMenu();\n }\n }\n\n handleWrapperKeyDown(event: KeyboardEvent) {\n // Keymap oriented at https://www.w3.org/WAI/ARIA/apg/patterns/combobox/#keyboard_interaction\n if (this.readOnly) return;\n\n if (!this.opened) {\n switch (event.code) {\n case 'Space':\n case 'Enter':\n case 'ArrowDown':\n this.focusChipItemAt(0);\n break;\n case 'ArrowUp':\n this.focusChipItemAt(-1);\n break;\n }\n } else {\n switch (event.code) {\n case 'Escape':\n this.opened = false;\n this.focusChip();\n break;\n }\n }\n }\n\n handleDropdownKeyDown(event: KeyboardEvent) {\n let chipitems = this.getChipItems();\n\n let targetIndex = Array.from(chipitems).indexOf(event.target as HTMLIfxChipItemElement);\n if (targetIndex === -1) {\n console.error('Target not found in chip items');\n return;\n }\n\n switch (event.code) {\n case 'ArrowDown':\n if (targetIndex === chipitems.length - 1) break;\n this.focusChipItemAt(targetIndex + 1);\n break;\n case 'ArrowUp':\n if (targetIndex === 0) break;\n this.focusChipItemAt( targetIndex - 1);\n break;\n case 'Escape':\n this.opened = false;\n this.focusChip();\n break;\n case 'Space':\n // selection is handled by the chip-item component\n if (this.variant === 'single') {\n // only close dropdown if single select\n this.opened = false;\n this.focusChip();\n }\n break;\n case 'Enter':\n // selection is handled by the chip-item component\n this.opened = false;\n this.focusChip();\n break;\n }\n }\n\n syncChipState() {\n const chipItems: NodeList = this.getChipItems();\n let key: number = 0;\n chipItems.forEach((chipItem: HTMLIfxChipItemElement) => {\n chipItem.chipState = {\n emitIfxChipItemSelect: true,\n size: this.size ? this.size : 'medium',\n variant: (this.variant === 'multi' ? 'multi' : 'single'),\n key: key++\n };\n });\n }\n\n syncSelectedOptionsWithProp(newValue: Array<string> | string) {\n // Clear old selected options\n this.selectedOptions = [];\n\n const generateKey = (() => {\n let count = 0;\n return () => count++;\n })();\n\n if (Array.isArray(newValue)) {\n this.selectedOptions = newValue.map(value => ({\n value,\n label: value,\n selected: true,\n key: generateKey(),\n emitIfxChange: true\n }));\n } else if (typeof newValue === 'string') {\n this.selectedOptions = [{\n value: newValue,\n label: newValue,\n selected: true,\n key: generateKey(),\n emitIfxChange: true\n }];\n }\n\n this.syncChipState();\n }\n\n componentWillLoad() {\n this.syncSelectedOptionsWithProp(this.value);\n }\n\n async componentDidLoad() { \n if(!isNestedInIfxComponent(this.chip)) { \n const framework = detectFramework();\n trackComponent('ifx-chip', await framework)\n }\n }\n\n render() {\n return (\n <div class='chip'>\n <div class={`chip__wrapper chip__wrapper--${this.size ? this.size : 'medium'}\n chip__wrapper--${this.variant === 'multi' ? 'multi' : 'single'}\n ${this.opened && !this.readOnly ? 'chip__wrapper--opened' : ''}\n ${this.selectedOptions.length ? 'chip__wrapper--selected' : ''}\n ${this.theme ? this.theme : 'outlined'}\n ${this.disabled ? 'disabled' : \"\"}\n ${this.readOnly ? 'read-only' : \"\"}`}\n tabIndex={0}\n onClick={!this.readOnly && !this.disabled ? () => { this.handleWrapperClick() } : undefined}\n role='combobox'\n aria-label={this.ariaLabel}\n aria-value={this.getSelectedOptions()}\n aria-haspopup={!this.readOnly ? 'listbox' : undefined}\n aria-expanded={!this.readOnly ? this.opened.toString() : undefined}\n aria-controls={!this.readOnly ? 'dropdown' : undefined}\n aria-readonly={this.readOnly ? 'true' : undefined}\n aria-multiselectable={this.variant === 'multi' ? 'true' : undefined}\n >\n \n {this.icon && \n <div class=\"icon__wrapper\">\n <ifx-icon icon={this.icon}></ifx-icon>\n </div>}\n\n <div class='wrapper__label'>\n {\n (this.selectedOptions.length === 0) && `${this.placeholder}`\n }\n\n {\n (this.selectedOptions.length !== 0 && (this.variant === 'multi') && this.placeholder !== '') &&\n `${this.placeholder}:`\n }\n\n {\n (this.selectedOptions.length !== 0) &&\n <div class='label__selected-options'>\n {this.getSelectedOptions()}\n </div>\n }\n\n {\n (this.selectedOptions.length > 2 && this.variant === 'multi') &&\n <ifx-indicator variant='number' inverted={this.theme === 'outlined' ? false : true} number={this.selectedOptions.length - 2}></ifx-indicator>\n }\n </div>\n\n {\n !this.readOnly && (this.variant !== 'multi' || (this.variant === 'multi' && this.selectedOptions.length === 0)) &&\n <div class='wrapper__open-button'>\n <ifx-icon key={1} icon={`chevron-down-16`} />\n </div>\n }\n\n {\n ((this.selectedOptions.length >= 1) && this.variant === 'multi') &&\n <div class='wrapper__unselect-button' onClick={!this.readOnly && !this.disabled ? (e) => { this.handleUnselectButtonClick(e) } : undefined}>\n <ifx-icon key={2} icon={`cross16`} />\n </div>\n }\n\n </div>\n\n {\n this.opened && !this.readOnly &&\n <div id='dropdown' role='listbox' class='chip__dropdown'>\n <slot />\n </div>\n }\n </div>\n );\n }\n}\n","@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../../global/font.scss\";\n\n.chip-item {\n display: flex;\n align-items: center;\n gap: tokens.$ifxSpace100;\n \n padding: tokens.$ifxSpace100 tokens.$ifxSpace200;\n \n user-select: none;\n \n transition: all 100ms ease;\n transition-property: background, color;\n \n &:hover {\n cursor: pointer;\n \n background-color: tokens.$ifxColorEngineering200;\n }\n \n &:active {\n background-color: tokens.$ifxColorEngineering300;\n }\n\n &:focus {\n outline: 2px solid tokens.$ifxColorOcean500;\n }\n \n &.chip-item--large {\n font: tokens.$ifxBodyBody03;\n }\n \n &.chip-item--small {\n font: tokens.$ifxBodyBody04;\n }\n\n &.chip-item--selected {\n color: tokens.$ifxColorOcean500;\n\n .chip-item__selected-indicator {\n display: block;\n }\n }\n}\n\n.chip-item__selected-indicator {\n display: none;\n \n margin-left: auto;\n}\n\n","import { h,\n Component,\n Element,\n Event,\n EventEmitter, \n Listen,\n Prop, \n Watch } from '@stencil/core';\nimport { ChipItemSelectEvent, ChipState } from '../interfaces';\n\n@Component({\ntag: 'ifx-chip-item',\nstyleUrl: 'chip-item.scss',\nshadow: true\n})\n\nexport class ChipItem {\n@Element() chipItem: HTMLIfxChipItemElement;\n\n@Event({ composed: false }) ifxChipItemSelect: EventEmitter<ChipItemSelectEvent>;\n\n@Prop() value: string = undefined;\n@Prop() chipState: ChipState = { emitIfxChipItemSelect: true, variant: 'multi', size: 'large' }; \n@Prop({ mutable: true, reflect: true }) selected: boolean = false;\n\n@Listen('ifxChipItemSelect', { target: 'body' })\nupdateItemSelection(event: CustomEvent<ChipItemSelectEvent>) {\n if (this.chipState.variant === 'single') {\n const target = event.target as HTMLIfxChipItemElement;\n /* Also making sure chip items are from the same group (parent) while unselecting. */\n if (this.chipItem !== target && this.chipItem.parentElement === target.parentElement) {\n this.selected = false;\n }\n }\n} \n\n@Watch('selected')\nvalidateSelected(newValue: boolean, oldValue: boolean) {\n if (newValue !== oldValue) {\n /* Do not emit if ChipState does not allow. */\n if (this.chipState.emitIfxChipItemSelect){\n this.emitIfxChipItemSelectEvent();\n } else {\n this.chipState.emitIfxChipItemSelect = true;\n }\n }\n} \n\ngetItemLabel(): string {\n return this.chipItem.innerText as string;\n}\n\ntoggleItemSelection() {\n this.selected = !this.selected;\n}\n \n\nemitIfxChipItemSelectEvent(emitIfxChange: boolean = true) {\n this.ifxChipItemSelect.emit({ emitIfxChange: emitIfxChange,\n key: this.chipState.key,\n label: this.getItemLabel(), \n selected: this.selected, \n value: this.value });\n}\n\nhandleItemClick() {\n this.toggleItemSelection();\n}\n\nhandleItemKeyDown(event: KeyboardEvent) {\n if (event.code === 'Enter' || event.code === 'Space') {\n this.toggleItemSelection();\n }\n}\n\nhandleSelectedState() {\n if (this.selected) {\n this.emitIfxChipItemSelectEvent(false);\n }\n}\n\n\ncomponentWillLoad() {\n /* Propogating the selected state to the Chip (Parent) component if it is set. */\n this.handleSelectedState();\n}\n\nrender() {\n return (\n <div class={`chip-item chip-item--${this.chipState.size} \n chip-item--${(this.selected && this.chipState.variant) === 'single' ? 'selected' : ''}`} \n tabIndex={0}\n onClick={() => {this.handleItemClick()}}\n onKeyDown={(e) => {this.handleItemKeyDown(e)}}\n role=\"option\"\n aria-selected={this.selected.toString()}> \n {/* Checkbox; renders only in 'multi' variant. */}\n { \n this.chipState.variant === 'multi' &&\n <ifx-checkbox checked={this.selected}\n tabIndex={-1} \n size='s'>\n </ifx-checkbox>\n }\n\n <div class='chip-item__label'> <slot /> </div>\n\n {/* Selected indicator only visible in 'single' variant. */}\n <div class='chip-item__selected-indicator'> \n <ifx-icon icon='check-16'> </ifx-icon> \n </div>\n\n </div>\n );\n}\n}","@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../global/font.scss\";\n\n:host {\n display: inline-flex;\n}\n\n.container {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n gap: 32px;\n font-family: var(--ifx-font-family); // tokens.$ifxFontFamilyBody;\n flex-wrap: wrap;\n\n & .items__per-page-wrapper {\n display: flex;\n align-items: center;\n gap: 16px;\n\n & .items__per-page-label {\n color: #1D1D1D;\n font-size: 14px;\n font-style: normal;\n font-weight: 600;\n line-height: 20px;\n }\n\n & .items__per-page-field {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n\n & ifx-select {\n width: 92px;\n }\n }\n }\n\n & .items__total-wrapper {\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 12px;\n\n & .items__total-button {\n display: flex;\n width: 40px;\n height: 40px;\n justify-content: center;\n align-items: center;\n border-radius: 100px;\n border: 1px solid #BFBBBB;\n background: #FFF;\n }\n\n & .page__numbers-wrapper {\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 12px;\n\n & .page__number-item {\n display: flex;\n padding: 6px;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 10px;\n border-radius: 100px;\n\n &.active {\n background-color: #0A8276;\n\n & span {\n color: #fff;\n }\n }\n\n &:hover {\n cursor: pointer;\n }\n\n &:hover:not(.active) {\n background-color: #ddd;\n\n }\n\n &:active:not(.active) {\n background-color: #575352;\n }\n\n & span {\n display: flex;\n width: 16px;\n height: 16px;\n flex-direction: column;\n justify-content: center;\n color: #1D1D1D;\n text-align: center;\n font-size: 13px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n }\n }\n }\n }\n}\n\n\n.pagination {\n display: flex;\n\n & ifx-icon-button:first-of-type {\n margin-right: 12px;\n }\n\n & ifx-icon-button:last-of-type {\n margin-left: 12px;\n }\n}\n\n.page__button {\n padding: 8px;\n border-radius: 100px;\n}\n\nol {\n list-style-type: none;\n padding: 0;\n margin: 0;\n display: inline-flex;\n align-items: center;\n gap: 12px;\n}\n\nli {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n border-radius: 100px;\n\n &:hover:not(.active) {\n & page__button {\n background-color: #EEEDED;\n }\n }\n\n &:active:not(.active) {\n & .page__button {\n background-color: #575352;\n color: #fff;\n }\n }\n\n &.active {\n background-color: #0A8276;\n\n & .page__button {\n color: #fff;\n }\n }\n\n &:hover {\n cursor: pointer;\n }\n\n & .page__button {\n text-decoration: none;\n display: flex;\n width: 16px;\n height: 16px;\n flex-direction: column;\n justify-content: center;\n color: #1D1D1D;\n text-align: center;\n font-size: 13px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n align-items: center;\n }\n}\n\n.prev,\n.next {\n &.disabled {\n cursor: default;\n\n &:hover {\n cursor: default;\n text-decoration: none;\n }\n }\n}\n\n.prev {\n margin-right: 2.5px;\n}\n\n.next {\n margin-left: 2.5px;\n}\n\n@media (max-width: tokens.$ifxBreakpointM) {\n .container {\n gap: tokens.$ifxSpace200;\n justify-content: left;\n\n .items__total-wrapper {\n .pagination {\n ol {\n gap: tokens.$ifxSpace150;\n }\n }\n }\n }\n}\n\n@media (max-width: 374px) {\n .pagination {\n .ellipsis + .active {\n margin-left: tokens.$ifxSpace100;\n }\n\n .active + .ellipsis {\n margin-left: tokens.$ifxSpace100;\n }\n }\n}\n","import { Component, h, Element, Event, EventEmitter, Prop, State, Listen, Watch } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking';\nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\nimport { detectFramework } from '../../global/utils/framework-detection';\n\n@Component({\n tag: 'ifx-pagination',\n styleUrl: 'pagination.scss',\n shadow: true\n})\nexport class Pagination {\n @Element() el: HTMLElement;\n @Event() ifxPageChange: EventEmitter;\n @Event() ifxItemsPerPageChange: EventEmitter;\n @Prop() currentPage: number = 1;\n @Prop() showItemsPerPage: boolean = true;\n @State() internalPage: number = 1;\n @State() internalItemsPerPage: number = 10;\n @State() numberOfPages: number[] = [];\n @Prop() total: number = 1;\n @Prop() itemsPerPage: any[] | string;\n @State() filteredItemsPerPage: any[] = [];\n @State() visiblePages: (number | string)[] = [];\n\n private CLASS_DISABLED = \"disabled\";\n private CLASS_ACTIVE = \"active\";\n private prevInternalPage: number;\n\n @Watch('total')\n watchTotalHandler() {\n this.calculateNumberOfPages();\n this.updateVisiblePages();\n }\n\n @Watch('currentPage')\n currentPageWatcher(newVal: number) {\n this.internalPage = Math.max(1, Math.min(newVal, this.numberOfPages.length));\n this.calculateNumberOfPages();\n this.updateVisiblePages();\n }\n\n @Listen('ifxSelect')\n setItemsPerPage(e: CustomEvent) {\n const selectedValue = e.detail?.value || e.detail?.label;\n const newItemsPerPage = parseInt(selectedValue) || 10;\n\n if (newItemsPerPage === this.internalItemsPerPage) {\n return;\n }\n\n this.internalItemsPerPage = newItemsPerPage;\n this.internalPage = 1;\n this.calculateNumberOfPages();\n this.updateVisiblePages();\n this.handleEventEmission();\n }\n\n emitItemsPerPage(e) {\n this.ifxItemsPerPageChange.emit((e as any).detail.label)\n }\n\n async componentDidLoad() {\n if (this.showItemsPerPage) {\n const select = this.el.shadowRoot.querySelector('#itemsPerPageSelect');\n if(select) {\n select.addEventListener('ifxSelect', (e) => this.emitItemsPerPage(e))\n }\n }\n\n // Add resize listener to update pagination on screen size changes\n window.addEventListener('resize', this.handleResize);\n\n if(!isNestedInIfxComponent(this.el)) {\n const framework = detectFramework();\n trackComponent('ifx-pagination', await framework)\n }\n this.initPagination();\n }\n\n disconnectedCallback() {\n if (this.showItemsPerPage) {\n const select = this.el.shadowRoot.querySelector('#itemsPerPageSelect');\n if (select) {\n select.removeEventListener('ifxSelect', (e) => this.emitItemsPerPage(e));\n }\n }\n\n // Remove resize listener\n window.removeEventListener('resize', this.handleResize);\n\n // Clear any pending resize timeout\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n }\n }\n\n updateVisiblePages() {\n // Check if screen is mobile (< 375px)\n const isMobile = window.innerWidth < 375;\n const totalPages = this.numberOfPages.length;\n const current = this.internalPage;\n let pages: (number | string)[] = [];\n\n if (isMobile) {\n // Mobile logic: maximum 5 elements\n if (totalPages <= 5) {\n pages = [...this.numberOfPages];\n } else {\n // Always show first page\n pages.push(1);\n\n if (current <= 2) {\n // Show: 1 2 3 … 10 (for pages 1 and 2)\n pages.push(2, 3, '...', totalPages);\n } else if (current >= totalPages - 1) {\n // Show: 1 … 23 24 25 (for last 2 pages only)\n pages.push('...', totalPages - 2, totalPages - 1, totalPages);\n } else {\n // Show: 1 … 5 … 10 (for middle pages, including page 3 and third-to-last page)\n pages.push('...', current, '...', totalPages);\n }\n }\n } else {\n // Desktop logic: maximum 7 elements\n const buffer = 2;\n\n if (totalPages <= 7) {\n pages = [...this.numberOfPages];\n } else {\n // Always show first page\n pages.push(1);\n\n // Determine the range around current page\n let start = Math.max(2, current - buffer);\n let end = Math.min(totalPages - 1, current + buffer);\n\n // Adjust range to ensure we show enough pages\n // If we're close to the beginning, extend the end\n if (current <= 4) {\n start = 2;\n end = Math.min(totalPages - 1, 5);\n }\n // If we're close to the end, extend the start\n else if (current >= totalPages - 3) {\n start = Math.max(2, totalPages - 4);\n end = totalPages - 1;\n }\n // For middle pages, show current +/- 1\n else {\n start = current - 1;\n end = current + 1;\n }\n\n // Add ellipsis before the range if there's a gap\n if (start > 2) {\n pages.push('...');\n }\n\n // Add the range of pages\n for (let i = start; i <= end; i++) {\n pages.push(i);\n }\n\n // Add ellipsis after the range if there's a gap\n if (end < totalPages - 1) {\n pages.push('...');\n }\n\n // Always show last page\n pages.push(totalPages);\n }\n }\n\n this.visiblePages = pages;\n }\n\n calculateNumberOfPages() {\n const totalPages = Math.ceil(this.total / this.internalItemsPerPage);\n this.numberOfPages = Array.from({ length: totalPages }, (_, i) => i + 1);\n this.internalPage = Math.max(1, Math.min(this.currentPage, totalPages));\n }\n\n filterOptionsArray() {\n const items = typeof this.itemsPerPage === 'string' ?\n JSON.parse(this.itemsPerPage) : this.itemsPerPage;\n this.filteredItemsPerPage = items.map(item => ({\n ...item,\n label: item.label || item.value\n }));\n }\n\n componentWillLoad() {\n this.filterOptionsArray();\n\n const selectedOption = this.filteredItemsPerPage.find(option => option.selected);\n if (selectedOption) {\n this.internalItemsPerPage = Number(selectedOption.value);\n } else if (this.filteredItemsPerPage.length > 0) {\n this.internalItemsPerPage = Number(this.filteredItemsPerPage[0].value);\n }\n\n this.calculateNumberOfPages();\n this.internalPage = Math.max(1, Math.min(this.currentPage, this.numberOfPages.length));\n this.updateVisiblePages();\n }\n\n componentWillUpdate() {\n if (this.prevInternalPage !== this.internalPage) {\n this.updateVisiblePages();\n this.prevInternalPage = this.internalPage;\n }\n }\n\n componentDidUpdate() {\n this.initPagination();\n }\n\n handleEventEmission() {\n this.ifxPageChange.emit({\n currentPage: this.internalPage,\n totalPages: this.numberOfPages.length,\n itemsPerPage: this.internalItemsPerPage\n });\n }\n\n initPagination() {\n const pagination = this.el.shadowRoot.querySelector('.pagination');\n if (!pagination) return;\n\n const updateButtons = () => {\n const prev = pagination.querySelector<HTMLButtonElement>('.prev');\n const next = pagination.querySelector<HTMLButtonElement>('.next');\n if (prev) {\n prev.disabled = this.internalPage === 1;\n prev.classList.toggle(this.CLASS_DISABLED, this.internalPage === 1);\n }\n if (next) {\n next.disabled = this.internalPage === this.numberOfPages.length;\n next.classList.toggle(this.CLASS_DISABLED, this.internalPage === this.numberOfPages.length);\n }\n };\n\n pagination.querySelectorAll('li').forEach(li => {\n li.removeEventListener('click', this.handlePageClick);\n li.addEventListener('click', this.handlePageClick);\n });\n\n updateButtons();\n }\n\n private handlePageClick = (e: Event) => {\n const li = e.currentTarget as HTMLLIElement;\n const page = parseInt(li.dataset.page);\n if (!isNaN(page)) this.changePage(page);\n };\n\n private handleResize = () => {\n // Debounce resize events to prevent excessive calls\n clearTimeout(this.resizeTimeout);\n this.resizeTimeout = setTimeout(() => {\n this.updateVisiblePages();\n }, 100);\n };\n\n private resizeTimeout: any;\n\n changePage(newPage: number) {\n newPage = Math.max(1, Math.min(newPage, this.numberOfPages.length));\n if (newPage === this.internalPage) return;\n\n this.internalPage = newPage;\n this.handleEventEmission();\n this.initPagination();\n }\n\n render() {\n return (\n <div class=\"container\">\n {this.showItemsPerPage && (\n <div class=\"items__per-page-wrapper\">\n <div class=\"items__per-page-label\">Results per Page</div>\n <div class=\"items__per-page-field\">\n <ifx-select\n id='itemsPerPageSelect'\n placeholder='false'\n show-search='false'\n value={undefined}\n disabled={false}\n error={false}\n size=\"s\"\n options={this.filteredItemsPerPage}\n placeholder-value=\"Select\"\n ></ifx-select>\n </div>\n </div>\n )}\n\n <div class=\"items__total-wrapper\">\n <div class=\"pagination\">\n <ifx-icon-button\n class=\"prev\"\n icon=\"arrow-left-16\"\n aria-label='Previous Page'\n onClick={() => this.changePage(this.internalPage - 1)}\n variant=\"secondary\"\n ></ifx-icon-button>\n\n <ol>\n {this.visiblePages.map((page, i) => typeof page === 'number' ? (\n <li\n key={`page-${page}`}\n class={{ [this.CLASS_ACTIVE]: page === this.internalPage }}\n data-page={page}\n >\n <span \n class='page__button'\n role=\"button\"\n tabindex=\"0\"\n aria-current={page === this.internalPage ? \"page\" : undefined}\n aria-label={`Page ${page}`}\n onClick={() => this.changePage(page)}\n onKeyDown={(e) => (e.key === 'Enter' || e.key === ' ') && this.changePage(page)}\n >\n {page}\n </span>\n </li>\n ) : (\n <li class=\"ellipsis\" key={`ellipsis-${i}`}>\n <span aria-hidden=\"true\">...</span>\n </li>\n ))}\n </ol>\n\n <ifx-icon-button\n class=\"next\"\n icon=\"arrow-right-16\"\n aria-label='Next Page'\n onClick={() => this.changePage(this.internalPage + 1)}\n variant=\"secondary\"\n ></ifx-icon-button>\n </div>\n </div>\n </div>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["chipCss","Chip","constructor","hostRef","this","placeholder","size","value","undefined","variant","theme","readOnly","disabled","icon","opened","selectedOptions","handleValueChange","newValue","syncSelectedOptionsWithProp","handleReadOnlyChange","closeDropdownOnOutsideClick","event","path","composedPath","chipWrapper","chip","shadowRoot","querySelector","chipDropdown","includes","toggleDropdownMenu","handleKeyDown","code","preventDefault","target","tagName","handleWrapperKeyDown","handleDropdownKeyDown","updateSelectedOptions","eventDetail","detail","previousSelection","selected","chipItems","getChipItems","forEach","chipItem","chipState","Object","assign","emitIfxChipItemSelect","find","option","filter","map","emitIfxChange","ifxChange","emit","currentSelection","name","querySelectorAll","getSelectedOptions","label","join","slice","focusChipItemAt","index","item","length","console","error","shadowItem","setTimeout","focus","focusChip","handleUnselectButtonClick","stopPropagation","itemGotUnselected","handleWrapperClick","chipitems","targetIndex","Array","from","indexOf","syncChipState","key","generateKey","count","isArray","componentWillLoad","componentDidLoad","isNestedInIfxComponent","framework","detectFramework","trackComponent","render","h","class","tabIndex","onClick","role","ariaLabel","toString","inverted","number","e","id","chipItemCss","ChipItem","updateItemSelection","parentElement","validateSelected","oldValue","emitIfxChipItemSelectEvent","getItemLabel","innerText","toggleItemSelection","ifxChipItemSelect","handleItemClick","handleItemKeyDown","handleSelectedState","onKeyDown","checked","paginationCss","Pagination","currentPage","showItemsPerPage","internalPage","internalItemsPerPage","numberOfPages","total","filteredItemsPerPage","visiblePages","CLASS_DISABLED","CLASS_ACTIVE","handlePageClick","li","currentTarget","page","parseInt","dataset","isNaN","changePage","handleResize","clearTimeout","resizeTimeout","updateVisiblePages","watchTotalHandler","calculateNumberOfPages","currentPageWatcher","newVal","Math","max","min","setItemsPerPage","selectedValue","_a","_b","newItemsPerPage","handleEventEmission","emitItemsPerPage","ifxItemsPerPageChange","select","el","addEventListener","window","initPagination","disconnectedCallback","removeEventListener","isMobile","innerWidth","totalPages","current","pages","push","buffer","start","end","i","ceil","_","filterOptionsArray","items","itemsPerPage","JSON","parse","selectedOption","Number","componentWillUpdate","prevInternalPage","componentDidUpdate","ifxPageChange","pagination","updateButtons","prev","next","classList","toggle","newPage","options","tabindex"],"sources":["src/components/chip/chip.scss?tag=ifx-chip&encapsulation=shadow","src/components/chip/chip.tsx","src/components/chip/chip-item/chip-item.scss?tag=ifx-chip-item&encapsulation=shadow","src/components/chip/chip-item/chip-item.tsx","src/components/pagination/pagination.scss?tag=ifx-pagination&encapsulation=shadow","src/components/pagination/pagination.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../global/font.scss\";\n\n:host {\n display: inline-block;\n}\n\n.chip {\n position: relative;\n}\n\n.chip__wrapper {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: tokens.$ifxSpace100;\n box-sizing: border-box;\n border-radius: tokens.$ifxBorderRadiusRound;\n background: tokens.$ifxColorBaseWhite;\n cursor: pointer; \n transition: border 100ms ease;\n font: tokens.$ifxBodyBody04;\n\n & .icon__wrapper { \n display: flex;\n }\n\n &.outlined, &.filled-dark, &.filled-light { \n outline: 2px solid transparent;\n &:focus-visible {\n outline: 2px solid tokens.$ifxColorOcean500;\n outline-offset: 2px;\n }\n \n &.chip__wrapper--opened {\n .wrapper__open-button {\n transform: rotate(-180deg);\n }\n }\n\n &.chip__wrapper--selected {\n .wrapper__label {\n .label__selected-options {\n font: tokens.$ifxBodyBody04;\n }\n }\n }\n }\n\n &.filled-dark, &.filled-light { \n &.chip__wrapper--selected:not(.read-only) {\n background-color: tokens.$ifxColorOcean500;\n color: white;\n &:hover { \n background-color: tokens.$ifxColorOcean600;\n }\n\n &:hover.disabled { \n background-color: tokens.$ifxColorOcean500;\n }\n }\n }\n \n &.outlined { \n border: 1px solid tokens.$ifxColorEngineering400;\n &:hover:not(.read-only) {\n border-color: tokens.$ifxColorEngineering500;\n background-color: tokens.$ifxColorEngineering100;\n }\n\n &:active:not(.read-only) { \n border-color: tokens.$ifxColorEngineering500;\n background-color: tokens.$ifxColorEngineering300;\n }\n\n &.chip__wrapper--opened {\n border: 1px solid tokens.$ifxColorOcean500;\n }\n\n &.chip__wrapper--selected {\n outline: 3px solid tokens.$ifxColorOcean500;\n border: 1px solid transparent;\n background-color: white;\n\n &:focus-visible {\n outline-offset: 0px;\n }\n &:hover:not(.read-only) { \n outline-color: tokens.$ifxColorOcean600;\n }\n\n &.read-only { \n outline: none;\n border: 1px solid black;\n }\n }\n\n &.disabled { \n outline: none;\n color: tokens.$ifxColorEngineering300;\n border: 1px solid tokens.$ifxColorEngineering300;\n &:hover { \n outline: none;\n border-color: tokens.$ifxColorEngineering300;\n background-color: white;\n }\n }\n\n &.read-only { \n border: 1px solid black;\n &:focus-visible { \n outline: 2px solid tokens.$ifxColorOcean500;\n outline-offset: 2px;\n }\n }\n }\n\n &.filled-dark { \n background-color: tokens.$ifxColorEngineering600;\n color: white;\n\n &:hover:not(.chip__wrapper--selected, .disabled, .read-only) { \n background-color: tokens.$ifxColorEngineering500;\n }\n\n &:active:not(.chip__wrapper--selected, .disabled, .read-only) { \n background-color: tokens.$ifxColorEngineering400;\n color: black;\n }\n\n &.disabled { \n outline: none;\n color: tokens.$ifxColorEngineering300;\n &:hover:not(.chip__wrapper--selected) { \n background-color: tokens.$ifxColorEngineering600;\n }\n }\n\n &.chip__wrapper--selected { \n &.read-only { \n border: 1px solid tokens.$ifxColorEngineering400;\n }\n }\n\n &.read-only { \n border: 1px solid tokens.$ifxColorEngineering400;\n }\n }\n\n &.filled-light { \n background-color: tokens.$ifxColorEngineering200;\n\n &:hover:not(.read-only) { \n background-color: tokens.$ifxColorEngineering300;\n }\n\n &:active:not(.read-only) { \n background-color: tokens.$ifxColorEngineering400;\n }\n\n &.disabled { \n outline: none;\n color: tokens.$ifxColorEngineering300;\n &:hover:not(.chip__wrapper--selected) { \n background-color: tokens.$ifxColorEngineering200;\n }\n }\n\n &.chip__wrapper--selected { \n &.read-only { \n border: 1px solid black;\n }\n }\n\n &.read-only { \n border: 1px solid black;\n }\n }\n \n &.chip__wrapper--small {\n padding: tokens.$ifxSpace50 tokens.$ifxSpace100;\n height: tokens.$ifxSize300;\n }\n\n &.chip__wrapper--medium {\n padding: tokens.$ifxSpace50 tokens.$ifxSpace150;\n height: tokens.$ifxSize350;\n }\n \n &.chip__wrapper--large {\n padding: tokens.$ifxSpace100 tokens.$ifxSpace150;\n height: tokens.$ifxSize450;\n }\n}\n\n.wrapper__label {\n display: inline-flex;\n align-items: center;\n gap: tokens.$ifxSpace50;\n\n .label__selected-options {\n font: tokens.$ifxBodyBodySemibold04;\n }\n}\n\n.wrapper__open-button {\n display:flex;\n align-items: center;\n}\n\n.wrapper__unselect-button {\n display:flex;\n align-items: center;\n}\n\n.chip__dropdown {\n position: absolute;\n z-index: 1;\n box-shadow: 0px 6px 9px 0px #1D1D1D1A;\n border: 1px solid tokens.$ifxColorEngineering200;\n border-radius: tokens.$ifxBorderRadius12;\n padding: tokens.$ifxSpace100 0;\n min-width: 222px;\n background-color: tokens.$ifxColorBaseWhite;\n}\n","import { h, Component, Element, Event, EventEmitter, Listen, Prop, State, Watch } from '@stencil/core';\nimport { ChipItemSelectEvent } from './interfaces';\nimport { trackComponent } from '../../global/utils/tracking';\nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\nimport { detectFramework } from '../../global/utils/framework-detection';\n\n@Component({\n tag: 'ifx-chip',\n styleUrl: 'chip.scss',\n shadow: true\n})\nexport class Chip {\n @Element() chip: HTMLIfxChipElement;\n\n @Event() ifxChange: EventEmitter<{ previousSelection: Array<ChipItemSelectEvent>, currentSelection: Array<ChipItemSelectEvent>, name: string }>;\n @Prop() placeholder: string = '';\n @Prop() size: 'small' | 'medium' | 'large' = 'medium';\n @Prop({ mutable: true }) value: Array<string> | string = undefined;\n @Prop() variant: 'single' | 'multi' = 'single';\n @Prop() theme: 'outlined' | 'filled-light' | 'filled-dark' = 'outlined';\n @Prop() readOnly: boolean = false;\n @Prop() ariaLabel: string | null;\n @Prop() disabled: boolean = false;\n @Prop() icon: string = \"\";\n\n @State() opened: boolean = false;\n @State() selectedOptions: Array<ChipItemSelectEvent> = [];\n\n @Watch('value')\n handleValueChange(newValue: Array<string> | string) {\n this.syncSelectedOptionsWithProp(newValue);\n }\n\n @Watch('readOnly')\n handleReadOnlyChange(newValue: boolean) {\n if (newValue) {\n this.opened = false;\n }\n }\n\n @Listen('mousedown', { target: 'document' })\n closeDropdownOnOutsideClick(event: MouseEvent) {\n const path = event.composedPath();\n const chipWrapper: HTMLElement = this.chip.shadowRoot.querySelector('.chip__wrapper');\n const chipDropdown: HTMLElement = this.chip.shadowRoot.querySelector('.chip__dropdown');\n if (!path.includes(chipDropdown) && !path.includes(chipWrapper) && this.opened) {\n this.toggleDropdownMenu();\n }\n }\n\n @Listen('keydown')\n handleKeyDown(event: KeyboardEvent) {\n // override behavior of all keys except Tab. Users should be able to tab out of the component.\n if (event.code !== 'Tab') {\n event.preventDefault(); \n }\n\n if ((event.target as HTMLElement).tagName === 'IFX-CHIP') {\n this.handleWrapperKeyDown(event);\n } else if ((event.target as HTMLElement).tagName === 'IFX-CHIP-ITEM') {\n this.handleDropdownKeyDown(event);\n }\n }\n\n @Listen('ifxChipItemSelect')\n updateSelectedOptions(event: CustomEvent<ChipItemSelectEvent>) {\n const eventDetail: ChipItemSelectEvent = event.detail;\n const previousSelection: Array<ChipItemSelectEvent> = [...this.selectedOptions];\n\n if (this.variant !== 'multi') {\n if (eventDetail.selected) {\n this.opened = false;\n const chipItems: NodeList = this.getChipItems();\n chipItems.forEach((chipItem: HTMLIfxChipItemElement) => {\n if (chipItem.selected && chipItem !== event.target) {\n chipItem.chipState = {\n ...chipItem.chipState,\n emitIfxChipItemSelect: false,\n };\n chipItem.selected = false;\n }\n });\n this.selectedOptions = [eventDetail];\n } else {\n this.selectedOptions = [];\n }\n this.value = this.selectedOptions[0] ? this.selectedOptions[0].value : undefined;\n } else {\n if (eventDetail.selected) {\n // Prevent duplicate entries\n if (!this.selectedOptions.find(option => option.value === eventDetail.value)) {\n this.selectedOptions = [...this.selectedOptions, eventDetail];\n }\n } else {\n this.selectedOptions = this.selectedOptions.filter((option) => option.value !== eventDetail.value);\n }\n this.value = this.selectedOptions.map((option) => option.value);\n }\n\n if (eventDetail.emitIfxChange) {\n this.ifxChange.emit({\n previousSelection: previousSelection,\n currentSelection: this.selectedOptions,\n name: this.placeholder\n });\n }\n }\n\n getChipItems(): NodeList {\n return this.chip.querySelectorAll('ifx-chip-item');\n }\n\n getSelectedOptions(): string {\n if (this.variant !== 'multi') {\n return this.selectedOptions.map(option => option.label).join('');\n }\n return this.selectedOptions.slice(0, 2).map(option => option.label).join(', ');\n }\n\n toggleDropdownMenu() {\n if (this.readOnly) return;\n this.opened = !this.opened;\n }\n\n /**\n * Focuses the chip item at the specified index.\n * @param index the index of the chip item to focus. -1 will focus the last chip item.\n */\n focusChipItemAt(index: number = 0) {\n this.opened = true;\n const chipItems: NodeList = this.getChipItems();\n let item: HTMLIfxChipItemElement;\n \n if (index === -1) {\n item = chipItems.item(chipItems.length - 1) as HTMLIfxChipItemElement;\n } else if (index >= 0 && index < chipItems.length) {\n item = chipItems.item(index) as HTMLIfxChipItemElement;\n } else {\n console.error(`Invalid index: ${index}`);\n return;\n }\n\n const shadowItem = item.shadowRoot.querySelector('.chip-item') as HTMLDivElement;\n if (shadowItem) {\n // Delay needed for the shadow item to be rendered.\n setTimeout(() => {\n shadowItem.focus();\n }, 1);\n }\n }\n\n focusChip() {\n const chipWrapper: HTMLElement = this.chip.shadowRoot.querySelector('.chip__wrapper');\n chipWrapper.focus();\n }\n\n handleUnselectButtonClick(event: MouseEvent) {\n event.stopPropagation();\n this.opened = false;\n\n let itemGotUnselected = false;\n const chipItems: NodeList = this.getChipItems();\n chipItems.forEach((chipItem: HTMLIfxChipItemElement) => {\n if (chipItem.selected) {\n itemGotUnselected = true;\n chipItem.chipState = {\n ...chipItem.chipState,\n emitIfxChipItemSelect: false,\n }\n chipItem.selected = false;\n }\n });\n\n /* Emit event only if at least one item was unselected. */\n if (itemGotUnselected) {\n const previousSelection: Array<ChipItemSelectEvent> = this.selectedOptions;\n this.selectedOptions = [];\n this.value = [];\n this.ifxChange.emit({\n previousSelection: previousSelection,\n currentSelection: [],\n name: this.placeholder\n });\n }\n }\n\n handleWrapperClick() {\n if (!this.readOnly) {\n this.toggleDropdownMenu();\n }\n }\n\n handleWrapperKeyDown(event: KeyboardEvent) {\n // Keymap oriented at https://www.w3.org/WAI/ARIA/apg/patterns/combobox/#keyboard_interaction\n if (this.readOnly) return;\n\n if (!this.opened) {\n switch (event.code) {\n case 'Space':\n case 'Enter':\n case 'ArrowDown':\n this.focusChipItemAt(0);\n break;\n case 'ArrowUp':\n this.focusChipItemAt(-1);\n break;\n }\n } else {\n switch (event.code) {\n case 'Escape':\n this.opened = false;\n this.focusChip();\n break;\n }\n }\n }\n\n handleDropdownKeyDown(event: KeyboardEvent) {\n let chipitems = this.getChipItems();\n\n let targetIndex = Array.from(chipitems).indexOf(event.target as HTMLIfxChipItemElement);\n if (targetIndex === -1) {\n console.error('Target not found in chip items');\n return;\n }\n\n switch (event.code) {\n case 'ArrowDown':\n if (targetIndex === chipitems.length - 1) break;\n this.focusChipItemAt(targetIndex + 1);\n break;\n case 'ArrowUp':\n if (targetIndex === 0) break;\n this.focusChipItemAt( targetIndex - 1);\n break;\n case 'Escape':\n this.opened = false;\n this.focusChip();\n break;\n case 'Space':\n // selection is handled by the chip-item component\n if (this.variant === 'single') {\n // only close dropdown if single select\n this.opened = false;\n this.focusChip();\n }\n break;\n case 'Enter':\n // selection is handled by the chip-item component\n this.opened = false;\n this.focusChip();\n break;\n }\n }\n\n syncChipState() {\n const chipItems: NodeList = this.getChipItems();\n let key: number = 0;\n chipItems.forEach((chipItem: HTMLIfxChipItemElement) => {\n chipItem.chipState = {\n emitIfxChipItemSelect: true,\n size: this.size ? this.size : 'medium',\n variant: (this.variant === 'multi' ? 'multi' : 'single'),\n key: key++\n };\n });\n }\n\n syncSelectedOptionsWithProp(newValue: Array<string> | string) {\n // Clear old selected options\n this.selectedOptions = [];\n\n const generateKey = (() => {\n let count = 0;\n return () => count++;\n })();\n\n if (Array.isArray(newValue)) {\n this.selectedOptions = newValue.map(value => ({\n value,\n label: value,\n selected: true,\n key: generateKey(),\n emitIfxChange: true\n }));\n } else if (typeof newValue === 'string') {\n this.selectedOptions = [{\n value: newValue,\n label: newValue,\n selected: true,\n key: generateKey(),\n emitIfxChange: true\n }];\n }\n\n this.syncChipState();\n }\n\n componentWillLoad() {\n this.syncSelectedOptionsWithProp(this.value);\n }\n\n async componentDidLoad() { \n if(!isNestedInIfxComponent(this.chip)) { \n const framework = detectFramework();\n trackComponent('ifx-chip', await framework)\n }\n }\n\n render() {\n return (\n <div class='chip'>\n <div class={`chip__wrapper chip__wrapper--${this.size ? this.size : 'medium'}\n chip__wrapper--${this.variant === 'multi' ? 'multi' : 'single'}\n ${this.opened && !this.readOnly ? 'chip__wrapper--opened' : ''}\n ${this.selectedOptions.length ? 'chip__wrapper--selected' : ''}\n ${this.theme ? this.theme : 'outlined'}\n ${this.disabled ? 'disabled' : \"\"}\n ${this.readOnly ? 'read-only' : \"\"}`}\n tabIndex={0}\n onClick={!this.readOnly && !this.disabled ? () => { this.handleWrapperClick() } : undefined}\n role='combobox'\n aria-label={this.ariaLabel}\n aria-value={this.getSelectedOptions()}\n aria-haspopup={!this.readOnly ? 'listbox' : undefined}\n aria-expanded={!this.readOnly ? this.opened.toString() : undefined}\n aria-controls={!this.readOnly ? 'dropdown' : undefined}\n aria-readonly={this.readOnly ? 'true' : undefined}\n aria-multiselectable={this.variant === 'multi' ? 'true' : undefined}\n >\n \n {this.icon && \n <div class=\"icon__wrapper\">\n <ifx-icon icon={this.icon}></ifx-icon>\n </div>}\n\n <div class='wrapper__label'>\n {\n (this.selectedOptions.length === 0) && `${this.placeholder}`\n }\n\n {\n (this.selectedOptions.length !== 0 && (this.variant === 'multi') && this.placeholder !== '') &&\n `${this.placeholder}:`\n }\n\n {\n (this.selectedOptions.length !== 0) &&\n <div class='label__selected-options'>\n {this.getSelectedOptions()}\n </div>\n }\n\n {\n (this.selectedOptions.length > 2 && this.variant === 'multi') &&\n <ifx-indicator variant='number' inverted={this.theme === 'outlined' ? false : true} number={this.selectedOptions.length - 2}></ifx-indicator>\n }\n </div>\n\n {\n !this.readOnly && (this.variant !== 'multi' || (this.variant === 'multi' && this.selectedOptions.length === 0)) &&\n <div class='wrapper__open-button'>\n <ifx-icon key={1} icon={`chevron-down-16`} />\n </div>\n }\n\n {\n ((this.selectedOptions.length >= 1) && this.variant === 'multi') &&\n <div class='wrapper__unselect-button' onClick={!this.readOnly && !this.disabled ? (e) => { this.handleUnselectButtonClick(e) } : undefined}>\n <ifx-icon key={2} icon={`cross16`} />\n </div>\n }\n\n </div>\n\n {\n this.opened && !this.readOnly &&\n <div id='dropdown' role='listbox' class='chip__dropdown'>\n <slot />\n </div>\n }\n </div>\n );\n }\n}\n","@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../../global/font.scss\";\n\n.chip-item {\n display: flex;\n align-items: center;\n gap: tokens.$ifxSpace100;\n \n padding: tokens.$ifxSpace100 tokens.$ifxSpace200;\n \n user-select: none;\n \n transition: all 100ms ease;\n transition-property: background, color;\n \n &:hover {\n cursor: pointer;\n \n background-color: tokens.$ifxColorEngineering200;\n }\n \n &:active {\n background-color: tokens.$ifxColorEngineering300;\n }\n\n &:focus {\n outline: 2px solid tokens.$ifxColorOcean500;\n }\n \n &.chip-item--large {\n font: tokens.$ifxBodyBody03;\n }\n \n &.chip-item--small {\n font: tokens.$ifxBodyBody04;\n }\n\n &.chip-item--selected {\n color: tokens.$ifxColorOcean500;\n\n .chip-item__selected-indicator {\n display: block;\n }\n }\n}\n\n.chip-item__selected-indicator {\n display: none;\n \n margin-left: auto;\n}\n\n","import { h,\n Component,\n Element,\n Event,\n EventEmitter, \n Listen,\n Prop, \n Watch } from '@stencil/core';\nimport { ChipItemSelectEvent, ChipState } from '../interfaces';\n\n@Component({\ntag: 'ifx-chip-item',\nstyleUrl: 'chip-item.scss',\nshadow: true\n})\n\nexport class ChipItem {\n@Element() chipItem: HTMLIfxChipItemElement;\n\n@Event({ composed: false }) ifxChipItemSelect: EventEmitter<ChipItemSelectEvent>;\n\n@Prop() value: string = undefined;\n@Prop() chipState: ChipState = { emitIfxChipItemSelect: true, variant: 'multi', size: 'large' }; \n@Prop({ mutable: true, reflect: true }) selected: boolean = false;\n\n@Listen('ifxChipItemSelect', { target: 'body' })\nupdateItemSelection(event: CustomEvent<ChipItemSelectEvent>) {\n if (this.chipState.variant === 'single') {\n const target = event.target as HTMLIfxChipItemElement;\n /* Also making sure chip items are from the same group (parent) while unselecting. */\n if (this.chipItem !== target && this.chipItem.parentElement === target.parentElement) {\n this.selected = false;\n }\n }\n} \n\n@Watch('selected')\nvalidateSelected(newValue: boolean, oldValue: boolean) {\n if (newValue !== oldValue) {\n /* Do not emit if ChipState does not allow. */\n if (this.chipState.emitIfxChipItemSelect){\n this.emitIfxChipItemSelectEvent();\n } else {\n this.chipState.emitIfxChipItemSelect = true;\n }\n }\n} \n\ngetItemLabel(): string {\n return this.chipItem.innerText as string;\n}\n\ntoggleItemSelection() {\n this.selected = !this.selected;\n}\n \n\nemitIfxChipItemSelectEvent(emitIfxChange: boolean = true) {\n this.ifxChipItemSelect.emit({ emitIfxChange: emitIfxChange,\n key: this.chipState.key,\n label: this.getItemLabel(), \n selected: this.selected, \n value: this.value });\n}\n\nhandleItemClick() {\n this.toggleItemSelection();\n}\n\nhandleItemKeyDown(event: KeyboardEvent) {\n if (event.code === 'Enter' || event.code === 'Space') {\n this.toggleItemSelection();\n }\n}\n\nhandleSelectedState() {\n if (this.selected) {\n this.emitIfxChipItemSelectEvent(false);\n }\n}\n\n\ncomponentWillLoad() {\n /* Propogating the selected state to the Chip (Parent) component if it is set. */\n this.handleSelectedState();\n}\n\nrender() {\n return (\n <div class={`chip-item chip-item--${this.chipState.size} \n chip-item--${(this.selected && this.chipState.variant) === 'single' ? 'selected' : ''}`} \n tabIndex={0}\n onClick={() => {this.handleItemClick()}}\n onKeyDown={(e) => {this.handleItemKeyDown(e)}}\n role=\"option\"\n aria-selected={this.selected.toString()}> \n {/* Checkbox; renders only in 'multi' variant. */}\n { \n this.chipState.variant === 'multi' &&\n <ifx-checkbox checked={this.selected}\n tabIndex={-1} \n size='s'>\n </ifx-checkbox>\n }\n\n <div class='chip-item__label'> <slot /> </div>\n\n {/* Selected indicator only visible in 'single' variant. */}\n <div class='chip-item__selected-indicator'> \n <ifx-icon icon='check-16'> </ifx-icon> \n </div>\n\n </div>\n );\n}\n}","@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../global/font.scss\";\n\n:host {\n display: inline-flex;\n}\n\n.container {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n gap: 32px;\n font-family: var(--ifx-font-family); // tokens.$ifxFontFamilyBody;\n flex-wrap: wrap;\n\n & .items__per-page-wrapper {\n display: flex;\n align-items: center;\n gap: 16px;\n\n & .items__per-page-label {\n color: #1D1D1D;\n font-size: 14px;\n font-style: normal;\n font-weight: 600;\n line-height: 20px;\n }\n\n & .items__per-page-field {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n\n & ifx-select {\n width: 92px;\n }\n }\n }\n\n & .items__total-wrapper {\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 12px;\n\n & .items__total-button {\n display: flex;\n width: 40px;\n height: 40px;\n justify-content: center;\n align-items: center;\n border-radius: 100px;\n border: 1px solid #BFBBBB;\n background: #FFF;\n }\n\n & .page__numbers-wrapper {\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 12px;\n\n & .page__number-item {\n display: flex;\n padding: 6px;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 10px;\n border-radius: 100px;\n\n &.active {\n background-color: #0A8276;\n\n & span {\n color: #fff;\n }\n }\n\n &:hover {\n cursor: pointer;\n }\n\n &:hover:not(.active) {\n background-color: #ddd;\n\n }\n\n &:active:not(.active) {\n background-color: #575352;\n }\n\n & span {\n display: flex;\n width: 16px;\n height: 16px;\n flex-direction: column;\n justify-content: center;\n color: #1D1D1D;\n text-align: center;\n font-size: 13px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n }\n }\n }\n }\n}\n\n\n.pagination {\n display: flex;\n\n & ifx-icon-button:first-of-type {\n margin-right: 12px;\n }\n\n & ifx-icon-button:last-of-type {\n margin-left: 12px;\n }\n}\n\n.page__button {\n padding: 8px;\n border-radius: 100px;\n}\n\nol {\n list-style-type: none;\n padding: 0;\n margin: 0;\n display: inline-flex;\n align-items: center;\n gap: 12px;\n}\n\nli {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n border-radius: 100px;\n\n &:hover:not(.active) {\n & page__button {\n background-color: #EEEDED;\n }\n }\n\n &:active:not(.active) {\n & .page__button {\n background-color: #575352;\n color: #fff;\n }\n }\n\n &.active {\n background-color: #0A8276;\n\n & .page__button {\n color: #fff;\n }\n }\n\n &:hover {\n cursor: pointer;\n }\n\n & .page__button {\n text-decoration: none;\n display: flex;\n width: 16px;\n height: 16px;\n flex-direction: column;\n justify-content: center;\n color: #1D1D1D;\n text-align: center;\n font-size: 13px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n align-items: center;\n }\n}\n\n.prev,\n.next {\n &.disabled {\n cursor: default;\n\n &:hover {\n cursor: default;\n text-decoration: none;\n }\n }\n}\n\n.prev {\n margin-right: 2.5px;\n}\n\n.next {\n margin-left: 2.5px;\n}\n\n@media (max-width: tokens.$ifxBreakpointM) {\n .container {\n gap: tokens.$ifxSpace200;\n justify-content: left;\n\n .items__total-wrapper {\n .pagination {\n ol {\n gap: tokens.$ifxSpace150;\n }\n }\n }\n }\n}\n\n@media (max-width: 374px) {\n .pagination {\n .ellipsis + .active {\n margin-left: tokens.$ifxSpace100;\n }\n\n .active + .ellipsis {\n margin-left: tokens.$ifxSpace100;\n }\n }\n}\n","import { Component, h, Element, Event, EventEmitter, Prop, State, Listen, Watch } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking';\nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\nimport { detectFramework } from '../../global/utils/framework-detection';\n\n@Component({\n tag: 'ifx-pagination',\n styleUrl: 'pagination.scss',\n shadow: true\n})\nexport class Pagination {\n @Element() el: HTMLElement;\n @Event() ifxPageChange: EventEmitter;\n @Event() ifxItemsPerPageChange: EventEmitter;\n @Prop() currentPage: number = 1;\n @Prop() showItemsPerPage: boolean = true;\n @State() internalPage: number = 1;\n @State() internalItemsPerPage: number = 10;\n @State() numberOfPages: number[] = [];\n @Prop() total: number = 1;\n @Prop() itemsPerPage: any[] | string;\n @State() filteredItemsPerPage: any[] = [];\n @State() visiblePages: (number | string)[] = [];\n\n private CLASS_DISABLED = \"disabled\";\n private CLASS_ACTIVE = \"active\";\n private prevInternalPage: number;\n\n @Watch('total')\n watchTotalHandler() {\n this.calculateNumberOfPages();\n this.updateVisiblePages();\n }\n\n @Watch('currentPage')\n currentPageWatcher(newVal: number) {\n this.internalPage = Math.max(1, Math.min(newVal, this.numberOfPages.length));\n this.calculateNumberOfPages();\n this.updateVisiblePages();\n }\n\n @Listen('ifxSelect')\n setItemsPerPage(e: CustomEvent) {\n const selectedValue = e.detail?.value || e.detail?.label;\n const newItemsPerPage = parseInt(selectedValue) || 10;\n\n if (newItemsPerPage === this.internalItemsPerPage) {\n return;\n }\n\n this.internalItemsPerPage = newItemsPerPage;\n this.internalPage = 1;\n this.calculateNumberOfPages();\n this.updateVisiblePages();\n this.handleEventEmission();\n }\n\n emitItemsPerPage(e) {\n this.ifxItemsPerPageChange.emit((e as any).detail.label)\n }\n\n async componentDidLoad() {\n if (this.showItemsPerPage) {\n const select = this.el.shadowRoot.querySelector('#itemsPerPageSelect');\n if(select) {\n select.addEventListener('ifxSelect', (e) => this.emitItemsPerPage(e))\n }\n }\n\n // Add resize listener to update pagination on screen size changes\n window.addEventListener('resize', this.handleResize);\n\n if(!isNestedInIfxComponent(this.el)) {\n const framework = detectFramework();\n trackComponent('ifx-pagination', await framework)\n }\n this.initPagination();\n }\n\n disconnectedCallback() {\n if (this.showItemsPerPage) {\n const select = this.el.shadowRoot.querySelector('#itemsPerPageSelect');\n if (select) {\n select.removeEventListener('ifxSelect', (e) => this.emitItemsPerPage(e));\n }\n }\n\n // Remove resize listener\n window.removeEventListener('resize', this.handleResize);\n\n // Clear any pending resize timeout\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n }\n }\n\n updateVisiblePages() {\n // Check if screen is mobile (< 375px)\n const isMobile = window.innerWidth < 375;\n const totalPages = this.numberOfPages.length;\n const current = this.internalPage;\n let pages: (number | string)[] = [];\n\n if (isMobile) {\n // Mobile logic: maximum 5 elements\n if (totalPages <= 5) {\n pages = [...this.numberOfPages];\n } else {\n // Always show first page\n pages.push(1);\n\n if (current <= 2) {\n // Show: 1 2 3 … 10 (for pages 1 and 2)\n pages.push(2, 3, '...', totalPages);\n } else if (current >= totalPages - 1) {\n // Show: 1 … 23 24 25 (for last 2 pages only)\n pages.push('...', totalPages - 2, totalPages - 1, totalPages);\n } else {\n // Show: 1 … 5 … 10 (for middle pages, including page 3 and third-to-last page)\n pages.push('...', current, '...', totalPages);\n }\n }\n } else {\n // Desktop logic: maximum 7 elements\n const buffer = 2;\n\n if (totalPages <= 7) {\n pages = [...this.numberOfPages];\n } else {\n // Always show first page\n pages.push(1);\n\n // Determine the range around current page\n let start = Math.max(2, current - buffer);\n let end = Math.min(totalPages - 1, current + buffer);\n\n // Adjust range to ensure we show enough pages\n // If we're close to the beginning, extend the end\n if (current <= 4) {\n start = 2;\n end = Math.min(totalPages - 1, 5);\n }\n // If we're close to the end, extend the start\n else if (current >= totalPages - 3) {\n start = Math.max(2, totalPages - 4);\n end = totalPages - 1;\n }\n // For middle pages, show current +/- 1\n else {\n start = current - 1;\n end = current + 1;\n }\n\n // Add ellipsis before the range if there's a gap\n if (start > 2) {\n pages.push('...');\n }\n\n // Add the range of pages\n for (let i = start; i <= end; i++) {\n pages.push(i);\n }\n\n // Add ellipsis after the range if there's a gap\n if (end < totalPages - 1) {\n pages.push('...');\n }\n\n // Always show last page\n pages.push(totalPages);\n }\n }\n\n this.visiblePages = pages;\n }\n\n calculateNumberOfPages() {\n const totalPages = Math.ceil(this.total / this.internalItemsPerPage);\n this.numberOfPages = Array.from({ length: totalPages }, (_, i) => i + 1);\n this.internalPage = Math.max(1, Math.min(this.currentPage, totalPages));\n }\n\n filterOptionsArray() {\n const items = typeof this.itemsPerPage === 'string' ?\n JSON.parse(this.itemsPerPage) : this.itemsPerPage;\n this.filteredItemsPerPage = items.map(item => ({\n ...item,\n label: item.label || item.value\n }));\n }\n\n componentWillLoad() {\n this.filterOptionsArray();\n\n const selectedOption = this.filteredItemsPerPage.find(option => option.selected);\n if (selectedOption) {\n this.internalItemsPerPage = Number(selectedOption.value);\n } else if (this.filteredItemsPerPage.length > 0) {\n this.internalItemsPerPage = Number(this.filteredItemsPerPage[0].value);\n }\n\n this.calculateNumberOfPages();\n this.internalPage = Math.max(1, Math.min(this.currentPage, this.numberOfPages.length));\n this.updateVisiblePages();\n }\n\n componentWillUpdate() {\n if (this.prevInternalPage !== this.internalPage) {\n this.updateVisiblePages();\n this.prevInternalPage = this.internalPage;\n }\n }\n\n componentDidUpdate() {\n this.initPagination();\n }\n\n handleEventEmission() {\n this.ifxPageChange.emit({\n currentPage: this.internalPage,\n totalPages: this.numberOfPages.length,\n itemsPerPage: this.internalItemsPerPage\n });\n }\n\n initPagination() {\n const pagination = this.el.shadowRoot.querySelector('.pagination');\n if (!pagination) return;\n\n const updateButtons = () => {\n const prev = pagination.querySelector<HTMLButtonElement>('.prev');\n const next = pagination.querySelector<HTMLButtonElement>('.next');\n if (prev) {\n prev.disabled = this.internalPage === 1;\n prev.classList.toggle(this.CLASS_DISABLED, this.internalPage === 1);\n }\n if (next) {\n next.disabled = this.internalPage === this.numberOfPages.length;\n next.classList.toggle(this.CLASS_DISABLED, this.internalPage === this.numberOfPages.length);\n }\n };\n\n pagination.querySelectorAll('li').forEach(li => {\n li.removeEventListener('click', this.handlePageClick);\n li.addEventListener('click', this.handlePageClick);\n });\n\n updateButtons();\n }\n\n private handlePageClick = (e: Event) => {\n const li = e.currentTarget as HTMLLIElement;\n const page = parseInt(li.dataset.page);\n if (!isNaN(page)) this.changePage(page);\n };\n\n private handleResize = () => {\n // Debounce resize events to prevent excessive calls\n clearTimeout(this.resizeTimeout);\n this.resizeTimeout = setTimeout(() => {\n this.updateVisiblePages();\n }, 100);\n };\n\n private resizeTimeout: any;\n\n changePage(newPage: number) {\n newPage = Math.max(1, Math.min(newPage, this.numberOfPages.length));\n if (newPage === this.internalPage) return;\n\n this.internalPage = newPage;\n this.handleEventEmission();\n this.initPagination();\n }\n\n render() {\n return (\n <div class=\"container\">\n {this.showItemsPerPage && (\n <div class=\"items__per-page-wrapper\">\n <div class=\"items__per-page-label\">Results per Page</div>\n <div class=\"items__per-page-field\">\n <ifx-select\n id='itemsPerPageSelect'\n placeholder='false'\n show-search='false'\n value={undefined}\n disabled={false}\n error={false}\n size=\"s\"\n options={this.filteredItemsPerPage}\n placeholder-value=\"Select\"\n ></ifx-select>\n </div>\n </div>\n )}\n\n <div class=\"items__total-wrapper\">\n <div class=\"pagination\">\n <ifx-icon-button\n class=\"prev\"\n icon=\"arrow-left-16\"\n aria-label='Previous Page'\n onClick={() => this.changePage(this.internalPage - 1)}\n variant=\"secondary\"\n ></ifx-icon-button>\n\n <ol>\n {this.visiblePages.map((page, i) => typeof page === 'number' ? (\n <li\n key={`page-${page}`}\n class={{ [this.CLASS_ACTIVE]: page === this.internalPage }}\n data-page={page}\n >\n <span \n class='page__button'\n role=\"button\"\n tabindex=\"0\"\n aria-current={page === this.internalPage ? \"page\" : undefined}\n aria-label={`Page ${page}`}\n onClick={() => this.changePage(page)}\n onKeyDown={(e) => (e.key === 'Enter' || e.key === ' ') && this.changePage(page)}\n >\n {page}\n </span>\n </li>\n ) : (\n <li class=\"ellipsis\" key={`ellipsis-${i}`}>\n <span aria-hidden=\"true\">...</span>\n </li>\n ))}\n </ol>\n\n <ifx-icon-button\n class=\"next\"\n icon=\"arrow-right-16\"\n aria-label='Next Page'\n onClick={() => this.changePage(this.internalPage + 1)}\n variant=\"secondary\"\n ></ifx-icon-button>\n </div>\n </div>\n </div>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{r as s,c as i,h as e,a as t}from"./p-PqnYwNKt.js";import{d as n,t as o}from"./p-DcmcuUOA.js";import{i as r}from"./p-Bw2fh5LT.js";import{c as h}from"./p-DMLRPGid.js";import"./p-B85MJLTf.js";const a=':root {\n --ifx-font-family: "Source Sans 3", "Arial, sans-serif";\n}\n\n:host {\n display: flex;\n}\n\n.search-field {\n box-sizing: border-box;\n background-color: #FFFFFF;\n width: 100%;\n font-family: var(--ifx-font-family);\n position: relative;\n}\n.search-field .search-field__wrapper {\n box-sizing: border-box;\n height: 40px;\n display: flex;\n align-items: center;\n border: 1px solid #8d8786;\n border-radius: 1px;\n padding: 8px 16px;\n gap: 12px;\n flex: none;\n order: 0;\n align-self: stretch;\n flex-grow: 0;\n position: relative;\n width: 100%;\n outline: none;\n}\n.search-field .search-field__wrapper:focus-visible:not(.disabled) {\n outline: 2px solid #0A8276;\n outline-offset: 2px;\n}\n.search-field .search-field__wrapper.search-field__wrapper-s {\n height: 36px;\n}\n.search-field .search-field__wrapper:hover:not(.focused, :focus) {\n border: 1px solid #3c3a39;\n}\n.search-field .search-field__wrapper .delete-icon {\n outline: 1px solid transparent;\n right: 12px;\n cursor: pointer;\n}\n.search-field .search-field__wrapper .delete-icon:focus-visible {\n outline: 2px solid #0A8276;\n outline-offset: 1px;\n}\n.search-field .search-field__wrapper input[type=text] {\n font-style: normal;\n font-weight: 400;\n font-size: 16px;\n color: #8d8786;\n border: none;\n width: 100%;\n outline: none;\n height: 16px;\n}\n.search-field .search-field__wrapper input[type=text]:focus {\n outline: none;\n color: #1d1d1d;\n}\n.search-field .search-field__wrapper input[type=text]:disabled {\n background: #BFBBBB;\n color: #FFFFFF;\n}\n.search-field .search-field__wrapper input[type=text]:disabled::placeholder {\n color: #FFFFFF;\n}\n.search-field .search-field__wrapper.disabled {\n background: #BFBBBB;\n border: none;\n color: #FFFFFF;\n}\n.search-field .search-field__wrapper.disabled:hover {\n border: none;\n outline: none;\n}\n.search-field .search-field__wrapper.disabled .delete-icon {\n cursor: default;\n}\n.search-field .search-field__wrapper.disabled .delete-icon:focus-visible {\n outline: 1px solid transparent;\n}\n.search-field .suggestions-dropdown {\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n background: #FFFFFF;\n margin-top: 4px;\n border: 1px solid #EEEDED;\n box-shadow: 0px 6px 9px 0px rgba(29, 29, 29, 0.1);\n z-index: 1000;\n max-height: 300px;\n overflow-y: auto;\n container-type: inline-size;\n}\n.search-field .suggestions-dropdown .suggestions-header {\n font-family: Source Sans 3;\n font-size: 0.8125rem;\n font-weight: 600;\n line-height: 1.25rem;\n letter-spacing: 0.25em;\n text-transform: uppercase;\n color: #575352;\n border-bottom: 1px solid #EEEDED;\n padding: 12px 16px;\n}\n.search-field .suggestions-dropdown .suggestion-item {\n padding: 12px 16px;\n cursor: pointer;\n transition: background-color 0.2s ease;\n}\n.search-field .suggestions-dropdown .suggestion-item:last-child {\n border-bottom: none;\n}\n.search-field .suggestions-dropdown .suggestion-item:hover, .search-field .suggestions-dropdown .suggestion-item--selected {\n background-color: #EEEDED;\n}\n.search-field .suggestions-dropdown .suggestion-item .suggestion-content {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n.search-field .suggestions-dropdown .suggestion-item .suggestion-content .suggestion-icon {\n color: #575352;\n flex-shrink: 0;\n}\n.search-field .suggestions-dropdown .suggestion-item .suggestion-content .suggestion-icon--history {\n color: #575352;\n}\n.search-field .suggestions-dropdown .suggestion-item .suggestion-content .suggestion-text {\n flex: 1;\n display: flex;\n align-items: center;\n min-width: 0;\n}\n.search-field .suggestions-dropdown .suggestion-item .suggestion-content .suggestion-text .suggestion-main-text {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n flex-shrink: 1;\n min-width: 0;\n}\n.search-field .suggestions-dropdown .suggestion-item .suggestion-content .suggestion-text .suggestion-scope {\n color: #8D8786;\n flex-shrink: 0;\n white-space: nowrap;\n margin-left: 2px;\n font-weight: 600;\n font-size: 0.75rem;\n}\n@container (max-width: 320px) {\n .search-field .suggestions-dropdown .suggestion-item .suggestion-content .suggestion-text {\n flex-direction: column;\n align-items: flex-start;\n }\n .search-field .suggestions-dropdown .suggestion-item .suggestion-content .suggestion-text .suggestion-main-text {\n width: 100%;\n max-width: 100%;\n }\n .search-field .suggestions-dropdown .suggestion-item .suggestion-content .suggestion-text .suggestion-scope {\n margin-left: 0;\n margin-top: 0;\n width: 100%;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n flex-shrink: 1;\n }\n}\n.search-field .suggestions-dropdown .suggestion-item .suggestion-content .suggestion-count {\n color: #8D8786;\n margin-left: auto;\n flex-shrink: 0;\n}\n.search-field .suggestions-dropdown .suggestion-item .suggestion-content .suggestion-delete-icon {\n opacity: 0;\n visibility: hidden;\n transition: opacity 0.2s ease, visibility 0.2s ease;\n cursor: pointer;\n margin-left: auto;\n flex-shrink: 0;\n color: #575352;\n}\n.search-field .suggestions-dropdown .suggestion-item .suggestion-content .suggestion-delete-icon:hover {\n color: #3C3A39;\n}\n.search-field .suggestions-dropdown .suggestion-item:hover .suggestion-delete-icon {\n opacity: 1;\n visibility: visible;\n}\n.search-field .search-field__wrapper.dropdown-open {\n border-radius: 1px 1px 0 0;\n border-color: #0A8276;\n}';const l=class{constructor(e){s(this,e);this.ifxInput=i(this,"ifxInput",7);this.ifxSuggestionRequested=i(this,"ifxSuggestionRequested",7);this.ifxSuggestionSelected=i(this,"ifxSuggestionSelected",7);this.ifxFocus=i(this,"ifxFocus",7);this.ifxBlur=i(this,"ifxBlur",7);this.value="";this.suggestions=[];this.showSuggestions=false;this.maxSuggestions=10;this.maxHistoryItems=5;this.enableHistory=true;this.historyKey="ifx-search-history";this.historyHeaderText="Recent Searches";this.ariaLabel="Search Field";this.deleteIconAriaLabel="Clear search";this.historyDeleteAriaLabel="Remove from history";this.dropdownAriaLabel="Search suggestions and history";this.suggestionAriaLabel="Search suggestion";this.historyItemAriaLabel="Search history item";this.showDropdown=false;this.filteredSuggestions=[];this.selectedSuggestionIndex=-1;this.searchHistory=[];this.showDeleteIcon=false;this.showDeleteIconInternalState=false;this.disabled=false;this.size="l";this.isFocused=false;this.placeholder="Search...";this.autocomplete="off";this.maxlength=null;this.focusEmitted=false;this.handleInput=()=>{const s=this.inputElement.value;this.value=s;this.ifxInput.emit(this.value);if(this.showSuggestions){this.showDropdown=true;this.selectedSuggestionIndex=-1;this.requestSuggestions(s)}};this.handleDelete=()=>{if(!this.disabled){this.inputElement.value="";this.value="";this.ifxInput.emit(this.value);this.hideDropdown()}};this.handleSearch=()=>{if(this.value.trim()&&this.enableHistory){if(this.filteredSuggestions.length>0){this.addToHistory(this.value)}}this.hideDropdown()};this.handleHistoryDelete=(s,i)=>{s.stopPropagation();this.removeFromHistory(i)}}handleOutsideClick(s){const i=s.composedPath();if(!i.includes(this.inputElement)&&!i.includes(this.dropdownElement)){this.hideDropdown()}}handleKeyDown(s){if(!this.showDropdown)return;switch(s.key){case"ArrowDown":s.preventDefault();this.navigateSuggestions(1);break;case"ArrowUp":s.preventDefault();this.navigateSuggestions(-1);break;case"Enter":s.preventDefault();if(this.selectedSuggestionIndex>=0){this.selectSuggestion(this.filteredSuggestions[this.selectedSuggestionIndex])}else{this.handleSearch()}break;case"Escape":this.hideDropdown();break}}valueWatcher(s){if(this.inputElement&&s!==this.inputElement.value){this.inputElement.value=s}this.updateSuggestions()}suggestionsWatcher(){this.updateSuggestions()}focusInput(){if(!this.focusEmitted){this.focusEmitted=true;this.isFocused=true;this.ifxFocus.emit()}if(this.showSuggestions){if(this.value.length===0){this.showHistoryDropdown();this.showDropdown=this.enableHistory&&this.searchHistory.length>0}else{this.updateSuggestions();this.showDropdown=this.filteredSuggestions.length>0}}}blurInput(){setTimeout((()=>{this.isFocused=false;this.focusEmitted=false;this.ifxBlur.emit()}),150)}loadSearchHistory(){if(this.enableHistory&&typeof localStorage!=="undefined"){const s=localStorage.getItem(this.historyKey);this.searchHistory=s?JSON.parse(s):[];this.updateSuggestions();if(this.value.length===0&&this.searchHistory.length===0){this.showDropdown=false}}}clearSearchHistory(){if(this.enableHistory&&typeof localStorage!=="undefined"){localStorage.removeItem(this.historyKey);this.searchHistory=[];this.filteredSuggestions=[];this.selectedSuggestionIndex=-1;this.showDropdown=false;this.updateSuggestions()}}addToHistory(s){if(!this.enableHistory||!s.trim())return;const i=[...this.searchHistory];const e=i.indexOf(s);if(e>-1){i.splice(e,1)}i.unshift(s);this.searchHistory=i.slice(0,this.maxHistoryItems);if(typeof localStorage!=="undefined"){localStorage.setItem(this.historyKey,JSON.stringify(this.searchHistory))}}removeFromHistory(s){if(!this.enableHistory)return;const i=[...this.searchHistory];const e=i.indexOf(s);if(e>-1){i.splice(e,1);this.searchHistory=i;if(typeof localStorage!=="undefined"){localStorage.setItem(this.historyKey,JSON.stringify(this.searchHistory))}this.updateSuggestions();if(this.searchHistory.length===0&&this.value.length===0){this.showDropdown=false}}}requestSuggestions(s){this.ifxSuggestionRequested.emit(s);this.updateSuggestions()}updateSuggestions(){const s=this.value.toLowerCase();let i=[];if(s.length>0){if(this.suggestions&&this.suggestions.length>0){const e=this.suggestions.filter((i=>i.text.toLowerCase().includes(s)));i=[...i,...e]}if(this.enableHistory&&this.searchHistory.length>0){const e=this.searchHistory.filter((i=>i.toLowerCase().includes(s))).map(((s,i)=>({id:`history-${i}`,text:s,type:"history"})));i=[...i,...e]}i.sort(((i,e)=>{const t=i.text.toLowerCase();const n=e.text.toLowerCase();if(t===s&&n!==s)return-1;if(n===s&&t!==s)return 1;const o=t.startsWith(s);const r=n.startsWith(s);if(o&&!r)return-1;if(r&&!o)return 1;if(i.type==="suggestion"&&e.type==="history")return-1;if(i.type==="history"&&e.type==="suggestion")return 1;return t.localeCompare(n)}))}else{if(this.enableHistory&&this.searchHistory.length>0){const s=this.searchHistory.map(((s,i)=>({id:`history-${i}`,text:s,type:"history"})));i=s}}const e=i.reduce(((s,i)=>{const e=s.findIndex((s=>s.text.toLowerCase()===i.text.toLowerCase()&&s.scope===i.scope));if(e===-1){s.push(i)}else{if(i.type==="history"&&s[e].type!=="history"){s[e]=i}}return s}),[]);this.filteredSuggestions=e.slice(0,this.maxSuggestions);this.selectedSuggestionIndex=-1}navigateSuggestions(s){const i=this.filteredSuggestions.length-1;if(s>0){this.selectedSuggestionIndex=this.selectedSuggestionIndex<i?this.selectedSuggestionIndex+1:0}else{this.selectedSuggestionIndex=this.selectedSuggestionIndex>0?this.selectedSuggestionIndex-1:i}}selectSuggestion(s){this.value=s.text;this.inputElement.value=s.text;this.ifxSuggestionSelected.emit(s);this.ifxInput.emit(this.value);if(this.enableHistory){this.addToHistory(s.text)}this.hideDropdown()}hideDropdown(){this.showDropdown=false;this.selectedSuggestionIndex=-1;this.isFocused=false}showHistoryDropdown(){if(this.enableHistory&&this.searchHistory.length>0){const s=this.searchHistory.map(((s,i)=>({id:`history-${i}`,text:s,type:"history"})));this.filteredSuggestions=s.slice(0,this.maxSuggestions);this.selectedSuggestionIndex=-1}else{this.filteredSuggestions=[]}}isShowingOnlyHistory(){return this.value.length===0&&this.filteredSuggestions.length>0&&this.filteredSuggestions.every((s=>s.type==="history"))}renderHighlightedText(s,i){if(!i||i.length===0){return s}const t=s.toLowerCase();const n=i.toLowerCase();const o=t.indexOf(n);if(o===-1){return s}const r=s.substring(0,o);const h=s.substring(o,o+i.length);const a=s.substring(o+i.length);return[r,e("strong",null,h),a]}componentWillLoad(){this.loadSearchHistory()}async componentDidLoad(){if(!r(this.el)){const s=n();o("ifx-search-field",await s)}}componentWillUpdate(){if(this.value!==""){this.showDeleteIconInternalState=true}else this.showDeleteIconInternalState=false}render(){return e("div",{key:"d355ec7cdbe980ea99e4238cf02d907ddd76d59b","aria-disabled":this.disabled,"aria-value":this.value,class:"search-field"},e("div",{key:"2aa3d943caab35213ca10f071586c80358515f1c",class:this.getWrapperClassNames(),tabindex:1,onClick:()=>this.focusInput()},e("ifx-icon",{key:"eaa300dd0f8466a2396c55f3f2fffe9dcf5bbf44",icon:"search-16",class:"search-icon"}),e("input",{key:"cce86ee892ec624fe8671d7567434ae5433b8702",ref:s=>this.inputElement=s,type:"text",autocomplete:this.autocomplete,onInput:()=>this.handleInput(),onFocus:()=>this.focusInput(),onBlur:()=>this.blurInput(),placeholder:this.placeholder,disabled:this.disabled,maxlength:this.maxlength,value:this.value,role:"combobox","aria-controls":this.showDropdown?"suggestions-dropdown":undefined,"aria-expanded":this.showDropdown,"aria-autocomplete":"list","aria-haspopup":"listbox","aria-label":this.ariaLabel,"aria-labelledby":this.ariaLabelledBy,"aria-describedby":this.ariaDescribedBy,"aria-owns":this.showDropdown?"suggestions-dropdown":undefined,"aria-activedescendant":this.selectedSuggestionIndex>=0?`suggestion-${this.selectedSuggestionIndex}`:undefined}),this.showDeleteIcon&&this.showDeleteIconInternalState?e("ifx-icon",{icon:"cRemove16",class:"delete-icon",onClick:this.handleDelete,role:"button",tabindex:"0","aria-label":this.deleteIconAriaLabel,onKeyDown:s=>{if(s.key==="Enter"||s.key===" "){s.preventDefault();this.handleDelete()}}}):null),this.showDropdown&&this.filteredSuggestions.length>0&&e("div",{key:"d447e63087ac5b41d2109a16b8db37df4c9db860",ref:s=>this.dropdownElement=s,id:"suggestions-dropdown",class:"suggestions-dropdown",role:"listbox","aria-label":this.dropdownAriaLabel},this.isShowingOnlyHistory()&&e("div",{key:"6a4662d31fd8c755ec1ec9da4bb871750aa63a57",class:"suggestions-header"},this.historyHeaderText),this.filteredSuggestions.map(((s,i)=>e("div",{key:s.id,id:`suggestion-${i}`,class:this.getSuggestionClassNames(i),role:"option","aria-selected":i===this.selectedSuggestionIndex,"aria-label":`${s.type==="history"?this.historyItemAriaLabel:this.suggestionAriaLabel}: ${s.text}${s.scope?`, ${s.scope}`:""}${s.resultCount?`, ${s.resultCount} results`:""}`,onClick:()=>this.selectSuggestion(s),onMouseEnter:()=>this.selectedSuggestionIndex=i},e("div",{class:"suggestion-content"},s.type==="history"&&e("ifx-icon",{icon:"history-16",class:"suggestion-icon suggestion-icon--history"}),s.type==="suggestion"&&e("ifx-icon",{icon:"search-16",class:"suggestion-icon suggestion-icon--suggestion"}),e("span",{class:"suggestion-text"},e("span",{class:"suggestion-main-text"},this.renderHighlightedText(s.text,this.value)),s.scope&&e("span",{class:"suggestion-scope"},"– ",s.scope)),s.resultCount!==undefined&&s.scope&&e("span",{class:"suggestion-count"},s.resultCount),s.type==="history"&&e("ifx-icon",{icon:"cross16",class:"suggestion-delete-icon",role:"button",tabindex:"0","aria-label":`${this.historyDeleteAriaLabel}: ${s.text}`,onClick:i=>this.handleHistoryDelete(i,s.text),onKeyDown:i=>{if(i.key==="Enter"||i.key===" "){i.preventDefault();this.handleHistoryDelete(i,s.text)}}})))))))}getSizeClass(){return`${this.size}`==="s"?"search-field__wrapper-s":""}getWrapperClassNames(){return h(`search-field__wrapper`,`search-field__wrapper ${this.getSizeClass()}`,`${this.isFocused?"focused":""}`,`${this.showDropdown?"dropdown-open":""}`,`${this.disabled?"disabled":""}`)}getSuggestionClassNames(s){var i;return h("suggestion-item",{"suggestion-item--selected":s===this.selectedSuggestionIndex,"suggestion-item--history":((i=this.filteredSuggestions[s])===null||i===void 0?void 0:i.type)==="history"})}get el(){return t(this)}static get watchers(){return{value:["valueWatcher"],suggestions:["suggestionsWatcher"]}}};l.style=a;export{l as ifx_search_field};
2
+ //# sourceMappingURL=p-4fba0543.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["searchFieldCss","SearchField","constructor","hostRef","this","value","suggestions","showSuggestions","maxSuggestions","maxHistoryItems","enableHistory","historyKey","historyHeaderText","ariaLabel","deleteIconAriaLabel","historyDeleteAriaLabel","dropdownAriaLabel","suggestionAriaLabel","historyItemAriaLabel","showDropdown","filteredSuggestions","selectedSuggestionIndex","searchHistory","showDeleteIcon","showDeleteIconInternalState","disabled","size","isFocused","placeholder","autocomplete","maxlength","focusEmitted","handleInput","query","inputElement","ifxInput","emit","requestSuggestions","handleDelete","hideDropdown","handleSearch","trim","length","addToHistory","handleHistoryDelete","event","term","stopPropagation","removeFromHistory","handleOutsideClick","path","composedPath","includes","dropdownElement","handleKeyDown","key","preventDefault","navigateSuggestions","selectSuggestion","valueWatcher","newValue","updateSuggestions","suggestionsWatcher","focusInput","ifxFocus","showHistoryDropdown","blurInput","setTimeout","ifxBlur","loadSearchHistory","localStorage","stored","getItem","JSON","parse","clearSearchHistory","removeItem","history","existingIndex","indexOf","splice","unshift","slice","setItem","stringify","index","ifxSuggestionRequested","toLowerCase","filteredExternal","filter","s","text","filteredHistory","map","id","type","sort","a","b","aText","bText","aStartsWith","startsWith","bStartsWith","localeCompare","historySuggestions","uniqueSuggestions","reduce","unique","current","findIndex","item","scope","push","direction","maxIndex","suggestion","ifxSuggestionSelected","isShowingOnlyHistory","every","renderHighlightedText","lowerText","lowerQuery","before","substring","match","after","h","componentWillLoad","componentDidLoad","isNestedInIfxComponent","el","framework","detectFramework","trackComponent","componentWillUpdate","render","class","getWrapperClassNames","tabindex","onClick","icon","ref","onInput","onFocus","onBlur","role","undefined","ariaLabelledBy","ariaDescribedBy","onKeyDown","getSuggestionClassNames","resultCount","onMouseEnter","getSizeClass","classNames","_a"],"sources":["src/components/search-field/search-field.scss?tag=ifx-search-field&encapsulation=shadow","src/components/search-field/search-field.tsx"],"sourcesContent":["@use '~@infineon/design-system-tokens/dist/tokens';\n@use '../../global/font.scss';\n\n:host {\n display: flex;\n}\n\n.search-field {\n box-sizing: border-box;\n background-color: tokens.$ifxColorBaseWhite;\n width: 100%;\n font-family: var(--ifx-font-family);\n position: relative; // Wichtig für absolute positioning des Dropdowns\n\n .search-field__wrapper {\n box-sizing: border-box;\n height: tokens.$ifxSize500;\n display: flex;\n align-items: center;\n border: 1px solid #8d8786;\n border-radius: tokens.$ifxBorderRadius12;\n padding: tokens.$ifxSpace100 tokens.$ifxSpace200;\n gap: tokens.$ifxSpace150;\n flex: none;\n order: 0;\n align-self: stretch;\n flex-grow: 0;\n position: relative;\n width: 100%;\n outline: none;\n\n &:focus-visible:not(.disabled) {\n outline: 2px solid tokens.$ifxColorOcean500;\n outline-offset: 2px;\n }\n\n &.search-field__wrapper-s {\n height: 36px;\n }\n\n &:hover:not(.focused, :focus) {\n border: 1px solid #3c3a39;\n }\n\n & .delete-icon {\n outline: 1px solid transparent;\n right: 12px;\n cursor: pointer;\n &:focus-visible {\n outline: 2px solid tokens.$ifxColorOcean500;\n outline-offset: 1px;\n }\n }\n\n input[type='text'] {\n font-style: normal;\n font-weight: 400;\n font-size: 16px;\n //line-height: 24px;\n color: #8d8786;\n border: none;\n width: 100%;\n outline: none;\n //height: 100%;\n height: 16px;\n\n &:focus {\n outline: none;\n color: #1d1d1d;\n }\n\n &:disabled {\n background: tokens.$ifxColorEngineering300;\n color: tokens.$ifxColorBaseWhite;\n\n &::placeholder {\n color: tokens.$ifxColorBaseWhite;\n }\n }\n }\n\n &.disabled {\n background: tokens.$ifxColorEngineering300;\n border: none;\n color: tokens.$ifxColorBaseWhite;\n\n &:hover {\n border: none;\n outline: none;\n }\n\n & .delete-icon { \n cursor: default;\n &:focus-visible { \n outline: 1px solid transparent;\n }\n }\n }\n }\n\n // Suggestions Dropdown Styles\n .suggestions-dropdown {\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n background: tokens.$ifxColorBaseWhite;\n margin-top: tokens.$ifxSpace50;\n border: 1px solid tokens.$ifxColorEngineering200;\n box-shadow: 0px 6px 9px 0px rgba(29, 29, 29, 0.1);\n z-index: 1000;\n max-height: 300px;\n overflow-y: auto;\n container-type: inline-size; // Enable container queries\n\n .suggestions-header {\n // font: tokens.$ifxEyebrowEyebrow02; TODO\n font-family: Source Sans 3;\n font-size: 0.8125rem;\n font-weight: 600;\n line-height: 1.25rem;\n\n letter-spacing: 0.25em;\n text-transform: uppercase;\n color: tokens.$ifxColorEngineering500;\n border-bottom: 1px solid tokens.$ifxColorEngineering200;\n padding: tokens.$ifxSpace150 tokens.$ifxSpace200;\n }\n\n .suggestion-item {\n padding: tokens.$ifxSpace150 tokens.$ifxSpace200;\n cursor: pointer;\n transition: background-color 0.2s ease;\n\n &:last-child {\n border-bottom: none;\n }\n\n &:hover,\n &--selected {\n background-color: tokens.$ifxColorEngineering200;\n }\n\n .suggestion-content {\n display: flex;\n align-items: center;\n gap: tokens.$ifxSpace150;\n\n .suggestion-icon {\n color: tokens.$ifxColorEngineering500;\n flex-shrink: 0;\n\n &--history {\n color: tokens.$ifxColorEngineering500;\n }\n }\n\n .suggestion-text {\n flex: 1;\n display: flex;\n align-items: center;\n min-width: 0; // Important for flexbox truncation\n\n .suggestion-main-text {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n flex-shrink: 1;\n min-width: 0;\n }\n\n .suggestion-scope {\n color: tokens.$ifxColorEngineering400;\n flex-shrink: 0; // Never truncate the scope\n white-space: nowrap;\n margin-left: tokens.$ifxSpace25; // Add space before the scope\n font-weight: tokens.$ifxFontWeightSemibold;\n font-size: tokens.$ifxFontSizeXs;\n }\n\n // When container is narrow, stack scope below main text\n @container (max-width: 320px) {\n flex-direction: column;\n align-items: flex-start;\n\n .suggestion-main-text {\n width: 100%;\n max-width: 100%;\n }\n\n .suggestion-scope {\n margin-left: 0;\n margin-top: 0;\n width: 100%;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n flex-shrink: 1; // Allow truncation when narrow\n }\n }\n }\n\n .suggestion-count {\n color: tokens.$ifxColorEngineering400;\n margin-left: auto;\n flex-shrink: 0;\n }\n\n .suggestion-delete-icon {\n opacity: 0;\n visibility: hidden;\n transition: opacity 0.2s ease, visibility 0.2s ease;\n cursor: pointer;\n margin-left: auto;\n flex-shrink: 0;\n color: tokens.$ifxColorEngineering500;\n\n &:hover {\n color: tokens.$ifxColorEngineering600;\n }\n }\n }\n\n &:hover {\n .suggestion-delete-icon {\n opacity: 1;\n visibility: visible;\n }\n }\n }\n }\n\n // Wrapper modifications when dropdown is open\n .search-field__wrapper.dropdown-open {\n border-radius: tokens.$ifxBorderRadius12 tokens.$ifxBorderRadius12 0 0;\n border-color: tokens.$ifxColorOcean500;\n }\n}\n","import { Component, EventEmitter, h, Event, Prop, Watch, State, Listen, Element } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking';\nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\nimport { detectFramework } from '../../global/utils/framework-detection';\nimport classNames from 'classnames';\n\nexport interface SuggestionItem {\n id: string;\n text: string;\n type?: 'suggestion' | 'history';\n scope?: string;\n resultCount?: number;\n metadata?: any;\n}\n\n@Component({\n tag: 'ifx-search-field',\n styleUrl: 'search-field.scss',\n shadow: true\n})\n\nexport class SearchField {\n @Element() el;\n private inputElement: HTMLInputElement;\n private dropdownElement: HTMLDivElement;\n\n @Prop({ mutable: true }) value: string = '';\n @Prop() suggestions: SuggestionItem[] = [];\n @Prop() showSuggestions: boolean = false;\n @Prop() maxSuggestions: number = 10;\n @Prop() maxHistoryItems: number = 5;\n @Prop() enableHistory: boolean = true;\n @Prop() historyKey: string = 'ifx-search-history';\n @Prop() historyHeaderText: string = 'Recent Searches';\n\n // ARIA Labels and Accessibility Props\n @Prop() ariaLabel: string | null = \"Search Field\"\n @Prop() ariaLabelledBy?: string | null;\n @Prop() ariaDescribedBy?: string | null;\n @Prop() deleteIconAriaLabel: string = 'Clear search';\n @Prop() historyDeleteAriaLabel: string = 'Remove from history';\n @Prop() dropdownAriaLabel: string = 'Search suggestions and history';\n @Prop() suggestionAriaLabel: string = 'Search suggestion';\n @Prop() historyItemAriaLabel: string = 'Search history item';\n\n @Event() ifxInput: EventEmitter<string>;\n @Event() ifxSuggestionRequested: EventEmitter<string>;\n @Event() ifxSuggestionSelected: EventEmitter<SuggestionItem>;\n @Event() ifxFocus: EventEmitter<void>;\n @Event() ifxBlur: EventEmitter<void>;\n\n @State() showDropdown: boolean = false;\n @State() filteredSuggestions: SuggestionItem[] = [];\n @State() selectedSuggestionIndex: number = -1;\n @State() searchHistory: string[] = [];\n\n @Prop() showDeleteIcon: boolean = false;\n @State() showDeleteIconInternalState: boolean = false;\n @Prop() disabled: boolean = false;\n @Prop() size: string = 'l';\n @State() isFocused: boolean = false;\n @Prop() placeholder: string = \"Search...\";\n @Prop() autocomplete: string = \"off\";\n @Prop() maxlength?: number = null;\n\n private focusEmitted: boolean = false;\n\n @Listen('mousedown', { target: 'document' })\n handleOutsideClick(event: MouseEvent) {\n const path = event.composedPath();\n if (!path.includes(this.inputElement) && !path.includes(this.dropdownElement)) {\n this.hideDropdown();\n }\n }\n\n @Listen('keydown')\n handleKeyDown(event: KeyboardEvent) {\n if (!this.showDropdown) return;\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n this.navigateSuggestions(1);\n break;\n case 'ArrowUp':\n event.preventDefault();\n this.navigateSuggestions(-1);\n break;\n case 'Enter':\n event.preventDefault();\n if (this.selectedSuggestionIndex >= 0) {\n this.selectSuggestion(this.filteredSuggestions[this.selectedSuggestionIndex]);\n } else {\n this.handleSearch();\n }\n break;\n case 'Escape':\n this.hideDropdown();\n break;\n }\n }\n\n @Watch('value')\n valueWatcher(newValue: string) {\n if (this.inputElement && newValue !== this.inputElement.value) {\n this.inputElement.value = newValue;\n }\n this.updateSuggestions();\n }\n\n @Watch('suggestions')\n suggestionsWatcher() {\n this.updateSuggestions();\n }\n\n\n handleInput = () => {\n const query = this.inputElement.value;\n this.value = query;\n this.ifxInput.emit(this.value);\n\n if (this.showSuggestions) {\n this.showDropdown = true;\n this.selectedSuggestionIndex = -1;\n this.requestSuggestions(query);\n }\n };\n\n handleDelete = () => {\n if(!this.disabled) { \n this.inputElement.value = '';\n this.value = \"\";\n this.ifxInput.emit(this.value);\n this.hideDropdown();\n }\n }\n\n handleSearch = () => {\n if (this.value.trim() && this.enableHistory) {\n // Only add to history if there are actual results\n if (this.filteredSuggestions.length > 0) {\n this.addToHistory(this.value);\n }\n }\n this.hideDropdown();\n }\n\n focusInput() {\n // Only emit focus event if it hasn't been emitted already\n if (!this.focusEmitted) {\n this.focusEmitted = true;\n this.isFocused = true;\n this.ifxFocus.emit();\n }\n\n if (this.showSuggestions) {\n // On focus without input: Show only history\n if (this.value.length === 0) {\n this.showHistoryDropdown();\n // Only show dropdown if history is actually present\n this.showDropdown = this.enableHistory && this.searchHistory.length > 0;\n } else {\n // With existing input: Normal suggestion logic\n this.updateSuggestions();\n this.showDropdown = this.filteredSuggestions.length > 0;\n }\n }\n }\n\n blurInput() {\n setTimeout(() => {\n this.isFocused = false;\n this.focusEmitted = false; // Reset focus flag when blur occurs\n this.ifxBlur.emit();\n }, 150);\n }\n\n // Public method to update history from external sources\n public loadSearchHistory() {\n if (this.enableHistory && typeof localStorage !== 'undefined') {\n const stored = localStorage.getItem(this.historyKey);\n this.searchHistory = stored ? JSON.parse(stored) : [];\n\n // Update suggestions when history is loaded\n this.updateSuggestions();\n\n // If no input and no history left, close dropdown\n if (this.value.length === 0 && this.searchHistory.length === 0) {\n this.showDropdown = false;\n }\n }\n }\n\n // Public method to completely clear history\n public clearSearchHistory() {\n if (this.enableHistory && typeof localStorage !== 'undefined') {\n // Clear from localStorage\n localStorage.removeItem(this.historyKey);\n\n // Clear internal history\n this.searchHistory = [];\n\n // Reset all dropdown-relevant states\n this.filteredSuggestions = [];\n this.selectedSuggestionIndex = -1;\n this.showDropdown = false;\n\n // Update suggestions after reset\n this.updateSuggestions();\n }\n }\n\n // Suggestion Management Methods\n private addToHistory(term: string) {\n if (!this.enableHistory || !term.trim()) return;\n\n const history = [...this.searchHistory];\n const existingIndex = history.indexOf(term);\n\n if (existingIndex > -1) {\n history.splice(existingIndex, 1);\n }\n\n history.unshift(term);\n // Limit history to maxHistoryItems (default 5)\n this.searchHistory = history.slice(0, this.maxHistoryItems);\n\n if (typeof localStorage !== 'undefined') {\n localStorage.setItem(this.historyKey, JSON.stringify(this.searchHistory));\n }\n }\n\n // Remove individual history entry\n private removeFromHistory(term: string) {\n if (!this.enableHistory) return;\n\n const history = [...this.searchHistory];\n const index = history.indexOf(term);\n\n if (index > -1) {\n history.splice(index, 1);\n this.searchHistory = history;\n\n // Update localStorage\n if (typeof localStorage !== 'undefined') {\n localStorage.setItem(this.historyKey, JSON.stringify(this.searchHistory));\n }\n\n // Update suggestions after removal\n this.updateSuggestions();\n\n // Close dropdown if no history remains\n if (this.searchHistory.length === 0 && this.value.length === 0) {\n this.showDropdown = false;\n }\n }\n }\n\n // Handle click on history delete button\n private handleHistoryDelete = (event: Event, term: string) => {\n event.stopPropagation(); // Prevent selection of the entry\n this.removeFromHistory(term);\n }\n\n private requestSuggestions(query: string) {\n this.ifxSuggestionRequested.emit(query);\n this.updateSuggestions();\n }\n\n private updateSuggestions() {\n const query = this.value.toLowerCase();\n let suggestions: SuggestionItem[] = [];\n\n if (query.length > 0) {\n // For text input: Mix external suggestions and relevant history\n\n // 1. Filter external suggestions\n if (this.suggestions && this.suggestions.length > 0) {\n const filteredExternal = this.suggestions.filter(s =>\n s.text.toLowerCase().includes(query)\n );\n suggestions = [...suggestions, ...filteredExternal];\n }\n\n // 2. Filter relevant history entries\n if (this.enableHistory && this.searchHistory.length > 0) {\n const filteredHistory = this.searchHistory\n .filter(term => term.toLowerCase().includes(query))\n .map((term, index) => ({\n id: `history-${index}`,\n text: term,\n type: 'history' as const\n }));\n suggestions = [...suggestions, ...filteredHistory];\n }\n\n // 3. Sort by relevance (exact matches first, then prefix matches)\n suggestions.sort((a, b) => {\n const aText = a.text.toLowerCase();\n const bText = b.text.toLowerCase();\n\n // Exact match has highest priority\n if (aText === query && bText !== query) return -1;\n if (bText === query && aText !== query) return 1;\n\n // Prefix match has second highest priority\n const aStartsWith = aText.startsWith(query);\n const bStartsWith = bText.startsWith(query);\n\n if (aStartsWith && !bStartsWith) return -1;\n if (bStartsWith && !aStartsWith) return 1;\n\n // With equal relevance: external suggestions before history\n if (a.type === 'suggestion' && b.type === 'history') return -1;\n if (a.type === 'history' && b.type === 'suggestion') return 1;\n\n // Alphabetical sorting as last criterion\n return aText.localeCompare(bText);\n });\n\n } else {\n // For empty query: Show only history (no external suggestions)\n if (this.enableHistory && this.searchHistory.length > 0) {\n const historySuggestions = this.searchHistory.map((term, index) => ({\n id: `history-${index}`,\n text: term,\n type: 'history' as const\n }));\n\n suggestions = historySuggestions;\n }\n // For empty query DO NOT show external suggestions\n }\n\n // Remove duplicates based on text and scope combination (history takes precedence over external)\n const uniqueSuggestions = suggestions.reduce((unique: SuggestionItem[], current) => {\n const existingIndex = unique.findIndex(item =>\n item.text.toLowerCase() === current.text.toLowerCase() &&\n item.scope === current.scope\n );\n if (existingIndex === -1) {\n unique.push(current);\n } else {\n // If already exists, prefer history over external suggestions\n if (current.type === 'history' && unique[existingIndex].type !== 'history') {\n unique[existingIndex] = current;\n }\n }\n return unique;\n }, []);\n\n this.filteredSuggestions = uniqueSuggestions.slice(0, this.maxSuggestions);\n this.selectedSuggestionIndex = -1;\n }\n\n private navigateSuggestions(direction: number) {\n const maxIndex = this.filteredSuggestions.length - 1;\n\n if (direction > 0) {\n this.selectedSuggestionIndex = this.selectedSuggestionIndex < maxIndex\n ? this.selectedSuggestionIndex + 1\n : 0;\n } else {\n this.selectedSuggestionIndex = this.selectedSuggestionIndex > 0\n ? this.selectedSuggestionIndex - 1\n : maxIndex;\n }\n }\n\n private selectSuggestion(suggestion: SuggestionItem) {\n this.value = suggestion.text;\n this.inputElement.value = suggestion.text;\n this.ifxSuggestionSelected.emit(suggestion);\n this.ifxInput.emit(this.value);\n\n if (this.enableHistory) {\n // Always add selected suggestions to history since they are valid results\n this.addToHistory(suggestion.text);\n }\n\n this.hideDropdown();\n }\n\n private hideDropdown() {\n this.showDropdown = false;\n this.selectedSuggestionIndex = -1;\n this.isFocused = false;\n }\n\n // Show only history in dropdown (e.g. on focus without input)\n private showHistoryDropdown() {\n if (this.enableHistory && this.searchHistory.length > 0) {\n // Show only history entries\n const historySuggestions = this.searchHistory.map((term, index) => ({\n id: `history-${index}`,\n text: term,\n type: 'history' as const\n }));\n\n this.filteredSuggestions = historySuggestions.slice(0, this.maxSuggestions);\n this.selectedSuggestionIndex = -1;\n } else {\n this.filteredSuggestions = [];\n }\n }\n\n // Check if only history entries are displayed (without text input)\n private isShowingOnlyHistory(): boolean {\n return this.value.length === 0 &&\n this.filteredSuggestions.length > 0 &&\n this.filteredSuggestions.every(s => s.type === 'history');\n }\n\n // Render text with highlighted matches\n private renderHighlightedText(text: string, query: string) {\n if (!query || query.length === 0) {\n return text;\n }\n\n const lowerText = text.toLowerCase();\n const lowerQuery = query.toLowerCase();\n const index = lowerText.indexOf(lowerQuery);\n\n if (index === -1) {\n return text;\n }\n\n const before = text.substring(0, index);\n const match = text.substring(index, index + query.length);\n const after = text.substring(index + query.length);\n\n return [\n before,\n <strong>{match}</strong>,\n after\n ];\n }\n\n componentWillLoad() {\n this.loadSearchHistory();\n }\n\n async componentDidLoad() { \n if(!isNestedInIfxComponent(this.el)) {\n const framework = detectFramework()\n trackComponent('ifx-search-field', await framework)\n }\n }\n\n componentWillUpdate() {\n if (this.value !== \"\") {\n this.showDeleteIconInternalState = true;\n } else this.showDeleteIconInternalState = false;\n }\n\n render() {\n return (\n <div\n aria-disabled={this.disabled}\n aria-value={this.value}\n class='search-field'\n >\n <div\n class={this.getWrapperClassNames()}\n tabindex={1}\n onClick={() => this.focusInput()}\n >\n <ifx-icon icon=\"search-16\" class=\"search-icon\"></ifx-icon>\n <input\n ref={(el) => (this.inputElement = el)}\n type=\"text\"\n autocomplete={this.autocomplete}\n onInput={() => this.handleInput()}\n onFocus={() => this.focusInput()}\n onBlur={() => this.blurInput()}\n placeholder={this.placeholder}\n disabled={this.disabled}\n maxlength={this.maxlength}\n value={this.value}\n role=\"combobox\"\n aria-controls={this.showDropdown ? 'suggestions-dropdown' : undefined}\n aria-expanded={this.showDropdown}\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n aria-label={this.ariaLabel}\n aria-labelledby={this.ariaLabelledBy}\n aria-describedby={this.ariaDescribedBy}\n aria-owns={this.showDropdown ? 'suggestions-dropdown' : undefined}\n aria-activedescendant={this.selectedSuggestionIndex >= 0 ? `suggestion-${this.selectedSuggestionIndex}` : undefined}\n />\n {this.showDeleteIcon && this.showDeleteIconInternalState ? (\n <ifx-icon\n icon=\"cRemove16\"\n class=\"delete-icon\"\n onClick={this.handleDelete}\n role=\"button\"\n tabindex=\"0\"\n aria-label={this.deleteIconAriaLabel}\n onKeyDown={(event) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.handleDelete();\n }\n }}>\n </ifx-icon>\n ) : null}\n </div>\n\n {/* Suggestions Dropdown */}\n {this.showDropdown && this.filteredSuggestions.length > 0 && (\n <div\n ref={(el) => (this.dropdownElement = el)}\n id=\"suggestions-dropdown\"\n class=\"suggestions-dropdown\"\n role=\"listbox\"\n aria-label={this.dropdownAriaLabel}\n >\n {/* History Header - only show when exclusively showing history entries */}\n {this.isShowingOnlyHistory() && (\n <div class=\"suggestions-header\">\n {this.historyHeaderText}\n </div>\n )}\n\n {this.filteredSuggestions.map((suggestion, index) => (\n <div\n key={suggestion.id}\n id={`suggestion-${index}`}\n class={this.getSuggestionClassNames(index)}\n role=\"option\"\n aria-selected={index === this.selectedSuggestionIndex}\n aria-label={`${suggestion.type === 'history' ? this.historyItemAriaLabel : this.suggestionAriaLabel}: ${suggestion.text}${suggestion.scope ? `, ${suggestion.scope}` : ''}${suggestion.resultCount ? `, ${suggestion.resultCount} results` : ''}`}\n onClick={() => this.selectSuggestion(suggestion)}\n onMouseEnter={() => this.selectedSuggestionIndex = index}\n >\n <div class=\"suggestion-content\">\n {suggestion.type === 'history' && (\n <ifx-icon icon=\"history-16\" class=\"suggestion-icon suggestion-icon--history\"></ifx-icon>\n )}\n {suggestion.type === 'suggestion' && (\n <ifx-icon icon=\"search-16\" class=\"suggestion-icon suggestion-icon--suggestion\"></ifx-icon>\n )}\n <span class=\"suggestion-text\">\n <span class=\"suggestion-main-text\">\n {this.renderHighlightedText(suggestion.text, this.value)}\n </span>\n {suggestion.scope && (\n <span class=\"suggestion-scope\">– {suggestion.scope}</span>\n )}\n </span>\n\n {suggestion.resultCount !== undefined && suggestion.scope && (\n <span class=\"suggestion-count\">{suggestion.resultCount}</span>\n )}\n\n {/* Delete Button only for history entries */}\n {suggestion.type === 'history' && (\n <ifx-icon\n icon=\"cross16\"\n class=\"suggestion-delete-icon\"\n role=\"button\"\n tabindex=\"0\"\n aria-label={`${this.historyDeleteAriaLabel}: ${suggestion.text}`}\n onClick={(event) => this.handleHistoryDelete(event, suggestion.text)}\n onKeyDown={(event) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.handleHistoryDelete(event, suggestion.text);\n }\n }}\n ></ifx-icon>\n )}\n </div>\n </div>\n ))}\n </div>\n )}\n </div>\n );\n }\n\n getSizeClass() {\n return `${this.size}` === \"s\"\n ? \"search-field__wrapper-s\"\n : \"\";\n }\n\n getWrapperClassNames() {\n return classNames(\n `search-field__wrapper`,\n `search-field__wrapper ${this.getSizeClass()}`,\n `${this.isFocused ? 'focused' : \"\"}`,\n `${this.showDropdown ? 'dropdown-open' : \"\"}`,\n `${this.disabled ? 'disabled' : \"\"}`\n );\n }\n\n getSuggestionClassNames(index: number) {\n return classNames(\n 'suggestion-item',\n {\n 'suggestion-item--selected': index === this.selectedSuggestionIndex,\n 'suggestion-item--history': this.filteredSuggestions[index]?.type === 'history'\n }\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["searchFieldCss","SearchField","constructor","hostRef","this","value","suggestions","showSuggestions","maxSuggestions","maxHistoryItems","enableHistory","historyKey","historyHeaderText","ariaLabel","deleteIconAriaLabel","historyDeleteAriaLabel","dropdownAriaLabel","suggestionAriaLabel","historyItemAriaLabel","showDropdown","filteredSuggestions","selectedSuggestionIndex","searchHistory","showDeleteIcon","showDeleteIconInternalState","disabled","size","isFocused","placeholder","autocomplete","maxlength","focusEmitted","handleInput","query","inputElement","ifxInput","emit","requestSuggestions","handleDelete","hideDropdown","handleSearch","trim","length","addToHistory","handleHistoryDelete","event","term","stopPropagation","removeFromHistory","handleOutsideClick","path","composedPath","includes","dropdownElement","handleKeyDown","key","preventDefault","navigateSuggestions","selectSuggestion","valueWatcher","newValue","updateSuggestions","suggestionsWatcher","focusInput","ifxFocus","showHistoryDropdown","blurInput","setTimeout","ifxBlur","loadSearchHistory","localStorage","stored","getItem","JSON","parse","clearSearchHistory","removeItem","history","existingIndex","indexOf","splice","unshift","slice","setItem","stringify","index","ifxSuggestionRequested","toLowerCase","filteredExternal","filter","s","text","filteredHistory","map","id","type","sort","a","b","aText","bText","aStartsWith","startsWith","bStartsWith","localeCompare","historySuggestions","uniqueSuggestions","reduce","unique","current","findIndex","item","scope","push","direction","maxIndex","suggestion","ifxSuggestionSelected","isShowingOnlyHistory","every","renderHighlightedText","lowerText","lowerQuery","before","substring","match","after","h","componentWillLoad","componentDidLoad","isNestedInIfxComponent","el","framework","detectFramework","trackComponent","componentWillUpdate","render","class","getWrapperClassNames","tabindex","onClick","icon","ref","onInput","onFocus","onBlur","role","undefined","ariaLabelledBy","ariaDescribedBy","onKeyDown","getSuggestionClassNames","resultCount","onMouseEnter","getSizeClass","classNames","_a"],"sources":["src/components/search-field/search-field.scss?tag=ifx-search-field&encapsulation=shadow","src/components/search-field/search-field.tsx"],"sourcesContent":["@use '~@infineon/design-system-tokens/dist/tokens';\n@use '../../global/font.scss';\n\n:host {\n display: flex;\n}\n\n.search-field {\n box-sizing: border-box;\n background-color: tokens.$ifxColorBaseWhite;\n width: 100%;\n font-family: var(--ifx-font-family);\n position: relative; // Wichtig für absolute positioning des Dropdowns\n\n .search-field__wrapper {\n box-sizing: border-box;\n height: tokens.$ifxSize500;\n display: flex;\n align-items: center;\n border: 1px solid #8d8786;\n border-radius: tokens.$ifxBorderRadius12;\n padding: tokens.$ifxSpace100 tokens.$ifxSpace200;\n gap: tokens.$ifxSpace150;\n flex: none;\n order: 0;\n align-self: stretch;\n flex-grow: 0;\n position: relative;\n width: 100%;\n outline: none;\n\n &:focus-visible:not(.disabled) {\n outline: 2px solid tokens.$ifxColorOcean500;\n outline-offset: 2px;\n }\n\n &.search-field__wrapper-s {\n height: 36px;\n }\n\n &:hover:not(.focused, :focus) {\n border: 1px solid #3c3a39;\n }\n\n & .delete-icon {\n outline: 1px solid transparent;\n right: 12px;\n cursor: pointer;\n &:focus-visible {\n outline: 2px solid tokens.$ifxColorOcean500;\n outline-offset: 1px;\n }\n }\n\n input[type='text'] {\n font-style: normal;\n font-weight: 400;\n font-size: 16px;\n //line-height: 24px;\n color: #8d8786;\n border: none;\n width: 100%;\n outline: none;\n //height: 100%;\n height: 16px;\n\n &:focus {\n outline: none;\n color: #1d1d1d;\n }\n\n &:disabled {\n background: tokens.$ifxColorEngineering300;\n color: tokens.$ifxColorBaseWhite;\n\n &::placeholder {\n color: tokens.$ifxColorBaseWhite;\n }\n }\n }\n\n &.disabled {\n background: tokens.$ifxColorEngineering300;\n border: none;\n color: tokens.$ifxColorBaseWhite;\n\n &:hover {\n border: none;\n outline: none;\n }\n\n & .delete-icon { \n cursor: default;\n &:focus-visible { \n outline: 1px solid transparent;\n }\n }\n }\n }\n\n // Suggestions Dropdown Styles\n .suggestions-dropdown {\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n background: tokens.$ifxColorBaseWhite;\n margin-top: tokens.$ifxSpace50;\n border: 1px solid tokens.$ifxColorEngineering200;\n box-shadow: 0px 6px 9px 0px rgba(29, 29, 29, 0.1);\n z-index: 1000;\n max-height: 300px;\n overflow-y: auto;\n container-type: inline-size; // Enable container queries\n\n .suggestions-header {\n // font: tokens.$ifxEyebrowEyebrow02; TODO\n font-family: Source Sans 3;\n font-size: 0.8125rem;\n font-weight: 600;\n line-height: 1.25rem;\n\n letter-spacing: 0.25em;\n text-transform: uppercase;\n color: tokens.$ifxColorEngineering500;\n border-bottom: 1px solid tokens.$ifxColorEngineering200;\n padding: tokens.$ifxSpace150 tokens.$ifxSpace200;\n }\n\n .suggestion-item {\n padding: tokens.$ifxSpace150 tokens.$ifxSpace200;\n cursor: pointer;\n transition: background-color 0.2s ease;\n\n &:last-child {\n border-bottom: none;\n }\n\n &:hover,\n &--selected {\n background-color: tokens.$ifxColorEngineering200;\n }\n\n .suggestion-content {\n display: flex;\n align-items: center;\n gap: tokens.$ifxSpace150;\n\n .suggestion-icon {\n color: tokens.$ifxColorEngineering500;\n flex-shrink: 0;\n\n &--history {\n color: tokens.$ifxColorEngineering500;\n }\n }\n\n .suggestion-text {\n flex: 1;\n display: flex;\n align-items: center;\n min-width: 0; // Important for flexbox truncation\n\n .suggestion-main-text {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n flex-shrink: 1;\n min-width: 0;\n }\n\n .suggestion-scope {\n color: tokens.$ifxColorEngineering400;\n flex-shrink: 0; // Never truncate the scope\n white-space: nowrap;\n margin-left: tokens.$ifxSpace25; // Add space before the scope\n font-weight: tokens.$ifxFontWeightSemibold;\n font-size: tokens.$ifxFontSizeXs;\n }\n\n // When container is narrow, stack scope below main text\n @container (max-width: 320px) {\n flex-direction: column;\n align-items: flex-start;\n\n .suggestion-main-text {\n width: 100%;\n max-width: 100%;\n }\n\n .suggestion-scope {\n margin-left: 0;\n margin-top: 0;\n width: 100%;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n flex-shrink: 1; // Allow truncation when narrow\n }\n }\n }\n\n .suggestion-count {\n color: tokens.$ifxColorEngineering400;\n margin-left: auto;\n flex-shrink: 0;\n }\n\n .suggestion-delete-icon {\n opacity: 0;\n visibility: hidden;\n transition: opacity 0.2s ease, visibility 0.2s ease;\n cursor: pointer;\n margin-left: auto;\n flex-shrink: 0;\n color: tokens.$ifxColorEngineering500;\n\n &:hover {\n color: tokens.$ifxColorEngineering600;\n }\n }\n }\n\n &:hover {\n .suggestion-delete-icon {\n opacity: 1;\n visibility: visible;\n }\n }\n }\n }\n\n // Wrapper modifications when dropdown is open\n .search-field__wrapper.dropdown-open {\n border-radius: tokens.$ifxBorderRadius12 tokens.$ifxBorderRadius12 0 0;\n border-color: tokens.$ifxColorOcean500;\n }\n}\n","import { Component, EventEmitter, h, Event, Prop, Watch, State, Listen, Element } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking';\nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\nimport { detectFramework } from '../../global/utils/framework-detection';\nimport classNames from 'classnames';\n\nexport interface SuggestionItem {\n id: string;\n text: string;\n type?: 'suggestion' | 'history';\n scope?: string;\n resultCount?: number;\n metadata?: any;\n}\n\n@Component({\n tag: 'ifx-search-field',\n styleUrl: 'search-field.scss',\n shadow: true\n})\n\nexport class SearchField {\n @Element() el;\n private inputElement: HTMLInputElement;\n private dropdownElement: HTMLDivElement;\n\n @Prop({ mutable: true }) value: string = '';\n @Prop() suggestions: SuggestionItem[] = [];\n @Prop() showSuggestions: boolean = false;\n @Prop() maxSuggestions: number = 10;\n @Prop() maxHistoryItems: number = 5;\n @Prop() enableHistory: boolean = true;\n @Prop() historyKey: string = 'ifx-search-history';\n @Prop() historyHeaderText: string = 'Recent Searches';\n\n // ARIA Labels and Accessibility Props\n @Prop() ariaLabel: string | null = \"Search Field\"\n @Prop() ariaLabelledBy?: string | null;\n @Prop() ariaDescribedBy?: string | null;\n @Prop() deleteIconAriaLabel: string = 'Clear search';\n @Prop() historyDeleteAriaLabel: string = 'Remove from history';\n @Prop() dropdownAriaLabel: string = 'Search suggestions and history';\n @Prop() suggestionAriaLabel: string = 'Search suggestion';\n @Prop() historyItemAriaLabel: string = 'Search history item';\n\n @Event() ifxInput: EventEmitter<string>;\n @Event() ifxSuggestionRequested: EventEmitter<string>;\n @Event() ifxSuggestionSelected: EventEmitter<SuggestionItem>;\n @Event() ifxFocus: EventEmitter<void>;\n @Event() ifxBlur: EventEmitter<void>;\n\n @State() showDropdown: boolean = false;\n @State() filteredSuggestions: SuggestionItem[] = [];\n @State() selectedSuggestionIndex: number = -1;\n @State() searchHistory: string[] = [];\n\n @Prop() showDeleteIcon: boolean = false;\n @State() showDeleteIconInternalState: boolean = false;\n @Prop() disabled: boolean = false;\n @Prop() size: string = 'l';\n @State() isFocused: boolean = false;\n @Prop() placeholder: string = \"Search...\";\n @Prop() autocomplete: string = \"off\";\n @Prop() maxlength?: number = null;\n\n private focusEmitted: boolean = false;\n\n @Listen('mousedown', { target: 'document' })\n handleOutsideClick(event: MouseEvent) {\n const path = event.composedPath();\n if (!path.includes(this.inputElement) && !path.includes(this.dropdownElement)) {\n this.hideDropdown();\n }\n }\n\n @Listen('keydown')\n handleKeyDown(event: KeyboardEvent) {\n if (!this.showDropdown) return;\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n this.navigateSuggestions(1);\n break;\n case 'ArrowUp':\n event.preventDefault();\n this.navigateSuggestions(-1);\n break;\n case 'Enter':\n event.preventDefault();\n if (this.selectedSuggestionIndex >= 0) {\n this.selectSuggestion(this.filteredSuggestions[this.selectedSuggestionIndex]);\n } else {\n this.handleSearch();\n }\n break;\n case 'Escape':\n this.hideDropdown();\n break;\n }\n }\n\n @Watch('value')\n valueWatcher(newValue: string) {\n if (this.inputElement && newValue !== this.inputElement.value) {\n this.inputElement.value = newValue;\n }\n this.updateSuggestions();\n }\n\n @Watch('suggestions')\n suggestionsWatcher() {\n this.updateSuggestions();\n }\n\n\n handleInput = () => {\n const query = this.inputElement.value;\n this.value = query;\n this.ifxInput.emit(this.value);\n\n if (this.showSuggestions) {\n this.showDropdown = true;\n this.selectedSuggestionIndex = -1;\n this.requestSuggestions(query);\n }\n };\n\n handleDelete = () => {\n if(!this.disabled) { \n this.inputElement.value = '';\n this.value = \"\";\n this.ifxInput.emit(this.value);\n this.hideDropdown();\n }\n }\n\n handleSearch = () => {\n if (this.value.trim() && this.enableHistory) {\n // Only add to history if there are actual results\n if (this.filteredSuggestions.length > 0) {\n this.addToHistory(this.value);\n }\n }\n this.hideDropdown();\n }\n\n focusInput() {\n // Only emit focus event if it hasn't been emitted already\n if (!this.focusEmitted) {\n this.focusEmitted = true;\n this.isFocused = true;\n this.ifxFocus.emit();\n }\n\n if (this.showSuggestions) {\n // On focus without input: Show only history\n if (this.value.length === 0) {\n this.showHistoryDropdown();\n // Only show dropdown if history is actually present\n this.showDropdown = this.enableHistory && this.searchHistory.length > 0;\n } else {\n // With existing input: Normal suggestion logic\n this.updateSuggestions();\n this.showDropdown = this.filteredSuggestions.length > 0;\n }\n }\n }\n\n blurInput() {\n setTimeout(() => {\n this.isFocused = false;\n this.focusEmitted = false; // Reset focus flag when blur occurs\n this.ifxBlur.emit();\n }, 150);\n }\n\n // Public method to update history from external sources\n public loadSearchHistory() {\n if (this.enableHistory && typeof localStorage !== 'undefined') {\n const stored = localStorage.getItem(this.historyKey);\n this.searchHistory = stored ? JSON.parse(stored) : [];\n\n // Update suggestions when history is loaded\n this.updateSuggestions();\n\n // If no input and no history left, close dropdown\n if (this.value.length === 0 && this.searchHistory.length === 0) {\n this.showDropdown = false;\n }\n }\n }\n\n // Public method to completely clear history\n public clearSearchHistory() {\n if (this.enableHistory && typeof localStorage !== 'undefined') {\n // Clear from localStorage\n localStorage.removeItem(this.historyKey);\n\n // Clear internal history\n this.searchHistory = [];\n\n // Reset all dropdown-relevant states\n this.filteredSuggestions = [];\n this.selectedSuggestionIndex = -1;\n this.showDropdown = false;\n\n // Update suggestions after reset\n this.updateSuggestions();\n }\n }\n\n // Suggestion Management Methods\n private addToHistory(term: string) {\n if (!this.enableHistory || !term.trim()) return;\n\n const history = [...this.searchHistory];\n const existingIndex = history.indexOf(term);\n\n if (existingIndex > -1) {\n history.splice(existingIndex, 1);\n }\n\n history.unshift(term);\n // Limit history to maxHistoryItems (default 5)\n this.searchHistory = history.slice(0, this.maxHistoryItems);\n\n if (typeof localStorage !== 'undefined') {\n localStorage.setItem(this.historyKey, JSON.stringify(this.searchHistory));\n }\n }\n\n // Remove individual history entry\n private removeFromHistory(term: string) {\n if (!this.enableHistory) return;\n\n const history = [...this.searchHistory];\n const index = history.indexOf(term);\n\n if (index > -1) {\n history.splice(index, 1);\n this.searchHistory = history;\n\n // Update localStorage\n if (typeof localStorage !== 'undefined') {\n localStorage.setItem(this.historyKey, JSON.stringify(this.searchHistory));\n }\n\n // Update suggestions after removal\n this.updateSuggestions();\n\n // Close dropdown if no history remains\n if (this.searchHistory.length === 0 && this.value.length === 0) {\n this.showDropdown = false;\n }\n }\n }\n\n // Handle click on history delete button\n private handleHistoryDelete = (event: Event, term: string) => {\n event.stopPropagation(); // Prevent selection of the entry\n this.removeFromHistory(term);\n }\n\n private requestSuggestions(query: string) {\n this.ifxSuggestionRequested.emit(query);\n this.updateSuggestions();\n }\n\n private updateSuggestions() {\n const query = this.value.toLowerCase();\n let suggestions: SuggestionItem[] = [];\n\n if (query.length > 0) {\n // For text input: Mix external suggestions and relevant history\n\n // 1. Filter external suggestions\n if (this.suggestions && this.suggestions.length > 0) {\n const filteredExternal = this.suggestions.filter(s =>\n s.text.toLowerCase().includes(query)\n );\n suggestions = [...suggestions, ...filteredExternal];\n }\n\n // 2. Filter relevant history entries\n if (this.enableHistory && this.searchHistory.length > 0) {\n const filteredHistory = this.searchHistory\n .filter(term => term.toLowerCase().includes(query))\n .map((term, index) => ({\n id: `history-${index}`,\n text: term,\n type: 'history' as const\n }));\n suggestions = [...suggestions, ...filteredHistory];\n }\n\n // 3. Sort by relevance (exact matches first, then prefix matches)\n suggestions.sort((a, b) => {\n const aText = a.text.toLowerCase();\n const bText = b.text.toLowerCase();\n\n // Exact match has highest priority\n if (aText === query && bText !== query) return -1;\n if (bText === query && aText !== query) return 1;\n\n // Prefix match has second highest priority\n const aStartsWith = aText.startsWith(query);\n const bStartsWith = bText.startsWith(query);\n\n if (aStartsWith && !bStartsWith) return -1;\n if (bStartsWith && !aStartsWith) return 1;\n\n // With equal relevance: external suggestions before history\n if (a.type === 'suggestion' && b.type === 'history') return -1;\n if (a.type === 'history' && b.type === 'suggestion') return 1;\n\n // Alphabetical sorting as last criterion\n return aText.localeCompare(bText);\n });\n\n } else {\n // For empty query: Show only history (no external suggestions)\n if (this.enableHistory && this.searchHistory.length > 0) {\n const historySuggestions = this.searchHistory.map((term, index) => ({\n id: `history-${index}`,\n text: term,\n type: 'history' as const\n }));\n\n suggestions = historySuggestions;\n }\n // For empty query DO NOT show external suggestions\n }\n\n // Remove duplicates based on text and scope combination (history takes precedence over external)\n const uniqueSuggestions = suggestions.reduce((unique: SuggestionItem[], current) => {\n const existingIndex = unique.findIndex(item =>\n item.text.toLowerCase() === current.text.toLowerCase() &&\n item.scope === current.scope\n );\n if (existingIndex === -1) {\n unique.push(current);\n } else {\n // If already exists, prefer history over external suggestions\n if (current.type === 'history' && unique[existingIndex].type !== 'history') {\n unique[existingIndex] = current;\n }\n }\n return unique;\n }, []);\n\n this.filteredSuggestions = uniqueSuggestions.slice(0, this.maxSuggestions);\n this.selectedSuggestionIndex = -1;\n }\n\n private navigateSuggestions(direction: number) {\n const maxIndex = this.filteredSuggestions.length - 1;\n\n if (direction > 0) {\n this.selectedSuggestionIndex = this.selectedSuggestionIndex < maxIndex\n ? this.selectedSuggestionIndex + 1\n : 0;\n } else {\n this.selectedSuggestionIndex = this.selectedSuggestionIndex > 0\n ? this.selectedSuggestionIndex - 1\n : maxIndex;\n }\n }\n\n private selectSuggestion(suggestion: SuggestionItem) {\n this.value = suggestion.text;\n this.inputElement.value = suggestion.text;\n this.ifxSuggestionSelected.emit(suggestion);\n this.ifxInput.emit(this.value);\n\n if (this.enableHistory) {\n // Always add selected suggestions to history since they are valid results\n this.addToHistory(suggestion.text);\n }\n\n this.hideDropdown();\n }\n\n private hideDropdown() {\n this.showDropdown = false;\n this.selectedSuggestionIndex = -1;\n this.isFocused = false;\n }\n\n // Show only history in dropdown (e.g. on focus without input)\n private showHistoryDropdown() {\n if (this.enableHistory && this.searchHistory.length > 0) {\n // Show only history entries\n const historySuggestions = this.searchHistory.map((term, index) => ({\n id: `history-${index}`,\n text: term,\n type: 'history' as const\n }));\n\n this.filteredSuggestions = historySuggestions.slice(0, this.maxSuggestions);\n this.selectedSuggestionIndex = -1;\n } else {\n this.filteredSuggestions = [];\n }\n }\n\n // Check if only history entries are displayed (without text input)\n private isShowingOnlyHistory(): boolean {\n return this.value.length === 0 &&\n this.filteredSuggestions.length > 0 &&\n this.filteredSuggestions.every(s => s.type === 'history');\n }\n\n // Render text with highlighted matches\n private renderHighlightedText(text: string, query: string) {\n if (!query || query.length === 0) {\n return text;\n }\n\n const lowerText = text.toLowerCase();\n const lowerQuery = query.toLowerCase();\n const index = lowerText.indexOf(lowerQuery);\n\n if (index === -1) {\n return text;\n }\n\n const before = text.substring(0, index);\n const match = text.substring(index, index + query.length);\n const after = text.substring(index + query.length);\n\n return [\n before,\n <strong>{match}</strong>,\n after\n ];\n }\n\n componentWillLoad() {\n this.loadSearchHistory();\n }\n\n async componentDidLoad() { \n if(!isNestedInIfxComponent(this.el)) {\n const framework = detectFramework()\n trackComponent('ifx-search-field', await framework)\n }\n }\n\n componentWillUpdate() {\n if (this.value !== \"\") {\n this.showDeleteIconInternalState = true;\n } else this.showDeleteIconInternalState = false;\n }\n\n render() {\n return (\n <div\n aria-disabled={this.disabled}\n aria-value={this.value}\n class='search-field'\n >\n <div\n class={this.getWrapperClassNames()}\n tabindex={1}\n onClick={() => this.focusInput()}\n >\n <ifx-icon icon=\"search-16\" class=\"search-icon\"></ifx-icon>\n <input\n ref={(el) => (this.inputElement = el)}\n type=\"text\"\n autocomplete={this.autocomplete}\n onInput={() => this.handleInput()}\n onFocus={() => this.focusInput()}\n onBlur={() => this.blurInput()}\n placeholder={this.placeholder}\n disabled={this.disabled}\n maxlength={this.maxlength}\n value={this.value}\n role=\"combobox\"\n aria-controls={this.showDropdown ? 'suggestions-dropdown' : undefined}\n aria-expanded={this.showDropdown}\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n aria-label={this.ariaLabel}\n aria-labelledby={this.ariaLabelledBy}\n aria-describedby={this.ariaDescribedBy}\n aria-owns={this.showDropdown ? 'suggestions-dropdown' : undefined}\n aria-activedescendant={this.selectedSuggestionIndex >= 0 ? `suggestion-${this.selectedSuggestionIndex}` : undefined}\n />\n {this.showDeleteIcon && this.showDeleteIconInternalState ? (\n <ifx-icon\n icon=\"cRemove16\"\n class=\"delete-icon\"\n onClick={this.handleDelete}\n role=\"button\"\n tabindex=\"0\"\n aria-label={this.deleteIconAriaLabel}\n onKeyDown={(event) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.handleDelete();\n }\n }}>\n </ifx-icon>\n ) : null}\n </div>\n\n {/* Suggestions Dropdown */}\n {this.showDropdown && this.filteredSuggestions.length > 0 && (\n <div\n ref={(el) => (this.dropdownElement = el)}\n id=\"suggestions-dropdown\"\n class=\"suggestions-dropdown\"\n role=\"listbox\"\n aria-label={this.dropdownAriaLabel}\n >\n {/* History Header - only show when exclusively showing history entries */}\n {this.isShowingOnlyHistory() && (\n <div class=\"suggestions-header\">\n {this.historyHeaderText}\n </div>\n )}\n\n {this.filteredSuggestions.map((suggestion, index) => (\n <div\n key={suggestion.id}\n id={`suggestion-${index}`}\n class={this.getSuggestionClassNames(index)}\n role=\"option\"\n aria-selected={index === this.selectedSuggestionIndex}\n aria-label={`${suggestion.type === 'history' ? this.historyItemAriaLabel : this.suggestionAriaLabel}: ${suggestion.text}${suggestion.scope ? `, ${suggestion.scope}` : ''}${suggestion.resultCount ? `, ${suggestion.resultCount} results` : ''}`}\n onClick={() => this.selectSuggestion(suggestion)}\n onMouseEnter={() => this.selectedSuggestionIndex = index}\n >\n <div class=\"suggestion-content\">\n {suggestion.type === 'history' && (\n <ifx-icon icon=\"history-16\" class=\"suggestion-icon suggestion-icon--history\"></ifx-icon>\n )}\n {suggestion.type === 'suggestion' && (\n <ifx-icon icon=\"search-16\" class=\"suggestion-icon suggestion-icon--suggestion\"></ifx-icon>\n )}\n <span class=\"suggestion-text\">\n <span class=\"suggestion-main-text\">\n {this.renderHighlightedText(suggestion.text, this.value)}\n </span>\n {suggestion.scope && (\n <span class=\"suggestion-scope\">– {suggestion.scope}</span>\n )}\n </span>\n\n {suggestion.resultCount !== undefined && suggestion.scope && (\n <span class=\"suggestion-count\">{suggestion.resultCount}</span>\n )}\n\n {/* Delete Button only for history entries */}\n {suggestion.type === 'history' && (\n <ifx-icon\n icon=\"cross16\"\n class=\"suggestion-delete-icon\"\n role=\"button\"\n tabindex=\"0\"\n aria-label={`${this.historyDeleteAriaLabel}: ${suggestion.text}`}\n onClick={(event) => this.handleHistoryDelete(event, suggestion.text)}\n onKeyDown={(event) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.handleHistoryDelete(event, suggestion.text);\n }\n }}\n ></ifx-icon>\n )}\n </div>\n </div>\n ))}\n </div>\n )}\n </div>\n );\n }\n\n getSizeClass() {\n return `${this.size}` === \"s\"\n ? \"search-field__wrapper-s\"\n : \"\";\n }\n\n getWrapperClassNames() {\n return classNames(\n `search-field__wrapper`,\n `search-field__wrapper ${this.getSizeClass()}`,\n `${this.isFocused ? 'focused' : \"\"}`,\n `${this.showDropdown ? 'dropdown-open' : \"\"}`,\n `${this.disabled ? 'disabled' : \"\"}`\n );\n }\n\n getSuggestionClassNames(index: number) {\n return classNames(\n 'suggestion-item',\n {\n 'suggestion-item--selected': index === this.selectedSuggestionIndex,\n 'suggestion-item--history': this.filteredSuggestions[index]?.type === 'history'\n }\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{r as t,h as e,a}from"./p-PqnYwNKt.js";const i=':root{--ifx-font-family:"Source Sans 3", "Arial, sans-serif"}:host{pointer-events:none}.card__text-wrapper{padding-bottom:0px}.card__text-wrapper.hasBtn{padding-bottom:16px}.card-text{line-height:1.5rem;font-size:1rem;font-weight:400;white-space:wrap;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}';const r=class{constructor(e){t(this,e)}componentWillLoad(){const t=this.el.closest("ifx-card").querySelector("ifx-link");const e=this.el.closest("ifx-card").querySelector("ifx-button");if(t||e){this.hasBtn=true}}render(){return e("div",{key:"5a2aabfe888a3828a6017412ee91188efe4d64c2",class:`card__text-wrapper ${this.hasBtn?"hasBtn":""}`},e("div",{key:"39aa1e521652e4b323dd571614e297a5a600cfa9",class:`card-text`},e("slot",{key:"b72bc79a33bb48e96ae9f825dd48ca9b9b44725f"})))}get el(){return a(this)}};r.style=i;export{r as ifx_card_text};
2
+ //# sourceMappingURL=p-5367db9d.entry.js.map