@dropi/ui 0.1.24 → 0.1.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{esm → dropi-ui}/dropi-accordion-item.entry.js +8 -2
- package/dist/dropi-ui/dropi-accordion-item.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-accordion.entry.js +4 -1
- package/dist/dropi-ui/dropi-accordion.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-alert-legacy.entry.js +4 -1
- package/dist/dropi-ui/dropi-alert-legacy.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-alert-modal.entry.js +4 -1
- package/dist/dropi-ui/dropi-alert-modal.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-alert.entry.js +4 -1
- package/dist/dropi-ui/dropi-alert.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-avatars.entry.js +4 -1
- package/dist/dropi-ui/dropi-avatars.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-badge-legacy.entry.js +4 -1
- package/dist/dropi-ui/dropi-badge-legacy.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-badge.entry.js +4 -1
- package/dist/dropi-ui/dropi-badge.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-banner-external.entry.js +4 -1
- package/dist/dropi-ui/dropi-banner-external.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-breadcrumb.entry.js +4 -1
- package/dist/dropi-ui/dropi-breadcrumb.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-button.entry.js +4 -1
- package/dist/dropi-ui/dropi-button.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-card-checkbox.entry.js +4 -1
- package/dist/dropi-ui/dropi-card-checkbox.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-card-product.entry.js +4 -1
- package/dist/dropi-ui/dropi-card-product.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-card-section.entry.js +4 -1
- package/dist/dropi-ui/dropi-card-section.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-carousel.entry.js +4 -1
- package/dist/dropi-ui/dropi-carousel.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-checkbox-selection-list.entry.js +4 -1
- package/dist/dropi-ui/dropi-checkbox-selection-list.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-checkbox.entry.js +4 -1
- package/dist/dropi-ui/dropi-checkbox.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-chips.entry.js +4 -1
- package/dist/dropi-ui/dropi-chips.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-city-selector.entry.js +4 -1
- package/dist/dropi-ui/dropi-city-selector.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-color-picker.entry.js +4 -1
- package/dist/dropi-ui/dropi-color-picker.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-country-flags.entry.js +4 -1
- package/dist/dropi-ui/dropi-country-flags.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-country-selector.entry.js +4 -1
- package/dist/dropi-ui/dropi-country-selector.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-date-picker-range.entry.js +4 -1
- package/dist/dropi-ui/dropi-date-picker-range.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-date-picker.entry.js +4 -1
- package/dist/dropi-ui/dropi-date-picker.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-drawer.entry.js +4 -1
- package/dist/dropi-ui/dropi-drawer.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-dropdown.entry.js +4 -1
- package/dist/dropi-ui/dropi-dropdown.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-empty-state.entry.js +4 -1
- package/dist/dropi-ui/dropi-empty-state.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-favorite-button.entry.js +4 -1
- package/dist/dropi-ui/dropi-favorite-button.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-file-upload-progress-bar.entry.js +4 -1
- package/dist/dropi-ui/dropi-file-upload-progress-bar.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-file-upload.entry.js +4 -1
- package/dist/dropi-ui/dropi-file-upload.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-icon.entry.js +4 -1
- package/dist/dropi-ui/dropi-icon.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-ilustration-icon.entry.js +4 -1
- package/dist/dropi-ui/dropi-ilustration-icon.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-image-miniature.entry.js +4 -1
- package/dist/dropi-ui/dropi-image-miniature.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-image-overlay.entry.js +4 -1
- package/dist/dropi-ui/dropi-image-overlay.entry.js.map +1 -0
- package/dist/{esm/dropi-input_3.entry.js → dropi-ui/dropi-input.entry.js} +4 -128
- package/dist/dropi-ui/dropi-input.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-languages-selector.entry.js +4 -1
- package/dist/dropi-ui/dropi-languages-selector.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-logo.entry.js +4 -1
- package/dist/dropi-ui/dropi-logo.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-lottie-loader.entry.js +4 -1
- package/dist/dropi-ui/dropi-lottie-loader.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-media-player.entry.js +4 -1
- package/dist/dropi-ui/dropi-media-player.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-modal.entry.js +4 -1
- package/dist/dropi-ui/dropi-modal.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-navbar.entry.js +4 -1
- package/dist/dropi-ui/dropi-navbar.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-otp-send-code.entry.js +4 -1
- 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/{esm → dropi-ui}/dropi-phone-input.entry.js +4 -1
- package/dist/dropi-ui/dropi-phone-input.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-radio-button.entry.js +4 -1
- package/dist/dropi-ui/dropi-radio-button.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-radio-selection-list.entry.js +4 -1
- package/dist/dropi-ui/dropi-radio-selection-list.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-read-more.entry.js +4 -1
- package/dist/dropi-ui/dropi-read-more.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-search.entry.js +4 -1
- package/dist/dropi-ui/dropi-search.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-select.entry.js +4 -1
- package/dist/dropi-ui/dropi-select.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-sidebar.entry.js +4 -1
- package/dist/dropi-ui/dropi-sidebar.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-simple-stepper.entry.js +4 -1
- package/dist/dropi-ui/dropi-simple-stepper.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-skeleton.entry.js +4 -1
- package/dist/dropi-ui/dropi-skeleton.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-steps.entry.js +4 -1
- package/dist/dropi-ui/dropi-steps.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-switch.entry.js +4 -1
- package/dist/dropi-ui/dropi-switch.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-table.entry.js +4 -1
- package/dist/dropi-ui/dropi-table.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-tabs.entry.js +4 -1
- package/dist/dropi-ui/dropi-tabs.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-tag-type-product.entry.js +4 -1
- 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/{esm → dropi-ui}/dropi-text-area.entry.js +4 -1
- package/dist/dropi-ui/dropi-text-area.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-time-line.entry.js +4 -1
- package/dist/dropi-ui/dropi-time-line.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-toast.entry.js +4 -1
- package/dist/dropi-ui/dropi-toast.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-tooltip-v2.entry.js +4 -1
- package/dist/dropi-ui/dropi-tooltip-v2.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-tooltip.entry.js +4 -1
- 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/{esm → dropi-ui}/dropi-vertical-steps.entry.js +4 -1
- package/dist/dropi-ui/dropi-vertical-steps.entry.js.map +1 -0
- package/dist/{esm → dropi-ui}/dropi-youtube-lazy-video.entry.js +4 -1
- 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/package.json +1 -1
- package/readme.md +112 -58
- package/scripts/setup.js +11 -7
- package/dist/cjs/dropi-accordion-item.cjs.entry.js +0 -54
- package/dist/cjs/dropi-accordion.cjs.entry.js +0 -19
- package/dist/cjs/dropi-alert-legacy.cjs.entry.js +0 -39
- package/dist/cjs/dropi-alert-modal.cjs.entry.js +0 -128
- package/dist/cjs/dropi-alert.cjs.entry.js +0 -64
- package/dist/cjs/dropi-avatars.cjs.entry.js +0 -31
- package/dist/cjs/dropi-badge-legacy.cjs.entry.js +0 -30
- package/dist/cjs/dropi-badge.cjs.entry.js +0 -37
- package/dist/cjs/dropi-banner-external.cjs.entry.js +0 -63
- package/dist/cjs/dropi-breadcrumb.cjs.entry.js +0 -48
- package/dist/cjs/dropi-button.cjs.entry.js +0 -87
- package/dist/cjs/dropi-card-checkbox.cjs.entry.js +0 -48
- package/dist/cjs/dropi-card-product.cjs.entry.js +0 -78
- package/dist/cjs/dropi-card-section.cjs.entry.js +0 -38
- package/dist/cjs/dropi-carousel.cjs.entry.js +0 -153
- package/dist/cjs/dropi-checkbox-selection-list.cjs.entry.js +0 -73
- package/dist/cjs/dropi-checkbox.cjs.entry.js +0 -36
- package/dist/cjs/dropi-chips.cjs.entry.js +0 -30
- package/dist/cjs/dropi-city-selector.cjs.entry.js +0 -104
- package/dist/cjs/dropi-color-picker.cjs.entry.js +0 -319
- package/dist/cjs/dropi-country-flags.cjs.entry.js +0 -37
- package/dist/cjs/dropi-country-selector.cjs.entry.js +0 -197
- package/dist/cjs/dropi-date-picker-range.cjs.entry.js +0 -115
- package/dist/cjs/dropi-date-picker.cjs.entry.js +0 -223
- package/dist/cjs/dropi-drawer.cjs.entry.js +0 -79
- package/dist/cjs/dropi-dropdown.cjs.entry.js +0 -65
- package/dist/cjs/dropi-empty-state.cjs.entry.js +0 -36
- package/dist/cjs/dropi-favorite-button.cjs.entry.js +0 -27
- package/dist/cjs/dropi-file-upload-progress-bar.cjs.entry.js +0 -77
- package/dist/cjs/dropi-file-upload.cjs.entry.js +0 -237
- package/dist/cjs/dropi-icon.cjs.entry.js +0 -67
- package/dist/cjs/dropi-ilustration-icon.cjs.entry.js +0 -39
- package/dist/cjs/dropi-image-miniature.cjs.entry.js +0 -44
- package/dist/cjs/dropi-image-overlay.cjs.entry.js +0 -63
- package/dist/cjs/dropi-input_3.cjs.entry.js +0 -392
- package/dist/cjs/dropi-languages-selector.cjs.entry.js +0 -61
- package/dist/cjs/dropi-logo.cjs.entry.js +0 -37
- package/dist/cjs/dropi-lottie-loader.cjs.entry.js +0 -27
- package/dist/cjs/dropi-media-player.cjs.entry.js +0 -192
- package/dist/cjs/dropi-modal.cjs.entry.js +0 -142
- package/dist/cjs/dropi-navbar.cjs.entry.js +0 -54
- package/dist/cjs/dropi-otp-send-code.cjs.entry.js +0 -92
- package/dist/cjs/dropi-phone-input.cjs.entry.js +0 -197
- package/dist/cjs/dropi-radio-button.cjs.entry.js +0 -47
- package/dist/cjs/dropi-radio-selection-list.cjs.entry.js +0 -60
- package/dist/cjs/dropi-read-more.cjs.entry.js +0 -40
- package/dist/cjs/dropi-search.cjs.entry.js +0 -124
- package/dist/cjs/dropi-select.cjs.entry.js +0 -382
- package/dist/cjs/dropi-sidebar.cjs.entry.js +0 -78
- package/dist/cjs/dropi-simple-stepper.cjs.entry.js +0 -53
- package/dist/cjs/dropi-skeleton.cjs.entry.js +0 -57
- package/dist/cjs/dropi-steps.cjs.entry.js +0 -52
- package/dist/cjs/dropi-switch.cjs.entry.js +0 -30
- package/dist/cjs/dropi-table.cjs.entry.js +0 -299
- package/dist/cjs/dropi-tabs.cjs.entry.js +0 -51
- package/dist/cjs/dropi-tag-type-product.cjs.entry.js +0 -19
- package/dist/cjs/dropi-text-area.cjs.entry.js +0 -134
- package/dist/cjs/dropi-time-line.cjs.entry.js +0 -34
- package/dist/cjs/dropi-toast.cjs.entry.js +0 -56
- package/dist/cjs/dropi-tooltip-v2.cjs.entry.js +0 -131
- package/dist/cjs/dropi-tooltip.cjs.entry.js +0 -21
- package/dist/cjs/dropi-ui.cjs.js +0 -24
- package/dist/cjs/dropi-vertical-steps.cjs.entry.js +0 -55
- package/dist/cjs/dropi-youtube-lazy-video.cjs.entry.js +0 -33
- package/dist/cjs/index-C8kwDvpf.js +0 -2773
- package/dist/cjs/index.cjs.js +0 -2
- package/dist/cjs/loader.cjs.js +0 -12
- package/dist/collection/assets/icons/symbol/svg/sprite.css.svg +0 -1
- package/dist/collection/collection-manifest.json +0 -77
- package/dist/collection/components/dropi-accordion/dropi-accordion-item.css +0 -45
- package/dist/collection/components/dropi-accordion/dropi-accordion-item.js +0 -172
- package/dist/collection/components/dropi-accordion/dropi-accordion.css +0 -21
- package/dist/collection/components/dropi-accordion/dropi-accordion.js +0 -48
- package/dist/collection/components/dropi-alert/dropi-alert.css +0 -128
- package/dist/collection/components/dropi-alert/dropi-alert.js +0 -371
- package/dist/collection/components/dropi-alert-legacy/dropi-alert-legacy.css +0 -31
- package/dist/collection/components/dropi-alert-legacy/dropi-alert-legacy.js +0 -128
- package/dist/collection/components/dropi-alert-modal/dropi-alert-modal.css +0 -105
- package/dist/collection/components/dropi-alert-modal/dropi-alert-modal.js +0 -525
- package/dist/collection/components/dropi-avatars/dropi-avatars.css +0 -55
- package/dist/collection/components/dropi-avatars/dropi-avatars.js +0 -126
- package/dist/collection/components/dropi-badge/dropi-badge.css +0 -41
- package/dist/collection/components/dropi-badge/dropi-badge.js +0 -71
- package/dist/collection/components/dropi-badge-legacy/dropi-badge-legacy.css +0 -17
- package/dist/collection/components/dropi-badge-legacy/dropi-badge-legacy.js +0 -119
- package/dist/collection/components/dropi-banner-external/dropi-banner-external.css +0 -56
- package/dist/collection/components/dropi-banner-external/dropi-banner-external.js +0 -254
- package/dist/collection/components/dropi-breadcrumb/dropi-breadcrumb.css +0 -69
- package/dist/collection/components/dropi-breadcrumb/dropi-breadcrumb.js +0 -171
- package/dist/collection/components/dropi-button/dropi-button.css +0 -177
- package/dist/collection/components/dropi-button/dropi-button.js +0 -323
- package/dist/collection/components/dropi-card-checkbox/dropi-card-checkbox.css +0 -92
- package/dist/collection/components/dropi-card-checkbox/dropi-card-checkbox.js +0 -222
- package/dist/collection/components/dropi-card-product/dropi-card-product.css +0 -235
- package/dist/collection/components/dropi-card-product/dropi-card-product.js +0 -386
- package/dist/collection/components/dropi-card-section/dropi-card-section.css +0 -42
- package/dist/collection/components/dropi-card-section/dropi-card-section.js +0 -178
- package/dist/collection/components/dropi-carousel/dropi-carousel.css +0 -148
- package/dist/collection/components/dropi-carousel/dropi-carousel.js +0 -379
- package/dist/collection/components/dropi-checkbox/dropi-checkbox.css +0 -47
- package/dist/collection/components/dropi-checkbox/dropi-checkbox.js +0 -103
- package/dist/collection/components/dropi-checkbox-selection-list/dropi-checkbox-selection-list.css +0 -44
- package/dist/collection/components/dropi-checkbox-selection-list/dropi-checkbox-selection-list.js +0 -267
- package/dist/collection/components/dropi-chips/dropi-chips.css +0 -68
- package/dist/collection/components/dropi-chips/dropi-chips.js +0 -169
- package/dist/collection/components/dropi-city-selector/dropi-city-selector.css +0 -218
- package/dist/collection/components/dropi-city-selector/dropi-city-selector.js +0 -242
- package/dist/collection/components/dropi-color-picker/dropi-color-picker.css +0 -210
- package/dist/collection/components/dropi-color-picker/dropi-color-picker.js +0 -393
- package/dist/collection/components/dropi-country-flags/dropi-country-flags.css +0 -30
- package/dist/collection/components/dropi-country-flags/dropi-country-flags.js +0 -129
- package/dist/collection/components/dropi-country-selector/dropi-country-selector.css +0 -211
- package/dist/collection/components/dropi-country-selector/dropi-country-selector.js +0 -429
- package/dist/collection/components/dropi-date-picker/dropi-date-picker.css +0 -215
- package/dist/collection/components/dropi-date-picker/dropi-date-picker.js +0 -516
- package/dist/collection/components/dropi-date-picker-range/dropi-date-picker-range.css +0 -143
- package/dist/collection/components/dropi-date-picker-range/dropi-date-picker-range.js +0 -327
- package/dist/collection/components/dropi-drawer/dropi-drawer.css +0 -129
- package/dist/collection/components/dropi-drawer/dropi-drawer.js +0 -287
- package/dist/collection/components/dropi-dropdown/dropi-dropdown.css +0 -51
- package/dist/collection/components/dropi-dropdown/dropi-dropdown.js +0 -209
- package/dist/collection/components/dropi-empty-state/dropi-empty-state.css +0 -59
- package/dist/collection/components/dropi-empty-state/dropi-empty-state.js +0 -222
- package/dist/collection/components/dropi-favorite-button/dropi-favorite-button.css +0 -24
- package/dist/collection/components/dropi-favorite-button/dropi-favorite-button.js +0 -78
- package/dist/collection/components/dropi-file-upload/dropi-file-upload.css +0 -464
- package/dist/collection/components/dropi-file-upload/dropi-file-upload.js +0 -517
- package/dist/collection/components/dropi-file-upload-progress-bar/dropi-file-upload-progress-bar.css +0 -115
- package/dist/collection/components/dropi-file-upload-progress-bar/dropi-file-upload-progress-bar.js +0 -258
- package/dist/collection/components/dropi-icon/dropi-icon.css +0 -26
- package/dist/collection/components/dropi-icon/dropi-icon.js +0 -159
- package/dist/collection/components/dropi-ilustration-icon/dropi-ilustration-icon.css +0 -91
- package/dist/collection/components/dropi-ilustration-icon/dropi-ilustration-icon.js +0 -150
- package/dist/collection/components/dropi-image-miniature/dropi-image-miniature.css +0 -45
- package/dist/collection/components/dropi-image-miniature/dropi-image-miniature.js +0 -150
- package/dist/collection/components/dropi-image-overlay/dropi-image-overlay.css +0 -127
- package/dist/collection/components/dropi-image-overlay/dropi-image-overlay.js +0 -156
- package/dist/collection/components/dropi-input/dropi-input.css +0 -185
- package/dist/collection/components/dropi-input/dropi-input.js +0 -808
- package/dist/collection/components/dropi-languages-selector/dropi-languages-selector.css +0 -79
- package/dist/collection/components/dropi-languages-selector/dropi-languages-selector.js +0 -158
- package/dist/collection/components/dropi-logo/dropi-logo.css +0 -26
- package/dist/collection/components/dropi-logo/dropi-logo.js +0 -107
- package/dist/collection/components/dropi-lottie-loader/dropi-lottie-loader.css +0 -56
- package/dist/collection/components/dropi-lottie-loader/dropi-lottie-loader.js +0 -116
- package/dist/collection/components/dropi-media-player/dropi-media-player.css +0 -320
- package/dist/collection/components/dropi-media-player/dropi-media-player.js +0 -394
- package/dist/collection/components/dropi-modal/dropi-modal.css +0 -140
- package/dist/collection/components/dropi-modal/dropi-modal.js +0 -695
- package/dist/collection/components/dropi-navbar/dropi-navbar.css +0 -166
- package/dist/collection/components/dropi-navbar/dropi-navbar.js +0 -302
- package/dist/collection/components/dropi-otp-send-code/dropi-otp-send-code.css +0 -67
- package/dist/collection/components/dropi-otp-send-code/dropi-otp-send-code.js +0 -221
- package/dist/collection/components/dropi-paginator/dropi-paginator.css +0 -103
- package/dist/collection/components/dropi-paginator/dropi-paginator.js +0 -215
- package/dist/collection/components/dropi-phone-input/dropi-phone-input.css +0 -209
- package/dist/collection/components/dropi-phone-input/dropi-phone-input.js +0 -442
- package/dist/collection/components/dropi-radio-button/dropi-radio-button.css +0 -62
- package/dist/collection/components/dropi-radio-button/dropi-radio-button.js +0 -174
- package/dist/collection/components/dropi-radio-selection-list/dropi-radio-selection-list.css +0 -64
- package/dist/collection/components/dropi-radio-selection-list/dropi-radio-selection-list.js +0 -259
- package/dist/collection/components/dropi-read-more/dropi-read-more.css +0 -25
- package/dist/collection/components/dropi-read-more/dropi-read-more.js +0 -154
- package/dist/collection/components/dropi-search/dropi-search.css +0 -112
- package/dist/collection/components/dropi-search/dropi-search.js +0 -526
- package/dist/collection/components/dropi-select/dropi-select.css +0 -366
- package/dist/collection/components/dropi-select/dropi-select.js +0 -1018
- package/dist/collection/components/dropi-select/select.types.js +0 -1
- package/dist/collection/components/dropi-sidebar/dropi-sidebar.css +0 -76
- package/dist/collection/components/dropi-sidebar/dropi-sidebar.js +0 -143
- package/dist/collection/components/dropi-simple-stepper/dropi-simple-stepper.css +0 -94
- package/dist/collection/components/dropi-simple-stepper/dropi-simple-stepper.js +0 -194
- package/dist/collection/components/dropi-skeleton/dropi-skeleton.css +0 -27
- package/dist/collection/components/dropi-skeleton/dropi-skeleton.js +0 -192
- package/dist/collection/components/dropi-steps/dropi-steps.css +0 -95
- package/dist/collection/components/dropi-steps/dropi-steps.js +0 -173
- package/dist/collection/components/dropi-switch/dropi-switch.css +0 -57
- package/dist/collection/components/dropi-switch/dropi-switch.js +0 -96
- package/dist/collection/components/dropi-table/dropi-table.css +0 -540
- package/dist/collection/components/dropi-table/dropi-table.js +0 -973
- package/dist/collection/components/dropi-tabs/dropi-tabs.css +0 -47
- package/dist/collection/components/dropi-tabs/dropi-tabs.js +0 -181
- package/dist/collection/components/dropi-tag/dropi-tag.css +0 -39
- package/dist/collection/components/dropi-tag/dropi-tag.js +0 -190
- package/dist/collection/components/dropi-tag-type-product/dropi-tag-type-product.css +0 -14
- package/dist/collection/components/dropi-tag-type-product/dropi-tag-type-product.js +0 -48
- package/dist/collection/components/dropi-text-area/dropi-text-area.css +0 -100
- package/dist/collection/components/dropi-text-area/dropi-text-area.js +0 -512
- package/dist/collection/components/dropi-time-line/dropi-time-line.css +0 -108
- package/dist/collection/components/dropi-time-line/dropi-time-line.js +0 -69
- package/dist/collection/components/dropi-toast/dropi-toast.css +0 -63
- package/dist/collection/components/dropi-toast/dropi-toast.js +0 -165
- package/dist/collection/components/dropi-tooltip/dropi-tooltip.css +0 -32
- package/dist/collection/components/dropi-tooltip/dropi-tooltip.js +0 -70
- package/dist/collection/components/dropi-tooltip-v2/dropi-tooltip.css +0 -67
- package/dist/collection/components/dropi-tooltip-v2/dropi-tooltip.js +0 -468
- package/dist/collection/components/dropi-vertical-steps/dropi-vertical-steps.css +0 -95
- package/dist/collection/components/dropi-vertical-steps/dropi-vertical-steps.js +0 -167
- package/dist/collection/components/dropi-youtube-lazy-video/dropi-youtube-lazy-video.css +0 -73
- package/dist/collection/components/dropi-youtube-lazy-video/dropi-youtube-lazy-video.js +0 -110
- package/dist/collection/index.js +0 -1
- package/dist/collection/utils/utils.js +0 -3
- package/dist/collection/utils/utils.unit.test.js +0 -16
- package/dist/components/dropi-accordion-item.js +0 -1
- package/dist/components/dropi-accordion.js +0 -1
- package/dist/components/dropi-alert-legacy.js +0 -1
- package/dist/components/dropi-alert-modal.js +0 -1
- package/dist/components/dropi-alert.js +0 -1
- package/dist/components/dropi-avatars.js +0 -1
- package/dist/components/dropi-badge-legacy.js +0 -1
- package/dist/components/dropi-badge.js +0 -1
- package/dist/components/dropi-banner-external.js +0 -1
- package/dist/components/dropi-breadcrumb.js +0 -1
- package/dist/components/dropi-button.js +0 -1
- package/dist/components/dropi-card-checkbox.js +0 -1
- package/dist/components/dropi-card-product.js +0 -1
- package/dist/components/dropi-card-section.js +0 -1
- package/dist/components/dropi-carousel.js +0 -1
- package/dist/components/dropi-checkbox-selection-list.js +0 -1
- package/dist/components/dropi-checkbox.js +0 -1
- package/dist/components/dropi-chips.js +0 -1
- package/dist/components/dropi-city-selector.js +0 -1
- package/dist/components/dropi-color-picker.js +0 -1
- package/dist/components/dropi-country-flags.js +0 -1
- package/dist/components/dropi-country-selector.js +0 -1
- package/dist/components/dropi-date-picker-range.js +0 -1
- package/dist/components/dropi-date-picker.js +0 -1
- package/dist/components/dropi-drawer.js +0 -1
- package/dist/components/dropi-dropdown.js +0 -1
- package/dist/components/dropi-empty-state.js +0 -1
- package/dist/components/dropi-favorite-button.js +0 -1
- package/dist/components/dropi-file-upload-progress-bar.js +0 -1
- package/dist/components/dropi-file-upload.js +0 -1
- package/dist/components/dropi-icon.js +0 -1
- package/dist/components/dropi-ilustration-icon.js +0 -1
- package/dist/components/dropi-image-miniature.js +0 -1
- package/dist/components/dropi-image-overlay.js +0 -1
- package/dist/components/dropi-input.js +0 -1
- package/dist/components/dropi-languages-selector.js +0 -1
- package/dist/components/dropi-logo.js +0 -1
- package/dist/components/dropi-lottie-loader.js +0 -1
- package/dist/components/dropi-media-player.js +0 -1
- package/dist/components/dropi-modal.js +0 -1
- package/dist/components/dropi-navbar.js +0 -1
- package/dist/components/dropi-otp-send-code.js +0 -1
- package/dist/components/dropi-paginator.js +0 -1
- package/dist/components/dropi-phone-input.js +0 -1
- package/dist/components/dropi-radio-button.js +0 -1
- package/dist/components/dropi-radio-selection-list.js +0 -1
- package/dist/components/dropi-read-more.js +0 -1
- package/dist/components/dropi-search.js +0 -1
- package/dist/components/dropi-select.js +0 -1
- package/dist/components/dropi-sidebar.js +0 -1
- package/dist/components/dropi-simple-stepper.js +0 -1
- package/dist/components/dropi-skeleton.js +0 -1
- package/dist/components/dropi-steps.js +0 -1
- package/dist/components/dropi-switch.js +0 -1
- package/dist/components/dropi-table.js +0 -1
- package/dist/components/dropi-tabs.js +0 -1
- package/dist/components/dropi-tag-type-product.js +0 -1
- package/dist/components/dropi-tag.js +0 -1
- package/dist/components/dropi-text-area.js +0 -1
- package/dist/components/dropi-time-line.js +0 -1
- package/dist/components/dropi-toast.js +0 -1
- package/dist/components/dropi-tooltip-v2.js +0 -1
- package/dist/components/dropi-tooltip.js +0 -1
- package/dist/components/dropi-vertical-steps.js +0 -1
- package/dist/components/dropi-youtube-lazy-video.js +0 -1
- package/dist/components/index.js +0 -1
- package/dist/components/p-B9R8Apw7.js +0 -1
- 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-CV_oz45O.js +0 -1
- package/dist/components/p-D-vQQQNz.js +0 -1
- package/dist/components/p-D13d88W3.js +0 -1
- package/dist/components/p-DGUfr98Z.js +0 -1
- package/dist/components/p-QOZr7tU8.js +0 -1
- package/dist/components/p-a-hGQrJd.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-17c56074.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-1d3d6a32.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-34b66ca2.entry.js +0 -1
- package/dist/dropi-ui/p-39af6478.entry.js +0 -1
- package/dist/dropi-ui/p-3e36c8b8.entry.js +0 -1
- package/dist/dropi-ui/p-3ebc9b7b.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-53a7a37d.entry.js +0 -1
- package/dist/dropi-ui/p-5c0bd7c2.entry.js +0 -1
- package/dist/dropi-ui/p-5cee6721.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-85444414.entry.js +0 -1
- package/dist/dropi-ui/p-86283e99.entry.js +0 -1
- package/dist/dropi-ui/p-8bf5d8ee.entry.js +0 -1
- package/dist/dropi-ui/p-9032ba00.entry.js +0 -1
- package/dist/dropi-ui/p-9212f544.entry.js +0 -1
- package/dist/dropi-ui/p-92291873.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-9b037086.entry.js +0 -1
- package/dist/dropi-ui/p-9e0129cc.entry.js +0 -1
- package/dist/dropi-ui/p-9ffec3f7.entry.js +0 -1
- package/dist/dropi-ui/p-D5SAM1O2.js +0 -2
- 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-a3c4d677.entry.js +0 -1
- package/dist/dropi-ui/p-a457e8ca.entry.js +0 -1
- package/dist/dropi-ui/p-a4e1df5e.entry.js +0 -1
- package/dist/dropi-ui/p-a822a23e.entry.js +0 -1
- package/dist/dropi-ui/p-a8f24270.entry.js +0 -1
- package/dist/dropi-ui/p-ae35d538.entry.js +0 -1
- package/dist/dropi-ui/p-af8e2157.entry.js +0 -1
- package/dist/dropi-ui/p-b2623a5c.entry.js +0 -1
- package/dist/dropi-ui/p-b3d3c72e.entry.js +0 -1
- package/dist/dropi-ui/p-c3614c4a.entry.js +0 -1
- package/dist/dropi-ui/p-cbf5367e.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-d42d4ef7.entry.js +0 -1
- package/dist/dropi-ui/p-db38bf16.entry.js +0 -1
- package/dist/dropi-ui/p-dd5d8b1b.entry.js +0 -1
- package/dist/dropi-ui/p-e3ad21f8.entry.js +0 -1
- package/dist/dropi-ui/p-e6e766ed.entry.js +0 -1
- package/dist/dropi-ui/p-ec263862.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
- package/dist/esm/dropi-ui.js +0 -20
- package/dist/esm/index-D5SAM1O2.js +0 -2763
- package/dist/esm/index.js +0 -1
- package/dist/esm/loader.js +0 -10
- package/dist/index.cjs.js +0 -1
- package/dist/index.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as registerInstance,
|
|
1
|
+
import { r as registerInstance, d as createEvent, h } from './index-Cvp2LQOM.js';
|
|
2
2
|
|
|
3
3
|
const dropiDrawerCss = () => `:host{display:contents;font-family:'Inter', sans-serif}*,*::before,*::after{box-sizing:border-box}.drawer-host{position:fixed;inset:0;z-index:1000;pointer-events:none;visibility:hidden}.drawer-host--open{pointer-events:all;visibility:visible}.drawer-backdrop{position:absolute;inset:0;background:rgba(0, 0, 0, 0.5);opacity:0;transition:opacity 0.25s}.drawer-host--open .drawer-backdrop{opacity:1}.drawer-panel{position:absolute;background:var(--Neutral-White, #ffffff);display:flex;flex-direction:column;transition:transform 0.25s ease;overflow:hidden;max-width:100%;min-width:auto}.drawer-panel--right{top:0;right:0;bottom:0;transform:translateX(100%);box-shadow:-4px 0 24px rgba(0, 0, 0, 0.12)}.drawer-host--open .drawer-panel--right{transform:translateX(0)}.drawer-panel--left{top:0;left:0;bottom:0;transform:translateX(-100%);box-shadow:4px 0 24px rgba(0, 0, 0, 0.12)}.drawer-host--open .drawer-panel--left{transform:translateX(0)}.drawer-panel--bottom{bottom:0;left:0;right:0;transform:translateY(100%);border-radius:var(--Border-2, 8px) var(--Border-2, 8px) 0 0;box-shadow:0 -4px 24px rgba(0, 0, 0, 0.12)}.drawer-host--open .drawer-panel--bottom{transform:translateY(0)}.drawer-panel--top{top:0;left:0;right:0;transform:translateY(-100%);border-radius:0 0 var(--Border-2, 8px) var(--Border-2, 8px);box-shadow:0 4px 24px rgba(0, 0, 0, 0.12)}.drawer-host--open .drawer-panel--top{transform:translateY(0)}.drawer-panel--size-m{width:550px}.drawer-panel--size-l{width:1137px}.drawer-panel--size-xl{width:1280px}.drawer-panel--size-xxl{width:1330px}.drawer-header{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:var(--Size-4, 16px) var(--Size-4, 16px) var(--Size-3, 12px);border-bottom:1px solid var(--Gray-Gray-100, #eceef4);flex-shrink:0}.drawer-header--headless{display:none}.drawer-header__title{color:var(--Gray-700, #32394d);font-family:Inter, sans-serif;font-size:24px;font-style:normal;font-weight:700;line-height:110%;margin:0}.drawer-header__close{width:var(--Size-6, 32px);height:var(--Size-6, 32px);background:none;border:none;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--Gray-400, #858ea6);border-radius:var(--Border-1, 4px);transition:background 0.15s;flex-shrink:0}.drawer-header__close:hover{background:var(--Gray-Gray-50, #f7f8fa)}.drawer-body{flex:1;overflow-y:auto;padding:var(--Size-4, 16px);display:flex;flex-direction:column}.drawer-footer{display:none}`;
|
|
4
4
|
|
|
@@ -75,3 +75,6 @@ const DropiDrawer = class {
|
|
|
75
75
|
DropiDrawer.style = dropiDrawerCss();
|
|
76
76
|
|
|
77
77
|
export { DropiDrawer as dropi_drawer };
|
|
78
|
+
//# sourceMappingURL=dropi-drawer.entry.esm.js.map
|
|
79
|
+
|
|
80
|
+
//# sourceMappingURL=dropi-drawer.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"dropi-drawer.entry.js","mappings":"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","names":[],"sources":["src/components/dropi-drawer/dropi-drawer.css?tag=dropi-drawer&encapsulation=shadow","src/components/dropi-drawer/dropi-drawer.tsx"],"sourcesContent":[":host { display: contents; font-family: 'Inter', sans-serif; }\n*, *::before, *::after { box-sizing: border-box; }\n\n.drawer-host {\n position: fixed;\n inset: 0;\n z-index: 1000;\n pointer-events: none;\n visibility: hidden;\n}\n.drawer-host--open {\n pointer-events: all;\n visibility: visible;\n}\n\n/* Backdrop */\n.drawer-backdrop {\n position: absolute;\n inset: 0;\n background: rgba(0, 0, 0, 0.5);\n opacity: 0;\n transition: opacity 0.25s;\n}\n.drawer-host--open .drawer-backdrop { opacity: 1; }\n\n/* Panel base */\n.drawer-panel {\n position: absolute;\n background: var(--Neutral-White, #ffffff);\n display: flex;\n flex-direction: column;\n transition: transform 0.25s ease;\n overflow: hidden;\n max-width: 100%;\n min-width: auto;\n}\n\n/* Positions */\n.drawer-panel--right {\n top: 0; right: 0; bottom: 0;\n transform: translateX(100%);\n box-shadow: -4px 0 24px rgba(0, 0, 0, 0.12);\n}\n.drawer-host--open .drawer-panel--right { transform: translateX(0); }\n\n.drawer-panel--left {\n top: 0; left: 0; bottom: 0;\n transform: translateX(-100%);\n box-shadow: 4px 0 24px rgba(0, 0, 0, 0.12);\n}\n.drawer-host--open .drawer-panel--left { transform: translateX(0); }\n\n.drawer-panel--bottom {\n bottom: 0; left: 0; right: 0;\n transform: translateY(100%);\n border-radius: var(--Border-2, 8px) var(--Border-2, 8px) 0 0;\n box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.12);\n}\n.drawer-host--open .drawer-panel--bottom { transform: translateY(0); }\n\n.drawer-panel--top {\n top: 0; left: 0; right: 0;\n transform: translateY(-100%);\n border-radius: 0 0 var(--Border-2, 8px) var(--Border-2, 8px);\n box-shadow: 0 4px 24px rgba(0, 0, 0, 0.12);\n}\n.drawer-host--open .drawer-panel--top { transform: translateY(0); }\n\n/* Sizes — coinciden con size-m/l/xl/xxl del host */\n.drawer-panel--size-m { width: 550px; }\n.drawer-panel--size-l { width: 1137px; }\n.drawer-panel--size-xl { width: 1280px; }\n.drawer-panel--size-xxl { width: 1330px; }\n\n/* Header */\n.drawer-header {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n padding: var(--Size-4, 16px) var(--Size-4, 16px) var(--Size-3, 12px);\n border-bottom: 1px solid var(--Gray-Gray-100, #eceef4);\n flex-shrink: 0;\n}\n\n.drawer-header--headless {\n display: none;\n}\n\n.drawer-header__title {\n color: var(--Gray-700, #32394d);\n font-family: Inter, sans-serif;\n font-size: 24px;\n font-style: normal;\n font-weight: 700;\n line-height: 110%;\n margin: 0;\n}\n\n.drawer-header__close {\n width: var(--Size-6, 32px);\n height: var(--Size-6, 32px);\n background: none;\n border: none;\n padding: 0;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--Gray-400, #858ea6);\n border-radius: var(--Border-1, 4px);\n transition: background 0.15s;\n flex-shrink: 0;\n}\n.drawer-header__close:hover { background: var(--Gray-Gray-50, #f7f8fa); }\n\n/* Body */\n.drawer-body {\n flex: 1;\n overflow-y: auto;\n padding: var(--Size-4, 16px);\n display: flex;\n flex-direction: column;\n}\n\n/* Footer — oculto por defecto como en el host */\n.drawer-footer {\n display: none;\n}\n","import { Component, Prop, Event, EventEmitter, Watch, h } from '@stencil/core';\n\n/**\n * @component dropi-drawer\n * Slide-in panel from any side of the screen with backdrop.\n * Matches dropi-core_front implementation with size and headless support.\n */\n@Component({\n tag: 'dropi-drawer',\n styleUrl: 'dropi-drawer.css',\n shadow: true,\n})\nexport class DropiDrawer {\n @Prop() drawerTitle: string = '';\n /** Controls visibility (alias of open for Angular parity) */\n @Prop({ mutable: true }) drawerIsOpen: any = false;\n /** Controls visibility */\n @Prop({ mutable: true }) open: any = false;\n /** Side from which the drawer slides in */\n @Prop() position: 'left' | 'right' | 'top' | 'bottom' = 'right';\n /** Preset size (overrides width when set): 'm' | 'l' | 'xl' | 'xxl' */\n @Prop() size: 'm' | 'l' | 'xl' | 'xxl' | '' = '';\n /** Custom width for left/right drawers (used when size is not set) */\n @Prop() width: string = '400px';\n /** Custom height for top/bottom drawers */\n @Prop() height: string = '50vh';\n /** Hide the header (headless mode) */\n @Prop() headless: boolean = false;\n /** Close on backdrop click */\n @Prop() closeOnBackdrop: boolean = true;\n\n /** Emitted when drawer closes */\n @Event() dropiClose: EventEmitter<void>;\n\n @Watch('open')\n @Watch('drawerIsOpen')\n openChanged(val: boolean) {\n this.open = val;\n this.drawerIsOpen = val;\n if (typeof document !== 'undefined') {\n if (val) document.body.classList.add('dropi-modal-open');\n else document.body.classList.remove('dropi-modal-open');\n }\n }\n\n componentWillLoad() {\n if (this.drawerIsOpen) this.open = true;\n if (this.open) this.drawerIsOpen = true;\n }\n\n private close() {\n this.open = false;\n this.dropiClose.emit();\n }\n\n render() {\n const isHorizontal = this.position === 'left' || this.position === 'right';\n\n // Clase de tamaño según prop size\n const sizeClass = this.size ? `drawer-panel--size-${this.size}` : '';\n\n // Estilo inline solo cuando no hay size preset\n const panelStyle: { [key: string]: string } = {};\n if (!this.size) {\n if (isHorizontal) panelStyle['width'] = this.width;\n else panelStyle['height'] = this.height;\n }\n\n return (\n <div class={{ 'drawer-host': true, 'drawer-host--open': this.open }}>\n {/* Backdrop */}\n <div\n class=\"drawer-backdrop\"\n onClick={() => { if (this.closeOnBackdrop) this.close(); }}\n />\n\n {/* Panel */}\n <div\n class={`drawer-panel drawer-panel--${this.position}${sizeClass ? ' ' + sizeClass : ''}`}\n style={panelStyle}\n role=\"dialog\"\n aria-modal=\"true\"\n >\n {/* Header */}\n <div class={{ 'drawer-header': true, 'drawer-header--headless': this.headless }}>\n <h3 class=\"drawer-header__title\">{this.drawerTitle}</h3>\n <button class=\"drawer-header__close\" onClick={() => this.close()} aria-label=\"Cerrar\">\n <dropi-icon name=\"Close-small\" width=\"32px\" height=\"32px\" color=\"Gray-Gray-400\" />\n </button>\n </div>\n\n {/* Body */}\n <div class=\"drawer-body\">\n <slot />\n </div>\n\n {/* Footer — hidden by default matching host */}\n <div class=\"drawer-footer\">\n <slot name=\"footer\" />\n </div>\n </div>\n </div>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as registerInstance,
|
|
1
|
+
import { r as registerInstance, d as createEvent, h } from './index-Cvp2LQOM.js';
|
|
2
2
|
|
|
3
3
|
const dropiDropdownCss = () => `:host{display:block;width:100%}*,*::before,*::after{box-sizing:border-box}.dropdown{display:flex;flex-direction:column;overflow-y:auto;max-height:var(--dropdown-height, 300px);border:1px solid var(--Gray-Gray-200, #c3c9d9);border-radius:var(--Border-2, 8px);background:var(--Neutral-White, #ffffff)}.dropdown__item{display:flex;align-items:center;gap:var(--Size-2, 8px);padding:var(--Size-2, 8px) var(--Size-3, 12px);cursor:pointer;transition:background 0.15s;user-select:none}.dropdown__item:hover{background:var(--Gray-Gray-50, #f7f8fa)}.dropdown__item--active{background:var(--Primary-Primary-50, #fff5eb)}.dropdown__avatar{width:28px;height:28px;border-radius:50%;object-fit:cover;flex-shrink:0}.dropdown__label{flex:1;font-size:var(--font-size-s, 12px);color:var(--Gray-Gray-700, #32394d);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}`;
|
|
4
4
|
|
|
@@ -61,3 +61,6 @@ const DropiDropdown = class {
|
|
|
61
61
|
DropiDropdown.style = dropiDropdownCss();
|
|
62
62
|
|
|
63
63
|
export { DropiDropdown as dropi_dropdown };
|
|
64
|
+
//# sourceMappingURL=dropi-dropdown.entry.esm.js.map
|
|
65
|
+
|
|
66
|
+
//# sourceMappingURL=dropi-dropdown.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"dropi-dropdown.entry.js","mappings":"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","names":[],"sources":["src/components/dropi-dropdown/dropi-dropdown.css?tag=dropi-dropdown&encapsulation=shadow","src/components/dropi-dropdown/dropi-dropdown.tsx"],"sourcesContent":[":host {\n display: block;\n width: 100%;\n}\n\n*, *::before, *::after { box-sizing: border-box; }\n\n.dropdown {\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n max-height: var(--dropdown-height, 300px);\n border: 1px solid var(--Gray-Gray-200, #c3c9d9);\n border-radius: var(--Border-2, 8px);\n background: var(--Neutral-White, #ffffff);\n}\n\n.dropdown__item {\n display: flex;\n align-items: center;\n gap: var(--Size-2, 8px);\n padding: var(--Size-2, 8px) var(--Size-3, 12px);\n cursor: pointer;\n transition: background 0.15s;\n user-select: none;\n}\n\n.dropdown__item:hover {\n background: var(--Gray-Gray-50, #f7f8fa);\n}\n\n.dropdown__item--active {\n background: var(--Primary-Primary-50, #fff5eb);\n}\n\n.dropdown__avatar {\n width: 28px;\n height: 28px;\n border-radius: 50%;\n object-fit: cover;\n flex-shrink: 0;\n}\n\n.dropdown__label {\n flex: 1;\n font-size: var(--font-size-s, 12px);\n color: var(--Gray-Gray-700, #32394d);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n","import { Component, Prop, State, Event, EventEmitter, Watch, h } from '@stencil/core';\n\nexport interface DropdownOption {\n [key: string]: any;\n}\n\n/**\n * @component dropi-dropdown\n * Scrollable list with checkboxes for multi-selection.\n * Pass options as an array (JS) or JSON string.\n */\n@Component({\n tag: 'dropi-dropdown',\n styleUrl: 'dropi-dropdown.css',\n shadow: true,\n})\nexport class DropiDropdown {\n /** Options array or JSON string */\n @Prop() options: DropdownOption[] | string = [];\n /** Property name for the label */\n @Prop() valueModel: string = 'name';\n /** Height of the dropdown (CSS value) */\n @Prop() height: string = '';\n /** Whether the dropdown is inside a select component */\n @Prop() isInSelect: boolean = false;\n /** Configuration parameters for the dropdown items */\n @Prop() parameters: {\n type: 'checkbox';\n icon: string;\n iconCurrier: boolean;\n } = {\n type: 'checkbox',\n icon: '',\n iconCurrier: false,\n };\n\n @State() private selected: DropdownOption[] = [];\n @State() private parsedOptions: DropdownOption[] = [];\n\n /** Emitted when selection changes — matches Angular 'modelChange' */\n @Event() modelChange: EventEmitter<DropdownOption[]>;\n\n @Watch('options')\n optionsChanged(val: DropdownOption[] | string) {\n this.parsedOptions = typeof val === 'string' ? JSON.parse(val) : (val || []);\n }\n\n componentWillLoad() {\n this.optionsChanged(this.options);\n }\n\n private isSelected(opt: DropdownOption): boolean {\n return (this.selected ?? []).some(s => JSON.stringify(s) === JSON.stringify(opt));\n }\n\n private toggleOption(opt: DropdownOption) {\n if (this.isSelected(opt)) {\n this.selected = this.selected.filter(s => JSON.stringify(s) !== JSON.stringify(opt));\n } else {\n this.selected = [...this.selected, opt];\n }\n this.modelChange.emit(this.selected);\n }\n\n render() {\n const containerClass = this.isInSelect ? 'container-dropi-dropdown-select' : 'container-dropi-dropdown';\n const customHeight = this.height || '388px';\n\n return (\n <div class={containerClass} style={{ '--custom-height': customHeight } as any}>\n {this.parsedOptions.map((opt, i) => {\n const label = opt[this.valueModel] ?? String(opt);\n const active = !!opt.checked || this.isSelected(opt);\n\n return (\n <div class=\"content-dropdown\" key={i}>\n <div\n class={{ 'container-check-dropdown': true, 'active-option': active }}\n onClick={() => this.toggleOption(opt)}\n >\n {this.parameters.type === 'checkbox' && (\n <dropi-checkbox checked={active} />\n )}\n\n {this.parameters.iconCurrier && (\n <dropi-avatars\n image={opt[this.valueModel]}\n type=\"transport\"\n />\n )}\n\n {this.parameters.icon && (\n <dropi-avatars\n image={opt.image}\n type=\"transport\"\n />\n )}\n\n <span class=\"Body-M-Regular\">{label}</span>\n </div>\n </div>\n );\n })}\n </div>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as registerInstance,
|
|
1
|
+
import { r as registerInstance, d as createEvent, h } from './index-Cvp2LQOM.js';
|
|
2
2
|
|
|
3
3
|
const dropiEmptyStateCss = () => `:host{display:block}*,*::before,*::after{box-sizing:border-box}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--Size-3, 12px);padding:var(--Size-6, 32px) var(--Size-5, 20px);text-align:center}.empty-state-img{max-width:200px;width:100%;height:auto;object-fit:contain;filter:brightness(0) saturate(100%) invert(73%) sepia(9%) saturate(503%) hue-rotate(187deg) brightness(91%) contrast(88%)}.empty-state-svg{width:80px;height:80px}.empty-state-placeholder{display:flex;align-items:center;justify-content:center}.empty-state-title{margin:0;font-size:var(--font-size-l, 18px);font-weight:var(--font-weight-bold, 700);color:var(--Gray-Gray-700, #32394d);line-height:1.3}.empty-state-description{margin:0;font-size:var(--font-size-s, 12px);color:var(--Gray-Gray-500, #69738c);line-height:1.6;max-width:400px}.empty-state-actions{display:flex;align-items:center;gap:var(--Size-3, 12px);flex-wrap:wrap;justify-content:center;margin-top:var(--Size-2, 8px)}`;
|
|
4
4
|
|
|
@@ -32,3 +32,6 @@ const DropiEmptyState = class {
|
|
|
32
32
|
DropiEmptyState.style = dropiEmptyStateCss();
|
|
33
33
|
|
|
34
34
|
export { DropiEmptyState as dropi_empty_state };
|
|
35
|
+
//# sourceMappingURL=dropi-empty-state.entry.esm.js.map
|
|
36
|
+
|
|
37
|
+
//# sourceMappingURL=dropi-empty-state.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"dropi-empty-state.entry.js","mappings":";;AAAA,MAAM,kBAAkB,GAAG,MAAM,CAAC,s+BAAs+B,CAAC;;MCW5/B,eAAe,GAAA,MAAA;;;;;;IAElB,KAAK,GAAW,EAAE;;IAElB,WAAW,GAAW,EAAE;;IAExB,QAAQ,GAAW,EAAE;;IAErB,QAAQ,GAAW,gBAAgB;;IAEnC,UAAU,GAAW,EAAE;;IAEvB,UAAU,GAAW,EAAE;;IAEvB,SAAS,GAAwF,SAAS;;IAE1G,cAAc,GAAyC,UAAU;;AAGhE,IAAA,gBAAgB;IAEzB,MAAM,GAAA;AACJ,QAAA,QACE,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,aAAa,EAAA,EACtB,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,oBAAoB,EAAA,EAC5B,IAAI,CAAC,QAAQ,IACZ,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,iBAAiB,EAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAA,CAAI,KAEvE,CAAA,CAAA,KAAA,EAAA,EACE,KAAK,EAAC,iBAAiB,EACvB,GAAG,EAAE,CAAA,yBAAA,EAA4B,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,MAAM,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA,IAAA,CAAM,EACpK,GAAG,EAAE,IAAI,CAAC,QAAQ,EAClB,OAAO,EAAE,CAAC,CAAC,KAAM,CAAC,CAAC,MAA2B,CAAC,GAAG,GAAG,sCAAsC,EAAA,CAC3F,CACH,CACG,EAEL,IAAI,CAAC,KAAK,IAAI,CAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAI,KAAK,EAAC,mBAAmB,EAAA,EAAE,IAAI,CAAC,KAAK,CAAM,EAC7D,IAAI,CAAC,WAAW,IAAI,CAAA,CAAA,GAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAG,KAAK,EAAC,yBAAyB,EAAA,EAAE,IAAI,CAAC,WAAW,CAAK,EAE9E,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAQ,EAEP,IAAI,CAAC,UAAU,KACd,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,qBAAqB,EAAA,EAC9B,CAAA,CAAA,cAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,IAAI,EAAE,IAAI,CAAC,UAAU,EACrB,OAAO,EAAE,IAAI,CAAC,UAAU,EACxB,QAAQ,EAAE,IAAI,CAAC,cAAc,EAC7B,OAAO,EAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAA,CAC3C,CACE,CACP,CACG;;;;;;;","names":[],"sources":["src/components/dropi-empty-state/dropi-empty-state.css?tag=dropi-empty-state&encapsulation=shadow","src/components/dropi-empty-state/dropi-empty-state.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n*, *::before, *::after { box-sizing: border-box; }\n\n.empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: var(--Size-3, 12px);\n padding: var(--Size-6, 32px) var(--Size-5, 20px);\n text-align: center;\n}\n\n.empty-state-img {\n max-width: 200px;\n width: 100%;\n height: auto;\n object-fit: contain;\n filter: brightness(0) saturate(100%) invert(73%) sepia(9%) saturate(503%) hue-rotate(187deg) brightness(91%) contrast(88%);\n}\n\n.empty-state-svg {\n width: 80px;\n height: 80px;\n}\n\n.empty-state-placeholder {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.empty-state-title {\n margin: 0;\n font-size: var(--font-size-l, 18px);\n font-weight: var(--font-weight-bold, 700);\n color: var(--Gray-Gray-700, #32394d);\n line-height: 1.3;\n}\n\n.empty-state-description {\n margin: 0;\n font-size: var(--font-size-s, 12px);\n color: var(--Gray-Gray-500, #69738c);\n line-height: 1.6;\n max-width: 400px;\n}\n\n.empty-state-actions {\n display: flex;\n align-items: center;\n gap: var(--Size-3, 12px);\n flex-wrap: wrap;\n justify-content: center;\n margin-top: var(--Size-2, 8px);\n}\n","import { Component, Prop, Event, EventEmitter, h } from '@stencil/core';\n\n/**\n * @component dropi-empty-state\n * Empty state illustration with title, description and optional action button.\n */\n@Component({\n tag: 'dropi-empty-state',\n styleUrl: 'dropi-empty-state.css',\n shadow: true,\n})\nexport class DropiEmptyState {\n /** Title text (matches Angular 'title') */\n @Prop() title: string = '';\n /** Description text */\n @Prop() description: string = '';\n /** URL of the illustration image */\n @Prop() imageUrl: string = '';\n /** Alt text for the image */\n @Prop() imageAlt: string = 'Sin resultados';\n /** Primary action button label (empty = hidden) — matches Angular 'buttonText' */\n @Prop() buttonText: string = '';\n /** Icon name for button — matches Angular 'buttonIcon' */\n @Prop() buttonIcon: string = '';\n /** State of the illustration (default, loading, sorry, love, success, error) — matches Angular 'dropiIcon' */\n @Prop() dropiIcon: 'default' | 'loading' | 'sorry' | 'love' | 'success' | 'error' | 'warning' | 'info' = 'default';\n /** Severity for the action button — matches Angular 'buttonSeverity' */\n @Prop() buttonSeverity: 'primary' | 'secondary' | 'tertiary' = 'tertiary';\n\n /** Emitted when button is clicked — matches Angular 'buttonClickEvent' */\n @Event() buttonClickEvent: EventEmitter<void>;\n\n render() {\n return (\n <div class=\"empty-state\">\n <div class=\"empty-state-visual\">\n {this.imageUrl ? (\n <img class=\"empty-state-img\" src={this.imageUrl} alt={this.imageAlt} />\n ) : (\n <img\n class=\"empty-state-img\"\n src={`assets/icons/ilustration/${(!this.dropiIcon || String(this.dropiIcon) === 'undefined' || String(this.dropiIcon) === 'null') ? 'default' : this.dropiIcon}.svg`}\n alt={this.imageAlt}\n onError={(e) => (e.target as HTMLImageElement).src = 'assets/icons/ilustration/default.svg'}\n />\n )}\n </div>\n\n {this.title && <h3 class=\"empty-state-title\">{this.title}</h3>}\n {this.description && <p class=\"empty-state-description\">{this.description}</p>}\n\n <slot />\n\n {this.buttonText && (\n <div class=\"empty-state-actions\">\n <dropi-button\n text={this.buttonText}\n preIcon={this.buttonIcon}\n severity={this.buttonSeverity}\n onClick={() => this.buttonClickEvent.emit()}\n />\n </div>\n )}\n </div>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as registerInstance,
|
|
1
|
+
import { r as registerInstance, d as createEvent, h } from './index-Cvp2LQOM.js';
|
|
2
2
|
|
|
3
3
|
const dropiFavoriteButtonCss = () => `:host{display:inline-flex}.fav-btn{display:flex;align-items:center;justify-content:center;width:37px;height:37px;border-radius:8px;border:1px solid var(--Gray-Gray-200);background:var(--Neutral-White);cursor:pointer;transition:all 0.2s ease-in-out}.fav-btn:hover,.fav-btn--active{background:var(--Gray-Gray-50)}.fav-btn:active{transform:scale(0.95)}`;
|
|
4
4
|
|
|
@@ -23,3 +23,6 @@ const DropiFavoriteButton = class {
|
|
|
23
23
|
DropiFavoriteButton.style = dropiFavoriteButtonCss();
|
|
24
24
|
|
|
25
25
|
export { DropiFavoriteButton as dropi_favorite_button };
|
|
26
|
+
//# sourceMappingURL=dropi-favorite-button.entry.esm.js.map
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=dropi-favorite-button.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"dropi-favorite-button.entry.js","mappings":";;AAAA,MAAM,sBAAsB,GAAG,MAAM,CAAC,6VAA6V,CAAC;;MCWvX,mBAAmB,GAAA,MAAA;;;;;;IAEL,UAAU,GAAY,KAAK;;AAG3C,IAAA,cAAc;IAEN,OAAO,GAAY,KAAK;IAEjC,MAAM,GAAA;AACZ,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU;QAClC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;;IAG3C,MAAM,GAAA;AACJ,QAAA,QACE,CAAA,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,CAAC,UAAU,EAAE,EAC9D,OAAO,EAAE,MAAM,IAAI,CAAC,MAAM,EAAE,EAC5B,YAAY,EAAE,MAAM,IAAI,CAAC,OAAO,GAAG,IAAI,EACvC,YAAY,EAAE,MAAM,IAAI,CAAC,OAAO,GAAG,KAAK,EAAA,YAAA,EAC5B,IAAI,CAAC,UAAU,GAAG,qBAAqB,GAAG,qBAAqB,EAAA,cAAA,EAC7D,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAA,EAErC,CAAA,CAAA,YAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,IAAI,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,GAAG,aAAa,GAAG,OAAO,EAC/D,KAAK,EAAC,MAAM,EACZ,MAAM,EAAC,MAAM,EACb,KAAK,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,GAAG,qBAAqB,GAAG,eAAe,EAAA,CAChF,CACK;;;;;;;","names":[],"sources":["src/components/dropi-favorite-button/dropi-favorite-button.css?tag=dropi-favorite-button&encapsulation=shadow","src/components/dropi-favorite-button/dropi-favorite-button.tsx"],"sourcesContent":[":host { display: inline-flex; }\n\n.fav-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 37px;\n height: 37px;\n border-radius: 8px;\n border: 1px solid var(--Gray-Gray-200);\n background: var(--Neutral-White);\n cursor: pointer;\n transition: all 0.2s ease-in-out;\n}\n\n.fav-btn:hover,\n.fav-btn--active {\n background: var(--Gray-Gray-50);\n}\n\n/* Optional: Subtle scale on click */\n.fav-btn:active {\n transform: scale(0.95);\n}\n","import { Component, Prop, State, Event, EventEmitter, h } from '@stencil/core';\n\n/**\n * @component dropi-favorite-button\n * Heart toggle button for marking items as favorite.\n */\n@Component({\n tag: 'dropi-favorite-button',\n styleUrl: 'dropi-favorite-button.css',\n shadow: true,\n})\nexport class DropiFavoriteButton {\n /** Whether the item is currently marked as favorite */\n @Prop({ mutable: true }) isFavorite: boolean = false;\n\n /** Emitted when toggled. e.detail = new favorite state */\n @Event() toggleFavorite: EventEmitter<boolean>;\n\n @State() private hovered: boolean = false;\n\n private toggle() {\n this.isFavorite = !this.isFavorite;\n this.toggleFavorite.emit(this.isFavorite);\n }\n\n render() {\n return (\n <button\n class={{ 'fav-btn': true, 'fav-btn--active': this.isFavorite }}\n onClick={() => this.toggle()}\n onMouseEnter={() => this.hovered = true}\n onMouseLeave={() => this.hovered = false}\n aria-label={this.isFavorite ? 'Quitar de favoritos' : 'Agregar a favoritos'}\n aria-pressed={String(this.isFavorite)}\n >\n <dropi-icon\n name={this.isFavorite || this.hovered ? 'Heart-solid' : 'Heart'}\n width=\"19px\"\n height=\"19px\"\n color={this.isFavorite || this.hovered ? 'Primary-Primary-500' : 'Gray-Gray-800'}\n />\n </button>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as registerInstance,
|
|
1
|
+
import { r as registerInstance, d as createEvent, h } from './index-Cvp2LQOM.js';
|
|
2
2
|
|
|
3
3
|
const dropiFileUploadProgressBarCss = () => `:host{display:block;width:100%}*,*::before,*::after{box-sizing:border-box}.container-progress-bar{width:100%;height:100%;display:flex;padding:var(--Size-4);gap:var(--Size-3);border-radius:var(--Size-2);border:1px solid var(--Gray-Gray-100);background-color:var(--Neutral-White);min-width:0;overflow:hidden;align-items:center}.container-icon-info{background:var(--Info-Info-50);width:32px;height:32px;border-radius:var(--Size-2);display:flex;justify-content:center;align-items:center;flex-shrink:0}.icon-pdf{background:var(--Error-Error-50);border-radius:var(--Border-2);width:34px;height:34px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.image-to-view{width:34px;height:34px;border-radius:var(--Border-2);object-fit:cover;flex-shrink:0}.container-bar-title{display:flex;gap:8px;flex:1;flex-direction:column;justify-content:center;min-width:0;p{margin:0;font-size:var(--font-size-s);color:var(--Gray-Gray-700);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}}progress{width:100%;height:4px;-webkit-appearance:none;appearance:none;border-radius:4.5px;max-width:100%;display:block}progress::-webkit-progress-bar{background-color:var(--Gray-Gray-100);border-radius:4.5px}progress::-webkit-progress-value{background-color:var(--Primary-Primary-500);border-radius:4.5px;transition:width 0.3s ease}progress::-moz-progress-bar{background-color:var(--Primary-Primary-500);border-radius:4.5px}.view-icon,.container-icon-trash{cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:4px;border-radius:var(--Border-1);transition:background 0.2s}.view-icon:hover,.container-icon-trash:hover{background-color:var(--Gray-Gray-50)}`;
|
|
4
4
|
|
|
@@ -73,3 +73,6 @@ const DropiFileUploadProgressBar = class {
|
|
|
73
73
|
DropiFileUploadProgressBar.style = dropiFileUploadProgressBarCss();
|
|
74
74
|
|
|
75
75
|
export { DropiFileUploadProgressBar as dropi_file_upload_progress_bar };
|
|
76
|
+
//# sourceMappingURL=dropi-file-upload-progress-bar.entry.esm.js.map
|
|
77
|
+
|
|
78
|
+
//# sourceMappingURL=dropi-file-upload-progress-bar.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"dropi-file-upload-progress-bar.entry.js","mappings":"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","names":[],"sources":["src/components/dropi-file-upload-progress-bar/dropi-file-upload-progress-bar.css?tag=dropi-file-upload-progress-bar&encapsulation=shadow","src/components/dropi-file-upload-progress-bar/dropi-file-upload-progress-bar.tsx"],"sourcesContent":[":host {\n display: block;\n width: 100%;\n}\n\n*, *::before, *::after {\n box-sizing: border-box;\n}\n\n.container-progress-bar {\n width: 100%;\n height: 100%;\n display: flex;\n padding: var(--Size-4);\n gap: var(--Size-3);\n border-radius: var(--Size-2);\n border: 1px solid var(--Gray-Gray-100);\n background-color: var(--Neutral-White);\n min-width: 0;\n overflow: hidden;\n align-items: center;\n}\n\n.container-icon-info {\n background: var(--Info-Info-50);\n width: 32px;\n height: 32px;\n border-radius: var(--Size-2);\n display: flex;\n justify-content: center;\n align-items: center;\n flex-shrink: 0;\n}\n\n.icon-pdf {\n background: var(--Error-Error-50);\n border-radius: var(--Border-2);\n width: 34px;\n height: 34px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.image-to-view {\n width: 34px;\n height: 34px;\n border-radius: var(--Border-2);\n object-fit: cover;\n flex-shrink: 0;\n}\n\n.container-bar-title {\n display: flex;\n gap: 8px;\n flex: 1;\n flex-direction: column;\n justify-content: center;\n min-width: 0;\n\n p {\n margin: 0;\n font-size: var(--font-size-s);\n color: var(--Gray-Gray-700);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n }\n}\n\nprogress {\n width: 100%;\n height: 4px;\n -webkit-appearance: none;\n appearance: none;\n border-radius: 4.5px;\n max-width: 100%;\n display: block;\n}\n\nprogress::-webkit-progress-bar {\n background-color: var(--Gray-Gray-100);\n border-radius: 4.5px;\n}\n\nprogress::-webkit-progress-value {\n background-color: var(--Primary-Primary-500);\n border-radius: 4.5px;\n transition: width 0.3s ease;\n}\n\n/* Firefox */\nprogress::-moz-progress-bar {\n background-color: var(--Primary-Primary-500);\n border-radius: 4.5px;\n}\n\n.view-icon,\n.container-icon-trash {\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n padding: 4px;\n border-radius: var(--Border-1);\n transition: background 0.2s;\n}\n\n.view-icon:hover,\n.container-icon-trash:hover {\n background-color: var(--Gray-Gray-50);\n}\n","import { Component, Prop, Event, EventEmitter, h, State, Watch } from '@stencil/core';\n\n/**\n * @component dropi-file-upload-progress-bar\n * Shows upload progress for a single file with name, miniature and actions.\n * Mirrored EXACTLY from dropi-core_front.\n */\n@Component({\n tag: 'dropi-file-upload-progress-bar',\n styleUrl: 'dropi-file-upload-progress-bar.css',\n shadow: true,\n})\nexport class DropiFileUploadProgressBar {\n /** File name to display */\n @Prop() textFile: string = 'Nombre del archivo.xlsx';\n /** Upload progress 0–100 */\n @Prop() progress: number = 0;\n /** Type of file (overridden by extension detection) */\n @Prop({ mutable: true }) type: 'image' | 'file' = 'file';\n /** URL for image preview if type is image */\n @Prop() urlImage: string = 'assets/img/LOGO-250-PX.png';\n /** Show the eye icon for preview */\n @Prop() isPreview: boolean = true;\n /** Disable delete action */\n @Prop() disabled: boolean = false;\n\n @State() private fileExtension: string = '';\n\n /** Emitted when the trash icon is clicked */\n @Event() deleteFile: EventEmitter<void>;\n /** Emitted when progress reaches 100 */\n @Event() uploadComplete: EventEmitter<void>;\n /** Emitted when the eye icon is clicked */\n @Event() viewFile: EventEmitter<void>;\n\n @Watch('progress')\n handleProgress(val: number) {\n if (val === 100) {\n this.uploadComplete.emit();\n }\n }\n\n @Watch('textFile')\n handleTextFile(val: string) {\n this.updateFileInfo(val);\n }\n\n componentWillLoad() {\n this.updateFileInfo(this.textFile);\n if (this.progress === 100) {\n this.uploadComplete.emit();\n }\n }\n\n private updateFileInfo(fileName: string) {\n const info = this.getFileExtensionInfo(fileName);\n this.fileExtension = info.extension;\n this.type = info.isImage ? 'image' : 'file';\n }\n\n private getFileExtensionInfo(fileName: string): { extension: string; isImage: boolean } {\n if (!fileName) return { extension: '', isImage: false };\n const lastDotIndex = fileName.lastIndexOf('.');\n const extension = lastDotIndex > 0 ? fileName.substring(lastDotIndex + 1).toLowerCase() : '';\n const imageExtensions = ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp', 'svg', 'tiff', 'ico', 'jfif'];\n return {\n extension,\n isImage: imageExtensions.includes(extension),\n };\n }\n\n render() {\n return (\n <div class=\"container-progress-bar\">\n {/* Icon / Image Miniature logic from Core */}\n <div class=\"container-icon-info\" style={{ display: this.fileExtension !== 'pdf' ? 'flex' : 'none' }}>\n {this.type !== 'image' && (\n <dropi-icon name=\"File-text\" width=\"24px\" height=\"24px\" color=\"Info-Info-600\" />\n )}\n {this.type === 'image' && !this.urlImage && (\n <div style={{ width: '34px', height: '34px', borderRadius: '8px', background: 'var(--Gray-Gray-100)' }} />\n )}\n {this.type === 'image' && this.urlImage && (\n <img src={this.urlImage} class=\"image-to-view\" width=\"34\" height=\"34\" alt=\"\" />\n )}\n </div>\n\n {/* PDF Specialized Icon (Outline style from Core) */}\n {this.fileExtension === 'pdf' && (\n <div class=\"icon-pdf\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <g clip-path=\"url(#clip0_6227_22223)\">\n <path\n d=\"M16.6243 4.61667L13.716 1.70833C12.616 0.608333 11.1493 0 9.59102 0H5.83268C3.53268 0 1.66602 1.86667 1.66602 4.16667V15.8333C1.66602 18.1333 3.53268 20 5.83268 20H14.166C16.466 20 18.3327 18.1333 18.3327 15.8333V8.74167C18.3327 7.18333 17.7243 5.71667 16.6243 4.61667ZM15.4493 5.79167C15.716 6.05833 15.941 6.35 16.1243 6.66667H12.5077C12.0493 6.66667 11.6743 6.29167 11.6743 5.83333V2.21667C11.991 2.4 12.2827 2.625 12.5493 2.89167L15.4577 5.8L15.4493 5.79167ZM16.666 15.8333C16.666 17.2083 15.541 18.3333 14.166 18.3333H5.83268C4.45768 18.3333 3.33268 17.2083 3.33268 15.8333V4.16667C3.33268 2.79167 4.45768 1.66667 5.83268 1.66667H9.59102C9.72435 1.66667 9.86602 1.66667 9.99935 1.68333V5.83333C9.99935 7.20833 11.1243 8.33333 12.4993 8.33333H16.6493C16.666 8.46667 16.666 8.6 16.666 8.74167V15.8333ZM5.90768 10.8333H4.99935C4.54102 10.8333 4.16602 11.2083 4.16602 11.6667V15.3667C4.16602 15.6583 4.39935 15.8833 4.68268 15.8833C4.96602 15.8833 5.19935 15.65 5.19935 15.3667V14.35H5.89935C6.88268 14.35 7.68268 13.5583 7.68268 12.5917C7.68268 11.625 6.88268 10.8333 5.89935 10.8333H5.90768ZM5.90768 13.3083H5.21602V11.875H5.91602C6.31602 11.875 6.65768 12.2 6.65768 12.5917C6.65768 12.9833 6.31602 13.3083 5.91602 13.3083H5.90768ZM15.8493 11.3583C15.8493 11.65 15.616 11.875 15.3327 11.875H13.9243V12.825H14.9577C15.2493 12.825 15.4743 13.0583 15.4743 13.3417C15.4743 13.625 15.241 13.8583 14.9577 13.8583H13.9243V15.3583C13.9243 15.65 13.691 15.875 13.4077 15.875C13.1243 15.875 12.891 15.6417 12.891 15.3583V11.35C12.891 11.0583 13.1243 10.8333 13.4077 10.8333H15.3327C15.6243 10.8333 15.8493 11.0667 15.8493 11.35V11.3583ZM10.0743 10.8417H9.16602C8.70768 10.8417 8.33268 11.2167 8.33268 11.675V15.375C8.33268 15.6667 8.56602 15.8417 8.84935 15.8417C9.13268 15.8417 10.066 15.8417 10.066 15.8417C11.0493 15.8417 11.8493 15.05 11.8493 14.0833V12.6C11.8493 11.6333 11.0493 10.8417 10.066 10.8417H10.0743ZM10.816 14.0833C10.816 14.475 10.4743 14.8 10.0743 14.8H9.38268V11.8833H10.0827C10.4827 11.8833 10.8243 12.2083 10.8243 12.6V14.0833H10.816Z\"\n fill=\"#DE6061\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_6227_22223\">\n <rect width=\"20\" height=\"20\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n </div>\n )}\n\n {/* Name and Progress bar */}\n <div class=\"container-bar-title\">\n <p>{this.textFile}</p>\n <progress value={this.progress} max=\"100\"></progress>\n </div>\n\n {/* Actions (Exact SVGs from Core) */}\n {this.progress === 100 && this.isPreview && (\n <div class=\"view-icon\" onClick={() => this.viewFile.emit()}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"14\" viewBox=\"0 0 18 14\" fill=\"none\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M7.07148 4.14758C7.64227 3.76618 8.31334 3.56262 8.99983 3.56262C9.92004 3.56372 10.8022 3.92976 11.4529 4.58045C12.1036 5.23114 12.4697 6.11334 12.4708 7.03355C12.4708 7.72004 12.2672 8.39111 11.8858 8.9619C11.5044 9.53269 10.9623 9.97757 10.3281 10.2403C9.69387 10.503 8.99598 10.5717 8.32268 10.4378C7.64939 10.3039 7.03092 9.9733 6.54551 9.48788C6.06009 9.00246 5.72951 8.384 5.59558 7.7107C5.46166 7.0374 5.53039 6.33951 5.7931 5.70528C6.05581 5.07105 6.50069 4.52897 7.07148 4.14758ZM7.84282 8.76514C8.18529 8.99398 8.58794 9.11612 8.99983 9.11612C9.55216 9.11612 10.0819 8.8967 10.4724 8.50615C10.863 8.11559 11.0824 7.58588 11.0824 7.03355C11.0824 6.62166 10.9602 6.21902 10.7314 5.87654C10.5026 5.53407 10.1773 5.26714 9.79679 5.10952C9.41625 4.95189 8.99752 4.91065 8.59354 4.99101C8.18956 5.07136 7.81849 5.26971 7.52723 5.56096C7.23598 5.85221 7.03764 6.22329 6.95728 6.62727C6.87693 7.03124 6.91817 7.44998 7.07579 7.83052C7.23342 8.21105 7.50034 8.53631 7.84282 8.76514Z\"\n fill=\"#475066\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M8.99996 0.546387C13.2984 0.546387 15.7475 3.48835 16.8241 5.24187C17.157 5.78022 17.3333 6.40064 17.3333 7.03357C17.3333 7.6665 17.157 8.28692 16.8241 8.82526C15.7475 10.5788 13.2984 13.5207 8.99996 13.5207C4.70155 13.5207 2.25246 10.5788 1.17577 8.82526C0.842931 8.28692 0.666626 7.6665 0.666626 7.03357C0.666626 6.40064 0.842931 5.78022 1.17577 5.24187C2.25246 3.48835 4.70155 0.546387 8.99996 0.546387ZM8.99996 12.1324C12.6229 12.1324 14.7159 9.60206 15.6406 8.09845C15.8383 7.77846 15.943 7.40973 15.943 7.03357C15.943 6.6574 15.8383 6.28867 15.6406 5.96868C14.7159 4.4623 12.6229 1.93476 8.99996 1.93476C5.377 1.93476 3.28402 4.46507 2.35936 5.96868C2.16161 6.28867 2.05687 6.6574 2.05687 7.03357C2.05687 7.40973 2.16161 7.77846 2.35936 8.09845C3.28402 9.60206 5.377 12.1324 8.99996 12.1324Z\"\n fill=\"#475066\"\n />\n </svg>\n </div>\n )}\n\n {this.progress === 100 && !this.disabled && (\n <div class=\"container-icon-trash\" onClick={() => this.deleteFile.emit()}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"21\" viewBox=\"0 0 20 21\" fill=\"none\">\n <path d=\"M16.2501 4.94477H14.0973C13.9362 4.16103 13.5097 3.45682 12.8899 2.95082C12.27 2.44483 11.4947 2.168 10.6946 2.16699H9.30566C8.50552 2.168 7.73019 2.44483 7.11035 2.95082C6.49051 3.45682 6.06406 4.16103 5.90289 4.94477H3.75011C3.56593 4.94477 3.3893 5.01793 3.25906 5.14817C3.12883 5.2784 3.05566 5.45504 3.05566 5.63921C3.05566 5.82339 3.12883 6.00003 3.25906 6.13026C3.3893 6.26049 3.56593 6.33366 3.75011 6.33366H4.44455V15.3614C4.44566 16.282 4.81183 17.1645 5.46276 17.8155C6.11369 18.4664 6.99622 18.8326 7.91677 18.8337H12.0834C13.004 18.8326 13.8865 18.4664 14.5375 17.8155C15.1884 17.1645 15.5546 16.282 15.5557 15.3614V6.33366H16.2501C16.4343 6.33366 16.6109 6.26049 16.7412 6.13026C16.8714 6.00003 16.9446 5.82339 16.9446 5.63921C16.9446 5.45504 16.8714 5.2784 16.7412 5.14817C16.6109 5.01793 16.4343 4.94477 16.2501 4.94477ZM9.30566 3.55588H10.6946C11.1253 3.55641 11.5453 3.69017 11.8971 3.93883C12.2488 4.18749 12.515 4.53886 12.6591 4.94477H7.34108C7.48524 4.53886 7.75143 4.18749 8.10315 3.93883C8.45488 3.69017 8.87492 3.55641 9.30566 3.55588ZM14.1668 15.3614C14.1668 15.914 13.9473 16.4439 13.5566 16.8346C13.1659 17.2253 12.636 17.4448 12.0834 17.4448H7.91677C7.36424 17.4448 6.83434 17.2253 6.44364 16.8346C6.05294 16.4439 5.83344 15.914 5.83344 15.3614V6.33366H14.1668V15.3614Z\" fill=\"#DE6061\" />\n <path d=\"M8.61128 14.6666C8.79545 14.6666 8.97209 14.5934 9.10232 14.4632C9.23256 14.3329 9.30572 14.1563 9.30572 13.9721V9.80545C9.30572 9.62127 9.23256 9.44464 9.10232 9.3144C8.97209 9.18417 8.79545 9.11101 8.61128 9.11101C8.4271 9.11101 8.25046 9.18417 8.12023 9.3144C7.99 9.44464 7.91683 9.62127 7.91683 9.80545V13.9721C7.91683 14.1563 7.99 14.3329 8.12023 14.4632C8.25046 14.5934 8.4271 14.6666 8.61128 14.6666Z\" fill=\"#DE6061\" />\n <path d=\"M11.389 14.6666C11.5731 14.6666 11.7498 14.5934 11.88 14.4632C12.0102 14.3329 12.0834 14.1563 12.0834 13.9721V9.80545C12.0834 9.62127 12.0102 9.44464 11.88 9.3144C11.7498 9.18417 11.5731 9.11101 11.389 9.11101C11.2048 9.11101 11.0281 9.18417 10.8979 9.3144C10.7677 9.44464 10.6945 9.62127 10.6945 9.80545V13.9721C10.6945 14.1563 10.7677 14.3329 10.8979 14.4632C11.0281 14.5934 11.2048 14.6666 11.389 14.6666Z\" fill=\"#DE6061\" />\n </svg>\n </div>\n )}\n </div>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as registerInstance,
|
|
1
|
+
import { r as registerInstance, d as createEvent, h } from './index-Cvp2LQOM.js';
|
|
2
2
|
|
|
3
3
|
const dropiFileUploadCss = () => `:host{display:block;width:100%}*,*::before,*::after{box-sizing:border-box}.upload-container{display:flex;flex-direction:column;gap:var(--Size-3, 12px);width:100%}.upload-header{display:flex;flex-direction:column;gap:var(--Size-1, 4px);align-items:flex-start;align-self:stretch}.upload-header .text{color:var(--Gray-Gray-600, #475066);font-size:var(--font-size-xs, 12px);font-style:normal;line-height:150%}.upload-header .title{font-weight:var(--font-weight-medium, 500)}.upload-header .label{font-weight:var(--font-weight-regular, 400)}.file-upload{display:flex;width:100%;flex-direction:column;justify-content:center;align-items:center;gap:var(--Size-3, 12px);background:var(--Neutral-White, #ffffff)}.file-upload__zone{display:flex;padding:var(--Size-5, 24px);flex-direction:column;justify-content:center;align-items:center;gap:var(--Size-6, 32px);align-self:stretch;border-radius:var(--Border-2, 8px);border:1px dashed var(--Gray-Gray-200, #c3c9d9);background:var(--Neutral-White, #ffffff);text-align:center;transition:border-color 0.3s ease}.file-upload__zone.drag-over{border:1px dashed var(--Primary-Primary-500, #f49a3d);background:var(--Primary-Primary-50, #fef8f1)}.info{display:flex;flex-direction:column;align-items:center;gap:var(--Size-2, 8px);align-self:stretch}.info .title{color:var(--Gray-Gray-700, #32394d);text-align:center;font-size:var(--font-size-m, 16px);font-weight:var(--font-weight-medium, 500);line-height:150%}.info.size-small-upload{flex-direction:row;gap:var(--Size-3, 12px)}.info-desc{display:flex;flex-direction:column;align-items:center;gap:var(--Size-1, 4px)}.description{color:var(--Gray-Gray-600, #475066);text-align:center;font-size:var(--font-size-s, 14px);font-style:normal;font-weight:var(--font-weight-regular, 400);line-height:150%}.upload-hidden{display:none}.files-container{display:flex;flex-direction:column;gap:var(--Size-3, 12px)}.grid-list{display:flex;align-items:flex-start;gap:var(--Size-5, 24px);align-self:stretch;flex-wrap:wrap}.add-img{display:flex;height:88px;width:88px;flex-direction:column;justify-content:center;align-items:center;gap:var(--Size-1, 4px);align-self:stretch;border-radius:var(--Border-2, 8px);background:var(--Gray-Gray-50, #f7f8fa);cursor:pointer}.add-img:hover{transform:scale(1.1)}.add-img .icon{display:flex;width:24px;height:24px;padding:4px;justify-content:center;align-items:center;flex-shrink:0;border-radius:var(--Border-3, 12px);background:var(--Gray-Gray-100, #e6eaf2)}.add-img .text{color:var(--Gray-Gray-600, #475066);text-align:center;font-size:var(--font-size-xs, 12px);font-style:normal;font-weight:var(--font-weight-regular, 400);line-height:150%}.card-list{display:flex;flex-direction:column;align-items:flex-start;gap:var(--Size-3, 12px);align-self:stretch;width:100%}.file-card{display:flex;padding:var(--Size-4, 16px);align-items:center;gap:var(--Size-3, 12px);align-self:stretch;border-radius:var(--Border-2, 8px);border:1px solid var(--Gray-Gray-100, #e6eaf2);background:var(--Neutral-White, #ffffff);width:100%}.file-card.error{border-color:var(--Error-Error-300, #f89b9c);background:var(--Error-Error-50, #fef0f0)}.file-card .preview-wrapper{width:34px;height:34px;position:relative;display:inline-block;border-radius:var(--Border-2, 8px);overflow:hidden;flex-shrink:0}.file-card .preview{width:100%;height:100%;object-fit:cover;flex-shrink:0}.file-card .preview.uploading{filter:blur(2px)}.file-card .overlay-icon{width:16px;height:16px;padding:4px;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);pointer-events:none;display:flex;justify-content:center;align-items:center;flex-shrink:0;border-radius:var(--Border-3, 12px);background:var(--Neutral-White, #ffffff)}.file-card .file-icon{flex-shrink:0}.file-card .info-container{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:var(--Size-2, 8px);flex:1 0 0;min-width:0}.file-card .file-name{overflow:hidden;color:var(--Gray-Gray-600, #475066);text-overflow:ellipsis;font-size:var(--font-size-xs, 12px);font-style:normal;font-weight:var(--font-weight-regular, 400);line-height:150%;white-space:nowrap;max-width:300px}.file-card .file-name.error-text{color:var(--Error-Error-500, #f46a6b)}.file-card .progress-bar-container{width:100%;height:4px;background-color:#f0f0f0;border-radius:4px;overflow:hidden}.file-card .progress-bar{height:100%;border-radius:4.5px;background:var(--Primary-Primary-500, #f49a3d);transition:width 0.3s ease}.file-card .error-label{color:var(--Error-Error-500, #f46a6b);font-size:11px;font-weight:var(--font-weight-regular, 400);line-height:150%}.file-card .deleting-container{display:flex;align-items:center;flex:1 0 0}.file-card .deleting-label{color:var(--Gray-Gray-500, #69738c);font-size:var(--font-size-xs, 12px);font-style:italic;font-weight:var(--font-weight-regular, 400);line-height:150%}.file-card .delete,.file-card .preview-image{display:inline-flex;align-items:center;justify-content:center;transition:transform 0.3s ease;border-radius:var(--Border-2, 8px);flex-shrink:0;cursor:pointer}.file-card .delete:hover,.file-card .preview-image:hover{transform:scale(1.1)}.file-card .delete-confirm{color:var(--Gray-Gray-600, #475066);font-size:var(--font-size-xs, 12px);font-style:normal;font-weight:var(--font-weight-medium, 500);line-height:150%;display:flex;justify-content:space-between;align-items:center;align-self:stretch;flex:1 0 0}.file-card .delete-confirm .message{flex:1}.file-card .delete-confirm .actions{display:flex;align-items:flex-start;gap:var(--Size-2, 8px)}.img-view{display:flex;width:88px;flex-direction:column;justify-content:center;align-items:flex-start;gap:var(--Size-2, 8px)}.img-view .preview-wrapper{position:relative;display:inline-block;width:88px;height:88px}.img-view .preview-container{border-radius:var(--Border-2, 8px);overflow:hidden;width:100%;height:100%}.img-view .preview{width:100%;height:100%;object-fit:cover;flex-shrink:0}.img-view .preview.uploading{filter:blur(2px)}.img-view .overlay-icon{width:24px;height:24px;padding:6px;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);pointer-events:none;display:flex;justify-content:center;align-items:center;flex-shrink:0;border-radius:var(--Border-3, 12px);background:var(--Neutral-White, #ffffff)}.img-view .delete{position:absolute;top:-12px;right:-9px;display:flex;justify-content:center;align-items:center;flex-shrink:0;border-radius:var(--Border-3, 12px);background:var(--Neutral-White, #ffffff);cursor:pointer}.img-view .delete:hover{transform:scale(1.1)}.img-view.error .preview-wrapper{border:2px solid var(--Error-Error-500, #f46a6b);border-radius:var(--Border-2, 8px)}.img-view.deleting .preview-wrapper{opacity:0.4}.img-view .progress-bar-container{width:100%;height:4px;background-color:#f0f0f0;border-radius:4px;overflow:hidden}.img-view .progress-bar{height:100%;border-radius:4.5px;background:var(--Primary-Primary-500, #f49a3d);transition:width 0.3s ease}.img-view .deleting-info{width:100%;text-align:center}.img-view .deleting-info-label{color:var(--Gray-Gray-500, #69738c);font-size:var(--font-size-xxs, 10px);font-style:italic;font-weight:var(--font-weight-regular, 400);line-height:150%}@media screen and (max-width: 599px){.info.size-small-upload{flex-wrap:wrap;justify-content:center}.file-card .file-name{max-width:100px}}`;
|
|
4
4
|
|
|
@@ -233,3 +233,6 @@ const DropiFileUpload = class {
|
|
|
233
233
|
DropiFileUpload.style = dropiFileUploadCss();
|
|
234
234
|
|
|
235
235
|
export { DropiFileUpload as dropi_file_upload };
|
|
236
|
+
//# sourceMappingURL=dropi-file-upload.entry.esm.js.map
|
|
237
|
+
|
|
238
|
+
//# sourceMappingURL=dropi-file-upload.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"dropi-file-upload.entry.js","mappings":"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","names":[],"sources":["src/components/dropi-file-upload/dropi-file-upload.css?tag=dropi-file-upload&encapsulation=shadow","src/components/dropi-file-upload/dropi-file-upload.tsx"],"sourcesContent":[":host {\n display: block;\n width: 100%;\n}\n\n*, *::before, *::after {\n box-sizing: border-box;\n}\n\n/* ── Contenedor principal ───────────────────────────────────── */\n.upload-container {\n display: flex;\n flex-direction: column;\n gap: var(--Size-3, 12px);\n width: 100%;\n}\n\n/* ── Header ─────────────────────────────────────────────────── */\n.upload-header {\n display: flex;\n flex-direction: column;\n gap: var(--Size-1, 4px);\n align-items: flex-start;\n align-self: stretch;\n}\n\n.upload-header .text {\n color: var(--Gray-Gray-600, #475066);\n font-size: var(--font-size-xs, 12px);\n font-style: normal;\n line-height: 150%;\n}\n\n.upload-header .title {\n font-weight: var(--font-weight-medium, 500);\n}\n\n.upload-header .label {\n font-weight: var(--font-weight-regular, 400);\n}\n\n/* ── Drop zone wrapper ──────────────────────────────────────── */\n.file-upload {\n display: flex;\n width: 100%;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: var(--Size-3, 12px);\n background: var(--Neutral-White, #ffffff);\n}\n\n.file-upload__zone {\n display: flex;\n padding: var(--Size-5, 24px);\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: var(--Size-6, 32px);\n align-self: stretch;\n border-radius: var(--Border-2, 8px);\n border: 1px dashed var(--Gray-Gray-200, #c3c9d9);\n background: var(--Neutral-White, #ffffff);\n text-align: center;\n transition: border-color 0.3s ease;\n}\n\n.file-upload__zone.drag-over {\n border: 1px dashed var(--Primary-Primary-500, #f49a3d);\n background: var(--Primary-Primary-50, #fef8f1);\n}\n\n/* ── Drop zone info ─────────────────────────────────────────── */\n.info {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--Size-2, 8px);\n align-self: stretch;\n}\n\n.info .title {\n color: var(--Gray-Gray-700, #32394d);\n text-align: center;\n font-size: var(--font-size-m, 16px);\n font-weight: var(--font-weight-medium, 500);\n line-height: 150%;\n}\n\n.info.size-small-upload {\n flex-direction: row;\n gap: var(--Size-3, 12px);\n}\n\n.info-desc {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--Size-1, 4px);\n}\n\n.description {\n color: var(--Gray-Gray-600, #475066);\n text-align: center;\n font-size: var(--font-size-s, 14px);\n font-style: normal;\n font-weight: var(--font-weight-regular, 400);\n line-height: 150%;\n}\n\n.upload-hidden {\n display: none;\n}\n\n/* ── Lista de archivos ──────────────────────────────────────── */\n.files-container {\n display: flex;\n flex-direction: column;\n gap: var(--Size-3, 12px);\n}\n\n/* ── Grid list ──────────────────────────────────────────────── */\n.grid-list {\n display: flex;\n align-items: flex-start;\n gap: var(--Size-5, 24px);\n align-self: stretch;\n flex-wrap: wrap;\n}\n\n/* ── Add image button (grid) ────────────────────────────────── */\n.add-img {\n display: flex;\n height: 88px;\n width: 88px;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: var(--Size-1, 4px);\n align-self: stretch;\n border-radius: var(--Border-2, 8px);\n background: var(--Gray-Gray-50, #f7f8fa);\n cursor: pointer;\n}\n\n.add-img:hover {\n transform: scale(1.1);\n}\n\n.add-img .icon {\n display: flex;\n width: 24px;\n height: 24px;\n padding: 4px;\n justify-content: center;\n align-items: center;\n flex-shrink: 0;\n border-radius: var(--Border-3, 12px);\n background: var(--Gray-Gray-100, #e6eaf2);\n}\n\n.add-img .text {\n color: var(--Gray-Gray-600, #475066);\n text-align: center;\n font-size: var(--font-size-xs, 12px);\n font-style: normal;\n font-weight: var(--font-weight-regular, 400);\n line-height: 150%;\n}\n\n/* ── Card list ──────────────────────────────────────────────── */\n.card-list {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--Size-3, 12px);\n align-self: stretch;\n width: 100%;\n}\n\n/* ── Card view ──────────────────────────────────────────────── */\n.file-card {\n display: flex;\n padding: var(--Size-4, 16px);\n align-items: center;\n gap: var(--Size-3, 12px);\n align-self: stretch;\n border-radius: var(--Border-2, 8px);\n border: 1px solid var(--Gray-Gray-100, #e6eaf2);\n background: var(--Neutral-White, #ffffff);\n width: 100%;\n}\n\n.file-card.error {\n border-color: var(--Error-Error-300, #f89b9c);\n background: var(--Error-Error-50, #fef0f0);\n}\n\n/* Preview imagen en card */\n.file-card .preview-wrapper {\n width: 34px;\n height: 34px;\n position: relative;\n display: inline-block;\n border-radius: var(--Border-2, 8px);\n overflow: hidden;\n flex-shrink: 0;\n}\n\n.file-card .preview {\n width: 100%;\n height: 100%;\n object-fit: cover;\n flex-shrink: 0;\n}\n\n.file-card .preview.uploading {\n filter: blur(2px);\n}\n\n.file-card .overlay-icon {\n width: 16px;\n height: 16px;\n padding: 4px;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n pointer-events: none;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-shrink: 0;\n border-radius: var(--Border-3, 12px);\n background: var(--Neutral-White, #ffffff);\n}\n\n/* Ícono de documento */\n.file-card .file-icon {\n flex-shrink: 0;\n}\n\n/* Info en card */\n.file-card .info-container {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: flex-start;\n gap: var(--Size-2, 8px);\n flex: 1 0 0;\n min-width: 0;\n}\n\n.file-card .file-name {\n overflow: hidden;\n color: var(--Gray-Gray-600, #475066);\n text-overflow: ellipsis;\n font-size: var(--font-size-xs, 12px);\n font-style: normal;\n font-weight: var(--font-weight-regular, 400);\n line-height: 150%;\n white-space: nowrap;\n max-width: 300px;\n}\n\n.file-card .file-name.error-text {\n color: var(--Error-Error-500, #f46a6b);\n}\n\n.file-card .progress-bar-container {\n width: 100%;\n height: 4px;\n background-color: #f0f0f0;\n border-radius: 4px;\n overflow: hidden;\n}\n\n.file-card .progress-bar {\n height: 100%;\n border-radius: 4.5px;\n background: var(--Primary-Primary-500, #f49a3d);\n transition: width 0.3s ease;\n}\n\n.file-card .error-label {\n color: var(--Error-Error-500, #f46a6b);\n font-size: 11px;\n font-weight: var(--font-weight-regular, 400);\n line-height: 150%;\n}\n\n/* Eliminando en card */\n.file-card .deleting-container {\n display: flex;\n align-items: center;\n flex: 1 0 0;\n}\n\n.file-card .deleting-label {\n color: var(--Gray-Gray-500, #69738c);\n font-size: var(--font-size-xs, 12px);\n font-style: italic;\n font-weight: var(--font-weight-regular, 400);\n line-height: 150%;\n}\n\n/* Acciones card */\n.file-card .delete,\n.file-card .preview-image {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n transition: transform 0.3s ease;\n border-radius: var(--Border-2, 8px);\n flex-shrink: 0;\n cursor: pointer;\n}\n\n.file-card .delete:hover,\n.file-card .preview-image:hover {\n transform: scale(1.1);\n}\n\n/* Confirmar eliminar en card */\n.file-card .delete-confirm {\n color: var(--Gray-Gray-600, #475066);\n font-size: var(--font-size-xs, 12px);\n font-style: normal;\n font-weight: var(--font-weight-medium, 500);\n line-height: 150%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n align-self: stretch;\n flex: 1 0 0;\n}\n\n.file-card .delete-confirm .message {\n flex: 1;\n}\n\n.file-card .delete-confirm .actions {\n display: flex;\n align-items: flex-start;\n gap: var(--Size-2, 8px);\n}\n\n/* ── Grid view ──────────────────────────────────────────────── */\n.img-view {\n display: flex;\n width: 88px;\n flex-direction: column;\n justify-content: center;\n align-items: flex-start;\n gap: var(--Size-2, 8px);\n}\n\n.img-view .preview-wrapper {\n position: relative;\n display: inline-block;\n width: 88px;\n height: 88px;\n}\n\n.img-view .preview-container {\n border-radius: var(--Border-2, 8px);\n overflow: hidden;\n width: 100%;\n height: 100%;\n}\n\n.img-view .preview {\n width: 100%;\n height: 100%;\n object-fit: cover;\n flex-shrink: 0;\n}\n\n.img-view .preview.uploading {\n filter: blur(2px);\n}\n\n.img-view .overlay-icon {\n width: 24px;\n height: 24px;\n padding: 6px;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n pointer-events: none;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-shrink: 0;\n border-radius: var(--Border-3, 12px);\n background: var(--Neutral-White, #ffffff);\n}\n\n.img-view .delete {\n position: absolute;\n top: -12px;\n right: -9px;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-shrink: 0;\n border-radius: var(--Border-3, 12px);\n background: var(--Neutral-White, #ffffff);\n cursor: pointer;\n}\n\n.img-view .delete:hover {\n transform: scale(1.1);\n}\n\n.img-view.error .preview-wrapper {\n border: 2px solid var(--Error-Error-500, #f46a6b);\n border-radius: var(--Border-2, 8px);\n}\n\n.img-view.deleting .preview-wrapper {\n opacity: 0.4;\n}\n\n.img-view .progress-bar-container {\n width: 100%;\n height: 4px;\n background-color: #f0f0f0;\n border-radius: 4px;\n overflow: hidden;\n}\n\n.img-view .progress-bar {\n height: 100%;\n border-radius: 4.5px;\n background: var(--Primary-Primary-500, #f49a3d);\n transition: width 0.3s ease;\n}\n\n.img-view .deleting-info {\n width: 100%;\n text-align: center;\n}\n\n.img-view .deleting-info-label {\n color: var(--Gray-Gray-500, #69738c);\n font-size: var(--font-size-xxs, 10px);\n font-style: italic;\n font-weight: var(--font-weight-regular, 400);\n line-height: 150%;\n}\n\n/* ── Responsive ─────────────────────────────────────────────── */\n@media screen and (max-width: 599px) {\n .info.size-small-upload {\n flex-wrap: wrap;\n justify-content: center;\n }\n\n .file-card .file-name {\n max-width: 100px;\n }\n}\n","import { Component, Prop, State, Event, EventEmitter, h } from '@stencil/core';\n\nexport type FileUploadState = 'uploading' | 'complete' | 'confirm-delete' | 'deleting' | 'error';\n\nexport interface FileItem {\n id: string;\n file: File | null;\n progress: number;\n state: FileUploadState;\n previewUrl?: string;\n fileType: 'image' | 'document';\n typeView: 'card' | 'grid';\n}\n\n/**\n * @component dropi-file-upload\n * Componente de carga de archivos con zona de drop, lista de archivos,\n * vista card y grid. API idéntica al componente Angular del core.\n */\n@Component({\n tag: 'dropi-file-upload',\n styleUrl: 'dropi-file-upload.css',\n shadow: true,\n})\nexport class DropiFileUpload {\n /** Título mostrado arriba del componente */\n @Prop() title: string = '';\n /** Subtítulo informativo */\n @Prop() label: string = '';\n /** Texto dentro de la zona de drop */\n @Prop() textDropZone: string = 'Arrastra o sube una imagen aquí';\n /** Texto del botón de selección */\n @Prop() textButton: string = 'Seleccionar Imagen';\n /** Tipo de preview: card (lista) o grid (miniaturas) */\n @Prop() previewType: 'card' | 'grid' = 'card';\n /** Permitir múltiples archivos */\n @Prop() multiple: boolean = false;\n /** Límite de archivos */\n @Prop() maxFiles: number = 1;\n /** Tamaño máximo por archivo en MB */\n @Prop() maxFileSizeMB: number = 10;\n /** Tipos aceptados (ej: \"image/*,application/pdf\") */\n @Prop() accept: string = '';\n /** Solo vista — sin eliminar */\n @Prop() onlyView: boolean = false;\n /** Mostrar drop-zone cuando ya hay archivos (modo grid) */\n @Prop() viewDragAndDrop: boolean = false;\n /** Tamaño del drop zone */\n @Prop() dragAndDropSize: 'small' | 'default' = 'default';\n\n @State() private selectedFiles: FileItem[] = [];\n @State() private error: boolean = false;\n @State() private errorMessage: string = '';\n @State() private dragging: boolean = false;\n\n /** Emite los File[] cada vez que cambia la selección (el host maneja la subida) */\n @Event() uploadedUrlsChange: EventEmitter<File[]>;\n\n private inputRef!: HTMLInputElement;\n private dragCounter: number = 0;\n\n // ─── helpers ──────────────────────────────────────────────────────────────\n\n private generateId(file: File): string {\n if (typeof crypto !== 'undefined' && 'randomUUID' in crypto) {\n return `${file.name}-${(crypto as any).randomUUID()}`;\n }\n return `${file.name}-${Date.now()}-${Math.floor(Math.random() * 1_000_000)}`;\n }\n\n private getFileType(file: File): 'image' | 'document' {\n return file.type.startsWith('image/') ? 'image' : 'document';\n }\n\n private getTypeView(file: File): 'card' | 'grid' {\n return file.type.startsWith('image/') && this.previewType === 'grid' ? 'grid' : 'card';\n }\n\n private getFileTypeClass(item: FileItem): string {\n if (!item.file) return 'generic';\n const t = item.file.type;\n if (t.includes('pdf')) return 'pdf';\n if (t.startsWith('image/')) return 'image';\n return 'generic';\n }\n\n private isDropZoneHidden(): boolean {\n return this.previewType === 'grid' && (!this.viewDragAndDrop || this.selectedFiles.length > 0);\n }\n\n private generatePreviewUrl(file: File): Promise<string> {\n return new Promise((resolve) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => resolve(reader.result as string);\n reader.onerror = () => resolve('');\n });\n }\n\n private syncFileItem(id: string, changes: Partial<FileItem>) {\n const idx = this.selectedFiles.findIndex(f => f.id === id);\n if (idx === -1) return;\n const updated = { ...this.selectedFiles[idx], ...changes } as FileItem;\n this.selectedFiles = [\n ...this.selectedFiles.slice(0, idx),\n updated,\n ...this.selectedFiles.slice(idx + 1),\n ];\n }\n\n private emitFiles() {\n const files = this.selectedFiles\n .filter(f => f.state === 'complete' && f.file)\n .map(f => f.file as File);\n this.uploadedUrlsChange.emit(files);\n }\n\n // ─── file handling ────────────────────────────────────────────────────────\n\n private async handleFiles(files: File[]) {\n this.error = false;\n\n if (files.length + this.selectedFiles.length > this.maxFiles) {\n this.error = true;\n this.errorMessage = `Máximo ${this.maxFiles} archivo(s) permitido(s)`;\n return;\n }\n\n for (const file of files) {\n if (file.size > this.maxFileSizeMB * 1024 * 1024) {\n this.error = true;\n this.errorMessage = `\"${file.name}\" supera el tamaño máximo de ${this.maxFileSizeMB}MB`;\n continue;\n }\n\n const item: FileItem = {\n id: this.generateId(file),\n file,\n progress: 0,\n state: 'uploading',\n fileType: this.getFileType(file),\n typeView: this.getTypeView(file),\n };\n\n this.selectedFiles = [...this.selectedFiles, item];\n\n // Simulate progress then complete (host handles actual upload)\n this.simulateProgress(item.id);\n\n if (item.fileType === 'image') {\n const url = await this.generatePreviewUrl(file);\n this.syncFileItem(item.id, { previewUrl: url });\n }\n }\n }\n\n private simulateProgress(id: string) {\n let prog = 0;\n const interval = setInterval(() => {\n prog += Math.floor(Math.random() * 20) + 10;\n if (prog >= 100) {\n prog = 100;\n clearInterval(interval);\n this.syncFileItem(id, { progress: 100, state: 'complete' });\n this.emitFiles();\n } else {\n this.syncFileItem(id, { progress: prog });\n }\n }, 150);\n }\n\n private handleFileAction(item: FileItem, type: 'delete' | 'confirm-delete' | 'cancel-delete') {\n if (item.state === 'error') {\n this.selectedFiles = this.selectedFiles.filter(f => f.id !== item.id);\n this.emitFiles();\n return;\n }\n switch (type) {\n case 'delete':\n this.syncFileItem(item.id, { state: 'confirm-delete' });\n break;\n case 'confirm-delete':\n this.syncFileItem(item.id, { state: 'deleting' });\n setTimeout(() => {\n this.selectedFiles = this.selectedFiles.filter(f => f.id !== item.id);\n this.emitFiles();\n }, 400);\n break;\n case 'cancel-delete':\n this.syncFileItem(item.id, { state: 'complete' });\n break;\n }\n }\n\n // ─── DOM events ───────────────────────────────────────────────────────────\n\n private onDragOver(e: DragEvent) {\n e.preventDefault();\n this.dragging = true;\n }\n\n private onDragEnter(e: DragEvent) {\n e.preventDefault();\n this.dragCounter++;\n this.dragging = true;\n }\n\n private onDragLeave() {\n this.dragCounter--;\n if (this.dragCounter <= 0) {\n this.dragCounter = 0;\n this.dragging = false;\n }\n }\n\n private onDrop(e: DragEvent) {\n e.preventDefault();\n this.dragging = false;\n this.dragCounter = 0;\n const files = Array.from(e.dataTransfer?.files ?? []);\n if (files.length) this.handleFiles(files);\n }\n\n private onInputChange(e: Event) {\n const input = e.target as HTMLInputElement;\n const files = Array.from(input.files ?? []);\n input.value = '';\n if (files.length) this.handleFiles(files);\n }\n\n private openFilePicker() {\n this.inputRef?.click();\n }\n\n private addImage() {\n this.inputRef?.click();\n }\n\n // ─── render helpers ───────────────────────────────────────────────────────\n\n private renderCheckSvg() {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\n <g clip-path=\"url(#ck)\">\n <path d=\"M11.1594 2.2155L4.24992 9.1245C4.20347 9.17114 4.14826 9.20815 4.08747 9.2334C4.02668 9.25865 3.9615 9.27165 3.89567 9.27165C3.82985 9.27165 3.76467 9.25865 3.70388 9.2334C3.64308 9.20815 3.58788 9.17114 3.54142 9.1245L0.869423 6.45C0.822969 6.40337 0.767762 6.36636 0.70697 6.34111C0.646179 6.31586 0.581 6.30286 0.515173 6.30286C0.449346 6.30286 0.384167 6.31586 0.323376 6.34111C0.262585 6.36636 0.207378 6.40337 0.160923 6.45C0.114285 6.49646 0.0772787 6.55167 0.0520278 6.61246C0.026777 6.67325 0.0137787 6.73843 0.0137787 6.80425C0.0137787 6.87008 0.026777 6.93526 0.0520278 6.99605C0.0772787 7.05684 0.114285 7.11205 0.160923 7.1585L2.83392 9.831C3.1159 10.1125 3.49802 10.2705 3.89642 10.2705C4.29482 10.2705 4.67695 10.1125 4.95892 9.831L11.8679 2.9235C11.9145 2.87706 11.9514 2.82188 11.9766 2.76114C12.0018 2.70039 12.0148 2.63527 12.0148 2.5695C12.0148 2.50374 12.0018 2.43862 11.9766 2.37787C11.9514 2.31713 11.9145 2.26195 11.8679 2.2155C11.8215 2.16887 11.7663 2.13186 11.7055 2.10661C11.6447 2.08136 11.5795 2.06836 11.5137 2.06836C11.4478 2.06836 11.3827 2.08136 11.3219 2.10661C11.2611 2.13186 11.2059 2.16887 11.1594 2.2155Z\" fill=\"#0ABB87\"/>\n </g>\n <defs><clipPath id=\"ck\"><rect width=\"12\" height=\"12\" fill=\"white\"/></clipPath></defs>\n </svg>\n );\n }\n\n private renderTrashSvg() {\n return (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M16.25 4.44453H14.0972C13.936 3.66078 13.5096 2.95657 12.8897 2.45058C12.2699 1.94459 11.4946 1.66776 10.6944 1.66675H9.30554C8.5054 1.66776 7.73007 1.94459 7.11023 2.45058C6.49039 2.95657 6.06394 3.66078 5.90276 4.44453H3.74999C3.56581 4.44453 3.38917 4.51769 3.25894 4.64792C3.12871 4.77816 3.05554 4.95479 3.05554 5.13897C3.05554 5.32315 3.12871 5.49978 3.25894 5.63002C3.38917 5.76025 3.56581 5.83341 3.74999 5.83341H4.44443V14.8612C4.44553 15.7817 4.81171 16.6643 5.46264 17.3152C6.11357 17.9661 6.9961 18.3323 7.91665 18.3334H12.0833C13.0039 18.3323 13.8864 17.9661 14.5373 17.3152C15.1883 16.6643 15.5544 15.7817 15.5555 14.8612V5.83341H16.25C16.4342 5.83341 16.6108 5.76025 16.741 5.63002C16.8713 5.49978 16.9444 5.32315 16.9444 5.13897C16.9444 4.95479 16.8713 4.77816 16.741 4.64792C16.6108 4.51769 16.4342 4.44453 16.25 4.44453ZM9.30554 3.05564H10.6944C11.1252 3.05616 11.5452 3.18993 11.8969 3.43858C12.2487 3.68724 12.5149 4.03862 12.659 4.44453H7.34096C7.48511 4.03862 7.75131 3.68724 8.10303 3.43858C8.45476 3.18993 8.8748 3.05616 9.30554 3.05564ZM14.1667 14.8612C14.1667 15.4137 13.9472 15.9436 13.5565 16.3343C13.1658 16.725 12.6359 16.9445 12.0833 16.9445H7.91665C7.36412 16.9445 6.83421 16.725 6.44351 16.3343C6.05281 15.9436 5.83332 15.4137 5.83332 14.8612V5.83341H14.1667V14.8612Z\" fill=\"#DE6061\"/>\n <path d=\"M8.61115 14.1663C8.79533 14.1663 8.97197 14.0931 9.1022 13.9629C9.23243 13.8327 9.3056 13.656 9.3056 13.4719V9.30521C9.3056 9.12103 9.23243 8.94439 9.1022 8.81416C8.97197 8.68393 8.79533 8.61076 8.61115 8.61076C8.42698 8.61076 8.25034 8.68393 8.12011 8.81416C7.98988 8.94439 7.91671 9.12103 7.91671 9.30521V13.4719C7.91671 13.656 7.98988 13.8327 8.12011 13.9629C8.25034 14.0931 8.42698 14.1663 8.61115 14.1663Z\" fill=\"#DE6061\"/>\n <path d=\"M11.3888 14.1663C11.573 14.1663 11.7497 14.0931 11.8799 13.9629C12.0101 13.8327 12.0833 13.656 12.0833 13.4719V9.30521C12.0833 9.12103 12.0101 8.94439 11.8799 8.81416C11.7497 8.68393 11.573 8.61076 11.3888 8.61076C11.2047 8.61076 11.028 8.68393 10.8978 8.81416C10.7676 8.94439 10.6944 9.12103 10.6944 9.30521V13.4719C10.6944 13.656 10.7676 13.8327 10.8978 13.9629C11.028 14.0931 11.2047 14.1663 11.3888 14.1663Z\" fill=\"#DE6061\"/>\n </svg>\n );\n }\n\n private renderTrashGridSvg() {\n return (\n <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M8 0.5H24C28.1421 0.5 31.5 3.85786 31.5 8V24C31.5 28.1421 28.1421 31.5 24 31.5H8C3.85786 31.5 0.5 28.1421 0.5 24V8C0.5 3.85786 3.85786 0.5 8 0.5Z\" fill=\"white\"/>\n <path d=\"M8 0.5H24C28.1421 0.5 31.5 3.85786 31.5 8V24C31.5 28.1421 28.1421 31.5 24 31.5H8C3.85786 31.5 0.5 28.1421 0.5 24V8C0.5 3.85786 3.85786 0.5 8 0.5Z\" stroke=\"#F7F8FA\"/>\n <path d=\"M22.25 10.4445H20.0972C19.936 9.66072 19.5096 8.95651 18.8897 8.45052C18.2699 7.94453 17.4945 7.6677 16.6944 7.66669H15.3055C14.5054 7.6677 13.73 7.94453 13.1102 8.45052C12.4904 8.95651 12.0639 9.66072 11.9027 10.4445H9.74996C9.56578 10.4445 9.38914 10.5176 9.25891 10.6479C9.12868 10.7781 9.05551 10.9547 9.05551 11.1389C9.05551 11.3231 9.12868 11.4997 9.25891 11.63C9.38914 11.7602 9.56578 11.8334 9.74996 11.8334H10.4444V20.8611C10.4455 21.7817 10.8117 22.6642 11.4626 23.3151C12.1135 23.9661 12.9961 24.3323 13.9166 24.3334H18.0833C19.0038 24.3323 19.8864 23.9661 20.5373 23.3151C21.1882 22.6642 21.5544 21.7817 21.5555 20.8611V11.8334H22.25C22.4341 11.8334 22.6108 11.7602 22.741 11.63C22.8712 11.4997 22.9444 11.3231 22.9444 11.1389C22.9444 10.9547 22.8712 10.7781 22.741 10.6479C22.6108 10.5176 22.4341 10.4445 22.25 10.4445ZM15.3055 9.05558H16.6944C17.1251 9.0561 17.5452 9.18986 17.8969 9.43852C18.2486 9.68718 18.5148 10.0386 18.659 10.4445H13.3409C13.4851 10.0386 13.7513 9.68718 14.103 9.43852C14.4547 9.18986 14.8748 9.0561 15.3055 9.05558ZM20.1666 20.8611C20.1666 21.4137 19.9471 21.9436 19.5564 22.3343C19.1657 22.725 18.6358 22.9445 18.0833 22.9445H13.9166C13.3641 22.9445 12.8342 22.725 12.4435 22.3343C12.0528 21.9436 11.8333 21.4137 11.8333 20.8611V11.8334H20.1666V20.8611Z\" fill=\"#DE6061\"/>\n <path d=\"M14.6111 20.1662C14.7953 20.1662 14.9719 20.0931 15.1022 19.9628C15.2324 19.8326 15.3056 19.656 15.3056 19.4718V15.3051C15.3056 15.121 15.2324 14.9443 15.1022 14.8141C14.9719 14.6839 14.7953 14.6107 14.6111 14.6107C14.4269 14.6107 14.2503 14.6839 14.1201 14.8141C13.9898 14.9443 13.9167 15.121 13.9167 15.3051V19.4718C13.9167 19.656 13.9898 19.8326 14.1201 19.9628C14.2503 20.0931 14.4269 20.1662 14.6111 20.1662Z\" fill=\"#DE6061\"/>\n <path d=\"M17.3888 20.1662C17.573 20.1662 17.7496 20.0931 17.8799 19.9628C18.0101 19.8326 18.0833 19.656 18.0833 19.4718V15.3051C18.0833 15.121 18.0101 14.9443 17.8799 14.8141C17.7496 14.6839 17.573 14.6107 17.3888 14.6107C17.2046 14.6107 17.028 14.6839 16.8978 14.8141C16.7675 14.9443 16.6944 15.121 16.6944 15.3051V19.4718C16.6944 19.656 16.7675 19.8326 16.8978 19.9628C17.028 20.0931 17.2046 20.1662 17.3888 20.1662Z\" fill=\"#DE6061\"/>\n </svg>\n );\n }\n\n private renderPdfSvg() {\n return (\n <svg class=\"icon-pdf\" width=\"34\" height=\"34\" viewBox=\"0 0 34 34\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M0 8C0 3.58172 3.58172 0 8 0H26C30.4183 0 34 3.58172 34 8V26C34 30.4183 30.4183 34 26 34H8C3.58172 34 0 30.4183 0 26V8Z\" fill=\"#FEF0F0\"/>\n <g clip-path=\"url(#pdf)\">\n <path d=\"M24.1252 11.1167L21.2168 8.20833C20.1168 7.10833 18.6502 6.5 17.0918 6.5H13.3335C11.0335 6.5 9.16684 8.36667 9.16684 10.6667V22.3333C9.16684 24.6333 11.0335 26.5 13.3335 26.5H21.6668C23.9668 26.5 25.8335 24.6333 25.8335 22.3333V15.2417C25.8335 13.6833 25.2252 12.2167 24.1252 11.1167Z\" fill=\"#DE6061\"/>\n </g>\n <defs><clipPath id=\"pdf\"><rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(7.5 6.5)\"/></clipPath></defs>\n </svg>\n );\n }\n\n private renderDocSvg() {\n return (\n <svg class=\"icon-default\" width=\"34\" height=\"34\" viewBox=\"0 0 34 34\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M0 8C0 3.58172 3.58172 0 8 0H26C30.4183 0 34 3.58172 34 8V26C34 30.4183 30.4183 34 26 34H8C3.58172 34 0 30.4183 0 26V8Z\" fill=\"#EEF6FE\"/>\n <g clip-path=\"url(#doc)\">\n <path d=\"M21.1668 18.6667C21.1668 18.8877 21.079 19.0997 20.9227 19.2559C20.7664 19.4122 20.5545 19.5 20.3335 19.5H13.6668C13.4458 19.5 13.2338 19.4122 13.0775 19.2559C12.9213 19.0997 12.8335 18.8877 12.8335 18.6667C12.8335 18.4457 12.9213 18.2337 13.0775 18.0774C13.2338 17.9211 13.4458 17.8334 13.6668 17.8334H20.3335C20.5545 17.8334 20.7664 17.9211 20.9227 18.0774C21.079 18.2337 21.1668 18.4457 21.1668 18.6667ZM17.8335 21.1667H13.6668C13.4458 21.1667 13.2338 21.2545 13.0775 21.4108C12.9213 21.567 12.8335 21.779 12.8335 22C12.8335 22.221 12.9213 22.433 13.0775 22.5893C13.2338 22.7456 13.4458 22.8334 13.6668 22.8334H17.8335C18.0545 22.8334 18.2664 22.7456 18.4227 22.5893C18.579 22.433 18.6668 22.221 18.6668 22C18.6668 21.779 18.579 21.567 18.4227 21.4108C18.2664 21.2545 18.0545 21.1667 17.8335 21.1667Z\" fill=\"#4996DB\"/>\n </g>\n <defs><clipPath id=\"doc\"><rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(7 7)\"/></clipPath></defs>\n </svg>\n );\n }\n\n private renderCardItem(item: FileItem) {\n const isImage = item.fileType === 'image' && item.previewUrl && !item.previewUrl.includes('.pdf');\n const isPdf = item.file?.type?.includes('pdf');\n\n return (\n <div key={item.id} class={`file-card ${item.state} ${this.getFileTypeClass(item)}`}>\n\n {/* Preview o ícono */}\n {isImage ? (\n <div class=\"preview-wrapper\">\n <img class={`preview ${item.state}`} src={item.previewUrl} alt={item.file?.name} />\n {item.state === 'complete' && (\n <div class=\"overlay-icon\">{this.renderCheckSvg()}</div>\n )}\n </div>\n ) : (\n <div class=\"file-icon\">\n {isPdf ? this.renderPdfSvg() : this.renderDocSvg()}\n </div>\n )}\n\n {/* Info */}\n {item.state !== 'confirm-delete' && item.state !== 'deleting' && (\n <div class=\"info-container\">\n <div class={`file-name${item.state === 'error' ? ' error-text' : ''}`}>\n {item.file?.name ?? item.previewUrl?.split('/').pop()}\n </div>\n {item.state === 'uploading' && (\n <div class=\"progress-bar-container\">\n <div class=\"progress-bar\" style={{ width: `${item.progress}%` }} />\n </div>\n )}\n {item.state === 'error' && (\n <div class=\"error-label\">Error al subir el archivo</div>\n )}\n </div>\n )}\n\n {/* Eliminando */}\n {item.state === 'deleting' && (\n <div class=\"deleting-container\">\n <span class=\"deleting-label\">Eliminando...</span>\n </div>\n )}\n\n {/* Ojo */}\n {item.state !== 'confirm-delete' && item.state !== 'error' && item.state !== 'deleting' && (\n <div class=\"preview-image\" onClick={() => {}}>\n <dropi-icon name=\"Eye\" width=\"20px\" height=\"20px\" color=\"Gray-Gray-600\" />\n </div>\n )}\n\n {/* Eliminar */}\n {item.state !== 'confirm-delete' && item.state !== 'deleting' && !this.onlyView && (\n <div class=\"delete\" onClick={() => this.handleFileAction(item, 'delete')}>\n {this.renderTrashSvg()}\n </div>\n )}\n\n {/* Confirmar eliminar */}\n {item.state === 'confirm-delete' && (\n <div class=\"delete-confirm\">\n <span class=\"message\">{item.previewUrl ? '¿Eliminar imagen?' : '¿Eliminar archivo?'}</span>\n <div class=\"actions\">\n <dropi-button size=\"small\" text=\"Sí\" onClick={() => this.handleFileAction(item, 'confirm-delete')} />\n <dropi-button text=\"No\" size=\"small\" severity=\"secondary\" onClick={() => this.handleFileAction(item, 'cancel-delete')} />\n </div>\n </div>\n )}\n </div>\n );\n }\n\n private renderGridItem(item: FileItem) {\n return (\n <div key={item.id} class={`img-view ${item.state} ${this.getFileTypeClass(item)}`}>\n <div class=\"preview-wrapper\">\n <div class=\"preview-container\">\n <img\n class={`preview ${item.state}`}\n src={item.previewUrl || ''}\n alt=\"preview\"\n />\n </div>\n\n {item.state === 'complete' && (\n <div class=\"overlay-icon\">{this.renderCheckSvg()}</div>\n )}\n\n {item.state !== 'confirm-delete' && item.state !== 'deleting' && (\n <div class=\"delete\" onClick={() => this.handleFileAction(item, 'confirm-delete')}>\n {this.renderTrashGridSvg()}\n </div>\n )}\n </div>\n\n {item.state === 'uploading' && (\n <div class=\"progress-bar-container\">\n <div class=\"progress-bar\" style={{ width: `${item.progress}%` }} />\n </div>\n )}\n\n {item.state === 'deleting' && (\n <div class=\"deleting-info\">\n <span class=\"deleting-info-label\">Eliminando...</span>\n </div>\n )}\n </div>\n );\n }\n\n // ─── render ───────────────────────────────────────────────────────────────\n\n render() {\n const files = this.selectedFiles ?? [];\n const gridFiles = files.filter(f => f.typeView === 'grid');\n const cardFiles = files.filter(f => f.typeView === 'card');\n const showDropZone = files.length < (this.maxFiles ?? 1) && !this.isDropZoneHidden();\n const isSmall = this.dragAndDropSize === 'small';\n\n return (\n <div class=\"upload-container\">\n\n {/* Header */}\n {(this.title || this.label) && (\n <div class=\"upload-header\">\n {this.title && <div class=\"text title\">{this.title}</div>}\n {this.label && <div class=\"text label\">{this.label}</div>}\n </div>\n )}\n\n {/* Error alert */}\n {this.error && (\n <dropi-alert\n message={this.errorMessage}\n type=\"default\"\n state=\"error\"\n dismissable={true}\n showButton={false}\n onOnClose={() => { this.error = false; }}\n />\n )}\n\n {/* Drop zone */}\n {showDropZone && (\n <div\n class={{ 'file-upload': true, 'drag-over': this.dragging }}\n onDragOver={(e) => this.onDragOver(e)}\n onDragEnter={(e) => this.onDragEnter(e)}\n onDragLeave={() => this.onDragLeave()}\n onDrop={(e) => this.onDrop(e)}\n >\n <div class={`file-upload__zone${this.dragging ? ' drag-over' : ''}`}>\n {/* Ícono solo en size default */}\n {!isSmall && (\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M0 20C0 8.95431 8.95431 0 20 0C31.0457 0 40 8.95431 40 20C40 31.0457 31.0457 40 20 40C8.95431 40 0 31.0457 0 20Z\" fill=\"#FEF8F1\"/>\n <g clip-path=\"url(#up)\">\n <path d=\"M19.3379 13.7187L19.3332 24.0107C19.3332 24.1875 19.4035 24.357 19.5285 24.4821C19.6535 24.6071 19.8231 24.6773 19.9999 24.6773C20.1767 24.6773 20.3463 24.6071 20.4713 24.4821C20.5963 24.357 20.6666 24.1875 20.6666 24.0107L20.6712 13.73L22.6126 15.672C22.7376 15.797 22.9071 15.8672 23.0839 15.8672C23.2607 15.8672 23.4302 15.797 23.5552 15.672C23.6802 15.547 23.7504 15.3774 23.7504 15.2007C23.7504 15.0239 23.6802 14.8543 23.5552 14.7293L21.4145 12.586C21.2288 12.4001 21.0083 12.2527 20.7655 12.1521C20.5228 12.0515 20.2626 11.9998 19.9999 11.9998C19.7371 11.9998 19.477 12.0515 19.2342 12.1521C18.9915 12.2527 18.771 12.4001 18.5852 12.586L16.4445 14.7273C16.3196 14.8523 16.2494 15.0219 16.2494 15.1987C16.2494 15.3754 16.3196 15.545 16.4445 15.67C16.5696 15.795 16.7391 15.8652 16.9159 15.8652C17.0927 15.8652 17.2622 15.795 17.3872 15.67L19.3379 13.7187Z\" fill=\"#F49A3D\"/>\n <path d=\"M26.6667 23.3329V25.9996C26.6667 26.1764 26.5964 26.346 26.4714 26.471C26.3464 26.596 26.1768 26.6663 26 26.6663H14C13.8232 26.6663 13.6536 26.596 13.5286 26.471C13.4036 26.346 13.3333 26.1764 13.3333 25.9996V23.3329C13.3333 23.1561 13.2631 22.9865 13.1381 22.8615C13.013 22.7365 12.8435 22.6663 12.6667 22.6663C12.4899 22.6663 12.3203 22.7365 12.1953 22.8615C12.0702 22.9865 12 23.1561 12 23.3329V25.9996C12 26.53 12.2107 27.0387 12.5858 27.4138C12.9609 27.7889 13.4696 27.9996 14 27.9996H26C26.5304 27.9996 27.0391 27.7889 27.4142 27.4138C27.7893 27.0387 28 26.53 28 25.9996V23.3329C28 23.1561 27.9298 22.9865 27.8047 22.8615C27.6797 22.7365 27.5101 22.6663 27.3333 22.6663C27.1565 22.6663 26.987 22.7365 26.8619 22.8615C26.7369 22.9865 26.6667 23.1561 26.6667 23.3329Z\" fill=\"#F49A3D\"/>\n </g>\n <defs><clipPath id=\"up\"><rect width=\"16\" height=\"16\" fill=\"white\" transform=\"translate(12 12)\"/></clipPath></defs>\n </svg>\n )}\n\n <div class={isSmall ? 'info size-small-upload' : 'info'}>\n <div class=\"title\">{this.textDropZone}</div>\n {isSmall && (\n <dropi-button\n text={this.textButton}\n size=\"small\"\n onClick={(e: MouseEvent) => { e.stopPropagation(); this.openFilePicker(); }}\n />\n )}\n </div>\n\n {!isSmall && (\n <div class=\"info-desc\">\n {this.accept && <div class=\"description\">Formatos admitidos: {this.accept}</div>}\n <div class=\"description\">Tamaño máximo: {this.maxFileSizeMB}MB</div>\n </div>\n )}\n\n {!isSmall && (\n <dropi-button\n text={this.textButton}\n size=\"small\"\n onClick={(e: MouseEvent) => { e.stopPropagation(); this.openFilePicker(); }}\n />\n )}\n\n <input\n ref={(el) => this.inputRef = el as HTMLInputElement}\n type=\"file\"\n accept={this.accept}\n multiple={this.multiple}\n class=\"upload-hidden\"\n onChange={(e) => this.onInputChange(e)}\n />\n </div>\n </div>\n )}\n\n {/* Lista de archivos */}\n {this.selectedFiles.length > 0 && (\n <div class=\"files-container\">\n {/* Grid */}\n {gridFiles.length > 0 && (\n <div class=\"grid-list\">\n {gridFiles.map(f => this.renderGridItem(f))}\n {gridFiles.length < this.maxFiles && (\n <div class=\"add-img\" onClick={() => this.addImage()}>\n <div class=\"icon\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9.77774 6.4444H7.55551V4.22218C7.55551 4.07484 7.49698 3.93353 7.3928 3.82934C7.28861 3.72516 7.1473 3.66663 6.99996 3.66663C6.85262 3.66663 6.71131 3.72516 6.60712 3.82934C6.50294 3.93353 6.4444 4.07484 6.4444 4.22218V6.4444H4.22218C4.07484 6.4444 3.93353 6.50294 3.82934 6.60712C3.72516 6.71131 3.66663 6.85262 3.66663 6.99996C3.66663 7.1473 3.72516 7.28861 3.82934 7.3928C3.93353 7.49698 4.07484 7.55551 4.22218 7.55551H6.4444V9.77774C6.4444 9.92508 6.50294 10.0664 6.60712 10.1706C6.71131 10.2748 6.85262 10.3333 6.99996 10.3333C7.1473 10.3333 7.28861 10.2748 7.3928 10.1706C7.49698 10.0664 7.55551 9.92508 7.55551 9.77774V7.55551H9.77774C9.92508 7.55551 10.0664 7.49698 10.1706 7.3928C10.2748 7.28861 10.3333 7.1473 10.3333 6.99996C10.3333 6.85262 10.2748 6.71131 10.1706 6.60712C10.0664 6.50294 9.92508 6.4444 9.77774 6.4444Z\" fill=\"#32394D\"/>\n </svg>\n </div>\n <div class=\"text\">Agregar</div>\n </div>\n )}\n </div>\n )}\n\n {/* Card */}\n {cardFiles.length > 0 && (\n <div class=\"card-list\">\n {cardFiles.map(f => this.renderCardItem(f))}\n </div>\n )}\n </div>\n )}\n\n </div>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as registerInstance, a as getElement, h } from './index-
|
|
1
|
+
import { r as registerInstance, a as getElement, h } from './index-Cvp2LQOM.js';
|
|
2
2
|
|
|
3
3
|
const dropiIconCss = () => `:host{display:inline-flex;align-items:center;justify-content:center;fill:var(--icon-fill, currentColor);width:24px;height:24px;overflow:hidden}svg{fill:inherit;display:block;width:100%;height:100%;vertical-align:middle}.spin{animation:spin 1s linear infinite}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}`;
|
|
4
4
|
|
|
@@ -63,3 +63,6 @@ const DropiIcon = class {
|
|
|
63
63
|
DropiIcon.style = dropiIconCss();
|
|
64
64
|
|
|
65
65
|
export { DropiIcon as dropi_icon };
|
|
66
|
+
//# sourceMappingURL=dropi-icon.entry.esm.js.map
|
|
67
|
+
|
|
68
|
+
//# sourceMappingURL=dropi-icon.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"dropi-icon.entry.js","mappings":";;AAAA,MAAM,YAAY,GAAG,MAAM,CAAC,4UAA4U,CAAC;;MCY5V,SAAS,GAAA,MAAA;;;;;;IAIZ,IAAI,GAAW,EAAE;;IAEjB,KAAK,GAAW,MAAM;;IAEtB,MAAM,GAAW,MAAM;AAC/B;;;;;AAKG;IACK,KAAK,GAAW,cAAc;IAGtC,YAAY,GAAA;QACV,IAAI,CAAC,UAAU,EAAE;;IAGnB,iBAAiB,GAAA;;AAEf,QAAA,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE;AACjD,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,MAAM;AACrD,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,MAAM;AACtD,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK;;QAErB,IAAI,CAAC,UAAU,EAAE;QACjB,IAAI,CAAC,gBAAgB,EAAE;;IAGzB,kBAAkB,GAAA;QAChB,IAAI,CAAC,gBAAgB,EAAE;;IAGjB,gBAAgB,GAAA;QACtB,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;QAChC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;;IAG5B,UAAU,GAAA;QAChB,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE;QACjB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG;cAClC,IAAI,CAAC;AACP,cAAE,IAAI,CAAC,KAAK,KAAK;AACjB,kBAAE;AACF,kBAAE,CAAA,MAAA,EAAS,IAAI,CAAC,KAAK,GAAG;QAC1B,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC;;IAGhD,MAAM,GAAA;AACJ,QAAA,QACE,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,MAAM,EAC3B,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,MAAM,EAC7B,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,MAAM,SAAS,EAAE,iBACpC,MAAM,EAAA,EAElB,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,IAAI,EAAE,2CAA2C,IAAI,CAAC,IAAI,IAAI,EAAE,CAAA,CAAE,EAAA,CAAI,CACvE;;;;;;;;;;;;","names":[],"sources":["src/components/dropi-icon/dropi-icon.css?tag=dropi-icon&encapsulation=shadow","src/components/dropi-icon/dropi-icon.tsx"],"sourcesContent":[":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n fill: var(--icon-fill, currentColor);\n width: 24px;\n height: 24px;\n overflow: hidden;\n}\n\nsvg {\n fill: inherit;\n display: block;\n width: 100%;\n height: 100%;\n vertical-align: middle;\n}\n\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, h, Watch, Element } from '@stencil/core';\n\n/**\n * @component dropi-icon\n * Renders an SVG icon from the Dropi sprite sheet.\n * The sprite must be available at `assets/icons/sprite.svg`.\n */\n@Component({\n tag: 'dropi-icon',\n styleUrl: 'dropi-icon.css',\n shadow: true,\n})\nexport class DropiIcon {\n @Element() el: HTMLElement;\n\n /** Icon name matching the id in the SVG sprite */\n @Prop() name: string = '';\n /** Width of the icon (CSS value) */\n @Prop() width: string = '24px';\n /** Height of the icon (CSS value) */\n @Prop() height: string = '24px';\n /**\n * Color of the icon. Accepts:\n * - Hex color: `#ff0000`\n * - CSS variable name without `--`: `Primary-Primary-500`\n * - `currentColor` to inherit\n */\n @Prop() color: string = 'currentColor';\n\n @Watch('color')\n colorChanged() {\n this.applyColor();\n }\n\n componentWillLoad() {\n // SSR Fallback: Read attributes if props are not yet synced by hydration\n if (!this.el.style.width && !this.el.style.height) {\n const attrW = this.el.getAttribute('width') || '24px';\n const attrH = this.el.getAttribute('height') || '24px';\n this.width = attrW;\n this.height = attrH;\n }\n this.applyColor();\n this.updateHostStyles();\n }\n\n componentDidUpdate() {\n this.updateHostStyles();\n }\n\n private updateHostStyles() {\n this.el.style.width = this.width;\n this.el.style.height = this.height;\n }\n\n private applyColor() {\n if (!this.color) return;\n const fill = this.color.startsWith('#')\n ? this.color\n : this.color === 'currentColor'\n ? 'currentColor'\n : `var(--${this.color})`;\n this.el.style.setProperty('--icon-fill', fill);\n }\n\n render() {\n return (\n <svg\n width={this.width ?? '24px'}\n height={this.height ?? '24px'}\n class={{ spin: (this.name ?? '') === 'Spinner' }}\n aria-hidden=\"true\"\n >\n <use href={`/assets/icons/symbol/svg/sprite.css.svg#${this.name ?? ''}`} />\n </svg>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as registerInstance, h } from './index-
|
|
1
|
+
import { r as registerInstance, h } from './index-Cvp2LQOM.js';
|
|
2
2
|
|
|
3
3
|
const dropiIlustrationIconCss = () => `:host{display:inline-flex}.dropi-ilustration{display:inline-flex;align-items:center;justify-content:center}.dropi-ilustration__image,.dropi-ilustration-insignia{margin:0;display:flex;align-items:center;justify-content:center}.dropi-ilustration__image img{max-width:100%;height:auto}.dropi-ilustration__image-mb{width:60px;height:60px;display:flex;align-items:center;justify-content:center;border-radius:50%;margin:0}.dropi-ilustration__image-mb.success{background:var(--Success-Success-500, #22c55e)}.dropi-ilustration__image-mb.error{background:var(--Error-Error-500, #ef4444)}.dropi-ilustration__image-mb.info{background:var(--Info-Info-500, #3b82f6)}.dropi-ilustration__image-mb.warning{background:url('assets/icons/ilustration/bg-warning.svg') no-repeat center;background-size:contain;border-radius:0}.dropi-ilustration-insignia-tag{display:flex;align-items:center;margin:0}.dropi-ilustration-insignia-tag img{position:relative;z-index:2;height:32px;width:auto}.tag{border-radius:32px;color:var(--Neutral-White, #ffffff);text-transform:capitalize;margin:0 0 0 -20px;display:flex;align-items:center;justify-content:flex-start}.tag span{color:var(--Neutral-White, #ffffff);padding:4px 8px 4px 18px;font-size:var(--font-size-xxs)}.tag--verified{background:linear-gradient(90deg, #ffc10d 41.3%, #ff6102 112.32%)}.tag--premium{background:linear-gradient(90deg, #ff6102 56.52%, #ffc10d 107.25%)}.tag--exclusive{background:linear-gradient(90deg, var(--Gray-900, #0e111a) 26.09%, #ff6102 116.67%)}`;
|
|
4
4
|
|
|
@@ -35,3 +35,6 @@ const DropiIlustrationIcon = class {
|
|
|
35
35
|
DropiIlustrationIcon.style = dropiIlustrationIconCss();
|
|
36
36
|
|
|
37
37
|
export { DropiIlustrationIcon as dropi_ilustration_icon };
|
|
38
|
+
//# sourceMappingURL=dropi-ilustration-icon.entry.esm.js.map
|
|
39
|
+
|
|
40
|
+
//# sourceMappingURL=dropi-ilustration-icon.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"dropi-ilustration-icon.entry.js","mappings":";;AAAA,MAAM,uBAAuB,GAAG,MAAM,CAAC,q9CAAq9C,CAAC;;MCmBh/C,oBAAoB,GAAA,MAAA;;;;;IAEvB,IAAI,GAAoB,OAAO;;IAE/B,KAAK,GAAqB,SAAS;;IAEnC,aAAa,GAAkB,UAAU;;IAEzC,UAAU,GAAY,KAAK;AAElB,IAAA,aAAa,GAAkC;AAC9D,QAAA,QAAQ,EAAE,2CAA2C;AACrD,QAAA,OAAO,EAAG,0CAA0C;AACpD,QAAA,SAAS,EAAC,wCAAwC;KACnD;AAEO,IAAA,WAAW,CAAC,KAAa,EAAA;AAC/B,QAAA,MAAM,GAAG,GAA2B;AAClC,YAAA,OAAO,EAAE,cAAc;AACvB,YAAA,KAAK,EAAI,cAAc;AACvB,YAAA,IAAI,EAAK,MAAM;AACf,YAAA,OAAO,EAAE,MAAM;SAChB;AACD,QAAA,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,MAAM;;IAG7B,MAAM,GAAA;AACJ,QAAA,QACE,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,mBAAmB,EAAA,EAC3B,IAAI,CAAC,IAAI,KAAK,OAAO,KACpB,CAAA,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAQ,KAAK,EAAC,0BAA0B,EAAA,EACtC,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,GAAG,EAAE,CAAA,yBAAA,EAA4B,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,MAAM,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAA,IAAA,CAAM,EACpJ,GAAG,EAAE,IAAI,CAAC,KAAK,IAAI,SAAS,EAC5B,OAAO,EAAE,CAAC,CAAC,KAAI,EAAI,CAAC,CAAC,MAA2B,CAAC,GAAG,GAAG,sCAAsC,CAAC,EAAE,EAAA,CAChG,CACK,CACV,EAEA,IAAI,CAAC,IAAI,KAAK,IAAI,KACjB,CAAA,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAQ,KAAK,EAAE,CAAA,4BAAA,EAA+B,IAAI,CAAC,KAAK,CAAA,CAAE,EAAA,EACvD,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAC3D,CAAA,CAAA,YAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAClC,KAAK,EAAC,MAAM,EACZ,MAAM,EAAC,MAAM,EACb,KAAK,EAAC,eAAe,EAAA,CACrB,CACH,CACM,CACV,EAEA,IAAI,CAAC,IAAI,KAAK,UAAU,KACvB,+DAAQ,KAAK,EAAE,IAAI,CAAC,UAAU,GAAG,gCAAgC,GAAG,4BAA4B,EAAA,EAC9F,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,aAAa,EAAA,CAAI,EAC5E,IAAI,CAAC,UAAU,KACd,CAAA,CAAA,GAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAG,KAAK,EAAE,CAAA,SAAA,EAAY,IAAI,CAAC,aAAa,CAAA,CAAE,EAAA,EACxC,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAC,WAAW,EAAA,EACpB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CACpE,CACL,CACL,CACM,CACV,CACG;;;;;;;","names":[],"sources":["src/components/dropi-ilustration-icon/dropi-ilustration-icon.css?tag=dropi-ilustration-icon&encapsulation=shadow","src/components/dropi-ilustration-icon/dropi-ilustration-icon.tsx"],"sourcesContent":[":host {\n display: inline-flex;\n}\n\n.dropi-ilustration {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.dropi-ilustration__image,\n.dropi-ilustration-insignia {\n margin: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.dropi-ilustration__image img {\n max-width: 100%;\n height: auto;\n}\n\n.dropi-ilustration__image-mb {\n width: 60px;\n height: 60px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n margin: 0;\n}\n\n.dropi-ilustration__image-mb.success {\n background: var(--Success-Success-500, #22c55e);\n}\n\n.dropi-ilustration__image-mb.error {\n background: var(--Error-Error-500, #ef4444);\n}\n\n.dropi-ilustration__image-mb.info {\n background: var(--Info-Info-500, #3b82f6);\n}\n\n.dropi-ilustration__image-mb.warning {\n background: url('assets/icons/ilustration/bg-warning.svg') no-repeat center;\n background-size: contain;\n border-radius: 0;\n}\n\n.dropi-ilustration-insignia-tag {\n display: flex;\n align-items: center;\n margin: 0;\n}\n\n.dropi-ilustration-insignia-tag img {\n position: relative;\n z-index: 2;\n height: 32px;\n width: auto;\n}\n\n.tag {\n border-radius: 32px;\n color: var(--Neutral-White, #ffffff);\n text-transform: capitalize;\n margin: 0 0 0 -20px;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n}\n\n.tag span {\n color: var(--Neutral-White, #ffffff);\n padding: 4px 8px 4px 18px;\n font-size: var(--font-size-xxs);\n}\n\n.tag--verified {\n background: linear-gradient(90deg, #ffc10d 41.3%, #ff6102 112.32%);\n}\n\n.tag--premium {\n background: linear-gradient(90deg, #ff6102 56.52%, #ffc10d 107.25%);\n}\n\n.tag--exclusive {\n background: linear-gradient(90deg, var(--Gray-900, #0e111a) 26.09%, #ff6102 116.67%);\n}\n","import { Component, Prop, h } from '@stencil/core';\n\nexport type IlustrationType = 'dropi' | 'mb' | 'insignia';\nexport type IlustrationState = 'success' | 'error' | 'warning' | 'info' | 'default' | 'loading' | 'sorry' | 'love';\nexport type InsigniaState = 'verified' | 'premium' | 'exclusive';\n\n/**\n * @component dropi-ilustration-icon\n * Illustration icon with three modes: dropi (SVG asset), mb (colored circle), insignia (badge).\n *\n * @example\n * <dropi-ilustration-icon type=\"dropi\" state=\"success\"></dropi-ilustration-icon>\n * <dropi-ilustration-icon type=\"insignia\" state-insignia=\"premium\" tag-product></dropi-ilustration-icon>\n */\n@Component({\n tag: 'dropi-ilustration-icon',\n styleUrl: 'dropi-ilustration-icon.css',\n shadow: true,\n})\nexport class DropiIlustrationIcon {\n /** Display mode */\n @Prop() type: IlustrationType = 'dropi';\n /** State for dropi/mb types */\n @Prop() state: IlustrationState = 'default';\n /** Insignia variant */\n @Prop() stateInsignia: InsigniaState = 'verified';\n /** Show insignia as tag with label (for product cards) */\n @Prop() tagProduct: boolean = false;\n\n private readonly insigniaIcons: Record<InsigniaState, string> = {\n verified: 'assets/icons/ilustration/verified-new.svg',\n premium: 'assets/icons/ilustration/premium-new.svg',\n exclusive:'assets/icons/ilustration/exclusive.svg',\n };\n\n private getIconName(state: string): string {\n const map: Record<string, string> = {\n success: 'Check-circle',\n error: 'Cross-circle',\n info: 'Info',\n warning: 'Info',\n };\n return map[state] || 'Info';\n }\n\n render() {\n return (\n <div class=\"dropi-ilustration\">\n {this.type === 'dropi' && (\n <figure class=\"dropi-ilustration__image\">\n <img\n src={`assets/icons/ilustration/${(!this.state || String(this.state) === 'undefined' || String(this.state) === 'null') ? 'default' : this.state}.svg`}\n alt={this.state ?? 'default'}\n onError={(e) => { (e.target as HTMLImageElement).src = 'assets/icons/ilustration/default.svg'; }}\n />\n </figure>\n )}\n\n {this.type === 'mb' && (\n <figure class={`dropi-ilustration__image-mb ${this.state}`}>\n {['success', 'error', 'info', 'warning'].includes(this.state) && (\n <dropi-icon\n name={this.getIconName(this.state)}\n width=\"24px\"\n height=\"24px\"\n color=\"Neutral-White\"\n />\n )}\n </figure>\n )}\n\n {this.type === 'insignia' && (\n <figure class={this.tagProduct ? 'dropi-ilustration-insignia-tag' : 'dropi-ilustration-insignia'}>\n <img src={this.insigniaIcons[this.stateInsignia]} alt={this.stateInsignia} />\n {this.tagProduct && (\n <p class={`tag tag--${this.stateInsignia}`}>\n <span class=\"Caption-S\">\n {this.stateInsignia.charAt(0).toUpperCase() + this.stateInsignia.slice(1)}\n </span>\n </p>\n )}\n </figure>\n )}\n </div>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as registerInstance,
|
|
1
|
+
import { r as registerInstance, d as createEvent, h } from './index-Cvp2LQOM.js';
|
|
2
2
|
|
|
3
3
|
const dropiImageMiniatureCss = () => `:host{display:block}*,*::before,*::after{box-sizing:border-box}.miniature__label{display:block;font-size:var(--font-size-xs, 10px);color:var(--Gray-Gray-600, #475066);margin-bottom:var(--Size-2, 8px)}.miniature__grid{display:flex;flex-wrap:wrap;gap:var(--Size-2, 8px)}.miniature__item{position:relative;border-radius:var(--Border-2, 8px);overflow:hidden;cursor:pointer;flex-shrink:0}.miniature__item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 0.2s}.miniature__zoom{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,0.35);opacity:0;transition:opacity 0.2s}.miniature__item:hover img{transform:scale(1.05)}.miniature__item:hover .miniature__zoom{opacity:1}`;
|
|
4
4
|
|
|
@@ -40,3 +40,6 @@ const DropiImageMiniature = class {
|
|
|
40
40
|
DropiImageMiniature.style = dropiImageMiniatureCss();
|
|
41
41
|
|
|
42
42
|
export { DropiImageMiniature as dropi_image_miniature };
|
|
43
|
+
//# sourceMappingURL=dropi-image-miniature.entry.esm.js.map
|
|
44
|
+
|
|
45
|
+
//# sourceMappingURL=dropi-image-miniature.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"dropi-image-miniature.entry.js","mappings":";;AAAA,MAAM,sBAAsB,GAAG,MAAM,CAAC,uuBAAuuB,CAAC;;MCWjwB,mBAAmB,GAAA,MAAA;;;;;;IAEtB,KAAK,GAAW,EAAE;;IAElB,MAAM,GAAsB,EAAE;;IAE9B,KAAK,GAAW,MAAM;;IAEtB,MAAM,GAAW,MAAM;;AAGtB,IAAA,eAAe;AAExB,IAAA,IAAY,YAAY,GAAA;AACtB,QAAA,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE;AACnC,YAAA,IAAI;gBAAE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;;AAAI,YAAA,MAAM;AAAE,gBAAA,OAAO,EAAE;;;AAE3D,QAAA,OAAO,IAAI,CAAC,MAAM,IAAI,EAAE;;AAGlB,IAAA,WAAW,CAAC,CAAQ,EAAA;QACzB,CAAC,CAAC,MAA2B,CAAC,GAAG;AAChC,YAAA,CAAA,sSAAA,CAAwS;;IAG5S,MAAM,GAAA;AACJ,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY;QAE9B,QACE,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,WAAW,EAAA,EACnB,IAAI,CAAC,KAAK,IAAI,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAC,kBAAkB,EAAA,EAAE,IAAI,CAAC,KAAK,CAAQ,EACjE,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,iBAAiB,EAAA,EACzB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,MACf,CAAA,CAAA,KAAA,EAAA,EACE,KAAK,EAAC,iBAAiB,EACvB,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EACjD,GAAG,EAAE,CAAC,EACN,OAAO,EAAE,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAA,EAEpE,CAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA,OAAA,EAAU,CAAC,GAAG,CAAC,CAAA,CAAE,EAAE,OAAO,EAAC,MAAM,EAAC,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAA,CAAI,EAC7F,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,iBAAiB,EAAA,EAC1B,CAAA,CAAA,YAAA,EAAA,EAAY,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,eAAe,EAAA,CAAG,CACzE,CACF,CACP,CAAC,CACE,CACF;;;;;;;","names":[],"sources":["src/components/dropi-image-miniature/dropi-image-miniature.css?tag=dropi-image-miniature&encapsulation=shadow","src/components/dropi-image-miniature/dropi-image-miniature.tsx"],"sourcesContent":[":host { display: block; }\n*, *::before, *::after { box-sizing: border-box; }\n\n.miniature__label {\n display: block;\n font-size: var(--font-size-xs, 10px);\n color: var(--Gray-Gray-600, #475066);\n margin-bottom: var(--Size-2, 8px);\n}\n\n.miniature__grid {\n display: flex;\n flex-wrap: wrap;\n gap: var(--Size-2, 8px);\n}\n\n.miniature__item {\n position: relative;\n border-radius: var(--Border-2, 8px);\n overflow: hidden;\n cursor: pointer;\n flex-shrink: 0;\n}\n\n.miniature__item img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n transition: transform 0.2s;\n}\n\n.miniature__zoom {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba(0,0,0,0.35);\n opacity: 0;\n transition: opacity 0.2s;\n}\n\n.miniature__item:hover img { transform: scale(1.05); }\n.miniature__item:hover .miniature__zoom { opacity: 1; }\n","import { Component, Prop, Event, EventEmitter, h } from '@stencil/core';\n\n/**\n * @component dropi-image-miniature\n * Grid of image thumbnails with zoom-on-hover overlay trigger.\n */\n@Component({\n tag: 'dropi-image-miniature',\n styleUrl: 'dropi-image-miniature.css',\n shadow: true,\n})\nexport class DropiImageMiniature {\n /** Optional label above the grid */\n @Prop() label: string = '';\n /** Array of image URLs. Pass as JSON string or array */\n @Prop() images: string[] | string = [];\n /** Thumbnail width (CSS value) */\n @Prop() width: string = '88px';\n /** Thumbnail height (CSS value) */\n @Prop() height: string = '88px';\n\n /** Emitted when a thumbnail is clicked. e.detail = { images, index } */\n @Event() dropiImageClick: EventEmitter<{ images: string[]; index: number }>;\n\n private get parsedImages(): string[] {\n if (typeof this.images === 'string') {\n try { return JSON.parse(this.images); } catch { return []; }\n }\n return this.images || [];\n }\n\n private handleError(e: Event) {\n (e.target as HTMLImageElement).src =\n `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4OCA4OCI+PHJlY3Qgd2lkdGg9Ijg4IiBoZWlnaHQ9Ijg4IiBmaWxsPSIjZjdmOGZhIi8+PHRleHQgeD0iNDQiIHk9IjQ4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjYzNjOWQ5IiBmb250LXNpemU9IjEyIj5TaW4gaW1hZ2VuPC90ZXh0Pjwvc3ZnPg==`;\n }\n\n render() {\n const imgs = this.parsedImages;\n\n return (\n <div class=\"miniature\">\n {this.label && <span class=\"miniature__label\">{this.label}</span>}\n <div class=\"miniature__grid\">\n {imgs.map((src, i) => (\n <div\n class=\"miniature__item\"\n style={{ width: this.width, height: this.height }}\n key={i}\n onClick={() => this.dropiImageClick.emit({ images: imgs, index: i })}\n >\n <img src={src} alt={`imagen ${i + 1}`} loading=\"lazy\" onError={(e) => this.handleError(e)} />\n <div class=\"miniature__zoom\">\n <dropi-icon name=\"Search\" width=\"16px\" height=\"16px\" color=\"Neutral-White\" />\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as registerInstance,
|
|
1
|
+
import { r as registerInstance, d as createEvent, h } from './index-Cvp2LQOM.js';
|
|
2
2
|
|
|
3
3
|
const dropiImageOverlayCss = () => `:host{display:block}.overlay{position:fixed;inset:0;background:rgba(0,0,0,0.92);display:flex;justify-content:center;align-items:center;z-index:9999;animation:fade-in 0.3s ease-out}.overlay__close{position:absolute;top:24px;right:24px;background:rgba(255, 255, 255, 0.1);border:none;border-radius:50%;width:48px;height:48px;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:10010;transition:background 0.15s}.overlay__close:hover{background:rgba(255, 255, 255, 0.2)}.overlay__body{display:flex;width:90%;height:80%;max-width:1200px;gap:32px;align-items:center}.overlay__body--single{justify-content:center}.overlay__thumbs{display:flex;flex-direction:column;gap:12px;height:100%;overflow-y:auto;padding-right:8px;width:100px;flex-shrink:0}.overlay__thumbs::-webkit-scrollbar{width:4px}.overlay__thumbs::-webkit-scrollbar-thumb{background:var(--Gray-Gray-600);border-radius:4px}.overlay__thumb-box{width:80px;height:80px;border:2px solid transparent;border-radius:8px;overflow:hidden;cursor:pointer;flex-shrink:0;transition:border-color 0.2s}.overlay__thumb-box--active{border-color:var(--Primary-Primary-500, #f49a3d)}.overlay__thumb-img{width:100%;height:100%;object-fit:cover}.overlay__content{flex:1;height:100%;position:relative;display:flex;justify-content:center;align-items:center}.overlay__main-image{max-width:100%;max-height:100%;object-fit:contain;border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,0.5);animation:scale-up 0.3s ease-out}.overlay__nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255, 255, 255, 0.1);border:none;border-radius:50%;width:48px;height:48px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background 0.2s;z-index:5}.overlay__nav:hover{background:rgba(255, 255, 255, 0.2)}.overlay__nav--prev{left:-24px}.overlay__nav--next{right:-24px;background:var(--Neutral-White)}.overlay__nav--next:hover{background:var(--Neutral-White)}@keyframes fade-in{from{opacity:0}to{opacity:1}}@keyframes scale-up{from{transform:scale(0.9);opacity:0}to{transform:scale(1);opacity:1}}`;
|
|
4
4
|
|
|
@@ -59,3 +59,6 @@ const DropiImageOverlay = class {
|
|
|
59
59
|
DropiImageOverlay.style = dropiImageOverlayCss();
|
|
60
60
|
|
|
61
61
|
export { DropiImageOverlay as dropi_image_overlay };
|
|
62
|
+
//# sourceMappingURL=dropi-image-overlay.entry.esm.js.map
|
|
63
|
+
|
|
64
|
+
//# sourceMappingURL=dropi-image-overlay.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"dropi-image-overlay.entry.js","mappings":"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","names":[],"sources":["src/components/dropi-image-overlay/dropi-image-overlay.css?tag=dropi-image-overlay&encapsulation=shadow","src/components/dropi-image-overlay/dropi-image-overlay.tsx"],"sourcesContent":[":host { display: block; }\n\n.overlay {\n position: fixed;\n inset: 0;\n background: rgba(0,0,0,0.92);\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 9999;\n animation: fade-in 0.3s ease-out;\n}\n\n.overlay__close {\n position: absolute;\n top: 24px;\n right: 24px;\n background: rgba(255, 255, 255, 0.1);\n border: none;\n border-radius: 50%;\n width: 48px;\n height: 48px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n z-index: 10010;\n transition: background 0.15s;\n}\n.overlay__close:hover { background: rgba(255, 255, 255, 0.2); }\n\n.overlay__body {\n display: flex;\n width: 90%;\n height: 80%;\n max-width: 1200px;\n gap: 32px;\n align-items: center;\n}\n\n.overlay__body--single {\n justify-content: center;\n}\n\n/* ── Thumbnails (Left Column) ─────────────────────────── */\n.overlay__thumbs {\n display: flex;\n flex-direction: column;\n gap: 12px;\n height: 100%;\n overflow-y: auto;\n padding-right: 8px;\n width: 100px;\n flex-shrink: 0;\n}\n\n/* Hide scrollbar but keep functionality */\n.overlay__thumbs::-webkit-scrollbar { width: 4px; }\n.overlay__thumbs::-webkit-scrollbar-thumb { background: var(--Gray-Gray-600); border-radius: 4px; }\n\n.overlay__thumb-box {\n width: 80px;\n height: 80px;\n border: 2px solid transparent;\n border-radius: 8px;\n overflow: hidden;\n cursor: pointer;\n flex-shrink: 0;\n transition: border-color 0.2s;\n}\n\n.overlay__thumb-box--active {\n border-color: var(--Primary-Primary-500, #f49a3d);\n}\n\n.overlay__thumb-img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n\n/* ── Main Content (Right Area) ─────────────────────────── */\n.overlay__content {\n flex: 1;\n height: 100%;\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.overlay__main-image {\n max-width: 100%;\n max-height: 100%;\n object-fit: contain;\n border-radius: 12px;\n box-shadow: 0 10px 30px rgba(0,0,0,0.5);\n animation: scale-up 0.3s ease-out;\n}\n\n.overlay__nav {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n background: rgba(255, 255, 255, 0.1);\n border: none;\n border-radius: 50%;\n width: 48px;\n height: 48px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: background 0.2s;\n z-index: 5;\n}\n\n.overlay__nav:hover { background: rgba(255, 255, 255, 0.2); }\n.overlay__nav--prev { left: -24px; }\n.overlay__nav--next {\n right: -24px;\n background: var(--Neutral-White);\n}\n.overlay__nav--next:hover { background: var(--Neutral-White); }\n\n@keyframes fade-in { from { opacity: 0; } to { opacity: 1; } }\n@keyframes scale-up { from { transform: scale(0.9); opacity: 0; } to { transform: scale(1); opacity: 1; } }\n","import { Component, Prop, State, Event, EventEmitter, Watch, h } from '@stencil/core';\n\n/**\n * @component dropi-image-overlay\n * Full-screen image lightbox with prev/next navigation and thumbnails.\n */\n@Component({\n tag: 'dropi-image-overlay',\n styleUrl: 'dropi-image-overlay.css',\n shadow: true,\n})\nexport class DropiImageOverlay {\n /** Whether the overlay is visible */\n @Prop({ mutable: true }) visible: any = false;\n /** Images array or JSON string */\n @Prop() images: string[] | string = [];\n /** Initially active image index */\n @Prop({ mutable: true }) activeIndex: number = 0;\n\n @State() private current: number = 0;\n @State() private parsedImages: string[] = [];\n\n /** Emitted when overlay closes */\n @Event() dropiClose: EventEmitter<void>;\n\n @Watch('images')\n imagesChanged(val: string[] | string) {\n this.parsedImages = typeof val === 'string' ? JSON.parse(val) : (val || []);\n }\n\n @Watch('activeIndex')\n indexChanged(val: number) { this.current = val; }\n\n @Watch('visible')\n visibleChanged(val: boolean) { if (val) this.current = this.activeIndex; }\n\n componentWillLoad() {\n this.imagesChanged(this.images);\n this.current = this.activeIndex;\n }\n\n private close() { this.visible = false; this.dropiClose.emit(); }\n private prev() { this.current = (this.current - 1 + this.parsedImages.length) % this.parsedImages.length; }\n private next() { this.current = (this.current + 1) % this.parsedImages.length; }\n\n private handleError(e: Event) {\n (e.target as HTMLImageElement).src =\n `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMzAwIj48cmVjdCB3aWR0aD0iNDAwIiBoZWlnaHQ9IjMwMCIgZmlsbD0iIzFhMjAzMyIvPjx0ZXh0IHg9IjIwMCIgeT0iMTU1IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNDc1MDY2IiBmb250LXNpemU9IjE0Ij5TaW4gaW1hZ2VuPC90ZXh0Pjwvc3ZnPg==`;\n }\n\n render() {\n const isVisible = this.visible === true || String(this.visible) === 'true';\n if (!isVisible) return null;\n const imgs = this.parsedImages;\n const multi = imgs.length > 1;\n\n return (\n <div class=\"overlay\" onClick={() => this.close()}>\n <button class=\"overlay__close\" onClick={(e) => { e.stopPropagation(); this.close(); }} aria-label=\"Cerrar\">\n <dropi-icon name=\"Close-large\" width=\"24px\" height=\"24px\" color=\"Neutral-White\" />\n </button>\n\n <div class={{ 'overlay__body': true, 'overlay__body--single': !multi }} onClick={(e) => e.stopPropagation()}>\n {multi && (\n <div class=\"overlay__thumbs\">\n {imgs.map((src, i) => (\n <div\n key={i}\n class={{ 'overlay__thumb-box': true, 'overlay__thumb-box--active': i === this.current }}\n onClick={() => this.current = i}\n >\n <img\n src={src}\n alt={`miniatura ${i + 1}`}\n class=\"overlay__thumb-img\"\n onError={(e) => this.handleError(e)}\n />\n </div>\n ))}\n </div>\n )}\n\n <div class=\"overlay__content\">\n {multi && (\n <button class=\"overlay__nav overlay__nav--prev\" onClick={() => this.prev()} aria-label=\"Anterior\">\n <dropi-icon name=\"Dropdown-left\" width=\"18px\" height=\"18px\" color=\"Gray-Gray-500\" />\n </button>\n )}\n\n <img\n class=\"overlay__main-image\"\n src={imgs[this.current]}\n alt={`imagen ${this.current + 1}`}\n onError={(e) => this.handleError(e)}\n />\n\n {multi && (\n <button class=\"overlay__nav overlay__nav--next\" onClick={() => this.next()} aria-label=\"Siguiente\">\n <dropi-icon name=\"Dropdown-Right\" width=\"18px\" height=\"18px\" color=\"Gray-Gray-500\" />\n </button>\n )}\n </div>\n </div>\n </div>\n );\n }\n}\n"],"version":3}
|