@dropi/ui 0.1.23 → 0.1.24

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 (491) hide show
  1. package/dist/cjs/dropi-accordion-item.cjs.entry.js +54 -0
  2. package/dist/cjs/dropi-accordion.cjs.entry.js +19 -0
  3. package/dist/cjs/dropi-alert-legacy.cjs.entry.js +39 -0
  4. package/dist/cjs/dropi-alert-modal.cjs.entry.js +128 -0
  5. package/dist/cjs/dropi-alert.cjs.entry.js +64 -0
  6. package/dist/cjs/dropi-avatars.cjs.entry.js +31 -0
  7. package/dist/cjs/dropi-badge-legacy.cjs.entry.js +30 -0
  8. package/dist/cjs/dropi-badge.cjs.entry.js +37 -0
  9. package/dist/cjs/dropi-banner-external.cjs.entry.js +63 -0
  10. package/dist/cjs/dropi-breadcrumb.cjs.entry.js +48 -0
  11. package/dist/cjs/dropi-button.cjs.entry.js +87 -0
  12. package/dist/cjs/dropi-card-checkbox.cjs.entry.js +48 -0
  13. package/dist/cjs/dropi-card-product.cjs.entry.js +78 -0
  14. package/dist/cjs/dropi-card-section.cjs.entry.js +38 -0
  15. package/dist/cjs/dropi-carousel.cjs.entry.js +153 -0
  16. package/dist/cjs/dropi-checkbox-selection-list.cjs.entry.js +73 -0
  17. package/dist/cjs/dropi-checkbox.cjs.entry.js +36 -0
  18. package/dist/cjs/dropi-chips.cjs.entry.js +30 -0
  19. package/dist/cjs/dropi-city-selector.cjs.entry.js +104 -0
  20. package/dist/cjs/dropi-color-picker.cjs.entry.js +319 -0
  21. package/dist/cjs/dropi-country-flags.cjs.entry.js +37 -0
  22. package/dist/cjs/dropi-country-selector.cjs.entry.js +197 -0
  23. package/dist/cjs/dropi-date-picker-range.cjs.entry.js +115 -0
  24. package/dist/cjs/dropi-date-picker.cjs.entry.js +223 -0
  25. package/dist/cjs/dropi-drawer.cjs.entry.js +79 -0
  26. package/dist/cjs/dropi-dropdown.cjs.entry.js +65 -0
  27. package/dist/cjs/dropi-empty-state.cjs.entry.js +36 -0
  28. package/dist/cjs/dropi-favorite-button.cjs.entry.js +27 -0
  29. package/dist/cjs/dropi-file-upload-progress-bar.cjs.entry.js +77 -0
  30. package/dist/cjs/dropi-file-upload.cjs.entry.js +237 -0
  31. package/dist/cjs/dropi-icon.cjs.entry.js +67 -0
  32. package/dist/cjs/dropi-ilustration-icon.cjs.entry.js +39 -0
  33. package/dist/cjs/dropi-image-miniature.cjs.entry.js +44 -0
  34. package/dist/cjs/dropi-image-overlay.cjs.entry.js +63 -0
  35. package/dist/cjs/dropi-input_3.cjs.entry.js +392 -0
  36. package/dist/cjs/dropi-languages-selector.cjs.entry.js +61 -0
  37. package/dist/cjs/dropi-logo.cjs.entry.js +37 -0
  38. package/dist/cjs/dropi-lottie-loader.cjs.entry.js +27 -0
  39. package/dist/cjs/dropi-media-player.cjs.entry.js +192 -0
  40. package/dist/cjs/dropi-modal.cjs.entry.js +142 -0
  41. package/dist/cjs/dropi-navbar.cjs.entry.js +54 -0
  42. package/dist/cjs/dropi-otp-send-code.cjs.entry.js +92 -0
  43. package/dist/cjs/dropi-phone-input.cjs.entry.js +197 -0
  44. package/dist/cjs/dropi-radio-button.cjs.entry.js +47 -0
  45. package/dist/cjs/dropi-radio-selection-list.cjs.entry.js +60 -0
  46. package/dist/cjs/dropi-read-more.cjs.entry.js +40 -0
  47. package/dist/cjs/dropi-search.cjs.entry.js +124 -0
  48. package/dist/cjs/dropi-select.cjs.entry.js +382 -0
  49. package/dist/cjs/dropi-sidebar.cjs.entry.js +78 -0
  50. package/dist/cjs/dropi-simple-stepper.cjs.entry.js +53 -0
  51. package/dist/cjs/dropi-skeleton.cjs.entry.js +57 -0
  52. package/dist/cjs/dropi-steps.cjs.entry.js +52 -0
  53. package/dist/cjs/dropi-switch.cjs.entry.js +30 -0
  54. package/dist/cjs/dropi-table.cjs.entry.js +299 -0
  55. package/dist/cjs/dropi-tabs.cjs.entry.js +51 -0
  56. package/dist/cjs/dropi-tag-type-product.cjs.entry.js +19 -0
  57. package/dist/cjs/dropi-text-area.cjs.entry.js +134 -0
  58. package/dist/cjs/dropi-time-line.cjs.entry.js +34 -0
  59. package/dist/cjs/dropi-toast.cjs.entry.js +56 -0
  60. package/dist/cjs/dropi-tooltip-v2.cjs.entry.js +131 -0
  61. package/dist/cjs/dropi-tooltip.cjs.entry.js +21 -0
  62. package/dist/cjs/dropi-ui.cjs.js +24 -0
  63. package/dist/cjs/dropi-vertical-steps.cjs.entry.js +55 -0
  64. package/dist/cjs/dropi-youtube-lazy-video.cjs.entry.js +33 -0
  65. package/dist/cjs/index-C8kwDvpf.js +2773 -0
  66. package/dist/cjs/index.cjs.js +2 -0
  67. package/dist/cjs/loader.cjs.js +12 -0
  68. package/dist/collection/assets/icons/symbol/svg/sprite.css.svg +1 -0
  69. package/dist/collection/collection-manifest.json +77 -0
  70. package/dist/collection/components/dropi-accordion/dropi-accordion-item.css +45 -0
  71. package/dist/collection/components/dropi-accordion/dropi-accordion-item.js +172 -0
  72. package/dist/collection/components/dropi-accordion/dropi-accordion.css +21 -0
  73. package/dist/collection/components/dropi-accordion/dropi-accordion.js +48 -0
  74. package/dist/collection/components/dropi-alert/dropi-alert.css +128 -0
  75. package/dist/collection/components/dropi-alert/dropi-alert.js +371 -0
  76. package/dist/collection/components/dropi-alert-legacy/dropi-alert-legacy.css +31 -0
  77. package/dist/collection/components/dropi-alert-legacy/dropi-alert-legacy.js +128 -0
  78. package/dist/collection/components/dropi-alert-modal/dropi-alert-modal.css +105 -0
  79. package/dist/collection/components/dropi-alert-modal/dropi-alert-modal.js +525 -0
  80. package/dist/collection/components/dropi-avatars/dropi-avatars.css +55 -0
  81. package/dist/collection/components/dropi-avatars/dropi-avatars.js +126 -0
  82. package/dist/collection/components/dropi-badge/dropi-badge.css +41 -0
  83. package/dist/collection/components/dropi-badge/dropi-badge.js +71 -0
  84. package/dist/collection/components/dropi-badge-legacy/dropi-badge-legacy.css +17 -0
  85. package/dist/collection/components/dropi-badge-legacy/dropi-badge-legacy.js +119 -0
  86. package/dist/collection/components/dropi-banner-external/dropi-banner-external.css +56 -0
  87. package/dist/collection/components/dropi-banner-external/dropi-banner-external.js +254 -0
  88. package/dist/collection/components/dropi-breadcrumb/dropi-breadcrumb.css +69 -0
  89. package/dist/collection/components/dropi-breadcrumb/dropi-breadcrumb.js +171 -0
  90. package/dist/collection/components/dropi-button/dropi-button.css +177 -0
  91. package/dist/collection/components/dropi-button/dropi-button.js +323 -0
  92. package/dist/collection/components/dropi-card-checkbox/dropi-card-checkbox.css +92 -0
  93. package/dist/collection/components/dropi-card-checkbox/dropi-card-checkbox.js +222 -0
  94. package/dist/collection/components/dropi-card-product/dropi-card-product.css +235 -0
  95. package/dist/collection/components/dropi-card-product/dropi-card-product.js +386 -0
  96. package/dist/collection/components/dropi-card-section/dropi-card-section.css +42 -0
  97. package/dist/collection/components/dropi-card-section/dropi-card-section.js +178 -0
  98. package/dist/collection/components/dropi-carousel/dropi-carousel.css +148 -0
  99. package/dist/collection/components/dropi-carousel/dropi-carousel.js +379 -0
  100. package/dist/collection/components/dropi-checkbox/dropi-checkbox.css +47 -0
  101. package/dist/collection/components/dropi-checkbox/dropi-checkbox.js +103 -0
  102. package/dist/collection/components/dropi-checkbox-selection-list/dropi-checkbox-selection-list.css +44 -0
  103. package/dist/collection/components/dropi-checkbox-selection-list/dropi-checkbox-selection-list.js +267 -0
  104. package/dist/collection/components/dropi-chips/dropi-chips.css +68 -0
  105. package/dist/collection/components/dropi-chips/dropi-chips.js +169 -0
  106. package/dist/collection/components/dropi-city-selector/dropi-city-selector.css +218 -0
  107. package/dist/collection/components/dropi-city-selector/dropi-city-selector.js +242 -0
  108. package/dist/collection/components/dropi-color-picker/dropi-color-picker.css +210 -0
  109. package/dist/collection/components/dropi-color-picker/dropi-color-picker.js +393 -0
  110. package/dist/collection/components/dropi-country-flags/dropi-country-flags.css +30 -0
  111. package/dist/collection/components/dropi-country-flags/dropi-country-flags.js +129 -0
  112. package/dist/collection/components/dropi-country-selector/dropi-country-selector.css +211 -0
  113. package/dist/collection/components/dropi-country-selector/dropi-country-selector.js +429 -0
  114. package/dist/collection/components/dropi-date-picker/dropi-date-picker.css +215 -0
  115. package/dist/collection/components/dropi-date-picker/dropi-date-picker.js +516 -0
  116. package/dist/collection/components/dropi-date-picker-range/dropi-date-picker-range.css +143 -0
  117. package/dist/collection/components/dropi-date-picker-range/dropi-date-picker-range.js +327 -0
  118. package/dist/collection/components/dropi-drawer/dropi-drawer.css +129 -0
  119. package/dist/collection/components/dropi-drawer/dropi-drawer.js +287 -0
  120. package/dist/collection/components/dropi-dropdown/dropi-dropdown.css +51 -0
  121. package/dist/collection/components/dropi-dropdown/dropi-dropdown.js +209 -0
  122. package/dist/collection/components/dropi-empty-state/dropi-empty-state.css +59 -0
  123. package/dist/collection/components/dropi-empty-state/dropi-empty-state.js +222 -0
  124. package/dist/collection/components/dropi-favorite-button/dropi-favorite-button.css +24 -0
  125. package/dist/collection/components/dropi-favorite-button/dropi-favorite-button.js +78 -0
  126. package/dist/collection/components/dropi-file-upload/dropi-file-upload.css +464 -0
  127. package/dist/collection/components/dropi-file-upload/dropi-file-upload.js +517 -0
  128. package/dist/collection/components/dropi-file-upload-progress-bar/dropi-file-upload-progress-bar.css +115 -0
  129. package/dist/collection/components/dropi-file-upload-progress-bar/dropi-file-upload-progress-bar.js +258 -0
  130. package/dist/collection/components/dropi-icon/dropi-icon.css +26 -0
  131. package/dist/collection/components/dropi-icon/dropi-icon.js +159 -0
  132. package/dist/collection/components/dropi-ilustration-icon/dropi-ilustration-icon.css +91 -0
  133. package/dist/collection/components/dropi-ilustration-icon/dropi-ilustration-icon.js +150 -0
  134. package/dist/collection/components/dropi-image-miniature/dropi-image-miniature.css +45 -0
  135. package/dist/collection/components/dropi-image-miniature/dropi-image-miniature.js +150 -0
  136. package/dist/collection/components/dropi-image-overlay/dropi-image-overlay.css +127 -0
  137. package/dist/collection/components/dropi-image-overlay/dropi-image-overlay.js +156 -0
  138. package/dist/collection/components/dropi-input/dropi-input.css +185 -0
  139. package/dist/collection/components/dropi-input/dropi-input.js +808 -0
  140. package/dist/collection/components/dropi-languages-selector/dropi-languages-selector.css +79 -0
  141. package/dist/collection/components/dropi-languages-selector/dropi-languages-selector.js +158 -0
  142. package/dist/collection/components/dropi-logo/dropi-logo.css +26 -0
  143. package/dist/collection/components/dropi-logo/dropi-logo.js +107 -0
  144. package/dist/collection/components/dropi-lottie-loader/dropi-lottie-loader.css +56 -0
  145. package/dist/collection/components/dropi-lottie-loader/dropi-lottie-loader.js +116 -0
  146. package/dist/collection/components/dropi-media-player/dropi-media-player.css +320 -0
  147. package/dist/collection/components/dropi-media-player/dropi-media-player.js +394 -0
  148. package/dist/collection/components/dropi-modal/dropi-modal.css +140 -0
  149. package/dist/collection/components/dropi-modal/dropi-modal.js +695 -0
  150. package/dist/collection/components/dropi-navbar/dropi-navbar.css +166 -0
  151. package/dist/collection/components/dropi-navbar/dropi-navbar.js +302 -0
  152. package/dist/collection/components/dropi-otp-send-code/dropi-otp-send-code.css +67 -0
  153. package/dist/collection/components/dropi-otp-send-code/dropi-otp-send-code.js +221 -0
  154. package/dist/collection/components/dropi-paginator/dropi-paginator.css +103 -0
  155. package/dist/collection/components/dropi-paginator/dropi-paginator.js +215 -0
  156. package/dist/collection/components/dropi-phone-input/dropi-phone-input.css +209 -0
  157. package/dist/collection/components/dropi-phone-input/dropi-phone-input.js +442 -0
  158. package/dist/collection/components/dropi-radio-button/dropi-radio-button.css +62 -0
  159. package/dist/collection/components/dropi-radio-button/dropi-radio-button.js +174 -0
  160. package/dist/collection/components/dropi-radio-selection-list/dropi-radio-selection-list.css +64 -0
  161. package/dist/collection/components/dropi-radio-selection-list/dropi-radio-selection-list.js +259 -0
  162. package/dist/collection/components/dropi-read-more/dropi-read-more.css +25 -0
  163. package/dist/collection/components/dropi-read-more/dropi-read-more.js +154 -0
  164. package/dist/collection/components/dropi-search/dropi-search.css +112 -0
  165. package/dist/collection/components/dropi-search/dropi-search.js +526 -0
  166. package/dist/collection/components/dropi-select/dropi-select.css +366 -0
  167. package/dist/collection/components/dropi-select/dropi-select.js +1018 -0
  168. package/dist/collection/components/dropi-select/select.types.js +1 -0
  169. package/dist/collection/components/dropi-sidebar/dropi-sidebar.css +76 -0
  170. package/dist/collection/components/dropi-sidebar/dropi-sidebar.js +143 -0
  171. package/dist/collection/components/dropi-simple-stepper/dropi-simple-stepper.css +94 -0
  172. package/dist/collection/components/dropi-simple-stepper/dropi-simple-stepper.js +194 -0
  173. package/dist/collection/components/dropi-skeleton/dropi-skeleton.css +27 -0
  174. package/dist/collection/components/dropi-skeleton/dropi-skeleton.js +192 -0
  175. package/dist/collection/components/dropi-steps/dropi-steps.css +95 -0
  176. package/dist/collection/components/dropi-steps/dropi-steps.js +173 -0
  177. package/dist/collection/components/dropi-switch/dropi-switch.css +57 -0
  178. package/dist/collection/components/dropi-switch/dropi-switch.js +96 -0
  179. package/dist/collection/components/dropi-table/dropi-table.css +540 -0
  180. package/dist/collection/components/dropi-table/dropi-table.js +973 -0
  181. package/dist/collection/components/dropi-tabs/dropi-tabs.css +47 -0
  182. package/dist/collection/components/dropi-tabs/dropi-tabs.js +181 -0
  183. package/dist/collection/components/dropi-tag/dropi-tag.css +39 -0
  184. package/dist/collection/components/dropi-tag/dropi-tag.js +190 -0
  185. package/dist/collection/components/dropi-tag-type-product/dropi-tag-type-product.css +14 -0
  186. package/dist/collection/components/dropi-tag-type-product/dropi-tag-type-product.js +48 -0
  187. package/dist/collection/components/dropi-text-area/dropi-text-area.css +100 -0
  188. package/dist/collection/components/dropi-text-area/dropi-text-area.js +512 -0
  189. package/dist/collection/components/dropi-time-line/dropi-time-line.css +108 -0
  190. package/dist/collection/components/dropi-time-line/dropi-time-line.js +69 -0
  191. package/dist/collection/components/dropi-toast/dropi-toast.css +63 -0
  192. package/dist/collection/components/dropi-toast/dropi-toast.js +165 -0
  193. package/dist/collection/components/dropi-tooltip/dropi-tooltip.css +32 -0
  194. package/dist/collection/components/dropi-tooltip/dropi-tooltip.js +70 -0
  195. package/dist/collection/components/dropi-tooltip-v2/dropi-tooltip.css +67 -0
  196. package/dist/collection/components/dropi-tooltip-v2/dropi-tooltip.js +468 -0
  197. package/dist/collection/components/dropi-vertical-steps/dropi-vertical-steps.css +95 -0
  198. package/dist/collection/components/dropi-vertical-steps/dropi-vertical-steps.js +167 -0
  199. package/dist/collection/components/dropi-youtube-lazy-video/dropi-youtube-lazy-video.css +73 -0
  200. package/dist/collection/components/dropi-youtube-lazy-video/dropi-youtube-lazy-video.js +110 -0
  201. package/dist/collection/index.js +1 -0
  202. package/dist/collection/utils/utils.js +3 -0
  203. package/dist/collection/utils/utils.unit.test.js +16 -0
  204. package/dist/components/dropi-accordion-item.js +1 -0
  205. package/dist/components/dropi-accordion.js +1 -0
  206. package/dist/components/dropi-alert-legacy.js +1 -0
  207. package/dist/components/dropi-alert-modal.js +1 -0
  208. package/dist/components/dropi-alert.js +1 -0
  209. package/dist/components/dropi-avatars.js +1 -0
  210. package/dist/components/dropi-badge-legacy.js +1 -0
  211. package/dist/components/dropi-badge.js +1 -0
  212. package/dist/components/dropi-banner-external.js +1 -0
  213. package/dist/components/dropi-breadcrumb.js +1 -0
  214. package/dist/components/dropi-button.js +1 -0
  215. package/dist/components/dropi-card-checkbox.js +1 -0
  216. package/dist/components/dropi-card-product.js +1 -0
  217. package/dist/components/dropi-card-section.js +1 -0
  218. package/dist/components/dropi-carousel.js +1 -0
  219. package/dist/components/dropi-checkbox-selection-list.js +1 -0
  220. package/dist/components/dropi-checkbox.js +1 -0
  221. package/dist/components/dropi-chips.js +1 -0
  222. package/dist/components/dropi-city-selector.js +1 -0
  223. package/dist/components/dropi-color-picker.js +1 -0
  224. package/dist/components/dropi-country-flags.js +1 -0
  225. package/dist/components/dropi-country-selector.js +1 -0
  226. package/dist/components/dropi-date-picker-range.js +1 -0
  227. package/dist/components/dropi-date-picker.js +1 -0
  228. package/dist/components/dropi-drawer.js +1 -0
  229. package/dist/components/dropi-dropdown.js +1 -0
  230. package/dist/components/dropi-empty-state.js +1 -0
  231. package/dist/components/dropi-favorite-button.js +1 -0
  232. package/dist/components/dropi-file-upload-progress-bar.js +1 -0
  233. package/dist/components/dropi-file-upload.js +1 -0
  234. package/dist/components/dropi-icon.js +1 -0
  235. package/dist/components/dropi-ilustration-icon.js +1 -0
  236. package/dist/components/dropi-image-miniature.js +1 -0
  237. package/dist/components/dropi-image-overlay.js +1 -0
  238. package/dist/components/dropi-input.js +1 -0
  239. package/dist/components/dropi-languages-selector.js +1 -0
  240. package/dist/components/dropi-logo.js +1 -0
  241. package/dist/components/dropi-lottie-loader.js +1 -0
  242. package/dist/components/dropi-media-player.js +1 -0
  243. package/dist/components/dropi-modal.js +1 -0
  244. package/dist/components/dropi-navbar.js +1 -0
  245. package/dist/components/dropi-otp-send-code.js +1 -0
  246. package/dist/components/dropi-paginator.js +1 -0
  247. package/dist/components/dropi-phone-input.js +1 -0
  248. package/dist/components/dropi-radio-button.js +1 -0
  249. package/dist/components/dropi-radio-selection-list.js +1 -0
  250. package/dist/components/dropi-read-more.js +1 -0
  251. package/dist/components/dropi-search.js +1 -0
  252. package/dist/components/dropi-select.js +1 -0
  253. package/dist/components/dropi-sidebar.js +1 -0
  254. package/dist/components/dropi-simple-stepper.js +1 -0
  255. package/dist/components/dropi-skeleton.js +1 -0
  256. package/dist/components/dropi-steps.js +1 -0
  257. package/dist/components/dropi-switch.js +1 -0
  258. package/dist/components/dropi-table.js +1 -0
  259. package/dist/components/dropi-tabs.js +1 -0
  260. package/dist/components/dropi-tag-type-product.js +1 -0
  261. package/dist/components/dropi-tag.js +1 -0
  262. package/dist/components/dropi-text-area.js +1 -0
  263. package/dist/components/dropi-time-line.js +1 -0
  264. package/dist/components/dropi-toast.js +1 -0
  265. package/dist/components/dropi-tooltip-v2.js +1 -0
  266. package/dist/components/dropi-tooltip.js +1 -0
  267. package/dist/components/dropi-vertical-steps.js +1 -0
  268. package/dist/components/dropi-youtube-lazy-video.js +1 -0
  269. package/dist/components/index.js +1 -0
  270. package/dist/components/p-B9R8Apw7.js +1 -0
  271. package/dist/components/p-B_Ace02i.js +1 -0
  272. package/dist/components/p-BrjO_JXp.js +1 -0
  273. package/dist/components/p-BwhxWL4p.js +1 -0
  274. package/dist/components/p-Bz2jXX3R.js +1 -0
  275. package/dist/components/p-CV_oz45O.js +1 -0
  276. package/dist/components/p-D-vQQQNz.js +1 -0
  277. package/dist/components/p-D13d88W3.js +1 -0
  278. package/dist/components/p-DGUfr98Z.js +1 -0
  279. package/dist/components/p-QOZr7tU8.js +1 -0
  280. package/dist/components/p-a-hGQrJd.js +1 -0
  281. package/dist/components/p-o5gyrbbD.js +1 -0
  282. package/dist/dropi-ui/dropi-ui.css +1 -311
  283. package/dist/dropi-ui/dropi-ui.esm.js +1 -50
  284. package/dist/dropi-ui/index.esm.js +0 -4
  285. package/dist/dropi-ui/p-00e5a2de.entry.js +1 -0
  286. package/dist/dropi-ui/p-0188e07a.entry.js +1 -0
  287. package/dist/dropi-ui/p-02710049.entry.js +1 -0
  288. package/dist/dropi-ui/p-17c56074.entry.js +1 -0
  289. package/dist/dropi-ui/p-18adf694.entry.js +1 -0
  290. package/dist/dropi-ui/p-1a3619c3.entry.js +1 -0
  291. package/dist/dropi-ui/p-1d3d6a32.entry.js +1 -0
  292. package/dist/dropi-ui/p-25640777.entry.js +1 -0
  293. package/dist/dropi-ui/p-2674d901.entry.js +1 -0
  294. package/dist/dropi-ui/p-2af538b9.entry.js +1 -0
  295. package/dist/dropi-ui/p-3013f3b8.entry.js +1 -0
  296. package/dist/dropi-ui/p-3321ca70.entry.js +1 -0
  297. package/dist/dropi-ui/p-33d242ec.entry.js +1 -0
  298. package/dist/dropi-ui/p-34b66ca2.entry.js +1 -0
  299. package/dist/dropi-ui/p-39af6478.entry.js +1 -0
  300. package/dist/dropi-ui/p-3e36c8b8.entry.js +1 -0
  301. package/dist/dropi-ui/p-3ebc9b7b.entry.js +1 -0
  302. package/dist/dropi-ui/p-446a481d.entry.js +1 -0
  303. package/dist/dropi-ui/p-50e0d44f.entry.js +1 -0
  304. package/dist/dropi-ui/p-53a7a37d.entry.js +1 -0
  305. package/dist/dropi-ui/p-5c0bd7c2.entry.js +1 -0
  306. package/dist/dropi-ui/p-5cee6721.entry.js +1 -0
  307. package/dist/dropi-ui/p-5fb33ae4.entry.js +1 -0
  308. package/dist/dropi-ui/p-665ef7ba.entry.js +1 -0
  309. package/dist/dropi-ui/p-66b80371.entry.js +1 -0
  310. package/dist/dropi-ui/p-7bfc1c27.entry.js +1 -0
  311. package/dist/dropi-ui/p-7c0d2edf.entry.js +1 -0
  312. package/dist/dropi-ui/p-7eb27836.entry.js +1 -0
  313. package/dist/dropi-ui/p-85444414.entry.js +1 -0
  314. package/dist/dropi-ui/p-86283e99.entry.js +1 -0
  315. package/dist/dropi-ui/p-8bf5d8ee.entry.js +1 -0
  316. package/dist/dropi-ui/p-9032ba00.entry.js +1 -0
  317. package/dist/dropi-ui/p-9212f544.entry.js +1 -0
  318. package/dist/dropi-ui/p-92291873.entry.js +1 -0
  319. package/dist/dropi-ui/p-955e52f8.entry.js +1 -0
  320. package/dist/dropi-ui/p-976a15e3.entry.js +1 -0
  321. package/dist/dropi-ui/p-9b037086.entry.js +1 -0
  322. package/dist/dropi-ui/p-9e0129cc.entry.js +1 -0
  323. package/dist/dropi-ui/p-9ffec3f7.entry.js +1 -0
  324. package/dist/dropi-ui/p-D5SAM1O2.js +2 -0
  325. package/dist/dropi-ui/p-a1c93e55.entry.js +1 -0
  326. package/dist/dropi-ui/p-a232c6a7.entry.js +1 -0
  327. package/dist/dropi-ui/p-a3c4d677.entry.js +1 -0
  328. package/dist/dropi-ui/p-a457e8ca.entry.js +1 -0
  329. package/dist/dropi-ui/p-a4e1df5e.entry.js +1 -0
  330. package/dist/dropi-ui/p-a822a23e.entry.js +1 -0
  331. package/dist/dropi-ui/p-a8f24270.entry.js +1 -0
  332. package/dist/dropi-ui/p-ae35d538.entry.js +1 -0
  333. package/dist/dropi-ui/p-af8e2157.entry.js +1 -0
  334. package/dist/dropi-ui/p-b2623a5c.entry.js +1 -0
  335. package/dist/dropi-ui/p-b3d3c72e.entry.js +1 -0
  336. package/dist/dropi-ui/p-c3614c4a.entry.js +1 -0
  337. package/dist/dropi-ui/p-cbf5367e.entry.js +1 -0
  338. package/dist/dropi-ui/p-cc527d91.entry.js +1 -0
  339. package/dist/dropi-ui/p-cdde481b.entry.js +1 -0
  340. package/dist/dropi-ui/p-d42d4ef7.entry.js +1 -0
  341. package/dist/dropi-ui/p-db38bf16.entry.js +1 -0
  342. package/dist/dropi-ui/p-dd5d8b1b.entry.js +1 -0
  343. package/dist/dropi-ui/p-e3ad21f8.entry.js +1 -0
  344. package/dist/dropi-ui/p-e6e766ed.entry.js +1 -0
  345. package/dist/dropi-ui/p-ec263862.entry.js +1 -0
  346. package/dist/dropi-ui/p-efc2fc35.entry.js +1 -0
  347. package/dist/dropi-ui/p-f41cd9b5.entry.js +1 -0
  348. package/dist/dropi-ui/p-fa3d0267.entry.js +1 -0
  349. package/dist/{dropi-ui → esm}/dropi-accordion-item.entry.js +2 -8
  350. package/dist/{dropi-ui → esm}/dropi-accordion.entry.js +1 -4
  351. package/dist/{dropi-ui → esm}/dropi-alert-legacy.entry.js +1 -4
  352. package/dist/{dropi-ui → esm}/dropi-alert-modal.entry.js +1 -4
  353. package/dist/{dropi-ui → esm}/dropi-alert.entry.js +1 -4
  354. package/dist/{dropi-ui → esm}/dropi-avatars.entry.js +1 -4
  355. package/dist/{dropi-ui → esm}/dropi-badge-legacy.entry.js +1 -4
  356. package/dist/{dropi-ui → esm}/dropi-badge.entry.js +1 -4
  357. package/dist/{dropi-ui → esm}/dropi-banner-external.entry.js +1 -4
  358. package/dist/{dropi-ui → esm}/dropi-breadcrumb.entry.js +1 -4
  359. package/dist/{dropi-ui → esm}/dropi-button.entry.js +7 -10
  360. package/dist/{dropi-ui → esm}/dropi-card-checkbox.entry.js +1 -4
  361. package/dist/{dropi-ui → esm}/dropi-card-product.entry.js +1 -4
  362. package/dist/{dropi-ui → esm}/dropi-card-section.entry.js +1 -4
  363. package/dist/{dropi-ui → esm}/dropi-carousel.entry.js +1 -4
  364. package/dist/{dropi-ui → esm}/dropi-checkbox-selection-list.entry.js +1 -4
  365. package/dist/{dropi-ui → esm}/dropi-checkbox.entry.js +1 -4
  366. package/dist/{dropi-ui → esm}/dropi-chips.entry.js +1 -4
  367. package/dist/{dropi-ui → esm}/dropi-city-selector.entry.js +1 -4
  368. package/dist/{dropi-ui → esm}/dropi-color-picker.entry.js +1 -4
  369. package/dist/{dropi-ui → esm}/dropi-country-flags.entry.js +1 -4
  370. package/dist/{dropi-ui → esm}/dropi-country-selector.entry.js +1 -4
  371. package/dist/{dropi-ui → esm}/dropi-date-picker-range.entry.js +1 -4
  372. package/dist/{dropi-ui → esm}/dropi-date-picker.entry.js +1 -4
  373. package/dist/{dropi-ui → esm}/dropi-drawer.entry.js +1 -4
  374. package/dist/{dropi-ui → esm}/dropi-dropdown.entry.js +1 -4
  375. package/dist/{dropi-ui → esm}/dropi-empty-state.entry.js +1 -4
  376. package/dist/{dropi-ui → esm}/dropi-favorite-button.entry.js +1 -4
  377. package/dist/{dropi-ui → esm}/dropi-file-upload-progress-bar.entry.js +1 -4
  378. package/dist/{dropi-ui → esm}/dropi-file-upload.entry.js +1 -4
  379. package/dist/{dropi-ui → esm}/dropi-icon.entry.js +1 -4
  380. package/dist/{dropi-ui → esm}/dropi-ilustration-icon.entry.js +1 -4
  381. package/dist/{dropi-ui → esm}/dropi-image-miniature.entry.js +1 -4
  382. package/dist/{dropi-ui → esm}/dropi-image-overlay.entry.js +1 -4
  383. package/dist/{dropi-ui/dropi-input.entry.js → esm/dropi-input_3.entry.js} +128 -4
  384. package/dist/{dropi-ui → esm}/dropi-languages-selector.entry.js +1 -4
  385. package/dist/{dropi-ui → esm}/dropi-logo.entry.js +1 -4
  386. package/dist/{dropi-ui → esm}/dropi-lottie-loader.entry.js +1 -4
  387. package/dist/{dropi-ui → esm}/dropi-media-player.entry.js +1 -4
  388. package/dist/{dropi-ui → esm}/dropi-modal.entry.js +1 -4
  389. package/dist/{dropi-ui → esm}/dropi-navbar.entry.js +1 -4
  390. package/dist/{dropi-ui → esm}/dropi-otp-send-code.entry.js +1 -4
  391. package/dist/{dropi-ui → esm}/dropi-phone-input.entry.js +1 -4
  392. package/dist/{dropi-ui → esm}/dropi-radio-button.entry.js +1 -4
  393. package/dist/{dropi-ui → esm}/dropi-radio-selection-list.entry.js +1 -4
  394. package/dist/{dropi-ui → esm}/dropi-read-more.entry.js +1 -4
  395. package/dist/{dropi-ui → esm}/dropi-search.entry.js +1 -4
  396. package/dist/{dropi-ui → esm}/dropi-select.entry.js +1 -4
  397. package/dist/{dropi-ui → esm}/dropi-sidebar.entry.js +1 -4
  398. package/dist/{dropi-ui → esm}/dropi-simple-stepper.entry.js +1 -4
  399. package/dist/{dropi-ui → esm}/dropi-skeleton.entry.js +1 -4
  400. package/dist/{dropi-ui → esm}/dropi-steps.entry.js +1 -4
  401. package/dist/{dropi-ui → esm}/dropi-switch.entry.js +1 -4
  402. package/dist/{dropi-ui → esm}/dropi-table.entry.js +1 -4
  403. package/dist/{dropi-ui → esm}/dropi-tabs.entry.js +1 -4
  404. package/dist/{dropi-ui → esm}/dropi-tag-type-product.entry.js +1 -4
  405. package/dist/{dropi-ui → esm}/dropi-text-area.entry.js +1 -4
  406. package/dist/{dropi-ui → esm}/dropi-time-line.entry.js +1 -4
  407. package/dist/{dropi-ui → esm}/dropi-toast.entry.js +1 -4
  408. package/dist/{dropi-ui → esm}/dropi-tooltip-v2.entry.js +1 -4
  409. package/dist/{dropi-ui → esm}/dropi-tooltip.entry.js +1 -4
  410. package/dist/esm/dropi-ui.js +20 -0
  411. package/dist/{dropi-ui → esm}/dropi-vertical-steps.entry.js +1 -4
  412. package/dist/{dropi-ui → esm}/dropi-youtube-lazy-video.entry.js +1 -4
  413. package/dist/esm/index-D5SAM1O2.js +2763 -0
  414. package/dist/esm/index.js +1 -0
  415. package/dist/esm/loader.js +10 -0
  416. package/dist/index.cjs.js +1 -0
  417. package/dist/index.js +1 -0
  418. package/hydrate/index.js +6 -6
  419. package/hydrate/index.mjs +6 -6
  420. package/package.json +1 -1
  421. package/dist/dropi-ui/dropi-accordion-item.entry.js.map +0 -1
  422. package/dist/dropi-ui/dropi-accordion.entry.js.map +0 -1
  423. package/dist/dropi-ui/dropi-alert-legacy.entry.js.map +0 -1
  424. package/dist/dropi-ui/dropi-alert-modal.entry.js.map +0 -1
  425. package/dist/dropi-ui/dropi-alert.entry.js.map +0 -1
  426. package/dist/dropi-ui/dropi-avatars.entry.js.map +0 -1
  427. package/dist/dropi-ui/dropi-badge-legacy.entry.js.map +0 -1
  428. package/dist/dropi-ui/dropi-badge.entry.js.map +0 -1
  429. package/dist/dropi-ui/dropi-banner-external.entry.js.map +0 -1
  430. package/dist/dropi-ui/dropi-breadcrumb.entry.js.map +0 -1
  431. package/dist/dropi-ui/dropi-button.entry.js.map +0 -1
  432. package/dist/dropi-ui/dropi-card-checkbox.entry.js.map +0 -1
  433. package/dist/dropi-ui/dropi-card-product.entry.js.map +0 -1
  434. package/dist/dropi-ui/dropi-card-section.entry.js.map +0 -1
  435. package/dist/dropi-ui/dropi-carousel.entry.js.map +0 -1
  436. package/dist/dropi-ui/dropi-checkbox-selection-list.entry.js.map +0 -1
  437. package/dist/dropi-ui/dropi-checkbox.entry.js.map +0 -1
  438. package/dist/dropi-ui/dropi-chips.entry.js.map +0 -1
  439. package/dist/dropi-ui/dropi-city-selector.entry.js.map +0 -1
  440. package/dist/dropi-ui/dropi-color-picker.entry.js.map +0 -1
  441. package/dist/dropi-ui/dropi-country-flags.entry.js.map +0 -1
  442. package/dist/dropi-ui/dropi-country-selector.entry.js.map +0 -1
  443. package/dist/dropi-ui/dropi-date-picker-range.entry.js.map +0 -1
  444. package/dist/dropi-ui/dropi-date-picker.entry.js.map +0 -1
  445. package/dist/dropi-ui/dropi-drawer.entry.js.map +0 -1
  446. package/dist/dropi-ui/dropi-dropdown.entry.js.map +0 -1
  447. package/dist/dropi-ui/dropi-empty-state.entry.js.map +0 -1
  448. package/dist/dropi-ui/dropi-favorite-button.entry.js.map +0 -1
  449. package/dist/dropi-ui/dropi-file-upload-progress-bar.entry.js.map +0 -1
  450. package/dist/dropi-ui/dropi-file-upload.entry.js.map +0 -1
  451. package/dist/dropi-ui/dropi-icon.entry.js.map +0 -1
  452. package/dist/dropi-ui/dropi-ilustration-icon.entry.js.map +0 -1
  453. package/dist/dropi-ui/dropi-image-miniature.entry.js.map +0 -1
  454. package/dist/dropi-ui/dropi-image-overlay.entry.js.map +0 -1
  455. package/dist/dropi-ui/dropi-input.entry.js.map +0 -1
  456. package/dist/dropi-ui/dropi-languages-selector.entry.js.map +0 -1
  457. package/dist/dropi-ui/dropi-logo.entry.js.map +0 -1
  458. package/dist/dropi-ui/dropi-lottie-loader.entry.js.map +0 -1
  459. package/dist/dropi-ui/dropi-media-player.entry.js.map +0 -1
  460. package/dist/dropi-ui/dropi-modal.entry.js.map +0 -1
  461. package/dist/dropi-ui/dropi-navbar.entry.js.map +0 -1
  462. package/dist/dropi-ui/dropi-otp-send-code.entry.js.map +0 -1
  463. package/dist/dropi-ui/dropi-paginator.entry.js +0 -70
  464. package/dist/dropi-ui/dropi-paginator.entry.js.map +0 -1
  465. package/dist/dropi-ui/dropi-phone-input.entry.js.map +0 -1
  466. package/dist/dropi-ui/dropi-radio-button.entry.js.map +0 -1
  467. package/dist/dropi-ui/dropi-radio-selection-list.entry.js.map +0 -1
  468. package/dist/dropi-ui/dropi-read-more.entry.js.map +0 -1
  469. package/dist/dropi-ui/dropi-search.entry.js.map +0 -1
  470. package/dist/dropi-ui/dropi-select.entry.js.map +0 -1
  471. package/dist/dropi-ui/dropi-sidebar.entry.js.map +0 -1
  472. package/dist/dropi-ui/dropi-simple-stepper.entry.js.map +0 -1
  473. package/dist/dropi-ui/dropi-skeleton.entry.js.map +0 -1
  474. package/dist/dropi-ui/dropi-steps.entry.js.map +0 -1
  475. package/dist/dropi-ui/dropi-switch.entry.js.map +0 -1
  476. package/dist/dropi-ui/dropi-table.entry.js.map +0 -1
  477. package/dist/dropi-ui/dropi-tabs.entry.js.map +0 -1
  478. package/dist/dropi-ui/dropi-tag-type-product.entry.js.map +0 -1
  479. package/dist/dropi-ui/dropi-tag.entry.js +0 -69
  480. package/dist/dropi-ui/dropi-tag.entry.js.map +0 -1
  481. package/dist/dropi-ui/dropi-text-area.entry.js.map +0 -1
  482. package/dist/dropi-ui/dropi-time-line.entry.js.map +0 -1
  483. package/dist/dropi-ui/dropi-toast.entry.js.map +0 -1
  484. package/dist/dropi-ui/dropi-tooltip-v2.entry.js.map +0 -1
  485. package/dist/dropi-ui/dropi-tooltip.entry.js.map +0 -1
  486. package/dist/dropi-ui/dropi-ui.esm.js.map +0 -1
  487. package/dist/dropi-ui/dropi-vertical-steps.entry.js.map +0 -1
  488. package/dist/dropi-ui/dropi-youtube-lazy-video.entry.js.map +0 -1
  489. package/dist/dropi-ui/index-Cvp2LQOM.js +0 -4585
  490. package/dist/dropi-ui/index-Cvp2LQOM.js.map +0 -1
  491. package/dist/dropi-ui/index.esm.js.map +0 -1
@@ -1 +0,0 @@
1
- {"file":"dropi-city-selector.entry.js","mappings":";;AAAA,MAAM,oBAAoB,GAAG,MAAM,CAAC,qqHAAqqH,CAAC;;MC6B7rH,iBAAiB,GAAA,MAAA;;;;;;IAEpB,OAAO,GAAyB,EAAE;;IAEjB,cAAc,GAAiC,EAAE;;IAElE,WAAW,GAAW,uBAAuB;;IAE7C,QAAQ,GAAY,KAAK;;AAGxB,IAAA,oBAAoB;IAEZ,MAAM,GAAY,KAAK;IACvB,QAAQ,GAAwB,EAAE;IAClC,aAAa,GAAgB,EAAE;IAC/B,UAAU,GAAW,EAAE;;AAKxC,IAAA,cAAc,CAAC,CAAa,EAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;AACtD,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK;;;AAKvB,IAAA,cAAc,CAAC,GAAyB,EAAA;AACtC,QAAA,IAAI,GAAG,IAAI,IAAI,EAAE;AAAE,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE;YAAE;;QAC5C,IAAI,CAAC,aAAa,GAAG,OAAO,GAAG,KAAK,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAI,GAAmB;;AAIvF,IAAA,eAAe,CAAC,GAAiC,EAAA;AAC/C,QAAA,IAAI,GAAG,IAAI,IAAI,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;YAAE;;QACvC,IAAI,CAAC,QAAQ,GAAG,OAAO,GAAG,KAAK,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAI,GAA2B,CAAC;;IAG/F,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;AACjC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC;;AAG3C,IAAA,IAAY,QAAQ,GAAA;QAClB,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC,aAAa;QAC/C,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;QACvC,OAAO,IAAI,CAAC;AACT,aAAA,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAClF,aAAA,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;;IAG5B,MAAM,GAAA;QACZ,IAAI,IAAI,CAAC,QAAQ;YAAE;AACnB,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM;;IAGpB,UAAU,CAAC,KAAsB,EAAE,CAAa,EAAA;QACtD,CAAC,CAAC,eAAe,EAAE;QACnB,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AACjC,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC;;aACjD;YACL,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC;;AAE3C,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;;IAG5C,UAAU,CAAC,KAAsB,EAAE,CAAa,EAAA;QACtD,CAAC,CAAC,eAAe,EAAE;AACnB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC;AACtD,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;;AAG5C,IAAA,QAAQ,CAAC,KAAsB,EAAA;AACrC,QAAA,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE;AAClC,YAAA,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC;AACjD,YAAA,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC,KAAK;;AAE/B,QAAA,OAAO,MAAM,CAAC,KAAK,CAAC;;IAGtB,MAAM,GAAA;AACJ,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ;QAE5B,QACE,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAA,EAG7E,CAAA,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,IAAI,EAAC,QAAQ,EACb,KAAK,EAAC,kBAAkB,EACxB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,OAAO,EAAE,MAAM,IAAI,CAAC,MAAM,EAAE,EAAA,eAAA,EACd,SAAS,EAAA,eAAA,EACR,IAAI,CAAC,MAAM,EAAA,EAE1B,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,YAAY,EAAA,EACpB,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,KACzB,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAC,aAAa,EAAA,EAAE,IAAI,CAAC,WAAW,CAAQ,CACpD,EACA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,KACpB,YAAM,KAAK,EAAC,MAAM,EAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAA,EAChC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EACnB,CAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,KAAK,EAAC,aAAa,EAAA,YAAA,EACR,QAAQ,EACnB,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,EAAA,EAEvC,CAAA,CAAA,YAAA,EAAA,EAAY,IAAI,EAAC,aAAa,EAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,qBAAqB,EAAA,CAAG,CACjF,CACJ,CACR,CAAC,CACE,EACN,CAAA,CAAA,YAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,IAAI,EAAE,IAAI,CAAC,MAAM,GAAG,YAAY,GAAG,cAAc,EACjD,KAAK,EAAC,MAAM,EACZ,MAAM,EAAC,MAAM,EACb,KAAK,EAAC,eAAe,EAAA,CACrB,CACK,EAGR,IAAI,CAAC,MAAM,KACV,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,UAAU,EAAC,IAAI,EAAC,SAAS,EAAA,EAGlC,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,cAAc,EAAA,EACvB,CAAA,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAC,cAAc,EACpB,IAAI,EAAC,MAAM,EACX,WAAW,EAAC,WAAW,EACvB,KAAK,EAAE,IAAI,CAAC,UAAU,EACtB,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,UAAU,GAAI,CAAC,CAAC,MAA2B,CAAC,KAAK,CAAC,EAAE,EAC3E,YAAY,EAAC,KAAK,EAAA,CAClB,EACF,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAC,aAAa,EAAA,EACvB,CAAA,CAAA,YAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAY,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,eAAe,EAAA,CAAG,CACxE,CACH,CACF,EAGN,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,cAAc,EAAA,EACtB,MAAM,CAAC,MAAM,KAAK,CAAC,KAClB,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,YAAY,EAAA,EAAA,gBAAA,CAAqB,CAC7C,EACA,MAAM,CAAC,GAAG,CAAC,KAAK,KACf,CAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAC,OAAO,EAAA,EAClC,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,aAAa,IAAE,KAAK,CAAC,KAAK,CAAO,EAC3C,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAG;AACtB,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;YACrD,QACE,WACE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EACvB,KAAK,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,uBAAuB,EAAE,UAAU,EAAE,EACnE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EAC9C,IAAI,EAAC,QAAQ,EAAA,eAAA,EACE,UAAU,EAAA,EAEzB,CAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,EAAA,EAC/D,UAAU,KACT,CAAA,CAAA,YAAA,EAAA,EAAY,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,eAAe,EAAA,CAAG,CAC7E,CACI,EACP,CAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAC,YAAY,EAAA,EAAE,IAAI,CAAC,KAAK,CAAQ,CACxC;SAET,CAAC,CACE,CACP,CAAC,CACE,CACF,CACP,CACG;;;;;;;;;;;;;;;","names":[],"sources":["src/components/dropi-city-selector/dropi-city-selector.css?tag=dropi-city-selector&encapsulation=shadow","src/components/dropi-city-selector/dropi-city-selector.tsx"],"sourcesContent":[":host {\n display: block;\n width: 100%;\n position: relative;\n}\n\n*, *::before, *::after { box-sizing: border-box; }\n\n/* ── Wrapper ──────────────────────────────────────────────────────── */\n.city-selector {\n position: relative;\n width: 100%;\n}\n\n/* ── Trigger ──────────────────────────────────────────────────────── */\n.selector-trigger {\n width: 100%;\n min-height: 44px;\n padding: 6px 12px;\n border: 1px solid var(--Gray-Gray-200, #c3c9d9);\n border-radius: var(--Border-2, 8px);\n background: var(--Neutral-White, #ffffff);\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n cursor: pointer;\n text-align: left;\n font-family: inherit;\n transition: border-color 0.15s;\n}\n\n.selector-trigger:hover:not(:disabled) {\n border-color: var(--Gray-Gray-300, #a3abbf);\n}\n\n.selector-trigger:focus {\n outline: none;\n border-color: var(--Info-Info-500, #50a5f1);\n}\n\n.city-selector--disabled .selector-trigger {\n background: var(--Gray-Gray-50, #f7f8fa);\n border-color: var(--Gray-Gray-100, #e6eaf2);\n cursor: not-allowed;\n opacity: 0.6;\n}\n\n/* ── Chips area ───────────────────────────────────────────────────── */\n.chips-area {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n flex: 1;\n min-height: 26px;\n align-items: center;\n}\n\n.placeholder {\n color: var(--Gray-Gray-400, #858ea6);\n font-size: var(--font-size-s, 14px);\n}\n\n.chip {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n background: var(--Primary-Primary-50, #fff8f0);\n border: 1px solid var(--Primary-Primary-200, #fcd5a8);\n border-radius: var(--Border-1, 4px);\n padding: 2px 6px;\n font-size: var(--font-size-xs, 12px);\n color: var(--Primary-Primary-700, #b85c00);\n}\n\n.chip-remove {\n background: none;\n border: none;\n cursor: pointer;\n padding: 0;\n display: flex;\n align-items: center;\n}\n\n/* ── Dropdown ─────────────────────────────────────────────────────── */\n.dropdown {\n position: absolute;\n top: calc(100% + 4px);\n left: 0;\n right: 0;\n background: var(--Neutral-White, #ffffff);\n border: 1px solid var(--Gray-Gray-200, #c3c9d9);\n border-radius: var(--Border-2, 8px);\n box-shadow: 0 8px 24px rgba(0, 0, 0, 0.10);\n z-index: 200;\n overflow: hidden;\n}\n\n/* ── Search ───────────────────────────────────────────────────────── */\n.search-wrap {\n padding: 10px 12px;\n border-bottom: 1px solid var(--Gray-Gray-100, #e6eaf2);\n}\n\n.search-field {\n position: relative;\n display: flex;\n align-items: center;\n}\n\n.search-input {\n width: 100%;\n height: 36px;\n padding: 0 36px 0 12px;\n border: 1px solid var(--Gray-Gray-200, #c3c9d9);\n border-radius: var(--Border-2, 8px);\n font-size: var(--font-size-s, 14px);\n font-family: inherit;\n color: var(--Gray-Gray-700, #32394d);\n background: var(--Gray-Gray-50, #f7f8fa);\n outline: none;\n transition: border-color 0.15s;\n}\n\n.search-input:focus {\n border-color: var(--Info-Info-500, #50a5f1);\n background: var(--Neutral-White, #ffffff);\n}\n\n.search-input::placeholder {\n color: var(--Gray-Gray-400, #858ea6);\n}\n\n.search-icon {\n position: absolute;\n right: 10px;\n display: flex;\n align-items: center;\n pointer-events: none;\n}\n\n/* ── Options list ─────────────────────────────────────────────────── */\n.options-list {\n max-height: 280px;\n overflow-y: auto;\n background: var(--Neutral-White, #ffffff);\n}\n\n/* Scrollbar refinado */\n.options-list::-webkit-scrollbar { width: 6px; }\n.options-list::-webkit-scrollbar-track { background: transparent; }\n.options-list::-webkit-scrollbar-thumb {\n background: var(--Gray-Gray-200, #c3c9d9);\n border-radius: 4px;\n}\n\n/* ── Group label ──────────────────────────────────────────────────── */\n.group-label {\n padding: 14px 16px 8px;\n font-size: var(--font-size-m, 16px);\n font-weight: var(--font-weight-bold, 700);\n color: var(--Gray-Gray-800, #1f2433);\n background: var(--Neutral-White, #ffffff);\n}\n\n/* ── City option ──────────────────────────────────────────────────── */\n.city-option {\n padding: 10px 16px;\n display: flex;\n align-items: center;\n gap: 12px;\n cursor: pointer;\n font-size: var(--font-size-s, 14px);\n color: var(--Gray-Gray-700, #32394d);\n background: var(--Neutral-White, #ffffff);\n transition: background 0.1s;\n user-select: none;\n}\n\n.city-option:hover {\n background: var(--Gray-Gray-50, #f7f8fa);\n}\n\n.city-option--selected .city-label {\n color: var(--Gray-Gray-800, #1f2433);\n font-weight: var(--font-weight-medium, 500);\n}\n\n/* ── Checkbox visual ──────────────────────────────────────────────── */\n.checkbox {\n width: 22px;\n height: 22px;\n border: 1.5px solid var(--Gray-Gray-300, #c3c9d9);\n border-radius: var(--Border-1, 6px);\n background: var(--Neutral-White, #ffffff);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n transition: border-color 0.15s, background 0.15s;\n}\n\n.checkbox--checked {\n border-color: var(--Primary-Primary-500, #f49a3d);\n background: var(--Primary-Primary-500, #f49a3d);\n}\n\n.city-label {\n flex: 1;\n}\n\n/* ── Empty ────────────────────────────────────────────────────────── */\n.no-results {\n padding: 20px 16px;\n text-align: center;\n color: var(--Gray-Gray-400, #858ea6);\n font-size: var(--font-size-s, 14px);\n}\n","import { Component, Prop, Event, EventEmitter, State, Watch, h, Element, Listen } from '@stencil/core';\n\nexport interface CityOption {\n label: string;\n value: string | number;\n}\n\nexport interface CityGroup {\n label: string;\n value: string;\n items: CityOption[];\n}\n\n/**\n * @component dropi-city-selector\n * Multi-select city picker with grouped options and chip display.\n * Pass options as a JSON string or CityGroup[] array.\n *\n * @example\n * <dropi-city-selector\n * options='[{\"label\":\"Cundinamarca\",\"value\":\"CUN\",\"items\":[{\"label\":\"Bogotá\",\"value\":\"BOG\"}]}]'\n * placeholder=\"Selecciona ciudades\"\n * ></dropi-city-selector>\n */\n@Component({\n tag: 'dropi-city-selector',\n styleUrl: 'dropi-city-selector.css',\n shadow: true,\n})\nexport class DropiCitySelector {\n /** Grouped city options (array or JSON string) */\n @Prop() options: CityGroup[] | string = [];\n /** Currently selected city values */\n @Prop({ mutable: true }) selectedCities: (string | number)[] | string = [];\n /** Placeholder text */\n @Prop() placeholder: string = 'Seleccione una ciudad';\n /** Disable the selector */\n @Prop() disabled: boolean = false;\n\n /** Emitted when selection changes. Detail = selected values array. */\n @Event() selectedCitiesChange: EventEmitter<(string | number)[]>;\n\n @State() private isOpen: boolean = false;\n @State() private selected: (string | number)[] = [];\n @State() private parsedOptions: CityGroup[] = [];\n @State() private searchTerm: string = '';\n\n @Element() el!: HTMLElement;\n\n @Listen('click', { target: 'document' })\n handleDocClick(e: MouseEvent) {\n if (this.isOpen && !e.composedPath().includes(this.el)) {\n this.isOpen = false;\n }\n }\n\n @Watch('options')\n optionsChanged(val: CityGroup[] | string) {\n if (val == null) { this.parsedOptions = []; return; }\n this.parsedOptions = typeof val === 'string' ? JSON.parse(val) : (val as CityGroup[]);\n }\n\n @Watch('selectedCities')\n selectedChanged(val: (string | number)[] | string) {\n if (val == null) { this.selected = []; return; }\n this.selected = typeof val === 'string' ? JSON.parse(val) : [...(val as (string | number)[])];\n }\n\n componentWillLoad() {\n this.optionsChanged(this.options);\n this.selectedChanged(this.selectedCities);\n }\n\n private get filtered(): CityGroup[] {\n if (!this.searchTerm) return this.parsedOptions;\n const t = this.searchTerm.toLowerCase();\n return this.parsedOptions\n .map(g => ({ ...g, items: g.items.filter(c => c.label.toLowerCase().includes(t)) }))\n .filter(g => g.items.length > 0);\n }\n\n private toggle() {\n if (this.disabled) return;\n this.isOpen = !this.isOpen;\n }\n\n private toggleCity(value: string | number, e: MouseEvent) {\n e.stopPropagation();\n if (this.selected.includes(value)) {\n this.selected = this.selected.filter(v => v !== value);\n } else {\n this.selected = [...this.selected, value];\n }\n this.selectedCitiesChange.emit([...this.selected]);\n }\n\n private removeCity(value: string | number, e: MouseEvent) {\n e.stopPropagation();\n this.selected = this.selected.filter(v => v !== value);\n this.selectedCitiesChange.emit([...this.selected]);\n }\n\n private getLabel(value: string | number): string {\n for (const g of this.parsedOptions) {\n const found = g.items.find(c => c.value == value);\n if (found) return found.label;\n }\n return String(value);\n }\n\n render() {\n const groups = this.filtered;\n\n return (\n <div class={{ 'city-selector': true, 'city-selector--disabled': this.disabled }}>\n\n {/* ── Trigger ─────────────────────────────────────────────── */}\n <button\n type=\"button\"\n class=\"selector-trigger\"\n disabled={this.disabled}\n onClick={() => this.toggle()}\n aria-haspopup=\"listbox\"\n aria-expanded={this.isOpen}\n >\n <div class=\"chips-area\">\n {this.selected.length === 0 && (\n <span class=\"placeholder\">{this.placeholder}</span>\n )}\n {this.selected.map(val => (\n <span class=\"chip\" key={String(val)}>\n {this.getLabel(val)}\n <button\n type=\"button\"\n class=\"chip-remove\"\n aria-label=\"Quitar\"\n onClick={(e) => this.removeCity(val, e)}\n >\n <dropi-icon name=\"Close-small\" width=\"10px\" height=\"10px\" color=\"Primary-Primary-500\" />\n </button>\n </span>\n ))}\n </div>\n <dropi-icon\n name={this.isOpen ? 'Arrow-Up-2' : 'Arrow-Down-2'}\n width=\"16px\"\n height=\"16px\"\n color=\"Gray-Gray-500\"\n />\n </button>\n\n {/* ── Dropdown ────────────────────────────────────────────── */}\n {this.isOpen && (\n <div class=\"dropdown\" role=\"listbox\">\n\n {/* Search with lupa icon */}\n <div class=\"search-wrap\">\n <div class=\"search-field\">\n <input\n class=\"search-input\"\n type=\"text\"\n placeholder=\"Buscar...\"\n value={this.searchTerm}\n onInput={(e) => { this.searchTerm = (e.target as HTMLInputElement).value; }}\n autoComplete=\"off\"\n />\n <span class=\"search-icon\">\n <dropi-icon name=\"Search\" width=\"16px\" height=\"16px\" color=\"Gray-Gray-400\" />\n </span>\n </div>\n </div>\n\n {/* Options list */}\n <div class=\"options-list\">\n {groups.length === 0 && (\n <div class=\"no-results\">Sin resultados</div>\n )}\n {groups.map(group => (\n <div key={group.value} class=\"group\">\n <div class=\"group-label\">{group.label}</div>\n {group.items.map(city => {\n const isSelected = this.selected.includes(city.value);\n return (\n <div\n key={String(city.value)}\n class={{ 'city-option': true, 'city-option--selected': isSelected }}\n onClick={(e) => this.toggleCity(city.value, e)}\n role=\"option\"\n aria-selected={isSelected}\n >\n <span class={{ 'checkbox': true, 'checkbox--checked': isSelected }}>\n {isSelected && (\n <dropi-icon name=\"Check\" width=\"10px\" height=\"10px\" color=\"Neutral-White\" />\n )}\n </span>\n <span class=\"city-label\">{city.label}</span>\n </div>\n );\n })}\n </div>\n ))}\n </div>\n </div>\n )}\n </div>\n );\n }\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"dropi-color-picker.entry.js","mappings":"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","names":[],"sources":["src/components/dropi-color-picker/dropi-color-picker.css?tag=dropi-color-picker&encapsulation=shadow","src/components/dropi-color-picker/dropi-color-picker.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.general-container {\n position: relative;\n width: fit-content;\n}\n\n.main-input-container {\n display: flex;\n flex-wrap: nowrap;\n justify-content: flex-start;\n align-items: center;\n gap: var(--Size-3);\n position: relative;\n width: fit-content;\n}\n\n.main-input-container .overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 100;\n cursor: pointer;\n}\n\n.line-color-preview {\n width: 40px;\n height: 40px;\n border-radius: 50%;\n border: 1px solid var(--Gray-Gray-200);\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 5px;\n}\n\n.line-color-preview .color-preview {\n width: 100%;\n height: 100%;\n border-radius: 50%;\n border: 1px solid var(--Gray-Gray-200);\n}\n\n.position-right {\n top: 0;\n left: 250px;\n}\n\n.position-left {\n top: 0;\n right: 200px;\n}\n\n.position-top {\n bottom: 55px;\n}\n\n.position-bottom {\n top: 55px;\n}\n\n.position-bottom::before {\n transform: rotate(90deg);\n left: 50%;\n top: -15px;\n}\n\n.position-right::before {\n left: -6px;\n top: 10px;\n}\n\n.position-top::before {\n transform: rotate(270deg);\n left: 50%;\n bottom: -15px;\n}\n\n.position-left::before {\n transform: rotate(180deg);\n right: -9px;\n}\n\n.color-picker-container::before {\n content: '';\n position: absolute;\n width: 0;\n height: 0;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n border-right: 10px solid var(--Neutral-White);\n z-index: 1;\n}\n\n.color-picker-container {\n width: 280px;\n padding: var(--Size-4);\n background: var(--Neutral-White);\n border-radius: var(--Size-2);\n box-shadow: var(--Shadow-large);\n position: absolute;\n z-index: 100;\n transform-origin: top left;\n opacity: 0;\n transition:\n transform 0.2s ease-out,\n opacity 0.2s ease-out;\n pointer-events: none;\n}\n\n.color-picker-container .main-color-canvas-container {\n position: relative;\n margin-bottom: var(--Size-4);\n border: 1px solid var(--Gray-Gray-200);\n border-radius: var(--Size-1);\n display: flex;\n justify-self: center;\n align-items: center;\n}\n\n.color-picker-container .main-color-canvas-container canvas {\n display: block;\n border-radius: var(--Size-1);\n}\n\n.color-picker-container .main-color-canvas-container .color-selector-pointer {\n position: absolute;\n width: var(--Size-3);\n height: var(--Size-3);\n border: 2px solid var(--Neutral-White);\n border-radius: 50%;\n transform: translate(-6px, -6px);\n pointer-events: none;\n}\n\n.color-picker-container .slider-container {\n display: flex;\n flex-direction: column;\n gap: var(--Size-3);\n}\n\n.color-picker-container .slider-container .slider-group {\n display: flex;\n flex-direction: column;\n gap: var(--Size-1);\n}\n\n.color-picker-container .slider-container .slider-group label {\n font-size: var(--font-size-xs);\n color: var(--Gray-Gray-500);\n font-weight: var(--font-weight-bold);\n}\n\n.color-picker-container .slider-container .slider-group .hue-slider-container,\n.color-picker-container .slider-container .slider-group .opacity-slider-container {\n position: relative;\n height: var(--Size-3);\n border-radius: var(--Size-4);\n overflow: hidden;\n}\n\n.color-picker-container .slider-container .slider-group .hue-slider-container canvas,\n.color-picker-container .slider-container .slider-group .opacity-slider-container canvas {\n display: block;\n width: 100%;\n height: 100%;\n}\n\n.color-picker-container .slider-container .slider-group .hue-slider-container .slider-pointer,\n.color-picker-container .slider-container .slider-group .opacity-slider-container .slider-pointer {\n position: absolute;\n top: 0;\n height: var(--Size-3);\n width: var(--Size-3);\n background: transparent;\n border: 2px solid var(--Neutral-White);\n border-radius: 50%;\n pointer-events: none;\n}\n\n.color-picker-container.show {\n transform: scale(1);\n opacity: 1;\n pointer-events: auto;\n}\n\n.color-info .color-label {\n font-size: var(--font-size-xs);\n color: var(--Gray-Gray-500);\n font-weight: var(--font-weight-bold);\n text-transform: uppercase;\n margin-bottom: var(--Size-2);\n}\n\n.color-info .color-input {\n border: 1px solid var(--Gray-Gray-200, #ddd);\n border-radius: var(--Size-1);\n padding: 6px 8px;\n font-size: var(--font-size-s);\n width: 100%;\n font-family: monospace;\n text-transform: uppercase;\n background-color: var(--Neutral-White, #ffffff);\n color: var(--Gray-Gray-800, #1f2433);\n outline: none;\n}\n","import { Component, Prop, State, Event, EventEmitter, h, Element, Watch } from '@stencil/core';\n\n@Component({\n tag: 'dropi-color-picker',\n styleUrl: 'dropi-color-picker.css',\n shadow: true,\n})\nexport class DropiColorPicker {\n @Element() el!: HTMLElement;\n\n @Prop({ mutable: true }) currentColor: string = '#ffffff';\n @Prop() position: 'top' | 'bottom' | 'left' | 'right' = 'right';\n\n @Event() colorChange: EventEmitter<string>;\n\n @State() private color: string = '';\n @State() private hue: number = 0;\n @State() private saturation: number = 0;\n @State() private currentVal: number = 0;\n @State() private opacity: number = 100;\n \n @State() private showEdit: boolean = false;\n\n private isDragging: boolean = false;\n private isHueDragging: boolean = false;\n private isOpacityDragging: boolean = false;\n\n private colorCanvas!: HTMLCanvasElement;\n private hueCanvas!: HTMLCanvasElement;\n private opacityCanvas!: HTMLCanvasElement;\n\n @Watch('value')\n onValueChange(newValue: string) {\n if (!this.showEdit) {\n this.color = newValue;\n this.syncFromHex();\n }\n }\n\n componentWillLoad() {\n this.color = this.currentColor;\n this.syncFromHex();\n }\n\n componentDidLoad() {\n document.addEventListener('mousemove', this.onMouseMove.bind(this));\n document.addEventListener('mouseup', this.onMouseUp.bind(this));\n document.addEventListener('click', this.handleClickOutside.bind(this));\n \n // Defer canvas drawing slightly to ensure elements are rendered\n setTimeout(() => {\n if (this.hueCanvas) this.drawHueCanvas();\n if (this.colorCanvas) this.drawColorCanvas();\n if (this.opacityCanvas) this.drawOpacityCanvas();\n }, 50);\n }\n\n disconnectedCallback() {\n document.removeEventListener('mousemove', this.onMouseMove.bind(this));\n document.removeEventListener('mouseup', this.onMouseUp.bind(this));\n document.removeEventListener('click', this.handleClickOutside.bind(this));\n }\n\n onMouseMove(event: MouseEvent) {\n if (this.isDragging) {\n this.updateColorFromPosition(event);\n return;\n }\n if (this.isHueDragging) {\n this.updateHueFromPosition(event);\n return;\n }\n if (this.isOpacityDragging) {\n this.updateOpacityFromPosition(event);\n return;\n }\n }\n\n onMouseUp() {\n this.isDragging = false;\n this.isHueDragging = false;\n this.isOpacityDragging = false;\n }\n\n handleClickOutside(event: MouseEvent) {\n // Determine if the click target is outside the host element\n const clickedInside = event.composedPath().includes(this.el);\n if (!clickedInside && this.showEdit) {\n this.showEdit = false;\n this.currentColor = this.color;\n this.colorChange.emit(this.color);\n }\n }\n\n drawColorCanvas() {\n if (!this.colorCanvas) return;\n const ctx = this.colorCanvas.getContext('2d')!;\n const width = this.colorCanvas.width;\n const height = this.colorCanvas.height;\n\n const saturationGradient = ctx.createLinearGradient(0, 0, width, 0);\n saturationGradient.addColorStop(0, '#FFFFFF');\n saturationGradient.addColorStop(1, `hsl(${this.hue ?? 0}, 100%, 50%)`);\n\n const valueGradient = ctx.createLinearGradient(0, 0, 0, height);\n valueGradient.addColorStop(0, 'rgba(0, 0, 0, 0)');\n valueGradient.addColorStop(1, '#000000');\n\n ctx.fillStyle = saturationGradient;\n ctx.fillRect(0, 0, width, height);\n ctx.fillStyle = valueGradient;\n ctx.fillRect(0, 0, width, height);\n }\n\n drawHueCanvas() {\n if (!this.hueCanvas) return;\n const ctx = this.hueCanvas.getContext('2d')!;\n const width = this.hueCanvas.width;\n const height = this.hueCanvas.height;\n\n const hueGradient = ctx.createLinearGradient(0, 0, width, 0);\n for (let i = 0; i <= 360; i += 60) {\n hueGradient.addColorStop(i / 360, `hsl(${i}, 100%, 50%)`);\n }\n\n ctx.fillStyle = hueGradient;\n ctx.fillRect(0, 0, width, height);\n }\n\n drawOpacityCanvas() {\n if (!this.opacityCanvas) return;\n const ctx = this.opacityCanvas.getContext('2d')!;\n const width = this.opacityCanvas.width;\n const height = this.opacityCanvas.height;\n\n ctx.clearRect(0, 0, width, height);\n ctx.fillStyle = '#FFFFFF';\n ctx.fillRect(0, 0, width, height);\n\n const rgb = this.hsvToRgb(this.hue, this.saturation, this.currentVal);\n\n const opacityGradient = ctx.createLinearGradient(0, 0, width, 0);\n opacityGradient.addColorStop(0, `rgba(${rgb.r}, ${rgb.g}, ${rgb.b}, 0)`);\n opacityGradient.addColorStop(1, `rgba(${rgb.r}, ${rgb.g}, ${rgb.b}, 1)`);\n\n ctx.fillStyle = opacityGradient;\n ctx.fillRect(0, 0, width, height);\n }\n\n updateColor() {\n const rgb = this.hsvToRgb(this.hue, this.saturation, this.currentVal);\n const hex = this.rgbToHex(rgb.r, rgb.g, rgb.b, this.opacity);\n this.color = hex;\n this.drawColorCanvas();\n this.drawOpacityCanvas();\n this.currentColor = hex;\n this.colorChange.emit(this.color);\n }\n\n hsvToRgb(h: number, s: number, v: number): { r: number; g: number; b: number } {\n s /= 100;\n v /= 100;\n\n const c = v * s;\n const x = c * (1 - Math.abs(((h / 60) % 2) - 1));\n const m = v - c;\n\n let r = 0, g = 0, b = 0;\n\n if (h >= 0 && h < 60) { r = c; g = x; b = 0; }\n else if (h >= 60 && h < 120) { r = x; g = c; b = 0; }\n else if (h >= 120 && h < 180) { r = 0; g = c; b = x; }\n else if (h >= 180 && h < 240) { r = 0; g = x; b = c; }\n else if (h >= 240 && h < 300) { r = x; g = 0; b = c; }\n else if (h >= 300 && h <= 360) { r = c; g = 0; b = x; }\n\n return {\n r: Math.round((r + m) * 255),\n g: Math.round((g + m) * 255),\n b: Math.round((b + m) * 255),\n };\n }\n\n rgbToHex(red: number, green: number, black: number, opacity = 100) {\n const toHex = (val: number) => {\n const hex = Math.round(val).toString(16);\n return hex.padStart(2, '0');\n };\n\n const rHex = toHex(red);\n const gHex = toHex(green);\n const bHex = toHex(black);\n const alpha = Math.round((opacity / 100) * 255);\n const aHex = toHex(alpha);\n\n return `#${rHex}${gHex}${bHex}${aHex}`;\n }\n\n syncFromHex() {\n if (/^#?[0-9A-F]{6}([0-9A-F]{2})?$/i.test(this.color)) {\n if (!this.color.startsWith('#')) {\n this.color = '#' + this.color;\n }\n\n const hex = this.color.substring(1);\n const r = parseInt(hex.substring(0, 2), 16);\n const g = parseInt(hex.substring(2, 4), 16);\n const b = parseInt(hex.substring(4, 6), 16);\n const a = hex.length === 8 ? parseInt(hex.substring(6, 8), 16) / 255 : 1;\n\n const hsv = this.rgbToHsv(r, g, b, a);\n this.hue = hsv.h;\n this.saturation = hsv.s;\n this.currentVal = hsv.v;\n this.opacity = a * 100;\n\n this.drawColorCanvas();\n this.drawOpacityCanvas();\n }\n }\n\n onHexInputChange(event: Event) {\n this.color = (event.target as HTMLInputElement).value;\n this.syncFromHex();\n }\n\n rgbToHsv(r: number, g: number, b: number, a: number = 1): { h: number; s: number; v: number; a: number } {\n r /= 255;\n g /= 255;\n b /= 255;\n\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const delta = max - min;\n\n let h = 0;\n if (delta !== 0) {\n if (max === r) h = 60 * (((g - b) / delta) % 6);\n else if (max === g) h = 60 * ((b - r) / delta + 2);\n else if (max === b) h = 60 * ((r - g) / delta + 4);\n }\n\n if (h < 0) h += 360;\n\n const s = max === 0 ? 0 : (delta / max) * 100;\n const v = max * 100;\n\n return {\n h: Math.round(h),\n s: Math.round(s),\n v: Math.round(v),\n a: parseFloat(a.toFixed(3)),\n };\n }\n\n getCanvasPosition(canvas: HTMLCanvasElement, event: MouseEvent): { x: number; y: number } {\n const rect = canvas.getBoundingClientRect();\n const scaleX = canvas.width / rect.width;\n const scaleY = canvas.height / rect.height;\n\n return {\n x: (event.clientX - rect.left) * scaleX,\n y: (event.clientY - rect.top) * scaleY,\n };\n }\n\n onColorMouseDown(event: MouseEvent) {\n this.isDragging = true;\n this.updateColorFromPosition(event);\n }\n\n onHueMouseDown(event: MouseEvent) {\n this.isHueDragging = true;\n this.updateHueFromPosition(event);\n }\n\n onOpacityMouseDown(event: MouseEvent) {\n this.isOpacityDragging = true;\n this.updateOpacityFromPosition(event);\n }\n\n updateColorFromPosition(event: MouseEvent) {\n if (!this.colorCanvas) return;\n const pos = this.getCanvasPosition(this.colorCanvas, event);\n\n const x = Math.max(0, Math.min(pos.x, 256));\n const y = Math.max(0, Math.min(pos.y, 150));\n\n this.saturation = Math.round((x / 256) * 100);\n this.currentVal = 100 - Math.round((y / 150) * 100);\n this.updateColor();\n }\n\n updateHueFromPosition(event: MouseEvent) {\n if (!this.hueCanvas) return;\n const pos = this.getCanvasPosition(this.hueCanvas, event);\n const x = Math.max(0, Math.min(pos.x, 256));\n this.hue = Math.round((x / 256) * 360);\n this.drawColorCanvas();\n this.updateColor();\n }\n\n updateOpacityFromPosition(event: MouseEvent) {\n if (!this.opacityCanvas) return;\n const pos = this.getCanvasPosition(this.opacityCanvas, event);\n const x = Math.max(0, Math.min(pos.x, 256));\n\n this.opacity = Math.round((x / 256) * 100);\n this.updateColor();\n }\n\n showEditor() {\n this.showEdit = !this.showEdit;\n this.color = this.currentColor;\n if (this.showEdit) {\n setTimeout(() => {\n this.drawHueCanvas();\n this.drawColorCanvas();\n this.drawOpacityCanvas();\n this.syncFromHex();\n }, 100);\n }\n }\n\n render() {\n return (\n <div class=\"general-container\">\n <div class=\"main-input-container\">\n <div class=\"overlay\" onClick={() => this.showEditor()}></div>\n <div class=\"line-color-preview\">\n <div class=\"color-preview\" style={{ background: this.currentColor }}></div>\n </div>\n <div class=\"color-info\">\n <input \n type=\"text\" \n class=\"color-input\" \n value={this.currentColor} \n maxLength={9} \n readOnly \n />\n </div>\n </div>\n\n <div class={`color-picker-container position-${this.position} ${this.showEdit ? 'show' : ''}`}>\n <div class=\"main-color-canvas-container\">\n <canvas \n ref={(el) => this.colorCanvas = el as HTMLCanvasElement} \n width={256} \n height={150} \n onMouseDown={(e) => this.onColorMouseDown(e)}\n ></canvas>\n <div\n class=\"color-selector-pointer\"\n style={{\n left: `${(this.saturation / 100) * 256}px`,\n top: `${((100 - this.currentVal) / 100) * 150}px`\n }}\n ></div>\n </div>\n\n <div class=\"slider-container\">\n <div class=\"slider-group\">\n <div class=\"hue-slider-container\">\n <canvas \n ref={(el) => this.hueCanvas = el as HTMLCanvasElement} \n width={256} \n height={20} \n onMouseDown={(e) => this.onHueMouseDown(e)}\n ></canvas>\n <div class=\"slider-pointer\" style={{ left: `${(this.hue / 360) * 234}px` }}></div>\n </div>\n </div>\n\n <div class=\"slider-group\">\n <div class=\"opacity-slider-container\">\n <canvas\n ref={(el) => this.opacityCanvas = el as HTMLCanvasElement}\n width={256}\n height={20}\n onMouseDown={(e) => this.onOpacityMouseDown(e)}\n ></canvas>\n <div class=\"slider-pointer\" style={{ left: `${(this.opacity / 100) * 234}px` }}></div>\n </div>\n </div>\n\n <div class=\"color-info\">\n <div class=\"color-label\">HEX</div>\n <input\n type=\"text\"\n class=\"color-input\"\n value={this.color}\n onInput={(e) => this.onHexInputChange(e)}\n maxLength={9}\n />\n </div>\n </div>\n </div>\n </div>\n );\n }\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"dropi-country-flags.entry.js","mappings":";;AAAA,MAAM,oBAAoB,GAAG,MAAM,CAAC,6TAA6T,CAAC;;MCcrV,iBAAiB,GAAA,MAAA;;;;;IAEpB,OAAO,GAAW,EAAE;;IAEpB,WAAW,GAAoC,MAAM;;IAErD,KAAK,GAAW,EAAE;;IAElB,MAAM,GAAW,EAAE;AAE3B,IAAA,IAAY,GAAG,GAAA;AACb,QAAA,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,WAAW,EAAE;AAC/C,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,QAAQ,EAAE;AACjC,YAAA,OAAO,mDAAmD,IAAI,CAAC,WAAW,EAAE,MAAM;;QAEpF,OAAO,CAAA,qBAAA,EAAwB,IAAI,CAAA,YAAA,CAAc;;IAGnD,MAAM,GAAA;QACJ,MAAM,KAAK,GAA2B,EAAE;QACxC,IAAI,IAAI,CAAC,KAAK;YAAE,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,CAAA,EAAG,IAAI,CAAC,KAAK,CAAA,EAAA,CAAI;QAC3F,IAAI,IAAI,CAAC,MAAM;YAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAA,EAAG,IAAI,CAAC,MAAM,CAAA,EAAA,CAAI;QAEhG,QACE,CAAA,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAQ,KAAK,EAAE,CAAA,KAAA,EAAQ,IAAI,CAAC,WAAW,IAAI,MAAM,EAAE,EAAA,EACjD,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAA,KAAA,EAAQ,IAAI,CAAC,OAAO,EAAE,EAAA,CAAI,CAC1D;;;;;;;","names":[],"sources":["src/components/dropi-country-flags/dropi-country-flags.css?tag=dropi-country-flags&encapsulation=shadow","src/components/dropi-country-flags/dropi-country-flags.tsx"],"sourcesContent":[":host {\n display: inline-flex;\n}\n\n.flag {\n max-width: 40px;\n max-height: 40px;\n margin: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.flag img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n\n.circle {\n border-radius: 50%;\n overflow: hidden;\n}\n\n.rectangle {\n border-radius: 4px;\n overflow: hidden;\n max-width: 32px !important;\n max-height: 24px !important;\n}\n","import { Component, Prop, h } from '@stencil/core';\n\n/**\n * @component dropi-country-flags\n * Displays a country flag image. Supports circle, rectangle, and flat styles.\n *\n * @example\n * <dropi-country-flags country=\"CO\" style=\"circle\"></dropi-country-flags>\n */\n@Component({\n tag: 'dropi-country-flags',\n styleUrl: 'dropi-country-flags.css',\n shadow: true,\n})\nexport class DropiCountryFlags {\n /** ISO 3166-1 alpha-2 country code (e.g. \"CO\", \"US\") */\n @Prop() country: string = '';\n /** Visual style: circle uses circle-flags CDN, rectangle/flat uses flagsapi */\n @Prop() customStyle: 'circle' | 'rectangle' | 'flat' = 'flat';\n /** Width in px */\n @Prop() width: string = '';\n /** Height in px */\n @Prop() height: string = '';\n\n private get src(): string {\n const code = (this.country || '').toUpperCase();\n if (this.customStyle === 'circle') {\n return `https://hatscripts.github.io/circle-flags/flags/${code.toLowerCase()}.svg`;\n }\n return `https://flagsapi.com/${code}/flat/64.png`;\n }\n\n render() {\n const style: Record<string, string> = {};\n if (this.width) style['width'] = this.width.includes('px') ? this.width : `${this.width}px`;\n if (this.height) style['height'] = this.height.includes('px') ? this.height : `${this.height}px`;\n\n return (\n <figure class={`flag ${this.customStyle ?? 'flat'}`}>\n <img src={this.src} style={style} alt={`flag-${this.country}`} />\n </figure>\n );\n }\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"dropi-country-selector.entry.js","mappings":"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","names":[],"sources":["src/components/dropi-country-selector/dropi-country-selector.css?tag=dropi-country-selector&encapsulation=shadow","src/components/dropi-country-selector/dropi-country-selector.tsx"],"sourcesContent":[":host {\n display: block;\n width: 100%;\n text-align: left;\n}\n\n*, *::before, *::after { box-sizing: border-box; }\n\n.custom-select {\n position: relative;\n width: 100%;\n}\n\n/* ── Label ───────────────────────────────────────────────────────── */\nlabel {\n display: block;\n font-size: var(--font-size-xs, 11px);\n font-weight: var(--font-weight-regular, 400);\n color: var(--Gray-Gray-600, #475066);\n margin-bottom: 6px;\n}\n\n.required {\n color: var(--Error-Error-500, #ef4444);\n margin-left: 2px;\n}\n\n/* ── Trigger button ──────────────────────────────────────────────── */\n.select-button {\n width: 100%;\n height: 44px;\n padding: 0 12px;\n border: 1px solid var(--Gray-Gray-200, #c3c9d9);\n border-radius: var(--Border-2, 8px);\n background: var(--Neutral-White, #ffffff);\n color: var(--Gray-Gray-500, #69738c);\n font-size: var(--font-size-s, 14px);\n font-family: inherit;\n display: flex;\n justify-content: space-between;\n align-items: center;\n text-align: left;\n cursor: pointer;\n transition: border-color 0.15s ease;\n}\n\n.select-button:focus {\n outline: none;\n border-color: var(--Info-Info-500, #3b82f6);\n}\n\n.select-button:disabled {\n border-color: var(--Gray-Gray-200, #c3c9d9);\n color: var(--Gray-Gray-400, #858ea6);\n background: var(--Gray-Gray-50, #f7f8fa);\n cursor: not-allowed;\n}\n\n.select-button.select-completed {\n color: var(--Gray-Gray-700, #32394d);\n}\n\n.select-button.select-invalid {\n border-color: var(--Error-Error-500, #ef4444);\n}\n\n.selected-content {\n display: flex;\n align-items: center;\n gap: 8px;\n overflow: hidden;\n flex: 1;\n}\n\n.selected-option {\n display: flex;\n align-items: center;\n gap: 8px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--Gray-Gray-700, #32394d);\n font-size: var(--font-size-s, 14px);\n}\n\n.placeholder-text {\n color: var(--Gray-Gray-400, #858ea6);\n font-size: var(--font-size-s, 14px);\n}\n\n/* ── Flag ────────────────────────────────────────────────────────── */\n.flag-img {\n border-radius: var(--Border-1, 4px);\n width: 24px;\n height: 24px;\n object-fit: cover;\n flex-shrink: 0;\n}\n\n/* ── Dropdown ────────────────────────────────────────────────────── */\n.select-dropdown {\n position: absolute;\n top: calc(100% + 4px);\n left: 0;\n right: 0;\n background: var(--Neutral-White, #ffffff);\n border: 1px solid var(--Gray-Gray-200, #c3c9d9);\n border-radius: var(--Border-2, 8px);\n z-index: 200;\n list-style: none;\n padding: 0;\n margin: 0;\n box-shadow: 0 8px 24px rgba(0, 0, 0, 0.10);\n overflow: hidden;\n transition: max-height 0.2s ease, opacity 0.2s ease;\n}\n\n.select-dropdown.expanded {\n max-height: 300px;\n opacity: 1;\n overflow-y: auto;\n}\n\n.select-dropdown.collapsed {\n max-height: 0;\n opacity: 0;\n pointer-events: none;\n border-color: transparent;\n box-shadow: none;\n}\n\n/* Scrollbar — siempre claro, nunca negro */\n.select-dropdown::-webkit-scrollbar { width: 6px; }\n.select-dropdown::-webkit-scrollbar-track { background: transparent; }\n.select-dropdown::-webkit-scrollbar-thumb {\n background: var(--Gray-Gray-200, #c3c9d9);\n border-radius: 4px;\n}\n.select-dropdown::-webkit-scrollbar-thumb:hover {\n background: var(--Gray-Gray-300, #a3abbf);\n}\n\n/* ── Search ──────────────────────────────────────────────────────── */\n.search-li {\n padding: 10px 12px;\n position: sticky;\n top: 0;\n background: var(--Neutral-White, #ffffff);\n z-index: 1;\n border-bottom: 1px solid var(--Gray-Gray-100, #e6eaf2);\n}\n\n.search-field {\n position: relative;\n display: flex;\n align-items: center;\n}\n\n.country-search {\n width: 100%;\n height: 36px;\n padding: 0 36px 0 12px;\n border: 1px solid var(--Gray-Gray-200, #c3c9d9);\n border-radius: var(--Border-2, 8px);\n outline: none;\n font-size: var(--font-size-s, 14px);\n font-family: inherit;\n color: var(--Gray-Gray-700, #32394d);\n background: var(--Gray-Gray-50, #f7f8fa);\n transition: border-color 0.15s, background 0.15s;\n}\n\n.country-search:focus {\n border-color: var(--Info-Info-500, #50a5f1);\n background: var(--Neutral-White, #ffffff);\n}\n\n.country-search::placeholder {\n color: var(--Gray-Gray-400, #858ea6);\n}\n\n.search-icon {\n position: absolute;\n right: 10px;\n display: flex;\n align-items: center;\n pointer-events: none;\n}\n\n/* ── Options ─────────────────────────────────────────────────────── */\n.option {\n width: 100%;\n min-height: 44px;\n padding: 10px 16px;\n border: none;\n background: transparent;\n text-align: left;\n color: var(--Gray-Gray-700, #32394d);\n font-size: var(--font-size-s, 14px);\n font-family: inherit;\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 10px;\n transition: background 0.1s ease;\n white-space: nowrap;\n}\n\n.option:hover {\n background: var(--Gray-Gray-50, #f7f8fa);\n}\n","import { Component, Prop, Event, EventEmitter, State, Watch, h, Element, Listen } from '@stencil/core';\n\nexport interface CountryItem {\n name: string;\n code: string;\n codePhone: string;\n}\n\nconst COUNTRIES: CountryItem[] = [\n { name: 'Afghanistan', code: 'AF', codePhone: '93' },\n { name: 'Albania', code: 'AL', codePhone: '355' },\n { name: 'Algeria', code: 'DZ', codePhone: '213' },\n { name: 'Argentina', code: 'AR', codePhone: '54' },\n { name: 'Australia', code: 'AU', codePhone: '61' },\n { name: 'Austria', code: 'AT', codePhone: '43' },\n { name: 'Azerbaijan', code: 'AZ', codePhone: '994' },\n { name: 'Bahamas', code: 'BS', codePhone: '1242' },\n { name: 'Bahrain', code: 'BH', codePhone: '973' },\n { name: 'Bangladesh', code: 'BD', codePhone: '880' },\n { name: 'Belgium', code: 'BE', codePhone: '32' },\n { name: 'Bolivia', code: 'BO', codePhone: '591' },\n { name: 'Brazil', code: 'BR', codePhone: '55' },\n { name: 'Cambodia', code: 'KH', codePhone: '855' },\n { name: 'Canada', code: 'CA', codePhone: '1' },\n { name: 'Chile', code: 'CL', codePhone: '56' },\n { name: 'China', code: 'CN', codePhone: '86' },\n { name: 'Colombia', code: 'CO', codePhone: '57' },\n { name: 'Costa Rica', code: 'CR', codePhone: '506' },\n { name: 'Cuba', code: 'CU', codePhone: '53' },\n { name: 'Czech Republic', code: 'CZ', codePhone: '420' },\n { name: 'Denmark', code: 'DK', codePhone: '45' },\n { name: 'Dominican Republic', code: 'DO', codePhone: '1' },\n { name: 'Ecuador', code: 'EC', codePhone: '593' },\n { name: 'Egypt', code: 'EG', codePhone: '20' },\n { name: 'El Salvador', code: 'SV', codePhone: '503' },\n { name: 'Estonia', code: 'EE', codePhone: '372' },\n { name: 'Ethiopia', code: 'ET', codePhone: '251' },\n { name: 'Finland', code: 'FI', codePhone: '358' },\n { name: 'France', code: 'FR', codePhone: '33' },\n { name: 'Germany', code: 'DE', codePhone: '49' },\n { name: 'Ghana', code: 'GH', codePhone: '233' },\n { name: 'Greece', code: 'GR', codePhone: '30' },\n { name: 'Guatemala', code: 'GT', codePhone: '502' },\n { name: 'Honduras', code: 'HN', codePhone: '504' },\n { name: 'Hong Kong', code: 'HK', codePhone: '852' },\n { name: 'Hungary', code: 'HU', codePhone: '36' },\n { name: 'India', code: 'IN', codePhone: '91' },\n { name: 'Indonesia', code: 'ID', codePhone: '62' },\n { name: 'Iran, Islamic Republic Of', code: 'IR', codePhone: '98' },\n { name: 'Iraq', code: 'IQ', codePhone: '964' },\n { name: 'Ireland', code: 'IE', codePhone: '353' },\n { name: 'Israel', code: 'IL', codePhone: '972' },\n { name: 'Italy', code: 'IT', codePhone: '39' },\n { name: 'Jamaica', code: 'JM', codePhone: '1876' },\n { name: 'Japan', code: 'JP', codePhone: '81' },\n { name: 'Jordan', code: 'JO', codePhone: '962' },\n { name: 'Kazakhstan', code: 'KZ', codePhone: '7' },\n { name: 'Kenya', code: 'KE', codePhone: '254' },\n { name: 'Kuwait', code: 'KW', codePhone: '965' },\n { name: 'Lebanon', code: 'LB', codePhone: '961' },\n { name: 'Malaysia', code: 'MY', codePhone: '60' },\n { name: 'Mexico', code: 'MX', codePhone: '52' },\n { name: 'Morocco', code: 'MA', codePhone: '212' },\n { name: 'Netherlands', code: 'NL', codePhone: '31' },\n { name: 'New Zealand', code: 'NZ', codePhone: '64' },\n { name: 'Nicaragua', code: 'NI', codePhone: '505' },\n { name: 'Nigeria', code: 'NG', codePhone: '234' },\n { name: 'Norway', code: 'NO', codePhone: '47' },\n { name: 'Pakistan', code: 'PK', codePhone: '92' },\n { name: 'Panama', code: 'PA', codePhone: '507' },\n { name: 'Paraguay', code: 'PY', codePhone: '595' },\n { name: 'Peru', code: 'PE', codePhone: '51' },\n { name: 'Philippines', code: 'PH', codePhone: '63' },\n { name: 'Poland', code: 'PL', codePhone: '48' },\n { name: 'Portugal', code: 'PT', codePhone: '351' },\n { name: 'Qatar', code: 'QA', codePhone: '974' },\n { name: 'Romania', code: 'RO', codePhone: '40' },\n { name: 'Russian Federation', code: 'RU', codePhone: '7' },\n { name: 'Saudi Arabia', code: 'SA', codePhone: '966' },\n { name: 'Singapore', code: 'SG', codePhone: '65' },\n { name: 'South Africa', code: 'ZA', codePhone: '27' },\n { name: 'Spain', code: 'ES', codePhone: '34' },\n { name: 'Sri Lanka', code: 'LK', codePhone: '94' },\n { name: 'Sweden', code: 'SE', codePhone: '46' },\n { name: 'Switzerland', code: 'CH', codePhone: '41' },\n { name: 'Taiwan, Province of China', code: 'TW', codePhone: '886' },\n { name: 'Thailand', code: 'TH', codePhone: '66' },\n { name: 'Tunisia', code: 'TN', codePhone: '216' },\n { name: 'Turkey', code: 'TR', codePhone: '90' },\n { name: 'Uganda', code: 'UG', codePhone: '256' },\n { name: 'Ukraine', code: 'UA', codePhone: '380' },\n { name: 'United Arab Emirates', code: 'AE', codePhone: '971' },\n { name: 'United Kingdom', code: 'GB', codePhone: '44' },\n { name: 'United States', code: 'US', codePhone: '1' },\n { name: 'Uruguay', code: 'UY', codePhone: '598' },\n { name: 'Venezuela', code: 'VE', codePhone: '58' },\n { name: 'Viet Nam', code: 'VN', codePhone: '84' },\n { name: 'Zimbabwe', code: 'ZW', codePhone: '263' },\n];\n\n/**\n * @component dropi-country-selector\n * Searchable country dropdown with flag images. Mirrors Angular dropi-country-selector.\n *\n * @example\n * <dropi-country-selector label=\"País\" placeholder=\"Selecciona un país\"></dropi-country-selector>\n */\n@Component({\n tag: 'dropi-country-selector',\n styleUrl: 'dropi-country-selector.css',\n shadow: true,\n})\nexport class DropiCountrySelector {\n /** Label above the select */\n @Prop() label: string = '';\n /** Placeholder when nothing is selected */\n @Prop() placeholder: string = 'Selecciona un país';\n /** Pre-selected country code (ISO 3166-1 alpha-2) */\n @Prop({ mutable: true }) currentSelection: string = '';\n /** Whether the selector is disabled */\n @Prop() disabled: boolean = false;\n /** Show asterisk for required field */\n @Prop() showObligatory: boolean = false;\n /** Show error border */\n @Prop() hasError: boolean = false;\n /** Helper text below the select */\n @Prop() textHelper: string = '';\n /** Search term for filtering (matches Angular `searchTerm`) */\n @Prop({ mutable: true }) searchTerm: string = '';\n /**\n * Convenience object prop — matches Angular `selectProperties: SelectProperties`.\n * When provided, its non-null fields override individual props.\n */\n @Prop() selectProperties: any = null;\n\n /** Emitted when a country is selected. Detail is the CountryItem. */\n @Event() onChangeSelect: EventEmitter<CountryItem>;\n\n @State() private isOpen: boolean = false;\n @State() private selected: CountryItem | null = null;\n\n @Element() el!: HTMLElement;\n\n @Listen('click', { target: 'document' })\n handleDocClick(e: MouseEvent) {\n if (this.isOpen && !e.composedPath().includes(this.el)) {\n this.isOpen = false;\n }\n }\n\n private searchInputRef?: HTMLInputElement;\n\n @Watch('currentSelection')\n currentSelectionChanged(val: string) {\n this.selected = COUNTRIES.find(c => c.code === val) || null;\n }\n\n @Watch('selectProperties')\n selectPropertiesChanged(val: any) {\n if (!val) return;\n if (val.label !== undefined) this.label = val.label;\n if (val.placeholder !== undefined) this.placeholder = val.placeholder;\n if (val.showObligatory !== undefined) this.showObligatory = val.showObligatory;\n if (val.textHelper !== undefined) this.textHelper = val.textHelper;\n if (val.hasError !== undefined) this.hasError = val.hasError;\n }\n\n componentWillLoad() {\n if (this.selectProperties) this.selectPropertiesChanged(this.selectProperties);\n if (this.currentSelection) this.currentSelectionChanged(this.currentSelection);\n }\n\n private get filtered(): CountryItem[] {\n if (!this.searchTerm) return COUNTRIES;\n const t = this.searchTerm.toLowerCase();\n return COUNTRIES.filter(c => c.name.toLowerCase().includes(t));\n }\n\n private open() {\n if (this.disabled) return;\n this.isOpen = !this.isOpen;\n if (this.isOpen) {\n setTimeout(() => this.searchInputRef?.focus(), 50);\n }\n }\n\n private select(country: CountryItem) {\n this.selected = country;\n this.isOpen = false;\n this.searchTerm = '';\n this.currentSelection = country.code;\n this.onChangeSelect.emit(country);\n }\n\n render() {\n return (\n <div class=\"custom-select\">\n {this.label && (\n <label>\n {this.label}\n {this.showObligatory && <span class=\"required\">*</span>}\n </label>\n )}\n\n <button\n type=\"button\"\n class={{\n 'select-button': true,\n 'select-completed': !!this.selected,\n 'select-invalid': this.hasError,\n }}\n disabled={this.disabled}\n onClick={() => this.open()}\n >\n <div class=\"selected-content\">\n {this.selected ? (\n <span class=\"selected-option\">\n <img\n class=\"flag-img\"\n src={`https://flagsapi.com/${this.selected.code}/shiny/24.png`}\n alt={this.selected.name}\n />\n {this.selected.name}\n </span>\n ) : (\n <span class=\"placeholder-text\">{this.placeholder}</span>\n )}\n </div>\n <dropi-icon\n name={this.isOpen ? 'Arrow-Up-2' : 'Arrow-Down-2'}\n width=\"20px\"\n height=\"20px\"\n color=\"Gray-Gray-500\"\n />\n </button>\n\n <ul class={`select-dropdown${this.isOpen ? ' expanded' : ' collapsed'}`}>\n <li class=\"search-li\">\n <div class=\"search-field\">\n <input\n ref={(el) => { this.searchInputRef = el; }}\n type=\"text\"\n class=\"country-search\"\n placeholder=\"Buscar país...\"\n value={this.searchTerm}\n onInput={(e) => { this.searchTerm = (e.target as HTMLInputElement).value; }}\n />\n <span class=\"search-icon\">\n <dropi-icon name=\"Search\" width=\"16px\" height=\"16px\" color=\"Gray-Gray-400\" />\n </span>\n </div>\n </li>\n {this.filtered.map(country => (\n <li key={country.code}>\n <button class=\"option\" type=\"button\" onClick={() => this.select(country)}>\n <img\n class=\"flag-img\"\n src={`https://flagsapi.com/${country.code}/shiny/24.png`}\n alt={country.name}\n />\n {country.name}\n </button>\n </li>\n ))}\n </ul>\n {this.textHelper && (\n <div class={{ 'select-helper': true, 'select-helper-error': this.hasError }}>\n {this.hasError && <dropi-icon name=\"Warning-circle\" width=\"12px\" height=\"12px\" color=\"Error-Error-500\" />}\n <span>{this.textHelper}</span>\n </div>\n )}\n </div>\n );\n }\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"dropi-date-picker-range.entry.js","mappings":"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","names":[],"sources":["src/components/dropi-date-picker-range/dropi-date-picker-range.css?tag=dropi-date-picker-range&encapsulation=shadow","src/components/dropi-date-picker-range/dropi-date-picker-range.tsx"],"sourcesContent":[":host {\n display: block;\n width: 100%;\n max-width: 380px;\n}\n\n*, *::before, *::after { box-sizing: border-box; }\n\n.date-picker-range {\n width: 100%;\n font-family: inherit;\n}\n\n.label {\n font-size: 11px;\n font-weight: var(--font-weight-medium);\n color: #7b8190;\n margin-bottom: 8px;\n}\n\n.inputs-row {\n display: flex;\n align-items: flex-end;\n gap: 8px;\n}\n\n.input-group {\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.input-label {\n font-size: var(--font-size-xs, 11px);\n color: var(--Gray-Gray-500, #69738c);\n font-weight: var(--font-weight-medium, 500);\n}\n\n.date-input {\n width: 100%;\n height: 40px;\n padding: 0 10px;\n border: 1px solid var(--Gray-Gray-200, #c3c9d9);\n border-radius: var(--Border-2, 8px);\n background: var(--Neutral-White, #ffffff);\n color: var(--Gray-Gray-600, #475066);\n font-size: 13px;\n font-family: inherit;\n outline: none;\n cursor: pointer;\n transition: border-color 0.15s ease;\n}\n\n.date-input:focus {\n border-color: var(--Primary-Primary-500, #f49a3d);\n}\n\n.separator {\n padding-bottom: 8px;\n color: var(--Gray-Gray-400, #858ea6);\n font-size: var(--font-size-m);\n}\n\n.shortcuts {\n display: flex;\n flex-direction: column;\n gap: 2px;\n margin-top: 10px;\n border-left: 1px solid var(--Gray-Gray-100, #e6eaf2);\n padding-left: 10px;\n}\n\n.shortcut-btn {\n background: transparent;\n border: none;\n padding: 4px 6px;\n font-size: 13px;\n font-family: inherit;\n color: var(--Gray-Gray-700, #32394d);\n cursor: pointer;\n text-align: left;\n border-radius: 5px;\n transition: background 0.1s ease;\n font-weight: var(--font-weight-regular);\n}\n\n.shortcut-btn:hover {\n background: var(--Gray-Gray-50, #f5f6f8);\n}\n\n.shortcut-btn.active {\n background: var(--Gray-Gray-50, #f5f6f8);\n font-weight: var(--font-weight-semibold);\n}\n\n.warning-box {\n margin-top: 8px;\n padding: 4px 8px;\n border: 1px solid var(--Warning-Warning-400);\n border-radius: 4px;\n background: var(--Warning-Warning-50);\n}\n\n.warning-message {\n color: #495057;\n font-size: var(--font-size-xxs);\n line-height: 16px;\n}\n\n@keyframes shimmer {\n 0% { background-position: -468px 0; }\n 100% { background-position: 468px 0; }\n}\n\n.skeleton {\n height: 40px;\n width: 100%;\n min-width: 180px;\n border-radius: 6px;\n animation: shimmer 1s linear infinite;\n background: linear-gradient(to right, #f5f6f8 8%, #e3e7ef 28%, #f5f6f8 77%);\n background-size: 800px 104px;\n}\n\n@media screen and (max-width: 480px) {\n .inputs-row {\n flex-direction: column;\n }\n\n .separator {\n display: none;\n }\n\n .shortcuts {\n flex-direction: row;\n flex-wrap: wrap;\n border-left: none;\n padding-left: 0;\n border-top: 1px solid var(--Gray-Gray-100, #e6eaf2);\n padding-top: 8px;\n }\n}\n","import { Component, Prop, Event, EventEmitter, State, Watch, h } from '@stencil/core';\n\nexport interface DateRange {\n start: string;\n end: string;\n}\n\n/**\n * @component dropi-date-picker-range\n * Date range picker with shortcut buttons (Today, Last 7/15/30/90 days).\n *\n * @example\n * <dropi-date-picker-range show-label></dropi-date-picker-range>\n */\n@Component({\n tag: 'dropi-date-picker-range',\n styleUrl: 'dropi-date-picker-range.css',\n shadow: true,\n})\nexport class DropiDatePickerRange {\n /** Start date (YYYY-MM-DD) */\n @Prop({ mutable: true }) startDate: string = '';\n /** End date (YYYY-MM-DD) */\n @Prop({ mutable: true }) endDate: string = '';\n /** Show \"Rango de fechas\" label */\n @Prop() showLabel: boolean = true;\n /** Input placeholder */\n @Prop() placeholder: string = '';\n /** Show loading skeleton */\n @Prop() loading: boolean = false;\n /** Max allowed range in days (0 = unlimited) */\n @Prop() maxDaysRange: number = 0;\n /** Hide \"Hoy\" shortcut */\n @Prop() hideTodayRangeShortcut: boolean = false;\n\n /** Emitted when start date changes */\n @Event() startDateChange: EventEmitter<string>;\n /** Emitted when end date changes */\n @Event() endDateChange: EventEmitter<string>;\n /** Emitted with full range when both dates are set */\n @Event() dropiRangeChange: EventEmitter<DateRange>;\n\n @State() private start: string = '';\n @State() private end: string = '';\n @State() private activeRange: number = -1;\n @State() private showWarning: boolean = false;\n\n @Watch('startDate')\n onStartPropChange(val: string) { this.start = val; }\n @Watch('endDate')\n onEndPropChange(val: string) { this.end = val; }\n\n componentWillLoad() {\n this.start = this.startDate;\n this.end = this.endDate;\n }\n\n private get today(): string {\n return new Date().toISOString().split('T')[0];\n }\n\n private daysAgo(n: number): string {\n const d = new Date();\n d.setDate(d.getDate() - n);\n return d.toISOString().split('T')[0];\n }\n\n private get shortcuts() {\n const all = [\n { label: 'Hoy', start: this.today, end: this.today },\n { label: 'Últimos 7 días', start: this.daysAgo(6), end: this.today },\n { label: 'Últimos 15 días',start: this.daysAgo(14),end: this.today },\n { label: 'Últimos 30 días',start: this.daysAgo(29),end: this.today },\n { label: 'Últimos 90 días',start: this.daysAgo(89),end: this.today },\n ];\n return this.hideTodayRangeShortcut ? all.slice(1) : all;\n }\n\n private selectShortcut(idx: number) {\n const s = this.shortcuts[idx];\n this.start = s.start;\n this.end = s.end;\n this.activeRange = idx;\n this.showWarning = false;\n this.emit();\n }\n\n private onStartChange(e: Event) {\n this.start = (e.target as HTMLInputElement).value;\n this.activeRange = -1;\n this.checkRange();\n if (this.start && this.end) this.emit();\n }\n\n private onEndChange(e: Event) {\n this.end = (e.target as HTMLInputElement).value;\n this.activeRange = -1;\n this.checkRange();\n if (this.start && this.end) this.emit();\n }\n\n private checkRange() {\n if (this.start && this.end && this.maxDaysRange > 0) {\n const diff = (new Date(this.end).getTime() - new Date(this.start).getTime()) / 86400000;\n this.showWarning = diff > this.maxDaysRange;\n } else {\n this.showWarning = false;\n }\n }\n\n private emit() {\n this.startDateChange.emit(this.start);\n this.endDateChange.emit(this.end);\n this.dropiRangeChange.emit({ start: this.start, end: this.end });\n }\n\n render() {\n if (this.loading) {\n return <div class=\"skeleton\" />;\n }\n\n return (\n <div class=\"date-picker-range\">\n {this.showLabel && <div class=\"label\">Rango de fechas</div>}\n\n <div class=\"inputs-row\">\n <div class=\"input-group\">\n <label class=\"input-label\">Desde</label>\n <input\n type=\"date\"\n class=\"date-input\"\n value={this.start}\n max={this.end || this.today}\n onChange={(e) => this.onStartChange(e)}\n />\n </div>\n <span class=\"separator\">—</span>\n <div class=\"input-group\">\n <label class=\"input-label\">Hasta</label>\n <input\n type=\"date\"\n class=\"date-input\"\n value={this.end}\n min={this.start}\n max={this.today}\n onChange={(e) => this.onEndChange(e)}\n />\n </div>\n </div>\n\n <div class=\"shortcuts\">\n {this.shortcuts.map((s, i) => (\n <button\n key={i}\n class={`shortcut-btn${this.activeRange === i ? ' active' : ''}`}\n onClick={() => this.selectShortcut(i)}\n >\n {s.label}\n </button>\n ))}\n </div>\n\n {this.showWarning && (\n <div class=\"warning-box\">\n <span class=\"warning-message\">\n Solo puedes filtrar en un rango máximo de {this.maxDaysRange} días.\n </span>\n </div>\n )}\n </div>\n );\n }\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"dropi-date-picker.entry.js","mappings":";;AAAA,MAAM,kBAAkB,GAAG,MAAM,CAAC,usIAAusI,CAAC;;ACE1uI,MAAM,SAAS,GAAG;IAChB,OAAO,EAAC,SAAS,EAAC,OAAO,EAAC,OAAO,EAAC,MAAM,EAAC,OAAO;IAChD,OAAO,EAAC,QAAQ,EAAC,YAAY,EAAC,SAAS,EAAC,WAAW,EAAC;CACrD;AACD,MAAM,OAAO,GAAG,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC;MAYvC,eAAe,GAAA,MAAA;;;;;;;;IAED,YAAY,GAAW,EAAE;;IAEzB,SAAS,GAAW,EAAE;;IAEtB,OAAO,GAAW,EAAE;;IAErC,aAAa,GAAuB,QAAQ;;IAE5C,OAAO,GAAW,EAAE;;IAEpB,OAAO,GAAW,EAAE;;IAEpB,KAAK,GAAkB,IAAI;;IAE3B,WAAW,GAAW,YAAY;;IAElC,QAAQ,GAAY,KAAK;;IAEzB,SAAS,GAAY,KAAK;;IAE1B,OAAO,GAAY,KAAK;IAEf,IAAI,GAAY,KAAK;AACrB,IAAA,QAAQ,GAAW,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AAC3C,IAAA,SAAS,GAAW,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE;IACzC,SAAS,GAAW,EAAE;;AAKvC,IAAA,cAAc,CAAC,CAAa,EAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;AACpD,YAAA,IAAI,CAAC,IAAI,GAAG,KAAK;;;;AAKZ,IAAA,YAAY;;AAEZ,IAAA,YAAY;;AAEZ,IAAA,gBAAgB;AAEzB,IAAA,IAAY,YAAY,GAAA;AACtB,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,OAAO,EAAE;AAClC,YAAA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO;gBAAE,OAAO,CAAA,EAAG,IAAI,CAAC,SAAS,MAAM,IAAI,CAAC,OAAO,CAAA,CAAE;YAChF,IAAI,IAAI,CAAC,SAAS;gBAAE,OAAO,IAAI,CAAC,SAAS;AACzC,YAAA,OAAO,EAAE;;QAEX,OAAO,IAAI,CAAC,YAAY;;IAGlB,KAAK,GAAA;QACX,IAAI,IAAI,CAAC,QAAQ;YAAE;AACnB,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;AACrC,YAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,WAAW,EAAE;AAC/B,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,QAAQ,EAAE;;AACxB,aAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YACzB,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;AAClC,YAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,WAAW,EAAE;AAC/B,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,QAAQ,EAAE;;AAE/B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;;IAGV,SAAS,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,EAAE;YAAE,IAAI,CAAC,QAAQ,EAAE;;;YAC3D,IAAI,CAAC,SAAS,EAAE;;IAGf,SAAS,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC;YAAE,IAAI,CAAC,QAAQ,EAAE;;;YAC3D,IAAI,CAAC,SAAS,EAAE;;AAGf,IAAA,KAAK,CAAC,IAAY,EAAE,KAAa,EAAE,GAAW,EAAA;AACpD,QAAA,OAAO,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA,CAAA,EAAI,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;;AAGhF,IAAA,UAAU,CAAC,GAAW,EAAA;QAC5B,IAAI,IAAI,CAAC,OAAO,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO;AAAE,YAAA,OAAO,IAAI;QACnD,IAAI,IAAI,CAAC,OAAO,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO;AAAE,YAAA,OAAO,IAAI;AACnD,QAAA,OAAO,KAAK;;AAGN,IAAA,SAAS,CAAC,GAAW,EAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,OAAO;AAAE,YAAA,OAAO,KAAK;AAChD,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS;AAC1C,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG;AAAE,YAAA,OAAO,KAAK;QAChC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,IAAI,GAAG,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;AACzD,QAAA,OAAO,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;;AAGnB,IAAA,UAAU,CAAC,GAAW,EAAA;AAC5B,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE;AAE1B,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,OAAO,EAAE;AAClC,YAAA,IAAI,CAAC,YAAY,GAAG,GAAG;AACvB,YAAA,IAAI,CAAC,IAAI,GAAG,KAAK;AACjB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;YAC3B;;;AAIF,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE;AACvD,YAAA,IAAI,CAAC,SAAS,GAAG,GAAG;AACpB,YAAA,IAAI,CAAC,OAAO,GAAG,EAAE;;aACZ;AACL,YAAA,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE;AACxB,gBAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS;AAC7B,gBAAA,IAAI,CAAC,SAAS,GAAG,GAAG;;iBACf;AACL,gBAAA,IAAI,CAAC,OAAO,GAAG,GAAG;;AAEpB,YAAA,IAAI,CAAC,IAAI,GAAG,KAAK;AACjB,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;;;IAIpE,SAAS,GAAA;AACf,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ;AAC1B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS;AAE5B,QAAA,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE;;QAElD,MAAM,WAAW,GAAG,QAAQ;AAC5B,QAAA,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE;AAC1D,QAAA,MAAM,eAAe,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE;QAE1D,MAAM,KAAK,GAA+D,EAAE;;AAG5E,QAAA,KAAK,IAAI,CAAC,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACzC,YAAA,MAAM,CAAC,GAAG,eAAe,GAAG,CAAC;AAC7B,YAAA,MAAM,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC;AACtC,YAAA,MAAM,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI;YACvC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;;;AAIvE,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC,EAAE,EAAE;YACrC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;;;AAI7E,QAAA,MAAM,SAAS,GAAG,EAAE,GAAG,KAAK,CAAC,MAAM;AACnC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC,EAAE,EAAE;AACnC,YAAA,MAAM,CAAC,GAAG,KAAK,KAAK,EAAE,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC;AACtC,YAAA,MAAM,CAAC,GAAG,KAAK,KAAK,EAAE,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI;YACxC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;;AAGvE,QAAA,OAAO,KAAK;;IAGd,MAAM,GAAA;AACJ,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE;AAC7B,QAAA,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QAEnD,QACE,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,SAAS,EAAA,EACjB,IAAI,CAAC,KAAK,IAAI,CAAA,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAO,KAAK,EAAC,UAAU,EAAA,EAAE,IAAI,CAAC,KAAK,CAAS,EAG3D,CAAA,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAE;AACL,gBAAA,YAAY,EAAE,IAAI;gBAClB,sBAAsB,EAAE,IAAI,CAAC,QAAQ;gBACrC,qBAAqB,EAAE,IAAI,CAAC,SAAS;gBACrC,qBAAqB,EAAE,IAAI,CAAC;AAC7B,aAAA,EACD,OAAO,EAAE,MAAM,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,EAC3D,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,EACvC,IAAI,EAAC,QAAQ,EAAA,EAEb,CAAA,CAAA,YAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAY,IAAI,EAAC,UAAU,EAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,eAAe,EAAA,CAAG,EAC/E,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,IACtF,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,WAAW,CACjC,EACP,CAAA,CAAA,YAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAY,IAAI,EAAC,cAAc,EAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,eAAe,GAAG,CAC5E,EAGR,IAAI,CAAC,IAAI,KACR,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,UAAU,EAAA,EAEnB,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,QAAQ,EAAA,EACjB,CAAA,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAQ,KAAK,EAAC,aAAa,EAAC,OAAO,EAAE,MAAM,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,EAAC,QAAQ,EAAA,EACxE,CAAA,CAAA,YAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAY,IAAI,EAAC,cAAc,EAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,eAAe,GAAG,CAC5E,EACT,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAC,eAAe,EAAA,EACzB,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAO,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAQ,EACxC,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAO,IAAI,CAAC,QAAQ,CAAQ,CACvB,EACP,CAAA,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAQ,KAAK,EAAC,aAAa,EAAC,OAAO,EAAE,MAAM,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,EAAC,QAAQ,EAAA,EACxE,CAAA,CAAA,YAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAY,IAAI,EAAC,eAAe,EAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,eAAe,EAAA,CAAG,CAC7E,CACL,EAGN,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,SAAS,EAAA,EACjB,OAAO,CAAC,GAAG,CAAC,CAAC,KACZ,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,eAAe,EAAA,EAAE,CAAC,CAAO,CACrC,CAAC,EAGD,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,KAAI;AACvC,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,KAAK;AACxC,kBAAE,GAAG,KAAK,IAAI,CAAC;AACf,kBAAE,GAAG,KAAK,IAAI,CAAC,SAAS,IAAI,GAAG,KAAK,IAAI,CAAC,OAAO;AAClD,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,KAAK,OAAO,IAAI,GAAG,KAAK,IAAI,CAAC,SAAS;AAC7E,YAAA,MAAM,UAAU,GAAK,IAAI,CAAC,aAAa,KAAK,OAAO,IAAI,GAAG,KAAK,IAAI,CAAC,OAAO;YAC3E,MAAM,OAAO,GAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;YACxC,MAAM,QAAQ,GAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;AACzC,YAAA,MAAM,OAAO,GAAQ,GAAG,KAAK,KAAK;AAElC,YAAA,QACE,CAAA,CAAA,QAAA,EAAA,EACE,KAAK,EAAE;AACL,oBAAA,SAAS,EAAE,IAAI;oBACf,sBAAsB,EAAE,CAAC,YAAY;AACrC,oBAAA,gBAAgB,EAAE,OAAO;AACzB,oBAAA,mBAAmB,EAAE,UAAU;AAC/B,oBAAA,sBAAsB,EAAE,YAAY;AACpC,oBAAA,oBAAoB,EAAE,UAAU;AAChC,oBAAA,mBAAmB,EAAE,OAAO;AAC5B,oBAAA,mBAAmB,EAAE,QAAQ;iBAC9B,EACD,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EACnC,YAAY,EAAE,MAAK;AAAG,oBAAA,IAAI,IAAI,CAAC,aAAa,KAAK,OAAO,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO;AAAE,wBAAA,IAAI,CAAC,SAAS,GAAG,GAAG;AAAE,iBAAC,EACpH,YAAY,EAAE,MAAM,IAAI,CAAC,SAAS,GAAG,EAAE,EAAA,EAEtC,GAAG,CACG;AAEb,SAAC,CAAC,CACE,EAGN,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,WAAW,EAAA,EACpB,CAAA,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAQ,KAAK,EAAC,kBAAkB,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,MAAK;AAC3D,gBAAA,IAAI,CAAC,YAAY,GAAG,EAAE;AAAE,gBAAA,IAAI,CAAC,SAAS,GAAG,EAAE;AAAE,gBAAA,IAAI,CAAC,OAAO,GAAG,EAAE;AAC9D,gBAAA,IAAI,CAAC,IAAI,GAAG,KAAK;aAClB,EAAA,EAAA,SAAA,CAEQ,EACT,CAAA,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAQ,KAAK,EAAC,kBAAkB,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,MAAK;AAC3D,gBAAA,IAAI,IAAI,CAAC,aAAa,KAAK,OAAO,EAAE;AAAE,oBAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AAAE,oBAAA,IAAI,CAAC,IAAI,GAAG,KAAK;AAAE,oBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;;qBAC5G;AAAE,oBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AAAE,oBAAA,IAAI,CAAC,OAAO,GAAG,EAAE;;aACjD,UAEQ,CACL,CACF,CACP,CACG;;;;;;;","names":[],"sources":["src/components/dropi-date-picker/dropi-date-picker.css?tag=dropi-date-picker&encapsulation=shadow","src/components/dropi-date-picker/dropi-date-picker.tsx"],"sourcesContent":[":host { display: block; width: 100%; position: relative; }\n*, *::before, *::after { box-sizing: border-box; }\n\n.dp-label {\n display: block;\n font-size: var(--font-size-xxs, 10px);\n color: var(--Gray-Gray-600, #475066);\n margin-bottom: 4px;\n}\n\n/* Trigger */\n.dp-trigger {\n width: 100%;\n height: 44px;\n display: flex;\n align-items: center;\n gap: var(--Size-2, 8px);\n padding: 0 var(--Size-3, 12px);\n border: 1px solid var(--Gray-Gray-200, #c3c9d9);\n border-radius: var(--Border-2, 8px);\n background: var(--Neutral-White, #ffffff);\n cursor: pointer;\n font-family: inherit;\n transition: border-color 0.2s;\n}\n.dp-trigger:hover:not(:disabled) { border-color: var(--Info-Info-500, #50a5f1); }\n.dp-trigger--disabled { background: var(--Gray-Gray-50, #f7f8fa); cursor: not-allowed; opacity: 0.6; }\n\n.dp-trigger__value {\n flex: 1;\n text-align: left;\n font-size: var(--font-size-xs, 12px);\n color: var(--Gray-Gray-700, #32394d);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.dp-trigger__placeholder { color: var(--Gray-Gray-400, #858ea6); }\n\n/* Popup */\n.dp-popup {\n position: absolute;\n top: calc(100% + 8px);\n left: 0;\n width: 320px;\n background: var(--Neutral-White, #ffffff);\n border: 1px solid var(--Gray-Gray-200, #c3c9d9);\n border-radius: var(--Border-3, 12px);\n box-shadow: 0 4px 16px rgba(0,0,0,0.08);\n z-index: 300;\n padding: var(--Size-4, 16px);\n}\n\n/* Navigation */\n.dp-nav {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: var(--Size-4, 16px);\n}\n\n.dp-nav__btn {\n background: none;\n border: none;\n padding: 0;\n cursor: pointer;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n transition: background 0.15s;\n}\n.dp-nav__btn:hover { background: var(--Gray-Gray-50, #f7f8fa); }\n\n.dp-nav__title {\n font-size: var(--font-size-s, 14px);\n font-weight: var(--font-weight-bold, 700);\n color: var(--Gray-Gray-700, #32394d);\n display: flex;\n gap: 8px;\n}\n\n/* Grid */\n.dp-grid {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n row-gap: 8px;\n column-gap: 4px;\n}\n\n.dp-day-header {\n font-size: var(--font-size-s, 14px);\n color: var(--Gray-Gray-700, #32394d);\n text-align: center;\n padding: 8px 0;\n font-weight: var(--font-weight-bold, 700);\n}\n\n/* Day cells */\n.dp-cell {\n aspect-ratio: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: var(--font-size-xs, 12px);\n font-family: inherit;\n border: none;\n cursor: pointer;\n background: transparent;\n color: var(--Gray-Gray-600, #475066);\n width: 100%;\n position: relative;\n z-index: 1;\n padding: 0;\n}\n\n/* Pseudo-element for the circle (selected / hover / today) */\n.dp-cell::after {\n content: \"\";\n position: absolute;\n top: 0; left: 0; right: 0; bottom: 0;\n border-radius: 50%;\n transition: all 0.2s;\n z-index: -1;\n background: transparent;\n}\n\n/* Pseudo-element for the continuous light-orange range background */\n.dp-cell::before {\n content: \"\";\n position: absolute;\n top: 0; bottom: 0;\n z-index: -2;\n border-radius: 0;\n background: transparent;\n}\n\n.dp-cell:hover:not(:disabled)::after {\n background: var(--Gray-Gray-100, #e6eaf2);\n}\n\n.dp-cell--other-month { color: var(--Gray-Gray-300, #a0a9c0); }\n\n.dp-cell--today {\n font-weight: var(--font-weight-bold, 700);\n}\n.dp-cell--today::after {\n background: var(--Gray-Gray-100, #e6eaf2);\n}\n\n.dp-cell--selected {\n color: var(--Neutral-White, #ffffff);\n font-weight: var(--font-weight-bold, 700);\n}\n.dp-cell--selected::after {\n background: var(--Orange-orange-500, #f49a3d) !important;\n}\n\n/* Range modes */\n.dp-cell--range-start, .dp-cell--range-end {\n color: var(--Neutral-White, #ffffff);\n font-weight: var(--font-weight-bold, 700);\n}\n.dp-cell--range-start::after, .dp-cell--range-end::after {\n background: var(--Orange-orange-500, #f49a3d) !important;\n}\n\n.dp-cell--in-range {\n color: var(--Orange-orange-500, #f49a3d);\n font-weight: var(--font-weight-bold, 700);\n}\n.dp-cell--in-range::before {\n left: -2px; right: -2px;\n background: var(--Orange-orange-50, #fef5ec);\n}\n.dp-cell--range-start::before {\n left: 50%; right: -2px;\n background: var(--Orange-orange-50, #fef5ec);\n}\n.dp-cell--range-end::before {\n left: -2px; right: 50%;\n background: var(--Orange-orange-50, #fef5ec);\n}\n.dp-cell--range-start.dp-cell--range-end::before {\n background: transparent;\n}\n\n.dp-cell--disabled { opacity: 0.35; cursor: not-allowed; }\n\n/* Footer */\n.dp-footer {\n display: flex;\n justify-content: space-between;\n margin-top: var(--Size-3, 12px);\n border-top: 1px solid var(--Gray-Gray-100, #e6eaf2);\n padding-top: var(--Size-2, 8px);\n}\n\n.dp-footer__clear,\n.dp-footer__today {\n background: none;\n border: none;\n padding: 4px 8px;\n font-size: var(--font-size-xxs, 10px);\n font-family: inherit;\n cursor: pointer;\n border-radius: var(--Border-1, 4px);\n transition: background 0.15s;\n}\n.dp-footer__clear { color: var(--Gray-Gray-500, #69738c); }\n.dp-footer__today { color: var(--Orange-orange-500, #f49a3d); font-weight: var(--font-weight-bold, 700); }\n.dp-footer__clear:hover { background: var(--Gray-Gray-50, #f7f8fa); }\n.dp-footer__today:hover { background: var(--Orange-orange-50, #fef5ec); }\n","import { Component, Prop, State, Event, EventEmitter, h, Element, Listen } from '@stencil/core';\n\nconst MONTHS_ES = [\n 'Enero','Febrero','Marzo','Abril','Mayo','Junio',\n 'Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'\n];\nconst DAYS_ES = ['Do','Lu','Ma','Mi','Ju','Vi','Sa'];\n\n/**\n * @component dropi-date-picker\n * Calendar date picker with optional date range mode.\n * Emits ISO date strings (YYYY-MM-DD).\n */\n@Component({\n tag: 'dropi-date-picker',\n styleUrl: 'dropi-date-picker.css',\n shadow: true,\n})\nexport class DropiDatePicker {\n /** Selected date (ISO string, single mode) - matches Angular 'selectedDate' */\n @Prop({ mutable: true }) selectedDate: string = '';\n /** Range start date (ISO string, range mode) */\n @Prop({ mutable: true }) startDate: string = '';\n /** Range end date (ISO string, range mode) */\n @Prop({ mutable: true }) endDate: string = '';\n /** Enable range selection - matches Angular selectionMode */\n @Prop() selectionMode: 'single' | 'range' = 'single';\n /** Min selectable date (ISO string) */\n @Prop() minDate: string = '';\n /** Max selectable date (ISO string) */\n @Prop() maxDate: string = '';\n /** Label */\n @Prop() label: string | null = null;\n /** Placeholder */\n @Prop() placeholder: string = 'DD/MM/YYYY';\n /** Disabled */\n @Prop() disabled: boolean = false;\n /** Is invalid state - matches Angular */\n @Prop() isInvalid: boolean = false;\n /** Loading state - matches Angular */\n @Prop() loading: boolean = false;\n\n @State() private open: boolean = false;\n @State() private viewYear: number = new Date().getFullYear();\n @State() private viewMonth: number = new Date().getMonth();\n @State() private hoverDate: string = '';\n\n @Element() el!: HTMLElement;\n\n @Listen('click', { target: 'document' })\n handleDocClick(e: MouseEvent) {\n if (this.open && !e.composedPath().includes(this.el)) {\n this.open = false;\n }\n }\n\n /** Emitted when date selected — matches Angular 'onChangeDate' */\n @Event() onChangeDate: EventEmitter<string>;\n /** Emitted when panel closes — matches Angular 'onClosePanel' */\n @Event() onClosePanel: EventEmitter<void>;\n /** Emitted when range selected */\n @Event() dropiRangeChange: EventEmitter<{ start: string; end: string }>;\n\n private get displayValue(): string {\n if (this.selectionMode === 'range') {\n if (this.startDate && this.endDate) return `${this.startDate} – ${this.endDate}`;\n if (this.startDate) return this.startDate;\n return '';\n }\n return this.selectedDate;\n }\n\n private open_() {\n if (this.disabled) return;\n if (this.selectedDate) {\n const d = new Date(this.selectedDate);\n this.viewYear = d.getFullYear();\n this.viewMonth = d.getMonth();\n } else if (this.startDate) {\n const d = new Date(this.startDate);\n this.viewYear = d.getFullYear();\n this.viewMonth = d.getMonth();\n }\n this.open = true;\n }\n\n private prevMonth() {\n if (this.viewMonth === 0) { this.viewMonth = 11; this.viewYear--; }\n else this.viewMonth--;\n }\n\n private nextMonth() {\n if (this.viewMonth === 11) { this.viewMonth = 0; this.viewYear++; }\n else this.viewMonth++;\n }\n\n private toISO(year: number, month: number, day: number): string {\n return `${year}-${String(month + 1).padStart(2, '0')}-${String(day).padStart(2, '0')}`;\n }\n\n private isDisabled(iso: string): boolean {\n if (this.minDate && iso < this.minDate) return true;\n if (this.maxDate && iso > this.maxDate) return true;\n return false;\n }\n\n private isInRange(iso: string): boolean {\n if (this.selectionMode !== 'range') return false;\n const start = this.startDate;\n const end = this.endDate || this.hoverDate;\n if (!start || !end) return false;\n const [s, e] = start <= end ? [start, end] : [end, start];\n return iso > s && iso < e;\n }\n\n private selectDate(iso: string) {\n if (this.isDisabled(iso)) return;\n\n if (this.selectionMode !== 'range') {\n this.selectedDate = iso;\n this.open = false;\n this.onChangeDate.emit(iso);\n return;\n }\n\n // Range mode\n if (!this.startDate || (this.startDate && this.endDate)) {\n this.startDate = iso;\n this.endDate = '';\n } else {\n if (iso < this.startDate) {\n this.endDate = this.startDate;\n this.startDate = iso;\n } else {\n this.endDate = iso;\n }\n this.open = false;\n this.dropiRangeChange.emit({ start: this.startDate, end: this.endDate });\n }\n }\n\n private buildDays(): Array<{ iso: string; day: number; currentMonth: boolean }> {\n const year = this.viewYear;\n const month = this.viewMonth;\n\n const firstDay = new Date(year, month, 1).getDay();\n // Adjust to Sunday-first\n const startOffset = firstDay;\n const daysInMonth = new Date(year, month + 1, 0).getDate();\n const daysInPrevMonth = new Date(year, month, 0).getDate();\n\n const cells: Array<{ iso: string; day: number; currentMonth: boolean }> = [];\n\n // Previous month filler\n for (let i = startOffset - 1; i >= 0; i--) {\n const d = daysInPrevMonth - i;\n const m = month === 0 ? 11 : month - 1;\n const y = month === 0 ? year - 1 : year;\n cells.push({ iso: this.toISO(y, m, d), day: d, currentMonth: false });\n }\n\n // Current month\n for (let d = 1; d <= daysInMonth; d++) {\n cells.push({ iso: this.toISO(year, month, d), day: d, currentMonth: true });\n }\n\n // Next month filler\n const remaining = 42 - cells.length;\n for (let d = 1; d <= remaining; d++) {\n const m = month === 11 ? 0 : month + 1;\n const y = month === 11 ? year + 1 : year;\n cells.push({ iso: this.toISO(y, m, d), day: d, currentMonth: false });\n }\n\n return cells;\n }\n\n render() {\n const days = this.buildDays();\n const today = new Date().toISOString().slice(0, 10);\n\n return (\n <div class=\"dp-wrap\">\n {this.label && <label class=\"dp-label\">{this.label}</label>}\n\n {/* Trigger */}\n <button\n class={{\n 'dp-trigger': true,\n 'dp-trigger--disabled': this.disabled,\n 'dp-trigger--invalid': this.isInvalid,\n 'dp-trigger--loading': this.loading\n }}\n onClick={() => this.open ? this.open = false : this.open_()}\n disabled={this.disabled || this.loading}\n type=\"button\"\n >\n <dropi-icon name=\"Calendar\" width=\"16px\" height=\"16px\" color=\"Gray-Gray-400\" />\n <span class={{ 'dp-trigger__value': true, 'dp-trigger__placeholder': !this.displayValue }}>\n {this.displayValue || this.placeholder}\n </span>\n <dropi-icon name=\"Arrow-Down-2\" width=\"12px\" height=\"12px\" color=\"Gray-Gray-400\" />\n </button>\n\n {/* Calendar popup */}\n {this.open && (\n <div class=\"dp-popup\">\n {/* Navigation */}\n <div class=\"dp-nav\">\n <button class=\"dp-nav__btn\" onClick={() => this.prevMonth()} type=\"button\">\n <dropi-icon name=\"Arrow-Left-2\" width=\"16px\" height=\"16px\" color=\"Gray-Gray-600\" />\n </button>\n <span class=\"dp-nav__title\">\n <span>{MONTHS_ES[this.viewMonth]}</span>\n <span>{this.viewYear}</span>\n </span>\n <button class=\"dp-nav__btn\" onClick={() => this.nextMonth()} type=\"button\">\n <dropi-icon name=\"Arrow-Right-2\" width=\"16px\" height=\"16px\" color=\"Gray-Gray-600\" />\n </button>\n </div>\n\n {/* Day headers */}\n <div class=\"dp-grid\">\n {DAYS_ES.map(d => (\n <div class=\"dp-day-header\">{d}</div>\n ))}\n\n {/* Day cells */}\n {days.map(({ iso, day, currentMonth }) => {\n const isSelected = this.selectionMode !== 'range'\n ? iso === this.selectedDate\n : iso === this.startDate || iso === this.endDate;\n const isRangeStart = this.selectionMode === 'range' && iso === this.startDate;\n const isRangeEnd = this.selectionMode === 'range' && iso === this.endDate;\n const inRange = this.isInRange(iso);\n const disabled = this.isDisabled(iso);\n const isToday = iso === today;\n\n return (\n <button\n class={{\n 'dp-cell': true,\n 'dp-cell--other-month': !currentMonth,\n 'dp-cell--today': isToday,\n 'dp-cell--selected': isSelected,\n 'dp-cell--range-start': isRangeStart,\n 'dp-cell--range-end': isRangeEnd,\n 'dp-cell--in-range': inRange,\n 'dp-cell--disabled': disabled,\n }}\n type=\"button\"\n disabled={disabled}\n onClick={() => this.selectDate(iso)}\n onMouseEnter={() => { if (this.selectionMode === 'range' && this.startDate && !this.endDate) this.hoverDate = iso; }}\n onMouseLeave={() => this.hoverDate = ''}\n >\n {day}\n </button>\n );\n })}\n </div>\n\n {/* Footer */}\n <div class=\"dp-footer\">\n <button class=\"dp-footer__clear\" type=\"button\" onClick={() => {\n this.selectedDate = ''; this.startDate = ''; this.endDate = '';\n this.open = false;\n }}>\n Limpiar\n </button>\n <button class=\"dp-footer__today\" type=\"button\" onClick={() => {\n if (this.selectionMode !== 'range') { this.selectedDate = today; this.open = false; this.onChangeDate.emit(today); }\n else { this.startDate = today; this.endDate = ''; }\n }}>\n Hoy\n </button>\n </div>\n </div>\n )}\n </div>\n );\n }\n}\n"],"version":3}
@@ -1 +0,0 @@
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 +0,0 @@
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 +0,0 @@
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 +0,0 @@
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 +0,0 @@
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 +0,0 @@
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}