@prolibu-suite/cobalt-core 0.9.1 → 0.9.2

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 (352) hide show
  1. package/custom-elements.json +411 -18
  2. package/dist/cjs/co-avatar_2.cjs.entry.js +2 -2
  3. package/dist/cjs/co-bottom-sheet.cjs.entry.js +10 -11
  4. package/dist/cjs/co-calendar_3.cjs.entry.js +37 -2
  5. package/dist/cjs/co-chip_2.cjs.entry.js +2 -2
  6. package/dist/cjs/co-emoji-picker.cjs.entry.js +2808 -0
  7. package/dist/cjs/co-empty-state.cjs.entry.js +2 -2
  8. package/dist/cjs/co-event-calendar.cjs.entry.js +2 -2
  9. package/dist/cjs/co-event-popover.cjs.entry.js +1 -1
  10. package/dist/cjs/co-fab.cjs.entry.js +2 -2
  11. package/dist/cjs/co-file-field.cjs.entry.js +5 -5
  12. package/dist/cjs/co-file-type-tile.cjs.entry.js +2 -2
  13. package/dist/cjs/co-helper-text.cjs.entry.js +2 -2
  14. package/dist/cjs/co-icon-button.cjs.entry.js +2 -2
  15. package/dist/cjs/co-icon.cjs.entry.js +2 -2
  16. package/dist/cjs/co-json-field.cjs.entry.js +3 -3
  17. package/dist/cjs/co-lightbox.cjs.entry.js +4 -4
  18. package/dist/cjs/co-list-footer.cjs.entry.js +1 -1
  19. package/dist/cjs/co-list-item.cjs.entry.js +4 -4
  20. package/dist/cjs/co-media-thumb.cjs.entry.js +2 -2
  21. package/dist/cjs/co-menu-divider.cjs.entry.js +1 -1
  22. package/dist/cjs/co-menu.cjs.entry.js +1 -1
  23. package/dist/cjs/co-modal.cjs.entry.js +9 -3
  24. package/dist/cjs/co-navbar.cjs.entry.js +2 -2
  25. package/dist/cjs/co-number-field.cjs.entry.js +2 -2
  26. package/dist/cjs/co-overlay.cjs.entry.js +1 -1
  27. package/dist/cjs/co-page-header.cjs.entry.js +1 -1
  28. package/dist/cjs/co-phone-field.cjs.entry.js +1 -1
  29. package/dist/cjs/co-progress-bar.cjs.entry.js +2 -2
  30. package/dist/cjs/co-progress-circle.cjs.entry.js +2 -2
  31. package/dist/cjs/co-provider-logo_2.cjs.entry.js +1 -1
  32. package/dist/cjs/co-radio.cjs.entry.js +3 -3
  33. package/dist/cjs/co-rating.cjs.entry.js +3 -3
  34. package/dist/cjs/co-rich-text-editor.cjs.entry.js +3 -3
  35. package/dist/cjs/co-row.cjs.entry.js +2 -2
  36. package/dist/cjs/co-separator.cjs.entry.js +1 -1
  37. package/dist/cjs/co-sidebar.cjs.entry.js +2 -2
  38. package/dist/cjs/co-slider.cjs.entry.js +2 -2
  39. package/dist/cjs/co-switch.cjs.entry.js +3 -3
  40. package/dist/cjs/co-tab-group.cjs.entry.js +2 -2
  41. package/dist/cjs/co-tab.cjs.entry.js +2 -2
  42. package/dist/cjs/co-tags-field.cjs.entry.js +5 -5
  43. package/dist/cjs/co-textarea.cjs.entry.js +4 -4
  44. package/dist/cjs/co-toggle-button-group.cjs.entry.js +2 -2
  45. package/dist/cjs/co-toggle-button.cjs.entry.js +2 -2
  46. package/dist/cjs/co-video.cjs.entry.js +2 -2
  47. package/dist/cjs/cobalt.cjs.js +1 -1
  48. package/dist/cjs/emojiNames.es-BjpSEJ0c.js +1925 -0
  49. package/dist/cjs/emojiNames.pt-DWupaZMJ.js +1925 -0
  50. package/dist/cjs/index-DK-2Lzmf.js +4 -0
  51. package/dist/cjs/loader.cjs.js +1 -1
  52. package/dist/cjs/slotContent-Bm9RcM_Q.js +34 -0
  53. package/dist/cobalt/cobalt.esm.js +1 -1
  54. package/dist/cobalt/p-07904986.entry.js +1 -0
  55. package/dist/cobalt/p-09799193.entry.js +1 -0
  56. package/dist/cobalt/{p-a811464d.entry.js → p-0ccb672b.entry.js} +1 -1
  57. package/dist/cobalt/{p-4fe9a3ae.entry.js → p-0e91e5c4.entry.js} +1 -1
  58. package/dist/cobalt/{p-90e292de.entry.js → p-18af9e44.entry.js} +1 -1
  59. package/dist/cobalt/{p-136440fc.entry.js → p-18d34b01.entry.js} +1 -1
  60. package/dist/cobalt/{p-a0a6bfa3.entry.js → p-1c68bc41.entry.js} +1 -1
  61. package/dist/cobalt/{p-f945a1bd.entry.js → p-2114c036.entry.js} +1 -1
  62. package/dist/cobalt/{p-44fb4a3f.entry.js → p-23a103a0.entry.js} +1 -1
  63. package/dist/cobalt/{p-b892b312.entry.js → p-23b3ff3f.entry.js} +1 -1
  64. package/dist/cobalt/{p-b107063c.entry.js → p-33ea4a90.entry.js} +1 -1
  65. package/dist/cobalt/p-3495fda1.entry.js +1 -0
  66. package/dist/cobalt/{p-c3fd7b22.entry.js → p-36197363.entry.js} +1 -1
  67. package/dist/cobalt/p-3f0eed59.entry.js +1 -0
  68. package/dist/cobalt/{p-40ce8a3d.entry.js → p-4b083da4.entry.js} +1 -1
  69. package/dist/cobalt/p-4c7e3984.entry.js +1 -0
  70. package/dist/cobalt/p-4f754c9a.entry.js +1 -0
  71. package/dist/cobalt/p-54ae807d.entry.js +1 -0
  72. package/dist/cobalt/{p-3a229bba.entry.js → p-55566b37.entry.js} +1 -1
  73. package/dist/cobalt/{p-b5b97c9b.entry.js → p-77719335.entry.js} +1 -1
  74. package/dist/cobalt/{p-9c89cb01.entry.js → p-7c88163e.entry.js} +1 -1
  75. package/dist/cobalt/{p-e085b4ff.entry.js → p-7e53e9c8.entry.js} +1 -1
  76. package/dist/cobalt/{p-6c35b5cc.entry.js → p-8345b25f.entry.js} +1 -1
  77. package/dist/cobalt/{p-9c9f5b26.entry.js → p-89e38c5e.entry.js} +1 -1
  78. package/dist/cobalt/{p-4299cfa5.entry.js → p-8f38e24d.entry.js} +1 -1
  79. package/dist/cobalt/{p-905ba0dd.entry.js → p-95efe661.entry.js} +1 -1
  80. package/dist/cobalt/{p-909c0113.entry.js → p-983af614.entry.js} +1 -1
  81. package/dist/cobalt/p-B6oiFdUY.js +1 -0
  82. package/dist/cobalt/p-CBX_oabB.js +1 -0
  83. package/dist/cobalt/p-a02db338.entry.js +1 -0
  84. package/dist/cobalt/{p-a3669301.entry.js → p-a51d8775.entry.js} +1 -1
  85. package/dist/cobalt/{p-43d31055.entry.js → p-a9096b5c.entry.js} +1 -1
  86. package/dist/cobalt/{p-2637efc5.entry.js → p-ac466658.entry.js} +1 -1
  87. package/dist/cobalt/{p-75b7ed13.entry.js → p-ac91259e.entry.js} +1 -1
  88. package/dist/cobalt/{p-3ef0f849.entry.js → p-b0319a2d.entry.js} +1 -1
  89. package/dist/cobalt/{p-e4ef25b0.entry.js → p-b8581787.entry.js} +1 -1
  90. package/dist/cobalt/{p-fdc6ec11.entry.js → p-c1e7fb32.entry.js} +1 -1
  91. package/dist/cobalt/{p-a3c6b974.entry.js → p-c5684c79.entry.js} +1 -1
  92. package/dist/cobalt/{p-c1880595.entry.js → p-d15d3a97.entry.js} +1 -1
  93. package/dist/cobalt/p-d40a465f.entry.js +1 -0
  94. package/dist/cobalt/{p-138b8bc1.entry.js → p-d629fb4e.entry.js} +1 -1
  95. package/dist/cobalt/{p-929a4f19.entry.js → p-dca4cd5f.entry.js} +1 -1
  96. package/dist/cobalt/{p-3d338881.entry.js → p-dea43204.entry.js} +1 -1
  97. package/dist/cobalt/{p-b22981fd.entry.js → p-dfcf667d.entry.js} +1 -1
  98. package/dist/cobalt/{p-2c0099a4.entry.js → p-e5495539.entry.js} +1 -1
  99. package/dist/cobalt/{p-5c1767db.entry.js → p-ef5e1167.entry.js} +1 -1
  100. package/dist/cobalt/{p-37c17bd8.entry.js → p-fb3a095b.entry.js} +1 -1
  101. package/dist/cobalt/p-reaWaY4g.js +1 -0
  102. package/dist/collection/collection-manifest.json +1 -0
  103. package/dist/collection/components/co-autocomplete/co-autocomplete.js +1 -1
  104. package/dist/collection/components/co-avatar-group/co-avatar-group.js +1 -1
  105. package/dist/collection/components/co-bottom-sheet/co-bottom-sheet.js +10 -11
  106. package/dist/collection/components/co-checkbox-group/co-checkbox-group.js +1 -1
  107. package/dist/collection/components/co-combobox/co-combobox.js +1 -1
  108. package/dist/collection/components/co-command-search/co-command-search.js +1 -1
  109. package/dist/collection/components/co-data-table/co-data-table.js +1 -1
  110. package/dist/collection/components/co-date-range-picker/co-date-range-picker.js +2 -2
  111. package/dist/collection/components/co-drawer/co-drawer.css +5 -2
  112. package/dist/collection/components/co-drawer/co-drawer.js +43 -1
  113. package/dist/collection/components/co-emoji-picker/co-emoji-picker.css +290 -0
  114. package/dist/collection/components/co-emoji-picker/co-emoji-picker.js +682 -0
  115. package/dist/collection/components/co-emoji-picker/emojiData.js +1953 -0
  116. package/dist/collection/components/co-emoji-picker/emojiNames.es.js +1922 -0
  117. package/dist/collection/components/co-emoji-picker/emojiNames.pt.js +1922 -0
  118. package/dist/collection/components/co-emoji-picker/emojiPickerLogic.js +375 -0
  119. package/dist/collection/components/co-empty-state/co-empty-state.js +2 -2
  120. package/dist/collection/components/co-event-calendar/co-event-calendar.js +2 -2
  121. package/dist/collection/components/co-event-popover/co-event-popover.js +1 -1
  122. package/dist/collection/components/co-fab/co-fab.js +2 -2
  123. package/dist/collection/components/co-file-field/co-file-field.js +5 -5
  124. package/dist/collection/components/co-file-type-tile/co-file-type-tile.js +2 -2
  125. package/dist/collection/components/co-helper-text/co-helper-text.js +2 -2
  126. package/dist/collection/components/co-icon/co-icon.js +2 -2
  127. package/dist/collection/components/co-icon-button/co-icon-button.css +25 -0
  128. package/dist/collection/components/co-icon-button/co-icon-button.js +1 -1
  129. package/dist/collection/components/co-json-field/co-json-field.js +3 -3
  130. package/dist/collection/components/co-lightbox/co-lightbox.js +4 -4
  131. package/dist/collection/components/co-list-footer/co-list-footer.js +1 -1
  132. package/dist/collection/components/co-list-item/co-list-item.js +4 -4
  133. package/dist/collection/components/co-media-thumb/co-media-thumb.js +2 -2
  134. package/dist/collection/components/co-menu/co-menu.js +1 -1
  135. package/dist/collection/components/co-menu-divider/co-menu-divider.js +1 -1
  136. package/dist/collection/components/co-modal/co-modal.css +3 -1
  137. package/dist/collection/components/co-modal/co-modal.js +13 -2
  138. package/dist/collection/components/co-navbar/co-navbar.js +2 -2
  139. package/dist/collection/components/co-number-field/co-number-field.js +2 -2
  140. package/dist/collection/components/co-option-list/co-option-list.js +2 -2
  141. package/dist/collection/components/co-overlay/co-overlay.js +1 -1
  142. package/dist/collection/components/co-page-header/co-page-header.js +1 -1
  143. package/dist/collection/components/co-phone-field/co-phone-field.js +1 -1
  144. package/dist/collection/components/co-popover/co-popover.js +1 -1
  145. package/dist/collection/components/co-progress-bar/co-progress-bar.js +2 -2
  146. package/dist/collection/components/co-progress-circle/co-progress-circle.js +2 -2
  147. package/dist/collection/components/co-radio/co-radio.js +3 -3
  148. package/dist/collection/components/co-radio-group/co-radio-group.js +1 -1
  149. package/dist/collection/components/co-rating/co-rating.js +3 -3
  150. package/dist/collection/components/co-ref-field/co-ref-field.js +1 -1
  151. package/dist/collection/components/co-rich-text-editor/co-rich-text-editor.js +3 -3
  152. package/dist/collection/components/co-row/co-row.js +2 -2
  153. package/dist/collection/components/co-segmented-bar/co-segmented-bar.js +1 -1
  154. package/dist/collection/components/co-select/co-select.js +1 -1
  155. package/dist/collection/components/co-separator/co-separator.js +1 -1
  156. package/dist/collection/components/co-sidebar/co-sidebar.js +2 -2
  157. package/dist/collection/components/co-sidebar-nav/co-sidebar-nav.js +1 -1
  158. package/dist/collection/components/co-skeleton/co-skeleton.js +1 -1
  159. package/dist/collection/components/co-slider/co-slider.js +2 -2
  160. package/dist/collection/components/co-switch/co-switch.js +3 -3
  161. package/dist/collection/components/co-tab/co-tab.js +2 -2
  162. package/dist/collection/components/co-tab-group/co-tab-group.js +2 -2
  163. package/dist/collection/components/co-tags-field/co-tags-field.js +5 -5
  164. package/dist/collection/components/co-textarea/co-textarea.js +4 -4
  165. package/dist/collection/components/co-toast/co-toast.js +2 -2
  166. package/dist/collection/components/co-toggle-button/co-toggle-button.js +2 -2
  167. package/dist/collection/components/co-toggle-button-group/co-toggle-button-group.js +2 -2
  168. package/dist/collection/components/co-tooltip/co-tooltip.js +2 -2
  169. package/dist/collection/components/co-transfer-list/co-transfer-list.js +1 -1
  170. package/dist/collection/components/co-video/co-video.js +2 -2
  171. package/dist/collection/utils/emojiI18n.js +92 -0
  172. package/dist/collection/utils/slotContent.js +30 -0
  173. package/dist/components/co-accordion.js +1 -1
  174. package/dist/components/co-action-bar.js +1 -1
  175. package/dist/components/co-audio-player.js +1 -1
  176. package/dist/components/co-autocomplete.js +1 -1
  177. package/dist/components/co-avatar-group.js +1 -1
  178. package/dist/components/co-avatar.js +1 -1
  179. package/dist/components/co-bottom-sheet.js +1 -1
  180. package/dist/components/co-breadcrumb-item.js +1 -1
  181. package/dist/components/co-breadcrumb.js +1 -1
  182. package/dist/components/co-button.js +1 -1
  183. package/dist/components/co-calendar-month.js +1 -1
  184. package/dist/components/co-calendar-timegrid.js +1 -1
  185. package/dist/components/co-calendar.js +1 -1
  186. package/dist/components/co-carousel.js +1 -1
  187. package/dist/components/co-checkbox-group.js +1 -1
  188. package/dist/components/co-chip.js +1 -1
  189. package/dist/components/co-color-picker.js +1 -1
  190. package/dist/components/co-column-picker.js +1 -1
  191. package/dist/components/co-combobox.js +1 -1
  192. package/dist/components/co-command-search.js +1 -1
  193. package/dist/components/co-data-table-pagination.js +1 -1
  194. package/dist/components/co-data-table.js +1 -1
  195. package/dist/components/co-date-field.js +1 -1
  196. package/dist/components/co-date-picker.js +1 -1
  197. package/dist/components/co-date-range-picker.js +1 -1
  198. package/dist/components/co-date-range.js +1 -1
  199. package/dist/components/co-date-time-picker.js +1 -1
  200. package/dist/components/co-drawer.js +1 -1
  201. package/dist/components/co-drive-card.js +1 -1
  202. package/dist/components/co-drop-zone.js +1 -1
  203. package/dist/components/co-emoji-picker.d.ts +11 -0
  204. package/dist/components/co-emoji-picker.js +1 -0
  205. package/dist/components/co-empty-state.js +1 -1
  206. package/dist/components/co-event-calendar.js +1 -1
  207. package/dist/components/co-event-popover.js +1 -1
  208. package/dist/components/co-fab.js +1 -1
  209. package/dist/components/co-file-field.js +1 -1
  210. package/dist/components/co-file-type-tile.js +1 -1
  211. package/dist/components/co-helper-text.js +1 -1
  212. package/dist/components/co-icon-button.js +1 -1
  213. package/dist/components/co-icon.js +1 -1
  214. package/dist/components/co-input.js +1 -1
  215. package/dist/components/co-json-field.js +1 -1
  216. package/dist/components/co-lightbox.js +1 -1
  217. package/dist/components/co-list-footer.js +1 -1
  218. package/dist/components/co-list-item.js +1 -1
  219. package/dist/components/co-media-thumb.js +1 -1
  220. package/dist/components/co-menu-divider.js +1 -1
  221. package/dist/components/co-menu-item.js +1 -1
  222. package/dist/components/co-menu.js +1 -1
  223. package/dist/components/co-modal.js +1 -1
  224. package/dist/components/co-navbar.js +1 -1
  225. package/dist/components/co-number-field.js +1 -1
  226. package/dist/components/co-option-list.js +1 -1
  227. package/dist/components/co-overlay.js +1 -1
  228. package/dist/components/co-page-header.js +1 -1
  229. package/dist/components/co-phone-field.js +1 -1
  230. package/dist/components/co-progress-bar.js +1 -1
  231. package/dist/components/co-progress-circle.js +1 -1
  232. package/dist/components/co-radio-group.js +1 -1
  233. package/dist/components/co-radio.js +1 -1
  234. package/dist/components/co-rating.js +1 -1
  235. package/dist/components/co-ref-field.js +1 -1
  236. package/dist/components/co-rich-text-editor.js +1 -1
  237. package/dist/components/co-rich-text-toolbar.js +1 -1
  238. package/dist/components/co-row.js +1 -1
  239. package/dist/components/co-select.js +1 -1
  240. package/dist/components/co-separator.js +1 -1
  241. package/dist/components/co-sidebar-nav.js +1 -1
  242. package/dist/components/co-sidebar.js +1 -1
  243. package/dist/components/co-skeleton.js +1 -1
  244. package/dist/components/co-slider.js +1 -1
  245. package/dist/components/co-switch.js +1 -1
  246. package/dist/components/co-tab-group.js +1 -1
  247. package/dist/components/co-tab.js +1 -1
  248. package/dist/components/co-tags-field.js +1 -1
  249. package/dist/components/co-textarea.js +1 -1
  250. package/dist/components/co-toast.js +1 -1
  251. package/dist/components/co-toggle-button-group.js +1 -1
  252. package/dist/components/co-toggle-button.js +1 -1
  253. package/dist/components/co-tooltip.js +1 -1
  254. package/dist/components/co-transfer-list.js +1 -1
  255. package/dist/components/co-video.js +1 -1
  256. package/dist/components/{p-BOmAHbix.js → p-AvSaw4Ua.js} +1 -1
  257. package/dist/components/p-B3TkpLNh.js +1 -0
  258. package/dist/components/p-B6oiFdUY.js +1 -0
  259. package/dist/components/{p-BEiPCCVl.js → p-B7hvddnu.js} +1 -1
  260. package/dist/components/{p-njonLO8t.js → p-BGD3oQ73.js} +1 -1
  261. package/dist/components/{p-xjzIZcgZ.js → p-BT5tSgZa.js} +1 -1
  262. package/dist/components/{p-CXdIxtbK.js → p-BsQQ7Mki.js} +1 -1
  263. package/dist/components/p-CBX_oabB.js +1 -0
  264. package/dist/components/{p-ClAsHpYv.js → p-CklsvHeL.js} +1 -1
  265. package/dist/components/{p-DWt_rL1l.js → p-CyMaOb1j.js} +1 -1
  266. package/dist/components/{p-DEYpoVxc.js → p-D5QJpmqf.js} +1 -1
  267. package/dist/components/{p-Bhuk55S0.js → p-D6OUW6oW.js} +1 -1
  268. package/dist/components/p-DTvb412h.js +1 -0
  269. package/dist/components/{p-DmyELlI1.js → p-DkmKOF60.js} +1 -1
  270. package/dist/components/{p-DUYGgqjB.js → p-DolCkNsL.js} +1 -1
  271. package/dist/components/{p-CnBjUP_M.js → p-KWTokD0C.js} +1 -1
  272. package/dist/components/{p-BCZ-tPBT.js → p-Q6caHt79.js} +1 -1
  273. package/dist/components/{p-BUYgHlPz.js → p-WWlZiln1.js} +1 -1
  274. package/dist/components/{p-C4So28aS.js → p-_131DL6m.js} +1 -1
  275. package/dist/components/{p-BYnSPxpp.js → p-gI62K3Be.js} +1 -1
  276. package/dist/components/{p-8wvfrEY4.js → p-mom5kiBa.js} +1 -1
  277. package/dist/components/p-nwy6X1QT.js +1 -0
  278. package/dist/components/p-reaWaY4g.js +1 -0
  279. package/dist/esm/co-avatar_2.entry.js +2 -2
  280. package/dist/esm/co-bottom-sheet.entry.js +10 -11
  281. package/dist/esm/co-calendar_3.entry.js +37 -2
  282. package/dist/esm/co-chip_2.entry.js +2 -2
  283. package/dist/esm/co-emoji-picker.entry.js +2806 -0
  284. package/dist/esm/co-empty-state.entry.js +2 -2
  285. package/dist/esm/co-event-calendar.entry.js +2 -2
  286. package/dist/esm/co-event-popover.entry.js +1 -1
  287. package/dist/esm/co-fab.entry.js +2 -2
  288. package/dist/esm/co-file-field.entry.js +5 -5
  289. package/dist/esm/co-file-type-tile.entry.js +2 -2
  290. package/dist/esm/co-helper-text.entry.js +2 -2
  291. package/dist/esm/co-icon-button.entry.js +2 -2
  292. package/dist/esm/co-icon.entry.js +2 -2
  293. package/dist/esm/co-json-field.entry.js +3 -3
  294. package/dist/esm/co-lightbox.entry.js +4 -4
  295. package/dist/esm/co-list-footer.entry.js +1 -1
  296. package/dist/esm/co-list-item.entry.js +4 -4
  297. package/dist/esm/co-media-thumb.entry.js +2 -2
  298. package/dist/esm/co-menu-divider.entry.js +1 -1
  299. package/dist/esm/co-menu.entry.js +1 -1
  300. package/dist/esm/co-modal.entry.js +9 -3
  301. package/dist/esm/co-navbar.entry.js +2 -2
  302. package/dist/esm/co-number-field.entry.js +2 -2
  303. package/dist/esm/co-overlay.entry.js +1 -1
  304. package/dist/esm/co-page-header.entry.js +1 -1
  305. package/dist/esm/co-phone-field.entry.js +1 -1
  306. package/dist/esm/co-progress-bar.entry.js +2 -2
  307. package/dist/esm/co-progress-circle.entry.js +2 -2
  308. package/dist/esm/co-provider-logo_2.entry.js +1 -1
  309. package/dist/esm/co-radio.entry.js +3 -3
  310. package/dist/esm/co-rating.entry.js +3 -3
  311. package/dist/esm/co-rich-text-editor.entry.js +3 -3
  312. package/dist/esm/co-row.entry.js +2 -2
  313. package/dist/esm/co-separator.entry.js +1 -1
  314. package/dist/esm/co-sidebar.entry.js +2 -2
  315. package/dist/esm/co-slider.entry.js +2 -2
  316. package/dist/esm/co-switch.entry.js +3 -3
  317. package/dist/esm/co-tab-group.entry.js +2 -2
  318. package/dist/esm/co-tab.entry.js +2 -2
  319. package/dist/esm/co-tags-field.entry.js +5 -5
  320. package/dist/esm/co-textarea.entry.js +4 -4
  321. package/dist/esm/co-toggle-button-group.entry.js +2 -2
  322. package/dist/esm/co-toggle-button.entry.js +2 -2
  323. package/dist/esm/co-video.entry.js +2 -2
  324. package/dist/esm/cobalt.js +1 -1
  325. package/dist/esm/emojiNames.es-reaWaY4g.js +1923 -0
  326. package/dist/esm/emojiNames.pt-B6oiFdUY.js +1923 -0
  327. package/dist/esm/index-CrtiywTB.js +4 -0
  328. package/dist/esm/loader.js +1 -1
  329. package/dist/esm/slotContent-CBX_oabB.js +32 -0
  330. package/dist/types/components/co-bottom-sheet/co-bottom-sheet.d.ts +0 -1
  331. package/dist/types/components/co-drawer/co-drawer.d.ts +23 -0
  332. package/dist/types/components/co-emoji-picker/co-emoji-picker.d.ts +145 -0
  333. package/dist/types/components/co-emoji-picker/emojiData.d.ts +24 -0
  334. package/dist/types/components/co-emoji-picker/emojiNames.es.d.ts +12 -0
  335. package/dist/types/components/co-emoji-picker/emojiNames.pt.d.ts +12 -0
  336. package/dist/types/components/co-emoji-picker/emojiPickerLogic.d.ts +149 -0
  337. package/dist/types/components/co-modal/co-modal.d.ts +2 -0
  338. package/dist/types/components.d.ts +195 -0
  339. package/dist/types/utils/emojiI18n.d.ts +22 -0
  340. package/dist/types/utils/slotContent.d.ts +19 -0
  341. package/package.json +4 -4
  342. package/dist/cobalt/p-02f4b71a.entry.js +0 -1
  343. package/dist/cobalt/p-2f778a5a.entry.js +0 -1
  344. package/dist/cobalt/p-315586b0.entry.js +0 -1
  345. package/dist/cobalt/p-6556465f.entry.js +0 -1
  346. package/dist/cobalt/p-7fbd3359.entry.js +0 -1
  347. package/dist/cobalt/p-82c8f07b.entry.js +0 -1
  348. package/dist/cobalt/p-c3bb7e1f.entry.js +0 -1
  349. package/dist/cobalt/p-e742e978.entry.js +0 -1
  350. package/dist/components/p-4t5Fputx.js +0 -1
  351. package/dist/components/p-CRABrJmD.js +0 -1
  352. package/dist/components/p-aiNhl9Xd.js +0 -1
@@ -0,0 +1,149 @@
1
+ import { type EmojiCategory } from './emojiData';
2
+ /** Categoría sintética de recientes: va primera y solo existe si hay historial. */
3
+ export declare const RECENT_CATEGORY = "recent";
4
+ /** Categorías del layout = las del dataset más la sintética de recientes. */
5
+ export type GridCategory = EmojiCategory | typeof RECENT_CATEGORY;
6
+ /** '0' sin tono · '1' tras el primer codepoint · '2' tras cada persona. */
7
+ export type ToneFlag = '0' | '1' | '2';
8
+ export interface EmojiEntry {
9
+ /** El carácter (puede ser una secuencia ZWJ de varios codepoints). */
10
+ char: string;
11
+ /** Nombre en inglés (pack base). Es el fallback de todo locale. */
12
+ name: string;
13
+ /** Slug de categoría. */
14
+ category: GridCategory;
15
+ /**
16
+ * Identidad de celda dentro del layout: key de render, id de DOM y valor de
17
+ * `activeIndex`. Las entradas de recientes viven en un espacio propio
18
+ * (`RECENT_INDEX_BASE + n`) porque el MISMO emoji aparece dos veces en la
19
+ * grilla —en recientes y en su categoría real— y dos celdas con el mismo id
20
+ * romperían `aria-activedescendant` y la navegación por teclado.
21
+ */
22
+ index: number;
23
+ /** Índice en el pack de locale. Difiere de `index` en los recientes. */
24
+ nameIndex: number;
25
+ /** Soporte de tono de piel del emoji base. */
26
+ tone: ToneFlag;
27
+ }
28
+ export type EmojiRow = {
29
+ kind: 'header';
30
+ category: GridCategory;
31
+ } | {
32
+ kind: 'emoji';
33
+ entries: EmojiEntry[];
34
+ };
35
+ /** Alto uniforme de fila (header y grilla) en px. Uniforme a propósito: la
36
+ * virtualización se reduce a `top = row * ROW_HEIGHT`, sin prefix-sums. */
37
+ export declare const ROW_HEIGHT = 36;
38
+ /** Filas de más renderizadas arriba y abajo del viewport. */
39
+ export declare const OVERSCAN = 2;
40
+ /** Columnas por defecto (espejo del default de la prop `columns`). */
41
+ export declare const DEFAULT_COLUMNS = 8;
42
+ /** Offset del espacio de índices de los recientes (ver `EmojiEntry.index`). */
43
+ export declare const RECENT_INDEX_BASE = 1000000;
44
+ /**
45
+ * Desempaqueta EMOJI_PACKED a entradas. Memoizado a nivel de módulo: se paga
46
+ * UNA vez por documento aunque se monten varios pickers.
47
+ */
48
+ export declare function getEmojiEntries(): EmojiEntry[];
49
+ /** Locales con pack de nombres propio. El resto usa los nombres en inglés. */
50
+ export declare function hasLocalePack(lang: string): boolean;
51
+ /**
52
+ * Nombres localizados, alineados por índice global con `getEmojiEntries()`.
53
+ * Devuelve null si el locale no tiene pack o si la carga falla — el llamador
54
+ * cae a los nombres en inglés (degradación, nunca excepción).
55
+ */
56
+ export declare function loadLocaleNames(lang: string): Promise<string[] | null>;
57
+ /** Los 5 modificadores Fitzpatrick, en orden claro → oscuro (U+1F3FB..U+1F3FF). */
58
+ export declare const SKIN_TONES: readonly ["🏻", "🏼", "🏽", "🏾", "🏿"];
59
+ export type SkinTone = (typeof SKIN_TONES)[number];
60
+ /** Claves estables de la API pública: '' = por defecto (amarillo). */
61
+ export declare const SKIN_TONE_KEYS: readonly ["", "light", "medium-light", "medium", "medium-dark", "dark"];
62
+ export type SkinToneKey = (typeof SKIN_TONE_KEYS)[number];
63
+ /** Modificador correspondiente a una clave pública, o '' si no aplica. */
64
+ export declare function toneFromKey(key: string | undefined): string;
65
+ /**
66
+ * Aplica un modificador de tono a un emoji según su flag.
67
+ *
68
+ * Reglas (las dos que exige Unicode, no una aproximación):
69
+ * - El modificador REEMPLAZA al selector de variación U+FE0F que siga a la
70
+ * base: ✌️ (270C FE0F) + medio = 270C 1F3FD, no 270C FE0F 1F3FD. Solo al de
71
+ * la base — el FE0F de un componente posterior (♀️ en 🕵️‍♀️) se conserva.
72
+ * - Las secuencias multi-persona (flag '2') llevan el modificador en CADA
73
+ * persona: 👩‍❤️‍👨 tonado es 1F469 tono 200D 2764 FE0F 200D 1F468 tono. Con uno
74
+ * solo la secuencia deja de ser RGI y el navegador la parte en dos glifos.
75
+ */
76
+ export declare function applySkinTone(char: string, flag: ToneFlag, tone: string): string;
77
+ /** Quita todo modificador de tono de un carácter (para volver a la base). */
78
+ export declare function stripSkinTone(char: string): string;
79
+ /**
80
+ * Resuelve un carácter (posiblemente tonado) a su entrada del dataset. Prueba la
81
+ * forma exacta —el caso común, sin costo— y cae a la clave normalizada.
82
+ */
83
+ export declare function resolveEmoji(char: string): EmojiEntry | undefined;
84
+ /**
85
+ * Entradas para la fila de recientes. Los caracteres los da el consumidor (es
86
+ * el dueño del historial), así que acá se sanea: se descarta lo que no resuelve
87
+ * contra el dataset, se deduplica conservando el orden, y se recorta a `max`.
88
+ *
89
+ * El carácter se conserva TAL CUAL vino —con su tono— y por eso la entrada sale
90
+ * con `tone: '0'`: ya está resuelto, no hay que volver a tonarlo.
91
+ */
92
+ export declare function buildRecentEntries(recent: string[] | undefined, max: number): EmojiEntry[];
93
+ /**
94
+ * Lista de recientes actualizada tras elegir `emoji` (MRU: más reciente
95
+ * primero, sin repetidos, recortada a `max`). Es una función pura para que el
96
+ * consumidor —dueño de la persistencia— no tenga que reimplementar la política.
97
+ */
98
+ export declare function pushRecent(recent: string[] | undefined, emoji: string, max: number): string[];
99
+ /**
100
+ * Filtra por nombre, rankeando por relevancia (`rankByMatch`: exacto > prefijo >
101
+ * prefijo de palabra > substring), insensible a acentos y mayúsculas.
102
+ *
103
+ * Cuando hay pack de locale busca contra el nombre localizado Y el inglés: los
104
+ * emoji sin traducción CLDR (la mayoría de las banderas) siguen siendo
105
+ * encontrables, y quien tipea en inglés sobre una UI en español también acierta.
106
+ */
107
+ export declare function searchEmojis(entries: EmojiEntry[], query: string, localeNames: string[] | null): EmojiEntry[];
108
+ /** Nombre a mostrar (tooltip / aria-label) para una entrada. */
109
+ export declare function displayName(entry: EmojiEntry, localeNames: string[] | null): string;
110
+ /**
111
+ * Aplana a filas de render. `grouped` inserta un header por categoría (modo
112
+ * idle); en modo búsqueda los resultados van en una grilla continua, porque
113
+ * vienen ordenados por relevancia y no por categoría.
114
+ */
115
+ export declare function layoutRows(entries: EmojiEntry[], columns: number, grouped: boolean): EmojiRow[];
116
+ /** Posición (fila, columna) de cada índice global dentro de un layout. */
117
+ export declare function buildPositionMap(rows: EmojiRow[]): Map<number, {
118
+ row: number;
119
+ col: number;
120
+ }>;
121
+ /** Índice de fila donde arranca cada categoría (para el salto del strip). */
122
+ export declare function categoryRowStarts(rows: EmojiRow[]): Map<GridCategory, number>;
123
+ /** Categoría visible al tope del scroll — resalta el botón del strip. */
124
+ export declare function categoryAtRow(rows: EmojiRow[], rowIdx: number): GridCategory | null;
125
+ /**
126
+ * Ventana de filas a renderizar. 1906 emoji son ~240 filas: sin esto el panel
127
+ * monta ~1900 botones por apertura. Con la ventana quedan ~13 filas (~104
128
+ * botones) sin importar el tamaño del dataset.
129
+ */
130
+ export declare function virtualSlice(scrollTop: number, viewportHeight: number, rowCount: number): {
131
+ totalHeight: number;
132
+ start: number;
133
+ end: number;
134
+ offsetY: number;
135
+ };
136
+ export type NavKey = 'ArrowRight' | 'ArrowLeft' | 'ArrowDown' | 'ArrowUp' | 'Home' | 'End' | 'PageDown' | 'PageUp';
137
+ /**
138
+ * Siguiente índice global activo tras una tecla de navegación, o el actual si
139
+ * el movimiento no lleva a ninguna celda.
140
+ *
141
+ * Trabaja sobre el layout (no sobre el array plano) para que las filas
142
+ * parciales del final de cada categoría y los headers intercalados se comporten
143
+ * como los ve el usuario: bajar desde una fila corta cae en la última celda de
144
+ * la fila de abajo, y los headers se saltan solos.
145
+ */
146
+ export declare function moveActive(rows: EmojiRow[], positions: Map<number, {
147
+ row: number;
148
+ col: number;
149
+ }>, activeIndex: number, key: NavKey): number;
@@ -41,7 +41,9 @@ export declare class CoModal {
41
41
  coAfterClose: EventEmitter<void>;
42
42
  /** Open animation finished. */
43
43
  coAfterOpen: EventEmitter<void>;
44
+ hasFooter: boolean;
44
45
  private modalEl?;
46
+ private handleFooterSlotChange;
45
47
  private handleOverlayClick;
46
48
  private handleCloseClick;
47
49
  private stopPropagation;
@@ -2049,6 +2049,68 @@ export namespace Components {
2049
2049
  */
2050
2050
  "label": string;
2051
2051
  }
2052
+ /**
2053
+ * Selector de emoji: buscador + strip de categorías + grilla virtualizada.
2054
+ * Es un PRIMITIVO de panel, igual que co-option-list: no renderiza trigger ni
2055
+ * chrome (popover/dialog/ancho). El host lo compone — típicamente dentro de un
2056
+ * `<co-popover>` colgado de su propio botón.
2057
+ * Dataset: 1906 emoji del set RGI, empaquetados como texto (~16 KB gz). Los
2058
+ * nombres localizados (es/pt) se cargan con `import()` dinámico solo cuando el
2059
+ * `locale` los pide; en inglés no se descargan nunca.
2060
+ * @event coSelect - El emoji elegido: `{ emoji, name }`.
2061
+ * @event coClose - Escape con el buscador vacío (el host decide si cierra).
2062
+ */
2063
+ interface CoEmojiPicker {
2064
+ /**
2065
+ * Columnas de la grilla.
2066
+ * @default 8
2067
+ */
2068
+ "columns": number;
2069
+ /**
2070
+ * Mensaje de "sin resultados". Vacío = el del `locale`.
2071
+ * @default ''
2072
+ */
2073
+ "emptyMessage": string;
2074
+ /**
2075
+ * aria-label del panel. Vacío = el del `locale`.
2076
+ * @default ''
2077
+ */
2078
+ "label": string;
2079
+ /**
2080
+ * Locale de los textos de UI y de los nombres de emoji ('es' | 'en' | 'pt').
2081
+ */
2082
+ "locale"?: string;
2083
+ /**
2084
+ * Emoji usados recientemente, del más nuevo al más viejo. Se pintan como una categoría propia al tope de la grilla; con la lista vacía la categoría no existe (ni fila, ni header, ni botón en el strip). El historial lo posee el CONSUMIDOR, igual que el tono. Ningún componente de Cobalt escribe `localStorage`: el design system no conoce el scope de la preferencia (¿por usuario? ¿por workspace? ¿sincronizada al backend?) y escribir por su cuenta le impondría esa decisión a toda la suite. El consumidor recibe `coSelect` y actualiza esta prop; `pushRecent()` de `emojiPickerLogic` implementa la política MRU si no la quiere reescribir. Es RECIENTES (orden temporal), no "frecuentes" (por conteo): lo último que usaste queda primero, sin contadores que se calcifiquen arriba con el uso.
2085
+ * @default []
2086
+ */
2087
+ "recent": string[];
2088
+ /**
2089
+ * Tope de emoji recientes mostrados.
2090
+ * @default 16
2091
+ */
2092
+ "recentLimit": number;
2093
+ /**
2094
+ * Placeholder del buscador. Vacío = el del `locale`.
2095
+ * @default ''
2096
+ */
2097
+ "searchPlaceholder": string;
2098
+ /**
2099
+ * Muestra el buscador.
2100
+ * @default true
2101
+ */
2102
+ "searchable": boolean;
2103
+ /**
2104
+ * Muestra el strip de categorías.
2105
+ * @default true
2106
+ */
2107
+ "showCategories": boolean;
2108
+ /**
2109
+ * Tono de piel aplicado a toda la grilla: `''` (por defecto) | `'light'` | `'medium-light'` | `'medium'` | `'medium-dark'` | `'dark'`. Es `mutable`: el componente la actualiza al elegir un tono para que funcione suelto, y emite `coSkinToneChange`. La PERSISTENCIA es del consumidor — Cobalt no escribe storage (ver el comentario de `recent`).
2110
+ * @default ''
2111
+ */
2112
+ "skinTone": string;
2113
+ }
2052
2114
  /**
2053
2115
  * Empty state placeholder — icon, title, description, and action buttons.
2054
2116
  */
@@ -4733,6 +4795,10 @@ export interface CoDropZoneCustomEvent<T> extends CustomEvent<T> {
4733
4795
  detail: T;
4734
4796
  target: HTMLCoDropZoneElement;
4735
4797
  }
4798
+ export interface CoEmojiPickerCustomEvent<T> extends CustomEvent<T> {
4799
+ detail: T;
4800
+ target: HTMLCoEmojiPickerElement;
4801
+ }
4736
4802
  export interface CoEventCalendarCustomEvent<T> extends CustomEvent<T> {
4737
4803
  detail: T;
4738
4804
  target: HTMLCoEventCalendarElement;
@@ -5682,6 +5748,36 @@ declare global {
5682
5748
  prototype: HTMLCoDropZoneElement;
5683
5749
  new (): HTMLCoDropZoneElement;
5684
5750
  };
5751
+ interface HTMLCoEmojiPickerElementEventMap {
5752
+ "coSelect": { emoji: string; name: string };
5753
+ "coSkinToneChange": { skinTone: string };
5754
+ "coClose": void;
5755
+ }
5756
+ /**
5757
+ * Selector de emoji: buscador + strip de categorías + grilla virtualizada.
5758
+ * Es un PRIMITIVO de panel, igual que co-option-list: no renderiza trigger ni
5759
+ * chrome (popover/dialog/ancho). El host lo compone — típicamente dentro de un
5760
+ * `<co-popover>` colgado de su propio botón.
5761
+ * Dataset: 1906 emoji del set RGI, empaquetados como texto (~16 KB gz). Los
5762
+ * nombres localizados (es/pt) se cargan con `import()` dinámico solo cuando el
5763
+ * `locale` los pide; en inglés no se descargan nunca.
5764
+ * @event coSelect - El emoji elegido: `{ emoji, name }`.
5765
+ * @event coClose - Escape con el buscador vacío (el host decide si cierra).
5766
+ */
5767
+ interface HTMLCoEmojiPickerElement extends Components.CoEmojiPicker, HTMLStencilElement {
5768
+ addEventListener<K extends keyof HTMLCoEmojiPickerElementEventMap>(type: K, listener: (this: HTMLCoEmojiPickerElement, ev: CoEmojiPickerCustomEvent<HTMLCoEmojiPickerElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
5769
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
5770
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
5771
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
5772
+ removeEventListener<K extends keyof HTMLCoEmojiPickerElementEventMap>(type: K, listener: (this: HTMLCoEmojiPickerElement, ev: CoEmojiPickerCustomEvent<HTMLCoEmojiPickerElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
5773
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
5774
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
5775
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
5776
+ }
5777
+ var HTMLCoEmojiPickerElement: {
5778
+ prototype: HTMLCoEmojiPickerElement;
5779
+ new (): HTMLCoEmojiPickerElement;
5780
+ };
5685
5781
  /**
5686
5782
  * Empty state placeholder — icon, title, description, and action buttons.
5687
5783
  */
@@ -6758,6 +6854,7 @@ declare global {
6758
6854
  "co-drawer": HTMLCoDrawerElement;
6759
6855
  "co-drive-card": HTMLCoDriveCardElement;
6760
6856
  "co-drop-zone": HTMLCoDropZoneElement;
6857
+ "co-emoji-picker": HTMLCoEmojiPickerElement;
6761
6858
  "co-empty-state": HTMLCoEmptyStateElement;
6762
6859
  "co-event-calendar": HTMLCoEventCalendarElement;
6763
6860
  "co-event-popover": HTMLCoEventPopoverElement;
@@ -9091,6 +9188,80 @@ declare namespace LocalJSX {
9091
9188
  */
9092
9189
  "onCoDrop"?: (event: CoDropZoneCustomEvent<File[]>) => void;
9093
9190
  }
9191
+ /**
9192
+ * Selector de emoji: buscador + strip de categorías + grilla virtualizada.
9193
+ * Es un PRIMITIVO de panel, igual que co-option-list: no renderiza trigger ni
9194
+ * chrome (popover/dialog/ancho). El host lo compone — típicamente dentro de un
9195
+ * `<co-popover>` colgado de su propio botón.
9196
+ * Dataset: 1906 emoji del set RGI, empaquetados como texto (~16 KB gz). Los
9197
+ * nombres localizados (es/pt) se cargan con `import()` dinámico solo cuando el
9198
+ * `locale` los pide; en inglés no se descargan nunca.
9199
+ * @event coSelect - El emoji elegido: `{ emoji, name }`.
9200
+ * @event coClose - Escape con el buscador vacío (el host decide si cierra).
9201
+ */
9202
+ interface CoEmojiPicker {
9203
+ /**
9204
+ * Columnas de la grilla.
9205
+ * @default 8
9206
+ */
9207
+ "columns"?: number;
9208
+ /**
9209
+ * Mensaje de "sin resultados". Vacío = el del `locale`.
9210
+ * @default ''
9211
+ */
9212
+ "emptyMessage"?: string;
9213
+ /**
9214
+ * aria-label del panel. Vacío = el del `locale`.
9215
+ * @default ''
9216
+ */
9217
+ "label"?: string;
9218
+ /**
9219
+ * Locale de los textos de UI y de los nombres de emoji ('es' | 'en' | 'pt').
9220
+ */
9221
+ "locale"?: string;
9222
+ /**
9223
+ * Emitido con Escape y el buscador ya vacío.
9224
+ */
9225
+ "onCoClose"?: (event: CoEmojiPickerCustomEvent<void>) => void;
9226
+ /**
9227
+ * Emitido al elegir un emoji. `emoji` ya viene con el tono aplicado.
9228
+ */
9229
+ "onCoSelect"?: (event: CoEmojiPickerCustomEvent<{ emoji: string; name: string }>) => void;
9230
+ /**
9231
+ * Emitido al cambiar el tono de piel — el consumidor lo persiste.
9232
+ */
9233
+ "onCoSkinToneChange"?: (event: CoEmojiPickerCustomEvent<{ skinTone: string }>) => void;
9234
+ /**
9235
+ * Emoji usados recientemente, del más nuevo al más viejo. Se pintan como una categoría propia al tope de la grilla; con la lista vacía la categoría no existe (ni fila, ni header, ni botón en el strip). El historial lo posee el CONSUMIDOR, igual que el tono. Ningún componente de Cobalt escribe `localStorage`: el design system no conoce el scope de la preferencia (¿por usuario? ¿por workspace? ¿sincronizada al backend?) y escribir por su cuenta le impondría esa decisión a toda la suite. El consumidor recibe `coSelect` y actualiza esta prop; `pushRecent()` de `emojiPickerLogic` implementa la política MRU si no la quiere reescribir. Es RECIENTES (orden temporal), no "frecuentes" (por conteo): lo último que usaste queda primero, sin contadores que se calcifiquen arriba con el uso.
9236
+ * @default []
9237
+ */
9238
+ "recent"?: string[];
9239
+ /**
9240
+ * Tope de emoji recientes mostrados.
9241
+ * @default 16
9242
+ */
9243
+ "recentLimit"?: number;
9244
+ /**
9245
+ * Placeholder del buscador. Vacío = el del `locale`.
9246
+ * @default ''
9247
+ */
9248
+ "searchPlaceholder"?: string;
9249
+ /**
9250
+ * Muestra el buscador.
9251
+ * @default true
9252
+ */
9253
+ "searchable"?: boolean;
9254
+ /**
9255
+ * Muestra el strip de categorías.
9256
+ * @default true
9257
+ */
9258
+ "showCategories"?: boolean;
9259
+ /**
9260
+ * Tono de piel aplicado a toda la grilla: `''` (por defecto) | `'light'` | `'medium-light'` | `'medium'` | `'medium-dark'` | `'dark'`. Es `mutable`: el componente la actualiza al elegir un tono para que funcione suelto, y emite `coSkinToneChange`. La PERSISTENCIA es del consumidor — Cobalt no escribe storage (ver el comentario de `recent`).
9261
+ * @default ''
9262
+ */
9263
+ "skinTone"?: string;
9264
+ }
9094
9265
  /**
9095
9266
  * Empty state placeholder — icon, title, description, and action buttons.
9096
9267
  */
@@ -12417,6 +12588,17 @@ declare namespace LocalJSX {
12417
12588
  "label": string;
12418
12589
  "icon": string;
12419
12590
  }
12591
+ interface CoEmojiPickerAttributes {
12592
+ "locale": string;
12593
+ "searchPlaceholder": string;
12594
+ "emptyMessage": string;
12595
+ "label": string;
12596
+ "searchable": boolean;
12597
+ "showCategories": boolean;
12598
+ "columns": number;
12599
+ "skinTone": string;
12600
+ "recentLimit": number;
12601
+ }
12420
12602
  interface CoEmptyStateAttributes {
12421
12603
  "icon": string;
12422
12604
  "heading": string;
@@ -13065,6 +13247,7 @@ declare namespace LocalJSX {
13065
13247
  "co-drawer": Omit<CoDrawer, keyof CoDrawerAttributes> & { [K in keyof CoDrawer & keyof CoDrawerAttributes]?: CoDrawer[K] } & { [K in keyof CoDrawer & keyof CoDrawerAttributes as `attr:${K}`]?: CoDrawerAttributes[K] } & { [K in keyof CoDrawer & keyof CoDrawerAttributes as `prop:${K}`]?: CoDrawer[K] };
13066
13248
  "co-drive-card": Omit<CoDriveCard, keyof CoDriveCardAttributes> & { [K in keyof CoDriveCard & keyof CoDriveCardAttributes]?: CoDriveCard[K] } & { [K in keyof CoDriveCard & keyof CoDriveCardAttributes as `attr:${K}`]?: CoDriveCardAttributes[K] } & { [K in keyof CoDriveCard & keyof CoDriveCardAttributes as `prop:${K}`]?: CoDriveCard[K] };
13067
13249
  "co-drop-zone": Omit<CoDropZone, keyof CoDropZoneAttributes> & { [K in keyof CoDropZone & keyof CoDropZoneAttributes]?: CoDropZone[K] } & { [K in keyof CoDropZone & keyof CoDropZoneAttributes as `attr:${K}`]?: CoDropZoneAttributes[K] } & { [K in keyof CoDropZone & keyof CoDropZoneAttributes as `prop:${K}`]?: CoDropZone[K] };
13250
+ "co-emoji-picker": Omit<CoEmojiPicker, keyof CoEmojiPickerAttributes> & { [K in keyof CoEmojiPicker & keyof CoEmojiPickerAttributes]?: CoEmojiPicker[K] } & { [K in keyof CoEmojiPicker & keyof CoEmojiPickerAttributes as `attr:${K}`]?: CoEmojiPickerAttributes[K] } & { [K in keyof CoEmojiPicker & keyof CoEmojiPickerAttributes as `prop:${K}`]?: CoEmojiPicker[K] };
13068
13251
  "co-empty-state": Omit<CoEmptyState, keyof CoEmptyStateAttributes> & { [K in keyof CoEmptyState & keyof CoEmptyStateAttributes]?: CoEmptyState[K] } & { [K in keyof CoEmptyState & keyof CoEmptyStateAttributes as `attr:${K}`]?: CoEmptyStateAttributes[K] } & { [K in keyof CoEmptyState & keyof CoEmptyStateAttributes as `prop:${K}`]?: CoEmptyState[K] };
13069
13252
  "co-event-calendar": Omit<CoEventCalendar, keyof CoEventCalendarAttributes> & { [K in keyof CoEventCalendar & keyof CoEventCalendarAttributes]?: CoEventCalendar[K] } & { [K in keyof CoEventCalendar & keyof CoEventCalendarAttributes as `attr:${K}`]?: CoEventCalendarAttributes[K] } & { [K in keyof CoEventCalendar & keyof CoEventCalendarAttributes as `prop:${K}`]?: CoEventCalendar[K] };
13070
13253
  "co-event-popover": Omit<CoEventPopover, keyof CoEventPopoverAttributes> & { [K in keyof CoEventPopover & keyof CoEventPopoverAttributes]?: CoEventPopover[K] } & { [K in keyof CoEventPopover & keyof CoEventPopoverAttributes as `attr:${K}`]?: CoEventPopoverAttributes[K] } & { [K in keyof CoEventPopover & keyof CoEventPopoverAttributes as `prop:${K}`]?: CoEventPopover[K] };
@@ -13344,6 +13527,18 @@ declare module "@stencil/core" {
13344
13527
  * Report ref: 3.17 (446–449); drag overlay spec: report lines 135–136.
13345
13528
  */
13346
13529
  "co-drop-zone": LocalJSX.IntrinsicElements["co-drop-zone"] & JSXBase.HTMLAttributes<HTMLCoDropZoneElement>;
13530
+ /**
13531
+ * Selector de emoji: buscador + strip de categorías + grilla virtualizada.
13532
+ * Es un PRIMITIVO de panel, igual que co-option-list: no renderiza trigger ni
13533
+ * chrome (popover/dialog/ancho). El host lo compone — típicamente dentro de un
13534
+ * `<co-popover>` colgado de su propio botón.
13535
+ * Dataset: 1906 emoji del set RGI, empaquetados como texto (~16 KB gz). Los
13536
+ * nombres localizados (es/pt) se cargan con `import()` dinámico solo cuando el
13537
+ * `locale` los pide; en inglés no se descargan nunca.
13538
+ * @event coSelect - El emoji elegido: `{ emoji, name }`.
13539
+ * @event coClose - Escape con el buscador vacío (el host decide si cierra).
13540
+ */
13541
+ "co-emoji-picker": LocalJSX.IntrinsicElements["co-emoji-picker"] & JSXBase.HTMLAttributes<HTMLCoEmojiPickerElement>;
13347
13542
  /**
13348
13543
  * Empty state placeholder — icon, title, description, and action buttons.
13349
13544
  */
@@ -0,0 +1,22 @@
1
+ export interface EmojiStrings {
2
+ /** Placeholder del buscador. */
3
+ searchPlaceholder: string;
4
+ /** Mensaje cuando la búsqueda no devuelve nada. */
5
+ emptyMessage: string;
6
+ /** aria-label del panel completo. */
7
+ pickerLabel: string;
8
+ /** aria-label de la grilla de resultados. */
9
+ gridLabel: string;
10
+ /** aria-label del strip de categorías. */
11
+ categoriesLabel: string;
12
+ /** Nombres visibles de cada categoría, por slug. */
13
+ categories: Record<string, string>;
14
+ /** aria-label del botón que abre el selector de tono. */
15
+ skinToneLabel: string;
16
+ /** Nombres de los 6 tonos, alineados con SKIN_TONE_KEYS ('' primero). */
17
+ skinTones: string[];
18
+ }
19
+ /** Ícono Phosphor de cada categoría, para el strip de navegación. */
20
+ export declare const EMOJI_CATEGORY_ICONS: Record<string, string>;
21
+ /** Resolve the built-in UI strings for a locale. */
22
+ export declare function getEmojiStrings(locale?: string): EmojiStrings;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Slotted-content detection for shadow-DOM wrappers.
3
+ *
4
+ * WHY THIS EXISTS — `:empty` cannot see across a `<slot>`. A wrapper that holds
5
+ * only `<slot name="footer" />` always has ONE element child (the `<slot>`
6
+ * itself), so `.wrapper:empty` NEVER matches, and the wrapper keeps painting its
7
+ * padding / border-top even when the consumer projects nothing. The classic
8
+ * symptom is a footer strip with a divider line under an otherwise empty modal
9
+ * or drawer, which consumers then patch away with `::part(footer){display:none}`.
10
+ *
11
+ * Slotted presence therefore has to be tracked in JS, driven by `slotchange`,
12
+ * and mapped to a `--empty` / `--show` modifier class the CSS can key off.
13
+ *
14
+ * The `<slot>` itself must stay MOUNTED for this to work: never gate the slot
15
+ * behind the resulting flag (`{hasFooter && <slot/>}`), or the slot disappears,
16
+ * `slotchange` can never fire again and content projected later never shows up.
17
+ * Hide the WRAPPER, keep the slot.
18
+ */
19
+ export declare function slotHasContent(e: Event): boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prolibu-suite/cobalt-core",
3
- "version": "0.9.1",
3
+ "version": "0.9.2",
4
4
  "description": "Cobalt Design System — Framework-agnostic Web Components built with Stencil",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.js",
@@ -50,10 +50,10 @@
50
50
  "@phosphor-icons/core": "^2.1.1",
51
51
  "dompurify": "^3.2.6",
52
52
  "overlayscrollbars": "^2.16.0",
53
- "@prolibu-suite/cobalt-calendar-utils": "0.1.0",
54
53
  "@prolibu-suite/cobalt-rich-text": "0.1.2",
55
- "@prolibu-suite/cobalt-date-utils": "0.1.1",
56
- "@prolibu-suite/cobalt-tokens": "0.4.0"
54
+ "@prolibu-suite/cobalt-tokens": "0.4.0",
55
+ "@prolibu-suite/cobalt-calendar-utils": "0.1.0",
56
+ "@prolibu-suite/cobalt-date-utils": "0.1.1"
57
57
  },
58
58
  "devDependencies": {
59
59
  "@stencil/core": "^4.43.4",
@@ -1 +0,0 @@
1
- import{r as i,h as t}from"./p-CrtiywTB.js";const e=class{constructor(t){i(this,t),this.video=!1,this.height="132px",this.radius=10}toCss(i){if("number"==typeof i)return`${i}px`;const t=String(i).trim();return/^-?\d*\.?\d+$/.test(t)?`${t}px`:t}render(){var i;return t("div",{key:"42fce6b31a7fe5a35b41b28d96a67c800151bcec",class:{"co-media-thumb":!0,"co-media-thumb--video":this.video},part:"thumb",style:{height:this.toCss(this.height),borderRadius:`${this.radius}px`}},this.src?t("img",{class:"co-media-thumb__img",src:this.src,alt:null!==(i=this.alt)&&void 0!==i?i:"",part:"img"}):t("slot",null),this.video&&t("div",{key:"4430246548961644d9f42f92553500940f4df104",class:"co-media-thumb__scrim",part:"scrim"},t("div",{key:"77caecbab8334f1cfdc962ad0324a3955b96efa4",class:"co-media-thumb__play",part:"play"},t("svg",{key:"ebec80f90e363b1702bbb4c7dbc769d2e864a9a5",class:"co-media-thumb__play-icon",width:"16",height:"18",viewBox:"0 0 16 18",fill:"none","aria-hidden":"true"},t("path",{key:"8e8d03f91df6cf4fb9cf18f03805739689563eb0",d:"M2 2l12 7-12 7z",fill:"var(--co-color-base-negro, #1f1c1b)"})))))}};e.style=":host{display:block}.co-media-thumb{position:relative;overflow:hidden;width:100%;background:var(--co-color-gray-100, #f6f6f6);box-sizing:border-box}.co-media-thumb__img{width:100%;height:100%;object-fit:cover;display:block}.co-media-thumb__scrim{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(31, 28, 27, 0.28)}.co-media-thumb__play{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:rgba(255, 255, 255, 0.92)}.co-media-thumb__play-icon{display:block;margin-left:2px;}";export{e as co_media_thumb}
@@ -1 +0,0 @@
1
- import{r as a,c as e,h as d}from"./p-CrtiywTB.js";const o=class{constructor(d){a(this,d),this.coModeChange=e(this,"coModeChange",7),this.mode="full"}render(){return d("nav",{key:"ad5f66c721365f3a9ca2192765df243e8dea492e",class:{"co-sidebar":!0,[`co-sidebar--${this.mode}`]:!0},part:"sidebar"},d("div",{key:"45a2250516e1080f79b4a4554a0db7715c30066d",class:"co-sidebar__header",part:"header"},d("slot",{key:"04a468d4eb6cf9bbd2acc482ba50defc4271166e",name:"header"})),d("div",{key:"730e37997945ce8bc7bc2d177beb25bbd0a1813f",class:"co-sidebar__body",part:"body"},d("slot",{key:"22c20554c8f2d85952d43484cda5903dbf33588d"})),d("div",{key:"6bb53d0394b9107ea1553e21047d51ea5fe0f292",class:"co-sidebar__footer",part:"footer"},d("slot",{key:"2b326d1beed32288d50ba17abad459929ed1e940",name:"footer"})))}};o.style=":host{display:flex;height:100%}.co-sidebar{display:flex;flex-direction:column;background:var(--co-semantic-surface-page);border-right:1px solid var(--co-semantic-border-subtle);font-family:var(--co-font-family-primary);box-sizing:border-box;overflow:hidden;transition:width var(--co-motion-duration-base) var(--co-motion-ease-out)}.co-sidebar--full{width:256px}.co-sidebar--min{width:58px;align-items:center}.co-sidebar__header{padding:var(--co-spacing-lg);flex-shrink:0}.co-sidebar--min .co-sidebar__header{padding:var(--co-spacing-md)}.co-sidebar__body{flex:1;overflow-y:auto;padding:var(--co-spacing-sm2) var(--co-spacing-md)}.co-sidebar--min .co-sidebar__body{padding:var(--co-spacing-sm2)}.co-sidebar__footer{padding:var(--co-spacing-md) var(--co-spacing-lg);flex-shrink:0}.co-sidebar--min .co-sidebar__footer{padding:var(--co-spacing-md)}.co-sidebar__header:empty,.co-sidebar__footer:empty{display:none}";export{o as co_sidebar}
@@ -1 +0,0 @@
1
- import{r as t,c as i,h as a,H as o,a as s}from"./p-CrtiywTB.js";import{c as e}from"./p-BMdapAL8.js";const r=class{constructor(a){t(this,a),this.coClose=i(this,"coClose",3),this.open=!1,this.placement="right-start",this.dot=!0,this.closeOnEscape=!0,this.closeOnClickOutside=!0,this.position=()=>{if(!this.open||!this.panelEl||!this.anchorRect)return;const t=this.anchorRect,i={top:t.top,left:t.left,right:t.left+t.width,bottom:t.top+t.height,width:t.width,height:t.height},a=this.panelEl.getBoundingClientRect(),{top:o,left:s}=e(i,a,{placement:this.placement,offset:8,flip:!0});this.panelEl.style.top=`${o}px`,this.panelEl.style.left=`${s}px`},this.onScroll=()=>{this.open&&this.requestClose()},this.onKeydown=t=>{this.open&&this.closeOnEscape&&"Escape"===t.key&&(t.stopPropagation(),this.requestClose())},this.onPointerDown=t=>{if(!this.open||!this.closeOnClickOutside||!this.panelEl)return;const i=t.composedPath();i.includes(this.panelEl)||i.includes(this.el)||this.requestClose()}}componentDidLoad(){this.open&&this.onOpenChange(!0)}onOpenChange(t){var i;t?(this.prevFocus=null!==(i=document.activeElement)&&void 0!==i?i:void 0,requestAnimationFrame((()=>this.promoteAndPosition()))):(this.dismissPanel(),this.prevFocus&&this.prevFocus.focus())}onAnchorChange(){this.open&&this.position()}disconnectedCallback(){this.teardownListeners()}promoteAndPosition(){var t,i;if(this.open&&this.panelEl){try{null===(i=(t=this.panelEl).showPopover)||void 0===i||i.call(t)}catch(t){}this.position(),this.panelEl.focus(),window.addEventListener("resize",this.onScroll),window.addEventListener("scroll",this.onScroll,!0),window.addEventListener("keydown",this.onKeydown,!0),window.addEventListener("pointerdown",this.onPointerDown,!0)}}dismissPanel(){var t,i;try{null===(i=null===(t=this.panelEl)||void 0===t?void 0:t.hidePopover)||void 0===i||i.call(t)}catch(t){}this.teardownListeners()}teardownListeners(){window.removeEventListener("resize",this.onScroll),window.removeEventListener("scroll",this.onScroll,!0),window.removeEventListener("keydown",this.onKeydown,!0),window.removeEventListener("pointerdown",this.onPointerDown,!0)}requestClose(){this.coClose.emit()}render(){return a(o,{key:"9d9ef1be12cef8d6703df32d7e768bd4b33f5894"},a("div",{key:"ea63b1ab102045fc94c9d095cfcace4975f3fa70",class:"pop",popover:"manual",role:"dialog","aria-modal":"false","aria-label":this.popoverLabel,tabIndex:-1,ref:t=>this.panelEl=t},a("div",{key:"c7f1c90eadd6fad31c60e6ac9878d7a5aa473ba0",class:"pop__actions",part:"actions"},a("slot",{key:"84dd97edf67abeabba540914167b5bc3873587b3",name:"actions"})),a("div",{key:"41b360d62f4e61826a67a3445a0554a29a80d58a",class:"pop__head"},this.dot&&a("span",{key:"7b5d2f30b23464a73164f056719ae65d28786696",class:"pop__dot",style:this.color?{background:this.color}:{}}),a("div",{key:"f9ef28f360297b6e145929ecbbcc4145b1ea855c",class:"pop__body",part:"body"},a("slot",{key:"9029fc9c2c99a8202185a21f1a0212145b61334b"})))))}get el(){return s(this)}static get watchers(){return{open:[{onOpenChange:0}],anchorRect:[{onAnchorChange:0}]}}};r.style=":host{display:contents}.pop{position:fixed;margin:0;inset:auto;width:400px;max-width:calc(100vw - 24px);max-height:calc(100vh - 24px);overflow:auto;background:var(--co-semantic-surface-page);border:1px solid var(--co-semantic-border-default);border-radius:var(--co-border-radius-md, 14px);box-shadow:var(--co-shadow-xl, var(--co-shadow-lg));padding:0;z-index:1000;font-family:var(--co-font-family-primary);color:var(--co-semantic-text-default);animation:co-pop-in var(--co-motion-duration-fast) var(--co-motion-ease-out);outline:none}@keyframes co-pop-in{from{opacity:0;transform:scale(0.96)}to{opacity:1;transform:scale(1)}}.pop__actions{display:flex;justify-content:flex-end;gap:var(--co-spacing-xxs);padding:var(--co-spacing-sm2) var(--co-spacing-sm2) 0}.pop__head{display:flex;gap:var(--co-spacing-md);padding:var(--co-spacing-xs) var(--co-spacing-xl) var(--co-spacing-xl)}.pop__dot{flex:0 0 auto;width:14px;height:14px;border-radius:var(--co-border-radius-xxs);margin-top:5px;background:var(--co-color-primary-azul)}.pop__body{min-width:0;flex:1 1 auto}";export{r as co_event_popover}
@@ -1 +0,0 @@
1
- import{r as t,c as e,h as s,a as o}from"./p-CrtiywTB.js";const i=class{constructor(s){t(this,s),this.coOpen=e(this,"coOpen",3),this.coClose=e(this,"coClose",3),this.placement="bottom-end",this.offset=4,this.autoClose=!0,this.open=!1,this.handleKeydown=t=>{if(this.open)switch(t.key){case"Escape":t.preventDefault(),t.stopPropagation(),this.open=!1;break;case"ArrowDown":case"ArrowUp":t.preventDefault(),this.moveFocus("ArrowDown"===t.key?1:-1)}},this.handlePopoverOpen=()=>{this.open=!0,this.coOpen.emit()},this.handlePopoverClose=()=>{this.open=!1,this.coClose.emit()}}handleMenuSelect(){this.autoClose&&(this.open=!1)}onOpenChange(t){t?(document.addEventListener("keydown",this.handleKeydown,!0),requestAnimationFrame((()=>this.focusFirstItem()))):document.removeEventListener("keydown",this.handleKeydown,!0)}disconnectedCallback(){document.removeEventListener("keydown",this.handleKeydown,!0)}async focusFirstItem(){var t,e;null===(e=null===(t=this.getMenuItems()[0])||void 0===t?void 0:t.focusItem)||void 0===e||e.call(t)}getMenuItems(){return Array.from(this.el.querySelectorAll("co-menu-item"))}moveFocus(t){var e,s;const o=this.getMenuItems().filter((t=>!t.disabled));if(0===o.length)return;const i=document.activeElement;let n=o.findIndex((t=>t===i||t.contains(i)));-1===n&&(n=t>0?-1:o.length),null===(s=null===(e=o[(n+t+o.length)%o.length])||void 0===e?void 0:e.focusItem)||void 0===s||s.call(e)}render(){return s("co-popover",{key:"afc38289103988c2e71fd219e397f475924ebddc",placement:this.placement,offset:this.offset,open:this.open,onCoOpen:this.handlePopoverOpen,onCoClose:this.handlePopoverClose},s("slot",{key:"35c3defb8ea82fc1a077cd77f75168d1455d8a5c",name:"trigger",slot:"trigger"}),s("div",{key:"4a741c330a25f412396a4331dd63e839334acba4",class:"co-menu",role:"menu",style:this.width?{width:this.width,minWidth:this.width}:void 0},s("slot",{key:"3448b69c6c6be4aa2fcf8dcbe1cef4298b266699"})))}get el(){return o(this)}static get watchers(){return{open:[{onOpenChange:0}]}}};i.style=":host{display:contents}.co-menu{background:var(--co-semantic-surface-secondary, #fff);border-radius:var(--co-border-radius-sm, 12px);box-shadow:var(--co-shadow-lg, 0 4px 12px rgba(0, 0, 0, 0.08), 0 1px 3px rgba(0, 0, 0, 0.04)), inset 0 0 0 1px var(--co-color-opacity-negro-8, rgba(31, 28, 27, 0.08));padding:var(--co-menu-padding, var(--co-spacing-xs, 4px));min-width:200px;display:flex;flex-direction:column;gap:2px;font-family:var(--co-font-family-primary);font-size:var(--co-font-size-14, 14px);color:var(--co-semantic-text-default)}";export{i as co_menu}
@@ -1 +0,0 @@
1
- import{r as e,h as a}from"./p-CrtiywTB.js";const c=class{constructor(a){e(this,a)}render(){return a("div",{key:"305f42c88d10f238351f362b72283abe82eaeb20",class:"co-page-header",part:"page-header"},a("div",{key:"10185fe127049bfece585c59f92824888113861e",class:"co-page-header__left"},this.icon&&a("span",{key:"017bc4f2aed8d05999c581ce0d7a4797aa84eff6",class:"co-page-header__icon"},a("co-icon",{key:"7d5863437875aa09ad3bbe9e12c0b5d5c9f5c0c7",name:this.icon,size:24})),a("span",{key:"e62ead8cb061045d8995689dce3009e9843e3997",class:"co-page-header__title"},a("slot",{key:"9e1d01a94942daeeb1c56f1d0f05534b45125422"},this.heading))),a("div",{key:"5a2dd08e5b11ab33e64ddb581196d8535deb0925",class:"co-page-header__actions"},a("slot",{key:"7fd3a5ea06593c9208a59ba2812bb827f1d39815",name:"actions"})))}};c.style=":host{display:block}.co-page-header{display:flex;align-items:center;justify-content:space-between;padding:var(--co-spacing-lg) var(--co-spacing-xl);font-family:var(--co-font-family-primary);border-bottom:1px solid var(--co-semantic-border-subtle);background:var(--co-semantic-surface-page);min-height:72px;box-sizing:border-box}.co-page-header__left{display:flex;align-items:center;gap:var(--co-spacing-md)}.co-page-header__icon{display:flex;color:var(--co-semantic-text-muted)}.co-page-header__title{font-size:var(--co-font-size-18);font-weight:600;color:var(--co-semantic-text-default)}.co-page-header__actions{display:flex;align-items:center;gap:var(--co-spacing-md)}.co-page-header__actions:empty{display:none}";export{c as co_page_header}
@@ -1 +0,0 @@
1
- import{r as e,c as t,h as a,a as r}from"./p-CrtiywTB.js";import{g as o}from"./p-CnNpoKwg.js";import{b as i,d as s,a as c,p as n,i as d,h as l,s as h,c as f,e as p,j as u,g,k as m,f as b,l as v}from"./p-BU7SQCje.js";import{R as _}from"./p-T4la7ly_.js";const w=class{constructor(a){e(this,a),this.coSelect=t(this,"coSelect",7),this.coRangeSelect=t(this,"coRangeSelect",7),this.mode="single",this.locale="es-CO",this.firstDayOfWeek=1,this.hoverDay=null,this.view="days",this.shouldFocusGrid=!1,this.handleDayHover=e=>{"range"===this.mode&&(this.hoverDay=e)},this.handlePrev=()=>this.step(-1),this.handleNext=()=>this.step(1),this.toggleView=()=>{this.view="days"===this.view?"months":"months"===this.view?"years":"days"},this.handleGridKeyDown=e=>{const t=this.focused;let a=!0;switch(e.key){case"ArrowLeft":this.moveFocus(s(t,-1));break;case"ArrowRight":this.moveFocus(s(t,1));break;case"ArrowUp":this.moveFocus(s(t,-7));break;case"ArrowDown":this.moveFocus(s(t,7));break;case"Home":this.moveFocus(y(t,this.firstDayOfWeek));break;case"End":this.moveFocus(s(y(t,this.firstDayOfWeek),6));break;case"PageUp":this.moveFocus(i(t,e.shiftKey?-12:-1));break;case"PageDown":this.moveFocus(i(t,e.shiftKey?12:1));break;case"Enter":case" ":this.selectDay(t);break;default:a=!1}a&&(e.preventDefault(),e.stopPropagation())}}componentWillLoad(){var e;const t=null!==(e=this.anchorValue)&&void 0!==e?e:c(),a=n(t);this.viewYear=a.year,this.viewMonth=a.month,this.focused=this.initialFocus()}onValueChange(){if(!this.selectedValue)return;const e=n(this.selectedValue);this.viewYear=e.year,this.viewMonth=e.month,this.focused=this.selectedValue}async focusGrid(){this.shouldFocusGrid=!0,this.focusFocusedCell()}get selectedValue(){return d(this.value)?this.value:null}get rangeStartV(){return d(this.rangeStart)?this.rangeStart:null}get rangeEndV(){return d(this.rangeEnd)?this.rangeEnd:null}get anchorValue(){return"range"===this.mode?this.rangeStartV:this.selectedValue}get disabledOpts(){return{min:this.min,max:this.max,disabledDates:x(this.disabledDates),disabledDaysOfWeek:L(this.disabledDaysOfWeek)}}isDayDisabled(e){return l(e,this.disabledOpts)}initialFocus(){const e=this.anchorValue;if(e&&!this.isDayDisabled(e))return e;const t=c(),a=n(t);if(a.year===this.viewYear&&a.month===this.viewMonth&&!this.isDayDisabled(t))return t;const r=`${String(this.viewYear).padStart(4,"0")}-${String(this.viewMonth).padStart(2,"0")}-01`;let o=r;for(let e=0;e<31;e++){const e=n(o);if(!e||e.month!==this.viewMonth)break;if(!this.isDayDisabled(o))return o;o=s(o,1)}return r}selectDay(e){this.isDayDisabled(e)||(this.focused=e,"range"===this.mode?this.selectRangeDay(e):this.coSelect.emit(e))}selectRangeDay(e){const t=this.rangeStartV;let a;a=!t||t&&this.rangeEndV?{start:e,end:null}:f(e,t)<0?{start:e,end:t}:{start:t,end:e},this.coRangeSelect.emit(a)}moveFocus(e){this.focused=e;const t=n(e);t.year===this.viewYear&&t.month===this.viewMonth||(this.viewYear=t.year,this.viewMonth=t.month),this.shouldFocusGrid=!0}step(e){if("days"===this.view){const t=i(`${this.viewYear}-${String(this.viewMonth).padStart(2,"0")}-01`,e),a=n(t);this.viewYear=a.year,this.viewMonth=a.month}else this.viewYear+="months"===this.view?e:10*e}selectMonth(e){this.viewMonth=e,this.view="days"}selectYear(e){this.viewYear=e,this.view="months"}get decadeStart(){return 10*Math.floor(this.viewYear/10)}get selectedYM(){const e="range"===this.mode?this.rangeStartV:this.selectedValue;if(!e)return null;const t=n(e);return{year:t.year,month:t.month}}isMonthDisabled(e,t){const a=`${String(e).padStart(4,"0")}-${String(t).padStart(2,"0")}-01`,r=s(h(i(a,1)),-1);return!!(this.min&&f(r,this.min)<0)||!!(this.max&&f(a,this.max)>0)}isYearDisabled(e){const t=`${String(e).padStart(4,"0")}-01-01`,a=`${String(e).padStart(4,"0")}-12-31`;return!!(this.min&&f(a,this.min)<0)||!!(this.max&&f(t,this.max)>0)}componentDidRender(){this.shouldFocusGrid&&(this.shouldFocusGrid=!1,this.focusFocusedCell())}focusFocusedCell(){var e;const t=null===(e=this.el.shadowRoot)||void 0===e?void 0:e.querySelector(`[data-date="${this.focused}"]`);null==t||t.focus()}rangeFlags(e){const t=this.rangeStartV,a=this.rangeEndV;if(!t)return{isStart:!1,isEnd:!1,inRange:!1};const r=null!=a?a:this.hoverDay&&!a?this.hoverDay:null;if(!r)return{isStart:0===f(e,t),isEnd:!1,inRange:!1};const o=f(t,r)<=0?t:r,i=f(t,r)<=0?r:t;return{isStart:0===f(e,o),isEnd:0===f(e,i),inRange:f(e,o)>0&&f(e,i)<0}}dayClass(e,t,a){const r=0===f(e,c());if("range"===this.mode){const{isStart:o,isEnd:i,inRange:s}=this.rangeFlags(e);return{"co-calendar__day":!0,"co-calendar__day--outside":!t,"co-calendar__day--today":r&&!(o||i)&&!s,"co-calendar__day--range-start":o,"co-calendar__day--range-end":i,"co-calendar__day--in-range":s,"co-calendar__day--disabled":a}}const o=this.selectedValue,i=!!o&&0===f(e,o);return{"co-calendar__day":!0,"co-calendar__day--outside":!t,"co-calendar__day--today":r&&!i,"co-calendar__day--selected":i,"co-calendar__day--disabled":a}}headerTitle(){return"months"===this.view?String(this.viewYear):"years"===this.view?`${this.decadeStart}–${this.decadeStart+9}`:p(this.viewYear,this.viewMonth,this.locale,"long")}renderDays(e){const t=p(this.viewYear,this.viewMonth,this.locale,"long"),r=u(this.locale,this.firstDayOfWeek,"short"),o=u(this.locale,this.firstDayOfWeek,"long"),i=g(this.viewYear,this.viewMonth,this.firstDayOfWeek);return a("div",{class:"co-calendar__grid",part:"grid",role:"grid","aria-label":t,onKeyDown:this.handleGridKeyDown},a("div",{class:"co-calendar__row co-calendar__row--dow",role:"row"},r.map(((e,t)=>a("span",{class:"co-calendar__dow",role:"columnheader","aria-label":o[t]},e)))),i.map((e=>a("div",{class:"co-calendar__row",role:"row"},e.map((e=>{const t=this.isDayDisabled(e.value),r=0===f(e.value,this.focused),o=0===f(e.value,c());let i;if("range"===this.mode){const{isStart:t,isEnd:a}=this.rangeFlags(e.value);i=t||a}else{const t=this.selectedValue;i=!!t&&0===f(e.value,t)}const s=n(e.value).day;return a("button",{type:"button",role:"gridcell","data-date":e.value,class:this.dayClass(e.value,e.inMonth,t),tabIndex:r?0:-1,"aria-selected":i?"true":"false","aria-current":o?"date":void 0,"aria-disabled":t?"true":void 0,"aria-label":m(e.value,this.locale),onClick:()=>this.selectDay(e.value),onMouseEnter:()=>this.handleDayHover(e.value),onMouseLeave:()=>this.handleDayHover(null)},s)}))))))}renderMonths(){const e=this.selectedYM,t=new Date;return a("div",{class:"co-calendar__panel",part:"grid"},Array.from({length:12},((r,o)=>{const i=o+1,s=new Intl.DateTimeFormat(this.locale,{month:"short"}).format(new Date(this.viewYear,o,1)),c=this.isMonthDisabled(this.viewYear,i),n=!!e&&e.year===this.viewYear&&e.month===i,d=t.getFullYear()===this.viewYear&&t.getMonth()===o;return a("button",{type:"button",class:{"co-calendar__cell":!0,"co-calendar__cell--selected":n,"co-calendar__cell--today":d&&!n,"co-calendar__cell--disabled":c},disabled:c,"aria-current":d?"date":void 0,onClick:()=>this.selectMonth(i)},s)})))}renderYears(){const e=this.selectedYM,t=(new Date).getFullYear(),r=this.decadeStart-1;return a("div",{class:"co-calendar__panel",part:"grid"},Array.from({length:12},((o,i)=>{const s=r+i,c=this.isYearDisabled(s),n=!!e&&e.year===s,d=t===s;return a("button",{type:"button",class:{"co-calendar__cell":!0,"co-calendar__cell--muted":s<this.decadeStart||s>this.decadeStart+9,"co-calendar__cell--selected":n,"co-calendar__cell--today":d&&!n,"co-calendar__cell--disabled":c},disabled:c,"aria-current":d?"date":void 0,onClick:()=>this.selectYear(s)},s)})))}render(){var e,t;const r=o(this.locale);return a("div",{key:"795529e38ec7b72934d786b9dcaa5046e73fbde8",class:"co-calendar",part:"root"},a("div",{key:"f409d1670f4f649d8e91f21915e0008d9ed330ac",class:"co-calendar__header",part:"header"},a("button",{key:"23a4f12ec30cd86e49661daf755a6d2e23b209ad",type:"button",class:"co-calendar__nav",onClick:this.handlePrev,"aria-label":null!==(e=this.prevMonthLabel)&&void 0!==e?e:r.prevMonth},a("co-icon",{key:"ce6b736011e3ed13781cac180fe4542ec38c75c3",name:"caret-left",size:16})),a("button",{key:"b1fcbb3d09e33b0b462bc278b46e14a348f9f9a9",type:"button",class:"co-calendar__title","aria-live":"polite",onClick:this.toggleView},this.headerTitle(),a("co-icon",{key:"dbe1800ed74e234dc8f334183e504d19d8ab9d74",name:"caret-down",size:12,class:"co-calendar__title-caret"})),a("button",{key:"bdbda5999d20cb799aeabe48ebad6e8a4d7d89ff",type:"button",class:"co-calendar__nav",onClick:this.handleNext,"aria-label":null!==(t=this.nextMonthLabel)&&void 0!==t?t:r.nextMonth},a("co-icon",{key:"ec2e268c38d04d1f298cfb12d29647b530b03a94",name:"caret-right",size:16}))),"days"===this.view&&this.renderDays(r),"months"===this.view&&this.renderMonths(),"years"===this.view&&this.renderYears())}get el(){return r(this)}static get watchers(){return{value:[{onValueChange:0}]}}};function y(e,t){const a=n(e);if(!a)return e;const r=new Date(a.year,a.month-1,a.day).getDay();return s(e,-(r-t+7)%7)}function x(e){if(Array.isArray(e))return e;if("string"==typeof e&&e.trim()){const t=e.trim();try{const e=JSON.parse(t);if(Array.isArray(e))return e.map(String)}catch(e){}return t.split(",").map((e=>e.trim())).filter(Boolean)}return[]}function L(e){if(Array.isArray(e))return e;if("string"==typeof e&&e.trim()){const t=e.trim();try{const e=JSON.parse(t);if(Array.isArray(e))return e.map(Number).filter((e=>!Number.isNaN(e)))}catch(e){}return t.split(",").map((e=>Number(e.trim()))).filter((e=>!Number.isNaN(e)))}return[]}w.style=":host{display:inline-block;font-family:var(--co-font-family-primary);--co-calendar-day-size:36px}:host([data-touch]){--co-calendar-day-size:44px}.co-calendar{display:flex;flex-direction:column;gap:var(--co-spacing-sm);width:max-content}.co-calendar__header{display:flex;align-items:center;justify-content:space-between;padding:0 var(--co-spacing-xs)}.co-calendar__month{font-size:var(--co-font-size-14);font-weight:600;color:var(--co-semantic-text-default);text-transform:capitalize}.co-calendar__title{display:inline-flex;align-items:center;gap:var(--co-spacing-xxs);background:none;border:0;cursor:pointer;font-family:inherit;font-size:var(--co-font-size-14);font-weight:600;color:var(--co-semantic-text-default);text-transform:capitalize;padding:var(--co-spacing-xxs) var(--co-spacing-sm);border-radius:var(--co-border-radius-xs)}.co-calendar__title:hover{background:var(--co-semantic-surface-hover)}.co-calendar__title:focus-visible{outline:2px solid var(--co-semantic-border-focus);outline-offset:1px}.co-calendar__title-caret{color:var(--co-semantic-text-muted)}.co-calendar__panel{display:grid;grid-template-columns:repeat(3, 1fr);gap:var(--co-spacing-xs);width:calc(var(--co-calendar-day-size) * 7 + 12px);padding-top:var(--co-spacing-xs)}.co-calendar__cell{height:calc(var(--co-calendar-day-size) + 8px);display:inline-flex;align-items:center;justify-content:center;background:none;border:1px solid transparent;border-radius:var(--co-border-radius-xs);font-family:inherit;font-size:var(--co-font-size-14);color:var(--co-semantic-text-default);cursor:pointer;text-transform:capitalize;transition:background var(--co-motion-duration-fast) var(--co-motion-ease-out), color var(--co-motion-duration-fast) var(--co-motion-ease-out), border-color var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-calendar__cell:hover:not(.co-calendar__cell--disabled):not(.co-calendar__cell--selected){background:var(--co-semantic-surface-hover)}.co-calendar__cell:focus-visible{outline:2px solid var(--co-semantic-border-focus);outline-offset:1px}.co-calendar__cell--muted{color:var(--co-semantic-text-muted)}.co-calendar__cell--today{border-color:var(--co-semantic-surface-primary);font-weight:600}.co-calendar__cell--selected{background:var(--co-semantic-surface-primary);border-color:var(--co-semantic-surface-primary);color:var(--co-semantic-on-primary);font-weight:600}.co-calendar__cell--disabled{color:var(--co-semantic-text-disabled);cursor:not-allowed}.co-calendar__nav{background:none;border:0;cursor:pointer;padding:var(--co-spacing-xs);border-radius:var(--co-border-radius-xxs);display:inline-flex;align-items:center;color:var(--co-semantic-text-default)}.co-calendar__nav:hover{background:var(--co-semantic-surface-hover)}.co-calendar__nav:focus-visible{outline:2px solid var(--co-semantic-border-focus);outline-offset:1px}.co-calendar__grid{display:flex;flex-direction:column;gap:2px}.co-calendar__row{display:grid;grid-template-columns:repeat(7, var(--co-calendar-day-size));gap:2px}.co-calendar__row--dow{margin-bottom:2px}.co-calendar__dow{height:24px;display:inline-flex;align-items:center;justify-content:center;font-size:var(--co-font-size-10, 10px);font-weight:600;color:var(--co-semantic-text-muted);text-transform:uppercase;letter-spacing:0.04em}.co-calendar__day{width:var(--co-calendar-day-size);height:var(--co-calendar-day-size);display:inline-flex;align-items:center;justify-content:center;background:none;border:1px solid transparent;border-radius:var(--co-border-radius-xs);font-size:var(--co-font-size-14);font-family:inherit;color:var(--co-semantic-text-default);cursor:pointer;transition:background var(--co-motion-duration-fast) var(--co-motion-ease-out), color var(--co-motion-duration-fast) var(--co-motion-ease-out), border-color var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-calendar__day:hover:not(.co-calendar__day--disabled):not(.co-calendar__day--selected){background:var(--co-semantic-surface-hover)}.co-calendar__day:focus-visible{outline:2px solid var(--co-semantic-border-focus);outline-offset:1px}.co-calendar__day--outside{color:var(--co-semantic-text-muted)}.co-calendar__day--today{border-color:var(--co-semantic-surface-primary);font-weight:600}.co-calendar__day--selected{background:var(--co-semantic-surface-primary);border-color:var(--co-semantic-surface-primary);color:var(--co-semantic-on-primary);font-weight:600}.co-calendar__day--disabled{color:var(--co-semantic-text-disabled);cursor:not-allowed;pointer-events:none}.co-calendar__day--in-range{background:color-mix(in srgb, var(--co-semantic-surface-primary) 8%, transparent);border-radius:0;color:var(--co-semantic-text-default)}.co-calendar__day--range-start,.co-calendar__day--range-end{background:var(--co-semantic-surface-primary);border-color:var(--co-semantic-surface-primary);color:var(--co-semantic-on-primary);font-weight:600}.co-calendar__day--range-start:not(.co-calendar__day--range-end){border-top-right-radius:0;border-bottom-right-radius:0}.co-calendar__day--range-end:not(.co-calendar__day--range-start){border-top-left-radius:0;border-bottom-left-radius:0}";const k=class{constructor(a){e(this,a),this.coInput=t(this,"coInput",7),this.coChange=t(this,"coChange",7),this.coInvalid=t(this,"coInvalid",7),this.coClear=t(this,"coClear",7),this.coFocus=t(this,"coFocus",7),this.coBlur=t(this,"coBlur",7),this.value=null,this.size="md",this.locale="es-CO",this.displayFormat="d MMM yyyy",this.disabled=!1,this.readonly=!1,this.required=!1,this.clearable=!0,this.invalid=!1,this.layout="vertical",this.draft="",this.internalInvalid=!1,this.hasFocus=!1,this.handleInput=e=>{this.draft=e.target.value,this.internalInvalid=!1,this.coInput.emit(this.draft)},this.handleFocus=()=>{this.hasFocus=!0,this.coFocus.emit()},this.handleBlur=()=>{this.hasFocus=!1,this.commit(),this.coBlur.emit()},this.handleKeyDown=e=>{"Enter"===e.key&&(this.commit()||(e.preventDefault(),e.stopPropagation()))},this.handleClear=()=>{var e;this.draft="",this.internalInvalid=!1,null!==this.value&&(this.value=null,this.coChange.emit(null)),this.coClear.emit(),null===(e=this.inputEl)||void 0===e||e.focus()}}componentWillLoad(){this.draft=b(this.value,this.displayFormat,this.locale)}onValueChange(){this.hasFocus||(this.draft=b(this.value,this.displayFormat,this.locale),this.internalInvalid=!1)}async focusInput(){var e;null===(e=this.inputEl)||void 0===e||e.focus()}get order(){const e=this.displayFormat.toLowerCase();return e.startsWith("y")?"ymd":e.startsWith("m")?"mdy":"dmy"}get isInvalid(){return this.invalid||this.internalInvalid}get hasValue(){return""!==this.draft.trim()}commit(){const e=v(this.draft,{order:this.order,locale:this.locale});if("empty"===e.status)return this.internalInvalid=!1,null!==this.value&&(this.value=null,this.coChange.emit(null)),!0;if("invalid"===e.status||null===e.value)return this.internalInvalid=!0,this.coInvalid.emit({raw:this.draft}),!1;const t=e.value;return l(t,{min:this.min,max:this.max,disabledDates:z(this.disabledDates),disabledDaysOfWeek:C(this.disabledDaysOfWeek)})?(this.internalInvalid=!0,this.coInvalid.emit({raw:this.draft}),!1):(this.internalInvalid=!1,this.draft=b(t,this.displayFormat,this.locale),this.value!==t&&(this.value=t,this.coChange.emit(t)),!0)}render(){var e,t;const r=o(this.locale),i=this.clearable&&this.hasValue&&!this.disabled&&!this.readonly,s=this.placeholder||r.setDate,c=this.isInvalid?this.errorMessage:this.helperText;return a("div",{key:"76448762ebc35a510daa099e2b10fffb304a09c1",class:{"co-date-field":!0,"co-date-field--disabled":this.disabled,"co-date-field--focused":this.hasFocus,"co-date-field--filled":this.hasValue,"co-date-field--invalid":this.isInvalid,[`co-date-field--${this.size}`]:!0},part:"wrapper"},this.label&&a("div",{key:"e50f105a589cc7a4098281d2466b875fc70c706c",class:"co-date-field__labels"},a("label",{key:"3dbb87b7f1a4b229afa920352f352cefa0b5be51",class:"co-date-field__label",part:"label"},this.label,a(_,{key:"adad4708c70542e18e241c73dc16522ffc83a52f",required:this.required}))),a("div",{key:"ef8bbba2b0070c21cbff8feba625ada99a75e50f",class:"co-date-field__field-row"},a("div",{key:"a385b086440ef6842049159424664d1f4a9a5cb5",class:"co-date-field__field",part:"field"},a("co-icon",{key:"5ebc11e2f8a0ccaa0534682c6633228c66565396",name:"calendar",size:16,class:"co-date-field__icon"}),a("div",{key:"8ee80f5304623f8da75f20eb93d6fe3eb927d0f1",class:"co-date-field__input-wrapper"},a("input",{key:"c156767ea4818750c5b00f2f965c026417ef6bd2",ref:e=>this.inputEl=e,class:"co-date-field__native",type:"text",inputMode:"numeric",autocomplete:"off",value:this.draft,placeholder:s,disabled:this.disabled,readOnly:this.readonly,required:this.required,"aria-invalid":this.isInvalid?"true":"false","aria-label":this.label?void 0:r.dateLabel,onInput:this.handleInput,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeyDown:this.handleKeyDown,part:"input"})),this.clearable&&a("button",{key:"4d0b388e20ad3f862e310c951ad7a07d620f9d76",class:{"co-date-field__clear":!0,"co-date-field__clear--hidden":!i},type:"button",tabIndex:-1,onMouseDown:e=>e.preventDefault(),onClick:this.handleClear,"aria-label":null!==(e=this.clearLabel)&&void 0!==e?e:r.clearDate,part:"clear"},a("co-icon",{key:"8eb87bc05e53b340b97bdb5f17a3bbd08e2844fc",name:"x-circle",size:16,weight:"fill"})))),this.name&&a("input",{key:"b182c4196a15168a1ad654f00e4c83823b0bf894",type:"hidden",name:this.name,value:null!==(t=this.value)&&void 0!==t?t:""}),c&&a("div",{key:"f2cdef4f478972926e417c03aa6c23269c87fd32",class:{"co-date-field__helper":!0,"co-date-field__helper--error":this.isInvalid},part:"helper"},this.isInvalid&&a("co-icon",{key:"e4a0acf05080876968835be09f4cf04b4b3ee80f",name:"warning-circle",size:14,class:"co-date-field__helper-icon"}),a("span",{key:"2329cec15faab426f09107615e3038428b26182f",class:"co-date-field__helper-text"},c)))}get el(){return r(this)}static get watchers(){return{value:[{onValueChange:0}]}}};function z(e){if(Array.isArray(e))return e;if("string"==typeof e&&e.trim()){try{const t=JSON.parse(e);if(Array.isArray(t))return t.map(String)}catch(e){}return e.split(",").map((e=>e.trim())).filter(Boolean)}return[]}function C(e){if(Array.isArray(e))return e;if("string"==typeof e&&e.trim()){try{const t=JSON.parse(e);if(Array.isArray(t))return t.map(Number).filter((e=>!Number.isNaN(e)))}catch(e){}return e.split(",").map((e=>Number(e.trim()))).filter((e=>!Number.isNaN(e)))}return[]}k.style=":host{display:block;font-family:var(--co-font-family-primary);font-size:var(--co-font-size-14);letter-spacing:var(--co-font-letter-spacing-body);line-height:1}.co-date-field{display:flex;flex-direction:column;gap:var(--co-spacing-sm2)}.co-date-field__labels{display:flex;align-items:center;justify-content:space-between;padding:0 var(--co-spacing-xs);gap:var(--co-spacing-sm2)}.co-date-field__label{color:var(--co-semantic-text-secondary);font-size:var(--co-font-size-14);font-weight:400;letter-spacing:var(--co-font-letter-spacing-body);line-height:1;white-space:nowrap;cursor:default}.co-date-field__field-row{display:flex;align-items:stretch}.co-date-field--s .co-date-field__field{min-height:28px;padding:var(--co-spacing-xxs) var(--co-spacing-sm)}.co-date-field--sm .co-date-field__field{min-height:32px;padding:var(--co-spacing-xs) var(--co-spacing-sm)}.co-date-field--lg .co-date-field__field{min-height:48px;padding:var(--co-spacing-sm) var(--co-spacing-lg)}.co-date-field__field{display:flex;align-items:center;gap:var(--co-spacing-sm2);padding:var(--co-spacing-sm2) var(--co-spacing-md);background:var(--co-semantic-surface-page);border:1px solid var(--co-semantic-border-field);border-radius:var(--co-border-radius-xs);transition:border-color var(--co-motion-duration-fast) var(--co-motion-ease-out), box-shadow var(--co-motion-duration-fast) var(--co-motion-ease-out);min-height:40px;box-sizing:border-box;overflow:hidden;flex:1;min-width:0}.co-date-field__icon{flex-shrink:0;color:var(--co-semantic-text-muted);display:flex;align-items:center}.co-date-field__input-wrapper{flex:1;display:flex;align-items:center;min-width:0;min-height:22px;padding:0}.co-date-field__native{width:100%;border:none;outline:none;background:transparent;font-family:inherit;font-size:inherit;font-weight:400;letter-spacing:inherit;line-height:1;color:var(--co-semantic-text-default);padding:0;margin:0}.co-date-field__native::placeholder{color:var(--co-semantic-text-muted)}.co-date-field__clear{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:16px;padding:0;margin:0;border:none;background:transparent;cursor:pointer;color:var(--co-semantic-text-muted);transition:color var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-date-field__clear--hidden{visibility:hidden;pointer-events:none}.co-date-field__clear:hover{color:var(--co-semantic-text-default)}.co-date-field__helper{display:flex;align-items:center;gap:var(--co-spacing-xs);padding:0 var(--co-spacing-xs)}.co-date-field__helper-icon{flex-shrink:0;color:var(--co-semantic-text-muted);display:flex;align-items:center}.co-date-field__helper-text{color:var(--co-semantic-text-muted);font-size:var(--co-font-size-14);font-weight:400;line-height:1;letter-spacing:var(--co-font-letter-spacing-body)}.co-date-field--focused .co-date-field__field{border-color:var(--co-semantic-border-focus);box-shadow:0 0 0 2px var(--co-semantic-border-focus-ring)}.co-date-field--disabled .co-date-field__labels .co-date-field__label{color:var(--co-semantic-text-disabled)}.co-date-field--disabled .co-date-field__field{background:var(--co-semantic-surface-disabled);border-color:transparent;cursor:not-allowed}.co-date-field--disabled .co-date-field__native{color:var(--co-semantic-text-disabled);cursor:not-allowed}.co-date-field--disabled .co-date-field__native::placeholder{color:var(--co-semantic-text-disabled)}.co-date-field--disabled .co-date-field__icon{color:var(--co-semantic-text-disabled)}.co-date-field--invalid .co-date-field__field{border-color:var(--co-semantic-status-error)}.co-date-field--invalid.co-date-field--focused .co-date-field__field{border-color:var(--co-semantic-status-error);box-shadow:0 0 0 2px rgba(170, 46, 27, 0.12)}.co-date-field__helper--error .co-date-field__helper-icon,.co-date-field__helper--error .co-date-field__helper-text{color:var(--co-semantic-status-error)}:host([layout='horizontal']) .co-date-field{display:grid;grid-template-columns:var(--co-field-label-width, max-content) 1fr;align-items:start;column-gap:var(--co-spacing-md);row-gap:var(--co-spacing-sm2)}:host([layout='horizontal']) .co-date-field__labels{grid-column:1;grid-row:1;padding-top:var(--co-spacing-sm2);min-width:0}:host([layout='horizontal']) .co-date-field__label{white-space:normal}:host([layout='horizontal']) .co-date-field>:not(.co-date-field__labels){grid-column:2;min-width:0}.co-field-required{margin-left:2px;color:var(--co-color-status-error)}.co-field-required__caption{margin-left:4px;color:var(--co-semantic-text-muted);font-size:var(--co-font-size-12);font-weight:400}.co-field-required__caption::before{content:var(--co-field-required-text, ' (required)')}";const S=class{constructor(a){e(this,a),this.coClose=t(this,"coClose",7),this.coOpen=t(this,"coOpen",7),this.coAfterOpen=t(this,"coAfterOpen",7),this.coAfterClose=t(this,"coAfterClose",7),this.open=!1,this.position="right",this.size="md",this.heading="",this.description="",this.icon="",this.closable=!0,this.closeOnOverlay=!0,this.closeOnEscape=!0,this.modeless=!1,this.loading=!1,this.handleOverlayClose=()=>{this.closeOnOverlay&&this.coClose.emit()},this.handleCloseClick=()=>{this.coClose.emit()},this.stopPropagation=e=>{e.stopPropagation()},this.handleTransitionEnd=e=>{"transform"===e.propertyName&&(this.open?this.coAfterOpen.emit():this.coAfterClose.emit())},this.promoteModeless=e=>{e&&(this.asideEl=e);const t=this.asideEl;if(this.modeless&&t&&"function"==typeof t.showPopover)try{t.matches(":popover-open")||t.showPopover()}catch(e){}}}onOpenChange(e,t){e&&!t&&this.coOpen.emit()}handleKey(e){this.open&&this.closeOnEscape&&"Escape"===e.key&&(this.modeless&&document.querySelector("co-drawer[open]:not([modeless]), co-modal[open]")||this.coClose.emit())}componentDidLoad(){this.promoteModeless()}render(){const e=a("aside",{class:{"co-drawer":!0,"co-drawer--open":this.open,"co-drawer--modeless":this.modeless,[`co-drawer--${this.position}`]:!0,[`co-drawer--${this.size}`]:!0},popover:this.modeless?"manual":void 0,ref:this.modeless?this.promoteModeless:void 0,part:"drawer",role:"dialog","aria-modal":this.modeless?"false":"true","aria-labelledby":"co-drawer-heading",onClick:this.stopPropagation,onTransitionEnd:this.handleTransitionEnd},a("div",{class:"co-drawer__card",part:"card"},a("header",{class:"co-drawer__header",part:"header"},a("div",{class:"co-drawer__header-content"},a("slot",{name:"header"},a("div",{class:"co-drawer__heading-row"},this.icon&&a("co-icon",{name:this.icon,size:20,class:"co-drawer__icon"}),a("h2",{class:"co-drawer__heading",id:"co-drawer-heading"},this.heading)),this.description&&a("p",{class:"co-drawer__description"},this.description))),this.closable&&a("button",{class:"co-drawer__close",type:"button","aria-label":"Close",onClick:this.handleCloseClick},a("co-icon",{name:"x",size:20}))),a("div",{class:"co-drawer__tabs",part:"tabs"},a("slot",{name:"tabs"})),a("div",{class:"co-drawer__body",part:"body"},a("slot",null),a("co-loader",{overlay:!0,visible:this.loading,part:"loader"})),a("footer",{class:"co-drawer__footer",part:"footer"},a("slot",{name:"footer"}))));return this.modeless?e:a("co-overlay",{open:this.open,onCoClose:this.handleOverlayClose},e)}get el(){return r(this)}static get watchers(){return{open:[{onOpenChange:0}]}}};S.style=':host{display:contents}.co-drawer{position:fixed;display:flex;flex-direction:column;font-family:var(--co-font-family-primary);transition:transform var(--co-motion-duration-slow) var(--co-motion-ease-in-out);will-change:transform;z-index:1;filter:drop-shadow(0 1px 2px rgba(31, 28, 27, 0.06)) drop-shadow(0 10px 28px rgba(31, 28, 27, 0.12));--co-drawer-r:var(--co-shell-r, var(--co-border-radius-md));--co-sq-tl:url("data:image/svg+xml,<svg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 100 100%27 preserveAspectRatio=%27none%27><path d=%27M100 0L97.5 0L95 0L92.5 0L90 0L87.5 0.01L85 0.01L82.5 0.02L80 0.04L77.5 0.06L75 0.1L72.5 0.14L70 0.2L67.5 0.28L65 0.38L62.5 0.5L60 0.65L57.5 0.83L55 1.04L52.5 1.3L50 1.6L47.5 1.96L45 2.37L42.5 2.85L40 3.41L37.5 4.05L35 4.8L32.5 5.65L30 6.63L27.5 7.77L25 9.07L22.5 10.58L20 12.34L17.5 14.41L15 16.85L12.5 19.79L10 23.42L7.5 28.06L5 34.37L2.5 44.29L0 100L100 100Z%27 fill=%27%23fff%27/></svg>");--co-sq-tr:url("data:image/svg+xml,<svg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 100 100%27 preserveAspectRatio=%27none%27><path d=%27M0 0L2.5 0L5 0L7.5 0L10 0L12.5 0.01L15 0.01L17.5 0.02L20 0.04L22.5 0.06L25 0.1L27.5 0.14L30 0.2L32.5 0.28L35 0.38L37.5 0.5L40 0.65L42.5 0.83L45 1.04L47.5 1.3L50 1.6L52.5 1.96L55 2.37L57.5 2.85L60 3.41L62.5 4.05L65 4.8L67.5 5.65L70 6.63L72.5 7.77L75 9.07L77.5 10.58L80 12.34L82.5 14.41L85 16.85L87.5 19.79L90 23.42L92.5 28.06L95 34.37L97.5 44.29L100 100L0 100Z%27 fill=%27%23fff%27/></svg>");--co-sq-bl:url("data:image/svg+xml,<svg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 100 100%27 preserveAspectRatio=%27none%27><path d=%27M0 0L2.5 55.71L5 65.63L7.5 71.94L10 76.58L12.5 80.21L15 83.15L17.5 85.59L20 87.66L22.5 89.42L25 90.93L27.5 92.23L30 93.37L32.5 94.35L35 95.2L37.5 95.95L40 96.59L42.5 97.15L45 97.63L47.5 98.04L50 98.4L52.5 98.7L55 98.96L57.5 99.17L60 99.35L62.5 99.5L65 99.62L67.5 99.72L70 99.8L72.5 99.86L75 99.9L77.5 99.94L80 99.96L82.5 99.98L85 99.99L87.5 99.99L90 100L92.5 100L95 100L97.5 100L100 100L100 0Z%27 fill=%27%23fff%27/></svg>");--co-sq-br:url("data:image/svg+xml,<svg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 100 100%27 preserveAspectRatio=%27none%27><path d=%27M100 0L97.5 55.71L95 65.63L92.5 71.94L90 76.58L87.5 80.21L85 83.15L82.5 85.59L80 87.66L77.5 89.42L75 90.93L72.5 92.23L70 93.37L67.5 94.35L65 95.2L62.5 95.95L60 96.59L57.5 97.15L55 97.63L52.5 98.04L50 98.4L47.5 98.7L45 98.96L42.5 99.17L40 99.35L37.5 99.5L35 99.62L32.5 99.72L30 99.8L27.5 99.86L25 99.9L22.5 99.94L20 99.96L17.5 99.98L15 99.99L12.5 99.99L10 100L7.5 100L5 100L2.5 100L0 100L0 0Z%27 fill=%27%23fff%27/></svg>")}.co-drawer--right{top:0;right:0;margin:6px;height:100vh;height:-webkit-fill-available;transform:translateX(calc(100% + 12px))}.co-drawer--right.co-drawer--open{transform:translateX(0)}.co-drawer--left{top:0;left:0;margin:6px;height:100vh;height:-webkit-fill-available;transform:translateX(calc(-100% - 12px))}.co-drawer--left.co-drawer--open{transform:translateX(0)}.co-drawer--bottom{bottom:0;left:0;right:0;margin:6px;width:auto;transform:translateY(calc(100% + 12px))}.co-drawer--bottom.co-drawer--open{transform:translateY(0)}.co-drawer--right.co-drawer--sm,.co-drawer--left.co-drawer--sm{width:400px;max-width:100vw}.co-drawer--right.co-drawer--md,.co-drawer--left.co-drawer--md{width:520px;max-width:100vw}.co-drawer--right.co-drawer--lg,.co-drawer--left.co-drawer--lg{width:672px;max-width:100vw}.co-drawer--right.co-drawer--xl,.co-drawer--left.co-drawer--xl{width:960px;max-width:100vw}.co-drawer--right.co-drawer--full,.co-drawer--left.co-drawer--full{width:100vw}.co-drawer--bottom.co-drawer--sm{height:40vh}.co-drawer--bottom.co-drawer--md{height:60vh}.co-drawer--bottom.co-drawer--lg{height:80vh}.co-drawer--bottom.co-drawer--xl{height:95vh}.co-drawer--bottom.co-drawer--full{height:100vh}.co-drawer__card{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;background:var(--co-semantic-surface-page);border-radius:0;-webkit-mask:var(--co-sq-tl) top left / var(--co-drawer-r) var(--co-drawer-r) no-repeat, var(--co-sq-tr) top right / var(--co-drawer-r) var(--co-drawer-r) no-repeat, var(--co-sq-bl) bottom left / var(--co-drawer-r) var(--co-drawer-r) no-repeat, var(--co-sq-br) bottom right / var(--co-drawer-r) var(--co-drawer-r) no-repeat, linear-gradient(#fff 0 0) center / 100% calc(100% - 2 * var(--co-drawer-r) + 2px) no-repeat, linear-gradient(#fff 0 0) center / calc(100% - 2 * var(--co-drawer-r) + 2px) 100% no-repeat;mask:var(--co-sq-tl) top left / var(--co-drawer-r) var(--co-drawer-r) no-repeat, var(--co-sq-tr) top right / var(--co-drawer-r) var(--co-drawer-r) no-repeat, var(--co-sq-bl) bottom left / var(--co-drawer-r) var(--co-drawer-r) no-repeat, var(--co-sq-br) bottom right / var(--co-drawer-r) var(--co-drawer-r) no-repeat, linear-gradient(#fff 0 0) center / 100% calc(100% - 2 * var(--co-drawer-r) + 2px) no-repeat, linear-gradient(#fff 0 0) center / calc(100% - 2 * var(--co-drawer-r) + 2px) 100% no-repeat}.co-drawer__header{display:flex;align-items:center;gap:var(--co-spacing-md);padding:var(--co-spacing-lg) var(--co-spacing-xl);border-bottom:1px solid var(--co-semantic-border-default);flex-shrink:0}.co-drawer__header-content{flex:1;min-width:0}.co-drawer__heading-row{display:flex;align-items:center;gap:var(--co-spacing-sm, 8px)}.co-drawer__icon{flex-shrink:0;color:var(--co-semantic-text-secondary)}.co-drawer__heading{margin:0;font-size:var(--co-font-size-18);font-weight:600;color:var(--co-semantic-text-default);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.co-drawer__description{margin:var(--co-spacing-xs) 0 0;font-size:var(--co-font-size-13, 13px);font-weight:400;color:var(--co-semantic-text-muted);line-height:1.4}.co-drawer__close{display:flex;align-items:center;justify-content:center;padding:var(--co-spacing-xs);margin:0;border:none;background:transparent;cursor:pointer;color:var(--co-semantic-text-muted);border-radius:var(--co-border-radius-sm);transition:background var(--co-motion-duration-fast) var(--co-motion-ease-out);flex-shrink:0}.co-drawer__close:hover{background:var(--co-semantic-surface-hover)}.co-drawer__close:focus-visible{outline:2px solid var(--co-color-primary-azul);outline-offset:2px}.co-drawer__tabs{flex-shrink:0;border-bottom:1px solid var(--co-semantic-border-default)}.co-drawer__tabs:empty{display:none}.co-drawer__body{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:var(--co-spacing-xl);position:relative}.co-drawer__body{scrollbar-width:thin;scrollbar-color:transparent transparent}.co-drawer__body:hover{scrollbar-color:var(--co-color-opacity-negro-16) transparent}.co-drawer__body::-webkit-scrollbar{width:6px}.co-drawer__body::-webkit-scrollbar-track{background:transparent}.co-drawer__body::-webkit-scrollbar-thumb{background:transparent;border-radius:9999px}.co-drawer__body:hover::-webkit-scrollbar-thumb{background:var(--co-color-opacity-negro-16)}.co-drawer__body:hover::-webkit-scrollbar-thumb:hover{background:var(--co-color-opacity-negro-25)}.co-drawer__body:hover::-webkit-scrollbar-thumb:active{background:var(--co-color-opacity-negro-50)}.co-drawer__footer{display:flex;justify-content:flex-end;align-items:center;gap:var(--co-spacing-md);padding:var(--co-spacing-lg) var(--co-spacing-xl);border-top:1px solid var(--co-semantic-border-default);flex-shrink:0}.co-drawer__footer:empty{display:none}@media (max-width: 600px){.co-drawer--right,.co-drawer--left{width:100vw !important}}.co-drawer--modeless{z-index:1000;border:0;padding:0;background:transparent}.co-drawer--modeless.co-drawer--right{left:auto;bottom:auto}.co-drawer--modeless.co-drawer--left{right:auto;bottom:auto}.co-drawer--modeless.co-drawer--bottom{top:auto}';export{w as co_calendar,k as co_date_field,S as co_drawer}