@prolibu-suite/cobalt-core 0.9.6 → 0.10.0

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 (611) hide show
  1. package/custom-elements.json +750 -80
  2. package/dist/cjs/co-accordion.cjs.entry.js +1 -1
  3. package/dist/cjs/co-action-bar.cjs.entry.js +1 -1
  4. package/dist/cjs/co-app-shell.cjs.entry.js +4 -4
  5. package/dist/cjs/co-audio-player.cjs.entry.js +1 -1
  6. package/dist/cjs/co-autocomplete.cjs.entry.js +2 -2
  7. package/dist/cjs/co-avatar-group.cjs.entry.js +1 -1
  8. package/dist/cjs/co-avatar_2.cjs.entry.js +49 -17
  9. package/dist/cjs/co-badge.cjs.entry.js +11 -3
  10. package/dist/cjs/co-bottom-sheet.cjs.entry.js +1 -1
  11. package/dist/cjs/co-breadcrumb-item.cjs.entry.js +1 -1
  12. package/dist/cjs/co-breadcrumb.cjs.entry.js +1 -1
  13. package/dist/cjs/co-button-group.cjs.entry.js +1 -1
  14. package/dist/cjs/co-button.cjs.entry.js +2 -2
  15. package/dist/cjs/co-calendar-month_2.cjs.entry.js +55 -20
  16. package/dist/cjs/co-calendar_3.cjs.entry.js +27 -15
  17. package/dist/cjs/co-card.cjs.entry.js +1 -1
  18. package/dist/cjs/co-carousel-item.cjs.entry.js +1 -1
  19. package/dist/cjs/co-carousel.cjs.entry.js +2 -2
  20. package/dist/cjs/co-checkbox-group.cjs.entry.js +2 -2
  21. package/dist/cjs/co-checkbox.cjs.entry.js +6 -6
  22. package/dist/cjs/co-chip_2.cjs.entry.js +8 -5
  23. package/dist/cjs/co-color-picker.cjs.entry.js +1048 -27
  24. package/dist/cjs/co-column-picker.cjs.entry.js +3 -3
  25. package/dist/cjs/co-combobox.cjs.entry.js +2 -2
  26. package/dist/cjs/co-command-search.cjs.entry.js +1 -1
  27. package/dist/cjs/co-data-table-pagination.cjs.entry.js +5 -5
  28. package/dist/cjs/co-data-table.cjs.entry.js +1 -1
  29. package/dist/cjs/co-date-picker.cjs.entry.js +3 -3
  30. package/dist/cjs/co-date-range-picker.cjs.entry.js +3 -3
  31. package/dist/cjs/co-date-range.cjs.entry.js +2 -2
  32. package/dist/cjs/co-date-time-picker.cjs.entry.js +101 -130
  33. package/dist/cjs/co-drive-card.cjs.entry.js +2 -2
  34. package/dist/cjs/co-drop-zone.cjs.entry.js +2 -2
  35. package/dist/cjs/co-emoji-picker.cjs.entry.js +4 -4
  36. package/dist/cjs/co-empty-state.cjs.entry.js +4 -4
  37. package/dist/cjs/co-event-calendar.cjs.entry.js +4 -4
  38. package/dist/cjs/co-event-popover.cjs.entry.js +3 -3
  39. package/dist/cjs/co-fab.cjs.entry.js +3 -3
  40. package/dist/cjs/co-file-field.cjs.entry.js +102 -106
  41. package/dist/cjs/co-file-type-tile.cjs.entry.js +3 -3
  42. package/dist/cjs/co-helper-text.cjs.entry.js +3 -3
  43. package/dist/cjs/co-icon-button.cjs.entry.js +6 -6
  44. package/dist/cjs/co-icon.cjs.entry.js +3 -3
  45. package/dist/cjs/co-input.cjs.entry.js +26 -4
  46. package/dist/cjs/co-json-field.cjs.entry.js +5 -5
  47. package/dist/cjs/co-lightbox.cjs.entry.js +204 -21
  48. package/dist/cjs/co-list-footer.cjs.entry.js +2 -2
  49. package/dist/cjs/co-list-item.cjs.entry.js +5 -5
  50. package/dist/cjs/co-loader.cjs.entry.js +1 -1
  51. package/dist/cjs/co-media-thumb.cjs.entry.js +3 -3
  52. package/dist/cjs/co-menu-divider.cjs.entry.js +2 -2
  53. package/dist/cjs/co-menu-item.cjs.entry.js +84 -3
  54. package/dist/cjs/co-menu.cjs.entry.js +2 -2
  55. package/dist/cjs/co-modal.cjs.entry.js +6 -4
  56. package/dist/cjs/co-navbar.cjs.entry.js +4 -4
  57. package/dist/cjs/co-number-field.cjs.entry.js +272 -9
  58. package/dist/cjs/co-overlay.cjs.entry.js +6 -4
  59. package/dist/cjs/co-page-header.cjs.entry.js +2 -2
  60. package/dist/cjs/co-phone-field.cjs.entry.js +3 -3
  61. package/dist/cjs/co-popover.cjs.entry.js +58 -21
  62. package/dist/cjs/co-progress-bar.cjs.entry.js +3 -3
  63. package/dist/cjs/co-progress-circle.cjs.entry.js +3 -3
  64. package/dist/cjs/co-provider-logo_2.cjs.entry.js +47 -3
  65. package/dist/cjs/co-radio-group.cjs.entry.js +1 -1
  66. package/dist/cjs/co-radio.cjs.entry.js +4 -4
  67. package/dist/cjs/co-rating.cjs.entry.js +4 -4
  68. package/dist/cjs/co-ref-field.cjs.entry.js +4 -4
  69. package/dist/cjs/co-rich-text-editor.cjs.entry.js +11 -8
  70. package/dist/cjs/co-rich-text-toolbar.cjs.entry.js +7 -3
  71. package/dist/cjs/co-rich-text-viewer.cjs.entry.js +4 -3
  72. package/dist/cjs/co-row.cjs.entry.js +3 -3
  73. package/dist/cjs/co-segmented-bar.cjs.entry.js +1 -1
  74. package/dist/cjs/co-select.cjs.entry.js +2 -2
  75. package/dist/cjs/co-separator.cjs.entry.js +2 -2
  76. package/dist/cjs/co-sidebar-nav.cjs.entry.js +2 -2
  77. package/dist/cjs/co-sidebar.cjs.entry.js +3 -3
  78. package/dist/cjs/co-slider.cjs.entry.js +3 -3
  79. package/dist/cjs/co-switch.cjs.entry.js +6 -6
  80. package/dist/cjs/co-tab-group.cjs.entry.js +3 -3
  81. package/dist/cjs/co-tab.cjs.entry.js +3 -3
  82. package/dist/cjs/co-tags-field.cjs.entry.js +8 -8
  83. package/dist/cjs/co-textarea.cjs.entry.js +6 -6
  84. package/dist/cjs/co-time-field.cjs.entry.js +325 -0
  85. package/dist/cjs/co-toast.cjs.entry.js +2 -2
  86. package/dist/cjs/co-toggle-button-group.cjs.entry.js +4 -4
  87. package/dist/cjs/co-toggle-button.cjs.entry.js +4 -4
  88. package/dist/cjs/co-transfer-list.cjs.entry.js +1 -1
  89. package/dist/cjs/co-video.cjs.entry.js +32 -7
  90. package/dist/cjs/cobalt.cjs.js +2 -2
  91. package/dist/cjs/color-CML2Cfdh.js +142 -0
  92. package/dist/cjs/{dateI18n-wblvKRq_.js → dateI18n-BK2qHqoC.js} +36 -0
  93. package/dist/cjs/{fieldChip-BLzo9MEV.js → fieldChip-B6YIGU1V.js} +1 -1
  94. package/dist/cjs/fileI18n-6sdbKvo6.js +88 -0
  95. package/dist/cjs/{index-DFZ5YhIT.js → index-BYwrR87Z.js} +28 -10
  96. package/dist/cjs/{index-DK-2Lzmf.js → index-MDAnKsze.js} +25 -21
  97. package/dist/cjs/loader.cjs.js +2 -2
  98. package/dist/cjs/{positioning-DCj_AJ2T.js → positioning-CyatXeT_.js} +32 -13
  99. package/dist/cjs/{requiredMark-C1xcrzSZ.js → requiredMark-D-t-IPN0.js} +1 -1
  100. package/dist/cjs/{toolbar-config-BQfWTW6P.js → toolbar-config-BSGas-Wl.js} +10 -0
  101. package/dist/cobalt/cobalt.css +1 -1
  102. package/dist/cobalt/cobalt.esm.js +1 -1
  103. package/dist/cobalt/{p-f83b48fd.entry.js → p-011dc80b.entry.js} +1 -1
  104. package/dist/cobalt/{p-316c62c0.entry.js → p-0678c797.entry.js} +1 -1
  105. package/dist/cobalt/{p-43bd298d.entry.js → p-08e42e00.entry.js} +1 -1
  106. package/dist/cobalt/{p-1c68bc41.entry.js → p-10b82207.entry.js} +1 -1
  107. package/dist/cobalt/{p-a8c64cc3.entry.js → p-15d59169.entry.js} +1 -1
  108. package/dist/cobalt/{p-07d570a6.entry.js → p-16954cea.entry.js} +1 -1
  109. package/dist/cobalt/{p-85a61e28.entry.js → p-17244412.entry.js} +1 -1
  110. package/dist/cobalt/p-1788aab5.entry.js +1 -0
  111. package/dist/cobalt/p-1a589c8e.entry.js +1 -0
  112. package/dist/cobalt/{p-da546d08.entry.js → p-1dc55e43.entry.js} +1 -1
  113. package/dist/cobalt/p-20a39218.entry.js +1 -0
  114. package/dist/cobalt/{p-4c7e3984.entry.js → p-23ab0cc5.entry.js} +1 -1
  115. package/dist/cobalt/{p-fabe5fb2.entry.js → p-2636b7eb.entry.js} +1 -1
  116. package/dist/cobalt/{p-88a0659f.entry.js → p-27a7e549.entry.js} +1 -1
  117. package/dist/cobalt/{p-18d34b01.entry.js → p-290066ef.entry.js} +1 -1
  118. package/dist/cobalt/{p-89e38c5e.entry.js → p-2f9cbbd5.entry.js} +1 -1
  119. package/dist/cobalt/{p-ef5e1167.entry.js → p-325b91b6.entry.js} +1 -1
  120. package/dist/cobalt/{p-60cb66f5.entry.js → p-37f5036b.entry.js} +1 -1
  121. package/dist/cobalt/p-3cc3ff93.entry.js +1 -0
  122. package/dist/cobalt/p-410bee4d.entry.js +1 -0
  123. package/dist/cobalt/{p-6795a258.entry.js → p-44c4e4a3.entry.js} +1 -1
  124. package/dist/cobalt/{p-4b083da4.entry.js → p-44ea675f.entry.js} +1 -1
  125. package/dist/cobalt/{p-2828ecf6.entry.js → p-4592ca00.entry.js} +1 -1
  126. package/dist/cobalt/p-4908f33f.entry.js +1 -0
  127. package/dist/cobalt/{p-342e1da4.entry.js → p-4d65e713.entry.js} +1 -1
  128. package/dist/cobalt/{p-dca4cd5f.entry.js → p-4d897896.entry.js} +1 -1
  129. package/dist/cobalt/{p-33ea4a90.entry.js → p-50bcc76f.entry.js} +1 -1
  130. package/dist/cobalt/{p-ac91259e.entry.js → p-5298c030.entry.js} +1 -1
  131. package/dist/cobalt/p-54c987d7.entry.js +1 -0
  132. package/dist/cobalt/p-56551580.entry.js +1 -0
  133. package/dist/cobalt/p-58137c9e.entry.js +1 -0
  134. package/dist/cobalt/{p-4f754c9a.entry.js → p-58d9b650.entry.js} +1 -1
  135. package/dist/cobalt/p-59963937.entry.js +1 -0
  136. package/dist/cobalt/{p-2d329ac8.entry.js → p-623cc195.entry.js} +1 -1
  137. package/dist/cobalt/p-63825d7f.entry.js +1 -0
  138. package/dist/cobalt/{p-8e667eb6.entry.js → p-66b11b38.entry.js} +1 -1
  139. package/dist/cobalt/{p-fb3a095b.entry.js → p-6bf6bc3e.entry.js} +1 -1
  140. package/dist/cobalt/p-6f700f0d.entry.js +1 -0
  141. package/dist/cobalt/p-73c6d735.entry.js +1 -0
  142. package/dist/cobalt/{p-a6357340.entry.js → p-76249983.entry.js} +1 -1
  143. package/dist/cobalt/{p-bfc2a849.entry.js → p-82266f11.entry.js} +1 -1
  144. package/dist/cobalt/{p-a9b29cc2.entry.js → p-826ee074.entry.js} +1 -1
  145. package/dist/cobalt/{p-23b3ff3f.entry.js → p-83a9a05a.entry.js} +1 -1
  146. package/dist/cobalt/{p-568cfe8d.entry.js → p-83ea631d.entry.js} +1 -1
  147. package/dist/cobalt/p-85501c6a.entry.js +1 -0
  148. package/dist/cobalt/{p-dfd25f1d.entry.js → p-88195a63.entry.js} +1 -1
  149. package/dist/cobalt/p-8fa5dc4a.entry.js +1 -0
  150. package/dist/cobalt/{p-c8dba82f.entry.js → p-91e73a92.entry.js} +1 -1
  151. package/dist/cobalt/{p-ac466658.entry.js → p-92b092db.entry.js} +1 -1
  152. package/dist/cobalt/{p-36197363.entry.js → p-996f4e38.entry.js} +1 -1
  153. package/dist/cobalt/p-BRbgGqLw.js +1 -0
  154. package/dist/cobalt/{p-BL0sCfMH.js → p-Bryf3-Js.js} +1 -1
  155. package/dist/cobalt/p-DFHRS9cJ.js +1 -0
  156. package/dist/cobalt/{p-CrtiywTB.js → p-DH5lfRNj.js} +1 -1
  157. package/dist/{components/p-WeuPA9Rw.js → cobalt/p-DOL2zACE.js} +1 -1
  158. package/dist/cobalt/p-D_zA1Pv4.js +1 -0
  159. package/dist/cobalt/{p-fef5db54.entry.js → p-a32b20eb.entry.js} +1 -1
  160. package/dist/cobalt/p-aa9400bf.entry.js +1 -0
  161. package/dist/cobalt/{p-8eb485c8.entry.js → p-aaca6dab.entry.js} +1 -1
  162. package/dist/cobalt/{p-e5495539.entry.js → p-aae86f96.entry.js} +1 -1
  163. package/dist/cobalt/{p-8f38e24d.entry.js → p-ad33c40e.entry.js} +1 -1
  164. package/dist/cobalt/p-b0c4fc71.entry.js +1 -0
  165. package/dist/cobalt/{p-da18b5f4.entry.js → p-b1e8d69e.entry.js} +1 -1
  166. package/dist/cobalt/p-b48917c9.entry.js +1 -0
  167. package/dist/cobalt/{p-7e53e9c8.entry.js → p-b565104d.entry.js} +1 -1
  168. package/dist/cobalt/{p-b0319a2d.entry.js → p-b90d41e4.entry.js} +1 -1
  169. package/dist/cobalt/{p-c5684c79.entry.js → p-bd683db3.entry.js} +1 -1
  170. package/dist/cobalt/{p-1ddbc48b.entry.js → p-c124e82b.entry.js} +1 -1
  171. package/dist/cobalt/{p-95efe661.entry.js → p-c2ebf0ec.entry.js} +1 -1
  172. package/dist/cobalt/{p-76420ac1.entry.js → p-c32c176a.entry.js} +1 -1
  173. package/dist/cobalt/{p-54ae807d.entry.js → p-c465d619.entry.js} +1 -1
  174. package/dist/cobalt/{p-ab45d9bd.entry.js → p-c91d4fc6.entry.js} +1 -1
  175. package/dist/cobalt/{p-ce35c898.entry.js → p-d29bb0fa.entry.js} +1 -1
  176. package/dist/cobalt/{p-7c5e846a.entry.js → p-db805569.entry.js} +1 -1
  177. package/dist/cobalt/p-e01f9b9a.entry.js +1 -0
  178. package/dist/cobalt/p-e3aae282.entry.js +1 -0
  179. package/dist/cobalt/{p-d15d3a97.entry.js → p-e4264532.entry.js} +1 -1
  180. package/dist/cobalt/{p-93c68029.entry.js → p-e48f4e45.entry.js} +1 -1
  181. package/dist/cobalt/{p-3f0eed59.entry.js → p-e49a564c.entry.js} +1 -1
  182. package/dist/cobalt/p-e8a2f993.entry.js +1 -0
  183. package/dist/cobalt/p-e8a4e6b0.entry.js +1 -0
  184. package/dist/cobalt/p-ea20f048.entry.js +1 -0
  185. package/dist/cobalt/{p-c1e7fb32.entry.js → p-eb063cc0.entry.js} +1 -1
  186. package/dist/cobalt/p-eb82358d.entry.js +1 -0
  187. package/dist/cobalt/{p-2114c036.entry.js → p-eb8691f2.entry.js} +1 -1
  188. package/dist/cobalt/{p-e8878cf9.entry.js → p-ee2023da.entry.js} +1 -1
  189. package/dist/cobalt/p-ee9a623d.entry.js +1 -0
  190. package/dist/cobalt/p-ef5ca521.entry.js +1 -0
  191. package/dist/cobalt/p-f4e1c3c3.entry.js +1 -0
  192. package/dist/cobalt/{p-e364b8a5.entry.js → p-f57dffca.entry.js} +1 -1
  193. package/dist/cobalt/p-f6691108.entry.js +1 -0
  194. package/dist/cobalt/p-f68dd124.entry.js +1 -0
  195. package/dist/cobalt/p-fMqVDypp.js +1 -0
  196. package/dist/cobalt/{p-0c463d9a.entry.js → p-fd150cc6.entry.js} +1 -1
  197. package/dist/cobalt/{p-0e91e5c4.entry.js → p-fe7e8813.entry.js} +1 -1
  198. package/dist/cobalt/p-gKnOhsd2.js +1 -0
  199. package/dist/cobalt/p-jYd9gu_c.js +1 -0
  200. package/dist/collection/collection-manifest.json +1 -0
  201. package/dist/collection/components/co-app-shell/co-app-shell.css +107 -41
  202. package/dist/collection/components/co-app-shell/co-app-shell.js +2 -2
  203. package/dist/collection/components/co-autocomplete/co-autocomplete.js +1 -1
  204. package/dist/collection/components/co-avatar-group/co-avatar-group.js +1 -1
  205. package/dist/collection/components/co-badge/co-badge.css +18 -0
  206. package/dist/collection/components/co-badge/co-badge.js +29 -1
  207. package/dist/collection/components/co-button/co-button.css +4 -4
  208. package/dist/collection/components/co-checkbox/co-checkbox.css +12 -3
  209. package/dist/collection/components/co-checkbox/co-checkbox.js +6 -6
  210. package/dist/collection/components/co-checkbox-group/co-checkbox-group.css +1 -3
  211. package/dist/collection/components/co-checkbox-group/co-checkbox-group.js +1 -1
  212. package/dist/collection/components/co-color-picker/co-color-picker.css +252 -5
  213. package/dist/collection/components/co-color-picker/co-color-picker.js +932 -15
  214. package/dist/collection/components/co-color-picker/presets.js +113 -15
  215. package/dist/collection/components/co-column-picker/co-column-picker.js +2 -2
  216. package/dist/collection/components/co-combobox/co-combobox.js +1 -1
  217. package/dist/collection/components/co-command-search/co-command-search.js +1 -1
  218. package/dist/collection/components/co-data-table/co-data-table.js +1 -1
  219. package/dist/collection/components/co-data-table-pagination/co-data-table-pagination.js +4 -4
  220. package/dist/collection/components/co-date-field/co-date-field.js +4 -4
  221. package/dist/collection/components/co-date-range/co-date-range.js +1 -1
  222. package/dist/collection/components/co-date-range-picker/co-date-range-picker.js +2 -2
  223. package/dist/collection/components/co-date-time-picker/co-date-time-picker.css +128 -32
  224. package/dist/collection/components/co-date-time-picker/co-date-time-picker.js +142 -138
  225. package/dist/collection/components/co-drawer/co-drawer.css +99 -36
  226. package/dist/collection/components/co-drawer/co-drawer.js +19 -7
  227. package/dist/collection/components/co-drive-card/co-drive-card.js +1 -1
  228. package/dist/collection/components/co-drop-zone/co-drop-zone.js +1 -1
  229. package/dist/collection/components/co-emoji-picker/co-emoji-picker.js +2 -2
  230. package/dist/collection/components/co-empty-state/co-empty-state.css +28 -0
  231. package/dist/collection/components/co-empty-state/co-empty-state.js +2 -2
  232. package/dist/collection/components/co-event-calendar/co-event-calendar.js +2 -2
  233. package/dist/collection/components/co-event-popover/co-event-popover.js +1 -1
  234. package/dist/collection/components/co-fab/co-fab.js +2 -2
  235. package/dist/collection/components/co-file-field/co-file-field.css +55 -2
  236. package/dist/collection/components/co-file-field/co-file-field.js +41 -13
  237. package/dist/collection/components/co-file-field/co-file-field.utils.js +51 -4
  238. package/dist/collection/components/co-file-type-tile/co-file-type-tile.js +2 -2
  239. package/dist/collection/components/co-helper-text/co-helper-text.js +2 -2
  240. package/dist/collection/components/co-icon/co-icon.js +2 -2
  241. package/dist/collection/components/co-icon-button/co-icon-button.css +40 -2
  242. package/dist/collection/components/co-icon-button/co-icon-button.js +43 -4
  243. package/dist/collection/components/co-input/co-input.css +33 -0
  244. package/dist/collection/components/co-input/co-input.js +25 -2
  245. package/dist/collection/components/co-json-field/co-json-field.js +3 -3
  246. package/dist/collection/components/co-lightbox/co-lightbox.css +23 -0
  247. package/dist/collection/components/co-lightbox/co-lightbox.js +209 -20
  248. package/dist/collection/components/co-list-footer/co-list-footer.js +1 -1
  249. package/dist/collection/components/co-list-item/co-list-item.js +4 -4
  250. package/dist/collection/components/co-media-thumb/co-media-thumb.js +2 -2
  251. package/dist/collection/components/co-menu/co-menu.js +1 -1
  252. package/dist/collection/components/co-menu-divider/co-menu-divider.js +1 -1
  253. package/dist/collection/components/co-menu-item/co-menu-item.js +67 -3
  254. package/dist/collection/components/co-modal/co-modal.css +106 -37
  255. package/dist/collection/components/co-modal/co-modal.js +4 -2
  256. package/dist/collection/components/co-navbar/co-navbar.css +4 -2
  257. package/dist/collection/components/co-navbar/co-navbar.js +2 -2
  258. package/dist/collection/components/co-number-field/co-number-field.css +22 -0
  259. package/dist/collection/components/co-number-field/co-number-field.js +216 -9
  260. package/dist/collection/components/co-option-list/co-option-list.css +25 -4
  261. package/dist/collection/components/co-option-list/co-option-list.js +26 -3
  262. package/dist/collection/components/co-overlay/co-overlay.js +5 -3
  263. package/dist/collection/components/co-page-header/co-page-header.js +1 -1
  264. package/dist/collection/components/co-phone-field/co-phone-field.js +1 -1
  265. package/dist/collection/components/co-popover/co-popover.css +18 -3
  266. package/dist/collection/components/co-popover/co-popover.js +83 -20
  267. package/dist/collection/components/co-progress-bar/co-progress-bar.js +2 -2
  268. package/dist/collection/components/co-progress-circle/co-progress-circle.js +2 -2
  269. package/dist/collection/components/co-radio/co-radio.js +3 -3
  270. package/dist/collection/components/co-radio-group/co-radio-group.js +1 -1
  271. package/dist/collection/components/co-rating/co-rating.js +3 -3
  272. package/dist/collection/components/co-ref-field/co-ref-field.js +3 -3
  273. package/dist/collection/components/co-rich-text-editor/co-rich-text-editor.css +14 -1
  274. package/dist/collection/components/co-rich-text-editor/co-rich-text-editor.js +9 -6
  275. package/dist/collection/components/co-rich-text-toolbar/co-rich-text-toolbar.js +7 -3
  276. package/dist/collection/components/co-rich-text-viewer/co-rich-text-viewer.js +3 -2
  277. package/dist/collection/components/co-row/co-row.js +2 -2
  278. package/dist/collection/components/co-segmented-bar/co-segmented-bar.js +1 -1
  279. package/dist/collection/components/co-select/co-select.js +1 -1
  280. package/dist/collection/components/co-separator/co-separator.js +1 -1
  281. package/dist/collection/components/co-sidebar/co-sidebar.js +2 -2
  282. package/dist/collection/components/co-sidebar-nav/co-sidebar-nav.css +2 -2
  283. package/dist/collection/components/co-sidebar-nav/co-sidebar-nav.js +1 -1
  284. package/dist/collection/components/co-skeleton/co-skeleton.css +18 -0
  285. package/dist/collection/components/co-skeleton/co-skeleton.js +83 -1
  286. package/dist/collection/components/co-slider/co-slider.js +2 -2
  287. package/dist/collection/components/co-switch/co-switch.css +3 -3
  288. package/dist/collection/components/co-switch/co-switch.js +3 -3
  289. package/dist/collection/components/co-tab/co-tab.js +2 -2
  290. package/dist/collection/components/co-tab-group/co-tab-group.js +2 -2
  291. package/dist/collection/components/co-tags-field/co-tags-field.js +5 -5
  292. package/dist/collection/components/co-textarea/co-textarea.js +4 -4
  293. package/dist/collection/components/co-time-field/co-time-field.css +111 -0
  294. package/dist/collection/components/co-time-field/co-time-field.js +536 -0
  295. package/dist/collection/components/co-toast/co-toast.css +13 -7
  296. package/dist/collection/components/co-toast/co-toast.js +2 -2
  297. package/dist/collection/components/co-toggle-button/co-toggle-button.css +16 -11
  298. package/dist/collection/components/co-toggle-button/co-toggle-button.js +2 -2
  299. package/dist/collection/components/co-toggle-button-group/co-toggle-button-group.css +7 -1
  300. package/dist/collection/components/co-toggle-button-group/co-toggle-button-group.js +2 -2
  301. package/dist/collection/components/co-tooltip/co-tooltip.css +12 -1
  302. package/dist/collection/components/co-tooltip/co-tooltip.js +49 -16
  303. package/dist/collection/components/co-transfer-list/co-transfer-list.js +1 -1
  304. package/dist/collection/components/co-video/co-video.js +34 -9
  305. package/dist/collection/utils/amountText.js +95 -0
  306. package/dist/collection/utils/color.js +109 -3
  307. package/dist/collection/utils/colorPickerI18n.js +55 -0
  308. package/dist/collection/utils/dateI18n.js +36 -0
  309. package/dist/collection/utils/fileI18n.js +3 -0
  310. package/dist/collection/utils/positioning.js +37 -4
  311. package/dist/collection/utils/submenu.js +35 -0
  312. package/dist/components/co-accordion.js +1 -1
  313. package/dist/components/co-action-bar.js +1 -1
  314. package/dist/components/co-app-shell.js +1 -1
  315. package/dist/components/co-audio-player.js +1 -1
  316. package/dist/components/co-autocomplete.js +1 -1
  317. package/dist/components/co-avatar-group.js +1 -1
  318. package/dist/components/co-avatar.js +1 -1
  319. package/dist/components/co-badge.js +1 -1
  320. package/dist/components/co-breadcrumb-item.js +1 -1
  321. package/dist/components/co-breadcrumb.js +1 -1
  322. package/dist/components/co-button.js +1 -1
  323. package/dist/components/co-calendar-month.js +1 -1
  324. package/dist/components/co-calendar-timegrid.js +1 -1
  325. package/dist/components/co-calendar.js +1 -1
  326. package/dist/components/co-carousel.js +1 -1
  327. package/dist/components/co-checkbox-group.js +1 -1
  328. package/dist/components/co-checkbox.js +1 -1
  329. package/dist/components/co-chip.js +1 -1
  330. package/dist/components/co-color-picker.js +1 -1
  331. package/dist/components/co-column-picker.js +1 -1
  332. package/dist/components/co-combobox.js +1 -1
  333. package/dist/components/co-command-search.js +1 -1
  334. package/dist/components/co-data-table-pagination.js +1 -1
  335. package/dist/components/co-data-table.js +1 -1
  336. package/dist/components/co-date-field.js +1 -1
  337. package/dist/components/co-date-picker.js +1 -1
  338. package/dist/components/co-date-range-picker.js +1 -1
  339. package/dist/components/co-date-range.js +1 -1
  340. package/dist/components/co-date-time-picker.js +1 -1
  341. package/dist/components/co-drawer.js +1 -1
  342. package/dist/components/co-drive-card.js +1 -1
  343. package/dist/components/co-drop-zone.js +1 -1
  344. package/dist/components/co-emoji-picker.js +1 -1
  345. package/dist/components/co-empty-state.js +1 -1
  346. package/dist/components/co-event-calendar.js +1 -1
  347. package/dist/components/co-event-popover.js +1 -1
  348. package/dist/components/co-fab.js +1 -1
  349. package/dist/components/co-file-field.js +1 -1
  350. package/dist/components/co-file-type-tile.js +1 -1
  351. package/dist/components/co-helper-text.js +1 -1
  352. package/dist/components/co-icon-button.js +1 -1
  353. package/dist/components/co-icon.js +1 -1
  354. package/dist/components/co-input.js +1 -1
  355. package/dist/components/co-json-field.js +1 -1
  356. package/dist/components/co-lightbox.js +1 -1
  357. package/dist/components/co-list-footer.js +1 -1
  358. package/dist/components/co-list-item.js +1 -1
  359. package/dist/components/co-media-thumb.js +1 -1
  360. package/dist/components/co-menu-divider.js +1 -1
  361. package/dist/components/co-menu-item.js +1 -1
  362. package/dist/components/co-menu.js +1 -1
  363. package/dist/components/co-modal.js +1 -1
  364. package/dist/components/co-navbar.js +1 -1
  365. package/dist/components/co-number-field.js +1 -1
  366. package/dist/components/co-option-list.js +1 -1
  367. package/dist/components/co-overlay.js +1 -1
  368. package/dist/components/co-page-header.js +1 -1
  369. package/dist/components/co-phone-field.js +1 -1
  370. package/dist/components/co-popover.js +1 -1
  371. package/dist/components/co-progress-bar.js +1 -1
  372. package/dist/components/co-progress-circle.js +1 -1
  373. package/dist/components/co-radio-group.js +1 -1
  374. package/dist/components/co-radio.js +1 -1
  375. package/dist/components/co-rating.js +1 -1
  376. package/dist/components/co-ref-field.js +1 -1
  377. package/dist/components/co-rich-text-editor.js +1 -1
  378. package/dist/components/co-rich-text-toolbar.js +1 -1
  379. package/dist/components/co-rich-text-viewer.js +1 -1
  380. package/dist/components/co-row.js +1 -1
  381. package/dist/components/co-select.js +1 -1
  382. package/dist/components/co-separator.js +1 -1
  383. package/dist/components/co-sidebar-nav.js +1 -1
  384. package/dist/components/co-sidebar.js +1 -1
  385. package/dist/components/co-skeleton.js +1 -1
  386. package/dist/components/co-slider.js +1 -1
  387. package/dist/components/co-switch.js +1 -1
  388. package/dist/components/co-tab-group.js +1 -1
  389. package/dist/components/co-tab.js +1 -1
  390. package/dist/components/co-tags-field.js +1 -1
  391. package/dist/components/co-textarea.js +1 -1
  392. package/dist/components/co-time-field.d.ts +11 -0
  393. package/dist/components/co-time-field.js +1 -0
  394. package/dist/components/co-toast.js +1 -1
  395. package/dist/components/co-toggle-button-group.js +1 -1
  396. package/dist/components/co-toggle-button.js +1 -1
  397. package/dist/components/co-tooltip.js +1 -1
  398. package/dist/components/co-transfer-list.js +1 -1
  399. package/dist/components/co-video.js +1 -1
  400. package/dist/components/index.js +1 -1
  401. package/dist/components/p-9ceBPSd1.js +1 -0
  402. package/dist/components/p-B1QFLcY9.js +1 -0
  403. package/dist/components/p-B2IsXte7.js +1 -0
  404. package/dist/components/p-B4NCaKrR.js +1 -0
  405. package/dist/components/p-BBP5__CY.js +1 -0
  406. package/dist/components/{p-Dabi98BI.js → p-BGDqldEg.js} +1 -1
  407. package/dist/components/p-BRbgGqLw.js +1 -0
  408. package/dist/components/p-Be_kyNRE.js +1 -0
  409. package/dist/components/{p-BL0sCfMH.js → p-Bryf3-Js.js} +1 -1
  410. package/dist/components/p-BsTO1uUA.js +1 -0
  411. package/dist/components/{p-CuZXTvDM.js → p-Bv6U5y3d.js} +1 -1
  412. package/dist/components/p-BxP8OBw6.js +1 -0
  413. package/dist/components/{p-P8wvwhM2.js → p-CFFDmGPS.js} +1 -1
  414. package/dist/components/{p-CA_JAK9s.js → p-CT2enQ6h.js} +1 -1
  415. package/dist/components/p-CXPRaTuo.js +1 -0
  416. package/dist/components/{p-D5EdMieb.js → p-Cl3AdEQJ.js} +1 -1
  417. package/dist/components/p-CnX3L8aF.js +1 -0
  418. package/dist/components/p-DFHRS9cJ.js +1 -0
  419. package/dist/components/p-DIo66nBr.js +1 -0
  420. package/dist/components/{p-Dj1EZ5qD.js → p-DNJAIVfI.js} +1 -1
  421. package/dist/{cobalt/p-WeuPA9Rw.js → components/p-DOL2zACE.js} +1 -1
  422. package/dist/components/p-DRP8D9ro.js +1 -0
  423. package/dist/components/p-DkDTmHCg.js +1 -0
  424. package/dist/components/{p-Bxk96Zgc.js → p-Du_CgT5E.js} +1 -1
  425. package/dist/components/{p-BHYtxTzM.js → p-HxVRXXXC.js} +1 -1
  426. package/dist/components/{p-B0Dc-I_C.js → p-NNxjElcX.js} +1 -1
  427. package/dist/components/p-gKnOhsd2.js +1 -0
  428. package/dist/components/p-jYd9gu_c.js +1 -0
  429. package/dist/components/{p-D4qzGifz.js → p-vby0ITbe.js} +1 -1
  430. package/dist/components/{p-D6OUW6oW.js → p-x4grh-eZ.js} +1 -1
  431. package/dist/esm/co-accordion.entry.js +1 -1
  432. package/dist/esm/co-action-bar.entry.js +1 -1
  433. package/dist/esm/co-app-shell.entry.js +4 -4
  434. package/dist/esm/co-audio-player.entry.js +1 -1
  435. package/dist/esm/co-autocomplete.entry.js +2 -2
  436. package/dist/esm/co-avatar-group.entry.js +1 -1
  437. package/dist/esm/co-avatar_2.entry.js +49 -17
  438. package/dist/esm/co-badge.entry.js +11 -3
  439. package/dist/esm/co-bottom-sheet.entry.js +1 -1
  440. package/dist/esm/co-breadcrumb-item.entry.js +1 -1
  441. package/dist/esm/co-breadcrumb.entry.js +1 -1
  442. package/dist/esm/co-button-group.entry.js +1 -1
  443. package/dist/esm/co-button.entry.js +2 -2
  444. package/dist/esm/co-calendar-month_2.entry.js +37 -2
  445. package/dist/esm/co-calendar_3.entry.js +27 -15
  446. package/dist/esm/co-card.entry.js +1 -1
  447. package/dist/esm/co-carousel-item.entry.js +1 -1
  448. package/dist/esm/co-carousel.entry.js +2 -2
  449. package/dist/esm/co-checkbox-group.entry.js +2 -2
  450. package/dist/esm/co-checkbox.entry.js +6 -6
  451. package/dist/esm/co-chip_2.entry.js +8 -5
  452. package/dist/esm/co-color-picker.entry.js +1048 -27
  453. package/dist/esm/co-column-picker.entry.js +3 -3
  454. package/dist/esm/co-combobox.entry.js +2 -2
  455. package/dist/esm/co-command-search.entry.js +1 -1
  456. package/dist/esm/co-data-table-pagination.entry.js +5 -5
  457. package/dist/esm/co-data-table.entry.js +1 -1
  458. package/dist/esm/co-date-picker.entry.js +3 -3
  459. package/dist/esm/co-date-range-picker.entry.js +3 -3
  460. package/dist/esm/co-date-range.entry.js +2 -2
  461. package/dist/esm/co-date-time-picker.entry.js +101 -130
  462. package/dist/esm/co-drive-card.entry.js +2 -2
  463. package/dist/esm/co-drop-zone.entry.js +2 -2
  464. package/dist/esm/co-emoji-picker.entry.js +4 -4
  465. package/dist/esm/co-empty-state.entry.js +4 -4
  466. package/dist/esm/co-event-calendar.entry.js +4 -4
  467. package/dist/esm/co-event-popover.entry.js +3 -3
  468. package/dist/esm/co-fab.entry.js +3 -3
  469. package/dist/esm/co-file-field.entry.js +95 -99
  470. package/dist/esm/co-file-type-tile.entry.js +3 -3
  471. package/dist/esm/co-helper-text.entry.js +3 -3
  472. package/dist/esm/co-icon-button.entry.js +6 -6
  473. package/dist/esm/co-icon.entry.js +3 -3
  474. package/dist/esm/co-input.entry.js +26 -4
  475. package/dist/esm/co-json-field.entry.js +5 -5
  476. package/dist/esm/co-lightbox.entry.js +204 -21
  477. package/dist/esm/co-list-footer.entry.js +2 -2
  478. package/dist/esm/co-list-item.entry.js +5 -5
  479. package/dist/esm/co-loader.entry.js +1 -1
  480. package/dist/esm/co-media-thumb.entry.js +3 -3
  481. package/dist/esm/co-menu-divider.entry.js +2 -2
  482. package/dist/esm/co-menu-item.entry.js +84 -3
  483. package/dist/esm/co-menu.entry.js +2 -2
  484. package/dist/esm/co-modal.entry.js +6 -4
  485. package/dist/esm/co-navbar.entry.js +4 -4
  486. package/dist/esm/co-number-field.entry.js +272 -9
  487. package/dist/esm/co-overlay.entry.js +6 -4
  488. package/dist/esm/co-page-header.entry.js +2 -2
  489. package/dist/esm/co-phone-field.entry.js +3 -3
  490. package/dist/esm/co-popover.entry.js +58 -21
  491. package/dist/esm/co-progress-bar.entry.js +3 -3
  492. package/dist/esm/co-progress-circle.entry.js +3 -3
  493. package/dist/esm/co-provider-logo_2.entry.js +47 -3
  494. package/dist/esm/co-radio-group.entry.js +1 -1
  495. package/dist/esm/co-radio.entry.js +4 -4
  496. package/dist/esm/co-rating.entry.js +4 -4
  497. package/dist/esm/co-ref-field.entry.js +4 -4
  498. package/dist/esm/co-rich-text-editor.entry.js +11 -8
  499. package/dist/esm/co-rich-text-toolbar.entry.js +7 -3
  500. package/dist/esm/co-rich-text-viewer.entry.js +4 -3
  501. package/dist/esm/co-row.entry.js +3 -3
  502. package/dist/esm/co-segmented-bar.entry.js +1 -1
  503. package/dist/esm/co-select.entry.js +2 -2
  504. package/dist/esm/co-separator.entry.js +2 -2
  505. package/dist/esm/co-sidebar-nav.entry.js +2 -2
  506. package/dist/esm/co-sidebar.entry.js +3 -3
  507. package/dist/esm/co-slider.entry.js +3 -3
  508. package/dist/esm/co-switch.entry.js +6 -6
  509. package/dist/esm/co-tab-group.entry.js +3 -3
  510. package/dist/esm/co-tab.entry.js +3 -3
  511. package/dist/esm/co-tags-field.entry.js +8 -8
  512. package/dist/esm/co-textarea.entry.js +6 -6
  513. package/dist/esm/co-time-field.entry.js +323 -0
  514. package/dist/esm/co-toast.entry.js +2 -2
  515. package/dist/esm/co-toggle-button-group.entry.js +4 -4
  516. package/dist/esm/co-toggle-button.entry.js +4 -4
  517. package/dist/esm/co-transfer-list.entry.js +1 -1
  518. package/dist/esm/co-video.entry.js +32 -7
  519. package/dist/esm/cobalt.js +3 -3
  520. package/dist/esm/color-BRbgGqLw.js +136 -0
  521. package/dist/esm/{dateI18n-CnNpoKwg.js → dateI18n-jYd9gu_c.js} +36 -0
  522. package/dist/esm/{fieldChip-DsAfq1e0.js → fieldChip-uyggU8VV.js} +1 -1
  523. package/dist/esm/fileI18n-gKnOhsd2.js +84 -0
  524. package/dist/esm/{index-RuXxdKzC.js → index-68iUQp5j.js} +28 -10
  525. package/dist/esm/{index-CrtiywTB.js → index-DH5lfRNj.js} +25 -21
  526. package/dist/esm/loader.js +3 -3
  527. package/dist/esm/{positioning-BMdapAL8.js → positioning-DFHRS9cJ.js} +32 -13
  528. package/dist/esm/{requiredMark-DCD-ZA51.js → requiredMark-BCJUuZvC.js} +1 -1
  529. package/dist/esm/{toolbar-config-WeuPA9Rw.js → toolbar-config-DOL2zACE.js} +10 -0
  530. package/dist/types/components/co-badge/co-badge.d.ts +7 -0
  531. package/dist/types/components/co-checkbox/co-checkbox.d.ts +1 -1
  532. package/dist/types/components/co-color-picker/co-color-picker.d.ts +358 -4
  533. package/dist/types/components/co-color-picker/presets.d.ts +107 -4
  534. package/dist/types/components/co-date-time-picker/co-date-time-picker.d.ts +43 -21
  535. package/dist/types/components/co-drawer/co-drawer.d.ts +4 -3
  536. package/dist/types/components/co-file-field/co-file-field.d.ts +14 -0
  537. package/dist/types/components/co-file-field/co-file-field.utils.d.ts +18 -1
  538. package/dist/types/components/co-icon-button/co-icon-button.d.ts +9 -0
  539. package/dist/types/components/co-input/co-input.d.ts +4 -0
  540. package/dist/types/components/co-lightbox/co-lightbox.d.ts +60 -4
  541. package/dist/types/components/co-menu-item/co-menu-item.d.ts +16 -0
  542. package/dist/types/components/co-number-field/co-number-field.d.ts +42 -1
  543. package/dist/types/components/co-option-list/co-option-list.d.ts +3 -0
  544. package/dist/types/components/co-overlay/co-overlay.d.ts +4 -2
  545. package/dist/types/components/co-popover/co-popover.d.ts +16 -0
  546. package/dist/types/components/co-rich-text-toolbar/co-rich-text-toolbar.d.ts +1 -1
  547. package/dist/types/components/co-skeleton/co-skeleton.d.ts +13 -0
  548. package/dist/types/components/co-time-field/co-time-field.d.ts +60 -0
  549. package/dist/types/components/co-tooltip/co-tooltip.d.ts +5 -0
  550. package/dist/types/components/co-video/co-video.d.ts +4 -0
  551. package/dist/types/components.d.ts +451 -87
  552. package/dist/types/utils/amountText.d.ts +34 -0
  553. package/dist/types/utils/color.d.ts +44 -1
  554. package/dist/types/utils/colorPickerI18n.d.ts +26 -0
  555. package/dist/types/utils/dateI18n.d.ts +12 -0
  556. package/dist/types/utils/fileI18n.d.ts +1 -0
  557. package/dist/types/utils/positioning.d.ts +10 -0
  558. package/dist/types/utils/submenu.d.ts +44 -0
  559. package/package.json +3 -3
  560. package/dist/cjs/color-YhUkm10t.js +0 -32
  561. package/dist/cjs/time-LBHtzLHe.js +0 -42
  562. package/dist/cobalt/p-07904986.entry.js +0 -1
  563. package/dist/cobalt/p-09799193.entry.js +0 -1
  564. package/dist/cobalt/p-17ae943c.entry.js +0 -1
  565. package/dist/cobalt/p-23a103a0.entry.js +0 -1
  566. package/dist/cobalt/p-2f88d151.entry.js +0 -1
  567. package/dist/cobalt/p-3495fda1.entry.js +0 -1
  568. package/dist/cobalt/p-409f28bb.entry.js +0 -1
  569. package/dist/cobalt/p-682b3313.entry.js +0 -1
  570. package/dist/cobalt/p-6bf814f9.entry.js +0 -1
  571. package/dist/cobalt/p-7532c739.entry.js +0 -1
  572. package/dist/cobalt/p-7c88163e.entry.js +0 -1
  573. package/dist/cobalt/p-7cf4b4ae.entry.js +0 -1
  574. package/dist/cobalt/p-7ea87b75.entry.js +0 -1
  575. package/dist/cobalt/p-8183f56f.entry.js +0 -1
  576. package/dist/cobalt/p-8345b25f.entry.js +0 -1
  577. package/dist/cobalt/p-983af614.entry.js +0 -1
  578. package/dist/cobalt/p-BG4WRR22.js +0 -1
  579. package/dist/cobalt/p-BMdapAL8.js +0 -1
  580. package/dist/cobalt/p-CF8OB_TM.js +0 -1
  581. package/dist/cobalt/p-CnNpoKwg.js +0 -1
  582. package/dist/cobalt/p-T4la7ly_.js +0 -1
  583. package/dist/cobalt/p-a2d31248.entry.js +0 -1
  584. package/dist/cobalt/p-a6b5cadd.entry.js +0 -1
  585. package/dist/cobalt/p-b8581787.entry.js +0 -1
  586. package/dist/cobalt/p-bcedbd73.entry.js +0 -1
  587. package/dist/cobalt/p-d40a465f.entry.js +0 -1
  588. package/dist/cobalt/p-dea43204.entry.js +0 -1
  589. package/dist/cobalt/p-dfcf667d.entry.js +0 -1
  590. package/dist/cobalt/p-e6882ddd.entry.js +0 -1
  591. package/dist/cobalt/p-e84eda2e.entry.js +0 -1
  592. package/dist/cobalt/p-f25967fb.entry.js +0 -1
  593. package/dist/cobalt/p-f5f1b463.entry.js +0 -1
  594. package/dist/cobalt/p-fd39f410.entry.js +0 -1
  595. package/dist/cobalt/p-mAGnZXRn.js +0 -1
  596. package/dist/components/p-BMdapAL8.js +0 -1
  597. package/dist/components/p-BTQEg3UO.js +0 -1
  598. package/dist/components/p-Bbny3WUc.js +0 -1
  599. package/dist/components/p-Bz0QZqnB.js +0 -1
  600. package/dist/components/p-CF8OB_TM.js +0 -1
  601. package/dist/components/p-CR0izsJC.js +0 -1
  602. package/dist/components/p-CnNpoKwg.js +0 -1
  603. package/dist/components/p-DI1ek0EB.js +0 -1
  604. package/dist/components/p-DP0bbhfN.js +0 -1
  605. package/dist/components/p-D_9BRkj6.js +0 -1
  606. package/dist/components/p-DbipMAyT.js +0 -1
  607. package/dist/components/p-DgUBcJIS.js +0 -1
  608. package/dist/components/p-DolCkNsL.js +0 -1
  609. package/dist/components/p-hfGFsvaD.js +0 -1
  610. package/dist/esm/color-BG4WRR22.js +0 -30
  611. package/dist/esm/time-CF8OB_TM.js +0 -37
@@ -2,12 +2,19 @@ import { EventEmitter } from '../../stencil-public-runtime';
2
2
  import { type ColorPreset } from './presets';
3
3
  /**
4
4
  * Color picker with preset swatches. Shows a trigger with the current color
5
- * swatch + hex value, and opens a popover panel with a grid of preset colors.
5
+ * swatch + hex value, and opens a popover panel with a saturation/brightness
6
+ * area, a hue slider, a grid of preset colors and an editable hex field.
6
7
  *
7
- * The hex value is read-only (no manual editing) — a copy button lets the user
8
- * copy the value to clipboard.
8
+ * The hex field previews while typing (`coInput`) and commits on gesture end
9
+ * — blur, Enter or panel close — like every other control in the panel. A
10
+ * pasted CSS color commits immediately; a copy button copies the current value.
9
11
  *
10
- * @event coChange - Emits the selected hex string (e.g. "#0066FF").
12
+ * @event coInput - Live hex while a gesture is in flight — dragging the area or
13
+ * the hue slider, and typing a valid hex in the field (preview only, never a
14
+ * commit).
15
+ * @event coChange - Emits the committed hex string (e.g. "#0066FF"): pointer
16
+ * release, arrow key, swatch click, paste, and the end of a hex-field edit
17
+ * (blur, Enter or panel close).
11
18
  */
12
19
  export declare class CoColorPicker {
13
20
  el: HTMLElement;
@@ -46,11 +53,178 @@ export declare class CoColorPicker {
46
53
  * or plain hex strings. When set programmatically, accepts an actual array.
47
54
  */
48
55
  presets: string | ColorPreset[] | string[];
56
+ /** Idioma de los textos accesibles. Misma prop que co-file-field/co-date-picker. */
57
+ locale: string;
49
58
  /** Emits the selected hex color on change. */
50
59
  coChange: EventEmitter<string>;
60
+ /**
61
+ * Hex en vivo mientras se arrastra el área o el matiz. El host lo usa para
62
+ * previsualizar si quiere.
63
+ *
64
+ * La partición con `coChange` es el contrato nuevo y existe por una razón
65
+ * concreta: un arrastre produce ~60 valores por segundo, y emitirlos todos
66
+ * como `coChange` ensucia la sesión del formulario en cada frame (un
67
+ * "cambios sin guardar" por píxel movido). `coChange` sigue significando
68
+ * exactamente lo que significaba —commit—, así que los consumidores actuales
69
+ * no cambian una línea.
70
+ */
71
+ coInput: EventEmitter<string>;
51
72
  private isOpen;
52
73
  private copied;
74
+ /**
75
+ * El estado AUTORITATIVO del color mientras el picker está vivo: HSV en punto
76
+ * flotante. El hex es una derivación de presentación, no la fuente.
77
+ *
78
+ * ⛔ No redondear: el redondeo a entero rompe el round-trip (#02A270 vuelve
79
+ * como #02A370) y ése es el temblor del cursor al arrastrar. El redondeo va
80
+ * sólo en el borde (el `value` de los range y los aria-valuetext).
81
+ */
82
+ private hsv;
83
+ /**
84
+ * El TEXTO del campo hex (sin `#`), que mientras se tipea puede no ser un
85
+ * color: `12` es un hex a medio escribir, no un error. El valor real sigue
86
+ * siendo `value`; esto es sólo lo que se ve en el campo.
87
+ */
88
+ private hexDraft;
89
+ /**
90
+ * Si el usuario está tipeando en el campo hex. Mientras lo esté, el campo NO
91
+ * se re-espeja desde `value`: como el commit es en vivo, tipear `F00` emite
92
+ * `#FF0000` y espejarlo le reescribiría el texto bajo el cursor (react-colorful
93
+ * hace lo mismo, pero mirándole el foco al input; acá es un flag explícito
94
+ * porque el foco dentro de un shadow root no sale por `document.activeElement`
95
+ * y porque un flag es observable desde los tests).
96
+ *
97
+ * Se apaga en el blur y al reabrir el panel: un texto a medias abandonado por
98
+ * una vía que no entrega blur (Escape desmonta el panel entero) no puede
99
+ * dejar el espejo roto para siempre.
100
+ */
101
+ private hexEditing;
102
+ /**
103
+ * Cuál de los dos ejes del área tiene el tab stop. El otro sale del tab order
104
+ * (`tabindex=-1`) y del árbol de accesibilidad (`aria-hidden`), así que el
105
+ * formulario lista UN control por campo y el lector anuncia uno solo — pero
106
+ * los dos siguen operables, porque la flecha del eje oculto le mueve el foco
107
+ * por código. Es @State porque de él dependen atributos pintados.
108
+ */
109
+ private areaAxis;
110
+ /**
111
+ * Último hex que escribimos en `value`. Es el anti-drift de la capa de estado:
112
+ * si el host nos devuelve el mismo hex que acabamos de emitir, NO se
113
+ * re-convierte a HSV — un redondeo distinto movería el cursor solo.
114
+ * (El otro anti-drift está en color.ts: Hsv es float, nunca entero.)
115
+ *
116
+ * Guardaba también el HSV que produjo ese hex, y nadie lo leía nunca: los
117
+ * cuatro puntos que sellan el caché lo hacen inmediatamente después de
118
+ * asignar `this.hsv`, así que la copia era `this.hsv` por otro nombre —
119
+ * imposible de desincronizar y, por lo mismo, imposible de aprovechar. Un
120
+ * campo muerto dentro de un anti-drift es una invitación a "usarlo" y
121
+ * reintroducir justo el drift que esto evita.
122
+ */
123
+ private emitted;
124
+ /**
125
+ * El último hex realmente COMMITEADO (`coChange`), que es cosa distinta de
126
+ * `emitted`: ése lo sella también cada frame de preview, así que no puede
127
+ * decir a qué color volver cuando un gesto termina sin commitear.
128
+ *
129
+ * Es la línea de base del deshacer: a él vuelve un texto que quedó a medias
130
+ * y —el agujero que esto además tapa— un arrastre abortado, que hoy dejaba
131
+ * `value` en el color previsualizado sin que el host se hubiera enterado
132
+ * nunca por `coChange`.
133
+ */
134
+ private committed;
135
+ /**
136
+ * Índice del swatch enfocado, para la navegación por flechas (roving tabindex).
137
+ * Es @State y no un campo suelto porque el `tabIndex` de cada opción se pinta
138
+ * a partir de él: sin reactividad, las flechas moverían el foco pero el DOM
139
+ * quedaría con el tabbable original y salir/volver con Tab caería en el
140
+ * swatch equivocado.
141
+ */
142
+ private focusedIndex;
143
+ private gridEl?;
144
+ private areaEl?;
145
+ /**
146
+ * Si hay un arrastre ABIERTO sobre el área (hubo `pointerdown` acá que sí
147
+ * pudo traducir el punto). Sin esto, cualquier `pointerup` que aterrice sobre
148
+ * el área commitea: un arrastre iniciado en otra parte del panel y soltado
149
+ * encima emitía un `coChange` que el usuario nunca pidió — y en suite-v2
150
+ * commit significa formulario sucio.
151
+ */
152
+ private areaDragging;
153
+ private satEl?;
154
+ private valEl?;
155
+ /**
156
+ * Un valor entrante que YA es el que acabamos de emitir se descarta.
157
+ *
158
+ * Sin esto, un host controlado (el que guarda lo emitido y lo devuelve por la
159
+ * prop) reinyecta el hex derivado, que se re-convierte a HSV con otro
160
+ * redondeo y mueve el cursor solo en pleno arrastre. La comparación es
161
+ * case-insensitive porque el host normaliza el string —guardar en minúsculas
162
+ * es lo habitual— y el mismo color escrito distinto no es un cambio.
163
+ */
164
+ syncFromValue(next: string): void;
165
+ /**
166
+ * Siembra del estado. Es OBLIGATORIA acá, no basta el initializer del campo:
167
+ * - los @Watch no corren para el valor inicial de la prop;
168
+ * - el initializer de un miembro DECORADO no sobrevive en el entorno de spec
169
+ * (@stencil/vitest define el accessor encima del campo ya inicializado, así
170
+ * que `this.hsv` llega `undefined` al primer render y el destructuring de
171
+ * `renderArea` tira). Los otros @State del componente lo toleraban porque
172
+ * `undefined` es falsy justo donde se usan.
173
+ * Sin hex válido el estado arranca en negro, que es lo que pinta el área
174
+ * mientras no hay color elegido.
175
+ */
176
+ componentWillLoad(): void;
177
+ /**
178
+ * Movimiento en vivo: actualiza la UI y avisa, sin commitear.
179
+ *
180
+ * ⚠️ El caché se sella ANTES de tocar `this.value`: el setter de una @Prop
181
+ * corre sus @Watch de forma SÍNCRONA, así que con el caché todavía en el
182
+ * color anterior `syncFromValue` vería un color "nuevo", re-parsearía el hex
183
+ * y pisaría este HSV flotante con el redondeado — el temblor, en el mismo
184
+ * frame y sin que el host haya hecho nada. Guard: area.spec.
185
+ */
186
+ private previewHsv;
187
+ /**
188
+ * Lo mismo, pero entrando por un hex ENTERO en vez de por un eje: es lo que
189
+ * produce el campo de texto, donde el color no llega como "más saturación"
190
+ * sino como un color completo. Comparte el sellado con `previewHsv` para que
191
+ * el orden crítico (sellar → asignar → avisar) exista en UN solo lugar.
192
+ */
193
+ private previewHex;
194
+ private emitPreview;
195
+ /**
196
+ * Commit: lo que los consumidores ya escuchan hoy (soltar el arrastre,
197
+ * clickear un swatch).
198
+ *
199
+ * El HSV se re-deriva SÓLO si el hex viene de afuera —un swatch, un hex
200
+ * tipeado—, y eso se detecta preguntándole al propio estado si ese hex es el
201
+ * que produce. Re-derivar siempre tiene dos daños:
202
+ *
203
+ * 1. 🔴 En un color ACROMÁTICO el hex no lleva matiz: `#000000` es negro y
204
+ * punto, así que `hexToHsv` devuelve h=0 (rojo) y le BORRA al usuario el
205
+ * matiz que acababa de elegir. Con el campo vacío —el estado inicial de
206
+ * tres consumidores de suite-v2— el área se ponía azul al arrastrar el
207
+ * matiz y volvía a roja al soltar.
208
+ * 2. En un color cromático no lo borra pero lo REDONDEA (200 → 199.875):
209
+ * el estado interno pasando por la grilla del hex es justo lo que esta
210
+ * task existe para evitar.
211
+ */
212
+ private commit;
213
+ private get strings();
53
214
  private get parsedPresets();
215
+ /**
216
+ * Los grupos EN EL ORDEN EN QUE SE RENDERIZAN, cada uno con el índice plano
217
+ * de su primer swatch (`from`). La navegación por flechas se indexa contra
218
+ * este aplanado, no contra `parsedPresets`: si el orden del render y el del
219
+ * array divergieran, una flecha movería el foco a otro swatch.
220
+ *
221
+ * La frontera neutros/marca sale de `NEUTRAL_PRESET_KEYS` — la única fuente
222
+ * de la paleta. Nada de `slice(0, 5)`: ese `5` ya estaba duplicado en tres
223
+ * lugares y es lo que la task anterior vino a eliminar.
224
+ */
225
+ private get presetGroups();
226
+ /** Los swatches aplanados en orden de render: la lista que recorren las flechas. */
227
+ private get flatPresets();
54
228
  private handlePopoverOpen;
55
229
  private handlePopoverClose;
56
230
  private handleTriggerKeyDown;
@@ -59,7 +233,187 @@ export declare class CoColorPicker {
59
233
  * otro elemento — en ese caso no robarlo. */
60
234
  private restoreTriggerFocus;
61
235
  private handleSwatchClick;
236
+ /**
237
+ * Coordenadas del puntero → saturación/brillo.
238
+ *
239
+ * ⚠️ Un `rect` degenerado NO se convierte en un color: con `rect.width === 0`
240
+ * (área todavía sin layout, o con `display:none`) la división da **Infinity**
241
+ * —no NaN: NaN sólo sale si el numerador es exactamente 0— y el clamp lo
242
+ * lleva a 1, así que un pointerdown escribiría `s=100, v=0`, o sea NEGRO, y
243
+ * lo emitiría como si el usuario lo hubiera elegido. Guard: area.spec.
244
+ */
245
+ private pointerToHsv;
246
+ private handleAreaPointerDown;
247
+ private handleAreaPointerMove;
248
+ /**
249
+ * Un arrastre ABORTADO cierra el gesto sin commitear. Sin esto, el flag queda
250
+ * en `true` para siempre en esa instancia y el próximo `pointerup` suelto
251
+ * commitea — el mismo bug del gesto sin `pointerdown`, por otra puerta.
252
+ */
253
+ private handleAreaPointerCancel;
254
+ private handleAreaPointerUp;
255
+ /**
256
+ * Qué eje mueve cada flecha DENTRO del área, y en qué sentido. Un range
257
+ * horizontal nativo también responde a ↑/↓ moviendo SU eje, así que sin esta
258
+ * tabla (y su `preventDefault`) la flecha de arriba subía la saturación.
259
+ */
260
+ private static readonly AREA_KEYS;
261
+ /**
262
+ * Teclado del área: la flecha decide el eje, y ese eje pasa a ser el
263
+ * enfocado. El foco programático entra igual en el input con `tabindex=-1`
264
+ * —por eso el par tabindex-1 + aria-hidden no deja ningún eje inalcanzable—.
265
+ * SLDS: flecha = 1, Shift+flecha = 10.
266
+ */
267
+ private handleAreaKeyDown;
268
+ /** Mueve el tab stop del área (y el foco) al eje pedido. */
269
+ private focusAxis;
270
+ /**
271
+ * El matiz es un slider 1D suelto: las cuatro flechas son SU eje, así que el
272
+ * range nativo ya resuelve el paso de 1 y acá sólo se intercepta Shift.
273
+ */
274
+ private handleHueKeyDown;
275
+ private optionEls;
276
+ /**
277
+ * Vecino de arriba/abajo EN PANTALLA.
278
+ *
279
+ * La grilla no es una matriz única: son N grillas de 6 columnas apiladas, una
280
+ * por grupo, y la de neutros tiene 5 celdas. Por eso un stride plano de ±6
281
+ * sobre el índice global se corre una columna al cruzar la frontera (Black,
282
+ * columna 0, caía en Olive, columna 1). Fila y columna se calculan DENTRO del
283
+ * grupo; al cruzar al grupo vecino se conserva la columna, que es lo que
284
+ * "fila anterior / siguiente" significa visualmente.
285
+ *
286
+ * En el borde de la grilla el foco NO se mueve: colapsarlo al extremo mandaba
287
+ * cualquier neutro de la primera fila a Black.
288
+ *
289
+ * Asimetría DELIBERADA con las flechas horizontales, que sí wrappean (0↔16):
290
+ * el wrap cíclico en un eje y el tope duro en el otro es lo que hace APG para
291
+ * grillas, y es lo que deja claro dónde termina la paleta.
292
+ */
293
+ private verticalNeighbor;
294
+ private handleGridKeyDown;
295
+ /**
296
+ * El área saturación×brillo.
297
+ *
298
+ * Es un `role="group"` con UN `<input type="range">` invisible por eje —el
299
+ * modelo de React Aria—, en vez de un `role="slider"` 2D a mano: así el eje
300
+ * lo maneja un control nativo (teclado, repetición de tecla, anuncio del
301
+ * lector de pantalla) y sólo el arrastre queda de nuestro lado.
302
+ *
303
+ * El matiz viaja al CSS por custom property: el gradiente es CSS puro, sin
304
+ * canvas y sin un hex literal en la hoja de estilos.
305
+ */
306
+ private renderArea;
307
+ private renderHue;
308
+ private renderSwatches;
62
309
  private get statusIcon();
310
+ /**
311
+ * Lo que se puede TIPEAR en el campo: dígitos hex, hasta 6. El 7º caracter y
312
+ * el `#` no entran, y con 8 dígitos (hex con alpha) se queda con los 6 de
313
+ * color — este picker no maneja alpha.
314
+ */
315
+ private escapeHex;
316
+ /** `F00` → `#FF0000`: lo emitido es SIEMPRE de 6 dígitos. */
317
+ private expandHex;
318
+ /**
319
+ * Siembra el campo desde el valor REAL y cierra cualquier edición abierta.
320
+ *
321
+ * Con `value` vacío queda vacío: el estado interno arranca en EMPTY_HSV (rojo
322
+ * puro) para que el área tenga de dónde partir, pero eso es un seed de
323
+ * DISPLAY del área — espejarlo pondría `FF0000` escrito en un campo que el
324
+ * usuario nunca tocó, anunciando un color que nadie eligió.
325
+ */
326
+ private resetHexDraft;
327
+ /**
328
+ * Espeja el valor real en el campo, salvo mientras el usuario lo está
329
+ * tipeando.
330
+ *
331
+ * Sólo espeja lo que YA es un color (o el vacío, que limpia). `escapeHex`
332
+ * sobre cualquier otra cosa fabrica un hex verosímil: un host que pase
333
+ * `rebeccapurple` o `var(--co-color-primary-verde)` vería el campo mostrando
334
+ * `EBECCA` / `ACCAED`. Es exactamente la falla que el pegado cancela unas
335
+ * líneas más abajo, y entraba igual por la puerta de la prop. Los frames de
336
+ * arrastre siempre escriben un hex de 6, así que no se pierde nada legítimo.
337
+ */
338
+ private syncHexDraft;
339
+ /**
340
+ * Tipear PREVISUALIZA (`coInput`), no commitea.
341
+ *
342
+ * El campo es el único control del panel donde el gesto se estira en el
343
+ * tiempo, y tratarlo como commit por caracter tiene un costo que no se ve
344
+ * hasta que se mira de cerca: corregir un typo de `0263EB` a `026` emitiría
345
+ * `coChange('#002266')` — el usuario está BORRANDO y el componente commitea
346
+ * un color nuevo. Con el preview, el campo queda igual que sus tres hermanos
347
+ * (área, matiz, swatches): en vivo mientras dura el gesto, commit al
348
+ * soltarlo. El `#002266` que pinta al pasar por `026` es un frame intermedio
349
+ * de preview, ni más ni menos que cualquier frame de arrastre.
350
+ */
351
+ private handleHexInput;
352
+ /**
353
+ * Fin del gesto del campo: blur, Enter, o el cierre del panel.
354
+ *
355
+ * Commitea SIEMPRE que haya un color tipeado, sin comparar contra `value`
356
+ * —que a esta altura ya vale el color previsualizado, así que "commitear si
357
+ * cambió" no dispararía nunca—. Es el precedente del `pointerup` del área: el
358
+ * fin de gesto commitea, y si el usuario retipeó el mismo color, el `coChange`
359
+ * redundante es el precio.
360
+ *
361
+ * ⚠️ Consecuencia documentada de esa regla: tipear un hex válido y después
362
+ * clickear un swatch emite DOS `coChange` — el blur commitea el color
363
+ * tipeado, y el swatch el suyo. Es el precio explícito de que el fin de gesto
364
+ * no adivine intenciones, no un bug.
365
+ *
366
+ * Y si no hay nada que commitear, se DESHACE el preview vivo. Eso cubre dos
367
+ * casos con el mismo movimiento: el texto que quedó a medias (`12`), y el
368
+ * arrastre abortado —que emitía `coInput`, escribía `value` y no commiteaba
369
+ * nunca, dejando al picker mostrando un color que el host jamás recibió—.
370
+ */
371
+ private finishHexEdit;
372
+ /** Vuelve al último color commiteado y retira el preview que quedó colgado. */
373
+ private revertToCommitted;
374
+ private handleHexBlur;
375
+ /** Enter cierra el gesto sin salir del campo (y no submitea ningún form). */
376
+ private handleHexKeyDown;
377
+ /**
378
+ * Sin interceptar el pegado, el escape convierte `rgb(2, 99, 235)` en
379
+ * `299235` — basura silenciosa que ADEMÁS commitea sola, porque el `input` que
380
+ * sigue al pegado nativo ve 6 dígitos válidos.
381
+ *
382
+ * `parseCssColor` no cubre nombres CSS (ver color.ts): `rebeccapurple` escapa
383
+ * a `EBECCA`, un hex perfectamente válido que nadie eligió. Por eso lo que no
384
+ * es un color se CANCELA en vez de dejarse caer al escape; lo único que pasa
385
+ * de largo es un hex o el principio de uno, para poder pegar `02` y seguir
386
+ * tipeando.
387
+ */
388
+ private handleHexPaste;
389
+ /**
390
+ * Chrome/Edge 95+ solamente (MDN, 2026-09-02): Firefox, Safari y Chrome
391
+ * Android no la tienen. Se resuelve en el render, no en una prop: si no está,
392
+ * el botón no existe. Un control deshabilitado sin explicar es peor que su
393
+ * ausencia — y una prop obligaría a cada host a repetir la detección.
394
+ *
395
+ * El `typeof window` es por el build de hydrate, donde no hay `window` y el
396
+ * `in` tiraría.
397
+ */
398
+ private get hasEyeDropper();
399
+ /**
400
+ * El cuentagotas entrega un color COMPLETO en un acto atómico, igual que un
401
+ * swatch o un pegado: entra por `commit` —no se duplica ni la asignación ni
402
+ * el emit— y se normaliza con `parseCssColor`, porque la API devuelve el hex
403
+ * en minúscula (`#ff0000`) y el resto del picker trabaja en mayúscula.
404
+ *
405
+ * ⚠️ `finishHexEdit` va PRIMERO y SÍNCRONO, antes del `await`: clickear otro
406
+ * control del panel es el fin del gesto del campo hex, y ese gesto puede
407
+ * durar lo que el usuario tarde en recorrer la pantalla. Sin esto, un texto a
408
+ * medias (`12`) se queda escrito y `hexEditing` colgado durante todo el
409
+ * cuentagotas, y si el usuario CANCELA nadie lo deshace: el preview vivo
410
+ * sobrevive a un gesto que no commiteó nada. Es el mismo cierre que hace el
411
+ * pegado, por la misma razón. Correrlo dos veces es inocuo (el blur real del
412
+ * navegador lo dispara también): la segunda pasada ve `hexEditing` en false y
413
+ * `value === committed`, y sale sin emitir.
414
+ */
415
+ private handleEyeDropper;
416
+ private renderHexRow;
63
417
  private handleCopy;
64
418
  render(): any;
65
419
  }
@@ -1,10 +1,113 @@
1
+ /**
2
+ * Lo que acepta el HOST por la prop `presets`.
3
+ *
4
+ * `key` es OPCIONAL a propósito: este tipo es **superficie pública** — se
5
+ * re-exporta desde `components.d.ts` y tipa la prop `presets` del componente.
6
+ * Volverla requerida rompe la compilación de todo consumidor que hoy pasa
7
+ * `[{ name, value }]`, que es un breaking change de tipo fuera del spec.
8
+ */
1
9
  export interface ColorPreset {
10
+ /** Clave estable para traducir el nombre en el host (form-vue traduce por acá). */
11
+ key?: string;
12
+ name: string;
13
+ value: string;
14
+ }
15
+ /**
16
+ * Lo que circula puertas adentro, ya normalizado: acá la `key` SÍ está
17
+ * garantizada. `resolvePreset` la rellena cuando el host no la trae.
18
+ *
19
+ * Tipo INTERNO: no aparece en `components.d.ts`, así que agregarle campos no
20
+ * es un breaking change para ningún host (el público es `ColorPreset`).
21
+ */
22
+ export interface ResolvedColorPreset {
23
+ key: string;
2
24
  name: string;
3
25
  value: string;
26
+ /**
27
+ * `true` cuando la `key` NO la declaró el host y se la inventamos nosotros.
28
+ *
29
+ * Es la diferencia entre "este host usa nuestra paleta" y "este host escribió
30
+ * colores sueltos". Importa porque DOCE de las diecisiete keys son nombres de
31
+ * color CSS (`black`, `green`, `red`…): sin la marca, un host que pasa
32
+ * `['black','green','red']` —la forma más fácil de escribir presets a mano—
33
+ * quedaría con dos grupos rotulados "Neutros"/"Colores de marca" para una
34
+ * paleta que no es la nuestra, o sea una frontera inventada para el lector de
35
+ * pantalla. Ausente (no `false`) cuando la key vino declarada, así que los
36
+ * literales de `DEFAULT_PRESETS` no tienen que repetirla.
37
+ */
38
+ synthesizedKey?: true;
39
+ }
40
+ /**
41
+ * Normaliza lo que llega por la prop `presets` a la forma interna, dejando
42
+ * anotado si la `key` vino declarada o se sintetizó.
43
+ *
44
+ * `ColorPreset.key` es OPCIONAL porque el tipo es superficie pública (lo
45
+ * re-exporta `components.d.ts`): exigirla rompería a todo host que hoy pasa
46
+ * `[{ name, value }]`. Puertas adentro la damos por garantizada, así que se
47
+ * rellena acá. Un hex suelto no tiene identidad traducible: su propio hex
48
+ * ES su identidad.
49
+ *
50
+ * Vive acá y no en el componente porque es el ÚNICO lugar que sintetiza keys, y
51
+ * `splitPaletteGroups` —su consumidor— depende de esa marca: separarlos deja el
52
+ * invariante a un import de distancia de romperse en silencio.
53
+ */
54
+ export declare const resolvePreset: (p: ColorPreset | string) => ResolvedColorPreset;
55
+ /**
56
+ * Paleta por default: 5 neutros + los 12 de marca (base.json).
57
+ * Los nombres vienen en inglés; el consumidor los traduce POR `key` — nunca
58
+ * duplicando la lista de valores, que fue lo que hizo derivar a FieldColor.vue.
59
+ *
60
+ * Sin blanco puro a propósito (spec §2): una etiqueta blanca desaparece sobre
61
+ * el fondo blanco. Los encabezados de documento lo pasan por la prop `presets`.
62
+ *
63
+ * Los hex son literales porque son DATA del picker, no estilo.
64
+ */
65
+ export declare const DEFAULT_PRESETS: ResolvedColorPreset[];
66
+ /**
67
+ * Los 5 primeros son neutros. Frontera ÚNICA: la grilla agrupa por acá y el
68
+ * seed sortea del resto. No repetir el `5` a mano en ningún otro lado.
69
+ */
70
+ export declare const NEUTRAL_PRESET_KEYS: readonly ["black", "gray", "silver", "smoke", "bone"];
71
+ /**
72
+ * Sólo las de marca, derivadas de la frontera. El seed aleatorio al CREAR un
73
+ * registro sortea de acá: nacer con una etiqueta gris es peor que el estado
74
+ * anterior.
75
+ */
76
+ export declare const BRAND_PRESET_KEYS: string[];
77
+ /** Los dos lados de la paleta, en el orden en que se renderizan. */
78
+ export interface PaletteSplit {
79
+ neutrals: ResolvedColorPreset[];
80
+ brand: ResolvedColorPreset[];
4
81
  }
5
82
  /**
6
- * Default color presets derived from Cobalt design tokens (base.json).
7
- * Uses primary colors + secondary-100 (full saturation, best contrast).
8
- * Names are English by default — consumers can override with translated presets.
83
+ * Parte una lista de presets en [neutros, marca], o devuelve `null` si no hay
84
+ * una partición que signifique algo.
85
+ *
86
+ * Se decide por MEMBRESÍA de `key`, nunca por identidad de referencia contra
87
+ * `DEFAULT_PRESETS`. La identidad es frágil por definición —dos arrays con el
88
+ * mismo contenido se comportan distinto— y ya costó un bug real: `FieldColor.vue`
89
+ * re-serializa la paleta para colgarle los nombres traducidos, así que llegaba
90
+ * como un array nuevo, caía en la rama "custom" y los `role="group"` +
91
+ * `aria-label` del spec §4 no se renderizaban NUNCA en la aplicación. La a11y
92
+ * existía sólo en los tests, que sí pasaban la paleta por identidad.
93
+ *
94
+ * Devuelve `null` en tres casos, y los tres terminan en un grupo único SIN
95
+ * rótulo:
96
+ * - alguna `key` la sintetizamos nosotros (`synthesizedKey`): el host no declaró
97
+ * nuestra paleta, y como doce de las keys son nombres de color CSS, mirar sólo
98
+ * el texto haría pasar por paleta nuestra a unos strings sueltos;
99
+ * - alguna `key` declarada es desconocida (paleta custom del host): no hay nada
100
+ * semántico que declarar;
101
+ * - falta alguno de los dos lados: un grupo solo no particiona nada, así que
102
+ * rotularlo anunciaría al lector de pantalla una frontera que no existe.
103
+ *
104
+ * ORDEN (decisión explícita): cuando la paleta se reconoce, se re-emite en orden
105
+ * canónico —neutros primero, marca después—, conservando el orden relativo del
106
+ * host DENTRO de cada lado. No es evitable: dos grupos contiguos no se pueden
107
+ * renderizar respetando un orden intercalado. Entre perder la agrupación
108
+ * semántica (spec §4) y perder un orden que el host no pudo curar sin adoptar
109
+ * antes nuestro vocabulario de keys, gana la agrupación. `flatPresets` y
110
+ * `focusedIndex` derivan de `presetGroups`, así que las flechas recorren el
111
+ * orden RENDERIZADO y no se desincronizan.
9
112
  */
10
- export declare const DEFAULT_PRESETS: ColorPreset[];
113
+ export declare function splitPaletteGroups(presets: ResolvedColorPreset[]): PaletteSplit | null;
@@ -2,8 +2,10 @@ import { EventEmitter } from '../../stencil-public-runtime';
2
2
  import type { Placement } from '../../utils/positioning';
3
3
  /**
4
4
  * Date + TIME picker: one field, one popover. Composes `co-popover` (floating
5
- * panel, outside-click) + `co-calendar` (day grid) + a scrollable list of times
6
- * beside it — the Google Calendar layout.
5
+ * panel, outside-click) + `co-calendar` (day grid) + a side panel with
6
+ * shortcuts (`presetIds`: morning/noon/afternoon/endOfDay/now) and a segmented
7
+ * `co-time-field` (hh:mm, PageUp/PageDown stepping by `stepMinutes`) for the
8
+ * exact hour, plus a "Listo" button.
7
9
  *
8
10
  * VALUE CONTRACT — the committed `value` is a UTC ISO instant
9
11
  * ("2026-07-25T21:30:00.000Z"), never a wall-clock string. The wall clock the
@@ -16,16 +18,26 @@ import type { Placement } from '../../utils/positioning';
16
18
  * would shift the day west of UTC).
17
19
  *
18
20
  * INTERACTION (Google):
19
- * - Click the field → opens. Picking a DAY commits and keeps the panel open
20
- * (you almost always want to set the hour next); picking a TIME commits and
21
- * closes. So there is no draft/apply step and no confirm button.
21
+ * - Click the field → opens. Picking a DAY commits (with the current DRAFT
22
+ * hour, not the previously committed one) and keeps the panel open — you
23
+ * almost always want to set the hour next.
24
+ * - The exact time is a DRAFT (`draftMinutes`) while `co-time-field` is
25
+ * edited (`coInput`) — editing alone never commits. It only commits (and
26
+ * closes) on: clicking a shortcut, Enter/`coCommit` from the time field,
27
+ * or the "Listo" button.
28
+ * - Outside click — and, on mobile, swiping the bottom sheet down — commits
29
+ * the draft if it changed, then closes: the same "apply on blur" model a
30
+ * text field uses.
31
+ * - Escape is the opposite: an explicit DISCARD. It closes WITHOUT applying
32
+ * the draft and returns focus to the trigger field.
22
33
  * - ArrowDown on the field → moves focus into the calendar grid.
23
- * - The time list is a listbox: Arrow/Home/End/PageUp/PageDown move the active
24
- * option, Enter/Space selects it.
25
- * - Escape → closes and returns focus to the field. Outside click → closes.
34
+ * - Mobile (viewport ≤ `mobileBreakpoint`) renders the same panel as a
35
+ * bottom sheet (`co-drawer position="bottom"`) instead of the desktop
36
+ * popover; the draft/commit/discard model is identical.
26
37
  *
27
- * Escape is owned here (co-popover `closeOnEscape=false`) so focus can return to
28
- * the field; outside-click stays with co-popover.
38
+ * Escape is owned here (co-popover `closeOnEscape=false`) so focus can return
39
+ * to the field; outside-click/sheet-dismiss stay with co-popover/co-drawer and
40
+ * are handled by `closeApplyingDraft` (see its doc for the Escape asymmetry).
29
41
  *
30
42
  * @part field - The bordered trigger row
31
43
  * @part label - The field label
@@ -39,8 +51,10 @@ export declare class CoDateTimePicker {
39
51
  value: string | null;
40
52
  /** IANA zone the wall clock is rendered in. Defaults to the browser zone. */
41
53
  timeZone?: string;
42
- /** Minutes between consecutive options in the time list. */
54
+ /** Paso de PageUp/PageDown del campo de hora (antes: paso de la lista). */
43
55
  stepMinutes: number;
56
+ /** Atajos del panel, en orden. Ids del catálogo: morning|noon|afternoon|endOfDay|now. */
57
+ presetIds: string[] | string;
44
58
  /** 12-hour clock (Google style). `false` renders a 24h clock. */
45
59
  hour12: boolean;
46
60
  /** Earliest selectable day. Date-only "YYYY-MM-DD" or an instant. */
@@ -77,8 +91,8 @@ export declare class CoDateTimePicker {
77
91
  mobileBreakpoint: number;
78
92
  /** True when the viewport is at/under `mobileBreakpoint`. */
79
93
  isMobile: boolean;
80
- /** Minutes-of-day highlighted by the keyboard in the time list. */
81
- activeMinutes: number;
94
+ /** Minutes-of-day drafted in the exact-time field (co-time-field), not yet committed. */
95
+ draftMinutes: number;
82
96
  /** Committed instant (UTC ISO) or null. */
83
97
  coChange: EventEmitter<string | null>;
84
98
  coClear: EventEmitter<void>;
@@ -89,15 +103,13 @@ export declare class CoDateTimePicker {
89
103
  private popoverEl?;
90
104
  private calendarEl?;
91
105
  private triggerBtn?;
92
- private listEl?;
93
106
  private pendingFocusGrid;
94
107
  private pendingFocusTrigger;
95
- /** 'center' when the list is (re)opened, 'nearest' while arrowing through it. */
96
- private pendingScroll;
97
108
  private mql?;
98
109
  private mqlHandler;
99
110
  connectedCallback(): void;
100
111
  disconnectedCallback(): void;
112
+ componentWillLoad(): void;
101
113
  onOpenChange(next: boolean): void;
102
114
  private get zone();
103
115
  private get isInvalid();
@@ -112,17 +124,27 @@ export declare class CoDateTimePicker {
112
124
  private onClearClick;
113
125
  private onCalendarSelect;
114
126
  private pickTime;
115
- private onListKeyDown;
127
+ private static readonly PRESET_CATALOG;
128
+ private get presets();
129
+ private onTimeFieldInput;
130
+ private onTimeFieldCommit;
116
131
  private onPopoverOpen;
132
+ /**
133
+ * Closes applying whatever is drafted (R7) — outside click / drawer
134
+ * swipe-down behave like a field's blur: what you typed sticks. This is
135
+ * the ONLY path that commits the draft on close; Escape is the opposite —
136
+ * an explicit discard — and it does NOT go through here: `onRootKeyDown`
137
+ * flips `this.open` to `false` via `setOpen()` FIRST, so by the time the
138
+ * real co-popover/co-drawer finish closing and bubble their own `coClose`
139
+ * back to `onPopoverClose`/this drawer's `onCoClose`, the guard below
140
+ * already reads `false` and no-ops — the draft is discarded, not applied.
141
+ */
142
+ private closeApplyingDraft;
117
143
  private onPopoverClose;
118
144
  private onRootKeyDown;
119
145
  private focusGridSoon;
120
- private scrollActiveIntoView;
121
146
  componentDidRender(): void;
122
147
  private get step();
123
- /** Grid of minutes-of-day, plus the committed hour when it falls off-grid
124
- * (an imported 16:37 meeting must stay visible and selectable). */
125
- private get options();
126
148
  private renderTrigger;
127
149
  private renderPanel;
128
150
  private renderHelper;
@@ -71,9 +71,10 @@ export declare class CoDrawer {
71
71
  private stopPropagation;
72
72
  private handleTransitionEnd;
73
73
  private asideEl?;
74
- /** Modeless only: keep the aside promoted to the top layer for its whole
75
- * lifetime (mirrors co-overlay's syncPopover; eviction on disconnect is
76
- * automatic). */
74
+ /** Ref del aside — SIEMPRE adjunto (handleTransitionEnd lo necesita como
75
+ * target). Modeless only: además mantiene el aside promovido al top layer
76
+ * para toda su vida (mirrors co-overlay's syncPopover; eviction on
77
+ * disconnect is automatic). */
77
78
  private promoteModeless;
78
79
  componentDidLoad(): void;
79
80
  render(): any;