@spw-ds/spw-stencil-library 1.2.3 → 1.2.4
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/{index-iVhYitTd.js → index-ivINMH9O.js} +5 -5
- package/dist/cjs/{index-iVhYitTd.js.map → index-ivINMH9O.js.map} +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/spw-accordion.spw-accordion-content.spw-accordion-item.spw-accordion-title.entry.cjs.js.map +1 -1
- package/dist/cjs/spw-accordion_4.cjs.entry.js +3 -3
- package/dist/cjs/spw-accordion_4.cjs.entry.js.map +1 -1
- package/dist/cjs/spw-breadcrumb-item.cjs.entry.js +1 -1
- package/dist/cjs/spw-breadcrumb.cjs.entry.js +1 -1
- package/dist/cjs/spw-button_2.cjs.entry.js +5 -5
- package/dist/cjs/spw-card-content.cjs.entry.js +2 -2
- package/dist/cjs/spw-card-excerpt.cjs.entry.js +1 -1
- package/dist/cjs/spw-card-image.cjs.entry.js +1 -1
- package/dist/cjs/spw-card-subtag-item.cjs.entry.js +1 -1
- package/dist/cjs/spw-card-subtags.cjs.entry.js +1 -1
- package/dist/cjs/spw-card-title.cjs.entry.js +1 -1
- package/dist/cjs/spw-card.cjs.entry.js +1 -1
- package/dist/cjs/spw-checkbox.cjs.entry.js +3 -3
- package/dist/cjs/spw-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/spw-checkbox.entry.cjs.js.map +1 -1
- package/dist/cjs/spw-cookies.cjs.entry.js +1 -1
- package/dist/cjs/spw-custom-select.cjs.entry.js +23 -5
- package/dist/cjs/spw-custom-select.cjs.entry.js.map +1 -1
- package/dist/cjs/spw-custom-select.entry.cjs.js.map +1 -1
- package/dist/cjs/spw-date-picker.cjs.entry.js +195 -34
- package/dist/cjs/spw-date-picker.cjs.entry.js.map +1 -1
- package/dist/cjs/spw-date-picker.entry.cjs.js.map +1 -1
- package/dist/cjs/spw-dropdown-container.cjs.entry.js +20 -0
- package/dist/cjs/spw-dropdown-container.cjs.entry.js.map +1 -0
- package/dist/cjs/spw-dropdown-container.entry.cjs.js.map +1 -0
- package/dist/cjs/spw-dropdown-item.cjs.entry.js +87 -0
- package/dist/cjs/spw-dropdown-item.cjs.entry.js.map +1 -0
- package/dist/cjs/spw-dropdown-item.entry.cjs.js.map +1 -0
- package/dist/cjs/spw-dropdown.cjs.entry.js +2 -2
- package/dist/cjs/spw-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/spw-dropdown.entry.cjs.js.map +1 -1
- package/dist/cjs/spw-field-label_6.cjs.entry.js +7 -7
- package/dist/cjs/spw-field-message.cjs.entry.js +2 -2
- package/dist/cjs/spw-file-upload.cjs.entry.js +6 -5
- package/dist/cjs/spw-file-upload.cjs.entry.js.map +1 -1
- package/dist/cjs/spw-file-upload.entry.cjs.js.map +1 -1
- package/dist/cjs/spw-footer-bottom.cjs.entry.js +2 -2
- package/dist/cjs/spw-footer-content-col.cjs.entry.js +2 -2
- package/dist/cjs/spw-footer-content.cjs.entry.js +2 -2
- package/dist/cjs/spw-footer-link.cjs.entry.js +2 -2
- package/dist/cjs/spw-footer.cjs.entry.js +2 -2
- package/dist/cjs/spw-header-lang-item.cjs.entry.js +2 -2
- package/dist/cjs/spw-header-lang.cjs.entry.js +2 -2
- package/dist/cjs/spw-header-navigation-dropdown.cjs.entry.js +2 -2
- package/dist/cjs/spw-header-navigation-item.cjs.entry.js +3 -3
- package/dist/cjs/spw-header-navigation.cjs.entry.js +2 -2
- package/dist/cjs/spw-header-persona-item.cjs.entry.js +2 -2
- package/dist/cjs/spw-header-persona.cjs.entry.js +2 -2
- package/dist/cjs/spw-header.cjs.entry.js +2 -2
- package/dist/cjs/spw-hero.cjs.entry.js +2 -2
- package/dist/cjs/spw-illustration.cjs.entry.js +1 -1
- package/dist/cjs/spw-iodda.cjs.entry.js +2 -2
- package/dist/cjs/spw-list-description.cjs.entry.js +2 -2
- package/dist/cjs/spw-list-item.cjs.entry.js +2 -2
- package/dist/cjs/spw-list-title.cjs.entry.js +2 -2
- package/dist/cjs/spw-list.cjs.entry.js +2 -2
- package/dist/cjs/spw-message.cjs.entry.js +1 -1
- package/dist/cjs/spw-modal.cjs.entry.js +4 -4
- package/dist/cjs/spw-mosaic-item.cjs.entry.js +2 -2
- package/dist/cjs/spw-mosaic.cjs.entry.js +2 -2
- package/dist/cjs/spw-pagination.cjs.entry.js +8 -8
- package/dist/cjs/spw-radio.cjs.entry.js +3 -3
- package/dist/cjs/spw-search-field.cjs.entry.js +3 -3
- package/dist/cjs/spw-select.cjs.entry.js +13 -3
- package/dist/cjs/spw-select.cjs.entry.js.map +1 -1
- package/dist/cjs/spw-select.entry.cjs.js.map +1 -1
- package/dist/cjs/spw-sidebar-navigation-dropdown.cjs.entry.js +2 -2
- package/dist/cjs/spw-sidebar-navigation-item.cjs.entry.js +85 -7
- package/dist/cjs/spw-sidebar-navigation-item.cjs.entry.js.map +1 -1
- package/dist/cjs/spw-sidebar-navigation-item.entry.cjs.js.map +1 -1
- package/dist/cjs/spw-sidebar-navigation-separator.cjs.entry.js +2 -2
- package/dist/cjs/spw-sidebar.cjs.entry.js +10 -2
- package/dist/cjs/spw-sidebar.cjs.entry.js.map +1 -1
- package/dist/cjs/spw-sidebar.entry.cjs.js.map +1 -1
- package/dist/cjs/spw-skeleton.cjs.entry.js +5 -3
- package/dist/cjs/spw-skeleton.cjs.entry.js.map +1 -1
- package/dist/cjs/spw-skeleton.entry.cjs.js.map +1 -1
- package/dist/cjs/spw-socials.cjs.entry.js +2 -2
- package/dist/cjs/spw-stencil-library.cjs.js +2 -2
- package/dist/cjs/spw-table-body.cjs.entry.js +2 -2
- package/dist/cjs/spw-table-cell.cjs.entry.js +33 -3
- package/dist/cjs/spw-table-cell.cjs.entry.js.map +1 -1
- package/dist/cjs/spw-table-cell.entry.cjs.js.map +1 -1
- package/dist/cjs/spw-table-footer.cjs.entry.js +3 -3
- package/dist/cjs/spw-table-footer.cjs.entry.js.map +1 -1
- package/dist/cjs/spw-table-footer.entry.cjs.js.map +1 -1
- package/dist/cjs/spw-table-head.cjs.entry.js +2 -2
- package/dist/cjs/spw-table-header.cjs.entry.js +4 -4
- package/dist/cjs/spw-table-row.cjs.entry.js +2 -2
- package/dist/cjs/spw-table.cjs.entry.js +47 -7
- package/dist/cjs/spw-table.cjs.entry.js.map +1 -1
- package/dist/cjs/spw-table.entry.cjs.js.map +1 -1
- package/dist/cjs/spw-tabs-content.cjs.entry.js +1 -1
- package/dist/cjs/spw-tabs-navigation-item.cjs.entry.js +3 -3
- package/dist/cjs/spw-tabs-navigation.cjs.entry.js +2 -2
- package/dist/cjs/spw-tabs.cjs.entry.js +6 -4
- package/dist/cjs/spw-tabs.cjs.entry.js.map +1 -1
- package/dist/cjs/spw-tabs.entry.cjs.js.map +1 -1
- package/dist/cjs/spw-tag.cjs.entry.js +2 -2
- package/dist/cjs/spw-text-field.cjs.entry.js +3 -3
- package/dist/cjs/spw-textarea.cjs.entry.js +3 -3
- package/dist/cjs/spw-tile-description.cjs.entry.js +2 -2
- package/dist/cjs/spw-tile-title.cjs.entry.js +2 -2
- package/dist/cjs/spw-tile.cjs.entry.js +2 -2
- package/dist/cjs/spw-tooltip.cjs.entry.js +2 -2
- package/dist/cjs/spw-topbar.cjs.entry.js +2 -2
- package/dist/cjs/spw-wizard-item.cjs.entry.js +64 -0
- package/dist/cjs/spw-wizard-item.cjs.entry.js.map +1 -0
- package/dist/cjs/spw-wizard-item.entry.cjs.js.map +1 -0
- package/dist/cjs/spw-wizard.cjs.entry.js +90 -0
- package/dist/cjs/spw-wizard.cjs.entry.js.map +1 -0
- package/dist/cjs/spw-wizard.entry.cjs.js.map +1 -0
- package/dist/cjs/{utils-CKYAw_Le.js → utils-D_vNTY6w.js} +3 -3
- package/dist/cjs/{utils-CKYAw_Le.js.map → utils-D_vNTY6w.js.map} +1 -1
- package/dist/collection/collection-manifest.json +5 -1
- package/dist/collection/components/spw-accordion/spw-accordion-item/spw-accordion-item.css +1 -1
- package/dist/collection/components/spw-checkbox/spw-checkbox.css +1 -1
- package/dist/collection/components/spw-custom-select/spw-custom-select.js +42 -3
- package/dist/collection/components/spw-custom-select/spw-custom-select.js.map +1 -1
- package/dist/collection/components/spw-date-picker/spw-date-picker.css +1 -1
- package/dist/collection/components/spw-date-picker/spw-date-picker.js +240 -29
- package/dist/collection/components/spw-date-picker/spw-date-picker.js.map +1 -1
- package/dist/collection/components/spw-dropdown/spw-dropdown-container/spw-dropdown-container.css +2 -0
- package/dist/collection/components/spw-dropdown/spw-dropdown-container/spw-dropdown-container.js +19 -0
- package/dist/collection/components/spw-dropdown/spw-dropdown-container/spw-dropdown-container.js.map +1 -0
- package/dist/collection/components/spw-dropdown/spw-dropdown-item/spw-dropdown-item.css +2 -0
- package/dist/collection/components/spw-dropdown/spw-dropdown-item/spw-dropdown-item.js +175 -0
- package/dist/collection/components/spw-dropdown/spw-dropdown-item/spw-dropdown-item.js.map +1 -0
- package/dist/collection/components/spw-dropdown/spw-dropdown.js +2 -2
- package/dist/collection/components/spw-dropdown/spw-dropdown.js.map +1 -1
- package/dist/collection/components/spw-field-label/spw-field-label.js +1 -1
- package/dist/collection/components/spw-field-message/spw-field-message.js +1 -1
- package/dist/collection/components/spw-file-upload/spw-file-upload.js +3 -2
- package/dist/collection/components/spw-file-upload/spw-file-upload.js.map +1 -1
- package/dist/collection/components/spw-footer/spw-footer-bottom/spw-footer-bottom.js +1 -1
- package/dist/collection/components/spw-footer/spw-footer-content/spw-footer-content.js +1 -1
- package/dist/collection/components/spw-footer/spw-footer-content-col/spw-footer-content-col.js +1 -1
- package/dist/collection/components/spw-footer/spw-footer-link/spw-footer-link.js +1 -1
- package/dist/collection/components/spw-footer/spw-footer.js +1 -1
- package/dist/collection/components/spw-group/spw-group.js +1 -1
- package/dist/collection/components/spw-header/spw-header-lang/spw-header-lang.js +1 -1
- package/dist/collection/components/spw-header/spw-header-lang-item/spw-header-lang-item.js +1 -1
- package/dist/collection/components/spw-header/spw-header-navigation/spw-header-navigation.js +1 -1
- package/dist/collection/components/spw-header/spw-header-navigation-dropdown/spw-header-navigation-dropdown.js +1 -1
- package/dist/collection/components/spw-header/spw-header-navigation-item/spw-header-navigation-item.js +1 -1
- package/dist/collection/components/spw-header/spw-header-persona/spw-header-persona.js +1 -1
- package/dist/collection/components/spw-header/spw-header-persona-item/spw-header-persona-item.js +1 -1
- package/dist/collection/components/spw-header/spw-header.js +1 -1
- package/dist/collection/components/spw-hero/spw-hero.js +1 -1
- package/dist/collection/components/spw-iodda/spw-iodda.js +1 -1
- package/dist/collection/components/spw-link/spw-link.js +1 -1
- package/dist/collection/components/spw-list/spw-list-description/spw-list-description.js +1 -1
- package/dist/collection/components/spw-list/spw-list-item/spw-list-item.js +1 -1
- package/dist/collection/components/spw-list/spw-list-title/spw-list-title.js +1 -1
- package/dist/collection/components/spw-list/spw-list.js +1 -1
- package/dist/collection/components/spw-loading/spw-loading.js +1 -1
- package/dist/collection/components/spw-modal/spw-modal.js +1 -1
- package/dist/collection/components/spw-mosaic/spw-mosaic-item/spw-mosaic-item.js +1 -1
- package/dist/collection/components/spw-mosaic/spw-mosaic.js +1 -1
- package/dist/collection/components/spw-pagination/spw-pagination.js +6 -6
- package/dist/collection/components/spw-radio/spw-radio.js +1 -1
- package/dist/collection/components/spw-search-field/spw-search-field.js +2 -2
- package/dist/collection/components/spw-select/spw-select.js +32 -1
- package/dist/collection/components/spw-select/spw-select.js.map +1 -1
- package/dist/collection/components/spw-separator/spw-separator.js +1 -1
- package/dist/collection/components/spw-sidebar/spw-sidebar-navigation-dropdown/spw-sidebar-navigation-dropdown.js +1 -1
- package/dist/collection/components/spw-sidebar/spw-sidebar-navigation-item/spw-sidebar-navigation-item.css +1 -1
- package/dist/collection/components/spw-sidebar/spw-sidebar-navigation-item/spw-sidebar-navigation-item.js +105 -6
- package/dist/collection/components/spw-sidebar/spw-sidebar-navigation-item/spw-sidebar-navigation-item.js.map +1 -1
- package/dist/collection/components/spw-sidebar/spw-sidebar-navigation-separator/spw-sidebar-navigation-separator.js +1 -1
- package/dist/collection/components/spw-sidebar/spw-sidebar.js +9 -1
- package/dist/collection/components/spw-sidebar/spw-sidebar.js.map +1 -1
- package/dist/collection/components/spw-skeleton/spw-skeleton.js +4 -2
- package/dist/collection/components/spw-skeleton/spw-skeleton.js.map +1 -1
- package/dist/collection/components/spw-socials/spw-socials.js +1 -1
- package/dist/collection/components/spw-table/spw-table-body/spw-table-body.js +1 -1
- package/dist/collection/components/spw-table/spw-table-cell/spw-table-cell.css +1 -1
- package/dist/collection/components/spw-table/spw-table-cell/spw-table-cell.js +56 -1
- package/dist/collection/components/spw-table/spw-table-cell/spw-table-cell.js.map +1 -1
- package/dist/collection/components/spw-table/spw-table-footer/spw-table-footer.css +1 -1
- package/dist/collection/components/spw-table/spw-table-footer/spw-table-footer.js +1 -1
- package/dist/collection/components/spw-table/spw-table-head/spw-table-head.js +1 -1
- package/dist/collection/components/spw-table/spw-table-header/spw-table-header.js +2 -2
- package/dist/collection/components/spw-table/spw-table-row/spw-table-row.js +1 -1
- package/dist/collection/components/spw-table/spw-table.css +1 -1
- package/dist/collection/components/spw-table/spw-table.js +110 -9
- package/dist/collection/components/spw-table/spw-table.js.map +1 -1
- package/dist/collection/components/spw-tabs/spw-tabs-navigation/spw-tabs-navigation.js +1 -1
- package/dist/collection/components/spw-tabs/spw-tabs-navigation-item/spw-tabs-navigation-item.js +1 -1
- package/dist/collection/components/spw-tabs/spw-tabs.js +6 -4
- package/dist/collection/components/spw-tabs/spw-tabs.js.map +1 -1
- package/dist/collection/components/spw-tag/spw-tag.js +1 -1
- package/dist/collection/components/spw-text-field/spw-text-field.js +1 -1
- package/dist/collection/components/spw-textarea/spw-textarea.js +1 -1
- package/dist/collection/components/spw-theme-provider/spw-theme-provider.js +1 -1
- package/dist/collection/components/spw-tile/spw-tile-description/spw-tile-description.js +1 -1
- package/dist/collection/components/spw-tile/spw-tile-title/spw-tile-title.js +1 -1
- package/dist/collection/components/spw-tile/spw-tile.js +1 -1
- package/dist/collection/components/spw-tooltip/spw-tooltip.js +1 -1
- package/dist/collection/components/spw-topbar/spw-topbar.js +1 -1
- package/dist/collection/components/spw-wizard/spw-wizard-item/spw-wizard-item.css +2 -0
- package/dist/collection/components/spw-wizard/spw-wizard-item/spw-wizard-item.js +339 -0
- package/dist/collection/components/spw-wizard/spw-wizard-item/spw-wizard-item.js.map +1 -0
- package/dist/collection/components/spw-wizard/spw-wizard.css +2 -0
- package/dist/collection/components/spw-wizard/spw-wizard.js +192 -0
- package/dist/collection/components/spw-wizard/spw-wizard.js.map +1 -0
- package/dist/collection/stories/components/spw-date-picker/spw-date-picker.stories.js +46 -1
- package/dist/collection/stories/components/spw-date-picker/spw-date-picker.stories.js.map +1 -1
- package/dist/collection/stories/organisms/spw-header/spw-header.stories.js +1 -1
- package/dist/collection/stories/organisms/spw-header/spw-header.stories.js.map +1 -1
- package/dist/collection/stories/organisms/spw-table/spw-table.stories.js +119 -0
- package/dist/collection/stories/organisms/spw-table/spw-table.stories.js.map +1 -1
- package/dist/collection/stories/organisms/spw-wizard/spw-wizard.stories.js +208 -0
- package/dist/collection/stories/organisms/spw-wizard/spw-wizard.stories.js.map +1 -0
- package/dist/collection/utils/utils.js +1 -1
- package/dist/collection/utils/utils.js.map +1 -1
- package/dist/components/index.js +3 -3
- package/dist/components/index.js.map +1 -1
- package/dist/components/{p-B-sLKmnT.js → p-AjhBdYbk.js} +6 -6
- package/dist/components/{p-B-sLKmnT.js.map → p-AjhBdYbk.js.map} +1 -1
- package/dist/components/{p-zpG0udTn.js → p-BBi01mKM.js} +3 -3
- package/dist/components/{p-zpG0udTn.js.map → p-BBi01mKM.js.map} +1 -1
- package/dist/components/{p-DIhULKFM.js → p-Bvpi6byK.js} +3 -3
- package/dist/components/{p-DIhULKFM.js.map → p-Bvpi6byK.js.map} +1 -1
- package/dist/components/{p-GUYao_6w.js → p-CNNUoO2J.js} +4 -4
- package/dist/components/{p-GUYao_6w.js.map → p-CNNUoO2J.js.map} +1 -1
- package/dist/components/{p-fNRoK67L.js → p-CVuBJlFL.js} +3 -3
- package/dist/components/{p-fNRoK67L.js.map → p-CVuBJlFL.js.map} +1 -1
- package/dist/components/{p-B3OQ2nRI.js → p-D4PsQ_SH.js} +4 -4
- package/dist/components/p-D4PsQ_SH.js.map +1 -0
- package/dist/components/p-DHBpMBYT.js +129 -0
- package/dist/components/p-DHBpMBYT.js.map +1 -0
- package/dist/components/{p-BDRCqK1w.js → p-J5AA2xQI.js} +3 -3
- package/dist/components/{p-BDRCqK1w.js.map → p-J5AA2xQI.js.map} +1 -1
- package/dist/components/{p-Dku0Cksp.js → p-_sdYD0eS.js} +6 -6
- package/dist/components/{p-Dku0Cksp.js.map → p-_sdYD0eS.js.map} +1 -1
- package/dist/components/{p-DaosfSzT.js → p-du-Bai6S.js} +12 -12
- package/dist/components/{p-DaosfSzT.js.map → p-du-Bai6S.js.map} +1 -1
- package/dist/components/{p-BF73GiQU.js → p-qgvllwX6.js} +3 -3
- package/dist/components/{p-BF73GiQU.js.map → p-qgvllwX6.js.map} +1 -1
- package/dist/components/{p-BowHA3gk.js → p-t1vZcpqC.js} +3 -3
- package/dist/components/{p-BowHA3gk.js.map → p-t1vZcpqC.js.map} +1 -1
- package/dist/components/spw-accordion-item.js +1 -1
- package/dist/components/spw-breadcrumb-item.js +1 -1
- package/dist/components/spw-button.js +1 -1
- package/dist/components/spw-card-content.js +1 -1
- package/dist/components/spw-checkbox.js +1 -1
- package/dist/components/spw-cookies.js +4 -4
- package/dist/components/spw-custom-select.js +27 -8
- package/dist/components/spw-custom-select.js.map +1 -1
- package/dist/components/spw-date-picker.js +203 -38
- package/dist/components/spw-date-picker.js.map +1 -1
- package/dist/components/spw-dropdown-container.d.ts +11 -0
- package/dist/components/spw-dropdown-container.js +36 -0
- package/dist/components/spw-dropdown-container.js.map +1 -0
- package/dist/components/spw-dropdown-item.d.ts +11 -0
- package/dist/components/spw-dropdown-item.js +115 -0
- package/dist/components/spw-dropdown-item.js.map +1 -0
- package/dist/components/spw-dropdown.js +1 -1
- package/dist/components/spw-dropdown.js.map +1 -1
- package/dist/components/spw-field-label.js +1 -1
- package/dist/components/spw-field-message.js +1 -1
- package/dist/components/spw-file-upload.js +7 -6
- package/dist/components/spw-file-upload.js.map +1 -1
- package/dist/components/spw-footer-bottom.js +1 -1
- package/dist/components/spw-footer-content-col.js +1 -1
- package/dist/components/spw-footer-content.js +1 -1
- package/dist/components/spw-footer-link.js +1 -1
- package/dist/components/spw-footer.js +1 -1
- package/dist/components/spw-group.js +2 -2
- package/dist/components/spw-header-lang-item.js +1 -1
- package/dist/components/spw-header-lang.js +3 -3
- package/dist/components/spw-header-navigation-dropdown.js +1 -1
- package/dist/components/spw-header-navigation-item.js +2 -2
- package/dist/components/spw-header-navigation.js +1 -1
- package/dist/components/spw-header-persona-item.js +1 -1
- package/dist/components/spw-header-persona.js +1 -1
- package/dist/components/spw-header.js +3 -3
- package/dist/components/spw-hero.js +1 -1
- package/dist/components/spw-iodda.js +6 -6
- package/dist/components/spw-link.js +1 -1
- package/dist/components/spw-list-description.js +1 -1
- package/dist/components/spw-list-item.js +1 -1
- package/dist/components/spw-list-title.js +1 -1
- package/dist/components/spw-list.js +1 -1
- package/dist/components/spw-loading.js +1 -1
- package/dist/components/spw-message.js +1 -1
- package/dist/components/spw-modal.js +3 -3
- package/dist/components/spw-mosaic-item.js +1 -1
- package/dist/components/spw-mosaic.js +1 -1
- package/dist/components/spw-pagination.js +1 -1
- package/dist/components/spw-radio.js +2 -2
- package/dist/components/spw-search-field.js +5 -5
- package/dist/components/spw-select.js +16 -5
- package/dist/components/spw-select.js.map +1 -1
- package/dist/components/spw-separator.js +1 -1
- package/dist/components/spw-sidebar-navigation-dropdown.js +1 -1
- package/dist/components/spw-sidebar-navigation-item.js +88 -8
- package/dist/components/spw-sidebar-navigation-item.js.map +1 -1
- package/dist/components/spw-sidebar-navigation-separator.js +2 -2
- package/dist/components/spw-sidebar.js +9 -1
- package/dist/components/spw-sidebar.js.map +1 -1
- package/dist/components/spw-skeleton.js +4 -2
- package/dist/components/spw-skeleton.js.map +1 -1
- package/dist/components/spw-socials.js +1 -1
- package/dist/components/spw-table-body.js +1 -1
- package/dist/components/spw-table-cell.js +35 -3
- package/dist/components/spw-table-cell.js.map +1 -1
- package/dist/components/spw-table-footer.js +2 -2
- package/dist/components/spw-table-footer.js.map +1 -1
- package/dist/components/spw-table-head.js +1 -1
- package/dist/components/spw-table-header.js +4 -4
- package/dist/components/spw-table-row.js +1 -1
- package/dist/components/spw-table.js +52 -8
- package/dist/components/spw-table.js.map +1 -1
- package/dist/components/spw-tabs-navigation-item.js +3 -3
- package/dist/components/spw-tabs-navigation.js +1 -1
- package/dist/components/spw-tabs.js +5 -3
- package/dist/components/spw-tabs.js.map +1 -1
- package/dist/components/spw-tag.js +1 -1
- package/dist/components/spw-text-field.js +1 -1
- package/dist/components/spw-textarea.js +4 -4
- package/dist/components/spw-theme-provider.js +1 -1
- package/dist/components/spw-tile-description.js +1 -1
- package/dist/components/spw-tile-title.js +1 -1
- package/dist/components/spw-tile.js +1 -1
- package/dist/components/spw-tooltip.js +1 -1
- package/dist/components/spw-topbar.js +1 -1
- package/dist/components/spw-wizard-item.d.ts +11 -0
- package/dist/components/spw-wizard-item.js +100 -0
- package/dist/components/spw-wizard-item.js.map +1 -0
- package/dist/components/spw-wizard.d.ts +11 -0
- package/dist/components/spw-wizard.js +110 -0
- package/dist/components/spw-wizard.js.map +1 -0
- package/dist/components_json.json +943 -14
- package/dist/esm/{index-BYM_CUUH.js → index-CvfVJV8a.js} +5 -5
- package/dist/esm/{index-BYM_CUUH.js.map → index-CvfVJV8a.js.map} +1 -1
- package/dist/esm/loader.js +3 -3
- package/dist/esm/spw-accordion.spw-accordion-content.spw-accordion-item.spw-accordion-title.entry.js.map +1 -1
- package/dist/esm/spw-accordion_4.entry.js +3 -3
- package/dist/esm/spw-accordion_4.entry.js.map +1 -1
- package/dist/esm/spw-breadcrumb-item.entry.js +1 -1
- package/dist/esm/spw-breadcrumb.entry.js +1 -1
- package/dist/esm/spw-button_2.entry.js +5 -5
- package/dist/esm/spw-card-content.entry.js +2 -2
- package/dist/esm/spw-card-excerpt.entry.js +1 -1
- package/dist/esm/spw-card-image.entry.js +1 -1
- package/dist/esm/spw-card-subtag-item.entry.js +1 -1
- package/dist/esm/spw-card-subtags.entry.js +1 -1
- package/dist/esm/spw-card-title.entry.js +1 -1
- package/dist/esm/spw-card.entry.js +1 -1
- package/dist/esm/spw-checkbox.entry.js +3 -3
- package/dist/esm/spw-checkbox.entry.js.map +1 -1
- package/dist/esm/spw-cookies.entry.js +1 -1
- package/dist/esm/spw-custom-select.entry.js +23 -5
- package/dist/esm/spw-custom-select.entry.js.map +1 -1
- package/dist/esm/spw-date-picker.entry.js +195 -34
- package/dist/esm/spw-date-picker.entry.js.map +1 -1
- package/dist/esm/spw-dropdown-container.entry.js +18 -0
- package/dist/esm/spw-dropdown-container.entry.js.map +1 -0
- package/dist/esm/spw-dropdown-item.entry.js +85 -0
- package/dist/esm/spw-dropdown-item.entry.js.map +1 -0
- package/dist/esm/spw-dropdown.entry.js +2 -2
- package/dist/esm/spw-dropdown.entry.js.map +1 -1
- package/dist/esm/spw-field-label_6.entry.js +7 -7
- package/dist/esm/spw-field-message.entry.js +2 -2
- package/dist/esm/spw-file-upload.entry.js +6 -5
- package/dist/esm/spw-file-upload.entry.js.map +1 -1
- package/dist/esm/spw-footer-bottom.entry.js +2 -2
- package/dist/esm/spw-footer-content-col.entry.js +2 -2
- package/dist/esm/spw-footer-content.entry.js +2 -2
- package/dist/esm/spw-footer-link.entry.js +2 -2
- package/dist/esm/spw-footer.entry.js +2 -2
- package/dist/esm/spw-header-lang-item.entry.js +2 -2
- package/dist/esm/spw-header-lang.entry.js +2 -2
- package/dist/esm/spw-header-navigation-dropdown.entry.js +2 -2
- package/dist/esm/spw-header-navigation-item.entry.js +3 -3
- package/dist/esm/spw-header-navigation.entry.js +2 -2
- package/dist/esm/spw-header-persona-item.entry.js +2 -2
- package/dist/esm/spw-header-persona.entry.js +2 -2
- package/dist/esm/spw-header.entry.js +2 -2
- package/dist/esm/spw-hero.entry.js +2 -2
- package/dist/esm/spw-illustration.entry.js +1 -1
- package/dist/esm/spw-iodda.entry.js +2 -2
- package/dist/esm/spw-list-description.entry.js +2 -2
- package/dist/esm/spw-list-item.entry.js +2 -2
- package/dist/esm/spw-list-title.entry.js +2 -2
- package/dist/esm/spw-list.entry.js +2 -2
- package/dist/esm/spw-message.entry.js +1 -1
- package/dist/esm/spw-modal.entry.js +4 -4
- package/dist/esm/spw-mosaic-item.entry.js +2 -2
- package/dist/esm/spw-mosaic.entry.js +2 -2
- package/dist/esm/spw-pagination.entry.js +8 -8
- package/dist/esm/spw-radio.entry.js +3 -3
- package/dist/esm/spw-search-field.entry.js +3 -3
- package/dist/esm/spw-select.entry.js +13 -3
- package/dist/esm/spw-select.entry.js.map +1 -1
- package/dist/esm/spw-sidebar-navigation-dropdown.entry.js +2 -2
- package/dist/esm/spw-sidebar-navigation-item.entry.js +85 -7
- package/dist/esm/spw-sidebar-navigation-item.entry.js.map +1 -1
- package/dist/esm/spw-sidebar-navigation-separator.entry.js +2 -2
- package/dist/esm/spw-sidebar.entry.js +10 -2
- package/dist/esm/spw-sidebar.entry.js.map +1 -1
- package/dist/esm/spw-skeleton.entry.js +5 -3
- package/dist/esm/spw-skeleton.entry.js.map +1 -1
- package/dist/esm/spw-socials.entry.js +2 -2
- package/dist/esm/spw-stencil-library.js +3 -3
- package/dist/esm/spw-table-body.entry.js +2 -2
- package/dist/esm/spw-table-cell.entry.js +33 -3
- package/dist/esm/spw-table-cell.entry.js.map +1 -1
- package/dist/esm/spw-table-footer.entry.js +3 -3
- package/dist/esm/spw-table-footer.entry.js.map +1 -1
- package/dist/esm/spw-table-head.entry.js +2 -2
- package/dist/esm/spw-table-header.entry.js +4 -4
- package/dist/esm/spw-table-row.entry.js +2 -2
- package/dist/esm/spw-table.entry.js +47 -7
- package/dist/esm/spw-table.entry.js.map +1 -1
- package/dist/esm/spw-tabs-content.entry.js +1 -1
- package/dist/esm/spw-tabs-navigation-item.entry.js +3 -3
- package/dist/esm/spw-tabs-navigation.entry.js +2 -2
- package/dist/esm/spw-tabs.entry.js +6 -4
- package/dist/esm/spw-tabs.entry.js.map +1 -1
- package/dist/esm/spw-tag.entry.js +2 -2
- package/dist/esm/spw-text-field.entry.js +3 -3
- package/dist/esm/spw-textarea.entry.js +3 -3
- package/dist/esm/spw-tile-description.entry.js +2 -2
- package/dist/esm/spw-tile-title.entry.js +2 -2
- package/dist/esm/spw-tile.entry.js +2 -2
- package/dist/esm/spw-tooltip.entry.js +2 -2
- package/dist/esm/spw-topbar.entry.js +2 -2
- package/dist/esm/spw-wizard-item.entry.js +62 -0
- package/dist/esm/spw-wizard-item.entry.js.map +1 -0
- package/dist/esm/spw-wizard.entry.js +88 -0
- package/dist/esm/spw-wizard.entry.js.map +1 -0
- package/dist/esm/{utils-zpG0udTn.js → utils-BBi01mKM.js} +3 -3
- package/dist/esm/{utils-zpG0udTn.js.map → utils-BBi01mKM.js.map} +1 -1
- package/dist/spw-stencil-library/{p-e2f03a02.entry.js → p-000f04a1.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-e2f03a02.entry.js.map → p-000f04a1.entry.js.map} +1 -1
- package/dist/spw-stencil-library/{p-f5de314e.entry.js → p-06cb6865.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-52c51ac5.entry.js → p-06ec3521.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-0226ad72.entry.js → p-0baeea00.entry.js} +2 -2
- package/dist/spw-stencil-library/p-0e1ec1e6.entry.js +2 -0
- package/dist/spw-stencil-library/p-0e1ec1e6.entry.js.map +1 -0
- package/dist/spw-stencil-library/{p-fbe468de.entry.js → p-2113f2f6.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-44d87d3f.entry.js → p-22f972ca.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-181ae002.entry.js → p-25329033.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-9219fe7c.entry.js → p-2abc48ed.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-3ab472db.entry.js → p-2b011668.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-ba27b9b0.entry.js → p-2c28684f.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-ba27b9b0.entry.js.map → p-2c28684f.entry.js.map} +1 -1
- package/dist/spw-stencil-library/{p-272dc0ee.entry.js → p-2c79bd06.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-272dc0ee.entry.js.map → p-2c79bd06.entry.js.map} +1 -1
- package/dist/spw-stencil-library/{p-b0dc1073.entry.js → p-2cfb78fb.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-c2de4206.entry.js → p-2d974226.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-19a69f36.entry.js → p-300b4bdb.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-19a69f36.entry.js.map → p-300b4bdb.entry.js.map} +1 -1
- package/dist/spw-stencil-library/{p-5f82570e.entry.js → p-31793077.entry.js} +2 -2
- package/dist/spw-stencil-library/p-31793077.entry.js.map +1 -0
- package/dist/spw-stencil-library/{p-cb269271.entry.js → p-32fd509b.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-02151d7e.entry.js → p-438f1793.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-1f382434.entry.js → p-451a9785.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-4d61f200.entry.js → p-45d99a2b.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-a93f21f9.entry.js → p-46567994.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-2fd3eb76.entry.js → p-48417d99.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-dd4bf12d.entry.js → p-488c2d88.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-bf2d0cf4.entry.js → p-4c21a696.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-08d78730.entry.js → p-4e1774df.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-a30563ff.entry.js → p-512a2787.entry.js} +2 -2
- package/dist/spw-stencil-library/p-572188ac.entry.js +2 -0
- package/dist/spw-stencil-library/p-572188ac.entry.js.map +1 -0
- package/dist/spw-stencil-library/{p-04274072.entry.js → p-5a1b3ad1.entry.js} +3 -3
- package/dist/spw-stencil-library/{p-c838e17b.entry.js → p-5e34ea9d.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-74b4aea0.entry.js → p-5f873b56.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-cff5a7e4.entry.js → p-5fde9dae.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-09a2d080.entry.js → p-63d1c97f.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-2dff657f.entry.js → p-6e74b1b0.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-fda153e0.entry.js → p-6ea811f3.entry.js} +2 -2
- package/dist/spw-stencil-library/p-6ed76337.entry.js +2 -0
- package/dist/spw-stencil-library/p-6ed76337.entry.js.map +1 -0
- package/dist/spw-stencil-library/p-76e11724.entry.js +2 -0
- package/dist/spw-stencil-library/p-76e11724.entry.js.map +1 -0
- package/dist/spw-stencil-library/p-823b60ae.entry.js +2 -0
- package/dist/spw-stencil-library/p-823b60ae.entry.js.map +1 -0
- package/dist/spw-stencil-library/{p-11805364.entry.js → p-86bdf571.entry.js} +2 -2
- package/dist/spw-stencil-library/p-8c287e51.entry.js +2 -0
- package/dist/spw-stencil-library/p-8c287e51.entry.js.map +1 -0
- package/dist/spw-stencil-library/{p-fabf41a2.entry.js → p-8cfb4646.entry.js} +2 -2
- package/dist/spw-stencil-library/p-8cfb4646.entry.js.map +1 -0
- package/dist/spw-stencil-library/{p-8dca994a.entry.js → p-9b63ccca.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-42658e0a.entry.js → p-9d984204.entry.js} +2 -2
- package/dist/spw-stencil-library/p-9d984204.entry.js.map +1 -0
- package/dist/spw-stencil-library/{p-5a034423.entry.js → p-9e12973d.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-zpG0udTn.js → p-BBi01mKM.js} +2 -2
- package/dist/spw-stencil-library/{p-zpG0udTn.js.map → p-BBi01mKM.js.map} +1 -1
- package/dist/spw-stencil-library/p-CvfVJV8a.js +3 -0
- package/dist/spw-stencil-library/{p-BYM_CUUH.js.map → p-CvfVJV8a.js.map} +1 -1
- package/dist/spw-stencil-library/{p-1d9ef3d5.entry.js → p-a25ad9f2.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-376b1e84.entry.js → p-a31a30f3.entry.js} +2 -2
- package/dist/spw-stencil-library/p-a31a30f3.entry.js.map +1 -0
- package/dist/spw-stencil-library/p-a61253c2.entry.js +2 -0
- package/dist/spw-stencil-library/p-a61253c2.entry.js.map +1 -0
- package/dist/spw-stencil-library/{p-8c6c9db5.entry.js → p-a840f2ca.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-403fe46c.entry.js → p-b0e3875a.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-b45534d4.entry.js → p-b1bb413f.entry.js} +2 -2
- package/dist/spw-stencil-library/p-b1de48f3.entry.js +2 -0
- package/dist/spw-stencil-library/p-b1de48f3.entry.js.map +1 -0
- package/dist/spw-stencil-library/{p-db2354cf.entry.js → p-b6a56ec7.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-db2354cf.entry.js.map → p-b6a56ec7.entry.js.map} +1 -1
- package/dist/spw-stencil-library/{p-75159246.entry.js → p-bb225503.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-1d93e0d8.entry.js → p-bff5424c.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-cf508941.entry.js → p-c314e59f.entry.js} +2 -2
- package/dist/spw-stencil-library/p-c3985590.entry.js +2 -0
- package/dist/spw-stencil-library/p-c3985590.entry.js.map +1 -0
- package/dist/spw-stencil-library/{p-e72c6410.entry.js → p-cbf8aea1.entry.js} +2 -2
- package/dist/spw-stencil-library/p-ce72bca4.entry.js +2 -0
- package/dist/spw-stencil-library/p-ce72bca4.entry.js.map +1 -0
- package/dist/spw-stencil-library/{p-b0ca9615.entry.js → p-d03b1644.entry.js} +2 -2
- package/dist/spw-stencil-library/p-d115a739.entry.js +2 -0
- package/dist/spw-stencil-library/{p-64670b2e.entry.js.map → p-d115a739.entry.js.map} +1 -1
- package/dist/spw-stencil-library/p-d2258e0a.entry.js +2 -0
- package/dist/spw-stencil-library/p-d2258e0a.entry.js.map +1 -0
- package/dist/spw-stencil-library/{p-817e139e.entry.js → p-d384f832.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-532314d2.entry.js → p-d8ba3e5c.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-e00468aa.entry.js → p-e0c31c21.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-e00468aa.entry.js.map → p-e0c31c21.entry.js.map} +1 -1
- package/dist/spw-stencil-library/{p-09d27c4b.entry.js → p-e3485695.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-ae905af5.entry.js → p-e4b4f2b3.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-93a5f755.entry.js → p-e4d193cd.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-158e7952.entry.js → p-e936741c.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-8ef8864e.entry.js → p-ecec4588.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-8ef8864e.entry.js.map → p-ecec4588.entry.js.map} +1 -1
- package/dist/spw-stencil-library/{p-98ee79d6.entry.js → p-f154589d.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-98ee79d6.entry.js.map → p-f154589d.entry.js.map} +1 -1
- package/dist/spw-stencil-library/{p-7d80a44e.entry.js → p-f28bf2be.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-7d80a44e.entry.js.map → p-f28bf2be.entry.js.map} +1 -1
- package/dist/spw-stencil-library/p-f5caed11.entry.js +2 -0
- package/dist/spw-stencil-library/p-f5caed11.entry.js.map +1 -0
- package/dist/spw-stencil-library/{p-7cd55113.entry.js → p-f70ed5c3.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-a8311acd.entry.js → p-f7760a47.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-a8311acd.entry.js.map → p-f7760a47.entry.js.map} +1 -1
- package/dist/spw-stencil-library/p-f8ad31d4.entry.js +2 -0
- package/dist/spw-stencil-library/{p-03f1a257.entry.js.map → p-f8ad31d4.entry.js.map} +1 -1
- package/dist/spw-stencil-library/{p-3450855b.entry.js → p-fa52aa2c.entry.js} +2 -2
- package/dist/spw-stencil-library/{p-554af1e3.entry.js → p-fc6af4d8.entry.js} +2 -2
- package/dist/spw-stencil-library/spw-accordion.spw-accordion-content.spw-accordion-item.spw-accordion-title.entry.esm.js.map +1 -1
- package/dist/spw-stencil-library/spw-checkbox.entry.esm.js.map +1 -1
- package/dist/spw-stencil-library/spw-custom-select.entry.esm.js.map +1 -1
- package/dist/spw-stencil-library/spw-date-picker.entry.esm.js.map +1 -1
- package/dist/spw-stencil-library/spw-dropdown-container.entry.esm.js.map +1 -0
- package/dist/spw-stencil-library/spw-dropdown-item.entry.esm.js.map +1 -0
- package/dist/spw-stencil-library/spw-dropdown.entry.esm.js.map +1 -1
- package/dist/spw-stencil-library/spw-file-upload.entry.esm.js.map +1 -1
- package/dist/spw-stencil-library/spw-select.entry.esm.js.map +1 -1
- package/dist/spw-stencil-library/spw-sidebar-navigation-item.entry.esm.js.map +1 -1
- package/dist/spw-stencil-library/spw-sidebar.entry.esm.js.map +1 -1
- package/dist/spw-stencil-library/spw-skeleton.entry.esm.js.map +1 -1
- package/dist/spw-stencil-library/spw-stencil-library.css +1 -1
- package/dist/spw-stencil-library/spw-stencil-library.esm.js +1 -1
- package/dist/spw-stencil-library/spw-table-cell.entry.esm.js.map +1 -1
- package/dist/spw-stencil-library/spw-table-footer.entry.esm.js.map +1 -1
- package/dist/spw-stencil-library/spw-table.entry.esm.js.map +1 -1
- package/dist/spw-stencil-library/spw-tabs.entry.esm.js.map +1 -1
- package/dist/spw-stencil-library/spw-wizard-item.entry.esm.js.map +1 -0
- package/dist/spw-stencil-library/spw-wizard.entry.esm.js.map +1 -0
- package/dist/stats.json +3162 -942
- package/dist/types/components/spw-custom-select/spw-custom-select.d.ts +2 -0
- package/dist/types/components/spw-date-picker/spw-date-picker.d.ts +7 -0
- package/dist/types/components/spw-dropdown/spw-dropdown-container/spw-dropdown-container.d.ts +3 -0
- package/dist/types/components/spw-dropdown/spw-dropdown-item/spw-dropdown-item.d.ts +23 -0
- package/dist/types/components/spw-select/spw-select.d.ts +1 -0
- package/dist/types/components/spw-sidebar/spw-sidebar-navigation-item/spw-sidebar-navigation-item.d.ts +8 -0
- package/dist/types/components/spw-sidebar/spw-sidebar.d.ts +1 -0
- package/dist/types/components/spw-table/spw-table-cell/spw-table-cell.d.ts +9 -0
- package/dist/types/components/spw-table/spw-table.d.ts +11 -1
- package/dist/types/components/spw-wizard/spw-wizard-item/spw-wizard-item.d.ts +35 -0
- package/dist/types/components/spw-wizard/spw-wizard.d.ts +19 -0
- package/dist/types/components.d.ts +296 -0
- package/dist/types/stories/components/spw-date-picker/spw-date-picker.stories.d.ts +2 -0
- package/dist/types/stories/organisms/spw-table/spw-table.stories.d.ts +1 -0
- package/dist/types/stories/organisms/spw-wizard/spw-wizard.stories.d.ts +8 -0
- package/hydrate/index.js +800 -150
- package/hydrate/index.mjs +800 -150
- package/package.json +1 -1
- package/dist/components/p-B3OQ2nRI.js.map +0 -1
- package/dist/components/p-Cf-dIWNi.js +0 -129
- package/dist/components/p-Cf-dIWNi.js.map +0 -1
- package/dist/spw-stencil-library/p-03f1a257.entry.js +0 -2
- package/dist/spw-stencil-library/p-2e9756c4.entry.js +0 -2
- package/dist/spw-stencil-library/p-2e9756c4.entry.js.map +0 -1
- package/dist/spw-stencil-library/p-34dc26ba.entry.js +0 -2
- package/dist/spw-stencil-library/p-34dc26ba.entry.js.map +0 -1
- package/dist/spw-stencil-library/p-376b1e84.entry.js.map +0 -1
- package/dist/spw-stencil-library/p-42658e0a.entry.js.map +0 -1
- package/dist/spw-stencil-library/p-5f82570e.entry.js.map +0 -1
- package/dist/spw-stencil-library/p-64670b2e.entry.js +0 -2
- package/dist/spw-stencil-library/p-73db3953.entry.js +0 -2
- package/dist/spw-stencil-library/p-73db3953.entry.js.map +0 -1
- package/dist/spw-stencil-library/p-7e30e4c2.entry.js +0 -2
- package/dist/spw-stencil-library/p-7e30e4c2.entry.js.map +0 -1
- package/dist/spw-stencil-library/p-9356f8c9.entry.js +0 -2
- package/dist/spw-stencil-library/p-9356f8c9.entry.js.map +0 -1
- package/dist/spw-stencil-library/p-BYM_CUUH.js +0 -3
- package/dist/spw-stencil-library/p-a950bce8.entry.js +0 -2
- package/dist/spw-stencil-library/p-a950bce8.entry.js.map +0 -1
- package/dist/spw-stencil-library/p-c54fee67.entry.js +0 -2
- package/dist/spw-stencil-library/p-c54fee67.entry.js.map +0 -1
- package/dist/spw-stencil-library/p-d3d4755a.entry.js +0 -2
- package/dist/spw-stencil-library/p-d3d4755a.entry.js.map +0 -1
- package/dist/spw-stencil-library/p-fabf41a2.entry.js.map +0 -1
- /package/dist/spw-stencil-library/{p-f5de314e.entry.js.map → p-06cb6865.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-52c51ac5.entry.js.map → p-06ec3521.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-0226ad72.entry.js.map → p-0baeea00.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-fbe468de.entry.js.map → p-2113f2f6.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-44d87d3f.entry.js.map → p-22f972ca.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-181ae002.entry.js.map → p-25329033.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-9219fe7c.entry.js.map → p-2abc48ed.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-3ab472db.entry.js.map → p-2b011668.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-b0dc1073.entry.js.map → p-2cfb78fb.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-c2de4206.entry.js.map → p-2d974226.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-cb269271.entry.js.map → p-32fd509b.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-02151d7e.entry.js.map → p-438f1793.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-1f382434.entry.js.map → p-451a9785.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-4d61f200.entry.js.map → p-45d99a2b.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-a93f21f9.entry.js.map → p-46567994.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-2fd3eb76.entry.js.map → p-48417d99.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-dd4bf12d.entry.js.map → p-488c2d88.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-bf2d0cf4.entry.js.map → p-4c21a696.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-08d78730.entry.js.map → p-4e1774df.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-a30563ff.entry.js.map → p-512a2787.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-04274072.entry.js.map → p-5a1b3ad1.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-c838e17b.entry.js.map → p-5e34ea9d.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-74b4aea0.entry.js.map → p-5f873b56.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-cff5a7e4.entry.js.map → p-5fde9dae.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-09a2d080.entry.js.map → p-63d1c97f.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-2dff657f.entry.js.map → p-6e74b1b0.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-fda153e0.entry.js.map → p-6ea811f3.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-11805364.entry.js.map → p-86bdf571.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-8dca994a.entry.js.map → p-9b63ccca.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-5a034423.entry.js.map → p-9e12973d.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-1d9ef3d5.entry.js.map → p-a25ad9f2.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-8c6c9db5.entry.js.map → p-a840f2ca.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-403fe46c.entry.js.map → p-b0e3875a.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-b45534d4.entry.js.map → p-b1bb413f.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-75159246.entry.js.map → p-bb225503.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-1d93e0d8.entry.js.map → p-bff5424c.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-cf508941.entry.js.map → p-c314e59f.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-e72c6410.entry.js.map → p-cbf8aea1.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-b0ca9615.entry.js.map → p-d03b1644.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-817e139e.entry.js.map → p-d384f832.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-532314d2.entry.js.map → p-d8ba3e5c.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-09d27c4b.entry.js.map → p-e3485695.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-ae905af5.entry.js.map → p-e4b4f2b3.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-93a5f755.entry.js.map → p-e4d193cd.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-158e7952.entry.js.map → p-e936741c.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-7cd55113.entry.js.map → p-f70ed5c3.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-3450855b.entry.js.map → p-fa52aa2c.entry.js.map} +0 -0
- /package/dist/spw-stencil-library/{p-554af1e3.entry.js.map → p-fc6af4d8.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["spwFieldLabelCss","SpwFieldLabel","constructor","hostRef","this","label","required","handleClick","rootNode","el","getRootNode","targetElement","getElementById","name","focus","render","h","Host","key","class","htmlFor","onClick","spwGroupCss","SpwGroup","type","orientation","alignment","disabled","isReversed","isFullWidth","handleSlotChange","elements","_a","slotEl","assignedElements","Array","from","host","querySelectorAll","forEach","element","setAttribute","removeAttribute","componentDidLoad","groupClasses","ref","spwIconCss","SpwIcon","variant","iconClassName","icon","spwLinkCss","SpwLink","target","iconPosition","surface","ev","preventDefault","spwClick","emit","elementClass","href","rel","accAriaLabel","ariaAttributes","iconClass","iconElement","Object","assign","undefined","spwSeparatorCss","SpwSeparator","direction","thickness","width","height","style","rougeCss","bleuCss","bleuClairCss","vertCss","vertLegerCss","turquoiseCss","orangeCss","indigoCss","mauveCss","grisCss","themes","rouge","rougeTheme","bleu","bleuTheme","bleuClair","bleuClairTheme","vert","vertTheme","vertLeger","vertLegerTheme","orange","orangeTheme","turquoise","turquoiseTheme","indigo","indigoTheme","mauve","mauveTheme","gris","grisTheme","SpwThemeProvider","theme","componentWillLoad","applyTheme","componentWillUpdate","styleId","styleElement","document","createElement","id","head","appendChild","css","innerHTML","documentElement"],"sources":["src/components/spw-field-label/spw-field-label.scss?tag=spw-field-label&encapsulation=shadow","src/components/spw-field-label/spw-field-label.tsx","src/components/spw-group/spw-group.scss?tag=spw-group","src/components/spw-group/spw-group.tsx","src/components/spw-icon/spw-icon.scss?tag=spw-icon&encapsulation=shadow","src/components/spw-icon/spw-icon.tsx","src/components/spw-link/spw-link.scss?tag=spw-link&encapsulation=shadow","src/components/spw-link/spw-link.tsx","src/components/spw-separator/spw-separator.scss?tag=spw-separator&encapsulation=shadow","src/components/spw-separator/spw-separator.tsx","src/themes/rouge.css","src/themes/bleu.css","src/themes/bleu-clair.css","src/themes/vert.css","src/themes/vert-leger.css","src/themes/turquoise.css","src/themes/orange.css","src/themes/indigo.css","src/themes/mauve.css","src/themes/gris.css","src/themes/themes.ts","src/components/spw-theme-provider/spw-theme-provider.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.spw-field-label {\n color: var(--spw-color-themes-grey-grey-800);\n display: block;\n font-weight: 600;\n @apply spw-tw-mb-2;\n &__required {\n color: var(--spw-ds-primary);\n }\n}\n","import { Component, Host, h, Prop, Element } from '@stencil/core';\n\n@Component({\n tag: 'spw-field-label',\n styleUrl: 'spw-field-label.scss',\n shadow: true,\n})\nexport class SpwFieldLabel {\n /** L'attribut id de l'élément input */\n @Prop() name: string;\n /** Texte à afficher au-dessus du champ de saisie */\n @Prop() label?: string = '';\n /** Indique si le champ est requis */\n @Prop() required?: boolean = false;\n\n @Element() el: HTMLSpwFieldLabelElement;\n\n private handleClick = () => {\n const rootNode = this.el.getRootNode() as ShadowRoot | Document;\n const targetElement = rootNode.getElementById(this.name);\n\n if (targetElement) {\n (targetElement as HTMLElement).focus();\n }\n };\n\n render() {\n return (\n <Host>\n <label class=\"spw-field-label\" htmlFor={this.name} onClick={this.handleClick}>\n {this.label} {this.required && <span class=\"spw-field-label__required\">*</span>}\n </label>\n </Host>\n );\n }\n}\n",":host {\n display: block;\n width: 100%;\n}\n\n.spw-group {\n spw-button:not[is-fullwidth-mobile='false'] {\n display: block;\n width: 100%;\n @include breakpoint(md) {\n display: initial;\n width: auto;\n }\n }\n\n &__container {\n display: flex;\n width: fit-content;\n\n .spw-group--is-full-width & {\n width: 100% !important;\n }\n\n @include breakpoint(md) {\n align-items: center;\n }\n .spw-group--buttons & {\n gap: 12px;\n width: 100%;\n @include breakpoint(md) {\n width: fit-content;\n }\n }\n .spw-group--checkboxes &,\n .spw-group--radios & {\n gap: 16px;\n }\n .spw-group--checkboxes.spw-group--horizontal &,\n .spw-group--radios.spw-group--horizontal & {\n gap: 16px;\n @include breakpoint(md) {\n gap: 24px;\n }\n }\n .spw-group--buttons.spw-group--align-right.spw-group--horizontal & {\n flex-direction: column;\n @include breakpoint(md) {\n flex-direction: row-reverse;\n }\n }\n .spw-group--buttons.spw-group--align-left.spw-group--horizontal.spw-group--reversed & {\n flex-direction: column-reverse;\n @include breakpoint(md) {\n flex-direction: row;\n }\n }\n }\n\n &--align-left {\n .spw-group__container {\n margin-right: auto;\n }\n }\n\n &--align-center {\n .spw-group__container {\n margin-left: auto;\n margin-right: auto;\n }\n }\n\n &--align-right {\n .spw-group__container {\n margin-left: auto;\n }\n }\n\n &--vertical {\n .spw-group__container {\n flex-direction: column;\n align-items: flex-start;\n\n .spw-group--align-center & {\n align-items: center;\n }\n\n .spw-group--align-right & {\n align-items: flex-end;\n }\n }\n }\n\n &--horizontal {\n .spw-group__container {\n flex-direction: column;\n @include breakpoint(md) {\n flex-direction: row;\n }\n }\n }\n\n &--disabled {\n opacity: 0.5;\n pointer-events: none;\n }\n}\n","import { Component, Host, h, Prop, Element } from '@stencil/core';\n\n@Component({\n tag: 'spw-group',\n styleUrl: 'spw-group.scss',\n shadow: false,\n})\nexport class SpwGroup {\n @Element() host: HTMLSpwGroupElement;\n\n /** Type d'éléments contenus dans le groupe (buttons, checkboxes, radios) */\n @Prop() type: 'buttons' | 'checkboxes' | 'radios' = 'buttons';\n /** Orientation du groupe (horizontal ou vertical) */\n @Prop() orientation: 'horizontal' | 'vertical' = 'horizontal';\n /** Alignement horizontal du groupe */\n @Prop() alignment: 'left' | 'center' | 'right' = 'left';\n /** Détermine si le groupe est désactivé */\n @Prop() disabled: boolean = false;\n /** Texte à afficher au-dessus de l'élément de formulaire */\n @Prop() label: string = '';\n /** Si `true`, le label comporte une astérisque */\n @Prop() required?: boolean;\n /** Si `true`, l'ordre des boutons est inversé en mobile (uniquement valable en cas d'alignement left) */\n @Prop() isReversed?: boolean = false;\n /** Attribut `name` de l'élément input */\n @Prop() name: string;\n /** Si vrai, le groupe prend toute la largeur */\n @Prop() isFullWidth?: boolean = false;\n\n private slotEl: HTMLSlotElement;\n\n componentDidLoad() {\n this.handleSlotChange();\n }\n\n private handleSlotChange = () => {\n const elements = this.slotEl?.assignedElements ? this.slotEl.assignedElements() : Array.from(this.host.querySelectorAll('*'));\n\n elements.forEach(element => {\n if (this.disabled) {\n element.setAttribute('disabled', '');\n } else {\n element.removeAttribute('disabled');\n }\n });\n };\n\n private get groupClasses(): { [key: string]: boolean } {\n return {\n 'spw-group': true,\n 'spw-group--horizontal': this.orientation === 'horizontal',\n 'spw-group--vertical': this.orientation === 'vertical',\n 'spw-group--reversed': this.isReversed,\n 'spw-group--disabled': this.disabled,\n 'spw-group--is-full-width': this.isFullWidth,\n [`spw-group--${this.type}`]: true,\n [`spw-group--align-${this.alignment}`]: true,\n };\n }\n\n render() {\n return (\n <Host>\n <div class={this.groupClasses}>\n {this.label && <spw-field-label class=\"spw-tw-mb-3\" label={this.label} name={this.name} required={this.required}></spw-field-label>}\n <div class=\"spw-group__container\">\n <slot ref={el => (this.slotEl = el as HTMLSlotElement)}></slot>\n </div>\n </div>\n </Host>\n );\n }\n}\n","@import url('./assets/fontawesome/css/all.min.css');\n\n:host {\n line-height: 1;\n}\n\n.spw-icon.fa-solid,\n.spw-icon.fa-solid:before {\n font-family: var(--spw-ds-font-icons-solid);\n}\n\n.spw-icon.fa-brands,\n.spw-icon.fa-brands:before {\n font-family: var(--spw-ds-font-icons-brands);\n}\n\n.spw-icon.fa-regular,\n.spw-icon.fa-regular:before {\n font-weight: 400;\n font-family: var(--spw-ds-font-icons-solid);\n}\n\n.spw-icon {\n font-size: inherit;\n}\n","import { Component, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'spw-icon',\n styleUrl: 'spw-icon.scss',\n shadow: true,\n assetsDirs: ['assets'],\n})\nexport class SpwIcon {\n /** Permet de spécifier une référence d'icône Font Awesome */\n @Prop() icon: string;\n /** Permet de spécifier une variante de Font Awesome */\n @Prop() variant: 'fa-solid' | 'fa-brands' | 'fa-regular' = 'fa-solid';\n\n render() {\n const iconClassName = `spw-icon ${this.variant} ${this.icon}`;\n return <i class={iconClassName}></i>;\n }\n}\n",":host {\n display: inline;\n --spw-link-color: var(--spw-ds-primary);\n --spw-link-hover-color: var(--spw-ds-variant);\n --spw-link-active-color: var(--spw-ds-active);\n --spw-link-font-weight: 700;\n --spw-link-padding: 6px;\n}\n\n.spw-link {\n display: inline;\n text-decoration: none;\n cursor: pointer;\n color: var(--spw-link-color);\n border-radius: 4px;\n font-weight: var(--spw-link-font-weight);\n &--surface-dark {\n color: var(--spw-ds-white);\n }\n\n &__inner {\n display: inline;\n border-bottom: 1px solid var(--spw-link-color);\n .spw-link--surface-dark & {\n border-bottom: 1px solid var(--spw-ds-white);\n }\n }\n\n &:focus-visible {\n outline-offset: 2px;\n outline: 3px solid black;\n }\n\n &:hover {\n color: var(--spw-link-hover-color);\n .spw-link__inner {\n border-bottom: 2px solid var(--spw-link-hover-color);\n }\n }\n\n &:active {\n color: var(--spw-link-active-color);\n .spw-link__inner {\n border-bottom: 2px solid var(--spw-link-active-color);\n }\n }\n\n &[aria-disabled='true'] {\n pointer-events: none;\n color: var(--spw-color-themes-grey-grey-600);\n cursor: not-allowed;\n }\n\n &--surface-dark {\n &:hover {\n color: var(--spw-ds-white);\n .spw-link__inner {\n border-bottom: 2px solid var(--spw-ds-white);\n }\n }\n\n &:active {\n color: var(--spw-ds-white);\n .spw-link__inner {\n border-bottom: 2px solid var(--spw-ds-white);\n }\n }\n\n &[aria-disabled='true'] {\n color: var(--spw-ds-white);\n opacity: 0.5;\n }\n }\n\n &--has-icon-right spw-icon {\n margin-left: var(--spw-link-padding);\n margin-right: 4px;\n }\n\n &--has-icon-left spw-icon {\n margin-left: 4px;\n margin-right: var(--spw-link-padding);\n }\n}\n","import { Component, Element, Prop, h, Event, EventEmitter } from '@stencil/core';\n\n@Component({\n tag: 'spw-link',\n styleUrl: 'spw-link.scss',\n shadow: true,\n})\nexport class SpwLink {\n @Element() el: HTMLSpwLinkElement;\n\n /** Spécifie le lien href */\n @Prop() href: string;\n /** Attribut target (détermine où ouvrir le lien) */\n @Prop() target?: string = '_self';\n /** Remplit l'attribut rel */\n @Prop() rel?: string;\n /** Si rempli, permet d'utiliser une référence d'icône font-awesome */\n @Prop() icon?: string;\n /** Position de l'icône à l'intérieur du lien (gauche ou droite) */\n @Prop() iconPosition?: 'left' | 'right' = 'right';\n /** Si désactivé, le lien n'est pas cliquable */\n @Prop() disabled?: boolean = false;\n /** Remplit l'attribut aria-label, utilisé à des fins d'accessibilité */\n @Prop() accAriaLabel?: string;\n /** Permet de choisir la surface d'arrière-plan du lien */\n @Prop() surface?: 'light' | 'dark' = 'light';\n\n /** Événement déclenché lors du clic sur le lien */\n @Event() spwClick: EventEmitter<MouseEvent>;\n\n private onClick = (ev: MouseEvent) => {\n if (this.disabled) {\n ev.preventDefault();\n return;\n }\n this.spwClick.emit(ev);\n };\n\n private get elementClass(): { [className: string]: boolean } {\n return {\n 'spw-link': true,\n 'spw-link--has-icon-right': this.icon && this.iconPosition === 'right',\n 'spw-link--has-icon-left': this.icon && this.iconPosition === 'left',\n [`spw-link--surface-${this.surface}`]: true,\n 'spw-link--has-icon': !!this.icon,\n };\n }\n\n render() {\n const { href, rel, target, icon, iconPosition, accAriaLabel, disabled } = this;\n const ariaAttributes = {\n 'aria-label': accAriaLabel,\n 'aria-disabled': disabled ? 'true' : null,\n };\n\n const iconClass = `spw-icon--${iconPosition}`;\n const iconElement = icon ? <spw-icon class={iconClass} icon={icon}></spw-icon> : null;\n\n return (\n <a href={disabled ? undefined : href} rel={rel} target={target} class={this.elementClass} onClick={this.onClick} {...ariaAttributes}>\n {iconPosition === 'left' && iconElement}\n <div class=\"spw-link__inner\">\n <slot></slot>\n </div>\n {iconPosition === 'right' && iconElement}\n </a>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.spw-separator {\n display: block;\n border-width: 1px;\n\n &--horizontal {\n border-bottom-style: solid;\n width: auto;\n height: 0;\n }\n\n &--vertical {\n border-right-style: solid;\n width: 0;\n height: auto;\n }\n\n &--dark {\n border-color: var(--spw-colors-support-grey-grey-300);\n }\n\n &--light {\n border-color: var(--spw-ds-white);\n }\n\n &--thickness-1 {\n border-width: 1px;\n }\n\n &--thickness-2 {\n border-width: 2px;\n }\n}\n","import { Component, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'spw-separator',\n styleUrl: 'spw-separator.scss',\n shadow: true,\n})\nexport class SpwSeparator {\n /** Permet de choisir la surface du séparateur (clair ou sombre) */\n @Prop() surface: 'dark' | 'light' = 'dark';\n\n /** Permet de définir la direction du séparateur */\n @Prop() direction: 'vertical' | 'horizontal' = 'horizontal';\n\n /** Définit l'épaisseur du séparateur */\n @Prop() thickness: 1 | 2 = 1;\n\n /** Largeur du séparateur (par défaut 100% si non spécifié) */\n @Prop() width: string = '100%';\n\n /** Hauteur du séparateur (par défaut 100% si non spécifié) */\n @Prop() height: string = '100%';\n\n private get elementClass(): { [className: string]: boolean } {\n return {\n 'spw-separator': true,\n [`spw-separator--${this.surface}`]: true,\n [`spw-separator--${this.direction}`]: true,\n [`spw-separator--thickness-${this.thickness}`]: true,\n };\n }\n\n private get style(): { [key: string]: string } {\n return {\n width: this.direction === 'horizontal' ? `${this.width}px` : `${this.thickness}px`,\n height: this.direction === 'vertical' ? `${this.height}px` : `${this.thickness}px`,\n };\n }\n\n render() {\n return <div class={this.elementClass} style={this.style}></div>;\n }\n}\n","@import '_base.css';\n\n:root {\n --spw-ds-primary: var(--spw-color-themes-red-red-500);\n --spw-ds-variant: var(--spw-color-themes-red-red-700);\n --spw-ds-active: var(--spw-color-themes-red-red-800);\n --spw-ds-cta-outlined-bg-hover: var(--spw-color-themes-red-red-50);\n --spw-ds-cta-outlined-stroke-hover: var(--spw-color-themes-red-red-700);\n --spw-ds-cta-outlined-bg-active: var(--spw-color-themes-red-red-100);\n --spw-ds-cta-outlined-stroke-active: var(--spw-color-themes-red-red-800);\n}\n","@import '_base.css';\n\n:root {\n --spw-ds-primary: var(--spw-color-themes-blue-blue-500);\n --spw-ds-variant: var(--spw-color-themes-blue-blue-700);\n --spw-ds-active: var(--spw-color-themes-blue-blue-800);\n --spw-ds-cta-outlined-bg-hover: var(--spw-color-themes-blue-blue-50);\n --spw-ds-cta-outlined-stroke-hover: var(--spw-color-themes-blue-blue-700);\n --spw-ds-cta-outlined-bg-active: var(--spw-color-themes-blue-blue-100);\n --spw-ds-cta-outlined-stroke-active: var(--spw-color-themes-blue-blue-800);\n}\n","@import '_base.css';\n\n:root {\n --spw-ds-primary: var(--spw-color-themes-light-blue-light-blue-600);\n --spw-ds-variant: var(--spw-color-themes-light-blue-light-blue-800);\n --spw-ds-active: var(--spw-color-themes-light-blue-light-blue-900);\n --spw-ds-cta-outlined-bg-hover: var(--spw-color-themes-light-blue-light-blue-50);\n --spw-ds-cta-outlined-stroke-hover: var(--spw-color-themes-light-blue-light-blue-700);\n --spw-ds-cta-outlined-bg-active: var(--spw-color-themes-light-blue-light-blue-100);\n --spw-ds-cta-outlined-stroke-active: var(--spw-color-themes-light-blue-light-blue-800);\n}\n","@import '_base.css';\n\n:root {\n --spw-ds-primary: var(--spw-color-themes-green-green-700);\n --spw-ds-variant: var(--spw-color-themes-green-green-800);\n --spw-ds-active: var(--spw-color-themes-green-green-900);\n --spw-ds-cta-outlined-bg-hover: var(--spw-color-themes-green-green-50);\n --spw-ds-cta-outlined-stroke-hover: var(--spw-color-themes-green-green-700);\n --spw-ds-cta-outlined-bg-active: var(--spw-color-themes-green-green-100);\n --spw-ds-cta-outlined-stroke-active: var(--spw-color-themes-green-green-800);\n}\n","@import '_base.css';\n\n:root {\n --spw-ds-primary: var(--spw-color-themes-light-green-light-green-700);\n --spw-ds-variant: var(--spw-color-themes-light-green-light-green-800);\n --spw-ds-active: var(--spw-color-themes-light-green-light-green-900);\n --spw-ds-cta-outlined-bg-hover: var(--spw-color-themes-light-green-light-green-50);\n --spw-ds-cta-outlined-stroke-hover: var(--spw-color-themes-light-green-light-green-700);\n --spw-ds-cta-outlined-bg-active: var(--spw-color-themes-light-green-light-green-100);\n --spw-ds-cta-outlined-stroke-active: var(--spw-color-themes-light-green-light-green-800);\n}\n","@import '_base.css';\n\n:root {\n --spw-ds-primary: var(--spw-color-themes-teal-teal-700);\n --spw-ds-variant: var(--spw-color-themes-teal-teal-800);\n --spw-ds-active: var(--spw-color-themes-teal-teal-900);\n --spw-ds-cta-outlined-bg-hover: var(--spw-color-themes-teal-teal-50);\n --spw-ds-cta-outlined-stroke-hover: var(--spw-color-themes-teal-teal-700);\n --spw-ds-cta-outlined-bg-active: var(--spw-color-themes-teal-teal-100);\n --spw-ds-cta-outlined-stroke-active: var(--spw-color-themes-teal-teal-800);\n}\n","@import '_base.css';\n\n:root {\n --spw-ds-primary: var(--spw-color-themes-orange-orange-700);\n --spw-ds-variant: var(--spw-color-themes-orange-orange-800);\n --spw-ds-active: var(--spw-color-themes-orange-orange-900);\n --spw-ds-cta-outlined-bg-hover: var(--spw-color-themes-orange-orange-50);\n --spw-ds-cta-outlined-stroke-hover: var(--spw-color-themes-orange-orange-700);\n --spw-ds-cta-outlined-bg-active: var(--spw-color-themes-orange-orange-100);\n --spw-ds-cta-outlined-stroke-active: var(--spw-color-themes-orange-orange-800);\n}\n","@import '_base.css';\n\n:root {\n --spw-ds-primary: var(--spw-color-themes-indigo-indigo-700);\n --spw-ds-variant: var(--spw-color-themes-indigo-indigo-800);\n --spw-ds-active: var(--spw-color-themes-indigo-indigo-900);\n --spw-ds-cta-outlined-bg-hover: var(--spw-color-themes-indigo-indigo-50);\n --spw-ds-cta-outlined-stroke-hover: var(--spw-color-themes-indigo-indigo-700);\n --spw-ds-cta-outlined-bg-active: var(--spw-color-themes-indigo-indigo-100);\n --spw-ds-cta-outlined-stroke-active: var(--spw-color-themes-indigo-indigo-800);\n}\n","@import '_base.css';\n\n:root {\n --spw-ds-primary: var(--spw-color-themes-purple-purple-500);\n --spw-ds-variant: var(--spw-color-themes-purple-purple-800);\n --spw-ds-active: var(--spw-color-themes-purple-purple-900);\n --spw-ds-cta-outlined-bg-hover: var(--spw-color-themes-purple-purple-50);\n --spw-ds-cta-outlined-stroke-hover: var(--spw-color-themes-purple-purple-700);\n --spw-ds-cta-outlined-bg-active: var(--spw-color-themes-purple-purple-100);\n --spw-ds-cta-outlined-stroke-active: var(--spw-color-themes-purple-purple-800);\n}\n","@import '_base.css';\n\n:root {\n --spw-ds-primary: var(--spw-color-themes-grey-grey-500);\n --spw-ds-variant: var(--spw-color-themes-grey-grey-800);\n --spw-ds-active: var(--spw-color-themes-grey-grey-900);\n --spw-ds-cta-outlined-bg-hover: var(--spw-color-themes-grey-grey-50);\n --spw-ds-cta-outlined-stroke-hover: var(--spw-color-themes-grey-grey-700);\n --spw-ds-cta-outlined-bg-active: var(--spw-color-themes-grey-grey-100);\n --spw-ds-cta-outlined-stroke-active: var(--spw-color-themes-grey-grey-800);\n}\n","import rougeTheme from './rouge.css';\nimport bleuTheme from './bleu.css';\nimport bleuClairTheme from './bleu-clair.css';\nimport vertTheme from './vert.css';\nimport vertLegerTheme from './vert-leger.css';\nimport turquoiseTheme from './turquoise.css';\nimport orangeTheme from './orange.css';\nimport indigoTheme from './indigo.css';\nimport mauveTheme from './mauve.css';\nimport grisTheme from './gris.css';\n\nexport const themes = {\n rouge: rougeTheme,\n bleu: bleuTheme,\n bleuClair: bleuClairTheme,\n vert: vertTheme,\n vertLeger: vertLegerTheme,\n orange: orangeTheme,\n turquoise: turquoiseTheme,\n indigo: indigoTheme,\n mauve: mauveTheme,\n gris: grisTheme,\n};\n\nexport type SpwTheme = keyof typeof themes;\n","import { Component, Prop, h, Element } from '@stencil/core';\nimport { themes, SpwTheme } from '@themes/themes';\n\n@Component({\n tag: 'spw-theme-provider',\n shadow: false,\n})\nexport class SpwThemeProvider {\n /** Définit le thème employé, conditionne les tokens associés au thème */\n @Prop() theme: SpwTheme = 'rouge';\n\n @Element() el: HTMLSpwThemeProviderElement;\n\n componentWillLoad() {\n this.applyTheme(this.theme);\n }\n\n componentWillUpdate() {\n this.applyTheme(this.theme);\n }\n\n private applyTheme(theme: SpwTheme) {\n const styleId = 'theme-styles';\n let styleElement = document.getElementById(styleId) as HTMLStyleElement;\n\n if (!styleElement) {\n styleElement = document.createElement('style');\n styleElement.id = styleId;\n document.head.appendChild(styleElement);\n }\n\n const css = themes[theme];\n styleElement.innerHTML = css;\n\n document.documentElement.setAttribute('data-theme', theme);\n }\n\n render() {\n return (\n <main class={`spw-theme-${this.theme}`}>\n <slot />\n </main>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["spwFieldLabelCss","SpwFieldLabel","constructor","hostRef","this","label","required","handleClick","rootNode","el","getRootNode","targetElement","getElementById","name","focus","render","h","Host","key","class","htmlFor","onClick","spwGroupCss","SpwGroup","type","orientation","alignment","disabled","isReversed","isFullWidth","handleSlotChange","elements","_a","slotEl","assignedElements","Array","from","host","querySelectorAll","forEach","element","setAttribute","removeAttribute","componentDidLoad","groupClasses","ref","spwIconCss","SpwIcon","variant","iconClassName","icon","spwLinkCss","SpwLink","target","iconPosition","surface","ev","preventDefault","spwClick","emit","elementClass","href","rel","accAriaLabel","ariaAttributes","iconClass","iconElement","Object","assign","undefined","spwSeparatorCss","SpwSeparator","direction","thickness","width","height","style","rougeCss","bleuCss","bleuClairCss","vertCss","vertLegerCss","turquoiseCss","orangeCss","indigoCss","mauveCss","grisCss","themes","rouge","rougeTheme","bleu","bleuTheme","bleuClair","bleuClairTheme","vert","vertTheme","vertLeger","vertLegerTheme","orange","orangeTheme","turquoise","turquoiseTheme","indigo","indigoTheme","mauve","mauveTheme","gris","grisTheme","SpwThemeProvider","theme","componentWillLoad","applyTheme","componentWillUpdate","styleId","styleElement","document","createElement","id","head","appendChild","css","innerHTML","documentElement"],"sources":["src/components/spw-field-label/spw-field-label.scss?tag=spw-field-label&encapsulation=shadow","src/components/spw-field-label/spw-field-label.tsx","src/components/spw-group/spw-group.scss?tag=spw-group","src/components/spw-group/spw-group.tsx","src/components/spw-icon/spw-icon.scss?tag=spw-icon&encapsulation=shadow","src/components/spw-icon/spw-icon.tsx","src/components/spw-link/spw-link.scss?tag=spw-link&encapsulation=shadow","src/components/spw-link/spw-link.tsx","src/components/spw-separator/spw-separator.scss?tag=spw-separator&encapsulation=shadow","src/components/spw-separator/spw-separator.tsx","src/themes/rouge.css","src/themes/bleu.css","src/themes/bleu-clair.css","src/themes/vert.css","src/themes/vert-leger.css","src/themes/turquoise.css","src/themes/orange.css","src/themes/indigo.css","src/themes/mauve.css","src/themes/gris.css","src/themes/themes.ts","src/components/spw-theme-provider/spw-theme-provider.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.spw-field-label {\n color: var(--spw-color-themes-grey-grey-800);\n display: block;\n font-weight: 600;\n @apply spw-tw-mb-2;\n &__required {\n color: var(--spw-ds-primary);\n }\n}\n","import { Component, Host, h, Prop, Element } from '@stencil/core';\n\n@Component({\n tag: 'spw-field-label',\n styleUrl: 'spw-field-label.scss',\n shadow: true,\n})\nexport class SpwFieldLabel {\n /** L'attribut id de l'élément input */\n @Prop() name: string;\n /** Texte à afficher au-dessus du champ de saisie */\n @Prop() label?: string = '';\n /** Indique si le champ est requis */\n @Prop() required?: boolean = false;\n\n @Element() el: HTMLSpwFieldLabelElement;\n\n private handleClick = () => {\n const rootNode = this.el.getRootNode() as ShadowRoot | Document;\n const targetElement = rootNode.getElementById(this.name);\n\n if (targetElement) {\n (targetElement as HTMLElement).focus();\n }\n };\n\n render() {\n return (\n <Host>\n <label class=\"spw-field-label\" htmlFor={this.name} onClick={this.handleClick}>\n {this.label} {this.required && <span class=\"spw-field-label__required\">*</span>}\n </label>\n </Host>\n );\n }\n}\n",":host {\n display: block;\n width: 100%;\n}\n\n.spw-group {\n spw-button:not[is-fullwidth-mobile='false'] {\n display: block;\n width: 100%;\n @include breakpoint(md) {\n display: initial;\n width: auto;\n }\n }\n\n &__container {\n display: flex;\n width: fit-content;\n\n .spw-group--is-full-width & {\n width: 100% !important;\n }\n\n @include breakpoint(md) {\n align-items: center;\n }\n .spw-group--buttons & {\n gap: 12px;\n width: 100%;\n @include breakpoint(md) {\n width: fit-content;\n }\n }\n .spw-group--checkboxes &,\n .spw-group--radios & {\n gap: 16px;\n }\n .spw-group--checkboxes.spw-group--horizontal &,\n .spw-group--radios.spw-group--horizontal & {\n gap: 16px;\n @include breakpoint(md) {\n gap: 24px;\n }\n }\n .spw-group--buttons.spw-group--align-right.spw-group--horizontal & {\n flex-direction: column;\n @include breakpoint(md) {\n flex-direction: row-reverse;\n }\n }\n .spw-group--buttons.spw-group--align-left.spw-group--horizontal.spw-group--reversed & {\n flex-direction: column-reverse;\n @include breakpoint(md) {\n flex-direction: row;\n }\n }\n }\n\n &--align-left {\n .spw-group__container {\n margin-right: auto;\n }\n }\n\n &--align-center {\n .spw-group__container {\n margin-left: auto;\n margin-right: auto;\n }\n }\n\n &--align-right {\n .spw-group__container {\n margin-left: auto;\n }\n }\n\n &--vertical {\n .spw-group__container {\n flex-direction: column;\n align-items: flex-start;\n\n .spw-group--align-center & {\n align-items: center;\n }\n\n .spw-group--align-right & {\n align-items: flex-end;\n }\n }\n }\n\n &--horizontal {\n .spw-group__container {\n flex-direction: column;\n @include breakpoint(md) {\n flex-direction: row;\n }\n }\n }\n\n &--disabled {\n opacity: 0.5;\n pointer-events: none;\n }\n}\n","import { Component, Host, h, Prop, Element } from '@stencil/core';\n\n@Component({\n tag: 'spw-group',\n styleUrl: 'spw-group.scss',\n shadow: false,\n})\nexport class SpwGroup {\n @Element() host: HTMLSpwGroupElement;\n\n /** Type d'éléments contenus dans le groupe (buttons, checkboxes, radios) */\n @Prop() type: 'buttons' | 'checkboxes' | 'radios' = 'buttons';\n /** Orientation du groupe (horizontal ou vertical) */\n @Prop() orientation: 'horizontal' | 'vertical' = 'horizontal';\n /** Alignement horizontal du groupe */\n @Prop() alignment: 'left' | 'center' | 'right' = 'left';\n /** Détermine si le groupe est désactivé */\n @Prop() disabled: boolean = false;\n /** Texte à afficher au-dessus de l'élément de formulaire */\n @Prop() label: string = '';\n /** Si `true`, le label comporte une astérisque */\n @Prop() required?: boolean;\n /** Si `true`, l'ordre des boutons est inversé en mobile (uniquement valable en cas d'alignement left) */\n @Prop() isReversed?: boolean = false;\n /** Attribut `name` de l'élément input */\n @Prop() name: string;\n /** Si vrai, le groupe prend toute la largeur */\n @Prop() isFullWidth?: boolean = false;\n\n private slotEl: HTMLSlotElement;\n\n componentDidLoad() {\n this.handleSlotChange();\n }\n\n private handleSlotChange = () => {\n const elements = this.slotEl?.assignedElements ? this.slotEl.assignedElements() : Array.from(this.host.querySelectorAll('*'));\n\n elements.forEach(element => {\n if (this.disabled) {\n element.setAttribute('disabled', '');\n } else {\n element.removeAttribute('disabled');\n }\n });\n };\n\n private get groupClasses(): { [key: string]: boolean } {\n return {\n 'spw-group': true,\n 'spw-group--horizontal': this.orientation === 'horizontal',\n 'spw-group--vertical': this.orientation === 'vertical',\n 'spw-group--reversed': this.isReversed,\n 'spw-group--disabled': this.disabled,\n 'spw-group--is-full-width': this.isFullWidth,\n [`spw-group--${this.type}`]: true,\n [`spw-group--align-${this.alignment}`]: true,\n };\n }\n\n render() {\n return (\n <Host>\n <div class={this.groupClasses}>\n {this.label && <spw-field-label class=\"spw-tw-mb-3\" label={this.label} name={this.name} required={this.required}></spw-field-label>}\n <div class=\"spw-group__container\">\n <slot ref={el => (this.slotEl = el as HTMLSlotElement)}></slot>\n </div>\n </div>\n </Host>\n );\n }\n}\n","@import url('./assets/fontawesome/css/all.min.css');\n\n:host {\n line-height: 1;\n}\n\n.spw-icon.fa-solid,\n.spw-icon.fa-solid:before {\n font-family: var(--spw-ds-font-icons-solid);\n}\n\n.spw-icon.fa-brands,\n.spw-icon.fa-brands:before {\n font-family: var(--spw-ds-font-icons-brands);\n}\n\n.spw-icon.fa-regular,\n.spw-icon.fa-regular:before {\n font-weight: 400;\n font-family: var(--spw-ds-font-icons-solid);\n}\n\n.spw-icon {\n font-size: inherit;\n}\n","import { Component, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'spw-icon',\n styleUrl: 'spw-icon.scss',\n shadow: true,\n assetsDirs: ['assets'],\n})\nexport class SpwIcon {\n /** Permet de spécifier une référence d'icône Font Awesome */\n @Prop() icon: string;\n /** Permet de spécifier une variante de Font Awesome */\n @Prop() variant: 'fa-solid' | 'fa-brands' | 'fa-regular' = 'fa-solid';\n\n render() {\n const iconClassName = `spw-icon ${this.variant} ${this.icon}`;\n return <i class={iconClassName}></i>;\n }\n}\n",":host {\n display: inline;\n --spw-link-color: var(--spw-ds-primary);\n --spw-link-hover-color: var(--spw-ds-variant);\n --spw-link-active-color: var(--spw-ds-active);\n --spw-link-font-weight: 700;\n --spw-link-padding: 6px;\n}\n\n.spw-link {\n display: inline;\n text-decoration: none;\n cursor: pointer;\n color: var(--spw-link-color);\n border-radius: 4px;\n font-weight: var(--spw-link-font-weight);\n &--surface-dark {\n color: var(--spw-ds-white);\n }\n\n &__inner {\n display: inline;\n border-bottom: 1px solid var(--spw-link-color);\n .spw-link--surface-dark & {\n border-bottom: 1px solid var(--spw-ds-white);\n }\n }\n\n &:focus-visible {\n outline-offset: 2px;\n outline: 3px solid black;\n }\n\n &:hover {\n color: var(--spw-link-hover-color);\n .spw-link__inner {\n border-bottom: 2px solid var(--spw-link-hover-color);\n }\n }\n\n &:active {\n color: var(--spw-link-active-color);\n .spw-link__inner {\n border-bottom: 2px solid var(--spw-link-active-color);\n }\n }\n\n &[aria-disabled='true'] {\n pointer-events: none;\n color: var(--spw-color-themes-grey-grey-600);\n cursor: not-allowed;\n }\n\n &--surface-dark {\n &:hover {\n color: var(--spw-ds-white);\n .spw-link__inner {\n border-bottom: 2px solid var(--spw-ds-white);\n }\n }\n\n &:active {\n color: var(--spw-ds-white);\n .spw-link__inner {\n border-bottom: 2px solid var(--spw-ds-white);\n }\n }\n\n &[aria-disabled='true'] {\n color: var(--spw-ds-white);\n opacity: 0.5;\n }\n }\n\n &--has-icon-right spw-icon {\n margin-left: var(--spw-link-padding);\n margin-right: 4px;\n }\n\n &--has-icon-left spw-icon {\n margin-left: 4px;\n margin-right: var(--spw-link-padding);\n }\n}\n","import { Component, Element, Prop, h, Event, EventEmitter } from '@stencil/core';\n\n@Component({\n tag: 'spw-link',\n styleUrl: 'spw-link.scss',\n shadow: true,\n})\nexport class SpwLink {\n @Element() el: HTMLSpwLinkElement;\n\n /** Spécifie le lien href */\n @Prop() href: string;\n /** Attribut target (détermine où ouvrir le lien) */\n @Prop() target?: string = '_self';\n /** Remplit l'attribut rel */\n @Prop() rel?: string;\n /** Si rempli, permet d'utiliser une référence d'icône font-awesome */\n @Prop() icon?: string;\n /** Position de l'icône à l'intérieur du lien (gauche ou droite) */\n @Prop() iconPosition?: 'left' | 'right' = 'right';\n /** Si désactivé, le lien n'est pas cliquable */\n @Prop() disabled?: boolean = false;\n /** Remplit l'attribut aria-label, utilisé à des fins d'accessibilité */\n @Prop() accAriaLabel?: string;\n /** Permet de choisir la surface d'arrière-plan du lien */\n @Prop() surface?: 'light' | 'dark' = 'light';\n\n /** Événement déclenché lors du clic sur le lien */\n @Event() spwClick: EventEmitter<MouseEvent>;\n\n private onClick = (ev: MouseEvent) => {\n if (this.disabled) {\n ev.preventDefault();\n return;\n }\n this.spwClick.emit(ev);\n };\n\n private get elementClass(): { [className: string]: boolean } {\n return {\n 'spw-link': true,\n 'spw-link--has-icon-right': this.icon && this.iconPosition === 'right',\n 'spw-link--has-icon-left': this.icon && this.iconPosition === 'left',\n [`spw-link--surface-${this.surface}`]: true,\n 'spw-link--has-icon': !!this.icon,\n };\n }\n\n render() {\n const { href, rel, target, icon, iconPosition, accAriaLabel, disabled } = this;\n const ariaAttributes = {\n 'aria-label': accAriaLabel,\n 'aria-disabled': disabled ? 'true' : null,\n };\n\n const iconClass = `spw-icon--${iconPosition}`;\n const iconElement = icon ? <spw-icon class={iconClass} icon={icon}></spw-icon> : null;\n\n return (\n <a href={disabled ? undefined : href} rel={rel} target={target} class={this.elementClass} onClick={this.onClick} {...ariaAttributes}>\n {iconPosition === 'left' && iconElement}\n <div class=\"spw-link__inner\">\n <slot></slot>\n </div>\n {iconPosition === 'right' && iconElement}\n </a>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.spw-separator {\n display: block;\n border-width: 1px;\n\n &--horizontal {\n border-bottom-style: solid;\n width: auto;\n height: 0;\n }\n\n &--vertical {\n border-right-style: solid;\n width: 0;\n height: auto;\n }\n\n &--dark {\n border-color: var(--spw-colors-support-grey-grey-300);\n }\n\n &--light {\n border-color: var(--spw-ds-white);\n }\n\n &--thickness-1 {\n border-width: 1px;\n }\n\n &--thickness-2 {\n border-width: 2px;\n }\n}\n","import { Component, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'spw-separator',\n styleUrl: 'spw-separator.scss',\n shadow: true,\n})\nexport class SpwSeparator {\n /** Permet de choisir la surface du séparateur (clair ou sombre) */\n @Prop() surface: 'dark' | 'light' = 'dark';\n\n /** Permet de définir la direction du séparateur */\n @Prop() direction: 'vertical' | 'horizontal' = 'horizontal';\n\n /** Définit l'épaisseur du séparateur */\n @Prop() thickness: 1 | 2 = 1;\n\n /** Largeur du séparateur (par défaut 100% si non spécifié) */\n @Prop() width: string = '100%';\n\n /** Hauteur du séparateur (par défaut 100% si non spécifié) */\n @Prop() height: string = '100%';\n\n private get elementClass(): { [className: string]: boolean } {\n return {\n 'spw-separator': true,\n [`spw-separator--${this.surface}`]: true,\n [`spw-separator--${this.direction}`]: true,\n [`spw-separator--thickness-${this.thickness}`]: true,\n };\n }\n\n private get style(): { [key: string]: string } {\n return {\n width: this.direction === 'horizontal' ? `${this.width}px` : `${this.thickness}px`,\n height: this.direction === 'vertical' ? `${this.height}px` : `${this.thickness}px`,\n };\n }\n\n render() {\n return <div class={this.elementClass} style={this.style}></div>;\n }\n}\n","@import '_base.css';\n\n:root {\n --spw-ds-primary: var(--spw-color-themes-red-red-500);\n --spw-ds-variant: var(--spw-color-themes-red-red-700);\n --spw-ds-active: var(--spw-color-themes-red-red-800);\n --spw-ds-cta-outlined-bg-hover: var(--spw-color-themes-red-red-50);\n --spw-ds-cta-outlined-stroke-hover: var(--spw-color-themes-red-red-700);\n --spw-ds-cta-outlined-bg-active: var(--spw-color-themes-red-red-100);\n --spw-ds-cta-outlined-stroke-active: var(--spw-color-themes-red-red-800);\n}\n","@import '_base.css';\n\n:root {\n --spw-ds-primary: var(--spw-color-themes-blue-blue-500);\n --spw-ds-variant: var(--spw-color-themes-blue-blue-700);\n --spw-ds-active: var(--spw-color-themes-blue-blue-800);\n --spw-ds-cta-outlined-bg-hover: var(--spw-color-themes-blue-blue-50);\n --spw-ds-cta-outlined-stroke-hover: var(--spw-color-themes-blue-blue-700);\n --spw-ds-cta-outlined-bg-active: var(--spw-color-themes-blue-blue-100);\n --spw-ds-cta-outlined-stroke-active: var(--spw-color-themes-blue-blue-800);\n}\n","@import '_base.css';\n\n:root {\n --spw-ds-primary: var(--spw-color-themes-light-blue-light-blue-600);\n --spw-ds-variant: var(--spw-color-themes-light-blue-light-blue-800);\n --spw-ds-active: var(--spw-color-themes-light-blue-light-blue-900);\n --spw-ds-cta-outlined-bg-hover: var(--spw-color-themes-light-blue-light-blue-50);\n --spw-ds-cta-outlined-stroke-hover: var(--spw-color-themes-light-blue-light-blue-700);\n --spw-ds-cta-outlined-bg-active: var(--spw-color-themes-light-blue-light-blue-100);\n --spw-ds-cta-outlined-stroke-active: var(--spw-color-themes-light-blue-light-blue-800);\n}\n","@import '_base.css';\n\n:root {\n --spw-ds-primary: var(--spw-color-themes-green-green-700);\n --spw-ds-variant: var(--spw-color-themes-green-green-800);\n --spw-ds-active: var(--spw-color-themes-green-green-900);\n --spw-ds-cta-outlined-bg-hover: var(--spw-color-themes-green-green-50);\n --spw-ds-cta-outlined-stroke-hover: var(--spw-color-themes-green-green-700);\n --spw-ds-cta-outlined-bg-active: var(--spw-color-themes-green-green-100);\n --spw-ds-cta-outlined-stroke-active: var(--spw-color-themes-green-green-800);\n}\n","@import '_base.css';\n\n:root {\n --spw-ds-primary: var(--spw-color-themes-light-green-light-green-700);\n --spw-ds-variant: var(--spw-color-themes-light-green-light-green-800);\n --spw-ds-active: var(--spw-color-themes-light-green-light-green-900);\n --spw-ds-cta-outlined-bg-hover: var(--spw-color-themes-light-green-light-green-50);\n --spw-ds-cta-outlined-stroke-hover: var(--spw-color-themes-light-green-light-green-700);\n --spw-ds-cta-outlined-bg-active: var(--spw-color-themes-light-green-light-green-100);\n --spw-ds-cta-outlined-stroke-active: var(--spw-color-themes-light-green-light-green-800);\n}\n","@import '_base.css';\n\n:root {\n --spw-ds-primary: var(--spw-color-themes-teal-teal-700);\n --spw-ds-variant: var(--spw-color-themes-teal-teal-800);\n --spw-ds-active: var(--spw-color-themes-teal-teal-900);\n --spw-ds-cta-outlined-bg-hover: var(--spw-color-themes-teal-teal-50);\n --spw-ds-cta-outlined-stroke-hover: var(--spw-color-themes-teal-teal-700);\n --spw-ds-cta-outlined-bg-active: var(--spw-color-themes-teal-teal-100);\n --spw-ds-cta-outlined-stroke-active: var(--spw-color-themes-teal-teal-800);\n}\n","@import '_base.css';\n\n:root {\n --spw-ds-primary: var(--spw-color-themes-orange-orange-700);\n --spw-ds-variant: var(--spw-color-themes-orange-orange-800);\n --spw-ds-active: var(--spw-color-themes-orange-orange-900);\n --spw-ds-cta-outlined-bg-hover: var(--spw-color-themes-orange-orange-50);\n --spw-ds-cta-outlined-stroke-hover: var(--spw-color-themes-orange-orange-700);\n --spw-ds-cta-outlined-bg-active: var(--spw-color-themes-orange-orange-100);\n --spw-ds-cta-outlined-stroke-active: var(--spw-color-themes-orange-orange-800);\n}\n","@import '_base.css';\n\n:root {\n --spw-ds-primary: var(--spw-color-themes-indigo-indigo-700);\n --spw-ds-variant: var(--spw-color-themes-indigo-indigo-800);\n --spw-ds-active: var(--spw-color-themes-indigo-indigo-900);\n --spw-ds-cta-outlined-bg-hover: var(--spw-color-themes-indigo-indigo-50);\n --spw-ds-cta-outlined-stroke-hover: var(--spw-color-themes-indigo-indigo-700);\n --spw-ds-cta-outlined-bg-active: var(--spw-color-themes-indigo-indigo-100);\n --spw-ds-cta-outlined-stroke-active: var(--spw-color-themes-indigo-indigo-800);\n}\n","@import '_base.css';\n\n:root {\n --spw-ds-primary: var(--spw-color-themes-purple-purple-500);\n --spw-ds-variant: var(--spw-color-themes-purple-purple-800);\n --spw-ds-active: var(--spw-color-themes-purple-purple-900);\n --spw-ds-cta-outlined-bg-hover: var(--spw-color-themes-purple-purple-50);\n --spw-ds-cta-outlined-stroke-hover: var(--spw-color-themes-purple-purple-700);\n --spw-ds-cta-outlined-bg-active: var(--spw-color-themes-purple-purple-100);\n --spw-ds-cta-outlined-stroke-active: var(--spw-color-themes-purple-purple-800);\n}\n","@import '_base.css';\n\n:root {\n --spw-ds-primary: var(--spw-color-themes-grey-grey-500);\n --spw-ds-variant: var(--spw-color-themes-grey-grey-800);\n --spw-ds-active: var(--spw-color-themes-grey-grey-900);\n --spw-ds-cta-outlined-bg-hover: var(--spw-color-themes-grey-grey-50);\n --spw-ds-cta-outlined-stroke-hover: var(--spw-color-themes-grey-grey-700);\n --spw-ds-cta-outlined-bg-active: var(--spw-color-themes-grey-grey-100);\n --spw-ds-cta-outlined-stroke-active: var(--spw-color-themes-grey-grey-800);\n}\n","import rougeTheme from './rouge.css';\nimport bleuTheme from './bleu.css';\nimport bleuClairTheme from './bleu-clair.css';\nimport vertTheme from './vert.css';\nimport vertLegerTheme from './vert-leger.css';\nimport turquoiseTheme from './turquoise.css';\nimport orangeTheme from './orange.css';\nimport indigoTheme from './indigo.css';\nimport mauveTheme from './mauve.css';\nimport grisTheme from './gris.css';\n\nexport const themes = {\n rouge: rougeTheme,\n bleu: bleuTheme,\n bleuClair: bleuClairTheme,\n vert: vertTheme,\n vertLeger: vertLegerTheme,\n orange: orangeTheme,\n turquoise: turquoiseTheme,\n indigo: indigoTheme,\n mauve: mauveTheme,\n gris: grisTheme,\n};\n\nexport type SpwTheme = keyof typeof themes;\n","import { Component, Prop, h, Element } from '@stencil/core';\nimport { themes, SpwTheme } from '@themes/themes';\n\n@Component({\n tag: 'spw-theme-provider',\n shadow: false,\n})\nexport class SpwThemeProvider {\n /** Définit le thème employé, conditionne les tokens associés au thème */\n @Prop() theme: SpwTheme = 'rouge';\n\n @Element() el: HTMLSpwThemeProviderElement;\n\n componentWillLoad() {\n this.applyTheme(this.theme);\n }\n\n componentWillUpdate() {\n this.applyTheme(this.theme);\n }\n\n private applyTheme(theme: SpwTheme) {\n const styleId = 'theme-styles';\n let styleElement = document.getElementById(styleId) as HTMLStyleElement;\n\n if (!styleElement) {\n styleElement = document.createElement('style');\n styleElement.id = styleId;\n document.head.appendChild(styleElement);\n }\n\n const css = themes[theme];\n styleElement.innerHTML = css;\n\n document.documentElement.setAttribute('data-theme', theme);\n }\n\n render() {\n return (\n <main class={`spw-theme-${this.theme}`}>\n <slot />\n </main>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as e,c as i,h as s,g as t}from"./p-CvfVJV8a.js";import{a as o}from"./p-BBi01mKM.js";const r="/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{-webkit-text-size-adjust:100%;line-height:1.3}h1,h2,h3,h4,h5,h6,li,p,ul{margin:0;padding:0}ul{list-style:none}:host{-webkit-text-size-adjust:100%;box-sizing:border-box;display:block;font-size:100%;line-height:1.3}:host *,:host :after,:host :before{box-sizing:inherit;font-family:Nunito Sans}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}:root{--spw-ds-container-xl:1200px;--spw-ds-container-lg:1024px;--spw-ds-container-md:768px;--spw-ds-container-sm:640px}.spw-ds-container{margin-left:auto;margin-right:auto;padding-left:16px;padding-right:16px;width:100%}@media (min-width:460px){.spw-ds-container{max-width:var(--spw-ds-container-sm)}}@media (min-width:768px){.spw-ds-container{max-width:var(--spw-ds-container-md)}}@media (min-width:1024px){.spw-ds-container{max-width:var(--spw-ds-container-lg)}}@media (min-width:1350px){.spw-ds-container{max-width:var(--spw-ds-container-xl)}}.spw-file-upload{display:block;position:relative}.spw-file-upload__wrapper--error{background-color:#ffe6e6;border-color:#ff4d4d}.spw-file-upload__wrapper--dragging{background-color:#e0f7fa;border-color:#00acc1}.spw-file-upload spw-button{display:inline-block;margin-bottom:8px}.spw-file-upload__errors{color:var(--spw-colors-dark-themes-red-red-500);font-size:14px;font-weight:600}.spw-file-upload__errors li{margin-top:16px}.spw-file-upload__errors--warning{color:var(--spw-color-themes-grey-grey-800);font-weight:400}.spw-file-upload__hints{color:var(--spw-color-themes-grey-grey-600);font-size:14px;margin-top:16px}.spw-file-upload__dropzone{background:var(--spw-colors-dark-themes-blue-grey-blue-grey-50);border:1px dashed #333;border-radius:8px;color:#555;cursor:pointer;font-weight:700;padding:20px;text-align:center}.spw-file-upload__dropzone:not(.spw-file-upload--disabled):hover{outline:4px solid var(--spw-color-themes-grey-grey-300)}.spw-file-upload__dropzone:not(.spw-file-upload__wrapper--disabled):active,.spw-file-upload__dropzone:not(.spw-file-upload__wrapper--disabled):focus-visible,.spw-file-upload__dropzone:not(.spw-file-upload__wrapper--disabled):focus-within{outline:2px solid var(--spw-ds-focus)}.spw-file-upload__dropzone-link{color:var(--spw-ds-primary);text-decoration:underline}.spw-file-upload__dropzone-link:hover{text-decoration:none}.spw-file-upload__wrapper--disabled .spw-file-upload__dropzone-link{color:inherit;text-decoration:none}.spw-file-upload__wrapper--disabled .spw-file-upload__dropzone{background:var(--spw-color-themes-grey-grey-100);border-color:var(--spw-color-themes-grey-grey-300);color:var(--spw-color-themes-grey-grey-400);cursor:not-allowed;outline:none!important}.spw-file-upload--is-dragging .spw-file-upload__dropzone{background:var(--spw-colors-dark-themes-blue-grey-blue-grey-200)}.spw-file-upload__info-list{border-top:1px solid #eee;margin-top:16px}.spw-file-upload__info-list li{align-items:center;border-bottom:1px solid #eee;color:var(--spw-color-themes-grey-grey-900);display:flex;flex-wrap:wrap;font-size:14px;gap:8px;justify-content:space-between;padding:16px 8px}@media (min-width:768px){.spw-file-upload__info-list li{flex-wrap:nowrap;gap:16px}}.spw-file-upload__info-list-actions{display:flex;gap:8px}@media (min-width:768px){.spw-file-upload__info-list-actions{gap:16px}}.spw-file-upload__info-list-delete{color:inherit}.spw-file-upload__info-list-delete:hover{text-decoration:none}.spw-tw-mr-2{margin-right:.5rem}";const a=class{constructor(s){e(this,s);this.spwFileChange=i(this,"spwFileChange",7);if(s.$hostElement$["s-ei"]){this.internals=s.$hostElement$["s-ei"]}else{this.internals=s.$hostElement$.attachInternals();s.$hostElement$["s-ei"]=this.internals}this.disabled=false;this.error=false;this.enableDropZone=false;this.multiple=false;this.accept="";this.maxFileSize=100;this.maxFiles=Infinity;this.selectedFiles=[];this.fileTypeErrors=[];this.fileLimitErrors=[];this.isDragging=false;this.isMaxFilesReachedExact=false}componentWillLoad(){this.internalValue=this.value;this.maxFileSize=this.maxFileSize*1024*1024}componentWillUpdate(){if(this.value!==this.internalValue){this.internalValue=this.value}}get isMaxFilesReached(){return this.selectedFiles.length>=this.maxFiles}handleFileChange(e){const i=e.target;const s=i.files?Array.from(i.files):[];this.processFiles(s)}processFiles(e){this.fileTypeErrors=[];this.fileLimitErrors=[];this.isMaxFilesReachedExact=false;if(!this.multiple){this.selectedFiles=[];e=e.slice(0,1)}const i=e.filter((e=>{const i=this.isFileAccepted(e);const s=this.isFileSizeValid(e);if(!i&&!s){this.fileTypeErrors.push(`${e.name} n’a pas été pris en compte car le format n’est pas autorisé et la limite de poids est dépassée.`);return false}else if(!i){this.fileTypeErrors.push(`${e.name} n'a pas été pris en compte car le format n'est pas autorisé.`);return false}else if(!s){this.fileTypeErrors.push(`${e.name} n'a pas été pris en compte car il dépasse la taille maximale autorisée.`);return false}return true}));if(this.selectedFiles.length+i.length>=this.maxFiles){const e=this.maxFiles-this.selectedFiles.length;if(this.selectedFiles.length+i.length===this.maxFiles){this.isMaxFilesReachedExact=true;this.fileLimitErrors.push("Vous avez atteint la limite autorisée de fichiers.")}else{i.splice(e);const s=this.maxFiles>1?"fichiers":"fichier";this.fileLimitErrors.push(`Vous ne pouvez pas télécharger plus de ${this.maxFiles} ${s}.`)}}this.selectedFiles=[...this.selectedFiles,...i];this.spwFileChange.emit({files:this.selectedFiles});this.updateFormValue()}isFileAccepted(e){if(!this.accept)return true;const i=this.accept.split(",").map((e=>e.trim()));return i.includes(e.type)||i.some((i=>e.name.endsWith(i)))}isFileSizeValid(e){return e.size<=this.maxFileSize}updateFormValue(){if(this.selectedFiles.length>0){const e=new FormData;this.selectedFiles.forEach(((i,s)=>{e.append(`${this.name}[${s}]`,i)}));this.internalValue=e.toString();this.internals.setFormValue(e)}else{this.internalValue="";this.internals.setFormValue(null)}}async resetInput(){this.inputElement.value="";this.selectedFiles=[];this.fileLimitErrors=[];this.fileTypeErrors=[];this.updateFormValue()}formResetCallback(){this.resetInput()}handleDragOver(e){e.preventDefault();if(!this.disabled&&this.enableDropZone&&!this.isMaxFilesReached){this.isDragging=true}}handleDragLeave(){if(!this.disabled&&this.enableDropZone){this.isDragging=false}}handleDrop(e){var i;e.preventDefault();if(!this.disabled&&this.enableDropZone&&!this.isMaxFilesReached){this.isDragging=false;const s=((i=e.dataTransfer)===null||i===void 0?void 0:i.files)?Array.from(e.dataTransfer.files):[];this.processFiles(s)}}removeFile(e){this.selectedFiles=this.selectedFiles.filter(((i,s)=>s!==e));this.fileLimitErrors=[];this.updateFormValue();this.spwFileChange.emit({files:this.selectedFiles})}handleKeydown(e){if((e.key===" "||e.key==="Enter")&&!this.isMaxFilesReached){e.preventDefault();!this.disabled&&this.inputElement.click()}}get elementClass(){return{"spw-file-upload__wrapper":true,"spw-file-upload__wrapper--disabled":this.disabled||this.isMaxFilesReached,"spw-file-upload__wrapper--error":this.error,"spw-file-upload--has-dropzone":this.enableDropZone,"spw-file-upload--is-dragging":this.isDragging}}get hintsMessages(){const e=this.maxFileSize/(1024*1024);const i=this.accept?this.accept:"tous les formats";const s=[];let t=`Taille maximale par fichier : ${e} Mo`;if(this.multiple&&this.maxFiles!==Infinity){const e=this.maxFiles>1?"fichiers":"fichier";t+=` - ${this.maxFiles} ${e} maximum.`}else{t+="."}s.push(t);s.push(`Formats autorisés : ${i}.`);return s}render(){const e=this.multiple?"Choisir vos fichiers...":"Choisir votre fichier...";const i=this.multiple?"Déposez vos fichiers ici":"Déposez votre fichier ici";return s("div",{key:"d1729f2e8e132eaae9466fd3de9d3cce1f1ab495",class:this.elementClass,onDragOver:this.handleDragOver.bind(this),onDragLeave:this.handleDragLeave.bind(this),onDrop:this.handleDrop.bind(this)},s("input",{key:"006a507254e955356d0665cc379795680ec97cc0",type:"file",ref:e=>this.inputElement=e,onChange:this.handleFileChange.bind(this),name:this.name,multiple:this.multiple,accept:this.accept,style:{display:"none"},disabled:this.isMaxFilesReached}),this.enableDropZone?s("div",{tabindex:this.disabled||this.isMaxFilesReached?-1:0,onKeyDown:this.handleKeydown.bind(this),onClick:()=>!this.disabled&&!this.isMaxFilesReached&&this.inputElement.click(),class:"spw-file-upload__dropzone"},i," ou ",s("span",{class:"spw-file-upload__dropzone-link"},"choisissez sur votre ordinateur...")):s("spw-button",{variant:"secondary",onClick:()=>!this.disabled&&!this.isMaxFilesReached&&this.inputElement.click(),disabled:this.disabled||this.isMaxFilesReached},e),s("div",{key:"ec66251b01f2e4371256ec1f438172f24bb99664",class:"spw-file-upload__hints"},this.hintsMessages.length>0&&s("ul",{key:"7f38d26e4951f5617224cc543305d96b6b0a1a48"},this.hintsMessages.map(((e,i)=>s("li",{key:i},e))))),s("div",{key:"a7b0ababb16f32dce72bcd0e476fcd7fe7bff743",class:"spw-file-upload__info"},this.selectedFiles.length>0?s("ul",{class:"spw-file-upload__info-list"},this.selectedFiles.map(((e,i)=>s("li",{key:i},s("span",{class:"spw-file-upload__info-list-name"},e.name),s("div",{class:"spw-file-upload__info-list-actions"},s("span",{class:"spw-tw-mr-2"},o(e.size)),s("a",{class:"spw-file-upload__info-list-delete",href:"#",onClick:e=>{e.preventDefault();this.removeFile(i)}},"Supprimer")))))):"",this.fileLimitErrors.length>0&&s("ul",{key:"a00de4a895820fc4bf993fdf9bad95a84238398d",class:`spw-file-upload__errors ${this.isMaxFilesReachedExact?"spw-file-upload__errors--warning":""}`},this.fileLimitErrors.map(((e,i)=>s("li",{key:i},s("spw-icon",{class:"spw-tw-mr-2",icon:this.isMaxFilesReachedExact?"fa-circle-exclamation":"fa-warning"}),e)))),this.fileTypeErrors.length>0&&s("ul",{key:"6fe0f58fa4269cb953f3f2d74668a2d640fb408c",class:"spw-file-upload__errors"},this.fileTypeErrors.map(((e,i)=>s("li",{key:i},s("spw-icon",{class:"spw-tw-mr-2",icon:"fa-warning"}),e))))))}static get formAssociated(){return true}get el(){return t(this)}};a.style=r;export{a as spw_file_upload};
|
|
2
|
+
//# sourceMappingURL=p-f8ad31d4.entry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["spwFileUploadCss","SpwFileUpload","constructor","hostRef","this","disabled","error","enableDropZone","multiple","accept","maxFileSize","maxFiles","Infinity","selectedFiles","fileTypeErrors","fileLimitErrors","isDragging","isMaxFilesReachedExact","componentWillLoad","internalValue","value","componentWillUpdate","isMaxFilesReached","length","handleFileChange","event","input","target","files","Array","from","processFiles","slice","validFiles","filter","file","isFileAccepted","isFileSizeValid","push","name","allowedFiles","splice","maxFilesText","spwFileChange","emit","updateFormValue","acceptedTypes","split","map","type","trim","includes","some","endsWith","size","formData","FormData","forEach","index","append","toString","internals","setFormValue","resetInput","inputElement","formResetCallback","handleDragOver","preventDefault","handleDragLeave","handleDrop","_a","dataTransfer","removeFile","_","i","handleKeydown","key","click","elementClass","hintsMessages","maxSizeInMB","acceptedFormats","messages","message","render","inputTextNoDrop","inputTextDrop","h","class","onDragOver","bind","onDragLeave","onDrop","ref","el","onChange","style","display","tabindex","onKeyDown","onClick","variant","formatFileSize","href","e","icon"],"sources":["src/components/spw-file-upload/spw-file-upload.scss?tag=spw-file-upload&encapsulation=shadow","src/components/spw-file-upload/spw-file-upload.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.spw-file-upload {\n display: block;\n position: relative;\n\n &__wrapper {\n &--error {\n border-color: #ff4d4d;\n background-color: #ffe6e6;\n }\n\n &--dragging {\n background-color: #e0f7fa;\n border-color: #00acc1;\n }\n }\n\n spw-button {\n display: inline-block;\n margin-bottom: 8px;\n }\n\n &__errors {\n font-size: 14px;\n color: var(--spw-colors-dark-themes-red-red-500);\n font-weight: 600;\n li {\n margin-top: 16px;\n }\n &--warning {\n color: var(--spw-color-themes-grey-grey-800);\n font-weight: 400;\n }\n }\n\n &__hints {\n font-size: 14px;\n color: var(--spw-color-themes-grey-grey-600);\n margin-top: 16px;\n }\n}\n\n.spw-file-upload__dropzone {\n cursor: pointer;\n color: #555;\n background: var(--spw-colors-dark-themes-blue-grey-blue-grey-50);\n padding: 20px;\n border-radius: 8px;\n border: 1px dashed #333;\n font-weight: bold;\n text-align: center;\n\n &:not(.spw-file-upload--disabled):hover {\n outline: 4px solid var(--spw-color-themes-grey-grey-300);\n }\n\n &:not(.spw-file-upload__wrapper--disabled):focus-visible,\n &:not(.spw-file-upload__wrapper--disabled):active,\n &:not(.spw-file-upload__wrapper--disabled):focus-within {\n outline: 2px solid var(--spw-ds-focus);\n }\n\n &-link {\n color: var(--spw-ds-primary);\n text-decoration: underline;\n &:hover {\n text-decoration: none;\n }\n .spw-file-upload__wrapper--disabled & {\n color: inherit;\n text-decoration: none;\n }\n }\n\n .spw-file-upload__wrapper--disabled & {\n cursor: not-allowed;\n background: var(--spw-color-themes-grey-grey-100);\n color: var(--spw-color-themes-grey-grey-400);\n border-color: var(--spw-color-themes-grey-grey-300);\n outline: none !important;\n }\n\n .spw-file-upload--is-dragging & {\n background: var(--spw-colors-dark-themes-blue-grey-blue-grey-200);\n }\n}\n\n.spw-file-upload__info {\n &-list {\n margin-top: 16px;\n border-top: 1px solid #eee;\n\n li {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n justify-content: space-between;\n align-items: center;\n padding: 16px 8px;\n border-bottom: 1px solid #eee;\n color: var(--spw-color-themes-grey-grey-900);\n font-size: 14px;\n\n @include breakpoint(md) {\n flex-wrap: nowrap;\n gap: 16px;\n }\n }\n\n &-actions {\n display: flex;\n gap: 8px;\n @include breakpoint(md) {\n gap: 16px;\n }\n }\n\n &-delete {\n color: inherit;\n &:hover {\n text-decoration: none;\n }\n }\n }\n}\n","import { Component, h, Prop, Element, State, Event, EventEmitter, Method, AttachInternals } from '@stencil/core';\nimport { formatFileSize } from '@utils/utils';\n\n@Component({\n tag: 'spw-file-upload',\n styleUrl: 'spw-file-upload.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class SpwFileUpload {\n private inputElement: HTMLInputElement;\n\n @Element() el: HTMLSpwFileUploadElement;\n\n /** Indique si le champ est désactivé, rendant le téléversement de fichiers non disponible */\n @Prop() disabled: boolean = false;\n /** Indique s'il y a une erreur visuelle associée au composant de téléversement de fichiers */\n @Prop() error: boolean = false;\n /** Nom de l'élément utilisé dans les formulaires pour associer la valeur des fichiers */\n @Prop() name: string;\n /** Valeur actuelle sélectionnée, utilisée pour les formulaires */\n @Prop() value: string;\n /** Active ou désactive la zone de dépôt pour le glisser-déposer de fichiers */\n @Prop() enableDropZone: boolean = false;\n /** Permet de téléverser plusieurs fichiers si vrai */\n @Prop() multiple: boolean = false;\n /** Types de fichiers acceptés, spécifiés sous forme de chaîne de types MIME */\n @Prop() accept: string = '';\n /** Taille maximale autorisée pour chaque fichier, en Mo */\n @Prop() maxFileSize: number = 100;\n /** Nombre maximal de fichiers pouvant être téléversés */\n @Prop() maxFiles: number = Infinity;\n\n @State() internalValue: string;\n @State() selectedFiles: File[] = [];\n @State() fileTypeErrors: string[] = [];\n @State() fileLimitErrors: string[] = [];\n @State() isDragging: boolean = false;\n @State() isMaxFilesReachedExact: boolean = false;\n\n @AttachInternals() internals: ElementInternals;\n\n /** Événement émis lorsque la sélection de fichiers change */\n @Event({ bubbles: true, composed: true }) spwFileChange: EventEmitter<{ files: File[] }>;\n\n componentWillLoad() {\n this.internalValue = this.value;\n this.maxFileSize = this.maxFileSize * 1024 * 1024;\n }\n\n componentWillUpdate() {\n if (this.value !== this.internalValue) {\n this.internalValue = this.value;\n }\n }\n\n get isMaxFilesReached(): boolean {\n return this.selectedFiles.length >= this.maxFiles;\n }\n\n private handleFileChange(event: Event) {\n const input = event.target as HTMLInputElement;\n const files = input.files ? Array.from(input.files) : [];\n this.processFiles(files);\n }\n\n private processFiles(files: File[]) {\n this.fileTypeErrors = [];\n this.fileLimitErrors = [];\n this.isMaxFilesReachedExact = false;\n\n if (!this.multiple) {\n this.selectedFiles = [];\n files = files.slice(0, 1);\n }\n\n const validFiles = files.filter(file => {\n const isFileAccepted = this.isFileAccepted(file);\n const isFileSizeValid = this.isFileSizeValid(file);\n\n if (!isFileAccepted && !isFileSizeValid) {\n this.fileTypeErrors.push(`${file.name} n’a pas été pris en compte car le format n’est pas autorisé et la limite de poids est dépassée.`);\n return false;\n } else if (!isFileAccepted) {\n this.fileTypeErrors.push(`${file.name} n'a pas été pris en compte car le format n'est pas autorisé.`);\n return false;\n } else if (!isFileSizeValid) {\n this.fileTypeErrors.push(`${file.name} n'a pas été pris en compte car il dépasse la taille maximale autorisée.`);\n return false;\n }\n\n return true;\n });\n\n if (this.selectedFiles.length + validFiles.length >= this.maxFiles) {\n const allowedFiles = this.maxFiles - this.selectedFiles.length;\n\n if (this.selectedFiles.length + validFiles.length === this.maxFiles) {\n this.isMaxFilesReachedExact = true;\n this.fileLimitErrors.push('Vous avez atteint la limite autorisée de fichiers.');\n } else {\n validFiles.splice(allowedFiles);\n const maxFilesText = this.maxFiles > 1 ? 'fichiers' : 'fichier';\n this.fileLimitErrors.push(`Vous ne pouvez pas télécharger plus de ${this.maxFiles} ${maxFilesText}.`);\n }\n }\n\n this.selectedFiles = [...this.selectedFiles, ...validFiles];\n\n this.spwFileChange.emit({ files: this.selectedFiles });\n this.updateFormValue();\n }\n\n private isFileAccepted(file: File): boolean {\n if (!this.accept) return true;\n const acceptedTypes = this.accept.split(',').map(type => type.trim());\n return acceptedTypes.includes(file.type) || acceptedTypes.some(type => file.name.endsWith(type));\n }\n\n private isFileSizeValid(file: File): boolean {\n return file.size <= this.maxFileSize;\n }\n\n private updateFormValue() {\n if (this.selectedFiles.length > 0) {\n const formData = new FormData();\n this.selectedFiles.forEach((file, index) => {\n formData.append(`${this.name}[${index}]`, file);\n });\n this.internalValue = formData.toString();\n this.internals.setFormValue(formData);\n } else {\n this.internalValue = '';\n this.internals.setFormValue(null);\n }\n }\n\n /** Réinitialise le champ de téléchargement de fichiers */\n @Method()\n async resetInput() {\n this.inputElement.value = '';\n this.selectedFiles = [];\n this.fileLimitErrors = [];\n this.fileTypeErrors = [];\n this.updateFormValue();\n }\n\n formResetCallback() {\n this.resetInput();\n }\n\n private handleDragOver(event: DragEvent) {\n event.preventDefault();\n if (!this.disabled && this.enableDropZone && !this.isMaxFilesReached) {\n this.isDragging = true;\n }\n }\n\n private handleDragLeave() {\n if (!this.disabled && this.enableDropZone) {\n this.isDragging = false;\n }\n }\n\n private handleDrop(event: DragEvent) {\n event.preventDefault();\n if (!this.disabled && this.enableDropZone && !this.isMaxFilesReached) {\n this.isDragging = false;\n const files = event.dataTransfer?.files ? Array.from(event.dataTransfer.files) : [];\n this.processFiles(files);\n }\n }\n\n private removeFile(index: number) {\n this.selectedFiles = this.selectedFiles.filter((_, i) => i !== index);\n this.fileLimitErrors = [];\n this.updateFormValue();\n }\n\n private handleKeydown(event) {\n if ((event.key === ' ' || event.key === 'Enter') && !this.isMaxFilesReached) {\n event.preventDefault();\n !this.disabled && this.inputElement.click();\n }\n }\n\n private get elementClass(): { [className: string]: boolean } {\n return {\n 'spw-file-upload__wrapper': true,\n 'spw-file-upload__wrapper--disabled': this.disabled || this.isMaxFilesReached,\n 'spw-file-upload__wrapper--error': this.error,\n 'spw-file-upload--has-dropzone': this.enableDropZone,\n 'spw-file-upload--is-dragging': this.isDragging,\n };\n }\n\n private get hintsMessages(): string[] {\n const maxSizeInMB = this.maxFileSize / (1024 * 1024);\n const acceptedFormats = this.accept ? this.accept : 'tous les formats';\n const messages = [];\n let message = `Taille maximale par fichier : ${maxSizeInMB} Mo`;\n\n if (this.multiple && this.maxFiles !== Infinity) {\n const maxFilesText = this.maxFiles > 1 ? 'fichiers' : 'fichier';\n message += ` - ${this.maxFiles} ${maxFilesText} maximum.`;\n } else {\n message += '.';\n }\n\n messages.push(message);\n messages.push(`Formats autorisés : ${acceptedFormats}.`);\n\n return messages;\n }\n\n render() {\n const inputTextNoDrop = this.multiple ? 'Choisir vos fichiers...' : 'Choisir votre fichier...';\n const inputTextDrop = this.multiple ? 'Déposez vos fichiers ici' : 'Déposez votre fichier ici';\n\n return (\n <div class={this.elementClass} onDragOver={this.handleDragOver.bind(this)} onDragLeave={this.handleDragLeave.bind(this)} onDrop={this.handleDrop.bind(this)}>\n <input\n type=\"file\"\n ref={el => (this.inputElement = el)}\n onChange={this.handleFileChange.bind(this)}\n name={this.name}\n multiple={this.multiple}\n accept={this.accept}\n style={{ display: 'none' }}\n disabled={this.isMaxFilesReached}\n />\n {this.enableDropZone ? (\n <div\n tabindex={this.disabled || this.isMaxFilesReached ? -1 : 0}\n onKeyDown={this.handleKeydown.bind(this)}\n onClick={() => !this.disabled && !this.isMaxFilesReached && this.inputElement.click()}\n class=\"spw-file-upload__dropzone\"\n >\n {inputTextDrop} ou <span class=\"spw-file-upload__dropzone-link\">choisissez sur votre ordinateur...</span>\n </div>\n ) : (\n <spw-button variant=\"secondary\" onClick={() => !this.disabled && !this.isMaxFilesReached && this.inputElement.click()} disabled={this.disabled || this.isMaxFilesReached}>\n {inputTextNoDrop}\n </spw-button>\n )}\n <div class=\"spw-file-upload__hints\">\n {this.hintsMessages.length > 0 && (\n <ul>\n {this.hintsMessages.map((message, index) => (\n <li key={index}>{message}</li>\n ))}\n </ul>\n )}\n </div>\n <div class=\"spw-file-upload__info\">\n {this.selectedFiles.length > 0 ? (\n <ul class=\"spw-file-upload__info-list\">\n {this.selectedFiles.map((file, index) => (\n <li key={index}>\n <span class=\"spw-file-upload__info-list-name\">{file.name}</span>\n <div class=\"spw-file-upload__info-list-actions\">\n <span class=\"spw-tw-mr-2\">{formatFileSize(file.size)}</span>\n <a\n class=\"spw-file-upload__info-list-delete\"\n href=\"#\"\n onClick={e => {\n e.preventDefault();\n this.removeFile(index);\n }}\n >\n Supprimer\n </a>\n </div>\n </li>\n ))}\n </ul>\n ) : (\n ''\n )}\n {this.fileLimitErrors.length > 0 && (\n <ul class={`spw-file-upload__errors ${this.isMaxFilesReachedExact ? 'spw-file-upload__errors--warning' : ''}`}>\n {this.fileLimitErrors.map((message, index) => (\n <li key={index}>\n <spw-icon class=\"spw-tw-mr-2\" icon={this.isMaxFilesReachedExact ? 'fa-circle-exclamation' : 'fa-warning'}></spw-icon>\n {message}\n </li>\n ))}\n </ul>\n )}\n {this.fileTypeErrors.length > 0 && (\n <ul class=\"spw-file-upload__errors\">\n {this.fileTypeErrors.map((message, index) => (\n <li key={index}>\n <spw-icon class=\"spw-tw-mr-2\" icon=\"fa-warning\"></spw-icon>\n {message}\n </li>\n ))}\n </ul>\n )}\n </div>\n </div>\n );\n }\n}\n"],"mappings":"6FAAA,MAAMA,EAAmB,igK,MCSZC,EAAa,MAN1B,WAAAC,CAAAC,G,qNAYUC,KAAQC,SAAY,MAEpBD,KAAKE,MAAY,MAMjBF,KAAcG,eAAY,MAE1BH,KAAQI,SAAY,MAEpBJ,KAAMK,OAAW,GAEjBL,KAAWM,YAAW,IAEtBN,KAAQO,SAAWC,SAGlBR,KAAaS,cAAW,GACxBT,KAAcU,eAAa,GAC3BV,KAAeW,gBAAa,GAC5BX,KAAUY,WAAY,MACtBZ,KAAsBa,uBAAY,KAyQ5C,CAlQC,iBAAAC,GACEd,KAAKe,cAAgBf,KAAKgB,MAC1BhB,KAAKM,YAAcN,KAAKM,YAAc,KAAO,I,CAG/C,mBAAAW,GACE,GAAIjB,KAAKgB,QAAUhB,KAAKe,cAAe,CACrCf,KAAKe,cAAgBf,KAAKgB,K,EAI9B,qBAAIE,GACF,OAAOlB,KAAKS,cAAcU,QAAUnB,KAAKO,Q,CAGnC,gBAAAa,CAAiBC,GACvB,MAAMC,EAAQD,EAAME,OACpB,MAAMC,EAAQF,EAAME,MAAQC,MAAMC,KAAKJ,EAAME,OAAS,GACtDxB,KAAK2B,aAAaH,E,CAGZ,YAAAG,CAAaH,GACnBxB,KAAKU,eAAiB,GACtBV,KAAKW,gBAAkB,GACvBX,KAAKa,uBAAyB,MAE9B,IAAKb,KAAKI,SAAU,CAClBJ,KAAKS,cAAgB,GACrBe,EAAQA,EAAMI,MAAM,EAAG,E,CAGzB,MAAMC,EAAaL,EAAMM,QAAOC,IAC9B,MAAMC,EAAiBhC,KAAKgC,eAAeD,GAC3C,MAAME,EAAkBjC,KAAKiC,gBAAgBF,GAE7C,IAAKC,IAAmBC,EAAiB,CACvCjC,KAAKU,eAAewB,KAAK,GAAGH,EAAKI,wGACjC,OAAO,K,MACF,IAAKH,EAAgB,CAC1BhC,KAAKU,eAAewB,KAAK,GAAGH,EAAKI,qEACjC,OAAO,K,MACF,IAAKF,EAAiB,CAC3BjC,KAAKU,eAAewB,KAAK,GAAGH,EAAKI,gFACjC,OAAO,K,CAGT,OAAO,IAAI,IAGb,GAAInC,KAAKS,cAAcU,OAASU,EAAWV,QAAUnB,KAAKO,SAAU,CAClE,MAAM6B,EAAepC,KAAKO,SAAWP,KAAKS,cAAcU,OAExD,GAAInB,KAAKS,cAAcU,OAASU,EAAWV,SAAWnB,KAAKO,SAAU,CACnEP,KAAKa,uBAAyB,KAC9Bb,KAAKW,gBAAgBuB,KAAK,qD,KACrB,CACLL,EAAWQ,OAAOD,GAClB,MAAME,EAAetC,KAAKO,SAAW,EAAI,WAAa,UACtDP,KAAKW,gBAAgBuB,KAAK,0CAA0ClC,KAAKO,YAAY+B,K,EAIzFtC,KAAKS,cAAgB,IAAIT,KAAKS,iBAAkBoB,GAEhD7B,KAAKuC,cAAcC,KAAK,CAAEhB,MAAOxB,KAAKS,gBACtCT,KAAKyC,iB,CAGC,cAAAT,CAAeD,GACrB,IAAK/B,KAAKK,OAAQ,OAAO,KACzB,MAAMqC,EAAgB1C,KAAKK,OAAOsC,MAAM,KAAKC,KAAIC,GAAQA,EAAKC,SAC9D,OAAOJ,EAAcK,SAAShB,EAAKc,OAASH,EAAcM,MAAKH,GAAQd,EAAKI,KAAKc,SAASJ,I,CAGpF,eAAAZ,CAAgBF,GACtB,OAAOA,EAAKmB,MAAQlD,KAAKM,W,CAGnB,eAAAmC,GACN,GAAIzC,KAAKS,cAAcU,OAAS,EAAG,CACjC,MAAMgC,EAAW,IAAIC,SACrBpD,KAAKS,cAAc4C,SAAQ,CAACtB,EAAMuB,KAChCH,EAASI,OAAO,GAAGvD,KAAKmC,QAAQmB,KAAUvB,EAAK,IAEjD/B,KAAKe,cAAgBoC,EAASK,WAC9BxD,KAAKyD,UAAUC,aAAaP,E,KACvB,CACLnD,KAAKe,cAAgB,GACrBf,KAAKyD,UAAUC,aAAa,K,EAMhC,gBAAMC,GACJ3D,KAAK4D,aAAa5C,MAAQ,GAC1BhB,KAAKS,cAAgB,GACrBT,KAAKW,gBAAkB,GACvBX,KAAKU,eAAiB,GACtBV,KAAKyC,iB,CAGP,iBAAAoB,GACE7D,KAAK2D,Y,CAGC,cAAAG,CAAezC,GACrBA,EAAM0C,iBACN,IAAK/D,KAAKC,UAAYD,KAAKG,iBAAmBH,KAAKkB,kBAAmB,CACpElB,KAAKY,WAAa,I,EAId,eAAAoD,GACN,IAAKhE,KAAKC,UAAYD,KAAKG,eAAgB,CACzCH,KAAKY,WAAa,K,EAId,UAAAqD,CAAW5C,G,MACjBA,EAAM0C,iBACN,IAAK/D,KAAKC,UAAYD,KAAKG,iBAAmBH,KAAKkB,kBAAmB,CACpElB,KAAKY,WAAa,MAClB,MAAMY,IAAQ0C,EAAA7C,EAAM8C,gBAAc,MAAAD,SAAA,SAAAA,EAAA1C,OAAQC,MAAMC,KAAKL,EAAM8C,aAAa3C,OAAS,GACjFxB,KAAK2B,aAAaH,E,EAId,UAAA4C,CAAWd,GACjBtD,KAAKS,cAAgBT,KAAKS,cAAcqB,QAAO,CAACuC,EAAGC,IAAMA,IAAMhB,IAC/DtD,KAAKW,gBAAkB,GACvBX,KAAKyC,iB,CAGC,aAAA8B,CAAclD,GACpB,IAAKA,EAAMmD,MAAQ,KAAOnD,EAAMmD,MAAQ,WAAaxE,KAAKkB,kBAAmB,CAC3EG,EAAM0C,kBACL/D,KAAKC,UAAYD,KAAK4D,aAAaa,O,EAIxC,gBAAYC,GACV,MAAO,CACL,2BAA4B,KAC5B,qCAAsC1E,KAAKC,UAAYD,KAAKkB,kBAC5D,kCAAmClB,KAAKE,MACxC,gCAAiCF,KAAKG,eACtC,+BAAgCH,KAAKY,W,CAIzC,iBAAY+D,GACV,MAAMC,EAAc5E,KAAKM,aAAe,KAAO,MAC/C,MAAMuE,EAAkB7E,KAAKK,OAASL,KAAKK,OAAS,mBACpD,MAAMyE,EAAW,GACjB,IAAIC,EAAU,iCAAiCH,OAE/C,GAAI5E,KAAKI,UAAYJ,KAAKO,WAAaC,SAAU,CAC/C,MAAM8B,EAAetC,KAAKO,SAAW,EAAI,WAAa,UACtDwE,GAAW,MAAM/E,KAAKO,YAAY+B,Y,KAC7B,CACLyC,GAAW,G,CAGbD,EAAS5C,KAAK6C,GACdD,EAAS5C,KAAK,uBAAuB2C,MAErC,OAAOC,C,CAGT,MAAAE,GACE,MAAMC,EAAkBjF,KAAKI,SAAW,0BAA4B,2BACpE,MAAM8E,EAAgBlF,KAAKI,SAAW,2BAA6B,4BAEnE,OACE+E,EAAK,OAAAX,IAAA,2CAAAY,MAAOpF,KAAK0E,aAAcW,WAAYrF,KAAK8D,eAAewB,KAAKtF,MAAOuF,YAAavF,KAAKgE,gBAAgBsB,KAAKtF,MAAOwF,OAAQxF,KAAKiE,WAAWqB,KAAKtF,OACpJmF,EAAA,SAAAX,IAAA,2CACE3B,KAAK,OACL4C,IAAKC,GAAO1F,KAAK4D,aAAe8B,EAChCC,SAAU3F,KAAKoB,iBAAiBkE,KAAKtF,MACrCmC,KAAMnC,KAAKmC,KACX/B,SAAUJ,KAAKI,SACfC,OAAQL,KAAKK,OACbuF,MAAO,CAAEC,QAAS,QAClB5F,SAAUD,KAAKkB,oBAEhBlB,KAAKG,eACJgF,EACE,OAAAW,SAAU9F,KAAKC,UAAYD,KAAKkB,mBAAoB,EAAK,EACzD6E,UAAW/F,KAAKuE,cAAce,KAAKtF,MACnCgG,QAAS,KAAOhG,KAAKC,WAAaD,KAAKkB,mBAAqBlB,KAAK4D,aAAaa,QAC9EW,MAAM,6BAELF,EAAa,OAAKC,EAAM,QAAAC,MAAM,kCAAgC,uCAGjED,EAAA,cAAYc,QAAQ,YAAYD,QAAS,KAAOhG,KAAKC,WAAaD,KAAKkB,mBAAqBlB,KAAK4D,aAAaa,QAASxE,SAAUD,KAAKC,UAAYD,KAAKkB,mBACpJ+D,GAGLE,EAAA,OAAAX,IAAA,2CAAKY,MAAM,0BACRpF,KAAK2E,cAAcxD,OAAS,GAC3BgE,EAAA,MAAAX,IAAA,4CACGxE,KAAK2E,cAAc/B,KAAI,CAACmC,EAASzB,IAChC6B,EAAI,MAAAX,IAAKlB,GAAQyB,OAKzBI,EAAK,OAAAX,IAAA,2CAAAY,MAAM,yBACRpF,KAAKS,cAAcU,OAAS,EAC3BgE,EAAA,MAAIC,MAAM,8BACPpF,KAAKS,cAAcmC,KAAI,CAACb,EAAMuB,IAC7B6B,EAAI,MAAAX,IAAKlB,GACP6B,EAAA,QAAMC,MAAM,mCAAmCrD,EAAKI,MACpDgD,EAAK,OAAAC,MAAM,sCACTD,EAAM,QAAAC,MAAM,eAAec,EAAenE,EAAKmB,OAC/CiC,EAAA,KACEC,MAAM,oCACNe,KAAK,IACLH,QAASI,IACPA,EAAErC,iBACF/D,KAAKoE,WAAWd,EAAM,GAItB,kBAIP,GAINtD,KAAKW,gBAAgBQ,OAAS,GAC7BgE,EAAA,MAAAX,IAAA,2CAAIY,MAAO,2BAA2BpF,KAAKa,uBAAyB,mCAAqC,MACtGb,KAAKW,gBAAgBiC,KAAI,CAACmC,EAASzB,IAClC6B,EAAI,MAAAX,IAAKlB,GACP6B,EAAA,YAAUC,MAAM,cAAciB,KAAMrG,KAAKa,uBAAyB,wBAA0B,eAC3FkE,MAKR/E,KAAKU,eAAeS,OAAS,GAC5BgE,EAAI,MAAAX,IAAA,2CAAAY,MAAM,2BACPpF,KAAKU,eAAekC,KAAI,CAACmC,EAASzB,IACjC6B,EAAI,MAAAX,IAAKlB,GACP6B,EAAA,YAAUC,MAAM,cAAciB,KAAK,eAClCtB,O","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["spwFileUploadCss","SpwFileUpload","constructor","hostRef","this","disabled","error","enableDropZone","multiple","accept","maxFileSize","maxFiles","Infinity","selectedFiles","fileTypeErrors","fileLimitErrors","isDragging","isMaxFilesReachedExact","componentWillLoad","internalValue","value","componentWillUpdate","isMaxFilesReached","length","handleFileChange","event","input","target","files","Array","from","processFiles","slice","validFiles","filter","file","isFileAccepted","isFileSizeValid","push","name","allowedFiles","splice","maxFilesText","spwFileChange","emit","updateFormValue","acceptedTypes","split","map","type","trim","includes","some","endsWith","size","formData","FormData","forEach","index","append","toString","internals","setFormValue","resetInput","inputElement","formResetCallback","handleDragOver","preventDefault","handleDragLeave","handleDrop","_a","dataTransfer","removeFile","_","i","handleKeydown","key","click","elementClass","hintsMessages","maxSizeInMB","acceptedFormats","messages","message","render","inputTextNoDrop","inputTextDrop","h","class","onDragOver","bind","onDragLeave","onDrop","ref","el","onChange","style","display","tabindex","onKeyDown","onClick","variant","formatFileSize","href","e","icon"],"sources":["src/components/spw-file-upload/spw-file-upload.scss?tag=spw-file-upload&encapsulation=shadow","src/components/spw-file-upload/spw-file-upload.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.spw-file-upload {\n display: block;\n position: relative;\n\n &__wrapper {\n &--error {\n border-color: #ff4d4d;\n background-color: #ffe6e6;\n }\n\n &--dragging {\n background-color: #e0f7fa;\n border-color: #00acc1;\n }\n }\n\n spw-button {\n display: inline-block;\n margin-bottom: 8px;\n }\n\n &__errors {\n font-size: 14px;\n color: var(--spw-colors-dark-themes-red-red-500);\n font-weight: 600;\n li {\n margin-top: 16px;\n }\n &--warning {\n color: var(--spw-color-themes-grey-grey-800);\n font-weight: 400;\n }\n }\n\n &__hints {\n font-size: 14px;\n color: var(--spw-color-themes-grey-grey-600);\n margin-top: 16px;\n }\n}\n\n.spw-file-upload__dropzone {\n cursor: pointer;\n color: #555;\n background: var(--spw-colors-dark-themes-blue-grey-blue-grey-50);\n padding: 20px;\n border-radius: 8px;\n border: 1px dashed #333;\n font-weight: bold;\n text-align: center;\n\n &:not(.spw-file-upload--disabled):hover {\n outline: 4px solid var(--spw-color-themes-grey-grey-300);\n }\n\n &:not(.spw-file-upload__wrapper--disabled):focus-visible,\n &:not(.spw-file-upload__wrapper--disabled):active,\n &:not(.spw-file-upload__wrapper--disabled):focus-within {\n outline: 2px solid var(--spw-ds-focus);\n }\n\n &-link {\n color: var(--spw-ds-primary);\n text-decoration: underline;\n &:hover {\n text-decoration: none;\n }\n .spw-file-upload__wrapper--disabled & {\n color: inherit;\n text-decoration: none;\n }\n }\n\n .spw-file-upload__wrapper--disabled & {\n cursor: not-allowed;\n background: var(--spw-color-themes-grey-grey-100);\n color: var(--spw-color-themes-grey-grey-400);\n border-color: var(--spw-color-themes-grey-grey-300);\n outline: none !important;\n }\n\n .spw-file-upload--is-dragging & {\n background: var(--spw-colors-dark-themes-blue-grey-blue-grey-200);\n }\n}\n\n.spw-file-upload__info {\n &-list {\n margin-top: 16px;\n border-top: 1px solid #eee;\n\n li {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n justify-content: space-between;\n align-items: center;\n padding: 16px 8px;\n border-bottom: 1px solid #eee;\n color: var(--spw-color-themes-grey-grey-900);\n font-size: 14px;\n\n @include breakpoint(md) {\n flex-wrap: nowrap;\n gap: 16px;\n }\n }\n\n &-actions {\n display: flex;\n gap: 8px;\n @include breakpoint(md) {\n gap: 16px;\n }\n }\n\n &-delete {\n color: inherit;\n &:hover {\n text-decoration: none;\n }\n }\n }\n}\n","import { Component, h, Prop, Element, State, Event, EventEmitter, Method, AttachInternals } from '@stencil/core';\nimport { formatFileSize } from '@utils/utils';\n\n@Component({\n tag: 'spw-file-upload',\n styleUrl: 'spw-file-upload.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class SpwFileUpload {\n private inputElement: HTMLInputElement;\n\n @Element() el: HTMLSpwFileUploadElement;\n\n /** Indique si le champ est désactivé, rendant le téléversement de fichiers non disponible */\n @Prop() disabled: boolean = false;\n /** Indique s'il y a une erreur visuelle associée au composant de téléversement de fichiers */\n @Prop() error: boolean = false;\n /** Nom de l'élément utilisé dans les formulaires pour associer la valeur des fichiers */\n @Prop() name: string;\n /** Valeur actuelle sélectionnée, utilisée pour les formulaires */\n @Prop() value: string;\n /** Active ou désactive la zone de dépôt pour le glisser-déposer de fichiers */\n @Prop() enableDropZone: boolean = false;\n /** Permet de téléverser plusieurs fichiers si vrai */\n @Prop() multiple: boolean = false;\n /** Types de fichiers acceptés, spécifiés sous forme de chaîne de types MIME */\n @Prop() accept: string = '';\n /** Taille maximale autorisée pour chaque fichier, en Mo */\n @Prop() maxFileSize: number = 100;\n /** Nombre maximal de fichiers pouvant être téléversés */\n @Prop() maxFiles: number = Infinity;\n\n @State() internalValue: string;\n @State() selectedFiles: File[] = [];\n @State() fileTypeErrors: string[] = [];\n @State() fileLimitErrors: string[] = [];\n @State() isDragging: boolean = false;\n @State() isMaxFilesReachedExact: boolean = false;\n\n @AttachInternals() internals: ElementInternals;\n\n /** Événement émis lorsque la sélection de fichiers change */\n @Event({ bubbles: true, composed: true }) spwFileChange: EventEmitter<{ files: File[] }>;\n\n componentWillLoad() {\n this.internalValue = this.value;\n this.maxFileSize = this.maxFileSize * 1024 * 1024;\n }\n\n componentWillUpdate() {\n if (this.value !== this.internalValue) {\n this.internalValue = this.value;\n }\n }\n\n get isMaxFilesReached(): boolean {\n return this.selectedFiles.length >= this.maxFiles;\n }\n\n private handleFileChange(event: Event) {\n const input = event.target as HTMLInputElement;\n const files = input.files ? Array.from(input.files) : [];\n this.processFiles(files);\n }\n\n private processFiles(files: File[]) {\n this.fileTypeErrors = [];\n this.fileLimitErrors = [];\n this.isMaxFilesReachedExact = false;\n\n if (!this.multiple) {\n this.selectedFiles = [];\n files = files.slice(0, 1);\n }\n\n const validFiles = files.filter(file => {\n const isFileAccepted = this.isFileAccepted(file);\n const isFileSizeValid = this.isFileSizeValid(file);\n\n if (!isFileAccepted && !isFileSizeValid) {\n this.fileTypeErrors.push(`${file.name} n’a pas été pris en compte car le format n’est pas autorisé et la limite de poids est dépassée.`);\n return false;\n } else if (!isFileAccepted) {\n this.fileTypeErrors.push(`${file.name} n'a pas été pris en compte car le format n'est pas autorisé.`);\n return false;\n } else if (!isFileSizeValid) {\n this.fileTypeErrors.push(`${file.name} n'a pas été pris en compte car il dépasse la taille maximale autorisée.`);\n return false;\n }\n\n return true;\n });\n\n if (this.selectedFiles.length + validFiles.length >= this.maxFiles) {\n const allowedFiles = this.maxFiles - this.selectedFiles.length;\n\n if (this.selectedFiles.length + validFiles.length === this.maxFiles) {\n this.isMaxFilesReachedExact = true;\n this.fileLimitErrors.push('Vous avez atteint la limite autorisée de fichiers.');\n } else {\n validFiles.splice(allowedFiles);\n const maxFilesText = this.maxFiles > 1 ? 'fichiers' : 'fichier';\n this.fileLimitErrors.push(`Vous ne pouvez pas télécharger plus de ${this.maxFiles} ${maxFilesText}.`);\n }\n }\n\n this.selectedFiles = [...this.selectedFiles, ...validFiles];\n\n this.spwFileChange.emit({ files: this.selectedFiles });\n this.updateFormValue();\n }\n\n private isFileAccepted(file: File): boolean {\n if (!this.accept) return true;\n const acceptedTypes = this.accept.split(',').map(type => type.trim());\n return acceptedTypes.includes(file.type) || acceptedTypes.some(type => file.name.endsWith(type));\n }\n\n private isFileSizeValid(file: File): boolean {\n return file.size <= this.maxFileSize;\n }\n\n private updateFormValue() {\n if (this.selectedFiles.length > 0) {\n const formData = new FormData();\n this.selectedFiles.forEach((file, index) => {\n formData.append(`${this.name}[${index}]`, file);\n });\n this.internalValue = formData.toString();\n this.internals.setFormValue(formData);\n } else {\n this.internalValue = '';\n this.internals.setFormValue(null);\n }\n }\n\n /** Réinitialise le champ de téléchargement de fichiers */\n @Method()\n async resetInput() {\n this.inputElement.value = '';\n this.selectedFiles = [];\n this.fileLimitErrors = [];\n this.fileTypeErrors = [];\n this.updateFormValue();\n }\n\n formResetCallback() {\n this.resetInput();\n }\n\n private handleDragOver(event: DragEvent) {\n event.preventDefault();\n if (!this.disabled && this.enableDropZone && !this.isMaxFilesReached) {\n this.isDragging = true;\n }\n }\n\n private handleDragLeave() {\n if (!this.disabled && this.enableDropZone) {\n this.isDragging = false;\n }\n }\n\n private handleDrop(event: DragEvent) {\n event.preventDefault();\n if (!this.disabled && this.enableDropZone && !this.isMaxFilesReached) {\n this.isDragging = false;\n const files = event.dataTransfer?.files ? Array.from(event.dataTransfer.files) : [];\n this.processFiles(files);\n }\n }\n\n private removeFile(index: number) {\n this.selectedFiles = this.selectedFiles.filter((_, i) => i !== index);\n this.fileLimitErrors = [];\n this.updateFormValue();\n this.spwFileChange.emit({ files: this.selectedFiles });\n }\n\n private handleKeydown(event) {\n if ((event.key === ' ' || event.key === 'Enter') && !this.isMaxFilesReached) {\n event.preventDefault();\n !this.disabled && this.inputElement.click();\n }\n }\n\n private get elementClass(): { [className: string]: boolean } {\n return {\n 'spw-file-upload__wrapper': true,\n 'spw-file-upload__wrapper--disabled': this.disabled || this.isMaxFilesReached,\n 'spw-file-upload__wrapper--error': this.error,\n 'spw-file-upload--has-dropzone': this.enableDropZone,\n 'spw-file-upload--is-dragging': this.isDragging,\n };\n }\n\n private get hintsMessages(): string[] {\n const maxSizeInMB = this.maxFileSize / (1024 * 1024);\n const acceptedFormats = this.accept ? this.accept : 'tous les formats';\n const messages = [];\n let message = `Taille maximale par fichier : ${maxSizeInMB} Mo`;\n\n if (this.multiple && this.maxFiles !== Infinity) {\n const maxFilesText = this.maxFiles > 1 ? 'fichiers' : 'fichier';\n message += ` - ${this.maxFiles} ${maxFilesText} maximum.`;\n } else {\n message += '.';\n }\n\n messages.push(message);\n messages.push(`Formats autorisés : ${acceptedFormats}.`);\n\n return messages;\n }\n\n render() {\n const inputTextNoDrop = this.multiple ? 'Choisir vos fichiers...' : 'Choisir votre fichier...';\n const inputTextDrop = this.multiple ? 'Déposez vos fichiers ici' : 'Déposez votre fichier ici';\n\n return (\n <div class={this.elementClass} onDragOver={this.handleDragOver.bind(this)} onDragLeave={this.handleDragLeave.bind(this)} onDrop={this.handleDrop.bind(this)}>\n <input\n type=\"file\"\n ref={el => (this.inputElement = el)}\n onChange={this.handleFileChange.bind(this)}\n name={this.name}\n multiple={this.multiple}\n accept={this.accept}\n style={{ display: 'none' }}\n disabled={this.isMaxFilesReached}\n />\n {this.enableDropZone ? (\n <div\n tabindex={this.disabled || this.isMaxFilesReached ? -1 : 0}\n onKeyDown={this.handleKeydown.bind(this)}\n onClick={() => !this.disabled && !this.isMaxFilesReached && this.inputElement.click()}\n class=\"spw-file-upload__dropzone\"\n >\n {inputTextDrop} ou <span class=\"spw-file-upload__dropzone-link\">choisissez sur votre ordinateur...</span>\n </div>\n ) : (\n <spw-button variant=\"secondary\" onClick={() => !this.disabled && !this.isMaxFilesReached && this.inputElement.click()} disabled={this.disabled || this.isMaxFilesReached}>\n {inputTextNoDrop}\n </spw-button>\n )}\n <div class=\"spw-file-upload__hints\">\n {this.hintsMessages.length > 0 && (\n <ul>\n {this.hintsMessages.map((message, index) => (\n <li key={index}>{message}</li>\n ))}\n </ul>\n )}\n </div>\n <div class=\"spw-file-upload__info\">\n {this.selectedFiles.length > 0 ? (\n <ul class=\"spw-file-upload__info-list\">\n {this.selectedFiles.map((file, index) => (\n <li key={index}>\n <span class=\"spw-file-upload__info-list-name\">{file.name}</span>\n <div class=\"spw-file-upload__info-list-actions\">\n <span class=\"spw-tw-mr-2\">{formatFileSize(file.size)}</span>\n <a\n class=\"spw-file-upload__info-list-delete\"\n href=\"#\"\n onClick={e => {\n e.preventDefault();\n this.removeFile(index);\n }}\n >\n Supprimer\n </a>\n </div>\n </li>\n ))}\n </ul>\n ) : (\n ''\n )}\n {this.fileLimitErrors.length > 0 && (\n <ul class={`spw-file-upload__errors ${this.isMaxFilesReachedExact ? 'spw-file-upload__errors--warning' : ''}`}>\n {this.fileLimitErrors.map((message, index) => (\n <li key={index}>\n <spw-icon class=\"spw-tw-mr-2\" icon={this.isMaxFilesReachedExact ? 'fa-circle-exclamation' : 'fa-warning'}></spw-icon>\n {message}\n </li>\n ))}\n </ul>\n )}\n {this.fileTypeErrors.length > 0 && (\n <ul class=\"spw-file-upload__errors\">\n {this.fileTypeErrors.map((message, index) => (\n <li key={index}>\n <spw-icon class=\"spw-tw-mr-2\" icon=\"fa-warning\"></spw-icon>\n {message}\n </li>\n ))}\n </ul>\n )}\n </div>\n </div>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as t,h as e,g as o}from"./p-
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as t,h as e,g as o}from"./p-CvfVJV8a.js";import{f as n}from"./p-BBi01mKM.js";const i='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{-webkit-text-size-adjust:100%;line-height:1.3}h1,h2,h3,h4,h5,h6,li,p,ul{margin:0;padding:0}ul{list-style:none}:host{-webkit-text-size-adjust:100%;box-sizing:border-box;font-size:100%;line-height:1.3}:host *,:host :after,:host :before{box-sizing:inherit;font-family:Nunito Sans}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}:root{--spw-ds-container-xl:1200px;--spw-ds-container-lg:1024px;--spw-ds-container-md:768px;--spw-ds-container-sm:640px}.spw-ds-container{margin-left:auto;margin-right:auto;padding-left:16px;padding-right:16px;width:100%}@media (min-width:460px){.spw-ds-container{max-width:var(--spw-ds-container-sm)}}@media (min-width:768px){.spw-ds-container{max-width:var(--spw-ds-container-md)}}@media (min-width:1024px){.spw-ds-container{max-width:var(--spw-ds-container-lg)}}@media (min-width:1350px){.spw-ds-container{max-width:var(--spw-ds-container-xl)}}:host(.--video){min-width:100%;width:100%}.spw-card-content{display:flex;flex-direction:column;padding:12px 24px 24px;position:relative;z-index:5}:host(.--vertical) .spw-card-content{padding:24px}:host(.--vertical) .spw-card-content ::slotted(spw-card-subtags){margin-top:12px}:host(.--event) .spw-card-content{padding:24px}:host(.--event) .spw-card-content ::slotted(spw-card-subtags){margin-top:12px}:host(.--no-image.--event) .spw-card-content{padding-left:64px;padding-top:12px}:host(.--sidebar) .spw-card-content{padding:0}:host(.--people) .spw-card-content{flex-direction:row;gap:24px;padding:24px}:host(.--event) .spw-card-content,:host(.--sidebar) .spw-card-content,:host(.--vertical) .spw-card-content{height:100%;justify-content:center}:host(.--video) .spw-card-content{height:100%;justify-content:flex-end;padding-right:80px}:host(.--video) .spw-card-content:after{bottom:24px;color:#fff;content:"\\f144";font-family:var(--spw-ds-font-icons-solid);font-size:36px;font-weight:900;position:absolute;right:24px}.spw-card-content__tag{background:var(--spw-ds-white);border-radius:4px 4px 0 0;color:var(--spw-ds-primary);font-size:15px;font-weight:700;left:25px;padding:6px 10px;position:absolute;top:-25px}:host(.--event) .spw-card-content__tag,:host(.--no-image) .spw-card-content__tag,:host(.--vertical) .spw-card-content__tag,:host(.--video) .spw-card-content__tag{left:0;margin-bottom:8px;padding:0;position:relative;top:0}:host(.--video) .spw-card-content__tag{align-self:flex-start;background:var(--spw-ds-white);border-radius:9999px;box-shadow:var(--spw-effect-elevation-3);color:var(--spw-color-themes-grey-grey-900);display:inline-block;font-size:14px;line-height:1;padding:8px 12px;width:auto}.spw-card-content__date{color:var(--spw-color-themes-grey-grey-600);font-size:15px;font-weight:300;margin-bottom:7px}.spw-card-content ::slotted(spw-card){--spw-card-background:var(--spw-color-themes-grey-grey-50);--spw-card-box-shadow:none;--spw-card-border:1px solid var(--spw-color-themes-grey-grey-300)}';const s=class{constructor(e){t(this,e)}render(){return e("div",{key:"fae19ee18d307295062443308246f5baa72b4c77",class:"spw-card-content"},this.tag&&e("span",{key:"d95abdb0e8ba592680abd0e1e2c73ada5f1e55b0",class:"spw-card-content__tag"},this.tag),this.date&&e("time",{key:"e4051e54e576af610e47bdc05433b14b4c8bc6c3","date-time":this.date,class:"spw-card-content__date"},n(this.date)),e("slot",{key:"94abc1be4bd3ca1f9083419a358b1372975e9bd3"}))}get el(){return o(this)}};s.style=i;export{s as spw_card_content};
|
|
2
|
+
//# sourceMappingURL=p-fa52aa2c.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as e,h as t}from"./p-
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as e,h as t}from"./p-CvfVJV8a.js";const n="/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{-webkit-text-size-adjust:100%;line-height:1.3}h1,h2,h3,h4,h5,h6,li,p,ul{margin:0;padding:0}ul{list-style:none}:host{-webkit-text-size-adjust:100%;box-sizing:border-box;display:contents;font-size:100%;line-height:1.3}:host *,:host :after,:host :before{box-sizing:inherit;font-family:Nunito Sans}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}:root{--spw-ds-container-xl:1200px;--spw-ds-container-lg:1024px;--spw-ds-container-md:768px;--spw-ds-container-sm:640px}.spw-ds-container{margin-left:auto;margin-right:auto;padding-left:16px;padding-right:16px;width:100%}@media (min-width:460px){.spw-ds-container{max-width:var(--spw-ds-container-sm)}}@media (min-width:768px){.spw-ds-container{max-width:var(--spw-ds-container-md)}}@media (min-width:1024px){.spw-ds-container{max-width:var(--spw-ds-container-lg)}}@media (min-width:1350px){.spw-ds-container{max-width:var(--spw-ds-container-xl)}}";const i=class{constructor(t){e(this,t)}render(){return t("thead",{key:"ef413eb59ea3530b9d4476723b6179d04bdf8c7f",part:"thead"},t("slot",{key:"4822f9a5d94d983d5497d34da66211b4b9e1fc35"}))}};i.style=n;export{i as spw_table_head};
|
|
2
|
+
//# sourceMappingURL=p-fc6af4d8.entry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spw-accordion.spw-accordion-content.spw-accordion-item.spw-accordion-title.entry.esm.js","sources":["src/components/spw-accordion/spw-accordion.scss?tag=spw-accordion&encapsulation=shadow","src/components/spw-accordion/spw-accordion.tsx","src/components/spw-accordion/spw-accordion-content/spw-accordion-content.scss?tag=spw-accordion-content&encapsulation=shadow","src/components/spw-accordion/spw-accordion-content/spw-accordion-content.tsx","src/components/spw-accordion/spw-accordion-item/spw-accordion-item.scss?tag=spw-accordion-item&encapsulation=shadow","src/components/spw-accordion/spw-accordion-item/spw-accordion-item.tsx","src/components/spw-accordion/spw-accordion-title/spw-accordion-title.scss?tag=spw-accordion-title&encapsulation=shadow","src/components/spw-accordion/spw-accordion-title/spw-accordion-title.tsx"],"sourcesContent":[":host {\n display: block;\n position: relative;\n}\n","import { Component, Host, h } from '@stencil/core';\n\n@Component({\n tag: 'spw-accordion',\n styleUrl: 'spw-accordion.scss',\n shadow: true,\n})\nexport class SpwAccordion {\n render() {\n return (\n <Host>\n <div class=\"spw-accordion\">\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n",".spw-accordion-content {\n line-height: 1.5;\n font-weight: 400;\n overflow: hidden;\n color: var(--spw-color-themes-grey-grey-800);\n transition: all 0.25s ease-in;\n\n :host(.--collapsed) & {\n max-height: 0 !important;\n }\n\n &--is-opened {\n max-height: 100% !important;\n }\n\n &__inner {\n padding: 0 var(--spw-spacings-spacing-lg);\n margin-bottom: var(--spw-spacings-spacing-lg);\n }\n}\n","import { Component, h, Element, Listen, State } from '@stencil/core';\n\n@Component({\n tag: 'spw-accordion-content',\n styleUrl: 'spw-accordion-content.scss',\n shadow: true,\n})\nexport class SpwAccordionContent {\n @Element() el: HTMLSpwAccordionContentElement;\n private contentElement: HTMLElement;\n\n @State() isOpened: boolean = false;\n\n componentDidLoad() {\n this.assignItemId();\n this.updateHeight();\n window.addEventListener('resize', this.handleResize.bind(this));\n this.contentElement.addEventListener('transitionend', this.handleTransitionEnd.bind(this));\n }\n\n disconnectedCallback() {\n window.removeEventListener('resize', this.handleResize.bind(this));\n this.contentElement.removeEventListener('transitionend', this.handleTransitionEnd.bind(this));\n }\n\n private assignItemId() {\n const parent = this.el.closest('spw-accordion-item');\n if (parent) {\n const itemId = parent.getAttribute('data-accordion-id');\n if (itemId) {\n this.el.setAttribute('data-accordion-id', itemId);\n }\n }\n }\n\n @Listen('accordionToggle', { target: 'document' })\n handleAccordionToggle(event: CustomEvent<{ isOpen: boolean; id: string }>) {\n const itemId = this.el.getAttribute('data-accordion-id');\n if (event.detail.id === itemId) {\n this.isOpened = event.detail.isOpen;\n this.updateHeight();\n }\n }\n\n private handleResize() {\n this.updateHeight();\n setTimeout(() => {\n this.updateHeight();\n }, 300);\n }\n\n private handleTransitionEnd(event: TransitionEvent) {\n if (event.propertyName === 'max-height') {\n if (this.isOpened) {\n this.contentElement.classList.add('spw-accordion-content--is-opened');\n } else {\n this.contentElement.classList.remove('spw-accordion-content--is-opened');\n }\n }\n }\n\n private updateHeight() {\n requestAnimationFrame(() => {\n const content = this.contentElement;\n if (this.isOpened) {\n const scrollHeight = content.scrollHeight;\n content.style.maxHeight = `${scrollHeight}px`;\n } else {\n content.style.maxHeight = '0px';\n }\n });\n }\n\n render() {\n return (\n <div class=\"spw-accordion-content\" ref={el => (this.contentElement = el)} data-accordion-id={this.el.getAttribute('data-accordion-id')}>\n <div class=\"spw-accordion-content__inner\">\n <slot onSlotchange={() => this.updateHeight()}></slot>\n </div>\n </div>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.spw-accordion-item {\n position: relative;\n &__content {\n position: relative;\n border-bottom: 1px solid var(--spw-color-themes-grey-grey-300);\n }\n\n &__trigger {\n display: block;\n text-decoration: none;\n\n position: sticky;\n top: 0;\n // background: white;\n z-index: 10;\n @include breakpoint(md) {\n position: relative;\n }\n\n &:focus-visible {\n outline: 2px solid white;\n outline-offset: -3px;\n box-shadow: 0 0 0 2px black;\n }\n }\n}\n","import { Component, h, Host, Event, Prop, EventEmitter, Watch, State, Element } from '@stencil/core';\n\n@Component({\n tag: 'spw-accordion-item',\n styleUrl: 'spw-accordion-item.scss',\n shadow: true,\n})\nexport class SpwAccordionItem {\n @State() isOpen: boolean = false;\n @State() isMobile: boolean = window.innerWidth < 768;\n @Element() el: HTMLSpwAccordionItemElement;\n\n /** Transmet l'état actuel (isOpen) et l'id de l'élément */\n @Event() accordionToggle: EventEmitter<{ isOpen: boolean; id: string }>;\n /** Définit si l'élément est ouvert ou pas */\n @Prop() defaultOpen: boolean = false;\n\n private resizeListener: () => void;\n\n componentWillLoad() {\n this.isOpen = this.defaultOpen;\n this.assignItemId();\n this.setupResizeListener();\n this.toggleClasses();\n }\n\n componentDidLoad() {\n if (this.isOpen) {\n const itemId = this.el.getAttribute('data-accordion-id');\n this.accordionToggle.emit({ isOpen: this.isOpen, id: itemId });\n this.updateFocusableElements();\n }\n }\n\n disconnectedCallback() {\n this.teardownResizeListener();\n }\n\n @Watch('defaultOpen')\n defaultOpenChanged(newValue: boolean) {\n this.isOpen = newValue;\n this.toggleClasses();\n this.updateFocusableElements();\n }\n\n private assignItemId() {\n const index = Array.from(this.el.parentNode.children).indexOf(this.el);\n this.el.setAttribute('data-accordion-id', `accordion-item-${index}`);\n }\n\n private toggleContent() {\n this.isOpen = !this.isOpen;\n const itemId = this.el.getAttribute('data-accordion-id');\n this.accordionToggle.emit({ isOpen: this.isOpen, id: itemId });\n this.updateFocusableElements();\n if (!this.isOpen) {\n this.scrollToElement();\n }\n this.toggleClasses();\n }\n\n private toggleClasses(): void {\n const contentElement = this.el.querySelector('spw-accordion-content');\n const titleElement = this.el.querySelector('spw-accordion-title');\n if (contentElement) {\n contentElement.classList.toggle('--collapsed', !this.isOpen);\n }\n if (titleElement) {\n titleElement.classList.toggle('--collapsed', !this.isOpen);\n }\n }\n\n private handleClick(event: MouseEvent) {\n event.preventDefault();\n this.toggleContent();\n }\n\n private scrollToElement() {\n const element = this.el.shadowRoot.querySelector('.spw-accordion-item__content') as HTMLElement;\n if (element && this.isMobile) {\n element.scrollIntoView({ behavior: 'smooth', block: 'start' });\n }\n }\n\n private updateFocusableElements() {\n const contentSlot = this.el.shadowRoot.querySelector('slot[name=\"content\"]') as HTMLSlotElement;\n if (!contentSlot) {\n return;\n }\n\n const assignedElements = contentSlot.assignedElements({ flatten: true }) as HTMLElement[];\n\n assignedElements.forEach(element => {\n const focusableElements = element.querySelectorAll<HTMLElement>('*');\n\n focusableElements.forEach(focusable => {\n if (this.isOpen) {\n const originalTabIndex = focusable.getAttribute('data-tabindex-original');\n if (originalTabIndex !== null) {\n focusable.setAttribute('tabindex', originalTabIndex);\n focusable.removeAttribute('data-tabindex-original');\n } else {\n focusable.removeAttribute('tabindex');\n }\n } else {\n if (!focusable.hasAttribute('data-tabindex-original')) {\n const currentTabIndex = focusable.getAttribute('tabindex');\n if (currentTabIndex !== null) {\n focusable.setAttribute('data-tabindex-original', currentTabIndex);\n } else {\n focusable.setAttribute('data-tabindex-original', '');\n }\n }\n focusable.setAttribute('tabindex', '-1');\n }\n });\n });\n }\n\n private setupResizeListener() {\n this.resizeListener = () => {\n this.isMobile = window.innerWidth < 768;\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n\n private teardownResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n }\n }\n\n private get elementClass(): { [className: string]: boolean } {\n return {\n 'spw-accordion-item': true,\n 'spw-accordion-item--collapsed': !this.isOpen,\n };\n }\n\n private get elementChildClass(): { [className: string]: boolean } {\n return {\n 'spw-accordion-item__trigger': true,\n };\n }\n\n render() {\n return (\n <Host class={this.elementClass}>\n <div class=\"spw-accordion-item__content\">\n <a href=\"#\" class={this.elementChildClass} onClick={event => this.handleClick(event)}>\n <slot name=\"title\"></slot>\n </a>\n <slot name=\"content\"></slot>\n </div>\n </Host>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.spw-accordion-title {\n padding: var(--spw-spacings-spacing-lg);\n font-weight: 700;\n transition: all 0.3s;\n color: var(--spw-color-themes-grey-grey-900);\n\n &:hover {\n color: var(--spw-ds-primary);\n :host(.--collapsed) & {\n // background: var(--spw-color-themes-grey-grey-100);\n }\n }\n}\n\n:host-context(.spw-accordion-item:hover) > .spw-accordion-title {\n color: var(--spw-ds-primary);\n}\n\n.spw-accordion-title__content {\n position: relative;\n padding-right: var(--spw-spacings-spacing-3-xl);\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-size: 16px;\n }\n}\n\n.spw-accordion-title__trigger {\n position: absolute;\n top: 50%;\n right: 0;\n transform: translateY(-50%) rotate(180deg);\n transition: all 0.3s;\n\n :host(.--collapsed) & {\n transform: translateY(-50%) rotate(0deg);\n }\n}\n","import { Component, Prop, Host, h } from '@stencil/core';\n\n@Component({\n tag: 'spw-accordion-title',\n styleUrl: 'spw-accordion-title.scss',\n shadow: true,\n})\nexport class SpwAccordionTitle {\n /** Tag html du titre de l'accordéon (de h1 à h6) */\n @Prop() tag?: 'h2' | 'h3' | 'h4' | 'h5' | 'h6' = 'h3';\n /** Si spécifié, place une icône à gauche du titre */\n @Prop() icon?: string;\n\n render() {\n const TagType = this.tag;\n const iconElement = this.icon ? <spw-icon icon={this.icon}></spw-icon> : null;\n return (\n <Host>\n <div class=\"spw-accordion-title\">\n <div class=\"spw-accordion-title__content\">\n <TagType class=\"spw-tw-flex\">\n {iconElement && <div class=\"spw-tw-mr-3\">{iconElement}</div>}\n <div>\n <slot></slot>\n </div>\n </TagType>\n <span class=\"spw-accordion-title__trigger\">\n <spw-icon icon=\"fa-chevron-down\"></spw-icon>\n </span>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"spw-accordion.spw-accordion-content.spw-accordion-item.spw-accordion-title.entry.esm.js","sources":["src/components/spw-accordion/spw-accordion.scss?tag=spw-accordion&encapsulation=shadow","src/components/spw-accordion/spw-accordion.tsx","src/components/spw-accordion/spw-accordion-content/spw-accordion-content.scss?tag=spw-accordion-content&encapsulation=shadow","src/components/spw-accordion/spw-accordion-content/spw-accordion-content.tsx","src/components/spw-accordion/spw-accordion-item/spw-accordion-item.scss?tag=spw-accordion-item&encapsulation=shadow","src/components/spw-accordion/spw-accordion-item/spw-accordion-item.tsx","src/components/spw-accordion/spw-accordion-title/spw-accordion-title.scss?tag=spw-accordion-title&encapsulation=shadow","src/components/spw-accordion/spw-accordion-title/spw-accordion-title.tsx"],"sourcesContent":[":host {\n display: block;\n position: relative;\n}\n","import { Component, Host, h } from '@stencil/core';\n\n@Component({\n tag: 'spw-accordion',\n styleUrl: 'spw-accordion.scss',\n shadow: true,\n})\nexport class SpwAccordion {\n render() {\n return (\n <Host>\n <div class=\"spw-accordion\">\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n",".spw-accordion-content {\n line-height: 1.5;\n font-weight: 400;\n overflow: hidden;\n color: var(--spw-color-themes-grey-grey-800);\n transition: all 0.25s ease-in;\n\n :host(.--collapsed) & {\n max-height: 0 !important;\n }\n\n &--is-opened {\n max-height: 100% !important;\n }\n\n &__inner {\n padding: 0 var(--spw-spacings-spacing-lg);\n margin-bottom: var(--spw-spacings-spacing-lg);\n }\n}\n","import { Component, h, Element, Listen, State } from '@stencil/core';\n\n@Component({\n tag: 'spw-accordion-content',\n styleUrl: 'spw-accordion-content.scss',\n shadow: true,\n})\nexport class SpwAccordionContent {\n @Element() el: HTMLSpwAccordionContentElement;\n private contentElement: HTMLElement;\n\n @State() isOpened: boolean = false;\n\n componentDidLoad() {\n this.assignItemId();\n this.updateHeight();\n window.addEventListener('resize', this.handleResize.bind(this));\n this.contentElement.addEventListener('transitionend', this.handleTransitionEnd.bind(this));\n }\n\n disconnectedCallback() {\n window.removeEventListener('resize', this.handleResize.bind(this));\n this.contentElement.removeEventListener('transitionend', this.handleTransitionEnd.bind(this));\n }\n\n private assignItemId() {\n const parent = this.el.closest('spw-accordion-item');\n if (parent) {\n const itemId = parent.getAttribute('data-accordion-id');\n if (itemId) {\n this.el.setAttribute('data-accordion-id', itemId);\n }\n }\n }\n\n @Listen('accordionToggle', { target: 'document' })\n handleAccordionToggle(event: CustomEvent<{ isOpen: boolean; id: string }>) {\n const itemId = this.el.getAttribute('data-accordion-id');\n if (event.detail.id === itemId) {\n this.isOpened = event.detail.isOpen;\n this.updateHeight();\n }\n }\n\n private handleResize() {\n this.updateHeight();\n setTimeout(() => {\n this.updateHeight();\n }, 300);\n }\n\n private handleTransitionEnd(event: TransitionEvent) {\n if (event.propertyName === 'max-height') {\n if (this.isOpened) {\n this.contentElement.classList.add('spw-accordion-content--is-opened');\n } else {\n this.contentElement.classList.remove('spw-accordion-content--is-opened');\n }\n }\n }\n\n private updateHeight() {\n requestAnimationFrame(() => {\n const content = this.contentElement;\n if (this.isOpened) {\n const scrollHeight = content.scrollHeight;\n content.style.maxHeight = `${scrollHeight}px`;\n } else {\n content.style.maxHeight = '0px';\n }\n });\n }\n\n render() {\n return (\n <div class=\"spw-accordion-content\" ref={el => (this.contentElement = el)} data-accordion-id={this.el.getAttribute('data-accordion-id')}>\n <div class=\"spw-accordion-content__inner\">\n <slot onSlotchange={() => this.updateHeight()}></slot>\n </div>\n </div>\n );\n }\n}\n",":host {\n display: block;\n --spw-accordion-item-background: white;\n}\n\n.spw-accordion-item {\n position: relative;\n &__content {\n position: relative;\n border-bottom: 1px solid var(--spw-color-themes-grey-grey-300);\n }\n\n &__trigger {\n display: block;\n text-decoration: none;\n\n position: sticky;\n top: 0;\n background: var(--spw-accordion-item-background);\n z-index: 10;\n @include breakpoint(md) {\n position: relative;\n }\n\n &:focus-visible {\n outline: 2px solid white;\n outline-offset: -3px;\n box-shadow: 0 0 0 2px black;\n }\n }\n}\n","import { Component, h, Host, Event, Prop, EventEmitter, Watch, State, Element } from '@stencil/core';\n\n@Component({\n tag: 'spw-accordion-item',\n styleUrl: 'spw-accordion-item.scss',\n shadow: true,\n})\nexport class SpwAccordionItem {\n @State() isOpen: boolean = false;\n @State() isMobile: boolean = window.innerWidth < 768;\n @Element() el: HTMLSpwAccordionItemElement;\n\n /** Transmet l'état actuel (isOpen) et l'id de l'élément */\n @Event() accordionToggle: EventEmitter<{ isOpen: boolean; id: string }>;\n /** Définit si l'élément est ouvert ou pas */\n @Prop() defaultOpen: boolean = false;\n\n private resizeListener: () => void;\n\n componentWillLoad() {\n this.isOpen = this.defaultOpen;\n this.assignItemId();\n this.setupResizeListener();\n this.toggleClasses();\n }\n\n componentDidLoad() {\n if (this.isOpen) {\n const itemId = this.el.getAttribute('data-accordion-id');\n this.accordionToggle.emit({ isOpen: this.isOpen, id: itemId });\n this.updateFocusableElements();\n }\n }\n\n disconnectedCallback() {\n this.teardownResizeListener();\n }\n\n @Watch('defaultOpen')\n defaultOpenChanged(newValue: boolean) {\n this.isOpen = newValue;\n this.toggleClasses();\n this.updateFocusableElements();\n }\n\n private assignItemId() {\n const index = Array.from(this.el.parentNode.children).indexOf(this.el);\n this.el.setAttribute('data-accordion-id', `accordion-item-${index}`);\n }\n\n private toggleContent() {\n this.isOpen = !this.isOpen;\n const itemId = this.el.getAttribute('data-accordion-id');\n this.accordionToggle.emit({ isOpen: this.isOpen, id: itemId });\n this.updateFocusableElements();\n if (!this.isOpen) {\n this.scrollToElement();\n }\n this.toggleClasses();\n }\n\n private toggleClasses(): void {\n const contentElement = this.el.querySelector('spw-accordion-content');\n const titleElement = this.el.querySelector('spw-accordion-title');\n if (contentElement) {\n contentElement.classList.toggle('--collapsed', !this.isOpen);\n }\n if (titleElement) {\n titleElement.classList.toggle('--collapsed', !this.isOpen);\n }\n }\n\n private handleClick(event: MouseEvent) {\n event.preventDefault();\n this.toggleContent();\n }\n\n private scrollToElement() {\n const element = this.el.shadowRoot.querySelector('.spw-accordion-item__content') as HTMLElement;\n if (element && this.isMobile) {\n element.scrollIntoView({ behavior: 'smooth', block: 'start' });\n }\n }\n\n private updateFocusableElements() {\n const contentSlot = this.el.shadowRoot.querySelector('slot[name=\"content\"]') as HTMLSlotElement;\n if (!contentSlot) {\n return;\n }\n\n const assignedElements = contentSlot.assignedElements({ flatten: true }) as HTMLElement[];\n\n assignedElements.forEach(element => {\n const focusableElements = element.querySelectorAll<HTMLElement>('*');\n\n focusableElements.forEach(focusable => {\n if (this.isOpen) {\n const originalTabIndex = focusable.getAttribute('data-tabindex-original');\n if (originalTabIndex !== null) {\n focusable.setAttribute('tabindex', originalTabIndex);\n focusable.removeAttribute('data-tabindex-original');\n } else {\n focusable.removeAttribute('tabindex');\n }\n } else {\n if (!focusable.hasAttribute('data-tabindex-original')) {\n const currentTabIndex = focusable.getAttribute('tabindex');\n if (currentTabIndex !== null) {\n focusable.setAttribute('data-tabindex-original', currentTabIndex);\n } else {\n focusable.setAttribute('data-tabindex-original', '');\n }\n }\n focusable.setAttribute('tabindex', '-1');\n }\n });\n });\n }\n\n private setupResizeListener() {\n this.resizeListener = () => {\n this.isMobile = window.innerWidth < 768;\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n\n private teardownResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n }\n }\n\n private get elementClass(): { [className: string]: boolean } {\n return {\n 'spw-accordion-item': true,\n 'spw-accordion-item--collapsed': !this.isOpen,\n };\n }\n\n private get elementChildClass(): { [className: string]: boolean } {\n return {\n 'spw-accordion-item__trigger': true,\n };\n }\n\n render() {\n return (\n <Host class={this.elementClass}>\n <div class=\"spw-accordion-item__content\">\n <a href=\"#\" class={this.elementChildClass} onClick={event => this.handleClick(event)}>\n <slot name=\"title\"></slot>\n </a>\n <slot name=\"content\"></slot>\n </div>\n </Host>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.spw-accordion-title {\n padding: var(--spw-spacings-spacing-lg);\n font-weight: 700;\n transition: all 0.3s;\n color: var(--spw-color-themes-grey-grey-900);\n\n &:hover {\n color: var(--spw-ds-primary);\n :host(.--collapsed) & {\n // background: var(--spw-color-themes-grey-grey-100);\n }\n }\n}\n\n:host-context(.spw-accordion-item:hover) > .spw-accordion-title {\n color: var(--spw-ds-primary);\n}\n\n.spw-accordion-title__content {\n position: relative;\n padding-right: var(--spw-spacings-spacing-3-xl);\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-size: 16px;\n }\n}\n\n.spw-accordion-title__trigger {\n position: absolute;\n top: 50%;\n right: 0;\n transform: translateY(-50%) rotate(180deg);\n transition: all 0.3s;\n\n :host(.--collapsed) & {\n transform: translateY(-50%) rotate(0deg);\n }\n}\n","import { Component, Prop, Host, h } from '@stencil/core';\n\n@Component({\n tag: 'spw-accordion-title',\n styleUrl: 'spw-accordion-title.scss',\n shadow: true,\n})\nexport class SpwAccordionTitle {\n /** Tag html du titre de l'accordéon (de h1 à h6) */\n @Prop() tag?: 'h2' | 'h3' | 'h4' | 'h5' | 'h6' = 'h3';\n /** Si spécifié, place une icône à gauche du titre */\n @Prop() icon?: string;\n\n render() {\n const TagType = this.tag;\n const iconElement = this.icon ? <spw-icon icon={this.icon}></spw-icon> : null;\n return (\n <Host>\n <div class=\"spw-accordion-title\">\n <div class=\"spw-accordion-title__content\">\n <TagType class=\"spw-tw-flex\">\n {iconElement && <div class=\"spw-tw-mr-3\">{iconElement}</div>}\n <div>\n <slot></slot>\n </div>\n </TagType>\n <span class=\"spw-accordion-title__trigger\">\n <spw-icon icon=\"fa-chevron-down\"></spw-icon>\n </span>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spw-checkbox.entry.esm.js","sources":["src/components/spw-checkbox/spw-checkbox.scss?tag=spw-checkbox&encapsulation=shadow","src/components/spw-checkbox/spw-checkbox.tsx"],"sourcesContent":[":host {\n display: inline-flex;\n vertical-align: top;\n --spw-ds-checkbox-checked-color: var(--spw-ds-primary);\n --spw-ds-checkbox-checked-active-color: var(--spw-ds-active);\n --spw-ds-checkbox-checked-hover-color: var(--spw-ds-variant);\n}\n\n.spw-checkbox {\n display: inline-flex;\n flex-direction: row;\n align-items: flex-start;\n padding: 0;\n\n &__wrapper {\n display: flex;\n position: relative;\n justify-content: center;\n align-items: center;\n width: 20px;\n height: 20px;\n background-color: var(--spw-ds-white);\n border: 2px solid var(--spw-color-themes-grey-grey-900);\n border-radius: var(--spw-spacings-border-radius-2-xs);\n font-size: var(--spw-typography-body-body-3-font-size);\n flex: none;\n order: 0;\n flex-grow: 0;\n\n spw-icon {\n font-size: 14px;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n\n &--error {\n border-color: var(--spw-colors-dark-states-error-error-300);\n }\n\n &:not(.spw-checkbox__wrapper--disabled):hover {\n outline: 4px solid var(--spw-color-themes-grey-grey-300);\n }\n\n &:not(.spw-checkbox__wrapper--disabled):focus-visible,\n &:not(.spw-checkbox__wrapper--disabled):active,\n &:not(.spw-checkbox__wrapper--disabled):focus-within,\n &:not(.spw-checkbox__wrapper--disabled):active {\n outline: 2px solid white;\n outline-offset: 0;\n box-shadow: 0 0 0 4px black;\n }\n\n &--disabled {\n border-color: var(--spw-color-themes-grey-grey-500);\n }\n\n &--checked {\n border-color: var(--spw-ds-checkbox-checked-color);\n color: var(--spw-ds-checkbox-checked-color);\n\n &--disabled {\n color: var(--spw-color-themes-grey-grey-500);\n }\n }\n\n &--toggle {\n top: 1px;\n width: 30px;\n height: 18px;\n border-radius: 40px;\n border: none;\n background: var(--spw-color-themes-grey-grey-500);\n transition: background 0.2s ease;\n &:hover {\n background: var(--spw-color-themes-grey-grey-600);\n }\n &:active {\n background: var(--spw-color-themes-grey-grey-800);\n }\n spw-icon {\n opacity: 0;\n line-height: 0;\n transition: all 0.2s 0.3s ease;\n margin-left: 15px;\n transition: all 0.2s ease;\n }\n &:before {\n content: '';\n position: absolute;\n width: 14px;\n height: 14px;\n background: white;\n border-radius: 50%;\n top: 50%;\n left: 2px;\n transform: translateY(-50%);\n transition: all 0.2s ease;\n }\n }\n &.spw-checkbox__wrapper--checked.spw-checkbox__wrapper--toggle {\n background: var(--spw-ds-checkbox-checked-color);\n color: var(--spw-ds-checkbox-checked-color);\n &:before {\n left: calc(100% - 16px);\n background: white;\n }\n spw-icon {\n font-size: 10px;\n margin-left: 6px;\n opacity: 1;\n }\n &:not(.spw-checkbox__wrapper--disabled):hover {\n background: var(--spw-ds-checkbox-checked-hover-color);\n color: var(--spw-ds-checkbox-checked-hover-color);\n }\n &:not(.spw-checkbox__wrapper--disabled):active {\n background: var(--spw-ds-checkbox-checked-active-color);\n color: var(--spw-ds-checkbox-checked-active-color);\n }\n }\n &.spw-checkbox__wrapper--toggle.spw-checkbox__wrapper--disabled {\n border-color: var(--spw-color-themes-grey-grey-500);\n background: white;\n &:before {\n background: var(--spw-color-themes-grey-grey-500);\n }\n }\n }\n\n &__label {\n color: var(--spw-color-themes-grey-grey-900);\n word-wrap: break-word;\n order: 1;\n padding-top: 1px;\n user-select: none;\n padding-left: var(--spw-spacings-spacing-sm);\n\n &:hover ~ .spw-checkbox__wrapper:not(.spw-checkbox__wrapper--disabled) {\n outline: 4px solid var(--spw-color-themes-grey-grey-300);\n }\n\n // &:hover ~ .spw-checkbox__wrapper--toggle:not(.spw-checkbox__wrapper--disabled) {\n // background: var(--spw-color-themes-grey-grey-600);\n // color: var(--spw-color-themes-grey-grey-600);\n // }\n\n // &:active ~ .spw-checkbox__wrapper--toggle:not(.spw-checkbox__wrapper--disabled) {\n // background: var(--spw-color-themes-grey-grey-800);\n // color: var(--spw-color-themes-grey-grey-800);\n // }\n\n // &:hover ~ .spw-checkbox__wrapper--toggle.spw-checkbox__wrapper--checked:not(.spw-checkbox__wrapper--disabled) {\n // background: var(--spw-ds-checkbox-checked-hover-color);\n // color: var(--spw-ds-checkbox-checked-hover-color);\n // }\n\n // &:active ~ .spw-checkbox__wrapper--toggle.spw-checkbox__wrapper--checked:not(.spw-checkbox__wrapper--disabled) {\n // background: var(--spw-ds-checkbox-checked-active-color);\n // color: var(--spw-ds-checkbox-checked-active-color);\n // }\n\n &:active ~ .spw-checkbox__wrapper:not(.spw-checkbox__wrapper--disabled) {\n outline: 2px solid white;\n outline-offset: 0;\n box-shadow: 0 0 0 4px black;\n }\n\n &--disabled {\n color: var(--spw-color-themes-grey-grey-500);\n }\n }\n\n &__wrapper,\n &__label {\n &:hover {\n cursor: pointer;\n }\n &--disabled:hover {\n cursor: not-allowed;\n }\n }\n}\n","import { Component, h, Prop, Element, State, Event, EventEmitter, Watch, Method, AttachInternals } from '@stencil/core';\n\n@Component({\n tag: 'spw-checkbox',\n styleUrl: 'spw-checkbox.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class SpwCheckbox {\n private inputElement: HTMLInputElement;\n\n @Element() el: HTMLSpwCheckboxElement;\n\n /** Détermine si la case à cocher est désactivée, rendant l'élément inutilisable */\n @Prop() disabled: boolean = false;\n /** Propriété mutable qui reflète si la case à cocher est cochée ou non */\n @Prop({ mutable: true, reflect: true }) checked: boolean = false;\n /** Indique s'il y a une erreur associée à la case à cocher, pour un affichage visuel */\n @Prop() error: boolean = false;\n /** Icône à afficher lorsque la case à cocher est cochée */\n @Prop() icon: string = 'fa-check';\n /** Nom de l'élément utilisé dans les formulaires */\n @Prop() name: string;\n /** Type de variant pour la checkbox */\n @Prop() variant?: 'default' | 'toggle' = 'default';\n\n @State() internalChecked: boolean;\n\n @AttachInternals() internals: ElementInternals;\n\n /** Événement déclenché lors d'un changement d'état de la case à cocher (cochée ou décochée) */\n @Event({ bubbles: true, composed: true }) spwChange: EventEmitter<boolean>;\n\n private handleCheckbox() {\n if (!this.disabled) {\n this.internalChecked = !this.internalChecked;\n this.checked = this.internalChecked;\n this.updateFormValue();\n this.spwChange.emit(this.internalChecked);\n }\n }\n\n /** Méthode publique pour changer l'état de la case à cocher. */\n @Method()\n async toggleCheckedState(newVal: boolean) {\n this.internalChecked = newVal;\n this.checked = newVal;\n this.updateFormValue();\n }\n\n @Watch('checked')\n checkedChanged(newChecked: boolean) {\n this.internalChecked = newChecked;\n this.inputElement.checked = newChecked;\n this.updateFormValue();\n }\n\n private updateFormValue() {\n if (this.internalChecked) {\n this.internals.setFormValue('on');\n } else {\n this.internals.setFormValue(null);\n }\n }\n\n private handleKeydown(event) {\n if (event.key === ' ' || event.key === 'Enter') {\n // Space or Enter keys\n this.handleCheckbox();\n event.preventDefault();\n }\n }\n\n componentWillLoad() {\n this.internalChecked = this.checked;\n this.updateFormValue();\n }\n\n componentDidLoad() {\n this.el.closest('form')?.addEventListener('formdata', (e: FormDataEvent) => {\n if (this.internalChecked) {\n e.formData.set(this.name, 'on');\n }\n });\n }\n\n formResetCallback() {\n this.internalChecked = false;\n this.checked = false;\n this.updateFormValue();\n }\n\n private get elementClass(): { [className: string]: boolean } {\n return {\n 'spw-checkbox__wrapper': true,\n [`spw-checkbox__wrapper--${this.variant}`]: true,\n 'spw-checkbox__wrapper--disabled': this.disabled,\n 'spw-checkbox__wrapper--checked': this.internalChecked,\n 'spw-checkbox__wrapper--error': this.error,\n };\n }\n\n render() {\n const slot = this.el.innerHTML;\n const hasSlot = Boolean(slot);\n\n return (\n <div class=\"spw-checkbox\">\n <input\n type=\"checkbox\"\n ref={el => (this.inputElement = el)}\n checked={this.internalChecked}\n onChange={this.handleCheckbox.bind(this)}\n name={this.name}\n disabled={this.disabled}\n style={{ display: 'none' }}\n />\n {hasSlot && (\n <label htmlFor={this.name} class={`spw-checkbox__label ${this.disabled ? 'spw-checkbox__label--disabled' : ''}`} onClick={this.handleCheckbox.bind(this)}>\n <slot />\n </label>\n )}\n <div\n tabindex={this.disabled ? -1 : 0}\n onClick={this.handleCheckbox.bind(this)}\n onKeyDown={this.handleKeydown.bind(this)}\n role=\"checkbox\"\n aria-checked={this.internalChecked ? 'true' : 'false'}\n aria-disabled={this.disabled ? 'true' : 'false'}\n aria-labelledby=\"label\"\n class={this.elementClass}\n >\n {this.internalChecked && <spw-icon icon={this.icon}></spw-icon>}\n </div>\n </div>\n );\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"spw-checkbox.entry.esm.js","sources":["src/components/spw-checkbox/spw-checkbox.scss?tag=spw-checkbox&encapsulation=shadow","src/components/spw-checkbox/spw-checkbox.tsx"],"sourcesContent":[":host {\n display: inline-flex;\n vertical-align: top;\n --spw-ds-checkbox-checked-color: var(--spw-ds-primary);\n --spw-ds-checkbox-checked-active-color: var(--spw-ds-active);\n --spw-ds-checkbox-checked-hover-color: var(--spw-ds-variant);\n --spw-ds-toggle-checked-color: var(--spw-color-themes-green-green-600);\n --spw-ds-toggle-checked-active-color: var(--spw-color-themes-green-green-700);\n --spw-ds-toggle-checked-hover-color: var(--spw-color-themes-green-green-800);\n}\n\n.spw-checkbox {\n display: inline-flex;\n flex-direction: row;\n align-items: flex-start;\n padding: 0;\n\n &__wrapper {\n display: flex;\n position: relative;\n justify-content: center;\n align-items: center;\n width: 20px;\n height: 20px;\n background-color: var(--spw-ds-white);\n border: 2px solid var(--spw-color-themes-grey-grey-900);\n border-radius: var(--spw-spacings-border-radius-2-xs);\n font-size: var(--spw-typography-body-body-3-font-size);\n flex: none;\n order: 0;\n flex-grow: 0;\n\n spw-icon {\n font-size: 14px;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n\n &--error {\n border-color: var(--spw-colors-dark-states-error-error-300);\n }\n\n &:not(.spw-checkbox__wrapper--disabled):hover {\n outline: 4px solid var(--spw-color-themes-grey-grey-300);\n }\n\n &:not(.spw-checkbox__wrapper--disabled):focus-visible,\n &:not(.spw-checkbox__wrapper--disabled):active,\n &:not(.spw-checkbox__wrapper--disabled):focus-within,\n &:not(.spw-checkbox__wrapper--disabled):active {\n outline: 2px solid white;\n outline-offset: 0;\n box-shadow: 0 0 0 4px black;\n }\n\n &--disabled {\n border-color: var(--spw-color-themes-grey-grey-500);\n }\n\n &--checked {\n border-color: var(--spw-ds-checkbox-checked-color);\n color: var(--spw-ds-checkbox-checked-color);\n\n &--disabled {\n color: var(--spw-color-themes-grey-grey-500);\n }\n }\n\n &--toggle {\n top: 1px;\n width: 30px;\n height: 18px;\n border-radius: 40px;\n border: none;\n background: var(--spw-color-themes-grey-grey-500);\n transition: background 0.2s ease;\n &:hover {\n background: var(--spw-color-themes-grey-grey-600);\n }\n &:active {\n background: var(--spw-color-themes-grey-grey-800);\n }\n spw-icon {\n opacity: 0;\n line-height: 0;\n transition: all 0.2s 0.3s ease;\n margin-left: 15px;\n transition: all 0.2s ease;\n }\n &:before {\n content: '';\n position: absolute;\n width: 14px;\n height: 14px;\n background: white;\n border-radius: 50%;\n top: 50%;\n left: 2px;\n transform: translateY(-50%);\n transition: all 0.2s ease;\n }\n }\n &.spw-checkbox__wrapper--checked.spw-checkbox__wrapper--toggle {\n background: var(--spw-ds-toggle-checked-color);\n color: var(--spw-ds-toggle-checked-color);\n &:before {\n left: calc(100% - 16px);\n background: white;\n }\n spw-icon {\n font-size: 10px;\n margin-left: 6px;\n opacity: 1;\n }\n &:not(.spw-checkbox__wrapper--disabled):hover {\n background: var(--spw-ds-toggle-checked-hover-color);\n color: var(--spw-ds-toggle-checked-hover-color);\n }\n &:not(.spw-checkbox__wrapper--disabled):active {\n background: var(--spw-ds-toggle-checked-active-color);\n color: var(--spw-ds-toggle-checked-active-color);\n }\n &.spw-checkbox__wrapper--disabled {\n background: var(--spw-color-themes-grey-grey-500);\n color: var(--spw-color-themes-grey-grey-500);\n &:before {\n background: var(--spw-ds-white);\n }\n }\n }\n &.spw-checkbox__wrapper--toggle.spw-checkbox__wrapper--disabled,\n &.spw-checkbox__wrapper--toggle.spw-checkbox__wrapper--disabled.spw-checkbox__wrapper--checked {\n border-color: var(--spw-color-themes-grey-grey-300);\n background: var(--spw-color-themes-grey-grey-300);\n &:before {\n background: white;\n }\n }\n }\n\n &__label {\n color: var(--spw-color-themes-grey-grey-900);\n word-wrap: break-word;\n order: 1;\n padding-top: 1px;\n user-select: none;\n padding-left: var(--spw-spacings-spacing-sm);\n\n &:hover ~ .spw-checkbox__wrapper:not(.spw-checkbox__wrapper--disabled) {\n outline: 4px solid var(--spw-color-themes-grey-grey-300);\n }\n\n // &:hover ~ .spw-checkbox__wrapper--toggle:not(.spw-checkbox__wrapper--disabled) {\n // background: var(--spw-color-themes-grey-grey-600);\n // color: var(--spw-color-themes-grey-grey-600);\n // }\n\n // &:active ~ .spw-checkbox__wrapper--toggle:not(.spw-checkbox__wrapper--disabled) {\n // background: var(--spw-color-themes-grey-grey-800);\n // color: var(--spw-color-themes-grey-grey-800);\n // }\n\n // &:hover ~ .spw-checkbox__wrapper--toggle.spw-checkbox__wrapper--checked:not(.spw-checkbox__wrapper--disabled) {\n // background: var(--spw-ds-checkbox-checked-hover-color);\n // color: var(--spw-ds-checkbox-checked-hover-color);\n // }\n\n // &:active ~ .spw-checkbox__wrapper--toggle.spw-checkbox__wrapper--checked:not(.spw-checkbox__wrapper--disabled) {\n // background: var(--spw-ds-checkbox-checked-active-color);\n // color: var(--spw-ds-checkbox-checked-active-color);\n // }\n\n &:active ~ .spw-checkbox__wrapper:not(.spw-checkbox__wrapper--disabled) {\n outline: 2px solid white;\n outline-offset: 0;\n box-shadow: 0 0 0 4px black;\n }\n\n &--disabled {\n color: var(--spw-color-themes-grey-grey-500);\n }\n }\n\n &__wrapper,\n &__label {\n &:hover {\n cursor: pointer;\n }\n &--disabled:hover {\n cursor: not-allowed;\n }\n }\n}\n","import { Component, h, Prop, Element, State, Event, EventEmitter, Watch, Method, AttachInternals } from '@stencil/core';\n\n@Component({\n tag: 'spw-checkbox',\n styleUrl: 'spw-checkbox.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class SpwCheckbox {\n private inputElement: HTMLInputElement;\n\n @Element() el: HTMLSpwCheckboxElement;\n\n /** Détermine si la case à cocher est désactivée, rendant l'élément inutilisable */\n @Prop() disabled: boolean = false;\n /** Propriété mutable qui reflète si la case à cocher est cochée ou non */\n @Prop({ mutable: true, reflect: true }) checked: boolean = false;\n /** Indique s'il y a une erreur associée à la case à cocher, pour un affichage visuel */\n @Prop() error: boolean = false;\n /** Icône à afficher lorsque la case à cocher est cochée */\n @Prop() icon: string = 'fa-check';\n /** Nom de l'élément utilisé dans les formulaires */\n @Prop() name: string;\n /** Type de variant pour la checkbox */\n @Prop() variant?: 'default' | 'toggle' = 'default';\n\n @State() internalChecked: boolean;\n\n @AttachInternals() internals: ElementInternals;\n\n /** Événement déclenché lors d'un changement d'état de la case à cocher (cochée ou décochée) */\n @Event({ bubbles: true, composed: true }) spwChange: EventEmitter<boolean>;\n\n private handleCheckbox() {\n if (!this.disabled) {\n this.internalChecked = !this.internalChecked;\n this.checked = this.internalChecked;\n this.updateFormValue();\n this.spwChange.emit(this.internalChecked);\n }\n }\n\n /** Méthode publique pour changer l'état de la case à cocher. */\n @Method()\n async toggleCheckedState(newVal: boolean) {\n this.internalChecked = newVal;\n this.checked = newVal;\n this.updateFormValue();\n }\n\n @Watch('checked')\n checkedChanged(newChecked: boolean) {\n this.internalChecked = newChecked;\n this.inputElement.checked = newChecked;\n this.updateFormValue();\n }\n\n private updateFormValue() {\n if (this.internalChecked) {\n this.internals.setFormValue('on');\n } else {\n this.internals.setFormValue(null);\n }\n }\n\n private handleKeydown(event) {\n if (event.key === ' ' || event.key === 'Enter') {\n // Space or Enter keys\n this.handleCheckbox();\n event.preventDefault();\n }\n }\n\n componentWillLoad() {\n this.internalChecked = this.checked;\n this.updateFormValue();\n }\n\n componentDidLoad() {\n this.el.closest('form')?.addEventListener('formdata', (e: FormDataEvent) => {\n if (this.internalChecked) {\n e.formData.set(this.name, 'on');\n }\n });\n }\n\n formResetCallback() {\n this.internalChecked = false;\n this.checked = false;\n this.updateFormValue();\n }\n\n private get elementClass(): { [className: string]: boolean } {\n return {\n 'spw-checkbox__wrapper': true,\n [`spw-checkbox__wrapper--${this.variant}`]: true,\n 'spw-checkbox__wrapper--disabled': this.disabled,\n 'spw-checkbox__wrapper--checked': this.internalChecked,\n 'spw-checkbox__wrapper--error': this.error,\n };\n }\n\n render() {\n const slot = this.el.innerHTML;\n const hasSlot = Boolean(slot);\n\n return (\n <div class=\"spw-checkbox\">\n <input\n type=\"checkbox\"\n ref={el => (this.inputElement = el)}\n checked={this.internalChecked}\n onChange={this.handleCheckbox.bind(this)}\n name={this.name}\n disabled={this.disabled}\n style={{ display: 'none' }}\n />\n {hasSlot && (\n <label htmlFor={this.name} class={`spw-checkbox__label ${this.disabled ? 'spw-checkbox__label--disabled' : ''}`} onClick={this.handleCheckbox.bind(this)}>\n <slot />\n </label>\n )}\n <div\n tabindex={this.disabled ? -1 : 0}\n onClick={this.handleCheckbox.bind(this)}\n onKeyDown={this.handleKeydown.bind(this)}\n role=\"checkbox\"\n aria-checked={this.internalChecked ? 'true' : 'false'}\n aria-disabled={this.disabled ? 'true' : 'false'}\n aria-labelledby=\"label\"\n class={this.elementClass}\n >\n {this.internalChecked && <spw-icon icon={this.icon}></spw-icon>}\n </div>\n </div>\n );\n }\n}\n"],"names":[],"mappings":"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"}
|