@infineon/infineon-design-system-stencil 33.3.0 → 33.3.1--canary.1824.9e747abc2c6c3dcc35abd2895ce37d503bd1f141.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 (366) 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 +570 -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 +211 -0
  54. package/dist/collection/components/file-upload/file-upload.js +1501 -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 +517 -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 +649 -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-eedb3b58.js → p-008afd49.js} +6 -6
  171. package/dist/components/{p-eedb3b58.js.map → p-008afd49.js.map} +1 -1
  172. package/dist/components/{p-f36effad.js → p-0b2bb8ad.js} +2 -2
  173. package/dist/components/{p-f36effad.js.map → p-0b2bb8ad.js.map} +1 -1
  174. package/dist/components/{p-85ce5a1e.js → p-118c5b21.js} +3 -3
  175. package/dist/components/{p-85ce5a1e.js.map → p-118c5b21.js.map} +1 -1
  176. package/dist/components/{p-88691420.js → p-1d0b8ace.js} +5 -5
  177. package/dist/components/{p-88691420.js.map → p-1d0b8ace.js.map} +1 -1
  178. package/dist/components/{p-23757cfd.js → p-2ba2b196.js} +3 -3
  179. package/dist/components/{p-23757cfd.js.map → p-2ba2b196.js.map} +1 -1
  180. package/dist/components/{p-8d115124.js → p-2e096da7.js} +5 -5
  181. package/dist/components/{p-8d115124.js.map → p-2e096da7.js.map} +1 -1
  182. package/dist/components/{p-4d64e776.js → p-45c75348.js} +2 -2
  183. package/dist/components/{p-4d64e776.js.map → p-45c75348.js.map} +1 -1
  184. package/dist/components/{p-ee5532fd.js → p-4882084d.js} +3 -3
  185. package/dist/components/{p-ee5532fd.js.map → p-4882084d.js.map} +1 -1
  186. package/dist/components/{p-b4e91450.js → p-49f70934.js} +3 -3
  187. package/dist/components/{p-b4e91450.js.map → p-49f70934.js.map} +1 -1
  188. package/dist/components/{p-04a697ad.js → p-524a6949.js} +2 -2
  189. package/dist/components/{p-04a697ad.js.map → p-524a6949.js.map} +1 -1
  190. package/dist/components/{p-7c7a5393.js → p-5d0763d9.js} +2 -2
  191. package/dist/components/{p-7c7a5393.js.map → p-5d0763d9.js.map} +1 -1
  192. package/dist/components/{p-327af560.js → p-6ddcb06b.js} +2 -2
  193. package/dist/components/{p-327af560.js.map → p-6ddcb06b.js.map} +1 -1
  194. package/dist/components/{p-803887ee.js → p-7ba45e8a.js} +3 -3
  195. package/dist/components/{p-803887ee.js.map → p-7ba45e8a.js.map} +1 -1
  196. package/dist/components/{p-e7551b24.js → p-7f0af813.js} +2 -2
  197. package/dist/components/{p-e7551b24.js.map → p-7f0af813.js.map} +1 -1
  198. package/dist/components/{p-f824645f.js → p-c4b939c0.js} +6 -6
  199. package/dist/components/{p-f824645f.js.map → p-c4b939c0.js.map} +1 -1
  200. package/dist/components/{p-77e746ee.js → p-cd01352d.js} +3 -3
  201. package/dist/components/{p-77e746ee.js.map → p-cd01352d.js.map} +1 -1
  202. package/dist/components/{p-1266857d.js → p-d4b2d98f.js} +4 -4
  203. package/dist/components/{p-1266857d.js.map → p-d4b2d98f.js.map} +1 -1
  204. package/dist/components/p-e56942b3.js +53 -0
  205. package/dist/components/p-e56942b3.js.map +1 -0
  206. package/dist/components/{p-dccd1c1c.js → p-ef6730e0.js} +3 -3
  207. package/dist/components/{p-dccd1c1c.js.map → p-ef6730e0.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 +566 -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-66c73a3d.entry.js → p-02f83605.entry.js} +2 -2
  262. package/dist/infineon-design-system-stencil/{p-fbdd611c.entry.js → p-0512a705.entry.js} +2 -2
  263. package/dist/infineon-design-system-stencil/{p-fb3737ae.entry.js → p-07f2abf0.entry.js} +2 -2
  264. package/dist/infineon-design-system-stencil/p-0b6db901.entry.js +2 -0
  265. package/dist/infineon-design-system-stencil/{p-a045ee93.entry.js → p-0e9145f8.entry.js} +2 -2
  266. package/dist/infineon-design-system-stencil/{p-b77e56fd.entry.js → p-1038a1a1.entry.js} +2 -2
  267. package/dist/infineon-design-system-stencil/{p-42964318.entry.js → p-14fa6261.entry.js} +2 -2
  268. package/dist/infineon-design-system-stencil/{p-6ee1b4e7.entry.js → p-17df9778.entry.js} +2 -2
  269. package/dist/infineon-design-system-stencil/{p-00b3d9bf.entry.js → p-27e25f78.entry.js} +2 -2
  270. package/dist/infineon-design-system-stencil/{p-e4319c48.entry.js → p-294c7bab.entry.js} +2 -2
  271. package/dist/infineon-design-system-stencil/p-32e8759a.entry.js +2 -0
  272. package/dist/infineon-design-system-stencil/{p-f12c2743.entry.js → p-3796fda7.entry.js} +2 -2
  273. package/dist/infineon-design-system-stencil/{p-72bbedad.entry.js → p-3ad9c66a.entry.js} +2 -2
  274. package/dist/infineon-design-system-stencil/{p-6d936400.entry.js → p-47953778.entry.js} +2 -2
  275. package/dist/infineon-design-system-stencil/{p-7564f328.entry.js → p-4a239abe.entry.js} +2 -2
  276. package/dist/infineon-design-system-stencil/p-4d544302.entry.js +2 -0
  277. package/dist/infineon-design-system-stencil/{p-66d04b9e.entry.js → p-505aa612.entry.js} +2 -2
  278. package/dist/infineon-design-system-stencil/{p-8215490a.entry.js → p-563c4e58.entry.js} +2 -2
  279. package/dist/infineon-design-system-stencil/{p-cab23e90.entry.js → p-571635d2.entry.js} +2 -2
  280. package/dist/infineon-design-system-stencil/{p-5ce016ad.entry.js → p-5f3a20a2.entry.js} +2 -2
  281. package/dist/infineon-design-system-stencil/{p-e62df6c3.entry.js → p-685f1e5d.entry.js} +2 -2
  282. package/dist/infineon-design-system-stencil/{p-c183f92b.entry.js → p-69272ea3.entry.js} +2 -2
  283. package/dist/infineon-design-system-stencil/p-6b8deb4a.entry.js +2 -0
  284. package/dist/infineon-design-system-stencil/p-6b8deb4a.entry.js.map +1 -0
  285. package/dist/infineon-design-system-stencil/p-78039fa0.entry.js +2 -0
  286. package/dist/infineon-design-system-stencil/{p-5ba50092.entry.js → p-7a1327e5.entry.js} +2 -2
  287. package/dist/infineon-design-system-stencil/{p-96ba5e8c.entry.js → p-7d66ee28.entry.js} +2 -2
  288. package/dist/infineon-design-system-stencil/{p-dd27040f.entry.js → p-7feaadc5.entry.js} +2 -2
  289. package/dist/infineon-design-system-stencil/{p-760b9305.entry.js → p-91beff89.entry.js} +2 -2
  290. package/dist/infineon-design-system-stencil/p-91ffb683.entry.js +2 -0
  291. package/dist/infineon-design-system-stencil/{p-f2932f07.entry.js → p-997901f4.entry.js} +2 -2
  292. package/dist/infineon-design-system-stencil/{p-61010cd5.entry.js → p-9fbd4a42.entry.js} +2 -2
  293. package/dist/infineon-design-system-stencil/{p-64930d03.entry.js → p-a0f432cc.entry.js} +2 -2
  294. package/dist/infineon-design-system-stencil/p-ad50d807.entry.js +2 -0
  295. package/dist/infineon-design-system-stencil/{p-d1a97fd5.entry.js → p-b1538bfa.entry.js} +2 -2
  296. package/dist/infineon-design-system-stencil/{p-3e6ddbf5.entry.js → p-b900e8d0.entry.js} +2 -2
  297. package/dist/infineon-design-system-stencil/{p-ec7a9e00.entry.js → p-bb624976.entry.js} +2 -2
  298. package/dist/infineon-design-system-stencil/{p-9414543f.entry.js → p-c101a974.entry.js} +2 -2
  299. package/dist/infineon-design-system-stencil/{p-d9b49071.entry.js → p-cf27e139.entry.js} +2 -2
  300. package/dist/infineon-design-system-stencil/{p-aac226ce.entry.js → p-d0c21d65.entry.js} +2 -2
  301. package/dist/infineon-design-system-stencil/p-de1a042f.entry.js +2 -0
  302. package/dist/infineon-design-system-stencil/{p-41316712.entry.js → p-df86b421.entry.js} +2 -2
  303. package/dist/infineon-design-system-stencil/{p-6012a317.entry.js → p-eaf5dc4b.entry.js} +2 -2
  304. package/dist/infineon-design-system-stencil/p-eb510174.entry.js +2 -0
  305. package/dist/infineon-design-system-stencil/{p-080456bc.entry.js → p-f3a3242b.entry.js} +2 -2
  306. package/dist/infineon-design-system-stencil/{p-43ab7b53.entry.js → p-f5bc6488.entry.js} +2 -2
  307. package/dist/infineon-design-system-stencil/{p-7d761140.entry.js → p-f926dc7d.entry.js} +2 -2
  308. package/dist/infineon-design-system-stencil/{p-2ed9a934.entry.js → p-fa9610c3.entry.js} +2 -2
  309. package/dist/types/components/file-upload/file-upload.d.ts +143 -0
  310. package/dist/types/components/file-upload/file-upload.stories.d.ts +8 -0
  311. package/dist/types/components.d.ts +125 -0
  312. package/package.json +1 -1
  313. package/dist/infineon-design-system-stencil/p-11fa8bcb.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-2f87fada.entry.js +0 -2
  316. package/dist/infineon-design-system-stencil/p-56f6da95.entry.js +0 -2
  317. package/dist/infineon-design-system-stencil/p-afe7fdf8.entry.js +0 -2
  318. package/dist/infineon-design-system-stencil/p-b84588f9.entry.js +0 -2
  319. package/dist/infineon-design-system-stencil/p-cf3122b2.entry.js +0 -2
  320. package/dist/infineon-design-system-stencil/p-dc5ff11a.entry.js +0 -2
  321. /package/dist/infineon-design-system-stencil/{p-66c73a3d.entry.js.map → p-02f83605.entry.js.map} +0 -0
  322. /package/dist/infineon-design-system-stencil/{p-fbdd611c.entry.js.map → p-0512a705.entry.js.map} +0 -0
  323. /package/dist/infineon-design-system-stencil/{p-fb3737ae.entry.js.map → p-07f2abf0.entry.js.map} +0 -0
  324. /package/dist/infineon-design-system-stencil/{p-afe7fdf8.entry.js.map → p-0b6db901.entry.js.map} +0 -0
  325. /package/dist/infineon-design-system-stencil/{p-a045ee93.entry.js.map → p-0e9145f8.entry.js.map} +0 -0
  326. /package/dist/infineon-design-system-stencil/{p-b77e56fd.entry.js.map → p-1038a1a1.entry.js.map} +0 -0
  327. /package/dist/infineon-design-system-stencil/{p-42964318.entry.js.map → p-14fa6261.entry.js.map} +0 -0
  328. /package/dist/infineon-design-system-stencil/{p-6ee1b4e7.entry.js.map → p-17df9778.entry.js.map} +0 -0
  329. /package/dist/infineon-design-system-stencil/{p-00b3d9bf.entry.js.map → p-27e25f78.entry.js.map} +0 -0
  330. /package/dist/infineon-design-system-stencil/{p-e4319c48.entry.js.map → p-294c7bab.entry.js.map} +0 -0
  331. /package/dist/infineon-design-system-stencil/{p-cf3122b2.entry.js.map → p-32e8759a.entry.js.map} +0 -0
  332. /package/dist/infineon-design-system-stencil/{p-f12c2743.entry.js.map → p-3796fda7.entry.js.map} +0 -0
  333. /package/dist/infineon-design-system-stencil/{p-72bbedad.entry.js.map → p-3ad9c66a.entry.js.map} +0 -0
  334. /package/dist/infineon-design-system-stencil/{p-6d936400.entry.js.map → p-47953778.entry.js.map} +0 -0
  335. /package/dist/infineon-design-system-stencil/{p-7564f328.entry.js.map → p-4a239abe.entry.js.map} +0 -0
  336. /package/dist/infineon-design-system-stencil/{p-56f6da95.entry.js.map → p-4d544302.entry.js.map} +0 -0
  337. /package/dist/infineon-design-system-stencil/{p-66d04b9e.entry.js.map → p-505aa612.entry.js.map} +0 -0
  338. /package/dist/infineon-design-system-stencil/{p-8215490a.entry.js.map → p-563c4e58.entry.js.map} +0 -0
  339. /package/dist/infineon-design-system-stencil/{p-cab23e90.entry.js.map → p-571635d2.entry.js.map} +0 -0
  340. /package/dist/infineon-design-system-stencil/{p-5ce016ad.entry.js.map → p-5f3a20a2.entry.js.map} +0 -0
  341. /package/dist/infineon-design-system-stencil/{p-e62df6c3.entry.js.map → p-685f1e5d.entry.js.map} +0 -0
  342. /package/dist/infineon-design-system-stencil/{p-c183f92b.entry.js.map → p-69272ea3.entry.js.map} +0 -0
  343. /package/dist/infineon-design-system-stencil/{p-2f87fada.entry.js.map → p-78039fa0.entry.js.map} +0 -0
  344. /package/dist/infineon-design-system-stencil/{p-5ba50092.entry.js.map → p-7a1327e5.entry.js.map} +0 -0
  345. /package/dist/infineon-design-system-stencil/{p-96ba5e8c.entry.js.map → p-7d66ee28.entry.js.map} +0 -0
  346. /package/dist/infineon-design-system-stencil/{p-dd27040f.entry.js.map → p-7feaadc5.entry.js.map} +0 -0
  347. /package/dist/infineon-design-system-stencil/{p-760b9305.entry.js.map → p-91beff89.entry.js.map} +0 -0
  348. /package/dist/infineon-design-system-stencil/{p-11fa8bcb.entry.js.map → p-91ffb683.entry.js.map} +0 -0
  349. /package/dist/infineon-design-system-stencil/{p-f2932f07.entry.js.map → p-997901f4.entry.js.map} +0 -0
  350. /package/dist/infineon-design-system-stencil/{p-61010cd5.entry.js.map → p-9fbd4a42.entry.js.map} +0 -0
  351. /package/dist/infineon-design-system-stencil/{p-64930d03.entry.js.map → p-a0f432cc.entry.js.map} +0 -0
  352. /package/dist/infineon-design-system-stencil/{p-dc5ff11a.entry.js.map → p-ad50d807.entry.js.map} +0 -0
  353. /package/dist/infineon-design-system-stencil/{p-d1a97fd5.entry.js.map → p-b1538bfa.entry.js.map} +0 -0
  354. /package/dist/infineon-design-system-stencil/{p-3e6ddbf5.entry.js.map → p-b900e8d0.entry.js.map} +0 -0
  355. /package/dist/infineon-design-system-stencil/{p-ec7a9e00.entry.js.map → p-bb624976.entry.js.map} +0 -0
  356. /package/dist/infineon-design-system-stencil/{p-9414543f.entry.js.map → p-c101a974.entry.js.map} +0 -0
  357. /package/dist/infineon-design-system-stencil/{p-d9b49071.entry.js.map → p-cf27e139.entry.js.map} +0 -0
  358. /package/dist/infineon-design-system-stencil/{p-aac226ce.entry.js.map → p-d0c21d65.entry.js.map} +0 -0
  359. /package/dist/infineon-design-system-stencil/{p-b84588f9.entry.js.map → p-de1a042f.entry.js.map} +0 -0
  360. /package/dist/infineon-design-system-stencil/{p-41316712.entry.js.map → p-df86b421.entry.js.map} +0 -0
  361. /package/dist/infineon-design-system-stencil/{p-6012a317.entry.js.map → p-eaf5dc4b.entry.js.map} +0 -0
  362. /package/dist/infineon-design-system-stencil/{p-1b59a7f9.entry.js.map → p-eb510174.entry.js.map} +0 -0
  363. /package/dist/infineon-design-system-stencil/{p-080456bc.entry.js.map → p-f3a3242b.entry.js.map} +0 -0
  364. /package/dist/infineon-design-system-stencil/{p-43ab7b53.entry.js.map → p-f5bc6488.entry.js.map} +0 -0
  365. /package/dist/infineon-design-system-stencil/{p-7d761140.entry.js.map → p-f926dc7d.entry.js.map} +0 -0
  366. /package/dist/infineon-design-system-stencil/{p-2ed9a934.entry.js.map → p-fa9610c3.entry.js.map} +0 -0
@@ -0,0 +1,517 @@
1
+ import { action } from "@storybook/addon-actions";
2
+ const meta = {
3
+ title: 'Components/File Upload',
4
+ tags: ['autodocs'],
5
+ parameters: {
6
+ controls: { expanded: true },
7
+ docs: {
8
+ description: {
9
+ component: 'Upload component with different interaction styles: button or drag-and-drop area.'
10
+ }
11
+ }
12
+ },
13
+ argTypes: {
14
+ // GENERAL
15
+ dragAndDrop: {
16
+ control: 'boolean',
17
+ description: 'Enables drag-and-drop area. If false, a button-based upload is shown instead.'
18
+ },
19
+ required: {
20
+ control: 'boolean',
21
+ description: 'If set to true, at least one file must be uploaded. Validation fails if empty.'
22
+ },
23
+ disabled: {
24
+ control: 'boolean',
25
+ description: 'Disables the component and prevents all interaction (upload, drag-and-drop, removal, etc.).',
26
+ },
27
+ maxFileSizeMB: {
28
+ control: 'number',
29
+ description: 'Maximum file size allowed per file (in MB). Files larger than this will be rejected.'
30
+ },
31
+ allowedFileTypes: {
32
+ control: { type: 'check' },
33
+ options: ['jpg', 'png', 'pdf', 'mov', 'mp3', 'mp4'],
34
+ description: 'Select one or more allowed file extensions. Internally mapped to MIME types.'
35
+ },
36
+ additionalAllowedFileTypes: {
37
+ control: 'text',
38
+ description: 'Adds additional allowed file types using exact MIME types. Example: application/zip'
39
+ },
40
+ maxFiles: {
41
+ control: { type: 'number', min: 1, step: 1 },
42
+ description: 'Maximum number of files that can be uploaded in total. Must be at least 1. If unset, unlimited.'
43
+ },
44
+ // LABELS
45
+ label: {
46
+ control: 'text',
47
+ description: 'Label shown above the upload area.',
48
+ table: { category: 'LABELS' }
49
+ },
50
+ labelRequiredError: {
51
+ control: 'text',
52
+ description: 'Error message shown when no file is uploaded and `required` is true.',
53
+ table: { category: 'LABELS' }
54
+ },
55
+ labelBrowseFiles: {
56
+ control: 'text',
57
+ description: 'Text for the file selection button.',
58
+ table: { category: 'LABELS' }
59
+ },
60
+ labelDragAndDrop: {
61
+ control: 'text',
62
+ description: 'Text shown inside the drag-and-drop area.',
63
+ table: { category: 'LABELS' }
64
+ },
65
+ labelUploadedFilesHeading: {
66
+ control: 'text',
67
+ description: 'Heading above the uploaded files list.',
68
+ table: { category: 'LABELS' }
69
+ },
70
+ labelFileTooLarge: {
71
+ control: 'text',
72
+ description: 'Shown when a file exceeds the allowed size. Use {{size}}.',
73
+ table: { category: 'LABELS' }
74
+ },
75
+ labelUnsupportedFileType: {
76
+ control: 'text',
77
+ description: 'Shown when an unsupported file type is uploaded.',
78
+ table: { category: 'LABELS' }
79
+ },
80
+ labelUploaded: {
81
+ control: 'text',
82
+ description: 'Label shown after successful upload.',
83
+ table: { category: 'LABELS' }
84
+ },
85
+ labelUploadFailed: {
86
+ control: 'text',
87
+ description: 'Text shown when a file upload fails.',
88
+ table: { category: 'LABELS' }
89
+ },
90
+ labelSupportedFormatsTemplate: {
91
+ control: 'text',
92
+ description: 'Template showing supported file formats. Use {{types}} and {{size}}.',
93
+ table: { category: 'LABELS' }
94
+ },
95
+ labelFileSingular: {
96
+ control: 'text',
97
+ description: 'Singular word for file.',
98
+ table: { category: 'LABELS' }
99
+ },
100
+ labelFilePlural: {
101
+ control: 'text',
102
+ description: 'Plural word for file.',
103
+ table: { category: 'LABELS' }
104
+ },
105
+ labelMaxFilesInfo: {
106
+ control: 'text',
107
+ description: 'Message for max file info. Use {{count}}.',
108
+ table: { category: 'LABELS' }
109
+ },
110
+ labelMaxFilesExceeded: {
111
+ control: 'text',
112
+ description: 'Error when exceeding max files. Use {{count}}.',
113
+ table: { category: 'LABELS' }
114
+ },
115
+ // ARIA LABELS
116
+ ariaLabelBrowseFiles: {
117
+ control: 'text',
118
+ description: 'ARIA label for the file upload button.',
119
+ table: { category: 'ARIA LABELS' }
120
+ },
121
+ ariaLabelDropzone: {
122
+ control: 'text',
123
+ description: 'ARIA label for the dropzone.',
124
+ table: { category: 'ARIA LABELS' }
125
+ },
126
+ ariaLabelFileInput: {
127
+ control: 'text',
128
+ description: 'ARIA label for the file input.',
129
+ table: { category: 'ARIA LABELS' }
130
+ },
131
+ ariaLabelRemoveFile: {
132
+ control: 'text',
133
+ description: 'ARIA label for remove button.',
134
+ table: { category: 'ARIA LABELS' }
135
+ },
136
+ ariaLabelCancelUpload: {
137
+ control: 'text',
138
+ description: 'ARIA label for cancel button.',
139
+ table: { category: 'ARIA LABELS' }
140
+ },
141
+ ariaLabelRetryUpload: {
142
+ control: 'text',
143
+ description: 'ARIA label for retry button.',
144
+ table: { category: 'ARIA LABELS' }
145
+ },
146
+ ariaLabelUploadingStatus: {
147
+ control: 'text',
148
+ description: 'ARIA status for uploading.',
149
+ table: { category: 'ARIA LABELS' }
150
+ },
151
+ ariaLabelUploadedStatus: {
152
+ control: 'text',
153
+ description: 'ARIA status for success.',
154
+ table: { category: 'ARIA LABELS' }
155
+ },
156
+ ariaLabelUploadFailedStatus: {
157
+ control: 'text',
158
+ description: 'ARIA status for failed upload.',
159
+ table: { category: 'ARIA LABELS' }
160
+ },
161
+ // CUSTOM EVENTS
162
+ ifxFileUploadAdd: {
163
+ description: 'Emitted when files are added.',
164
+ table: { category: 'CUSTOM EVENTS' }
165
+ },
166
+ ifxFileUploadRemove: {
167
+ description: 'Emitted when a file is removed.',
168
+ table: { category: 'CUSTOM EVENTS' }
169
+ },
170
+ ifxFileUploadChange: {
171
+ description: 'Emitted when file list changes.',
172
+ table: { category: 'CUSTOM EVENTS' }
173
+ },
174
+ ifxFileUploadError: {
175
+ description: 'Emitted when an upload error occurs.',
176
+ table: { category: 'CUSTOM EVENTS' }
177
+ },
178
+ ifxFileUploadInvalid: {
179
+ description: 'Emitted when file is invalid.',
180
+ table: { category: 'CUSTOM EVENTS' }
181
+ },
182
+ ifxFileUploadStart: {
183
+ description: 'Emitted when upload starts.',
184
+ table: { category: 'CUSTOM EVENTS' }
185
+ },
186
+ ifxFileUploadComplete: {
187
+ description: 'Emitted when upload completes.',
188
+ table: { category: 'CUSTOM EVENTS' }
189
+ },
190
+ ifxFileUploadAllComplete: {
191
+ description: 'Emitted when all uploads are done.',
192
+ table: { category: 'CUSTOM EVENTS' }
193
+ },
194
+ ifxFileUploadAbort: {
195
+ description: 'Emitted when an upload is cancelled.',
196
+ table: { category: 'CUSTOM EVENTS' }
197
+ },
198
+ ifxFileUploadDrop: {
199
+ description: 'Emitted on file drop.',
200
+ table: { category: 'CUSTOM EVENTS' }
201
+ },
202
+ ifxFileUploadClick: {
203
+ description: 'Emitted on click.',
204
+ table: { category: 'CUSTOM EVENTS' }
205
+ },
206
+ ifxFileUploadMaxFilesExceeded: {
207
+ description: 'Emitted when too many files added.',
208
+ table: { category: 'CUSTOM EVENTS' }
209
+ },
210
+ ifxFileUploadValidation: {
211
+ description: 'Emitted after required validation.',
212
+ table: { category: 'CUSTOM EVENTS' }
213
+ },
214
+ ifxFileUploadRetry: {
215
+ description: 'Emitted when retry is triggered.',
216
+ table: { category: 'CUSTOM EVENTS' }
217
+ }
218
+ }
219
+ };
220
+ export default meta;
221
+ const renderFileUpload = (args) => {
222
+ const el = document.createElement('ifx-file-upload');
223
+ if (args.dragAndDrop)
224
+ el.setAttribute('drag-and-drop', '');
225
+ el.setAttribute('max-file-size-m-b', args.maxFileSizeMB);
226
+ const rawTypes = Array.isArray(args.allowedFileTypes)
227
+ ? args.allowedFileTypes
228
+ : args.allowedFileTypes.split(',');
229
+ // Map 'jpg' ➜ ['jpg', 'jpeg']
230
+ const mappedTypes = rawTypes.flatMap(type => {
231
+ if (type === 'jpg')
232
+ return ['jpg', 'jpeg'];
233
+ return [type];
234
+ });
235
+ if (args.additionalAllowedFileTypes) {
236
+ const value = Array.isArray(args.additionalAllowedFileTypes)
237
+ ? args.additionalAllowedFileTypes.join(',')
238
+ : args.additionalAllowedFileTypes;
239
+ el.setAttribute('additional-allowed-file-types', value);
240
+ }
241
+ if (args.maxFiles !== undefined && args.maxFiles !== null) {
242
+ el.setAttribute('max-files', String(args.maxFiles));
243
+ }
244
+ if (args.required) {
245
+ el.setAttribute('required', '');
246
+ }
247
+ else {
248
+ el.removeAttribute('required');
249
+ }
250
+ if (args.disabled) {
251
+ el.setAttribute('disabled', '');
252
+ }
253
+ else {
254
+ el.removeAttribute('disabled');
255
+ }
256
+ const uniqueTypes = Array.from(new Set(mappedTypes));
257
+ el.setAttribute('allowed-file-types', uniqueTypes.join(','));
258
+ el.setAttribute('label', args.label);
259
+ el.setAttribute('label-required-error', args.labelRequiredError);
260
+ el.setAttribute('label-browse-files', args.labelBrowseFiles);
261
+ el.setAttribute('label-drag-and-drop', args.labelDragAndDrop);
262
+ el.setAttribute('label-uploaded-files-heading', args.labelUploadedFilesHeading);
263
+ el.setAttribute('label-file-too-large', args.labelFileTooLarge);
264
+ el.setAttribute('label-unsupported-file-type', args.labelUnsupportedFileType);
265
+ el.setAttribute('label-uploaded', args.labelUploaded);
266
+ el.setAttribute('label-supported-formats-template', args.labelSupportedFormatsTemplate);
267
+ el.setAttribute('label-file-singular', args.labelFileSingular);
268
+ el.setAttribute('label-file-plural', args.labelFilePlural);
269
+ el.setAttribute('label-max-files-info', args.labelMaxFilesInfo);
270
+ el.setAttribute('label-max-files-exceeded', args.labelMaxFilesExceeded);
271
+ el.setAttribute('label-upload-failed', args.labelUploadFailed);
272
+ el.setAttribute('aria-label-browse-files', args.ariaLabelBrowseFiles);
273
+ el.setAttribute('aria-label-dropzone', args.ariaLabelDropzone);
274
+ el.setAttribute('aria-label-file-input', args.ariaLabelFileInput);
275
+ el.setAttribute('aria-label-remove-file', args.ariaLabelRemoveFile);
276
+ el.setAttribute('aria-label-cancel-upload', args.ariaLabelCancelUpload);
277
+ el.setAttribute('aria-label-retry-upload', args.ariaLabelRetryUpload);
278
+ el.setAttribute('aria-label-uploading-status', args.ariaLabelUploadingStatus);
279
+ el.setAttribute('aria-label-uploaded-status', args.ariaLabelUploadedStatus);
280
+ el.setAttribute('aria-label-upload-failed-status', args.ariaLabelUploadFailedStatus);
281
+ el.addEventListener('ifxFileUploadAdd', action('ifxFileUploadAdd'));
282
+ el.addEventListener('ifxFileUploadRemove', action('ifxFileUploadRemove'));
283
+ el.addEventListener('ifxFileUploadChange', action('ifxFileUploadChange'));
284
+ el.addEventListener('ifxFileUploadError', action('ifxFileUploadError'));
285
+ el.addEventListener('ifxFileUploadInvalid', action('ifxFileUploadInvalid'));
286
+ el.addEventListener('ifxFileUploadStart', action('ifxFileUploadStart'));
287
+ el.addEventListener('ifxFileUploadComplete', action('ifxFileUploadComplete'));
288
+ el.addEventListener('ifxFileUploadAbort', action('ifxFileUploadAbort'));
289
+ el.addEventListener('ifxFileUploadDrop', action('ifxFileUploadDrop'));
290
+ el.addEventListener('ifxFileUploadClick', action('ifxFileUploadClick'));
291
+ el.addEventListener('ifxFileUploadMaxFilesExceeded', action('ifxFileUploadMaxFilesExceeded'));
292
+ el.addEventListener('ifxFileUploadValidation', action('ifxFileUploadValidation'));
293
+ el.addEventListener('ifxFileUploadRetry', action('ifxFileUploadRetry'));
294
+ return el;
295
+ };
296
+ export const UploadFileButton = {
297
+ name: 'Upload File (Button)',
298
+ args: {
299
+ dragAndDrop: false,
300
+ label: 'Label',
301
+ required: false,
302
+ labelRequiredError: 'You must upload at least one file.',
303
+ disabled: false,
304
+ maxFileSizeMB: 7,
305
+ allowedFileTypes: ['jpg', 'png', 'pdf'],
306
+ additionalAllowedFileTypes: 'application/zip,text/csv',
307
+ labelBrowseFiles: 'Browse files',
308
+ labelDragAndDrop: 'Drag & Drop or browse files to upload',
309
+ labelUploadedFilesHeading: 'Uploaded files',
310
+ labelFileTooLarge: 'Upload failed. Max file size: {{size}}MB.',
311
+ labelUnsupportedFileType: 'Unsupported file type.',
312
+ labelUploaded: 'Successfully uploaded',
313
+ labelSupportedFormatsTemplate: 'Supported file formats: {{types}}. Max file size: {{size}}MB.',
314
+ labelFileSingular: 'file',
315
+ labelFilePlural: 'files',
316
+ labelMaxFilesInfo: 'You can upload up to {{count}} {{files}}.',
317
+ labelMaxFilesExceeded: 'You have exceeded the maximum of {{count}} {{files}}.',
318
+ labelUploadFailed: 'Upload failed. Please try again.',
319
+ ariaLabelBrowseFiles: 'Browse files',
320
+ ariaLabelDropzone: 'Upload area. Click to browse or drag and drop files.',
321
+ ariaLabelFileInput: 'Upload file',
322
+ ariaLabelRemoveFile: 'Remove file',
323
+ ariaLabelCancelUpload: 'Cancel upload',
324
+ ariaLabelRetryUpload: 'Retry upload',
325
+ ariaLabelUploadingStatus: 'Upload in progress',
326
+ ariaLabelUploadedStatus: 'Upload completed',
327
+ ariaLabelUploadFailedStatus: 'Upload failed'
328
+ },
329
+ render: renderFileUpload
330
+ };
331
+ export const UploadAreaDragDrop = {
332
+ name: 'Upload Area (Drag&Drop)',
333
+ args: {
334
+ dragAndDrop: true,
335
+ label: 'Label',
336
+ required: false,
337
+ labelRequiredError: 'You must upload at least one file.',
338
+ disabled: false,
339
+ maxFileSizeMB: 7,
340
+ allowedFileTypes: ['jpg', 'png', 'pdf'],
341
+ additionalAllowedFileTypes: 'application/zip,text/csv',
342
+ labelBrowseFiles: 'Browse files',
343
+ labelDragAndDrop: 'Drag & Drop or browse files to upload',
344
+ labelUploadedFilesHeading: 'Uploaded files',
345
+ labelFileTooLarge: 'Upload failed. Max file size: {{size}}MB.',
346
+ labelUnsupportedFileType: 'Unsupported file type.',
347
+ labelUploaded: 'Successfully uploaded',
348
+ labelSupportedFormatsTemplate: 'Supported file formats: {{types}}. Max file size: {{size}}MB.',
349
+ labelFileSingular: 'file',
350
+ labelFilePlural: 'files',
351
+ labelMaxFilesInfo: 'You can upload up to {{count}} {{files}}.',
352
+ labelMaxFilesExceeded: 'You have exceeded the maximum of {{count}} {{files}}.',
353
+ labelUploadFailed: 'Upload failed. Please try again.',
354
+ ariaLabelBrowseFiles: 'Browse files',
355
+ ariaLabelDropzone: 'Upload area. Click to browse or drag and drop files.',
356
+ ariaLabelFileInput: 'Upload file',
357
+ ariaLabelRemoveFile: 'Remove file',
358
+ ariaLabelCancelUpload: 'Cancel upload',
359
+ ariaLabelRetryUpload: 'Retry upload',
360
+ ariaLabelUploadingStatus: 'Upload in progress',
361
+ ariaLabelUploadedStatus: 'Upload completed',
362
+ ariaLabelUploadFailedStatus: 'Upload failed'
363
+ },
364
+ render: renderFileUpload
365
+ };
366
+ export const UploadStatesDemo = {
367
+ name: 'Upload States (Demo)',
368
+ args: {
369
+ dragAndDrop: false
370
+ },
371
+ parameters: {
372
+ docs: {
373
+ description: {
374
+ story: 'Visual preview of all file states (success, upload in progress, rejected). Only the `dragAndDrop` control is available.'
375
+ }
376
+ },
377
+ previewTabs: {
378
+ 'canvas': { hidden: false },
379
+ 'storybook/docs/panel': { hidden: false },
380
+ 'storybook/actions/panel': { hidden: true },
381
+ 'storybook/interactions/panel': { hidden: true }
382
+ }
383
+ },
384
+ argTypes: {
385
+ dragAndDrop: { control: 'boolean' },
386
+ // Disable all other controls
387
+ disabled: { table: { disable: true } },
388
+ labelUploadFailed: { table: { disable: true } },
389
+ required: { table: { disable: true } },
390
+ label: { table: { disable: true } },
391
+ labelRequiredError: { table: { disable: true } },
392
+ maxFileSizeMB: { table: { disable: true } },
393
+ allowedFileTypes: { table: { disable: true } },
394
+ additionalAllowedFileTypes: { table: { disable: true } },
395
+ labelBrowseFiles: { table: { disable: true } },
396
+ labelDragAndDrop: { table: { disable: true } },
397
+ labelFileSingular: { table: { disable: true } },
398
+ labelFilePlural: { table: { disable: true } },
399
+ maxFiles: { table: { disable: true } },
400
+ labelMaxFilesInfo: { table: { disable: true } },
401
+ labelMaxFilesExceeded: { table: { disable: true } },
402
+ labelUploadedFilesHeading: { table: { disable: true } },
403
+ labelFileTooLarge: { table: { disable: true } },
404
+ labelUnsupportedFileType: { table: { disable: true } },
405
+ labelUploaded: { table: { disable: true } },
406
+ labelSupportedFormatsTemplate: { table: { disable: true } },
407
+ ifxFileUploadAdd: { table: { disable: true } },
408
+ ifxFileUploadRemove: { table: { disable: true } },
409
+ ifxFileUploadChange: { table: { disable: true } },
410
+ ifxFileUploadError: { table: { disable: true } },
411
+ ifxFileUploadInvalid: { table: { disable: true } },
412
+ ifxFileUploadStart: { table: { disable: true } },
413
+ ifxFileUploadComplete: { table: { disable: true } },
414
+ ifxFileUploadAllComplete: { table: { disable: true } },
415
+ ifxFileUploadAbort: { table: { disable: true } },
416
+ ifxFileUploadDrop: { table: { disable: true } },
417
+ ifxFileUploadClick: { table: { disable: true } },
418
+ ifxFileUploadMaxFilesExceeded: { table: { disable: true } },
419
+ ifxFileUploadValidation: { table: { disable: true } },
420
+ ifxFileUploadRetry: { table: { disable: true } },
421
+ // ARIA labels – disabled in demo
422
+ ariaLabelBrowseFiles: { table: { disable: true } },
423
+ ariaLabelDropzone: { table: { disable: true } },
424
+ ariaLabelFileInput: { table: { disable: true } },
425
+ ariaLabelRemoveFile: { table: { disable: true } },
426
+ ariaLabelCancelUpload: { table: { disable: true } },
427
+ ariaLabelRetryUpload: { table: { disable: true } },
428
+ ariaLabelUploadingStatus: { table: { disable: true } },
429
+ ariaLabelUploadedStatus: { table: { disable: true } },
430
+ ariaLabelUploadFailedStatus: { table: { disable: true } },
431
+ },
432
+ render: (args) => {
433
+ const el = document.createElement('ifx-file-upload');
434
+ if (args.dragAndDrop) {
435
+ el.setAttribute('drag-and-drop', '');
436
+ }
437
+ setTimeout(() => {
438
+ var _a, _b;
439
+ (_b = (_a = el).injectDemoState) === null || _b === void 0 ? void 0 : _b.call(_a);
440
+ }, 0);
441
+ return el;
442
+ }
443
+ };
444
+ export const UploadRequiredError = {
445
+ name: 'Upload Required Error (Demo)',
446
+ args: {
447
+ dragAndDrop: false
448
+ },
449
+ parameters: {
450
+ docs: {
451
+ description: {
452
+ story: 'Demonstrates the error state when the upload is required but no files have been added. Only `dragAndDrop` is controllable in this demo.'
453
+ }
454
+ }
455
+ },
456
+ argTypes: {
457
+ dragAndDrop: { control: 'boolean' },
458
+ // Disable all other controls
459
+ disabled: { table: { disable: true } },
460
+ labelUploadFailed: { table: { disable: true } },
461
+ required: { table: { disable: true } },
462
+ label: { table: { disable: true } },
463
+ labelRequiredError: { table: { disable: true } },
464
+ maxFileSizeMB: { table: { disable: true } },
465
+ allowedFileTypes: { table: { disable: true } },
466
+ additionalAllowedFileTypes: { table: { disable: true } },
467
+ labelBrowseFiles: { table: { disable: true } },
468
+ labelDragAndDrop: { table: { disable: true } },
469
+ labelFileSingular: { table: { disable: true } },
470
+ labelFilePlural: { table: { disable: true } },
471
+ maxFiles: { table: { disable: true } },
472
+ labelMaxFilesInfo: { table: { disable: true } },
473
+ labelMaxFilesExceeded: { table: { disable: true } },
474
+ labelUploadedFilesHeading: { table: { disable: true } },
475
+ labelFileTooLarge: { table: { disable: true } },
476
+ labelUnsupportedFileType: { table: { disable: true } },
477
+ labelUploaded: { table: { disable: true } },
478
+ labelSupportedFormatsTemplate: { table: { disable: true } },
479
+ ifxFileUploadAdd: { table: { disable: true } },
480
+ ifxFileUploadRemove: { table: { disable: true } },
481
+ ifxFileUploadChange: { table: { disable: true } },
482
+ ifxFileUploadError: { table: { disable: true } },
483
+ ifxFileUploadInvalid: { table: { disable: true } },
484
+ ifxFileUploadStart: { table: { disable: true } },
485
+ ifxFileUploadComplete: { table: { disable: true } },
486
+ ifxFileUploadAllComplete: { table: { disable: true } },
487
+ ifxFileUploadAbort: { table: { disable: true } },
488
+ ifxFileUploadDrop: { table: { disable: true } },
489
+ ifxFileUploadClick: { table: { disable: true } },
490
+ ifxFileUploadMaxFilesExceeded: { table: { disable: true } },
491
+ ifxFileUploadValidation: { table: { disable: true } },
492
+ ifxFileUploadRetry: { table: { disable: true } },
493
+ // ARIA labels – disabled in demo
494
+ ariaLabelBrowseFiles: { table: { disable: true } },
495
+ ariaLabelDropzone: { table: { disable: true } },
496
+ ariaLabelFileInput: { table: { disable: true } },
497
+ ariaLabelRemoveFile: { table: { disable: true } },
498
+ ariaLabelCancelUpload: { table: { disable: true } },
499
+ ariaLabelRetryUpload: { table: { disable: true } },
500
+ ariaLabelUploadingStatus: { table: { disable: true } },
501
+ ariaLabelUploadedStatus: { table: { disable: true } },
502
+ ariaLabelUploadFailedStatus: { table: { disable: true } },
503
+ },
504
+ render: (args) => {
505
+ const el = document.createElement('ifx-file-upload');
506
+ if (args.dragAndDrop)
507
+ el.setAttribute('drag-and-drop', '');
508
+ el.setAttribute('required', '');
509
+ // Fehlerzustand gezielt triggern
510
+ setTimeout(() => {
511
+ var _a, _b;
512
+ (_b = (_a = el).triggerDemoValidation) === null || _b === void 0 ? void 0 : _b.call(_a);
513
+ }, 100);
514
+ return el;
515
+ }
516
+ };
517
+ //# sourceMappingURL=file-upload.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-upload.stories.js","sourceRoot":"","sources":["../../../src/components/file-upload/file-upload.stories.ts"],"names":[],"mappings":"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","sourcesContent":["import { action } from '@storybook/addon-actions';\nimport type { Meta, StoryObj } from '@storybook/html';\n\nconst meta: Meta = {\n title: 'Components/File Upload',\n tags: ['autodocs'],\n parameters: {\n controls: { expanded: true },\n docs: {\n description: {\n component: 'Upload component with different interaction styles: button or drag-and-drop area.'\n }\n }\n },\n argTypes: {\n // GENERAL\n dragAndDrop: {\n control: 'boolean',\n description: 'Enables drag-and-drop area. If false, a button-based upload is shown instead.'\n },\n required: {\n control: 'boolean',\n description: 'If set to true, at least one file must be uploaded. Validation fails if empty.'\n },\n disabled: {\n control: 'boolean',\n description: 'Disables the component and prevents all interaction (upload, drag-and-drop, removal, etc.).',\n },\n maxFileSizeMB: {\n control: 'number',\n description: 'Maximum file size allowed per file (in MB). Files larger than this will be rejected.'\n },\n allowedFileTypes: {\n control: { type: 'check' },\n options: ['jpg', 'png', 'pdf', 'mov', 'mp3', 'mp4'],\n description: 'Select one or more allowed file extensions. Internally mapped to MIME types.'\n },\n additionalAllowedFileTypes: {\n control: 'text',\n description: 'Adds additional allowed file types using exact MIME types. Example: application/zip'\n },\n maxFiles: {\n control: { type: 'number', min: 1, step: 1 },\n description: 'Maximum number of files that can be uploaded in total. Must be at least 1. If unset, unlimited.'\n },\n\n // LABELS\n label: {\n control: 'text',\n description: 'Label shown above the upload area.',\n table: { category: 'LABELS' }\n },\n labelRequiredError: {\n control: 'text',\n description: 'Error message shown when no file is uploaded and `required` is true.',\n table: { category: 'LABELS' }\n },\n labelBrowseFiles: {\n control: 'text',\n description: 'Text for the file selection button.',\n table: { category: 'LABELS' }\n },\n labelDragAndDrop: {\n control: 'text',\n description: 'Text shown inside the drag-and-drop area.',\n table: { category: 'LABELS' }\n },\n labelUploadedFilesHeading: {\n control: 'text',\n description: 'Heading above the uploaded files list.',\n table: { category: 'LABELS' }\n },\n labelFileTooLarge: {\n control: 'text',\n description: 'Shown when a file exceeds the allowed size. Use {{size}}.',\n table: { category: 'LABELS' }\n },\n labelUnsupportedFileType: {\n control: 'text',\n description: 'Shown when an unsupported file type is uploaded.',\n table: { category: 'LABELS' }\n },\n labelUploaded: {\n control: 'text',\n description: 'Label shown after successful upload.',\n table: { category: 'LABELS' }\n },\n labelUploadFailed: {\n control: 'text',\n description: 'Text shown when a file upload fails.',\n table: { category: 'LABELS' }\n },\n labelSupportedFormatsTemplate: {\n control: 'text',\n description: 'Template showing supported file formats. Use {{types}} and {{size}}.',\n table: { category: 'LABELS' }\n },\n labelFileSingular: {\n control: 'text',\n description: 'Singular word for file.',\n table: { category: 'LABELS' }\n },\n labelFilePlural: {\n control: 'text',\n description: 'Plural word for file.',\n table: { category: 'LABELS' }\n },\n labelMaxFilesInfo: {\n control: 'text',\n description: 'Message for max file info. Use {{count}}.',\n table: { category: 'LABELS' }\n },\n labelMaxFilesExceeded: {\n control: 'text',\n description: 'Error when exceeding max files. Use {{count}}.',\n table: { category: 'LABELS' }\n },\n\n // ARIA LABELS\n ariaLabelBrowseFiles: {\n control: 'text',\n description: 'ARIA label for the file upload button.',\n table: { category: 'ARIA LABELS' }\n },\n ariaLabelDropzone: {\n control: 'text',\n description: 'ARIA label for the dropzone.',\n table: { category: 'ARIA LABELS' }\n },\n ariaLabelFileInput: {\n control: 'text',\n description: 'ARIA label for the file input.',\n table: { category: 'ARIA LABELS' }\n },\n ariaLabelRemoveFile: {\n control: 'text',\n description: 'ARIA label for remove button.',\n table: { category: 'ARIA LABELS' }\n },\n ariaLabelCancelUpload: {\n control: 'text',\n description: 'ARIA label for cancel button.',\n table: { category: 'ARIA LABELS' }\n },\n ariaLabelRetryUpload: {\n control: 'text',\n description: 'ARIA label for retry button.',\n table: { category: 'ARIA LABELS' }\n },\n ariaLabelUploadingStatus: {\n control: 'text',\n description: 'ARIA status for uploading.',\n table: { category: 'ARIA LABELS' }\n },\n ariaLabelUploadedStatus: {\n control: 'text',\n description: 'ARIA status for success.',\n table: { category: 'ARIA LABELS' }\n },\n ariaLabelUploadFailedStatus: {\n control: 'text',\n description: 'ARIA status for failed upload.',\n table: { category: 'ARIA LABELS' }\n },\n\n // CUSTOM EVENTS\n ifxFileUploadAdd: {\n description: 'Emitted when files are added.',\n table: { category: 'CUSTOM EVENTS' }\n },\n ifxFileUploadRemove: {\n description: 'Emitted when a file is removed.',\n table: { category: 'CUSTOM EVENTS' }\n },\n ifxFileUploadChange: {\n description: 'Emitted when file list changes.',\n table: { category: 'CUSTOM EVENTS' }\n },\n ifxFileUploadError: {\n description: 'Emitted when an upload error occurs.',\n table: { category: 'CUSTOM EVENTS' }\n },\n ifxFileUploadInvalid: {\n description: 'Emitted when file is invalid.',\n table: { category: 'CUSTOM EVENTS' }\n },\n ifxFileUploadStart: {\n description: 'Emitted when upload starts.',\n table: { category: 'CUSTOM EVENTS' }\n },\n ifxFileUploadComplete: {\n description: 'Emitted when upload completes.',\n table: { category: 'CUSTOM EVENTS' }\n },\n ifxFileUploadAllComplete: {\n description: 'Emitted when all uploads are done.',\n table: { category: 'CUSTOM EVENTS' }\n },\n ifxFileUploadAbort: {\n description: 'Emitted when an upload is cancelled.',\n table: { category: 'CUSTOM EVENTS' }\n },\n ifxFileUploadDrop: {\n description: 'Emitted on file drop.',\n table: { category: 'CUSTOM EVENTS' }\n },\n ifxFileUploadClick: {\n description: 'Emitted on click.',\n table: { category: 'CUSTOM EVENTS' }\n },\n ifxFileUploadMaxFilesExceeded: {\n description: 'Emitted when too many files added.',\n table: { category: 'CUSTOM EVENTS' }\n },\n ifxFileUploadValidation: {\n description: 'Emitted after required validation.',\n table: { category: 'CUSTOM EVENTS' }\n },\n ifxFileUploadRetry: {\n description: 'Emitted when retry is triggered.',\n table: { category: 'CUSTOM EVENTS' }\n }\n }\n};\n\nexport default meta;\n\ntype Story = StoryObj;\n\nconst renderFileUpload = (args: any) => {\n const el = document.createElement('ifx-file-upload');\n\n if (args.dragAndDrop) el.setAttribute('drag-and-drop', '');\n el.setAttribute('max-file-size-m-b', args.maxFileSizeMB);\n\n const rawTypes = Array.isArray(args.allowedFileTypes)\n ? args.allowedFileTypes\n : args.allowedFileTypes.split(',');\n\n // Map 'jpg' ➜ ['jpg', 'jpeg']\n const mappedTypes = rawTypes.flatMap(type => {\n if (type === 'jpg') return ['jpg', 'jpeg'];\n return [type];\n });\n\n if (args.additionalAllowedFileTypes) {\n const value = Array.isArray(args.additionalAllowedFileTypes)\n ? args.additionalAllowedFileTypes.join(',')\n : args.additionalAllowedFileTypes;\n el.setAttribute('additional-allowed-file-types', value);\n }\n\n if (args.maxFiles !== undefined && args.maxFiles !== null) {\n el.setAttribute('max-files', String(args.maxFiles));\n }\n\n if (args.required) {\n el.setAttribute('required', '');\n } else {\n el.removeAttribute('required');\n }\n\n if (args.disabled) {\n el.setAttribute('disabled', '');\n } else {\n el.removeAttribute('disabled');\n }\n\n const uniqueTypes = Array.from(new Set(mappedTypes));\n el.setAttribute('allowed-file-types', uniqueTypes.join(','));\n\n el.setAttribute('label', args.label);\n el.setAttribute('label-required-error', args.labelRequiredError);\n el.setAttribute('label-browse-files', args.labelBrowseFiles);\n el.setAttribute('label-drag-and-drop', args.labelDragAndDrop);\n el.setAttribute('label-uploaded-files-heading', args.labelUploadedFilesHeading);\n el.setAttribute('label-file-too-large', args.labelFileTooLarge);\n el.setAttribute('label-unsupported-file-type', args.labelUnsupportedFileType);\n el.setAttribute('label-uploaded', args.labelUploaded);\n el.setAttribute('label-supported-formats-template', args.labelSupportedFormatsTemplate);\n el.setAttribute('label-file-singular', args.labelFileSingular);\n el.setAttribute('label-file-plural', args.labelFilePlural);\n el.setAttribute('label-max-files-info', args.labelMaxFilesInfo);\n el.setAttribute('label-max-files-exceeded', args.labelMaxFilesExceeded);\n el.setAttribute('label-upload-failed', args.labelUploadFailed);\n\n el.setAttribute('aria-label-browse-files', args.ariaLabelBrowseFiles);\n el.setAttribute('aria-label-dropzone', args.ariaLabelDropzone);\n el.setAttribute('aria-label-file-input', args.ariaLabelFileInput);\n el.setAttribute('aria-label-remove-file', args.ariaLabelRemoveFile);\n el.setAttribute('aria-label-cancel-upload', args.ariaLabelCancelUpload);\n el.setAttribute('aria-label-retry-upload', args.ariaLabelRetryUpload);\n el.setAttribute('aria-label-uploading-status', args.ariaLabelUploadingStatus);\n el.setAttribute('aria-label-uploaded-status', args.ariaLabelUploadedStatus);\n el.setAttribute('aria-label-upload-failed-status', args.ariaLabelUploadFailedStatus);\n\n el.addEventListener('ifxFileUploadAdd', action('ifxFileUploadAdd'));\n el.addEventListener('ifxFileUploadRemove', action('ifxFileUploadRemove'));\n el.addEventListener('ifxFileUploadChange', action('ifxFileUploadChange'));\n el.addEventListener('ifxFileUploadError', action('ifxFileUploadError'));\n el.addEventListener('ifxFileUploadInvalid', action('ifxFileUploadInvalid'));\n el.addEventListener('ifxFileUploadStart', action('ifxFileUploadStart'));\n el.addEventListener('ifxFileUploadComplete', action('ifxFileUploadComplete'));\n el.addEventListener('ifxFileUploadAbort', action('ifxFileUploadAbort'));\n el.addEventListener('ifxFileUploadDrop', action('ifxFileUploadDrop'));\n el.addEventListener('ifxFileUploadClick', action('ifxFileUploadClick'));\n el.addEventListener('ifxFileUploadMaxFilesExceeded', action('ifxFileUploadMaxFilesExceeded'));\n el.addEventListener('ifxFileUploadValidation', action('ifxFileUploadValidation'));\n el.addEventListener('ifxFileUploadRetry', action('ifxFileUploadRetry'));\n\n return el;\n};\n\nexport const UploadFileButton: Story = {\n name: 'Upload File (Button)',\n args: {\n dragAndDrop: false,\n label: 'Label',\n required: false,\n labelRequiredError: 'You must upload at least one file.',\n disabled: false,\n maxFileSizeMB: 7,\n allowedFileTypes: ['jpg', 'png', 'pdf'],\n additionalAllowedFileTypes: 'application/zip,text/csv',\n labelBrowseFiles: 'Browse files',\n labelDragAndDrop: 'Drag & Drop or browse files to upload',\n labelUploadedFilesHeading: 'Uploaded files',\n labelFileTooLarge: 'Upload failed. Max file size: {{size}}MB.',\n labelUnsupportedFileType: 'Unsupported file type.',\n labelUploaded: 'Successfully uploaded',\n labelSupportedFormatsTemplate: 'Supported file formats: {{types}}. Max file size: {{size}}MB.',\n labelFileSingular: 'file',\n labelFilePlural: 'files',\n labelMaxFilesInfo: 'You can upload up to {{count}} {{files}}.',\n labelMaxFilesExceeded: 'You have exceeded the maximum of {{count}} {{files}}.',\n labelUploadFailed: 'Upload failed. Please try again.',\n ariaLabelBrowseFiles: 'Browse files',\n ariaLabelDropzone: 'Upload area. Click to browse or drag and drop files.',\n ariaLabelFileInput: 'Upload file',\n ariaLabelRemoveFile: 'Remove file',\n ariaLabelCancelUpload: 'Cancel upload',\n ariaLabelRetryUpload: 'Retry upload',\n ariaLabelUploadingStatus: 'Upload in progress',\n ariaLabelUploadedStatus: 'Upload completed',\n ariaLabelUploadFailedStatus: 'Upload failed'\n },\n render: renderFileUpload\n};\n\nexport const UploadAreaDragDrop: Story = {\n name: 'Upload Area (Drag&Drop)',\n args: {\n dragAndDrop: true,\n label: 'Label',\n required: false,\n labelRequiredError: 'You must upload at least one file.',\n disabled: false,\n maxFileSizeMB: 7,\n allowedFileTypes: ['jpg', 'png', 'pdf'],\n additionalAllowedFileTypes: 'application/zip,text/csv',\n labelBrowseFiles: 'Browse files',\n labelDragAndDrop: 'Drag & Drop or browse files to upload',\n labelUploadedFilesHeading: 'Uploaded files',\n labelFileTooLarge: 'Upload failed. Max file size: {{size}}MB.',\n labelUnsupportedFileType: 'Unsupported file type.',\n labelUploaded: 'Successfully uploaded',\n labelSupportedFormatsTemplate: 'Supported file formats: {{types}}. Max file size: {{size}}MB.',\n labelFileSingular: 'file',\n labelFilePlural: 'files',\n labelMaxFilesInfo: 'You can upload up to {{count}} {{files}}.',\n labelMaxFilesExceeded: 'You have exceeded the maximum of {{count}} {{files}}.',\n labelUploadFailed: 'Upload failed. Please try again.',\n ariaLabelBrowseFiles: 'Browse files',\n ariaLabelDropzone: 'Upload area. Click to browse or drag and drop files.',\n ariaLabelFileInput: 'Upload file',\n ariaLabelRemoveFile: 'Remove file',\n ariaLabelCancelUpload: 'Cancel upload',\n ariaLabelRetryUpload: 'Retry upload',\n ariaLabelUploadingStatus: 'Upload in progress',\n ariaLabelUploadedStatus: 'Upload completed',\n ariaLabelUploadFailedStatus: 'Upload failed'\n },\n render: renderFileUpload\n};\n\nexport const UploadStatesDemo: Story = {\n name: 'Upload States (Demo)',\n args: {\n dragAndDrop: false\n },\n parameters: {\n docs: {\n description: {\n story: 'Visual preview of all file states (success, upload in progress, rejected). Only the `dragAndDrop` control is available.'\n }\n },\n previewTabs: {\n 'canvas': { hidden: false },\n 'storybook/docs/panel': { hidden: false },\n 'storybook/actions/panel': { hidden: true },\n 'storybook/interactions/panel': { hidden: true }\n }\n },\n argTypes: {\n dragAndDrop: { control: 'boolean' },\n // Disable all other controls\n disabled: { table: { disable: true } },\n labelUploadFailed: { table: { disable: true } },\n required: { table: { disable: true } },\n label: { table: { disable: true } },\n labelRequiredError: { table: { disable: true } },\n maxFileSizeMB: { table: { disable: true } },\n allowedFileTypes: { table: { disable: true } },\n additionalAllowedFileTypes: { table: { disable: true } },\n labelBrowseFiles: { table: { disable: true } },\n labelDragAndDrop: { table: { disable: true } },\n labelFileSingular: { table: { disable: true } },\n labelFilePlural: { table: { disable: true } },\n maxFiles: { table: { disable: true } },\n labelMaxFilesInfo: { table: { disable: true } },\n labelMaxFilesExceeded: { table: { disable: true } },\n labelUploadedFilesHeading: { table: { disable: true } },\n labelFileTooLarge: { table: { disable: true } },\n labelUnsupportedFileType: { table: { disable: true } },\n labelUploaded: { table: { disable: true } },\n labelSupportedFormatsTemplate: { table: { disable: true } },\n ifxFileUploadAdd: { table: { disable: true } },\n ifxFileUploadRemove: { table: { disable: true } },\n ifxFileUploadChange: { table: { disable: true } },\n ifxFileUploadError: { table: { disable: true } },\n ifxFileUploadInvalid: { table: { disable: true } },\n ifxFileUploadStart: { table: { disable: true } },\n ifxFileUploadComplete: { table: { disable: true } },\n ifxFileUploadAllComplete: { table: { disable: true } },\n ifxFileUploadAbort: { table: { disable: true } },\n ifxFileUploadDrop: { table: { disable: true } },\n ifxFileUploadClick: { table: { disable: true } },\n ifxFileUploadMaxFilesExceeded: { table: { disable: true } },\n ifxFileUploadValidation: { table: { disable: true } },\n ifxFileUploadRetry: { table: { disable: true } },\n // ARIA labels – disabled in demo\n ariaLabelBrowseFiles: { table: { disable: true } },\n ariaLabelDropzone: { table: { disable: true } },\n ariaLabelFileInput: { table: { disable: true } },\n ariaLabelRemoveFile: { table: { disable: true } },\n ariaLabelCancelUpload: { table: { disable: true } },\n ariaLabelRetryUpload: { table: { disable: true } },\n ariaLabelUploadingStatus: { table: { disable: true } },\n ariaLabelUploadedStatus: { table: { disable: true } },\n ariaLabelUploadFailedStatus: { table: { disable: true } },\n },\n render: (args) => {\n const el = document.createElement('ifx-file-upload');\n\n if (args.dragAndDrop) {\n el.setAttribute('drag-and-drop', '');\n }\n\n setTimeout(() => {\n (el as any).injectDemoState?.();\n }, 0);\n\n return el;\n }\n};\n\nexport const UploadRequiredError: Story = {\n name: 'Upload Required Error (Demo)',\n args: {\n dragAndDrop: false\n },\n parameters: {\n docs: {\n description: {\n story: 'Demonstrates the error state when the upload is required but no files have been added. Only `dragAndDrop` is controllable in this demo.'\n }\n }\n },\n argTypes: {\n dragAndDrop: { control: 'boolean' },\n // Disable all other controls\n disabled: { table: { disable: true } },\n labelUploadFailed: { table: { disable: true } },\n required: { table: { disable: true } },\n label: { table: { disable: true } },\n labelRequiredError: { table: { disable: true } },\n maxFileSizeMB: { table: { disable: true } },\n allowedFileTypes: { table: { disable: true } },\n additionalAllowedFileTypes: { table: { disable: true } },\n labelBrowseFiles: { table: { disable: true } },\n labelDragAndDrop: { table: { disable: true } },\n labelFileSingular: { table: { disable: true } },\n labelFilePlural: { table: { disable: true } },\n maxFiles: { table: { disable: true } },\n labelMaxFilesInfo: { table: { disable: true } },\n labelMaxFilesExceeded: { table: { disable: true } },\n labelUploadedFilesHeading: { table: { disable: true } },\n labelFileTooLarge: { table: { disable: true } },\n labelUnsupportedFileType: { table: { disable: true } },\n labelUploaded: { table: { disable: true } },\n labelSupportedFormatsTemplate: { table: { disable: true } },\n ifxFileUploadAdd: { table: { disable: true } },\n ifxFileUploadRemove: { table: { disable: true } },\n ifxFileUploadChange: { table: { disable: true } },\n ifxFileUploadError: { table: { disable: true } },\n ifxFileUploadInvalid: { table: { disable: true } },\n ifxFileUploadStart: { table: { disable: true } },\n ifxFileUploadComplete: { table: { disable: true } },\n ifxFileUploadAllComplete: { table: { disable: true } },\n ifxFileUploadAbort: { table: { disable: true } },\n ifxFileUploadDrop: { table: { disable: true } },\n ifxFileUploadClick: { table: { disable: true } },\n ifxFileUploadMaxFilesExceeded: { table: { disable: true } },\n ifxFileUploadValidation: { table: { disable: true } },\n ifxFileUploadRetry: { table: { disable: true } },\n // ARIA labels – disabled in demo\n ariaLabelBrowseFiles: { table: { disable: true } },\n ariaLabelDropzone: { table: { disable: true } },\n ariaLabelFileInput: { table: { disable: true } },\n ariaLabelRemoveFile: { table: { disable: true } },\n ariaLabelCancelUpload: { table: { disable: true } },\n ariaLabelRetryUpload: { table: { disable: true } },\n ariaLabelUploadingStatus: { table: { disable: true } },\n ariaLabelUploadedStatus: { table: { disable: true } },\n ariaLabelUploadFailedStatus: { table: { disable: true } },\n },\n render: (args) => {\n const el = document.createElement('ifx-file-upload');\n\n if (args.dragAndDrop) el.setAttribute('drag-and-drop', '');\n\n el.setAttribute('required', '');\n\n // Fehlerzustand gezielt triggern\n setTimeout(() => {\n (el as any).triggerDemoValidation?.();\n }, 100);\n\n return el;\n }\n};\n"]}
@@ -1,7 +1,7 @@
1
1
  import { h } from "@stencil/core";
2
2
  export class Card {
3
3
  render() {
4
- return (h("div", { key: 'b39b050d9a259a269d885597f83d55f8dc2a8048', class: "col" }, h("slot", { key: 'def6a00e5eaa6b959278664c93a366181f44c6f5', name: "title" }), h("span", { key: '98f9d7c688ab310ad4ee8beaceb286267e2cc8a8', "aria-label": 'navigation link' }, h("slot", { key: '2d21498d8b068f6799f674d5e5c602505a9c9c04', name: "link" }))));
4
+ return (h("div", { key: '6936db25ec4495ee482e843e5603958f03055c6c', class: "col" }, h("slot", { key: '5255b18e7c067b96de60166ff91fee6b2d1c70db', name: "title" }), h("span", { key: '6a7baa1aefd56976e1167f5588b443eff2e9fa3a', "aria-label": 'navigation link' }, h("slot", { key: 'da579e15c58437f36ae6dd866661906ad0acd620', name: "link" }))));
5
5
  }
6
6
  static get is() { return "ifx-footer-column"; }
7
7
  static get encapsulation() { return "shadow"; }