@dropi/ui 0.1.20 → 0.1.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (515) hide show
  1. package/dist/cjs/dropi-accordion-item.cjs.entry.js +54 -0
  2. package/dist/cjs/dropi-accordion.cjs.entry.js +5 -39
  3. package/dist/cjs/dropi-alert-legacy.cjs.entry.js +39 -0
  4. package/dist/cjs/dropi-alert-modal.cjs.entry.js +80 -24
  5. package/dist/cjs/dropi-alert.cjs.entry.js +20 -14
  6. package/dist/cjs/dropi-avatars.cjs.entry.js +2 -2
  7. package/dist/cjs/dropi-badge-legacy.cjs.entry.js +30 -0
  8. package/dist/cjs/dropi-badge.cjs.entry.js +4 -4
  9. package/dist/cjs/dropi-banner-external.cjs.entry.js +14 -8
  10. package/dist/cjs/dropi-breadcrumb.cjs.entry.js +1 -1
  11. package/dist/cjs/dropi-button.cjs.entry.js +11 -7
  12. package/dist/cjs/dropi-card-checkbox.cjs.entry.js +17 -14
  13. package/dist/cjs/dropi-card-product.cjs.entry.js +40 -23
  14. package/dist/cjs/dropi-card-section.cjs.entry.js +17 -17
  15. package/dist/cjs/dropi-carousel.cjs.entry.js +107 -42
  16. package/dist/cjs/dropi-checkbox-selection-list.cjs.entry.js +17 -15
  17. package/dist/cjs/dropi-checkbox.cjs.entry.js +6 -6
  18. package/dist/cjs/dropi-chips.cjs.entry.js +8 -8
  19. package/dist/cjs/dropi-city-selector.cjs.entry.js +20 -9
  20. package/dist/cjs/dropi-color-picker.cjs.entry.js +300 -50
  21. package/dist/cjs/dropi-country-flags.cjs.entry.js +4 -4
  22. package/dist/cjs/dropi-country-selector.cjs.entry.js +50 -17
  23. package/dist/cjs/dropi-date-picker-range.cjs.entry.js +8 -8
  24. package/dist/cjs/dropi-date-picker.cjs.entry.js +53 -35
  25. package/dist/cjs/dropi-drawer.cjs.entry.js +34 -8
  26. package/dist/cjs/dropi-dropdown.cjs.entry.js +22 -15
  27. package/dist/cjs/dropi-empty-state.cjs.entry.js +15 -18
  28. package/dist/cjs/dropi-favorite-button.cjs.entry.js +5 -5
  29. package/dist/cjs/dropi-file-upload-progress-bar.cjs.entry.js +55 -32
  30. package/dist/cjs/dropi-file-upload.cjs.entry.js +209 -57
  31. package/dist/cjs/dropi-icon.cjs.entry.js +2 -2
  32. package/dist/cjs/dropi-ilustration-icon.cjs.entry.js +3 -3
  33. package/dist/cjs/dropi-image-miniature.cjs.entry.js +2 -2
  34. package/dist/cjs/dropi-image-overlay.cjs.entry.js +2 -2
  35. package/dist/cjs/dropi-input_3.cjs.entry.js +390 -0
  36. package/dist/cjs/dropi-languages-selector.cjs.entry.js +5 -5
  37. package/dist/cjs/dropi-logo.cjs.entry.js +2 -2
  38. package/dist/cjs/dropi-lottie-loader.cjs.entry.js +5 -5
  39. package/dist/cjs/dropi-media-player.cjs.entry.js +126 -39
  40. package/dist/cjs/dropi-modal.cjs.entry.js +29 -10
  41. package/dist/cjs/dropi-navbar.cjs.entry.js +14 -12
  42. package/dist/cjs/dropi-otp-send-code.cjs.entry.js +9 -9
  43. package/dist/cjs/dropi-phone-input.cjs.entry.js +163 -50
  44. package/dist/cjs/dropi-radio-button.cjs.entry.js +7 -7
  45. package/dist/cjs/dropi-radio-selection-list.cjs.entry.js +17 -13
  46. package/dist/cjs/dropi-read-more.cjs.entry.js +8 -4
  47. package/dist/cjs/dropi-search.cjs.entry.js +52 -38
  48. package/dist/cjs/dropi-select.cjs.entry.js +98 -55
  49. package/dist/cjs/dropi-sidebar.cjs.entry.js +61 -50
  50. package/dist/cjs/dropi-simple-stepper.cjs.entry.js +8 -6
  51. package/dist/cjs/dropi-skeleton.cjs.entry.js +16 -6
  52. package/dist/cjs/dropi-steps.cjs.entry.js +6 -4
  53. package/dist/cjs/dropi-switch.cjs.entry.js +5 -5
  54. package/dist/cjs/dropi-table.cjs.entry.js +205 -37
  55. package/dist/cjs/dropi-tabs.cjs.entry.js +13 -11
  56. package/dist/cjs/dropi-tag-type-product.cjs.entry.js +3 -3
  57. package/dist/cjs/dropi-text-area.cjs.entry.js +45 -14
  58. package/dist/cjs/dropi-time-line.cjs.entry.js +3 -3
  59. package/dist/cjs/dropi-toast.cjs.entry.js +4 -4
  60. package/dist/cjs/dropi-tooltip-v2.cjs.entry.js +131 -0
  61. package/dist/cjs/dropi-tooltip.cjs.entry.js +5 -26
  62. package/dist/cjs/dropi-ui.cjs.js +2 -2
  63. package/dist/cjs/dropi-vertical-steps.cjs.entry.js +6 -6
  64. package/dist/cjs/dropi-youtube-lazy-video.cjs.entry.js +3 -3
  65. package/dist/cjs/{index-DcOH2ZjX.js → index-077kM98l.js} +3 -0
  66. package/dist/cjs/loader.cjs.js +2 -2
  67. package/dist/collection/collection-manifest.json +7 -3
  68. package/dist/collection/components/dropi-accordion/dropi-accordion-item.css +45 -0
  69. package/dist/collection/components/dropi-accordion/dropi-accordion-item.js +172 -0
  70. package/dist/collection/components/dropi-accordion/dropi-accordion.css +3 -3
  71. package/dist/collection/components/dropi-accordion/dropi-accordion.js +7 -129
  72. package/dist/collection/components/dropi-alert/dropi-alert.css +5 -5
  73. package/dist/collection/components/dropi-alert/dropi-alert.js +86 -20
  74. package/dist/collection/components/dropi-alert-legacy/dropi-alert-legacy.css +31 -0
  75. package/dist/collection/components/dropi-alert-legacy/dropi-alert-legacy.js +128 -0
  76. package/dist/collection/components/dropi-alert-modal/dropi-alert-modal.css +46 -23
  77. package/dist/collection/components/dropi-alert-modal/dropi-alert-modal.js +177 -46
  78. package/dist/collection/components/dropi-avatars/dropi-avatars.js +2 -2
  79. package/dist/collection/components/dropi-badge/dropi-badge.css +1 -1
  80. package/dist/collection/components/dropi-badge/dropi-badge.js +3 -4
  81. package/dist/collection/components/dropi-badge-legacy/dropi-badge-legacy.css +17 -0
  82. package/dist/collection/components/dropi-badge-legacy/dropi-badge-legacy.js +119 -0
  83. package/dist/collection/components/dropi-banner-external/dropi-banner-external.js +76 -12
  84. package/dist/collection/components/dropi-button/dropi-button.css +17 -17
  85. package/dist/collection/components/dropi-button/dropi-button.js +31 -7
  86. package/dist/collection/components/dropi-card-checkbox/dropi-card-checkbox.css +3 -1
  87. package/dist/collection/components/dropi-card-checkbox/dropi-card-checkbox.js +30 -27
  88. package/dist/collection/components/dropi-card-product/dropi-card-product.css +179 -102
  89. package/dist/collection/components/dropi-card-product/dropi-card-product.js +110 -79
  90. package/dist/collection/components/dropi-card-section/dropi-card-section.css +2 -2
  91. package/dist/collection/components/dropi-card-section/dropi-card-section.js +25 -25
  92. package/dist/collection/components/dropi-carousel/dropi-carousel.css +114 -69
  93. package/dist/collection/components/dropi-carousel/dropi-carousel.js +194 -97
  94. package/dist/collection/components/dropi-checkbox/dropi-checkbox.js +6 -6
  95. package/dist/collection/components/dropi-checkbox-selection-list/dropi-checkbox-selection-list.js +42 -20
  96. package/dist/collection/components/dropi-chips/dropi-chips.js +15 -15
  97. package/dist/collection/components/dropi-city-selector/dropi-city-selector.css +112 -50
  98. package/dist/collection/components/dropi-city-selector/dropi-city-selector.js +30 -9
  99. package/dist/collection/components/dropi-color-picker/dropi-color-picker.css +169 -142
  100. package/dist/collection/components/dropi-color-picker/dropi-color-picker.js +317 -159
  101. package/dist/collection/components/dropi-country-flags/dropi-country-flags.js +5 -5
  102. package/dist/collection/components/dropi-country-selector/dropi-country-selector.css +72 -25
  103. package/dist/collection/components/dropi-country-selector/dropi-country-selector.js +124 -22
  104. package/dist/collection/components/dropi-date-picker/dropi-date-picker.css +104 -39
  105. package/dist/collection/components/dropi-date-picker/dropi-date-picker.js +131 -49
  106. package/dist/collection/components/dropi-date-picker-range/dropi-date-picker-range.css +8 -8
  107. package/dist/collection/components/dropi-date-picker-range/dropi-date-picker-range.js +8 -8
  108. package/dist/collection/components/dropi-drawer/dropi-drawer.css +38 -16
  109. package/dist/collection/components/dropi-drawer/dropi-drawer.js +100 -14
  110. package/dist/collection/components/dropi-dropdown/dropi-dropdown.css +1 -1
  111. package/dist/collection/components/dropi-dropdown/dropi-dropdown.js +51 -26
  112. package/dist/collection/components/dropi-empty-state/dropi-empty-state.js +37 -54
  113. package/dist/collection/components/dropi-favorite-button/dropi-favorite-button.js +5 -5
  114. package/dist/collection/components/dropi-file-upload/dropi-file-upload.css +431 -33
  115. package/dist/collection/components/dropi-file-upload/dropi-file-upload.js +363 -104
  116. package/dist/collection/components/dropi-file-upload-progress-bar/dropi-file-upload-progress-bar.css +82 -78
  117. package/dist/collection/components/dropi-file-upload-progress-bar/dropi-file-upload-progress-bar.js +127 -69
  118. package/dist/collection/components/dropi-icon/dropi-icon.js +1 -1
  119. package/dist/collection/components/dropi-ilustration-icon/dropi-ilustration-icon.css +3 -3
  120. package/dist/collection/components/dropi-ilustration-icon/dropi-ilustration-icon.js +1 -1
  121. package/dist/collection/components/dropi-image-miniature/dropi-image-miniature.js +1 -1
  122. package/dist/collection/components/dropi-image-overlay/dropi-image-overlay.css +6 -2
  123. package/dist/collection/components/dropi-input/dropi-input.css +1 -1
  124. package/dist/collection/components/dropi-input/dropi-input.js +158 -87
  125. package/dist/collection/components/dropi-languages-selector/dropi-languages-selector.css +1 -1
  126. package/dist/collection/components/dropi-languages-selector/dropi-languages-selector.js +4 -4
  127. package/dist/collection/components/dropi-logo/dropi-logo.js +1 -1
  128. package/dist/collection/components/dropi-lottie-loader/dropi-lottie-loader.css +8 -2
  129. package/dist/collection/components/dropi-lottie-loader/dropi-lottie-loader.js +6 -6
  130. package/dist/collection/components/dropi-media-player/dropi-media-player.css +263 -70
  131. package/dist/collection/components/dropi-media-player/dropi-media-player.js +156 -59
  132. package/dist/collection/components/dropi-modal/dropi-modal.css +14 -4
  133. package/dist/collection/components/dropi-modal/dropi-modal.js +291 -12
  134. package/dist/collection/components/dropi-navbar/dropi-navbar.css +7 -7
  135. package/dist/collection/components/dropi-navbar/dropi-navbar.js +42 -26
  136. package/dist/collection/components/dropi-otp-send-code/dropi-otp-send-code.css +2 -2
  137. package/dist/collection/components/dropi-otp-send-code/dropi-otp-send-code.js +9 -9
  138. package/dist/collection/components/dropi-paginator/dropi-paginator.css +2 -2
  139. package/dist/collection/components/dropi-paginator/dropi-paginator.js +51 -99
  140. package/dist/collection/components/dropi-phone-input/dropi-phone-input.css +158 -101
  141. package/dist/collection/components/dropi-phone-input/dropi-phone-input.js +256 -86
  142. package/dist/collection/components/dropi-radio-button/dropi-radio-button.js +13 -20
  143. package/dist/collection/components/dropi-radio-selection-list/dropi-radio-selection-list.css +3 -3
  144. package/dist/collection/components/dropi-radio-selection-list/dropi-radio-selection-list.js +69 -19
  145. package/dist/collection/components/dropi-read-more/dropi-read-more.css +5 -8
  146. package/dist/collection/components/dropi-read-more/dropi-read-more.js +46 -2
  147. package/dist/collection/components/dropi-search/dropi-search.css +2 -2
  148. package/dist/collection/components/dropi-search/dropi-search.js +194 -60
  149. package/dist/collection/components/dropi-select/dropi-select.css +7 -7
  150. package/dist/collection/components/dropi-select/dropi-select.js +166 -84
  151. package/dist/collection/components/dropi-sidebar/dropi-sidebar.css +51 -92
  152. package/dist/collection/components/dropi-sidebar/dropi-sidebar.js +86 -176
  153. package/dist/collection/components/dropi-simple-stepper/dropi-simple-stepper.css +2 -2
  154. package/dist/collection/components/dropi-simple-stepper/dropi-simple-stepper.js +29 -7
  155. package/dist/collection/components/dropi-skeleton/dropi-skeleton.js +40 -10
  156. package/dist/collection/components/dropi-steps/dropi-steps.css +3 -3
  157. package/dist/collection/components/dropi-steps/dropi-steps.js +31 -3
  158. package/dist/collection/components/dropi-switch/dropi-switch.js +5 -5
  159. package/dist/collection/components/dropi-table/dropi-table.css +505 -45
  160. package/dist/collection/components/dropi-table/dropi-table.js +683 -50
  161. package/dist/collection/components/dropi-tabs/dropi-tabs.css +10 -5
  162. package/dist/collection/components/dropi-tabs/dropi-tabs.js +35 -13
  163. package/dist/collection/components/dropi-tag/dropi-tag.js +1 -1
  164. package/dist/collection/components/dropi-tag-type-product/dropi-tag-type-product.css +4 -4
  165. package/dist/collection/components/dropi-tag-type-product/dropi-tag-type-product.js +1 -1
  166. package/dist/collection/components/dropi-text-area/dropi-text-area.css +4 -1
  167. package/dist/collection/components/dropi-text-area/dropi-text-area.js +87 -32
  168. package/dist/collection/components/dropi-time-line/dropi-time-line.css +2 -2
  169. package/dist/collection/components/dropi-time-line/dropi-time-line.js +1 -1
  170. package/dist/collection/components/dropi-toast/dropi-toast.css +2 -2
  171. package/dist/collection/components/dropi-toast/dropi-toast.js +3 -3
  172. package/dist/collection/components/dropi-tooltip/dropi-tooltip.css +28 -63
  173. package/dist/collection/components/dropi-tooltip/dropi-tooltip.js +11 -88
  174. package/dist/collection/components/dropi-tooltip-v2/dropi-tooltip.css +67 -0
  175. package/dist/collection/components/dropi-tooltip-v2/dropi-tooltip.js +468 -0
  176. package/dist/collection/components/dropi-vertical-steps/dropi-vertical-steps.css +3 -3
  177. package/dist/collection/components/dropi-vertical-steps/dropi-vertical-steps.js +5 -5
  178. package/dist/collection/components/dropi-youtube-lazy-video/dropi-youtube-lazy-video.css +1 -1
  179. package/dist/collection/components/dropi-youtube-lazy-video/dropi-youtube-lazy-video.js +1 -1
  180. package/dist/components/dropi-accordion-item.d.ts +11 -0
  181. package/dist/components/dropi-accordion-item.js +1 -0
  182. package/dist/components/dropi-accordion.js +1 -1
  183. package/dist/components/dropi-alert-legacy.d.ts +11 -0
  184. package/dist/components/dropi-alert-legacy.js +1 -0
  185. package/dist/components/dropi-alert-modal.js +1 -1
  186. package/dist/components/dropi-alert.js +1 -1
  187. package/dist/components/dropi-avatars.js +1 -1
  188. package/dist/components/dropi-badge-legacy.d.ts +11 -0
  189. package/dist/components/dropi-badge-legacy.js +1 -0
  190. package/dist/components/dropi-badge.js +1 -1
  191. package/dist/components/dropi-banner-external.js +1 -1
  192. package/dist/components/dropi-breadcrumb.js +1 -1
  193. package/dist/components/dropi-button.js +1 -1
  194. package/dist/components/dropi-card-checkbox.js +1 -1
  195. package/dist/components/dropi-card-product.js +1 -1
  196. package/dist/components/dropi-card-section.js +1 -1
  197. package/dist/components/dropi-carousel.js +1 -1
  198. package/dist/components/dropi-checkbox-selection-list.js +1 -1
  199. package/dist/components/dropi-checkbox.js +1 -1
  200. package/dist/components/dropi-chips.js +1 -1
  201. package/dist/components/dropi-city-selector.js +1 -1
  202. package/dist/components/dropi-color-picker.js +1 -1
  203. package/dist/components/dropi-country-flags.js +1 -1
  204. package/dist/components/dropi-country-selector.js +1 -1
  205. package/dist/components/dropi-date-picker-range.js +1 -1
  206. package/dist/components/dropi-date-picker.js +1 -1
  207. package/dist/components/dropi-drawer.js +1 -1
  208. package/dist/components/dropi-dropdown.js +1 -1
  209. package/dist/components/dropi-empty-state.js +1 -1
  210. package/dist/components/dropi-favorite-button.js +1 -1
  211. package/dist/components/dropi-file-upload-progress-bar.js +1 -1
  212. package/dist/components/dropi-file-upload.js +1 -1
  213. package/dist/components/dropi-icon.js +1 -1
  214. package/dist/components/dropi-ilustration-icon.js +1 -1
  215. package/dist/components/dropi-image-miniature.js +1 -1
  216. package/dist/components/dropi-image-overlay.js +1 -1
  217. package/dist/components/dropi-input.js +1 -1
  218. package/dist/components/dropi-languages-selector.js +1 -1
  219. package/dist/components/dropi-logo.js +1 -1
  220. package/dist/components/dropi-lottie-loader.js +1 -1
  221. package/dist/components/dropi-media-player.js +1 -1
  222. package/dist/components/dropi-modal.js +1 -1
  223. package/dist/components/dropi-navbar.js +1 -1
  224. package/dist/components/dropi-otp-send-code.js +1 -1
  225. package/dist/components/dropi-paginator.js +1 -1
  226. package/dist/components/dropi-phone-input.js +1 -1
  227. package/dist/components/dropi-radio-button.js +1 -1
  228. package/dist/components/dropi-radio-selection-list.js +1 -1
  229. package/dist/components/dropi-read-more.js +1 -1
  230. package/dist/components/dropi-search.js +1 -1
  231. package/dist/components/dropi-select.js +1 -1
  232. package/dist/components/dropi-sidebar.js +1 -1
  233. package/dist/components/dropi-simple-stepper.js +1 -1
  234. package/dist/components/dropi-skeleton.js +1 -1
  235. package/dist/components/dropi-steps.js +1 -1
  236. package/dist/components/dropi-switch.js +1 -1
  237. package/dist/components/dropi-table.js +1 -1
  238. package/dist/components/dropi-tabs.js +1 -1
  239. package/dist/components/dropi-tag-type-product.js +1 -1
  240. package/dist/components/dropi-tag.js +1 -1
  241. package/dist/components/dropi-text-area.js +1 -1
  242. package/dist/components/dropi-time-line.js +1 -1
  243. package/dist/components/dropi-toast.js +1 -1
  244. package/dist/components/dropi-tooltip-v2.d.ts +11 -0
  245. package/dist/components/dropi-tooltip-v2.js +1 -0
  246. package/dist/components/dropi-tooltip.js +1 -1
  247. package/dist/components/dropi-vertical-steps.js +1 -1
  248. package/dist/components/dropi-youtube-lazy-video.js +1 -1
  249. package/dist/components/index.js +1 -1
  250. package/dist/components/p-9KLpSviZ.js +1 -0
  251. package/dist/components/p-BVekazGL.js +1 -0
  252. package/dist/components/p-BYRcOZS4.js +1 -0
  253. package/dist/components/p-BuDg1d0S.js +1 -0
  254. package/dist/components/p-C2paYEIp.js +1 -0
  255. package/dist/components/p-CDvkvedb.js +1 -0
  256. package/dist/components/{p-wO1yy0Zr.js → p-CnALA9z_.js} +1 -1
  257. package/dist/components/p-CtzCJQVR.js +1 -0
  258. package/dist/components/p-CzHupXu8.js +1 -0
  259. package/dist/components/p-DWzWYR5X.js +1 -0
  260. package/dist/components/p-D_Y7tuEH.js +1 -0
  261. package/dist/components/p-DjO9xpVc.js +1 -0
  262. package/dist/dropi-ui/dropi-ui.esm.js +1 -1
  263. package/dist/dropi-ui/p-0966c363.entry.js +1 -0
  264. package/dist/dropi-ui/p-0c541a53.entry.js +1 -0
  265. package/dist/dropi-ui/p-0cd1fb7a.entry.js +1 -0
  266. package/dist/dropi-ui/p-0f161461.entry.js +1 -0
  267. package/dist/dropi-ui/p-10e363a2.entry.js +1 -0
  268. package/dist/dropi-ui/p-1d4c5364.entry.js +1 -0
  269. package/dist/dropi-ui/p-2e0623ba.entry.js +1 -0
  270. package/dist/dropi-ui/p-2e4efb72.entry.js +1 -0
  271. package/dist/dropi-ui/p-36cdd4fc.entry.js +1 -0
  272. package/dist/dropi-ui/{p-4a8646e5.entry.js → p-37c86c74.entry.js} +1 -1
  273. package/dist/dropi-ui/p-392654b7.entry.js +1 -0
  274. package/dist/dropi-ui/p-39904430.entry.js +1 -0
  275. package/dist/dropi-ui/p-3a3b778f.entry.js +1 -0
  276. package/dist/dropi-ui/p-3cbe953f.entry.js +1 -0
  277. package/dist/dropi-ui/p-40b69ccd.entry.js +1 -0
  278. package/dist/dropi-ui/p-443ed5bd.entry.js +1 -0
  279. package/dist/dropi-ui/p-475a16f2.entry.js +1 -0
  280. package/dist/dropi-ui/p-4967b619.entry.js +1 -0
  281. package/dist/dropi-ui/p-4de83790.entry.js +1 -0
  282. package/dist/dropi-ui/p-59188dd5.entry.js +1 -0
  283. package/dist/dropi-ui/p-6178190b.entry.js +1 -0
  284. package/dist/dropi-ui/p-623759eb.entry.js +1 -0
  285. package/dist/dropi-ui/p-645da978.entry.js +1 -0
  286. package/dist/dropi-ui/p-6e727fb0.entry.js +1 -0
  287. package/dist/dropi-ui/p-7036c073.entry.js +1 -0
  288. package/dist/dropi-ui/p-710312bd.entry.js +1 -0
  289. package/dist/dropi-ui/p-74dfe8d1.entry.js +1 -0
  290. package/dist/dropi-ui/p-770afae3.entry.js +1 -0
  291. package/dist/dropi-ui/{p-b41c8a6c.entry.js → p-7c0bc6dd.entry.js} +1 -1
  292. package/dist/dropi-ui/p-7f8d3642.entry.js +1 -0
  293. package/dist/dropi-ui/p-7fc02d98.entry.js +1 -0
  294. package/dist/dropi-ui/p-8188cca4.entry.js +1 -0
  295. package/dist/dropi-ui/p-858bedcf.entry.js +1 -0
  296. package/dist/dropi-ui/p-87e9ba6d.entry.js +1 -0
  297. package/dist/dropi-ui/p-8b4d4d2d.entry.js +1 -0
  298. package/dist/dropi-ui/p-9062f0de.entry.js +1 -0
  299. package/dist/dropi-ui/p-925852b1.entry.js +1 -0
  300. package/dist/dropi-ui/{p-c9ebd31b.entry.js → p-99943b7d.entry.js} +1 -1
  301. package/dist/dropi-ui/{p-Tbza12Gt.js → p-TXz_09YZ.js} +1 -1
  302. package/dist/dropi-ui/p-a1f2383d.entry.js +1 -0
  303. package/dist/dropi-ui/p-a6939701.entry.js +1 -0
  304. package/dist/dropi-ui/p-aa8d2aec.entry.js +1 -0
  305. package/dist/dropi-ui/{p-8ce79c69.entry.js → p-aafaffa3.entry.js} +1 -1
  306. package/dist/dropi-ui/{p-80089042.entry.js → p-ac345a0e.entry.js} +1 -1
  307. package/dist/dropi-ui/p-acfa17ef.entry.js +1 -0
  308. package/dist/dropi-ui/p-af3691a0.entry.js +1 -0
  309. package/dist/dropi-ui/p-b207fc92.entry.js +1 -0
  310. package/dist/dropi-ui/p-ba3ad28e.entry.js +1 -0
  311. package/dist/dropi-ui/p-bd0ffb4a.entry.js +1 -0
  312. package/dist/dropi-ui/p-c2e96728.entry.js +1 -0
  313. package/dist/dropi-ui/{p-8e809670.entry.js → p-c664f99f.entry.js} +1 -1
  314. package/dist/dropi-ui/p-c7e3a5e0.entry.js +1 -0
  315. package/dist/dropi-ui/{p-c4d4396b.entry.js → p-cfc19ca0.entry.js} +1 -1
  316. package/dist/dropi-ui/p-d36a0c37.entry.js +1 -0
  317. package/dist/dropi-ui/p-dd4c6b40.entry.js +1 -0
  318. package/dist/dropi-ui/p-e0351b61.entry.js +1 -0
  319. package/dist/dropi-ui/p-e2361547.entry.js +1 -0
  320. package/dist/dropi-ui/p-e25b2680.entry.js +1 -0
  321. package/dist/dropi-ui/p-e6943d7c.entry.js +1 -0
  322. package/dist/dropi-ui/p-e7b59811.entry.js +1 -0
  323. package/dist/dropi-ui/p-eac7777f.entry.js +1 -0
  324. package/dist/dropi-ui/p-ed94b5fe.entry.js +1 -0
  325. package/dist/dropi-ui/p-f0ddf569.entry.js +1 -0
  326. package/dist/dropi-ui/p-f95c11f8.entry.js +1 -0
  327. package/dist/esm/dropi-accordion-item.entry.js +52 -0
  328. package/dist/esm/dropi-accordion.entry.js +5 -39
  329. package/dist/esm/dropi-alert-legacy.entry.js +37 -0
  330. package/dist/esm/dropi-alert-modal.entry.js +80 -24
  331. package/dist/esm/dropi-alert.entry.js +20 -14
  332. package/dist/esm/dropi-avatars.entry.js +2 -2
  333. package/dist/esm/dropi-badge-legacy.entry.js +28 -0
  334. package/dist/esm/dropi-badge.entry.js +4 -4
  335. package/dist/esm/dropi-banner-external.entry.js +14 -8
  336. package/dist/esm/dropi-breadcrumb.entry.js +1 -1
  337. package/dist/esm/dropi-button.entry.js +11 -7
  338. package/dist/esm/dropi-card-checkbox.entry.js +17 -14
  339. package/dist/esm/dropi-card-product.entry.js +40 -23
  340. package/dist/esm/dropi-card-section.entry.js +17 -17
  341. package/dist/esm/dropi-carousel.entry.js +107 -42
  342. package/dist/esm/dropi-checkbox-selection-list.entry.js +17 -15
  343. package/dist/esm/dropi-checkbox.entry.js +6 -6
  344. package/dist/esm/dropi-chips.entry.js +8 -8
  345. package/dist/esm/dropi-city-selector.entry.js +20 -9
  346. package/dist/esm/dropi-color-picker.entry.js +300 -50
  347. package/dist/esm/dropi-country-flags.entry.js +4 -4
  348. package/dist/esm/dropi-country-selector.entry.js +50 -17
  349. package/dist/esm/dropi-date-picker-range.entry.js +8 -8
  350. package/dist/esm/dropi-date-picker.entry.js +53 -35
  351. package/dist/esm/dropi-drawer.entry.js +34 -8
  352. package/dist/esm/dropi-dropdown.entry.js +22 -15
  353. package/dist/esm/dropi-empty-state.entry.js +15 -18
  354. package/dist/esm/dropi-favorite-button.entry.js +5 -5
  355. package/dist/esm/dropi-file-upload-progress-bar.entry.js +55 -32
  356. package/dist/esm/dropi-file-upload.entry.js +209 -57
  357. package/dist/esm/dropi-icon.entry.js +2 -2
  358. package/dist/esm/dropi-ilustration-icon.entry.js +3 -3
  359. package/dist/esm/dropi-image-miniature.entry.js +2 -2
  360. package/dist/esm/dropi-image-overlay.entry.js +2 -2
  361. package/dist/esm/dropi-input_3.entry.js +386 -0
  362. package/dist/esm/dropi-languages-selector.entry.js +5 -5
  363. package/dist/esm/dropi-logo.entry.js +2 -2
  364. package/dist/esm/dropi-lottie-loader.entry.js +5 -5
  365. package/dist/esm/dropi-media-player.entry.js +126 -39
  366. package/dist/esm/dropi-modal.entry.js +29 -10
  367. package/dist/esm/dropi-navbar.entry.js +14 -12
  368. package/dist/esm/dropi-otp-send-code.entry.js +9 -9
  369. package/dist/esm/dropi-phone-input.entry.js +163 -50
  370. package/dist/esm/dropi-radio-button.entry.js +7 -7
  371. package/dist/esm/dropi-radio-selection-list.entry.js +17 -13
  372. package/dist/esm/dropi-read-more.entry.js +8 -4
  373. package/dist/esm/dropi-search.entry.js +52 -38
  374. package/dist/esm/dropi-select.entry.js +98 -55
  375. package/dist/esm/dropi-sidebar.entry.js +61 -50
  376. package/dist/esm/dropi-simple-stepper.entry.js +8 -6
  377. package/dist/esm/dropi-skeleton.entry.js +16 -6
  378. package/dist/esm/dropi-steps.entry.js +6 -4
  379. package/dist/esm/dropi-switch.entry.js +5 -5
  380. package/dist/esm/dropi-table.entry.js +205 -37
  381. package/dist/esm/dropi-tabs.entry.js +13 -11
  382. package/dist/esm/dropi-tag-type-product.entry.js +3 -3
  383. package/dist/esm/dropi-text-area.entry.js +45 -14
  384. package/dist/esm/dropi-time-line.entry.js +3 -3
  385. package/dist/esm/dropi-toast.entry.js +4 -4
  386. package/dist/esm/dropi-tooltip-v2.entry.js +129 -0
  387. package/dist/esm/dropi-tooltip.entry.js +5 -26
  388. package/dist/esm/dropi-ui.js +3 -3
  389. package/dist/esm/dropi-vertical-steps.entry.js +6 -6
  390. package/dist/esm/dropi-youtube-lazy-video.entry.js +3 -3
  391. package/dist/esm/{index-Tbza12Gt.js → index-TXz_09YZ.js} +3 -0
  392. package/dist/esm/loader.js +3 -3
  393. package/dist/types/components/dropi-accordion/dropi-accordion-item.d.ts +24 -0
  394. package/dist/types/components/dropi-accordion/dropi-accordion.d.ts +3 -23
  395. package/dist/types/components/dropi-alert/dropi-alert.d.ts +9 -3
  396. package/dist/types/components/dropi-alert-legacy/dropi-alert-legacy.d.ts +18 -0
  397. package/dist/types/components/dropi-alert-modal/dropi-alert-modal.d.ts +25 -7
  398. package/dist/types/components/dropi-badge-legacy/dropi-badge-legacy.d.ts +15 -0
  399. package/dist/types/components/dropi-banner-external/dropi-banner-external.d.ts +9 -3
  400. package/dist/types/components/dropi-button/dropi-button.d.ts +4 -2
  401. package/dist/types/components/dropi-card-checkbox/dropi-card-checkbox.d.ts +8 -7
  402. package/dist/types/components/dropi-card-product/dropi-card-product.d.ts +19 -15
  403. package/dist/types/components/dropi-card-section/dropi-card-section.d.ts +5 -5
  404. package/dist/types/components/dropi-carousel/dropi-carousel.d.ts +31 -27
  405. package/dist/types/components/dropi-checkbox/dropi-checkbox.d.ts +1 -1
  406. package/dist/types/components/dropi-checkbox-selection-list/dropi-checkbox-selection-list.d.ts +7 -5
  407. package/dist/types/components/dropi-chips/dropi-chips.d.ts +4 -4
  408. package/dist/types/components/dropi-city-selector/dropi-city-selector.d.ts +3 -1
  409. package/dist/types/components/dropi-color-picker/dropi-color-picker.d.ts +51 -26
  410. package/dist/types/components/dropi-country-flags/dropi-country-flags.d.ts +1 -1
  411. package/dist/types/components/dropi-country-selector/dropi-country-selector.d.ts +16 -5
  412. package/dist/types/components/dropi-date-picker/dropi-date-picker.d.ts +16 -8
  413. package/dist/types/components/dropi-date-picker-range/dropi-date-picker-range.d.ts +2 -2
  414. package/dist/types/components/dropi-drawer/dropi-drawer.d.ts +11 -5
  415. package/dist/types/components/dropi-dropdown/dropi-dropdown.d.ts +12 -6
  416. package/dist/types/components/dropi-empty-state/dropi-empty-state.d.ts +12 -14
  417. package/dist/types/components/dropi-favorite-button/dropi-favorite-button.d.ts +1 -1
  418. package/dist/types/components/dropi-file-upload/dropi-file-upload.d.ts +65 -26
  419. package/dist/types/components/dropi-file-upload-progress-bar/dropi-file-upload-progress-bar.d.ts +24 -16
  420. package/dist/types/components/dropi-input/dropi-input.d.ts +28 -18
  421. package/dist/types/components/dropi-languages-selector/dropi-languages-selector.d.ts +1 -1
  422. package/dist/types/components/dropi-lottie-loader/dropi-lottie-loader.d.ts +1 -1
  423. package/dist/types/components/dropi-media-player/dropi-media-player.d.ts +26 -19
  424. package/dist/types/components/dropi-modal/dropi-modal.d.ts +22 -3
  425. package/dist/types/components/dropi-navbar/dropi-navbar.d.ts +7 -5
  426. package/dist/types/components/dropi-otp-send-code/dropi-otp-send-code.d.ts +1 -1
  427. package/dist/types/components/dropi-paginator/dropi-paginator.d.ts +10 -20
  428. package/dist/types/components/dropi-phone-input/dropi-phone-input.d.ts +35 -20
  429. package/dist/types/components/dropi-radio-button/dropi-radio-button.d.ts +2 -2
  430. package/dist/types/components/dropi-radio-selection-list/dropi-radio-selection-list.d.ts +11 -4
  431. package/dist/types/components/dropi-read-more/dropi-read-more.d.ts +4 -0
  432. package/dist/types/components/dropi-search/dropi-search.d.ts +24 -12
  433. package/dist/types/components/dropi-select/dropi-select.d.ts +26 -15
  434. package/dist/types/components/dropi-sidebar/dropi-sidebar.d.ts +32 -26
  435. package/dist/types/components/dropi-simple-stepper/dropi-simple-stepper.d.ts +2 -0
  436. package/dist/types/components/dropi-skeleton/dropi-skeleton.d.ts +4 -1
  437. package/dist/types/components/dropi-steps/dropi-steps.d.ts +3 -0
  438. package/dist/types/components/dropi-switch/dropi-switch.d.ts +1 -1
  439. package/dist/types/components/dropi-table/dropi-table.d.ts +88 -14
  440. package/dist/types/components/dropi-tabs/dropi-tabs.d.ts +5 -3
  441. package/dist/types/components/dropi-text-area/dropi-text-area.d.ts +27 -6
  442. package/dist/types/components/dropi-tooltip/dropi-tooltip.d.ts +3 -17
  443. package/dist/types/components/dropi-tooltip-v2/dropi-tooltip.d.ts +59 -0
  444. package/dist/types/components/dropi-vertical-steps/dropi-vertical-steps.d.ts +1 -1
  445. package/dist/types/components.d.ts +2180 -1178
  446. package/dist/types/index.d.ts +1 -0
  447. package/package.json +25 -3
  448. package/readme.md +56 -7
  449. package/scripts/setup.js +119 -23
  450. package/skills/install-dropi-ui/skill.md +15 -10
  451. package/dist/cjs/dropi-input.cjs.entry.js +0 -210
  452. package/dist/cjs/dropi-paginator.cjs.entry.js +0 -91
  453. package/dist/cjs/dropi-tag.cjs.entry.js +0 -68
  454. package/dist/components/p-BY_J-4Sm.js +0 -1
  455. package/dist/components/p-CYCV-5qV.js +0 -1
  456. package/dist/components/p-D0ZJcRZn.js +0 -1
  457. package/dist/components/p-DUPOnSiL.js +0 -1
  458. package/dist/components/p-DUX_WvqW.js +0 -1
  459. package/dist/dropi-ui/p-053ebb91.entry.js +0 -1
  460. package/dist/dropi-ui/p-0acd32e6.entry.js +0 -1
  461. package/dist/dropi-ui/p-0e88a543.entry.js +0 -1
  462. package/dist/dropi-ui/p-0f2f5f75.entry.js +0 -1
  463. package/dist/dropi-ui/p-131d87ac.entry.js +0 -1
  464. package/dist/dropi-ui/p-1af4719d.entry.js +0 -1
  465. package/dist/dropi-ui/p-1e8f6d4a.entry.js +0 -1
  466. package/dist/dropi-ui/p-22132b1a.entry.js +0 -1
  467. package/dist/dropi-ui/p-2c1aaf6f.entry.js +0 -1
  468. package/dist/dropi-ui/p-2e9b87a9.entry.js +0 -1
  469. package/dist/dropi-ui/p-3414a414.entry.js +0 -1
  470. package/dist/dropi-ui/p-34ad54a1.entry.js +0 -1
  471. package/dist/dropi-ui/p-3531378b.entry.js +0 -1
  472. package/dist/dropi-ui/p-3983a7aa.entry.js +0 -1
  473. package/dist/dropi-ui/p-40e91337.entry.js +0 -1
  474. package/dist/dropi-ui/p-4be64bf0.entry.js +0 -1
  475. package/dist/dropi-ui/p-4ec17510.entry.js +0 -1
  476. package/dist/dropi-ui/p-5023eef0.entry.js +0 -1
  477. package/dist/dropi-ui/p-51a97b1a.entry.js +0 -1
  478. package/dist/dropi-ui/p-52796d84.entry.js +0 -1
  479. package/dist/dropi-ui/p-53a5bd7b.entry.js +0 -1
  480. package/dist/dropi-ui/p-5425f941.entry.js +0 -1
  481. package/dist/dropi-ui/p-58d0bf7a.entry.js +0 -1
  482. package/dist/dropi-ui/p-59d3bd9b.entry.js +0 -1
  483. package/dist/dropi-ui/p-5e957631.entry.js +0 -1
  484. package/dist/dropi-ui/p-64cbf4ea.entry.js +0 -1
  485. package/dist/dropi-ui/p-68080534.entry.js +0 -1
  486. package/dist/dropi-ui/p-6da6b97e.entry.js +0 -1
  487. package/dist/dropi-ui/p-6df57f25.entry.js +0 -1
  488. package/dist/dropi-ui/p-7c916570.entry.js +0 -1
  489. package/dist/dropi-ui/p-7e95462a.entry.js +0 -1
  490. package/dist/dropi-ui/p-8768bb11.entry.js +0 -1
  491. package/dist/dropi-ui/p-896f2900.entry.js +0 -1
  492. package/dist/dropi-ui/p-89ac1ff2.entry.js +0 -1
  493. package/dist/dropi-ui/p-93b207b7.entry.js +0 -1
  494. package/dist/dropi-ui/p-983f72ad.entry.js +0 -1
  495. package/dist/dropi-ui/p-98babb78.entry.js +0 -1
  496. package/dist/dropi-ui/p-9fc53d50.entry.js +0 -1
  497. package/dist/dropi-ui/p-a20705fe.entry.js +0 -1
  498. package/dist/dropi-ui/p-a72da98f.entry.js +0 -1
  499. package/dist/dropi-ui/p-a876d57c.entry.js +0 -1
  500. package/dist/dropi-ui/p-b1b0f938.entry.js +0 -1
  501. package/dist/dropi-ui/p-b2e176b1.entry.js +0 -1
  502. package/dist/dropi-ui/p-b890fd5b.entry.js +0 -1
  503. package/dist/dropi-ui/p-bf5a53ef.entry.js +0 -1
  504. package/dist/dropi-ui/p-c0677661.entry.js +0 -1
  505. package/dist/dropi-ui/p-c2562a1c.entry.js +0 -1
  506. package/dist/dropi-ui/p-c2b5d0fb.entry.js +0 -1
  507. package/dist/dropi-ui/p-cecfb68e.entry.js +0 -1
  508. package/dist/dropi-ui/p-d0b47e2e.entry.js +0 -1
  509. package/dist/dropi-ui/p-dcefef51.entry.js +0 -1
  510. package/dist/dropi-ui/p-e4b7e15f.entry.js +0 -1
  511. package/dist/dropi-ui/p-e7f4ed25.entry.js +0 -1
  512. package/dist/dropi-ui/p-f1d69b15.entry.js +0 -1
  513. package/dist/esm/dropi-input.entry.js +0 -208
  514. package/dist/esm/dropi-paginator.entry.js +0 -89
  515. package/dist/esm/dropi-tag.entry.js +0 -66
@@ -1,12 +1,12 @@
1
- import { r as registerInstance, c as createEvent, h } from './index-Tbza12Gt.js';
1
+ import { r as registerInstance, c as createEvent, h } from './index-TXz_09YZ.js';
2
2
 
3
3
  const dropiBannerExternalCss = () => `:host{display:block;width:100%}.dropi-banner-external{display:block;width:100%;position:relative;margin-bottom:16px;border-radius:var(--Border-2, 8px)}.dropi-banner-external a{display:block;text-decoration:none}.click-wrapper{cursor:pointer}.inner{position:relative;display:block}.inner img{display:block;width:100%;height:auto;border-radius:var(--Border-2, 8px);max-width:1220px;margin:auto}.close-btn{position:absolute;top:4px;right:4px;background:rgba(255, 255, 255, 0.8);border:none;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:background 0.15s ease}.close-btn:hover{background:rgba(255, 255, 255, 1)}`;
4
4
 
5
5
  const DropiBannerExternal = class {
6
6
  constructor(hostRef) {
7
7
  registerInstance(this, hostRef);
8
- this.dropiBannerClick = createEvent(this, "dropiBannerClick", 7);
9
- this.dropiBannerClose = createEvent(this, "dropiBannerClose", 7);
8
+ this.bannerClick = createEvent(this, "bannerClick", 7);
9
+ this.isVisible = createEvent(this, "isVisible", 7);
10
10
  }
11
11
  /** Image URL to display */
12
12
  imageUrl = '';
@@ -16,22 +16,28 @@ const DropiBannerExternal = class {
16
16
  alt = '';
17
17
  /** Background color behind the image */
18
18
  backgroundColor = 'transparent';
19
+ /** Slug name (matches Angular `slugName`) */
20
+ slugName = '';
21
+ /** Whether to show on white brand (matches Angular `viewOnWhiteBrand`) */
22
+ viewOnWhiteBrand = false;
23
+ /** Countries list to show (matches Angular `viewOnlyCountries`) */
24
+ viewOnlyCountries = [];
19
25
  closed = false;
20
26
  /** Emitted when the banner is clicked (only when no link is set) */
21
- dropiBannerClick;
22
- /** Emitted when the close button is clicked */
23
- dropiBannerClose;
27
+ bannerClick;
28
+ /** Emitted with false when the close button is clicked (matches Angular `isVisible`) */
29
+ isVisible;
24
30
  handleClick(e) {
25
31
  if (!this.link) {
26
32
  e.preventDefault();
27
- this.dropiBannerClick.emit();
33
+ this.bannerClick.emit();
28
34
  }
29
35
  }
30
36
  closeBanner(e) {
31
37
  e.preventDefault();
32
38
  e.stopPropagation();
33
39
  this.closed = true;
34
- this.dropiBannerClose.emit();
40
+ this.isVisible.emit(false);
35
41
  }
36
42
  render() {
37
43
  if (this.closed || !this.imageUrl)
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h } from './index-Tbza12Gt.js';
1
+ import { r as registerInstance, c as createEvent, h } from './index-TXz_09YZ.js';
2
2
 
3
3
  const dropiBreadcrumbCss = () => `:host{display:block}*,*::before,*::after{box-sizing:border-box}.breadcrumb{margin:0}.crumb-list{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.crumb-home{display:flex;padding-right:4px;align-items:center;gap:4px}.home-link{display:inline-flex;align-items:center;color:var(--Gray-Gray-500, #69738c);text-decoration:none;transition:color 0.2s ease}.home-link:hover{color:var(--Gray-Gray-700, #32394d)}.crumb{display:flex;padding:0 4px;align-items:center;gap:8px}.crumb-link{color:var(--Gray-Gray-500, #69738c);text-align:center;cursor:pointer;text-decoration:none;transition:color 0.2s ease;font-size:var(--font-size-s, 12px)}.crumb-link:hover{color:var(--Gray-Gray-700, #32394d);text-decoration:underline}.crumb-link.disabled{pointer-events:none;color:var(--Gray-Gray-300, #a1a8b8);cursor:not-allowed;text-decoration:none}.current{color:var(--Gray-Gray-700, #32394d);cursor:default;font-size:var(--font-size-s, 12px)}`;
4
4
 
@@ -1,11 +1,11 @@
1
- import { r as registerInstance, c as createEvent, h } from './index-Tbza12Gt.js';
1
+ import { r as registerInstance, c as createEvent, h } from './index-TXz_09YZ.js';
2
2
 
3
- const dropiButtonCss = () => `:host{display:inline-block}:host([full-width]){display:flex;width:100%}:host([full-width]) .btn{width:100%}*,*::before,*::after{box-sizing:border-box}.btn{all:unset;box-sizing:border-box;display:flex;align-items:center;justify-content:center;gap:var(--Size-1, 4px);border-radius:var(--Border-2, 8px);font-weight:700;min-width:33px;line-height:110%;cursor:pointer;white-space:nowrap;transition:background 0.25s ease, color 0.25s ease, border-color 0.25s ease, transform 0.25s ease}.btn:active{transition:transform 0.01s ease-out;transform:scale(0.98)}.btn:hover:not(:active){transform:scale(1.01)}.btn.without-text{gap:0}.btn.large{padding:var(--Size-4, 16px);font-size:var(--Size-4, 16px);height:48px}.btn.normal{padding:var(--Size-3, 12px);font-size:var(--font-size-s, 12px);height:40px}.btn.small{padding:var(--Size-2, 8px);font-size:var(--Size-3, 12px);height:29px}.btn.disabled,.btn.loading{cursor:not-allowed;pointer-events:none}.btn.primary.default{background:var(--Primary-Primary-500, #f49a3d);color:var(--Neutral-White, #fff)}.btn.primary.default:hover{background:var(--Primary-Primary-600, #e58017)}.btn.primary.success{background:var(--Success-Success-500, #0abb87);color:var(--Neutral-White, #fff)}.btn.primary.success:hover{background:var(--Success-Success-600, #09aa7b)}.btn.primary.info{background:var(--Info-Info-500, #50a5f1);color:var(--Neutral-White, #fff)}.btn.primary.info:hover{background:var(--Info-Info-600, #4996db)}.btn.primary.error{background:var(--Error-Error-500, #f46a6b);color:var(--Neutral-White, #fff)}.btn.primary.error:hover{background:var(--Error-Error-600, #de6061)}.btn.primary.warning{background:var(--Warning-Warning-500, #f1b44c);color:var(--Neutral-White, #fff)}.btn.primary.warning:hover{background:var(--Warning-Warning-600, #dba445)}.btn.primary.legacy{background:var(--Secondary-Secondary-500, #008dbf);color:var(--Neutral-White, #fff)}.btn.primary.legacy:hover{background:var(--Secondary-Secondary-600, #007199)}.btn.primary.disabled.default{background:var(--Primary-Primary-300, #f2bc85);color:var(--Neutral-White, #fff)}.btn.primary.disabled.success{background:var(--Success-Success-300, #5bd1af);color:var(--Neutral-White, #fff)}.btn.primary.disabled.info{background:var(--Info-Info-300, #8ac3f6);color:var(--Neutral-White, #fff)}.btn.primary.disabled.error{background:var(--Error-Error-300, #f89b9c);color:var(--Neutral-White, #fff)}.btn.primary.disabled.warning{background:var(--Warning-Warning-300, #f6cd87);color:var(--Neutral-White, #fff)}.btn.primary.disabled.legacy{background:var(--Secondary-Secondary-300, #62bad9);color:var(--Neutral-White, #fff)}.btn.secondary{background:var(--Neutral-White, #fff);border:1px solid}.btn.secondary.default{border-color:var(--Primary-Primary-500, #f49a3d);color:var(--Primary-Primary-500, #f49a3d)}.btn.secondary.default:hover{color:var(--Primary-Primary-600, #e58017);border-color:var(--Primary-Primary-600, #e58017)}.btn.secondary.success{border-color:var(--Success-Success-500, #0abb87);color:var(--Success-Success-500, #0abb87)}.btn.secondary.success:hover{color:var(--Success-Success-600, #09aa7b);border-color:var(--Success-Success-600, #09aa7b)}.btn.secondary.info{border-color:var(--Info-Info-500, #50a5f1);color:var(--Info-Info-500, #50a5f1)}.btn.secondary.info:hover{color:var(--Info-Info-600, #4996db);border-color:var(--Info-Info-600, #4996db)}.btn.secondary.error{border-color:var(--Error-Error-500, #f46a6b);color:var(--Error-Error-500, #f46a6b)}.btn.secondary.error:hover{color:var(--Error-Error-600, #de6061);border-color:var(--Error-Error-600, #de6061)}.btn.secondary.warning{border-color:var(--Warning-Warning-500, #f1b44c);color:var(--Warning-Warning-500, #f1b44c)}.btn.secondary.warning:hover{color:var(--Warning-Warning-600, #dba445);border-color:var(--Warning-Warning-600, #dba445)}.btn.secondary.legacy{border-color:var(--Secondary-Secondary-500, #008dbf);color:var(--Secondary-Secondary-500, #008dbf)}.btn.secondary.legacy:hover{color:var(--Secondary-Secondary-600, #007199);border-color:var(--Secondary-Secondary-600, #007199)}.btn.secondary.disabled.default{border-color:var(--Primary-Primary-300, #f2bc85);color:var(--Primary-Primary-300, #f2bc85)}.btn.secondary.disabled.success{border-color:var(--Success-Success-300, #5bd1af);color:var(--Success-Success-300, #5bd1af)}.btn.secondary.disabled.info{border-color:var(--Info-Info-300, #8ac3f6);color:var(--Info-Info-300, #8ac3f6)}.btn.secondary.disabled.error{border-color:var(--Error-Error-300, #f89b9c);color:var(--Error-Error-300, #f89b9c)}.btn.secondary.disabled.warning{border-color:var(--Warning-Warning-300, #f6cd87);color:var(--Warning-Warning-300, #f6cd87)}.btn.secondary.disabled.legacy{border-color:var(--Secondary-Secondary-300, #62bad9);color:var(--Secondary-Secondary-300, #62bad9)}.btn.tertiary{background:none;border:none}.btn.tertiary.default,.btn.tertiary.legacy{border:1px solid var(--Gray-Gray-200, #c3c9d9);color:var(--Gray-Gray-500, #69738c)}.btn.tertiary.default:hover,.btn.tertiary.legacy:hover{border-color:var(--Gray-Gray-400, #858ea6);color:var(--Gray-Gray-600, #475066)}.btn.tertiary.success{color:var(--Success-Success-500, #0abb87)}.btn.tertiary.success:hover{background:var(--Success-Success-50, #e7f8f3)}.btn.tertiary.info{color:var(--Info-Info-500, #50a5f1)}.btn.tertiary.info:hover{background:var(--Info-Info-50, #eef6fe)}.btn.tertiary.error{color:var(--Error-Error-500, #f46a6b)}.btn.tertiary.error:hover{background:var(--Error-Error-50, #fef0f0)}.btn.tertiary.warning{color:var(--Warning-Warning-500, #f1b44c)}.btn.tertiary.warning:hover{background:var(--Warning-Warning-50, #fef8ed)}.btn.tertiary.dropdown{color:var(--Gray-Gray-500, #69738c);font-weight:400;font-size:14px;background:transparent}.btn.tertiary.disabled.default,.btn.tertiary.disabled.legacy{border:1px solid var(--Gray-Gray-200, #c3c9d9);color:var(--Gray-Gray-400, #858ea6)}.btn.tertiary.disabled.success{color:var(--Success-Success-300, #5bd1af)}.btn.tertiary.disabled.info{color:var(--Info-Info-300, #8ac3f6)}.btn.tertiary.disabled.error{color:var(--Error-Error-300, #f89b9c)}.btn.tertiary.disabled.warning{color:var(--Warning-Warning-300, #f6cd87)}.spin{animation:spin 1s linear infinite}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}`;
3
+ const dropiButtonCss = () => `:host{display:inline-block}:host([full-width]){display:flex;width:100%}:host([full-width]) .btn{width:100%}*,*::before,*::after{box-sizing:border-box}.btn{all:unset;box-sizing:border-box;display:flex;align-items:center;justify-content:center;gap:var(--Size-1, 4px);border-radius:var(--Border-2, 8px);font-weight:var(--font-weight-bold);min-width:33px;line-height:110%;cursor:pointer;white-space:nowrap;transition:background 0.25s ease, color 0.25s ease, border-color 0.25s ease, transform 0.25s ease}.btn:active{transition:transform 0.01s ease-out;transform:scale(0.98)}.btn:hover:not(:active){transform:scale(1.01)}.btn.without-text{gap:0}.btn.large{padding:var(--Size-4, 16px);font-size:var(--Size-4, 16px);height:48px}.btn.normal{padding:var(--Size-3, 12px);font-size:var(--font-size-s, 12px);height:40px}.btn.small{padding:var(--Size-2, 8px);font-size:var(--font-size-s, 12px);height:29px}.btn.disabled,.btn.loading{cursor:not-allowed;pointer-events:none}.btn.primary.default{background:var(--Primary-Primary-500, #f49a3d);color:var(--Neutral-White, #ffffff)}.btn.primary.default:hover{background:var(--Primary-Primary-600, #e58017)}.btn.primary.success{background:var(--Success-Success-500, #0abb87);color:var(--Neutral-White, #ffffff)}.btn.primary.success:hover{background:var(--Success-Success-600, #09aa7b)}.btn.primary.info{background:var(--Info-Info-500, #50a5f1);color:var(--Neutral-White, #ffffff)}.btn.primary.info:hover{background:var(--Info-Info-600, #4996db)}.btn.primary.error{background:var(--Error-Error-500, #f46a6b);color:var(--Neutral-White, #ffffff)}.btn.primary.error:hover{background:var(--Error-Error-600, #de6061)}.btn.primary.warning{background:var(--Warning-Warning-500, #f1b44c);color:var(--Neutral-White, #ffffff)}.btn.primary.warning:hover{background:var(--Warning-Warning-600, #dba445)}.btn.primary.legacy{background:var(--Secondary-Secondary-500, #008dbf);color:var(--Neutral-White, #ffffff)}.btn.primary.legacy:hover{background:var(--Secondary-Secondary-600, #007199)}.btn.primary.disabled.default{background:var(--Primary-Primary-300, #f2bc85);color:var(--Neutral-White, #ffffff)}.btn.primary.disabled.success{background:var(--Success-Success-300, #5bd1af);color:var(--Neutral-White, #ffffff)}.btn.primary.disabled.info{background:var(--Info-Info-300, #8ac3f6);color:var(--Neutral-White, #ffffff)}.btn.primary.disabled.error{background:var(--Error-Error-300, #f89b9c);color:var(--Neutral-White, #ffffff)}.btn.primary.disabled.warning{background:var(--Warning-Warning-300, #f6cd87);color:var(--Neutral-White, #ffffff)}.btn.primary.disabled.legacy{background:var(--Secondary-Secondary-300, #62bad9);color:var(--Neutral-White, #ffffff)}.btn.secondary{background:var(--Neutral-White, #ffffff);border:1px solid}.btn.secondary.default{border-color:var(--Primary-Primary-500, #f49a3d);color:var(--Primary-Primary-500, #f49a3d)}.btn.secondary.default:hover{color:var(--Primary-Primary-600, #e58017);border-color:var(--Primary-Primary-600, #e58017)}.btn.secondary.success{border-color:var(--Success-Success-500, #0abb87);color:var(--Success-Success-500, #0abb87)}.btn.secondary.success:hover{color:var(--Success-Success-600, #09aa7b);border-color:var(--Success-Success-600, #09aa7b)}.btn.secondary.info{border-color:var(--Info-Info-500, #50a5f1);color:var(--Info-Info-500, #50a5f1)}.btn.secondary.info:hover{color:var(--Info-Info-600, #4996db);border-color:var(--Info-Info-600, #4996db)}.btn.secondary.error{border-color:var(--Error-Error-500, #f46a6b);color:var(--Error-Error-500, #f46a6b)}.btn.secondary.error:hover{color:var(--Error-Error-600, #de6061);border-color:var(--Error-Error-600, #de6061)}.btn.secondary.warning{border-color:var(--Warning-Warning-500, #f1b44c);color:var(--Warning-Warning-500, #f1b44c)}.btn.secondary.warning:hover{color:var(--Warning-Warning-600, #dba445);border-color:var(--Warning-Warning-600, #dba445)}.btn.secondary.legacy{border-color:var(--Secondary-Secondary-500, #008dbf);color:var(--Secondary-Secondary-500, #008dbf)}.btn.secondary.legacy:hover{color:var(--Secondary-Secondary-600, #007199);border-color:var(--Secondary-Secondary-600, #007199)}.btn.secondary.disabled.default{border-color:var(--Primary-Primary-300, #f2bc85);color:var(--Primary-Primary-300, #f2bc85)}.btn.secondary.disabled.success{border-color:var(--Success-Success-300, #5bd1af);color:var(--Success-Success-300, #5bd1af)}.btn.secondary.disabled.info{border-color:var(--Info-Info-300, #8ac3f6);color:var(--Info-Info-300, #8ac3f6)}.btn.secondary.disabled.error{border-color:var(--Error-Error-300, #f89b9c);color:var(--Error-Error-300, #f89b9c)}.btn.secondary.disabled.warning{border-color:var(--Warning-Warning-300, #f6cd87);color:var(--Warning-Warning-300, #f6cd87)}.btn.secondary.disabled.legacy{border-color:var(--Secondary-Secondary-300, #62bad9);color:var(--Secondary-Secondary-300, #62bad9)}.btn.tertiary{background:none;border:none}.btn.tertiary.default,.btn.tertiary.legacy{border:1px solid var(--Gray-Gray-200, #c3c9d9);color:var(--Gray-Gray-500, #69738c)}.btn.tertiary.default:hover,.btn.tertiary.legacy:hover{border-color:var(--Gray-Gray-400, #858ea6);color:var(--Gray-Gray-600, #475066)}.btn.tertiary.success{color:var(--Success-Success-500, #0abb87)}.btn.tertiary.success:hover{background:var(--Success-Success-50, #e7f8f3)}.btn.tertiary.info{color:var(--Info-Info-500, #50a5f1)}.btn.tertiary.info:hover{background:var(--Info-Info-50, #eef6fe)}.btn.tertiary.error{color:var(--Error-Error-500, #f46a6b)}.btn.tertiary.error:hover{background:var(--Error-Error-50, #fef0f0)}.btn.tertiary.warning{color:var(--Warning-Warning-500, #f1b44c)}.btn.tertiary.warning:hover{background:var(--Warning-Warning-50, #fef8ed)}.btn.tertiary.dropdown{color:var(--Gray-Gray-500, #69738c);font-weight:var(--font-weight-regular);font-size:var(--font-size-s);background:transparent}.btn.tertiary.disabled.default,.btn.tertiary.disabled.legacy{border:1px solid var(--Gray-Gray-200, #c3c9d9);color:var(--Gray-Gray-400, #858ea6)}.btn.tertiary.disabled.success{color:var(--Success-Success-300, #5bd1af)}.btn.tertiary.disabled.info{color:var(--Info-Info-300, #8ac3f6)}.btn.tertiary.disabled.error{color:var(--Error-Error-300, #f89b9c)}.btn.tertiary.disabled.warning{color:var(--Warning-Warning-300, #f6cd87)}.spin{animation:spin 1s linear infinite}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}`;
4
4
 
5
5
  const DropiButton = class {
6
6
  constructor(hostRef) {
7
7
  registerInstance(this, hostRef);
8
- this.dropiClick = createEvent(this, "dropiClick", 7);
8
+ this.onClick = createEvent(this, "onClick", 7);
9
9
  }
10
10
  /** Visual color palette */
11
11
  type = 'default';
@@ -21,10 +21,12 @@ const DropiButton = class {
21
21
  preIcon = '';
22
22
  /** Icon name to show after the text */
23
23
  postIcon = '';
24
+ /** Custom icon color override */
25
+ customIconColor = '';
24
26
  /** Button label */
25
27
  text = '';
26
28
  /** Emitted on click (not emitted when disabled or loading) */
27
- dropiClick;
29
+ onClick;
28
30
  colorMap = {
29
31
  default: 'Primary-Primary-',
30
32
  success: 'Success-Success-',
@@ -33,6 +35,7 @@ const DropiButton = class {
33
35
  legacy: 'Secondary-Secondary-',
34
36
  warning: 'Warning-Warning-',
35
37
  dropdown: 'Gray-Gray-',
38
+ 'default-light': 'Gray-Gray-',
36
39
  };
37
40
  get iconSize() {
38
41
  if (this.size === 'large')
@@ -55,7 +58,7 @@ const DropiButton = class {
55
58
  }
56
59
  handleClick(e) {
57
60
  if (this.state !== 'disabled' && this.state !== 'loading') {
58
- this.dropiClick.emit(e);
61
+ this.onClick.emit(e);
59
62
  }
60
63
  }
61
64
  renderLoadingSpinner() {
@@ -66,14 +69,15 @@ const DropiButton = class {
66
69
  const hasText = this.text !== '';
67
70
  const showPostIcon = this.postIcon !== '' || this.type === 'dropdown';
68
71
  const dropdownIcon = this.type === 'dropdown' ? 'Dropdown-down' : this.postIcon;
69
- return (h("button", { key: 'e924f56cb86a87ee8a314cfc5c278042a4d0a87d', class: {
72
+ return (h("button", { key: '4df67bd28e77c9a14fb33f3131b60ac508ca1937', class: {
70
73
  btn: true,
71
74
  'without-text': !hasText,
72
75
  [this.severity]: true,
73
76
  [this.type]: true,
74
77
  [this.size]: true,
75
78
  [this.state]: true,
76
- }, disabled: isDisabled, onClick: (e) => this.handleClick(e) }, this.preIcon && (h("dropi-icon", { key: '6d42026da19f7bf2fc6186659b8afc48748544f1', name: this.preIcon, width: this.iconSize, height: this.iconSize, color: this.fontColor })), hasText && h("span", { key: 'c71ee430fec84cd24d261dc12973ad0b472cc71c', class: "text" }, this.text), showPostIcon && (h("dropi-icon", { key: 'ff3890de446e5b48c88a980f01cce4e7b9764b24', name: dropdownIcon, width: this.iconSize, height: this.iconSize, color: this.fontColor })), this.state === 'loading' && this.renderLoadingSpinner(), h("slot", { key: '3ee6aacd17a004664ad4bcf89219a8e2dc865343' })));
79
+ 'full-width': this.fullWidth,
80
+ }, disabled: isDisabled, onClick: (e) => this.handleClick(e) }, this.preIcon && (h("dropi-icon", { key: '7a54bf7ebfad24786109a17af928bfc43ccc7db4', name: this.preIcon, width: this.iconSize, height: this.iconSize, color: this.fontColor })), hasText && h("span", { key: 'ffb3b062d93c3a7090d971538d23c309f915b749', class: "text" }, this.text), showPostIcon && (h("dropi-icon", { key: '16127c78c5b4a3372ba89b24bc9b067e2d035cd1', name: dropdownIcon, width: this.iconSize, height: this.iconSize, color: this.fontColor })), this.state === 'loading' && this.renderLoadingSpinner(), h("slot", { key: 'a65ee231501ad83a059eb5988e96e1dcd18c5706' })));
77
81
  }
78
82
  };
79
83
  DropiButton.style = dropiButtonCss();
@@ -1,18 +1,18 @@
1
- import { r as registerInstance, c as createEvent, h } from './index-Tbza12Gt.js';
1
+ import { r as registerInstance, c as createEvent, h } from './index-TXz_09YZ.js';
2
2
 
3
- const dropiCardCheckboxCss = () => `:host{display:block;width:100%}*,*::before,*::after{box-sizing:border-box}.container-card-check{padding:var(--Size-4, 16px);border:1px solid var(--Gray-Gray-200, #c3c9d9);border-radius:var(--Size-2, 8px);width:100%;display:flex;align-items:center;gap:var(--Size-3, 12px);cursor:pointer;height:66px;overflow:hidden;transition:background 0.15s ease, border-color 0.15s ease}.container-card-check.disabled{border-radius:var(--Border-2, 8px);border:1px solid var(--Gray-Gray-100, #e6eaf2);background-color:var(--Gray-Gray-50, #f7f8fa);cursor:default}.container-card-check.disabled .title-check,.container-card-check.disabled .description-text,.container-card-check.disabled .extra-info{color:var(--Gray-Gray-400, #858ea6)}.container-text{width:100%;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;text-align:start;overflow:hidden}.title-check{color:var(--Gray-Gray-700, #32394d);font-size:var(--font-size-m, 14px);font-weight:var(--font-weight-regular, 400);display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.description-text{color:var(--Gray-Gray-500, #69738c);font-size:var(--font-size-s, 12px);margin-top:var(--Size-1, 4px);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.extra-info{display:flex;justify-content:space-between;align-items:center;flex-direction:column;gap:4px;flex-shrink:0;font-size:var(--font-size-s, 12px);color:var(--Gray-Gray-600, #475066)}.extra-info h4{margin:0;font-size:var(--font-size-s, 12px)}.default-card{border:none}.is-checked{background:var(--Primary-Primary-50, #fff8f0);border:1px solid var(--Primary-Primary-500, #f49a3d)}`;
3
+ const dropiCardCheckboxCss = () => `:host{display:block;width:100%}*,*::before,*::after{box-sizing:border-box}.container-card-check{padding:var(--Size-4, 16px);border:1px solid var(--Gray-Gray-200, #c3c9d9);border-radius:var(--Size-2, 8px);width:100%;display:flex;align-items:center;gap:var(--Size-3, 12px);cursor:pointer;height:66px;overflow:hidden;transition:background 0.15s ease, border-color 0.15s ease}.container-card-check.disabled{border-radius:var(--Border-2, 8px);border:1px solid var(--Gray-Gray-100, #e6eaf2);background-color:var(--Gray-Gray-50, #f7f8fa);cursor:default}.container-card-check.disabled .title-check,.container-card-check.disabled .description-text,.container-card-check.disabled .extra-info{color:var(--Gray-Gray-400, #858ea6)}.container-text{width:100%;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;text-align:start;overflow:hidden}.title-check{color:var(--Gray-Gray-700, #32394d);font-size:var(--font-size-m, 14px);font-weight:var(--font-weight-regular, 400);display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.description-text{color:var(--Gray-Gray-500, #69738c);font-size:var(--font-size-s, 12px);margin-top:var(--Size-1, 4px);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.extra-info{display:flex;justify-content:space-between;align-items:center;flex-direction:column;gap:4px;flex-shrink:0;font-size:var(--font-size-s, 12px);color:var(--Gray-Gray-600, #475066)}.extra-info h4{margin:0;font-weight:var(--font-weight-semibold);color:inherit;line-height:inherit}.default-card{border:none}.is-checked{background:var(--Primary-Primary-50, #fff8f0);border:1px solid var(--Primary-Primary-500, #f49a3d)}`;
4
4
 
5
5
  const DropiCardCheckbox = class {
6
6
  constructor(hostRef) {
7
7
  registerInstance(this, hostRef);
8
- this.dropiChange = createEvent(this, "dropiChange", 7);
8
+ this.onChange = createEvent(this, "onChange", 7);
9
9
  }
10
- /** Visual type: 'default' = no border, 'with-card' = bordered card */
10
+ /** Visual type — matches Angular: 'default' | 'with card' */
11
11
  type = 'default';
12
- /** Whether the checkbox is checked */
13
- checked = false;
14
- /** Main title */
15
- cardTitle = '';
12
+ /** Whether the checkbox is checked — matches Angular 'state' */
13
+ state = 'checked';
14
+ /** Main title — matches Angular 'title' */
15
+ title = 'Tittle';
16
16
  /** Optional description below title */
17
17
  description = '';
18
18
  /** Optional extra info shown on the right */
@@ -22,20 +22,23 @@ const DropiCardCheckbox = class {
22
22
  /** Disables interaction */
23
23
  disabled = false;
24
24
  /** Emitted with the new checked state when clicked */
25
- dropiChange;
25
+ onChange;
26
+ get isChecked() {
27
+ return this.state === 'checked';
28
+ }
26
29
  handleClick() {
27
30
  if (this.disabled)
28
31
  return;
29
- this.checked = !this.checked;
30
- this.dropiChange.emit(this.checked);
32
+ this.state = this.isChecked ? 'default' : 'checked';
33
+ this.onChange.emit(this.isChecked);
31
34
  }
32
35
  render() {
33
- return (h("div", { key: '9c647faab478d2817593315051b1f02d0334756d', class: {
36
+ return (h("div", { key: 'b6e9f4e5855a03b04102fd2206c4d478d49e4753', class: {
34
37
  'container-card-check': true,
35
38
  'default-card': this.type === 'default',
36
- 'is-checked': this.checked && this.type === 'with-card',
39
+ 'is-checked': this.isChecked && this.type === 'with card',
37
40
  'disabled': this.disabled,
38
- }, onClick: () => this.handleClick() }, h("dropi-checkbox", { key: '31db5cd31da290692d6aa77e0129b7e4361c23aa', checked: this.checked, disabled: this.disabled }), h("div", { key: '4b5c8eeadd255a79344d634d84e3ff93fafa34b4', class: "container-text" }, h("div", { key: '30a03f764294e0b4ca8a2bf4fd1badc08d0dc7e9', class: "title-check" }, this.cardTitle), this.description && h("div", { key: '751b4fac066b17c903e56a0aa5ef16b0d4151944', class: "description-text" }, this.description)), (this.extraInfo || this.extraInfoDescription) && (h("div", { key: '6b7eec457d42169ac87d1042b65b1bebdd436a5e', class: "extra-info" }, this.extraInfo && h("div", { key: '07e1cfa079668255343570498e0ad0dc0351effb' }, this.extraInfo), this.extraInfoDescription && h("h4", { key: '3a8277e2749b9cbdaf7d5d11086c7f2ac11dc39c' }, this.extraInfoDescription)))));
41
+ }, onClick: () => this.handleClick() }, h("dropi-checkbox", { key: '45af833a92b8441b79e2679a8f584f74e6b0c458', checked: this.isChecked, disabled: this.disabled }), h("div", { key: 'b0678976e2f52eef02fa5cb71ae6db284b26212d', class: "container-text" }, h("div", { key: 'd5bc253eb3262223d1e9ba31b2193cd3c1d11abe', class: "title-check" }, this.title), this.description && h("div", { key: '5555ff237e6c80552dafa079de1b6901e3e672a5', class: "description-text" }, this.description)), (this.extraInfo || this.extraInfoDescription) && (h("div", { key: '675a7b4a1195d2a452f3be11d4ae1553f7b19b4b', class: "extra-info" }, this.extraInfo && h("div", { key: '33e7cec0ccc2c1c5f8afe61a54463382b11343b4' }, this.extraInfo), this.extraInfoDescription && h("h4", { key: 'f5d61a5ff4706d4bcb2cd7f818e06cff8787ac6d' }, this.extraInfoDescription)))));
39
42
  }
40
43
  };
41
44
  DropiCardCheckbox.style = dropiCardCheckboxCss();
@@ -1,55 +1,72 @@
1
- import { r as registerInstance, c as createEvent, h } from './index-Tbza12Gt.js';
1
+ import { r as registerInstance, c as createEvent, h } from './index-TXz_09YZ.js';
2
2
 
3
- const dropiCardProductCss = () => `:host{display:block}*,*::before,*::after{box-sizing:border-box}.card{display:flex;flex-direction:column;border:1px solid var(--Gray-Gray-100, #eceef4);border-radius:var(--Border-2, 8px);background:var(--Neutral-White, #fff);overflow:hidden;cursor:pointer;transition:box-shadow 0.2s, transform 0.2s}.card:hover{box-shadow:0 4px 16px rgba(0,0,0,0.1);transform:translateY(-2px)}.card__image-wrap{position:relative;width:100%;aspect-ratio:1;background:var(--Gray-Gray-50, #f7f8fa);overflow:hidden}.card__image{width:100%;height:100%;object-fit:cover}.card__image-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.card__badge{position:absolute;top:var(--Size-2, 8px);left:var(--Size-2, 8px);padding:2px 8px;border-radius:100px;font-size:var(--font-size-xs, 10px);font-weight:var(--font-weight-bold, 700)}.card__badge--default{background:var(--Gray-Gray-100, #eceef4);color:var(--Gray-Gray-700, #32394d)}.card__badge--success{background:var(--Success-Success-100, #d4f5de);color:var(--Success-Success-700, #0f7b2e)}.card__badge--warning{background:var(--Warning-Warning-100, #fef3cd);color:var(--Warning-Warning-700, #856404)}.card__badge--error{background:var(--Error-Error-100, #fde8e8);color:var(--Error-Error-700, #9b1c1c)}.card__badge--info{background:var(--Info-Info-100, #dbeafe);color:var(--Info-Info-700, #1d4ed8)}.card__fav{position:absolute;top:var(--Size-2, 8px);right:var(--Size-2, 8px);background:var(--Neutral-White, #fff);border:none;border-radius:50%;width:30px;height:30px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,0.12);transition:transform 0.15s}.card__fav:hover{transform:scale(1.1)}.card__fav--active{background:var(--Error-Error-50, #fef2f2)}.card__body{flex:1;padding:var(--Size-3, 12px);display:flex;flex-direction:column;gap:4px}.card__category{font-size:var(--font-size-xs, 10px);color:var(--Gray-Gray-400, #858ea6);text-transform:uppercase;letter-spacing:0.5px}.card__name{margin:0;font-size:var(--font-size-s, 12px);font-weight:var(--font-weight-bold, 700);color:var(--Gray-Gray-800, #1a2033);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card__price{margin:4px 0 0;font-size:var(--font-size-m, 14px);font-weight:var(--font-weight-bold, 700);color:var(--Primary-Primary-500, #f49a3d)}.card__price-currency{font-size:var(--font-size-xs, 10px);margin-right:2px}.card__supplier{margin:0;font-size:var(--font-size-xs, 10px);color:var(--Gray-Gray-400, #858ea6);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card__no-stock{margin:4px 0 0;font-size:var(--font-size-xs, 10px);color:var(--Error-Error-500, #f46a6b)}.card__footer{padding:var(--Size-2, 8px) var(--Size-3, 12px) var(--Size-3, 12px)}.card__add-btn{width:100%;height:36px;display:flex;align-items:center;justify-content:center;gap:var(--Size-1, 4px);background:var(--Primary-Primary-500, #f49a3d);color:var(--Neutral-White, #fff);border:none;border-radius:var(--Border-2, 8px);font-size:var(--font-size-s, 12px);font-weight:var(--font-weight-bold, 700);font-family:inherit;cursor:pointer;transition:background 0.15s}.card__add-btn:hover:not(:disabled){background:var(--Primary-Primary-600, #e08526)}.card__add-btn:disabled{background:var(--Gray-Gray-200, #c3c9d9);cursor:not-allowed}`;
3
+ const dropiCardProductCss = () => `:host{display:block;font-family:'Inter', sans-serif}*,*::before,*::after{box-sizing:border-box}.dropi-card-product{position:relative;background:#ffffff;border-radius:8px;overflow:hidden;transition:all 0.2s ease-in-out;cursor:pointer;display:flex;flex-direction:column;height:100%;box-sizing:border-box;width:100%;max-width:450px;box-shadow:none}.product-image-container{padding:4px;flex-shrink:0}.product-image{position:relative;width:100%;aspect-ratio:1;border-radius:8px;border:1px solid #c3c9d9;overflow:hidden;display:flex;align-items:center;justify-content:center;background-color:#f8f9fa}.product-image img{width:100%;height:100%;object-fit:cover;border-radius:8px}.product-image img.error-img{object-fit:contain}.favorite-button{position:absolute;bottom:5px;right:6px;border-radius:8px;padding:12px;cursor:pointer;transition:all 0.2s ease-in-out;z-index:2;display:flex;align-items:center;justify-content:center;width:42px;height:40px;background:#ffffff;border:1px solid #858ea6}.favorite-button.favorite-active{background:var(--Primary-Primary-500, #f49a3d);border:1px solid var(--Primary-Primary-500, #f49a3d)}.product-info{position:relative;padding:8px;display:flex;flex-direction:column;gap:4px;flex:1;justify-content:space-between}.supplier-insignia{position:absolute;top:-24px;left:0px}.product-header{display:flex;justify-content:space-between;align-items:center;width:100%;height:26px}.category{color:#69738c;font-family:'Inter', sans-serif;font-size:12px;font-weight:400;line-height:1.5;flex:1}.stock-info{display:flex;align-items:center;gap:2px;font-family:'Inter', sans-serif;font-size:12px;font-weight:400;line-height:1.5}.stock-label{color:#69738c}.stock-value{font-weight:500}.product-name{color:#32394d;font-family:'Inter', sans-serif;font-size:16px;font-weight:500;line-height:1.5;margin:0;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.supplier-info{font-family:'Inter', sans-serif;font-size:12px;line-height:1.2}.supplier-label{color:#69738c;font-weight:400}.supplier-name{color:#50a5f1;font-weight:400;margin-left:4px;cursor:pointer}.price-container{display:flex;gap:8px;margin-top:4px}.price-item{flex:1;display:flex;flex-direction:column}.price-label{color:#69738c;font-family:'Inter', sans-serif;font-size:12px;font-weight:400;line-height:1.5;height:18px;min-width:max-content}.price-value{color:#32394d;font-family:'Inter', sans-serif;font-size:14px;font-weight:700;line-height:1.1;margin-top:2px}.separator{height:1px;background:#e6eaf2;margin:0;flex-shrink:0}.action-button{background:#ffffff;border:none;border-top:1px solid #e6eaf2;padding:12px;cursor:pointer;transition:all 0.2s ease-in-out;display:flex;align-items:center;justify-content:center;gap:8px;height:40px;flex-shrink:0}.action-button--disabled{opacity:0.3;cursor:not-allowed}.button-text{font-family:'Inter', sans-serif;font-size:14px;font-weight:700;line-height:1.1;color:#f49a3d;text-align:center;white-space:nowrap}`;
4
4
 
5
5
  const DropiCardProduct = class {
6
6
  constructor(hostRef) {
7
7
  registerInstance(this, hostRef);
8
- this.dropiCardClick = createEvent(this, "dropiCardClick", 7);
9
- this.dropiToggleFavorite = createEvent(this, "dropiToggleFavorite", 7);
8
+ this.onProductClick = createEvent(this, "onProductClick", 7);
9
+ this.changeFavorite = createEvent(this, "changeFavorite", 7);
10
10
  this.dropiAddProduct = createEvent(this, "dropiAddProduct", 7);
11
+ this.dropiSupplierClick = createEvent(this, "dropiSupplierClick", 7);
11
12
  }
12
13
  /** Product image URL */
13
14
  image = '';
14
15
  /** Product name */
15
16
  productName = '';
16
- /** Product price */
17
- price = 0;
17
+ /** Sale / supplier price (Precio proveedor) */
18
+ salePrice = 0;
19
+ /** Suggested price for the dropshipper (Precio sugerido) */
20
+ suggestedPrice = 0;
18
21
  /** Price currency symbol */
19
22
  currency = '$';
20
23
  /** Supplier / store name */
21
24
  supplier = '';
22
25
  /** Category label */
23
26
  category = '';
27
+ /** Stock quantity (0 = Agotado) */
28
+ stock = 0;
29
+ /** Supplier category for insignia: 'verified' | 'premium' | 'exclusive' | '' */
30
+ supplierCategory = '';
24
31
  /** Show favorite button */
25
32
  showFavorite = true;
26
33
  /** Is marked as favorite */
27
34
  isFavorite = false;
28
- /** Show "Add to store" button */
35
+ /** Show "Enviar a cliente" button */
29
36
  showAddButton = true;
30
- /** Badge text (e.g. "Nuevo", "Oferta") */
31
- badge = '';
32
- /** Badge color variant */
33
- badgeType = 'default';
34
- /** Stock availability */
35
- inStock = true;
36
- /** Emitted when card is clicked */
37
- dropiCardClick;
38
- /** Emitted when favorite toggled */
39
- dropiToggleFavorite;
40
- /** Emitted when "Add" button clicked */
37
+ /** Emitted when card is clicked — matches Angular 'onProductClick' */
38
+ onProductClick;
39
+ /** Emitted when favorite toggled — matches Angular 'changeFavorite' */
40
+ changeFavorite;
41
+ /** Emitted when "Enviar a cliente" button clicked */
41
42
  dropiAddProduct;
43
+ /** Emitted when supplier name clicked */
44
+ dropiSupplierClick;
42
45
  formatPrice(val) {
43
46
  return val.toLocaleString('es-CO');
44
47
  }
48
+ get inStock() {
49
+ return this.stock > 0;
50
+ }
51
+ getStockColor() {
52
+ if (this.stock === 0)
53
+ return 'var(--Error-Error-500, #f46a6b)';
54
+ if (this.stock <= 10)
55
+ return 'var(--Warning-Warning-500, #f59e0b)';
56
+ return 'var(--Success-Success-500, #0abb87)';
57
+ }
45
58
  render() {
46
- return (h("div", { key: '98684e3d5fac7968633bcd62b46dba6f0e0f5d64', class: "card", onClick: () => this.dropiCardClick.emit() }, h("div", { key: '848cf4ef786584e5b02a99249df3cfa48c41d428', class: "card__image-wrap" }, this.image
47
- ? h("img", { class: "card__image", src: this.image, alt: this.productName, loading: "lazy" })
48
- : h("div", { class: "card__image-placeholder" }, h("dropi-icon", { name: "Image", width: "32px", height: "32px", color: "Gray-Gray-300" })), this.badge && (h("span", { key: '7238c35891b35a0bb12a774817542323bcd33e99', class: `card__badge card__badge--${this.badgeType}` }, this.badge)), this.showFavorite && (h("button", { key: '647c8569997ff8ba96ca0d4d19a12570fb353d93', class: { 'card__fav': true, 'card__fav--active': this.isFavorite }, onClick: (e) => {
59
+ return (h("div", { key: '37c48cc67a7f0c7469a68052c90a2818535dce69', class: "dropi-card-product", onClick: () => this.onProductClick.emit() }, h("div", { key: '83404d72af41a88fd2abea553559b057b6fff12d', class: "product-image-container" }, h("div", { key: 'c1d5044b0bd09051e1901e897160fa47d2ded209', class: "product-image" }, h("img", { key: 'a70907ebb8bcd3a165e395a241fc60942f48c144', src: this.image || '', alt: this.productName, onError: (e) => {
60
+ e.target.src = './assets/utils/no-image.jpg';
61
+ }, class: !this.image ? 'error-img' : '' }), this.showFavorite && (h("button", { key: '24c395c652a3d0dbb18258a8975ac79eeb6154fd', class: { 'favorite-button': true, 'favorite-active': this.isFavorite }, onClick: (e) => {
49
62
  e.stopPropagation();
50
63
  this.isFavorite = !this.isFavorite;
51
- this.dropiToggleFavorite.emit(this.isFavorite);
52
- }, "aria-label": "Favorito" }, h("dropi-icon", { key: 'a9d654e3bdc5816f2c58537cb07c486a61021fcd', name: this.isFavorite ? 'Heart-filled' : 'Heart', width: "16px", height: "16px", color: this.isFavorite ? 'Error-Error-500' : 'Gray-Gray-400' })))), h("div", { key: 'c553168c5926dafb582210b680571eb9b4ae72ea', class: "card__body" }, this.category && h("span", { key: '6cee8941275bc0461c9d06b0c5bf2f0a75f14f0b', class: "card__category" }, this.category), h("p", { key: 'd4577a94b9a7b7b8b9c275987369dc56e4a0c2b4', class: "card__name" }, this.productName), h("p", { key: '2ead66bd7ce7a7f15285b8099cfea7de8d4f6d1a', class: "card__price" }, h("span", { key: '90e317dc5bdad1cbe6199ef9abd13cf6468a439b', class: "card__price-currency" }, this.currency), this.formatPrice(this.price)), this.supplier && (h("p", { key: 'f70fc28afbc468d7eca3683afbc193ec47c275f4', class: "card__supplier" }, this.supplier)), !this.inStock && (h("p", { key: '37d9911367a0e0504e661e52eee69f4628572bb1', class: "card__no-stock" }, "Sin stock disponible"))), this.showAddButton && (h("div", { key: 'eef0213d00268319b6fa9901ced750d2f06735ed', class: "card__footer" }, h("button", { key: 'f026718a0146fdea94dbcda40614354be80fa932', class: "card__add-btn", disabled: !this.inStock, onClick: (e) => { e.stopPropagation(); this.dropiAddProduct.emit(); } }, h("dropi-icon", { key: 'dc3ff5553e60df93a3eb93bab43be874f8d6582d', name: "Plus", width: "14px", height: "14px", color: "Neutral-White" }), "Agregar")))));
64
+ this.changeFavorite.emit(this.isFavorite);
65
+ }, "aria-label": "Favorito" }, h("dropi-icon", { key: 'b196e405c3046dbbb973f77e8f5c76a170154d6f', name: this.isFavorite ? 'Heart-solid' : 'Heart', width: "18px", height: "18px", color: this.isFavorite ? '#fff' : '#858ea6' }))))), h("div", { key: 'cb9d81caa32ad134093637426507a55462d25b5f', class: "product-info" }, this.supplierCategory && (h("dropi-ilustration-icon", { key: '4f642dfa0e8621094a7ab58710e592133b43cea2', class: "supplier-insignia", type: "insignia", stateInsignia: this.supplierCategory, tagProduct: true })), h("div", { key: '269a000490bf2c0eab9a0bc4f8371ed91c5b84d3', class: "product-header" }, this.category && (h("span", { key: 'af027a19e03a9ddb95c0901f01081a1a42d856f1', class: "category" }, this.category)), h("div", { key: '26d7d97df6ce9f3fadeb8e84e5a8b9cda0450e7f', class: "stock-info" }, h("span", { key: 'ef9c7537b9b2185c455189b3c1a4999f409501ba', class: "stock-label" }, "Stock:"), h("span", { key: '89fe2fe123967c57c769953d18e24015288a3d56', class: "stock-value", style: { color: this.getStockColor() } }, this.stock === 0 ? 'Agotado' : this.stock))), h("h3", { key: '79b5046ab7ea3adeca8066dcc2f174cfed3f92f3', class: "product-name" }, this.productName), this.supplier && (h("div", { key: 'a1ff7e3fcf77ad8f4c979d266aae712aff4c18b2', class: "supplier-info" }, h("span", { key: 'be92e4ddd9d0de947307bd4bfd474ae31c6f2f7c', class: "supplier-label" }, "Proveedor:"), h("span", { key: '7180d51dd2f1ecb3726aa24793184a140778afe6', class: "supplier-name", onClick: (e) => { e.stopPropagation(); this.dropiSupplierClick.emit(); } }, this.supplier))), h("div", { key: '86733596ad100c5510a347cbf73ca9e03590322b', class: "price-container" }, h("div", { key: 'c2d919ae1b106b27fdaf649a531e96167a00b787', class: "price-item" }, h("span", { key: '337611bf6f02199c99645299469e5a9d4a6428a9', class: "price-label" }, "Precio proveedor"), h("span", { key: '1c63de1e288c7fb30067908c37dd8451f302672e', class: "price-value" }, this.currency, " ", this.formatPrice(this.salePrice))), h("div", { key: 'b23b70d40afc0afca19d86b754d6476b65a22e73', class: "price-item" }, h("span", { key: '3b15127ac5c07361e6ba23107f845b835ac35406', class: "price-label" }, "Precio sugerido"), h("span", { key: '14eb8d5cdb5f6152a0a82c1428d21eebb81a6744', class: "price-value" }, this.currency, " ", this.formatPrice(this.suggestedPrice))))), h("div", { key: 'e13e6135234a25b927018265e9570ecbf2fb71dc', class: "separator" }), this.showAddButton && (h("div", { key: 'c1b70f77fda95df876436b9cf326d470eb250bd9', class: { 'action-button': true, 'action-button--disabled': !this.inStock }, onClick: (e) => {
66
+ e.stopPropagation();
67
+ if (this.inStock)
68
+ this.dropiAddProduct.emit();
69
+ } }, h("dropi-icon", { key: 'f54207e6e1ebab2d2b0877af65b6353e02264ee4', name: "Shopping-cart-arrow-rigth", width: "20px", height: "20px", color: "#f49a3d" }), h("span", { key: 'e274c0343cdd202fa4e73e4d0843fe11d53aec6c', class: "button-text" }, "Enviar a cliente")))));
53
70
  }
54
71
  };
55
72
  DropiCardProduct.style = dropiCardProductCss();
@@ -1,34 +1,34 @@
1
- import { r as registerInstance, c as createEvent, h } from './index-Tbza12Gt.js';
1
+ import { r as registerInstance, c as createEvent, h } from './index-TXz_09YZ.js';
2
2
 
3
- const dropiCardSectionCss = () => `:host{display:block;width:100%}*,*::before,*::after{box-sizing:border-box}.card-section{display:flex;align-items:center;justify-content:space-between;gap:var(--Size-4, 16px);padding:var(--Size-3, 12px) var(--Size-4, 16px);background:var(--Neutral-White, #fff);border:1px solid var(--Gray-Gray-100, #e6eaf2);border-radius:var(--Border-2, 8px)}.card-section__text{flex:1}.card-section__title{margin:0 0 4px;font-family:inherit;font-weight:var(--font-weight-bold, 700);color:var(--Gray-Gray-800, #1a2033)}h5.card-section__title{font-size:var(--font-size-m, 14px)}h6.card-section__title{font-size:var(--font-size-s, 12px)}.card-section__desc{margin:0;font-size:var(--font-size-xs, 10px);color:var(--Gray-Gray-500, #69738c)}.card-section__control{flex-shrink:0}.card-section__dropdown-btn{display:flex;align-items:center;background:none;border:none;padding:0;cursor:pointer}`;
3
+ const dropiCardSectionCss = () => `:host{display:block;width:100%}*,*::before,*::after{box-sizing:border-box}.card-section{display:flex;align-items:center;justify-content:space-between;gap:var(--Size-4, 16px);padding:var(--Size-3, 12px) var(--Size-4, 16px);background:var(--Neutral-White, #ffffff);border:1px solid var(--Gray-Gray-100, #e6eaf2);border-radius:var(--Border-2, 8px)}.card-section__text{flex:1}.card-section__title{margin:0 0 4px;font-family:inherit;font-weight:var(--font-weight-bold, 700);color:var(--Gray-Gray-800, #1f2433)}h5.card-section__title{font-size:var(--font-size-m, 14px)}h6.card-section__title{font-size:var(--font-size-s, 12px)}.card-section__desc{margin:0;font-size:var(--font-size-xs, 10px);color:var(--Gray-Gray-500, #69738c)}.card-section__control{flex-shrink:0}.card-section__dropdown-btn{display:flex;align-items:center;background:none;border:none;padding:0;cursor:pointer}`;
4
4
 
5
5
  const DropiCardSection = class {
6
6
  constructor(hostRef) {
7
7
  registerInstance(this, hostRef);
8
- this.dropiChange = createEvent(this, "dropiChange", 7);
9
- this.dropiClick = createEvent(this, "dropiClick", 7);
8
+ this.onChange = createEvent(this, "onChange", 7);
9
+ this.onClick = createEvent(this, "onClick", 7);
10
10
  }
11
- /** Section title */
12
- sectionTitle = '';
11
+ /** Section title — matches Angular 'title' */
12
+ title = 'title';
13
13
  /** Section description */
14
- description = '';
14
+ description = 'Description';
15
15
  /** Control type on the right */
16
- typeElement = 'switch';
16
+ typeElement = 'dropdown';
17
17
  /** Title size variant */
18
- type = 'medium';
18
+ type = 'important';
19
19
  /** Switch checked state */
20
20
  isChecked = false;
21
- /** Emitted when switch changes. e.detail = new boolean value */
22
- dropiChange;
21
+ /** Emitted when switch changes */
22
+ onChange;
23
23
  /** Emitted when dropdown icon is clicked */
24
- dropiClick;
24
+ onClick;
25
25
  render() {
26
- return (h("div", { key: 'f2653804e3d325fb6859d5cc096c893c8fb08ed8', class: "card-section" }, h("div", { key: '25fb5e34a9abcdc6a2761adf7053256cb431304d', class: "card-section__text" }, this.type === 'important'
27
- ? h("h5", { class: "card-section__title card-section__title--important" }, this.sectionTitle)
28
- : h("h6", { class: "card-section__title" }, this.sectionTitle), this.description && h("p", { key: 'fbfb5509a685f39053aa787b57df7c9f2ba1b6eb', class: "card-section__desc" }, this.description)), h("div", { key: 'f5e6a3d27b08cd6d8be791d9d8bb007c2859d9d2', class: "card-section__control" }, this.typeElement === 'switch' ? (h("dropi-switch", { isChecked: this.isChecked, onDropiChange: (e) => {
26
+ return (h("div", { key: 'f0afbda9991af5b381a65dd5e620ca3d8e50791f', class: "card-section" }, h("div", { key: 'bb0a62ec9840a762ea3be5c342adbc431f26ba7e', class: "card-section__text" }, this.type === 'important'
27
+ ? h("h5", { class: "card-section__title card-section__title--important" }, this.title)
28
+ : h("h6", { class: "card-section__title" }, this.title), this.description && h("p", { key: 'd8ae14dfb52783a44c1f9edac1c9c388422f58e7', class: "card-section__desc" }, this.description)), h("div", { key: '927e20c496006fa26fcbc533faa3b55b890008dd', class: "card-section__control" }, this.typeElement === 'switch' ? (h("dropi-switch", { isChecked: this.isChecked, onOnChange: (e) => {
29
29
  this.isChecked = e.detail;
30
- this.dropiChange.emit(e.detail);
31
- } })) : (h("button", { class: "card-section__dropdown-btn", onClick: () => this.dropiClick.emit(), "aria-label": "Expandir" }, h("dropi-icon", { name: "Dropdown-down", width: "20px", height: "20px", color: "Gray-Gray-500" }))))));
30
+ this.onChange.emit(e.detail);
31
+ } })) : (h("button", { class: "card-section__dropdown-btn", onClick: () => this.onClick.emit(), "aria-label": "Expandir" }, h("dropi-icon", { name: "Dropdown-down", width: "20px", height: "20px", color: "Gray-Gray-500" }))))));
32
32
  }
33
33
  };
34
34
  DropiCardSection.style = dropiCardSectionCss();
@@ -1,78 +1,143 @@
1
- import { r as registerInstance, c as createEvent, h } from './index-Tbza12Gt.js';
1
+ import { r as registerInstance, c as createEvent, a as getElement, h } from './index-TXz_09YZ.js';
2
2
 
3
- const dropiCarouselCss = () => `:host{display:block;width:100%}*,*::before,*::after{box-sizing:border-box}.carousel{display:flex;flex-direction:column;gap:var(--Size-2, 8px);width:100%}.carousel__stage{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;border-radius:var(--Border-2, 8px);background:var(--Gray-Gray-100, #eceef4)}.carousel__slide{position:absolute;inset:0;opacity:0;transition:opacity 0.4s ease;pointer-events:none}.carousel__slide--active{opacity:1;pointer-events:all}.carousel__img{width:100%;height:100%}.carousel__nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0, 0, 0, 0.4);border:none;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background 0.15s;z-index:1}.carousel__nav:hover{background:rgba(0,0,0,0.65)}.carousel__nav--prev{left:var(--Size-2, 8px)}.carousel__nav--next{right:var(--Size-2, 8px)}.carousel__dots{display:flex;justify-content:center;gap:var(--Size-1, 4px)}.carousel__dot{width:8px;height:8px;border-radius:50%;border:none;background:var(--Gray-Gray-300, #a0a9c0);cursor:pointer;padding:0;transition:background 0.2s, transform 0.2s}.carousel__dot--active{background:var(--Primary-Primary-500, #f49a3d);transform:scale(1.3)}.carousel__thumbs{display:flex;gap:var(--Size-2, 8px);overflow-x:auto;padding-bottom:2px}.carousel__thumbs::-webkit-scrollbar{height:4px}.carousel__thumbs::-webkit-scrollbar-thumb{background:var(--Gray-Gray-200, #c3c9d9);border-radius:2px}.carousel__thumb{width:56px;height:56px;object-fit:cover;border-radius:var(--Border-1, 4px);cursor:pointer;flex-shrink:0;opacity:0.5;border:2px solid transparent;transition:opacity 0.15s, border-color 0.15s}.carousel__thumb:hover{opacity:0.8}.carousel__thumb--active{opacity:1;border-color:var(--Primary-Primary-500, #f49a3d)}`;
3
+ const dropiCarouselCss = () => `:host{display:block;width:100%}*,*::before,*::after{box-sizing:border-box}.dropi-carousel-container{display:flex;flex-direction:column;position:relative;width:100%;max-width:100%;overflow:hidden;padding:0 var(--Size-4)}.dropi-carousel-content{display:flex;align-items:center;position:relative;padding:1rem 0;width:100%}.dropi-carousel-items-content{overflow:hidden;flex:1;padding:0;width:100%;max-width:100%}.dropi-carousel-items-container{display:flex;padding-bottom:var(--Size-3);will-change:transform}.dropi-carousel-item{flex:0 0 auto;padding:0 0.5rem;box-sizing:border-box}.dropi-carousel-item>*{width:100%;box-sizing:border-box;display:block}.dropi-carousel-nav{display:flex;width:40px;height:40px;justify-content:center;align-items:center;cursor:pointer;transition:all 0.2s;flex-shrink:0;z-index:1;border-radius:var(--Border-5);background:var(--Neutral-White, #fff);box-shadow:var(--Shadow-medium);border:none;appearance:none;padding:0}.dropi-carousel-nav:hover{background:var(--Gray-Gray-50)}.dropi-carousel-nav:disabled{opacity:0.4;cursor:not-allowed;box-shadow:none}.dropi-carousel-prev{margin-right:1rem}.dropi-carousel-next{margin-left:1rem}.dropi-carousel-indicators{display:flex;justify-content:center;gap:0.5rem;list-style:none;padding:1rem 0 0 0;margin:0}.dropi-carousel-indicators li{cursor:pointer}.dropi-carousel-indicators li button{width:1rem;height:1rem;border-radius:50%;border:1px solid var(--Gray-Gray-100, #eceef4);background:var(--Neutral-White, #fff);cursor:pointer;transition:all 0.2s;padding:0}.dropi-carousel-indicators li.active button{background:var(--Primary-Primary-500);border-color:var(--Primary-Primary-500)}.dropi-carousel-indicators li:hover button{background:var(--Gray-Gray-200)}.vertical .dropi-carousel-content{flex-direction:column}.vertical .dropi-carousel-items-container{flex-direction:column}.vertical .dropi-carousel-prev{margin:0 0 1rem 0}.vertical .dropi-carousel-next{margin:1rem 0 0 0}@media (max-width: 768px){.dropi-carousel-container{padding:0}.dropi-carousel-item{padding:0 0.25rem}}`;
4
4
 
5
5
  const DropiCarousel = class {
6
6
  constructor(hostRef) {
7
7
  registerInstance(this, hostRef);
8
- this.dropiSlideChange = createEvent(this, "dropiSlideChange", 7);
8
+ this.pageChange = createEvent(this, "pageChange", 7);
9
+ this.onPage = createEvent(this, "onPage", 7);
9
10
  }
10
- /** Array of image URLs or JSON string */
11
- images = [];
12
- /** Alt text prefix for images */
13
- altPrefix = 'Imagen';
11
+ get el() { return getElement(this); }
12
+ /** Items to display (Array of URLs or objects) */
13
+ value = [];
14
+ /** Active page index */
15
+ page = 0;
16
+ /** Number of items visible per page */
17
+ numVisible = 1;
18
+ /** Number of items to scroll per click */
19
+ numScroll = 1;
20
+ /** Orientation of the carousel */
21
+ orientation = 'horizontal';
14
22
  /** Show navigation arrows */
15
- showArrows = true;
23
+ showNavigators = true;
16
24
  /** Show dot indicators */
17
- showDots = true;
18
- /** Show thumbnail strip */
19
- showThumbs = false;
25
+ showIndicators = true;
20
26
  /** Autoplay interval in ms (0 = disabled) */
21
- autoplay = 0;
22
- /** Active index (controlled) */
23
- activeIndex = 0;
24
- /** Object-fit for images */
25
- objectFit = 'cover';
26
- parsedImages = [];
27
- current = 0;
27
+ autoplayInterval = 0;
28
+ /** Infinite scrolling */
29
+ circular = false;
30
+ parsedValue = [];
31
+ internalPage = 0;
32
+ isAnimating = false;
33
+ totalPages = 0;
34
+ itemsContainer;
28
35
  timer;
29
- /** Emitted when slide changes. e.detail = new index */
30
- dropiSlideChange;
31
- imagesChanged(val) {
32
- this.parsedImages = typeof val === 'string' ? JSON.parse(val) : (val || []);
36
+ pageChange;
37
+ onPage;
38
+ handleValue(val) {
39
+ this.parsedValue = typeof val === 'string' ? JSON.parse(val) : (val || []);
40
+ this.updateTotalPages();
41
+ this.updateTransform();
33
42
  }
34
- activeIndexChanged(val) {
35
- this.current = val;
43
+ handlePage(val) {
44
+ this.internalPage = val;
45
+ this.updateTransform();
36
46
  }
37
47
  componentWillLoad() {
38
- this.imagesChanged(this.images);
39
- this.current = this.activeIndex;
48
+ this.handleValue(this.value);
49
+ this.internalPage = this.page;
40
50
  }
41
51
  componentDidLoad() {
42
- if (this.autoplay > 0) {
52
+ this.updateTransform();
53
+ if (this.autoplayInterval > 0) {
43
54
  this.startAutoplay();
44
55
  }
56
+ window.addEventListener('resize', this.onResize);
45
57
  }
46
58
  disconnectedCallback() {
47
59
  this.stopAutoplay();
60
+ window.removeEventListener('resize', this.onResize);
48
61
  }
62
+ onResize = () => {
63
+ this.updateTotalPages();
64
+ this.updateTransform();
65
+ };
49
66
  startAutoplay() {
50
- this.timer = setInterval(() => this.next(), this.autoplay);
67
+ this.timer = setInterval(() => this.navForward(), this.autoplayInterval);
51
68
  }
52
69
  stopAutoplay() {
53
70
  if (this.timer)
54
71
  clearInterval(this.timer);
55
72
  }
56
- go(index) {
57
- const len = this.parsedImages.length;
58
- this.current = ((index % len) + len) % len;
59
- this.activeIndex = this.current;
60
- this.dropiSlideChange.emit(this.current);
73
+ updateTotalPages() {
74
+ if (!this.parsedValue.length || this.parsedValue.length <= this.numVisible) {
75
+ this.totalPages = 1;
76
+ return;
77
+ }
78
+ const totalItems = this.parsedValue.length;
79
+ const remainingItems = totalItems - this.numVisible;
80
+ this.totalPages = Math.ceil(remainingItems / this.numScroll) + 1;
81
+ }
82
+ updateTransform() {
83
+ if (!this.itemsContainer)
84
+ return;
85
+ const prop = this.orientation === 'vertical' ? 'translateY' : 'translateX';
86
+ const firstItem = this.itemsContainer.querySelector('.dropi-carousel-item');
87
+ if (!firstItem)
88
+ return;
89
+ const itemSize = this.orientation === 'vertical' ? firstItem.offsetHeight : firstItem.offsetWidth;
90
+ const itemsScrolled = this.internalPage * this.numScroll;
91
+ const maxScroll = Math.max(0, this.parsedValue.length - this.numVisible);
92
+ const safeScroll = Math.min(itemsScrolled, maxScroll);
93
+ const translateValue = -(safeScroll * itemSize);
94
+ this.itemsContainer.style.transform = `${prop}(${translateValue}px)`;
95
+ }
96
+ navForward = (e) => {
97
+ if (e)
98
+ e.preventDefault();
99
+ if (this.circular || this.internalPage < this.totalPages - 1) {
100
+ this.isAnimating = true;
101
+ this.internalPage = (this.internalPage + 1) % this.totalPages;
102
+ this.page = this.internalPage;
103
+ this.updateTransform();
104
+ this.pageChange.emit(this.internalPage);
105
+ setTimeout(() => (this.isAnimating = false), 500);
106
+ }
107
+ };
108
+ navBackward = (e) => {
109
+ if (e)
110
+ e.preventDefault();
111
+ if (this.circular || this.internalPage > 0) {
112
+ this.isAnimating = true;
113
+ this.internalPage = (this.internalPage - 1 + this.totalPages) % this.totalPages;
114
+ this.page = this.internalPage;
115
+ this.updateTransform();
116
+ this.pageChange.emit(this.internalPage);
117
+ setTimeout(() => (this.isAnimating = false), 500);
118
+ }
119
+ };
120
+ onDotClick(index) {
121
+ this.isAnimating = true;
122
+ this.internalPage = index;
123
+ this.page = this.internalPage;
124
+ this.updateTransform();
125
+ this.pageChange.emit(this.internalPage);
126
+ setTimeout(() => (this.isAnimating = false), 500);
61
127
  }
62
- prev() { this.go(this.current - 1); }
63
- next() { this.go(this.current + 1); }
64
128
  render() {
65
- const imgs = this.parsedImages;
66
- if (!imgs.length)
129
+ const items = this.parsedValue;
130
+ if (!items.length)
67
131
  return null;
68
- return (h("div", { class: "carousel" }, h("div", { class: "carousel__stage" }, imgs.map((src, i) => (h("div", { class: { 'carousel__slide': true, 'carousel__slide--active': i === this.current }, "aria-hidden": i !== this.current }, h("img", { class: "carousel__img", src: src, alt: `${this.altPrefix} ${i + 1}`, style: { objectFit: this.objectFit }, loading: "lazy" })))), this.showArrows && imgs.length > 1 && (h("button", { class: "carousel__nav carousel__nav--prev", onClick: () => this.prev(), "aria-label": "Anterior" }, h("dropi-icon", { name: "Arrow-Left-2", width: "20px", height: "20px", color: "Neutral-White" }))), this.showArrows && imgs.length > 1 && (h("button", { class: "carousel__nav carousel__nav--next", onClick: () => this.next(), "aria-label": "Siguiente" }, h("dropi-icon", { name: "Arrow-Right-2", width: "20px", height: "20px", color: "Neutral-White" })))), this.showDots && imgs.length > 1 && (h("div", { class: "carousel__dots" }, imgs.map((_, i) => (h("button", { class: { 'carousel__dot': true, 'carousel__dot--active': i === this.current }, onClick: () => this.go(i), "aria-label": `Ir a diapositiva ${i + 1}` }))))), this.showThumbs && imgs.length > 1 && (h("div", { class: "carousel__thumbs" }, imgs.map((src, i) => (h("img", { class: { 'carousel__thumb': true, 'carousel__thumb--active': i === this.current }, src: src, alt: `${this.altPrefix} ${i + 1}`, onClick: () => this.go(i), loading: "lazy" })))))));
132
+ const itemFlexBasis = `${100 / this.numVisible}%`;
133
+ return (h("div", { class: { 'dropi-carousel-container': true, 'vertical': this.orientation === 'vertical' } }, h("div", { class: "dropi-carousel-content" }, this.showNavigators && items.length > this.numVisible && (h("button", { class: "dropi-carousel-nav dropi-carousel-prev", disabled: !this.circular && this.internalPage === 0, onClick: (e) => this.navBackward(e), "aria-label": "Anterior" }, h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none" }, h("path", { d: "M14.659 17.5a.833.833 0 0 1-.589-.244l-4.43-4.431a.833.833 0 0 1 0-1.178l4.43-4.431a.834.834 0 0 1 1.179 1.178L11.42 12.25l3.83 3.829a.833.833 0 0 1-.59 1.421Z", fill: "#475066" })))), h("div", { class: "dropi-carousel-items-content" }, h("div", { class: "dropi-carousel-items-container", ref: (el) => (this.itemsContainer = el), style: { transition: this.isAnimating ? 'transform 0.5s ease' : 'none' } }, items.map((item, i) => (h("div", { class: "dropi-carousel-item", style: { flex: `0 0 ${itemFlexBasis}` } }, typeof item === 'string' ? (h("img", { src: item, alt: `Slide ${i + 1}`, loading: "lazy" })) : (h("slot", { name: `item-${i}` }))))))), this.showNavigators && items.length > this.numVisible && (h("button", { class: "dropi-carousel-nav dropi-carousel-next", disabled: !this.circular && this.internalPage >= this.totalPages - 1, onClick: (e) => this.navForward(e), "aria-label": "Siguiente" }, h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none" }, h("path", { d: "M9.341 17.5a.833.833 0 0 0 .589-.244l4.43-4.431a.833.833 0 0 0 0-1.178l-4.43-4.431a.834.834 0 0 0-1.179 1.178l3.83 3.829-3.83 3.829a.833.833 0 0 0 .59 1.421Z", fill: "#475066" }))))), this.showIndicators && this.totalPages > 1 && (h("ul", { class: "dropi-carousel-indicators" }, Array.from({ length: this.totalPages }).map((_, i) => (h("li", { class: { active: i === this.internalPage }, onClick: () => this.onDotClick(i) }, h("button", { type: "button", "aria-label": `Página ${i + 1}` }))))))));
69
134
  }
70
135
  static get watchers() { return {
71
- "images": [{
72
- "imagesChanged": 0
136
+ "value": [{
137
+ "handleValue": 0
73
138
  }],
74
- "activeIndex": [{
75
- "activeIndexChanged": 0
139
+ "page": [{
140
+ "handlePage": 0
76
141
  }]
77
142
  }; }
78
143
  };