@infineon/infineon-design-system-stencil 37.2.0--canary.1935.bcd753db2b5ee68950d2fca82ac243bd652f4fba.0 → 38.0.0--canary.1954.f29b2d8edb0fe3ea64fff93b4a103a880db2a074.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 (213) hide show
  1. package/dist/cjs/ifx-alert_2.cjs.entry.js +1 -1
  2. package/dist/cjs/ifx-basic-table.cjs.entry.js +1 -1
  3. package/dist/cjs/ifx-faq.cjs.entry.js +1 -1
  4. package/dist/cjs/ifx-filter-accordion.cjs.entry.js +2 -2
  5. package/dist/cjs/ifx-filter-bar.cjs.entry.js +1 -1
  6. package/dist/cjs/ifx-filter-search.cjs.entry.js +1 -1
  7. package/dist/cjs/ifx-filter-type-group.cjs.entry.js +1 -1
  8. package/dist/cjs/ifx-list-entry.cjs.entry.js +1 -1
  9. package/dist/cjs/ifx-multiselect_2.cjs.entry.js +4 -4
  10. package/dist/cjs/ifx-search-field.cjs.entry.js +349 -12
  11. package/dist/cjs/ifx-search-field.cjs.entry.js.map +1 -1
  12. package/dist/cjs/ifx-segment.cjs.entry.js +1 -1
  13. package/dist/cjs/ifx-segmented-control.cjs.entry.js +2 -2
  14. package/dist/cjs/ifx-select.cjs.entry.js +2 -2
  15. package/dist/cjs/ifx-slider.cjs.entry.js +2 -2
  16. package/dist/cjs/ifx-spinner_2.cjs.entry.js +6 -6
  17. package/dist/cjs/ifx-status.cjs.entry.js +1 -1
  18. package/dist/cjs/ifx-step.cjs.entry.js +4 -4
  19. package/dist/cjs/ifx-stepper.cjs.entry.js +2 -2
  20. package/dist/cjs/ifx-switch.cjs.entry.js +1 -1
  21. package/dist/cjs/ifx-tab.cjs.entry.js +1 -1
  22. package/dist/cjs/ifx-table.cjs.entry.js +2 -2
  23. package/dist/cjs/ifx-tabs.cjs.entry.js +2 -2
  24. package/dist/cjs/ifx-tag.cjs.entry.js +1 -1
  25. package/dist/cjs/ifx-templates-ui.cjs.entry.js +1 -1
  26. package/dist/cjs/ifx-textarea.cjs.entry.js +1 -1
  27. package/dist/cjs/ifx-tooltip.cjs.entry.js +4 -4
  28. package/dist/cjs/ifx-tree-view-item.cjs.entry.js +2 -2
  29. package/dist/cjs/ifx-tree-view.cjs.entry.js +1 -1
  30. package/dist/cjs/infineon-design-system-stencil.cjs.js +1 -1
  31. package/dist/cjs/loader.cjs.js +1 -1
  32. package/dist/collection/components/search-field/search-field.css +114 -0
  33. package/dist/collection/components/search-field/search-field.js +724 -17
  34. package/dist/collection/components/search-field/search-field.js.map +1 -1
  35. package/dist/collection/components/search-field/search-field.stories.js +378 -2
  36. package/dist/collection/components/search-field/search-field.stories.js.map +1 -1
  37. package/dist/collection/components/segmented-control/segment/segment.js +1 -1
  38. package/dist/collection/components/segmented-control/segmented-control.js +2 -2
  39. package/dist/collection/components/select/multi-select/multiselect-option.js +4 -4
  40. package/dist/collection/components/select/single-select/select.js +2 -2
  41. package/dist/collection/components/slider/slider.js +2 -2
  42. package/dist/collection/components/spinner/spinner.js +2 -2
  43. package/dist/collection/components/status/status.js +1 -1
  44. package/dist/collection/components/stepper/step/step.js +4 -4
  45. package/dist/collection/components/stepper/stepper.js +2 -2
  46. package/dist/collection/components/switch/switch.js +1 -1
  47. package/dist/collection/components/table-advanced-version/filter-bar/filter-bar.js +1 -1
  48. package/dist/collection/components/table-advanced-version/filter-type-group/filter-accordion/filter-accordion.js +2 -2
  49. package/dist/collection/components/table-advanced-version/filter-type-group/filter-search/filter-search.js +1 -1
  50. package/dist/collection/components/table-advanced-version/filter-type-group/filter-type-group.js +1 -1
  51. package/dist/collection/components/table-advanced-version/list/list-entry/list-entry.js +1 -1
  52. package/dist/collection/components/table-advanced-version/table.js +2 -2
  53. package/dist/collection/components/table-basic-version/table.js +1 -1
  54. package/dist/collection/components/tabs/tab.js +1 -1
  55. package/dist/collection/components/tabs/tabs.js +2 -2
  56. package/dist/collection/components/tag/tag.js +1 -1
  57. package/dist/collection/components/templates/template/template.js +1 -1
  58. package/dist/collection/components/templates/templates-ui/templates-ui.js +1 -1
  59. package/dist/collection/components/text-field/text-field.js +4 -4
  60. package/dist/collection/components/textarea/textarea.js +1 -1
  61. package/dist/collection/components/tooltip/tooltip.js +4 -4
  62. package/dist/collection/components/tree-view/tree-view-item.js +2 -2
  63. package/dist/collection/components/tree-view/tree-view.js +1 -1
  64. package/dist/collection/stories/setup-and-installation/faq/faq.js +1 -1
  65. package/dist/components/ifx-basic-table.js +1 -1
  66. package/dist/components/ifx-faq.js +1 -1
  67. package/dist/components/ifx-filter-accordion.js +2 -2
  68. package/dist/components/ifx-filter-bar.js +1 -1
  69. package/dist/components/ifx-filter-search.js +2 -2
  70. package/dist/components/ifx-filter-type-group.js +1 -1
  71. package/dist/components/ifx-icons-preview.js +1 -1
  72. package/dist/components/ifx-list-entry.js +1 -1
  73. package/dist/components/ifx-multiselect-option.js +1 -1
  74. package/dist/components/ifx-multiselect.js +1 -1
  75. package/dist/components/ifx-pagination.js +1 -1
  76. package/dist/components/ifx-search-bar.js +1 -1
  77. package/dist/components/ifx-search-field.js +1 -1
  78. package/dist/components/ifx-segment.js +1 -1
  79. package/dist/components/ifx-segmented-control.js +2 -2
  80. package/dist/components/ifx-select.js +1 -1
  81. package/dist/components/ifx-set-filter.js +5 -5
  82. package/dist/components/ifx-slider.js +2 -2
  83. package/dist/components/ifx-spinner.js +1 -1
  84. package/dist/components/ifx-status.js +1 -1
  85. package/dist/components/ifx-step.js +4 -4
  86. package/dist/components/ifx-stepper.js +2 -2
  87. package/dist/components/ifx-switch.js +1 -1
  88. package/dist/components/ifx-tab.js +1 -1
  89. package/dist/components/ifx-table.js +4 -4
  90. package/dist/components/ifx-tabs.js +2 -2
  91. package/dist/components/ifx-tag.js +1 -1
  92. package/dist/components/ifx-template.js +1 -1
  93. package/dist/components/ifx-templates-ui.js +4 -4
  94. package/dist/components/ifx-text-field.js +1 -1
  95. package/dist/components/ifx-textarea.js +1 -1
  96. package/dist/components/ifx-tooltip.js +4 -4
  97. package/dist/components/ifx-tree-view-item.js +2 -2
  98. package/dist/components/ifx-tree-view.js +1 -1
  99. package/dist/components/{p-31696649.js → p-0218abcd.js} +5 -5
  100. package/dist/components/{p-31696649.js.map → p-0218abcd.js.map} +1 -1
  101. package/dist/components/{p-6a9e1fb6.js → p-122e79fc.js} +3 -3
  102. package/dist/components/{p-6a9e1fb6.js.map → p-122e79fc.js.map} +1 -1
  103. package/dist/components/{p-da273970.js → p-43438af8.js} +4 -4
  104. package/dist/components/{p-da273970.js.map → p-43438af8.js.map} +1 -1
  105. package/dist/components/{p-bfc8b82f.js → p-5853a3c8.js} +2 -2
  106. package/dist/components/{p-bfc8b82f.js.map → p-5853a3c8.js.map} +1 -1
  107. package/dist/components/{p-cb92983f.js → p-96237222.js} +3 -3
  108. package/dist/components/{p-cb92983f.js.map → p-96237222.js.map} +1 -1
  109. package/dist/components/{p-8cbf32a7.js → p-c601034d.js} +2 -2
  110. package/dist/components/{p-8cbf32a7.js.map → p-c601034d.js.map} +1 -1
  111. package/dist/components/p-c7297dfd.js +471 -0
  112. package/dist/components/p-c7297dfd.js.map +1 -0
  113. package/dist/components/{p-c5f7a0e2.js → p-f9c7ad2e.js} +5 -5
  114. package/dist/components/{p-c5f7a0e2.js.map → p-f9c7ad2e.js.map} +1 -1
  115. package/dist/esm/ifx-alert_2.entry.js +1 -1
  116. package/dist/esm/ifx-basic-table.entry.js +1 -1
  117. package/dist/esm/ifx-faq.entry.js +1 -1
  118. package/dist/esm/ifx-filter-accordion.entry.js +2 -2
  119. package/dist/esm/ifx-filter-bar.entry.js +1 -1
  120. package/dist/esm/ifx-filter-search.entry.js +1 -1
  121. package/dist/esm/ifx-filter-type-group.entry.js +1 -1
  122. package/dist/esm/ifx-list-entry.entry.js +1 -1
  123. package/dist/esm/ifx-multiselect_2.entry.js +4 -4
  124. package/dist/esm/ifx-search-field.entry.js +349 -12
  125. package/dist/esm/ifx-search-field.entry.js.map +1 -1
  126. package/dist/esm/ifx-segment.entry.js +1 -1
  127. package/dist/esm/ifx-segmented-control.entry.js +2 -2
  128. package/dist/esm/ifx-select.entry.js +2 -2
  129. package/dist/esm/ifx-slider.entry.js +2 -2
  130. package/dist/esm/ifx-spinner_2.entry.js +6 -6
  131. package/dist/esm/ifx-status.entry.js +1 -1
  132. package/dist/esm/ifx-step.entry.js +4 -4
  133. package/dist/esm/ifx-stepper.entry.js +2 -2
  134. package/dist/esm/ifx-switch.entry.js +1 -1
  135. package/dist/esm/ifx-tab.entry.js +1 -1
  136. package/dist/esm/ifx-table.entry.js +2 -2
  137. package/dist/esm/ifx-tabs.entry.js +2 -2
  138. package/dist/esm/ifx-tag.entry.js +1 -1
  139. package/dist/esm/ifx-templates-ui.entry.js +1 -1
  140. package/dist/esm/ifx-textarea.entry.js +1 -1
  141. package/dist/esm/ifx-tooltip.entry.js +4 -4
  142. package/dist/esm/ifx-tree-view-item.entry.js +2 -2
  143. package/dist/esm/ifx-tree-view.entry.js +1 -1
  144. package/dist/esm/infineon-design-system-stencil.js +1 -1
  145. package/dist/esm/loader.js +1 -1
  146. package/dist/infineon-design-system-stencil/infineon-design-system-stencil.esm.js +1 -1
  147. package/dist/infineon-design-system-stencil/infineon-design-system-stencil.esm.js.map +1 -1
  148. package/dist/infineon-design-system-stencil/{p-7adee2dd.entry.js → p-0cbdafca.entry.js} +2 -2
  149. package/dist/infineon-design-system-stencil/{p-2d7159a9.entry.js → p-10ef115a.entry.js} +2 -2
  150. package/dist/infineon-design-system-stencil/{p-f544fb03.entry.js → p-1e7646b7.entry.js} +2 -2
  151. package/dist/infineon-design-system-stencil/{p-0c1c831c.entry.js → p-253ea47f.entry.js} +2 -2
  152. package/dist/infineon-design-system-stencil/{p-09a8d63d.entry.js → p-273a91b3.entry.js} +2 -2
  153. package/dist/infineon-design-system-stencil/{p-3d037fa4.entry.js → p-33b46161.entry.js} +2 -2
  154. package/dist/infineon-design-system-stencil/{p-a2a44fbe.entry.js → p-37be5d65.entry.js} +2 -2
  155. package/dist/infineon-design-system-stencil/{p-18a81f5f.entry.js → p-3bce1f22.entry.js} +2 -2
  156. package/dist/infineon-design-system-stencil/{p-e5091718.entry.js → p-3dd8bdf4.entry.js} +2 -2
  157. package/dist/infineon-design-system-stencil/{p-6c2698a3.entry.js → p-6ec8258a.entry.js} +2 -2
  158. package/dist/infineon-design-system-stencil/{p-71e34467.entry.js → p-706a8ead.entry.js} +2 -2
  159. package/dist/infineon-design-system-stencil/p-7705c159.entry.js +2 -0
  160. package/dist/infineon-design-system-stencil/{p-1e0d789f.entry.js → p-8e838717.entry.js} +2 -2
  161. package/dist/infineon-design-system-stencil/{p-4eda4ef3.entry.js → p-8eab207b.entry.js} +2 -2
  162. package/dist/infineon-design-system-stencil/{p-8ecae73b.entry.js → p-9be0905e.entry.js} +2 -2
  163. package/dist/infineon-design-system-stencil/{p-90efbef9.entry.js → p-9cfe025d.entry.js} +2 -2
  164. package/dist/infineon-design-system-stencil/{p-bca4f6c8.entry.js → p-b393c1e7.entry.js} +2 -2
  165. package/dist/infineon-design-system-stencil/p-b83380f8.entry.js +2 -0
  166. package/dist/infineon-design-system-stencil/{p-e172e81c.entry.js.map → p-b83380f8.entry.js.map} +1 -1
  167. package/dist/infineon-design-system-stencil/{p-04d8ea38.entry.js → p-caef0e47.entry.js} +2 -2
  168. package/dist/infineon-design-system-stencil/{p-36dcebde.entry.js → p-d3d6a562.entry.js} +2 -2
  169. package/dist/infineon-design-system-stencil/p-d4b4107a.entry.js +2 -0
  170. package/dist/infineon-design-system-stencil/p-d4b4107a.entry.js.map +1 -0
  171. package/dist/infineon-design-system-stencil/{p-c36df3ce.entry.js → p-d660ebea.entry.js} +2 -2
  172. package/dist/infineon-design-system-stencil/{p-59c3ac10.entry.js → p-d8a57524.entry.js} +2 -2
  173. package/dist/infineon-design-system-stencil/{p-84d4d6a1.entry.js → p-e196740d.entry.js} +2 -2
  174. package/dist/infineon-design-system-stencil/{p-2e931b0d.entry.js → p-e45d85fc.entry.js} +2 -2
  175. package/dist/infineon-design-system-stencil/{p-437973f5.entry.js → p-e61d3fc6.entry.js} +2 -2
  176. package/dist/infineon-design-system-stencil/{p-c7e86c7c.entry.js → p-ed30fb98.entry.js} +2 -2
  177. package/dist/infineon-design-system-stencil/{p-05d9aa1f.entry.js → p-f84af2e3.entry.js} +2 -2
  178. package/dist/types/components/search-field/search-field.d.ts +53 -2
  179. package/dist/types/components/search-field/search-field.stories.d.ts +191 -0
  180. package/dist/types/components.d.ts +42 -2
  181. package/package.json +1 -1
  182. package/dist/components/p-c6e5f94d.js +0 -115
  183. package/dist/components/p-c6e5f94d.js.map +0 -1
  184. package/dist/infineon-design-system-stencil/p-c164c83b.entry.js +0 -2
  185. package/dist/infineon-design-system-stencil/p-c164c83b.entry.js.map +0 -1
  186. package/dist/infineon-design-system-stencil/p-e172e81c.entry.js +0 -2
  187. package/dist/infineon-design-system-stencil/p-e571c002.entry.js +0 -2
  188. /package/dist/infineon-design-system-stencil/{p-7adee2dd.entry.js.map → p-0cbdafca.entry.js.map} +0 -0
  189. /package/dist/infineon-design-system-stencil/{p-2d7159a9.entry.js.map → p-10ef115a.entry.js.map} +0 -0
  190. /package/dist/infineon-design-system-stencil/{p-f544fb03.entry.js.map → p-1e7646b7.entry.js.map} +0 -0
  191. /package/dist/infineon-design-system-stencil/{p-0c1c831c.entry.js.map → p-253ea47f.entry.js.map} +0 -0
  192. /package/dist/infineon-design-system-stencil/{p-09a8d63d.entry.js.map → p-273a91b3.entry.js.map} +0 -0
  193. /package/dist/infineon-design-system-stencil/{p-3d037fa4.entry.js.map → p-33b46161.entry.js.map} +0 -0
  194. /package/dist/infineon-design-system-stencil/{p-a2a44fbe.entry.js.map → p-37be5d65.entry.js.map} +0 -0
  195. /package/dist/infineon-design-system-stencil/{p-18a81f5f.entry.js.map → p-3bce1f22.entry.js.map} +0 -0
  196. /package/dist/infineon-design-system-stencil/{p-e5091718.entry.js.map → p-3dd8bdf4.entry.js.map} +0 -0
  197. /package/dist/infineon-design-system-stencil/{p-6c2698a3.entry.js.map → p-6ec8258a.entry.js.map} +0 -0
  198. /package/dist/infineon-design-system-stencil/{p-71e34467.entry.js.map → p-706a8ead.entry.js.map} +0 -0
  199. /package/dist/infineon-design-system-stencil/{p-e571c002.entry.js.map → p-7705c159.entry.js.map} +0 -0
  200. /package/dist/infineon-design-system-stencil/{p-1e0d789f.entry.js.map → p-8e838717.entry.js.map} +0 -0
  201. /package/dist/infineon-design-system-stencil/{p-4eda4ef3.entry.js.map → p-8eab207b.entry.js.map} +0 -0
  202. /package/dist/infineon-design-system-stencil/{p-8ecae73b.entry.js.map → p-9be0905e.entry.js.map} +0 -0
  203. /package/dist/infineon-design-system-stencil/{p-90efbef9.entry.js.map → p-9cfe025d.entry.js.map} +0 -0
  204. /package/dist/infineon-design-system-stencil/{p-bca4f6c8.entry.js.map → p-b393c1e7.entry.js.map} +0 -0
  205. /package/dist/infineon-design-system-stencil/{p-04d8ea38.entry.js.map → p-caef0e47.entry.js.map} +0 -0
  206. /package/dist/infineon-design-system-stencil/{p-36dcebde.entry.js.map → p-d3d6a562.entry.js.map} +0 -0
  207. /package/dist/infineon-design-system-stencil/{p-c36df3ce.entry.js.map → p-d660ebea.entry.js.map} +0 -0
  208. /package/dist/infineon-design-system-stencil/{p-59c3ac10.entry.js.map → p-d8a57524.entry.js.map} +0 -0
  209. /package/dist/infineon-design-system-stencil/{p-84d4d6a1.entry.js.map → p-e196740d.entry.js.map} +0 -0
  210. /package/dist/infineon-design-system-stencil/{p-2e931b0d.entry.js.map → p-e45d85fc.entry.js.map} +0 -0
  211. /package/dist/infineon-design-system-stencil/{p-437973f5.entry.js.map → p-e61d3fc6.entry.js.map} +0 -0
  212. /package/dist/infineon-design-system-stencil/{p-c7e86c7c.entry.js.map → p-ed30fb98.entry.js.map} +0 -0
  213. /package/dist/infineon-design-system-stencil/{p-05d9aa1f.entry.js.map → p-f84af2e3.entry.js.map} +0 -0
@@ -183,7 +183,7 @@ const Template = class {
183
183
  }
184
184
  }
185
185
  render() {
186
- return (index.h("div", { key: 'a6433871f9175e0616c40389d0a39a94797d67b3' }, this.isTemplatePage
186
+ return (index.h("div", { key: '1de8086432131979b1290ea28de6027cf52aa043' }, this.isTemplatePage
187
187
  ?
188
188
  index.h("div", { class: "template__page-wrapper" }, !this.repoUrl && !this.repoError &&
189
189
  index.h("div", null, index.h("h3", null, "Your repository is getting ready.."), index.h("p", null, "This will only take a minute.")), this.isLoading && !this.repoError && index.h("div", null, index.h("ifx-spinner", { variant: 'default', size: 's' })), this.repoUrl && index.h("ifx-link", { href: this.repoUrl, target: "_parent", size: "m", variant: "underlined" }, "Your repository"), this.repoError && index.h("div", null, this.repoError))
@@ -188,7 +188,7 @@ const Table = class {
188
188
  return {};
189
189
  }
190
190
  render() {
191
- return (index.h(index.Host, { key: '1489931c812b8298a30ef4f4d44f1843f4a2a537' }, index.h("div", { key: '1fa194a0581fd3cdd0cf871a09e18a4e299dd4d5', id: "table-wrapper", class: this.getClassNames() }, index.h("div", { key: 'b3ce77a78604dcfae0eea40950b0430bf576c42b', id: `ifxTable-${this.uniqueKey}`, class: `ifx-ag-grid ${this.variant === 'zebra' ? 'zebra' : ""}`, style: this.getTableStyle(), ref: (el) => (this.container = el) }))));
191
+ return (index.h(index.Host, { key: 'a6c385558fc5e2fc6d540b4e9973f4381a7dbd89' }, index.h("div", { key: '663ceb67d92453698c4a7ebc1a5b58de46acb6c9', id: "table-wrapper", class: this.getClassNames() }, index.h("div", { key: '3cf5947c50139e77084aa1a990989a901753067c', id: `ifxTable-${this.uniqueKey}`, class: `ifx-ag-grid ${this.variant === 'zebra' ? 'zebra' : ""}`, style: this.getTableStyle(), ref: (el) => (this.container = el) }))));
192
192
  }
193
193
  get host() { return index.getElement(this); }
194
194
  };
@@ -12,7 +12,7 @@ const Faq = class {
12
12
  index.registerInstance(this, hostRef);
13
13
  }
14
14
  render() {
15
- return (index.h("div", { key: 'fa2142cca68e60417092d614cb11367974b407f3', class: 'container' }, index.h("ifx-accordion", { key: '3abf4ca4138b9b177c6c21dbcdf5b84452d8de34' }, index.h("ifx-accordion-item", { key: 'fe98e253e30e79d0adb3dc2a1aad25d0aeb64250', caption: "What is the Infineon DDS?" }, "The Infineon Digital Design System consists of code components, design principles, tools and guidelines as well as a dedicated interdisciplinary team. Its purpose is to support internal and external colleagues create digital user interfaces with a high level of usability as well as a consistent expression of the Infineon brand. The DDS does not focus on the content of a web application but it describes how the design of the application\u2019s structure should be."), index.h("ifx-accordion-item", { key: '6397a595ea17aeb437fabec2cc15bb56faade295', caption: "How do I get access to the DDS?" }, "You can use the provided Figma file as a foundation for mockups and prototypes, use Storybook to view what UI components and variants are available and use code components provided via Storybook or Github."), index.h("ifx-accordion-item", { key: '2429a303ad7938271651286232f8a1489d0df958', caption: "Can I integrate the Infineon DDS into my project?" }, "Yes, you can. We are happy to discuss with you which point in time and which scope of integration is bestsuited for updating your interface to the Infineon DDS. (To avoid that users get confused by a mixture of UI components, we recommend choosing larger updates or technology changes as opportunity to integrate the Infineon DDS.)"), index.h("ifx-accordion-item", { key: '2fc8ae1d8a7bb66bb99c09f25b7f25a329817a94', caption: "Are Infineon DDS components accessable?" }, "We have taken WCAG 2.0 Level AA as baseline level for all design decisions inside the Infineon Digital Design System. To make an online experience truly accessible you have to implement the specific code, content, and visual design according to the accessibility standard. Find an introduction to this topic here."), index.h("ifx-accordion-item", { key: '23c340c8cf0c8356a1dfd180050c1e92c7aadcec', caption: "How to request a new component?" }, "Please contact us like described in the contribution section! We are planning to expand the number of components continually. If your component is also usable for multiple other projects, there is a good chance we might work together with you."))));
15
+ return (index.h("div", { key: 'd65665af11d77f22eba694be830c0d2cbd1c2aed', class: 'container' }, index.h("ifx-accordion", { key: '21a6945e8e2989152d4ae3b525d0b03100289a53' }, index.h("ifx-accordion-item", { key: '6a17004a92a541a569d0a0fcfc99ab3b036e0321', caption: "What is the Infineon DDS?" }, "The Infineon Digital Design System consists of code components, design principles, tools and guidelines as well as a dedicated interdisciplinary team. Its purpose is to support internal and external colleagues create digital user interfaces with a high level of usability as well as a consistent expression of the Infineon brand. The DDS does not focus on the content of a web application but it describes how the design of the application\u2019s structure should be."), index.h("ifx-accordion-item", { key: '173ea57ea7fb62173945b1c8c804e2472f174f34', caption: "How do I get access to the DDS?" }, "You can use the provided Figma file as a foundation for mockups and prototypes, use Storybook to view what UI components and variants are available and use code components provided via Storybook or Github."), index.h("ifx-accordion-item", { key: '7344d949d820868fee6ab85b8197fdde1b4574c7', caption: "Can I integrate the Infineon DDS into my project?" }, "Yes, you can. We are happy to discuss with you which point in time and which scope of integration is bestsuited for updating your interface to the Infineon DDS. (To avoid that users get confused by a mixture of UI components, we recommend choosing larger updates or technology changes as opportunity to integrate the Infineon DDS.)"), index.h("ifx-accordion-item", { key: '6f242e7e3a4116bdf122905becd07fc8f8f4cd22', caption: "Are Infineon DDS components accessable?" }, "We have taken WCAG 2.0 Level AA as baseline level for all design decisions inside the Infineon Digital Design System. To make an online experience truly accessible you have to implement the specific code, content, and visual design according to the accessibility standard. Find an introduction to this topic here."), index.h("ifx-accordion-item", { key: '1dd2fe2389021540de4d1ded1f66003592644a1d', caption: "How to request a new component?" }, "Please contact us like described in the contribution section! We are planning to expand the number of components continually. If your component is also usable for multiple other projects, there is a good chance we might work together with you."))));
16
16
  }
17
17
  };
18
18
  Faq.style = IfxFaqStyle0;
@@ -53,8 +53,8 @@ const FilterAccordion = class {
53
53
  this.el.removeEventListener('ifxListUpdate', this.handleCheckedChange);
54
54
  }
55
55
  render() {
56
- return (index.h("div", { key: '558e64611cf0084dd56486b67b028978be06e279', class: `accordion ${this.expanded ? 'expanded' : ''}` }, index.h("div", { key: '1a367b0dedd7df65a29b0019768b89ddf60de767', class: `header ${this.expanded ? 'expanded' : ''}`, onClick: this.toggleAccordion }, index.h("div", { key: 'f920f8151fb45340d509bdcc7c0f7581d09bf0b9', class: `text-and-icon ${this.expanded ? 'expanded' : ''}` }, index.h("div", { key: '2e116feece138ad8c768c5da4bfd78992d5d3a23', class: "text" }, index.h("span", { key: '509dfead8b2d73932db222dcb20d98131834b6b6' }, this.filterGroupName), index.h("ifx-indicator", { key: '75bbde2dbd115e744db2a5cca0c2b362e67e0fb8', variant: 'number', number: this.count })), index.h("ifx-icon", { key: '0132b2973bc3c12bb296528a86af2adeab7868f8', class: this.expanded ? '' : 'hidden', icon: "minus-16", onClick: this.toggleAccordion }), index.h("ifx-icon", { key: 'a10114bfc855eab89923e29702014e894bb23788', class: this.expanded ? 'hidden' : '', icon: "plus-16", onClick: this.toggleAccordion }))), this.expanded &&
57
- index.h("div", { key: '235c0fdf9082d73a57dbff0ed468cf519a467c44', class: "filter-accordion-container" }, index.h("slot", { key: '129a804487fe1c42b35907a3d5288e65ad7dfa61', name: "list" }))));
56
+ return (index.h("div", { key: '3d0fd2cc850927fc6cc458867b049a582f47a0f5', class: `accordion ${this.expanded ? 'expanded' : ''}` }, index.h("div", { key: '0bc0dafdcfd874ae01fd7bb8446036ad34c07603', class: `header ${this.expanded ? 'expanded' : ''}`, onClick: this.toggleAccordion }, index.h("div", { key: '5b8a0a61ca1b4b5c640933b7e81e6c5f3f406ba1', class: `text-and-icon ${this.expanded ? 'expanded' : ''}` }, index.h("div", { key: '16e29f1f8ca7870e1e62cd5bcd56766a8a6ac512', class: "text" }, index.h("span", { key: '69687b082848bebb93647219eb8c1908b21d2c03' }, this.filterGroupName), index.h("ifx-indicator", { key: 'ede8211d6cee49e3a5af93e377b05863b324ab52', variant: 'number', number: this.count })), index.h("ifx-icon", { key: '27394e246008a8cefc69782b50885973cb548ce6', class: this.expanded ? '' : 'hidden', icon: "minus-16", onClick: this.toggleAccordion }), index.h("ifx-icon", { key: 'c517b29a5a66c8747a724af163ca761d3a7e11d9', class: this.expanded ? 'hidden' : '', icon: "plus-16", onClick: this.toggleAccordion }))), this.expanded &&
57
+ index.h("div", { key: '289e7251b83c88a26445be01f22575c85c5689e3', class: "filter-accordion-container" }, index.h("slot", { key: 'd63dbb79d3676b8881afaa318b6d642563935baa', name: "list" }))));
58
58
  }
59
59
  get el() { return index.getElement(this); }
60
60
  };
@@ -97,7 +97,7 @@ const FilterBar = class {
97
97
  // Calculate slotsToShow safely
98
98
  const slotsToShow = Math.min(safeVisibleSlots, actualNumberOfComponents, Number.MAX_SAFE_INTEGER);
99
99
  const slots = Array.from({ length: slotsToShow }, (_, i) => (index.h("div", { class: "filter-slot-wrapper" }, index.h("slot", { name: `filter-component-${i + 1}` }))));
100
- return (index.h(index.Host, { key: '883d2316936a342059ab9009149ac8ce2ed877b2' }, index.h("div", { key: '24e0f7e2dde9ff7ddccf19e03e075b24807ec9d4', class: "search-container" }, index.h("slot", { key: '10bcfd474cfd9286d3e57e19d110bea6311c4297', name: "filter-search" }), " "), index.h("div", { key: '3aa8a6c4fb666ff47c7868333c2c494d6cb7bd90', class: "components-container" }, slots.length > 0 ? slots : index.h("slot", { name: "filter-component" }), this.showMoreFiltersButton && !this.showAllFilters && (index.h("div", { key: '1b87cf569495c351b639bc88d714dd195bd943b0', class: "more-filters-wrapper", onClick: this.handleMoreFiltersClick }, index.h("ifx-button", { key: '9f8073be95597553d1aa4eaccd19fc534ce3f9c6', type: "button", disabled: false, variant: "tertiary", size: "m", target: "_blank", theme: "default", "full-width": "false" }, index.h("ifx-icon", { key: '157558f67217a770963b16ca3f6b3a5cc8ed191c', icon: "filter-16" }), "More filters"))))));
100
+ return (index.h(index.Host, { key: '390d4edb8b2681c33017c1245d3b47c254086065' }, index.h("div", { key: '631db42c0db2e69c53a35a3a4878863215466783', class: "search-container" }, index.h("slot", { key: 'd3b7e942185a37da9af701ede28b22aabca08812', name: "filter-search" }), " "), index.h("div", { key: '599234808c4076a085f19bbe489a5a6746bfcda9', class: "components-container" }, slots.length > 0 ? slots : index.h("slot", { name: "filter-component" }), this.showMoreFiltersButton && !this.showAllFilters && (index.h("div", { key: '6ceade00712115f448158081ad7ec082d9c6c416', class: "more-filters-wrapper", onClick: this.handleMoreFiltersClick }, index.h("ifx-button", { key: 'd1dbd53565e30c526e75ceebff18ecaf9355997a', type: "button", disabled: false, variant: "tertiary", size: "m", target: "_blank", theme: "default", "full-width": "false" }, index.h("ifx-icon", { key: '43ec4bbcd0ac7b76534aafe26af8b330627d2f32', icon: "filter-16" }), "More filters"))))));
101
101
  }
102
102
  get el() { return index.getElement(this); }
103
103
  };
@@ -33,7 +33,7 @@ const FilterSearch = class {
33
33
  this.ifxFilterSearchChange.emit({ filterName: this.filterName, filterValue: this.filterValue, filterKey: this.filterKey }); // Emitting filterKey along with other properties
34
34
  }
35
35
  render() {
36
- return (index.h("div", { key: '0faa67e585464ac86a1163626e3d85340d4781fb', class: `${this.filterOrientation === 'sidebar' ? 'sidebar-filter-search-wrapper' : 'topbar-filter-search-wrapper'}` }, index.h("div", { key: '7bdb336d4e79fe38eee59f4e41ac44e62051b515', class: "filter-name" }, this.filterName), index.h("ifx-search-field", { key: '08613ab1e040959373722caffaee5dcf71b62add', placeholder: this.placeholder, "show-delete-icon": this.showDeleteIcon, disabled: this.disabled, value: this.filterValue })));
36
+ return (index.h("div", { key: '3e287efc07bf8225fe661ae9551c8cc2e980e622', class: `${this.filterOrientation === 'sidebar' ? 'sidebar-filter-search-wrapper' : 'topbar-filter-search-wrapper'}` }, index.h("div", { key: '3b9a27b4e94843db8109028fb6a3ba849c4cf206', class: "filter-name" }, this.filterName), index.h("ifx-search-field", { key: '62cd45208bfe565cc2f903c361ced6fa02499942', placeholder: this.placeholder, "show-delete-icon": this.showDeleteIcon, disabled: this.disabled, value: this.filterValue })));
37
37
  }
38
38
  get host() { return index.getElement(this); }
39
39
  static get watchers() { return {
@@ -129,7 +129,7 @@ const IfxFilterTypeGroup = class {
129
129
  window.removeEventListener('ifxResetFiltersEvent', this.handleResetEvent);
130
130
  }
131
131
  render() {
132
- return (index.h(index.Host, { key: 'c9833666ea9bcb00708bd0dab1cd9680e08ed114' }, index.h("div", { key: '0ee50ec91a5f1c3bd35899082de4d8f53a40b23e', class: "filter-type-group" }, index.h("slot", { key: 'f7f4982f39e972d38fb937b88d02bec40513e78c', name: "filter-search" }), index.h("slot", { key: '25cc8aea032f31c64bd2b164b39af263cf8fb107', name: "filter-accordion" }))));
132
+ return (index.h(index.Host, { key: '1d0bf0c68fb42e0394e0aa9bb5e66660d3ef5cda' }, index.h("div", { key: '215cd4cb99b4200d6a37c73267658f5dea619fff', class: "filter-type-group" }, index.h("slot", { key: 'e3a96b1a72ae653d2bcd51faf9c3a297bc541de3', name: "filter-search" }), index.h("slot", { key: '828ff0797c6f7ae7b3d6a2b6b0cdbde982b95cb1', name: "filter-accordion" }))));
133
133
  }
134
134
  get el() { return index.getElement(this); }
135
135
  };
@@ -25,7 +25,7 @@ const ListEntry = class {
25
25
  this.ifxListEntryChange.emit({ label: this.label, value: this.value, type: this.type });
26
26
  }
27
27
  render() {
28
- return (index.h("div", { key: 'a58d668dc36cb7221f28563b1ed00a041618765a', class: "wrapper" }, this.type === 'checkbox' ? (index.h("div", { class: "list-entry" }, index.h("ifx-checkbox", { size: "s", checked: this.value }, this.label))) : (index.h("div", { class: "list-entry" }, index.h("ifx-radio-button", { size: "s", checked: this.value }, this.label)))));
28
+ return (index.h("div", { key: 'a78a3927f090f95f0e4a75a6f2c44200b91370a2', class: "wrapper" }, this.type === 'checkbox' ? (index.h("div", { class: "list-entry" }, index.h("ifx-checkbox", { size: "s", checked: this.value }, this.label))) : (index.h("div", { class: "list-entry" }, index.h("ifx-radio-button", { size: "s", checked: this.value }, this.label)))));
29
29
  }
30
30
  get host() { return index.getElement(this); }
31
31
  static get watchers() { return {
@@ -904,25 +904,25 @@ const MultiselectOption = class {
904
904
  const additionalPadding = this.hasChildren ? 0 : 28;
905
905
  let totalPadding = basePadding + additionalPadding;
906
906
  const optionItemStyle = isFlatMultiselect ? undefined : { paddingLeft: `${totalPadding}px` };
907
- return (index.h(index.Host, { key: 'f836f58884e2e57c4c5fb4953f10d5ff4a34c8da' }, index.h("div", { key: '9eca6e87bb3c21512a051596b1e92931b707e88f', class: {
907
+ return (index.h(index.Host, { key: '53ab714e5bc86c83569b2c1cf6f479405f528880' }, index.h("div", { key: 'b5597349b4d3ef268b5826047f414dd7ce0c7854', class: {
908
908
  'option': true,
909
909
  'option--has-children': this.hasChildren,
910
910
  'option--expanded': this.isExpanded,
911
911
  'option--disabled': this.disabled,
912
912
  'option--selected': this.selected,
913
- }, role: "option", "aria-expanded": this.hasChildren ? (this.isExpanded ? 'true' : 'false') : undefined, "aria-selected": this.selected ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false', "data-level": this.depth, "data-value": this.value }, index.h("div", { key: '41d24ef38470f5f7f8aa36daa33b339b7d8079f3', class: "option-item", style: optionItemStyle }, index.h("div", { key: '27d33336e7d15ccce1703429b70494fe86808214', class: "chevron-wrapper", tabIndex: this.hasChildren ? 0 : -1, role: this.hasChildren ? "button" : undefined, "aria-label": this.hasChildren ? (this.isExpanded ? "Collapse" : "Expand") : undefined, onClick: (e) => { e.stopPropagation(); this.toggleExpansion(); }, onKeyDown: (e) => {
913
+ }, role: "option", "aria-expanded": this.hasChildren ? (this.isExpanded ? 'true' : 'false') : undefined, "aria-selected": this.selected ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false', "data-level": this.depth, "data-value": this.value }, index.h("div", { key: '3052a22b111e61ac0e48ecd64460c35aa2b06fea', class: "option-item", style: optionItemStyle }, index.h("div", { key: 'a392db43dbb81f06a4cfd4e5faad7672108bc4bb', class: "chevron-wrapper", tabIndex: this.hasChildren ? 0 : -1, role: this.hasChildren ? "button" : undefined, "aria-label": this.hasChildren ? (this.isExpanded ? "Collapse" : "Expand") : undefined, onClick: (e) => { e.stopPropagation(); this.toggleExpansion(); }, onKeyDown: (e) => {
914
914
  if (e.key === 'Enter' || e.key === ' ') {
915
915
  e.preventDefault();
916
916
  e.stopPropagation();
917
917
  this.toggleExpansion();
918
918
  }
919
- } }, this.hasChildren && (index.h("ifx-icon", { key: '68e975b49b4aa9edf564b80644c5a55809185629', class: `chevron ${this.isExpanded ? 'chevron--expanded' : 'chevron--collapsed'}`, icon: "chevron-right-16" }))), index.h("div", { key: 'f651aefe4cc30db6056331ffaafd8e6ea17039fc', class: "checkbox-wrapper", onClick: (e) => e.stopPropagation() }, index.h("ifx-checkbox", { key: 'e8cb2c7a75921a81e0321ff22718d9373cb6f437', size: 's', checked: (this.isSearchActive && this.isSearchDisabled) ? false : (this.indeterminate ? false : this.selected), indeterminate: (this.isSearchActive && this.isSearchDisabled) ? false : this.indeterminate, onClick: this.handleCheckboxClick, disabled: this.disabled || (this.isSearchActive && this.isSearchDisabled), onKeyDown: (e) => {
919
+ } }, this.hasChildren && (index.h("ifx-icon", { key: '033471dbc46d73d82f0ab44a07a1dfa5fd9625fb', class: `chevron ${this.isExpanded ? 'chevron--expanded' : 'chevron--collapsed'}`, icon: "chevron-right-16" }))), index.h("div", { key: 'd6fc07097a390e9e29f8c4dcc55c90f755b10fc9', class: "checkbox-wrapper", onClick: (e) => e.stopPropagation() }, index.h("ifx-checkbox", { key: '7d39f30d45c2f917edd924b3b8ce6c22f4146c19', size: 's', checked: (this.isSearchActive && this.isSearchDisabled) ? false : (this.indeterminate ? false : this.selected), indeterminate: (this.isSearchActive && this.isSearchDisabled) ? false : this.indeterminate, onClick: this.handleCheckboxClick, disabled: this.disabled || (this.isSearchActive && this.isSearchDisabled), onKeyDown: (e) => {
920
920
  if (e.key === 'Enter' || e.key === ' ') {
921
921
  e.preventDefault();
922
922
  e.stopPropagation();
923
923
  this.handleCheckboxClick(e);
924
924
  }
925
- } })), index.h("div", { key: '4f626380753927d4bedca0f78643e6647eff6356', class: "option-label", onClick: this.handleHeaderClick, tabIndex: -1 }, index.h("slot", { key: '8207d9f952bff231fda0bf0be43e1c567aa6a6da' }))), this.isExpanded && index.h("div", { key: '930d611f27451ff393d1403386bb6cd6b4a54980', class: "option-children" }, index.h("slot", { key: '269eb6381257f82b74b888188646559e6881a9d9', name: "children" })))));
925
+ } })), index.h("div", { key: 'e09de6a2559a8334553abb9d45b901c1459a2da7', class: "option-label", onClick: this.handleHeaderClick, tabIndex: -1 }, index.h("slot", { key: '941edb6987ef6add787211833e0e1aad0d5b9066' }))), this.isExpanded && index.h("div", { key: 'b5248d64937e418587f1c807e434874be4952f48', class: "option-children" }, index.h("slot", { key: '8e6e69e5000661632c114279a5afc5c80f361b8e', name: "children" })))));
926
926
  }
927
927
  get el() { return index.getElement(this); }
928
928
  };
@@ -7,48 +7,367 @@ const tracking = require('./tracking-f00364dc.js');
7
7
  const domUtils = require('./dom-utils-2c4573c2.js');
8
8
  const index$1 = require('./index-5b0b9d4c.js');
9
9
 
10
- const searchFieldCss = ":root{--ifx-font-family:\"Source Sans 3\", \"Arial, sans-serif\"}:host{display:flex}.search-field{box-sizing:border-box;background-color:#FFFFFF;width:100%;font-family:var(--ifx-font-family)}.search-field .search-field__wrapper{box-sizing:border-box;height:40px;display:flex;align-items:center;border:1px solid #8D8786;border-radius:1px;padding:8px 16px;gap:12px;flex:none;order:0;align-self:stretch;flex-grow:0;position:relative;width:100%;outline:none;color:#8D8786}.search-field .search-field__wrapper.focused{border:1px solid #0A8276}.search-field .search-field__wrapper.focused ifx-icon{color:#575352}.search-field .search-field__wrapper.search-field__wrapper-s{height:36px}.search-field .search-field__wrapper:hover:not(.focused,:focus){border:1px solid #3C3A39}.search-field .search-field__wrapper:focus{outline:none;border:1px solid #0A8276}.search-field .search-field__wrapper .delete-icon{right:12px;cursor:pointer}.search-field .search-field__wrapper input[type=text]{font-style:normal;font-weight:400;font-size:16px;color:#8D8786;border:none;width:100%;outline:none;height:16px}.search-field .search-field__wrapper input[type=text]:focus{outline:none;color:#1d1d1d}.search-field .search-field__wrapper input[type=text]:disabled{background-color:#EEEDED}.search-field .search-field__wrapper:has(input[disabled]){background-color:#EEEDED}";
10
+ const searchFieldCss = ":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 color: #8D8786;\n}\n.search-field .search-field__wrapper.focused {\n border: 1px solid #0A8276;\n}\n.search-field .search-field__wrapper.focused ifx-icon {\n color: #575352;\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:focus {\n outline: none;\n border: 1px solid #0A8276;\n}\n.search-field .search-field__wrapper .delete-icon {\n right: 12px;\n cursor: pointer;\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-color: #EEEDED;\n}\n.search-field .search-field__wrapper:has(input[disabled]) {\n background-color: #EEEDED;\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}";
11
11
  const IfxSearchFieldStyle0 = searchFieldCss;
12
12
 
13
13
  const SearchField = class {
14
14
  constructor(hostRef) {
15
15
  index.registerInstance(this, hostRef);
16
16
  this.ifxInput = index.createEvent(this, "ifxInput", 7);
17
+ this.ifxSuggestionRequested = index.createEvent(this, "ifxSuggestionRequested", 7);
18
+ this.ifxSuggestionSelected = index.createEvent(this, "ifxSuggestionSelected", 7);
19
+ this.ifxFocus = index.createEvent(this, "ifxFocus", 7);
20
+ this.ifxBlur = index.createEvent(this, "ifxBlur", 7);
17
21
  this.value = '';
18
- this.insideDropdown = false;
22
+ this.suggestions = [];
23
+ this.showSuggestions = false;
24
+ this.maxSuggestions = 10;
25
+ this.maxHistoryItems = 5;
26
+ this.enableHistory = true;
27
+ this.historyKey = 'ifx-search-history';
28
+ this.historyHeaderText = 'Recent Searches';
29
+ // ARIA Labels and Accessibility Props
30
+ this.ariaLabel = 'Search field';
31
+ this.deleteIconAriaLabel = 'Clear search';
32
+ this.historyDeleteAriaLabel = 'Remove from history';
33
+ this.dropdownAriaLabel = 'Search suggestions and history';
34
+ this.suggestionAriaLabel = 'Search suggestion';
35
+ this.historyItemAriaLabel = 'Search history item';
36
+ this.showDropdown = false;
37
+ this.filteredSuggestions = [];
38
+ this.selectedSuggestionIndex = -1;
39
+ this.searchHistory = [];
19
40
  this.showDeleteIcon = false;
20
41
  this.showDeleteIconInternalState = false;
21
42
  this.disabled = false;
22
43
  this.size = 'l';
23
44
  this.isFocused = false;
24
45
  this.placeholder = "Search...";
25
- this.autocomplete = "on";
46
+ this.autocomplete = "off";
26
47
  this.maxlength = null;
48
+ this.focusEmitted = false;
27
49
  this.handleInput = () => {
28
50
  const query = this.inputElement.value;
29
- this.value = query; // update the value property when input changes
51
+ this.value = query;
30
52
  this.ifxInput.emit(this.value);
53
+ if (this.showSuggestions) {
54
+ this.showDropdown = true;
55
+ this.selectedSuggestionIndex = -1;
56
+ this.requestSuggestions(query);
57
+ }
31
58
  };
32
59
  this.handleDelete = () => {
33
60
  this.inputElement.value = '';
34
61
  this.value = "";
35
62
  this.ifxInput.emit(this.value);
63
+ this.hideDropdown();
36
64
  };
65
+ this.handleSearch = () => {
66
+ if (this.value.trim() && this.enableHistory) {
67
+ // Only add to history if there are actual results
68
+ if (this.filteredSuggestions.length > 0) {
69
+ this.addToHistory(this.value);
70
+ }
71
+ }
72
+ this.hideDropdown();
73
+ };
74
+ // Handle click on history delete button
75
+ this.handleHistoryDelete = (event, term) => {
76
+ event.stopPropagation(); // Prevent selection of the entry
77
+ this.removeFromHistory(term);
78
+ };
79
+ }
80
+ componentDidLoad() {
81
+ this.loadSearchHistory();
37
82
  }
38
83
  handleOutsideClick(event) {
39
84
  const path = event.composedPath();
40
- if (!path.includes(this.inputElement)) {
41
- this.isFocused = false;
85
+ if (!path.includes(this.inputElement) && !path.includes(this.dropdownElement)) {
86
+ this.hideDropdown();
87
+ }
88
+ }
89
+ handleKeyDown(event) {
90
+ if (!this.showDropdown)
91
+ return;
92
+ switch (event.key) {
93
+ case 'ArrowDown':
94
+ event.preventDefault();
95
+ this.navigateSuggestions(1);
96
+ break;
97
+ case 'ArrowUp':
98
+ event.preventDefault();
99
+ this.navigateSuggestions(-1);
100
+ break;
101
+ case 'Enter':
102
+ event.preventDefault();
103
+ if (this.selectedSuggestionIndex >= 0) {
104
+ this.selectSuggestion(this.filteredSuggestions[this.selectedSuggestionIndex]);
105
+ }
106
+ else {
107
+ this.handleSearch();
108
+ }
109
+ break;
110
+ case 'Escape':
111
+ this.hideDropdown();
112
+ break;
42
113
  }
43
114
  }
44
115
  valueWatcher(newValue) {
45
- if (newValue !== this.inputElement.value) {
116
+ if (this.inputElement && newValue !== this.inputElement.value) {
46
117
  this.inputElement.value = newValue;
47
118
  }
119
+ this.updateSuggestions();
120
+ }
121
+ suggestionsWatcher() {
122
+ this.updateSuggestions();
48
123
  }
49
124
  focusInput() {
50
- this.inputElement.focus();
51
- this.isFocused = true;
125
+ // Don't call focus() if the input is already focused to prevent unnecessary operations
126
+ if (document.activeElement !== this.inputElement) {
127
+ this.inputElement.focus();
128
+ }
129
+ // Only emit focus event if it hasn't been emitted already
130
+ if (!this.focusEmitted) {
131
+ this.focusEmitted = true;
132
+ this.isFocused = true;
133
+ this.ifxFocus.emit();
134
+ }
135
+ if (this.showSuggestions) {
136
+ // On focus without input: Show only history
137
+ if (this.value.length === 0) {
138
+ this.showHistoryDropdown();
139
+ // Only show dropdown if history is actually present
140
+ this.showDropdown = this.enableHistory && this.searchHistory.length > 0;
141
+ }
142
+ else {
143
+ // With existing input: Normal suggestion logic
144
+ this.updateSuggestions();
145
+ this.showDropdown = this.filteredSuggestions.length > 0;
146
+ }
147
+ }
148
+ }
149
+ blurInput() {
150
+ setTimeout(() => {
151
+ this.isFocused = false;
152
+ this.focusEmitted = false; // Reset focus flag when blur occurs
153
+ this.ifxBlur.emit();
154
+ }, 150);
155
+ }
156
+ // Public method to update history from external sources
157
+ loadSearchHistory() {
158
+ if (this.enableHistory && typeof localStorage !== 'undefined') {
159
+ const stored = localStorage.getItem(this.historyKey);
160
+ this.searchHistory = stored ? JSON.parse(stored) : [];
161
+ // Update suggestions when history is loaded
162
+ this.updateSuggestions();
163
+ // If no input and no history left, close dropdown
164
+ if (this.value.length === 0 && this.searchHistory.length === 0) {
165
+ this.showDropdown = false;
166
+ }
167
+ }
168
+ }
169
+ // Public method to completely clear history
170
+ clearSearchHistory() {
171
+ if (this.enableHistory && typeof localStorage !== 'undefined') {
172
+ // Clear from localStorage
173
+ localStorage.removeItem(this.historyKey);
174
+ // Clear internal history
175
+ this.searchHistory = [];
176
+ // Reset all dropdown-relevant states
177
+ this.filteredSuggestions = [];
178
+ this.selectedSuggestionIndex = -1;
179
+ this.showDropdown = false;
180
+ // Update suggestions after reset
181
+ this.updateSuggestions();
182
+ }
183
+ }
184
+ // Suggestion Management Methods
185
+ addToHistory(term) {
186
+ if (!this.enableHistory || !term.trim())
187
+ return;
188
+ const history = [...this.searchHistory];
189
+ const existingIndex = history.indexOf(term);
190
+ if (existingIndex > -1) {
191
+ history.splice(existingIndex, 1);
192
+ }
193
+ history.unshift(term);
194
+ // Limit history to maxHistoryItems (default 5)
195
+ this.searchHistory = history.slice(0, this.maxHistoryItems);
196
+ if (typeof localStorage !== 'undefined') {
197
+ localStorage.setItem(this.historyKey, JSON.stringify(this.searchHistory));
198
+ }
199
+ }
200
+ // Remove individual history entry
201
+ removeFromHistory(term) {
202
+ if (!this.enableHistory)
203
+ return;
204
+ const history = [...this.searchHistory];
205
+ const index = history.indexOf(term);
206
+ if (index > -1) {
207
+ history.splice(index, 1);
208
+ this.searchHistory = history;
209
+ // Update localStorage
210
+ if (typeof localStorage !== 'undefined') {
211
+ localStorage.setItem(this.historyKey, JSON.stringify(this.searchHistory));
212
+ }
213
+ // Update suggestions after removal
214
+ this.updateSuggestions();
215
+ // Close dropdown if no history remains
216
+ if (this.searchHistory.length === 0 && this.value.length === 0) {
217
+ this.showDropdown = false;
218
+ }
219
+ }
220
+ }
221
+ requestSuggestions(query) {
222
+ this.ifxSuggestionRequested.emit(query);
223
+ this.updateSuggestions();
224
+ }
225
+ updateSuggestions() {
226
+ const query = this.value.toLowerCase();
227
+ let suggestions = [];
228
+ if (query.length > 0) {
229
+ // For text input: Mix external suggestions and relevant history
230
+ // 1. Filter external suggestions
231
+ if (this.suggestions && this.suggestions.length > 0) {
232
+ const filteredExternal = this.suggestions.filter(s => s.text.toLowerCase().includes(query));
233
+ suggestions = [...suggestions, ...filteredExternal];
234
+ }
235
+ // 2. Filter relevant history entries
236
+ if (this.enableHistory && this.searchHistory.length > 0) {
237
+ const filteredHistory = this.searchHistory
238
+ .filter(term => term.toLowerCase().includes(query))
239
+ .map((term, index) => ({
240
+ id: `history-${index}`,
241
+ text: term,
242
+ type: 'history'
243
+ }));
244
+ suggestions = [...suggestions, ...filteredHistory];
245
+ }
246
+ // 3. Sort by relevance (exact matches first, then prefix matches)
247
+ suggestions.sort((a, b) => {
248
+ const aText = a.text.toLowerCase();
249
+ const bText = b.text.toLowerCase();
250
+ // Exact match has highest priority
251
+ if (aText === query && bText !== query)
252
+ return -1;
253
+ if (bText === query && aText !== query)
254
+ return 1;
255
+ // Prefix match has second highest priority
256
+ const aStartsWith = aText.startsWith(query);
257
+ const bStartsWith = bText.startsWith(query);
258
+ if (aStartsWith && !bStartsWith)
259
+ return -1;
260
+ if (bStartsWith && !aStartsWith)
261
+ return 1;
262
+ // With equal relevance: external suggestions before history
263
+ if (a.type === 'suggestion' && b.type === 'history')
264
+ return -1;
265
+ if (a.type === 'history' && b.type === 'suggestion')
266
+ return 1;
267
+ // Alphabetical sorting as last criterion
268
+ return aText.localeCompare(bText);
269
+ });
270
+ }
271
+ else {
272
+ // For empty query: Show only history (no external suggestions)
273
+ if (this.enableHistory && this.searchHistory.length > 0) {
274
+ const historySuggestions = this.searchHistory.map((term, index) => ({
275
+ id: `history-${index}`,
276
+ text: term,
277
+ type: 'history'
278
+ }));
279
+ suggestions = historySuggestions;
280
+ }
281
+ // For empty query DO NOT show external suggestions
282
+ }
283
+ // Remove duplicates based on text and scope combination (history takes precedence over external)
284
+ const uniqueSuggestions = suggestions.reduce((unique, current) => {
285
+ const existingIndex = unique.findIndex(item => item.text.toLowerCase() === current.text.toLowerCase() &&
286
+ item.scope === current.scope);
287
+ if (existingIndex === -1) {
288
+ unique.push(current);
289
+ }
290
+ else {
291
+ // If already exists, prefer history over external suggestions
292
+ if (current.type === 'history' && unique[existingIndex].type !== 'history') {
293
+ unique[existingIndex] = current;
294
+ }
295
+ }
296
+ return unique;
297
+ }, []);
298
+ this.filteredSuggestions = uniqueSuggestions.slice(0, this.maxSuggestions);
299
+ this.selectedSuggestionIndex = -1;
300
+ }
301
+ navigateSuggestions(direction) {
302
+ const maxIndex = this.filteredSuggestions.length - 1;
303
+ if (direction > 0) {
304
+ this.selectedSuggestionIndex = this.selectedSuggestionIndex < maxIndex
305
+ ? this.selectedSuggestionIndex + 1
306
+ : 0;
307
+ }
308
+ else {
309
+ this.selectedSuggestionIndex = this.selectedSuggestionIndex > 0
310
+ ? this.selectedSuggestionIndex - 1
311
+ : maxIndex;
312
+ }
313
+ }
314
+ selectSuggestion(suggestion) {
315
+ this.value = suggestion.text;
316
+ this.inputElement.value = suggestion.text;
317
+ this.ifxSuggestionSelected.emit(suggestion);
318
+ this.ifxInput.emit(this.value);
319
+ if (this.enableHistory) {
320
+ // Always add selected suggestions to history since they are valid results
321
+ this.addToHistory(suggestion.text);
322
+ }
323
+ this.hideDropdown();
324
+ }
325
+ hideDropdown() {
326
+ this.showDropdown = false;
327
+ this.selectedSuggestionIndex = -1;
328
+ this.isFocused = false;
329
+ }
330
+ // Show only history in dropdown (e.g. on focus without input)
331
+ showHistoryDropdown() {
332
+ if (this.enableHistory && this.searchHistory.length > 0) {
333
+ // Show only history entries
334
+ const historySuggestions = this.searchHistory.map((term, index) => ({
335
+ id: `history-${index}`,
336
+ text: term,
337
+ type: 'history'
338
+ }));
339
+ this.filteredSuggestions = historySuggestions.slice(0, this.maxSuggestions);
340
+ this.selectedSuggestionIndex = -1;
341
+ }
342
+ else {
343
+ this.filteredSuggestions = [];
344
+ }
345
+ }
346
+ // Check if only history entries are displayed (without text input)
347
+ isShowingOnlyHistory() {
348
+ return this.value.length === 0 &&
349
+ this.filteredSuggestions.length > 0 &&
350
+ this.filteredSuggestions.every(s => s.type === 'history');
351
+ }
352
+ // Render text with highlighted matches
353
+ renderHighlightedText(text, query) {
354
+ if (!query || query.length === 0) {
355
+ return text;
356
+ }
357
+ const lowerText = text.toLowerCase();
358
+ const lowerQuery = query.toLowerCase();
359
+ const index$1 = lowerText.indexOf(lowerQuery);
360
+ if (index$1 === -1) {
361
+ return text;
362
+ }
363
+ const before = text.substring(0, index$1);
364
+ const match = text.substring(index$1, index$1 + query.length);
365
+ const after = text.substring(index$1 + query.length);
366
+ return [
367
+ before,
368
+ index.h("strong", null, match),
369
+ after
370
+ ];
52
371
  }
53
372
  componentWillLoad() {
54
373
  if (!domUtils.isNestedInIfxComponent(this.el)) {
@@ -63,7 +382,17 @@ const SearchField = class {
63
382
  this.showDeleteIconInternalState = false;
64
383
  }
65
384
  render() {
66
- return (index.h("div", { key: '751f042d0ec4d4a532d77de87b022c9eb1c47e7c', "aria-label": "a search field for user input", "aria-disabled": this.disabled, "aria-value": this.value, class: 'search-field' }, index.h("div", { key: '48e4b6518cdd4fd66fc6d4f24459fd729bd6d3a7', class: this.getWrapperClassNames(), tabindex: 1, onFocus: () => this.focusInput(), onClick: () => this.focusInput() }, index.h("ifx-icon", { key: '71353ae1d54505b0e50d248695f20059c0d0a44d', icon: "search-16", class: "search-icon" }), index.h("input", { key: 'c8d3c24435218e4219be7cb2bc7ee14ab314a728', ref: (el) => (this.inputElement = el), type: "text", autocomplete: this.autocomplete, onInput: () => this.handleInput(), placeholder: this.placeholder, disabled: this.disabled, maxlength: this.maxlength, value: this.value }), this.showDeleteIcon && this.showDeleteIconInternalState ? (index.h("ifx-icon", { icon: "cRemove16", class: "delete-icon", onClick: this.handleDelete })) : null)));
385
+ return (index.h("div", { key: 'b7cf249b85fdd3b8de6e145e026031b55d689758', "aria-label": this.ariaLabel, "aria-labelledby": this.ariaLabelledBy, "aria-describedby": this.ariaDescribedBy, "aria-disabled": this.disabled, "aria-value": this.value, class: 'search-field' }, index.h("div", { key: '0e19cb8ecf2bb3c82e0cc835aa66d2c144aac207', class: this.getWrapperClassNames(), tabindex: 1, onClick: () => this.focusInput() }, index.h("ifx-icon", { key: '2c8f71752ac2c7aa1e520b5de67a31025e66ae5d', icon: "search-16", class: "search-icon" }), index.h("input", { key: 'f9773fac1622f99251c7ed6c4662170bf7f94460', ref: (el) => (this.inputElement = el), 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-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 ? (index.h("ifx-icon", { icon: "cRemove16", class: "delete-icon", onClick: this.handleDelete, role: "button", tabindex: "0", "aria-label": this.deleteIconAriaLabel, onKeyDown: (event) => {
386
+ if (event.key === 'Enter' || event.key === ' ') {
387
+ event.preventDefault();
388
+ this.handleDelete();
389
+ }
390
+ } })) : null), this.showDropdown && this.filteredSuggestions.length > 0 && (index.h("div", { key: '5c83b7c9655ae7bed7e56c366d77fa400d02a080', ref: (el) => (this.dropdownElement = el), id: "suggestions-dropdown", class: "suggestions-dropdown", role: "listbox", "aria-label": this.dropdownAriaLabel }, this.isShowingOnlyHistory() && (index.h("div", { key: 'a053469803379f16fff04c053035095bffb7cbdc', class: "suggestions-header" }, this.historyHeaderText)), this.filteredSuggestions.map((suggestion, index$1) => (index.h("div", { key: suggestion.id, id: `suggestion-${index$1}`, class: this.getSuggestionClassNames(index$1), role: "option", "aria-selected": index$1 === this.selectedSuggestionIndex, "aria-label": `${suggestion.type === 'history' ? this.historyItemAriaLabel : this.suggestionAriaLabel}: ${suggestion.text}${suggestion.scope ? `, ${suggestion.scope}` : ''}${suggestion.resultCount ? `, ${suggestion.resultCount} results` : ''}`, onClick: () => this.selectSuggestion(suggestion), onMouseEnter: () => this.selectedSuggestionIndex = index$1 }, index.h("div", { class: "suggestion-content" }, suggestion.type === 'history' && (index.h("ifx-icon", { icon: "history-16", class: "suggestion-icon suggestion-icon--history" })), suggestion.type === 'suggestion' && (index.h("ifx-icon", { icon: "search-16", class: "suggestion-icon suggestion-icon--suggestion" })), index.h("span", { class: "suggestion-text" }, index.h("span", { class: "suggestion-main-text" }, this.renderHighlightedText(suggestion.text, this.value)), suggestion.scope && (index.h("span", { class: "suggestion-scope" }, "\u2013 ", suggestion.scope))), suggestion.resultCount !== undefined && suggestion.scope && (index.h("span", { class: "suggestion-count" }, suggestion.resultCount)), suggestion.type === 'history' && (index.h("ifx-icon", { icon: "cross16", class: "suggestion-delete-icon", role: "button", tabindex: "0", "aria-label": `${this.historyDeleteAriaLabel}: ${suggestion.text}`, onClick: (event) => this.handleHistoryDelete(event, suggestion.text), onKeyDown: (event) => {
391
+ if (event.key === 'Enter' || event.key === ' ') {
392
+ event.preventDefault();
393
+ this.handleHistoryDelete(event, suggestion.text);
394
+ }
395
+ } }))))))))));
67
396
  }
68
397
  getSizeClass() {
69
398
  return `${this.size}` === "s"
@@ -71,11 +400,19 @@ const SearchField = class {
71
400
  : "";
72
401
  }
73
402
  getWrapperClassNames() {
74
- return index$1.classNames(`search-field__wrapper`, `search-field__wrapper ${this.getSizeClass()}`, `${this.isFocused ? 'focused' : ""}`);
403
+ return index$1.classNames(`search-field__wrapper`, `search-field__wrapper ${this.getSizeClass()}`, `${this.isFocused ? 'focused' : ""}`, `${this.showDropdown ? 'dropdown-open' : ""}`);
404
+ }
405
+ getSuggestionClassNames(index) {
406
+ var _a;
407
+ return index$1.classNames('suggestion-item', {
408
+ 'suggestion-item--selected': index === this.selectedSuggestionIndex,
409
+ 'suggestion-item--history': ((_a = this.filteredSuggestions[index]) === null || _a === void 0 ? void 0 : _a.type) === 'history'
410
+ });
75
411
  }
76
412
  get el() { return index.getElement(this); }
77
413
  static get watchers() { return {
78
- "value": ["valueWatcher"]
414
+ "value": ["valueWatcher"],
415
+ "suggestions": ["suggestionsWatcher"]
79
416
  }; }
80
417
  };
81
418
  SearchField.style = IfxSearchFieldStyle0;