@infineon/infineon-design-system-stencil 37.5.1--canary.1723.34ea69810f554741126370a7b5230b9aef9d65e5.0 → 37.6.0--canary.1954.6c07dfe4ac965c782ba6feeb2957e37be53515a7.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 (212) 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 +348 -13
  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 +723 -18
  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-15597da9.js +470 -0
  100. package/dist/components/p-15597da9.js.map +1 -0
  101. package/dist/components/{p-4f7fbf98.js → p-1bd23a52.js} +3 -3
  102. package/dist/components/{p-4f7fbf98.js.map → p-1bd23a52.js.map} +1 -1
  103. package/dist/components/{p-60294bc5.js → p-6b139880.js} +3 -3
  104. package/dist/components/{p-60294bc5.js.map → p-6b139880.js.map} +1 -1
  105. package/dist/components/{p-a96d43ef.js → p-81265366.js} +4 -4
  106. package/dist/components/{p-a96d43ef.js.map → p-81265366.js.map} +1 -1
  107. package/dist/components/{p-46f5d4b5.js → p-9378105f.js} +2 -2
  108. package/dist/components/{p-46f5d4b5.js.map → p-9378105f.js.map} +1 -1
  109. package/dist/components/{p-c2ab000f.js → p-b57d6694.js} +2 -2
  110. package/dist/components/{p-c2ab000f.js.map → p-b57d6694.js.map} +1 -1
  111. package/dist/components/{p-4366492e.js → p-f4531a17.js} +5 -5
  112. package/dist/components/{p-4366492e.js.map → p-f4531a17.js.map} +1 -1
  113. package/dist/components/{p-b56aae98.js → p-fa8735da.js} +5 -5
  114. package/dist/components/{p-b56aae98.js.map → p-fa8735da.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 +348 -13
  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-577289c5.entry.js → p-030215bd.entry.js} +2 -2
  149. package/dist/infineon-design-system-stencil/{p-67c9a9c0.entry.js → p-03690ea5.entry.js} +2 -2
  150. package/dist/infineon-design-system-stencil/{p-7adee2dd.entry.js → p-0cbdafca.entry.js} +2 -2
  151. package/dist/infineon-design-system-stencil/{p-012129b3.entry.js → p-24d7ff6e.entry.js} +2 -2
  152. package/dist/infineon-design-system-stencil/{p-0c1c831c.entry.js → p-253ea47f.entry.js} +2 -2
  153. package/dist/infineon-design-system-stencil/{p-09a8d63d.entry.js → p-273a91b3.entry.js} +2 -2
  154. package/dist/infineon-design-system-stencil/{p-3d037fa4.entry.js → p-33b46161.entry.js} +2 -2
  155. package/dist/infineon-design-system-stencil/{p-4097932f.entry.js → p-377996c5.entry.js} +2 -2
  156. package/dist/infineon-design-system-stencil/{p-a2a44fbe.entry.js → p-37be5d65.entry.js} +2 -2
  157. package/dist/infineon-design-system-stencil/{p-18a81f5f.entry.js → p-3bce1f22.entry.js} +2 -2
  158. package/dist/infineon-design-system-stencil/{p-e9241ef3.entry.js → p-461450ac.entry.js} +2 -2
  159. package/dist/infineon-design-system-stencil/{p-0d8a16ab.entry.js → p-5afef060.entry.js} +2 -2
  160. package/dist/infineon-design-system-stencil/{p-7311a88d.entry.js → p-65a5cdd0.entry.js} +2 -2
  161. package/dist/infineon-design-system-stencil/{p-6c2698a3.entry.js → p-6ec8258a.entry.js} +2 -2
  162. package/dist/infineon-design-system-stencil/{p-fb954440.entry.js → p-6f43f8cb.entry.js} +2 -2
  163. package/dist/infineon-design-system-stencil/{p-cf7cf03b.entry.js → p-7078cbee.entry.js} +2 -2
  164. package/dist/infineon-design-system-stencil/p-7705c159.entry.js +2 -0
  165. package/dist/infineon-design-system-stencil/{p-28bd7e9d.entry.js → p-7958bc33.entry.js} +2 -2
  166. package/dist/infineon-design-system-stencil/{p-54e6a8d8.entry.js → p-7b2c1280.entry.js} +2 -2
  167. package/dist/infineon-design-system-stencil/{p-2facce0d.entry.js → p-bcf3f499.entry.js} +2 -2
  168. package/dist/infineon-design-system-stencil/{p-b4caad8b.entry.js → p-c303185e.entry.js} +2 -2
  169. package/dist/infineon-design-system-stencil/{p-04d8ea38.entry.js → p-caef0e47.entry.js} +2 -2
  170. package/dist/infineon-design-system-stencil/{p-36dcebde.entry.js → p-d3d6a562.entry.js} +2 -2
  171. package/dist/infineon-design-system-stencil/{p-c5de05c9.entry.js → p-e6632fdc.entry.js} +2 -2
  172. package/dist/infineon-design-system-stencil/{p-c7e86c7c.entry.js → p-ed30fb98.entry.js} +2 -2
  173. package/dist/infineon-design-system-stencil/{p-966548e9.entry.js → p-efe3e6d2.entry.js} +2 -2
  174. package/dist/infineon-design-system-stencil/{p-9675a12a.entry.js → p-effa0498.entry.js} +2 -2
  175. package/dist/infineon-design-system-stencil/p-fe185620.entry.js +2 -0
  176. package/dist/infineon-design-system-stencil/p-fe185620.entry.js.map +1 -0
  177. package/dist/types/components/search-field/search-field.d.ts +53 -3
  178. package/dist/types/components/search-field/search-field.stories.d.ts +191 -0
  179. package/dist/types/components.d.ts +42 -2
  180. package/package.json +1 -1
  181. package/dist/components/p-bf74ceb8.js +0 -116
  182. package/dist/components/p-bf74ceb8.js.map +0 -1
  183. package/dist/infineon-design-system-stencil/p-4e633224.entry.js +0 -2
  184. package/dist/infineon-design-system-stencil/p-4e633224.entry.js.map +0 -1
  185. package/dist/infineon-design-system-stencil/p-e571c002.entry.js +0 -2
  186. /package/dist/infineon-design-system-stencil/{p-577289c5.entry.js.map → p-030215bd.entry.js.map} +0 -0
  187. /package/dist/infineon-design-system-stencil/{p-67c9a9c0.entry.js.map → p-03690ea5.entry.js.map} +0 -0
  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-012129b3.entry.js.map → p-24d7ff6e.entry.js.map} +0 -0
  190. /package/dist/infineon-design-system-stencil/{p-0c1c831c.entry.js.map → p-253ea47f.entry.js.map} +0 -0
  191. /package/dist/infineon-design-system-stencil/{p-09a8d63d.entry.js.map → p-273a91b3.entry.js.map} +0 -0
  192. /package/dist/infineon-design-system-stencil/{p-3d037fa4.entry.js.map → p-33b46161.entry.js.map} +0 -0
  193. /package/dist/infineon-design-system-stencil/{p-4097932f.entry.js.map → p-377996c5.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-e9241ef3.entry.js.map → p-461450ac.entry.js.map} +0 -0
  197. /package/dist/infineon-design-system-stencil/{p-0d8a16ab.entry.js.map → p-5afef060.entry.js.map} +0 -0
  198. /package/dist/infineon-design-system-stencil/{p-7311a88d.entry.js.map → p-65a5cdd0.entry.js.map} +0 -0
  199. /package/dist/infineon-design-system-stencil/{p-6c2698a3.entry.js.map → p-6ec8258a.entry.js.map} +0 -0
  200. /package/dist/infineon-design-system-stencil/{p-fb954440.entry.js.map → p-6f43f8cb.entry.js.map} +0 -0
  201. /package/dist/infineon-design-system-stencil/{p-cf7cf03b.entry.js.map → p-7078cbee.entry.js.map} +0 -0
  202. /package/dist/infineon-design-system-stencil/{p-e571c002.entry.js.map → p-7705c159.entry.js.map} +0 -0
  203. /package/dist/infineon-design-system-stencil/{p-28bd7e9d.entry.js.map → p-7958bc33.entry.js.map} +0 -0
  204. /package/dist/infineon-design-system-stencil/{p-54e6a8d8.entry.js.map → p-7b2c1280.entry.js.map} +0 -0
  205. /package/dist/infineon-design-system-stencil/{p-2facce0d.entry.js.map → p-bcf3f499.entry.js.map} +0 -0
  206. /package/dist/infineon-design-system-stencil/{p-b4caad8b.entry.js.map → p-c303185e.entry.js.map} +0 -0
  207. /package/dist/infineon-design-system-stencil/{p-04d8ea38.entry.js.map → p-caef0e47.entry.js.map} +0 -0
  208. /package/dist/infineon-design-system-stencil/{p-36dcebde.entry.js.map → p-d3d6a562.entry.js.map} +0 -0
  209. /package/dist/infineon-design-system-stencil/{p-c5de05c9.entry.js.map → p-e6632fdc.entry.js.map} +0 -0
  210. /package/dist/infineon-design-system-stencil/{p-c7e86c7c.entry.js.map → p-ed30fb98.entry.js.map} +0 -0
  211. /package/dist/infineon-design-system-stencil/{p-966548e9.entry.js.map → p-efe3e6d2.entry.js.map} +0 -0
  212. /package/dist/infineon-design-system-stencil/{p-9675a12a.entry.js.map → p-effa0498.entry.js.map} +0 -0
@@ -186,7 +186,7 @@ const Template = class {
186
186
  }
187
187
  }
188
188
  render() {
189
- return (index.h("div", { key: 'a6433871f9175e0616c40389d0a39a94797d67b3' }, this.isTemplatePage
189
+ return (index.h("div", { key: '1de8086432131979b1290ea28de6027cf52aa043' }, this.isTemplatePage
190
190
  ?
191
191
  index.h("div", { class: "template__page-wrapper" }, !this.repoUrl && !this.repoError &&
192
192
  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))
@@ -189,7 +189,7 @@ const Table = class {
189
189
  return {};
190
190
  }
191
191
  render() {
192
- return (index.h(index.Host, { key: 'b0be2eaf2bf175887f3f2271cf2965b5a663b42a' }, index.h("div", { key: '400318fcaacf00f1b4cefce90b7763c14e7ab49d', id: "table-wrapper", class: this.getClassNames() }, index.h("div", { key: 'e4844ee2cf7179dc9566c0c7176250f51ab6cf54', id: `ifxTable-${this.uniqueKey}`, class: `ifx-ag-grid ${this.variant === 'zebra' ? 'zebra' : ""}`, style: this.getTableStyle(), ref: (el) => (this.container = el) }))));
192
+ return (index.h(index.Host, { key: '5968712e3cbe5605b5128dc19997941d18d21ffc' }, index.h("div", { key: '8a39d36f4006095de577777bb8c31f2ba3b9a2ee', id: "table-wrapper", class: this.getClassNames() }, index.h("div", { key: '8dd8dfaa472da2cd56ade80f5105cdbebeb8013b', id: `ifxTable-${this.uniqueKey}`, class: `ifx-ag-grid ${this.variant === 'zebra' ? 'zebra' : ""}`, style: this.getTableStyle(), ref: (el) => (this.container = el) }))));
193
193
  }
194
194
  get host() { return index.getElement(this); }
195
195
  };
@@ -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 {
@@ -905,25 +905,25 @@ const MultiselectOption = class {
905
905
  const additionalPadding = this.hasChildren ? 0 : 28;
906
906
  let totalPadding = basePadding + additionalPadding;
907
907
  const optionItemStyle = isFlatMultiselect ? undefined : { paddingLeft: `${totalPadding}px` };
908
- return (index.h(index.Host, { key: 'f836f58884e2e57c4c5fb4953f10d5ff4a34c8da' }, index.h("div", { key: '9eca6e87bb3c21512a051596b1e92931b707e88f', class: {
908
+ return (index.h(index.Host, { key: '53ab714e5bc86c83569b2c1cf6f479405f528880' }, index.h("div", { key: 'b5597349b4d3ef268b5826047f414dd7ce0c7854', class: {
909
909
  'option': true,
910
910
  'option--has-children': this.hasChildren,
911
911
  'option--expanded': this.isExpanded,
912
912
  'option--disabled': this.disabled,
913
913
  'option--selected': this.selected,
914
- }, 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) => {
914
+ }, 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) => {
915
915
  if (e.key === 'Enter' || e.key === ' ') {
916
916
  e.preventDefault();
917
917
  e.stopPropagation();
918
918
  this.toggleExpansion();
919
919
  }
920
- } }, 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) => {
920
+ } }, 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) => {
921
921
  if (e.key === 'Enter' || e.key === ' ') {
922
922
  e.preventDefault();
923
923
  e.stopPropagation();
924
924
  this.handleCheckboxClick(e);
925
925
  }
926
- } })), 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" })))));
926
+ } })), 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" })))));
927
927
  }
928
928
  get el() { return index.getElement(this); }
929
929
  };
@@ -7,50 +7,367 @@ const frameworkDetection = require('./framework-detection-39905fc2.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();
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);
36
78
  };
37
79
  }
38
80
  handleOutsideClick(event) {
39
81
  const path = event.composedPath();
40
- if (!path.includes(this.inputElement)) {
41
- this.isFocused = false;
82
+ if (!path.includes(this.inputElement) && !path.includes(this.dropdownElement)) {
83
+ this.hideDropdown();
84
+ }
85
+ }
86
+ handleKeyDown(event) {
87
+ if (!this.showDropdown)
88
+ return;
89
+ switch (event.key) {
90
+ case 'ArrowDown':
91
+ event.preventDefault();
92
+ this.navigateSuggestions(1);
93
+ break;
94
+ case 'ArrowUp':
95
+ event.preventDefault();
96
+ this.navigateSuggestions(-1);
97
+ break;
98
+ case 'Enter':
99
+ event.preventDefault();
100
+ if (this.selectedSuggestionIndex >= 0) {
101
+ this.selectSuggestion(this.filteredSuggestions[this.selectedSuggestionIndex]);
102
+ }
103
+ else {
104
+ this.handleSearch();
105
+ }
106
+ break;
107
+ case 'Escape':
108
+ this.hideDropdown();
109
+ break;
42
110
  }
43
111
  }
44
112
  valueWatcher(newValue) {
45
- if (newValue !== this.inputElement.value) {
113
+ if (this.inputElement && newValue !== this.inputElement.value) {
46
114
  this.inputElement.value = newValue;
47
115
  }
116
+ this.updateSuggestions();
117
+ }
118
+ suggestionsWatcher() {
119
+ this.updateSuggestions();
48
120
  }
49
121
  focusInput() {
50
- this.inputElement.focus();
51
- this.isFocused = true;
122
+ // Don't call focus() if the input is already focused to prevent unnecessary operations
123
+ if (document.activeElement !== this.inputElement) {
124
+ this.inputElement.focus();
125
+ }
126
+ // Only emit focus event if it hasn't been emitted already
127
+ if (!this.focusEmitted) {
128
+ this.focusEmitted = true;
129
+ this.isFocused = true;
130
+ this.ifxFocus.emit();
131
+ }
132
+ if (this.showSuggestions) {
133
+ // On focus without input: Show only history
134
+ if (this.value.length === 0) {
135
+ this.showHistoryDropdown();
136
+ // Only show dropdown if history is actually present
137
+ this.showDropdown = this.enableHistory && this.searchHistory.length > 0;
138
+ }
139
+ else {
140
+ // With existing input: Normal suggestion logic
141
+ this.updateSuggestions();
142
+ this.showDropdown = this.filteredSuggestions.length > 0;
143
+ }
144
+ }
145
+ }
146
+ blurInput() {
147
+ setTimeout(() => {
148
+ this.isFocused = false;
149
+ this.focusEmitted = false; // Reset focus flag when blur occurs
150
+ this.ifxBlur.emit();
151
+ }, 150);
152
+ }
153
+ // Public method to update history from external sources
154
+ loadSearchHistory() {
155
+ if (this.enableHistory && typeof localStorage !== 'undefined') {
156
+ const stored = localStorage.getItem(this.historyKey);
157
+ this.searchHistory = stored ? JSON.parse(stored) : [];
158
+ // Update suggestions when history is loaded
159
+ this.updateSuggestions();
160
+ // If no input and no history left, close dropdown
161
+ if (this.value.length === 0 && this.searchHistory.length === 0) {
162
+ this.showDropdown = false;
163
+ }
164
+ }
165
+ }
166
+ // Public method to completely clear history
167
+ clearSearchHistory() {
168
+ if (this.enableHistory && typeof localStorage !== 'undefined') {
169
+ // Clear from localStorage
170
+ localStorage.removeItem(this.historyKey);
171
+ // Clear internal history
172
+ this.searchHistory = [];
173
+ // Reset all dropdown-relevant states
174
+ this.filteredSuggestions = [];
175
+ this.selectedSuggestionIndex = -1;
176
+ this.showDropdown = false;
177
+ // Update suggestions after reset
178
+ this.updateSuggestions();
179
+ }
180
+ }
181
+ // Suggestion Management Methods
182
+ addToHistory(term) {
183
+ if (!this.enableHistory || !term.trim())
184
+ return;
185
+ const history = [...this.searchHistory];
186
+ const existingIndex = history.indexOf(term);
187
+ if (existingIndex > -1) {
188
+ history.splice(existingIndex, 1);
189
+ }
190
+ history.unshift(term);
191
+ // Limit history to maxHistoryItems (default 5)
192
+ this.searchHistory = history.slice(0, this.maxHistoryItems);
193
+ if (typeof localStorage !== 'undefined') {
194
+ localStorage.setItem(this.historyKey, JSON.stringify(this.searchHistory));
195
+ }
196
+ }
197
+ // Remove individual history entry
198
+ removeFromHistory(term) {
199
+ if (!this.enableHistory)
200
+ return;
201
+ const history = [...this.searchHistory];
202
+ const index = history.indexOf(term);
203
+ if (index > -1) {
204
+ history.splice(index, 1);
205
+ this.searchHistory = history;
206
+ // Update localStorage
207
+ if (typeof localStorage !== 'undefined') {
208
+ localStorage.setItem(this.historyKey, JSON.stringify(this.searchHistory));
209
+ }
210
+ // Update suggestions after removal
211
+ this.updateSuggestions();
212
+ // Close dropdown if no history remains
213
+ if (this.searchHistory.length === 0 && this.value.length === 0) {
214
+ this.showDropdown = false;
215
+ }
216
+ }
52
217
  }
53
- async componentDidLoad() {
218
+ requestSuggestions(query) {
219
+ this.ifxSuggestionRequested.emit(query);
220
+ this.updateSuggestions();
221
+ }
222
+ updateSuggestions() {
223
+ const query = this.value.toLowerCase();
224
+ let suggestions = [];
225
+ if (query.length > 0) {
226
+ // For text input: Mix external suggestions and relevant history
227
+ // 1. Filter external suggestions
228
+ if (this.suggestions && this.suggestions.length > 0) {
229
+ const filteredExternal = this.suggestions.filter(s => s.text.toLowerCase().includes(query));
230
+ suggestions = [...suggestions, ...filteredExternal];
231
+ }
232
+ // 2. Filter relevant history entries
233
+ if (this.enableHistory && this.searchHistory.length > 0) {
234
+ const filteredHistory = this.searchHistory
235
+ .filter(term => term.toLowerCase().includes(query))
236
+ .map((term, index) => ({
237
+ id: `history-${index}`,
238
+ text: term,
239
+ type: 'history'
240
+ }));
241
+ suggestions = [...suggestions, ...filteredHistory];
242
+ }
243
+ // 3. Sort by relevance (exact matches first, then prefix matches)
244
+ suggestions.sort((a, b) => {
245
+ const aText = a.text.toLowerCase();
246
+ const bText = b.text.toLowerCase();
247
+ // Exact match has highest priority
248
+ if (aText === query && bText !== query)
249
+ return -1;
250
+ if (bText === query && aText !== query)
251
+ return 1;
252
+ // Prefix match has second highest priority
253
+ const aStartsWith = aText.startsWith(query);
254
+ const bStartsWith = bText.startsWith(query);
255
+ if (aStartsWith && !bStartsWith)
256
+ return -1;
257
+ if (bStartsWith && !aStartsWith)
258
+ return 1;
259
+ // With equal relevance: external suggestions before history
260
+ if (a.type === 'suggestion' && b.type === 'history')
261
+ return -1;
262
+ if (a.type === 'history' && b.type === 'suggestion')
263
+ return 1;
264
+ // Alphabetical sorting as last criterion
265
+ return aText.localeCompare(bText);
266
+ });
267
+ }
268
+ else {
269
+ // For empty query: Show only history (no external suggestions)
270
+ if (this.enableHistory && this.searchHistory.length > 0) {
271
+ const historySuggestions = this.searchHistory.map((term, index) => ({
272
+ id: `history-${index}`,
273
+ text: term,
274
+ type: 'history'
275
+ }));
276
+ suggestions = historySuggestions;
277
+ }
278
+ // For empty query DO NOT show external suggestions
279
+ }
280
+ // Remove duplicates based on text and scope combination (history takes precedence over external)
281
+ const uniqueSuggestions = suggestions.reduce((unique, current) => {
282
+ const existingIndex = unique.findIndex(item => item.text.toLowerCase() === current.text.toLowerCase() &&
283
+ item.scope === current.scope);
284
+ if (existingIndex === -1) {
285
+ unique.push(current);
286
+ }
287
+ else {
288
+ // If already exists, prefer history over external suggestions
289
+ if (current.type === 'history' && unique[existingIndex].type !== 'history') {
290
+ unique[existingIndex] = current;
291
+ }
292
+ }
293
+ return unique;
294
+ }, []);
295
+ this.filteredSuggestions = uniqueSuggestions.slice(0, this.maxSuggestions);
296
+ this.selectedSuggestionIndex = -1;
297
+ }
298
+ navigateSuggestions(direction) {
299
+ const maxIndex = this.filteredSuggestions.length - 1;
300
+ if (direction > 0) {
301
+ this.selectedSuggestionIndex = this.selectedSuggestionIndex < maxIndex
302
+ ? this.selectedSuggestionIndex + 1
303
+ : 0;
304
+ }
305
+ else {
306
+ this.selectedSuggestionIndex = this.selectedSuggestionIndex > 0
307
+ ? this.selectedSuggestionIndex - 1
308
+ : maxIndex;
309
+ }
310
+ }
311
+ selectSuggestion(suggestion) {
312
+ this.value = suggestion.text;
313
+ this.inputElement.value = suggestion.text;
314
+ this.ifxSuggestionSelected.emit(suggestion);
315
+ this.ifxInput.emit(this.value);
316
+ if (this.enableHistory) {
317
+ // Always add selected suggestions to history since they are valid results
318
+ this.addToHistory(suggestion.text);
319
+ }
320
+ this.hideDropdown();
321
+ }
322
+ hideDropdown() {
323
+ this.showDropdown = false;
324
+ this.selectedSuggestionIndex = -1;
325
+ this.isFocused = false;
326
+ }
327
+ // Show only history in dropdown (e.g. on focus without input)
328
+ showHistoryDropdown() {
329
+ if (this.enableHistory && this.searchHistory.length > 0) {
330
+ // Show only history entries
331
+ const historySuggestions = this.searchHistory.map((term, index) => ({
332
+ id: `history-${index}`,
333
+ text: term,
334
+ type: 'history'
335
+ }));
336
+ this.filteredSuggestions = historySuggestions.slice(0, this.maxSuggestions);
337
+ this.selectedSuggestionIndex = -1;
338
+ }
339
+ else {
340
+ this.filteredSuggestions = [];
341
+ }
342
+ }
343
+ // Check if only history entries are displayed (without text input)
344
+ isShowingOnlyHistory() {
345
+ return this.value.length === 0 &&
346
+ this.filteredSuggestions.length > 0 &&
347
+ this.filteredSuggestions.every(s => s.type === 'history');
348
+ }
349
+ // Render text with highlighted matches
350
+ renderHighlightedText(text, query) {
351
+ if (!query || query.length === 0) {
352
+ return text;
353
+ }
354
+ const lowerText = text.toLowerCase();
355
+ const lowerQuery = query.toLowerCase();
356
+ const index$1 = lowerText.indexOf(lowerQuery);
357
+ if (index$1 === -1) {
358
+ return text;
359
+ }
360
+ const before = text.substring(0, index$1);
361
+ const match = text.substring(index$1, index$1 + query.length);
362
+ const after = text.substring(index$1 + query.length);
363
+ return [
364
+ before,
365
+ index.h("strong", null, match),
366
+ after
367
+ ];
368
+ }
369
+ async componentWillLoad() {
370
+ this.loadSearchHistory();
54
371
  if (!domUtils.isNestedInIfxComponent(this.el)) {
55
372
  const framework = frameworkDetection.detectFramework();
56
373
  frameworkDetection.trackComponent('ifx-search-field', await framework);
@@ -64,7 +381,17 @@ const SearchField = class {
64
381
  this.showDeleteIconInternalState = false;
65
382
  }
66
383
  render() {
67
- return (index.h("div", { key: '3cb0d5615f1b4d1347fb3e0544bf004a714cbdfc', "aria-label": "a search field for user input", "aria-disabled": this.disabled, "aria-value": this.value, class: 'search-field' }, index.h("div", { key: '3360230ce82396ffe875aa7d83b560206bb8f1ec', class: this.getWrapperClassNames(), tabindex: 1, onFocus: () => this.focusInput(), onClick: () => this.focusInput() }, index.h("ifx-icon", { key: '52554466624a2a1c6f9a2c5facfd029128fc0fb0', icon: "search-16", class: "search-icon" }), index.h("input", { key: '38ffcd0628e0346455409bed2017c1eb2768ee73', 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)));
384
+ return (index.h("div", { key: '637f2c7144beb35f9915a64fac8df66d65ec5118', "aria-disabled": this.disabled, "aria-value": this.value, class: 'search-field' }, index.h("div", { key: 'b5c4d373d93a9225ca08db7340e2732f585c5e80', class: this.getWrapperClassNames(), tabindex: 1, onClick: () => this.focusInput() }, index.h("ifx-icon", { key: '6cc46a75102036d4706d8873e4d0481d0bce263f', icon: "search-16", class: "search-icon" }), index.h("input", { key: 'd770d8a5dc8cf75c8a0f3f3f9d557ccf88bf525d', 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) => {
385
+ if (event.key === 'Enter' || event.key === ' ') {
386
+ event.preventDefault();
387
+ this.handleDelete();
388
+ }
389
+ } })) : null), this.showDropdown && this.filteredSuggestions.length > 0 && (index.h("div", { key: 'be15e8157313ad37d0b991ea74b46ba8a7c88880', ref: (el) => (this.dropdownElement = el), id: "suggestions-dropdown", class: "suggestions-dropdown", role: "listbox", "aria-label": this.dropdownAriaLabel }, this.isShowingOnlyHistory() && (index.h("div", { key: 'd3a1e06a246436ffbc239c502bd76c9250317411', 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) => {
390
+ if (event.key === 'Enter' || event.key === ' ') {
391
+ event.preventDefault();
392
+ this.handleHistoryDelete(event, suggestion.text);
393
+ }
394
+ } }))))))))));
68
395
  }
69
396
  getSizeClass() {
70
397
  return `${this.size}` === "s"
@@ -72,11 +399,19 @@ const SearchField = class {
72
399
  : "";
73
400
  }
74
401
  getWrapperClassNames() {
75
- return index$1.classNames(`search-field__wrapper`, `search-field__wrapper ${this.getSizeClass()}`, `${this.isFocused ? 'focused' : ""}`);
402
+ return index$1.classNames(`search-field__wrapper`, `search-field__wrapper ${this.getSizeClass()}`, `${this.isFocused ? 'focused' : ""}`, `${this.showDropdown ? 'dropdown-open' : ""}`);
403
+ }
404
+ getSuggestionClassNames(index) {
405
+ var _a;
406
+ return index$1.classNames('suggestion-item', {
407
+ 'suggestion-item--selected': index === this.selectedSuggestionIndex,
408
+ 'suggestion-item--history': ((_a = this.filteredSuggestions[index]) === null || _a === void 0 ? void 0 : _a.type) === 'history'
409
+ });
76
410
  }
77
411
  get el() { return index.getElement(this); }
78
412
  static get watchers() { return {
79
- "value": ["valueWatcher"]
413
+ "value": ["valueWatcher"],
414
+ "suggestions": ["suggestionsWatcher"]
80
415
  }; }
81
416
  };
82
417
  SearchField.style = IfxSearchFieldStyle0;