@dropi/ui 0.1.37 → 0.1.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (426) hide show
  1. package/assets/icons/symbol/svg/sprite.css.svg +1 -1
  2. package/dist/cjs/dropi-accordion-item.cjs.entry.js +1 -1
  3. package/dist/cjs/dropi-alert.cjs.entry.js +1 -1
  4. package/dist/cjs/dropi-banner-external.cjs.entry.js +1 -1
  5. package/dist/cjs/dropi-breadcrumb.cjs.entry.js +2 -2
  6. package/dist/cjs/dropi-button.cjs.entry.js +1 -1
  7. package/dist/cjs/dropi-card-product.cjs.entry.js +2 -2
  8. package/dist/cjs/dropi-card-section.cjs.entry.js +1 -1
  9. package/dist/cjs/dropi-checkbox-selection-list.cjs.entry.js +2 -2
  10. package/dist/cjs/dropi-chips.cjs.entry.js +1 -1
  11. package/dist/cjs/dropi-city-selector.cjs.entry.js +2 -2
  12. package/dist/cjs/dropi-country-selector.cjs.entry.js +1 -1
  13. package/dist/cjs/dropi-date-picker.cjs.entry.js +3 -3
  14. package/dist/cjs/dropi-drawer.cjs.entry.js +1 -1
  15. package/dist/cjs/dropi-favorite-button.cjs.entry.js +1 -1
  16. package/dist/cjs/dropi-file-upload-progress-bar.cjs.entry.js +1 -1
  17. package/dist/cjs/dropi-file-upload.cjs.entry.js +2 -2
  18. package/dist/cjs/dropi-icon.cjs.entry.js +18 -20
  19. package/dist/cjs/dropi-ilustration-icon.cjs.entry.js +1 -1
  20. package/dist/cjs/dropi-image-miniature.cjs.entry.js +1 -1
  21. package/dist/cjs/dropi-image-overlay.cjs.entry.js +1 -1
  22. package/dist/cjs/dropi-input_3.cjs.entry.js +11 -9
  23. package/dist/cjs/dropi-languages-selector.cjs.entry.js +1 -1
  24. package/dist/cjs/dropi-media-player.cjs.entry.js +2 -2
  25. package/dist/cjs/dropi-modal.cjs.entry.js +2 -2
  26. package/dist/cjs/dropi-navbar.cjs.entry.js +2 -2
  27. package/dist/cjs/dropi-otp-send-code.cjs.entry.js +14 -6
  28. package/dist/cjs/dropi-phone-input.cjs.entry.js +1 -1
  29. package/dist/cjs/dropi-radio-selection-list.cjs.entry.js +2 -2
  30. package/dist/cjs/dropi-search.cjs.entry.js +2 -2
  31. package/dist/cjs/dropi-select.cjs.entry.js +7 -7
  32. package/dist/cjs/dropi-sidebar.cjs.entry.js +2 -2
  33. package/dist/cjs/dropi-steps.cjs.entry.js +1 -1
  34. package/dist/cjs/dropi-table.cjs.entry.js +5 -5
  35. package/dist/cjs/dropi-tabs.cjs.entry.js +1 -1
  36. package/dist/cjs/dropi-text-area.cjs.entry.js +1 -1
  37. package/dist/cjs/dropi-time-line.cjs.entry.js +1 -1
  38. package/dist/cjs/dropi-toast.cjs.entry.js +1 -1
  39. package/dist/cjs/dropi-tooltip-v2.cjs.entry.js +2 -2
  40. package/dist/cjs/dropi-ui.cjs.js +1 -1
  41. package/dist/cjs/dropi-vertical-steps.cjs.entry.js +1 -1
  42. package/dist/cjs/dropi-youtube-lazy-video.cjs.entry.js +1 -1
  43. package/dist/cjs/loader.cjs.js +1 -1
  44. package/dist/collection/assets/icons/symbol/svg/sprite.css.svg +1 -1
  45. package/dist/collection/components/dropi-accordion/dropi-accordion-item.js +1 -1
  46. package/dist/collection/components/dropi-alert/dropi-alert.js +1 -1
  47. package/dist/collection/components/dropi-banner-external/dropi-banner-external.js +1 -1
  48. package/dist/collection/components/dropi-breadcrumb/dropi-breadcrumb.js +2 -2
  49. package/dist/collection/components/dropi-button/dropi-button.js +1 -1
  50. package/dist/collection/components/dropi-card-product/dropi-card-product.js +2 -2
  51. package/dist/collection/components/dropi-card-section/dropi-card-section.js +1 -1
  52. package/dist/collection/components/dropi-checkbox-selection-list/dropi-checkbox-selection-list.js +2 -2
  53. package/dist/collection/components/dropi-chips/dropi-chips.js +1 -1
  54. package/dist/collection/components/dropi-city-selector/dropi-city-selector.js +2 -2
  55. package/dist/collection/components/dropi-country-selector/dropi-country-selector.js +1 -1
  56. package/dist/collection/components/dropi-date-picker/dropi-date-picker.js +3 -3
  57. package/dist/collection/components/dropi-drawer/dropi-drawer.js +1 -1
  58. package/dist/collection/components/dropi-favorite-button/dropi-favorite-button.js +1 -1
  59. package/dist/collection/components/dropi-file-upload/dropi-file-upload.js +2 -2
  60. package/dist/collection/components/dropi-file-upload-progress-bar/dropi-file-upload-progress-bar.js +1 -1
  61. package/dist/collection/components/dropi-icon/dropi-icon.css +0 -2
  62. package/dist/collection/components/dropi-icon/dropi-icon.js +25 -27
  63. package/dist/collection/components/dropi-ilustration-icon/dropi-ilustration-icon.js +1 -1
  64. package/dist/collection/components/dropi-image-miniature/dropi-image-miniature.js +1 -1
  65. package/dist/collection/components/dropi-image-overlay/dropi-image-overlay.js +1 -1
  66. package/dist/collection/components/dropi-input/dropi-input.css +13 -5
  67. package/dist/collection/components/dropi-input/dropi-input.js +9 -7
  68. package/dist/collection/components/dropi-languages-selector/dropi-languages-selector.js +1 -1
  69. package/dist/collection/components/dropi-media-player/dropi-media-player.js +2 -2
  70. package/dist/collection/components/dropi-modal/dropi-modal.js +4 -4
  71. package/dist/collection/components/dropi-navbar/dropi-navbar.js +2 -2
  72. package/dist/collection/components/dropi-otp-send-code/dropi-otp-send-code.js +29 -7
  73. package/dist/collection/components/dropi-paginator/dropi-paginator.js +2 -2
  74. package/dist/collection/components/dropi-phone-input/dropi-phone-input.js +1 -1
  75. package/dist/collection/components/dropi-radio-selection-list/dropi-radio-selection-list.js +2 -2
  76. package/dist/collection/components/dropi-search/dropi-search.js +2 -2
  77. package/dist/collection/components/dropi-select/dropi-select.js +7 -7
  78. package/dist/collection/components/dropi-sidebar/dropi-sidebar.js +2 -2
  79. package/dist/collection/components/dropi-steps/dropi-steps.js +1 -1
  80. package/dist/collection/components/dropi-table/dropi-table.js +7 -7
  81. package/dist/collection/components/dropi-tabs/dropi-tabs.js +1 -1
  82. package/dist/collection/components/dropi-tag/dropi-tag.js +1 -1
  83. package/dist/collection/components/dropi-text-area/dropi-text-area.js +1 -1
  84. package/dist/collection/components/dropi-time-line/dropi-time-line.js +1 -1
  85. package/dist/collection/components/dropi-toast/dropi-toast.js +1 -1
  86. package/dist/collection/components/dropi-tooltip-v2/dropi-tooltip.js +2 -2
  87. package/dist/collection/components/dropi-vertical-steps/dropi-vertical-steps.js +1 -1
  88. package/dist/collection/components/dropi-youtube-lazy-video/dropi-youtube-lazy-video.js +1 -1
  89. package/dist/components/dropi-accordion-item.js +1 -1
  90. package/dist/components/dropi-alert-modal.js +1 -1
  91. package/dist/components/dropi-alert.js +1 -1
  92. package/dist/components/dropi-banner-external.js +1 -1
  93. package/dist/components/dropi-breadcrumb.js +1 -1
  94. package/dist/components/dropi-button.js +1 -1
  95. package/dist/components/dropi-card-product.js +1 -1
  96. package/dist/components/dropi-card-section.js +1 -1
  97. package/dist/components/dropi-checkbox-selection-list.js +1 -1
  98. package/dist/components/dropi-chips.js +1 -1
  99. package/dist/components/dropi-city-selector.js +1 -1
  100. package/dist/components/dropi-country-selector.js +1 -1
  101. package/dist/components/dropi-date-picker.js +1 -1
  102. package/dist/components/dropi-drawer.js +1 -1
  103. package/dist/components/dropi-empty-state.js +1 -1
  104. package/dist/components/dropi-favorite-button.js +1 -1
  105. package/dist/components/dropi-file-upload-progress-bar.js +1 -1
  106. package/dist/components/dropi-file-upload.js +1 -1
  107. package/dist/components/dropi-icon.js +1 -1
  108. package/dist/components/dropi-ilustration-icon.js +1 -1
  109. package/dist/components/dropi-image-miniature.js +1 -1
  110. package/dist/components/dropi-image-overlay.js +1 -1
  111. package/dist/components/dropi-input.js +1 -1
  112. package/dist/components/dropi-languages-selector.js +1 -1
  113. package/dist/components/dropi-media-player.js +1 -1
  114. package/dist/components/dropi-modal.js +1 -1
  115. package/dist/components/dropi-navbar.js +1 -1
  116. package/dist/components/dropi-otp-send-code.js +1 -1
  117. package/dist/components/dropi-paginator.js +1 -1
  118. package/dist/components/dropi-phone-input.js +1 -1
  119. package/dist/components/dropi-radio-selection-list.js +1 -1
  120. package/dist/components/dropi-search.js +1 -1
  121. package/dist/components/dropi-select.js +1 -1
  122. package/dist/components/dropi-sidebar.js +1 -1
  123. package/dist/components/dropi-steps.js +1 -1
  124. package/dist/components/dropi-table.js +1 -1
  125. package/dist/components/dropi-tabs.js +1 -1
  126. package/dist/components/dropi-tag.js +1 -1
  127. package/dist/components/dropi-text-area.js +1 -1
  128. package/dist/components/dropi-time-line.js +1 -1
  129. package/dist/components/dropi-toast.js +1 -1
  130. package/dist/components/dropi-tooltip-v2.js +1 -1
  131. package/dist/components/dropi-vertical-steps.js +1 -1
  132. package/dist/components/dropi-youtube-lazy-video.js +1 -1
  133. package/dist/components/p-2YgFOle2.js +1 -0
  134. package/dist/components/p-BDYn1JDe.js +1 -0
  135. package/dist/components/p-BKTMBQVw.js +1 -0
  136. package/dist/components/p-Btsw7sPN.js +1 -0
  137. package/dist/components/p-CgRY3n1J.js +1 -0
  138. package/dist/components/p-Cjq4FTif.js +1 -0
  139. package/dist/components/p-DfdhNT9F.js +1 -0
  140. package/dist/components/p-DvLWbKsf.js +1 -0
  141. package/dist/components/p-Dz9uN5Nw.js +1 -0
  142. package/dist/components/p-FAhcOdS-.js +1 -0
  143. package/dist/dropi-ui/dropi-accordion-item.entry.js +58 -0
  144. package/dist/dropi-ui/dropi-accordion-item.entry.js.map +1 -0
  145. package/dist/dropi-ui/dropi-accordion.entry.js +20 -0
  146. package/dist/dropi-ui/dropi-accordion.entry.js.map +1 -0
  147. package/dist/dropi-ui/dropi-alert-legacy.entry.js +40 -0
  148. package/dist/dropi-ui/dropi-alert-legacy.entry.js.map +1 -0
  149. package/dist/dropi-ui/dropi-alert-modal.entry.js +129 -0
  150. package/dist/dropi-ui/dropi-alert-modal.entry.js.map +1 -0
  151. package/dist/dropi-ui/dropi-alert.entry.js +65 -0
  152. package/dist/dropi-ui/dropi-alert.entry.js.map +1 -0
  153. package/dist/dropi-ui/dropi-avatars.entry.js +32 -0
  154. package/dist/dropi-ui/dropi-avatars.entry.js.map +1 -0
  155. package/dist/dropi-ui/dropi-badge-legacy.entry.js +31 -0
  156. package/dist/dropi-ui/dropi-badge-legacy.entry.js.map +1 -0
  157. package/dist/dropi-ui/dropi-badge.entry.js +38 -0
  158. package/dist/dropi-ui/dropi-badge.entry.js.map +1 -0
  159. package/dist/dropi-ui/dropi-banner-external.entry.js +64 -0
  160. package/dist/dropi-ui/dropi-banner-external.entry.js.map +1 -0
  161. package/dist/dropi-ui/dropi-breadcrumb.entry.js +49 -0
  162. package/dist/dropi-ui/dropi-breadcrumb.entry.js.map +1 -0
  163. package/dist/dropi-ui/dropi-button.entry.js +88 -0
  164. package/dist/dropi-ui/dropi-button.entry.js.map +1 -0
  165. package/dist/dropi-ui/dropi-card-checkbox.entry.js +49 -0
  166. package/dist/dropi-ui/dropi-card-checkbox.entry.js.map +1 -0
  167. package/dist/dropi-ui/dropi-card-product.entry.js +79 -0
  168. package/dist/dropi-ui/dropi-card-product.entry.js.map +1 -0
  169. package/dist/dropi-ui/dropi-card-section.entry.js +39 -0
  170. package/dist/dropi-ui/dropi-card-section.entry.js.map +1 -0
  171. package/dist/dropi-ui/dropi-carousel.entry.js +154 -0
  172. package/dist/dropi-ui/dropi-carousel.entry.js.map +1 -0
  173. package/dist/dropi-ui/dropi-checkbox-selection-list.entry.js +74 -0
  174. package/dist/dropi-ui/dropi-checkbox-selection-list.entry.js.map +1 -0
  175. package/dist/dropi-ui/dropi-checkbox.entry.js +37 -0
  176. package/dist/dropi-ui/dropi-checkbox.entry.js.map +1 -0
  177. package/dist/dropi-ui/dropi-chips.entry.js +31 -0
  178. package/dist/dropi-ui/dropi-chips.entry.js.map +1 -0
  179. package/dist/dropi-ui/dropi-city-selector.entry.js +105 -0
  180. package/dist/dropi-ui/dropi-city-selector.entry.js.map +1 -0
  181. package/dist/dropi-ui/dropi-color-picker.entry.js +320 -0
  182. package/dist/dropi-ui/dropi-color-picker.entry.js.map +1 -0
  183. package/dist/dropi-ui/dropi-country-flags.entry.js +38 -0
  184. package/dist/dropi-ui/dropi-country-flags.entry.js.map +1 -0
  185. package/dist/dropi-ui/dropi-country-selector.entry.js +198 -0
  186. package/dist/dropi-ui/dropi-country-selector.entry.js.map +1 -0
  187. package/dist/dropi-ui/dropi-date-picker-range.entry.js +116 -0
  188. package/dist/dropi-ui/dropi-date-picker-range.entry.js.map +1 -0
  189. package/dist/dropi-ui/dropi-date-picker.entry.js +224 -0
  190. package/dist/dropi-ui/dropi-date-picker.entry.js.map +1 -0
  191. package/dist/dropi-ui/dropi-drawer.entry.js +80 -0
  192. package/dist/dropi-ui/dropi-drawer.entry.js.map +1 -0
  193. package/dist/dropi-ui/dropi-dropdown.entry.js +66 -0
  194. package/dist/dropi-ui/dropi-dropdown.entry.js.map +1 -0
  195. package/dist/dropi-ui/dropi-empty-state.entry.js +37 -0
  196. package/dist/dropi-ui/dropi-empty-state.entry.js.map +1 -0
  197. package/dist/dropi-ui/dropi-favorite-button.entry.js +28 -0
  198. package/dist/dropi-ui/dropi-favorite-button.entry.js.map +1 -0
  199. package/dist/dropi-ui/dropi-file-upload-progress-bar.entry.js +78 -0
  200. package/dist/dropi-ui/dropi-file-upload-progress-bar.entry.js.map +1 -0
  201. package/dist/dropi-ui/dropi-file-upload.entry.js +238 -0
  202. package/dist/dropi-ui/dropi-file-upload.entry.js.map +1 -0
  203. package/dist/dropi-ui/dropi-icon.entry.js +66 -0
  204. package/dist/dropi-ui/dropi-icon.entry.js.map +1 -0
  205. package/dist/dropi-ui/dropi-ilustration-icon.entry.js +40 -0
  206. package/dist/dropi-ui/dropi-ilustration-icon.entry.js.map +1 -0
  207. package/dist/dropi-ui/dropi-image-miniature.entry.js +45 -0
  208. package/dist/dropi-ui/dropi-image-miniature.entry.js.map +1 -0
  209. package/dist/dropi-ui/dropi-image-overlay.entry.js +64 -0
  210. package/dist/dropi-ui/dropi-image-overlay.entry.js.map +1 -0
  211. package/dist/dropi-ui/dropi-input.entry.js +266 -0
  212. package/dist/dropi-ui/dropi-input.entry.js.map +1 -0
  213. package/dist/dropi-ui/dropi-languages-selector.entry.js +62 -0
  214. package/dist/dropi-ui/dropi-languages-selector.entry.js.map +1 -0
  215. package/dist/dropi-ui/dropi-logo.entry.js +38 -0
  216. package/dist/dropi-ui/dropi-logo.entry.js.map +1 -0
  217. package/dist/dropi-ui/dropi-lottie-loader.entry.js +28 -0
  218. package/dist/dropi-ui/dropi-lottie-loader.entry.js.map +1 -0
  219. package/dist/dropi-ui/dropi-media-player.entry.js +193 -0
  220. package/dist/dropi-ui/dropi-media-player.entry.js.map +1 -0
  221. package/dist/dropi-ui/dropi-modal.entry.js +143 -0
  222. package/dist/dropi-ui/dropi-modal.entry.js.map +1 -0
  223. package/dist/dropi-ui/dropi-navbar.entry.js +55 -0
  224. package/dist/dropi-ui/dropi-navbar.entry.js.map +1 -0
  225. package/dist/dropi-ui/dropi-otp-send-code.entry.js +101 -0
  226. package/dist/dropi-ui/dropi-otp-send-code.entry.js.map +1 -0
  227. package/dist/dropi-ui/dropi-paginator.entry.js +70 -0
  228. package/dist/dropi-ui/dropi-paginator.entry.js.map +1 -0
  229. package/dist/dropi-ui/dropi-phone-input.entry.js +198 -0
  230. package/dist/dropi-ui/dropi-phone-input.entry.js.map +1 -0
  231. package/dist/dropi-ui/dropi-radio-button.entry.js +48 -0
  232. package/dist/dropi-ui/dropi-radio-button.entry.js.map +1 -0
  233. package/dist/dropi-ui/dropi-radio-selection-list.entry.js +61 -0
  234. package/dist/dropi-ui/dropi-radio-selection-list.entry.js.map +1 -0
  235. package/dist/dropi-ui/dropi-read-more.entry.js +41 -0
  236. package/dist/dropi-ui/dropi-read-more.entry.js.map +1 -0
  237. package/dist/dropi-ui/dropi-search.entry.js +125 -0
  238. package/dist/dropi-ui/dropi-search.entry.js.map +1 -0
  239. package/dist/dropi-ui/dropi-select.entry.js +383 -0
  240. package/dist/dropi-ui/dropi-select.entry.js.map +1 -0
  241. package/dist/dropi-ui/dropi-sidebar.entry.js +79 -0
  242. package/dist/dropi-ui/dropi-sidebar.entry.js.map +1 -0
  243. package/dist/dropi-ui/dropi-simple-stepper.entry.js +54 -0
  244. package/dist/dropi-ui/dropi-simple-stepper.entry.js.map +1 -0
  245. package/dist/dropi-ui/dropi-skeleton.entry.js +58 -0
  246. package/dist/dropi-ui/dropi-skeleton.entry.js.map +1 -0
  247. package/dist/dropi-ui/dropi-steps.entry.js +53 -0
  248. package/dist/dropi-ui/dropi-steps.entry.js.map +1 -0
  249. package/dist/dropi-ui/dropi-switch.entry.js +31 -0
  250. package/dist/dropi-ui/dropi-switch.entry.js.map +1 -0
  251. package/dist/dropi-ui/dropi-table.entry.js +300 -0
  252. package/dist/dropi-ui/dropi-table.entry.js.map +1 -0
  253. package/dist/dropi-ui/dropi-tabs.entry.js +52 -0
  254. package/dist/dropi-ui/dropi-tabs.entry.js.map +1 -0
  255. package/dist/dropi-ui/dropi-tag-type-product.entry.js +20 -0
  256. package/dist/dropi-ui/dropi-tag-type-product.entry.js.map +1 -0
  257. package/dist/dropi-ui/dropi-tag.entry.js +69 -0
  258. package/dist/dropi-ui/dropi-tag.entry.js.map +1 -0
  259. package/dist/dropi-ui/dropi-text-area.entry.js +135 -0
  260. package/dist/dropi-ui/dropi-text-area.entry.js.map +1 -0
  261. package/dist/dropi-ui/dropi-time-line.entry.js +35 -0
  262. package/dist/dropi-ui/dropi-time-line.entry.js.map +1 -0
  263. package/dist/dropi-ui/dropi-toast.entry.js +57 -0
  264. package/dist/dropi-ui/dropi-toast.entry.js.map +1 -0
  265. package/dist/dropi-ui/dropi-tooltip-v2.entry.js +132 -0
  266. package/dist/dropi-ui/dropi-tooltip-v2.entry.js.map +1 -0
  267. package/dist/dropi-ui/dropi-tooltip.entry.js +22 -0
  268. package/dist/dropi-ui/dropi-tooltip.entry.js.map +1 -0
  269. package/dist/dropi-ui/dropi-ui.css +311 -1
  270. package/dist/dropi-ui/dropi-ui.esm.js +50 -1
  271. package/dist/dropi-ui/dropi-ui.esm.js.map +1 -0
  272. package/dist/dropi-ui/dropi-vertical-steps.entry.js +56 -0
  273. package/dist/dropi-ui/dropi-vertical-steps.entry.js.map +1 -0
  274. package/dist/dropi-ui/dropi-youtube-lazy-video.entry.js +34 -0
  275. package/dist/dropi-ui/dropi-youtube-lazy-video.entry.js.map +1 -0
  276. package/dist/dropi-ui/index-Cvp2LQOM.js +4585 -0
  277. package/dist/dropi-ui/index-Cvp2LQOM.js.map +1 -0
  278. package/dist/dropi-ui/index.esm.js +4 -0
  279. package/dist/dropi-ui/index.esm.js.map +1 -0
  280. package/dist/dropi-ui/{p-db38bf16.entry.js → p-01e4fe42.entry.js} +1 -1
  281. package/dist/dropi-ui/p-099f4475.entry.js +1 -0
  282. package/dist/dropi-ui/p-17b16a74.entry.js +1 -0
  283. package/dist/dropi-ui/p-1a07b3a6.entry.js +1 -0
  284. package/dist/dropi-ui/p-1cd4d630.entry.js +1 -0
  285. package/dist/dropi-ui/p-1d75dff6.entry.js +1 -0
  286. package/dist/dropi-ui/p-20a6a2aa.entry.js +1 -0
  287. package/dist/dropi-ui/p-256bf069.entry.js +1 -0
  288. package/dist/dropi-ui/p-25f0c2c9.entry.js +1 -0
  289. package/dist/dropi-ui/p-2d9978c1.entry.js +1 -0
  290. package/dist/dropi-ui/p-35b37d1a.entry.js +1 -0
  291. package/dist/dropi-ui/p-38ea66e4.entry.js +1 -0
  292. package/dist/dropi-ui/p-4e401fbc.entry.js +1 -0
  293. package/dist/dropi-ui/p-53d2905c.entry.js +1 -0
  294. package/dist/dropi-ui/p-54bfb072.entry.js +1 -0
  295. package/dist/dropi-ui/p-5915d227.entry.js +1 -0
  296. package/dist/dropi-ui/p-650a7679.entry.js +1 -0
  297. package/dist/dropi-ui/p-719a01cb.entry.js +1 -0
  298. package/dist/dropi-ui/p-7369b3b4.entry.js +1 -0
  299. package/dist/dropi-ui/{p-e3ad21f8.entry.js → p-77cd2fcb.entry.js} +1 -1
  300. package/dist/dropi-ui/p-7a18b7a0.entry.js +1 -0
  301. package/dist/dropi-ui/p-83887880.entry.js +1 -0
  302. package/dist/dropi-ui/p-83dbc407.entry.js +1 -0
  303. package/dist/dropi-ui/p-85c637bd.entry.js +1 -0
  304. package/dist/dropi-ui/{p-e6e766ed.entry.js → p-87cc4dcd.entry.js} +1 -1
  305. package/dist/dropi-ui/p-899089f0.entry.js +1 -0
  306. package/dist/dropi-ui/p-8c107dbe.entry.js +1 -0
  307. package/dist/dropi-ui/p-929bc2b6.entry.js +1 -0
  308. package/dist/dropi-ui/p-9ac8caea.entry.js +1 -0
  309. package/dist/dropi-ui/p-9b24e8fd.entry.js +1 -0
  310. package/dist/dropi-ui/p-9c73b4ce.entry.js +1 -0
  311. package/dist/dropi-ui/p-a580e8c8.entry.js +1 -0
  312. package/dist/dropi-ui/p-a9f93e82.entry.js +1 -0
  313. package/dist/dropi-ui/p-aa0f5964.entry.js +1 -0
  314. package/dist/dropi-ui/p-aadd5863.entry.js +1 -0
  315. package/dist/dropi-ui/p-b25faf92.entry.js +1 -0
  316. package/dist/dropi-ui/p-b605d3d9.entry.js +1 -0
  317. package/dist/dropi-ui/p-bbb5e0ae.entry.js +1 -0
  318. package/dist/dropi-ui/p-c4d2881d.entry.js +1 -0
  319. package/dist/dropi-ui/p-d1aeb373.entry.js +1 -0
  320. package/dist/dropi-ui/p-d724ced4.entry.js +1 -0
  321. package/dist/dropi-ui/p-dc53a798.entry.js +1 -0
  322. package/dist/dropi-ui/p-e1b3c9a3.entry.js +1 -0
  323. package/dist/dropi-ui/p-e3c120ba.entry.js +1 -0
  324. package/dist/dropi-ui/p-edf796ee.entry.js +1 -0
  325. package/dist/dropi-ui/p-f2527a45.entry.js +1 -0
  326. package/dist/dropi-ui/p-f6c9057d.entry.js +1 -0
  327. package/dist/dropi-ui/p-f7fd7832.entry.js +1 -0
  328. package/dist/dropi-ui/p-f9888cea.entry.js +1 -0
  329. package/dist/dropi-ui/p-ffd415a2.entry.js +1 -0
  330. package/dist/esm/dropi-accordion-item.entry.js +1 -1
  331. package/dist/esm/dropi-alert.entry.js +1 -1
  332. package/dist/esm/dropi-banner-external.entry.js +1 -1
  333. package/dist/esm/dropi-breadcrumb.entry.js +2 -2
  334. package/dist/esm/dropi-button.entry.js +1 -1
  335. package/dist/esm/dropi-card-product.entry.js +2 -2
  336. package/dist/esm/dropi-card-section.entry.js +1 -1
  337. package/dist/esm/dropi-checkbox-selection-list.entry.js +2 -2
  338. package/dist/esm/dropi-chips.entry.js +1 -1
  339. package/dist/esm/dropi-city-selector.entry.js +2 -2
  340. package/dist/esm/dropi-country-selector.entry.js +1 -1
  341. package/dist/esm/dropi-date-picker.entry.js +3 -3
  342. package/dist/esm/dropi-drawer.entry.js +1 -1
  343. package/dist/esm/dropi-favorite-button.entry.js +1 -1
  344. package/dist/esm/dropi-file-upload-progress-bar.entry.js +1 -1
  345. package/dist/esm/dropi-file-upload.entry.js +2 -2
  346. package/dist/esm/dropi-icon.entry.js +18 -20
  347. package/dist/esm/dropi-ilustration-icon.entry.js +1 -1
  348. package/dist/esm/dropi-image-miniature.entry.js +1 -1
  349. package/dist/esm/dropi-image-overlay.entry.js +1 -1
  350. package/dist/esm/dropi-input_3.entry.js +11 -9
  351. package/dist/esm/dropi-languages-selector.entry.js +1 -1
  352. package/dist/esm/dropi-media-player.entry.js +2 -2
  353. package/dist/esm/dropi-modal.entry.js +2 -2
  354. package/dist/esm/dropi-navbar.entry.js +2 -2
  355. package/dist/esm/dropi-otp-send-code.entry.js +14 -6
  356. package/dist/esm/dropi-phone-input.entry.js +1 -1
  357. package/dist/esm/dropi-radio-selection-list.entry.js +2 -2
  358. package/dist/esm/dropi-search.entry.js +2 -2
  359. package/dist/esm/dropi-select.entry.js +7 -7
  360. package/dist/esm/dropi-sidebar.entry.js +2 -2
  361. package/dist/esm/dropi-steps.entry.js +1 -1
  362. package/dist/esm/dropi-table.entry.js +5 -5
  363. package/dist/esm/dropi-tabs.entry.js +1 -1
  364. package/dist/esm/dropi-text-area.entry.js +1 -1
  365. package/dist/esm/dropi-time-line.entry.js +1 -1
  366. package/dist/esm/dropi-toast.entry.js +1 -1
  367. package/dist/esm/dropi-tooltip-v2.entry.js +2 -2
  368. package/dist/esm/dropi-ui.js +1 -1
  369. package/dist/esm/dropi-vertical-steps.entry.js +1 -1
  370. package/dist/esm/dropi-youtube-lazy-video.entry.js +1 -1
  371. package/dist/esm/loader.js +1 -1
  372. package/dist/types/components/dropi-icon/dropi-icon.d.ts +4 -9
  373. package/dist/types/components/dropi-input/dropi-input.d.ts +1 -1
  374. package/dist/types/components/dropi-modal/dropi-modal.d.ts +1 -1
  375. package/dist/types/components/dropi-otp-send-code/dropi-otp-send-code.d.ts +3 -1
  376. package/dist/types/components/dropi-table/dropi-table.d.ts +1 -1
  377. package/dist/types/components.d.ts +39 -38
  378. package/hydrate/index.js +109 -101
  379. package/hydrate/index.mjs +109 -101
  380. package/package.json +1 -1
  381. package/scripts/setup.js +25 -4
  382. package/dist/components/p-B_Ace02i.js +0 -1
  383. package/dist/components/p-BrjO_JXp.js +0 -1
  384. package/dist/components/p-BwhxWL4p.js +0 -1
  385. package/dist/components/p-Bz2jXX3R.js +0 -1
  386. package/dist/components/p-D-vQQQNz.js +0 -1
  387. package/dist/components/p-D13d88W3.js +0 -1
  388. package/dist/components/p-I3w7xF7Q.js +0 -1
  389. package/dist/components/p-o5gyrbbD.js +0 -1
  390. package/dist/dropi-ui/p-00e5a2de.entry.js +0 -1
  391. package/dist/dropi-ui/p-0188e07a.entry.js +0 -1
  392. package/dist/dropi-ui/p-02710049.entry.js +0 -1
  393. package/dist/dropi-ui/p-18adf694.entry.js +0 -1
  394. package/dist/dropi-ui/p-1a3619c3.entry.js +0 -1
  395. package/dist/dropi-ui/p-25640777.entry.js +0 -1
  396. package/dist/dropi-ui/p-2674d901.entry.js +0 -1
  397. package/dist/dropi-ui/p-2af538b9.entry.js +0 -1
  398. package/dist/dropi-ui/p-3013f3b8.entry.js +0 -1
  399. package/dist/dropi-ui/p-3321ca70.entry.js +0 -1
  400. package/dist/dropi-ui/p-33d242ec.entry.js +0 -1
  401. package/dist/dropi-ui/p-39af6478.entry.js +0 -1
  402. package/dist/dropi-ui/p-446a481d.entry.js +0 -1
  403. package/dist/dropi-ui/p-50e0d44f.entry.js +0 -1
  404. package/dist/dropi-ui/p-5c0bd7c2.entry.js +0 -1
  405. package/dist/dropi-ui/p-5ddf6e93.entry.js +0 -1
  406. package/dist/dropi-ui/p-5fb33ae4.entry.js +0 -1
  407. package/dist/dropi-ui/p-665ef7ba.entry.js +0 -1
  408. package/dist/dropi-ui/p-66b80371.entry.js +0 -1
  409. package/dist/dropi-ui/p-7bfc1c27.entry.js +0 -1
  410. package/dist/dropi-ui/p-7c0d2edf.entry.js +0 -1
  411. package/dist/dropi-ui/p-7eb27836.entry.js +0 -1
  412. package/dist/dropi-ui/p-8bf5d8ee.entry.js +0 -1
  413. package/dist/dropi-ui/p-9212f544.entry.js +0 -1
  414. package/dist/dropi-ui/p-955e52f8.entry.js +0 -1
  415. package/dist/dropi-ui/p-976a15e3.entry.js +0 -1
  416. package/dist/dropi-ui/p-a1c93e55.entry.js +0 -1
  417. package/dist/dropi-ui/p-a232c6a7.entry.js +0 -1
  418. package/dist/dropi-ui/p-a822a23e.entry.js +0 -1
  419. package/dist/dropi-ui/p-af8e2157.entry.js +0 -1
  420. package/dist/dropi-ui/p-c3614c4a.entry.js +0 -1
  421. package/dist/dropi-ui/p-cc527d91.entry.js +0 -1
  422. package/dist/dropi-ui/p-cdde481b.entry.js +0 -1
  423. package/dist/dropi-ui/p-dd5d8b1b.entry.js +0 -1
  424. package/dist/dropi-ui/p-efc2fc35.entry.js +0 -1
  425. package/dist/dropi-ui/p-f41cd9b5.entry.js +0 -1
  426. package/dist/dropi-ui/p-fa3d0267.entry.js +0 -1
@@ -0,0 +1,66 @@
1
+ import { r as registerInstance, a as getElement, h } from './index-Cvp2LQOM.js';
2
+
3
+ const dropiIconCss = () => `:host{display:inline-flex;align-items:center;justify-content:center;fill:var(--icon-fill, currentColor);overflow:hidden}svg{fill:inherit;display:block;width:100%;height:100%;vertical-align:middle}.spin{animation:spin 1s linear infinite}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}`;
4
+
5
+ const DropiIcon = class {
6
+ constructor(hostRef) {
7
+ registerInstance(this, hostRef);
8
+ }
9
+ get el() { return getElement(this); }
10
+ /** Icon name matching the id in the SVG sprite */
11
+ name = '';
12
+ /** Width of the icon (CSS value) */
13
+ iconWidth = '20px';
14
+ iconHeight = '20px';
15
+ color = 'currentColor';
16
+ widthChanged() {
17
+ this.updateHostStyles();
18
+ }
19
+ heightChanged() {
20
+ this.updateHostStyles();
21
+ }
22
+ colorChanged() {
23
+ this.applyColor();
24
+ }
25
+ componentWillLoad() {
26
+ this.applyColor();
27
+ this.updateHostStyles();
28
+ }
29
+ componentDidUpdate() {
30
+ this.updateHostStyles();
31
+ }
32
+ updateHostStyles() {
33
+ this.el.style.width = this.iconWidth;
34
+ this.el.style.height = this.iconHeight;
35
+ }
36
+ applyColor() {
37
+ if (!this.color)
38
+ return;
39
+ const fill = this.color.startsWith('#')
40
+ ? this.color
41
+ : this.color === 'currentColor'
42
+ ? 'currentColor'
43
+ : `var(--${this.color})`;
44
+ this.el.style.setProperty('--icon-fill', fill);
45
+ }
46
+ render() {
47
+ return (h("svg", { key: '7185e1861c44aafcec2117f53f61ce18992388ad', width: this.iconWidth, height: this.iconHeight, class: { spin: (this.name ?? '') === 'Spinner' }, "aria-hidden": "true" }, h("use", { key: 'b7913bfbf0bbb6bfa35f848f9fee19e09646004d', href: `/assets/icons/symbol/svg/sprite.css.svg#${this.name ?? ''}` })));
48
+ }
49
+ static get watchers() { return {
50
+ "iconWidth": [{
51
+ "widthChanged": 0
52
+ }],
53
+ "iconHeight": [{
54
+ "heightChanged": 0
55
+ }],
56
+ "color": [{
57
+ "colorChanged": 0
58
+ }]
59
+ }; }
60
+ };
61
+ DropiIcon.style = dropiIconCss();
62
+
63
+ export { DropiIcon as dropi_icon };
64
+ //# sourceMappingURL=dropi-icon.entry.esm.js.map
65
+
66
+ //# sourceMappingURL=dropi-icon.entry.js.map
@@ -0,0 +1 @@
1
+ {"file":"dropi-icon.entry.js","mappings":";;AAAA,MAAM,YAAY,GAAG,MAAM,CAAC,qTAAqT,CAAC;;MCYrU,SAAS,GAAA,MAAA;;;;;;IAIZ,IAAI,GAAW,EAAE;;IAEjB,SAAS,GAAW,MAAM;IAC1B,UAAU,GAAW,MAAM;IAC3B,KAAK,GAAW,cAAc;IAGtC,YAAY,GAAA;QACV,IAAI,CAAC,gBAAgB,EAAE;;IAIzB,aAAa,GAAA;QACX,IAAI,CAAC,gBAAgB,EAAE;;IAIzB,YAAY,GAAA;QACV,IAAI,CAAC,UAAU,EAAE;;IAGnB,iBAAiB,GAAA;QACf,IAAI,CAAC,UAAU,EAAE;QACjB,IAAI,CAAC,gBAAgB,EAAE;;IAGzB,kBAAkB,GAAA;QAChB,IAAI,CAAC,gBAAgB,EAAE;;IAGjB,gBAAgB,GAAA;QACtB,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS;QACpC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU;;IAGhC,UAAU,GAAA;QAChB,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE;QACjB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG;cAClC,IAAI,CAAC;AACP,cAAE,IAAI,CAAC,KAAK,KAAK;AACjB,kBAAE;AACF,kBAAE,CAAA,MAAA,EAAS,IAAI,CAAC,KAAK,GAAG;QAC1B,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC;;IAGhD,MAAM,GAAA;AACJ,QAAA,QACE,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAE,IAAI,CAAC,SAAS,EACrB,MAAM,EAAE,IAAI,CAAC,UAAU,EACvB,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,MAAM,SAAS,EAAE,iBACpC,MAAM,EAAA,EAElB,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,IAAI,EAAE,CAAA,wCAAA,EAA2C,IAAI,CAAC,IAAI,IAAI,EAAE,CAAA,CAAE,EAAA,CAAI,CACvE;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/dropi-icon/dropi-icon.css?tag=dropi-icon&encapsulation=shadow","src/components/dropi-icon/dropi-icon.tsx"],"sourcesContent":[":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n fill: var(--icon-fill, currentColor);\n overflow: hidden;\n}\n\nsvg {\n fill: inherit;\n display: block;\n width: 100%;\n height: 100%;\n vertical-align: middle;\n}\n\n.spin {\n animation: spin 1s linear infinite;\n}\n\n@keyframes spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n}\n","import { Component, Prop, h, Watch, Element } from '@stencil/core';\n\n/**\n * @component dropi-icon\n * Renders an SVG icon from the Dropi sprite sheet.\n * The sprite must be available at `assets/icons/sprite.svg`.\n */\n@Component({\n tag: 'dropi-icon',\n styleUrl: 'dropi-icon.css',\n shadow: true,\n})\nexport class DropiIcon {\n @Element() el: HTMLElement;\n\n /** Icon name matching the id in the SVG sprite */\n @Prop() name: string = '';\n /** Width of the icon (CSS value) */\n @Prop() iconWidth: string = '20px';\n @Prop() iconHeight: string = '20px';\n @Prop() color: string = 'currentColor';\n\n @Watch('iconWidth')\n widthChanged() {\n this.updateHostStyles();\n }\n\n @Watch('iconHeight')\n heightChanged() {\n this.updateHostStyles();\n }\n\n @Watch('color')\n colorChanged() {\n this.applyColor();\n }\n\n componentWillLoad() {\n this.applyColor();\n this.updateHostStyles();\n }\n\n componentDidUpdate() {\n this.updateHostStyles();\n }\n\n private updateHostStyles() {\n this.el.style.width = this.iconWidth;\n this.el.style.height = this.iconHeight;\n }\n\n private applyColor() {\n if (!this.color) return;\n const fill = this.color.startsWith('#')\n ? this.color\n : this.color === 'currentColor'\n ? 'currentColor'\n : `var(--${this.color})`;\n this.el.style.setProperty('--icon-fill', fill);\n }\n\n render() {\n return (\n <svg\n width={this.iconWidth}\n height={this.iconHeight}\n class={{ spin: (this.name ?? '') === 'Spinner' }}\n aria-hidden=\"true\"\n >\n <use href={`/assets/icons/symbol/svg/sprite.css.svg#${this.name ?? ''}`} />\n </svg>\n );\n }\n}\n"],"version":3}
@@ -0,0 +1,40 @@
1
+ import { r as registerInstance, h } from './index-Cvp2LQOM.js';
2
+
3
+ const dropiIlustrationIconCss = () => `:host{display:inline-flex}.dropi-ilustration{display:inline-flex;align-items:center;justify-content:center}.dropi-ilustration__image,.dropi-ilustration-insignia{margin:0;display:flex;align-items:center;justify-content:center}.dropi-ilustration__image img{max-width:100%;height:auto}.dropi-ilustration__image-mb{width:60px;height:60px;display:flex;align-items:center;justify-content:center;border-radius:50%;margin:0}.dropi-ilustration__image-mb.success{background:var(--Success-Success-500, #22c55e)}.dropi-ilustration__image-mb.error{background:var(--Error-Error-500, #ef4444)}.dropi-ilustration__image-mb.info{background:var(--Info-Info-500, #3b82f6)}.dropi-ilustration__image-mb.warning{background:url('assets/icons/ilustration/bg-warning.svg') no-repeat center;background-size:contain;border-radius:0}.dropi-ilustration-insignia-tag{display:flex;align-items:center;margin:0}.dropi-ilustration-insignia-tag img{position:relative;z-index:2;height:32px;width:auto}.tag{border-radius:32px;color:var(--Neutral-White, #ffffff);text-transform:capitalize;margin:0 0 0 -20px;display:flex;align-items:center;justify-content:flex-start}.tag span{color:var(--Neutral-White, #ffffff);padding:4px 8px 4px 18px;font-size:var(--font-size-xxs)}.tag--verified{background:linear-gradient(90deg, #ffc10d 41.3%, #ff6102 112.32%)}.tag--premium{background:linear-gradient(90deg, #ff6102 56.52%, #ffc10d 107.25%)}.tag--exclusive{background:linear-gradient(90deg, var(--Gray-900, #0e111a) 26.09%, #ff6102 116.67%)}`;
4
+
5
+ const DropiIlustrationIcon = class {
6
+ constructor(hostRef) {
7
+ registerInstance(this, hostRef);
8
+ }
9
+ /** Display mode */
10
+ type = 'dropi';
11
+ /** State for dropi/mb types */
12
+ state = 'default';
13
+ /** Insignia variant */
14
+ stateInsignia = 'verified';
15
+ /** Show insignia as tag with label (for product cards) */
16
+ tagProduct = false;
17
+ insigniaIcons = {
18
+ verified: 'assets/icons/ilustration/verified-new.svg',
19
+ premium: 'assets/icons/ilustration/premium-new.svg',
20
+ exclusive: 'assets/icons/ilustration/exclusive.svg',
21
+ };
22
+ getIconName(state) {
23
+ const map = {
24
+ success: 'Check-circle',
25
+ error: 'Cross-circle',
26
+ info: 'Info',
27
+ warning: 'Info',
28
+ };
29
+ return map[state] || 'Info';
30
+ }
31
+ render() {
32
+ return (h("div", { key: '2f956eddb214de168aae134374512600867e77a8', class: "dropi-ilustration" }, this.type === 'dropi' && (h("figure", { key: '3d05624542d51f64cb6402fb958f039bc943afb7', class: "dropi-ilustration__image" }, h("img", { key: '6fb383b378d989f675433c46710e246dc193f26b', src: `assets/icons/ilustration/${(!this.state || String(this.state) === 'undefined' || String(this.state) === 'null') ? 'default' : this.state}.svg`, alt: this.state ?? 'default', onError: (e) => { e.target.src = 'assets/icons/ilustration/default.svg'; } }))), this.type === 'mb' && (h("figure", { key: 'f66957ddbba9506d041ab1b2e8877872b25bdbf3', class: `dropi-ilustration__image-mb ${this.state}` }, ['success', 'error', 'info', 'warning'].includes(this.state) && (h("dropi-icon", { key: '4f65eb91eb99c07abefc6089c6935b1fb573978b', name: this.getIconName(this.state), iconWidth: "24px", iconHeight: "24px", color: "Neutral-White" })))), this.type === 'insignia' && (h("figure", { key: 'fd0db6cbdc7daf018446f03cf8dd13dbe218733a', class: this.tagProduct ? 'dropi-ilustration-insignia-tag' : 'dropi-ilustration-insignia' }, h("img", { key: '79cd16693eeb848db9c027c8d2e96c6760a9e2ac', src: this.insigniaIcons[this.stateInsignia], alt: this.stateInsignia }), this.tagProduct && (h("p", { key: '58ec25aa47c8756ec11a0fba679194a25dfaad0c', class: `tag tag--${this.stateInsignia}` }, h("span", { key: '8354a3de165526351bc53021218b1fb2a0a4d064', class: "Caption-S" }, this.stateInsignia.charAt(0).toUpperCase() + this.stateInsignia.slice(1))))))));
33
+ }
34
+ };
35
+ DropiIlustrationIcon.style = dropiIlustrationIconCss();
36
+
37
+ export { DropiIlustrationIcon as dropi_ilustration_icon };
38
+ //# sourceMappingURL=dropi-ilustration-icon.entry.esm.js.map
39
+
40
+ //# sourceMappingURL=dropi-ilustration-icon.entry.js.map
@@ -0,0 +1 @@
1
+ {"file":"dropi-ilustration-icon.entry.js","mappings":"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","names":[],"sources":["src/components/dropi-ilustration-icon/dropi-ilustration-icon.css?tag=dropi-ilustration-icon&encapsulation=shadow","src/components/dropi-ilustration-icon/dropi-ilustration-icon.tsx"],"sourcesContent":[":host {\n display: inline-flex;\n}\n\n.dropi-ilustration {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.dropi-ilustration__image,\n.dropi-ilustration-insignia {\n margin: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.dropi-ilustration__image img {\n max-width: 100%;\n height: auto;\n}\n\n.dropi-ilustration__image-mb {\n width: 60px;\n height: 60px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n margin: 0;\n}\n\n.dropi-ilustration__image-mb.success {\n background: var(--Success-Success-500, #22c55e);\n}\n\n.dropi-ilustration__image-mb.error {\n background: var(--Error-Error-500, #ef4444);\n}\n\n.dropi-ilustration__image-mb.info {\n background: var(--Info-Info-500, #3b82f6);\n}\n\n.dropi-ilustration__image-mb.warning {\n background: url('assets/icons/ilustration/bg-warning.svg') no-repeat center;\n background-size: contain;\n border-radius: 0;\n}\n\n.dropi-ilustration-insignia-tag {\n display: flex;\n align-items: center;\n margin: 0;\n}\n\n.dropi-ilustration-insignia-tag img {\n position: relative;\n z-index: 2;\n height: 32px;\n width: auto;\n}\n\n.tag {\n border-radius: 32px;\n color: var(--Neutral-White, #ffffff);\n text-transform: capitalize;\n margin: 0 0 0 -20px;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n}\n\n.tag span {\n color: var(--Neutral-White, #ffffff);\n padding: 4px 8px 4px 18px;\n font-size: var(--font-size-xxs);\n}\n\n.tag--verified {\n background: linear-gradient(90deg, #ffc10d 41.3%, #ff6102 112.32%);\n}\n\n.tag--premium {\n background: linear-gradient(90deg, #ff6102 56.52%, #ffc10d 107.25%);\n}\n\n.tag--exclusive {\n background: linear-gradient(90deg, var(--Gray-900, #0e111a) 26.09%, #ff6102 116.67%);\n}\n","import { Component, Prop, h } from '@stencil/core';\n\nexport type IlustrationType = 'dropi' | 'mb' | 'insignia';\nexport type IlustrationState = 'success' | 'error' | 'warning' | 'info' | 'default' | 'loading' | 'sorry' | 'love';\nexport type InsigniaState = 'verified' | 'premium' | 'exclusive';\n\n/**\n * @component dropi-ilustration-icon\n * Illustration icon with three modes: dropi (SVG asset), mb (colored circle), insignia (badge).\n *\n * @example\n * <dropi-ilustration-icon type=\"dropi\" state=\"success\"></dropi-ilustration-icon>\n * <dropi-ilustration-icon type=\"insignia\" state-insignia=\"premium\" tag-product></dropi-ilustration-icon>\n */\n@Component({\n tag: 'dropi-ilustration-icon',\n styleUrl: 'dropi-ilustration-icon.css',\n shadow: true,\n})\nexport class DropiIlustrationIcon {\n /** Display mode */\n @Prop() type: IlustrationType = 'dropi';\n /** State for dropi/mb types */\n @Prop() state: IlustrationState = 'default';\n /** Insignia variant */\n @Prop() stateInsignia: InsigniaState = 'verified';\n /** Show insignia as tag with label (for product cards) */\n @Prop() tagProduct: boolean = false;\n\n private readonly insigniaIcons: Record<InsigniaState, string> = {\n verified: 'assets/icons/ilustration/verified-new.svg',\n premium: 'assets/icons/ilustration/premium-new.svg',\n exclusive:'assets/icons/ilustration/exclusive.svg',\n };\n\n private getIconName(state: string): string {\n const map: Record<string, string> = {\n success: 'Check-circle',\n error: 'Cross-circle',\n info: 'Info',\n warning: 'Info',\n };\n return map[state] || 'Info';\n }\n\n render() {\n return (\n <div class=\"dropi-ilustration\">\n {this.type === 'dropi' && (\n <figure class=\"dropi-ilustration__image\">\n <img\n src={`assets/icons/ilustration/${(!this.state || String(this.state) === 'undefined' || String(this.state) === 'null') ? 'default' : this.state}.svg`}\n alt={this.state ?? 'default'}\n onError={(e) => { (e.target as HTMLImageElement).src = 'assets/icons/ilustration/default.svg'; }}\n />\n </figure>\n )}\n\n {this.type === 'mb' && (\n <figure class={`dropi-ilustration__image-mb ${this.state}`}>\n {['success', 'error', 'info', 'warning'].includes(this.state) && (\n <dropi-icon\n name={this.getIconName(this.state)}\n iconWidth=\"24px\"\n iconHeight=\"24px\"\n color=\"Neutral-White\"\n />\n )}\n </figure>\n )}\n\n {this.type === 'insignia' && (\n <figure class={this.tagProduct ? 'dropi-ilustration-insignia-tag' : 'dropi-ilustration-insignia'}>\n <img src={this.insigniaIcons[this.stateInsignia]} alt={this.stateInsignia} />\n {this.tagProduct && (\n <p class={`tag tag--${this.stateInsignia}`}>\n <span class=\"Caption-S\">\n {this.stateInsignia.charAt(0).toUpperCase() + this.stateInsignia.slice(1)}\n </span>\n </p>\n )}\n </figure>\n )}\n </div>\n );\n }\n}\n"],"version":3}
@@ -0,0 +1,45 @@
1
+ import { r as registerInstance, d as createEvent, h } from './index-Cvp2LQOM.js';
2
+
3
+ const dropiImageMiniatureCss = () => `:host{display:block}*,*::before,*::after{box-sizing:border-box}.miniature__label{display:block;font-size:var(--font-size-xs, 10px);color:var(--Gray-Gray-600, #475066);margin-bottom:var(--Size-2, 8px)}.miniature__grid{display:flex;flex-wrap:wrap;gap:var(--Size-2, 8px)}.miniature__item{position:relative;border-radius:var(--Border-2, 8px);overflow:hidden;cursor:pointer;flex-shrink:0}.miniature__item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 0.2s}.miniature__zoom{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,0.35);opacity:0;transition:opacity 0.2s}.miniature__item:hover img{transform:scale(1.05)}.miniature__item:hover .miniature__zoom{opacity:1}`;
4
+
5
+ const DropiImageMiniature = class {
6
+ constructor(hostRef) {
7
+ registerInstance(this, hostRef);
8
+ this.dropiImageClick = createEvent(this, "dropiImageClick", 7);
9
+ }
10
+ /** Optional label above the grid */
11
+ label = '';
12
+ /** Array of image URLs. Pass as JSON string or array */
13
+ images = [];
14
+ /** Thumbnail width (CSS value) */
15
+ width = '88px';
16
+ /** Thumbnail height (CSS value) */
17
+ height = '88px';
18
+ /** Emitted when a thumbnail is clicked. e.detail = { images, index } */
19
+ dropiImageClick;
20
+ get parsedImages() {
21
+ if (typeof this.images === 'string') {
22
+ try {
23
+ return JSON.parse(this.images);
24
+ }
25
+ catch {
26
+ return [];
27
+ }
28
+ }
29
+ return this.images || [];
30
+ }
31
+ handleError(e) {
32
+ e.target.src =
33
+ `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4OCA4OCI+PHJlY3Qgd2lkdGg9Ijg4IiBoZWlnaHQ9Ijg4IiBmaWxsPSIjZjdmOGZhIi8+PHRleHQgeD0iNDQiIHk9IjQ4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjYzNjOWQ5IiBmb250LXNpemU9IjEyIj5TaW4gaW1hZ2VuPC90ZXh0Pjwvc3ZnPg==`;
34
+ }
35
+ render() {
36
+ const imgs = this.parsedImages;
37
+ return (h("div", { key: '111d908339df1d3fba74cb8737f3c72e2254e2f0', class: "miniature" }, this.label && h("span", { key: '007ecc8149b6778eac7dd80a978a088f686001eb', class: "miniature__label" }, this.label), h("div", { key: '95c18d71f5c753bd2610915b62632aca7fbd4d16', class: "miniature__grid" }, imgs.map((src, i) => (h("div", { class: "miniature__item", style: { width: this.width, height: this.height }, key: i, onClick: () => this.dropiImageClick.emit({ images: imgs, index: i }) }, h("img", { src: src, alt: `imagen ${i + 1}`, loading: "lazy", onError: (e) => this.handleError(e) }), h("div", { class: "miniature__zoom" }, h("dropi-icon", { name: "Search", iconWidth: "16px", iconHeight: "16px", color: "Neutral-White" }))))))));
38
+ }
39
+ };
40
+ DropiImageMiniature.style = dropiImageMiniatureCss();
41
+
42
+ export { DropiImageMiniature as dropi_image_miniature };
43
+ //# sourceMappingURL=dropi-image-miniature.entry.esm.js.map
44
+
45
+ //# sourceMappingURL=dropi-image-miniature.entry.js.map
@@ -0,0 +1 @@
1
+ {"file":"dropi-image-miniature.entry.js","mappings":";;AAAA,MAAM,sBAAsB,GAAG,MAAM,CAAC,uuBAAuuB,CAAC;;MCWjwB,mBAAmB,GAAA,MAAA;;;;;;IAEtB,KAAK,GAAW,EAAE;;IAElB,MAAM,GAAsB,EAAE;;IAE9B,KAAK,GAAW,MAAM;;IAEtB,MAAM,GAAW,MAAM;;AAGtB,IAAA,eAAe;AAExB,IAAA,IAAY,YAAY,GAAA;AACtB,QAAA,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE;AACnC,YAAA,IAAI;gBAAE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;;AAAI,YAAA,MAAM;AAAE,gBAAA,OAAO,EAAE;;;AAE3D,QAAA,OAAO,IAAI,CAAC,MAAM,IAAI,EAAE;;AAGlB,IAAA,WAAW,CAAC,CAAQ,EAAA;QACzB,CAAC,CAAC,MAA2B,CAAC,GAAG;AAChC,YAAA,CAAA,sSAAA,CAAwS;;IAG5S,MAAM,GAAA;AACJ,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY;QAE9B,QACE,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,WAAW,EAAA,EACnB,IAAI,CAAC,KAAK,IAAI,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAC,kBAAkB,EAAA,EAAE,IAAI,CAAC,KAAK,CAAQ,EACjE,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,iBAAiB,EAAA,EACzB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,MACf,CAAA,CAAA,KAAA,EAAA,EACE,KAAK,EAAC,iBAAiB,EACvB,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EACjD,GAAG,EAAE,CAAC,EACN,OAAO,EAAE,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAA,EAEpE,CAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA,OAAA,EAAU,CAAC,GAAG,CAAC,CAAA,CAAE,EAAE,OAAO,EAAC,MAAM,EAAC,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAA,CAAI,EAC7F,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,iBAAiB,EAAA,EAC1B,CAAA,CAAA,YAAA,EAAA,EAAY,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,MAAM,EAAC,UAAU,EAAC,MAAM,EAAC,KAAK,EAAC,eAAe,EAAA,CAAG,CACjF,CACF,CACP,CAAC,CACE,CACF;;;;;;;","names":[],"sources":["src/components/dropi-image-miniature/dropi-image-miniature.css?tag=dropi-image-miniature&encapsulation=shadow","src/components/dropi-image-miniature/dropi-image-miniature.tsx"],"sourcesContent":[":host { display: block; }\n*, *::before, *::after { box-sizing: border-box; }\n\n.miniature__label {\n display: block;\n font-size: var(--font-size-xs, 10px);\n color: var(--Gray-Gray-600, #475066);\n margin-bottom: var(--Size-2, 8px);\n}\n\n.miniature__grid {\n display: flex;\n flex-wrap: wrap;\n gap: var(--Size-2, 8px);\n}\n\n.miniature__item {\n position: relative;\n border-radius: var(--Border-2, 8px);\n overflow: hidden;\n cursor: pointer;\n flex-shrink: 0;\n}\n\n.miniature__item img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n transition: transform 0.2s;\n}\n\n.miniature__zoom {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba(0,0,0,0.35);\n opacity: 0;\n transition: opacity 0.2s;\n}\n\n.miniature__item:hover img { transform: scale(1.05); }\n.miniature__item:hover .miniature__zoom { opacity: 1; }\n","import { Component, Prop, Event, EventEmitter, h } from '@stencil/core';\n\n/**\n * @component dropi-image-miniature\n * Grid of image thumbnails with zoom-on-hover overlay trigger.\n */\n@Component({\n tag: 'dropi-image-miniature',\n styleUrl: 'dropi-image-miniature.css',\n shadow: true,\n})\nexport class DropiImageMiniature {\n /** Optional label above the grid */\n @Prop() label: string = '';\n /** Array of image URLs. Pass as JSON string or array */\n @Prop() images: string[] | string = [];\n /** Thumbnail width (CSS value) */\n @Prop() width: string = '88px';\n /** Thumbnail height (CSS value) */\n @Prop() height: string = '88px';\n\n /** Emitted when a thumbnail is clicked. e.detail = { images, index } */\n @Event() dropiImageClick: EventEmitter<{ images: string[]; index: number }>;\n\n private get parsedImages(): string[] {\n if (typeof this.images === 'string') {\n try { return JSON.parse(this.images); } catch { return []; }\n }\n return this.images || [];\n }\n\n private handleError(e: Event) {\n (e.target as HTMLImageElement).src =\n `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4OCA4OCI+PHJlY3Qgd2lkdGg9Ijg4IiBoZWlnaHQ9Ijg4IiBmaWxsPSIjZjdmOGZhIi8+PHRleHQgeD0iNDQiIHk9IjQ4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjYzNjOWQ5IiBmb250LXNpemU9IjEyIj5TaW4gaW1hZ2VuPC90ZXh0Pjwvc3ZnPg==`;\n }\n\n render() {\n const imgs = this.parsedImages;\n\n return (\n <div class=\"miniature\">\n {this.label && <span class=\"miniature__label\">{this.label}</span>}\n <div class=\"miniature__grid\">\n {imgs.map((src, i) => (\n <div\n class=\"miniature__item\"\n style={{ width: this.width, height: this.height }}\n key={i}\n onClick={() => this.dropiImageClick.emit({ images: imgs, index: i })}\n >\n <img src={src} alt={`imagen ${i + 1}`} loading=\"lazy\" onError={(e) => this.handleError(e)} />\n <div class=\"miniature__zoom\">\n <dropi-icon name=\"Search\" iconWidth=\"16px\" iconHeight=\"16px\" color=\"Neutral-White\" />\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n }\n}\n"],"version":3}
@@ -0,0 +1,64 @@
1
+ import { r as registerInstance, d as createEvent, h } from './index-Cvp2LQOM.js';
2
+
3
+ const dropiImageOverlayCss = () => `:host{display:block}.overlay{position:fixed;inset:0;background:rgba(0,0,0,0.92);display:flex;justify-content:center;align-items:center;z-index:9999;animation:fade-in 0.3s ease-out}.overlay__close{position:absolute;top:24px;right:24px;background:rgba(255, 255, 255, 0.1);border:none;border-radius:50%;width:48px;height:48px;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:10010;transition:background 0.15s}.overlay__close:hover{background:rgba(255, 255, 255, 0.2)}.overlay__body{display:flex;width:90%;height:80%;max-width:1200px;gap:32px;align-items:center}.overlay__body--single{justify-content:center}.overlay__thumbs{display:flex;flex-direction:column;gap:12px;height:100%;overflow-y:auto;padding-right:8px;width:100px;flex-shrink:0}.overlay__thumbs::-webkit-scrollbar{width:4px}.overlay__thumbs::-webkit-scrollbar-thumb{background:var(--Gray-Gray-600);border-radius:4px}.overlay__thumb-box{width:80px;height:80px;border:2px solid transparent;border-radius:8px;overflow:hidden;cursor:pointer;flex-shrink:0;transition:border-color 0.2s}.overlay__thumb-box--active{border-color:var(--Primary-Primary-500, #f49a3d)}.overlay__thumb-img{width:100%;height:100%;object-fit:cover}.overlay__content{flex:1;height:100%;position:relative;display:flex;justify-content:center;align-items:center}.overlay__main-image{max-width:100%;max-height:100%;object-fit:contain;border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,0.5);animation:scale-up 0.3s ease-out}.overlay__nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255, 255, 255, 0.1);border:none;border-radius:50%;width:48px;height:48px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background 0.2s;z-index:5}.overlay__nav:hover{background:rgba(255, 255, 255, 0.2)}.overlay__nav--prev{left:-24px}.overlay__nav--next{right:-24px;background:var(--Neutral-White)}.overlay__nav--next:hover{background:var(--Neutral-White)}@keyframes fade-in{from{opacity:0}to{opacity:1}}@keyframes scale-up{from{transform:scale(0.9);opacity:0}to{transform:scale(1);opacity:1}}`;
4
+
5
+ const DropiImageOverlay = class {
6
+ constructor(hostRef) {
7
+ registerInstance(this, hostRef);
8
+ this.dropiClose = createEvent(this, "dropiClose", 7);
9
+ }
10
+ /** Whether the overlay is visible */
11
+ visible = false;
12
+ /** Images array or JSON string */
13
+ images = [];
14
+ /** Initially active image index */
15
+ activeIndex = 0;
16
+ current = 0;
17
+ parsedImages = [];
18
+ /** Emitted when overlay closes */
19
+ dropiClose;
20
+ imagesChanged(val) {
21
+ this.parsedImages = typeof val === 'string' ? JSON.parse(val) : (val || []);
22
+ }
23
+ indexChanged(val) { this.current = val; }
24
+ visibleChanged(val) {
25
+ if (val)
26
+ this.current = this.activeIndex;
27
+ }
28
+ componentWillLoad() {
29
+ this.imagesChanged(this.images);
30
+ this.current = this.activeIndex;
31
+ }
32
+ close() { this.visible = false; this.dropiClose.emit(); }
33
+ prev() { this.current = (this.current - 1 + this.parsedImages.length) % this.parsedImages.length; }
34
+ next() { this.current = (this.current + 1) % this.parsedImages.length; }
35
+ handleError(e) {
36
+ e.target.src =
37
+ `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMzAwIj48cmVjdCB3aWR0aD0iNDAwIiBoZWlnaHQ9IjMwMCIgZmlsbD0iIzFhMjAzMyIvPjx0ZXh0IHg9IjIwMCIgeT0iMTU1IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNDc1MDY2IiBmb250LXNpemU9IjE0Ij5TaW4gaW1hZ2VuPC90ZXh0Pjwvc3ZnPg==`;
38
+ }
39
+ render() {
40
+ const isVisible = this.visible === true || String(this.visible) === 'true';
41
+ if (!isVisible)
42
+ return null;
43
+ const imgs = this.parsedImages;
44
+ const multi = imgs.length > 1;
45
+ return (h("div", { class: "overlay", onClick: () => this.close() }, h("button", { class: "overlay__close", onClick: (e) => { e.stopPropagation(); this.close(); }, "aria-label": "Cerrar" }, h("dropi-icon", { name: "Close-large", iconWidth: "24px", iconHeight: "24px", color: "Neutral-White" })), h("div", { class: { 'overlay__body': true, 'overlay__body--single': !multi }, onClick: (e) => e.stopPropagation() }, multi && (h("div", { class: "overlay__thumbs" }, imgs.map((src, i) => (h("div", { key: i, class: { 'overlay__thumb-box': true, 'overlay__thumb-box--active': i === this.current }, onClick: () => this.current = i }, h("img", { src: src, alt: `miniatura ${i + 1}`, class: "overlay__thumb-img", onError: (e) => this.handleError(e) })))))), h("div", { class: "overlay__content" }, multi && (h("button", { class: "overlay__nav overlay__nav--prev", onClick: () => this.prev(), "aria-label": "Anterior" }, h("dropi-icon", { name: "Dropdown-left", iconWidth: "18px", iconHeight: "18px", color: "Gray-Gray-500" }))), h("img", { class: "overlay__main-image", src: imgs[this.current], alt: `imagen ${this.current + 1}`, onError: (e) => this.handleError(e) }), multi && (h("button", { class: "overlay__nav overlay__nav--next", onClick: () => this.next(), "aria-label": "Siguiente" }, h("dropi-icon", { name: "Dropdown-Right", iconWidth: "18px", iconHeight: "18px", color: "Gray-Gray-500" })))))));
46
+ }
47
+ static get watchers() { return {
48
+ "images": [{
49
+ "imagesChanged": 0
50
+ }],
51
+ "activeIndex": [{
52
+ "indexChanged": 0
53
+ }],
54
+ "visible": [{
55
+ "visibleChanged": 0
56
+ }]
57
+ }; }
58
+ };
59
+ DropiImageOverlay.style = dropiImageOverlayCss();
60
+
61
+ export { DropiImageOverlay as dropi_image_overlay };
62
+ //# sourceMappingURL=dropi-image-overlay.entry.esm.js.map
63
+
64
+ //# sourceMappingURL=dropi-image-overlay.entry.js.map
@@ -0,0 +1 @@
1
+ {"file":"dropi-image-overlay.entry.js","mappings":";;AAAA,MAAM,oBAAoB,GAAG,MAAM,CAAC,siEAAsiE,CAAC;;MCW9jE,iBAAiB,GAAA,MAAA;;;;;;IAEH,OAAO,GAAQ,KAAK;;IAErC,MAAM,GAAsB,EAAE;;IAEb,WAAW,GAAW,CAAC;IAE/B,OAAO,GAAW,CAAC;IACnB,YAAY,GAAa,EAAE;;AAGnC,IAAA,UAAU;AAGnB,IAAA,aAAa,CAAC,GAAsB,EAAA;QAClC,IAAI,CAAC,YAAY,GAAG,OAAO,GAAG,KAAK,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC;;IAI7E,YAAY,CAAC,GAAW,EAAA,EAAI,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;AAG/C,IAAA,cAAc,CAAC,GAAY,EAAA;AAAI,QAAA,IAAI,GAAG;AAAE,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW;;IAEvE,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;AAC/B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW;;AAGzB,IAAA,KAAK,KAAK,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACvD,IAAI,GAAA,EAAK,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;IACjG,IAAI,GAAA,EAAK,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;AAEtE,IAAA,WAAW,CAAC,CAAQ,EAAA;QACzB,CAAC,CAAC,MAA2B,CAAC,GAAG;AAChC,YAAA,CAAA,8SAAA,CAAgT;;IAGpT,MAAM,GAAA;AACJ,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,MAAM;AAC1E,QAAA,IAAI,CAAC,SAAS;AAAE,YAAA,OAAO,IAAI;AAC3B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY;AAC9B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;AAE7B,QAAA,QACE,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,SAAS,EAAC,OAAO,EAAE,MAAM,IAAI,CAAC,KAAK,EAAE,EAAA,EAC9C,CAAA,CAAA,QAAA,EAAA,EAAQ,KAAK,EAAC,gBAAgB,EAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAA,YAAA,EAAa,QAAQ,EAAA,EACxG,CAAA,CAAA,YAAA,EAAA,EAAY,IAAI,EAAC,aAAa,EAAC,SAAS,EAAC,MAAM,EAAC,UAAU,EAAC,MAAM,EAAC,KAAK,EAAC,eAAe,GAAG,CACnF,EAET,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,eAAe,EAAE,EAAA,EACxG,KAAK,KACJ,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,iBAAiB,EAAA,EACzB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,MACf,CAAA,CAAA,KAAA,EAAA,EACE,GAAG,EAAE,CAAC,EACN,KAAK,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,4BAA4B,EAAE,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,EACvF,OAAO,EAAE,MAAM,IAAI,CAAC,OAAO,GAAG,CAAC,EAAA,EAE/B,CAAA,CAAA,KAAA,EAAA,EACE,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,CAAA,UAAA,EAAa,CAAC,GAAG,CAAC,CAAA,CAAE,EACzB,KAAK,EAAC,oBAAoB,EAC1B,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAA,CACnC,CACE,CACP,CAAC,CACE,CACP,EAED,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,kBAAkB,EAAA,EAC1B,KAAK,KACJ,CAAA,CAAA,QAAA,EAAA,EAAQ,KAAK,EAAC,iCAAiC,EAAC,OAAO,EAAE,MAAM,IAAI,CAAC,IAAI,EAAE,gBAAa,UAAU,EAAA,EAC/F,CAAA,CAAA,YAAA,EAAA,EAAY,IAAI,EAAC,eAAe,EAAC,SAAS,EAAC,MAAM,EAAC,UAAU,EAAC,MAAM,EAAC,KAAK,EAAC,eAAe,EAAA,CAAG,CACrF,CACV,EAED,CAAA,CAAA,KAAA,EAAA,EACE,KAAK,EAAC,qBAAqB,EAC3B,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EACvB,GAAG,EAAE,UAAU,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,EACjC,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAA,CACnC,EAED,KAAK,KACJ,CAAA,CAAA,QAAA,EAAA,EAAQ,KAAK,EAAC,iCAAiC,EAAC,OAAO,EAAE,MAAM,IAAI,CAAC,IAAI,EAAE,gBAAa,WAAW,EAAA,EAChG,CAAA,CAAA,YAAA,EAAA,EAAY,IAAI,EAAC,gBAAgB,EAAC,SAAS,EAAC,MAAM,EAAC,UAAU,EAAC,MAAM,EAAC,KAAK,EAAC,eAAe,EAAA,CAAG,CACtF,CACV,CACG,CACF,CACF;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/dropi-image-overlay/dropi-image-overlay.css?tag=dropi-image-overlay&encapsulation=shadow","src/components/dropi-image-overlay/dropi-image-overlay.tsx"],"sourcesContent":[":host { display: block; }\n\n.overlay {\n position: fixed;\n inset: 0;\n background: rgba(0,0,0,0.92);\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 9999;\n animation: fade-in 0.3s ease-out;\n}\n\n.overlay__close {\n position: absolute;\n top: 24px;\n right: 24px;\n background: rgba(255, 255, 255, 0.1);\n border: none;\n border-radius: 50%;\n width: 48px;\n height: 48px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n z-index: 10010;\n transition: background 0.15s;\n}\n.overlay__close:hover { background: rgba(255, 255, 255, 0.2); }\n\n.overlay__body {\n display: flex;\n width: 90%;\n height: 80%;\n max-width: 1200px;\n gap: 32px;\n align-items: center;\n}\n\n.overlay__body--single {\n justify-content: center;\n}\n\n/* ── Thumbnails (Left Column) ─────────────────────────── */\n.overlay__thumbs {\n display: flex;\n flex-direction: column;\n gap: 12px;\n height: 100%;\n overflow-y: auto;\n padding-right: 8px;\n width: 100px;\n flex-shrink: 0;\n}\n\n/* Hide scrollbar but keep functionality */\n.overlay__thumbs::-webkit-scrollbar { width: 4px; }\n.overlay__thumbs::-webkit-scrollbar-thumb { background: var(--Gray-Gray-600); border-radius: 4px; }\n\n.overlay__thumb-box {\n width: 80px;\n height: 80px;\n border: 2px solid transparent;\n border-radius: 8px;\n overflow: hidden;\n cursor: pointer;\n flex-shrink: 0;\n transition: border-color 0.2s;\n}\n\n.overlay__thumb-box--active {\n border-color: var(--Primary-Primary-500, #f49a3d);\n}\n\n.overlay__thumb-img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n\n/* ── Main Content (Right Area) ─────────────────────────── */\n.overlay__content {\n flex: 1;\n height: 100%;\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.overlay__main-image {\n max-width: 100%;\n max-height: 100%;\n object-fit: contain;\n border-radius: 12px;\n box-shadow: 0 10px 30px rgba(0,0,0,0.5);\n animation: scale-up 0.3s ease-out;\n}\n\n.overlay__nav {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n background: rgba(255, 255, 255, 0.1);\n border: none;\n border-radius: 50%;\n width: 48px;\n height: 48px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: background 0.2s;\n z-index: 5;\n}\n\n.overlay__nav:hover { background: rgba(255, 255, 255, 0.2); }\n.overlay__nav--prev { left: -24px; }\n.overlay__nav--next {\n right: -24px;\n background: var(--Neutral-White);\n}\n.overlay__nav--next:hover { background: var(--Neutral-White); }\n\n@keyframes fade-in { from { opacity: 0; } to { opacity: 1; } }\n@keyframes scale-up { from { transform: scale(0.9); opacity: 0; } to { transform: scale(1); opacity: 1; } }\n","import { Component, Prop, State, Event, EventEmitter, Watch, h } from '@stencil/core';\n\n/**\n * @component dropi-image-overlay\n * Full-screen image lightbox with prev/next navigation and thumbnails.\n */\n@Component({\n tag: 'dropi-image-overlay',\n styleUrl: 'dropi-image-overlay.css',\n shadow: true,\n})\nexport class DropiImageOverlay {\n /** Whether the overlay is visible */\n @Prop({ mutable: true }) visible: any = false;\n /** Images array or JSON string */\n @Prop() images: string[] | string = [];\n /** Initially active image index */\n @Prop({ mutable: true }) activeIndex: number = 0;\n\n @State() private current: number = 0;\n @State() private parsedImages: string[] = [];\n\n /** Emitted when overlay closes */\n @Event() dropiClose: EventEmitter<void>;\n\n @Watch('images')\n imagesChanged(val: string[] | string) {\n this.parsedImages = typeof val === 'string' ? JSON.parse(val) : (val || []);\n }\n\n @Watch('activeIndex')\n indexChanged(val: number) { this.current = val; }\n\n @Watch('visible')\n visibleChanged(val: boolean) { if (val) this.current = this.activeIndex; }\n\n componentWillLoad() {\n this.imagesChanged(this.images);\n this.current = this.activeIndex;\n }\n\n private close() { this.visible = false; this.dropiClose.emit(); }\n private prev() { this.current = (this.current - 1 + this.parsedImages.length) % this.parsedImages.length; }\n private next() { this.current = (this.current + 1) % this.parsedImages.length; }\n\n private handleError(e: Event) {\n (e.target as HTMLImageElement).src =\n `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgMzAwIj48cmVjdCB3aWR0aD0iNDAwIiBoZWlnaHQ9IjMwMCIgZmlsbD0iIzFhMjAzMyIvPjx0ZXh0IHg9IjIwMCIgeT0iMTU1IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjNDc1MDY2IiBmb250LXNpemU9IjE0Ij5TaW4gaW1hZ2VuPC90ZXh0Pjwvc3ZnPg==`;\n }\n\n render() {\n const isVisible = this.visible === true || String(this.visible) === 'true';\n if (!isVisible) return null;\n const imgs = this.parsedImages;\n const multi = imgs.length > 1;\n\n return (\n <div class=\"overlay\" onClick={() => this.close()}>\n <button class=\"overlay__close\" onClick={(e) => { e.stopPropagation(); this.close(); }} aria-label=\"Cerrar\">\n <dropi-icon name=\"Close-large\" iconWidth=\"24px\" iconHeight=\"24px\" color=\"Neutral-White\" />\n </button>\n\n <div class={{ 'overlay__body': true, 'overlay__body--single': !multi }} onClick={(e) => e.stopPropagation()}>\n {multi && (\n <div class=\"overlay__thumbs\">\n {imgs.map((src, i) => (\n <div\n key={i}\n class={{ 'overlay__thumb-box': true, 'overlay__thumb-box--active': i === this.current }}\n onClick={() => this.current = i}\n >\n <img\n src={src}\n alt={`miniatura ${i + 1}`}\n class=\"overlay__thumb-img\"\n onError={(e) => this.handleError(e)}\n />\n </div>\n ))}\n </div>\n )}\n\n <div class=\"overlay__content\">\n {multi && (\n <button class=\"overlay__nav overlay__nav--prev\" onClick={() => this.prev()} aria-label=\"Anterior\">\n <dropi-icon name=\"Dropdown-left\" iconWidth=\"18px\" iconHeight=\"18px\" color=\"Gray-Gray-500\" />\n </button>\n )}\n\n <img\n class=\"overlay__main-image\"\n src={imgs[this.current]}\n alt={`imagen ${this.current + 1}`}\n onError={(e) => this.handleError(e)}\n />\n\n {multi && (\n <button class=\"overlay__nav overlay__nav--next\" onClick={() => this.next()} aria-label=\"Siguiente\">\n <dropi-icon name=\"Dropdown-Right\" iconWidth=\"18px\" iconHeight=\"18px\" color=\"Gray-Gray-500\" />\n </button>\n )}\n </div>\n </div>\n </div>\n );\n }\n}\n"],"version":3}
@@ -0,0 +1,266 @@
1
+ import { r as registerInstance, d as createEvent, h } from './index-Cvp2LQOM.js';
2
+
3
+ const dropiInputCss = () => `:host{display:block;width:100%}*,*::before,*::after{box-sizing:border-box}.fixed-label-container{display:flex;width:100%;flex-direction:column;align-items:flex-start;gap:8px}.input-label{color:var(--Gray-Gray-600, #475066);font-size:var(--font-size-xs, 10px);font-weight:var(--font-weight-regular, 400);text-align:left}.asterisk{color:var(--Error-Error-500, #f46a6b)}.form-group{position:relative;width:100%}.input-container{position:relative}.icon-input{position:absolute;top:50%;left:12px;transform:translateY(-50%);z-index:1;display:flex;align-items:center;justify-content:center}.icon-input-password{position:absolute;top:50%;right:13px;transform:translateY(-50%);cursor:pointer;z-index:1;display:flex;align-items:center;justify-content:center}.form-control{box-sizing:border-box;width:100%;padding:var(--Size-2, 8px);border:1px solid var(--Gray-Gray-200, #c3c9d9);border-radius:var(--Border-2, 8px);background:var(--Neutral-White, #ffffff);font-size:var(--font-size-s, 12px);font-family:inherit;color:var(--Gray-Gray-700, #32394d);transition:border-color 0.3s ease-in-out;height:40px;outline:none;appearance:none;text-align:left}.form-control::placeholder{color:transparent;transition:color 0.2s ease-in-out}.form-control:focus::placeholder,.fixed-label-input::placeholder{color:var(--Gray-Gray-400, #858ea6)}.form-control:focus{border-color:var(--Info-Info-500, #50a5f1)}.form-control-valid{border-color:var(--Gray-Gray-400, #858ea6) !important;color:var(--Gray-Gray-600, #475066)}.form-control-invalid{border-color:var(--Error-Error-500, #f46a6b) !important;color:var(--Gray-Gray-600, #475066)}.form-control:disabled{border-color:var(--Gray-Gray-200, #c3c9d9) !important;color:var(--Gray-Gray-400, #858ea6);background-color:var(--Gray-Gray-50, #f7f8fa);cursor:not-allowed}.padding-icon{padding-left:40px}.input-container--has-icon label.label-bottom{left:40px}.input-container--has-icon .form-control:focus+label.label-bottom,.input-container--has-icon .form-control:not(:placeholder-shown)+label.label-bottom{left:0}.text-password{-webkit-text-security:disc;text-security:disc}label.label-bottom{position:absolute;font-weight:var(--font-weight-regular, 400);top:10px;font-size:var(--font-size-s, 12px);color:var(--Gray-Gray-500, #69738c);left:10px;transition:all 0.2s ease-in-out;pointer-events:none;overflow:hidden;width:90%;white-space:nowrap}.form-control:focus+label.label-bottom,.form-control:not(:placeholder-shown)+label.label-bottom{top:-22px;left:0;font-size:var(--font-size-xs, 10px);color:var(--Gray-Gray-600, #475066);width:unset}.form-control:disabled+label.label-bottom{color:var(--Gray-Gray-400, #858ea6)}.form-control-helper{display:flex;position:absolute;top:100%;left:0;gap:4px;align-items:center;margin-top:4px}.form-control-helper span{display:block;color:var(--Gray-Gray-600, #475066);font-size:var(--font-size-xs, 10px)}.invalid-color{color:var(--Error-Error-500, #f46a6b) !important}.disabled-helper{color:var(--Gray-Gray-400, #858ea6) !important}.disabled-helper{color:var(--Gray-Gray-400, #858ea6) !important}`;
4
+
5
+ const DropiInput = class {
6
+ constructor(hostRef) {
7
+ registerInstance(this, hostRef);
8
+ this.onInput = createEvent(this, "onInput", 7);
9
+ this.onChange = createEvent(this, "onChange", 7);
10
+ this.onFocus = createEvent(this, "onFocus", 7);
11
+ this.onBlur = createEvent(this, "onBlur", 7);
12
+ if (hostRef.$hostElement$["s-ei"]) {
13
+ this.internals = hostRef.$hostElement$["s-ei"];
14
+ }
15
+ else {
16
+ this.internals = hostRef.$hostElement$.attachInternals();
17
+ hostRef.$hostElement$["s-ei"] = this.internals;
18
+ }
19
+ }
20
+ internals;
21
+ // ── Identification ──────────────────────────────────────────
22
+ /** Input id. Defaults to label label. */
23
+ inputId = '';
24
+ /** Name attribute for native form submission */
25
+ name = '';
26
+ // ── Content ─────────────────────────────────────────────────
27
+ /** Floating or fixed label text */
28
+ label = '';
29
+ /** Placeholder text (visible in fixedLabel mode or on focus) */
30
+ placeholder = ' ';
31
+ /** Current value (controlled) */
32
+ value = '';
33
+ /** Max character length */
34
+ maxLength;
35
+ // ── Behavior ────────────────────────────────────────────────
36
+ /** Disable the input */
37
+ disabled = false;
38
+ /** Mark as required (shows asterisk when showObligatoryAsterisk is true) */
39
+ required = false;
40
+ /** Show the required asterisk on the label */
41
+ showObligatoryAsterisk = true;
42
+ /** Show label above the input (fixed), instead of floating inside */
43
+ fixedLabel = false;
44
+ /** Keyboard input mode hint */
45
+ inputMode = 'text';
46
+ // ── Input type modifiers ────────────────────────────────────
47
+ /** Show password visibility toggle (renders as password field) */
48
+ passwordInput = false;
49
+ /** Apply thousand separator formatting (e.g. 1,000,000) */
50
+ isMoneyInput = false;
51
+ /** Apply thousand separator without currency symbol */
52
+ isThousandSeparator = false;
53
+ /** Only allow numeric characters */
54
+ isNumericInput = false;
55
+ /** Allow decimal point when isNumericInput is true */
56
+ allowDecimals = false;
57
+ /** Only allow letter characters */
58
+ isLettersOnly = false;
59
+ // ── Icon ────────────────────────────────────────────────────
60
+ /** Icon name shown inside the input (only visible when value is not empty) */
61
+ icon = '';
62
+ /** Color token for the icon */
63
+ iconColor = 'Gray-Gray-400';
64
+ // ── Validation ──────────────────────────────────────────────
65
+ /** Mark the field as invalid (consumer-controlled) */
66
+ hasError = false;
67
+ /** Helper / error text shown below the field */
68
+ textHelper = '';
69
+ /** Only show textHelper when the field is invalid */
70
+ showHelperOnlyOnError = false;
71
+ // ── Angular-parity ──────────────────────────────────────────
72
+ /**
73
+ * Convenience object prop — matches Angular `inputProperties: InputProperties`.
74
+ * Fields: id, label, placeholder, maxLength, textHelper, passwordInput,
75
+ * icon, iconColor, isMoneyInput, showObligatoryAsterisk, isNumericInput,
76
+ * allowDecimals, isThousandSeparator, showHelperOnlyOnError,
77
+ * isLettersOnly, inputMode.
78
+ * Note: `formControl` is not supported; use `value` + onInput event instead.
79
+ */
80
+ inputProperties = null;
81
+ // ── Internal state ──────────────────────────────────────────
82
+ showPassword = false;
83
+ touched = false;
84
+ // ── Events ──────────────────────────────────────────────────
85
+ /** Emitted on every keystroke with the current value */
86
+ onInput;
87
+ /** Emitted on blur with the final value */
88
+ onChange;
89
+ /** Emitted on focus */
90
+ onFocus;
91
+ /** Emitted on blur */
92
+ onBlur;
93
+ inputPropertiesChanged(val) {
94
+ if (!val)
95
+ return;
96
+ if (val.id !== undefined)
97
+ this.inputId = val.id;
98
+ if (val.inputId !== undefined)
99
+ this.inputId = val.inputId;
100
+ if (val.label !== undefined)
101
+ this.label = val.label;
102
+ if (val.placeholder !== undefined)
103
+ this.placeholder = val.placeholder;
104
+ if (val.maxLength !== undefined)
105
+ this.maxLength = val.maxLength;
106
+ if (val.textHelper !== undefined)
107
+ this.textHelper = val.textHelper;
108
+ if (val.passwordInput !== undefined)
109
+ this.passwordInput = val.passwordInput;
110
+ if (val.isPasswordInput !== undefined)
111
+ this.passwordInput = val.isPasswordInput; // Fallback
112
+ if (val.icon !== undefined)
113
+ this.icon = val.icon;
114
+ if (val.iconColor !== undefined)
115
+ this.iconColor = val.iconColor;
116
+ if (val.isMoneyInput !== undefined)
117
+ this.isMoneyInput = val.isMoneyInput;
118
+ if (val.showObligatoryAsterisk !== undefined)
119
+ this.showObligatoryAsterisk = val.showObligatoryAsterisk;
120
+ if (val.isNumericInput !== undefined)
121
+ this.isNumericInput = val.isNumericInput;
122
+ if (val.allowDecimals !== undefined)
123
+ this.allowDecimals = val.allowDecimals;
124
+ if (val.isThousandSeparator !== undefined)
125
+ this.isThousandSeparator = val.isThousandSeparator;
126
+ if (val.showHelperOnlyOnError !== undefined)
127
+ this.showHelperOnlyOnError = val.showHelperOnlyOnError;
128
+ if (val.isLettersOnly !== undefined)
129
+ this.isLettersOnly = val.isLettersOnly;
130
+ if (val.inputMode !== undefined)
131
+ this.inputMode = val.inputMode;
132
+ }
133
+ valueChanged(val) {
134
+ this.internals.setFormValue(val);
135
+ }
136
+ disabledChanged(val) {
137
+ this.internals.setValidity(val ? { customError: true } : {}, val ? 'Field is disabled' : '');
138
+ }
139
+ componentWillLoad() {
140
+ this.internals.setFormValue(this.value ?? '');
141
+ if (this.inputProperties)
142
+ this.inputPropertiesChanged(this.inputProperties);
143
+ }
144
+ // ── Handlers ────────────────────────────────────────────────
145
+ handleInput(e) {
146
+ let val = e.target.value;
147
+ if (this.isNumericInput)
148
+ val = this.filterNumbers(val);
149
+ if (this.isLettersOnly)
150
+ val = this.filterLetters(val);
151
+ if (this.isMoneyInput || this.isThousandSeparator)
152
+ val = this.formatThousands(val, this.isMoneyInput);
153
+ this.value = val;
154
+ this.internals.setFormValue(val);
155
+ this.onInput.emit(val);
156
+ }
157
+ handleKeyDown(e) {
158
+ if ((this.isNumericInput || this.isMoneyInput || this.isThousandSeparator) && !this.isAllowedNumberKey(e)) {
159
+ e.preventDefault();
160
+ }
161
+ if (this.isLettersOnly && !this.isAllowedLetterKey(e)) {
162
+ e.preventDefault();
163
+ }
164
+ }
165
+ handleFocus() {
166
+ this.onFocus.emit();
167
+ }
168
+ handleBlur() {
169
+ this.touched = true;
170
+ this.onChange.emit(this.value);
171
+ this.onBlur.emit();
172
+ }
173
+ togglePassword() {
174
+ if (this.disabled)
175
+ return;
176
+ this.showPassword = !this.showPassword;
177
+ }
178
+ // ── Helpers ─────────────────────────────────────────────────
179
+ filterNumbers(val) {
180
+ const pattern = this.allowDecimals ? /[^0-9.]/g : /[^0-9]/g;
181
+ return val.replace(pattern, '');
182
+ }
183
+ filterLetters(val) {
184
+ return val.replace(/[^a-zA-ZáéíóúÁÉÍÓÚñÑüÜ\s]/g, '');
185
+ }
186
+ isAllowedNumberKey(e) {
187
+ const allowed = ['Backspace', 'Delete', 'ArrowLeft', 'ArrowRight', 'Tab', 'Enter', 'Home', 'End'];
188
+ if (allowed.includes(e.key))
189
+ return true;
190
+ if (e.ctrlKey || e.metaKey)
191
+ return true; // copy/paste/select-all
192
+ if (/^[0-9]$/.test(e.key))
193
+ return true;
194
+ if (this.allowDecimals && e.key === '.')
195
+ return true;
196
+ return false;
197
+ }
198
+ isAllowedLetterKey(e) {
199
+ const allowed = ['Backspace', 'Delete', 'ArrowLeft', 'ArrowRight', 'Tab', 'Enter', 'Home', 'End', ' '];
200
+ if (allowed.includes(e.key))
201
+ return true;
202
+ if (e.ctrlKey || e.metaKey)
203
+ return true;
204
+ return /^[a-zA-ZáéíóúÁÉÍÓÚñÑüÜ]$/.test(e.key);
205
+ }
206
+ formatThousands(val, withCurrency) {
207
+ const raw = val.replace(/[^0-9.]/g, '');
208
+ const [integer, decimal] = raw.split('.');
209
+ const formatted = integer.replace(/\B(?=(\d{3})+(?!\d))/g, ',');
210
+ const result = decimal !== undefined ? `${formatted}.${decimal}` : formatted;
211
+ return withCurrency ? `$${result}` : result;
212
+ }
213
+ // ── Computed ─────────────────────────────────────────────────
214
+ get resolvedId() {
215
+ return this.inputId || this.label;
216
+ }
217
+ get inputType() {
218
+ if (this.passwordInput)
219
+ return this.showPassword ? 'text' : 'password';
220
+ return 'text';
221
+ }
222
+ get showHelper() {
223
+ if (!this.textHelper)
224
+ return false;
225
+ if (this.showHelperOnlyOnError)
226
+ return this.hasError && this.touched;
227
+ return true;
228
+ }
229
+ get isInvalid() {
230
+ return this.hasError && this.touched;
231
+ }
232
+ // ── Render ───────────────────────────────────────────────────
233
+ render() {
234
+ const showObligatoryAsterisk = this.required && this.showObligatoryAsterisk && !this.disabled;
235
+ const showIconInline = !!this.icon;
236
+ return (h("div", { key: 'a6c762070ca5c0ffb5028f1899d4e026721664ee', class: { 'fixed-label-container': this.fixedLabel } }, this.fixedLabel && (h("div", { key: 'fb223818b568114400aa456e595623c882b8bcd2', class: "input-label Body-S-Regular" }, this.label, showObligatoryAsterisk && h("span", { key: '04c522a21ba3e0ec9710d267feb866d79dae7cbb', class: "asterisk" }, " *"))), h("div", { key: '1672e9954f11ad61e6f224953f97aa7036e5b212', class: "form-group" }, h("div", { key: 'd9bfc41486fe3f93d5144f55bf89a4ae1a916f5e', class: { 'input-container': true, 'input-container--has-icon': showIconInline } }, showIconInline && (h("dropi-icon", { key: 'e7d21fd9b115925ed2bc584a6f5c614ea3761922', class: "icon-input", name: this.icon, color: this.iconColor, iconWidth: "20px", iconHeight: "20px", style: { width: '20px', height: '20px' } })), this.passwordInput && (h("dropi-icon", { key: '5593f56ed03acdb79a9e8e4fefac58d585a5a092', class: "icon-input-password", name: this.showPassword ? 'Eye' : 'Eye-crossed', iconWidth: "20px", iconHeight: "20px", style: { width: '20px', height: '20px' }, color: "Gray-Gray-500", onClick: () => this.togglePassword() })), h("input", { key: 'ef70c2be1606334593269be63234295bdbdf86b1', id: this.resolvedId, class: {
237
+ 'form-control': true,
238
+ 'form-control-valid': !this.isInvalid && this.touched && !!this.value,
239
+ 'form-control-invalid': this.isInvalid,
240
+ 'padding-icon': showIconInline,
241
+ 'text-password': this.passwordInput && !this.showPassword,
242
+ 'fixed-label-input': this.fixedLabel,
243
+ }, type: this.inputType, value: this.value, placeholder: this.fixedLabel ? this.placeholder : ' ', disabled: this.disabled, required: this.required, maxLength: this.maxLength, inputMode: this.inputMode, "data-cy": undefined, onInput: e => this.handleInput(e), onKeyDown: e => this.handleKeyDown(e), onFocus: () => this.handleFocus(), onBlur: () => this.handleBlur() }), !this.fixedLabel && (h("label", { key: 'c0d079355d299b26dc2e8bde4347fd30aa791e21', class: "Body-S-Regular label-bottom", htmlFor: this.resolvedId }, this.label, showObligatoryAsterisk && h("span", { key: 'fca9bc2745e0ccb7ba3b10c4e3e6b5d8bbb6f645', class: "asterisk" }, " *"))), this.showHelper && (h("div", { key: 'f864cc07f591d0948cb06d6dde1e910bab10187a', class: "form-control-helper" }, this.isInvalid && h("dropi-icon", { key: 'be2cf0d632fd8245e817d4023b4e4f060bc80d24', name: "Warning-circle", iconWidth: "12px", iconHeight: "12px", color: "Error-Error-500" }), h("span", { key: '3768369a635e8ac03db24b0ba7fa7a214cc71577', class: {
244
+ 'disabled-helper': this.disabled,
245
+ 'invalid-color': this.isInvalid,
246
+ } }, this.textHelper)))))));
247
+ }
248
+ static get formAssociated() { return true; }
249
+ static get watchers() { return {
250
+ "inputProperties": [{
251
+ "inputPropertiesChanged": 0
252
+ }],
253
+ "value": [{
254
+ "valueChanged": 0
255
+ }],
256
+ "disabled": [{
257
+ "disabledChanged": 0
258
+ }]
259
+ }; }
260
+ };
261
+ DropiInput.style = dropiInputCss();
262
+
263
+ export { DropiInput as dropi_input };
264
+ //# sourceMappingURL=dropi-input.entry.esm.js.map
265
+
266
+ //# sourceMappingURL=dropi-input.entry.js.map