@dropi/ui 0.1.37 → 0.1.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (426) hide show
  1. package/assets/icons/symbol/svg/sprite.css.svg +1 -1
  2. package/dist/cjs/dropi-accordion-item.cjs.entry.js +1 -1
  3. package/dist/cjs/dropi-alert.cjs.entry.js +1 -1
  4. package/dist/cjs/dropi-banner-external.cjs.entry.js +1 -1
  5. package/dist/cjs/dropi-breadcrumb.cjs.entry.js +2 -2
  6. package/dist/cjs/dropi-button.cjs.entry.js +1 -1
  7. package/dist/cjs/dropi-card-product.cjs.entry.js +2 -2
  8. package/dist/cjs/dropi-card-section.cjs.entry.js +1 -1
  9. package/dist/cjs/dropi-checkbox-selection-list.cjs.entry.js +2 -2
  10. package/dist/cjs/dropi-chips.cjs.entry.js +1 -1
  11. package/dist/cjs/dropi-city-selector.cjs.entry.js +2 -2
  12. package/dist/cjs/dropi-country-selector.cjs.entry.js +1 -1
  13. package/dist/cjs/dropi-date-picker.cjs.entry.js +3 -3
  14. package/dist/cjs/dropi-drawer.cjs.entry.js +1 -1
  15. package/dist/cjs/dropi-favorite-button.cjs.entry.js +1 -1
  16. package/dist/cjs/dropi-file-upload-progress-bar.cjs.entry.js +1 -1
  17. package/dist/cjs/dropi-file-upload.cjs.entry.js +2 -2
  18. package/dist/cjs/dropi-icon.cjs.entry.js +18 -20
  19. package/dist/cjs/dropi-ilustration-icon.cjs.entry.js +1 -1
  20. package/dist/cjs/dropi-image-miniature.cjs.entry.js +1 -1
  21. package/dist/cjs/dropi-image-overlay.cjs.entry.js +1 -1
  22. package/dist/cjs/dropi-input_3.cjs.entry.js +11 -9
  23. package/dist/cjs/dropi-languages-selector.cjs.entry.js +1 -1
  24. package/dist/cjs/dropi-media-player.cjs.entry.js +2 -2
  25. package/dist/cjs/dropi-modal.cjs.entry.js +2 -2
  26. package/dist/cjs/dropi-navbar.cjs.entry.js +2 -2
  27. package/dist/cjs/dropi-otp-send-code.cjs.entry.js +14 -6
  28. package/dist/cjs/dropi-phone-input.cjs.entry.js +1 -1
  29. package/dist/cjs/dropi-radio-selection-list.cjs.entry.js +2 -2
  30. package/dist/cjs/dropi-search.cjs.entry.js +2 -2
  31. package/dist/cjs/dropi-select.cjs.entry.js +7 -7
  32. package/dist/cjs/dropi-sidebar.cjs.entry.js +2 -2
  33. package/dist/cjs/dropi-steps.cjs.entry.js +1 -1
  34. package/dist/cjs/dropi-table.cjs.entry.js +5 -5
  35. package/dist/cjs/dropi-tabs.cjs.entry.js +1 -1
  36. package/dist/cjs/dropi-text-area.cjs.entry.js +1 -1
  37. package/dist/cjs/dropi-time-line.cjs.entry.js +1 -1
  38. package/dist/cjs/dropi-toast.cjs.entry.js +1 -1
  39. package/dist/cjs/dropi-tooltip-v2.cjs.entry.js +2 -2
  40. package/dist/cjs/dropi-ui.cjs.js +1 -1
  41. package/dist/cjs/dropi-vertical-steps.cjs.entry.js +1 -1
  42. package/dist/cjs/dropi-youtube-lazy-video.cjs.entry.js +1 -1
  43. package/dist/cjs/loader.cjs.js +1 -1
  44. package/dist/collection/assets/icons/symbol/svg/sprite.css.svg +1 -1
  45. package/dist/collection/components/dropi-accordion/dropi-accordion-item.js +1 -1
  46. package/dist/collection/components/dropi-alert/dropi-alert.js +1 -1
  47. package/dist/collection/components/dropi-banner-external/dropi-banner-external.js +1 -1
  48. package/dist/collection/components/dropi-breadcrumb/dropi-breadcrumb.js +2 -2
  49. package/dist/collection/components/dropi-button/dropi-button.js +1 -1
  50. package/dist/collection/components/dropi-card-product/dropi-card-product.js +2 -2
  51. package/dist/collection/components/dropi-card-section/dropi-card-section.js +1 -1
  52. package/dist/collection/components/dropi-checkbox-selection-list/dropi-checkbox-selection-list.js +2 -2
  53. package/dist/collection/components/dropi-chips/dropi-chips.js +1 -1
  54. package/dist/collection/components/dropi-city-selector/dropi-city-selector.js +2 -2
  55. package/dist/collection/components/dropi-country-selector/dropi-country-selector.js +1 -1
  56. package/dist/collection/components/dropi-date-picker/dropi-date-picker.js +3 -3
  57. package/dist/collection/components/dropi-drawer/dropi-drawer.js +1 -1
  58. package/dist/collection/components/dropi-favorite-button/dropi-favorite-button.js +1 -1
  59. package/dist/collection/components/dropi-file-upload/dropi-file-upload.js +2 -2
  60. package/dist/collection/components/dropi-file-upload-progress-bar/dropi-file-upload-progress-bar.js +1 -1
  61. package/dist/collection/components/dropi-icon/dropi-icon.css +0 -2
  62. package/dist/collection/components/dropi-icon/dropi-icon.js +25 -27
  63. package/dist/collection/components/dropi-ilustration-icon/dropi-ilustration-icon.js +1 -1
  64. package/dist/collection/components/dropi-image-miniature/dropi-image-miniature.js +1 -1
  65. package/dist/collection/components/dropi-image-overlay/dropi-image-overlay.js +1 -1
  66. package/dist/collection/components/dropi-input/dropi-input.css +13 -5
  67. package/dist/collection/components/dropi-input/dropi-input.js +9 -7
  68. package/dist/collection/components/dropi-languages-selector/dropi-languages-selector.js +1 -1
  69. package/dist/collection/components/dropi-media-player/dropi-media-player.js +2 -2
  70. package/dist/collection/components/dropi-modal/dropi-modal.js +4 -4
  71. package/dist/collection/components/dropi-navbar/dropi-navbar.js +2 -2
  72. package/dist/collection/components/dropi-otp-send-code/dropi-otp-send-code.js +29 -7
  73. package/dist/collection/components/dropi-paginator/dropi-paginator.js +2 -2
  74. package/dist/collection/components/dropi-phone-input/dropi-phone-input.js +1 -1
  75. package/dist/collection/components/dropi-radio-selection-list/dropi-radio-selection-list.js +2 -2
  76. package/dist/collection/components/dropi-search/dropi-search.js +2 -2
  77. package/dist/collection/components/dropi-select/dropi-select.js +7 -7
  78. package/dist/collection/components/dropi-sidebar/dropi-sidebar.js +2 -2
  79. package/dist/collection/components/dropi-steps/dropi-steps.js +1 -1
  80. package/dist/collection/components/dropi-table/dropi-table.js +7 -7
  81. package/dist/collection/components/dropi-tabs/dropi-tabs.js +1 -1
  82. package/dist/collection/components/dropi-tag/dropi-tag.js +1 -1
  83. package/dist/collection/components/dropi-text-area/dropi-text-area.js +1 -1
  84. package/dist/collection/components/dropi-time-line/dropi-time-line.js +1 -1
  85. package/dist/collection/components/dropi-toast/dropi-toast.js +1 -1
  86. package/dist/collection/components/dropi-tooltip-v2/dropi-tooltip.js +2 -2
  87. package/dist/collection/components/dropi-vertical-steps/dropi-vertical-steps.js +1 -1
  88. package/dist/collection/components/dropi-youtube-lazy-video/dropi-youtube-lazy-video.js +1 -1
  89. package/dist/components/dropi-accordion-item.js +1 -1
  90. package/dist/components/dropi-alert-modal.js +1 -1
  91. package/dist/components/dropi-alert.js +1 -1
  92. package/dist/components/dropi-banner-external.js +1 -1
  93. package/dist/components/dropi-breadcrumb.js +1 -1
  94. package/dist/components/dropi-button.js +1 -1
  95. package/dist/components/dropi-card-product.js +1 -1
  96. package/dist/components/dropi-card-section.js +1 -1
  97. package/dist/components/dropi-checkbox-selection-list.js +1 -1
  98. package/dist/components/dropi-chips.js +1 -1
  99. package/dist/components/dropi-city-selector.js +1 -1
  100. package/dist/components/dropi-country-selector.js +1 -1
  101. package/dist/components/dropi-date-picker.js +1 -1
  102. package/dist/components/dropi-drawer.js +1 -1
  103. package/dist/components/dropi-empty-state.js +1 -1
  104. package/dist/components/dropi-favorite-button.js +1 -1
  105. package/dist/components/dropi-file-upload-progress-bar.js +1 -1
  106. package/dist/components/dropi-file-upload.js +1 -1
  107. package/dist/components/dropi-icon.js +1 -1
  108. package/dist/components/dropi-ilustration-icon.js +1 -1
  109. package/dist/components/dropi-image-miniature.js +1 -1
  110. package/dist/components/dropi-image-overlay.js +1 -1
  111. package/dist/components/dropi-input.js +1 -1
  112. package/dist/components/dropi-languages-selector.js +1 -1
  113. package/dist/components/dropi-media-player.js +1 -1
  114. package/dist/components/dropi-modal.js +1 -1
  115. package/dist/components/dropi-navbar.js +1 -1
  116. package/dist/components/dropi-otp-send-code.js +1 -1
  117. package/dist/components/dropi-paginator.js +1 -1
  118. package/dist/components/dropi-phone-input.js +1 -1
  119. package/dist/components/dropi-radio-selection-list.js +1 -1
  120. package/dist/components/dropi-search.js +1 -1
  121. package/dist/components/dropi-select.js +1 -1
  122. package/dist/components/dropi-sidebar.js +1 -1
  123. package/dist/components/dropi-steps.js +1 -1
  124. package/dist/components/dropi-table.js +1 -1
  125. package/dist/components/dropi-tabs.js +1 -1
  126. package/dist/components/dropi-tag.js +1 -1
  127. package/dist/components/dropi-text-area.js +1 -1
  128. package/dist/components/dropi-time-line.js +1 -1
  129. package/dist/components/dropi-toast.js +1 -1
  130. package/dist/components/dropi-tooltip-v2.js +1 -1
  131. package/dist/components/dropi-vertical-steps.js +1 -1
  132. package/dist/components/dropi-youtube-lazy-video.js +1 -1
  133. package/dist/components/p-2YgFOle2.js +1 -0
  134. package/dist/components/p-BDYn1JDe.js +1 -0
  135. package/dist/components/p-BKTMBQVw.js +1 -0
  136. package/dist/components/p-Btsw7sPN.js +1 -0
  137. package/dist/components/p-CgRY3n1J.js +1 -0
  138. package/dist/components/p-Cjq4FTif.js +1 -0
  139. package/dist/components/p-DfdhNT9F.js +1 -0
  140. package/dist/components/p-DvLWbKsf.js +1 -0
  141. package/dist/components/p-Dz9uN5Nw.js +1 -0
  142. package/dist/components/p-FAhcOdS-.js +1 -0
  143. package/dist/dropi-ui/dropi-accordion-item.entry.js +58 -0
  144. package/dist/dropi-ui/dropi-accordion-item.entry.js.map +1 -0
  145. package/dist/dropi-ui/dropi-accordion.entry.js +20 -0
  146. package/dist/dropi-ui/dropi-accordion.entry.js.map +1 -0
  147. package/dist/dropi-ui/dropi-alert-legacy.entry.js +40 -0
  148. package/dist/dropi-ui/dropi-alert-legacy.entry.js.map +1 -0
  149. package/dist/dropi-ui/dropi-alert-modal.entry.js +129 -0
  150. package/dist/dropi-ui/dropi-alert-modal.entry.js.map +1 -0
  151. package/dist/dropi-ui/dropi-alert.entry.js +65 -0
  152. package/dist/dropi-ui/dropi-alert.entry.js.map +1 -0
  153. package/dist/dropi-ui/dropi-avatars.entry.js +32 -0
  154. package/dist/dropi-ui/dropi-avatars.entry.js.map +1 -0
  155. package/dist/dropi-ui/dropi-badge-legacy.entry.js +31 -0
  156. package/dist/dropi-ui/dropi-badge-legacy.entry.js.map +1 -0
  157. package/dist/dropi-ui/dropi-badge.entry.js +38 -0
  158. package/dist/dropi-ui/dropi-badge.entry.js.map +1 -0
  159. package/dist/dropi-ui/dropi-banner-external.entry.js +64 -0
  160. package/dist/dropi-ui/dropi-banner-external.entry.js.map +1 -0
  161. package/dist/dropi-ui/dropi-breadcrumb.entry.js +49 -0
  162. package/dist/dropi-ui/dropi-breadcrumb.entry.js.map +1 -0
  163. package/dist/dropi-ui/dropi-button.entry.js +88 -0
  164. package/dist/dropi-ui/dropi-button.entry.js.map +1 -0
  165. package/dist/dropi-ui/dropi-card-checkbox.entry.js +49 -0
  166. package/dist/dropi-ui/dropi-card-checkbox.entry.js.map +1 -0
  167. package/dist/dropi-ui/dropi-card-product.entry.js +79 -0
  168. package/dist/dropi-ui/dropi-card-product.entry.js.map +1 -0
  169. package/dist/dropi-ui/dropi-card-section.entry.js +39 -0
  170. package/dist/dropi-ui/dropi-card-section.entry.js.map +1 -0
  171. package/dist/dropi-ui/dropi-carousel.entry.js +154 -0
  172. package/dist/dropi-ui/dropi-carousel.entry.js.map +1 -0
  173. package/dist/dropi-ui/dropi-checkbox-selection-list.entry.js +74 -0
  174. package/dist/dropi-ui/dropi-checkbox-selection-list.entry.js.map +1 -0
  175. package/dist/dropi-ui/dropi-checkbox.entry.js +37 -0
  176. package/dist/dropi-ui/dropi-checkbox.entry.js.map +1 -0
  177. package/dist/dropi-ui/dropi-chips.entry.js +31 -0
  178. package/dist/dropi-ui/dropi-chips.entry.js.map +1 -0
  179. package/dist/dropi-ui/dropi-city-selector.entry.js +105 -0
  180. package/dist/dropi-ui/dropi-city-selector.entry.js.map +1 -0
  181. package/dist/dropi-ui/dropi-color-picker.entry.js +320 -0
  182. package/dist/dropi-ui/dropi-color-picker.entry.js.map +1 -0
  183. package/dist/dropi-ui/dropi-country-flags.entry.js +38 -0
  184. package/dist/dropi-ui/dropi-country-flags.entry.js.map +1 -0
  185. package/dist/dropi-ui/dropi-country-selector.entry.js +198 -0
  186. package/dist/dropi-ui/dropi-country-selector.entry.js.map +1 -0
  187. package/dist/dropi-ui/dropi-date-picker-range.entry.js +116 -0
  188. package/dist/dropi-ui/dropi-date-picker-range.entry.js.map +1 -0
  189. package/dist/dropi-ui/dropi-date-picker.entry.js +224 -0
  190. package/dist/dropi-ui/dropi-date-picker.entry.js.map +1 -0
  191. package/dist/dropi-ui/dropi-drawer.entry.js +80 -0
  192. package/dist/dropi-ui/dropi-drawer.entry.js.map +1 -0
  193. package/dist/dropi-ui/dropi-dropdown.entry.js +66 -0
  194. package/dist/dropi-ui/dropi-dropdown.entry.js.map +1 -0
  195. package/dist/dropi-ui/dropi-empty-state.entry.js +37 -0
  196. package/dist/dropi-ui/dropi-empty-state.entry.js.map +1 -0
  197. package/dist/dropi-ui/dropi-favorite-button.entry.js +28 -0
  198. package/dist/dropi-ui/dropi-favorite-button.entry.js.map +1 -0
  199. package/dist/dropi-ui/dropi-file-upload-progress-bar.entry.js +78 -0
  200. package/dist/dropi-ui/dropi-file-upload-progress-bar.entry.js.map +1 -0
  201. package/dist/dropi-ui/dropi-file-upload.entry.js +238 -0
  202. package/dist/dropi-ui/dropi-file-upload.entry.js.map +1 -0
  203. package/dist/dropi-ui/dropi-icon.entry.js +66 -0
  204. package/dist/dropi-ui/dropi-icon.entry.js.map +1 -0
  205. package/dist/dropi-ui/dropi-ilustration-icon.entry.js +40 -0
  206. package/dist/dropi-ui/dropi-ilustration-icon.entry.js.map +1 -0
  207. package/dist/dropi-ui/dropi-image-miniature.entry.js +45 -0
  208. package/dist/dropi-ui/dropi-image-miniature.entry.js.map +1 -0
  209. package/dist/dropi-ui/dropi-image-overlay.entry.js +64 -0
  210. package/dist/dropi-ui/dropi-image-overlay.entry.js.map +1 -0
  211. package/dist/dropi-ui/dropi-input.entry.js +266 -0
  212. package/dist/dropi-ui/dropi-input.entry.js.map +1 -0
  213. package/dist/dropi-ui/dropi-languages-selector.entry.js +62 -0
  214. package/dist/dropi-ui/dropi-languages-selector.entry.js.map +1 -0
  215. package/dist/dropi-ui/dropi-logo.entry.js +38 -0
  216. package/dist/dropi-ui/dropi-logo.entry.js.map +1 -0
  217. package/dist/dropi-ui/dropi-lottie-loader.entry.js +28 -0
  218. package/dist/dropi-ui/dropi-lottie-loader.entry.js.map +1 -0
  219. package/dist/dropi-ui/dropi-media-player.entry.js +193 -0
  220. package/dist/dropi-ui/dropi-media-player.entry.js.map +1 -0
  221. package/dist/dropi-ui/dropi-modal.entry.js +143 -0
  222. package/dist/dropi-ui/dropi-modal.entry.js.map +1 -0
  223. package/dist/dropi-ui/dropi-navbar.entry.js +55 -0
  224. package/dist/dropi-ui/dropi-navbar.entry.js.map +1 -0
  225. package/dist/dropi-ui/dropi-otp-send-code.entry.js +101 -0
  226. package/dist/dropi-ui/dropi-otp-send-code.entry.js.map +1 -0
  227. package/dist/dropi-ui/dropi-paginator.entry.js +70 -0
  228. package/dist/dropi-ui/dropi-paginator.entry.js.map +1 -0
  229. package/dist/dropi-ui/dropi-phone-input.entry.js +198 -0
  230. package/dist/dropi-ui/dropi-phone-input.entry.js.map +1 -0
  231. package/dist/dropi-ui/dropi-radio-button.entry.js +48 -0
  232. package/dist/dropi-ui/dropi-radio-button.entry.js.map +1 -0
  233. package/dist/dropi-ui/dropi-radio-selection-list.entry.js +61 -0
  234. package/dist/dropi-ui/dropi-radio-selection-list.entry.js.map +1 -0
  235. package/dist/dropi-ui/dropi-read-more.entry.js +41 -0
  236. package/dist/dropi-ui/dropi-read-more.entry.js.map +1 -0
  237. package/dist/dropi-ui/dropi-search.entry.js +125 -0
  238. package/dist/dropi-ui/dropi-search.entry.js.map +1 -0
  239. package/dist/dropi-ui/dropi-select.entry.js +383 -0
  240. package/dist/dropi-ui/dropi-select.entry.js.map +1 -0
  241. package/dist/dropi-ui/dropi-sidebar.entry.js +79 -0
  242. package/dist/dropi-ui/dropi-sidebar.entry.js.map +1 -0
  243. package/dist/dropi-ui/dropi-simple-stepper.entry.js +54 -0
  244. package/dist/dropi-ui/dropi-simple-stepper.entry.js.map +1 -0
  245. package/dist/dropi-ui/dropi-skeleton.entry.js +58 -0
  246. package/dist/dropi-ui/dropi-skeleton.entry.js.map +1 -0
  247. package/dist/dropi-ui/dropi-steps.entry.js +53 -0
  248. package/dist/dropi-ui/dropi-steps.entry.js.map +1 -0
  249. package/dist/dropi-ui/dropi-switch.entry.js +31 -0
  250. package/dist/dropi-ui/dropi-switch.entry.js.map +1 -0
  251. package/dist/dropi-ui/dropi-table.entry.js +300 -0
  252. package/dist/dropi-ui/dropi-table.entry.js.map +1 -0
  253. package/dist/dropi-ui/dropi-tabs.entry.js +52 -0
  254. package/dist/dropi-ui/dropi-tabs.entry.js.map +1 -0
  255. package/dist/dropi-ui/dropi-tag-type-product.entry.js +20 -0
  256. package/dist/dropi-ui/dropi-tag-type-product.entry.js.map +1 -0
  257. package/dist/dropi-ui/dropi-tag.entry.js +69 -0
  258. package/dist/dropi-ui/dropi-tag.entry.js.map +1 -0
  259. package/dist/dropi-ui/dropi-text-area.entry.js +135 -0
  260. package/dist/dropi-ui/dropi-text-area.entry.js.map +1 -0
  261. package/dist/dropi-ui/dropi-time-line.entry.js +35 -0
  262. package/dist/dropi-ui/dropi-time-line.entry.js.map +1 -0
  263. package/dist/dropi-ui/dropi-toast.entry.js +57 -0
  264. package/dist/dropi-ui/dropi-toast.entry.js.map +1 -0
  265. package/dist/dropi-ui/dropi-tooltip-v2.entry.js +132 -0
  266. package/dist/dropi-ui/dropi-tooltip-v2.entry.js.map +1 -0
  267. package/dist/dropi-ui/dropi-tooltip.entry.js +22 -0
  268. package/dist/dropi-ui/dropi-tooltip.entry.js.map +1 -0
  269. package/dist/dropi-ui/dropi-ui.css +311 -1
  270. package/dist/dropi-ui/dropi-ui.esm.js +50 -1
  271. package/dist/dropi-ui/dropi-ui.esm.js.map +1 -0
  272. package/dist/dropi-ui/dropi-vertical-steps.entry.js +56 -0
  273. package/dist/dropi-ui/dropi-vertical-steps.entry.js.map +1 -0
  274. package/dist/dropi-ui/dropi-youtube-lazy-video.entry.js +34 -0
  275. package/dist/dropi-ui/dropi-youtube-lazy-video.entry.js.map +1 -0
  276. package/dist/dropi-ui/index-Cvp2LQOM.js +4585 -0
  277. package/dist/dropi-ui/index-Cvp2LQOM.js.map +1 -0
  278. package/dist/dropi-ui/index.esm.js +4 -0
  279. package/dist/dropi-ui/index.esm.js.map +1 -0
  280. package/dist/dropi-ui/{p-db38bf16.entry.js → p-01e4fe42.entry.js} +1 -1
  281. package/dist/dropi-ui/p-099f4475.entry.js +1 -0
  282. package/dist/dropi-ui/p-17b16a74.entry.js +1 -0
  283. package/dist/dropi-ui/p-1a07b3a6.entry.js +1 -0
  284. package/dist/dropi-ui/p-1cd4d630.entry.js +1 -0
  285. package/dist/dropi-ui/p-1d75dff6.entry.js +1 -0
  286. package/dist/dropi-ui/p-20a6a2aa.entry.js +1 -0
  287. package/dist/dropi-ui/p-256bf069.entry.js +1 -0
  288. package/dist/dropi-ui/p-25f0c2c9.entry.js +1 -0
  289. package/dist/dropi-ui/p-2d9978c1.entry.js +1 -0
  290. package/dist/dropi-ui/p-35b37d1a.entry.js +1 -0
  291. package/dist/dropi-ui/p-38ea66e4.entry.js +1 -0
  292. package/dist/dropi-ui/p-4e401fbc.entry.js +1 -0
  293. package/dist/dropi-ui/p-53d2905c.entry.js +1 -0
  294. package/dist/dropi-ui/p-54bfb072.entry.js +1 -0
  295. package/dist/dropi-ui/p-5915d227.entry.js +1 -0
  296. package/dist/dropi-ui/p-650a7679.entry.js +1 -0
  297. package/dist/dropi-ui/p-719a01cb.entry.js +1 -0
  298. package/dist/dropi-ui/p-7369b3b4.entry.js +1 -0
  299. package/dist/dropi-ui/{p-e3ad21f8.entry.js → p-77cd2fcb.entry.js} +1 -1
  300. package/dist/dropi-ui/p-7a18b7a0.entry.js +1 -0
  301. package/dist/dropi-ui/p-83887880.entry.js +1 -0
  302. package/dist/dropi-ui/p-83dbc407.entry.js +1 -0
  303. package/dist/dropi-ui/p-85c637bd.entry.js +1 -0
  304. package/dist/dropi-ui/{p-e6e766ed.entry.js → p-87cc4dcd.entry.js} +1 -1
  305. package/dist/dropi-ui/p-899089f0.entry.js +1 -0
  306. package/dist/dropi-ui/p-8c107dbe.entry.js +1 -0
  307. package/dist/dropi-ui/p-929bc2b6.entry.js +1 -0
  308. package/dist/dropi-ui/p-9ac8caea.entry.js +1 -0
  309. package/dist/dropi-ui/p-9b24e8fd.entry.js +1 -0
  310. package/dist/dropi-ui/p-9c73b4ce.entry.js +1 -0
  311. package/dist/dropi-ui/p-a580e8c8.entry.js +1 -0
  312. package/dist/dropi-ui/p-a9f93e82.entry.js +1 -0
  313. package/dist/dropi-ui/p-aa0f5964.entry.js +1 -0
  314. package/dist/dropi-ui/p-aadd5863.entry.js +1 -0
  315. package/dist/dropi-ui/p-b25faf92.entry.js +1 -0
  316. package/dist/dropi-ui/p-b605d3d9.entry.js +1 -0
  317. package/dist/dropi-ui/p-bbb5e0ae.entry.js +1 -0
  318. package/dist/dropi-ui/p-c4d2881d.entry.js +1 -0
  319. package/dist/dropi-ui/p-d1aeb373.entry.js +1 -0
  320. package/dist/dropi-ui/p-d724ced4.entry.js +1 -0
  321. package/dist/dropi-ui/p-dc53a798.entry.js +1 -0
  322. package/dist/dropi-ui/p-e1b3c9a3.entry.js +1 -0
  323. package/dist/dropi-ui/p-e3c120ba.entry.js +1 -0
  324. package/dist/dropi-ui/p-edf796ee.entry.js +1 -0
  325. package/dist/dropi-ui/p-f2527a45.entry.js +1 -0
  326. package/dist/dropi-ui/p-f6c9057d.entry.js +1 -0
  327. package/dist/dropi-ui/p-f7fd7832.entry.js +1 -0
  328. package/dist/dropi-ui/p-f9888cea.entry.js +1 -0
  329. package/dist/dropi-ui/p-ffd415a2.entry.js +1 -0
  330. package/dist/esm/dropi-accordion-item.entry.js +1 -1
  331. package/dist/esm/dropi-alert.entry.js +1 -1
  332. package/dist/esm/dropi-banner-external.entry.js +1 -1
  333. package/dist/esm/dropi-breadcrumb.entry.js +2 -2
  334. package/dist/esm/dropi-button.entry.js +1 -1
  335. package/dist/esm/dropi-card-product.entry.js +2 -2
  336. package/dist/esm/dropi-card-section.entry.js +1 -1
  337. package/dist/esm/dropi-checkbox-selection-list.entry.js +2 -2
  338. package/dist/esm/dropi-chips.entry.js +1 -1
  339. package/dist/esm/dropi-city-selector.entry.js +2 -2
  340. package/dist/esm/dropi-country-selector.entry.js +1 -1
  341. package/dist/esm/dropi-date-picker.entry.js +3 -3
  342. package/dist/esm/dropi-drawer.entry.js +1 -1
  343. package/dist/esm/dropi-favorite-button.entry.js +1 -1
  344. package/dist/esm/dropi-file-upload-progress-bar.entry.js +1 -1
  345. package/dist/esm/dropi-file-upload.entry.js +2 -2
  346. package/dist/esm/dropi-icon.entry.js +18 -20
  347. package/dist/esm/dropi-ilustration-icon.entry.js +1 -1
  348. package/dist/esm/dropi-image-miniature.entry.js +1 -1
  349. package/dist/esm/dropi-image-overlay.entry.js +1 -1
  350. package/dist/esm/dropi-input_3.entry.js +11 -9
  351. package/dist/esm/dropi-languages-selector.entry.js +1 -1
  352. package/dist/esm/dropi-media-player.entry.js +2 -2
  353. package/dist/esm/dropi-modal.entry.js +2 -2
  354. package/dist/esm/dropi-navbar.entry.js +2 -2
  355. package/dist/esm/dropi-otp-send-code.entry.js +14 -6
  356. package/dist/esm/dropi-phone-input.entry.js +1 -1
  357. package/dist/esm/dropi-radio-selection-list.entry.js +2 -2
  358. package/dist/esm/dropi-search.entry.js +2 -2
  359. package/dist/esm/dropi-select.entry.js +7 -7
  360. package/dist/esm/dropi-sidebar.entry.js +2 -2
  361. package/dist/esm/dropi-steps.entry.js +1 -1
  362. package/dist/esm/dropi-table.entry.js +5 -5
  363. package/dist/esm/dropi-tabs.entry.js +1 -1
  364. package/dist/esm/dropi-text-area.entry.js +1 -1
  365. package/dist/esm/dropi-time-line.entry.js +1 -1
  366. package/dist/esm/dropi-toast.entry.js +1 -1
  367. package/dist/esm/dropi-tooltip-v2.entry.js +2 -2
  368. package/dist/esm/dropi-ui.js +1 -1
  369. package/dist/esm/dropi-vertical-steps.entry.js +1 -1
  370. package/dist/esm/dropi-youtube-lazy-video.entry.js +1 -1
  371. package/dist/esm/loader.js +1 -1
  372. package/dist/types/components/dropi-icon/dropi-icon.d.ts +4 -9
  373. package/dist/types/components/dropi-input/dropi-input.d.ts +1 -1
  374. package/dist/types/components/dropi-modal/dropi-modal.d.ts +1 -1
  375. package/dist/types/components/dropi-otp-send-code/dropi-otp-send-code.d.ts +3 -1
  376. package/dist/types/components/dropi-table/dropi-table.d.ts +1 -1
  377. package/dist/types/components.d.ts +39 -38
  378. package/hydrate/index.js +109 -101
  379. package/hydrate/index.mjs +109 -101
  380. package/package.json +1 -1
  381. package/scripts/setup.js +25 -4
  382. package/dist/components/p-B_Ace02i.js +0 -1
  383. package/dist/components/p-BrjO_JXp.js +0 -1
  384. package/dist/components/p-BwhxWL4p.js +0 -1
  385. package/dist/components/p-Bz2jXX3R.js +0 -1
  386. package/dist/components/p-D-vQQQNz.js +0 -1
  387. package/dist/components/p-D13d88W3.js +0 -1
  388. package/dist/components/p-I3w7xF7Q.js +0 -1
  389. package/dist/components/p-o5gyrbbD.js +0 -1
  390. package/dist/dropi-ui/p-00e5a2de.entry.js +0 -1
  391. package/dist/dropi-ui/p-0188e07a.entry.js +0 -1
  392. package/dist/dropi-ui/p-02710049.entry.js +0 -1
  393. package/dist/dropi-ui/p-18adf694.entry.js +0 -1
  394. package/dist/dropi-ui/p-1a3619c3.entry.js +0 -1
  395. package/dist/dropi-ui/p-25640777.entry.js +0 -1
  396. package/dist/dropi-ui/p-2674d901.entry.js +0 -1
  397. package/dist/dropi-ui/p-2af538b9.entry.js +0 -1
  398. package/dist/dropi-ui/p-3013f3b8.entry.js +0 -1
  399. package/dist/dropi-ui/p-3321ca70.entry.js +0 -1
  400. package/dist/dropi-ui/p-33d242ec.entry.js +0 -1
  401. package/dist/dropi-ui/p-39af6478.entry.js +0 -1
  402. package/dist/dropi-ui/p-446a481d.entry.js +0 -1
  403. package/dist/dropi-ui/p-50e0d44f.entry.js +0 -1
  404. package/dist/dropi-ui/p-5c0bd7c2.entry.js +0 -1
  405. package/dist/dropi-ui/p-5ddf6e93.entry.js +0 -1
  406. package/dist/dropi-ui/p-5fb33ae4.entry.js +0 -1
  407. package/dist/dropi-ui/p-665ef7ba.entry.js +0 -1
  408. package/dist/dropi-ui/p-66b80371.entry.js +0 -1
  409. package/dist/dropi-ui/p-7bfc1c27.entry.js +0 -1
  410. package/dist/dropi-ui/p-7c0d2edf.entry.js +0 -1
  411. package/dist/dropi-ui/p-7eb27836.entry.js +0 -1
  412. package/dist/dropi-ui/p-8bf5d8ee.entry.js +0 -1
  413. package/dist/dropi-ui/p-9212f544.entry.js +0 -1
  414. package/dist/dropi-ui/p-955e52f8.entry.js +0 -1
  415. package/dist/dropi-ui/p-976a15e3.entry.js +0 -1
  416. package/dist/dropi-ui/p-a1c93e55.entry.js +0 -1
  417. package/dist/dropi-ui/p-a232c6a7.entry.js +0 -1
  418. package/dist/dropi-ui/p-a822a23e.entry.js +0 -1
  419. package/dist/dropi-ui/p-af8e2157.entry.js +0 -1
  420. package/dist/dropi-ui/p-c3614c4a.entry.js +0 -1
  421. package/dist/dropi-ui/p-cc527d91.entry.js +0 -1
  422. package/dist/dropi-ui/p-cdde481b.entry.js +0 -1
  423. package/dist/dropi-ui/p-dd5d8b1b.entry.js +0 -1
  424. package/dist/dropi-ui/p-efc2fc35.entry.js +0 -1
  425. package/dist/dropi-ui/p-f41cd9b5.entry.js +0 -1
  426. package/dist/dropi-ui/p-fa3d0267.entry.js +0 -1
@@ -0,0 +1 @@
1
+ {"file":"dropi-sidebar.entry.js","mappings":";;AAAA,MAAM,eAAe,GAAG,MAAM,CAAC,8xCAA8xC,CAAC;;MC+BjzC,YAAY,GAAA,MAAA;;;;;AACvB;;;AAGG;IACsB,iBAAiB,GAAiC,EAAE;AAE7E;;AAEG;AACM,IAAA,cAAc;IAEd,gBAAgB,GAAwB,EAAE;AAGnD,IAAA,gBAAgB,CAAC,QAAsC,EAAA;QACrD,IAAI,CAAC,gBAAgB,GAAG,OAAO,QAAQ,KAAK,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,QAAQ,IAAI,EAAE,CAAC;;IAGhG,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,CAAC;;AAGvC,IAAA,oBAAoB,CAAC,EAAU,EAAA;AACrC,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;AAChF,QAAA,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE;YACzB,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAC3C,QAAQ,CAAC,cAAc,CAAC,GAAG;gBACzB,GAAG,QAAQ,CAAC,cAAc,CAAC;AAC3B,gBAAA,YAAY,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;aACzC;AACD,YAAA,IAAI,CAAC,gBAAgB,GAAG,QAAQ;;;AAI5B,IAAA,WAAW,CAAC,WAA8B,EAAA;AAChD,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC;AAErC,QAAA,IAAI,WAAW,CAAC,QAAQ,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3D,YAAA,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,EAAE,CAAC;;;AAIrC,IAAA,cAAc,CAAC,WAA8B,EAAA;AACnD,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC;;IAGvC,MAAM,GAAA;QACJ,QACE,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,wBAAwB,EAAA,EAChC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,IAAG;YAChC,OAAO;;AAEL,gBAAA,CAAA,CAAA,KAAA,EAAA,EACE,KAAK,EAAE;AACL,wBAAA,gBAAgB,EAAE,IAAI;AACtB,wBAAA,uBAAuB,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM;AACtC,wBAAA,wBAAwB,EAAE,CAAC,IAAI,CAAC;AACjC,qBAAA,EACD,OAAO,EAAE,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAA,EAErC,CAAA,CAAA,YAAA,EAAA,EACE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,MAAM,EACzB,SAAS,EAAC,MAAM,EAChB,UAAU,EAAC,MAAM,EACjB,KAAK,EAAE,IAAI,CAAC,MAAM,GAAG,qBAAqB,GAAG,eAAe,EAAA,CAChD,EAEd,CAAA,CAAA,MAAA,EAAA,IAAA,EAAO,IAAI,CAAC,IAAI,CAAQ,EAEvB,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,KACxC,CAAA,CAAA,YAAA,EAAA,EACE,KAAK,EAAE;AACL,wBAAA,OAAO,EAAE,IAAI;AACb,wBAAA,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC;AAC1B,qBAAA,EACD,IAAI,EAAC,eAAe,EACpB,SAAS,EAAC,MAAM,EAChB,UAAU,EAAC,MAAM,EACjB,KAAK,EAAE,IAAI,CAAC,MAAM,GAAG,qBAAqB,GAAG,eAAe,EAAA,CAChD,CACf,CACG;;AAGN,gBAAA,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,KACvC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,KACzB,CAAA,CAAA,KAAA,EAAA,EACE,KAAK,EAAE;AACL,wBAAA,kBAAkB,EAAE,IAAI;AACxB,wBAAA,kBAAkB,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY;AACvC,wBAAA,0BAA0B,EAAE,CAAC,SAAS,CAAC,MAAM;AAC7C,wBAAA,yBAAyB,EAAE,CAAC,CAAC,SAAS,CAAC;AACxC,qBAAA,EACD,OAAO,EAAE,CAAC,CAAC,KAAI,EAAG,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,EAAE,EAAA,EAEvE,SAAS,CAAC,IAAI,CACX,CACP,CAAC;aAEL;SACF,CAAC,CACE;;;;;;;;;;;;","names":[],"sources":["src/components/dropi-sidebar/dropi-sidebar.css?tag=dropi-sidebar&encapsulation=shadow","src/components/dropi-sidebar/dropi-sidebar.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.main-sidebar-container {\n margin-top: 20px;\n}\n\n.sidebar-option {\n height: 45px;\n display: flex;\n align-items: center;\n position: relative;\n font-weight: var(--font-weight-medium, 500);\n gap: var(--Size-3, 12px);\n padding: var(--Size-3, 12px);\n font-size: var(--font-size-s, 12px);\n border-radius: var(--Border-1, 4px);\n min-width: 147px;\n cursor: pointer;\n user-select: none;\n}\n\n.sidebar-option .arrow {\n position: absolute;\n right: 17px;\n transition: transform 0.3s ease;\n}\n\n.sidebar-option .arrow-expanded {\n transform: rotate(180deg);\n}\n\n.sidebar-default-option {\n color: var(--Gray-Gray-500, #68738f);\n}\n\n.sidebar-active-option {\n color: var(--Primary-Primary-500, #f49a3d);\n background-color: #fef8f1;\n}\n\n.sidebar-sub-item {\n overflow: hidden;\n max-height: 0;\n height: auto;\n font-weight: var(--font-weight-medium, 500);\n gap: var(--Size-3, 12px);\n font-size: var(--font-size-s, 12px);\n cursor: pointer;\n opacity: 0;\n padding: 0 var(--Size-3, 12px) 0 var(--Size-8, 32px);\n transition:\n max-height 0.3s ease-out,\n opacity 0.3s ease-out,\n padding 0.3s ease-out;\n user-select: none;\n}\n\n.sidebar-sub-item.sidebar-expanded {\n max-height: 200px;\n opacity: 1;\n padding: var(--Size-3, 12px) var(--Size-3, 12px) var(--Size-3, 12px) var(--Size-8, 32px);\n}\n\n.sidebar-sub-item-default {\n color: var(--Gray-Gray-500, #68738f);\n}\n\n.sidebar-sub-item-active {\n color: var(--Primary-Primary-500, #f49a3d);\n}\n\n.space-between {\n justify-content: space-between;\n}\n","import { Component, Prop, Event, EventEmitter, h, State, Watch } from '@stencil/core';\n\nexport interface SidebarItem {\n id: number;\n icon: string;\n text: string;\n route: string;\n expandedMenu?: boolean;\n active?: boolean;\n}\n\nexport interface SidebarProperties {\n id: number;\n icon: string;\n text: string;\n route: string;\n expandedMenu?: boolean;\n active?: boolean;\n subItems?: SidebarItem[];\n}\n\n/**\n * @component dropi-sidebar\n * Sidebar list container (Strictly ported from Angular core). \n * This component handles rendering the sidebar items array natively.\n */\n@Component({\n tag: 'dropi-sidebar',\n styleUrl: 'dropi-sidebar.css',\n shadow: true,\n})\nexport class DropiSidebar {\n /**\n * Define las propiedades y la cantidad de elementos a renderizar.\n * Pasarlo como JSON string o directamente como array de SidebarProperties.\n */\n @Prop({ mutable: true }) sideBarProperties: SidebarProperties[] | string = [];\n \n /**\n * Evento emitido cuando se selecciona una opción en el menú o un sub-hijo.\n */\n @Event() onIndexChanged: EventEmitter<SidebarProperties>;\n\n @State() parsedProperties: SidebarProperties[] = [];\n\n @Watch('sideBarProperties')\n watchPropHandler(newValue: SidebarProperties[] | string) {\n this.parsedProperties = typeof newValue === 'string' ? JSON.parse(newValue) : (newValue || []);\n }\n\n componentWillLoad() {\n this.watchPropHandler(this.sideBarProperties);\n }\n\n private setExpandedPropertie(id: number) {\n const propertieIndex = this.parsedProperties.findIndex((item) => item.id === id);\n if (propertieIndex !== -1) {\n const newProps = [...this.parsedProperties];\n newProps[propertieIndex] = {\n ...newProps[propertieIndex],\n expandedMenu: !newProps[propertieIndex].expandedMenu\n };\n this.parsedProperties = newProps;\n }\n }\n\n private onItemClick(itemClicked: SidebarProperties) {\n this.onIndexChanged.emit(itemClicked);\n \n if (itemClicked.subItems && itemClicked.subItems.length > 0) {\n this.setExpandedPropertie(itemClicked.id);\n }\n }\n\n private onSubItemClick(itemClicked: SidebarProperties) {\n this.onIndexChanged.emit(itemClicked);\n }\n\n render() {\n return (\n <div class=\"main-sidebar-container\">\n {this.parsedProperties.map(item => {\n return [\n /* Item Principal */\n <div\n class={{\n 'sidebar-option': true,\n 'sidebar-active-option': !!item.active,\n 'sidebar-default-option': !item.active\n }}\n onClick={() => this.onItemClick(item)}\n >\n <dropi-icon\n name={item.icon || 'Cube'}\n iconWidth=\"20px\"\n iconHeight=\"20px\"\n color={item.active ? 'Primary-Primary-500' : 'Gray-Gray-500'}\n ></dropi-icon>\n \n <span>{item.text}</span>\n \n {item.subItems && item.subItems.length > 0 && (\n <dropi-icon\n class={{\n 'arrow': true,\n 'arrow-expanded': !!item.expandedMenu\n }}\n name=\"Dropdown-down\"\n iconWidth=\"20px\"\n iconHeight=\"20px\"\n color={item.active ? 'Primary-Primary-500' : 'Gray-Gray-500'}\n ></dropi-icon>\n )}\n </div>,\n\n /* SubItems Renderizados al mismo nivel DOM que instruye Angular ng-container */\n item.subItems && item.subItems.length > 0 && (\n item.subItems.map(subOption => (\n <div\n class={{\n 'sidebar-sub-item': true,\n 'sidebar-expanded': !!item.expandedMenu,\n 'sidebar-sub-item-default': !subOption.active,\n 'sidebar-sub-item-active': !!subOption.active\n }}\n onClick={(e) => { e.stopPropagation(); this.onSubItemClick(subOption); }}\n >\n {subOption.text}\n </div>\n ))\n )\n ];\n })}\n </div>\n );\n }\n}\n"],"version":3}
@@ -0,0 +1,54 @@
1
+ import { r as registerInstance, h } from './index-Cvp2LQOM.js';
2
+
3
+ const dropiSimpleStepperCss = () => `:host{display:block;width:100%}*,*::before,*::after{box-sizing:border-box}.stepper{display:flex;align-items:flex-start;width:100%}.stepper__item{display:flex;flex-direction:column;align-items:center;flex:1}.stepper__circle-row{display:flex;align-items:center;width:100%}.stepper__circle{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background 0.2s, border-color 0.2s}.stepper__circle--pending{background:var(--Gray-Gray-100, #e6eaf2);border:2px solid var(--Gray-Gray-200, #c3c9d9)}.stepper__circle--active{background:var(--Primary-Primary-500, #f49a3d);border:2px solid var(--Primary-Primary-500, #f49a3d)}.stepper__circle--completed{background:var(--Primary-Primary-500, #f49a3d);border:2px solid var(--Primary-Primary-500, #f49a3d)}.stepper__dot{width:8px;height:8px;border-radius:50%;background:var(--Neutral-White, #ffffff);display:block}.stepper__circle--pending .stepper__dot{background:var(--Gray-Gray-400, #858ea6)}.stepper__number{font-size:var(--font-size-xs, 10px);font-weight:var(--font-weight-bold, 700);color:var(--Neutral-White, #ffffff)}.stepper__circle--pending .stepper__number{color:var(--Gray-Gray-500, #69738c)}.stepper__line{flex:1;height:2px;background:var(--Gray-Gray-200, #c3c9d9);transition:background 0.2s}.stepper__line--done{background:var(--Primary-Primary-500, #f49a3d)}.stepper__label{margin-top:6px;font-size:var(--font-size-xs, 10px);color:var(--Gray-Gray-600, #475066);text-align:center}`;
4
+
5
+ const DropiSimpleStepper = class {
6
+ constructor(hostRef) {
7
+ registerInstance(this, hostRef);
8
+ }
9
+ /** Total steps */
10
+ stepsCount = 3;
11
+ /** Circle content: 'point' (dot) | 'number' */
12
+ typeStep = 'point';
13
+ /** Current active step (1-based) */
14
+ currentStep = 0;
15
+ /** Labels shown below each step. Pass as JSON string or array */
16
+ labelStepper = [];
17
+ /** Flow mode (visual only) */
18
+ flowMode = 'Simultaneous';
19
+ /** White-label brand identifier (matches Angular `white_brand`) */
20
+ white_brand = 'dropi';
21
+ get parsedLabels() {
22
+ if (typeof this.labelStepper === 'string') {
23
+ try {
24
+ return JSON.parse(this.labelStepper);
25
+ }
26
+ catch {
27
+ return [];
28
+ }
29
+ }
30
+ return this.labelStepper || [];
31
+ }
32
+ render() {
33
+ const labels = this.parsedLabels;
34
+ const steps = Array.from({ length: this.stepsCount }, (_, i) => i + 1);
35
+ return (h("div", { key: 'f67f6e9404bf67700c46b987923836d5251ae1c4', class: "stepper" }, steps.map((step, i) => {
36
+ const isCompleted = step < this.currentStep;
37
+ const isActive = step === this.currentStep;
38
+ const isLast = i === steps.length - 1;
39
+ const label = labels[i];
40
+ return (h("div", { class: "stepper__item", key: step }, h("div", { class: "stepper__circle-row" }, h("div", { class: {
41
+ 'stepper__circle': true,
42
+ 'stepper__circle--active': isActive,
43
+ 'stepper__circle--completed': isCompleted,
44
+ 'stepper__circle--pending': !isActive && !isCompleted,
45
+ } }, this.typeStep === 'point' ? (h("span", { class: "stepper__dot" })) : (h("span", { class: "stepper__number" }, step))), !isLast && h("div", { class: { 'stepper__line': true, 'stepper__line--done': isCompleted } })), label && h("span", { class: "stepper__label" }, label)));
46
+ })));
47
+ }
48
+ };
49
+ DropiSimpleStepper.style = dropiSimpleStepperCss();
50
+
51
+ export { DropiSimpleStepper as dropi_simple_stepper };
52
+ //# sourceMappingURL=dropi-simple-stepper.entry.esm.js.map
53
+
54
+ //# sourceMappingURL=dropi-simple-stepper.entry.js.map
@@ -0,0 +1 @@
1
+ {"file":"dropi-simple-stepper.entry.js","mappings":";;AAAA,MAAM,qBAAqB,GAAG,MAAM,CAAC,09CAA09C,CAAC;;MCcn/C,kBAAkB,GAAA,MAAA;;;;;IAErB,UAAU,GAAW,CAAC;;IAEtB,QAAQ,GAAgB,OAAO;;IAE/B,WAAW,GAAW,CAAC;;IAEvB,YAAY,GAAsB,EAAE;;IAEpC,QAAQ,GAAa,cAAc;;IAEnC,WAAW,GAAW,OAAO;AAErC,IAAA,IAAY,YAAY,GAAA;AACtB,QAAA,IAAI,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ,EAAE;AACzC,YAAA,IAAI;gBAAE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;;AAAI,YAAA,MAAM;AAAE,gBAAA,OAAO,EAAE;;;AAEjE,QAAA,OAAO,IAAI,CAAC,YAAY,IAAI,EAAE;;IAGhC,MAAM,GAAA;AACJ,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY;QAChC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEtE,QACE,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,SAAS,EAAA,EACjB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAI;AACrB,YAAA,MAAM,WAAW,GAAG,IAAI,GAAG,IAAI,CAAC,WAAW;AAC3C,YAAA,MAAM,QAAQ,GAAG,IAAI,KAAK,IAAI,CAAC,WAAW;YAC1C,MAAM,MAAM,GAAG,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC;AACrC,YAAA,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC;AAEvB,YAAA,QACE,WAAK,KAAK,EAAC,eAAe,EAAC,GAAG,EAAE,IAAI,EAAA,EAClC,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,qBAAqB,EAAA,EAC9B,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE;AACV,oBAAA,iBAAiB,EAAE,IAAI;AACvB,oBAAA,yBAAyB,EAAE,QAAQ;AACnC,oBAAA,4BAA4B,EAAE,WAAW;AACzC,oBAAA,0BAA0B,EAAE,CAAC,QAAQ,IAAI,CAAC,WAAW;AACtD,iBAAA,EAAA,EACE,IAAI,CAAC,QAAQ,KAAK,OAAO,IACxB,CAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAC,cAAc,EAAA,CAAG,KAE7B,CAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAC,iBAAiB,EAAA,EAAE,IAAI,CAAQ,CAC5C,CACG,EACL,CAAC,MAAM,IAAI,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE,WAAW,EAAE,GAAI,CACrF,EACL,KAAK,IAAI,CAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAC,gBAAgB,IAAE,KAAK,CAAQ,CACjD;SAET,CAAC,CACE;;;;;;;","names":[],"sources":["src/components/dropi-simple-stepper/dropi-simple-stepper.css?tag=dropi-simple-stepper&encapsulation=shadow","src/components/dropi-simple-stepper/dropi-simple-stepper.tsx"],"sourcesContent":[":host {\n display: block;\n width: 100%;\n}\n\n*, *::before, *::after { box-sizing: border-box; }\n\n.stepper {\n display: flex;\n align-items: flex-start;\n width: 100%;\n}\n\n.stepper__item {\n display: flex;\n flex-direction: column;\n align-items: center;\n flex: 1;\n}\n\n.stepper__circle-row {\n display: flex;\n align-items: center;\n width: 100%;\n}\n\n/* ── Circle ─────────────────────────────────────────────── */\n.stepper__circle {\n width: 24px;\n height: 24px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n transition: background 0.2s, border-color 0.2s;\n}\n\n.stepper__circle--pending {\n background: var(--Gray-Gray-100, #e6eaf2);\n border: 2px solid var(--Gray-Gray-200, #c3c9d9);\n}\n\n.stepper__circle--active {\n background: var(--Primary-Primary-500, #f49a3d);\n border: 2px solid var(--Primary-Primary-500, #f49a3d);\n}\n\n.stepper__circle--completed {\n background: var(--Primary-Primary-500, #f49a3d);\n border: 2px solid var(--Primary-Primary-500, #f49a3d);\n}\n\n.stepper__dot {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background: var(--Neutral-White, #ffffff);\n display: block;\n}\n\n.stepper__circle--pending .stepper__dot {\n background: var(--Gray-Gray-400, #858ea6);\n}\n\n.stepper__number {\n font-size: var(--font-size-xs, 10px);\n font-weight: var(--font-weight-bold, 700);\n color: var(--Neutral-White, #ffffff);\n}\n\n.stepper__circle--pending .stepper__number {\n color: var(--Gray-Gray-500, #69738c);\n}\n\n/* ── Connecting line ────────────────────────────────────── */\n.stepper__line {\n flex: 1;\n height: 2px;\n background: var(--Gray-Gray-200, #c3c9d9);\n transition: background 0.2s;\n}\n\n.stepper__line--done {\n background: var(--Primary-Primary-500, #f49a3d);\n}\n\n/* ── Label ──────────────────────────────────────────────── */\n.stepper__label {\n margin-top: 6px;\n font-size: var(--font-size-xs, 10px);\n color: var(--Gray-Gray-600, #475066);\n text-align: center;\n}\n","import { Component, Prop, h } from '@stencil/core';\n\nexport type StepperType = 'point' | 'number';\nexport type FlowMode = 'Simultaneous' | 'Sequential';\n\n/**\n * @component dropi-simple-stepper\n * Compact horizontal stepper using dots or numbers.\n */\n@Component({\n tag: 'dropi-simple-stepper',\n styleUrl: 'dropi-simple-stepper.css',\n shadow: true,\n})\nexport class DropiSimpleStepper {\n /** Total steps */\n @Prop() stepsCount: number = 3;\n /** Circle content: 'point' (dot) | 'number' */\n @Prop() typeStep: StepperType = 'point';\n /** Current active step (1-based) */\n @Prop() currentStep: number = 0;\n /** Labels shown below each step. Pass as JSON string or array */\n @Prop() labelStepper: string[] | string = [];\n /** Flow mode (visual only) */\n @Prop() flowMode: FlowMode = 'Simultaneous';\n /** White-label brand identifier (matches Angular `white_brand`) */\n @Prop() white_brand: string = 'dropi';\n\n private get parsedLabels(): string[] {\n if (typeof this.labelStepper === 'string') {\n try { return JSON.parse(this.labelStepper); } catch { return []; }\n }\n return this.labelStepper || [];\n }\n\n render() {\n const labels = this.parsedLabels;\n const steps = Array.from({ length: this.stepsCount }, (_, i) => i + 1);\n\n return (\n <div class=\"stepper\">\n {steps.map((step, i) => {\n const isCompleted = step < this.currentStep;\n const isActive = step === this.currentStep;\n const isLast = i === steps.length - 1;\n const label = labels[i];\n\n return (\n <div class=\"stepper__item\" key={step}>\n <div class=\"stepper__circle-row\">\n <div class={{\n 'stepper__circle': true,\n 'stepper__circle--active': isActive,\n 'stepper__circle--completed': isCompleted,\n 'stepper__circle--pending': !isActive && !isCompleted,\n }}>\n {this.typeStep === 'point' ? (\n <span class=\"stepper__dot\" />\n ) : (\n <span class=\"stepper__number\">{step}</span>\n )}\n </div>\n {!isLast && <div class={{ 'stepper__line': true, 'stepper__line--done': isCompleted }} />}\n </div>\n {label && <span class=\"stepper__label\">{label}</span>}\n </div>\n );\n })}\n </div>\n );\n }\n}\n"],"version":3}
@@ -0,0 +1,58 @@
1
+ import { r as registerInstance, h } from './index-Cvp2LQOM.js';
2
+
3
+ const dropiSkeletonCss = () => `:host{display:block}*,*::before,*::after{box-sizing:border-box}.skeleton-lines{display:flex;flex-direction:column;gap:8px}.skeleton{background:linear-gradient( 90deg, var(--Gray-Gray-100, #e6eaf2) 25%, var(--Gray-Gray-50, #f7f8fa) 50%, var(--Gray-Gray-100, #e6eaf2) 75% );background-size:200% 100%;animation:shimmer 1.6s ease-in-out infinite}@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}`;
4
+
5
+ const DropiSkeleton = class {
6
+ constructor(hostRef) {
7
+ registerInstance(this, hostRef);
8
+ }
9
+ /** Shape variant: 'text' | 'circle' | 'rect' */
10
+ variant = 'text';
11
+ /** Width (CSS value, e.g. "100%", "200px") */
12
+ width = '';
13
+ /** Height (CSS value, e.g. "16px", "48px") */
14
+ height = '';
15
+ /** Border radius override */
16
+ radius = '8px';
17
+ /** Number of lines to repeat (text variant only) */
18
+ lines = 1;
19
+ /** Base color of the shimmer gradient. Accepts hex (#f6f7f8) or token name (Gray-Gray-100) */
20
+ baseColor = '#f6f7f8';
21
+ getBackground() {
22
+ const color = (this.baseColor ?? '#f6f7f8').startsWith('#') ? (this.baseColor ?? '#f6f7f8') : `var(--${this.baseColor})`;
23
+ return `linear-gradient(to right, ${color} 8%, #e3e7efe7 28%, ${color} 77%)`;
24
+ }
25
+ getRadius() {
26
+ if (this.radius)
27
+ return this.radius;
28
+ if (this.variant === 'circle')
29
+ return '50%';
30
+ if (this.variant === 'text')
31
+ return '4px';
32
+ return 'var(--Border-1, 4px)';
33
+ }
34
+ render() {
35
+ if (this.variant === 'text' && this.lines > 1) {
36
+ return (h("div", { class: "skeleton-lines" }, Array.from({ length: this.lines }).map((_, i) => (h("div", { class: "skeleton", style: {
37
+ width: i === this.lines - 1 ? '70%' : this.width,
38
+ height: this.height,
39
+ borderRadius: this.getRadius(),
40
+ background: this.getBackground(),
41
+ backgroundSize: '1000px 104px',
42
+ } })))));
43
+ }
44
+ return (h("div", { class: "skeleton", style: {
45
+ width: this.width,
46
+ height: this.height,
47
+ borderRadius: this.getRadius(),
48
+ background: this.getBackground(),
49
+ backgroundSize: '1000px 104px',
50
+ } }));
51
+ }
52
+ };
53
+ DropiSkeleton.style = dropiSkeletonCss();
54
+
55
+ export { DropiSkeleton as dropi_skeleton };
56
+ //# sourceMappingURL=dropi-skeleton.entry.esm.js.map
57
+
58
+ //# sourceMappingURL=dropi-skeleton.entry.js.map
@@ -0,0 +1 @@
1
+ {"file":"dropi-skeleton.entry.js","mappings":";;AAAA,MAAM,gBAAgB,GAAG,MAAM,CAAC,2bAA2b,CAAC;;MCa/c,aAAa,GAAA,MAAA;;;;;IAEhB,OAAO,GAAoB,MAAM;;IAEjC,KAAK,GAAW,EAAE;;IAElB,MAAM,GAAW,EAAE;;IAEnB,MAAM,GAAW,KAAK;;IAEtB,KAAK,GAAW,CAAC;;IAEjB,SAAS,GAAW,SAAS;IAE7B,aAAa,GAAA;AACnB,QAAA,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,SAAS,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,IAAI,SAAS,IAAI,CAAA,MAAA,EAAS,IAAI,CAAC,SAAS,GAAG;AACxH,QAAA,OAAO,CAAA,0BAAA,EAA6B,KAAK,CAAA,oBAAA,EAAuB,KAAK,OAAO;;IAGtE,SAAS,GAAA;QACf,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC,MAAM;AACnC,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,QAAQ;AAAE,YAAA,OAAO,KAAK;AAC3C,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM;AAAE,YAAA,OAAO,KAAK;AACzC,QAAA,OAAO,sBAAsB;;IAG/B,MAAM,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;YAC7C,QACE,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,gBAAgB,EAAA,EACxB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAC3C,WACE,KAAK,EAAC,UAAU,EAChB,KAAK,EAAE;AACL,oBAAA,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,KAAK;oBAChD,MAAM,EAAE,IAAI,CAAC,MAAM;AACnB,oBAAA,YAAY,EAAE,IAAI,CAAC,SAAS,EAAE;AAC9B,oBAAA,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE;AAChC,oBAAA,cAAc,EAAE,cAAc;AAC/B,iBAAA,EAAA,CACD,CACH,CAAC,CACE;;QAIV,QACE,CAAA,CAAA,KAAA,EAAA,EACE,KAAK,EAAC,UAAU,EAChB,KAAK,EAAE;gBACL,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;AACnB,gBAAA,YAAY,EAAE,IAAI,CAAC,SAAS,EAAE;AAC9B,gBAAA,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE;AAChC,gBAAA,cAAc,EAAE,cAAc;aAC/B,EAAA,CACD;;;;;;;","names":[],"sources":["src/components/dropi-skeleton/dropi-skeleton.css?tag=dropi-skeleton&encapsulation=shadow","src/components/dropi-skeleton/dropi-skeleton.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n*, *::before, *::after { box-sizing: border-box; }\n\n.skeleton-lines {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.skeleton {\n background: linear-gradient(\n 90deg,\n var(--Gray-Gray-100, #e6eaf2) 25%,\n var(--Gray-Gray-50, #f7f8fa) 50%,\n var(--Gray-Gray-100, #e6eaf2) 75%\n );\n background-size: 200% 100%;\n animation: shimmer 1.6s ease-in-out infinite;\n}\n\n@keyframes shimmer {\n 0% { background-position: 200% 0; }\n 100% { background-position: -200% 0; }\n}\n","import { Component, Prop, h } from '@stencil/core';\n\nexport type SkeletonVariant = 'text' | 'circle' | 'rect';\n\n/**\n * @component dropi-skeleton\n * Loading placeholder with shimmer animation.\n */\n@Component({\n tag: 'dropi-skeleton',\n styleUrl: 'dropi-skeleton.css',\n shadow: true,\n})\nexport class DropiSkeleton {\n /** Shape variant: 'text' | 'circle' | 'rect' */\n @Prop() variant: SkeletonVariant = 'text';\n /** Width (CSS value, e.g. \"100%\", \"200px\") */\n @Prop() width: string = '';\n /** Height (CSS value, e.g. \"16px\", \"48px\") */\n @Prop() height: string = '';\n /** Border radius override */\n @Prop() radius: string = '8px';\n /** Number of lines to repeat (text variant only) */\n @Prop() lines: number = 1;\n /** Base color of the shimmer gradient. Accepts hex (#f6f7f8) or token name (Gray-Gray-100) */\n @Prop() baseColor: string = '#f6f7f8';\n\n private getBackground(): string {\n const color = (this.baseColor ?? '#f6f7f8').startsWith('#') ? (this.baseColor ?? '#f6f7f8') : `var(--${this.baseColor})`;\n return `linear-gradient(to right, ${color} 8%, #e3e7efe7 28%, ${color} 77%)`;\n }\n\n private getRadius(): string {\n if (this.radius) return this.radius;\n if (this.variant === 'circle') return '50%';\n if (this.variant === 'text') return '4px';\n return 'var(--Border-1, 4px)';\n }\n\n render() {\n if (this.variant === 'text' && this.lines > 1) {\n return (\n <div class=\"skeleton-lines\">\n {Array.from({ length: this.lines }).map((_, i) => (\n <div\n class=\"skeleton\"\n style={{\n width: i === this.lines - 1 ? '70%' : this.width,\n height: this.height,\n borderRadius: this.getRadius(),\n background: this.getBackground(),\n backgroundSize: '1000px 104px',\n }}\n />\n ))}\n </div>\n );\n }\n\n return (\n <div\n class=\"skeleton\"\n style={{\n width: this.width,\n height: this.height,\n borderRadius: this.getRadius(),\n background: this.getBackground(),\n backgroundSize: '1000px 104px',\n }}\n />\n );\n }\n}\n"],"version":3}
@@ -0,0 +1,53 @@
1
+ import { r as registerInstance, h } from './index-Cvp2LQOM.js';
2
+
3
+ const dropiStepsCss = () => `:host{display:block;width:100%}*,*::before,*::after{box-sizing:border-box}.stepper{display:flex;align-items:flex-start;width:100%}.stepper__step{display:flex;flex-direction:column;align-items:center;flex:1;position:relative}.stepper__circle-wrap{display:flex;align-items:center;width:100%;position:relative}.stepper__circle{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xs, 10px);font-weight:var(--font-weight-bold, 700);flex-shrink:0;z-index:1;transition:background 0.2s, border-color 0.2s}.stepper__circle--pending{background:var(--Neutral-White, #ffffff);border:2px solid var(--Gray-Gray-200, #c3c9d9);color:var(--Gray-Gray-400, #858ea6)}.stepper__circle--focus{background:var(--Neutral-White, #ffffff);border:2px solid var(--Primary-Primary-500, #f49a3d);color:var(--Primary-Primary-500, #f49a3d)}.stepper__circle--completed{background:var(--Primary-Primary-500, #f49a3d);border:2px solid var(--Primary-Primary-500, #f49a3d);color:var(--Neutral-White, #ffffff)}.stepper__line{flex:1;height:2px;background:var(--Gray-Gray-200, #c3c9d9);transition:background 0.2s}.stepper__line--done{background:var(--Primary-Primary-500, #f49a3d)}.stepper__label{display:flex;flex-direction:column;align-items:center;gap:2px;margin-top:var(--Size-2, 8px);text-align:center;padding:0 4px}.stepper__title{font-size:var(--font-size-s, 12px);font-weight:var(--font-weight-bold, 700);color:var(--Gray-Gray-700, #32394d)}.stepper__desc{font-size:var(--font-size-xs, 10px);color:var(--Gray-Gray-500, #69738c)}`;
4
+
5
+ const DropiSteps = class {
6
+ constructor(hostRef) {
7
+ registerInstance(this, hostRef);
8
+ }
9
+ /** Total number of steps */
10
+ stepsCount = 3;
11
+ /** Show step number inside the circle */
12
+ showNumberOfStep = true;
13
+ /** Active/current step index (1-based) */
14
+ currentStep = 0;
15
+ /** Labels for each step. Pass as JSON string or array */
16
+ stepLabels = [];
17
+ /** Visual state applied to the active step (matches Angular `state`) */
18
+ state = 'pending';
19
+ get parsedLabels() {
20
+ if (typeof this.stepLabels === 'string') {
21
+ try {
22
+ return JSON.parse(this.stepLabels);
23
+ }
24
+ catch {
25
+ return [];
26
+ }
27
+ }
28
+ return this.stepLabels || [];
29
+ }
30
+ stepState(index) {
31
+ if (index < this.currentStep)
32
+ return 'completed';
33
+ if (index === this.currentStep)
34
+ return 'focus';
35
+ return 'pending';
36
+ }
37
+ render() {
38
+ const labels = this.parsedLabels;
39
+ const steps = Array.from({ length: this.stepsCount }, (_, i) => i + 1);
40
+ return (h("div", { key: '35c28210675370e76f16e2525fdf785b6205ec78', class: "stepper" }, steps.map((step) => {
41
+ const state = this.stepState(step);
42
+ const label = labels[step - 1];
43
+ const isLast = step === this.stepsCount;
44
+ return (h("div", { class: "stepper__step", key: step }, h("div", { class: "stepper__circle-wrap" }, h("div", { class: { 'stepper__circle': true, [`stepper__circle--${state}`]: true } }, state === 'completed' ? (h("dropi-icon", { name: "Check", iconWidth: "12px", iconHeight: "12px", color: "Neutral-White" })) : (this.showNumberOfStep ? h("span", null, step) : null)), !isLast && h("div", { class: { 'stepper__line': true, 'stepper__line--done': state === 'completed' } })), label && (h("div", { class: "stepper__label" }, label.title && h("span", { class: "stepper__title" }, label.title), label.description && h("span", { class: "stepper__desc" }, label.description)))));
45
+ })));
46
+ }
47
+ };
48
+ DropiSteps.style = dropiStepsCss();
49
+
50
+ export { DropiSteps as dropi_steps };
51
+ //# sourceMappingURL=dropi-steps.entry.esm.js.map
52
+
53
+ //# sourceMappingURL=dropi-steps.entry.js.map
@@ -0,0 +1 @@
1
+ {"file":"dropi-steps.entry.js","mappings":";;AAAA,MAAM,aAAa,GAAG,MAAM,CAAC,6hDAA6hD,CAAC;;MCkB9iD,UAAU,GAAA,MAAA;;;;;IAEb,UAAU,GAAW,CAAC;;IAEtB,gBAAgB,GAAY,IAAI;;IAEhC,WAAW,GAAW,CAAC;;IAEvB,UAAU,GAAyB,EAAE;;IAErC,KAAK,GAAc,SAAS;AAEpC,IAAA,IAAY,YAAY,GAAA;AACtB,QAAA,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE;AACvC,YAAA,IAAI;gBAAE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;;AAAI,YAAA,MAAM;AAAE,gBAAA,OAAO,EAAE;;;AAE/D,QAAA,OAAO,IAAI,CAAC,UAAU,IAAI,EAAE;;AAGtB,IAAA,SAAS,CAAC,KAAa,EAAA;AAC7B,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW;AAAE,YAAA,OAAO,WAAW;AAChD,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,WAAW;AAAE,YAAA,OAAO,OAAO;AAC9C,QAAA,OAAO,SAAS;;IAGlB,MAAM,GAAA;AACJ,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY;QAChC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEtE,QACE,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,SAAS,EAAA,EACjB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;YAClB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAClC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;AAC9B,YAAA,MAAM,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC,UAAU;AAEvC,YAAA,QACE,WAAK,KAAK,EAAC,eAAe,EAAC,GAAG,EAAE,IAAI,EAAA,EAClC,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,sBAAsB,EAAA,EAC/B,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,oBAAoB,KAAK,CAAA,CAAE,GAAG,IAAI,EAAE,EAAA,EACzE,KAAK,KAAK,WAAW,IACpB,CAAA,CAAA,YAAA,EAAA,EAAY,IAAI,EAAC,OAAO,EAAC,SAAS,EAAC,MAAM,EAAC,UAAU,EAAC,MAAM,EAAC,KAAK,EAAC,eAAe,EAAA,CAAG,KAEpF,IAAI,CAAC,gBAAgB,GAAG,CAAA,CAAA,MAAA,EAAA,IAAA,EAAO,IAAI,CAAQ,GAAG,IAAI,CACnD,CACG,EACL,CAAC,MAAM,IAAI,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,KAAK,WAAW,EAAE,GAAI,CAC/F,EAEL,KAAK,KACJ,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,gBAAgB,EAAA,EACxB,KAAK,CAAC,KAAK,IAAI,CAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAC,gBAAgB,EAAA,EAAE,KAAK,CAAC,KAAK,CAAQ,EAChE,KAAK,CAAC,WAAW,IAAI,CAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAC,eAAe,EAAA,EAAE,KAAK,CAAC,WAAW,CAAQ,CACxE,CACP,CACG;SAET,CAAC,CACE;;;;;;;","names":[],"sources":["src/components/dropi-steps/dropi-steps.css?tag=dropi-steps&encapsulation=shadow","src/components/dropi-steps/dropi-steps.tsx"],"sourcesContent":[":host {\n display: block;\n width: 100%;\n}\n\n*, *::before, *::after { box-sizing: border-box; }\n\n.stepper {\n display: flex;\n align-items: flex-start;\n width: 100%;\n}\n\n/* ── Each step ──────────────────────────────────────────── */\n.stepper__step {\n display: flex;\n flex-direction: column;\n align-items: center;\n flex: 1;\n position: relative;\n}\n\n/* ── Circle row (circle + connecting line) ──────────────── */\n.stepper__circle-wrap {\n display: flex;\n align-items: center;\n width: 100%;\n position: relative;\n}\n\n.stepper__circle {\n width: 28px;\n height: 28px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: var(--font-size-xs, 10px);\n font-weight: var(--font-weight-bold, 700);\n flex-shrink: 0;\n z-index: 1;\n transition: background 0.2s, border-color 0.2s;\n}\n\n.stepper__circle--pending {\n background: var(--Neutral-White, #ffffff);\n border: 2px solid var(--Gray-Gray-200, #c3c9d9);\n color: var(--Gray-Gray-400, #858ea6);\n}\n\n.stepper__circle--focus {\n background: var(--Neutral-White, #ffffff);\n border: 2px solid var(--Primary-Primary-500, #f49a3d);\n color: var(--Primary-Primary-500, #f49a3d);\n}\n\n.stepper__circle--completed {\n background: var(--Primary-Primary-500, #f49a3d);\n border: 2px solid var(--Primary-Primary-500, #f49a3d);\n color: var(--Neutral-White, #ffffff);\n}\n\n/* ── Connecting line ────────────────────────────────────── */\n.stepper__line {\n flex: 1;\n height: 2px;\n background: var(--Gray-Gray-200, #c3c9d9);\n transition: background 0.2s;\n}\n\n.stepper__line--done {\n background: var(--Primary-Primary-500, #f49a3d);\n}\n\n/* ── Labels ─────────────────────────────────────────────── */\n.stepper__label {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 2px;\n margin-top: var(--Size-2, 8px);\n text-align: center;\n padding: 0 4px;\n}\n\n.stepper__title {\n font-size: var(--font-size-s, 12px);\n font-weight: var(--font-weight-bold, 700);\n color: var(--Gray-Gray-700, #32394d);\n}\n\n.stepper__desc {\n font-size: var(--font-size-xs, 10px);\n color: var(--Gray-Gray-500, #69738c);\n}\n","import { Component, Prop, h } from '@stencil/core';\n\nexport type StepState = 'pending' | 'focus' | 'completed';\n\nexport interface StepLabel {\n title?: string;\n description?: string;\n}\n\n/**\n * @component dropi-steps\n * Horizontal stepper showing step progress with number/title/description.\n */\n@Component({\n tag: 'dropi-steps',\n styleUrl: 'dropi-steps.css',\n shadow: true,\n})\nexport class DropiSteps {\n /** Total number of steps */\n @Prop() stepsCount: number = 3;\n /** Show step number inside the circle */\n @Prop() showNumberOfStep: boolean = true;\n /** Active/current step index (1-based) */\n @Prop() currentStep: number = 0;\n /** Labels for each step. Pass as JSON string or array */\n @Prop() stepLabels: StepLabel[] | string = [];\n /** Visual state applied to the active step (matches Angular `state`) */\n @Prop() state: StepState = 'pending';\n\n private get parsedLabels(): StepLabel[] {\n if (typeof this.stepLabels === 'string') {\n try { return JSON.parse(this.stepLabels); } catch { return []; }\n }\n return this.stepLabels || [];\n }\n\n private stepState(index: number): 'completed' | 'focus' | 'pending' {\n if (index < this.currentStep) return 'completed';\n if (index === this.currentStep) return 'focus';\n return 'pending';\n }\n\n render() {\n const labels = this.parsedLabels;\n const steps = Array.from({ length: this.stepsCount }, (_, i) => i + 1);\n\n return (\n <div class=\"stepper\">\n {steps.map((step) => {\n const state = this.stepState(step);\n const label = labels[step - 1];\n const isLast = step === this.stepsCount;\n\n return (\n <div class=\"stepper__step\" key={step}>\n <div class=\"stepper__circle-wrap\">\n <div class={{ 'stepper__circle': true, [`stepper__circle--${state}`]: true }}>\n {state === 'completed' ? (\n <dropi-icon name=\"Check\" iconWidth=\"12px\" iconHeight=\"12px\" color=\"Neutral-White\" />\n ) : (\n this.showNumberOfStep ? <span>{step}</span> : null\n )}\n </div>\n {!isLast && <div class={{ 'stepper__line': true, 'stepper__line--done': state === 'completed' }} />}\n </div>\n\n {label && (\n <div class=\"stepper__label\">\n {label.title && <span class=\"stepper__title\">{label.title}</span>}\n {label.description && <span class=\"stepper__desc\">{label.description}</span>}\n </div>\n )}\n </div>\n );\n })}\n </div>\n );\n }\n}\n"],"version":3}
@@ -0,0 +1,31 @@
1
+ import { r as registerInstance, d as createEvent, h } from './index-Cvp2LQOM.js';
2
+
3
+ const dropiSwitchCss = () => `:host{display:inline-block}*,*::before,*::after{box-sizing:border-box}.toggle-switch{position:relative;display:inline-block;width:40px;height:21px;margin-bottom:0;cursor:pointer}.toggle-switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--Gray-Gray-200, #c3c9d9);transition:0.4s;border-radius:34px}.slider::before{position:absolute;content:'';height:17px;width:17px;left:3px;bottom:2px;background-color:var(--Neutral-White, #ffffff);transition:0.4s;border-radius:50%}input:checked+.slider{background-color:var(--Primary-Primary-500, #f49a3d)}input:checked+.slider::before{transform:translateX(17px)}:host([disabled]) .toggle-switch{cursor:not-allowed;opacity:0.5}`;
4
+
5
+ const DropiSwitch = class {
6
+ constructor(hostRef) {
7
+ registerInstance(this, hostRef);
8
+ this.onChange = createEvent(this, "onChange", 7);
9
+ }
10
+ /** Whether the switch is on */
11
+ isChecked = false;
12
+ /** Whether the switch is disabled */
13
+ disabled = false;
14
+ /** Emitted when the toggle state changes */
15
+ onChange;
16
+ onToggleChange(event) {
17
+ const input = event.target;
18
+ this.isChecked = input.checked;
19
+ this.onChange.emit(this.isChecked);
20
+ }
21
+ render() {
22
+ return (h("label", { key: 'c12214e051cfd7ca50d0df9fb3374ee9f3b72c1a', class: "toggle-switch" }, h("input", { key: '2821a935d4614447900d35028261b5c6620c104f', type: "checkbox", checked: this.isChecked, disabled: this.disabled, onChange: (e) => this.onToggleChange(e) }), h("span", { key: '1370a1ea4b9bb48849f9d998eac3a36ac3fa75b6', class: "slider" })));
23
+ }
24
+ static get formAssociated() { return true; }
25
+ };
26
+ DropiSwitch.style = dropiSwitchCss();
27
+
28
+ export { DropiSwitch as dropi_switch };
29
+ //# sourceMappingURL=dropi-switch.entry.esm.js.map
30
+
31
+ //# sourceMappingURL=dropi-switch.entry.js.map
@@ -0,0 +1 @@
1
+ {"file":"dropi-switch.entry.js","mappings":";;AAAA,MAAM,cAAc,GAAG,MAAM,CAAC,wuBAAwuB,CAAC;;MCY1vB,WAAW,GAAA,MAAA;;;;;;IAEkB,SAAS,GAAY,KAAK;;IAEzC,QAAQ,GAAY,KAAK;;AAGzC,IAAA,QAAQ;AAET,IAAA,cAAc,CAAC,KAAY,EAAA;AACjC,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAA0B;AAC9C,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO;QAC9B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;;IAGpC,MAAM,GAAA;AACJ,QAAA,QACE,CAAA,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAO,KAAK,EAAC,eAAe,EAAA,EAC1B,CAAA,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,IAAI,CAAC,SAAS,EACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAA,CACvC,EACF,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAC,QAAQ,EAAA,CAAQ,CACtB;;;;;;;;","names":[],"sources":["src/components/dropi-switch/dropi-switch.css?tag=dropi-switch&encapsulation=shadow","src/components/dropi-switch/dropi-switch.tsx"],"sourcesContent":[":host {\n display: inline-block;\n}\n\n*, *::before, *::after { box-sizing: border-box; }\n\n.toggle-switch {\n position: relative;\n display: inline-block;\n width: 40px;\n height: 21px;\n margin-bottom: 0;\n cursor: pointer;\n}\n\n.toggle-switch input {\n opacity: 0;\n width: 0;\n height: 0;\n}\n\n.slider {\n position: absolute;\n cursor: pointer;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: var(--Gray-Gray-200, #c3c9d9);\n transition: 0.4s;\n border-radius: 34px;\n}\n\n.slider::before {\n position: absolute;\n content: '';\n height: 17px;\n width: 17px;\n left: 3px;\n bottom: 2px;\n background-color: var(--Neutral-White, #ffffff);\n transition: 0.4s;\n border-radius: 50%;\n}\n\ninput:checked + .slider {\n background-color: var(--Primary-Primary-500, #f49a3d);\n}\n\ninput:checked + .slider::before {\n transform: translateX(17px);\n}\n\n:host([disabled]) .toggle-switch {\n cursor: not-allowed;\n opacity: 0.5;\n}\n","import { Component, Prop, Event, EventEmitter, h } from '@stencil/core';\n\n/**\n * @component dropi-switch\n * Toggle switch component. Emits dropiChange on toggle.\n */\n@Component({\n tag: 'dropi-switch',\n styleUrl: 'dropi-switch.css',\n shadow: true,\n formAssociated: true,\n})\nexport class DropiSwitch {\n /** Whether the switch is on */\n @Prop({ mutable: true, reflect: true }) isChecked: boolean = false;\n /** Whether the switch is disabled */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /** Emitted when the toggle state changes */\n @Event() onChange: EventEmitter<boolean>;\n\n private onToggleChange(event: Event) {\n const input = event.target as HTMLInputElement;\n this.isChecked = input.checked;\n this.onChange.emit(this.isChecked);\n }\n\n render() {\n return (\n <label class=\"toggle-switch\">\n <input\n type=\"checkbox\"\n checked={this.isChecked}\n disabled={this.disabled}\n onChange={(e) => this.onToggleChange(e)}\n />\n <span class=\"slider\"></span>\n </label>\n );\n }\n}\n"],"version":3}
@@ -0,0 +1,300 @@
1
+ import { r as registerInstance, d as createEvent, h } from './index-Cvp2LQOM.js';
2
+
3
+ const dropiTableCss = () => `:host{display:block;width:100%;min-width:0}*,*::before,*::after{box-sizing:border-box}.table-container{width:100%;min-width:0;border-radius:var(--Border-3);padding:0 var(--Size-4) var(--Size-4) var(--Size-4);background-color:var(--Neutral-White)}.search-container{margin-block:var(--Size-5);display:flex;flex-direction:column;gap:var(--Size-4)}.table-title{padding-block:var(--Size-2);font-size:var(--font-size-m);font-weight:var(--font-weight-bold);color:var(--Gray-Gray-700);margin:0}.search-actions{display:flex;align-items:flex-end;gap:var(--Size-3);width:100%}.search-actions dropi-input{flex:1}.search-actions.only-filter{justify-content:flex-end}.table-tools{display:flex;justify-content:flex-end}.column-selector-container{position:relative}.column-selector-btn{min-width:40px;width:40px;height:40px;padding:0;border:1px solid var(--Gray-Gray-200);border-radius:var(--Border-2);background:var(--Neutral-White);cursor:pointer;display:flex;align-items:center;justify-content:center}.column-selector-btn:hover{background:var(--Gray-Gray-50)}.column-selector-menu{position:absolute;top:calc(100% + 8px);right:0;width:min(320px, 88vw);border:1px solid var(--Gray-Gray-200);border-radius:var(--Border-2);background:var(--Neutral-White);box-shadow:var(--Shadow-medium);z-index:20;padding:var(--Size-1)}.column-selector-footer{border-top:1px solid var(--Gray-Gray-100);margin-top:var(--Size-1);padding:var(--Size-2) var(--Size-4);display:flex;align-items:center}.column-selector-all{display:inline-flex;align-items:center;gap:var(--Size-2);color:var(--Gray-Gray-700);font-size:var(--font-size-s);cursor:pointer;user-select:none}.column-selector-option{display:flex;align-items:center;gap:var(--Size-2);padding:var(--Size-2) var(--Size-3);font-size:var(--font-size-s);color:var(--Gray-Gray-700);cursor:pointer;border-radius:var(--Border-1)}.column-selector-option:hover{background:var(--Gray-Gray-50)}.table-wrapper{overflow-x:auto;width:100%;position:relative}.table-wrapper.has-sticky-actions{width:100%}.table-wrapper::-webkit-scrollbar{height:6px}.table-wrapper::-webkit-scrollbar-track{background:transparent}.table-wrapper::-webkit-scrollbar-thumb{background:var(--Gray-Gray-200, #c3c9d9);border-radius:3px}.table-wrapper::-webkit-scrollbar-thumb:hover{background:var(--Gray-Gray-400, #858ea6)}.custom-table{width:100%;border-collapse:collapse}.custom-table th,.custom-table td{position:relative;padding:var(--Size-3);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--Gray-Gray-700)}.custom-table th::after,.custom-table td::after{content:'';position:absolute;bottom:0;left:0;width:100%;height:1px;background:var(--Gray-Gray-100)}.custom-table th{height:55px;user-select:none}.custom-table th.sortable{cursor:pointer}.custom-table td{height:80px;min-width:100px;font-weight:var(--font-weight-regular);font-size:var(--font-size-s)}.headers-container{display:flex;flex-direction:column;align-items:center;gap:var(--Size-1)}.headers-container.align-left{align-items:flex-start}.headers-container.align-right{align-items:flex-end}.headers{display:flex;flex-wrap:nowrap;justify-content:space-around;align-items:center;gap:4px}.headers span{font-weight:var(--font-weight-bold);color:var(--Gray-Gray-600);font-size:var(--font-size-xs);text-align:center}.headers.align-left span{text-align:left}.headers.align-right span{text-align:right}.order-icons{display:flex;flex-direction:column}.order-icons dropi-icon{height:6px;display:flex}.checkbox-header{width:fit-content;min-width:fit-content;max-width:fit-content;text-align:center;padding:var(--Size-3) !important}.custom-table.has-checkbox td:first-child{width:fit-content;min-width:fit-content;max-width:fit-content;text-align:center;padding:8px !important}.table-row:hover{background-color:var(--Gray-Gray-50);transition:background-color 0.3s ease}.table-row:hover td:last-child{background-color:var(--Gray-Gray-50);transition:background-color 0.3s ease}.table-row.sub-row td:first-child{padding-left:2rem !important}.cell-content{display:inline-block;width:100%;text-align:left}td.actions,th.actions{position:sticky;right:0;z-index:2;background-color:var(--Neutral-White);width:120px;min-width:120px;max-width:120px;text-align:center}td.actions{vertical-align:middle}td.actions>div{display:flex !important;justify-content:center !important;align-items:center !important;width:100%;height:100%}.table-row:hover td.actions{background-color:var(--Gray-Gray-50);transition:background-color 0.3s ease}.actions-header{width:100%;text-align:center;user-select:none}.short-actions{display:flex;gap:var(--Size-2);align-items:center;justify-content:center}.action-icon{cursor:pointer}.action-button{position:relative}.actions-menu{position:absolute;top:0;right:80px;padding:var(--Size-2);border-radius:var(--Border-2);background-color:var(--Neutral-White);box-shadow:var(--Shadow-medium);z-index:10;animation:fadeIn 0.3s ease-in-out forwards}.action-item{padding:var(--Size-2);font-size:var(--font-size-xs);color:var(--Gray-Gray-600);height:45px;width:190px;display:flex;gap:var(--Size-4);align-items:center;justify-content:left;cursor:pointer;border-radius:var(--Border-1)}.action-item:hover{background-color:var(--Gray-Gray-50)}.table-labels{color:var(--Gray-Gray-600);font-weight:var(--font-weight-regular);font-size:var(--font-size-s);white-space:nowrap}.table-labels.multiline{white-space:pre;line-height:1.6}.text-wrap-label{color:var(--Gray-Gray-600);font-weight:var(--font-weight-regular);font-size:var(--font-size-s);white-space:normal;word-break:break-word;overflow-wrap:break-word;line-height:1.5}.date-label{display:inline-flex;flex-direction:column}.date-label span{font-weight:var(--font-weight-regular);color:var(--Gray-Gray-600);white-space:nowrap;font-size:var(--font-size-s)}.flag-container{display:inline-flex;align-items:center;gap:var(--Size-3)}.flag-container span{color:var(--Gray-Gray-600);font-weight:var(--font-weight-regular);font-size:var(--font-size-s)}.text-icon-label{display:inline-flex;flex-wrap:nowrap;gap:var(--Size-2);align-items:center}.text-icon-label span{color:var(--Gray-Gray-600);font-weight:var(--font-weight-regular);font-size:var(--font-size-s)}.image-label{display:inline-flex;flex-direction:column;justify-content:center}.img-container{display:flex;width:24px;padding-bottom:var(--Size-1);align-items:center}.img-container img{border-radius:60px;height:24px;width:24px;object-fit:cover}.container-cell{display:inline-flex;flex-direction:column}.status-label{display:inline-flex;flex-direction:column;gap:var(--Size-1)}.status-dot{display:flex;gap:var(--Size-2);align-items:center}.status-text{font-weight:var(--font-weight-regular);font-size:var(--font-size-xs);color:var(--Gray-Gray-700)}.status-description{font-weight:var(--font-weight-regular);font-size:var(--font-size-s);color:var(--Gray-Gray-600)}.dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.dot-low{background-color:var(--Success-Success-500)}.dot-medium{background-color:var(--Warning-Warning-500)}.dot-high{background-color:var(--Error-Error-500)}.low-opacity{opacity:0.5}.highlight-column{background:var(--Primary-Primary-50)}.text-link-label{display:flex;flex-wrap:nowrap;white-space:nowrap;gap:var(--Size-1)}.text-link-label span{color:var(--Gray-Gray-600);font-weight:var(--font-weight-regular);font-size:var(--font-size-s)}.text-link-label a{color:var(--Info-Info-500);font-weight:var(--font-weight-regular);font-size:var(--font-size-s)}.empty-table{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:400px}.empty-message-container{display:flex;width:420px;padding:var(--Size-4);flex-direction:column;align-items:center;gap:var(--Size-4);text-align:center;color:var(--Gray-Gray-500);font-size:var(--font-size-s)}.pagination{margin-top:var(--Size-4);display:flex;justify-content:space-between;align-items:center}.page-size-selector{display:flex;gap:5px;align-items:baseline}.page-size-selector label{font-weight:var(--font-weight-regular);font-size:var(--font-size-xs);color:var(--Gray-Gray-700)}.page-size-selector select{width:fit-content;height:29px;border-radius:var(--Border-2);padding:var(--Size-1);border:1px solid var(--Gray-Gray-200);color:var(--Gray-Gray-500);background:var(--Neutral-White);font-size:var(--font-size-xs);cursor:pointer}.total-results{font-weight:var(--font-weight-regular);font-size:var(--font-size-xs);color:var(--Gray-Gray-600)}.skeleton{height:14px;background:linear-gradient(90deg, var(--Gray-Gray-100) 25%, var(--Gray-Gray-50) 50%, var(--Gray-Gray-100) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:var(--Border-1)}.skeleton--sm{width:20px}@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}@keyframes fadeIn{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.search-actions{flex-direction:column;align-items:stretch}.column-selector-menu{left:0;right:0;width:100%;max-height:45vh;overflow-y:auto}.pagination{flex-direction:column;align-items:center;gap:var(--Size-3)}td.actions,th.actions{width:60px;min-width:60px}.table-wrapper.has-sticky-actions{width:calc(100% - 60px)}}`;
4
+
5
+ const DropiTable = class {
6
+ constructor(hostRef) {
7
+ registerInstance(this, hostRef);
8
+ this.dropiSort = createEvent(this, "dropiSort", 7);
9
+ this.dropiSelection = createEvent(this, "dropiSelection", 7);
10
+ this.dropiRowClick = createEvent(this, "dropiRowClick", 7);
11
+ this.dropiSearch = createEvent(this, "dropiSearch", 7);
12
+ this.dropiPageChange = createEvent(this, "dropiPageChange", 7);
13
+ this.dropiPageSizeChange = createEvent(this, "dropiPageSizeChange", 7);
14
+ this.dropiAction = createEvent(this, "dropiAction", 7);
15
+ this.rowsSelected = createEvent(this, "rowsSelected", 7);
16
+ this.actionClicked = createEvent(this, "actionClicked", 7);
17
+ this.onPageChange = createEvent(this, "onPageChange", 7);
18
+ this.onSizeChange = createEvent(this, "onSizeChange", 7);
19
+ this.onSortChange = createEvent(this, "onSortChange", 7);
20
+ this.onSearchChange = createEvent(this, "onSearchChange", 7);
21
+ this.expandChildren = createEvent(this, "expandChildren", 7);
22
+ }
23
+ /** Column definitions */
24
+ columns = [];
25
+ /** Row data */
26
+ rows = [];
27
+ /** Show checkbox column */
28
+ showCheckbox = false;
29
+ /** Show loading skeleton */
30
+ loading = false;
31
+ /** Empty state message */
32
+ emptyMessage = 'No hay datos disponibles';
33
+ /** Table title */
34
+ tableTitle = '';
35
+ /** Show search input */
36
+ showSearch = false;
37
+ /** Show column selector button */
38
+ showColumnSelector = false;
39
+ /** Show paginator */
40
+ showPaginator = false;
41
+ /** Page sizes options */
42
+ pageSizes = [5, 10, 25, 50];
43
+ /** Current page (1-based) */
44
+ currentPage = 1;
45
+ /** Total pages */
46
+ totalPages = 1;
47
+ /** Show row actions (3-dot menu or inline icons) */
48
+ rowActions = [];
49
+ // ── Angular-parity props ─────────────────────────────────────
50
+ /**
51
+ * Column definitions — matches Angular `headers: DropiTableColumn[]`.
52
+ * Alias of `columns`; when provided, takes precedence.
53
+ */
54
+ headers = [];
55
+ /**
56
+ * Row data — matches Angular `data: DropiTableRow[]`.
57
+ * Alias of `rows`; when provided, takes precedence.
58
+ */
59
+ data = [];
60
+ /** Pre-selected row ids (matches Angular `selectedRowIds`) */
61
+ selectedRowIds = null;
62
+ /** Child / expanded rows data (matches Angular `childData`) */
63
+ childData = [];
64
+ /** Visible child rows (matches Angular `visibleRowsChildrens`) */
65
+ visibleRowsChildrens = [];
66
+ /** Table-level configuration object (matches Angular `dropiTableConfiguration`) */
67
+ dropiTableConfiguration = null;
68
+ /** Backend pagination / filter params (matches Angular `dropiTableBackendParams`) */
69
+ dropiTableBackendParams = null;
70
+ /** Use cursor-based pagination instead of offset (matches Angular `isCursorPagination`) */
71
+ isCursorPagination = false;
72
+ parsedColumns = [];
73
+ parsedRows = [];
74
+ parsedPageSizes = [5, 10, 25, 50];
75
+ parsedRowActions = [];
76
+ sortKey = '';
77
+ sortDir = null;
78
+ sortAsc = true;
79
+ selectedKeys = new Set();
80
+ searchTerm = '';
81
+ pageSize = 5;
82
+ showColumnMenu = false;
83
+ hiddenColumns = new Set();
84
+ openActionRow = -1;
85
+ dropiSort;
86
+ dropiSelection;
87
+ dropiRowClick;
88
+ dropiSearch;
89
+ dropiPageChange;
90
+ dropiPageSizeChange;
91
+ dropiAction;
92
+ // ── Angular-parity events ────────────────────────────────────
93
+ /** Matches Angular `rowsSelected` */
94
+ rowsSelected;
95
+ /** Matches Angular `actionClicked` */
96
+ actionClicked;
97
+ /** Matches Angular `onPageChange` */
98
+ onPageChange;
99
+ /** Matches Angular `onSizeChange` */
100
+ onSizeChange;
101
+ /** Matches Angular `onSortChange` */
102
+ onSortChange;
103
+ /** Matches Angular `onSearchChange` */
104
+ onSearchChange;
105
+ /** Matches Angular `expandChildren` */
106
+ expandChildren;
107
+ columnsChanged(val) {
108
+ this.parsedColumns = typeof val === 'string' ? JSON.parse(val) : (val || []);
109
+ }
110
+ rowsChanged(val) {
111
+ this.parsedRows = typeof val === 'string' ? JSON.parse(val) : (val || []);
112
+ this.selectedKeys = new Set();
113
+ }
114
+ pageSizesChanged(val) {
115
+ this.parsedPageSizes = typeof val === 'string' ? JSON.parse(val) : (val || [5, 10, 25, 50]);
116
+ this.pageSize = this.parsedPageSizes[0] ?? 5;
117
+ }
118
+ rowActionsChanged(val) {
119
+ this.parsedRowActions = typeof val === 'string' ? JSON.parse(val) : (val || []);
120
+ }
121
+ headersChanged(val) {
122
+ // `headers` is an alias for `columns`
123
+ const parsed = typeof val === 'string' ? JSON.parse(val) : (val || []);
124
+ if (parsed.length > 0)
125
+ this.parsedColumns = parsed;
126
+ }
127
+ dataChanged(val) {
128
+ // `data` is an alias for `rows`
129
+ const parsed = typeof val === 'string' ? JSON.parse(val) : (val || []);
130
+ if (parsed.length > 0) {
131
+ this.parsedRows = parsed;
132
+ this.selectedKeys = new Set();
133
+ }
134
+ }
135
+ componentWillLoad() {
136
+ // SSR hydration guard: if no data props provided, preserve server-rendered DOM
137
+ if (this.data == null && this.rows == null && this.headers == null && this.columns == null)
138
+ return;
139
+ // headers/data take precedence over columns/rows when provided
140
+ const headersSrc = (Array.isArray(this.headers) ? this.headers : []).length
141
+ ? this.headers : this.columns;
142
+ const dataSrc = (Array.isArray(this.data) ? this.data : []).length
143
+ ? this.data : this.rows;
144
+ this.columnsChanged(headersSrc);
145
+ this.rowsChanged(dataSrc);
146
+ this.pageSizesChanged(this.pageSizes);
147
+ this.rowActionsChanged(this.rowActions);
148
+ }
149
+ get visibleColumns() {
150
+ const hidden = this.hiddenColumns ?? new Set();
151
+ return (this.parsedColumns ?? []).filter(c => !hidden.has(c.key));
152
+ }
153
+ get filteredRows() {
154
+ if (!this.searchTerm)
155
+ return this.parsedRows;
156
+ const q = this.searchTerm.toLowerCase();
157
+ return this.parsedRows.filter(row => Object.values(row).some(v => String(v ?? '').toLowerCase().includes(q)));
158
+ }
159
+ get sortedRows() {
160
+ const rows = this.filteredRows;
161
+ if (!this.sortKey || !this.sortDir)
162
+ return rows;
163
+ const key = this.sortKey;
164
+ const dir = this.sortDir === 'asc' ? 1 : -1;
165
+ return [...rows].sort((a, b) => {
166
+ const av = a[key] ?? '';
167
+ const bv = b[key] ?? '';
168
+ if (av < bv)
169
+ return -dir;
170
+ if (av > bv)
171
+ return dir;
172
+ return 0;
173
+ });
174
+ }
175
+ get pagedRows() {
176
+ if (!this.showPaginator)
177
+ return this.sortedRows;
178
+ const start = (this.currentPage - 1) * this.pageSize;
179
+ return this.sortedRows.slice(start, start + this.pageSize);
180
+ }
181
+ handleSort(col) {
182
+ if (!col.sortable)
183
+ return;
184
+ if (this.sortKey === col.key) {
185
+ this.sortDir = this.sortDir === 'asc' ? 'desc' : this.sortDir === 'desc' ? null : 'asc';
186
+ this.sortAsc = this.sortDir !== 'desc';
187
+ if (this.sortDir === null)
188
+ this.sortKey = '';
189
+ }
190
+ else {
191
+ this.sortKey = col.key;
192
+ this.sortDir = 'asc';
193
+ this.sortAsc = true;
194
+ }
195
+ this.dropiSort.emit({ key: this.sortKey, dir: this.sortDir });
196
+ this.onSortChange.emit({ key: this.sortKey, dir: this.sortDir });
197
+ }
198
+ toggleRow(idx) {
199
+ const next = new Set(this.selectedKeys);
200
+ if (next.has(idx))
201
+ next.delete(idx);
202
+ else
203
+ next.add(idx);
204
+ this.selectedKeys = next;
205
+ const selected = Array.from(next);
206
+ this.dropiSelection.emit(selected);
207
+ this.rowsSelected.emit(selected.map(i => this.pagedRows[i]));
208
+ }
209
+ toggleAll(checked) {
210
+ this.selectedKeys = checked ? new Set(this.pagedRows.map((_, i) => i)) : new Set();
211
+ const selected = Array.from(this.selectedKeys);
212
+ this.dropiSelection.emit(selected);
213
+ this.rowsSelected.emit(selected.map(i => this.pagedRows[i]));
214
+ }
215
+ renderCellValue(value) {
216
+ if (value === null || value === undefined)
217
+ return '—';
218
+ if (typeof value === 'object' && value.type) {
219
+ switch (value.type) {
220
+ case 'tag':
221
+ return h("dropi-tag", { type: "secondary", state: value.typeTag, text: value.value });
222
+ case 'date':
223
+ return (h("div", { class: "date-label" }, h("span", null, new Date(value.value).toLocaleDateString('es-CO')), !value.hideTime && h("span", null, new Date(value.value).toLocaleTimeString('es-CO', { hour: '2-digit', minute: '2-digit' }))));
224
+ case 'country':
225
+ return (h("div", { class: "flag-container" }, value.flag && h("dropi-country-flags", { width: "24", height: "24", country: value.flag, style: { display: 'inline-flex' } }), h("span", null, value.value)));
226
+ case 'textIcon':
227
+ return (h("div", { class: "text-icon-label" }, h("dropi-icon", { name: value.icon, iconWidth: "24px", iconHeight: "24px", color: value.iconColor || 'Gray-Gray-500' }), value.value && h("span", null, value.value)));
228
+ case 'status':
229
+ return (h("div", { class: "status-label" }, h("div", { class: "status-dot" }, h("div", { class: `dot dot-${(value.status || '').toLowerCase()}` }), h("span", { class: "status-text" }, value.status)), value.value && h("span", { class: "status-description" }, value.value)));
230
+ case 'image':
231
+ return (h("div", { class: "image-label" }, h("div", { class: "img-container" }, h("img", { src: value.imageUrl, alt: value.value })), h("span", null, value.value)));
232
+ case 'textWrap':
233
+ return h("div", { class: "text-wrap-label", style: { maxWidth: value.maxWidth || '220px' } }, value.value);
234
+ default:
235
+ return h("span", { class: "table-labels" }, String(value.value ?? '—'));
236
+ }
237
+ }
238
+ return h("span", { class: "table-labels" }, String(value));
239
+ }
240
+ render() {
241
+ // SSR hydration: if parsedRows not yet initialized, preserve server-rendered shadow DOM
242
+ if (this.parsedRows === undefined)
243
+ return null;
244
+ const rows = this.pagedRows;
245
+ const allSelected = rows.length > 0 && this.selectedKeys.size === rows.length;
246
+ const hasActions = this.parsedRowActions.length > 0;
247
+ const cols = this.visibleColumns;
248
+ return (h("div", { class: "table-container" }, (this.showSearch || this.showColumnSelector || this.tableTitle) && (h("div", { class: "search-container" }, this.tableTitle && h("div", { class: "table-title Body-L-Bold" }, this.tableTitle), h("div", { class: `search-actions${this.showSearch ? '' : ' only-filter'}` }, this.showSearch && (h("dropi-input", { placeholder: "Buscar", value: this.searchTerm, onOnInput: (e) => {
249
+ this.searchTerm = e.detail;
250
+ this.dropiSearch.emit(e.detail);
251
+ this.onSearchChange.emit(e.detail);
252
+ } })), this.showColumnSelector && (h("div", { class: "table-tools" }, h("div", { class: "column-selector-container" }, h("button", { class: "column-selector-btn", onClick: () => this.showColumnMenu = !this.showColumnMenu }, h("dropi-icon", { name: "list-table", iconWidth: "20px", iconHeight: "20px", color: "Gray-Gray-500" })), this.showColumnMenu && (h("div", { class: "column-selector-menu" }, this.parsedColumns.map(col => (h("div", { class: "column-selector-option", onClick: () => {
253
+ const next = new Set(this.hiddenColumns);
254
+ if (next.has(col.key))
255
+ next.delete(col.key);
256
+ else
257
+ next.add(col.key);
258
+ this.hiddenColumns = next;
259
+ } }, h("dropi-checkbox", { checked: !this.hiddenColumns.has(col.key) }), h("span", null, col.label)))), h("div", { class: "column-selector-footer" }, h("div", { class: "column-selector-all", onClick: () => {
260
+ this.hiddenColumns = this.hiddenColumns.size === 0
261
+ ? new Set(this.parsedColumns.map(c => c.key))
262
+ : new Set();
263
+ } }, h("dropi-checkbox", { checked: this.hiddenColumns.size === 0 }), h("span", null, "Mostrar / Ocultar todo"))))))))))), h("div", { class: `table-wrapper${hasActions ? ' has-sticky-actions' : ''}` }, h("table", { class: `custom-table${this.showCheckbox ? ' has-checkbox' : ''}` }, h("thead", null, h("tr", null, this.showCheckbox && (h("th", { class: "checkbox-header" }, h("dropi-checkbox", { checked: allSelected, onOnChange: (e) => this.toggleAll(e.detail) }))), cols.map(col => (h("th", { class: { sortable: !!col.sortable, 'low-opacity': !!col.disabledColumn, 'highlight-column': !!col.highlightColumn }, style: { textAlign: col.align || 'center', minWidth: col.minWidth, maxWidth: col.maxWidth }, onClick: () => this.handleSort(col) }, h("div", { class: `headers-container${col.align === 'left' ? ' align-left' : col.align === 'right' ? ' align-right' : ''}` }, h("div", { class: `headers${col.align === 'left' ? ' align-left' : col.align === 'right' ? ' align-right' : ''}` }, h("span", null, col.label), col.sortable && (h("div", { class: "order-icons" }, h("dropi-icon", { name: "Caret-up", iconWidth: "12px", iconHeight: "12px", color: this.sortAsc ? 'Gray-Gray-500' : 'Gray-Gray-200' }), h("dropi-icon", { name: "Caret-down", iconWidth: "12px", iconHeight: "12px", color: !this.sortAsc ? 'Gray-Gray-500' : 'Gray-Gray-200' })))))))), hasActions && h("th", { class: "actions-header actions" }, "Acciones"))), h("tbody", null, this.loading ? (Array.from({ length: 5 }).map(() => (h("tr", { class: "table-row" }, this.showCheckbox && h("td", null, h("div", { class: "skeleton skeleton--sm" })), cols.map(() => h("td", null, h("div", { class: "skeleton" }))), hasActions && h("td", null))))) : rows.length === 0 ? (h("tr", null, h("td", { colSpan: cols.length + (this.showCheckbox ? 1 : 0) + (hasActions ? 1 : 0) }, h("div", { class: "empty-table" }, h("div", { class: "empty-message-container" }, this.emptyMessage))))) : (rows.map((row, i) => (h("tr", { class: "table-row", onClick: () => this.dropiRowClick.emit({ row, index: i }) }, this.showCheckbox && (h("td", { onClick: (e) => e.stopPropagation() }, h("dropi-checkbox", { checked: this.selectedKeys.has(i), onOnChange: () => this.toggleRow(i) }))), cols.map(col => (h("td", { class: { 'low-opacity': !!col.disabledColumn, 'highlight-column': !!col.highlightColumn }, style: { minWidth: col.minWidth, maxWidth: col.maxWidth, overflow: col.maxWidth ? 'hidden' : undefined } }, h("div", { class: "cell-content", style: { textAlign: col.align || 'center' } }, this.renderCellValue(row[col.key]))))), hasActions && (h("td", { class: "action-button actions", onClick: (e) => e.stopPropagation() }, this.parsedRowActions.length > 3 ? (h("div", { style: { display: "flex", justifyContent: "center", width: "100%" } }, h("dropi-icon", { class: "action-icon", name: "Menu-dots-vertical", iconWidth: "24px", iconHeight: "24px", color: "Gray-Gray-500", onClick: () => this.openActionRow = this.openActionRow === i ? -1 : i }), this.openActionRow === i && (h("div", { class: "actions-menu" }, this.parsedRowActions.map(action => (h("div", { class: "action-item", onClick: () => { this.openActionRow = -1; this.dropiAction.emit({ row, action }); this.actionClicked.emit({ row, action }); } }, h("dropi-icon", { name: action.icon, iconWidth: "20px", iconHeight: "20px", color: action.iconColor || 'Gray-Gray-500' }), action.label))))))) : (h("div", { class: "short-actions" }, this.parsedRowActions.map(action => (h("dropi-icon", { class: "action-icon", name: action.icon, iconWidth: "24px", iconHeight: "24px", color: action.iconColor || 'Gray-Gray-500', onClick: () => { this.dropiAction.emit({ row, action }); this.actionClicked.emit({ row, action }); } })))))))))))))), this.showPaginator && (h("div", { class: "pagination" }, h("div", { class: "page-size-selector" }, h("label", null, "Mostrar"), h("select", { onChange: (e) => {
264
+ this.pageSize = Number(e.target.value);
265
+ this.currentPage = 1;
266
+ this.dropiPageSizeChange.emit(this.pageSize);
267
+ this.onSizeChange.emit(this.pageSize);
268
+ } }, this.parsedPageSizes.map(s => (h("option", { value: s, selected: this.pageSize === s }, s))))), h("dropi-paginator", { totalPages: this.totalPages, currentPage: this.currentPage, onPageChange: (e) => {
269
+ this.currentPage = e.detail;
270
+ this.dropiPageChange.emit(e.detail);
271
+ this.onPageChange.emit(e.detail);
272
+ } })))));
273
+ }
274
+ static get watchers() { return {
275
+ "columns": [{
276
+ "columnsChanged": 0
277
+ }],
278
+ "rows": [{
279
+ "rowsChanged": 0
280
+ }],
281
+ "pageSizes": [{
282
+ "pageSizesChanged": 0
283
+ }],
284
+ "rowActions": [{
285
+ "rowActionsChanged": 0
286
+ }],
287
+ "headers": [{
288
+ "headersChanged": 0
289
+ }],
290
+ "data": [{
291
+ "dataChanged": 0
292
+ }]
293
+ }; }
294
+ };
295
+ DropiTable.style = dropiTableCss();
296
+
297
+ export { DropiTable as dropi_table };
298
+ //# sourceMappingURL=dropi-table.entry.esm.js.map
299
+
300
+ //# sourceMappingURL=dropi-table.entry.js.map