@dropi/ui 0.1.37 → 0.1.41
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/assets/icons/symbol/svg/sprite.css.svg +1 -1
- package/dist/cjs/dropi-accordion-item.cjs.entry.js +1 -1
- package/dist/cjs/dropi-alert.cjs.entry.js +1 -1
- package/dist/cjs/dropi-banner-external.cjs.entry.js +1 -1
- package/dist/cjs/dropi-breadcrumb.cjs.entry.js +2 -2
- package/dist/cjs/dropi-button.cjs.entry.js +1 -1
- package/dist/cjs/dropi-card-product.cjs.entry.js +2 -2
- package/dist/cjs/dropi-card-section.cjs.entry.js +1 -1
- package/dist/cjs/dropi-checkbox-selection-list.cjs.entry.js +2 -2
- package/dist/cjs/dropi-chips.cjs.entry.js +1 -1
- package/dist/cjs/dropi-city-selector.cjs.entry.js +2 -2
- package/dist/cjs/dropi-country-selector.cjs.entry.js +1 -1
- package/dist/cjs/dropi-date-picker.cjs.entry.js +3 -3
- package/dist/cjs/dropi-drawer.cjs.entry.js +1 -1
- package/dist/cjs/dropi-favorite-button.cjs.entry.js +1 -1
- package/dist/cjs/dropi-file-upload-progress-bar.cjs.entry.js +1 -1
- package/dist/cjs/dropi-file-upload.cjs.entry.js +2 -2
- package/dist/cjs/dropi-icon.cjs.entry.js +18 -20
- package/dist/cjs/dropi-ilustration-icon.cjs.entry.js +1 -1
- package/dist/cjs/dropi-image-miniature.cjs.entry.js +1 -1
- package/dist/cjs/dropi-image-overlay.cjs.entry.js +1 -1
- package/dist/cjs/dropi-input_3.cjs.entry.js +11 -9
- package/dist/cjs/dropi-languages-selector.cjs.entry.js +1 -1
- package/dist/cjs/dropi-media-player.cjs.entry.js +2 -2
- package/dist/cjs/dropi-modal.cjs.entry.js +2 -2
- package/dist/cjs/dropi-navbar.cjs.entry.js +2 -2
- package/dist/cjs/dropi-otp-send-code.cjs.entry.js +14 -6
- package/dist/cjs/dropi-phone-input.cjs.entry.js +1 -1
- package/dist/cjs/dropi-radio-selection-list.cjs.entry.js +2 -2
- package/dist/cjs/dropi-search.cjs.entry.js +2 -2
- package/dist/cjs/dropi-select.cjs.entry.js +7 -7
- package/dist/cjs/dropi-sidebar.cjs.entry.js +2 -2
- package/dist/cjs/dropi-steps.cjs.entry.js +1 -1
- package/dist/cjs/dropi-table.cjs.entry.js +5 -5
- package/dist/cjs/dropi-tabs.cjs.entry.js +1 -1
- package/dist/cjs/dropi-text-area.cjs.entry.js +1 -1
- package/dist/cjs/dropi-time-line.cjs.entry.js +1 -1
- package/dist/cjs/dropi-toast.cjs.entry.js +1 -1
- package/dist/cjs/dropi-tooltip-v2.cjs.entry.js +2 -2
- package/dist/cjs/dropi-ui.cjs.js +1 -1
- package/dist/cjs/dropi-vertical-steps.cjs.entry.js +1 -1
- package/dist/cjs/dropi-youtube-lazy-video.cjs.entry.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/assets/icons/symbol/svg/sprite.css.svg +1 -1
- package/dist/collection/components/dropi-accordion/dropi-accordion-item.js +1 -1
- package/dist/collection/components/dropi-alert/dropi-alert.js +1 -1
- package/dist/collection/components/dropi-banner-external/dropi-banner-external.js +1 -1
- package/dist/collection/components/dropi-breadcrumb/dropi-breadcrumb.js +2 -2
- package/dist/collection/components/dropi-button/dropi-button.js +1 -1
- package/dist/collection/components/dropi-card-product/dropi-card-product.js +2 -2
- package/dist/collection/components/dropi-card-section/dropi-card-section.js +1 -1
- package/dist/collection/components/dropi-checkbox-selection-list/dropi-checkbox-selection-list.js +2 -2
- package/dist/collection/components/dropi-chips/dropi-chips.js +1 -1
- package/dist/collection/components/dropi-city-selector/dropi-city-selector.js +2 -2
- package/dist/collection/components/dropi-country-selector/dropi-country-selector.js +1 -1
- package/dist/collection/components/dropi-date-picker/dropi-date-picker.js +3 -3
- package/dist/collection/components/dropi-drawer/dropi-drawer.js +1 -1
- package/dist/collection/components/dropi-favorite-button/dropi-favorite-button.js +1 -1
- package/dist/collection/components/dropi-file-upload/dropi-file-upload.js +2 -2
- package/dist/collection/components/dropi-file-upload-progress-bar/dropi-file-upload-progress-bar.js +1 -1
- package/dist/collection/components/dropi-icon/dropi-icon.css +0 -2
- package/dist/collection/components/dropi-icon/dropi-icon.js +25 -27
- package/dist/collection/components/dropi-ilustration-icon/dropi-ilustration-icon.js +1 -1
- package/dist/collection/components/dropi-image-miniature/dropi-image-miniature.js +1 -1
- package/dist/collection/components/dropi-image-overlay/dropi-image-overlay.js +1 -1
- package/dist/collection/components/dropi-input/dropi-input.css +13 -5
- package/dist/collection/components/dropi-input/dropi-input.js +9 -7
- package/dist/collection/components/dropi-languages-selector/dropi-languages-selector.js +1 -1
- package/dist/collection/components/dropi-media-player/dropi-media-player.js +2 -2
- package/dist/collection/components/dropi-modal/dropi-modal.js +4 -4
- package/dist/collection/components/dropi-navbar/dropi-navbar.js +2 -2
- package/dist/collection/components/dropi-otp-send-code/dropi-otp-send-code.js +29 -7
- package/dist/collection/components/dropi-paginator/dropi-paginator.js +2 -2
- package/dist/collection/components/dropi-phone-input/dropi-phone-input.js +1 -1
- package/dist/collection/components/dropi-radio-selection-list/dropi-radio-selection-list.js +2 -2
- package/dist/collection/components/dropi-search/dropi-search.js +2 -2
- package/dist/collection/components/dropi-select/dropi-select.js +7 -7
- package/dist/collection/components/dropi-sidebar/dropi-sidebar.js +2 -2
- package/dist/collection/components/dropi-steps/dropi-steps.js +1 -1
- package/dist/collection/components/dropi-table/dropi-table.js +7 -7
- package/dist/collection/components/dropi-tabs/dropi-tabs.js +1 -1
- package/dist/collection/components/dropi-tag/dropi-tag.js +1 -1
- package/dist/collection/components/dropi-text-area/dropi-text-area.js +1 -1
- package/dist/collection/components/dropi-time-line/dropi-time-line.js +1 -1
- package/dist/collection/components/dropi-toast/dropi-toast.js +1 -1
- package/dist/collection/components/dropi-tooltip-v2/dropi-tooltip.js +2 -2
- package/dist/collection/components/dropi-vertical-steps/dropi-vertical-steps.js +1 -1
- package/dist/collection/components/dropi-youtube-lazy-video/dropi-youtube-lazy-video.js +1 -1
- package/dist/components/dropi-accordion-item.js +1 -1
- package/dist/components/dropi-alert-modal.js +1 -1
- package/dist/components/dropi-alert.js +1 -1
- package/dist/components/dropi-banner-external.js +1 -1
- package/dist/components/dropi-breadcrumb.js +1 -1
- package/dist/components/dropi-button.js +1 -1
- package/dist/components/dropi-card-product.js +1 -1
- package/dist/components/dropi-card-section.js +1 -1
- package/dist/components/dropi-checkbox-selection-list.js +1 -1
- package/dist/components/dropi-chips.js +1 -1
- package/dist/components/dropi-city-selector.js +1 -1
- package/dist/components/dropi-country-selector.js +1 -1
- package/dist/components/dropi-date-picker.js +1 -1
- package/dist/components/dropi-drawer.js +1 -1
- package/dist/components/dropi-empty-state.js +1 -1
- package/dist/components/dropi-favorite-button.js +1 -1
- package/dist/components/dropi-file-upload-progress-bar.js +1 -1
- package/dist/components/dropi-file-upload.js +1 -1
- package/dist/components/dropi-icon.js +1 -1
- package/dist/components/dropi-ilustration-icon.js +1 -1
- package/dist/components/dropi-image-miniature.js +1 -1
- package/dist/components/dropi-image-overlay.js +1 -1
- package/dist/components/dropi-input.js +1 -1
- package/dist/components/dropi-languages-selector.js +1 -1
- package/dist/components/dropi-media-player.js +1 -1
- package/dist/components/dropi-modal.js +1 -1
- package/dist/components/dropi-navbar.js +1 -1
- package/dist/components/dropi-otp-send-code.js +1 -1
- package/dist/components/dropi-paginator.js +1 -1
- package/dist/components/dropi-phone-input.js +1 -1
- package/dist/components/dropi-radio-selection-list.js +1 -1
- package/dist/components/dropi-search.js +1 -1
- package/dist/components/dropi-select.js +1 -1
- package/dist/components/dropi-sidebar.js +1 -1
- package/dist/components/dropi-steps.js +1 -1
- package/dist/components/dropi-table.js +1 -1
- package/dist/components/dropi-tabs.js +1 -1
- package/dist/components/dropi-tag.js +1 -1
- package/dist/components/dropi-text-area.js +1 -1
- package/dist/components/dropi-time-line.js +1 -1
- package/dist/components/dropi-toast.js +1 -1
- package/dist/components/dropi-tooltip-v2.js +1 -1
- package/dist/components/dropi-vertical-steps.js +1 -1
- package/dist/components/dropi-youtube-lazy-video.js +1 -1
- package/dist/components/p-2YgFOle2.js +1 -0
- package/dist/components/p-BDYn1JDe.js +1 -0
- package/dist/components/p-BKTMBQVw.js +1 -0
- package/dist/components/p-Btsw7sPN.js +1 -0
- package/dist/components/p-CgRY3n1J.js +1 -0
- package/dist/components/p-Cjq4FTif.js +1 -0
- package/dist/components/p-DfdhNT9F.js +1 -0
- package/dist/components/p-DvLWbKsf.js +1 -0
- package/dist/components/p-Dz9uN5Nw.js +1 -0
- package/dist/components/p-FAhcOdS-.js +1 -0
- package/dist/dropi-ui/dropi-accordion-item.entry.js +58 -0
- package/dist/dropi-ui/dropi-accordion-item.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-accordion.entry.js +20 -0
- package/dist/dropi-ui/dropi-accordion.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-alert-legacy.entry.js +40 -0
- package/dist/dropi-ui/dropi-alert-legacy.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-alert-modal.entry.js +129 -0
- package/dist/dropi-ui/dropi-alert-modal.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-alert.entry.js +65 -0
- package/dist/dropi-ui/dropi-alert.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-avatars.entry.js +32 -0
- package/dist/dropi-ui/dropi-avatars.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-badge-legacy.entry.js +31 -0
- package/dist/dropi-ui/dropi-badge-legacy.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-badge.entry.js +38 -0
- package/dist/dropi-ui/dropi-badge.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-banner-external.entry.js +64 -0
- package/dist/dropi-ui/dropi-banner-external.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-breadcrumb.entry.js +49 -0
- package/dist/dropi-ui/dropi-breadcrumb.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-button.entry.js +88 -0
- package/dist/dropi-ui/dropi-button.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-card-checkbox.entry.js +49 -0
- package/dist/dropi-ui/dropi-card-checkbox.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-card-product.entry.js +79 -0
- package/dist/dropi-ui/dropi-card-product.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-card-section.entry.js +39 -0
- package/dist/dropi-ui/dropi-card-section.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-carousel.entry.js +154 -0
- package/dist/dropi-ui/dropi-carousel.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-checkbox-selection-list.entry.js +74 -0
- package/dist/dropi-ui/dropi-checkbox-selection-list.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-checkbox.entry.js +37 -0
- package/dist/dropi-ui/dropi-checkbox.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-chips.entry.js +31 -0
- package/dist/dropi-ui/dropi-chips.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-city-selector.entry.js +105 -0
- package/dist/dropi-ui/dropi-city-selector.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-color-picker.entry.js +320 -0
- package/dist/dropi-ui/dropi-color-picker.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-country-flags.entry.js +38 -0
- package/dist/dropi-ui/dropi-country-flags.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-country-selector.entry.js +198 -0
- package/dist/dropi-ui/dropi-country-selector.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-date-picker-range.entry.js +116 -0
- package/dist/dropi-ui/dropi-date-picker-range.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-date-picker.entry.js +224 -0
- package/dist/dropi-ui/dropi-date-picker.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-drawer.entry.js +80 -0
- package/dist/dropi-ui/dropi-drawer.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-dropdown.entry.js +66 -0
- package/dist/dropi-ui/dropi-dropdown.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-empty-state.entry.js +37 -0
- package/dist/dropi-ui/dropi-empty-state.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-favorite-button.entry.js +28 -0
- package/dist/dropi-ui/dropi-favorite-button.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-file-upload-progress-bar.entry.js +78 -0
- package/dist/dropi-ui/dropi-file-upload-progress-bar.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-file-upload.entry.js +238 -0
- package/dist/dropi-ui/dropi-file-upload.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-icon.entry.js +66 -0
- package/dist/dropi-ui/dropi-icon.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-ilustration-icon.entry.js +40 -0
- package/dist/dropi-ui/dropi-ilustration-icon.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-image-miniature.entry.js +45 -0
- package/dist/dropi-ui/dropi-image-miniature.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-image-overlay.entry.js +64 -0
- package/dist/dropi-ui/dropi-image-overlay.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-input.entry.js +266 -0
- package/dist/dropi-ui/dropi-input.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-languages-selector.entry.js +62 -0
- package/dist/dropi-ui/dropi-languages-selector.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-logo.entry.js +38 -0
- package/dist/dropi-ui/dropi-logo.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-lottie-loader.entry.js +28 -0
- package/dist/dropi-ui/dropi-lottie-loader.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-media-player.entry.js +193 -0
- package/dist/dropi-ui/dropi-media-player.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-modal.entry.js +143 -0
- package/dist/dropi-ui/dropi-modal.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-navbar.entry.js +55 -0
- package/dist/dropi-ui/dropi-navbar.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-otp-send-code.entry.js +101 -0
- package/dist/dropi-ui/dropi-otp-send-code.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-paginator.entry.js +70 -0
- package/dist/dropi-ui/dropi-paginator.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-phone-input.entry.js +198 -0
- package/dist/dropi-ui/dropi-phone-input.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-radio-button.entry.js +48 -0
- package/dist/dropi-ui/dropi-radio-button.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-radio-selection-list.entry.js +61 -0
- package/dist/dropi-ui/dropi-radio-selection-list.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-read-more.entry.js +41 -0
- package/dist/dropi-ui/dropi-read-more.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-search.entry.js +125 -0
- package/dist/dropi-ui/dropi-search.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-select.entry.js +383 -0
- package/dist/dropi-ui/dropi-select.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-sidebar.entry.js +79 -0
- package/dist/dropi-ui/dropi-sidebar.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-simple-stepper.entry.js +54 -0
- package/dist/dropi-ui/dropi-simple-stepper.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-skeleton.entry.js +58 -0
- package/dist/dropi-ui/dropi-skeleton.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-steps.entry.js +53 -0
- package/dist/dropi-ui/dropi-steps.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-switch.entry.js +31 -0
- package/dist/dropi-ui/dropi-switch.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-table.entry.js +300 -0
- package/dist/dropi-ui/dropi-table.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-tabs.entry.js +52 -0
- package/dist/dropi-ui/dropi-tabs.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-tag-type-product.entry.js +20 -0
- package/dist/dropi-ui/dropi-tag-type-product.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-tag.entry.js +69 -0
- package/dist/dropi-ui/dropi-tag.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-text-area.entry.js +135 -0
- package/dist/dropi-ui/dropi-text-area.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-time-line.entry.js +35 -0
- package/dist/dropi-ui/dropi-time-line.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-toast.entry.js +57 -0
- package/dist/dropi-ui/dropi-toast.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-tooltip-v2.entry.js +132 -0
- package/dist/dropi-ui/dropi-tooltip-v2.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-tooltip.entry.js +22 -0
- package/dist/dropi-ui/dropi-tooltip.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-ui.css +311 -1
- package/dist/dropi-ui/dropi-ui.esm.js +50 -1
- package/dist/dropi-ui/dropi-ui.esm.js.map +1 -0
- package/dist/dropi-ui/dropi-vertical-steps.entry.js +56 -0
- package/dist/dropi-ui/dropi-vertical-steps.entry.js.map +1 -0
- package/dist/dropi-ui/dropi-youtube-lazy-video.entry.js +34 -0
- package/dist/dropi-ui/dropi-youtube-lazy-video.entry.js.map +1 -0
- package/dist/dropi-ui/index-Cvp2LQOM.js +4585 -0
- package/dist/dropi-ui/index-Cvp2LQOM.js.map +1 -0
- package/dist/dropi-ui/index.esm.js +4 -0
- package/dist/dropi-ui/index.esm.js.map +1 -0
- package/dist/dropi-ui/{p-db38bf16.entry.js → p-01e4fe42.entry.js} +1 -1
- package/dist/dropi-ui/p-099f4475.entry.js +1 -0
- package/dist/dropi-ui/p-17b16a74.entry.js +1 -0
- package/dist/dropi-ui/p-1a07b3a6.entry.js +1 -0
- package/dist/dropi-ui/p-1cd4d630.entry.js +1 -0
- package/dist/dropi-ui/p-1d75dff6.entry.js +1 -0
- package/dist/dropi-ui/p-20a6a2aa.entry.js +1 -0
- package/dist/dropi-ui/p-256bf069.entry.js +1 -0
- package/dist/dropi-ui/p-25f0c2c9.entry.js +1 -0
- package/dist/dropi-ui/p-2d9978c1.entry.js +1 -0
- package/dist/dropi-ui/p-35b37d1a.entry.js +1 -0
- package/dist/dropi-ui/p-38ea66e4.entry.js +1 -0
- package/dist/dropi-ui/p-4e401fbc.entry.js +1 -0
- package/dist/dropi-ui/p-53d2905c.entry.js +1 -0
- package/dist/dropi-ui/p-54bfb072.entry.js +1 -0
- package/dist/dropi-ui/p-5915d227.entry.js +1 -0
- package/dist/dropi-ui/p-650a7679.entry.js +1 -0
- package/dist/dropi-ui/p-719a01cb.entry.js +1 -0
- package/dist/dropi-ui/p-7369b3b4.entry.js +1 -0
- package/dist/dropi-ui/{p-e3ad21f8.entry.js → p-77cd2fcb.entry.js} +1 -1
- package/dist/dropi-ui/p-7a18b7a0.entry.js +1 -0
- package/dist/dropi-ui/p-83887880.entry.js +1 -0
- package/dist/dropi-ui/p-83dbc407.entry.js +1 -0
- package/dist/dropi-ui/p-85c637bd.entry.js +1 -0
- package/dist/dropi-ui/{p-e6e766ed.entry.js → p-87cc4dcd.entry.js} +1 -1
- package/dist/dropi-ui/p-899089f0.entry.js +1 -0
- package/dist/dropi-ui/p-8c107dbe.entry.js +1 -0
- package/dist/dropi-ui/p-929bc2b6.entry.js +1 -0
- package/dist/dropi-ui/p-9ac8caea.entry.js +1 -0
- package/dist/dropi-ui/p-9b24e8fd.entry.js +1 -0
- package/dist/dropi-ui/p-9c73b4ce.entry.js +1 -0
- package/dist/dropi-ui/p-a580e8c8.entry.js +1 -0
- package/dist/dropi-ui/p-a9f93e82.entry.js +1 -0
- package/dist/dropi-ui/p-aa0f5964.entry.js +1 -0
- package/dist/dropi-ui/p-aadd5863.entry.js +1 -0
- package/dist/dropi-ui/p-b25faf92.entry.js +1 -0
- package/dist/dropi-ui/p-b605d3d9.entry.js +1 -0
- package/dist/dropi-ui/p-bbb5e0ae.entry.js +1 -0
- package/dist/dropi-ui/p-c4d2881d.entry.js +1 -0
- package/dist/dropi-ui/p-d1aeb373.entry.js +1 -0
- package/dist/dropi-ui/p-d724ced4.entry.js +1 -0
- package/dist/dropi-ui/p-dc53a798.entry.js +1 -0
- package/dist/dropi-ui/p-e1b3c9a3.entry.js +1 -0
- package/dist/dropi-ui/p-e3c120ba.entry.js +1 -0
- package/dist/dropi-ui/p-edf796ee.entry.js +1 -0
- package/dist/dropi-ui/p-f2527a45.entry.js +1 -0
- package/dist/dropi-ui/p-f6c9057d.entry.js +1 -0
- package/dist/dropi-ui/p-f7fd7832.entry.js +1 -0
- package/dist/dropi-ui/p-f9888cea.entry.js +1 -0
- package/dist/dropi-ui/p-ffd415a2.entry.js +1 -0
- package/dist/esm/dropi-accordion-item.entry.js +1 -1
- package/dist/esm/dropi-alert.entry.js +1 -1
- package/dist/esm/dropi-banner-external.entry.js +1 -1
- package/dist/esm/dropi-breadcrumb.entry.js +2 -2
- package/dist/esm/dropi-button.entry.js +1 -1
- package/dist/esm/dropi-card-product.entry.js +2 -2
- package/dist/esm/dropi-card-section.entry.js +1 -1
- package/dist/esm/dropi-checkbox-selection-list.entry.js +2 -2
- package/dist/esm/dropi-chips.entry.js +1 -1
- package/dist/esm/dropi-city-selector.entry.js +2 -2
- package/dist/esm/dropi-country-selector.entry.js +1 -1
- package/dist/esm/dropi-date-picker.entry.js +3 -3
- package/dist/esm/dropi-drawer.entry.js +1 -1
- package/dist/esm/dropi-favorite-button.entry.js +1 -1
- package/dist/esm/dropi-file-upload-progress-bar.entry.js +1 -1
- package/dist/esm/dropi-file-upload.entry.js +2 -2
- package/dist/esm/dropi-icon.entry.js +18 -20
- package/dist/esm/dropi-ilustration-icon.entry.js +1 -1
- package/dist/esm/dropi-image-miniature.entry.js +1 -1
- package/dist/esm/dropi-image-overlay.entry.js +1 -1
- package/dist/esm/dropi-input_3.entry.js +11 -9
- package/dist/esm/dropi-languages-selector.entry.js +1 -1
- package/dist/esm/dropi-media-player.entry.js +2 -2
- package/dist/esm/dropi-modal.entry.js +2 -2
- package/dist/esm/dropi-navbar.entry.js +2 -2
- package/dist/esm/dropi-otp-send-code.entry.js +14 -6
- package/dist/esm/dropi-phone-input.entry.js +1 -1
- package/dist/esm/dropi-radio-selection-list.entry.js +2 -2
- package/dist/esm/dropi-search.entry.js +2 -2
- package/dist/esm/dropi-select.entry.js +7 -7
- package/dist/esm/dropi-sidebar.entry.js +2 -2
- package/dist/esm/dropi-steps.entry.js +1 -1
- package/dist/esm/dropi-table.entry.js +5 -5
- package/dist/esm/dropi-tabs.entry.js +1 -1
- package/dist/esm/dropi-text-area.entry.js +1 -1
- package/dist/esm/dropi-time-line.entry.js +1 -1
- package/dist/esm/dropi-toast.entry.js +1 -1
- package/dist/esm/dropi-tooltip-v2.entry.js +2 -2
- package/dist/esm/dropi-ui.js +1 -1
- package/dist/esm/dropi-vertical-steps.entry.js +1 -1
- package/dist/esm/dropi-youtube-lazy-video.entry.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/dropi-icon/dropi-icon.d.ts +4 -9
- package/dist/types/components/dropi-input/dropi-input.d.ts +1 -1
- package/dist/types/components/dropi-modal/dropi-modal.d.ts +1 -1
- package/dist/types/components/dropi-otp-send-code/dropi-otp-send-code.d.ts +3 -1
- package/dist/types/components/dropi-table/dropi-table.d.ts +1 -1
- package/dist/types/components.d.ts +39 -38
- package/hydrate/index.js +109 -101
- package/hydrate/index.mjs +109 -101
- package/package.json +1 -1
- package/scripts/setup.js +25 -4
- package/dist/components/p-B_Ace02i.js +0 -1
- package/dist/components/p-BrjO_JXp.js +0 -1
- package/dist/components/p-BwhxWL4p.js +0 -1
- package/dist/components/p-Bz2jXX3R.js +0 -1
- package/dist/components/p-D-vQQQNz.js +0 -1
- package/dist/components/p-D13d88W3.js +0 -1
- package/dist/components/p-I3w7xF7Q.js +0 -1
- package/dist/components/p-o5gyrbbD.js +0 -1
- package/dist/dropi-ui/p-00e5a2de.entry.js +0 -1
- package/dist/dropi-ui/p-0188e07a.entry.js +0 -1
- package/dist/dropi-ui/p-02710049.entry.js +0 -1
- package/dist/dropi-ui/p-18adf694.entry.js +0 -1
- package/dist/dropi-ui/p-1a3619c3.entry.js +0 -1
- package/dist/dropi-ui/p-25640777.entry.js +0 -1
- package/dist/dropi-ui/p-2674d901.entry.js +0 -1
- package/dist/dropi-ui/p-2af538b9.entry.js +0 -1
- package/dist/dropi-ui/p-3013f3b8.entry.js +0 -1
- package/dist/dropi-ui/p-3321ca70.entry.js +0 -1
- package/dist/dropi-ui/p-33d242ec.entry.js +0 -1
- package/dist/dropi-ui/p-39af6478.entry.js +0 -1
- package/dist/dropi-ui/p-446a481d.entry.js +0 -1
- package/dist/dropi-ui/p-50e0d44f.entry.js +0 -1
- package/dist/dropi-ui/p-5c0bd7c2.entry.js +0 -1
- package/dist/dropi-ui/p-5ddf6e93.entry.js +0 -1
- package/dist/dropi-ui/p-5fb33ae4.entry.js +0 -1
- package/dist/dropi-ui/p-665ef7ba.entry.js +0 -1
- package/dist/dropi-ui/p-66b80371.entry.js +0 -1
- package/dist/dropi-ui/p-7bfc1c27.entry.js +0 -1
- package/dist/dropi-ui/p-7c0d2edf.entry.js +0 -1
- package/dist/dropi-ui/p-7eb27836.entry.js +0 -1
- package/dist/dropi-ui/p-8bf5d8ee.entry.js +0 -1
- package/dist/dropi-ui/p-9212f544.entry.js +0 -1
- package/dist/dropi-ui/p-955e52f8.entry.js +0 -1
- package/dist/dropi-ui/p-976a15e3.entry.js +0 -1
- package/dist/dropi-ui/p-a1c93e55.entry.js +0 -1
- package/dist/dropi-ui/p-a232c6a7.entry.js +0 -1
- package/dist/dropi-ui/p-a822a23e.entry.js +0 -1
- package/dist/dropi-ui/p-af8e2157.entry.js +0 -1
- package/dist/dropi-ui/p-c3614c4a.entry.js +0 -1
- package/dist/dropi-ui/p-cc527d91.entry.js +0 -1
- package/dist/dropi-ui/p-cdde481b.entry.js +0 -1
- package/dist/dropi-ui/p-dd5d8b1b.entry.js +0 -1
- package/dist/dropi-ui/p-efc2fc35.entry.js +0 -1
- package/dist/dropi-ui/p-f41cd9b5.entry.js +0 -1
- package/dist/dropi-ui/p-fa3d0267.entry.js +0 -1
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { r as registerInstance, h } from './index-Cvp2LQOM.js';
|
|
2
|
+
|
|
3
|
+
const dropiBadgeCss = () => `:host{display:inline-flex}*,*::before,*::after{box-sizing:border-box}.tag-state{border-radius:12px;padding:2px 10px;display:flex;align-items:center;gap:4px}.tag-state svg{width:13px}.tag-state p{font-size:13px;font-weight:var(--font-weight-medium);line-height:20px;margin:0;padding:0}.tag-state.active{background:var(--Success-Success-50, #e7f8f3);color:var(--Success-Success-500, #0abb87)}.tag-state.pending{color:var(--Orange-orange-500, #f49a3d);background:var(--Orange-orange-50, #fef5ec)}.tag-state.canceled,.tag-state.frozen{color:var(--Gray-Gray-500, #69738c);background:var(--Gray-Gray-50, #f7f8fa)}`;
|
|
4
|
+
|
|
5
|
+
const DropiBadge = class {
|
|
6
|
+
constructor(hostRef) {
|
|
7
|
+
registerInstance(this, hostRef);
|
|
8
|
+
}
|
|
9
|
+
/** Badge state: pending | active | canceled | frozen */
|
|
10
|
+
state;
|
|
11
|
+
stateText = {
|
|
12
|
+
pending: 'Pendiente',
|
|
13
|
+
active: 'Activo',
|
|
14
|
+
canceled: 'Cancelado',
|
|
15
|
+
frozen: 'Congelado',
|
|
16
|
+
};
|
|
17
|
+
renderIcon() {
|
|
18
|
+
if (this.state === 'active') {
|
|
19
|
+
return (h("svg", { width: "17", height: "17", viewBox: "0 0 17 17", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { d: "M11.5444 5.87067L12.5389 6.88004L8.43554 10.9225C8.16142 11.1966 7.80087 11.3333 7.43892 11.3333C7.07696 11.3333 6.71287 11.1952 6.43592 10.919L4.46533 9.00929L5.45204 7.99142L7.43042 9.90887L11.5444 5.87067ZM17 8.5C17 13.187 13.187 17 8.5 17C3.81296 17 0 13.187 0 8.5C0 3.81296 3.81296 0 8.5 0C13.187 0 17 3.81296 17 8.5ZM15.5833 8.5C15.5833 4.59425 12.4057 1.41667 8.5 1.41667C4.59425 1.41667 1.41667 4.59425 1.41667 8.5C1.41667 12.4057 4.59425 15.5833 8.5 15.5833C12.4057 15.5833 15.5833 12.4057 15.5833 8.5Z", fill: "currentColor" })));
|
|
20
|
+
}
|
|
21
|
+
if (this.state === 'pending') {
|
|
22
|
+
return (h("svg", { width: "17", height: "17", viewBox: "0 0 17 17", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { d: "M8.5 17C3.81296 17 0 13.187 0 8.5C0 3.81296 3.81296 0 8.5 0C13.187 0 17 3.81296 17 8.5C17 13.187 13.187 17 8.5 17ZM8.5 1.41667C4.59425 1.41667 1.41667 4.59425 1.41667 8.5C1.41667 12.4057 4.59425 15.5833 8.5 15.5833C12.4057 15.5833 15.5833 12.4057 15.5833 8.5C15.5833 4.59425 12.4057 1.41667 8.5 1.41667ZM9.20833 8.5V4.25C9.20833 3.859 8.891 3.54167 8.5 3.54167C8.109 3.54167 7.79167 3.859 7.79167 4.25V7.79167H5.66667C5.27567 7.79167 4.95833 8.109 4.95833 8.5C4.95833 8.891 5.27567 9.20833 5.66667 9.20833H8.5C8.891 9.20833 9.20833 8.891 9.20833 8.5Z", fill: "currentColor" })));
|
|
23
|
+
}
|
|
24
|
+
if (this.state === 'canceled') {
|
|
25
|
+
return (h("svg", { width: "12", height: "14", viewBox: "0 0 14 16", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M11.5497 4.86859V5.76046C12.1075 6.00391 12.5823 6.40464 12.916 6.91364C13.2497 7.42264 13.4279 8.01785 13.4287 8.62648V12.3844C13.4277 13.2146 13.0974 14.0106 12.5103 14.5976C11.9233 15.1847 11.1273 15.515 10.2971 15.516H4.03392C3.20368 15.515 2.40773 15.1847 1.82066 14.5976C1.23359 14.0106 0.903338 13.2146 0.902344 12.3844V8.62648C0.903144 8.01785 1.08129 7.42264 1.41498 6.91364C1.74868 6.40464 2.22347 6.00391 2.78129 5.76046V4.86859C2.78129 3.70582 3.2432 2.59068 4.0654 1.76848C4.8876 0.946282 6.00274 0.484375 7.1655 0.484375C8.32827 0.484375 9.44341 0.946282 10.2656 1.76848C11.0878 2.59068 11.5497 3.70582 11.5497 4.86859ZM4.95114 2.65422C4.36386 3.24151 4.03392 4.03804 4.03392 4.86859V5.4949H10.2971V4.86859C10.2971 4.03804 9.96715 3.24151 9.37986 2.65422C8.79258 2.06694 7.99605 1.73701 7.1655 1.73701C6.33496 1.73701 5.53843 2.06694 4.95114 2.65422ZM11.6257 13.713C11.9781 13.3606 12.176 12.8827 12.176 12.3844V8.62648C12.176 8.12815 11.9781 7.65023 11.6257 7.29786C11.2733 6.94549 10.7954 6.74753 10.2971 6.74753H4.03392C3.53559 6.74753 3.05768 6.94549 2.70531 7.29786C2.35294 7.65023 2.15498 8.12815 2.15498 8.62648V12.3844C2.15498 12.8827 2.35294 13.3606 2.70531 13.713C3.05768 14.0654 3.53559 14.2633 4.03392 14.2633H10.2971C10.7954 14.2633 11.2733 14.0654 11.6257 13.713ZM6.72263 9.43615C6.84009 9.31869 6.99939 9.25271 7.1655 9.25271C7.33161 9.25271 7.49092 9.31869 7.60837 9.43615C7.72583 9.55361 7.79182 9.71291 7.79182 9.87902V11.1317C7.79182 11.2978 7.72583 11.4571 7.60837 11.5745C7.49092 11.692 7.33161 11.758 7.1655 11.758C6.99939 11.758 6.84009 11.692 6.72263 11.5745C6.60517 11.4571 6.53919 11.2978 6.53919 11.1317V9.87902C6.53919 9.71291 6.60517 9.55361 6.72263 9.43615Z", fill: "currentColor" })));
|
|
26
|
+
}
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
render() {
|
|
30
|
+
return (h("div", { key: 'b4cae2eac2f963a641ca23e27b33899469b2b370', class: `tag-state ${this.state}` }, this.renderIcon(), h("p", { key: '64a2504a1844f2cb9397878ca305aa183b0609a5' }, this.stateText[this.state])));
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
DropiBadge.style = dropiBadgeCss();
|
|
34
|
+
|
|
35
|
+
export { DropiBadge as dropi_badge };
|
|
36
|
+
//# sourceMappingURL=dropi-badge.entry.esm.js.map
|
|
37
|
+
|
|
38
|
+
//# sourceMappingURL=dropi-badge.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"dropi-badge.entry.js","mappings":";;AAAA,MAAM,aAAa,GAAG,MAAM,CAAC,+lBAA+lB,CAAC;;MCahnB,UAAU,GAAA,MAAA;;;;;AAEb,IAAA,KAAK;AAEL,IAAA,SAAS,GAA+B;AAC9C,QAAA,OAAO,EAAE,WAAW;AACpB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,QAAQ,EAAE,WAAW;AACrB,QAAA,MAAM,EAAE,WAAW;KACpB;IAEO,UAAU,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;AAC3B,YAAA,QACE,WAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,4BAA4B,EAAA,EAC5F,CAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,igBAAigB,EAAC,IAAI,EAAC,cAAc,EAAA,CAAE,CAC3hB;;AAGV,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;AAC5B,YAAA,QACE,WAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,4BAA4B,EAAA,EAC5F,CAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,wiBAAwiB,EAAC,IAAI,EAAC,cAAc,EAAA,CAAE,CAClkB;;AAGV,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,UAAU,EAAE;YAC7B,QACE,WAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,4BAA4B,EAAA,EAC5F,CAAA,CAAA,MAAA,EAAA,EAAA,WAAA,EAAgB,SAAS,EAAA,WAAA,EAAW,SAAS,EAAC,CAAC,EAAC,uqDAAuqD,EAAC,IAAI,EAAC,cAAc,EAAA,CAAE,CACzuD;;AAGV,QAAA,OAAO,IAAI;;IAGb,MAAM,GAAA;QACJ,QACE,4DAAK,KAAK,EAAE,CAAA,UAAA,EAAa,IAAI,CAAC,KAAK,EAAE,EAAA,EAClC,IAAI,CAAC,UAAU,EAAE,EAClB,CAAA,CAAA,GAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAK,CAC/B;;;;;;;","names":[],"sources":["src/components/dropi-badge/dropi-badge.css?tag=dropi-badge&encapsulation=shadow","src/components/dropi-badge/dropi-badge.tsx"],"sourcesContent":[":host {\n display: inline-flex;\n}\n\n*, *::before, *::after { box-sizing: border-box; }\n\n.tag-state {\n border-radius: 12px;\n padding: 2px 10px;\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.tag-state svg {\n width: 13px;\n}\n\n.tag-state p {\n font-size: 13px;\n font-weight: var(--font-weight-medium);\n line-height: 20px;\n margin: 0;\n padding: 0;\n}\n\n.tag-state.active {\n background: var(--Success-Success-50, #e7f8f3);\n color: var(--Success-Success-500, #0abb87);\n}\n\n.tag-state.pending {\n color: var(--Orange-orange-500, #f49a3d);\n background: var(--Orange-orange-50, #fef5ec);\n}\n\n.tag-state.canceled,\n.tag-state.frozen {\n color: var(--Gray-Gray-500, #69738c);\n background: var(--Gray-Gray-50, #f7f8fa);\n}\n","import { Component, Prop, h } from '@stencil/core';\n\nexport type BadgeState = 'pending' | 'active' | 'canceled' | 'frozen';\n\n/**\n * @component dropi-badge\n * Status badge for user/account states.\n */\n@Component({\n tag: 'dropi-badge',\n styleUrl: 'dropi-badge.css',\n shadow: true,\n})\nexport class DropiBadge {\n /** Badge state: pending | active | canceled | frozen */\n @Prop() state: BadgeState;\n\n private stateText: Record<BadgeState, string> = {\n pending: 'Pendiente',\n active: 'Activo',\n canceled: 'Cancelado',\n frozen: 'Congelado',\n };\n\n private renderIcon() {\n if (this.state === 'active') {\n return (\n <svg width=\"17\" height=\"17\" viewBox=\"0 0 17 17\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M11.5444 5.87067L12.5389 6.88004L8.43554 10.9225C8.16142 11.1966 7.80087 11.3333 7.43892 11.3333C7.07696 11.3333 6.71287 11.1952 6.43592 10.919L4.46533 9.00929L5.45204 7.99142L7.43042 9.90887L11.5444 5.87067ZM17 8.5C17 13.187 13.187 17 8.5 17C3.81296 17 0 13.187 0 8.5C0 3.81296 3.81296 0 8.5 0C13.187 0 17 3.81296 17 8.5ZM15.5833 8.5C15.5833 4.59425 12.4057 1.41667 8.5 1.41667C4.59425 1.41667 1.41667 4.59425 1.41667 8.5C1.41667 12.4057 4.59425 15.5833 8.5 15.5833C12.4057 15.5833 15.5833 12.4057 15.5833 8.5Z\" fill=\"currentColor\"/>\n </svg>\n );\n }\n if (this.state === 'pending') {\n return (\n <svg width=\"17\" height=\"17\" viewBox=\"0 0 17 17\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M8.5 17C3.81296 17 0 13.187 0 8.5C0 3.81296 3.81296 0 8.5 0C13.187 0 17 3.81296 17 8.5C17 13.187 13.187 17 8.5 17ZM8.5 1.41667C4.59425 1.41667 1.41667 4.59425 1.41667 8.5C1.41667 12.4057 4.59425 15.5833 8.5 15.5833C12.4057 15.5833 15.5833 12.4057 15.5833 8.5C15.5833 4.59425 12.4057 1.41667 8.5 1.41667ZM9.20833 8.5V4.25C9.20833 3.859 8.891 3.54167 8.5 3.54167C8.109 3.54167 7.79167 3.859 7.79167 4.25V7.79167H5.66667C5.27567 7.79167 4.95833 8.109 4.95833 8.5C4.95833 8.891 5.27567 9.20833 5.66667 9.20833H8.5C8.891 9.20833 9.20833 8.891 9.20833 8.5Z\" fill=\"currentColor\"/>\n </svg>\n );\n }\n if (this.state === 'canceled') {\n return (\n <svg width=\"12\" height=\"14\" viewBox=\"0 0 14 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.5497 4.86859V5.76046C12.1075 6.00391 12.5823 6.40464 12.916 6.91364C13.2497 7.42264 13.4279 8.01785 13.4287 8.62648V12.3844C13.4277 13.2146 13.0974 14.0106 12.5103 14.5976C11.9233 15.1847 11.1273 15.515 10.2971 15.516H4.03392C3.20368 15.515 2.40773 15.1847 1.82066 14.5976C1.23359 14.0106 0.903338 13.2146 0.902344 12.3844V8.62648C0.903144 8.01785 1.08129 7.42264 1.41498 6.91364C1.74868 6.40464 2.22347 6.00391 2.78129 5.76046V4.86859C2.78129 3.70582 3.2432 2.59068 4.0654 1.76848C4.8876 0.946282 6.00274 0.484375 7.1655 0.484375C8.32827 0.484375 9.44341 0.946282 10.2656 1.76848C11.0878 2.59068 11.5497 3.70582 11.5497 4.86859ZM4.95114 2.65422C4.36386 3.24151 4.03392 4.03804 4.03392 4.86859V5.4949H10.2971V4.86859C10.2971 4.03804 9.96715 3.24151 9.37986 2.65422C8.79258 2.06694 7.99605 1.73701 7.1655 1.73701C6.33496 1.73701 5.53843 2.06694 4.95114 2.65422ZM11.6257 13.713C11.9781 13.3606 12.176 12.8827 12.176 12.3844V8.62648C12.176 8.12815 11.9781 7.65023 11.6257 7.29786C11.2733 6.94549 10.7954 6.74753 10.2971 6.74753H4.03392C3.53559 6.74753 3.05768 6.94549 2.70531 7.29786C2.35294 7.65023 2.15498 8.12815 2.15498 8.62648V12.3844C2.15498 12.8827 2.35294 13.3606 2.70531 13.713C3.05768 14.0654 3.53559 14.2633 4.03392 14.2633H10.2971C10.7954 14.2633 11.2733 14.0654 11.6257 13.713ZM6.72263 9.43615C6.84009 9.31869 6.99939 9.25271 7.1655 9.25271C7.33161 9.25271 7.49092 9.31869 7.60837 9.43615C7.72583 9.55361 7.79182 9.71291 7.79182 9.87902V11.1317C7.79182 11.2978 7.72583 11.4571 7.60837 11.5745C7.49092 11.692 7.33161 11.758 7.1655 11.758C6.99939 11.758 6.84009 11.692 6.72263 11.5745C6.60517 11.4571 6.53919 11.2978 6.53919 11.1317V9.87902C6.53919 9.71291 6.60517 9.55361 6.72263 9.43615Z\" fill=\"currentColor\"/>\n </svg>\n );\n }\n return null;\n }\n\n render() {\n return (\n <div class={`tag-state ${this.state}`}>\n {this.renderIcon()}\n <p>{this.stateText[this.state]}</p>\n </div>\n );\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { r as registerInstance, d as createEvent, a as getElement, h } from './index-Cvp2LQOM.js';
|
|
2
|
+
|
|
3
|
+
const dropiBannerExternalCss = () => `:host{display:block;width:100%}.dropi-banner-external{display:block;width:100%;position:relative;margin-bottom:16px;border-radius:var(--Border-2, 8px)}.dropi-banner-external a{display:block;text-decoration:none}.click-wrapper{cursor:pointer}.inner{position:relative;display:block}.inner img{display:block;width:100%;height:auto;border-radius:var(--Border-2, 8px);max-width:1220px;margin:auto}.close-btn{position:absolute;top:4px;right:4px;background:rgba(255, 255, 255, 0.8);border:none;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:background 0.15s ease}.close-btn:hover{background:rgba(255, 255, 255, 1)}`;
|
|
4
|
+
|
|
5
|
+
const DropiBannerExternal = class {
|
|
6
|
+
constructor(hostRef) {
|
|
7
|
+
registerInstance(this, hostRef);
|
|
8
|
+
this.bannerClick = createEvent(this, "bannerClick", 7);
|
|
9
|
+
this.isVisible = createEvent(this, "isVisible", 7);
|
|
10
|
+
}
|
|
11
|
+
/** Image URL to display */
|
|
12
|
+
imageUrl = '';
|
|
13
|
+
/** Optional click-through URL */
|
|
14
|
+
link = '';
|
|
15
|
+
/** Alt text for the image */
|
|
16
|
+
alt = '';
|
|
17
|
+
/** Background color behind the image */
|
|
18
|
+
backgroundColor = 'transparent';
|
|
19
|
+
/** Slug name (matches Angular `slugName`) */
|
|
20
|
+
slugName = '';
|
|
21
|
+
/** Whether to show on white brand (matches Angular `viewOnWhiteBrand`) */
|
|
22
|
+
viewOnWhiteBrand = false;
|
|
23
|
+
/** Countries list to show (matches Angular `viewOnlyCountries`) */
|
|
24
|
+
viewOnlyCountries = [];
|
|
25
|
+
closed = false;
|
|
26
|
+
get el() { return getElement(this); }
|
|
27
|
+
componentWillLoad() {
|
|
28
|
+
if (!this.imageUrl) {
|
|
29
|
+
this.imageUrl =
|
|
30
|
+
this.el.getAttribute('imageUrl') ||
|
|
31
|
+
this.el.getAttribute('image-url') ||
|
|
32
|
+
this.el.getAttribute('imageurl') ||
|
|
33
|
+
'';
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/** Emitted when the banner is clicked (only when no link is set) */
|
|
37
|
+
bannerClick;
|
|
38
|
+
/** Emitted with false when the close button is clicked (matches Angular `isVisible`) */
|
|
39
|
+
isVisible;
|
|
40
|
+
handleClick(e) {
|
|
41
|
+
if (!this.link) {
|
|
42
|
+
e.preventDefault();
|
|
43
|
+
this.bannerClick.emit();
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
closeBanner(e) {
|
|
47
|
+
e.preventDefault();
|
|
48
|
+
e.stopPropagation();
|
|
49
|
+
this.closed = true;
|
|
50
|
+
this.isVisible.emit(false);
|
|
51
|
+
}
|
|
52
|
+
render() {
|
|
53
|
+
if (this.closed || !this.imageUrl)
|
|
54
|
+
return null;
|
|
55
|
+
const inner = (h("div", { class: "inner" }, h("img", { src: this.imageUrl, alt: this.alt }), h("button", { class: "close-btn", "aria-label": "Cerrar banner", onClick: (e) => this.closeBanner(e) }, h("dropi-icon", { name: "Close-small", iconWidth: "20px", iconHeight: "20px", color: "Gray-Gray-600" }))));
|
|
56
|
+
return (h("div", { class: "dropi-banner-external", style: { background: this.backgroundColor } }, this.link ? (h("a", { href: this.link, target: "_blank", rel: "noopener noreferrer", onClick: (e) => this.handleClick(e) }, inner)) : (h("div", { class: "click-wrapper", onClick: (e) => this.handleClick(e) }, inner))));
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
DropiBannerExternal.style = dropiBannerExternalCss();
|
|
60
|
+
|
|
61
|
+
export { DropiBannerExternal as dropi_banner_external };
|
|
62
|
+
//# sourceMappingURL=dropi-banner-external.entry.esm.js.map
|
|
63
|
+
|
|
64
|
+
//# sourceMappingURL=dropi-banner-external.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"dropi-banner-external.entry.js","mappings":";;AAAA,MAAM,sBAAsB,GAAG,MAAM,CAAC,orBAAorB,CAAC;;MCkB9sB,mBAAmB,GAAA,MAAA;;;;;;;IAEtB,QAAQ,GAAW,EAAE;;IAErB,IAAI,GAAW,EAAE;;IAEjB,GAAG,GAAW,EAAE;;IAEhB,eAAe,GAAW,aAAa;;IAEvC,QAAQ,GAAW,EAAE;;IAErB,gBAAgB,GAAY,KAAK;;IAEjC,iBAAiB,GAAa,EAAE;IAEvB,MAAM,GAAY,KAAK;;IAIxC,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,QAAQ;AACX,gBAAA,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC;AAChC,oBAAA,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC;AACjC,oBAAA,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC;AAChC,oBAAA,EAAE;;;;AAKC,IAAA,WAAW;;AAEX,IAAA,SAAS;AAEV,IAAA,WAAW,CAAC,CAAa,EAAA;AAC/B,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,CAAC,CAAC,cAAc,EAAE;AAClB,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;;;AAInB,IAAA,WAAW,CAAC,CAAa,EAAA;QAC/B,CAAC,CAAC,cAAc,EAAE;QAClB,CAAC,CAAC,eAAe,EAAE;AACnB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;;IAG5B,MAAM,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ;AAAE,YAAA,OAAO,IAAI;AAE9C,QAAA,MAAM,KAAK,IACT,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,OAAO,EAAA,EAChB,CAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAA,CAAI,EAC1C,CAAA,CAAA,QAAA,EAAA,EAAQ,KAAK,EAAC,WAAW,gBAAY,eAAe,EAAC,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAA,EACtF,CAAA,CAAA,YAAA,EAAA,EAAY,IAAI,EAAC,aAAa,EAAC,SAAS,EAAC,MAAM,EAAC,UAAU,EAAC,MAAM,EAAC,KAAK,EAAC,eAAe,GAAG,CACnF,CACL,CACP;QAED,QACE,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,uBAAuB,EAAC,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,eAAe,EAAE,EAAA,EAC3E,IAAI,CAAC,IAAI,IACR,CAAA,CAAA,GAAA,EAAA,EAAG,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAC,QAAQ,EAAC,GAAG,EAAC,qBAAqB,EAAC,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAA,EAC9F,KAAK,CACJ,KAEJ,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,eAAe,EAAC,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAA,EAC3D,KAAK,CACF,CACP,CACG;;;;;;;","names":[],"sources":["src/components/dropi-banner-external/dropi-banner-external.css?tag=dropi-banner-external&encapsulation=shadow","src/components/dropi-banner-external/dropi-banner-external.tsx"],"sourcesContent":[":host {\n display: block;\n width: 100%;\n}\n\n.dropi-banner-external {\n display: block;\n width: 100%;\n position: relative;\n margin-bottom: 16px;\n border-radius: var(--Border-2, 8px);\n}\n\n.dropi-banner-external a {\n display: block;\n text-decoration: none;\n}\n\n.click-wrapper {\n cursor: pointer;\n}\n\n.inner {\n position: relative;\n display: block;\n}\n\n.inner img {\n display: block;\n width: 100%;\n height: auto;\n border-radius: var(--Border-2, 8px);\n max-width: 1220px;\n margin: auto;\n}\n\n.close-btn {\n position: absolute;\n top: 4px;\n right: 4px;\n background: rgba(255, 255, 255, 0.8);\n border: none;\n border-radius: 50%;\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n padding: 0;\n transition: background 0.15s ease;\n}\n\n.close-btn:hover {\n background: rgba(255, 255, 255, 1);\n}\n","import { Component, Prop, State, Event, EventEmitter, Element, h } from '@stencil/core';\n\n/**\n * @component dropi-banner-external\n * External banner image with optional link and close button.\n * Pass imageUrl directly (the Angular version fetched from WordPress).\n *\n * @example\n * <dropi-banner-external\n * image-url=\"https://example.com/banner.jpg\"\n * link=\"https://dropi.co\"\n * ></dropi-banner-external>\n */\n@Component({\n tag: 'dropi-banner-external',\n styleUrl: 'dropi-banner-external.css',\n shadow: true,\n})\nexport class DropiBannerExternal {\n /** Image URL to display */\n @Prop() imageUrl: string = '';\n /** Optional click-through URL */\n @Prop() link: string = '';\n /** Alt text for the image */\n @Prop() alt: string = '';\n /** Background color behind the image */\n @Prop() backgroundColor: string = 'transparent';\n /** Slug name (matches Angular `slugName`) */\n @Prop() slugName: string = '';\n /** Whether to show on white brand (matches Angular `viewOnWhiteBrand`) */\n @Prop() viewOnWhiteBrand: boolean = false;\n /** Countries list to show (matches Angular `viewOnlyCountries`) */\n @Prop() viewOnlyCountries: string[] = [];\n\n @State() private closed: boolean = false;\n \n @Element() el: HTMLElement;\n\n componentWillLoad() {\n if (!this.imageUrl) {\n this.imageUrl = \n this.el.getAttribute('imageUrl') || \n this.el.getAttribute('image-url') || \n this.el.getAttribute('imageurl') || \n '';\n }\n }\n\n /** Emitted when the banner is clicked (only when no link is set) */\n @Event() bannerClick: EventEmitter<void>;\n /** Emitted with false when the close button is clicked (matches Angular `isVisible`) */\n @Event() isVisible: EventEmitter<boolean>;\n\n private handleClick(e: MouseEvent) {\n if (!this.link) {\n e.preventDefault();\n this.bannerClick.emit();\n }\n }\n\n private closeBanner(e: MouseEvent) {\n e.preventDefault();\n e.stopPropagation();\n this.closed = true;\n this.isVisible.emit(false);\n }\n\n render() {\n if (this.closed || !this.imageUrl) return null;\n\n const inner = (\n <div class=\"inner\">\n <img src={this.imageUrl} alt={this.alt} />\n <button class=\"close-btn\" aria-label=\"Cerrar banner\" onClick={(e) => this.closeBanner(e)}>\n <dropi-icon name=\"Close-small\" iconWidth=\"20px\" iconHeight=\"20px\" color=\"Gray-Gray-600\" />\n </button>\n </div>\n );\n\n return (\n <div class=\"dropi-banner-external\" style={{ background: this.backgroundColor }}>\n {this.link ? (\n <a href={this.link} target=\"_blank\" rel=\"noopener noreferrer\" onClick={(e) => this.handleClick(e)}>\n {inner}\n </a>\n ) : (\n <div class=\"click-wrapper\" onClick={(e) => this.handleClick(e)}>\n {inner}\n </div>\n )}\n </div>\n );\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { r as registerInstance, d as createEvent, h } from './index-Cvp2LQOM.js';
|
|
2
|
+
|
|
3
|
+
const dropiBreadcrumbCss = () => `:host{display:block}*,*::before,*::after{box-sizing:border-box}.breadcrumb{margin:0}.crumb-list{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.crumb-home{display:flex;padding-right:4px;align-items:center;gap:4px}.home-link{display:inline-flex;align-items:center;color:var(--Gray-Gray-500, #69738c);text-decoration:none;transition:color 0.2s ease}.home-link:hover{color:var(--Gray-Gray-700, #32394d)}.crumb{display:flex;padding:0 4px;align-items:center;gap:8px}.crumb-link{color:var(--Gray-Gray-500, #69738c);text-align:center;cursor:pointer;text-decoration:none;transition:color 0.2s ease;font-size:var(--font-size-s, 12px)}.crumb-link:hover{color:var(--Gray-Gray-700, #32394d);text-decoration:underline}.crumb-link.disabled{pointer-events:none;color:var(--Gray-Gray-300, #a1a8b8);cursor:not-allowed;text-decoration:none}.current{color:var(--Gray-Gray-700, #32394d);cursor:default;font-size:var(--font-size-s, 12px)}`;
|
|
4
|
+
|
|
5
|
+
const DropiBreadcrumb = class {
|
|
6
|
+
constructor(hostRef) {
|
|
7
|
+
registerInstance(this, hostRef);
|
|
8
|
+
this.dropiNavigate = createEvent(this, "dropiNavigate", 7);
|
|
9
|
+
}
|
|
10
|
+
/** Breadcrumb items (array or JSON string). Last item is rendered as current. */
|
|
11
|
+
items = [];
|
|
12
|
+
/** Home link href */
|
|
13
|
+
homeRoute = '/';
|
|
14
|
+
/** dropi-icon name for home */
|
|
15
|
+
homeIconName = 'Home';
|
|
16
|
+
/** Whether the last item is also clickable */
|
|
17
|
+
lastItemClickable = false;
|
|
18
|
+
/** Emitted when any item or home is clicked. Detail is the item or homeRoute string. */
|
|
19
|
+
dropiNavigate;
|
|
20
|
+
get parsedItems() {
|
|
21
|
+
if (typeof this.items === 'string') {
|
|
22
|
+
try {
|
|
23
|
+
return JSON.parse(this.items);
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
return [];
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return this.items;
|
|
30
|
+
}
|
|
31
|
+
render() {
|
|
32
|
+
const items = this.parsedItems;
|
|
33
|
+
return (h("nav", { key: 'c4546d7a0c7852e01f685176b5365f1e0082ad24', class: "breadcrumb", "aria-label": "Breadcrumb" }, h("div", { key: '924ab634ae4e71f6bd39a67b4b3889cdca20234d', class: "crumb-list" }, h("div", { key: 'e7b1b285bdd497a028a041ada1eb8b34f77384b0', class: "crumb-home" }, h("a", { key: '9e288d5f5761daed20b35dbf056c7de9c2e7b8e3', href: this.homeRoute, class: "home-link", "aria-label": "Inicio", onClick: (e) => { e.preventDefault(); this.dropiNavigate.emit(this.homeRoute); } }, h("dropi-icon", { key: '803ab6d710976b341f19ad7d49fde670acc2c466', name: this.homeIconName, iconWidth: "16px", color: "Gray-Gray-500" })), items.length > 0 && (h("dropi-icon", { key: '44d1cad9efa9cbc6a52bc26a2229af6680cd8733', name: "Dropdown-Right", iconWidth: "16px", color: "Gray-Gray-500" }))), items.map((item, idx) => {
|
|
34
|
+
const isLast = idx === items.length - 1;
|
|
35
|
+
const href = item.url || item.routerLink || '#';
|
|
36
|
+
return (h("div", { class: "crumb", key: idx }, (!isLast || this.lastItemClickable) ? (h("a", { class: `crumb-link Body-S-Regular${item.disabled ? ' disabled' : ''}`, href: href, onClick: (e) => {
|
|
37
|
+
e.preventDefault();
|
|
38
|
+
if (!item.disabled)
|
|
39
|
+
this.dropiNavigate.emit(item);
|
|
40
|
+
} }, item.label)) : (h("span", { class: "current Body-S-Regular", "aria-current": "page" }, item.label)), !isLast && (h("dropi-icon", { name: "Dropdown-Right", iconWidth: "16px", iconHeight: "16px", color: "Gray-Gray-500" }))));
|
|
41
|
+
}))));
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
DropiBreadcrumb.style = dropiBreadcrumbCss();
|
|
45
|
+
|
|
46
|
+
export { DropiBreadcrumb as dropi_breadcrumb };
|
|
47
|
+
//# sourceMappingURL=dropi-breadcrumb.entry.esm.js.map
|
|
48
|
+
|
|
49
|
+
//# sourceMappingURL=dropi-breadcrumb.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"dropi-breadcrumb.entry.js","mappings":"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","names":[],"sources":["src/components/dropi-breadcrumb/dropi-breadcrumb.css?tag=dropi-breadcrumb&encapsulation=shadow","src/components/dropi-breadcrumb/dropi-breadcrumb.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n*, *::before, *::after { box-sizing: border-box; }\n\n.breadcrumb {\n margin: 0;\n}\n\n.crumb-list {\n display: flex;\n align-items: center;\n gap: 4px;\n flex-wrap: wrap;\n}\n\n.crumb-home {\n display: flex;\n padding-right: 4px;\n align-items: center;\n gap: 4px;\n}\n\n.home-link {\n display: inline-flex;\n align-items: center;\n color: var(--Gray-Gray-500, #69738c);\n text-decoration: none;\n transition: color 0.2s ease;\n}\n\n.home-link:hover {\n color: var(--Gray-Gray-700, #32394d);\n}\n\n.crumb {\n display: flex;\n padding: 0 4px;\n align-items: center;\n gap: 8px;\n}\n\n.crumb-link {\n color: var(--Gray-Gray-500, #69738c);\n text-align: center;\n cursor: pointer;\n text-decoration: none;\n transition: color 0.2s ease;\n font-size: var(--font-size-s, 12px);\n}\n\n.crumb-link:hover {\n color: var(--Gray-Gray-700, #32394d);\n text-decoration: underline;\n}\n\n.crumb-link.disabled {\n pointer-events: none;\n color: var(--Gray-Gray-300, #a1a8b8);\n cursor: not-allowed;\n text-decoration: none;\n}\n\n.current {\n color: var(--Gray-Gray-700, #32394d);\n cursor: default;\n font-size: var(--font-size-s, 12px);\n}\n","import { Component, Prop, Event, EventEmitter, h } from '@stencil/core';\n\nexport interface BreadcrumbItem {\n label: string;\n /** Internal route or external URL */\n routerLink?: string;\n url?: string;\n disabled?: boolean;\n}\n\n/**\n * @component dropi-breadcrumb\n * Navigation breadcrumb with home icon and items.\n *\n * @example\n * <dropi-breadcrumb\n * items='[{\"label\":\"Productos\",\"routerLink\":\"/products\"},{\"label\":\"Detalle\"}]'\n * ></dropi-breadcrumb>\n */\n@Component({\n tag: 'dropi-breadcrumb',\n styleUrl: 'dropi-breadcrumb.css',\n shadow: true,\n})\nexport class DropiBreadcrumb {\n /** Breadcrumb items (array or JSON string). Last item is rendered as current. */\n @Prop() items: BreadcrumbItem[] | string = [];\n /** Home link href */\n @Prop() homeRoute: string = '/';\n /** dropi-icon name for home */\n @Prop() homeIconName: string = 'Home';\n /** Whether the last item is also clickable */\n @Prop() lastItemClickable: boolean = false;\n\n /** Emitted when any item or home is clicked. Detail is the item or homeRoute string. */\n @Event() dropiNavigate: EventEmitter<BreadcrumbItem | string>;\n\n private get parsedItems(): BreadcrumbItem[] {\n if (typeof this.items === 'string') {\n try { return JSON.parse(this.items); } catch { return []; }\n }\n return this.items as BreadcrumbItem[];\n }\n\n render() {\n const items = this.parsedItems;\n return (\n <nav class=\"breadcrumb\" aria-label=\"Breadcrumb\">\n <div class=\"crumb-list\">\n <div class=\"crumb-home\">\n <a\n href={this.homeRoute}\n class=\"home-link\"\n aria-label=\"Inicio\"\n onClick={(e) => { e.preventDefault(); this.dropiNavigate.emit(this.homeRoute); }}\n >\n <dropi-icon name={this.homeIconName} iconWidth=\"16px\" color=\"Gray-Gray-500\" />\n </a>\n {items.length > 0 && (\n <dropi-icon name=\"Dropdown-Right\" iconWidth=\"16px\" color=\"Gray-Gray-500\" />\n )}\n </div>\n\n {items.map((item, idx) => {\n const isLast = idx === items.length - 1;\n const href = item.url || item.routerLink || '#';\n return (\n <div class=\"crumb\" key={idx}>\n {(!isLast || this.lastItemClickable) ? (\n <a\n class={`crumb-link Body-S-Regular${item.disabled ? ' disabled' : ''}`}\n href={href}\n onClick={(e) => { e.preventDefault(); if (!item.disabled) this.dropiNavigate.emit(item); }}\n >\n {item.label}\n </a>\n ) : (\n <span class=\"current Body-S-Regular\" aria-current=\"page\">{item.label}</span>\n )}\n {!isLast && (\n <dropi-icon name=\"Dropdown-Right\" iconWidth=\"16px\" iconHeight=\"16px\" color=\"Gray-Gray-500\" />\n )}\n </div>\n );\n })}\n </div>\n </nav>\n );\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { r as registerInstance, d as createEvent, h } from './index-Cvp2LQOM.js';
|
|
2
|
+
|
|
3
|
+
const dropiButtonCss = () => `:host{display:inline-block}:host([full-width]){display:flex;width:100%}:host([full-width]) .btn{width:100%}*,*::before,*::after{box-sizing:border-box}.btn{all:unset;box-sizing:border-box;display:flex;align-items:center;justify-content:center;gap:var(--Size-1, 4px);border-radius:var(--Border-2, 8px);font-weight:var(--font-weight-bold);min-width:33px;line-height:110%;cursor:pointer;white-space:nowrap;transition:background 0.25s ease, color 0.25s ease, border-color 0.25s ease, transform 0.25s ease}.btn:active{transition:transform 0.01s ease-out;transform:scale(0.98)}.btn:hover:not(:active){transform:scale(1.01)}.btn.without-text{gap:0}.btn.large{padding:var(--Size-4, 16px);font-size:var(--Size-4, 16px);height:48px}.btn.normal{padding:var(--Size-3, 12px);font-size:var(--font-size-s, 12px);height:40px}.btn.small{padding:var(--Size-2, 8px);font-size:var(--font-size-s, 12px);height:29px}.btn.disabled,.btn.loading{cursor:not-allowed;pointer-events:none}.btn.primary.default{background:var(--Primary-Primary-500, #f49a3d);color:var(--Neutral-White, #ffffff)}.btn.primary.default:hover{background:var(--Primary-Primary-600, #e58017)}.btn.primary.success{background:var(--Success-Success-500, #0abb87);color:var(--Neutral-White, #ffffff)}.btn.primary.success:hover{background:var(--Success-Success-600, #09aa7b)}.btn.primary.info{background:var(--Info-Info-500, #50a5f1);color:var(--Neutral-White, #ffffff)}.btn.primary.info:hover{background:var(--Info-Info-600, #4996db)}.btn.primary.error{background:var(--Error-Error-500, #f46a6b);color:var(--Neutral-White, #ffffff)}.btn.primary.error:hover{background:var(--Error-Error-600, #de6061)}.btn.primary.warning{background:var(--Warning-Warning-500, #f1b44c);color:var(--Neutral-White, #ffffff)}.btn.primary.warning:hover{background:var(--Warning-Warning-600, #dba445)}.btn.primary.legacy{background:var(--Secondary-Secondary-500, #008dbf);color:var(--Neutral-White, #ffffff)}.btn.primary.legacy:hover{background:var(--Secondary-Secondary-600, #007199)}.btn.primary.disabled.default{background:var(--Primary-Primary-300, #f2bc85);color:var(--Neutral-White, #ffffff)}.btn.primary.disabled.success{background:var(--Success-Success-300, #5bd1af);color:var(--Neutral-White, #ffffff)}.btn.primary.disabled.info{background:var(--Info-Info-300, #8ac3f6);color:var(--Neutral-White, #ffffff)}.btn.primary.disabled.error{background:var(--Error-Error-300, #f89b9c);color:var(--Neutral-White, #ffffff)}.btn.primary.disabled.warning{background:var(--Warning-Warning-300, #f6cd87);color:var(--Neutral-White, #ffffff)}.btn.primary.disabled.legacy{background:var(--Secondary-Secondary-300, #62bad9);color:var(--Neutral-White, #ffffff)}.btn.secondary{background:var(--Neutral-White, #ffffff);border:1px solid}.btn.secondary.default{border-color:var(--Primary-Primary-500, #f49a3d);color:var(--Primary-Primary-500, #f49a3d)}.btn.secondary.default:hover{color:var(--Primary-Primary-600, #e58017);border-color:var(--Primary-Primary-600, #e58017)}.btn.secondary.success{border-color:var(--Success-Success-500, #0abb87);color:var(--Success-Success-500, #0abb87)}.btn.secondary.success:hover{color:var(--Success-Success-600, #09aa7b);border-color:var(--Success-Success-600, #09aa7b)}.btn.secondary.info{border-color:var(--Info-Info-500, #50a5f1);color:var(--Info-Info-500, #50a5f1)}.btn.secondary.info:hover{color:var(--Info-Info-600, #4996db);border-color:var(--Info-Info-600, #4996db)}.btn.secondary.error{border-color:var(--Error-Error-500, #f46a6b);color:var(--Error-Error-500, #f46a6b)}.btn.secondary.error:hover{color:var(--Error-Error-600, #de6061);border-color:var(--Error-Error-600, #de6061)}.btn.secondary.warning{border-color:var(--Warning-Warning-500, #f1b44c);color:var(--Warning-Warning-500, #f1b44c)}.btn.secondary.warning:hover{color:var(--Warning-Warning-600, #dba445);border-color:var(--Warning-Warning-600, #dba445)}.btn.secondary.legacy{border-color:var(--Secondary-Secondary-500, #008dbf);color:var(--Secondary-Secondary-500, #008dbf)}.btn.secondary.legacy:hover{color:var(--Secondary-Secondary-600, #007199);border-color:var(--Secondary-Secondary-600, #007199)}.btn.secondary.disabled.default{border-color:var(--Primary-Primary-300, #f2bc85);color:var(--Primary-Primary-300, #f2bc85)}.btn.secondary.disabled.success{border-color:var(--Success-Success-300, #5bd1af);color:var(--Success-Success-300, #5bd1af)}.btn.secondary.disabled.info{border-color:var(--Info-Info-300, #8ac3f6);color:var(--Info-Info-300, #8ac3f6)}.btn.secondary.disabled.error{border-color:var(--Error-Error-300, #f89b9c);color:var(--Error-Error-300, #f89b9c)}.btn.secondary.disabled.warning{border-color:var(--Warning-Warning-300, #f6cd87);color:var(--Warning-Warning-300, #f6cd87)}.btn.secondary.disabled.legacy{border-color:var(--Secondary-Secondary-300, #62bad9);color:var(--Secondary-Secondary-300, #62bad9)}.btn.tertiary{background:none;border:none}.btn.tertiary.default,.btn.tertiary.legacy{border:1px solid var(--Gray-Gray-200, #c3c9d9);color:var(--Gray-Gray-500, #69738c)}.btn.tertiary.default:hover,.btn.tertiary.legacy:hover{border-color:var(--Gray-Gray-400, #858ea6);color:var(--Gray-Gray-600, #475066)}.btn.tertiary.success{color:var(--Success-Success-500, #0abb87)}.btn.tertiary.success:hover{background:var(--Success-Success-50, #e7f8f3)}.btn.tertiary.info{color:var(--Info-Info-500, #50a5f1)}.btn.tertiary.info:hover{background:var(--Info-Info-50, #eef6fe)}.btn.tertiary.error{color:var(--Error-Error-500, #f46a6b)}.btn.tertiary.error:hover{background:var(--Error-Error-50, #fef0f0)}.btn.tertiary.warning{color:var(--Warning-Warning-500, #f1b44c)}.btn.tertiary.warning:hover{background:var(--Warning-Warning-50, #fef8ed)}.btn.tertiary.dropdown{color:var(--Gray-Gray-500, #69738c);font-weight:var(--font-weight-regular);font-size:var(--font-size-s);background:transparent}.btn.tertiary.disabled.default,.btn.tertiary.disabled.legacy{border:1px solid var(--Gray-Gray-200, #c3c9d9);color:var(--Gray-Gray-400, #858ea6)}.btn.tertiary.disabled.success{color:var(--Success-Success-300, #5bd1af)}.btn.tertiary.disabled.info{color:var(--Info-Info-300, #8ac3f6)}.btn.tertiary.disabled.error{color:var(--Error-Error-300, #f89b9c)}.btn.tertiary.disabled.warning{color:var(--Warning-Warning-300, #f6cd87)}.spin{animation:spin 1s linear infinite}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}`;
|
|
4
|
+
|
|
5
|
+
const DropiButton = class {
|
|
6
|
+
constructor(hostRef) {
|
|
7
|
+
registerInstance(this, hostRef);
|
|
8
|
+
this.onClick = createEvent(this, "onClick", 7);
|
|
9
|
+
}
|
|
10
|
+
/** Visual color palette */
|
|
11
|
+
type = 'default';
|
|
12
|
+
/** Primary (filled) | Secondary (outlined) | Tertiary (ghost) */
|
|
13
|
+
severity = 'primary';
|
|
14
|
+
/** Button size */
|
|
15
|
+
size = 'normal';
|
|
16
|
+
/** Button state */
|
|
17
|
+
state = 'default';
|
|
18
|
+
/** Full width button */
|
|
19
|
+
fullWidth = false;
|
|
20
|
+
/** Icon name to show before the text */
|
|
21
|
+
preIcon = '';
|
|
22
|
+
/** Icon name to show after the text */
|
|
23
|
+
postIcon = '';
|
|
24
|
+
/** Custom icon color override */
|
|
25
|
+
customIconColor = '';
|
|
26
|
+
/** Button label */
|
|
27
|
+
text = '';
|
|
28
|
+
/** Emitted on click (not emitted when disabled or loading) */
|
|
29
|
+
onClick;
|
|
30
|
+
colorMap = {
|
|
31
|
+
default: 'Primary-Primary-',
|
|
32
|
+
success: 'Success-Success-',
|
|
33
|
+
error: 'Error-Error-',
|
|
34
|
+
info: 'Info-Info-',
|
|
35
|
+
legacy: 'Secondary-Secondary-',
|
|
36
|
+
warning: 'Warning-Warning-',
|
|
37
|
+
dropdown: 'Gray-Gray-',
|
|
38
|
+
'default-light': 'Gray-Gray-',
|
|
39
|
+
};
|
|
40
|
+
get iconSize() {
|
|
41
|
+
if (this.size === 'large')
|
|
42
|
+
return '24px';
|
|
43
|
+
if (this.size === 'small')
|
|
44
|
+
return '16px';
|
|
45
|
+
return '18px';
|
|
46
|
+
}
|
|
47
|
+
get color() {
|
|
48
|
+
const intensity = this.state === 'disabled' ? '300' : '500';
|
|
49
|
+
return (this.colorMap[this.type] ?? 'Primary-Primary-') + intensity;
|
|
50
|
+
}
|
|
51
|
+
get fontColor() {
|
|
52
|
+
if (this.severity === 'tertiary') {
|
|
53
|
+
return this.type === 'default' || this.type === 'legacy' ? 'Gray-Gray-500' : this.color;
|
|
54
|
+
}
|
|
55
|
+
if (this.severity === 'secondary')
|
|
56
|
+
return this.color;
|
|
57
|
+
return 'Neutral-White';
|
|
58
|
+
}
|
|
59
|
+
handleClick(e) {
|
|
60
|
+
if (this.state !== 'disabled' && this.state !== 'loading') {
|
|
61
|
+
this.onClick.emit(e);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
renderLoadingSpinner() {
|
|
65
|
+
return (h("svg", { class: "spin", width: this.iconSize, height: this.iconSize, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { d: "M22.8 12C23.4627 12 24.0062 11.4614 23.9401 10.802C23.8232 9.6371 23.5362 8.49339 23.0866 7.4078C22.4835 5.95189 21.5996 4.62902 20.4853 3.51472C19.371 2.40042 18.0481 1.5165 16.5922 0.913445C15.5066 0.463778 14.3629 0.17683 13.198 0.0599502C12.5386 -0.00621439 12 0.537258 12 1.2C12 1.86274 12.5393 2.39227 13.1969 2.4749C14.0463 2.58164 14.8795 2.80176 15.6738 3.13076C16.8385 3.6132 17.8968 4.32033 18.7882 5.21177C19.6797 6.10322 20.3868 7.16151 20.8692 8.32624C21.1982 9.12051 21.4184 9.95367 21.5251 10.8031C21.6077 11.4607 22.1373 12 22.8 12Z", fill: `var(--${this.fontColor})` })));
|
|
66
|
+
}
|
|
67
|
+
render() {
|
|
68
|
+
const isDisabled = this.state === 'disabled' || this.state === 'loading';
|
|
69
|
+
const hasText = (this.text ?? '') !== '';
|
|
70
|
+
const showPostIcon = (this.postIcon ?? '') !== '' || (this.type ?? 'default') === 'dropdown';
|
|
71
|
+
const dropdownIcon = (this.type ?? 'default') === 'dropdown' ? 'Dropdown-down' : (this.postIcon ?? '');
|
|
72
|
+
return (h("button", { key: 'a8771ab61e78941d1bfd7b987a02dfe2e9d22a31', class: {
|
|
73
|
+
btn: true,
|
|
74
|
+
'without-text': !hasText,
|
|
75
|
+
[this.severity ?? 'primary']: true,
|
|
76
|
+
[this.type ?? 'default']: true,
|
|
77
|
+
[this.size ?? 'normal']: true,
|
|
78
|
+
[this.state ?? 'default']: true,
|
|
79
|
+
'full-width': this.fullWidth,
|
|
80
|
+
}, disabled: isDisabled, onClick: (e) => this.handleClick(e) }, this.preIcon && (h("dropi-icon", { key: '374403bce1d33e39f3834d6e10dfec5ac7ca7e0c', name: this.preIcon, iconWidth: this.iconSize, iconHeight: this.iconSize, color: this.fontColor })), hasText && h("span", { key: '65d5e45f4df8df2795be3b6bf09c9576f8497664', class: "text" }, this.text), showPostIcon && (h("dropi-icon", { key: 'b3d1459260a3d7159ddf1193aa29672e8d8d3800', name: dropdownIcon, iconWidth: this.iconSize, iconHeight: this.iconSize, color: this.fontColor })), this.state === 'loading' && this.renderLoadingSpinner(), h("slot", { key: 'ae37b4195f35b02d70e166fcba27939f38d35326' })));
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
DropiButton.style = dropiButtonCss();
|
|
84
|
+
|
|
85
|
+
export { DropiButton as dropi_button };
|
|
86
|
+
//# sourceMappingURL=dropi-button.entry.esm.js.map
|
|
87
|
+
|
|
88
|
+
//# sourceMappingURL=dropi-button.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"dropi-button.entry.js","mappings":"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","names":[],"sources":["src/components/dropi-button/dropi-button.css?tag=dropi-button&encapsulation=shadow","src/components/dropi-button/dropi-button.tsx"],"sourcesContent":[":host {\n display: inline-block;\n}\n\n:host([full-width]) {\n display: flex;\n width: 100%;\n}\n:host([full-width]) .btn {\n width: 100%;\n}\n\n*, *::before, *::after { box-sizing: border-box; }\n\n.btn {\n all: unset;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--Size-1, 4px);\n border-radius: var(--Border-2, 8px);\n font-weight: var(--font-weight-bold);\n min-width: 33px;\n line-height: 110%;\n cursor: pointer;\n white-space: nowrap;\n transition:\n background 0.25s ease,\n color 0.25s ease,\n border-color 0.25s ease,\n transform 0.25s ease;\n}\n\n.btn:active {\n transition: transform 0.01s ease-out;\n transform: scale(0.98);\n}\n\n.btn:hover:not(:active) {\n transform: scale(1.01);\n}\n\n.btn.without-text {\n gap: 0;\n}\n\n/* ── Sizes ─────────────────────────────────────────────────── */\n.btn.large { padding: var(--Size-4, 16px); font-size: var(--Size-4, 16px); height: 48px; }\n.btn.normal { padding: var(--Size-3, 12px); font-size: var(--font-size-s, 12px); height: 40px; }\n.btn.small { padding: var(--Size-2, 8px); font-size: var(--font-size-s, 12px); height: 29px; }\n\n/* ── Disabled / Loading ─────────────────────────────────────── */\n.btn.disabled,\n.btn.loading {\n cursor: not-allowed;\n pointer-events: none;\n}\n\n/* ══════════════════════════════════════════════════════════════\n PRIMARY severity\n═══════════════════════════════════════════════════════════════ */\n.btn.primary.default { background: var(--Primary-Primary-500, #f49a3d); color: var(--Neutral-White, #ffffff); }\n.btn.primary.default:hover { background: var(--Primary-Primary-600, #e58017); }\n\n.btn.primary.success { background: var(--Success-Success-500, #0abb87); color: var(--Neutral-White, #ffffff); }\n.btn.primary.success:hover { background: var(--Success-Success-600, #09aa7b); }\n\n.btn.primary.info { background: var(--Info-Info-500, #50a5f1); color: var(--Neutral-White, #ffffff); }\n.btn.primary.info:hover { background: var(--Info-Info-600, #4996db); }\n\n.btn.primary.error { background: var(--Error-Error-500, #f46a6b); color: var(--Neutral-White, #ffffff); }\n.btn.primary.error:hover { background: var(--Error-Error-600, #de6061); }\n\n.btn.primary.warning { background: var(--Warning-Warning-500, #f1b44c); color: var(--Neutral-White, #ffffff); }\n.btn.primary.warning:hover { background: var(--Warning-Warning-600, #dba445); }\n\n.btn.primary.legacy { background: var(--Secondary-Secondary-500, #008dbf); color: var(--Neutral-White, #ffffff); }\n.btn.primary.legacy:hover { background: var(--Secondary-Secondary-600, #007199); }\n\n/* Disabled primary */\n.btn.primary.disabled.default { background: var(--Primary-Primary-300, #f2bc85); color: var(--Neutral-White, #ffffff); }\n.btn.primary.disabled.success { background: var(--Success-Success-300, #5bd1af); color: var(--Neutral-White, #ffffff); }\n.btn.primary.disabled.info { background: var(--Info-Info-300, #8ac3f6); color: var(--Neutral-White, #ffffff); }\n.btn.primary.disabled.error { background: var(--Error-Error-300, #f89b9c); color: var(--Neutral-White, #ffffff); }\n.btn.primary.disabled.warning { background: var(--Warning-Warning-300, #f6cd87); color: var(--Neutral-White, #ffffff); }\n.btn.primary.disabled.legacy { background: var(--Secondary-Secondary-300, #62bad9); color: var(--Neutral-White, #ffffff); }\n\n/* ══════════════════════════════════════════════════════════════\n SECONDARY severity\n═══════════════════════════════════════════════════════════════ */\n.btn.secondary {\n background: var(--Neutral-White, #ffffff);\n border: 1px solid;\n}\n\n.btn.secondary.default { border-color: var(--Primary-Primary-500, #f49a3d); color: var(--Primary-Primary-500, #f49a3d); }\n.btn.secondary.default:hover { color: var(--Primary-Primary-600, #e58017); border-color: var(--Primary-Primary-600, #e58017); }\n\n.btn.secondary.success { border-color: var(--Success-Success-500, #0abb87); color: var(--Success-Success-500, #0abb87); }\n.btn.secondary.success:hover { color: var(--Success-Success-600, #09aa7b); border-color: var(--Success-Success-600, #09aa7b); }\n\n.btn.secondary.info { border-color: var(--Info-Info-500, #50a5f1); color: var(--Info-Info-500, #50a5f1); }\n.btn.secondary.info:hover { color: var(--Info-Info-600, #4996db); border-color: var(--Info-Info-600, #4996db); }\n\n.btn.secondary.error { border-color: var(--Error-Error-500, #f46a6b); color: var(--Error-Error-500, #f46a6b); }\n.btn.secondary.error:hover { color: var(--Error-Error-600, #de6061); border-color: var(--Error-Error-600, #de6061); }\n\n.btn.secondary.warning { border-color: var(--Warning-Warning-500, #f1b44c); color: var(--Warning-Warning-500, #f1b44c); }\n.btn.secondary.warning:hover { color: var(--Warning-Warning-600, #dba445); border-color: var(--Warning-Warning-600, #dba445); }\n\n.btn.secondary.legacy { border-color: var(--Secondary-Secondary-500, #008dbf); color: var(--Secondary-Secondary-500, #008dbf); }\n.btn.secondary.legacy:hover { color: var(--Secondary-Secondary-600, #007199); border-color: var(--Secondary-Secondary-600, #007199); }\n\n/* Disabled secondary */\n.btn.secondary.disabled.default { border-color: var(--Primary-Primary-300, #f2bc85); color: var(--Primary-Primary-300, #f2bc85); }\n.btn.secondary.disabled.success { border-color: var(--Success-Success-300, #5bd1af); color: var(--Success-Success-300, #5bd1af); }\n.btn.secondary.disabled.info { border-color: var(--Info-Info-300, #8ac3f6); color: var(--Info-Info-300, #8ac3f6); }\n.btn.secondary.disabled.error { border-color: var(--Error-Error-300, #f89b9c); color: var(--Error-Error-300, #f89b9c); }\n.btn.secondary.disabled.warning { border-color: var(--Warning-Warning-300, #f6cd87); color: var(--Warning-Warning-300, #f6cd87); }\n.btn.secondary.disabled.legacy { border-color: var(--Secondary-Secondary-300, #62bad9); color: var(--Secondary-Secondary-300, #62bad9); }\n\n/* ══════════════════════════════════════════════════════════════\n TERTIARY severity\n═══════════════════════════════════════════════════════════════ */\n.btn.tertiary { background: none; border: none; }\n\n.btn.tertiary.default,\n.btn.tertiary.legacy {\n border: 1px solid var(--Gray-Gray-200, #c3c9d9);\n color: var(--Gray-Gray-500, #69738c);\n}\n.btn.tertiary.default:hover,\n.btn.tertiary.legacy:hover {\n border-color: var(--Gray-Gray-400, #858ea6);\n color: var(--Gray-Gray-600, #475066);\n}\n\n.btn.tertiary.success { color: var(--Success-Success-500, #0abb87); }\n.btn.tertiary.success:hover { background: var(--Success-Success-50, #e7f8f3); }\n\n.btn.tertiary.info { color: var(--Info-Info-500, #50a5f1); }\n.btn.tertiary.info:hover { background: var(--Info-Info-50, #eef6fe); }\n\n.btn.tertiary.error { color: var(--Error-Error-500, #f46a6b); }\n.btn.tertiary.error:hover { background: var(--Error-Error-50, #fef0f0); }\n\n.btn.tertiary.warning { color: var(--Warning-Warning-500, #f1b44c); }\n.btn.tertiary.warning:hover { background: var(--Warning-Warning-50, #fef8ed); }\n\n.btn.tertiary.dropdown {\n color: var(--Gray-Gray-500, #69738c);\n font-weight: var(--font-weight-regular);\n font-size: var(--font-size-s);\n background: transparent;\n}\n\n/* Disabled tertiary */\n.btn.tertiary.disabled.default,\n.btn.tertiary.disabled.legacy {\n border: 1px solid var(--Gray-Gray-200, #c3c9d9);\n color: var(--Gray-Gray-400, #858ea6);\n}\n.btn.tertiary.disabled.success { color: var(--Success-Success-300, #5bd1af); }\n.btn.tertiary.disabled.info { color: var(--Info-Info-300, #8ac3f6); }\n.btn.tertiary.disabled.error { color: var(--Error-Error-300, #f89b9c); }\n.btn.tertiary.disabled.warning { color: var(--Warning-Warning-300, #f6cd87); }\n\n/* ── Loading spinner ─────────────────────────────────────────── */\n.spin {\n animation: spin 1s linear infinite;\n}\n\n@keyframes spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n}\n","import { Component, Prop, Event, EventEmitter, h } from '@stencil/core';\n\nexport type ButtonType = 'legacy' | 'default' | 'success' | 'info' | 'error' | 'warning' | 'dropdown' | 'default-light';\nexport type ButtonSeverity = 'primary' | 'secondary' | 'tertiary';\nexport type ButtonSize = 'large' | 'normal' | 'small';\nexport type ButtonState = 'default' | 'disabled' | 'loading';\n\n/**\n * @component dropi-button\n * Primary action button with multiple types, severities, sizes and states.\n * Supports pre/post icons and a loading spinner.\n */\n@Component({\n tag: 'dropi-button',\n styleUrl: 'dropi-button.css',\n shadow: true,\n})\nexport class DropiButton {\n /** Visual color palette */\n @Prop() type: ButtonType = 'default';\n /** Primary (filled) | Secondary (outlined) | Tertiary (ghost) */\n @Prop() severity: ButtonSeverity = 'primary';\n /** Button size */\n @Prop() size: ButtonSize = 'normal';\n /** Button state */\n @Prop() state: ButtonState = 'default';\n /** Full width button */\n @Prop({ reflect: true }) fullWidth: boolean = false;\n /** Icon name to show before the text */\n @Prop() preIcon: string = '';\n /** Icon name to show after the text */\n @Prop() postIcon: string = '';\n /** Custom icon color override */\n @Prop() customIconColor: string = '';\n /** Button label */\n @Prop() text: string = '';\n\n /** Emitted on click (not emitted when disabled or loading) */\n @Event() onClick: EventEmitter<MouseEvent>;\n\n private readonly colorMap: Record<string, string> = {\n default: 'Primary-Primary-',\n success: 'Success-Success-',\n error: 'Error-Error-',\n info: 'Info-Info-',\n legacy: 'Secondary-Secondary-',\n warning: 'Warning-Warning-',\n dropdown: 'Gray-Gray-',\n 'default-light': 'Gray-Gray-',\n };\n\n private get iconSize(): string {\n if (this.size === 'large') return '24px';\n if (this.size === 'small') return '16px';\n return '18px';\n }\n\n private get color(): string {\n const intensity = this.state === 'disabled' ? '300' : '500';\n return (this.colorMap[this.type] ?? 'Primary-Primary-') + intensity;\n }\n\n private get fontColor(): string {\n if (this.severity === 'tertiary') {\n return this.type === 'default' || this.type === 'legacy' ? 'Gray-Gray-500' : this.color;\n }\n if (this.severity === 'secondary') return this.color;\n return 'Neutral-White';\n }\n\n private handleClick(e: MouseEvent) {\n if (this.state !== 'disabled' && this.state !== 'loading') {\n this.onClick.emit(e);\n }\n }\n\n private renderLoadingSpinner() {\n return (\n <svg\n class=\"spin\"\n width={this.iconSize}\n height={this.iconSize}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M22.8 12C23.4627 12 24.0062 11.4614 23.9401 10.802C23.8232 9.6371 23.5362 8.49339 23.0866 7.4078C22.4835 5.95189 21.5996 4.62902 20.4853 3.51472C19.371 2.40042 18.0481 1.5165 16.5922 0.913445C15.5066 0.463778 14.3629 0.17683 13.198 0.0599502C12.5386 -0.00621439 12 0.537258 12 1.2C12 1.86274 12.5393 2.39227 13.1969 2.4749C14.0463 2.58164 14.8795 2.80176 15.6738 3.13076C16.8385 3.6132 17.8968 4.32033 18.7882 5.21177C19.6797 6.10322 20.3868 7.16151 20.8692 8.32624C21.1982 9.12051 21.4184 9.95367 21.5251 10.8031C21.6077 11.4607 22.1373 12 22.8 12Z\"\n fill={`var(--${this.fontColor})`}\n />\n </svg>\n );\n }\n\n render() {\n const isDisabled = this.state === 'disabled' || this.state === 'loading';\n const hasText = (this.text ?? '') !== '';\n const showPostIcon = (this.postIcon ?? '') !== '' || (this.type ?? 'default') === 'dropdown';\n const dropdownIcon = (this.type ?? 'default') === 'dropdown' ? 'Dropdown-down' : (this.postIcon ?? '');\n\n return (\n <button\n class={{\n btn: true,\n 'without-text': !hasText,\n [this.severity ?? 'primary']: true,\n [this.type ?? 'default']: true,\n [this.size ?? 'normal']: true,\n [this.state ?? 'default']: true,\n 'full-width': this.fullWidth,\n }}\n disabled={isDisabled}\n onClick={(e) => this.handleClick(e)}\n >\n {this.preIcon && (\n <dropi-icon\n name={this.preIcon}\n iconWidth={this.iconSize}\n iconHeight={this.iconSize}\n color={this.fontColor}\n />\n )}\n {hasText && <span class=\"text\">{this.text}</span>}\n {showPostIcon && (\n <dropi-icon\n name={dropdownIcon}\n iconWidth={this.iconSize}\n iconHeight={this.iconSize}\n color={this.fontColor}\n />\n )}\n {this.state === 'loading' && this.renderLoadingSpinner()}\n <slot />\n </button>\n );\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { r as registerInstance, d as createEvent, h } from './index-Cvp2LQOM.js';
|
|
2
|
+
|
|
3
|
+
const dropiCardCheckboxCss = () => `:host{display:block;width:100%}*,*::before,*::after{box-sizing:border-box}.container-card-check{padding:var(--Size-4, 16px);border:1px solid var(--Gray-Gray-200, #c3c9d9);border-radius:var(--Size-2, 8px);width:100%;display:flex;align-items:center;gap:var(--Size-3, 12px);cursor:pointer;height:66px;overflow:hidden;transition:background 0.15s ease, border-color 0.15s ease}.container-card-check.disabled{border-radius:var(--Border-2, 8px);border:1px solid var(--Gray-Gray-100, #e6eaf2);background-color:var(--Gray-Gray-50, #f7f8fa);cursor:default}.container-card-check.disabled .title-check,.container-card-check.disabled .description-text,.container-card-check.disabled .extra-info{color:var(--Gray-Gray-400, #858ea6)}.container-text{width:100%;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;text-align:start;overflow:hidden}.title-check{color:var(--Gray-Gray-700, #32394d);font-size:var(--font-size-m, 14px);font-weight:var(--font-weight-regular, 400);display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.description-text{color:var(--Gray-Gray-500, #69738c);font-size:var(--font-size-s, 12px);margin-top:var(--Size-1, 4px);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.extra-info{display:flex;justify-content:space-between;align-items:center;flex-direction:column;gap:4px;flex-shrink:0;font-size:var(--font-size-s, 12px);color:var(--Gray-Gray-600, #475066)}.extra-info h4{margin:0;font-weight:var(--font-weight-semibold);color:inherit;line-height:inherit}.default-card{border:none}.is-checked{background:var(--Primary-Primary-50, #fff8f0);border:1px solid var(--Primary-Primary-500, #f49a3d)}`;
|
|
4
|
+
|
|
5
|
+
const DropiCardCheckbox = class {
|
|
6
|
+
constructor(hostRef) {
|
|
7
|
+
registerInstance(this, hostRef);
|
|
8
|
+
this.onChange = createEvent(this, "onChange", 7);
|
|
9
|
+
}
|
|
10
|
+
/** Visual type — matches Angular: 'default' | 'with card' */
|
|
11
|
+
type = 'default';
|
|
12
|
+
/** Whether the checkbox is checked — matches Angular 'state' */
|
|
13
|
+
state = 'checked';
|
|
14
|
+
/** Main title — matches Angular 'title' */
|
|
15
|
+
title = 'Tittle';
|
|
16
|
+
/** Optional description below title */
|
|
17
|
+
description = '';
|
|
18
|
+
/** Optional extra info shown on the right */
|
|
19
|
+
extraInfo = '';
|
|
20
|
+
/** Optional extra info description shown below extraInfo */
|
|
21
|
+
extraInfoDescription = '';
|
|
22
|
+
/** Disables interaction */
|
|
23
|
+
disabled = false;
|
|
24
|
+
/** Emitted with the new checked state when clicked */
|
|
25
|
+
onChange;
|
|
26
|
+
get isChecked() {
|
|
27
|
+
return this.state === 'checked';
|
|
28
|
+
}
|
|
29
|
+
handleClick() {
|
|
30
|
+
if (this.disabled)
|
|
31
|
+
return;
|
|
32
|
+
this.state = this.isChecked ? 'default' : 'checked';
|
|
33
|
+
this.onChange.emit(this.isChecked);
|
|
34
|
+
}
|
|
35
|
+
render() {
|
|
36
|
+
return (h("div", { key: '238a146e7500efbc01d83a8494ee577fbb600729', class: {
|
|
37
|
+
'container-card-check': true,
|
|
38
|
+
'default-card': this.type === 'default',
|
|
39
|
+
'is-checked': this.isChecked && this.type === 'with card',
|
|
40
|
+
'disabled': this.disabled,
|
|
41
|
+
}, onClick: () => this.handleClick() }, h("dropi-checkbox", { key: '405d834de33790be58fba7e50b0e579889f04394', checked: this.isChecked, disabled: this.disabled }), h("div", { key: '49659771de9ca8ee8c2fa9fbe828a1d94fbd3c9e', class: "container-text" }, h("div", { key: '7d39435ef56cd61605e9d9b69d6917e3ec8470fa', class: "title-check" }, this.title), this.description && h("div", { key: '00a7723401979d7a9d926ce939eb09430ddb7372', class: "description-text" }, this.description)), (this.extraInfo || this.extraInfoDescription) && (h("div", { key: '4d1c9e49f6e397f0433827960167ff88bcd669db', class: "extra-info" }, this.extraInfo && h("div", { key: 'b9da8514c2013cd6cab9cf6005dad8d3ae30b930' }, this.extraInfo), this.extraInfoDescription && h("h4", { key: 'ac2fcbc6359ea173911f181b2a145de59af10c9d' }, this.extraInfoDescription)))));
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
DropiCardCheckbox.style = dropiCardCheckboxCss();
|
|
45
|
+
|
|
46
|
+
export { DropiCardCheckbox as dropi_card_checkbox };
|
|
47
|
+
//# sourceMappingURL=dropi-card-checkbox.entry.esm.js.map
|
|
48
|
+
|
|
49
|
+
//# sourceMappingURL=dropi-card-checkbox.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"dropi-card-checkbox.entry.js","mappings":";;AAAA,MAAM,oBAAoB,GAAG,MAAM,CAAC,ktDAAktD,CAAC;;MCmB1uD,iBAAiB,GAAA,MAAA;;;;;;IAEpB,IAAI,GAA4B,SAAS;;IAExB,KAAK,GAA0B,SAAS;;IAEzD,KAAK,GAAW,QAAQ;;IAExB,WAAW,GAAW,EAAE;;IAExB,SAAS,GAAW,EAAE;;IAEtB,oBAAoB,GAAW,EAAE;;IAEjC,QAAQ,GAAY,KAAK;;AAGxB,IAAA,QAAQ;AAEjB,IAAA,IAAY,SAAS,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS;;IAGzB,WAAW,GAAA;QACjB,IAAI,IAAI,CAAC,QAAQ;YAAE;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,GAAG,SAAS,GAAG,SAAS;QACnD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;;IAGpC,MAAM,GAAA;QACJ,QACE,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAE;AACL,gBAAA,sBAAsB,EAAE,IAAI;AAC5B,gBAAA,cAAc,EAAE,IAAI,CAAC,IAAI,KAAK,SAAS;gBACvC,YAAY,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW;gBACzD,UAAU,EAAE,IAAI,CAAC,QAAQ;AAC1B,aAAA,EACD,OAAO,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE,EAAA,EAEjC,CAAA,CAAA,gBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAgB,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAA,CAAI,EACpE,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,gBAAgB,EAAA,EACzB,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,aAAa,IAAE,IAAI,CAAC,KAAK,CAAO,EAC1C,IAAI,CAAC,WAAW,IAAI,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,kBAAkB,EAAA,EAAE,IAAI,CAAC,WAAW,CAAO,CACvE,EACL,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,oBAAoB,MAC3C,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,YAAY,EAAA,EACpB,IAAI,CAAC,SAAS,IAAI,8DAAM,IAAI,CAAC,SAAS,CAAO,EAC7C,IAAI,CAAC,oBAAoB,IAAI,CAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAK,IAAI,CAAC,oBAAoB,CAAM,CAC9D,CACP,CACG;;;;;;;","names":[],"sources":["src/components/dropi-card-checkbox/dropi-card-checkbox.css?tag=dropi-card-checkbox&encapsulation=shadow","src/components/dropi-card-checkbox/dropi-card-checkbox.tsx"],"sourcesContent":[":host {\n display: block;\n width: 100%;\n}\n\n*, *::before, *::after { box-sizing: border-box; }\n\n.container-card-check {\n padding: var(--Size-4, 16px);\n border: 1px solid var(--Gray-Gray-200, #c3c9d9);\n border-radius: var(--Size-2, 8px);\n width: 100%;\n display: flex;\n align-items: center;\n gap: var(--Size-3, 12px);\n cursor: pointer;\n height: 66px;\n overflow: hidden;\n transition: background 0.15s ease, border-color 0.15s ease;\n}\n\n.container-card-check.disabled {\n border-radius: var(--Border-2, 8px);\n border: 1px solid var(--Gray-Gray-100, #e6eaf2);\n background-color: var(--Gray-Gray-50, #f7f8fa);\n cursor: default;\n}\n\n.container-card-check.disabled .title-check,\n.container-card-check.disabled .description-text,\n.container-card-check.disabled .extra-info {\n color: var(--Gray-Gray-400, #858ea6);\n}\n\n.container-text {\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n text-align: start;\n overflow: hidden;\n}\n\n.title-check {\n color: var(--Gray-Gray-700, #32394d);\n font-size: var(--font-size-m, 14px);\n font-weight: var(--font-weight-regular, 400);\n display: -webkit-box;\n -webkit-line-clamp: 1;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.description-text {\n color: var(--Gray-Gray-500, #69738c);\n font-size: var(--font-size-s, 12px);\n margin-top: var(--Size-1, 4px);\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.extra-info {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-direction: column;\n gap: 4px;\n flex-shrink: 0;\n font-size: var(--font-size-s, 12px);\n color: var(--Gray-Gray-600, #475066);\n}\n\n.extra-info h4 {\n margin: 0;\n font-weight: var(--font-weight-semibold);\n color: inherit;\n line-height: inherit;\n}\n\n.default-card {\n border: none;\n}\n\n.is-checked {\n background: var(--Primary-Primary-50, #fff8f0);\n border: 1px solid var(--Primary-Primary-500, #f49a3d);\n}\n","import { Component, Prop, Event, EventEmitter, h } from '@stencil/core';\n\n/**\n * @component dropi-card-checkbox\n * Card-style clickable checkbox with title, description, and optional extra info.\n *\n * @example\n * <dropi-card-checkbox\n * title=\"Opción A\"\n * description=\"Descripción breve\"\n * type=\"with-card\"\n * checked\n * ></dropi-card-checkbox>\n */\n@Component({\n tag: 'dropi-card-checkbox',\n styleUrl: 'dropi-card-checkbox.css',\n shadow: true,\n})\nexport class DropiCardCheckbox {\n /** Visual type — matches Angular: 'default' | 'with card' */\n @Prop() type: 'default' | 'with card' = 'default';\n /** Whether the checkbox is checked — matches Angular 'state' */\n @Prop({ mutable: true }) state: 'checked' | 'default' = 'checked';\n /** Main title — matches Angular 'title' */\n @Prop() title: string = 'Tittle';\n /** Optional description below title */\n @Prop() description: string = '';\n /** Optional extra info shown on the right */\n @Prop() extraInfo: string = '';\n /** Optional extra info description shown below extraInfo */\n @Prop() extraInfoDescription: string = '';\n /** Disables interaction */\n @Prop() disabled: boolean = false;\n\n /** Emitted with the new checked state when clicked */\n @Event() onChange: EventEmitter<boolean>;\n\n private get isChecked(): boolean {\n return this.state === 'checked';\n }\n\n private handleClick() {\n if (this.disabled) return;\n this.state = this.isChecked ? 'default' : 'checked';\n this.onChange.emit(this.isChecked);\n }\n\n render() {\n return (\n <div\n class={{\n 'container-card-check': true,\n 'default-card': this.type === 'default',\n 'is-checked': this.isChecked && this.type === 'with card',\n 'disabled': this.disabled,\n }}\n onClick={() => this.handleClick()}\n >\n <dropi-checkbox checked={this.isChecked} disabled={this.disabled} />\n <div class=\"container-text\">\n <div class=\"title-check\">{this.title}</div>\n {this.description && <div class=\"description-text\">{this.description}</div>}\n </div>\n {(this.extraInfo || this.extraInfoDescription) && (\n <div class=\"extra-info\">\n {this.extraInfo && <div>{this.extraInfo}</div>}\n {this.extraInfoDescription && <h4>{this.extraInfoDescription}</h4>}\n </div>\n )}\n </div>\n );\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { r as registerInstance, d as createEvent, h } from './index-Cvp2LQOM.js';
|
|
2
|
+
|
|
3
|
+
const dropiCardProductCss = () => `:host{display:block;font-family:'Inter', sans-serif}*,*::before,*::after{box-sizing:border-box}.dropi-card-product{position:relative;background:#ffffff;border-radius:8px;overflow:hidden;transition:all 0.2s ease-in-out;cursor:pointer;display:flex;flex-direction:column;height:100%;box-sizing:border-box;width:100%;max-width:450px;box-shadow:none}.product-image-container{padding:4px;flex-shrink:0}.product-image{position:relative;width:100%;aspect-ratio:1;border-radius:8px;border:1px solid #c3c9d9;overflow:hidden;display:flex;align-items:center;justify-content:center;background-color:#f8f9fa}.product-image img{width:100%;height:100%;object-fit:cover;border-radius:8px}.product-image img.error-img{object-fit:contain}.favorite-button{position:absolute;bottom:5px;right:6px;border-radius:8px;padding:12px;cursor:pointer;transition:all 0.2s ease-in-out;z-index:2;display:flex;align-items:center;justify-content:center;width:42px;height:40px;background:#ffffff;border:1px solid #858ea6}.favorite-button.favorite-active{background:var(--Primary-Primary-500, #f49a3d);border:1px solid var(--Primary-Primary-500, #f49a3d)}.product-info{position:relative;padding:8px;display:flex;flex-direction:column;gap:4px;flex:1;justify-content:space-between}.supplier-insignia{position:absolute;top:-24px;left:0px}.product-header{display:flex;justify-content:space-between;align-items:center;width:100%;height:26px}.category{color:#69738c;font-family:'Inter', sans-serif;font-size:12px;font-weight:400;line-height:1.5;flex:1}.stock-info{display:flex;align-items:center;gap:2px;font-family:'Inter', sans-serif;font-size:12px;font-weight:400;line-height:1.5}.stock-label{color:#69738c}.stock-value{font-weight:500}.product-name{color:#32394d;font-family:'Inter', sans-serif;font-size:16px;font-weight:500;line-height:1.5;margin:0;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.supplier-info{font-family:'Inter', sans-serif;font-size:12px;line-height:1.2}.supplier-label{color:#69738c;font-weight:400}.supplier-name{color:#50a5f1;font-weight:400;margin-left:4px;cursor:pointer}.price-container{display:flex;gap:8px;margin-top:4px}.price-item{flex:1;display:flex;flex-direction:column}.price-label{color:#69738c;font-family:'Inter', sans-serif;font-size:12px;font-weight:400;line-height:1.5;height:18px;min-width:max-content}.price-value{color:#32394d;font-family:'Inter', sans-serif;font-size:14px;font-weight:700;line-height:1.1;margin-top:2px}.separator{height:1px;background:#e6eaf2;margin:0;flex-shrink:0}.action-button{background:#ffffff;border:none;border-top:1px solid #e6eaf2;padding:12px;cursor:pointer;transition:all 0.2s ease-in-out;display:flex;align-items:center;justify-content:center;gap:8px;height:40px;flex-shrink:0}.action-button--disabled{opacity:0.3;cursor:not-allowed}.button-text{font-family:'Inter', sans-serif;font-size:14px;font-weight:700;line-height:1.1;color:#f49a3d;text-align:center;white-space:nowrap}`;
|
|
4
|
+
|
|
5
|
+
const DropiCardProduct = class {
|
|
6
|
+
constructor(hostRef) {
|
|
7
|
+
registerInstance(this, hostRef);
|
|
8
|
+
this.onProductClick = createEvent(this, "onProductClick", 7);
|
|
9
|
+
this.changeFavorite = createEvent(this, "changeFavorite", 7);
|
|
10
|
+
this.dropiAddProduct = createEvent(this, "dropiAddProduct", 7);
|
|
11
|
+
this.dropiSupplierClick = createEvent(this, "dropiSupplierClick", 7);
|
|
12
|
+
}
|
|
13
|
+
/** Product image URL */
|
|
14
|
+
image = '';
|
|
15
|
+
/** Product name */
|
|
16
|
+
productName = '';
|
|
17
|
+
/** Sale / supplier price (Precio proveedor) */
|
|
18
|
+
salePrice = 0;
|
|
19
|
+
/** Suggested price for the dropshipper (Precio sugerido) */
|
|
20
|
+
suggestedPrice = 0;
|
|
21
|
+
/** Price currency symbol */
|
|
22
|
+
currency = '$';
|
|
23
|
+
/** Supplier / store name */
|
|
24
|
+
supplier = '';
|
|
25
|
+
/** Category label */
|
|
26
|
+
category = '';
|
|
27
|
+
/** Stock quantity (0 = Agotado) */
|
|
28
|
+
stock = 0;
|
|
29
|
+
/** Supplier category for insignia: 'verified' | 'premium' | 'exclusive' | '' */
|
|
30
|
+
supplierCategory = '';
|
|
31
|
+
/** Show favorite button */
|
|
32
|
+
showFavorite = true;
|
|
33
|
+
/** Is marked as favorite */
|
|
34
|
+
isFavorite = false;
|
|
35
|
+
/** Show "Enviar a cliente" button */
|
|
36
|
+
showAddButton = true;
|
|
37
|
+
/** Emitted when card is clicked — matches Angular 'onProductClick' */
|
|
38
|
+
onProductClick;
|
|
39
|
+
/** Emitted when favorite toggled — matches Angular 'changeFavorite' */
|
|
40
|
+
changeFavorite;
|
|
41
|
+
/** Emitted when "Enviar a cliente" button clicked */
|
|
42
|
+
dropiAddProduct;
|
|
43
|
+
/** Emitted when supplier name clicked */
|
|
44
|
+
dropiSupplierClick;
|
|
45
|
+
formatPrice(val) {
|
|
46
|
+
if (val == null)
|
|
47
|
+
return '0';
|
|
48
|
+
return val.toLocaleString('es-CO');
|
|
49
|
+
}
|
|
50
|
+
get inStock() {
|
|
51
|
+
return this.stock > 0;
|
|
52
|
+
}
|
|
53
|
+
getStockColor() {
|
|
54
|
+
if (this.stock === 0)
|
|
55
|
+
return 'var(--Error-Error-500, #f46a6b)';
|
|
56
|
+
if (this.stock <= 10)
|
|
57
|
+
return 'var(--Warning-Warning-500, #f59e0b)';
|
|
58
|
+
return 'var(--Success-Success-500, #0abb87)';
|
|
59
|
+
}
|
|
60
|
+
render() {
|
|
61
|
+
return (h("div", { key: '42990ea883dcd6cc72e1f62771f7b9554c36bdba', class: "dropi-card-product", onClick: () => this.onProductClick.emit() }, h("div", { key: '59295427ddc350ec3c70d7d1bd4803ffa6bf26b0', class: "product-image-container" }, h("div", { key: '9d10e18f2eadf16f0c0b1b7cb7860d08f2ca778f', class: "product-image" }, h("img", { key: '19f7af8eddcbea880d32ef30603d55bfe9337f17', src: this.image || '', alt: this.productName, onError: (e) => {
|
|
62
|
+
e.target.src = './assets/utils/no-image.jpg';
|
|
63
|
+
}, class: !this.image ? 'error-img' : '' }), this.showFavorite && (h("button", { key: 'a6e13eea7c211fd772fe5ee7c13c7d475d54986c', class: { 'favorite-button': true, 'favorite-active': this.isFavorite }, onClick: (e) => {
|
|
64
|
+
e.stopPropagation();
|
|
65
|
+
this.isFavorite = !this.isFavorite;
|
|
66
|
+
this.changeFavorite.emit(this.isFavorite);
|
|
67
|
+
}, "aria-label": "Favorito" }, h("dropi-icon", { key: '35300a450b8fff37e7c469b5b8a1f39ebfb717dc', name: this.isFavorite ? 'Heart-solid' : 'Heart', iconWidth: "18px", iconHeight: "18px", color: this.isFavorite ? '#fff' : '#858ea6' }))))), h("div", { key: 'b6792c07dbcc37f636add6bd0f9bfbb88b28fc6b', class: "product-info" }, this.supplierCategory && (h("dropi-ilustration-icon", { key: 'f4074d38a1e7999ffde2b4906de21b91348b4a63', class: "supplier-insignia", type: "insignia", stateInsignia: this.supplierCategory, tagProduct: true })), h("div", { key: '7a085de7400576ba2595770268845916eecfa3cf', class: "product-header" }, this.category && (h("span", { key: 'c5002b0b82d8483e3ea88d884cdeaa015341e7ca', class: "category" }, this.category)), h("div", { key: '4c24e0f3dc3ea31764290e97a600beb411ce7b50', class: "stock-info" }, h("span", { key: '453b6b6ba34aa1c060052ec6a1aa4b6aeabe454b', class: "stock-label" }, "Stock:"), h("span", { key: '46733d6335c72a16411b27c1cae7dbb1e46a26cc', class: "stock-value", style: { color: this.getStockColor() } }, this.stock === 0 ? 'Agotado' : this.stock))), h("h3", { key: '69179b355604ffbf594f192c47ba8ac18964d1c8', class: "product-name" }, this.productName), this.supplier && (h("div", { key: 'b53d6667872f959cc5e48b365b42b5744c4c0ae8', class: "supplier-info" }, h("span", { key: 'e2cb385de94697533b0ac8f8832246dac955efb1', class: "supplier-label" }, "Proveedor:"), h("span", { key: '17e2d2ce7a5d6113fbef89a5c49ec183e189aeee', class: "supplier-name", onClick: (e) => { e.stopPropagation(); this.dropiSupplierClick.emit(); } }, this.supplier))), h("div", { key: 'eb146caf735601d1ed0f3ff0f81e234a9a768d04', class: "price-container" }, h("div", { key: '0516aaeb1f4d087b262b5692abfac9993c8b378a', class: "price-item" }, h("span", { key: '837eb19a5bb50dbd05d999a5c3fb0d642f2701b7', class: "price-label" }, "Precio proveedor"), h("span", { key: '4bdba27153a06e39d5449b61eed4707a90123336', class: "price-value" }, this.currency, " ", this.formatPrice(this.salePrice))), h("div", { key: '82040761c0b63df23fbc80d0e990d3a1c610d8eb', class: "price-item" }, h("span", { key: 'c93307dba668d60e22e6b7d9215abf289495935c', class: "price-label" }, "Precio sugerido"), h("span", { key: 'd9aca439201e07756e298b0be7d41aa9396cf67d', class: "price-value" }, this.currency, " ", this.formatPrice(this.suggestedPrice))))), h("div", { key: '79e9e143ddb87209a550069abe839b89ec703e22', class: "separator" }), this.showAddButton && (h("div", { key: 'b3261c8db5e3fd9c97f9894f6aea420495f0577b', class: { 'action-button': true, 'action-button--disabled': !this.inStock }, onClick: (e) => {
|
|
68
|
+
e.stopPropagation();
|
|
69
|
+
if (this.inStock)
|
|
70
|
+
this.dropiAddProduct.emit();
|
|
71
|
+
} }, h("dropi-icon", { key: '89cf58b72a1500616eb47b9f6e0bcf1e67229d94', name: "Shopping-cart-arrow-rigth", iconWidth: "20px", iconHeight: "20px", color: "#f49a3d" }), h("span", { key: '60843cb9e54337eae7e570827190f1d60a8f0450', class: "button-text" }, "Enviar a cliente")))));
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
DropiCardProduct.style = dropiCardProductCss();
|
|
75
|
+
|
|
76
|
+
export { DropiCardProduct as dropi_card_product };
|
|
77
|
+
//# sourceMappingURL=dropi-card-product.entry.esm.js.map
|
|
78
|
+
|
|
79
|
+
//# sourceMappingURL=dropi-card-product.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"dropi-card-product.entry.js","mappings":"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","names":[],"sources":["src/components/dropi-card-product/dropi-card-product.css?tag=dropi-card-product&encapsulation=shadow","src/components/dropi-card-product/dropi-card-product.tsx"],"sourcesContent":[":host {\n display: block;\n font-family: 'Inter', sans-serif;\n}\n*, *::before, *::after { box-sizing: border-box; }\n\n/* ── Card wrapper ── */\n.dropi-card-product {\n position: relative;\n background: #ffffff;\n border-radius: 8px;\n overflow: hidden;\n transition: all 0.2s ease-in-out;\n cursor: pointer;\n display: flex;\n flex-direction: column;\n height: 100%;\n box-sizing: border-box;\n width: 100%;\n max-width: 450px;\n box-shadow: none;\n}\n\n/* ── Image container ── */\n.product-image-container {\n padding: 4px;\n flex-shrink: 0;\n}\n\n.product-image {\n position: relative;\n width: 100%;\n aspect-ratio: 1;\n border-radius: 8px;\n border: 1px solid #c3c9d9;\n overflow: hidden;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: #f8f9fa;\n}\n\n.product-image img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 8px;\n}\n\n.product-image img.error-img {\n object-fit: contain;\n}\n\n/* ── Favorite button ── */\n.favorite-button {\n position: absolute;\n bottom: 5px;\n right: 6px;\n border-radius: 8px;\n padding: 12px;\n cursor: pointer;\n transition: all 0.2s ease-in-out;\n z-index: 2;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 42px;\n height: 40px;\n background: #ffffff;\n border: 1px solid #858ea6;\n}\n\n.favorite-button.favorite-active {\n background: var(--Primary-Primary-500, #f49a3d);\n border: 1px solid var(--Primary-Primary-500, #f49a3d);\n}\n\n/* ── Product info ── */\n.product-info {\n position: relative;\n padding: 8px;\n display: flex;\n flex-direction: column;\n gap: 4px;\n flex: 1;\n justify-content: space-between;\n}\n\n/* ── Supplier insignia — overlaps from top ── */\n.supplier-insignia {\n position: absolute;\n top: -24px;\n left: 0px;\n}\n\n/* ── Header: category + stock ── */\n.product-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n height: 26px;\n}\n\n.category {\n color: #69738c;\n font-family: 'Inter', sans-serif;\n font-size: 12px;\n font-weight: 400;\n line-height: 1.5;\n flex: 1;\n}\n\n.stock-info {\n display: flex;\n align-items: center;\n gap: 2px;\n font-family: 'Inter', sans-serif;\n font-size: 12px;\n font-weight: 400;\n line-height: 1.5;\n}\n\n.stock-label {\n color: #69738c;\n}\n\n.stock-value {\n font-weight: 500;\n}\n\n/* ── Product name ── */\n.product-name {\n color: #32394d;\n font-family: 'Inter', sans-serif;\n font-size: 16px;\n font-weight: 500;\n line-height: 1.5;\n margin: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n\n/* ── Supplier ── */\n.supplier-info {\n font-family: 'Inter', sans-serif;\n font-size: 12px;\n line-height: 1.2;\n}\n\n.supplier-label {\n color: #69738c;\n font-weight: 400;\n}\n\n.supplier-name {\n color: #50a5f1;\n font-weight: 400;\n margin-left: 4px;\n cursor: pointer;\n}\n\n/* ── Prices ── */\n.price-container {\n display: flex;\n gap: 8px;\n margin-top: 4px;\n}\n\n.price-item {\n flex: 1;\n display: flex;\n flex-direction: column;\n}\n\n.price-label {\n color: #69738c;\n font-family: 'Inter', sans-serif;\n font-size: 12px;\n font-weight: 400;\n line-height: 1.5;\n height: 18px;\n min-width: max-content;\n}\n\n.price-value {\n color: #32394d;\n font-family: 'Inter', sans-serif;\n font-size: 14px;\n font-weight: 700;\n line-height: 1.1;\n margin-top: 2px;\n}\n\n/* ── Separator ── */\n.separator {\n height: 1px;\n background: #e6eaf2;\n margin: 0;\n flex-shrink: 0;\n}\n\n/* ── Action button ── */\n.action-button {\n background: #ffffff;\n border: none;\n border-top: 1px solid #e6eaf2;\n padding: 12px;\n cursor: pointer;\n transition: all 0.2s ease-in-out;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n height: 40px;\n flex-shrink: 0;\n}\n\n.action-button--disabled {\n opacity: 0.3;\n cursor: not-allowed;\n}\n\n.button-text {\n font-family: 'Inter', sans-serif;\n font-size: 14px;\n font-weight: 700;\n line-height: 1.1;\n color: #f49a3d;\n text-align: center;\n white-space: nowrap;\n}\n","import { Component, Prop, Event, EventEmitter, h } from '@stencil/core';\n\n/**\n * @component dropi-card-product\n * Product card showing image, supplier insignia, name, stock, prices and action button.\n */\n@Component({\n tag: 'dropi-card-product',\n styleUrl: 'dropi-card-product.css',\n shadow: true,\n})\nexport class DropiCardProduct {\n /** Product image URL */\n @Prop() image: string = '';\n /** Product name */\n @Prop() productName: string = '';\n /** Sale / supplier price (Precio proveedor) */\n @Prop() salePrice: number = 0;\n /** Suggested price for the dropshipper (Precio sugerido) */\n @Prop() suggestedPrice: number = 0;\n /** Price currency symbol */\n @Prop() currency: string = '$';\n /** Supplier / store name */\n @Prop() supplier: string = '';\n /** Category label */\n @Prop() category: string = '';\n /** Stock quantity (0 = Agotado) */\n @Prop() stock: number = 0;\n /** Supplier category for insignia: 'verified' | 'premium' | 'exclusive' | '' */\n @Prop() supplierCategory: 'verified' | 'premium' | 'exclusive' | '' = '';\n /** Show favorite button */\n @Prop() showFavorite: boolean = true;\n /** Is marked as favorite */\n @Prop({ mutable: true }) isFavorite: boolean = false;\n /** Show \"Enviar a cliente\" button */\n @Prop() showAddButton: boolean = true;\n\n /** Emitted when card is clicked — matches Angular 'onProductClick' */\n @Event() onProductClick: EventEmitter<void>;\n /** Emitted when favorite toggled — matches Angular 'changeFavorite' */\n @Event() changeFavorite: EventEmitter<boolean>;\n /** Emitted when \"Enviar a cliente\" button clicked */\n @Event() dropiAddProduct: EventEmitter<void>;\n /** Emitted when supplier name clicked */\n @Event() dropiSupplierClick: EventEmitter<void>;\n\n private formatPrice(val: number): string {\n if (val == null) return '0';\n return val.toLocaleString('es-CO');\n }\n\n private get inStock(): boolean {\n return this.stock > 0;\n }\n\n private getStockColor(): string {\n if (this.stock === 0) return 'var(--Error-Error-500, #f46a6b)';\n if (this.stock <= 10) return 'var(--Warning-Warning-500, #f59e0b)';\n return 'var(--Success-Success-500, #0abb87)';\n }\n\n render() {\n return (\n <div class=\"dropi-card-product\" onClick={() => this.onProductClick.emit()}>\n\n {/* ── Image container ── */}\n <div class=\"product-image-container\">\n <div class=\"product-image\">\n <img\n src={this.image || ''}\n alt={this.productName}\n onError={(e) => {\n (e.target as HTMLImageElement).src = './assets/utils/no-image.jpg';\n }}\n class={!this.image ? 'error-img' : ''}\n />\n\n {/* Favorite button — bottom right */}\n {this.showFavorite && (\n <button\n class={{ 'favorite-button': true, 'favorite-active': this.isFavorite }}\n onClick={(e) => {\n e.stopPropagation();\n this.isFavorite = !this.isFavorite;\n this.changeFavorite.emit(this.isFavorite);\n }}\n aria-label=\"Favorito\"\n >\n <dropi-icon\n name={this.isFavorite ? 'Heart-solid' : 'Heart'}\n iconWidth=\"18px\"\n iconHeight=\"18px\"\n color={this.isFavorite ? '#fff' : '#858ea6'}\n />\n </button>\n )}\n </div>\n </div>\n\n {/* ── Product info ── */}\n <div class=\"product-info\">\n\n {/* Insignia — overlapping from top */}\n {this.supplierCategory && (\n <dropi-ilustration-icon\n class=\"supplier-insignia\"\n type=\"insignia\"\n stateInsignia={this.supplierCategory as any}\n tagProduct={true}\n />\n )}\n\n {/* Category + Stock row */}\n <div class=\"product-header\">\n {this.category && (\n <span class=\"category\">{this.category}</span>\n )}\n <div class=\"stock-info\">\n <span class=\"stock-label\">Stock:</span>\n <span class=\"stock-value\" style={{ color: this.getStockColor() }}>\n {this.stock === 0 ? 'Agotado' : this.stock}\n </span>\n </div>\n </div>\n\n {/* Product name */}\n <h3 class=\"product-name\">{this.productName}</h3>\n\n {/* Supplier */}\n {this.supplier && (\n <div class=\"supplier-info\">\n <span class=\"supplier-label\">Proveedor:</span>\n <span\n class=\"supplier-name\"\n onClick={(e) => { e.stopPropagation(); this.dropiSupplierClick.emit(); }}\n >\n {this.supplier}\n </span>\n </div>\n )}\n\n {/* Two price columns */}\n <div class=\"price-container\">\n <div class=\"price-item\">\n <span class=\"price-label\">Precio proveedor</span>\n <span class=\"price-value\">{this.currency} {this.formatPrice(this.salePrice)}</span>\n </div>\n <div class=\"price-item\">\n <span class=\"price-label\">Precio sugerido</span>\n <span class=\"price-value\">{this.currency} {this.formatPrice(this.suggestedPrice)}</span>\n </div>\n </div>\n </div>\n\n {/* ── Separator ── */}\n <div class=\"separator\"></div>\n\n {/* ── Action button ── */}\n {this.showAddButton && (\n <div\n class={{ 'action-button': true, 'action-button--disabled': !this.inStock }}\n onClick={(e) => { e.stopPropagation(); if (this.inStock) this.dropiAddProduct.emit(); }}\n >\n <dropi-icon\n name=\"Shopping-cart-arrow-rigth\"\n iconWidth=\"20px\"\n iconHeight=\"20px\"\n color=\"#f49a3d\"\n />\n <span class=\"button-text\">Enviar a cliente</span>\n </div>\n )}\n </div>\n );\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { r as registerInstance, d as createEvent, h } from './index-Cvp2LQOM.js';
|
|
2
|
+
|
|
3
|
+
const dropiCardSectionCss = () => `:host{display:block;width:100%}*,*::before,*::after{box-sizing:border-box}.card-section{display:flex;align-items:center;justify-content:space-between;gap:var(--Size-4, 16px);padding:var(--Size-3, 12px) var(--Size-4, 16px);background:var(--Neutral-White, #ffffff);border:1px solid var(--Gray-Gray-100, #e6eaf2);border-radius:var(--Border-2, 8px)}.card-section__text{flex:1}.card-section__title{margin:0 0 4px;font-family:inherit;font-weight:var(--font-weight-bold, 700);color:var(--Gray-Gray-800, #1f2433)}h5.card-section__title{font-size:var(--font-size-m, 14px)}h6.card-section__title{font-size:var(--font-size-s, 12px)}.card-section__desc{margin:0;font-size:var(--font-size-xs, 10px);color:var(--Gray-Gray-500, #69738c)}.card-section__control{flex-shrink:0}.card-section__dropdown-btn{display:flex;align-items:center;background:none;border:none;padding:0;cursor:pointer}`;
|
|
4
|
+
|
|
5
|
+
const DropiCardSection = class {
|
|
6
|
+
constructor(hostRef) {
|
|
7
|
+
registerInstance(this, hostRef);
|
|
8
|
+
this.onChange = createEvent(this, "onChange", 7);
|
|
9
|
+
this.onClick = createEvent(this, "onClick", 7);
|
|
10
|
+
}
|
|
11
|
+
/** Section title — matches Angular 'title' */
|
|
12
|
+
title = 'title';
|
|
13
|
+
/** Section description */
|
|
14
|
+
description = 'Description';
|
|
15
|
+
/** Control type on the right */
|
|
16
|
+
typeElement = 'dropdown';
|
|
17
|
+
/** Title size variant */
|
|
18
|
+
type = 'important';
|
|
19
|
+
/** Switch checked state */
|
|
20
|
+
isChecked = false;
|
|
21
|
+
/** Emitted when switch changes */
|
|
22
|
+
onChange;
|
|
23
|
+
/** Emitted when dropdown icon is clicked */
|
|
24
|
+
onClick;
|
|
25
|
+
render() {
|
|
26
|
+
return (h("div", { key: 'aa7548c223bf3238b7af10e52821e3ffd19fefca', class: "card-section" }, h("div", { key: '6b0ed1e7f7c282b0f67277567a2fa1ffbab9d04e', class: "card-section__text" }, this.type === 'important'
|
|
27
|
+
? h("h5", { class: "card-section__title card-section__title--important" }, this.title)
|
|
28
|
+
: h("h6", { class: "card-section__title" }, this.title), this.description && h("p", { key: 'f0c83d631d541d95c19e4a246634da56413a3de9', class: "card-section__desc" }, this.description)), h("div", { key: '976d78401ab26872df88115ae0f0449bcd2faae9', class: "card-section__control" }, this.typeElement === 'switch' ? (h("dropi-switch", { isChecked: this.isChecked, onOnChange: (e) => {
|
|
29
|
+
this.isChecked = e.detail;
|
|
30
|
+
this.onChange.emit(e.detail);
|
|
31
|
+
} })) : (h("button", { class: "card-section__dropdown-btn", onClick: () => this.onClick.emit(), "aria-label": "Expandir" }, h("dropi-icon", { name: "Dropdown-down", iconWidth: "20px", iconHeight: "20px", color: "Gray-Gray-500" }))))));
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
DropiCardSection.style = dropiCardSectionCss();
|
|
35
|
+
|
|
36
|
+
export { DropiCardSection as dropi_card_section };
|
|
37
|
+
//# sourceMappingURL=dropi-card-section.entry.esm.js.map
|
|
38
|
+
|
|
39
|
+
//# sourceMappingURL=dropi-card-section.entry.js.map
|