@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.
- package/dist/cjs/ifx-alert_2.cjs.entry.js +1 -1
- package/dist/cjs/ifx-basic-table.cjs.entry.js +1 -1
- package/dist/cjs/ifx-chip_3.cjs.entry.js +1 -1
- package/dist/cjs/ifx-faq.cjs.entry.js +1 -1
- package/dist/cjs/ifx-file-upload.cjs.entry.js +570 -0
- package/dist/cjs/ifx-file-upload.cjs.entry.js.map +1 -0
- package/dist/cjs/ifx-filter-accordion.cjs.entry.js +2 -2
- package/dist/cjs/ifx-filter-bar.cjs.entry.js +1 -1
- package/dist/cjs/ifx-filter-search.cjs.entry.js +1 -1
- package/dist/cjs/ifx-filter-type-group.cjs.entry.js +1 -1
- package/dist/cjs/ifx-footer-column.cjs.entry.js +1 -1
- package/dist/cjs/ifx-footer.cjs.entry.js +4 -4
- package/dist/cjs/ifx-icon-button.cjs.entry.js +1 -1
- package/dist/cjs/ifx-icon.cjs.entry.js +1 -1
- package/dist/cjs/ifx-icons-preview.cjs.entry.js +1 -1
- package/dist/cjs/ifx-link.cjs.entry.js +1 -1
- package/dist/cjs/ifx-list-entry.cjs.entry.js +1 -1
- package/dist/cjs/ifx-modal.cjs.entry.js +2 -2
- package/dist/cjs/ifx-navbar-item.cjs.entry.js +5 -5
- package/dist/cjs/ifx-navbar-profile.cjs.entry.js +3 -3
- package/dist/cjs/ifx-navbar.cjs.entry.js +3 -3
- package/dist/cjs/ifx-notification.cjs.entry.js +2 -2
- package/dist/cjs/ifx-number-indicator.cjs.entry.js +1 -1
- package/dist/cjs/ifx-overview-table.cjs.entry.js +1 -1
- package/dist/cjs/ifx-progress-bar.cjs.entry.js +1 -1
- package/dist/cjs/ifx-radio-button-group.cjs.entry.js +1 -1
- package/dist/cjs/ifx-radio-button.cjs.entry.js +2 -2
- package/dist/cjs/ifx-search-bar.cjs.entry.js +1 -1
- package/dist/cjs/ifx-search-field.cjs.entry.js +1 -1
- package/dist/cjs/ifx-segment.cjs.entry.js +1 -1
- package/dist/cjs/ifx-segmented-control.cjs.entry.js +2 -2
- package/dist/cjs/ifx-select.cjs.entry.js +2 -2
- package/dist/cjs/ifx-sidebar-item.cjs.entry.js +5 -5
- package/dist/cjs/ifx-sidebar-title.cjs.entry.js +1 -1
- package/dist/cjs/ifx-sidebar.cjs.entry.js +5 -5
- package/dist/cjs/ifx-slider.cjs.entry.js +2 -2
- package/dist/cjs/ifx-spinner_2.cjs.entry.js +6 -6
- package/dist/cjs/ifx-status.cjs.entry.js +1 -1
- package/dist/cjs/ifx-step.cjs.entry.js +4 -4
- package/dist/cjs/ifx-stepper.cjs.entry.js +2 -2
- package/dist/cjs/ifx-switch.cjs.entry.js +1 -1
- package/dist/cjs/ifx-tab.cjs.entry.js +1 -1
- package/dist/cjs/ifx-table.cjs.entry.js +2 -2
- package/dist/cjs/ifx-tabs.cjs.entry.js +2 -2
- package/dist/cjs/ifx-tag.cjs.entry.js +1 -1
- package/dist/cjs/ifx-templates-ui.cjs.entry.js +1 -1
- package/dist/cjs/ifx-textarea.cjs.entry.js +1 -1
- package/dist/cjs/ifx-tooltip.cjs.entry.js +4 -4
- package/dist/cjs/index-c9480f70.js +12 -8
- package/dist/cjs/infineon-design-system-stencil.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/file-upload/file-upload.css +211 -0
- package/dist/collection/components/file-upload/file-upload.js +1501 -0
- package/dist/collection/components/file-upload/file-upload.js.map +1 -0
- package/dist/collection/components/file-upload/file-upload.stories.js +517 -0
- package/dist/collection/components/file-upload/file-upload.stories.js.map +1 -0
- package/dist/collection/components/footer/footer-column.js +1 -1
- package/dist/collection/components/footer/footer.js +4 -4
- package/dist/collection/components/icon/infineonIconStencil.js +1 -1
- package/dist/collection/components/icon-button/icon-button.js +1 -1
- package/dist/collection/components/icons-preview/icons-preview.js +1 -1
- package/dist/collection/components/link/link.js +1 -1
- package/dist/collection/components/modal/modal.js +2 -2
- package/dist/collection/components/navigation/navbar/navbar-item.js +5 -5
- package/dist/collection/components/navigation/navbar/navbar-profile.js +3 -3
- package/dist/collection/components/navigation/navbar/navbar.js +3 -3
- package/dist/collection/components/navigation/sidebar/sidebar-item.js +5 -5
- package/dist/collection/components/navigation/sidebar/sidebar-title.js +1 -1
- package/dist/collection/components/navigation/sidebar/sidebar.js +5 -5
- package/dist/collection/components/notification/notification.js +2 -2
- package/dist/collection/components/number-indicator/number-indicator.js +1 -1
- package/dist/collection/components/overview-table/overview-table.js +1 -1
- package/dist/collection/components/pagination/pagination.js +1 -1
- package/dist/collection/components/progress-bar/progress-bar.js +1 -1
- package/dist/collection/components/radio-button/radio-button.js +2 -2
- package/dist/collection/components/radio-button-group/radio-button-group.js +1 -1
- package/dist/collection/components/search-bar/search-bar.js +1 -1
- package/dist/collection/components/search-field/search-field.js +1 -1
- package/dist/collection/components/segmented-control/segment/segment.js +1 -1
- package/dist/collection/components/segmented-control/segmented-control.js +2 -2
- package/dist/collection/components/select/single-select/select.js +2 -2
- package/dist/collection/components/slider/slider.js +2 -2
- package/dist/collection/components/spinner/spinner.js +2 -2
- package/dist/collection/components/status/status.js +1 -1
- package/dist/collection/components/stepper/step/step.js +4 -4
- package/dist/collection/components/stepper/stepper.js +2 -2
- package/dist/collection/components/switch/switch.js +1 -1
- package/dist/collection/components/table-advanced-version/filter-bar/filter-bar.js +1 -1
- package/dist/collection/components/table-advanced-version/filter-type-group/filter-accordion/filter-accordion.js +2 -2
- package/dist/collection/components/table-advanced-version/filter-type-group/filter-search/filter-search.js +1 -1
- package/dist/collection/components/table-advanced-version/filter-type-group/filter-type-group.js +1 -1
- package/dist/collection/components/table-advanced-version/list/list-entry/list-entry.js +1 -1
- package/dist/collection/components/table-advanced-version/table.js +2 -2
- package/dist/collection/components/table-basic-version/table.js +1 -1
- package/dist/collection/components/tabs/tab.js +1 -1
- package/dist/collection/components/tabs/tabs.js +2 -2
- package/dist/collection/components/tag/tag.js +1 -1
- package/dist/collection/components/templates/template/template.js +1 -1
- package/dist/collection/components/templates/templates-ui/templates-ui.js +1 -1
- package/dist/collection/components/text-field/text-field.js +4 -4
- package/dist/collection/components/textarea/textarea.js +1 -1
- package/dist/collection/components/tooltip/tooltip.js +4 -4
- package/dist/collection/stories/setup-and-installation/faq/faq.js +1 -1
- package/dist/components/ifx-accordion-item.js +1 -1
- package/dist/components/ifx-alert.js +1 -1
- package/dist/components/ifx-basic-table.js +1 -1
- package/dist/components/ifx-breadcrumb-item-label.js +1 -1
- package/dist/components/ifx-checkbox-group.js +1 -1
- package/dist/components/ifx-checkbox.js +1 -1
- package/dist/components/ifx-chip-item.js +1 -1
- package/dist/components/ifx-chip.js +1 -1
- package/dist/components/ifx-date-picker.js +1 -1
- package/dist/components/ifx-download.js +1 -1
- package/dist/components/ifx-dropdown-item.js +1 -1
- package/dist/components/ifx-dropdown-trigger-button.js +1 -1
- package/dist/components/ifx-faq.js +3 -3
- package/dist/components/ifx-file-upload.d.ts +11 -0
- package/dist/components/ifx-file-upload.js +649 -0
- package/dist/components/ifx-file-upload.js.map +1 -0
- package/dist/components/ifx-filter-accordion.js +4 -4
- package/dist/components/ifx-filter-bar.js +2 -2
- package/dist/components/ifx-filter-search.js +3 -3
- package/dist/components/ifx-filter-type-group.js +1 -1
- package/dist/components/ifx-footer-column.js +1 -1
- package/dist/components/ifx-footer.js +4 -4
- package/dist/components/ifx-icon-button.js +1 -1
- package/dist/components/ifx-icon.js +1 -1
- package/dist/components/ifx-icons-preview.js +4 -4
- package/dist/components/ifx-link.js +1 -1
- package/dist/components/ifx-list-entry.js +4 -4
- package/dist/components/ifx-list.js +2 -2
- package/dist/components/ifx-modal.js +4 -4
- package/dist/components/ifx-multiselect.js +1 -1
- package/dist/components/ifx-navbar-item.js +7 -7
- package/dist/components/ifx-navbar-profile.js +3 -3
- package/dist/components/ifx-navbar.js +4 -4
- package/dist/components/ifx-notification.js +1 -1
- package/dist/components/ifx-number-indicator.js +1 -1
- package/dist/components/ifx-overview-table.js +4 -4
- package/dist/components/ifx-pagination.js +1 -1
- package/dist/components/ifx-progress-bar.js +1 -49
- package/dist/components/ifx-progress-bar.js.map +1 -1
- package/dist/components/ifx-radio-button-group.js +2 -2
- package/dist/components/ifx-radio-button.js +1 -1
- package/dist/components/ifx-search-bar.js +3 -3
- package/dist/components/ifx-search-field.js +1 -1
- package/dist/components/ifx-segment.js +2 -2
- package/dist/components/ifx-segmented-control.js +3 -3
- package/dist/components/ifx-select.js +1 -1
- package/dist/components/ifx-set-filter.js +5 -5
- package/dist/components/ifx-sidebar-item.js +7 -7
- package/dist/components/ifx-sidebar-title.js +1 -1
- package/dist/components/ifx-sidebar.js +5 -5
- package/dist/components/ifx-slider.js +3 -3
- package/dist/components/ifx-spinner.js +1 -1
- package/dist/components/ifx-status.js +1 -1
- package/dist/components/ifx-step.js +5 -5
- package/dist/components/ifx-stepper.js +2 -2
- package/dist/components/ifx-switch.js +1 -1
- package/dist/components/ifx-tab.js +1 -1
- package/dist/components/ifx-table.js +10 -10
- package/dist/components/ifx-tabs.js +3 -3
- package/dist/components/ifx-tag.js +2 -2
- package/dist/components/ifx-template.js +1 -1
- package/dist/components/ifx-templates-ui.js +8 -8
- package/dist/components/ifx-text-field.js +1 -1
- package/dist/components/ifx-textarea.js +1 -1
- package/dist/components/ifx-tooltip.js +5 -5
- package/dist/components/{p-eedb3b58.js → p-008afd49.js} +6 -6
- package/dist/components/{p-eedb3b58.js.map → p-008afd49.js.map} +1 -1
- package/dist/components/{p-f36effad.js → p-0b2bb8ad.js} +2 -2
- package/dist/components/{p-f36effad.js.map → p-0b2bb8ad.js.map} +1 -1
- package/dist/components/{p-85ce5a1e.js → p-118c5b21.js} +3 -3
- package/dist/components/{p-85ce5a1e.js.map → p-118c5b21.js.map} +1 -1
- package/dist/components/{p-88691420.js → p-1d0b8ace.js} +5 -5
- package/dist/components/{p-88691420.js.map → p-1d0b8ace.js.map} +1 -1
- package/dist/components/{p-23757cfd.js → p-2ba2b196.js} +3 -3
- package/dist/components/{p-23757cfd.js.map → p-2ba2b196.js.map} +1 -1
- package/dist/components/{p-8d115124.js → p-2e096da7.js} +5 -5
- package/dist/components/{p-8d115124.js.map → p-2e096da7.js.map} +1 -1
- package/dist/components/{p-4d64e776.js → p-45c75348.js} +2 -2
- package/dist/components/{p-4d64e776.js.map → p-45c75348.js.map} +1 -1
- package/dist/components/{p-ee5532fd.js → p-4882084d.js} +3 -3
- package/dist/components/{p-ee5532fd.js.map → p-4882084d.js.map} +1 -1
- package/dist/components/{p-b4e91450.js → p-49f70934.js} +3 -3
- package/dist/components/{p-b4e91450.js.map → p-49f70934.js.map} +1 -1
- package/dist/components/{p-04a697ad.js → p-524a6949.js} +2 -2
- package/dist/components/{p-04a697ad.js.map → p-524a6949.js.map} +1 -1
- package/dist/components/{p-7c7a5393.js → p-5d0763d9.js} +2 -2
- package/dist/components/{p-7c7a5393.js.map → p-5d0763d9.js.map} +1 -1
- package/dist/components/{p-327af560.js → p-6ddcb06b.js} +2 -2
- package/dist/components/{p-327af560.js.map → p-6ddcb06b.js.map} +1 -1
- package/dist/components/{p-803887ee.js → p-7ba45e8a.js} +3 -3
- package/dist/components/{p-803887ee.js.map → p-7ba45e8a.js.map} +1 -1
- package/dist/components/{p-e7551b24.js → p-7f0af813.js} +2 -2
- package/dist/components/{p-e7551b24.js.map → p-7f0af813.js.map} +1 -1
- package/dist/components/{p-f824645f.js → p-c4b939c0.js} +6 -6
- package/dist/components/{p-f824645f.js.map → p-c4b939c0.js.map} +1 -1
- package/dist/components/{p-77e746ee.js → p-cd01352d.js} +3 -3
- package/dist/components/{p-77e746ee.js.map → p-cd01352d.js.map} +1 -1
- package/dist/components/{p-1266857d.js → p-d4b2d98f.js} +4 -4
- package/dist/components/{p-1266857d.js.map → p-d4b2d98f.js.map} +1 -1
- package/dist/components/p-e56942b3.js +53 -0
- package/dist/components/p-e56942b3.js.map +1 -0
- package/dist/components/{p-dccd1c1c.js → p-ef6730e0.js} +3 -3
- package/dist/components/{p-dccd1c1c.js.map → p-ef6730e0.js.map} +1 -1
- package/dist/esm/ifx-alert_2.entry.js +1 -1
- package/dist/esm/ifx-basic-table.entry.js +1 -1
- package/dist/esm/ifx-chip_3.entry.js +1 -1
- package/dist/esm/ifx-faq.entry.js +1 -1
- package/dist/esm/ifx-file-upload.entry.js +566 -0
- package/dist/esm/ifx-file-upload.entry.js.map +1 -0
- package/dist/esm/ifx-filter-accordion.entry.js +2 -2
- package/dist/esm/ifx-filter-bar.entry.js +1 -1
- package/dist/esm/ifx-filter-search.entry.js +1 -1
- package/dist/esm/ifx-filter-type-group.entry.js +1 -1
- package/dist/esm/ifx-footer-column.entry.js +1 -1
- package/dist/esm/ifx-footer.entry.js +4 -4
- package/dist/esm/ifx-icon-button.entry.js +1 -1
- package/dist/esm/ifx-icon.entry.js +1 -1
- package/dist/esm/ifx-icons-preview.entry.js +1 -1
- package/dist/esm/ifx-link.entry.js +1 -1
- package/dist/esm/ifx-list-entry.entry.js +1 -1
- package/dist/esm/ifx-modal.entry.js +2 -2
- package/dist/esm/ifx-navbar-item.entry.js +5 -5
- package/dist/esm/ifx-navbar-profile.entry.js +3 -3
- package/dist/esm/ifx-navbar.entry.js +3 -3
- package/dist/esm/ifx-notification.entry.js +2 -2
- package/dist/esm/ifx-number-indicator.entry.js +1 -1
- package/dist/esm/ifx-overview-table.entry.js +1 -1
- package/dist/esm/ifx-progress-bar.entry.js +1 -1
- package/dist/esm/ifx-radio-button-group.entry.js +1 -1
- package/dist/esm/ifx-radio-button.entry.js +2 -2
- package/dist/esm/ifx-search-bar.entry.js +1 -1
- package/dist/esm/ifx-search-field.entry.js +1 -1
- package/dist/esm/ifx-segment.entry.js +1 -1
- package/dist/esm/ifx-segmented-control.entry.js +2 -2
- package/dist/esm/ifx-select.entry.js +2 -2
- package/dist/esm/ifx-sidebar-item.entry.js +5 -5
- package/dist/esm/ifx-sidebar-title.entry.js +1 -1
- package/dist/esm/ifx-sidebar.entry.js +5 -5
- package/dist/esm/ifx-slider.entry.js +2 -2
- package/dist/esm/ifx-spinner_2.entry.js +6 -6
- package/dist/esm/ifx-status.entry.js +1 -1
- package/dist/esm/ifx-step.entry.js +4 -4
- package/dist/esm/ifx-stepper.entry.js +2 -2
- package/dist/esm/ifx-switch.entry.js +1 -1
- package/dist/esm/ifx-tab.entry.js +1 -1
- package/dist/esm/ifx-table.entry.js +2 -2
- package/dist/esm/ifx-tabs.entry.js +2 -2
- package/dist/esm/ifx-tag.entry.js +1 -1
- package/dist/esm/ifx-templates-ui.entry.js +1 -1
- package/dist/esm/ifx-textarea.entry.js +1 -1
- package/dist/esm/ifx-tooltip.entry.js +4 -4
- package/dist/esm/index-c77e25a0.js +12 -8
- package/dist/esm/infineon-design-system-stencil.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/infineon-design-system-stencil/infineon-design-system-stencil.esm.js +1 -1
- package/dist/infineon-design-system-stencil/infineon-design-system-stencil.esm.js.map +1 -1
- package/dist/infineon-design-system-stencil/{p-66c73a3d.entry.js → p-02f83605.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/{p-fbdd611c.entry.js → p-0512a705.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/{p-fb3737ae.entry.js → p-07f2abf0.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/p-0b6db901.entry.js +2 -0
- package/dist/infineon-design-system-stencil/{p-a045ee93.entry.js → p-0e9145f8.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/{p-b77e56fd.entry.js → p-1038a1a1.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/{p-42964318.entry.js → p-14fa6261.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/{p-6ee1b4e7.entry.js → p-17df9778.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/{p-00b3d9bf.entry.js → p-27e25f78.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/{p-e4319c48.entry.js → p-294c7bab.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/p-32e8759a.entry.js +2 -0
- package/dist/infineon-design-system-stencil/{p-f12c2743.entry.js → p-3796fda7.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/{p-72bbedad.entry.js → p-3ad9c66a.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/{p-6d936400.entry.js → p-47953778.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/{p-7564f328.entry.js → p-4a239abe.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/p-4d544302.entry.js +2 -0
- package/dist/infineon-design-system-stencil/{p-66d04b9e.entry.js → p-505aa612.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/{p-8215490a.entry.js → p-563c4e58.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/{p-cab23e90.entry.js → p-571635d2.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/{p-5ce016ad.entry.js → p-5f3a20a2.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/{p-e62df6c3.entry.js → p-685f1e5d.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/{p-c183f92b.entry.js → p-69272ea3.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/p-6b8deb4a.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-6b8deb4a.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-78039fa0.entry.js +2 -0
- package/dist/infineon-design-system-stencil/{p-5ba50092.entry.js → p-7a1327e5.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/{p-96ba5e8c.entry.js → p-7d66ee28.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/{p-dd27040f.entry.js → p-7feaadc5.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/{p-760b9305.entry.js → p-91beff89.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/p-91ffb683.entry.js +2 -0
- package/dist/infineon-design-system-stencil/{p-f2932f07.entry.js → p-997901f4.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/{p-61010cd5.entry.js → p-9fbd4a42.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/{p-64930d03.entry.js → p-a0f432cc.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/p-ad50d807.entry.js +2 -0
- package/dist/infineon-design-system-stencil/{p-d1a97fd5.entry.js → p-b1538bfa.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/{p-3e6ddbf5.entry.js → p-b900e8d0.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/{p-ec7a9e00.entry.js → p-bb624976.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/{p-9414543f.entry.js → p-c101a974.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/{p-d9b49071.entry.js → p-cf27e139.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/{p-aac226ce.entry.js → p-d0c21d65.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/p-de1a042f.entry.js +2 -0
- package/dist/infineon-design-system-stencil/{p-41316712.entry.js → p-df86b421.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/{p-6012a317.entry.js → p-eaf5dc4b.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/p-eb510174.entry.js +2 -0
- package/dist/infineon-design-system-stencil/{p-080456bc.entry.js → p-f3a3242b.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/{p-43ab7b53.entry.js → p-f5bc6488.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/{p-7d761140.entry.js → p-f926dc7d.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/{p-2ed9a934.entry.js → p-fa9610c3.entry.js} +2 -2
- package/dist/types/components/file-upload/file-upload.d.ts +143 -0
- package/dist/types/components/file-upload/file-upload.stories.d.ts +8 -0
- package/dist/types/components.d.ts +125 -0
- package/package.json +1 -1
- package/dist/infineon-design-system-stencil/p-11fa8bcb.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-1b59a7f9.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-2f87fada.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-56f6da95.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-afe7fdf8.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-b84588f9.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-cf3122b2.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-dc5ff11a.entry.js +0 -2
- /package/dist/infineon-design-system-stencil/{p-66c73a3d.entry.js.map → p-02f83605.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-fbdd611c.entry.js.map → p-0512a705.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-fb3737ae.entry.js.map → p-07f2abf0.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-afe7fdf8.entry.js.map → p-0b6db901.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-a045ee93.entry.js.map → p-0e9145f8.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-b77e56fd.entry.js.map → p-1038a1a1.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-42964318.entry.js.map → p-14fa6261.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-6ee1b4e7.entry.js.map → p-17df9778.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-00b3d9bf.entry.js.map → p-27e25f78.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-e4319c48.entry.js.map → p-294c7bab.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-cf3122b2.entry.js.map → p-32e8759a.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-f12c2743.entry.js.map → p-3796fda7.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-72bbedad.entry.js.map → p-3ad9c66a.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-6d936400.entry.js.map → p-47953778.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-7564f328.entry.js.map → p-4a239abe.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-56f6da95.entry.js.map → p-4d544302.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-66d04b9e.entry.js.map → p-505aa612.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-8215490a.entry.js.map → p-563c4e58.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-cab23e90.entry.js.map → p-571635d2.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-5ce016ad.entry.js.map → p-5f3a20a2.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-e62df6c3.entry.js.map → p-685f1e5d.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-c183f92b.entry.js.map → p-69272ea3.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-2f87fada.entry.js.map → p-78039fa0.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-5ba50092.entry.js.map → p-7a1327e5.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-96ba5e8c.entry.js.map → p-7d66ee28.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-dd27040f.entry.js.map → p-7feaadc5.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-760b9305.entry.js.map → p-91beff89.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-11fa8bcb.entry.js.map → p-91ffb683.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-f2932f07.entry.js.map → p-997901f4.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-61010cd5.entry.js.map → p-9fbd4a42.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-64930d03.entry.js.map → p-a0f432cc.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-dc5ff11a.entry.js.map → p-ad50d807.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-d1a97fd5.entry.js.map → p-b1538bfa.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-3e6ddbf5.entry.js.map → p-b900e8d0.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-ec7a9e00.entry.js.map → p-bb624976.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-9414543f.entry.js.map → p-c101a974.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-d9b49071.entry.js.map → p-cf27e139.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-aac226ce.entry.js.map → p-d0c21d65.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-b84588f9.entry.js.map → p-de1a042f.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-41316712.entry.js.map → p-df86b421.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-6012a317.entry.js.map → p-eaf5dc4b.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-1b59a7f9.entry.js.map → p-eb510174.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-080456bc.entry.js.map → p-f3a3242b.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-43ab7b53.entry.js.map → p-f5bc6488.entry.js.map} +0 -0
- /package/dist/infineon-design-system-stencil/{p-7d761140.entry.js.map → p-f926dc7d.entry.js.map} +0 -0
- /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: '
|
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"; }
|