@infineon/infineon-design-system-stencil 33.1.1--canary.1804.4db5a203a5155eeaa530f6fcf69f064532731762.0 → 33.1.1--canary.1824.75b5030250f4474f2c947b6e8dc7055bdc915c43.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 (365) 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-chip_3.cjs.entry.js +1 -1
  4. package/dist/cjs/ifx-faq.cjs.entry.js +1 -1
  5. package/dist/cjs/ifx-file-upload.cjs.entry.js +322 -0
  6. package/dist/cjs/ifx-file-upload.cjs.entry.js.map +1 -0
  7. package/dist/cjs/ifx-filter-accordion.cjs.entry.js +2 -2
  8. package/dist/cjs/ifx-filter-bar.cjs.entry.js +1 -1
  9. package/dist/cjs/ifx-filter-search.cjs.entry.js +1 -1
  10. package/dist/cjs/ifx-filter-type-group.cjs.entry.js +1 -1
  11. package/dist/cjs/ifx-footer-column.cjs.entry.js +1 -1
  12. package/dist/cjs/ifx-footer.cjs.entry.js +4 -4
  13. package/dist/cjs/ifx-icon-button.cjs.entry.js +1 -1
  14. package/dist/cjs/ifx-icon.cjs.entry.js +1 -1
  15. package/dist/cjs/ifx-icons-preview.cjs.entry.js +1 -1
  16. package/dist/cjs/ifx-link.cjs.entry.js +1 -1
  17. package/dist/cjs/ifx-list-entry.cjs.entry.js +1 -1
  18. package/dist/cjs/ifx-modal.cjs.entry.js +2 -2
  19. package/dist/cjs/ifx-navbar-item.cjs.entry.js +5 -5
  20. package/dist/cjs/ifx-navbar-profile.cjs.entry.js +3 -3
  21. package/dist/cjs/ifx-navbar.cjs.entry.js +3 -3
  22. package/dist/cjs/ifx-notification.cjs.entry.js +2 -2
  23. package/dist/cjs/ifx-number-indicator.cjs.entry.js +1 -1
  24. package/dist/cjs/ifx-overview-table.cjs.entry.js +1 -1
  25. package/dist/cjs/ifx-progress-bar.cjs.entry.js +1 -1
  26. package/dist/cjs/ifx-radio-button-group.cjs.entry.js +1 -1
  27. package/dist/cjs/ifx-radio-button.cjs.entry.js +2 -2
  28. package/dist/cjs/ifx-search-bar.cjs.entry.js +1 -1
  29. package/dist/cjs/ifx-search-field.cjs.entry.js +1 -1
  30. package/dist/cjs/ifx-segment.cjs.entry.js +1 -1
  31. package/dist/cjs/ifx-segmented-control.cjs.entry.js +2 -2
  32. package/dist/cjs/ifx-select.cjs.entry.js +2 -2
  33. package/dist/cjs/ifx-sidebar-item.cjs.entry.js +5 -5
  34. package/dist/cjs/ifx-sidebar-title.cjs.entry.js +1 -1
  35. package/dist/cjs/ifx-sidebar.cjs.entry.js +5 -5
  36. package/dist/cjs/ifx-slider.cjs.entry.js +2 -2
  37. package/dist/cjs/ifx-spinner_2.cjs.entry.js +6 -6
  38. package/dist/cjs/ifx-status.cjs.entry.js +1 -1
  39. package/dist/cjs/ifx-step.cjs.entry.js +4 -4
  40. package/dist/cjs/ifx-stepper.cjs.entry.js +2 -2
  41. package/dist/cjs/ifx-switch.cjs.entry.js +1 -1
  42. package/dist/cjs/ifx-tab.cjs.entry.js +1 -1
  43. package/dist/cjs/ifx-table.cjs.entry.js +2 -2
  44. package/dist/cjs/ifx-tabs.cjs.entry.js +2 -2
  45. package/dist/cjs/ifx-tag.cjs.entry.js +1 -1
  46. package/dist/cjs/ifx-templates-ui.cjs.entry.js +1 -1
  47. package/dist/cjs/ifx-textarea.cjs.entry.js +1 -1
  48. package/dist/cjs/ifx-tooltip.cjs.entry.js +4 -4
  49. package/dist/cjs/index-c9480f70.js +12 -8
  50. package/dist/cjs/infineon-design-system-stencil.cjs.js +1 -1
  51. package/dist/cjs/loader.cjs.js +1 -1
  52. package/dist/collection/collection-manifest.json +1 -0
  53. package/dist/collection/components/file-upload/file-upload.css +144 -0
  54. package/dist/collection/components/file-upload/file-upload.js +749 -0
  55. package/dist/collection/components/file-upload/file-upload.js.map +1 -0
  56. package/dist/collection/components/file-upload/file-upload.stories.js +144 -0
  57. package/dist/collection/components/file-upload/file-upload.stories.js.map +1 -0
  58. package/dist/collection/components/footer/footer-column.js +1 -1
  59. package/dist/collection/components/footer/footer.js +4 -4
  60. package/dist/collection/components/icon/infineonIconStencil.js +1 -1
  61. package/dist/collection/components/icon-button/icon-button.js +1 -1
  62. package/dist/collection/components/icons-preview/icons-preview.js +1 -1
  63. package/dist/collection/components/link/link.js +1 -1
  64. package/dist/collection/components/modal/modal.js +2 -2
  65. package/dist/collection/components/navigation/navbar/navbar-item.js +5 -5
  66. package/dist/collection/components/navigation/navbar/navbar-profile.js +3 -3
  67. package/dist/collection/components/navigation/navbar/navbar.js +3 -3
  68. package/dist/collection/components/navigation/sidebar/sidebar-item.js +5 -5
  69. package/dist/collection/components/navigation/sidebar/sidebar-title.js +1 -1
  70. package/dist/collection/components/navigation/sidebar/sidebar.js +5 -5
  71. package/dist/collection/components/notification/notification.js +2 -2
  72. package/dist/collection/components/number-indicator/number-indicator.js +1 -1
  73. package/dist/collection/components/overview-table/overview-table.js +1 -1
  74. package/dist/collection/components/pagination/pagination.js +1 -1
  75. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  76. package/dist/collection/components/radio-button/radio-button.js +2 -2
  77. package/dist/collection/components/radio-button-group/radio-button-group.js +1 -1
  78. package/dist/collection/components/search-bar/search-bar.js +1 -1
  79. package/dist/collection/components/search-field/search-field.js +1 -1
  80. package/dist/collection/components/segmented-control/segment/segment.js +1 -1
  81. package/dist/collection/components/segmented-control/segmented-control.js +2 -2
  82. package/dist/collection/components/select/single-select/select.js +2 -2
  83. package/dist/collection/components/slider/slider.js +2 -2
  84. package/dist/collection/components/spinner/spinner.js +2 -2
  85. package/dist/collection/components/status/status.js +1 -1
  86. package/dist/collection/components/stepper/step/step.js +4 -4
  87. package/dist/collection/components/stepper/stepper.js +2 -2
  88. package/dist/collection/components/switch/switch.js +1 -1
  89. package/dist/collection/components/table-advanced-version/filter-bar/filter-bar.js +1 -1
  90. package/dist/collection/components/table-advanced-version/filter-type-group/filter-accordion/filter-accordion.js +2 -2
  91. package/dist/collection/components/table-advanced-version/filter-type-group/filter-search/filter-search.js +1 -1
  92. package/dist/collection/components/table-advanced-version/filter-type-group/filter-type-group.js +1 -1
  93. package/dist/collection/components/table-advanced-version/list/list-entry/list-entry.js +1 -1
  94. package/dist/collection/components/table-advanced-version/table.js +2 -2
  95. package/dist/collection/components/table-basic-version/table.js +1 -1
  96. package/dist/collection/components/tabs/tab.js +1 -1
  97. package/dist/collection/components/tabs/tabs.js +2 -2
  98. package/dist/collection/components/tag/tag.js +1 -1
  99. package/dist/collection/components/templates/template/template.js +1 -1
  100. package/dist/collection/components/templates/templates-ui/templates-ui.js +1 -1
  101. package/dist/collection/components/text-field/text-field.js +4 -4
  102. package/dist/collection/components/textarea/textarea.js +1 -1
  103. package/dist/collection/components/tooltip/tooltip.js +4 -4
  104. package/dist/collection/stories/setup-and-installation/faq/faq.js +1 -1
  105. package/dist/components/ifx-accordion-item.js +1 -1
  106. package/dist/components/ifx-alert.js +1 -1
  107. package/dist/components/ifx-basic-table.js +1 -1
  108. package/dist/components/ifx-breadcrumb-item-label.js +1 -1
  109. package/dist/components/ifx-checkbox-group.js +1 -1
  110. package/dist/components/ifx-checkbox.js +1 -1
  111. package/dist/components/ifx-chip-item.js +1 -1
  112. package/dist/components/ifx-chip.js +1 -1
  113. package/dist/components/ifx-date-picker.js +1 -1
  114. package/dist/components/ifx-download.js +1 -1
  115. package/dist/components/ifx-dropdown-item.js +1 -1
  116. package/dist/components/ifx-dropdown-trigger-button.js +1 -1
  117. package/dist/components/ifx-faq.js +3 -3
  118. package/dist/components/ifx-file-upload.d.ts +11 -0
  119. package/dist/components/ifx-file-upload.js +377 -0
  120. package/dist/components/ifx-file-upload.js.map +1 -0
  121. package/dist/components/ifx-filter-accordion.js +4 -4
  122. package/dist/components/ifx-filter-bar.js +2 -2
  123. package/dist/components/ifx-filter-search.js +3 -3
  124. package/dist/components/ifx-filter-type-group.js +1 -1
  125. package/dist/components/ifx-footer-column.js +1 -1
  126. package/dist/components/ifx-footer.js +4 -4
  127. package/dist/components/ifx-icon-button.js +1 -1
  128. package/dist/components/ifx-icon.js +1 -1
  129. package/dist/components/ifx-icons-preview.js +4 -4
  130. package/dist/components/ifx-link.js +1 -1
  131. package/dist/components/ifx-list-entry.js +4 -4
  132. package/dist/components/ifx-list.js +2 -2
  133. package/dist/components/ifx-modal.js +4 -4
  134. package/dist/components/ifx-multiselect.js +1 -1
  135. package/dist/components/ifx-navbar-item.js +7 -7
  136. package/dist/components/ifx-navbar-profile.js +3 -3
  137. package/dist/components/ifx-navbar.js +4 -4
  138. package/dist/components/ifx-notification.js +1 -1
  139. package/dist/components/ifx-number-indicator.js +1 -1
  140. package/dist/components/ifx-overview-table.js +4 -4
  141. package/dist/components/ifx-pagination.js +1 -1
  142. package/dist/components/ifx-progress-bar.js +1 -49
  143. package/dist/components/ifx-progress-bar.js.map +1 -1
  144. package/dist/components/ifx-radio-button-group.js +2 -2
  145. package/dist/components/ifx-radio-button.js +1 -1
  146. package/dist/components/ifx-search-bar.js +3 -3
  147. package/dist/components/ifx-search-field.js +1 -1
  148. package/dist/components/ifx-segment.js +2 -2
  149. package/dist/components/ifx-segmented-control.js +3 -3
  150. package/dist/components/ifx-select.js +1 -1
  151. package/dist/components/ifx-set-filter.js +5 -5
  152. package/dist/components/ifx-sidebar-item.js +7 -7
  153. package/dist/components/ifx-sidebar-title.js +1 -1
  154. package/dist/components/ifx-sidebar.js +5 -5
  155. package/dist/components/ifx-slider.js +3 -3
  156. package/dist/components/ifx-spinner.js +1 -1
  157. package/dist/components/ifx-status.js +1 -1
  158. package/dist/components/ifx-step.js +5 -5
  159. package/dist/components/ifx-stepper.js +2 -2
  160. package/dist/components/ifx-switch.js +1 -1
  161. package/dist/components/ifx-tab.js +1 -1
  162. package/dist/components/ifx-table.js +10 -10
  163. package/dist/components/ifx-tabs.js +3 -3
  164. package/dist/components/ifx-tag.js +2 -2
  165. package/dist/components/ifx-template.js +1 -1
  166. package/dist/components/ifx-templates-ui.js +8 -8
  167. package/dist/components/ifx-text-field.js +1 -1
  168. package/dist/components/ifx-textarea.js +1 -1
  169. package/dist/components/ifx-tooltip.js +5 -5
  170. package/dist/components/{p-07bb50b8.js → p-05c79468.js} +6 -6
  171. package/dist/components/{p-07bb50b8.js.map → p-05c79468.js.map} +1 -1
  172. package/dist/components/{p-519cb249.js → p-0e277223.js} +3 -3
  173. package/dist/components/{p-519cb249.js.map → p-0e277223.js.map} +1 -1
  174. package/dist/components/{p-47b9635d.js → p-1678fee6.js} +3 -3
  175. package/dist/components/{p-47b9635d.js.map → p-1678fee6.js.map} +1 -1
  176. package/dist/components/{p-493b7a31.js → p-18b340af.js} +2 -2
  177. package/dist/components/{p-493b7a31.js.map → p-18b340af.js.map} +1 -1
  178. package/dist/components/{p-94e019a6.js → p-2bc9826e.js} +2 -2
  179. package/dist/components/{p-94e019a6.js.map → p-2bc9826e.js.map} +1 -1
  180. package/dist/components/{p-f579ea93.js → p-2c77bbe2.js} +6 -6
  181. package/dist/components/{p-f579ea93.js.map → p-2c77bbe2.js.map} +1 -1
  182. package/dist/components/{p-e7551b24.js → p-35d83f23.js} +2 -2
  183. package/dist/components/{p-e7551b24.js.map → p-35d83f23.js.map} +1 -1
  184. package/dist/components/{p-58a0ff65.js → p-461cf021.js} +3 -3
  185. package/dist/components/{p-58a0ff65.js.map → p-461cf021.js.map} +1 -1
  186. package/dist/components/{p-eadd0c22.js → p-48f52e18.js} +3 -3
  187. package/dist/components/{p-eadd0c22.js.map → p-48f52e18.js.map} +1 -1
  188. package/dist/components/{p-4ac265d2.js → p-846923e6.js} +2 -2
  189. package/dist/components/{p-4ac265d2.js.map → p-846923e6.js.map} +1 -1
  190. package/dist/components/{p-03acdbd0.js → p-9306088d.js} +2 -2
  191. package/dist/components/{p-03acdbd0.js.map → p-9306088d.js.map} +1 -1
  192. package/dist/components/{p-107fafa0.js → p-ab514a04.js} +5 -5
  193. package/dist/components/{p-107fafa0.js.map → p-ab514a04.js.map} +1 -1
  194. package/dist/components/{p-1718b5a9.js → p-bef5241a.js} +4 -4
  195. package/dist/components/{p-1718b5a9.js.map → p-bef5241a.js.map} +1 -1
  196. package/dist/components/{p-02830916.js → p-ccc83a43.js} +2 -2
  197. package/dist/components/{p-02830916.js.map → p-ccc83a43.js.map} +1 -1
  198. package/dist/components/{p-5853aeb8.js → p-cd9e4789.js} +3 -3
  199. package/dist/components/{p-5853aeb8.js.map → p-cd9e4789.js.map} +1 -1
  200. package/dist/components/p-cf1e2d94.js +53 -0
  201. package/dist/components/p-cf1e2d94.js.map +1 -0
  202. package/dist/components/{p-b024aa08.js → p-d1985f77.js} +3 -3
  203. package/dist/components/{p-b024aa08.js.map → p-d1985f77.js.map} +1 -1
  204. package/dist/components/{p-bf2666f8.js → p-fa58a72c.js} +5 -5
  205. package/dist/components/{p-bf2666f8.js.map → p-fa58a72c.js.map} +1 -1
  206. package/dist/components/{p-3954dc5f.js → p-fc183f8e.js} +3 -3
  207. package/dist/components/{p-3954dc5f.js.map → p-fc183f8e.js.map} +1 -1
  208. package/dist/esm/ifx-alert_2.entry.js +1 -1
  209. package/dist/esm/ifx-basic-table.entry.js +1 -1
  210. package/dist/esm/ifx-chip_3.entry.js +1 -1
  211. package/dist/esm/ifx-faq.entry.js +1 -1
  212. package/dist/esm/ifx-file-upload.entry.js +318 -0
  213. package/dist/esm/ifx-file-upload.entry.js.map +1 -0
  214. package/dist/esm/ifx-filter-accordion.entry.js +2 -2
  215. package/dist/esm/ifx-filter-bar.entry.js +1 -1
  216. package/dist/esm/ifx-filter-search.entry.js +1 -1
  217. package/dist/esm/ifx-filter-type-group.entry.js +1 -1
  218. package/dist/esm/ifx-footer-column.entry.js +1 -1
  219. package/dist/esm/ifx-footer.entry.js +4 -4
  220. package/dist/esm/ifx-icon-button.entry.js +1 -1
  221. package/dist/esm/ifx-icon.entry.js +1 -1
  222. package/dist/esm/ifx-icons-preview.entry.js +1 -1
  223. package/dist/esm/ifx-link.entry.js +1 -1
  224. package/dist/esm/ifx-list-entry.entry.js +1 -1
  225. package/dist/esm/ifx-modal.entry.js +2 -2
  226. package/dist/esm/ifx-navbar-item.entry.js +5 -5
  227. package/dist/esm/ifx-navbar-profile.entry.js +3 -3
  228. package/dist/esm/ifx-navbar.entry.js +3 -3
  229. package/dist/esm/ifx-notification.entry.js +2 -2
  230. package/dist/esm/ifx-number-indicator.entry.js +1 -1
  231. package/dist/esm/ifx-overview-table.entry.js +1 -1
  232. package/dist/esm/ifx-progress-bar.entry.js +1 -1
  233. package/dist/esm/ifx-radio-button-group.entry.js +1 -1
  234. package/dist/esm/ifx-radio-button.entry.js +2 -2
  235. package/dist/esm/ifx-search-bar.entry.js +1 -1
  236. package/dist/esm/ifx-search-field.entry.js +1 -1
  237. package/dist/esm/ifx-segment.entry.js +1 -1
  238. package/dist/esm/ifx-segmented-control.entry.js +2 -2
  239. package/dist/esm/ifx-select.entry.js +2 -2
  240. package/dist/esm/ifx-sidebar-item.entry.js +5 -5
  241. package/dist/esm/ifx-sidebar-title.entry.js +1 -1
  242. package/dist/esm/ifx-sidebar.entry.js +5 -5
  243. package/dist/esm/ifx-slider.entry.js +2 -2
  244. package/dist/esm/ifx-spinner_2.entry.js +6 -6
  245. package/dist/esm/ifx-status.entry.js +1 -1
  246. package/dist/esm/ifx-step.entry.js +4 -4
  247. package/dist/esm/ifx-stepper.entry.js +2 -2
  248. package/dist/esm/ifx-switch.entry.js +1 -1
  249. package/dist/esm/ifx-tab.entry.js +1 -1
  250. package/dist/esm/ifx-table.entry.js +2 -2
  251. package/dist/esm/ifx-tabs.entry.js +2 -2
  252. package/dist/esm/ifx-tag.entry.js +1 -1
  253. package/dist/esm/ifx-templates-ui.entry.js +1 -1
  254. package/dist/esm/ifx-textarea.entry.js +1 -1
  255. package/dist/esm/ifx-tooltip.entry.js +4 -4
  256. package/dist/esm/index-c77e25a0.js +12 -8
  257. package/dist/esm/infineon-design-system-stencil.js +1 -1
  258. package/dist/esm/loader.js +1 -1
  259. package/dist/infineon-design-system-stencil/infineon-design-system-stencil.esm.js +1 -1
  260. package/dist/infineon-design-system-stencil/infineon-design-system-stencil.esm.js.map +1 -1
  261. package/dist/infineon-design-system-stencil/p-021719f5.entry.js +2 -0
  262. package/dist/infineon-design-system-stencil/{p-e57f8890.entry.js → p-0306ed65.entry.js} +2 -2
  263. package/dist/infineon-design-system-stencil/{p-37e75e7c.entry.js → p-051f1f75.entry.js} +2 -2
  264. package/dist/infineon-design-system-stencil/{p-711d5051.entry.js → p-08ded326.entry.js} +2 -2
  265. package/dist/infineon-design-system-stencil/{p-67c63b48.entry.js → p-0be5bec9.entry.js} +2 -2
  266. package/dist/infineon-design-system-stencil/{p-95b48437.entry.js → p-13e47c02.entry.js} +2 -2
  267. package/dist/infineon-design-system-stencil/{p-68b06d9b.entry.js → p-1c80700d.entry.js} +2 -2
  268. package/dist/infineon-design-system-stencil/p-1dbd5a8f.entry.js +2 -0
  269. package/dist/infineon-design-system-stencil/{p-8b21a331.entry.js → p-2170ccf1.entry.js} +2 -2
  270. package/dist/infineon-design-system-stencil/{p-1de4f93c.entry.js → p-31f3dba0.entry.js} +2 -2
  271. package/dist/infineon-design-system-stencil/{p-9feda3ff.entry.js → p-38a17a09.entry.js} +2 -2
  272. package/dist/infineon-design-system-stencil/{p-7abdbf1f.entry.js → p-38fd172b.entry.js} +2 -2
  273. package/dist/infineon-design-system-stencil/{p-a06f2543.entry.js → p-3d4c474f.entry.js} +2 -2
  274. package/dist/infineon-design-system-stencil/{p-a0d570a0.entry.js → p-3f5e136b.entry.js} +2 -2
  275. package/dist/infineon-design-system-stencil/p-42234c99.entry.js +2 -0
  276. package/dist/infineon-design-system-stencil/{p-33b93a7c.entry.js → p-42964c5d.entry.js} +2 -2
  277. package/dist/infineon-design-system-stencil/{p-ecc58519.entry.js → p-44ffa393.entry.js} +2 -2
  278. package/dist/infineon-design-system-stencil/{p-5ba50092.entry.js → p-474b0bda.entry.js} +2 -2
  279. package/dist/infineon-design-system-stencil/{p-14b4d7f0.entry.js → p-51c067b1.entry.js} +2 -2
  280. package/dist/infineon-design-system-stencil/{p-e447fb1f.entry.js → p-534ef91b.entry.js} +2 -2
  281. package/dist/infineon-design-system-stencil/{p-3c039adc.entry.js → p-54d98fa9.entry.js} +2 -2
  282. package/dist/infineon-design-system-stencil/p-582970ed.entry.js +2 -0
  283. package/dist/infineon-design-system-stencil/{p-1abbcdbc.entry.js → p-5bc7c9cc.entry.js} +2 -2
  284. package/dist/infineon-design-system-stencil/p-5bef967e.entry.js +2 -0
  285. package/dist/infineon-design-system-stencil/p-5bef967e.entry.js.map +1 -0
  286. package/dist/infineon-design-system-stencil/{p-d08d3dd7.entry.js → p-5e300ee5.entry.js} +2 -2
  287. package/dist/infineon-design-system-stencil/{p-5536a9c8.entry.js → p-63679e7a.entry.js} +2 -2
  288. package/dist/infineon-design-system-stencil/{p-f99f62ec.entry.js → p-68f13949.entry.js} +2 -2
  289. package/dist/infineon-design-system-stencil/{p-1fca1eb2.entry.js → p-7103bb15.entry.js} +2 -2
  290. package/dist/infineon-design-system-stencil/{p-86ba198c.entry.js → p-81391688.entry.js} +2 -2
  291. package/dist/infineon-design-system-stencil/{p-dc49f3c8.entry.js → p-8319c8c5.entry.js} +2 -2
  292. package/dist/infineon-design-system-stencil/{p-6ee1b4e7.entry.js → p-89f8f8c7.entry.js} +2 -2
  293. package/dist/infineon-design-system-stencil/{p-a8eb23b6.entry.js → p-99a53e43.entry.js} +2 -2
  294. package/dist/infineon-design-system-stencil/{p-48ea6a67.entry.js → p-acf32338.entry.js} +2 -2
  295. package/dist/infineon-design-system-stencil/{p-58af50fc.entry.js → p-ad24c623.entry.js} +2 -2
  296. package/dist/infineon-design-system-stencil/{p-6b9ecace.entry.js → p-af1d9944.entry.js} +2 -2
  297. package/dist/infineon-design-system-stencil/{p-500f71cc.entry.js → p-bbc83759.entry.js} +2 -2
  298. package/dist/infineon-design-system-stencil/p-bdb0e937.entry.js +2 -0
  299. package/dist/infineon-design-system-stencil/{p-e2d0ad64.entry.js → p-be9c2a02.entry.js} +2 -2
  300. package/dist/infineon-design-system-stencil/{p-59fb1317.entry.js → p-c950abaf.entry.js} +2 -2
  301. package/dist/infineon-design-system-stencil/{p-d30f4aed.entry.js → p-ca42aecb.entry.js} +2 -2
  302. package/dist/infineon-design-system-stencil/{p-b7057914.entry.js → p-ce55b323.entry.js} +2 -2
  303. package/dist/infineon-design-system-stencil/{p-b63754ff.entry.js → p-d097a48f.entry.js} +2 -2
  304. package/dist/infineon-design-system-stencil/{p-9e413f66.entry.js → p-d4a4c134.entry.js} +2 -2
  305. package/dist/infineon-design-system-stencil/{p-9fabb3bc.entry.js → p-d66fc7fa.entry.js} +2 -2
  306. package/dist/infineon-design-system-stencil/p-e54766be.entry.js +2 -0
  307. package/dist/infineon-design-system-stencil/{p-8a0b4540.entry.js → p-e6f4865a.entry.js} +2 -2
  308. package/dist/infineon-design-system-stencil/p-edf98dc3.entry.js +2 -0
  309. package/dist/types/components/file-upload/file-upload.d.ts +88 -0
  310. package/dist/types/components/file-upload/file-upload.stories.d.ts +7 -0
  311. package/dist/types/components.d.ts +68 -0
  312. package/package.json +1 -1
  313. package/dist/infineon-design-system-stencil/p-00c52c84.entry.js +0 -2
  314. package/dist/infineon-design-system-stencil/p-1b59a7f9.entry.js +0 -2
  315. package/dist/infineon-design-system-stencil/p-1c19f8ce.entry.js +0 -2
  316. package/dist/infineon-design-system-stencil/p-65d9faca.entry.js +0 -2
  317. package/dist/infineon-design-system-stencil/p-6f590954.entry.js +0 -2
  318. package/dist/infineon-design-system-stencil/p-8dbe0add.entry.js +0 -2
  319. package/dist/infineon-design-system-stencil/p-e4de8215.entry.js +0 -2
  320. /package/dist/infineon-design-system-stencil/{p-1b59a7f9.entry.js.map → p-021719f5.entry.js.map} +0 -0
  321. /package/dist/infineon-design-system-stencil/{p-e57f8890.entry.js.map → p-0306ed65.entry.js.map} +0 -0
  322. /package/dist/infineon-design-system-stencil/{p-37e75e7c.entry.js.map → p-051f1f75.entry.js.map} +0 -0
  323. /package/dist/infineon-design-system-stencil/{p-711d5051.entry.js.map → p-08ded326.entry.js.map} +0 -0
  324. /package/dist/infineon-design-system-stencil/{p-67c63b48.entry.js.map → p-0be5bec9.entry.js.map} +0 -0
  325. /package/dist/infineon-design-system-stencil/{p-95b48437.entry.js.map → p-13e47c02.entry.js.map} +0 -0
  326. /package/dist/infineon-design-system-stencil/{p-68b06d9b.entry.js.map → p-1c80700d.entry.js.map} +0 -0
  327. /package/dist/infineon-design-system-stencil/{p-00c52c84.entry.js.map → p-1dbd5a8f.entry.js.map} +0 -0
  328. /package/dist/infineon-design-system-stencil/{p-8b21a331.entry.js.map → p-2170ccf1.entry.js.map} +0 -0
  329. /package/dist/infineon-design-system-stencil/{p-1de4f93c.entry.js.map → p-31f3dba0.entry.js.map} +0 -0
  330. /package/dist/infineon-design-system-stencil/{p-9feda3ff.entry.js.map → p-38a17a09.entry.js.map} +0 -0
  331. /package/dist/infineon-design-system-stencil/{p-7abdbf1f.entry.js.map → p-38fd172b.entry.js.map} +0 -0
  332. /package/dist/infineon-design-system-stencil/{p-a06f2543.entry.js.map → p-3d4c474f.entry.js.map} +0 -0
  333. /package/dist/infineon-design-system-stencil/{p-a0d570a0.entry.js.map → p-3f5e136b.entry.js.map} +0 -0
  334. /package/dist/infineon-design-system-stencil/{p-8dbe0add.entry.js.map → p-42234c99.entry.js.map} +0 -0
  335. /package/dist/infineon-design-system-stencil/{p-33b93a7c.entry.js.map → p-42964c5d.entry.js.map} +0 -0
  336. /package/dist/infineon-design-system-stencil/{p-ecc58519.entry.js.map → p-44ffa393.entry.js.map} +0 -0
  337. /package/dist/infineon-design-system-stencil/{p-5ba50092.entry.js.map → p-474b0bda.entry.js.map} +0 -0
  338. /package/dist/infineon-design-system-stencil/{p-14b4d7f0.entry.js.map → p-51c067b1.entry.js.map} +0 -0
  339. /package/dist/infineon-design-system-stencil/{p-e447fb1f.entry.js.map → p-534ef91b.entry.js.map} +0 -0
  340. /package/dist/infineon-design-system-stencil/{p-3c039adc.entry.js.map → p-54d98fa9.entry.js.map} +0 -0
  341. /package/dist/infineon-design-system-stencil/{p-e4de8215.entry.js.map → p-582970ed.entry.js.map} +0 -0
  342. /package/dist/infineon-design-system-stencil/{p-1abbcdbc.entry.js.map → p-5bc7c9cc.entry.js.map} +0 -0
  343. /package/dist/infineon-design-system-stencil/{p-d08d3dd7.entry.js.map → p-5e300ee5.entry.js.map} +0 -0
  344. /package/dist/infineon-design-system-stencil/{p-5536a9c8.entry.js.map → p-63679e7a.entry.js.map} +0 -0
  345. /package/dist/infineon-design-system-stencil/{p-f99f62ec.entry.js.map → p-68f13949.entry.js.map} +0 -0
  346. /package/dist/infineon-design-system-stencil/{p-1fca1eb2.entry.js.map → p-7103bb15.entry.js.map} +0 -0
  347. /package/dist/infineon-design-system-stencil/{p-86ba198c.entry.js.map → p-81391688.entry.js.map} +0 -0
  348. /package/dist/infineon-design-system-stencil/{p-dc49f3c8.entry.js.map → p-8319c8c5.entry.js.map} +0 -0
  349. /package/dist/infineon-design-system-stencil/{p-6ee1b4e7.entry.js.map → p-89f8f8c7.entry.js.map} +0 -0
  350. /package/dist/infineon-design-system-stencil/{p-a8eb23b6.entry.js.map → p-99a53e43.entry.js.map} +0 -0
  351. /package/dist/infineon-design-system-stencil/{p-48ea6a67.entry.js.map → p-acf32338.entry.js.map} +0 -0
  352. /package/dist/infineon-design-system-stencil/{p-58af50fc.entry.js.map → p-ad24c623.entry.js.map} +0 -0
  353. /package/dist/infineon-design-system-stencil/{p-6b9ecace.entry.js.map → p-af1d9944.entry.js.map} +0 -0
  354. /package/dist/infineon-design-system-stencil/{p-500f71cc.entry.js.map → p-bbc83759.entry.js.map} +0 -0
  355. /package/dist/infineon-design-system-stencil/{p-65d9faca.entry.js.map → p-bdb0e937.entry.js.map} +0 -0
  356. /package/dist/infineon-design-system-stencil/{p-e2d0ad64.entry.js.map → p-be9c2a02.entry.js.map} +0 -0
  357. /package/dist/infineon-design-system-stencil/{p-59fb1317.entry.js.map → p-c950abaf.entry.js.map} +0 -0
  358. /package/dist/infineon-design-system-stencil/{p-d30f4aed.entry.js.map → p-ca42aecb.entry.js.map} +0 -0
  359. /package/dist/infineon-design-system-stencil/{p-b7057914.entry.js.map → p-ce55b323.entry.js.map} +0 -0
  360. /package/dist/infineon-design-system-stencil/{p-b63754ff.entry.js.map → p-d097a48f.entry.js.map} +0 -0
  361. /package/dist/infineon-design-system-stencil/{p-9e413f66.entry.js.map → p-d4a4c134.entry.js.map} +0 -0
  362. /package/dist/infineon-design-system-stencil/{p-9fabb3bc.entry.js.map → p-d66fc7fa.entry.js.map} +0 -0
  363. /package/dist/infineon-design-system-stencil/{p-1c19f8ce.entry.js.map → p-e54766be.entry.js.map} +0 -0
  364. /package/dist/infineon-design-system-stencil/{p-8a0b4540.entry.js.map → p-e6f4865a.entry.js.map} +0 -0
  365. /package/dist/infineon-design-system-stencil/{p-6f590954.entry.js.map → p-edf98dc3.entry.js.map} +0 -0
@@ -0,0 +1,749 @@
1
+ import { h } from "@stencil/core";
2
+ export class IfxFileUpload {
3
+ constructor() {
4
+ this.dragAndDrop = false;
5
+ this.maxFileSizeMB = 7;
6
+ this.allowedFileTypes = ['jpg', 'jpeg', 'png', 'pdf', 'mov', 'mp3', 'mp4'];
7
+ this.labelBrowseFiles = 'Browse files';
8
+ this.labelDragAndDrop = 'Drag & Drop or browse files to upload';
9
+ this.labelFileTooLarge = 'Upload failed. Max file size: {{size}}MB.';
10
+ this.labelUnsupportedFileType = 'Unsupported file type.';
11
+ this.labelUploaded = 'Successfully uploaded';
12
+ this.labelSupportedFormatsTemplate = 'Supported file formats: {{types}}. Max file size: {{size}}MB.';
13
+ this.isDragOver = false;
14
+ this.files = [];
15
+ this.uploadTasks = [];
16
+ this.rejectedSizeFiles = [];
17
+ this.rejectedTypeFiles = [];
18
+ this.fileInputEl = null;
19
+ this.extensionToMimeMap = {
20
+ jpg: 'image/jpeg',
21
+ jpeg: 'image/jpeg',
22
+ png: 'image/png',
23
+ pdf: 'application/pdf',
24
+ mov: 'video/quicktime',
25
+ mp3: 'audio/mpeg',
26
+ mp4: 'video/mp4'
27
+ };
28
+ }
29
+ getNormalizedFileTypes() {
30
+ if (Array.isArray(this.allowedFileTypes)) {
31
+ return this.allowedFileTypes;
32
+ }
33
+ try {
34
+ return JSON.parse(this.allowedFileTypes);
35
+ }
36
+ catch (_a) {
37
+ return this.allowedFileTypes.split(',').map(t => t.trim());
38
+ }
39
+ }
40
+ handleFileChange(event) {
41
+ const input = event.target;
42
+ if (!input.files)
43
+ return;
44
+ this.processFiles(input.files);
45
+ }
46
+ handleDrop(event) {
47
+ var _a;
48
+ event.preventDefault();
49
+ event.stopPropagation();
50
+ this.isDragOver = false;
51
+ if ((_a = event.dataTransfer) === null || _a === void 0 ? void 0 : _a.files) {
52
+ const droppedFiles = Array.from(event.dataTransfer.files);
53
+ const allowedMimes = this.getNormalizedFileTypes()
54
+ .map(ext => this.extensionToMimeMap[ext.toLowerCase()])
55
+ .filter(Boolean);
56
+ const acceptedFiles = [];
57
+ const rejectedFiles = [];
58
+ droppedFiles.forEach(file => {
59
+ const isValidType = allowedMimes.includes(file.type);
60
+ const isValidSize = file.size <= this.maxFileSizeMB * 1024 * 1024;
61
+ if (isValidType && isValidSize)
62
+ acceptedFiles.push(file);
63
+ else
64
+ rejectedFiles.push(file);
65
+ });
66
+ this.ifxFileUploadDrop.emit({
67
+ droppedFiles,
68
+ acceptedFiles,
69
+ rejectedFiles
70
+ });
71
+ this.processFiles(event.dataTransfer.files);
72
+ }
73
+ }
74
+ handleDragOver(event) {
75
+ event.preventDefault();
76
+ this.isDragOver = true;
77
+ }
78
+ handleDragLeave(event) {
79
+ event.preventDefault();
80
+ this.isDragOver = false;
81
+ }
82
+ processFiles(fileList) {
83
+ const selectedFiles = Array.from(fileList);
84
+ const allowedMimes = this.getNormalizedFileTypes()
85
+ .map(ext => this.extensionToMimeMap[ext.toLowerCase()])
86
+ .filter(Boolean);
87
+ const validFiles = [];
88
+ const rejectedSize = [];
89
+ const rejectedType = [];
90
+ selectedFiles.forEach(file => {
91
+ const isValidType = allowedMimes.includes(file.type);
92
+ const isValidSize = file.size <= this.maxFileSizeMB * 1024 * 1024;
93
+ if (isValidType && isValidSize) {
94
+ validFiles.push(file);
95
+ }
96
+ else {
97
+ if (!isValidType) {
98
+ rejectedType.push(file.name);
99
+ this.ifxFileUploadInvalid.emit({ file, reason: 'invalid-type' });
100
+ }
101
+ if (!isValidSize) {
102
+ rejectedSize.push(file.name);
103
+ this.ifxFileUploadInvalid.emit({ file, reason: 'invalid-size' });
104
+ }
105
+ this.ifxFileUploadError.emit({ file, errorType: !isValidType ? 'invalid-type' : 'file-too-large', message: 'Invalid file rejected' });
106
+ }
107
+ });
108
+ this.rejectedSizeFiles = [...this.rejectedSizeFiles, ...rejectedSize];
109
+ this.rejectedTypeFiles = [...this.rejectedTypeFiles, ...rejectedType];
110
+ validFiles.forEach(file => this.startUpload(file));
111
+ this.files = [...this.files, ...validFiles];
112
+ if (validFiles.length > 0) {
113
+ this.ifxFileUploadAdd.emit({ addedFiles: validFiles, files: this.files });
114
+ this.ifxFileUploadChange.emit({ files: this.files });
115
+ }
116
+ }
117
+ startUpload(file) {
118
+ this.ifxFileUploadStart.emit({ file });
119
+ const task = {
120
+ file,
121
+ progress: 0,
122
+ intervalId: null,
123
+ completed: false
124
+ };
125
+ if (this.uploadHandler) {
126
+ // Real Upload
127
+ // <ifx-file-upload
128
+ // uploadHandler={(file) => {
129
+ // const formData = new FormData();
130
+ // formData.append('file', file);
131
+ // return fetch('/api/upload', {
132
+ // method: 'POST',
133
+ // body: formData
134
+ // }).then(res => {
135
+ // if (!res.ok) throw new Error('Upload failed');
136
+ // });
137
+ // }}
138
+ // ></ifx-file-upload>
139
+ this.uploadHandler(file).then(() => {
140
+ task.progress = 100;
141
+ task.completed = true;
142
+ this.uploadTasks = [...this.uploadTasks];
143
+ this.ifxFileUploadComplete.emit({ file });
144
+ this.ifxFileUploadChange.emit({ files: this.files });
145
+ }).catch(() => {
146
+ console.error('Upload failed');
147
+ this.ifxFileUploadError.emit({ file, errorType: 'upload-failed', message: 'Upload handler rejected file' });
148
+ });
149
+ }
150
+ else {
151
+ const totalSize = file.size;
152
+ const fakeUploadSpeed = 500000;
153
+ let uploaded = 0;
154
+ task.intervalId = window.setInterval(() => {
155
+ uploaded += fakeUploadSpeed / 5;
156
+ const progress = Math.min(100, Math.round((uploaded / totalSize) * 100));
157
+ task.progress = progress;
158
+ this.uploadTasks = [...this.uploadTasks];
159
+ if (progress >= 100) {
160
+ clearInterval(task.intervalId);
161
+ task.completed = true;
162
+ task.intervalId = null;
163
+ this.uploadTasks = [...this.uploadTasks];
164
+ this.ifxFileUploadComplete.emit({ file });
165
+ this.ifxFileUploadChange.emit({ files: this.files });
166
+ }
167
+ }, 200);
168
+ }
169
+ this.uploadTasks = [...this.uploadTasks, task];
170
+ }
171
+ cancelUpload(file) {
172
+ const taskIndex = this.uploadTasks.findIndex(t => t.file.name === file.name);
173
+ if (taskIndex !== -1) {
174
+ const task = this.uploadTasks[taskIndex];
175
+ if ((task === null || task === void 0 ? void 0 : task.intervalId) !== null) {
176
+ clearInterval(task.intervalId);
177
+ }
178
+ this.uploadTasks = this.uploadTasks.filter((_, i) => i !== taskIndex);
179
+ }
180
+ this.files = this.files.filter(f => f.name !== file.name);
181
+ this.ifxFileUploadAbort.emit({ file });
182
+ this.ifxFileUploadChange.emit({ files: this.files });
183
+ if (this.fileInputEl) {
184
+ this.fileInputEl.value = '';
185
+ }
186
+ }
187
+ removeFile(file) {
188
+ this.uploadTasks = this.uploadTasks.filter(task => task.file.name !== file.name);
189
+ this.files = this.files.filter(f => f.name !== file.name);
190
+ this.ifxFileUploadRemove.emit({ removedFile: file, files: this.files });
191
+ this.ifxFileUploadChange.emit({ files: this.files });
192
+ if (this.fileInputEl) {
193
+ this.fileInputEl.value = '';
194
+ }
195
+ }
196
+ clearRejectedFile(fileName, type) {
197
+ if (type === 'size') {
198
+ this.rejectedSizeFiles = this.rejectedSizeFiles.filter(f => f !== fileName);
199
+ }
200
+ else {
201
+ this.rejectedTypeFiles = this.rejectedTypeFiles.filter(f => f !== fileName);
202
+ }
203
+ if (this.fileInputEl) {
204
+ this.fileInputEl.value = '';
205
+ }
206
+ }
207
+ splitFileNameParts(file) {
208
+ const name = file.name;
209
+ const dotIndex = name.lastIndexOf('.');
210
+ if (dotIndex === -1)
211
+ return { base: name, ext: '' };
212
+ return {
213
+ base: name.substring(0, dotIndex),
214
+ ext: name.substring(dotIndex)
215
+ };
216
+ }
217
+ getFileIcon(file) {
218
+ var _a;
219
+ const extension = (_a = file.name.split('.').pop()) === null || _a === void 0 ? void 0 : _a.toLowerCase();
220
+ switch (extension) {
221
+ case 'pdf': return 'file-pdf-16';
222
+ case 'jpg':
223
+ case 'jpeg': return 'file-jpg-16';
224
+ case 'png': return 'file-png-16';
225
+ case 'mov': return 'file-mov-16';
226
+ case 'mp3': return 'file-mp3-16';
227
+ case 'mp4': return 'file-mp4-16';
228
+ default: return 'file';
229
+ }
230
+ }
231
+ getFormattedSize(file) {
232
+ const sizeInKB = file.size / 1024;
233
+ return sizeInKB > 1024
234
+ ? `${(sizeInKB / 1024).toFixed(1)} MB`
235
+ : `${sizeInKB.toFixed(0)} KB`;
236
+ }
237
+ getAcceptAttribute() {
238
+ return this.getNormalizedFileTypes().map(ext => '.' + ext.toLowerCase()).join(',');
239
+ }
240
+ getSupportedFileText() {
241
+ return this.labelSupportedFormatsTemplate
242
+ .replace('{{types}}', this.getNormalizedFileTypes().map(ext => ext.toUpperCase()).join(', '))
243
+ .replace('{{size}}', this.maxFileSizeMB.toString());
244
+ }
245
+ getFormattedFileTooLargeText() {
246
+ return this.labelFileTooLarge.replace('{{size}}', this.maxFileSizeMB.toString());
247
+ }
248
+ componentDidLoad() {
249
+ if (this.hostElement.hasAttribute('show-demo-states')) {
250
+ this.showDemoStates = true;
251
+ }
252
+ if (this.showDemoStates) {
253
+ this.injectDemoState();
254
+ }
255
+ }
256
+ async injectDemoState() {
257
+ const uploading = new File(['demo'], 'Image.jpg', { type: 'image/jpeg' });
258
+ const uploaded = new File(['demo'], 'File.pdf', { type: 'application/pdf' });
259
+ const tooLarge = new File(['demo'], 'Video.mp4', { type: 'video/mp4' });
260
+ const unsupported = new File(['demo'], 'Script.exe', { type: 'application/x-msdownload' });
261
+ this.files = [uploaded, uploading];
262
+ this.uploadTasks = [
263
+ { file: uploaded, progress: 100, intervalId: null, completed: true },
264
+ { file: uploading, progress: 35, intervalId: null, completed: false }
265
+ ];
266
+ this.rejectedSizeFiles = [tooLarge.name];
267
+ this.rejectedTypeFiles = [unsupported.name];
268
+ }
269
+ render() {
270
+ return (h("div", { key: '9ebbf4de0d20c25b5c0167dd48b6ab4d538ca736', class: "file-upload-wrapper" }, this.dragAndDrop ? this.renderDragAndDropArea() : this.renderUploadArea(), h("ul", { key: 'ad545c35ebfaf6016b4cebe0d11d0f4798816718', class: "file-list" }, this.rejectedSizeFiles.map(fileName => (h("li", { class: "file-item upload-failed" }, h("div", { class: "file-icon" }, h("ifx-icon", { icon: "file-16" })), h("div", { class: "file-info" }, h("div", { class: "file-top-row" }, h("span", { class: "file-name-wrapper" }, h("span", { class: "file-name-base" }, this.splitFileNameParts({ name: fileName }).base), h("span", { class: "file-name-ext" }, this.splitFileNameParts({ name: fileName }).ext)), h("div", { class: "file-actions" }, h("ifx-icon-button", { shape: "square", variant: "tertiary", icon: "delete-forever-16", size: "s", "aria-label": "Remove file", onClick: () => this.clearRejectedFile(fileName, 'size') }))), h("div", { class: "file-middle-row" }, h("span", { class: "file-status" }, this.getFormattedFileTooLargeText())))))), this.rejectedTypeFiles.map(fileName => (h("li", { class: "file-item upload-failed" }, h("div", { class: "file-icon" }, h("ifx-icon", { icon: "file-16" })), h("div", { class: "file-info" }, h("div", { class: "file-top-row" }, h("span", { class: "file-name-wrapper" }, h("span", { class: "file-name-base" }, this.splitFileNameParts({ name: fileName }).base), h("span", { class: "file-name-ext" }, this.splitFileNameParts({ name: fileName }).ext)), h("div", { class: "file-actions" }, h("ifx-icon-button", { shape: "square", variant: "tertiary", icon: "delete-forever-16", size: "s", "aria-label": "Remove file", onClick: () => this.clearRejectedFile(fileName, 'type') }))), h("div", { class: "file-middle-row" }, h("span", { class: "file-status" }, this.labelUnsupportedFileType)))))), this.files.map((file) => {
271
+ var _a;
272
+ const task = this.uploadTasks.find(t => t.file.name === file.name);
273
+ const progress = (_a = task === null || task === void 0 ? void 0 : task.progress) !== null && _a !== void 0 ? _a : 100;
274
+ const isUploading = task && !task.completed;
275
+ const itemClass = isUploading ? 'file-item uploading' : 'file-item upload-success';
276
+ const { base, ext } = this.splitFileNameParts(file);
277
+ return (h("li", { class: itemClass }, h("div", { class: "file-icon" }, h("ifx-icon", { icon: this.getFileIcon(file) })), h("div", { class: "file-info" }, h("div", { class: "file-top-row" }, h("span", { class: "file-name-wrapper" }, h("span", { class: "file-name-base" }, base), h("span", { class: "file-name-ext" }, ext)), h("div", { class: "file-actions" }, h("ifx-icon-button", { shape: "square", variant: "tertiary", icon: "cross-16", size: "s", "aria-label": "Cancel upload", onClick: () => this.cancelUpload(file), style: { display: isUploading ? 'inline-flex' : 'none' } }), h("ifx-icon-button", { shape: "square", variant: "tertiary", icon: "delete-forever-16", size: "s", "aria-label": "Remove file", onClick: () => this.removeFile(file), style: { display: !isUploading ? 'inline-flex' : 'none' } }))), h("div", { class: "file-middle-row" }, h("span", { class: "file-size" }, this.getFormattedSize(file)), isUploading && (h("span", { class: "file-uploading" }, "\u00A0\u2013\u00A0Uploading \u2026")), h("span", { class: "file-status" }, !isUploading && (h("span", null, h("ifx-icon", { icon: "check-12" }), "\u00A0", this.labelUploaded)))), isUploading && (h("div", { class: "file-progress-row" }, h("ifx-progress-bar", { size: "s", value: progress, "show-label": "true" }))))));
278
+ }))));
279
+ }
280
+ renderUploadArea() {
281
+ const handleInputRef = (el) => {
282
+ this.fileInputEl = el;
283
+ };
284
+ return (h("div", { class: { 'upload-button': true } }, h("label", null, h("ifx-button", { variant: "secondary" }, h("ifx-icon", { icon: "upload-16" }), this.labelBrowseFiles), h("input", { ref: handleInputRef, type: "file", accept: this.getAcceptAttribute(), multiple: true, onChange: (e) => this.handleFileChange(e), style: { display: 'none' } })), h("p", { class: "file-upload-info" }, this.getSupportedFileText())));
285
+ }
286
+ renderDragAndDropArea() {
287
+ const handleInputRef = (el) => {
288
+ this.fileInputEl = el;
289
+ };
290
+ const triggerInputClick = () => {
291
+ if (this.fileInputEl) {
292
+ this.fileInputEl.click();
293
+ }
294
+ };
295
+ return (h("div", { class: { 'upload-dropzone': true, 'drag-over': this.isDragOver }, onClick: triggerInputClick, onDragOver: (e) => this.handleDragOver(e), onDragLeave: (e) => this.handleDragLeave(e), onDrop: (e) => this.handleDrop(e) }, h("ifx-icon", { icon: "upload-24", class: "custom-icon" }), h("p", null, this.labelDragAndDrop), h("p", { class: "file-upload-info" }, this.getSupportedFileText()), h("div", { style: { height: '0px', overflow: 'hidden' } }, h("input", { ref: handleInputRef, type: "file", accept: this.getAcceptAttribute(), multiple: true, onChange: (e) => this.handleFileChange(e) }))));
296
+ }
297
+ static get is() { return "ifx-file-upload"; }
298
+ static get encapsulation() { return "shadow"; }
299
+ static get originalStyleUrls() {
300
+ return {
301
+ "$": ["file-upload.scss"]
302
+ };
303
+ }
304
+ static get styleUrls() {
305
+ return {
306
+ "$": ["file-upload.css"]
307
+ };
308
+ }
309
+ static get properties() {
310
+ return {
311
+ "dragAndDrop": {
312
+ "type": "boolean",
313
+ "mutable": false,
314
+ "complexType": {
315
+ "original": "boolean",
316
+ "resolved": "boolean",
317
+ "references": {}
318
+ },
319
+ "required": false,
320
+ "optional": false,
321
+ "docs": {
322
+ "tags": [],
323
+ "text": ""
324
+ },
325
+ "getter": false,
326
+ "setter": false,
327
+ "attribute": "drag-and-drop",
328
+ "reflect": false,
329
+ "defaultValue": "false"
330
+ },
331
+ "maxFileSizeMB": {
332
+ "type": "number",
333
+ "mutable": false,
334
+ "complexType": {
335
+ "original": "number",
336
+ "resolved": "number",
337
+ "references": {}
338
+ },
339
+ "required": false,
340
+ "optional": false,
341
+ "docs": {
342
+ "tags": [],
343
+ "text": ""
344
+ },
345
+ "getter": false,
346
+ "setter": false,
347
+ "attribute": "max-file-size-m-b",
348
+ "reflect": false,
349
+ "defaultValue": "7"
350
+ },
351
+ "allowedFileTypes": {
352
+ "type": "string",
353
+ "mutable": false,
354
+ "complexType": {
355
+ "original": "string | string[]",
356
+ "resolved": "string | string[]",
357
+ "references": {}
358
+ },
359
+ "required": false,
360
+ "optional": false,
361
+ "docs": {
362
+ "tags": [],
363
+ "text": ""
364
+ },
365
+ "getter": false,
366
+ "setter": false,
367
+ "attribute": "allowed-file-types",
368
+ "reflect": false,
369
+ "defaultValue": "['jpg', 'jpeg', 'png', 'pdf', 'mov', 'mp3', 'mp4']"
370
+ },
371
+ "uploadHandler": {
372
+ "type": "unknown",
373
+ "mutable": false,
374
+ "complexType": {
375
+ "original": "(file: File) => Promise<void>",
376
+ "resolved": "(file: File) => Promise<void>",
377
+ "references": {
378
+ "File": {
379
+ "location": "global",
380
+ "id": "global::File"
381
+ },
382
+ "Promise": {
383
+ "location": "global",
384
+ "id": "global::Promise"
385
+ }
386
+ }
387
+ },
388
+ "required": false,
389
+ "optional": true,
390
+ "docs": {
391
+ "tags": [],
392
+ "text": ""
393
+ },
394
+ "getter": false,
395
+ "setter": false
396
+ },
397
+ "labelBrowseFiles": {
398
+ "type": "string",
399
+ "mutable": false,
400
+ "complexType": {
401
+ "original": "string",
402
+ "resolved": "string",
403
+ "references": {}
404
+ },
405
+ "required": false,
406
+ "optional": false,
407
+ "docs": {
408
+ "tags": [],
409
+ "text": ""
410
+ },
411
+ "getter": false,
412
+ "setter": false,
413
+ "attribute": "label-browse-files",
414
+ "reflect": false,
415
+ "defaultValue": "'Browse files'"
416
+ },
417
+ "labelDragAndDrop": {
418
+ "type": "string",
419
+ "mutable": false,
420
+ "complexType": {
421
+ "original": "string",
422
+ "resolved": "string",
423
+ "references": {}
424
+ },
425
+ "required": false,
426
+ "optional": false,
427
+ "docs": {
428
+ "tags": [],
429
+ "text": ""
430
+ },
431
+ "getter": false,
432
+ "setter": false,
433
+ "attribute": "label-drag-and-drop",
434
+ "reflect": false,
435
+ "defaultValue": "'Drag & Drop or browse files to upload'"
436
+ },
437
+ "labelFileTooLarge": {
438
+ "type": "string",
439
+ "mutable": false,
440
+ "complexType": {
441
+ "original": "string",
442
+ "resolved": "string",
443
+ "references": {}
444
+ },
445
+ "required": false,
446
+ "optional": false,
447
+ "docs": {
448
+ "tags": [],
449
+ "text": ""
450
+ },
451
+ "getter": false,
452
+ "setter": false,
453
+ "attribute": "label-file-too-large",
454
+ "reflect": false,
455
+ "defaultValue": "'Upload failed. Max file size: {{size}}MB.'"
456
+ },
457
+ "labelUnsupportedFileType": {
458
+ "type": "string",
459
+ "mutable": false,
460
+ "complexType": {
461
+ "original": "string",
462
+ "resolved": "string",
463
+ "references": {}
464
+ },
465
+ "required": false,
466
+ "optional": false,
467
+ "docs": {
468
+ "tags": [],
469
+ "text": ""
470
+ },
471
+ "getter": false,
472
+ "setter": false,
473
+ "attribute": "label-unsupported-file-type",
474
+ "reflect": false,
475
+ "defaultValue": "'Unsupported file type.'"
476
+ },
477
+ "labelUploaded": {
478
+ "type": "string",
479
+ "mutable": false,
480
+ "complexType": {
481
+ "original": "string",
482
+ "resolved": "string",
483
+ "references": {}
484
+ },
485
+ "required": false,
486
+ "optional": false,
487
+ "docs": {
488
+ "tags": [],
489
+ "text": ""
490
+ },
491
+ "getter": false,
492
+ "setter": false,
493
+ "attribute": "label-uploaded",
494
+ "reflect": false,
495
+ "defaultValue": "'Successfully uploaded'"
496
+ },
497
+ "labelSupportedFormatsTemplate": {
498
+ "type": "string",
499
+ "mutable": false,
500
+ "complexType": {
501
+ "original": "string",
502
+ "resolved": "string",
503
+ "references": {}
504
+ },
505
+ "required": false,
506
+ "optional": false,
507
+ "docs": {
508
+ "tags": [],
509
+ "text": ""
510
+ },
511
+ "getter": false,
512
+ "setter": false,
513
+ "attribute": "label-supported-formats-template",
514
+ "reflect": false,
515
+ "defaultValue": "'Supported file formats: {{types}}. Max file size: {{size}}MB.'"
516
+ }
517
+ };
518
+ }
519
+ static get states() {
520
+ return {
521
+ "isDragOver": {},
522
+ "files": {},
523
+ "uploadTasks": {},
524
+ "rejectedSizeFiles": {},
525
+ "rejectedTypeFiles": {}
526
+ };
527
+ }
528
+ static get events() {
529
+ return [{
530
+ "method": "ifxFileUploadAdd",
531
+ "name": "ifxFileUploadAdd",
532
+ "bubbles": true,
533
+ "cancelable": true,
534
+ "composed": true,
535
+ "docs": {
536
+ "tags": [],
537
+ "text": ""
538
+ },
539
+ "complexType": {
540
+ "original": "{ addedFiles: File[]; files: File[] }",
541
+ "resolved": "{ addedFiles: File[]; files: File[]; }",
542
+ "references": {
543
+ "File": {
544
+ "location": "global",
545
+ "id": "global::File"
546
+ }
547
+ }
548
+ }
549
+ }, {
550
+ "method": "ifxFileUploadRemove",
551
+ "name": "ifxFileUploadRemove",
552
+ "bubbles": true,
553
+ "cancelable": true,
554
+ "composed": true,
555
+ "docs": {
556
+ "tags": [],
557
+ "text": ""
558
+ },
559
+ "complexType": {
560
+ "original": "{ removedFile: File; files: File[] }",
561
+ "resolved": "{ removedFile: File; files: File[]; }",
562
+ "references": {
563
+ "File": {
564
+ "location": "global",
565
+ "id": "global::File"
566
+ }
567
+ }
568
+ }
569
+ }, {
570
+ "method": "ifxFileUploadChange",
571
+ "name": "ifxFileUploadChange",
572
+ "bubbles": true,
573
+ "cancelable": true,
574
+ "composed": true,
575
+ "docs": {
576
+ "tags": [],
577
+ "text": ""
578
+ },
579
+ "complexType": {
580
+ "original": "{ files: File[] }",
581
+ "resolved": "{ files: File[]; }",
582
+ "references": {
583
+ "File": {
584
+ "location": "global",
585
+ "id": "global::File"
586
+ }
587
+ }
588
+ }
589
+ }, {
590
+ "method": "ifxFileUploadError",
591
+ "name": "ifxFileUploadError",
592
+ "bubbles": true,
593
+ "cancelable": true,
594
+ "composed": true,
595
+ "docs": {
596
+ "tags": [],
597
+ "text": ""
598
+ },
599
+ "complexType": {
600
+ "original": "{ errorType: string; file: File; message: string }",
601
+ "resolved": "{ errorType: string; file: File; message: string; }",
602
+ "references": {
603
+ "File": {
604
+ "location": "global",
605
+ "id": "global::File"
606
+ }
607
+ }
608
+ }
609
+ }, {
610
+ "method": "ifxFileUploadInvalid",
611
+ "name": "ifxFileUploadInvalid",
612
+ "bubbles": true,
613
+ "cancelable": true,
614
+ "composed": true,
615
+ "docs": {
616
+ "tags": [],
617
+ "text": ""
618
+ },
619
+ "complexType": {
620
+ "original": "{ file: File; reason: string }",
621
+ "resolved": "{ file: File; reason: string; }",
622
+ "references": {
623
+ "File": {
624
+ "location": "global",
625
+ "id": "global::File"
626
+ }
627
+ }
628
+ }
629
+ }, {
630
+ "method": "ifxFileUploadStart",
631
+ "name": "ifxFileUploadStart",
632
+ "bubbles": true,
633
+ "cancelable": true,
634
+ "composed": true,
635
+ "docs": {
636
+ "tags": [],
637
+ "text": ""
638
+ },
639
+ "complexType": {
640
+ "original": "{ file: File }",
641
+ "resolved": "{ file: File; }",
642
+ "references": {
643
+ "File": {
644
+ "location": "global",
645
+ "id": "global::File"
646
+ }
647
+ }
648
+ }
649
+ }, {
650
+ "method": "ifxFileUploadComplete",
651
+ "name": "ifxFileUploadComplete",
652
+ "bubbles": true,
653
+ "cancelable": true,
654
+ "composed": true,
655
+ "docs": {
656
+ "tags": [],
657
+ "text": ""
658
+ },
659
+ "complexType": {
660
+ "original": "{ file: File }",
661
+ "resolved": "{ file: File; }",
662
+ "references": {
663
+ "File": {
664
+ "location": "global",
665
+ "id": "global::File"
666
+ }
667
+ }
668
+ }
669
+ }, {
670
+ "method": "ifxFileUploadAbort",
671
+ "name": "ifxFileUploadAbort",
672
+ "bubbles": true,
673
+ "cancelable": true,
674
+ "composed": true,
675
+ "docs": {
676
+ "tags": [],
677
+ "text": ""
678
+ },
679
+ "complexType": {
680
+ "original": "{ file: File }",
681
+ "resolved": "{ file: File; }",
682
+ "references": {
683
+ "File": {
684
+ "location": "global",
685
+ "id": "global::File"
686
+ }
687
+ }
688
+ }
689
+ }, {
690
+ "method": "ifxFileUploadDrop",
691
+ "name": "ifxFileUploadDrop",
692
+ "bubbles": true,
693
+ "cancelable": true,
694
+ "composed": true,
695
+ "docs": {
696
+ "tags": [],
697
+ "text": ""
698
+ },
699
+ "complexType": {
700
+ "original": "{ droppedFiles: File[]; acceptedFiles: File[]; rejectedFiles: File[] }",
701
+ "resolved": "{ droppedFiles: File[]; acceptedFiles: File[]; rejectedFiles: File[]; }",
702
+ "references": {
703
+ "File": {
704
+ "location": "global",
705
+ "id": "global::File"
706
+ }
707
+ }
708
+ }
709
+ }, {
710
+ "method": "ifxFileUploadClick",
711
+ "name": "ifxFileUploadClick",
712
+ "bubbles": true,
713
+ "cancelable": true,
714
+ "composed": true,
715
+ "docs": {
716
+ "tags": [],
717
+ "text": ""
718
+ },
719
+ "complexType": {
720
+ "original": "void",
721
+ "resolved": "void",
722
+ "references": {}
723
+ }
724
+ }];
725
+ }
726
+ static get methods() {
727
+ return {
728
+ "injectDemoState": {
729
+ "complexType": {
730
+ "signature": "() => Promise<void>",
731
+ "parameters": [],
732
+ "references": {
733
+ "Promise": {
734
+ "location": "global",
735
+ "id": "global::Promise"
736
+ }
737
+ },
738
+ "return": "Promise<void>"
739
+ },
740
+ "docs": {
741
+ "text": "",
742
+ "tags": []
743
+ }
744
+ }
745
+ };
746
+ }
747
+ static get elementRef() { return "hostElement"; }
748
+ }
749
+ //# sourceMappingURL=file-upload.js.map