@dropi/ui 0.1.19 → 0.1.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (544) hide show
  1. package/assets/icons/ilustration/bg-warning.svg +3 -0
  2. package/assets/icons/ilustration/default.svg +4 -0
  3. package/assets/icons/ilustration/error.svg +10 -0
  4. package/assets/icons/ilustration/exclusive.svg +9 -0
  5. package/assets/icons/ilustration/info.svg +10 -0
  6. package/assets/icons/ilustration/loading.svg +4 -0
  7. package/assets/icons/ilustration/love.svg +9 -0
  8. package/assets/icons/ilustration/premium-new.svg +14 -0
  9. package/assets/icons/ilustration/premium.svg +5 -0
  10. package/assets/icons/ilustration/sorry.svg +4 -0
  11. package/assets/icons/ilustration/success.svg +11 -0
  12. package/assets/icons/ilustration/verified-new.svg +9 -0
  13. package/assets/icons/ilustration/verified.svg +4 -0
  14. package/assets/icons/ilustration/warning.svg +9 -0
  15. package/assets/lottie-files/loading.json +1 -0
  16. package/dist/cjs/dropi-accordion-item.cjs.entry.js +54 -0
  17. package/dist/cjs/dropi-accordion.cjs.entry.js +5 -39
  18. package/dist/cjs/dropi-alert-legacy.cjs.entry.js +39 -0
  19. package/dist/cjs/dropi-alert-modal.cjs.entry.js +128 -0
  20. package/dist/cjs/dropi-alert.cjs.entry.js +21 -15
  21. package/dist/cjs/dropi-avatars.cjs.entry.js +3 -3
  22. package/dist/cjs/dropi-badge-legacy.cjs.entry.js +30 -0
  23. package/dist/cjs/dropi-badge.cjs.entry.js +4 -4
  24. package/dist/cjs/dropi-banner-external.cjs.entry.js +53 -0
  25. package/dist/cjs/dropi-breadcrumb.cjs.entry.js +48 -0
  26. package/dist/cjs/dropi-button.cjs.entry.js +13 -7
  27. package/dist/cjs/dropi-card-checkbox.cjs.entry.js +48 -0
  28. package/dist/cjs/dropi-card-product.cjs.entry.js +76 -0
  29. package/dist/cjs/dropi-card-section.cjs.entry.js +17 -17
  30. package/dist/cjs/dropi-carousel.cjs.entry.js +148 -0
  31. package/dist/cjs/dropi-checkbox-selection-list.cjs.entry.js +17 -15
  32. package/dist/cjs/dropi-checkbox.cjs.entry.js +6 -6
  33. package/dist/cjs/dropi-chips.cjs.entry.js +9 -9
  34. package/dist/cjs/dropi-city-selector.cjs.entry.js +96 -0
  35. package/dist/cjs/dropi-color-picker.cjs.entry.js +319 -0
  36. package/dist/cjs/dropi-country-flags.cjs.entry.js +37 -0
  37. package/dist/cjs/dropi-country-selector.cjs.entry.js +197 -0
  38. package/dist/cjs/dropi-date-picker-range.cjs.entry.js +115 -0
  39. package/dist/cjs/dropi-date-picker.cjs.entry.js +223 -0
  40. package/dist/cjs/dropi-drawer.cjs.entry.js +76 -0
  41. package/dist/cjs/dropi-dropdown.cjs.entry.js +22 -15
  42. package/dist/cjs/dropi-empty-state.cjs.entry.js +16 -15
  43. package/dist/cjs/dropi-favorite-button.cjs.entry.js +5 -5
  44. package/dist/cjs/dropi-file-upload-progress-bar.cjs.entry.js +75 -0
  45. package/dist/cjs/dropi-file-upload.cjs.entry.js +236 -0
  46. package/dist/cjs/dropi-icon.cjs.entry.js +2 -2
  47. package/dist/cjs/dropi-ilustration-icon.cjs.entry.js +39 -0
  48. package/dist/cjs/dropi-image-miniature.cjs.entry.js +3 -3
  49. package/dist/cjs/dropi-image-overlay.cjs.entry.js +4 -4
  50. package/dist/cjs/dropi-input_3.cjs.entry.js +390 -0
  51. package/dist/cjs/dropi-languages-selector.cjs.entry.js +57 -0
  52. package/dist/cjs/dropi-logo.cjs.entry.js +3 -3
  53. package/dist/cjs/dropi-lottie-loader.cjs.entry.js +7 -7
  54. package/dist/cjs/dropi-media-player.cjs.entry.js +189 -0
  55. package/dist/cjs/dropi-modal.cjs.entry.js +36 -14
  56. package/dist/cjs/dropi-navbar.cjs.entry.js +54 -0
  57. package/dist/cjs/dropi-otp-send-code.cjs.entry.js +10 -10
  58. package/dist/cjs/dropi-phone-input.cjs.entry.js +197 -0
  59. package/dist/cjs/dropi-radio-button.cjs.entry.js +7 -7
  60. package/dist/cjs/dropi-radio-selection-list.cjs.entry.js +17 -13
  61. package/dist/cjs/dropi-read-more.cjs.entry.js +8 -4
  62. package/dist/cjs/dropi-search.cjs.entry.js +52 -38
  63. package/dist/cjs/dropi-select.cjs.entry.js +98 -55
  64. package/dist/cjs/dropi-sidebar.cjs.entry.js +78 -0
  65. package/dist/cjs/dropi-simple-stepper.cjs.entry.js +8 -6
  66. package/dist/cjs/dropi-skeleton.cjs.entry.js +16 -6
  67. package/dist/cjs/dropi-steps.cjs.entry.js +6 -4
  68. package/dist/cjs/dropi-switch.cjs.entry.js +5 -5
  69. package/dist/cjs/dropi-table.cjs.entry.js +292 -0
  70. package/dist/cjs/dropi-tabs.cjs.entry.js +13 -11
  71. package/dist/cjs/dropi-tag-type-product.cjs.entry.js +19 -0
  72. package/dist/cjs/dropi-text-area.cjs.entry.js +49 -18
  73. package/dist/cjs/dropi-time-line.cjs.entry.js +3 -3
  74. package/dist/cjs/dropi-toast.cjs.entry.js +4 -4
  75. package/dist/cjs/dropi-tooltip-v2.cjs.entry.js +131 -0
  76. package/dist/cjs/dropi-tooltip.cjs.entry.js +5 -26
  77. package/dist/cjs/dropi-ui.cjs.js +2 -2
  78. package/dist/cjs/dropi-vertical-steps.cjs.entry.js +6 -6
  79. package/dist/cjs/dropi-youtube-lazy-video.cjs.entry.js +33 -0
  80. package/dist/cjs/{index-B6R6Ojma.js → index-077kM98l.js} +6 -3
  81. package/dist/cjs/loader.cjs.js +2 -2
  82. package/dist/collection/collection-manifest.json +30 -2
  83. package/dist/collection/components/dropi-accordion/dropi-accordion-item.css +45 -0
  84. package/dist/collection/components/dropi-accordion/dropi-accordion-item.js +172 -0
  85. package/dist/collection/components/dropi-accordion/dropi-accordion.css +3 -3
  86. package/dist/collection/components/dropi-accordion/dropi-accordion.js +7 -129
  87. package/dist/collection/components/dropi-alert/dropi-alert.css +26 -15
  88. package/dist/collection/components/dropi-alert/dropi-alert.js +87 -21
  89. package/dist/collection/components/dropi-alert-legacy/dropi-alert-legacy.css +31 -0
  90. package/dist/collection/components/dropi-alert-legacy/dropi-alert-legacy.js +128 -0
  91. package/dist/collection/components/dropi-alert-modal/dropi-alert-modal.css +96 -0
  92. package/dist/collection/components/dropi-alert-modal/dropi-alert-modal.js +526 -0
  93. package/dist/collection/components/dropi-avatars/dropi-avatars.js +3 -3
  94. package/dist/collection/components/dropi-badge/dropi-badge.css +1 -1
  95. package/dist/collection/components/dropi-badge/dropi-badge.js +3 -4
  96. package/dist/collection/components/dropi-badge-legacy/dropi-badge-legacy.css +17 -0
  97. package/dist/collection/components/dropi-badge-legacy/dropi-badge-legacy.js +119 -0
  98. package/dist/collection/components/dropi-banner-external/dropi-banner-external.css +56 -0
  99. package/dist/collection/components/dropi-banner-external/dropi-banner-external.js +243 -0
  100. package/dist/collection/components/dropi-breadcrumb/dropi-breadcrumb.css +69 -0
  101. package/dist/collection/components/dropi-breadcrumb/dropi-breadcrumb.js +171 -0
  102. package/dist/collection/components/dropi-button/dropi-button.css +21 -19
  103. package/dist/collection/components/dropi-button/dropi-button.js +53 -7
  104. package/dist/collection/components/dropi-card-checkbox/dropi-card-checkbox.css +92 -0
  105. package/dist/collection/components/dropi-card-checkbox/dropi-card-checkbox.js +222 -0
  106. package/dist/collection/components/dropi-card-product/dropi-card-product.css +235 -0
  107. package/dist/collection/components/dropi-card-product/dropi-card-product.js +384 -0
  108. package/dist/collection/components/dropi-card-section/dropi-card-section.css +2 -2
  109. package/dist/collection/components/dropi-card-section/dropi-card-section.js +25 -25
  110. package/dist/collection/components/dropi-carousel/dropi-carousel.css +148 -0
  111. package/dist/collection/components/dropi-carousel/dropi-carousel.js +374 -0
  112. package/dist/collection/components/dropi-checkbox/dropi-checkbox.js +6 -6
  113. package/dist/collection/components/dropi-checkbox-selection-list/dropi-checkbox-selection-list.js +42 -20
  114. package/dist/collection/components/dropi-chips/dropi-chips.css +2 -0
  115. package/dist/collection/components/dropi-chips/dropi-chips.js +15 -15
  116. package/dist/collection/components/dropi-city-selector/dropi-city-selector.css +218 -0
  117. package/dist/collection/components/dropi-city-selector/dropi-city-selector.js +234 -0
  118. package/dist/collection/components/dropi-color-picker/dropi-color-picker.css +210 -0
  119. package/dist/collection/components/dropi-color-picker/dropi-color-picker.js +393 -0
  120. package/dist/collection/components/dropi-country-flags/dropi-country-flags.css +30 -0
  121. package/dist/collection/components/dropi-country-flags/dropi-country-flags.js +129 -0
  122. package/dist/collection/components/dropi-country-selector/dropi-country-selector.css +211 -0
  123. package/dist/collection/components/dropi-country-selector/dropi-country-selector.js +429 -0
  124. package/dist/collection/components/dropi-date-picker/dropi-date-picker.css +215 -0
  125. package/dist/collection/components/dropi-date-picker/dropi-date-picker.js +516 -0
  126. package/dist/collection/components/dropi-date-picker-range/dropi-date-picker-range.css +143 -0
  127. package/dist/collection/components/dropi-date-picker-range/dropi-date-picker-range.js +327 -0
  128. package/dist/collection/components/dropi-drawer/dropi-drawer.css +129 -0
  129. package/dist/collection/components/dropi-drawer/dropi-drawer.js +284 -0
  130. package/dist/collection/components/dropi-dropdown/dropi-dropdown.css +1 -1
  131. package/dist/collection/components/dropi-dropdown/dropi-dropdown.js +51 -26
  132. package/dist/collection/components/dropi-empty-state/dropi-empty-state.css +1 -0
  133. package/dist/collection/components/dropi-empty-state/dropi-empty-state.js +65 -38
  134. package/dist/collection/components/dropi-favorite-button/dropi-favorite-button.js +5 -5
  135. package/dist/collection/components/dropi-file-upload/dropi-file-upload.css +464 -0
  136. package/dist/collection/components/dropi-file-upload/dropi-file-upload.js +516 -0
  137. package/dist/collection/components/dropi-file-upload-progress-bar/dropi-file-upload-progress-bar.css +115 -0
  138. package/dist/collection/components/dropi-file-upload-progress-bar/dropi-file-upload-progress-bar.js +256 -0
  139. package/dist/collection/components/dropi-icon/dropi-icon.js +1 -1
  140. package/dist/collection/components/dropi-ilustration-icon/dropi-ilustration-icon.css +91 -0
  141. package/dist/collection/components/dropi-ilustration-icon/dropi-ilustration-icon.js +150 -0
  142. package/dist/collection/components/dropi-image-miniature/dropi-image-miniature.js +1 -1
  143. package/dist/collection/components/dropi-image-overlay/dropi-image-overlay.css +86 -41
  144. package/dist/collection/components/dropi-image-overlay/dropi-image-overlay.js +1 -1
  145. package/dist/collection/components/dropi-input/dropi-input.css +1 -1
  146. package/dist/collection/components/dropi-input/dropi-input.js +158 -87
  147. package/dist/collection/components/dropi-languages-selector/dropi-languages-selector.css +79 -0
  148. package/dist/collection/components/dropi-languages-selector/dropi-languages-selector.js +154 -0
  149. package/dist/collection/components/dropi-logo/dropi-logo.js +2 -2
  150. package/dist/collection/components/dropi-lottie-loader/dropi-lottie-loader.css +8 -2
  151. package/dist/collection/components/dropi-lottie-loader/dropi-lottie-loader.js +11 -11
  152. package/dist/collection/components/dropi-media-player/dropi-media-player.css +320 -0
  153. package/dist/collection/components/dropi-media-player/dropi-media-player.js +391 -0
  154. package/dist/collection/components/dropi-modal/dropi-modal.css +20 -4
  155. package/dist/collection/components/dropi-modal/dropi-modal.js +300 -18
  156. package/dist/collection/components/dropi-navbar/dropi-navbar.css +166 -0
  157. package/dist/collection/components/dropi-navbar/dropi-navbar.js +302 -0
  158. package/dist/collection/components/dropi-otp-send-code/dropi-otp-send-code.css +17 -10
  159. package/dist/collection/components/dropi-otp-send-code/dropi-otp-send-code.js +9 -9
  160. package/dist/collection/components/dropi-paginator/dropi-paginator.css +2 -2
  161. package/dist/collection/components/dropi-paginator/dropi-paginator.js +51 -99
  162. package/dist/collection/components/dropi-phone-input/dropi-phone-input.css +209 -0
  163. package/dist/collection/components/dropi-phone-input/dropi-phone-input.js +442 -0
  164. package/dist/collection/components/dropi-radio-button/dropi-radio-button.js +13 -20
  165. package/dist/collection/components/dropi-radio-selection-list/dropi-radio-selection-list.css +3 -3
  166. package/dist/collection/components/dropi-radio-selection-list/dropi-radio-selection-list.js +69 -19
  167. package/dist/collection/components/dropi-read-more/dropi-read-more.css +5 -8
  168. package/dist/collection/components/dropi-read-more/dropi-read-more.js +46 -2
  169. package/dist/collection/components/dropi-search/dropi-search.css +2 -2
  170. package/dist/collection/components/dropi-search/dropi-search.js +194 -60
  171. package/dist/collection/components/dropi-select/dropi-select.css +7 -7
  172. package/dist/collection/components/dropi-select/dropi-select.js +166 -84
  173. package/dist/collection/components/dropi-sidebar/dropi-sidebar.css +76 -0
  174. package/dist/collection/components/dropi-sidebar/dropi-sidebar.js +143 -0
  175. package/dist/collection/components/dropi-simple-stepper/dropi-simple-stepper.css +2 -2
  176. package/dist/collection/components/dropi-simple-stepper/dropi-simple-stepper.js +29 -7
  177. package/dist/collection/components/dropi-skeleton/dropi-skeleton.js +40 -10
  178. package/dist/collection/components/dropi-steps/dropi-steps.css +3 -3
  179. package/dist/collection/components/dropi-steps/dropi-steps.js +31 -3
  180. package/dist/collection/components/dropi-switch/dropi-switch.js +5 -5
  181. package/dist/collection/components/dropi-table/dropi-table.css +540 -0
  182. package/dist/collection/components/dropi-table/dropi-table.js +966 -0
  183. package/dist/collection/components/dropi-tabs/dropi-tabs.css +10 -5
  184. package/dist/collection/components/dropi-tabs/dropi-tabs.js +35 -13
  185. package/dist/collection/components/dropi-tag/dropi-tag.css +1 -2
  186. package/dist/collection/components/dropi-tag/dropi-tag.js +1 -1
  187. package/dist/collection/components/dropi-tag-type-product/dropi-tag-type-product.css +14 -0
  188. package/dist/collection/components/dropi-tag-type-product/dropi-tag-type-product.js +48 -0
  189. package/dist/collection/components/dropi-text-area/dropi-text-area.css +6 -2
  190. package/dist/collection/components/dropi-text-area/dropi-text-area.js +87 -32
  191. package/dist/collection/components/dropi-time-line/dropi-time-line.css +2 -2
  192. package/dist/collection/components/dropi-time-line/dropi-time-line.js +1 -1
  193. package/dist/collection/components/dropi-toast/dropi-toast.css +2 -2
  194. package/dist/collection/components/dropi-toast/dropi-toast.js +3 -3
  195. package/dist/collection/components/dropi-tooltip/dropi-tooltip.css +28 -63
  196. package/dist/collection/components/dropi-tooltip/dropi-tooltip.js +11 -88
  197. package/dist/collection/components/dropi-tooltip-v2/dropi-tooltip.css +67 -0
  198. package/dist/collection/components/dropi-tooltip-v2/dropi-tooltip.js +468 -0
  199. package/dist/collection/components/dropi-vertical-steps/dropi-vertical-steps.css +3 -3
  200. package/dist/collection/components/dropi-vertical-steps/dropi-vertical-steps.js +5 -5
  201. package/dist/collection/components/dropi-youtube-lazy-video/dropi-youtube-lazy-video.css +73 -0
  202. package/dist/collection/components/dropi-youtube-lazy-video/dropi-youtube-lazy-video.js +110 -0
  203. package/dist/components/dropi-accordion-item.d.ts +11 -0
  204. package/dist/components/dropi-accordion-item.js +1 -0
  205. package/dist/components/dropi-accordion.js +1 -1
  206. package/dist/components/dropi-alert-legacy.d.ts +11 -0
  207. package/dist/components/dropi-alert-legacy.js +1 -0
  208. package/dist/components/dropi-alert-modal.d.ts +11 -0
  209. package/dist/components/dropi-alert-modal.js +1 -0
  210. package/dist/components/dropi-alert.js +1 -1
  211. package/dist/components/dropi-avatars.js +1 -1
  212. package/dist/components/dropi-badge-legacy.d.ts +11 -0
  213. package/dist/components/dropi-badge-legacy.js +1 -0
  214. package/dist/components/dropi-badge.js +1 -1
  215. package/dist/components/dropi-banner-external.d.ts +11 -0
  216. package/dist/components/dropi-banner-external.js +1 -0
  217. package/dist/components/dropi-breadcrumb.d.ts +11 -0
  218. package/dist/components/dropi-breadcrumb.js +1 -0
  219. package/dist/components/dropi-button.js +1 -1
  220. package/dist/components/dropi-card-checkbox.d.ts +11 -0
  221. package/dist/components/dropi-card-checkbox.js +1 -0
  222. package/dist/components/dropi-card-product.d.ts +11 -0
  223. package/dist/components/dropi-card-product.js +1 -0
  224. package/dist/components/dropi-card-section.js +1 -1
  225. package/dist/components/dropi-carousel.d.ts +11 -0
  226. package/dist/components/dropi-carousel.js +1 -0
  227. package/dist/components/dropi-checkbox-selection-list.js +1 -1
  228. package/dist/components/dropi-checkbox.js +1 -1
  229. package/dist/components/dropi-chips.js +1 -1
  230. package/dist/components/dropi-city-selector.d.ts +11 -0
  231. package/dist/components/dropi-city-selector.js +1 -0
  232. package/dist/components/dropi-color-picker.d.ts +11 -0
  233. package/dist/components/dropi-color-picker.js +1 -0
  234. package/dist/components/dropi-country-flags.d.ts +11 -0
  235. package/dist/components/dropi-country-flags.js +1 -0
  236. package/dist/components/dropi-country-selector.d.ts +11 -0
  237. package/dist/components/dropi-country-selector.js +1 -0
  238. package/dist/components/dropi-date-picker-range.d.ts +11 -0
  239. package/dist/components/dropi-date-picker-range.js +1 -0
  240. package/dist/components/dropi-date-picker.d.ts +11 -0
  241. package/dist/components/dropi-date-picker.js +1 -0
  242. package/dist/components/dropi-drawer.d.ts +11 -0
  243. package/dist/components/dropi-drawer.js +1 -0
  244. package/dist/components/dropi-dropdown.js +1 -1
  245. package/dist/components/dropi-empty-state.js +1 -1
  246. package/dist/components/dropi-favorite-button.js +1 -1
  247. package/dist/components/dropi-file-upload-progress-bar.d.ts +11 -0
  248. package/dist/components/dropi-file-upload-progress-bar.js +1 -0
  249. package/dist/components/dropi-file-upload.d.ts +11 -0
  250. package/dist/components/dropi-file-upload.js +1 -0
  251. package/dist/components/dropi-icon.js +1 -1
  252. package/dist/components/dropi-ilustration-icon.d.ts +11 -0
  253. package/dist/components/dropi-ilustration-icon.js +1 -0
  254. package/dist/components/dropi-image-miniature.js +1 -1
  255. package/dist/components/dropi-image-overlay.js +1 -1
  256. package/dist/components/dropi-input.js +1 -1
  257. package/dist/components/dropi-languages-selector.d.ts +11 -0
  258. package/dist/components/dropi-languages-selector.js +1 -0
  259. package/dist/components/dropi-logo.js +1 -1
  260. package/dist/components/dropi-lottie-loader.js +1 -1
  261. package/dist/components/dropi-media-player.d.ts +11 -0
  262. package/dist/components/dropi-media-player.js +1 -0
  263. package/dist/components/dropi-modal.js +1 -1
  264. package/dist/components/dropi-navbar.d.ts +11 -0
  265. package/dist/components/dropi-navbar.js +1 -0
  266. package/dist/components/dropi-otp-send-code.js +1 -1
  267. package/dist/components/dropi-paginator.js +1 -1
  268. package/dist/components/dropi-phone-input.d.ts +11 -0
  269. package/dist/components/dropi-phone-input.js +1 -0
  270. package/dist/components/dropi-radio-button.js +1 -1
  271. package/dist/components/dropi-radio-selection-list.js +1 -1
  272. package/dist/components/dropi-read-more.js +1 -1
  273. package/dist/components/dropi-search.js +1 -1
  274. package/dist/components/dropi-select.js +1 -1
  275. package/dist/components/dropi-sidebar.d.ts +11 -0
  276. package/dist/components/dropi-sidebar.js +1 -0
  277. package/dist/components/dropi-simple-stepper.js +1 -1
  278. package/dist/components/dropi-skeleton.js +1 -1
  279. package/dist/components/dropi-steps.js +1 -1
  280. package/dist/components/dropi-switch.js +1 -1
  281. package/dist/components/dropi-table.d.ts +11 -0
  282. package/dist/components/dropi-table.js +1 -0
  283. package/dist/components/dropi-tabs.js +1 -1
  284. package/dist/components/dropi-tag-type-product.d.ts +11 -0
  285. package/dist/components/dropi-tag-type-product.js +1 -0
  286. package/dist/components/dropi-tag.js +1 -1
  287. package/dist/components/dropi-text-area.js +1 -1
  288. package/dist/components/dropi-time-line.js +1 -1
  289. package/dist/components/dropi-toast.js +1 -1
  290. package/dist/components/dropi-tooltip-v2.d.ts +11 -0
  291. package/dist/components/dropi-tooltip-v2.js +1 -0
  292. package/dist/components/dropi-tooltip.js +1 -1
  293. package/dist/components/dropi-vertical-steps.js +1 -1
  294. package/dist/components/dropi-youtube-lazy-video.d.ts +11 -0
  295. package/dist/components/dropi-youtube-lazy-video.js +1 -0
  296. package/dist/components/index.js +1 -1
  297. package/dist/components/p-9KLpSviZ.js +1 -0
  298. package/dist/components/p-BVekazGL.js +1 -0
  299. package/dist/components/p-BYRcOZS4.js +1 -0
  300. package/dist/components/p-BuDg1d0S.js +1 -0
  301. package/dist/components/p-C2paYEIp.js +1 -0
  302. package/dist/components/p-CDvkvedb.js +1 -0
  303. package/dist/components/{p-CPs3fHRc.js → p-CnALA9z_.js} +1 -1
  304. package/dist/components/p-CtzCJQVR.js +1 -0
  305. package/dist/components/p-CzHupXu8.js +1 -0
  306. package/dist/components/p-DWzWYR5X.js +1 -0
  307. package/dist/components/p-D_Y7tuEH.js +1 -0
  308. package/dist/components/p-DjO9xpVc.js +1 -0
  309. package/dist/dropi-ui/dropi-ui.esm.js +1 -1
  310. package/dist/dropi-ui/p-0966c363.entry.js +1 -0
  311. package/dist/dropi-ui/p-0c541a53.entry.js +1 -0
  312. package/dist/dropi-ui/p-0cd1fb7a.entry.js +1 -0
  313. package/dist/dropi-ui/p-0f161461.entry.js +1 -0
  314. package/dist/dropi-ui/p-10e363a2.entry.js +1 -0
  315. package/dist/dropi-ui/p-1d4c5364.entry.js +1 -0
  316. package/dist/dropi-ui/p-2e0623ba.entry.js +1 -0
  317. package/dist/dropi-ui/p-2e4efb72.entry.js +1 -0
  318. package/dist/dropi-ui/p-36cdd4fc.entry.js +1 -0
  319. package/dist/dropi-ui/{p-c2316d4d.entry.js → p-37c86c74.entry.js} +1 -1
  320. package/dist/dropi-ui/p-392654b7.entry.js +1 -0
  321. package/dist/dropi-ui/p-39904430.entry.js +1 -0
  322. package/dist/dropi-ui/p-3a3b778f.entry.js +1 -0
  323. package/dist/dropi-ui/p-3cbe953f.entry.js +1 -0
  324. package/dist/dropi-ui/p-40b69ccd.entry.js +1 -0
  325. package/dist/dropi-ui/p-443ed5bd.entry.js +1 -0
  326. package/dist/dropi-ui/p-475a16f2.entry.js +1 -0
  327. package/dist/dropi-ui/p-4967b619.entry.js +1 -0
  328. package/dist/dropi-ui/p-4de83790.entry.js +1 -0
  329. package/dist/dropi-ui/p-59188dd5.entry.js +1 -0
  330. package/dist/dropi-ui/p-6178190b.entry.js +1 -0
  331. package/dist/dropi-ui/p-623759eb.entry.js +1 -0
  332. package/dist/dropi-ui/p-645da978.entry.js +1 -0
  333. package/dist/dropi-ui/p-6e727fb0.entry.js +1 -0
  334. package/dist/dropi-ui/p-7036c073.entry.js +1 -0
  335. package/dist/dropi-ui/p-710312bd.entry.js +1 -0
  336. package/dist/dropi-ui/p-74dfe8d1.entry.js +1 -0
  337. package/dist/dropi-ui/p-770afae3.entry.js +1 -0
  338. package/dist/dropi-ui/p-7c0bc6dd.entry.js +1 -0
  339. package/dist/dropi-ui/p-7f8d3642.entry.js +1 -0
  340. package/dist/dropi-ui/p-7fc02d98.entry.js +1 -0
  341. package/dist/dropi-ui/p-8188cca4.entry.js +1 -0
  342. package/dist/dropi-ui/p-858bedcf.entry.js +1 -0
  343. package/dist/dropi-ui/p-87e9ba6d.entry.js +1 -0
  344. package/dist/dropi-ui/p-8b4d4d2d.entry.js +1 -0
  345. package/dist/dropi-ui/p-9062f0de.entry.js +1 -0
  346. package/dist/dropi-ui/p-925852b1.entry.js +1 -0
  347. package/dist/dropi-ui/{p-724a2aea.entry.js → p-99943b7d.entry.js} +1 -1
  348. package/dist/dropi-ui/p-TXz_09YZ.js +2 -0
  349. package/dist/dropi-ui/p-a1f2383d.entry.js +1 -0
  350. package/dist/dropi-ui/p-a6939701.entry.js +1 -0
  351. package/dist/dropi-ui/p-aa8d2aec.entry.js +1 -0
  352. package/dist/dropi-ui/p-aafaffa3.entry.js +1 -0
  353. package/dist/dropi-ui/{p-30fdd316.entry.js → p-ac345a0e.entry.js} +1 -1
  354. package/dist/dropi-ui/p-acfa17ef.entry.js +1 -0
  355. package/dist/dropi-ui/p-af3691a0.entry.js +1 -0
  356. package/dist/dropi-ui/p-b207fc92.entry.js +1 -0
  357. package/dist/dropi-ui/p-ba3ad28e.entry.js +1 -0
  358. package/dist/dropi-ui/p-bd0ffb4a.entry.js +1 -0
  359. package/dist/dropi-ui/p-c2e96728.entry.js +1 -0
  360. package/dist/dropi-ui/p-c664f99f.entry.js +1 -0
  361. package/dist/dropi-ui/p-c7e3a5e0.entry.js +1 -0
  362. package/dist/dropi-ui/{p-061e1ad4.entry.js → p-cfc19ca0.entry.js} +1 -1
  363. package/dist/dropi-ui/p-d36a0c37.entry.js +1 -0
  364. package/dist/dropi-ui/p-dd4c6b40.entry.js +1 -0
  365. package/dist/dropi-ui/p-e0351b61.entry.js +1 -0
  366. package/dist/dropi-ui/p-e2361547.entry.js +1 -0
  367. package/dist/dropi-ui/p-e25b2680.entry.js +1 -0
  368. package/dist/dropi-ui/p-e6943d7c.entry.js +1 -0
  369. package/dist/dropi-ui/p-e7b59811.entry.js +1 -0
  370. package/dist/dropi-ui/p-eac7777f.entry.js +1 -0
  371. package/dist/dropi-ui/p-ed94b5fe.entry.js +1 -0
  372. package/dist/dropi-ui/p-f0ddf569.entry.js +1 -0
  373. package/dist/dropi-ui/p-f95c11f8.entry.js +1 -0
  374. package/dist/esm/dropi-accordion-item.entry.js +52 -0
  375. package/dist/esm/dropi-accordion.entry.js +5 -39
  376. package/dist/esm/dropi-alert-legacy.entry.js +37 -0
  377. package/dist/esm/dropi-alert-modal.entry.js +126 -0
  378. package/dist/esm/dropi-alert.entry.js +21 -15
  379. package/dist/esm/dropi-avatars.entry.js +3 -3
  380. package/dist/esm/dropi-badge-legacy.entry.js +28 -0
  381. package/dist/esm/dropi-badge.entry.js +4 -4
  382. package/dist/esm/dropi-banner-external.entry.js +51 -0
  383. package/dist/esm/dropi-breadcrumb.entry.js +46 -0
  384. package/dist/esm/dropi-button.entry.js +13 -7
  385. package/dist/esm/dropi-card-checkbox.entry.js +46 -0
  386. package/dist/esm/dropi-card-product.entry.js +74 -0
  387. package/dist/esm/dropi-card-section.entry.js +17 -17
  388. package/dist/esm/dropi-carousel.entry.js +146 -0
  389. package/dist/esm/dropi-checkbox-selection-list.entry.js +17 -15
  390. package/dist/esm/dropi-checkbox.entry.js +6 -6
  391. package/dist/esm/dropi-chips.entry.js +9 -9
  392. package/dist/esm/dropi-city-selector.entry.js +94 -0
  393. package/dist/esm/dropi-color-picker.entry.js +317 -0
  394. package/dist/esm/dropi-country-flags.entry.js +35 -0
  395. package/dist/esm/dropi-country-selector.entry.js +195 -0
  396. package/dist/esm/dropi-date-picker-range.entry.js +113 -0
  397. package/dist/esm/dropi-date-picker.entry.js +221 -0
  398. package/dist/esm/dropi-drawer.entry.js +74 -0
  399. package/dist/esm/dropi-dropdown.entry.js +22 -15
  400. package/dist/esm/dropi-empty-state.entry.js +16 -15
  401. package/dist/esm/dropi-favorite-button.entry.js +5 -5
  402. package/dist/esm/dropi-file-upload-progress-bar.entry.js +73 -0
  403. package/dist/esm/dropi-file-upload.entry.js +234 -0
  404. package/dist/esm/dropi-icon.entry.js +2 -2
  405. package/dist/esm/dropi-ilustration-icon.entry.js +37 -0
  406. package/dist/esm/dropi-image-miniature.entry.js +3 -3
  407. package/dist/esm/dropi-image-overlay.entry.js +4 -4
  408. package/dist/esm/dropi-input_3.entry.js +386 -0
  409. package/dist/esm/dropi-languages-selector.entry.js +55 -0
  410. package/dist/esm/dropi-logo.entry.js +3 -3
  411. package/dist/esm/dropi-lottie-loader.entry.js +7 -7
  412. package/dist/esm/dropi-media-player.entry.js +187 -0
  413. package/dist/esm/dropi-modal.entry.js +36 -14
  414. package/dist/esm/dropi-navbar.entry.js +52 -0
  415. package/dist/esm/dropi-otp-send-code.entry.js +10 -10
  416. package/dist/esm/dropi-phone-input.entry.js +195 -0
  417. package/dist/esm/dropi-radio-button.entry.js +7 -7
  418. package/dist/esm/dropi-radio-selection-list.entry.js +17 -13
  419. package/dist/esm/dropi-read-more.entry.js +8 -4
  420. package/dist/esm/dropi-search.entry.js +52 -38
  421. package/dist/esm/dropi-select.entry.js +98 -55
  422. package/dist/esm/dropi-sidebar.entry.js +76 -0
  423. package/dist/esm/dropi-simple-stepper.entry.js +8 -6
  424. package/dist/esm/dropi-skeleton.entry.js +16 -6
  425. package/dist/esm/dropi-steps.entry.js +6 -4
  426. package/dist/esm/dropi-switch.entry.js +5 -5
  427. package/dist/esm/dropi-table.entry.js +290 -0
  428. package/dist/esm/dropi-tabs.entry.js +13 -11
  429. package/dist/esm/dropi-tag-type-product.entry.js +17 -0
  430. package/dist/esm/dropi-text-area.entry.js +49 -18
  431. package/dist/esm/dropi-time-line.entry.js +3 -3
  432. package/dist/esm/dropi-toast.entry.js +4 -4
  433. package/dist/esm/dropi-tooltip-v2.entry.js +129 -0
  434. package/dist/esm/dropi-tooltip.entry.js +5 -26
  435. package/dist/esm/dropi-ui.js +3 -3
  436. package/dist/esm/dropi-vertical-steps.entry.js +6 -6
  437. package/dist/esm/dropi-youtube-lazy-video.entry.js +31 -0
  438. package/dist/esm/{index-Twbb5MNM.js → index-TXz_09YZ.js} +6 -3
  439. package/dist/esm/loader.js +3 -3
  440. package/dist/types/components/dropi-accordion/dropi-accordion-item.d.ts +24 -0
  441. package/dist/types/components/dropi-accordion/dropi-accordion.d.ts +3 -23
  442. package/dist/types/components/dropi-alert/dropi-alert.d.ts +9 -3
  443. package/dist/types/components/dropi-alert-legacy/dropi-alert-legacy.d.ts +18 -0
  444. package/dist/types/components/dropi-alert-modal/dropi-alert-modal.d.ts +66 -0
  445. package/dist/types/components/dropi-badge-legacy/dropi-badge-legacy.d.ts +15 -0
  446. package/dist/types/components/dropi-banner-external/dropi-banner-external.d.ts +36 -0
  447. package/dist/types/components/dropi-breadcrumb/dropi-breadcrumb.d.ts +31 -0
  448. package/dist/types/components/dropi-button/dropi-button.d.ts +6 -2
  449. package/dist/types/components/dropi-card-checkbox/dropi-card-checkbox.d.ts +34 -0
  450. package/dist/types/components/dropi-card-product/dropi-card-product.d.ts +43 -0
  451. package/dist/types/components/dropi-card-section/dropi-card-section.d.ts +5 -5
  452. package/dist/types/components/dropi-carousel/dropi-carousel.d.ts +44 -0
  453. package/dist/types/components/dropi-checkbox/dropi-checkbox.d.ts +1 -1
  454. package/dist/types/components/dropi-checkbox-selection-list/dropi-checkbox-selection-list.d.ts +7 -5
  455. package/dist/types/components/dropi-chips/dropi-chips.d.ts +4 -4
  456. package/dist/types/components/dropi-city-selector/dropi-city-selector.d.ts +48 -0
  457. package/dist/types/components/dropi-color-picker/dropi-color-picker.d.ts +56 -0
  458. package/dist/types/components/dropi-country-flags/dropi-country-flags.d.ts +19 -0
  459. package/dist/types/components/dropi-country-selector/dropi-country-selector.d.ts +50 -0
  460. package/dist/types/components/dropi-date-picker/dropi-date-picker.d.ts +55 -0
  461. package/dist/types/components/dropi-date-picker-range/dropi-date-picker-range.d.ts +50 -0
  462. package/dist/types/components/dropi-drawer/dropi-drawer.d.ts +31 -0
  463. package/dist/types/components/dropi-dropdown/dropi-dropdown.d.ts +12 -6
  464. package/dist/types/components/dropi-empty-state/dropi-empty-state.d.ts +12 -10
  465. package/dist/types/components/dropi-favorite-button/dropi-favorite-button.d.ts +1 -1
  466. package/dist/types/components/dropi-file-upload/dropi-file-upload.d.ts +76 -0
  467. package/dist/types/components/dropi-file-upload-progress-bar/dropi-file-upload-progress-bar.d.ts +33 -0
  468. package/dist/types/components/dropi-ilustration-icon/dropi-ilustration-icon.d.ts +24 -0
  469. package/dist/types/components/dropi-input/dropi-input.d.ts +28 -18
  470. package/dist/types/components/dropi-languages-selector/dropi-languages-selector.d.ts +31 -0
  471. package/dist/types/components/dropi-lottie-loader/dropi-lottie-loader.d.ts +1 -1
  472. package/dist/types/components/dropi-media-player/dropi-media-player.d.ts +51 -0
  473. package/dist/types/components/dropi-modal/dropi-modal.d.ts +22 -3
  474. package/dist/types/components/dropi-navbar/dropi-navbar.d.ts +42 -0
  475. package/dist/types/components/dropi-otp-send-code/dropi-otp-send-code.d.ts +1 -1
  476. package/dist/types/components/dropi-paginator/dropi-paginator.d.ts +10 -20
  477. package/dist/types/components/dropi-phone-input/dropi-phone-input.d.ts +49 -0
  478. package/dist/types/components/dropi-radio-button/dropi-radio-button.d.ts +2 -2
  479. package/dist/types/components/dropi-radio-selection-list/dropi-radio-selection-list.d.ts +11 -4
  480. package/dist/types/components/dropi-read-more/dropi-read-more.d.ts +4 -0
  481. package/dist/types/components/dropi-search/dropi-search.d.ts +24 -12
  482. package/dist/types/components/dropi-select/dropi-select.d.ts +26 -15
  483. package/dist/types/components/dropi-sidebar/dropi-sidebar.d.ts +41 -0
  484. package/dist/types/components/dropi-simple-stepper/dropi-simple-stepper.d.ts +2 -0
  485. package/dist/types/components/dropi-skeleton/dropi-skeleton.d.ts +4 -1
  486. package/dist/types/components/dropi-steps/dropi-steps.d.ts +3 -0
  487. package/dist/types/components/dropi-switch/dropi-switch.d.ts +1 -1
  488. package/dist/types/components/dropi-table/dropi-table.d.ts +131 -0
  489. package/dist/types/components/dropi-tabs/dropi-tabs.d.ts +5 -3
  490. package/dist/types/components/dropi-tag-type-product/dropi-tag-type-product.d.ts +9 -0
  491. package/dist/types/components/dropi-text-area/dropi-text-area.d.ts +27 -6
  492. package/dist/types/components/dropi-tooltip/dropi-tooltip.d.ts +3 -17
  493. package/dist/types/components/dropi-tooltip-v2/dropi-tooltip.d.ts +59 -0
  494. package/dist/types/components/dropi-vertical-steps/dropi-vertical-steps.d.ts +1 -1
  495. package/dist/types/components/dropi-youtube-lazy-video/dropi-youtube-lazy-video.d.ts +19 -0
  496. package/dist/types/components.d.ts +4694 -688
  497. package/dist/types/index.d.ts +1 -0
  498. package/package.json +25 -3
  499. package/readme.md +56 -7
  500. package/scripts/setup.js +121 -23
  501. package/skills/install-dropi-ui/skill.md +15 -10
  502. package/dist/cjs/dropi-input.cjs.entry.js +0 -210
  503. package/dist/cjs/dropi-paginator.cjs.entry.js +0 -91
  504. package/dist/cjs/dropi-tag.cjs.entry.js +0 -68
  505. package/dist/components/p-DKXrREI4.js +0 -1
  506. package/dist/components/p-Ds74ZOlC.js +0 -1
  507. package/dist/components/p-WZTFyFH2.js +0 -1
  508. package/dist/dropi-ui/p-0c13dded.entry.js +0 -1
  509. package/dist/dropi-ui/p-121c8a09.entry.js +0 -1
  510. package/dist/dropi-ui/p-291a1416.entry.js +0 -1
  511. package/dist/dropi-ui/p-2cee44f9.entry.js +0 -1
  512. package/dist/dropi-ui/p-3537ee5a.entry.js +0 -1
  513. package/dist/dropi-ui/p-3d859657.entry.js +0 -1
  514. package/dist/dropi-ui/p-433d161d.entry.js +0 -1
  515. package/dist/dropi-ui/p-4bdfad16.entry.js +0 -1
  516. package/dist/dropi-ui/p-4ea7d3a7.entry.js +0 -1
  517. package/dist/dropi-ui/p-51c8ef68.entry.js +0 -1
  518. package/dist/dropi-ui/p-54780c90.entry.js +0 -1
  519. package/dist/dropi-ui/p-66deb85e.entry.js +0 -1
  520. package/dist/dropi-ui/p-68f81080.entry.js +0 -1
  521. package/dist/dropi-ui/p-74c37688.entry.js +0 -1
  522. package/dist/dropi-ui/p-7cec1cea.entry.js +0 -1
  523. package/dist/dropi-ui/p-7daa2677.entry.js +0 -1
  524. package/dist/dropi-ui/p-8906a68d.entry.js +0 -1
  525. package/dist/dropi-ui/p-Twbb5MNM.js +0 -2
  526. package/dist/dropi-ui/p-a4204ece.entry.js +0 -1
  527. package/dist/dropi-ui/p-a5650d8f.entry.js +0 -1
  528. package/dist/dropi-ui/p-a9116dbe.entry.js +0 -1
  529. package/dist/dropi-ui/p-b0d3442e.entry.js +0 -1
  530. package/dist/dropi-ui/p-b36b819f.entry.js +0 -1
  531. package/dist/dropi-ui/p-c10cbb8d.entry.js +0 -1
  532. package/dist/dropi-ui/p-cb5fd7a9.entry.js +0 -1
  533. package/dist/dropi-ui/p-d1e1b716.entry.js +0 -1
  534. package/dist/dropi-ui/p-d5ecc394.entry.js +0 -1
  535. package/dist/dropi-ui/p-db6c9828.entry.js +0 -1
  536. package/dist/dropi-ui/p-e721127d.entry.js +0 -1
  537. package/dist/dropi-ui/p-e8557da0.entry.js +0 -1
  538. package/dist/dropi-ui/p-ebfd4665.entry.js +0 -1
  539. package/dist/dropi-ui/p-f3cef35a.entry.js +0 -1
  540. package/dist/dropi-ui/p-f6a69c4e.entry.js +0 -1
  541. package/dist/dropi-ui/p-ff45e7c8.entry.js +0 -1
  542. package/dist/esm/dropi-input.entry.js +0 -208
  543. package/dist/esm/dropi-paginator.entry.js +0 -89
  544. package/dist/esm/dropi-tag.entry.js +0 -66
@@ -0,0 +1,516 @@
1
+ import { h } from "@stencil/core";
2
+ /**
3
+ * @component dropi-file-upload
4
+ * Componente de carga de archivos con zona de drop, lista de archivos,
5
+ * vista card y grid. API idéntica al componente Angular del core.
6
+ */
7
+ export class DropiFileUpload {
8
+ /** Título mostrado arriba del componente */
9
+ title = '';
10
+ /** Subtítulo informativo */
11
+ label = '';
12
+ /** Texto dentro de la zona de drop */
13
+ textDropZone = 'Arrastra o sube una imagen aquí';
14
+ /** Texto del botón de selección */
15
+ textButton = 'Seleccionar Imagen';
16
+ /** Tipo de preview: card (lista) o grid (miniaturas) */
17
+ previewType = 'card';
18
+ /** Permitir múltiples archivos */
19
+ multiple = false;
20
+ /** Límite de archivos */
21
+ maxFiles = 1;
22
+ /** Tamaño máximo por archivo en MB */
23
+ maxFileSizeMB = 10;
24
+ /** Tipos aceptados (ej: "image/*,application/pdf") */
25
+ accept = '';
26
+ /** Solo vista — sin eliminar */
27
+ onlyView = false;
28
+ /** Mostrar drop-zone cuando ya hay archivos (modo grid) */
29
+ viewDragAndDrop = false;
30
+ /** Tamaño del drop zone */
31
+ dragAndDropSize = 'default';
32
+ selectedFiles = [];
33
+ error = false;
34
+ errorMessage = '';
35
+ dragging = false;
36
+ /** Emite los File[] cada vez que cambia la selección (el host maneja la subida) */
37
+ uploadedUrlsChange;
38
+ inputRef;
39
+ dragCounter = 0;
40
+ // ─── helpers ──────────────────────────────────────────────────────────────
41
+ generateId(file) {
42
+ if (typeof crypto !== 'undefined' && 'randomUUID' in crypto) {
43
+ return `${file.name}-${crypto.randomUUID()}`;
44
+ }
45
+ return `${file.name}-${Date.now()}-${Math.floor(Math.random() * 1_000_000)}`;
46
+ }
47
+ getFileType(file) {
48
+ return file.type.startsWith('image/') ? 'image' : 'document';
49
+ }
50
+ getTypeView(file) {
51
+ return file.type.startsWith('image/') && this.previewType === 'grid' ? 'grid' : 'card';
52
+ }
53
+ getFileTypeClass(item) {
54
+ if (!item.file)
55
+ return 'generic';
56
+ const t = item.file.type;
57
+ if (t.includes('pdf'))
58
+ return 'pdf';
59
+ if (t.startsWith('image/'))
60
+ return 'image';
61
+ return 'generic';
62
+ }
63
+ isDropZoneHidden() {
64
+ return this.previewType === 'grid' && (!this.viewDragAndDrop || this.selectedFiles.length > 0);
65
+ }
66
+ generatePreviewUrl(file) {
67
+ return new Promise((resolve) => {
68
+ const reader = new FileReader();
69
+ reader.readAsDataURL(file);
70
+ reader.onload = () => resolve(reader.result);
71
+ reader.onerror = () => resolve('');
72
+ });
73
+ }
74
+ syncFileItem(id, changes) {
75
+ const idx = this.selectedFiles.findIndex(f => f.id === id);
76
+ if (idx === -1)
77
+ return;
78
+ const updated = { ...this.selectedFiles[idx], ...changes };
79
+ this.selectedFiles = [
80
+ ...this.selectedFiles.slice(0, idx),
81
+ updated,
82
+ ...this.selectedFiles.slice(idx + 1),
83
+ ];
84
+ }
85
+ emitFiles() {
86
+ const files = this.selectedFiles
87
+ .filter(f => f.state === 'complete' && f.file)
88
+ .map(f => f.file);
89
+ this.uploadedUrlsChange.emit(files);
90
+ }
91
+ // ─── file handling ────────────────────────────────────────────────────────
92
+ async handleFiles(files) {
93
+ this.error = false;
94
+ if (files.length + this.selectedFiles.length > this.maxFiles) {
95
+ this.error = true;
96
+ this.errorMessage = `Máximo ${this.maxFiles} archivo(s) permitido(s)`;
97
+ return;
98
+ }
99
+ for (const file of files) {
100
+ if (file.size > this.maxFileSizeMB * 1024 * 1024) {
101
+ this.error = true;
102
+ this.errorMessage = `"${file.name}" supera el tamaño máximo de ${this.maxFileSizeMB}MB`;
103
+ continue;
104
+ }
105
+ const item = {
106
+ id: this.generateId(file),
107
+ file,
108
+ progress: 0,
109
+ state: 'uploading',
110
+ fileType: this.getFileType(file),
111
+ typeView: this.getTypeView(file),
112
+ };
113
+ this.selectedFiles = [...this.selectedFiles, item];
114
+ // Simulate progress then complete (host handles actual upload)
115
+ this.simulateProgress(item.id);
116
+ if (item.fileType === 'image') {
117
+ const url = await this.generatePreviewUrl(file);
118
+ this.syncFileItem(item.id, { previewUrl: url });
119
+ }
120
+ }
121
+ }
122
+ simulateProgress(id) {
123
+ let prog = 0;
124
+ const interval = setInterval(() => {
125
+ prog += Math.floor(Math.random() * 20) + 10;
126
+ if (prog >= 100) {
127
+ prog = 100;
128
+ clearInterval(interval);
129
+ this.syncFileItem(id, { progress: 100, state: 'complete' });
130
+ this.emitFiles();
131
+ }
132
+ else {
133
+ this.syncFileItem(id, { progress: prog });
134
+ }
135
+ }, 150);
136
+ }
137
+ handleFileAction(item, type) {
138
+ if (item.state === 'error') {
139
+ this.selectedFiles = this.selectedFiles.filter(f => f.id !== item.id);
140
+ this.emitFiles();
141
+ return;
142
+ }
143
+ switch (type) {
144
+ case 'delete':
145
+ this.syncFileItem(item.id, { state: 'confirm-delete' });
146
+ break;
147
+ case 'confirm-delete':
148
+ this.syncFileItem(item.id, { state: 'deleting' });
149
+ setTimeout(() => {
150
+ this.selectedFiles = this.selectedFiles.filter(f => f.id !== item.id);
151
+ this.emitFiles();
152
+ }, 400);
153
+ break;
154
+ case 'cancel-delete':
155
+ this.syncFileItem(item.id, { state: 'complete' });
156
+ break;
157
+ }
158
+ }
159
+ // ─── DOM events ───────────────────────────────────────────────────────────
160
+ onDragOver(e) {
161
+ e.preventDefault();
162
+ this.dragging = true;
163
+ }
164
+ onDragEnter(e) {
165
+ e.preventDefault();
166
+ this.dragCounter++;
167
+ this.dragging = true;
168
+ }
169
+ onDragLeave() {
170
+ this.dragCounter--;
171
+ if (this.dragCounter <= 0) {
172
+ this.dragCounter = 0;
173
+ this.dragging = false;
174
+ }
175
+ }
176
+ onDrop(e) {
177
+ e.preventDefault();
178
+ this.dragging = false;
179
+ this.dragCounter = 0;
180
+ const files = Array.from(e.dataTransfer?.files ?? []);
181
+ if (files.length)
182
+ this.handleFiles(files);
183
+ }
184
+ onInputChange(e) {
185
+ const input = e.target;
186
+ const files = Array.from(input.files ?? []);
187
+ input.value = '';
188
+ if (files.length)
189
+ this.handleFiles(files);
190
+ }
191
+ openFilePicker() {
192
+ this.inputRef?.click();
193
+ }
194
+ addImage() {
195
+ this.inputRef?.click();
196
+ }
197
+ // ─── render helpers ───────────────────────────────────────────────────────
198
+ renderCheckSvg() {
199
+ return (h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "12", height: "12", viewBox: "0 0 12 12", fill: "none" }, h("g", { "clip-path": "url(#ck)" }, h("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" })), h("defs", null, h("clipPath", { id: "ck" }, h("rect", { width: "12", height: "12", fill: "white" })))));
200
+ }
201
+ renderTrashSvg() {
202
+ return (h("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("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" }), h("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" }), h("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" })));
203
+ }
204
+ renderTrashGridSvg() {
205
+ return (h("svg", { width: "32", height: "32", viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("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" }), h("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" }), h("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" }), h("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" }), h("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" })));
206
+ }
207
+ renderPdfSvg() {
208
+ return (h("svg", { class: "icon-pdf", width: "34", height: "34", viewBox: "0 0 34 34", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("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" }), h("g", { "clip-path": "url(#pdf)" }, h("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" })), h("defs", null, h("clipPath", { id: "pdf" }, h("rect", { width: "20", height: "20", fill: "white", transform: "translate(7.5 6.5)" })))));
209
+ }
210
+ renderDocSvg() {
211
+ return (h("svg", { class: "icon-default", width: "34", height: "34", viewBox: "0 0 34 34", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("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" }), h("g", { "clip-path": "url(#doc)" }, h("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" })), h("defs", null, h("clipPath", { id: "doc" }, h("rect", { width: "20", height: "20", fill: "white", transform: "translate(7 7)" })))));
212
+ }
213
+ renderCardItem(item) {
214
+ const isImage = item.fileType === 'image' && item.previewUrl && !item.previewUrl.includes('.pdf');
215
+ const isPdf = item.file?.type?.includes('pdf');
216
+ return (h("div", { key: item.id, class: `file-card ${item.state} ${this.getFileTypeClass(item)}` }, isImage ? (h("div", { class: "preview-wrapper" }, h("img", { class: `preview ${item.state}`, src: item.previewUrl, alt: item.file?.name }), item.state === 'complete' && (h("div", { class: "overlay-icon" }, this.renderCheckSvg())))) : (h("div", { class: "file-icon" }, isPdf ? this.renderPdfSvg() : this.renderDocSvg())), item.state !== 'confirm-delete' && item.state !== 'deleting' && (h("div", { class: "info-container" }, h("div", { class: `file-name${item.state === 'error' ? ' error-text' : ''}` }, item.file?.name ?? item.previewUrl?.split('/').pop()), item.state === 'uploading' && (h("div", { class: "progress-bar-container" }, h("div", { class: "progress-bar", style: { width: `${item.progress}%` } }))), item.state === 'error' && (h("div", { class: "error-label" }, "Error al subir el archivo")))), item.state === 'deleting' && (h("div", { class: "deleting-container" }, h("span", { class: "deleting-label" }, "Eliminando..."))), item.state !== 'confirm-delete' && item.state !== 'error' && item.state !== 'deleting' && (h("div", { class: "preview-image", onClick: () => { } }, h("dropi-icon", { name: "Eye", width: "20px", height: "20px", color: "Gray-Gray-600" }))), item.state !== 'confirm-delete' && item.state !== 'deleting' && !this.onlyView && (h("div", { class: "delete", onClick: () => this.handleFileAction(item, 'delete') }, this.renderTrashSvg())), item.state === 'confirm-delete' && (h("div", { class: "delete-confirm" }, h("span", { class: "message" }, item.previewUrl ? '¿Eliminar imagen?' : '¿Eliminar archivo?'), h("div", { class: "actions" }, h("dropi-button", { size: "small", text: "S\u00ED", onClick: () => this.handleFileAction(item, 'confirm-delete') }), h("dropi-button", { text: "No", size: "small", severity: "secondary", onClick: () => this.handleFileAction(item, 'cancel-delete') }))))));
217
+ }
218
+ renderGridItem(item) {
219
+ return (h("div", { key: item.id, class: `img-view ${item.state} ${this.getFileTypeClass(item)}` }, h("div", { class: "preview-wrapper" }, h("div", { class: "preview-container" }, h("img", { class: `preview ${item.state}`, src: item.previewUrl || '', alt: "preview" })), item.state === 'complete' && (h("div", { class: "overlay-icon" }, this.renderCheckSvg())), item.state !== 'confirm-delete' && item.state !== 'deleting' && (h("div", { class: "delete", onClick: () => this.handleFileAction(item, 'confirm-delete') }, this.renderTrashGridSvg()))), item.state === 'uploading' && (h("div", { class: "progress-bar-container" }, h("div", { class: "progress-bar", style: { width: `${item.progress}%` } }))), item.state === 'deleting' && (h("div", { class: "deleting-info" }, h("span", { class: "deleting-info-label" }, "Eliminando...")))));
220
+ }
221
+ // ─── render ───────────────────────────────────────────────────────────────
222
+ render() {
223
+ const gridFiles = this.selectedFiles.filter(f => f.typeView === 'grid');
224
+ const cardFiles = this.selectedFiles.filter(f => f.typeView === 'card');
225
+ const showDropZone = this.selectedFiles.length < this.maxFiles && !this.isDropZoneHidden();
226
+ const isSmall = this.dragAndDropSize === 'small';
227
+ return (h("div", { key: '2dfd80fee893a317c26bbe8671500a5b1d15d3db', class: "upload-container" }, (this.title || this.label) && (h("div", { key: '5147abfc1b414dc999827cc0551abbaea5ae9add', class: "upload-header" }, this.title && h("div", { key: '3430b1e057fed5cb5efae23c3dca9fbcb9a0b99c', class: "text title" }, this.title), this.label && h("div", { key: 'ee771d257191f7009b90e6ee695b0a6d1bcd258c', class: "text label" }, this.label))), this.error && (h("dropi-alert", { key: '3462db9b80cf8654b9d87d4c67cbf70cd23a93c5', message: this.errorMessage, type: "default", state: "error", dismissable: true, showButton: false, onOnClose: () => { this.error = false; } })), showDropZone && (h("div", { key: '108de9cf28010626cfef7ca95c5ce94eff60f58f', class: { 'file-upload': true, 'drag-over': this.dragging }, onDragOver: (e) => this.onDragOver(e), onDragEnter: (e) => this.onDragEnter(e), onDragLeave: () => this.onDragLeave(), onDrop: (e) => this.onDrop(e) }, h("div", { key: 'b50eaf3b36aa3841b4d630dfd352fb630eb7ad7d', class: `file-upload__zone${this.dragging ? ' drag-over' : ''}` }, !isSmall && (h("svg", { key: '3518cedda9e7a3da9070f85e19631caf3a9366b4', width: "40", height: "40", viewBox: "0 0 40 40", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: 'db6d8555c1cf5355a0097153daca459e323ca7f0', 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" }), h("g", { key: '3096ed9f9cc05868e273ebdcd6b39d06661542d3', "clip-path": "url(#up)" }, h("path", { key: '784209ce8eb7bac630880b7a88b98fa8768d2d99', 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" }), h("path", { key: '8efd64b9a2c6638f56a2bbb9cdde79c7db982f09', 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" })), h("defs", { key: 'b67e444800944eae04435255a107d3ab509936c1' }, h("clipPath", { key: '05f503275f267808e7f21d3fafe4c08c466dbe15', id: "up" }, h("rect", { key: '0f0451a4f11f3b49668c1a3fa39cd0a29af01fd1', width: "16", height: "16", fill: "white", transform: "translate(12 12)" }))))), h("div", { key: '67011562c56c0d07f57c972a3ec379d50ac48a8f', class: isSmall ? 'info size-small-upload' : 'info' }, h("div", { key: 'f10847ee073a515a8048f661e67d65dd0aff063c', class: "title" }, this.textDropZone), isSmall && (h("dropi-button", { key: 'ffd1b1f634b7d789443751adc28ae0ac470f6426', text: this.textButton, size: "small", onClick: (e) => { e.stopPropagation(); this.openFilePicker(); } }))), !isSmall && (h("div", { key: 'db056a49e14ef084e610cfb893d89d28a2d6223e', class: "info-desc" }, this.accept && h("div", { key: '703d87d4b9d753dc9c4fc956ec5ee6b4ca75a74b', class: "description" }, "Formatos admitidos: ", this.accept), h("div", { key: 'e26564db9269d1b3f731e9c3752a9167d09eae74', class: "description" }, "Tama\u00F1o m\u00E1ximo: ", this.maxFileSizeMB, "MB"))), !isSmall && (h("dropi-button", { key: '2da2b5538f1e4ee2600c76bee718cc69c34c9515', text: this.textButton, size: "small", onClick: (e) => { e.stopPropagation(); this.openFilePicker(); } })), h("input", { key: '2101abff84a450f18f4d0c667224a991fc828129', ref: (el) => this.inputRef = el, type: "file", accept: this.accept, multiple: this.multiple, class: "upload-hidden", onChange: (e) => this.onInputChange(e) })))), this.selectedFiles.length > 0 && (h("div", { key: 'b362e2d1ca65dd629ba4197e60299dc2efa88e42', class: "files-container" }, gridFiles.length > 0 && (h("div", { key: 'a569173a92e99250d2bed7f8756b6d023e225ea8', class: "grid-list" }, gridFiles.map(f => this.renderGridItem(f)), gridFiles.length < this.maxFiles && (h("div", { key: '22f1c199a6418821b70d258e23a5ac584a2ca4d5', class: "add-img", onClick: () => this.addImage() }, h("div", { key: '7726070557ea65f28c3e1cb130df23b27f150393', class: "icon" }, h("svg", { key: '8b614d44498ec26b93ce3d85f7a8535d8d31d305', width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: '028ec6428eed1a464d061940ade23f2eaff8bf1a', 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" }))), h("div", { key: '3967629d0f6831a4b15897ad6ed144317e21681e', class: "text" }, "Agregar"))))), cardFiles.length > 0 && (h("div", { key: '58f020b2691f64b5931cd0ebbdfcfee160c5d474', class: "card-list" }, cardFiles.map(f => this.renderCardItem(f))))))));
228
+ }
229
+ static get is() { return "dropi-file-upload"; }
230
+ static get encapsulation() { return "shadow"; }
231
+ static get originalStyleUrls() {
232
+ return {
233
+ "$": ["dropi-file-upload.css"]
234
+ };
235
+ }
236
+ static get styleUrls() {
237
+ return {
238
+ "$": ["dropi-file-upload.css"]
239
+ };
240
+ }
241
+ static get properties() {
242
+ return {
243
+ "title": {
244
+ "type": "string",
245
+ "mutable": false,
246
+ "complexType": {
247
+ "original": "string",
248
+ "resolved": "string",
249
+ "references": {}
250
+ },
251
+ "required": false,
252
+ "optional": false,
253
+ "docs": {
254
+ "tags": [],
255
+ "text": "T\u00EDtulo mostrado arriba del componente"
256
+ },
257
+ "getter": false,
258
+ "setter": false,
259
+ "reflect": false,
260
+ "attribute": "title",
261
+ "defaultValue": "''"
262
+ },
263
+ "label": {
264
+ "type": "string",
265
+ "mutable": false,
266
+ "complexType": {
267
+ "original": "string",
268
+ "resolved": "string",
269
+ "references": {}
270
+ },
271
+ "required": false,
272
+ "optional": false,
273
+ "docs": {
274
+ "tags": [],
275
+ "text": "Subt\u00EDtulo informativo"
276
+ },
277
+ "getter": false,
278
+ "setter": false,
279
+ "reflect": false,
280
+ "attribute": "label",
281
+ "defaultValue": "''"
282
+ },
283
+ "textDropZone": {
284
+ "type": "string",
285
+ "mutable": false,
286
+ "complexType": {
287
+ "original": "string",
288
+ "resolved": "string",
289
+ "references": {}
290
+ },
291
+ "required": false,
292
+ "optional": false,
293
+ "docs": {
294
+ "tags": [],
295
+ "text": "Texto dentro de la zona de drop"
296
+ },
297
+ "getter": false,
298
+ "setter": false,
299
+ "reflect": false,
300
+ "attribute": "text-drop-zone",
301
+ "defaultValue": "'Arrastra o sube una imagen aqu\u00ED'"
302
+ },
303
+ "textButton": {
304
+ "type": "string",
305
+ "mutable": false,
306
+ "complexType": {
307
+ "original": "string",
308
+ "resolved": "string",
309
+ "references": {}
310
+ },
311
+ "required": false,
312
+ "optional": false,
313
+ "docs": {
314
+ "tags": [],
315
+ "text": "Texto del bot\u00F3n de selecci\u00F3n"
316
+ },
317
+ "getter": false,
318
+ "setter": false,
319
+ "reflect": false,
320
+ "attribute": "text-button",
321
+ "defaultValue": "'Seleccionar Imagen'"
322
+ },
323
+ "previewType": {
324
+ "type": "string",
325
+ "mutable": false,
326
+ "complexType": {
327
+ "original": "'card' | 'grid'",
328
+ "resolved": "\"card\" | \"grid\"",
329
+ "references": {}
330
+ },
331
+ "required": false,
332
+ "optional": false,
333
+ "docs": {
334
+ "tags": [],
335
+ "text": "Tipo de preview: card (lista) o grid (miniaturas)"
336
+ },
337
+ "getter": false,
338
+ "setter": false,
339
+ "reflect": false,
340
+ "attribute": "preview-type",
341
+ "defaultValue": "'card'"
342
+ },
343
+ "multiple": {
344
+ "type": "boolean",
345
+ "mutable": false,
346
+ "complexType": {
347
+ "original": "boolean",
348
+ "resolved": "boolean",
349
+ "references": {}
350
+ },
351
+ "required": false,
352
+ "optional": false,
353
+ "docs": {
354
+ "tags": [],
355
+ "text": "Permitir m\u00FAltiples archivos"
356
+ },
357
+ "getter": false,
358
+ "setter": false,
359
+ "reflect": false,
360
+ "attribute": "multiple",
361
+ "defaultValue": "false"
362
+ },
363
+ "maxFiles": {
364
+ "type": "number",
365
+ "mutable": false,
366
+ "complexType": {
367
+ "original": "number",
368
+ "resolved": "number",
369
+ "references": {}
370
+ },
371
+ "required": false,
372
+ "optional": false,
373
+ "docs": {
374
+ "tags": [],
375
+ "text": "L\u00EDmite de archivos"
376
+ },
377
+ "getter": false,
378
+ "setter": false,
379
+ "reflect": false,
380
+ "attribute": "max-files",
381
+ "defaultValue": "1"
382
+ },
383
+ "maxFileSizeMB": {
384
+ "type": "number",
385
+ "mutable": false,
386
+ "complexType": {
387
+ "original": "number",
388
+ "resolved": "number",
389
+ "references": {}
390
+ },
391
+ "required": false,
392
+ "optional": false,
393
+ "docs": {
394
+ "tags": [],
395
+ "text": "Tama\u00F1o m\u00E1ximo por archivo en MB"
396
+ },
397
+ "getter": false,
398
+ "setter": false,
399
+ "reflect": false,
400
+ "attribute": "max-file-size-m-b",
401
+ "defaultValue": "10"
402
+ },
403
+ "accept": {
404
+ "type": "string",
405
+ "mutable": false,
406
+ "complexType": {
407
+ "original": "string",
408
+ "resolved": "string",
409
+ "references": {}
410
+ },
411
+ "required": false,
412
+ "optional": false,
413
+ "docs": {
414
+ "tags": [],
415
+ "text": "Tipos aceptados (ej: \"image/*,application/pdf\")"
416
+ },
417
+ "getter": false,
418
+ "setter": false,
419
+ "reflect": false,
420
+ "attribute": "accept",
421
+ "defaultValue": "''"
422
+ },
423
+ "onlyView": {
424
+ "type": "boolean",
425
+ "mutable": false,
426
+ "complexType": {
427
+ "original": "boolean",
428
+ "resolved": "boolean",
429
+ "references": {}
430
+ },
431
+ "required": false,
432
+ "optional": false,
433
+ "docs": {
434
+ "tags": [],
435
+ "text": "Solo vista \u2014 sin eliminar"
436
+ },
437
+ "getter": false,
438
+ "setter": false,
439
+ "reflect": false,
440
+ "attribute": "only-view",
441
+ "defaultValue": "false"
442
+ },
443
+ "viewDragAndDrop": {
444
+ "type": "boolean",
445
+ "mutable": false,
446
+ "complexType": {
447
+ "original": "boolean",
448
+ "resolved": "boolean",
449
+ "references": {}
450
+ },
451
+ "required": false,
452
+ "optional": false,
453
+ "docs": {
454
+ "tags": [],
455
+ "text": "Mostrar drop-zone cuando ya hay archivos (modo grid)"
456
+ },
457
+ "getter": false,
458
+ "setter": false,
459
+ "reflect": false,
460
+ "attribute": "view-drag-and-drop",
461
+ "defaultValue": "false"
462
+ },
463
+ "dragAndDropSize": {
464
+ "type": "string",
465
+ "mutable": false,
466
+ "complexType": {
467
+ "original": "'small' | 'default'",
468
+ "resolved": "\"default\" | \"small\"",
469
+ "references": {}
470
+ },
471
+ "required": false,
472
+ "optional": false,
473
+ "docs": {
474
+ "tags": [],
475
+ "text": "Tama\u00F1o del drop zone"
476
+ },
477
+ "getter": false,
478
+ "setter": false,
479
+ "reflect": false,
480
+ "attribute": "drag-and-drop-size",
481
+ "defaultValue": "'default'"
482
+ }
483
+ };
484
+ }
485
+ static get states() {
486
+ return {
487
+ "selectedFiles": {},
488
+ "error": {},
489
+ "errorMessage": {},
490
+ "dragging": {}
491
+ };
492
+ }
493
+ static get events() {
494
+ return [{
495
+ "method": "uploadedUrlsChange",
496
+ "name": "uploadedUrlsChange",
497
+ "bubbles": true,
498
+ "cancelable": true,
499
+ "composed": true,
500
+ "docs": {
501
+ "tags": [],
502
+ "text": "Emite los File[] cada vez que cambia la selecci\u00F3n (el host maneja la subida)"
503
+ },
504
+ "complexType": {
505
+ "original": "File[]",
506
+ "resolved": "File[]",
507
+ "references": {
508
+ "File": {
509
+ "location": "global",
510
+ "id": "global::File"
511
+ }
512
+ }
513
+ }
514
+ }];
515
+ }
516
+ }
@@ -0,0 +1,115 @@
1
+ :host {
2
+ display: block;
3
+ width: 100%;
4
+ }
5
+
6
+ *, *::before, *::after {
7
+ box-sizing: border-box;
8
+ }
9
+
10
+ .container-progress-bar {
11
+ width: 100%;
12
+ height: 100%;
13
+ display: flex;
14
+ padding: var(--Size-4);
15
+ gap: var(--Size-3);
16
+ border-radius: var(--Size-2);
17
+ border: 1px solid var(--Gray-Gray-100);
18
+ background-color: var(--Neutral-White);
19
+ min-width: 0;
20
+ overflow: hidden;
21
+ align-items: center;
22
+ }
23
+
24
+ .container-icon-info {
25
+ background: var(--Info-Info-50);
26
+ width: 32px;
27
+ height: 32px;
28
+ border-radius: var(--Size-2);
29
+ display: flex;
30
+ justify-content: center;
31
+ align-items: center;
32
+ flex-shrink: 0;
33
+ }
34
+
35
+ .icon-pdf {
36
+ background: var(--Error-Error-50);
37
+ border-radius: var(--Border-2);
38
+ width: 34px;
39
+ height: 34px;
40
+ display: flex;
41
+ align-items: center;
42
+ justify-content: center;
43
+ flex-shrink: 0;
44
+ }
45
+
46
+ .image-to-view {
47
+ width: 34px;
48
+ height: 34px;
49
+ border-radius: var(--Border-2);
50
+ object-fit: cover;
51
+ flex-shrink: 0;
52
+ }
53
+
54
+ .container-bar-title {
55
+ display: flex;
56
+ gap: 8px;
57
+ flex: 1;
58
+ flex-direction: column;
59
+ justify-content: center;
60
+ min-width: 0;
61
+
62
+ p {
63
+ margin: 0;
64
+ font-size: var(--font-size-s);
65
+ color: var(--Gray-Gray-700);
66
+ white-space: nowrap;
67
+ overflow: hidden;
68
+ text-overflow: ellipsis;
69
+ max-width: 100%;
70
+ }
71
+ }
72
+
73
+ progress {
74
+ width: 100%;
75
+ height: 4px;
76
+ -webkit-appearance: none;
77
+ appearance: none;
78
+ border-radius: 4.5px;
79
+ max-width: 100%;
80
+ display: block;
81
+ }
82
+
83
+ progress::-webkit-progress-bar {
84
+ background-color: var(--Gray-Gray-100);
85
+ border-radius: 4.5px;
86
+ }
87
+
88
+ progress::-webkit-progress-value {
89
+ background-color: var(--Primary-Primary-500);
90
+ border-radius: 4.5px;
91
+ transition: width 0.3s ease;
92
+ }
93
+
94
+ /* Firefox */
95
+ progress::-moz-progress-bar {
96
+ background-color: var(--Primary-Primary-500);
97
+ border-radius: 4.5px;
98
+ }
99
+
100
+ .view-icon,
101
+ .container-icon-trash {
102
+ cursor: pointer;
103
+ display: flex;
104
+ align-items: center;
105
+ justify-content: center;
106
+ flex-shrink: 0;
107
+ padding: 4px;
108
+ border-radius: var(--Border-1);
109
+ transition: background 0.2s;
110
+ }
111
+
112
+ .view-icon:hover,
113
+ .container-icon-trash:hover {
114
+ background-color: var(--Gray-Gray-50);
115
+ }