@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
@@ -1,5 +1,5 @@
1
1
  import { h } from "@stencil/core";
2
- import { computePosition, findNearestScrollParent, getOffsetAncestor } from "../../utils/positioning";
2
+ import { computePosition, findScrollParents, getOffsetAncestor } from "../../utils/positioning";
3
3
  import { pushLayer, removeLayer, isTopLayer } from "../../utils/popover-stack";
4
4
  /** Side classes driving the entrance `transform-origin` (see co-popover.css). */
5
5
  const SIDE_CLASSES = ['top', 'bottom', 'left', 'right'].map((s) => `co-popover__panel--${s}`);
@@ -27,6 +27,8 @@ export class CoPopover {
27
27
  this.closeOnEscape = true;
28
28
  /** Flip placement when the panel would overflow the viewport. */
29
29
  this.flip = true;
30
+ /** Fase de salida: mantiene el panel montado mientras corre la transición de cierre. */
31
+ this.closing = false;
30
32
  this.scrollParents = [];
31
33
  // Cached offset ancestor + a flag to distinguish "not computed yet" from
32
34
  // "computed and there is none". Avoids re-walking the DOM + calling
@@ -38,6 +40,20 @@ export class CoPopover {
38
40
  // had every popover instance (open or not) running capture-phase document
39
41
  // click handlers, growing O(N) with popover count in the page.
40
42
  this.docListenersBound = false;
43
+ this.finishClose = () => {
44
+ clearTimeout(this.closeFallbackTimer);
45
+ if (this.open)
46
+ return; // reabierto durante el cierre
47
+ this.closing = false;
48
+ this.panelEl = undefined;
49
+ };
50
+ this.handlePanelTransitionEnd = (e) => {
51
+ if (this.open || !this.closing)
52
+ return;
53
+ if (e.target !== this.panelEl || e.propertyName !== 'transform')
54
+ return;
55
+ this.finishClose();
56
+ };
41
57
  // ── Click outside (manual, capture phase) ──────────────────
42
58
  // Attached/detached in connectedCallback/disconnectedCallback. Using capture
43
59
  // phase so we run before any inner-element listeners that might stop
@@ -77,8 +93,8 @@ export class CoPopover {
77
93
  return;
78
94
  const triggerRect = this.triggerEl.getBoundingClientRect();
79
95
  // ⚠️ El panel arrastra el `transform: scale()` de la entrada, y
80
- // getBoundingClientRect() devuelve la caja TRANSFORMADA: 0.98× al montar y
81
- // ~0.982× en la segunda pasada del watcher (~16ms de los 180ms). Medir con
96
+ // getBoundingClientRect() devuelve la caja TRANSFORMADA: 0.97× al montar y
97
+ // ~0.972× en la segunda pasada del watcher (~16ms de los `base` 250ms). Medir con
82
98
  // ella metía el factor de escala DENTRO de la matemática de posicionamiento,
83
99
  // y ~2% del error quedaba en la posición de reposo: las alineaciones que
84
100
  // restan el tamaño del panel (`bottom-end` — el default de co-menu —, `top*`,
@@ -133,6 +149,7 @@ export class CoPopover {
133
149
  if (!this.panelEl.classList.contains(sideClass)) {
134
150
  this.panelEl.classList.remove(...SIDE_CLASSES);
135
151
  this.panelEl.classList.add(sideClass);
152
+ this.coPlacement.emit({ placement: actualPlacement });
136
153
  }
137
154
  this.panelEl.classList.add('co-popover__panel--positioned');
138
155
  }
@@ -166,10 +183,18 @@ export class CoPopover {
166
183
  removeLayer(this.el);
167
184
  this.unbindDocListeners();
168
185
  this.cleanupListeners();
186
+ clearTimeout(this.closeFallbackTimer);
187
+ // Desconectado a mitad del exit (p.ej. host removido por un v-if del
188
+ // padre mientras corre la transición de cierre): si se reconecta luego
189
+ // (:key remount, teleport) sin pasar por finishClose, `closing` quedaría
190
+ // stale en true y el panel nacería en fase de salida.
191
+ this.closing = false;
169
192
  }
170
193
  // ── Watchers ───────────────────────────────────────────────
171
194
  onOpenChange(isOpen) {
172
195
  if (isOpen) {
196
+ this.closing = false;
197
+ clearTimeout(this.closeFallbackTimer);
173
198
  pushLayer(this.el);
174
199
  this.coOpen.emit();
175
200
  this.bindDocListeners();
@@ -190,10 +215,16 @@ export class CoPopover {
190
215
  this.unbindDocListeners();
191
216
  this.cachedOffsetAncestor = null;
192
217
  this.offsetAncestorComputed = false;
193
- // The panel is removed from the DOM by the conditional render (which also
194
- // evicts it from the top layer); drop the now-detached ref so no async
195
- // updatePosition can touch a stale element before the next open re-sets it.
196
- this.panelEl = undefined;
218
+ // Panel keeps its ref/position frozen through the exit animation — the
219
+ // ref is dropped only when `finishClose` actually unmounts the node
220
+ // (transitionend, or the fallback timer). `panelEl` is intentionally
221
+ // NOT cleared here.
222
+ this.closing = true;
223
+ // Fallback por si transitionend no dispara (tab oculta, display:none ancestro).
224
+ // ⚠️ Atado al token: debe superar --co-motion-duration-fast (150ms) con margen —
225
+ // si el retune sube `fast` por encima de ~350ms, revisar esta constante.
226
+ clearTimeout(this.closeFallbackTimer);
227
+ this.closeFallbackTimer = setTimeout(() => this.finishClose(), 400);
197
228
  }
198
229
  }
199
230
  bindDocListeners() {
@@ -242,19 +273,24 @@ export class CoPopover {
242
273
  }
243
274
  }
244
275
  // ── Scroll/resize listeners ────────────────────────────────
245
- // Listen to window resize/scroll (covers most layout changes) and to the
246
- // NEAREST scrollable ancestor (covers internal-scroll containers like a
247
- // datatable body or co-drawer). Previously walked the entire ancestor chain,
248
- // attaching N listeners per popover open — for deep trees, that was 5-10
249
- // extra listeners per popover × per-scroll-tick getBoundingClientRect calls.
276
+ // Listen to window resize/scroll and to every ancestor that ACTUALLY scrolls
277
+ // (co-drawer/co-modal body, datatable body…).
278
+ //
279
+ // El listener de window NO alcanza por sí solo: los eventos `scroll` no son
280
+ // `composed`, así que el de un scroller que vive dentro de un shadow root
281
+ // —el caso de `.co-drawer__body`— nunca cruza el límite y el capture de
282
+ // window no lo ve. Por eso hay que engancharse al scroller mismo.
283
+ //
284
+ // Se recorre la cadena entera y no solo el ancestro más cercano porque los
285
+ // scrollers se anidan; `findScrollParents` ya filtra por `overflow` real, así
286
+ // que la lista queda en 1-2 elementos y no en los 5-10 que motivaron acotar
287
+ // esto a uno solo en su momento.
250
288
  addScrollListeners() {
251
289
  window.addEventListener('resize', this.scheduleUpdate, { passive: true });
252
290
  window.addEventListener('scroll', this.scheduleUpdate, { passive: true, capture: true });
253
- this.scrollParents = [];
254
- const scrollAncestor = findNearestScrollParent(this.el);
255
- if (scrollAncestor) {
256
- scrollAncestor.addEventListener('scroll', this.scheduleUpdate, { passive: true });
257
- this.scrollParents.push(scrollAncestor);
291
+ this.scrollParents = findScrollParents(this.el);
292
+ for (const parent of this.scrollParents) {
293
+ parent.addEventListener('scroll', this.scheduleUpdate, { passive: true });
258
294
  }
259
295
  }
260
296
  cleanupListeners() {
@@ -271,13 +307,13 @@ export class CoPopover {
271
307
  }
272
308
  // ── Render ─────────────────────────────────────────────────
273
309
  render() {
274
- return (h("div", { key: '8a4ccad04a131824d9990759a41905e4772fd56c', class: "co-popover" }, h("div", { key: 'b71344c25aa5f785dbcb65425931f25403877173', class: "co-popover__trigger", ref: (el) => (this.triggerEl = el), onClick: this.handleTriggerClick }, h("slot", { key: '3a2ad77fbf1d79f917f9c7278faef8ecb65a364e', name: "trigger" })), this.open && (h("div", { key: 'dd6d65a867b15ad3d6fe18658d1f3fdd89be8806', class: "co-popover__panel", popover: "manual", ref: (el) => {
310
+ return (h("div", { key: 'f8460e212fabe8828f1e33f08304d7e680a7cab0', class: "co-popover" }, h("div", { key: 'c9caad8ae7f16c82173e4b30ad5cc053dc73b6da', class: "co-popover__trigger", ref: (el) => (this.triggerEl = el), onClick: this.handleTriggerClick }, h("slot", { key: 'afa0443ba85607cf24f517e8c7fe0cee689df024', name: "trigger" })), (this.open || this.closing) && (h("div", { key: 'd2a081f8923f53ac456edd6e5eb7422dc5ab7daa', class: { 'co-popover__panel': true, 'co-popover__panel--closing': this.closing }, popover: "manual", onTransitionEnd: this.handlePanelTransitionEnd, ref: (el) => {
275
311
  if (el && el !== this.panelEl) {
276
312
  this.panelEl = el;
277
313
  this.promotePanel();
278
314
  this.scheduleUpdate();
279
315
  }
280
- } }, h("slot", { key: '3082d046fc973bd5f571b4f9b845844be6e6bf9c' })))));
316
+ } }, h("slot", { key: '8466f617bd6b8a497e2040d3275b384156de126c' })))));
281
317
  }
282
318
  static get is() { return "co-popover"; }
283
319
  static get encapsulation() { return "shadow"; }
@@ -322,7 +358,7 @@ export class CoPopover {
322
358
  "references": {
323
359
  "PopoverPlacement": {
324
360
  "location": "local",
325
- "path": "/Users/agox/worktrees/cobalt-rel-20260827-tooltip/packages/core/src/components/co-popover/co-popover.tsx",
361
+ "path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-popover/co-popover.tsx",
326
362
  "id": "src/components/co-popover/co-popover.tsx::PopoverPlacement"
327
363
  }
328
364
  }
@@ -441,6 +477,11 @@ export class CoPopover {
441
477
  }
442
478
  };
443
479
  }
480
+ static get states() {
481
+ return {
482
+ "closing": {}
483
+ };
484
+ }
444
485
  static get events() {
445
486
  return [{
446
487
  "method": "coOpen",
@@ -472,6 +513,28 @@ export class CoPopover {
472
513
  "resolved": "void",
473
514
  "references": {}
474
515
  }
516
+ }, {
517
+ "method": "coPlacement",
518
+ "name": "coPlacement",
519
+ "bubbles": false,
520
+ "cancelable": true,
521
+ "composed": true,
522
+ "docs": {
523
+ "tags": [],
524
+ "text": "El placement REAL con el que qued\u00F3 el panel, ya pasado por el flip \u2014 que\npuede no ser el de la prop `placement`. Lo consume `co-menu-item` para que\nuna cadena de submen\u00FAs herede la direcci\u00F3n (ver utils/submenu.ts): sin\nesto, un submen\u00FA anidado vuelve a abrir hacia la derecha y se dibuja\nencima del men\u00FA padre del que sali\u00F3.\n\nSe emite SOLO cuando el lado cambia (mismo guard que la clase del panel),\nas\u00ED el path de scroll/resize no dispara un evento por tick."
525
+ },
526
+ "complexType": {
527
+ "original": "{ placement: Placement }",
528
+ "resolved": "{ placement: Placement; }",
529
+ "references": {
530
+ "Placement": {
531
+ "location": "import",
532
+ "path": "../../utils/positioning",
533
+ "id": "src/utils/positioning.ts::Placement",
534
+ "referenceLocation": "Placement"
535
+ }
536
+ }
537
+ }
475
538
  }];
476
539
  }
477
540
  static get methods() {
@@ -18,12 +18,12 @@ export class CoProgressBar {
18
18
  render() {
19
19
  const clamped = Math.max(0, Math.min(100, this.value));
20
20
  const indeterminate = this.indeterminate;
21
- return (h("div", { key: 'ec9ad8aa5fec0758148920a219a9ad38bbb2d26a', class: {
21
+ return (h("div", { key: '1d46449d4034da8868004f4204007301126526dd', class: {
22
22
  'co-progress-bar': true,
23
23
  [`co-progress-bar--${this.status}`]: true,
24
24
  [`co-progress-bar--${this.variant}`]: true,
25
25
  'co-progress-bar--indeterminate': indeterminate,
26
- }, role: "progressbar", "aria-valuenow": indeterminate ? undefined : clamped, "aria-valuemin": 0, "aria-valuemax": 100, part: "bar", style: { height: `${this.thickness}px` } }, h("div", { key: '18185890f38b6fba049d914a98644c655d0f5cbe', class: "co-progress-bar__fill", style: indeterminate ? undefined : { width: `${clamped}%` } })));
26
+ }, role: "progressbar", "aria-valuenow": indeterminate ? undefined : clamped, "aria-valuemin": 0, "aria-valuemax": 100, part: "bar", style: { height: `${this.thickness}px` } }, h("div", { key: '2bbc631c4ee331cc265b1fb779006b72f6cd436e', class: "co-progress-bar__fill", style: indeterminate ? undefined : { width: `${clamped}%` } })));
27
27
  }
28
28
  static get is() { return "co-progress-bar"; }
29
29
  static get encapsulation() { return "shadow"; }
@@ -19,7 +19,7 @@ export class CoProgressCircle {
19
19
  const clamped = Math.max(0, Math.min(100, this.value));
20
20
  const angle = (clamped / 100) * 360;
21
21
  const safeStroke = Math.min(this.strokeWidth, this.size / 2);
22
- return (h("div", { key: '54589f277b5c2b8b0d79ee514d96c58fc82f7f55', class: {
22
+ return (h("div", { key: '161f80b35c78efff11e7ecbff1c9cb234bb85390', class: {
23
23
  'co-progress-circle': true,
24
24
  [`co-progress-circle--${this.status}`]: true,
25
25
  }, role: "progressbar", "aria-valuenow": clamped, "aria-valuemin": 0, "aria-valuemax": 100, part: "circle", style: {
@@ -27,7 +27,7 @@ export class CoProgressCircle {
27
27
  height: `${this.size}px`,
28
28
  '--co-pc-angle': `${angle}deg`,
29
29
  '--co-pc-stroke': `${safeStroke}px`,
30
- } }, h("div", { key: '531012a9eb019c39b11037e0ab6748ece8c946f1', class: "co-progress-circle__track" }), this.showLabel && (h("span", { key: '6ca9aff7a1069d59ad8cc65e5fb8c913084c6aa2', class: "co-progress-circle__label" }, clamped, "%"))));
30
+ } }, h("div", { key: 'f68892a3b122f6ad97cb3a2415fd7456055fdc3a', class: "co-progress-circle__track" }), this.showLabel && (h("span", { key: '4bac057faa45335a4fba807b7a58eebdabd26489', class: "co-progress-circle__label" }, clamped, "%"))));
31
31
  }
32
32
  static get is() { return "co-progress-circle"; }
33
33
  static get encapsulation() { return "shadow"; }
@@ -17,15 +17,15 @@ export class CoRadio {
17
17
  };
18
18
  }
19
19
  render() {
20
- return (h("div", { key: '1726b4dd23985c0cae5ce04d795924e069511ccb', class: {
20
+ return (h("div", { key: '4d3635f594d87efe5dbfee2dae2c57dd359c79f8', class: {
21
21
  'co-radio-row': true,
22
22
  'co-radio-row--disabled': this.disabled,
23
- }, onClick: this.handleClick }, h("button", { key: '2164e458b160a853127a50af15560c6ff94bb3e5', role: "radio", "aria-checked": String(this.checked), "aria-label": this.label || '', class: {
23
+ }, onClick: this.handleClick }, h("button", { key: '8e438682bc870404be748acba71589ab87f63dec', role: "radio", "aria-checked": String(this.checked), "aria-label": this.label || '', class: {
24
24
  'co-radio': true,
25
25
  [`co-radio--${this.size}`]: true,
26
26
  'co-radio--checked': this.checked,
27
27
  'co-radio--disabled': this.disabled,
28
- }, disabled: this.disabled, part: "circle" }), this.label && (h("span", { key: 'ac519d76a29d186bcbfa8b5e100272f3ccb305ef', class: "co-radio__label", part: "label" }, this.label))));
28
+ }, disabled: this.disabled, part: "circle" }), this.label && (h("span", { key: '17668c66e61b664e3b49a2acd230b99b2cf8409b', class: "co-radio__label", part: "label" }, this.label))));
29
29
  }
30
30
  static get is() { return "co-radio"; }
31
31
  static get encapsulation() { return "shadow"; }
@@ -219,7 +219,7 @@ export class CoRadioGroup {
219
219
  "references": {
220
220
  "RadioOption": {
221
221
  "location": "local",
222
- "path": "/Users/agox/worktrees/cobalt-rel-20260827-tooltip/packages/core/src/components/co-radio-group/co-radio-group.tsx",
222
+ "path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-radio-group/co-radio-group.tsx",
223
223
  "id": "src/components/co-radio-group/co-radio-group.tsx::RadioOption"
224
224
  }
225
225
  }
@@ -36,16 +36,16 @@ export class CoRating {
36
36
  const iconSize = this.size === 'large' ? 28 : 20;
37
37
  const active = this.hoverValue || this.value;
38
38
  const stars = Array.from({ length: this.max }, (_, i) => i + 1);
39
- return (h("div", { key: '781b724e9eee1223d988d0669983b33c0e0867c2', class: {
39
+ return (h("div", { key: '3e6bb945a46ad896a07d2588c6a4d969bce3dfcf', class: {
40
40
  'co-rating': true,
41
41
  'co-rating--disabled': this.disabled,
42
42
  'co-rating--readonly': this.readOnly,
43
43
  [`co-rating--${this.size}`]: true,
44
- } }, this.label && h("label", { key: '77788be712df1d8ad302969a408c02b47ba5fd61', class: "co-rating__label" }, this.label), h("div", { key: '5f3bbad8e8f1a7a2e79eabb0e8e9bd3a3effeba9', class: "co-rating__stars", onMouseLeave: this.handleMouseLeave }, stars.map(star => (h("button", { class: {
44
+ } }, this.label && h("label", { key: 'ef9971e3314eb4f270c35b94d2a85f25b8861b68', class: "co-rating__label" }, this.label), h("div", { key: 'b1c3997ec8a3a8950e24ef97af571d5db7283b50', class: "co-rating__stars", onMouseLeave: this.handleMouseLeave }, stars.map(star => (h("button", { class: {
45
45
  'co-rating__star': true,
46
46
  'co-rating__star--active': star <= active,
47
47
  'co-rating__star--hover': this.hoverValue > 0 && star <= this.hoverValue,
48
- }, type: "button", tabIndex: this.disabled || this.readOnly ? -1 : 0, disabled: this.disabled, onClick: () => this.handleClick(star), onMouseEnter: () => this.handleMouseEnter(star), "aria-label": `${star} of ${this.max}` }, h("co-icon", { name: this.icon, size: iconSize, weight: star <= active ? 'fill' : 'regular' }))))), this.helperText && (h("div", { key: 'e8d0f15c83777dc5d3c3bd1db3d9c16a9c120f56', class: `co-rating__helper co-rating__helper--${this.status}` }, this.statusIcon && h("co-icon", { key: 'cd3f94380d0165845fab30aba00700304082b566', name: this.statusIcon, size: 14, weight: "fill", class: "co-rating__helper-icon" }), h("span", { key: 'b4e9e93a4a8d7c02016ea3f53735b48cef5a3754', class: "co-rating__helper-text" }, this.helperText)))));
48
+ }, type: "button", tabIndex: this.disabled || this.readOnly ? -1 : 0, disabled: this.disabled, onClick: () => this.handleClick(star), onMouseEnter: () => this.handleMouseEnter(star), "aria-label": `${star} of ${this.max}` }, h("co-icon", { name: this.icon, size: iconSize, weight: star <= active ? 'fill' : 'regular' }))))), this.helperText && (h("div", { key: '523e14b17fceb0f52f77cd1e9b4053fdd25dffba', class: `co-rating__helper co-rating__helper--${this.status}` }, this.statusIcon && h("co-icon", { key: 'ae894de5a6c390837c511364b5e8b7ba8a8123f1', name: this.statusIcon, size: 14, weight: "fill", class: "co-rating__helper-icon" }), h("span", { key: '23d04a20799d6b15693c7eb119922e5584031373', class: "co-rating__helper-text" }, this.helperText)))));
49
49
  }
50
50
  static get is() { return "co-rating"; }
51
51
  static get encapsulation() { return "shadow"; }
@@ -1192,7 +1192,7 @@ export class CoRefField {
1192
1192
  "references": {
1193
1193
  "RefFieldOption": {
1194
1194
  "location": "local",
1195
- "path": "/Users/agox/worktrees/cobalt-rel-20260827-tooltip/packages/core/src/components/co-ref-field/co-ref-field.tsx",
1195
+ "path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-ref-field/co-ref-field.tsx",
1196
1196
  "id": "src/components/co-ref-field/co-ref-field.tsx::RefFieldOption"
1197
1197
  }
1198
1198
  }
@@ -1333,7 +1333,7 @@ export class CoRefField {
1333
1333
  "references": {
1334
1334
  "RefFieldOption": {
1335
1335
  "location": "local",
1336
- "path": "/Users/agox/worktrees/cobalt-rel-20260827-tooltip/packages/core/src/components/co-ref-field/co-ref-field.tsx",
1336
+ "path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-ref-field/co-ref-field.tsx",
1337
1337
  "id": "src/components/co-ref-field/co-ref-field.tsx::RefFieldOption"
1338
1338
  }
1339
1339
  }
@@ -1354,7 +1354,7 @@ export class CoRefField {
1354
1354
  "references": {
1355
1355
  "RefFieldOption": {
1356
1356
  "location": "local",
1357
- "path": "/Users/agox/worktrees/cobalt-rel-20260827-tooltip/packages/core/src/components/co-ref-field/co-ref-field.tsx",
1357
+ "path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-ref-field/co-ref-field.tsx",
1358
1358
  "id": "src/components/co-ref-field/co-ref-field.tsx::RefFieldOption"
1359
1359
  }
1360
1360
  }
@@ -441,6 +441,14 @@ co-rich-text-editor {
441
441
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
442
442
  user-select: none;
443
443
  white-space: nowrap;
444
+ /* En hosts angostos (panel de foco del quote builder, 480px) la fila con el
445
+ form de link abierto medía más que el editor y se recortaba contra el
446
+ overflow del panel — floating-ui shiftéa pero no puede achicar. Cap al
447
+ ancho del offset parent (el editor) + wrap a segunda línea. border-box:
448
+ sin él, max-width + padding desbordan igual (no hay reset global). */
449
+ max-width: 100%;
450
+ box-sizing: border-box;
451
+ flex-wrap: wrap;
444
452
  }
445
453
 
446
454
  .co-rte-bubble__drag-handle {
@@ -467,7 +475,12 @@ co-rich-text-editor {
467
475
  display: flex;
468
476
  align-items: center;
469
477
  gap: 2px;
470
- flex-wrap: nowrap;
478
+ /* wrap: la fila hereda el cap de ancho del bubble — con el form de link
479
+ abierto en un host angosto, el input baja a la segunda línea en vez de
480
+ recortarse (ver .co-rte-bubble). */
481
+ flex-wrap: wrap;
482
+ max-width: 100%;
483
+ min-width: 0;
471
484
  }
472
485
 
473
486
  .co-rte-bubble__btn {
@@ -716,8 +716,10 @@ export class CoRichTextEditor {
716
716
  linkInput.addEventListener('keydown', (e) => {
717
717
  if (e.key === 'Enter')
718
718
  this.submitBubbleLinkImperative();
719
- if (e.key === 'Escape')
719
+ if (e.key === 'Escape') {
720
+ e.stopPropagation();
720
721
  this.toggleBubbleLinkForm(false);
722
+ }
721
723
  });
722
724
  const linkSubmit = document.createElement('button');
723
725
  linkSubmit.type = 'button';
@@ -1281,6 +1283,7 @@ export class CoRichTextEditor {
1281
1283
  }
1282
1284
  }
1283
1285
  if (e.key === 'Escape') {
1286
+ e.stopPropagation();
1284
1287
  panel.style.display = 'none';
1285
1288
  }
1286
1289
  });
@@ -2031,7 +2034,7 @@ export class CoRichTextEditor {
2031
2034
  render() {
2032
2035
  const showToolbar = this.resolvedToolbar !== 'none' && !this.readonly && !this.disabled;
2033
2036
  const showCount = this.showCharacterCount || this.maxLength != null;
2034
- return (h("div", { key: '27f9e0072f0f8066a193bd6d0ce89dcb3f554477', class: {
2037
+ return (h("div", { key: '135188e840e6c824750f41311c8317677754a57e', class: {
2035
2038
  'co-rich-text-editor': true,
2036
2039
  'co-rich-text-editor--focused': this.hasFocus,
2037
2040
  'co-rich-text-editor--disabled': this.disabled,
@@ -2039,10 +2042,10 @@ export class CoRichTextEditor {
2039
2042
  'co-rich-text-editor--loading': !this.ready,
2040
2043
  [`co-rich-text-editor--${this.status}`]: this.status !== 'default',
2041
2044
  'co-rich-text-editor--flat': this.variant === 'flat',
2042
- }, part: "wrapper" }, (this.label || this.secondaryLabel) && (h("div", { key: 'c45d77264e26bb840952a488b6d6b5e7f9806886', class: "co-rich-text-editor__labels" }, this.label && h("label", { key: 'aee6d4babf7db51bfdc56b79cb66093a3c405a1d', class: "co-rich-text-editor__label", part: "label" }, this.label), this.secondaryLabel && (h("span", { key: '7accfc51bf56f8e58ba1662cad7b6cf3c32f4111', class: "co-rich-text-editor__secondary-label" }, this.secondaryLabel)))), h("div", { key: 'a728ccc17bd1295278c7dc07d1b5254f954b0fbf', class: "co-rich-text-editor__frame" }, showToolbar && (h("co-rich-text-toolbar", { key: 'fa79e86fc7e11e9663e848189ba831d46f34166e', class: "co-rich-text-editor__toolbar", part: "toolbar", variant: this.resolvedToolbar, disabled: this.disabled || this.readonly, locale: this.locale, attachmentsEnabled: this.attachmentsEnabled, attachmentAccept: this.attachmentAccept, onCoAttachmentsSelected: (e) => {
2045
+ }, part: "wrapper" }, (this.label || this.secondaryLabel) && (h("div", { key: '6efe3d162583d450797bde27f772ed400f764f89', class: "co-rich-text-editor__labels" }, this.label && h("label", { key: 'e7e4b81fe3c7ac101b7583ef2aa75635c9730fc9', class: "co-rich-text-editor__label", part: "label" }, this.label), this.secondaryLabel && (h("span", { key: '57d843617b4faadb72997c94f89d3032da83c0ef', class: "co-rich-text-editor__secondary-label" }, this.secondaryLabel)))), h("div", { key: '8bdfacbab4a4b782d19cb1f3b42237387ed686c0', class: "co-rich-text-editor__frame" }, showToolbar && (h("co-rich-text-toolbar", { key: 'ef14095c7489e7f090cebaf227345a6ec7e8681f', class: "co-rich-text-editor__toolbar", part: "toolbar", variant: this.resolvedToolbar, disabled: this.disabled || this.readonly, locale: this.locale, attachmentsEnabled: this.attachmentsEnabled, attachmentAccept: this.attachmentAccept, onCoAttachmentsSelected: (e) => {
2043
2046
  e.stopPropagation();
2044
2047
  this.coAttachmentsSelected.emit(e.detail);
2045
- }, ref: (el) => (this.toolbarEl = el) })), h("div", { key: '2e3724a1692a91bb98e054bb71a4802a057db3f2', class: "co-rich-text-editor__box" }, h("div", { key: 'c1ebc7ba2ffab04ae55acabe19b09a1c641729e6', class: "co-rte-content", part: "content", role: "textbox", "aria-multiline": "true", "aria-label": this.label, "aria-required": this.required ? 'true' : undefined, "aria-invalid": this.status === 'error' ? 'true' : undefined, ref: (el) => (this.contentEl = el) }))), h("div", { key: '13340aec99b0250e59e0fdc7fa71484907bd6674', class: "co-rich-text-editor__footer" }, this.helperText && (h("div", { key: '9b6ca8c34a4df7a55bced0df8a8816097c7db1b0', class: `co-rich-text-editor__helper co-rich-text-editor__helper--${this.status}`, part: "helper" }, h("co-icon", { key: '29858116e3978fc15da5f6de79334741c494b513', name: this.helperIcon, size: 14 }), h("span", { key: 'dd863ec791e6b082512bdc92453e623dd1b5df0a' }, this.helperText))), showCount && (h("span", { key: '42ce76f53ad1447027fff7aaf9b0605b42804edb', class: "co-rich-text-editor__count", ref: (el) => (this.charCountEl = el) }, this.charCount, this.maxLength != null ? ` / ${this.maxLength}` : '')))));
2048
+ }, ref: (el) => (this.toolbarEl = el) })), h("div", { key: '554599eaefefb60470801d1ef6ced9ad271b197c', class: "co-rich-text-editor__box" }, h("div", { key: '85a5e5ace0ad305a58b4a18dd1f5cf102b5f480a', class: "co-rte-content", part: "content", role: "textbox", "aria-multiline": "true", "aria-label": this.label, "aria-required": this.required ? 'true' : undefined, "aria-invalid": this.status === 'error' ? 'true' : undefined, ref: (el) => (this.contentEl = el) }))), h("div", { key: 'dbc4bdbafa74e8fc19b243c151e5ade688b8f463', class: "co-rich-text-editor__footer" }, this.helperText && (h("div", { key: '464cbd83eef858073cd82cfc2d71772bf0a7904a', class: `co-rich-text-editor__helper co-rich-text-editor__helper--${this.status}`, part: "helper" }, h("co-icon", { key: '1bd007d69fac6948e30d585ad7b9f3ece0fe85ca', name: this.helperIcon, size: 14 }), h("span", { key: '33c618629fc830ff7cdb1bdb1b576bbbc3369435' }, this.helperText))), showCount && (h("span", { key: 'c0bfa6e67be05fe892c2f51b12392810e4d3fed0', class: "co-rich-text-editor__count", ref: (el) => (this.charCountEl = el) }, this.charCount, this.maxLength != null ? ` / ${this.maxLength}` : '')))));
2046
2049
  }
2047
2050
  static get is() { return "co-rich-text-editor"; }
2048
2051
  static get originalStyleUrls() {
@@ -2082,7 +2085,7 @@ export class CoRichTextEditor {
2082
2085
  "mutable": false,
2083
2086
  "complexType": {
2084
2087
  "original": "RichTextPreset",
2085
- "resolved": "\"block-email\" | \"comment\" | \"document\" | \"email\" | \"task\"",
2088
+ "resolved": "\"block-email\" | \"comment\" | \"document\" | \"email\" | \"notes\" | \"task\"",
2086
2089
  "references": {
2087
2090
  "RichTextPreset": {
2088
2091
  "location": "import",
@@ -2345,7 +2348,7 @@ export class CoRichTextEditor {
2345
2348
  "mutable": false,
2346
2349
  "complexType": {
2347
2350
  "original": "ToolbarVariant",
2348
- "resolved": "\"auto\" | \"basic\" | \"compact\" | \"compact-assets\" | \"full\" | \"none\"",
2351
+ "resolved": "\"auto\" | \"basic\" | \"compact\" | \"compact-assets\" | \"full\" | \"none\" | \"notes\"",
2349
2352
  "references": {
2350
2353
  "ToolbarVariant": {
2351
2354
  "location": "import",
@@ -782,8 +782,10 @@ export class CoRichTextToolbar {
782
782
  } }, h("input", { type: "url", class: "co-rich-text-toolbar__popover-input", placeholder: placeholder, value: this.popoverInput, onInput: (e) => { this.popoverInput = e.target.value; }, onKeyDown: (e) => {
783
783
  if (e.key === 'Enter')
784
784
  this.submitPopover(item.action);
785
- if (e.key === 'Escape')
785
+ if (e.key === 'Escape') {
786
+ e.stopPropagation();
786
787
  this.closePopover();
788
+ }
787
789
  }, ref: (el) => el && setTimeout(() => el.focus(), 0) }), h("div", { class: "co-rich-text-toolbar__popover-actions" }, h("button", { type: "button", class: "co-rich-text-toolbar__popover-btn co-rich-text-toolbar__popover-btn--primary", onMouseDown: (e) => e.preventDefault(), onClick: () => this.submitPopover(item.action) }, this.s.add), hasExisting && (h("button", { type: "button", class: "co-rich-text-toolbar__popover-btn co-rich-text-toolbar__popover-btn--danger", onMouseDown: (e) => e.preventDefault(), onClick: () => isLink ? this.removeLink() : this.removeIframe() }, this.s.remove)), h("button", { type: "button", class: "co-rich-text-toolbar__popover-btn", onMouseDown: (e) => e.preventDefault(), onClick: () => this.closePopover() }, this.s.cancel))));
788
790
  }
789
791
  renderImagePopover() {
@@ -796,6 +798,7 @@ export class CoRichTextToolbar {
796
798
  if (e.key === 'Enter')
797
799
  this.submitPopover('image');
798
800
  if (e.key === 'Escape') {
801
+ e.stopPropagation();
799
802
  this.imagePopoverMode = 'menu';
800
803
  }
801
804
  }, ref: (el) => el && setTimeout(() => el.focus(), 0) }), h("div", { class: "co-rich-text-toolbar__popover-actions" }, h("button", { type: "button", class: "co-rich-text-toolbar__popover-btn co-rich-text-toolbar__popover-btn--primary", onMouseDown: (e) => e.preventDefault(), onClick: () => this.submitPopover('image') }, this.s.add), h("button", { type: "button", class: "co-rich-text-toolbar__popover-btn", onMouseDown: (e) => e.preventDefault(), onClick: () => { this.imagePopoverMode = 'menu'; } }, this.s.back))));
@@ -1081,6 +1084,7 @@ export class CoRichTextToolbar {
1081
1084
  }
1082
1085
  }
1083
1086
  else if (e.key === 'Escape') {
1087
+ e.stopPropagation();
1084
1088
  this.closePopover();
1085
1089
  }
1086
1090
  } })), h("button", { type: "button", class: "co-rich-text-toolbar__color-clear", onMouseDown: (e) => e.preventDefault(), onClick: () => this.clearColor(item.action) }, h("co-icon", { name: "x", size: 12 }), h("span", null, this.s.removeColor))));
@@ -1139,8 +1143,8 @@ export class CoRichTextToolbar {
1139
1143
  "type": "string",
1140
1144
  "mutable": false,
1141
1145
  "complexType": {
1142
- "original": "'none' | 'compact' | 'compact-assets' | 'basic' | 'full'",
1143
- "resolved": "\"basic\" | \"compact\" | \"compact-assets\" | \"full\" | \"none\"",
1146
+ "original": "'none' | 'compact' | 'compact-assets' | 'basic' | 'notes' | 'full'",
1147
+ "resolved": "\"basic\" | \"compact\" | \"compact-assets\" | \"full\" | \"none\" | \"notes\"",
1144
1148
  "references": {}
1145
1149
  },
1146
1150
  "required": false,
@@ -14,6 +14,7 @@ import DOMPurify from "dompurify";
14
14
  const ALLOWED_TAGS = {
15
15
  comment: ['p', 'br', 'strong', 'em', 'a', 'span'],
16
16
  task: ['p', 'br', 'strong', 'em', 'a', 'span', 'u', 's', 'code', 'ul', 'ol', 'li', 'blockquote'],
17
+ notes: ['p', 'br', 'strong', 'em', 'a', 'span', 'u', 's', 'code', 'ul', 'ol', 'li', 'blockquote', 'mark'],
17
18
  email: ['p', 'br', 'strong', 'em', 'a', 'span', 'u', 's', 'code', 'ul', 'ol', 'li', 'blockquote', 'h2', 'h3', 'div', 'img'],
18
19
  document: ['p', 'br', 'strong', 'em', 'a', 'span', 'u', 's', 'code', 'ul', 'ol', 'li', 'blockquote', 'h1', 'h2', 'h3', 'h4', 'hr', 'div', 'mark', 'img', 'table', 'thead', 'tbody', 'tr', 'th', 'td', 'iframe'],
19
20
  'block-email': ['p', 'br', 'strong', 'em', 'a', 'span', 'u', 's', 'code', 'ul', 'ol', 'li', 'blockquote', 'h2', 'h3', 'div', 'img'],
@@ -72,7 +73,7 @@ export class CoRichTextViewer {
72
73
  // the mention chip keeps its style hook in read mode — the new markup
73
74
  // (data-mention-id/label) is always allowed. image/variables attrs are
74
75
  // already in the base list below.
75
- const allowedAttr = ['href', 'target', 'rel', 'data-variable', 'data-mention-id', 'data-mention-label', 'style', 'colspan', 'rowspan', 'src', 'alt', 'width', 'height', 'allowfullscreen', 'frameborder', 'allow', 'loading', 'data-youtube-video', 'data-iframe', 'data-image-layout', 'data-file-id', 'type', 'checked', 'disabled'];
76
+ const allowedAttr = ['href', 'target', 'rel', 'data-variable', 'data-mention-id', 'data-mention-label', 'style', 'colspan', 'rowspan', 'src', 'alt', 'width', 'height', 'allowfullscreen', 'frameborder', 'allow', 'loading', 'data-youtube-video', 'data-iframe', 'data-image-layout', 'data-file-id', 'type', 'checked', 'disabled', 'data-color'];
76
77
  if ((_a = this.parsedFeatures) === null || _a === void 0 ? void 0 : _a.mentions) {
77
78
  for (const a of ['data-id', 'data-value', 'data-denotation-char', 'data-index']) {
78
79
  if (!allowedAttr.includes(a))
@@ -181,7 +182,7 @@ export class CoRichTextViewer {
181
182
  "mutable": false,
182
183
  "complexType": {
183
184
  "original": "RichTextPreset",
184
- "resolved": "\"block-email\" | \"comment\" | \"document\" | \"email\" | \"task\"",
185
+ "resolved": "\"block-email\" | \"comment\" | \"document\" | \"email\" | \"notes\" | \"task\"",
185
186
  "references": {
186
187
  "RichTextPreset": {
187
188
  "location": "import",
@@ -13,11 +13,11 @@ export class CoRow {
13
13
  this.size = 'sm';
14
14
  }
15
15
  render() {
16
- return (h("div", { key: '70696fccf41033a652d645d1729c6a1623a29dba', class: {
16
+ return (h("div", { key: 'cf40ecb8896089a87f527be917396d1f01057cec', class: {
17
17
  'co-row': true,
18
18
  [`co-row--${this.position}`]: true,
19
19
  [`co-row--${this.size}`]: true,
20
- }, part: "row" }, h("div", { key: '9340e93c22c524dcfefaa045a33708d6716d2e71', class: "co-row__prefix" }, h("slot", { key: '25849a63e71d4b0135bb4f0cd4fb7a770d6ad891', name: "prefix" })), h("div", { key: 'a3334d91df254818ea3a930064e9aff841156453', class: "co-row__content" }, h("slot", { key: '6a5715653ce606e9b305e3ac028f0516b0fe1e53' })), h("div", { key: '14108da97477a0b126aa4e0d5ca9a88589ff581c', class: "co-row__suffix" }, h("slot", { key: '2739761ef763685df0a7a72414ebde1098edf45a', name: "suffix" }))));
20
+ }, part: "row" }, h("div", { key: '8d24887fb9704673fe0facfaabd792ca455bd479', class: "co-row__prefix" }, h("slot", { key: 'd2546cc155fe508f8f2a7eba580a99e370e82887', name: "prefix" })), h("div", { key: '5e6c33efacc0dde29f202a09c664294ad7524572', class: "co-row__content" }, h("slot", { key: '5efffa62218f021f439ad12eba00cb1479ccfc58' })), h("div", { key: '42cc9c00f8ca199e4e29ac8e2f6b6b585c2b3a99', class: "co-row__suffix" }, h("slot", { key: '3389e9ef5a2914629a7c2d1246d37c5fa956be33', name: "suffix" }))));
21
21
  }
22
22
  static get is() { return "co-row"; }
23
23
  static get encapsulation() { return "shadow"; }
@@ -154,7 +154,7 @@ export class CoSegmentedBar {
154
154
  "references": {
155
155
  "CoSegment": {
156
156
  "location": "local",
157
- "path": "/Users/agox/worktrees/cobalt-rel-20260827-tooltip/packages/core/src/components/co-segmented-bar/co-segmented-bar.tsx",
157
+ "path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-segmented-bar/co-segmented-bar.tsx",
158
158
  "id": "src/components/co-segmented-bar/co-segmented-bar.tsx::CoSegment"
159
159
  }
160
160
  }
@@ -718,7 +718,7 @@ export class CoSelect {
718
718
  "references": {
719
719
  "SelectOption": {
720
720
  "location": "local",
721
- "path": "/Users/agox/worktrees/cobalt-rel-20260827-tooltip/packages/core/src/components/co-select/co-select.tsx",
721
+ "path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-select/co-select.tsx",
722
722
  "id": "src/components/co-select/co-select.tsx::SelectOption"
723
723
  }
724
724
  }
@@ -57,7 +57,7 @@ export class CoSeparator {
57
57
  style['--co-separator-inset-end'] = '0px';
58
58
  }
59
59
  }
60
- return (h("hr", { key: '0dc126dcca1c3c1a9b7c81f826ea6dc88e5fe8cf', class: {
60
+ return (h("hr", { key: 'e3424f147cc4168638d2ac823046351fb880ac57', class: {
61
61
  'co-separator': true,
62
62
  'co-separator--vertical': this.vertical,
63
63
  'co-separator--dark': this.dark,
@@ -10,10 +10,10 @@ export class CoSidebar {
10
10
  this.mode = 'full';
11
11
  }
12
12
  render() {
13
- return (h("nav", { key: 'fca10c02609e09fc438ce161abd1d78c09c69069', class: {
13
+ return (h("nav", { key: 'ad5f66c721365f3a9ca2192765df243e8dea492e', class: {
14
14
  'co-sidebar': true,
15
15
  [`co-sidebar--${this.mode}`]: true,
16
- }, part: "sidebar" }, h("div", { key: '1544927cf558bb7531a0f7b4c0b8c65639221c20', class: "co-sidebar__header", part: "header" }, h("slot", { key: 'be023481e358dca947923cf2832326b4c9226d81', name: "header" })), h("div", { key: 'd949188bc503b24fd01324c70ff422ac0ec63515', class: "co-sidebar__body", part: "body" }, h("slot", { key: '49bfd3625171421229664033cdb18f7117938c7d' })), h("div", { key: '511cf30ca3a8102d50c6351c7d56a4ac5f05da9e', class: "co-sidebar__footer", part: "footer" }, h("slot", { key: 'f299146e4692b337dbd3fe2dfbb1fe7d4bd52fb4', name: "footer" }))));
16
+ }, part: "sidebar" }, h("div", { key: '45a2250516e1080f79b4a4554a0db7715c30066d', class: "co-sidebar__header", part: "header" }, h("slot", { key: '04a468d4eb6cf9bbd2acc482ba50defc4271166e', name: "header" })), h("div", { key: '730e37997945ce8bc7bc2d177beb25bbd0a1813f', class: "co-sidebar__body", part: "body" }, h("slot", { key: '22c20554c8f2d85952d43484cda5903dbf33588d' })), h("div", { key: '6bb53d0394b9107ea1553e21047d51ea5fe0f292', class: "co-sidebar__footer", part: "footer" }, h("slot", { key: '2b326d1beed32288d50ba17abad459929ed1e940', name: "footer" }))));
17
17
  }
18
18
  static get is() { return "co-sidebar"; }
19
19
  static get encapsulation() { return "shadow"; }
@@ -263,8 +263,8 @@
263
263
  defaults (mismos valores que co-button/co-icon-button). */
264
264
  --co-glass-blur: 12px;
265
265
  --co-glass-saturate: 1.3;
266
- -webkit-backdrop-filter: blur(var(--co-glass-blur)) saturate(var(--co-glass-saturate));
267
- backdrop-filter: blur(var(--co-glass-blur)) saturate(var(--co-glass-saturate));
266
+ -webkit-backdrop-filter: var(--co-glass-filter, blur(var(--co-glass-blur)) saturate(var(--co-glass-saturate)));
267
+ backdrop-filter: var(--co-glass-filter, blur(var(--co-glass-blur)) saturate(var(--co-glass-saturate)));
268
268
  }
269
269
 
270
270
  /* Hover on the ACTIVE item: keep the workspace pill, just MORE opaque (solid
@@ -702,7 +702,7 @@ export class CoSidebarNav {
702
702
  "references": {
703
703
  "NavigateDetail": {
704
704
  "location": "local",
705
- "path": "/Users/agox/worktrees/cobalt-rel-20260827-tooltip/packages/core/src/components/co-sidebar-nav/co-sidebar-nav.tsx",
705
+ "path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-sidebar-nav/co-sidebar-nav.tsx",
706
706
  "id": "src/components/co-sidebar-nav/co-sidebar-nav.tsx::NavigateDetail"
707
707
  }
708
708
  }
@@ -18,6 +18,24 @@
18
18
  .co-skeleton--text { border-radius: var(--co-border-radius-xxs); }
19
19
  .co-skeleton--circle { border-radius: var(--co-border-radius-full); }
20
20
 
21
+ /* Handoff de reveal: el host marca `revealed` cuando el contenido real llegó;
22
+ el skeleton se desvanece y avisa con coRevealEnd para el desmonte.
23
+ ease-in-out (spec): es un crossfade de handoff, no una salida seca.
24
+ opacity-only (sin filter/blur): el skeleton puede ser full-height (p.ej.
25
+ DataTableGridView a 100%×100%) — blur en una superficie grande está
26
+ prohibido por la convención de motion. */
27
+ .co-skeleton {
28
+ transition: opacity var(--co-motion-duration-base) var(--co-motion-ease-in-out);
29
+ }
30
+
31
+ .co-skeleton--revealed {
32
+ opacity: 0;
33
+ pointer-events: none;
34
+ /* Apaga el sweep infinito durante/después del reveal — sin esto sigue
35
+ repintando bajo opacity:0 (invisible pero no gratis). */
36
+ animation: none;
37
+ }
38
+
21
39
  @keyframes co-skeleton-sweep {
22
40
  0% { background-position: 200% 0; }
23
41
  100% { background-position: -200% 0; }