@prolibu-suite/cobalt-core 0.10.4 → 0.11.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 (736) hide show
  1. package/custom-elements.json +4362 -388
  2. package/dist/cjs/co-accordion.cjs.entry.js +3 -3
  3. package/dist/cjs/co-action-bar.cjs.entry.js +3 -3
  4. package/dist/cjs/co-app-shell.cjs.entry.js +3 -3
  5. package/dist/cjs/co-audio-player.cjs.entry.js +4 -4
  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.cjs.entry.js +7 -4
  9. package/dist/cjs/co-badge.cjs.entry.js +2 -2
  10. package/dist/cjs/co-bottom-sheet.cjs.entry.js +5 -5
  11. package/dist/cjs/co-breadcrumb-item.cjs.entry.js +3 -3
  12. package/dist/cjs/co-breadcrumb.cjs.entry.js +2 -2
  13. package/dist/cjs/co-button-group.cjs.entry.js +3 -3
  14. package/dist/cjs/co-button.cjs.entry.js +9 -7
  15. package/dist/cjs/co-calendar-month_2.cjs.entry.js +4 -4
  16. package/dist/cjs/co-calendar_3.cjs.entry.js +72 -27
  17. package/dist/cjs/co-card.cjs.entry.js +3 -3
  18. package/dist/cjs/co-carousel-item.cjs.entry.js +2 -2
  19. package/dist/cjs/co-carousel.cjs.entry.js +3 -3
  20. package/dist/cjs/co-checkbox-group.cjs.entry.js +1 -1
  21. package/dist/cjs/co-checkbox.cjs.entry.js +13 -5
  22. package/dist/cjs/co-chip_2.cjs.entry.js +9 -6
  23. package/dist/cjs/co-color-area.cjs.entry.js +169 -0
  24. package/dist/cjs/co-color-picker.cjs.entry.js +5 -5
  25. package/dist/cjs/co-color-slider.cjs.entry.js +189 -0
  26. package/dist/cjs/co-column-picker.cjs.entry.js +3 -3
  27. package/dist/cjs/co-combobox.cjs.entry.js +5 -5
  28. package/dist/cjs/co-command-search.cjs.entry.js +5 -5
  29. package/dist/cjs/co-data-table-pagination.cjs.entry.js +5 -5
  30. package/dist/cjs/co-data-table.cjs.entry.js +3 -3
  31. package/dist/cjs/co-date-picker.cjs.entry.js +2 -2
  32. package/dist/cjs/co-date-range-picker.cjs.entry.js +2 -2
  33. package/dist/cjs/co-date-range.cjs.entry.js +2 -2
  34. package/dist/cjs/co-date-time-picker.cjs.entry.js +4 -4
  35. package/dist/cjs/co-document-editor.cjs.entry.js +1161 -0
  36. package/dist/cjs/co-drive-card.cjs.entry.js +2 -2
  37. package/dist/cjs/co-drop-zone.cjs.entry.js +2 -2
  38. package/dist/cjs/co-emoji-picker.cjs.entry.js +3 -3
  39. package/dist/cjs/co-empty-state.cjs.entry.js +3 -3
  40. package/dist/cjs/co-event-calendar.cjs.entry.js +3 -3
  41. package/dist/cjs/co-event-popover.cjs.entry.js +3 -3
  42. package/dist/cjs/co-fab.cjs.entry.js +3 -3
  43. package/dist/cjs/co-file-field.cjs.entry.js +8 -8
  44. package/dist/cjs/co-file-type-tile.cjs.entry.js +3 -3
  45. package/dist/cjs/co-gradient-bar.cjs.entry.js +220 -0
  46. package/dist/cjs/co-helper-text.cjs.entry.js +3 -3
  47. package/dist/cjs/co-icon-button.cjs.entry.js +49 -9
  48. package/dist/cjs/co-icon.cjs.entry.js +3 -3
  49. package/dist/cjs/co-input.cjs.entry.js +14 -8
  50. package/dist/cjs/co-json-field.cjs.entry.js +5 -5
  51. package/dist/cjs/{co-tooltip.cjs.entry.js → co-kbd_2.cjs.entry.js} +194 -6
  52. package/dist/cjs/co-lightbox.cjs.entry.js +5 -5
  53. package/dist/cjs/co-list-footer.cjs.entry.js +2 -2
  54. package/dist/cjs/co-list-item.cjs.entry.js +5 -5
  55. package/dist/cjs/co-loader.cjs.entry.js +1 -1
  56. package/dist/cjs/co-media-thumb.cjs.entry.js +3 -3
  57. package/dist/cjs/co-menu-divider.cjs.entry.js +3 -3
  58. package/dist/cjs/co-menu-item.cjs.entry.js +41 -43
  59. package/dist/cjs/co-menu.cjs.entry.js +81 -5
  60. package/dist/cjs/co-modal.cjs.entry.js +350 -7
  61. package/dist/cjs/co-navbar.cjs.entry.js +3 -3
  62. package/dist/cjs/co-number-field.cjs.entry.js +5 -5
  63. package/dist/cjs/co-overlay.cjs.entry.js +8 -4
  64. package/dist/cjs/co-page-header.cjs.entry.js +2 -2
  65. package/dist/cjs/co-phone-field.cjs.entry.js +3 -3
  66. package/dist/cjs/co-popover.cjs.entry.js +67 -6
  67. package/dist/cjs/co-progress-bar.cjs.entry.js +3 -3
  68. package/dist/cjs/co-progress-circle.cjs.entry.js +3 -3
  69. package/dist/cjs/co-provider-logo_2.cjs.entry.js +2 -2
  70. package/dist/cjs/co-radio-group.cjs.entry.js +4 -4
  71. package/dist/cjs/co-radio.cjs.entry.js +4 -4
  72. package/dist/cjs/co-rating.cjs.entry.js +4 -4
  73. package/dist/cjs/co-ref-field.cjs.entry.js +5 -5
  74. package/dist/cjs/co-rich-text-editor.cjs.entry.js +26 -92
  75. package/dist/cjs/co-rich-text-toolbar.cjs.entry.js +79 -20
  76. package/dist/cjs/co-rich-text-viewer.cjs.entry.js +9 -2
  77. package/dist/cjs/co-row.cjs.entry.js +3 -3
  78. package/dist/cjs/co-segmented-bar.cjs.entry.js +3 -3
  79. package/dist/cjs/co-select.cjs.entry.js +158 -29
  80. package/dist/cjs/co-separator.cjs.entry.js +2 -2
  81. package/dist/cjs/co-sidebar-nav.cjs.entry.js +20 -5
  82. package/dist/cjs/co-sidebar.cjs.entry.js +3 -3
  83. package/dist/cjs/co-slider.cjs.entry.js +203 -23
  84. package/dist/cjs/co-swatch-grid.cjs.entry.js +121 -0
  85. package/dist/cjs/co-switch.cjs.entry.js +5 -5
  86. package/dist/cjs/co-tab-group.cjs.entry.js +113 -4
  87. package/dist/cjs/co-tab.cjs.entry.js +15 -5
  88. package/dist/cjs/co-tags-field.cjs.entry.js +8 -8
  89. package/dist/cjs/co-textarea.cjs.entry.js +6 -6
  90. package/dist/cjs/co-tile.cjs.entry.js +61 -0
  91. package/dist/cjs/co-time-field.cjs.entry.js +2 -2
  92. package/dist/cjs/co-toast.cjs.entry.js +3 -3
  93. package/dist/cjs/co-toggle-button-group.cjs.entry.js +26 -5
  94. package/dist/cjs/co-toggle-button.cjs.entry.js +67 -6
  95. package/dist/cjs/co-transfer-list.cjs.entry.js +3 -3
  96. package/dist/cjs/co-tree-item.cjs.entry.js +110 -0
  97. package/dist/cjs/co-video.cjs.entry.js +3 -3
  98. package/dist/cjs/cobalt.cjs.js +2 -2
  99. package/dist/cjs/{color-CML2Cfdh.js → color-DQVrQGi0.js} +10 -5
  100. package/dist/cjs/{fieldChip-B6YIGU1V.js → fieldChip-C7MxxBVO.js} +1 -1
  101. package/dist/cjs/gradientStops-CMpH4fB_.js +153 -0
  102. package/dist/cjs/hsv-DpfSF3M2.js +95 -0
  103. package/dist/cjs/{index-MDAnKsze.js → index-bHoidDwv.js} +67 -27
  104. package/dist/cjs/index-oMHzCXm6.js +144 -0
  105. package/dist/cjs/loader.cjs.js +2 -2
  106. package/dist/cjs/{index-2kMmd5-a.js → pagination-DV43TRj9.js} +1780 -297
  107. package/dist/cjs/{positioning-CyatXeT_.js → positioning-CILo5esi.js} +45 -18
  108. package/dist/cjs/{requiredMark-D-t-IPN0.js → requiredMark-21yHvvZS.js} +1 -1
  109. package/dist/cjs/rich-text-host-ueFSfW-6.js +119 -0
  110. package/dist/cjs/{richTextI18n-B28uAhh4.js → richTextI18n-DXGIv5w1.js} +45 -0
  111. package/dist/cjs/submenu-RlaX6irw.js +65 -0
  112. package/dist/cjs/{toolbar-config-CYACt9hh.js → toolbar-config-DczL6C4W.js} +32 -0
  113. package/dist/cobalt/cobalt.css +1 -1
  114. package/dist/cobalt/cobalt.esm.js +1 -1
  115. package/dist/cobalt/{p-ee149fd2.entry.js → p-05000ef3.entry.js} +1 -1
  116. package/dist/cobalt/p-06689166.entry.js +1 -0
  117. package/dist/cobalt/{p-1dc55e43.entry.js → p-0a5cfed0.entry.js} +1 -1
  118. package/dist/cobalt/p-1289131f.entry.js +1 -0
  119. package/dist/cobalt/{p-c7d7d7f7.entry.js → p-136beb2c.entry.js} +1 -1
  120. package/dist/cobalt/{p-b437eff6.entry.js → p-1693b614.entry.js} +1 -1
  121. package/dist/cobalt/p-1bfb69ae.entry.js +1 -0
  122. package/dist/cobalt/{p-2c9dba2f.entry.js → p-1f3d5313.entry.js} +1 -1
  123. package/dist/cobalt/{p-b821d9de.entry.js → p-22233b31.entry.js} +1 -1
  124. package/dist/cobalt/{p-c30b4cb5.entry.js → p-26fa36f8.entry.js} +1 -1
  125. package/dist/cobalt/p-2794c500.entry.js +1 -0
  126. package/dist/cobalt/p-297b55cd.entry.js +1 -0
  127. package/dist/cobalt/{p-17244412.entry.js → p-2a2b0c7a.entry.js} +1 -1
  128. package/dist/cobalt/{p-2636b7eb.entry.js → p-2e5702a0.entry.js} +1 -1
  129. package/dist/cobalt/p-3011c84f.entry.js +1 -0
  130. package/dist/cobalt/{p-4d65e713.entry.js → p-30760f77.entry.js} +1 -1
  131. package/dist/cobalt/{p-6dd220e0.entry.js → p-3b9a8e86.entry.js} +1 -1
  132. package/dist/cobalt/p-4111fefa.entry.js +1 -0
  133. package/dist/cobalt/{p-a32b20eb.entry.js → p-44edde81.entry.js} +1 -1
  134. package/dist/cobalt/{p-292b0389.entry.js → p-45007758.entry.js} +1 -1
  135. package/dist/cobalt/p-48c23310.entry.js +1 -0
  136. package/dist/cobalt/p-4b327483.entry.js +1 -0
  137. package/dist/cobalt/p-4c6caa41.entry.js +1 -0
  138. package/dist/cobalt/{p-000a15b8.entry.js → p-5534a64f.entry.js} +1 -1
  139. package/dist/cobalt/p-5573985a.entry.js +1 -0
  140. package/dist/cobalt/p-57d250ad.entry.js +1 -0
  141. package/dist/cobalt/{p-826ee074.entry.js → p-59d3e8fc.entry.js} +1 -1
  142. package/dist/cobalt/{p-4592ca00.entry.js → p-5a32b9a2.entry.js} +1 -1
  143. package/dist/cobalt/p-5b2aa70e.entry.js +1 -0
  144. package/dist/cobalt/{p-d29bb0fa.entry.js → p-5d6e02dd.entry.js} +1 -1
  145. package/dist/cobalt/{p-623cc195.entry.js → p-608d251d.entry.js} +1 -1
  146. package/dist/cobalt/{p-011dc80b.entry.js → p-66fc1528.entry.js} +1 -1
  147. package/dist/cobalt/{p-11c5ce78.entry.js → p-67ad9544.entry.js} +1 -1
  148. package/dist/cobalt/{p-290066ef.entry.js → p-6c157ea2.entry.js} +1 -1
  149. package/dist/cobalt/{p-a2462d7a.entry.js → p-6d541199.entry.js} +1 -1
  150. package/dist/cobalt/{p-58d9b650.entry.js → p-7376f4ed.entry.js} +1 -1
  151. package/dist/cobalt/{p-39a50e7f.entry.js → p-7569375a.entry.js} +1 -1
  152. package/dist/cobalt/{p-7b5c555c.entry.js → p-763698b3.entry.js} +1 -1
  153. package/dist/cobalt/{p-f57dffca.entry.js → p-7675cebe.entry.js} +1 -1
  154. package/dist/cobalt/p-78a20284.entry.js +1 -0
  155. package/dist/cobalt/{p-aa9400bf.entry.js → p-7f3523ce.entry.js} +1 -1
  156. package/dist/cobalt/{p-24196410.entry.js → p-86b6fd81.entry.js} +1 -1
  157. package/dist/cobalt/{p-996f4e38.entry.js → p-889563d5.entry.js} +1 -1
  158. package/dist/cobalt/{p-eadfd661.entry.js → p-8ab5b396.entry.js} +1 -1
  159. package/dist/cobalt/{p-c91d4fc6.entry.js → p-8b2e4579.entry.js} +1 -1
  160. package/dist/cobalt/p-8cd3acaa.entry.js +1 -0
  161. package/dist/cobalt/{p-23ab0cc5.entry.js → p-8f701eac.entry.js} +1 -1
  162. package/dist/cobalt/p-90fad0f9.entry.js +1 -0
  163. package/dist/cobalt/{p-76249983.entry.js → p-97a4fbba.entry.js} +1 -1
  164. package/dist/cobalt/p-9b46a8fe.entry.js +1 -0
  165. package/dist/cobalt/{p-ee2023da.entry.js → p-9bee9dc8.entry.js} +1 -1
  166. package/dist/cobalt/{p-2f9cbbd5.entry.js → p-9cf10331.entry.js} +1 -1
  167. package/dist/cobalt/p-9dc01092.entry.js +1 -0
  168. package/dist/cobalt/p-9e406172.entry.js +1 -0
  169. package/dist/cobalt/p-B1JT7us1.js +1 -0
  170. package/dist/cobalt/{p-BRbgGqLw.js → p-BVGGRfNG.js} +1 -1
  171. package/dist/cobalt/p-BmdKHBZP.js +1 -0
  172. package/dist/cobalt/p-BtliEQAT.js +1 -0
  173. package/dist/cobalt/p-COJdaKBU.js +1 -0
  174. package/dist/cobalt/{p-BAYo-RBt.js → p-CRxTFT_z.js} +1 -1
  175. package/dist/cobalt/p-CYN5B3IQ.js +1 -0
  176. package/dist/cobalt/p-DJkaRtbb.js +2 -0
  177. package/dist/cobalt/p-DU-KOQ8L.js +1 -0
  178. package/dist/cobalt/p-DXLeDZvr.js +1 -0
  179. package/dist/cobalt/{p-D_zA1Pv4.js → p-DgJovDdy.js} +1 -1
  180. package/dist/cobalt/p-RVQJEYxa.js +1 -0
  181. package/dist/cobalt/{p-1861fe41.entry.js → p-a07dedd1.entry.js} +1 -1
  182. package/dist/cobalt/{p-08e42e00.entry.js → p-a336178b.entry.js} +1 -1
  183. package/dist/cobalt/{p-f9a7b7c6.entry.js → p-a52ed6ff.entry.js} +1 -1
  184. package/dist/cobalt/{p-aaca6dab.entry.js → p-a930cdd7.entry.js} +1 -1
  185. package/dist/cobalt/{p-eb82358d.entry.js → p-b1994bb4.entry.js} +1 -1
  186. package/dist/cobalt/p-b2b13da8.entry.js +1 -0
  187. package/dist/cobalt/{p-c2ebf0ec.entry.js → p-b5ec4286.entry.js} +1 -1
  188. package/dist/cobalt/p-b9401dd7.entry.js +1 -0
  189. package/dist/cobalt/p-b9dfb333.entry.js +1 -0
  190. package/dist/cobalt/p-bc3ba0cd.entry.js +1 -0
  191. package/dist/cobalt/{p-d375014b.entry.js → p-bc4fbfa6.entry.js} +1 -1
  192. package/dist/cobalt/{p-d0b2c418.entry.js → p-c109a1e1.entry.js} +1 -1
  193. package/dist/cobalt/{p-ee9a623d.entry.js → p-c1caa112.entry.js} +1 -1
  194. package/dist/cobalt/p-c9990662.entry.js +1 -0
  195. package/dist/cobalt/p-cc4b51fa.entry.js +1 -0
  196. package/dist/cobalt/p-cc5989e9.entry.js +1 -0
  197. package/dist/cobalt/{p-e4264532.entry.js → p-ce2b2048.entry.js} +1 -1
  198. package/dist/cobalt/p-d1c378ff.entry.js +1 -0
  199. package/dist/cobalt/p-d1e83525.entry.js +1 -0
  200. package/dist/cobalt/{p-59963937.entry.js → p-d1f47915.entry.js} +1 -1
  201. package/dist/cobalt/{p-28764b8e.entry.js → p-d4979025.entry.js} +1 -1
  202. package/dist/cobalt/p-d6e7c258.entry.js +1 -0
  203. package/dist/cobalt/p-d75d2f3d.entry.js +1 -0
  204. package/dist/cobalt/p-db42c4ab.entry.js +1 -0
  205. package/dist/cobalt/{p-44c4e4a3.entry.js → p-e4ff2fcb.entry.js} +1 -1
  206. package/dist/cobalt/p-e6116149.entry.js +1 -0
  207. package/dist/cobalt/{p-0c004735.entry.js → p-e99ddf9c.entry.js} +1 -1
  208. package/dist/cobalt/{p-1cc818ca.entry.js → p-ea24eea8.entry.js} +1 -1
  209. package/dist/cobalt/{p-07416e31.entry.js → p-ea564148.entry.js} +1 -1
  210. package/dist/cobalt/{p-8471abe2.entry.js → p-ec7a6bf2.entry.js} +1 -1
  211. package/dist/cobalt/{p-fb2d1144.entry.js → p-ee42dca6.entry.js} +1 -1
  212. package/dist/cobalt/{p-49834b8e.entry.js → p-ee88ec40.entry.js} +1 -1
  213. package/dist/cobalt/p-eeb114da.entry.js +1 -0
  214. package/dist/cobalt/{p-f6691108.entry.js → p-f0898e21.entry.js} +1 -1
  215. package/dist/cobalt/p-f246946a.entry.js +1 -0
  216. package/dist/cobalt/{p-b90d41e4.entry.js → p-f5934cd9.entry.js} +1 -1
  217. package/dist/cobalt/p-f5e1873d.entry.js +1 -0
  218. package/dist/cobalt/p-f60bd4d6.entry.js +1 -0
  219. package/dist/cobalt/p-f813569c.entry.js +1 -0
  220. package/dist/cobalt/{p-f7eb1a40.entry.js → p-f8c7941f.entry.js} +1 -1
  221. package/dist/cobalt/{p-44ea675f.entry.js → p-f8d3c71e.entry.js} +1 -1
  222. package/dist/cobalt/{p-91e73a92.entry.js → p-ffbe955a.entry.js} +1 -1
  223. package/dist/cobalt/p-xnrKkNWQ.js +1 -0
  224. package/dist/collection/collection-manifest.json +8 -0
  225. package/dist/collection/components/co-accordion/co-accordion.js +2 -2
  226. package/dist/collection/components/co-action-bar/co-action-bar.js +2 -2
  227. package/dist/collection/components/co-app-shell/co-app-shell.js +2 -2
  228. package/dist/collection/components/co-audio-player/co-audio-player.js +3 -3
  229. package/dist/collection/components/co-autocomplete/co-autocomplete.js +1 -1
  230. package/dist/collection/components/co-avatar/co-avatar.css +11 -2
  231. package/dist/collection/components/co-avatar/co-avatar.js +7 -4
  232. package/dist/collection/components/co-avatar-group/co-avatar-group.js +1 -1
  233. package/dist/collection/components/co-badge/co-badge.js +1 -1
  234. package/dist/collection/components/co-bottom-sheet/co-bottom-sheet.js +4 -4
  235. package/dist/collection/components/co-breadcrumb/co-breadcrumb.js +1 -1
  236. package/dist/collection/components/co-breadcrumb-item/co-breadcrumb-item.js +2 -2
  237. package/dist/collection/components/co-button/co-button.css +73 -6
  238. package/dist/collection/components/co-button/co-button.js +33 -11
  239. package/dist/collection/components/co-button-group/co-button-group.js +2 -2
  240. package/dist/collection/components/co-calendar/calendarMarks.js +40 -0
  241. package/dist/collection/components/co-calendar/co-calendar.css +11 -1
  242. package/dist/collection/components/co-calendar/co-calendar.js +82 -20
  243. package/dist/collection/components/co-calendar-month/co-calendar-month.js +1 -1
  244. package/dist/collection/components/co-calendar-timegrid/co-calendar-timegrid.js +2 -2
  245. package/dist/collection/components/co-card/co-card.js +2 -2
  246. package/dist/collection/components/co-carousel/co-carousel.js +2 -2
  247. package/dist/collection/components/co-carousel-item/co-carousel-item.js +1 -1
  248. package/dist/collection/components/co-checkbox/co-checkbox.css +43 -1
  249. package/dist/collection/components/co-checkbox/co-checkbox.js +31 -3
  250. package/dist/collection/components/co-checkbox-group/co-checkbox-group.js +1 -1
  251. package/dist/collection/components/co-chip/co-chip.js +2 -2
  252. package/dist/collection/components/co-color-area/co-color-area.css +83 -0
  253. package/dist/collection/components/co-color-area/co-color-area.js +341 -0
  254. package/dist/collection/components/co-color-picker/co-color-picker.js +2 -2
  255. package/dist/collection/components/co-color-slider/co-color-slider.css +115 -0
  256. package/dist/collection/components/co-color-slider/co-color-slider.js +353 -0
  257. package/dist/collection/components/co-column-picker/co-column-picker.js +2 -2
  258. package/dist/collection/components/co-combobox/co-combobox.js +4 -4
  259. package/dist/collection/components/co-command-search/co-command-search.js +5 -5
  260. package/dist/collection/components/co-data-table/co-data-table.js +3 -3
  261. package/dist/collection/components/co-data-table-pagination/co-data-table-pagination.js +4 -4
  262. package/dist/collection/components/co-date-field/co-date-field.js +4 -4
  263. package/dist/collection/components/co-date-range/co-date-range.js +1 -1
  264. package/dist/collection/components/co-date-range-picker/co-date-range-picker.js +2 -2
  265. package/dist/collection/components/co-date-time-picker/co-date-time-picker.js +3 -3
  266. package/dist/collection/components/co-document-editor/change-throttle.js +30 -0
  267. package/dist/collection/components/co-document-editor/co-document-editor.css +438 -0
  268. package/dist/collection/components/co-document-editor/co-document-editor.js +1542 -0
  269. package/dist/collection/components/co-document-editor/document-props.js +40 -0
  270. package/dist/collection/components/co-document-editor/header-tools.js +11 -0
  271. package/dist/collection/components/co-document-editor/image-bar.js +66 -0
  272. package/dist/collection/components/co-document-editor/page-styles.js +90 -0
  273. package/dist/collection/components/co-document-editor/zoom.js +45 -0
  274. package/dist/collection/components/co-drive-card/co-drive-card.js +1 -1
  275. package/dist/collection/components/co-drop-zone/co-drop-zone.js +1 -1
  276. package/dist/collection/components/co-emoji-picker/co-emoji-picker.js +2 -2
  277. package/dist/collection/components/co-empty-state/co-empty-state.js +2 -2
  278. package/dist/collection/components/co-event-calendar/co-event-calendar.js +2 -2
  279. package/dist/collection/components/co-event-popover/co-event-popover.js +1 -1
  280. package/dist/collection/components/co-fab/co-fab.js +2 -2
  281. package/dist/collection/components/co-file-field/co-file-field.js +6 -6
  282. package/dist/collection/components/co-file-type-tile/co-file-type-tile.js +2 -2
  283. package/dist/collection/components/co-gradient-bar/co-gradient-bar.css +138 -0
  284. package/dist/collection/components/co-gradient-bar/co-gradient-bar.js +407 -0
  285. package/dist/collection/components/co-helper-text/co-helper-text.js +2 -2
  286. package/dist/collection/components/co-icon/co-icon.js +2 -2
  287. package/dist/collection/components/co-icon-button/co-icon-button.css +95 -19
  288. package/dist/collection/components/co-icon-button/co-icon-button.js +120 -10
  289. package/dist/collection/components/co-input/co-input.css +122 -0
  290. package/dist/collection/components/co-input/co-input.js +37 -11
  291. package/dist/collection/components/co-json-field/co-json-field.js +3 -3
  292. package/dist/collection/components/co-kbd/co-kbd.css +99 -0
  293. package/dist/collection/components/co-kbd/co-kbd.js +291 -0
  294. package/dist/collection/components/co-lightbox/co-lightbox.js +4 -4
  295. package/dist/collection/components/co-list-footer/co-list-footer.js +1 -1
  296. package/dist/collection/components/co-list-item/co-list-item.js +4 -4
  297. package/dist/collection/components/co-media-thumb/co-media-thumb.js +2 -2
  298. package/dist/collection/components/co-menu/co-menu.css +60 -0
  299. package/dist/collection/components/co-menu/co-menu.js +143 -3
  300. package/dist/collection/components/co-menu-divider/co-menu-divider.css +17 -0
  301. package/dist/collection/components/co-menu-divider/co-menu-divider.js +1 -1
  302. package/dist/collection/components/co-menu-item/co-menu-item.css +42 -6
  303. package/dist/collection/components/co-menu-item/co-menu-item.js +58 -4
  304. package/dist/collection/components/co-modal/co-modal.css +212 -1
  305. package/dist/collection/components/co-modal/co-modal.js +339 -9
  306. package/dist/collection/components/co-navbar/co-navbar.js +2 -2
  307. package/dist/collection/components/co-number-field/co-number-field.js +3 -3
  308. package/dist/collection/components/co-option-list/co-option-list.css +64 -21
  309. package/dist/collection/components/co-option-list/co-option-list.js +6 -2
  310. package/dist/collection/components/co-overlay/co-overlay.js +7 -3
  311. package/dist/collection/components/co-page-header/co-page-header.js +1 -1
  312. package/dist/collection/components/co-phone-field/co-phone-field.js +1 -1
  313. package/dist/collection/components/co-popover/co-popover.css +15 -2
  314. package/dist/collection/components/co-popover/co-popover.js +130 -5
  315. package/dist/collection/components/co-progress-bar/co-progress-bar.js +2 -2
  316. package/dist/collection/components/co-progress-circle/co-progress-circle.js +2 -2
  317. package/dist/collection/components/co-radio/co-radio.js +3 -3
  318. package/dist/collection/components/co-radio-group/co-radio-group.js +4 -4
  319. package/dist/collection/components/co-rating/co-rating.js +3 -3
  320. package/dist/collection/components/co-ref-field/co-ref-field.js +5 -5
  321. package/dist/collection/components/co-rich-text-editor/co-rich-text-editor.js +23 -90
  322. package/dist/collection/components/co-rich-text-toolbar/co-rich-text-toolbar.css +12 -0
  323. package/dist/collection/components/co-rich-text-toolbar/co-rich-text-toolbar.js +123 -18
  324. package/dist/collection/components/co-rich-text-viewer/co-rich-text-viewer.js +8 -1
  325. package/dist/collection/components/co-row/co-row.js +2 -2
  326. package/dist/collection/components/co-segmented-bar/co-segmented-bar.js +3 -3
  327. package/dist/collection/components/co-select/co-select.css +194 -10
  328. package/dist/collection/components/co-select/co-select.js +163 -32
  329. package/dist/collection/components/co-select/virtualRows.js +57 -0
  330. package/dist/collection/components/co-separator/co-separator.js +1 -1
  331. package/dist/collection/components/co-sidebar/co-sidebar.js +2 -2
  332. package/dist/collection/components/co-sidebar-nav/co-sidebar-nav.css +10 -0
  333. package/dist/collection/components/co-sidebar-nav/co-sidebar-nav.js +19 -4
  334. package/dist/collection/components/co-skeleton/co-skeleton.js +1 -1
  335. package/dist/collection/components/co-slider/co-slider.css +148 -5
  336. package/dist/collection/components/co-slider/co-slider.js +240 -21
  337. package/dist/collection/components/co-swatch-grid/co-swatch-grid.css +56 -0
  338. package/dist/collection/components/co-swatch-grid/co-swatch-grid.js +292 -0
  339. package/dist/collection/components/co-switch/co-switch.js +3 -3
  340. package/dist/collection/components/co-tab/co-tab.css +60 -0
  341. package/dist/collection/components/co-tab/co-tab.js +36 -6
  342. package/dist/collection/components/co-tab-group/co-tab-group.css +24 -0
  343. package/dist/collection/components/co-tab-group/co-tab-group.js +124 -2
  344. package/dist/collection/components/co-tab-group/revealTab.js +26 -0
  345. package/dist/collection/components/co-tags-field/co-tags-field.js +5 -5
  346. package/dist/collection/components/co-textarea/co-textarea.js +4 -4
  347. package/dist/collection/components/co-tile/co-tile.css +63 -0
  348. package/dist/collection/components/co-tile/co-tile.js +162 -0
  349. package/dist/collection/components/co-time-field/co-time-field.js +1 -1
  350. package/dist/collection/components/co-toast/co-toast.js +4 -4
  351. package/dist/collection/components/co-toggle-button/co-toggle-button.css +101 -0
  352. package/dist/collection/components/co-toggle-button/co-toggle-button.js +80 -8
  353. package/dist/collection/components/co-toggle-button-group/co-toggle-button-group.css +21 -0
  354. package/dist/collection/components/co-toggle-button-group/co-toggle-button-group.js +28 -7
  355. package/dist/collection/components/co-tooltip/co-tooltip.css +36 -0
  356. package/dist/collection/components/co-tooltip/co-tooltip.js +51 -3
  357. package/dist/collection/components/co-transfer-list/co-transfer-list.js +3 -3
  358. package/dist/collection/components/co-tree-item/co-tree-item.css +226 -0
  359. package/dist/collection/components/co-tree-item/co-tree-item.js +353 -0
  360. package/dist/collection/components/co-tree-item/treeItemI18n.js +16 -0
  361. package/dist/collection/components/co-video/co-video.js +2 -2
  362. package/dist/collection/utils/color.js +9 -5
  363. package/dist/collection/utils/dragMove.js +95 -0
  364. package/dist/collection/utils/gradientBarI18n.js +24 -0
  365. package/dist/collection/utils/gradientStops.js +142 -0
  366. package/dist/collection/utils/hsv.js +114 -0
  367. package/dist/collection/utils/kbdI18n.js +29 -0
  368. package/dist/collection/utils/positioning.js +44 -18
  369. package/dist/collection/utils/rich-text-host.js +109 -0
  370. package/dist/collection/utils/richTextI18n.js +45 -0
  371. package/dist/collection/utils/submenu.js +23 -3
  372. package/dist/collection/utils/swatchGridI18n.js +14 -0
  373. package/dist/collection/utils/test/fake-block-layout.js +41 -0
  374. package/dist/collection/utils/test/prosemirror-dom-shim.js +17 -0
  375. package/dist/collection/utils/test/shared-contract-css.js +9 -0
  376. package/dist/components/co-accordion.js +1 -1
  377. package/dist/components/co-action-bar.js +1 -1
  378. package/dist/components/co-app-shell.js +1 -1
  379. package/dist/components/co-audio-player.js +1 -1
  380. package/dist/components/co-autocomplete.js +1 -1
  381. package/dist/components/co-avatar-group.js +1 -1
  382. package/dist/components/co-avatar.js +1 -1
  383. package/dist/components/co-badge.js +1 -1
  384. package/dist/components/co-bottom-sheet.js +1 -1
  385. package/dist/components/co-breadcrumb-item.js +1 -1
  386. package/dist/components/co-breadcrumb.js +1 -1
  387. package/dist/components/co-button-group.js +1 -1
  388. package/dist/components/co-button.js +1 -1
  389. package/dist/components/co-calendar-month.js +1 -1
  390. package/dist/components/co-calendar-timegrid.js +1 -1
  391. package/dist/components/co-calendar.js +1 -1
  392. package/dist/components/co-card.js +1 -1
  393. package/dist/components/co-carousel-item.js +1 -1
  394. package/dist/components/co-carousel.js +1 -1
  395. package/dist/components/co-checkbox-group.js +1 -1
  396. package/dist/components/co-checkbox.js +1 -1
  397. package/dist/components/co-chip.js +1 -1
  398. package/dist/components/co-color-area.d.ts +11 -0
  399. package/dist/components/co-color-area.js +1 -0
  400. package/dist/components/co-color-picker.js +1 -1
  401. package/dist/components/co-color-slider.d.ts +11 -0
  402. package/dist/components/co-color-slider.js +1 -0
  403. package/dist/components/co-column-picker.js +1 -1
  404. package/dist/components/co-combobox.js +1 -1
  405. package/dist/components/co-command-search.js +1 -1
  406. package/dist/components/co-data-table-pagination.js +1 -1
  407. package/dist/components/co-data-table.js +1 -1
  408. package/dist/components/co-date-field.js +1 -1
  409. package/dist/components/co-date-picker.js +1 -1
  410. package/dist/components/co-date-range-picker.js +1 -1
  411. package/dist/components/co-date-range.js +1 -1
  412. package/dist/components/co-date-time-picker.js +1 -1
  413. package/dist/components/co-document-editor.d.ts +11 -0
  414. package/dist/components/co-document-editor.js +1 -0
  415. package/dist/components/co-drawer.js +1 -1
  416. package/dist/components/co-drive-card.js +1 -1
  417. package/dist/components/co-drop-zone.js +1 -1
  418. package/dist/components/co-emoji-picker.js +1 -1
  419. package/dist/components/co-empty-state.js +1 -1
  420. package/dist/components/co-event-calendar.js +1 -1
  421. package/dist/components/co-event-popover.js +1 -1
  422. package/dist/components/co-fab.js +1 -1
  423. package/dist/components/co-file-field.js +1 -1
  424. package/dist/components/co-file-type-tile.js +1 -1
  425. package/dist/components/co-gradient-bar.d.ts +11 -0
  426. package/dist/components/co-gradient-bar.js +1 -0
  427. package/dist/components/co-helper-text.js +1 -1
  428. package/dist/components/co-icon-button.js +1 -1
  429. package/dist/components/co-icon.js +1 -1
  430. package/dist/components/co-input.js +1 -1
  431. package/dist/components/co-json-field.js +1 -1
  432. package/dist/components/co-kbd.d.ts +11 -0
  433. package/dist/components/co-kbd.js +1 -0
  434. package/dist/components/co-lightbox.js +1 -1
  435. package/dist/components/co-list-footer.js +1 -1
  436. package/dist/components/co-list-item.js +1 -1
  437. package/dist/components/co-media-thumb.js +1 -1
  438. package/dist/components/co-menu-divider.js +1 -1
  439. package/dist/components/co-menu-item.js +1 -1
  440. package/dist/components/co-menu.js +1 -1
  441. package/dist/components/co-modal.js +1 -1
  442. package/dist/components/co-navbar.js +1 -1
  443. package/dist/components/co-number-field.js +1 -1
  444. package/dist/components/co-option-list.js +1 -1
  445. package/dist/components/co-overlay.js +1 -1
  446. package/dist/components/co-page-header.js +1 -1
  447. package/dist/components/co-phone-field.js +1 -1
  448. package/dist/components/co-popover.js +1 -1
  449. package/dist/components/co-progress-bar.js +1 -1
  450. package/dist/components/co-progress-circle.js +1 -1
  451. package/dist/components/co-radio-group.js +1 -1
  452. package/dist/components/co-radio.js +1 -1
  453. package/dist/components/co-rating.js +1 -1
  454. package/dist/components/co-ref-field.js +1 -1
  455. package/dist/components/co-rich-text-editor.js +1 -1
  456. package/dist/components/co-rich-text-toolbar.js +1 -1
  457. package/dist/components/co-rich-text-viewer.js +1 -1
  458. package/dist/components/co-row.js +1 -1
  459. package/dist/components/co-segmented-bar.js +1 -1
  460. package/dist/components/co-select.js +1 -1
  461. package/dist/components/co-separator.js +1 -1
  462. package/dist/components/co-sidebar-nav.js +1 -1
  463. package/dist/components/co-sidebar.js +1 -1
  464. package/dist/components/co-skeleton.js +1 -1
  465. package/dist/components/co-slider.js +1 -1
  466. package/dist/components/co-swatch-grid.d.ts +11 -0
  467. package/dist/components/co-swatch-grid.js +1 -0
  468. package/dist/components/co-switch.js +1 -1
  469. package/dist/components/co-tab-group.js +1 -1
  470. package/dist/components/co-tab.js +1 -1
  471. package/dist/components/co-tags-field.js +1 -1
  472. package/dist/components/co-textarea.js +1 -1
  473. package/dist/components/co-tile.d.ts +11 -0
  474. package/dist/components/co-tile.js +1 -0
  475. package/dist/components/co-time-field.js +1 -1
  476. package/dist/components/co-toast.js +1 -1
  477. package/dist/components/co-toggle-button-group.js +1 -1
  478. package/dist/components/co-toggle-button.js +1 -1
  479. package/dist/components/co-tooltip.js +1 -1
  480. package/dist/components/co-transfer-list.js +1 -1
  481. package/dist/components/co-tree-item.d.ts +11 -0
  482. package/dist/components/co-tree-item.js +1 -0
  483. package/dist/components/co-video.js +1 -1
  484. package/dist/components/index.js +1 -1
  485. package/dist/components/p-B1JT7us1.js +1 -0
  486. package/dist/components/{p-Nt4JJxbL.js → p-B20o5exO.js} +1 -1
  487. package/dist/components/{p-DNJAIVfI.js → p-B3kKOgsA.js} +1 -1
  488. package/dist/components/{p-P4HlMBlL.js → p-BIDSDP05.js} +1 -1
  489. package/dist/components/p-BOqtnWTJ.js +1 -0
  490. package/dist/components/p-BQltjDw5.js +1 -0
  491. package/dist/components/p-BR0LYW9v.js +1 -0
  492. package/dist/components/{p-BRbgGqLw.js → p-BVGGRfNG.js} +1 -1
  493. package/dist/components/p-BZDl9aFl.js +1 -0
  494. package/dist/components/p-BcXdId8y.js +1 -0
  495. package/dist/components/p-BmdKHBZP.js +1 -0
  496. package/dist/components/{p-NNxjElcX.js → p-BraiMwgs.js} +1 -1
  497. package/dist/components/p-BtliEQAT.js +1 -0
  498. package/dist/components/p-Bymi-A7C.js +1 -0
  499. package/dist/components/p-C-f8wTqe.js +1 -0
  500. package/dist/components/{p-BhCVadcA.js → p-C1jZYtUS.js} +1 -1
  501. package/dist/components/{p-CT2enQ6h.js → p-C3G8oPgU.js} +1 -1
  502. package/dist/components/{p-B56LX2SH.js → p-CGH3E8uK.js} +1 -1
  503. package/dist/components/p-COJdaKBU.js +1 -0
  504. package/dist/components/{p-BAYo-RBt.js → p-CRxTFT_z.js} +1 -1
  505. package/dist/components/{p-Du_CgT5E.js → p-CfJgypOl.js} +1 -1
  506. package/dist/components/{p-uxdXViMV.js → p-ChwSnCFf.js} +1 -1
  507. package/dist/components/{p-Dc_Kbari.js → p-CpGEV0iM.js} +1 -1
  508. package/dist/components/{p-DvR45CLa.js → p-D9or2g4j.js} +1 -1
  509. package/dist/components/{p-e5KibEs8.js → p-DJ468fPu.js} +1 -1
  510. package/dist/components/{p-DFlJMEJ-.js → p-DKXCr-hE.js} +1 -1
  511. package/dist/components/p-DU-KOQ8L.js +1 -0
  512. package/dist/components/p-DXLeDZvr.js +1 -0
  513. package/dist/components/{p-BGDqldEg.js → p-DfcPGitr.js} +1 -1
  514. package/dist/components/p-Dg-Ti_Bf.js +1 -0
  515. package/dist/components/p-Dh_eRYKu.js +1 -0
  516. package/dist/components/p-Dp650Gpp.js +1 -0
  517. package/dist/components/p-FA1kBmZ-.js +1 -0
  518. package/dist/components/p-RVQJEYxa.js +1 -0
  519. package/dist/components/p-d4rf3H8p.js +1 -0
  520. package/dist/components/{p-Dxa7c4Ap.js → p-dnaee7fS.js} +1 -1
  521. package/dist/components/p-f2xwcrXa.js +1 -0
  522. package/dist/esm/co-accordion.entry.js +3 -3
  523. package/dist/esm/co-action-bar.entry.js +3 -3
  524. package/dist/esm/co-app-shell.entry.js +3 -3
  525. package/dist/esm/co-audio-player.entry.js +4 -4
  526. package/dist/esm/co-autocomplete.entry.js +2 -2
  527. package/dist/esm/co-avatar-group.entry.js +1 -1
  528. package/dist/esm/co-avatar.entry.js +7 -4
  529. package/dist/esm/co-badge.entry.js +2 -2
  530. package/dist/esm/co-bottom-sheet.entry.js +5 -5
  531. package/dist/esm/co-breadcrumb-item.entry.js +3 -3
  532. package/dist/esm/co-breadcrumb.entry.js +2 -2
  533. package/dist/esm/co-button-group.entry.js +3 -3
  534. package/dist/esm/co-button.entry.js +9 -7
  535. package/dist/esm/co-calendar-month_2.entry.js +4 -4
  536. package/dist/esm/co-calendar_3.entry.js +72 -27
  537. package/dist/esm/co-card.entry.js +3 -3
  538. package/dist/esm/co-carousel-item.entry.js +2 -2
  539. package/dist/esm/co-carousel.entry.js +3 -3
  540. package/dist/esm/co-checkbox-group.entry.js +1 -1
  541. package/dist/esm/co-checkbox.entry.js +13 -5
  542. package/dist/esm/co-chip_2.entry.js +9 -6
  543. package/dist/esm/co-color-area.entry.js +167 -0
  544. package/dist/esm/co-color-picker.entry.js +5 -5
  545. package/dist/esm/co-color-slider.entry.js +187 -0
  546. package/dist/esm/co-column-picker.entry.js +3 -3
  547. package/dist/esm/co-combobox.entry.js +5 -5
  548. package/dist/esm/co-command-search.entry.js +5 -5
  549. package/dist/esm/co-data-table-pagination.entry.js +5 -5
  550. package/dist/esm/co-data-table.entry.js +3 -3
  551. package/dist/esm/co-date-picker.entry.js +2 -2
  552. package/dist/esm/co-date-range-picker.entry.js +2 -2
  553. package/dist/esm/co-date-range.entry.js +2 -2
  554. package/dist/esm/co-date-time-picker.entry.js +4 -4
  555. package/dist/esm/co-document-editor.entry.js +1159 -0
  556. package/dist/esm/co-drive-card.entry.js +2 -2
  557. package/dist/esm/co-drop-zone.entry.js +2 -2
  558. package/dist/esm/co-emoji-picker.entry.js +3 -3
  559. package/dist/esm/co-empty-state.entry.js +3 -3
  560. package/dist/esm/co-event-calendar.entry.js +3 -3
  561. package/dist/esm/co-event-popover.entry.js +3 -3
  562. package/dist/esm/co-fab.entry.js +3 -3
  563. package/dist/esm/co-file-field.entry.js +8 -8
  564. package/dist/esm/co-file-type-tile.entry.js +3 -3
  565. package/dist/esm/co-gradient-bar.entry.js +218 -0
  566. package/dist/esm/co-helper-text.entry.js +3 -3
  567. package/dist/esm/co-icon-button.entry.js +49 -9
  568. package/dist/esm/co-icon.entry.js +3 -3
  569. package/dist/esm/co-input.entry.js +14 -8
  570. package/dist/esm/co-json-field.entry.js +5 -5
  571. package/dist/esm/{co-tooltip.entry.js → co-kbd_2.entry.js} +194 -7
  572. package/dist/esm/co-lightbox.entry.js +5 -5
  573. package/dist/esm/co-list-footer.entry.js +2 -2
  574. package/dist/esm/co-list-item.entry.js +5 -5
  575. package/dist/esm/co-loader.entry.js +1 -1
  576. package/dist/esm/co-media-thumb.entry.js +3 -3
  577. package/dist/esm/co-menu-divider.entry.js +3 -3
  578. package/dist/esm/co-menu-item.entry.js +39 -41
  579. package/dist/esm/co-menu.entry.js +81 -5
  580. package/dist/esm/co-modal.entry.js +350 -7
  581. package/dist/esm/co-navbar.entry.js +3 -3
  582. package/dist/esm/co-number-field.entry.js +5 -5
  583. package/dist/esm/co-overlay.entry.js +8 -4
  584. package/dist/esm/co-page-header.entry.js +2 -2
  585. package/dist/esm/co-phone-field.entry.js +3 -3
  586. package/dist/esm/co-popover.entry.js +67 -6
  587. package/dist/esm/co-progress-bar.entry.js +3 -3
  588. package/dist/esm/co-progress-circle.entry.js +3 -3
  589. package/dist/esm/co-provider-logo_2.entry.js +2 -2
  590. package/dist/esm/co-radio-group.entry.js +4 -4
  591. package/dist/esm/co-radio.entry.js +4 -4
  592. package/dist/esm/co-rating.entry.js +4 -4
  593. package/dist/esm/co-ref-field.entry.js +5 -5
  594. package/dist/esm/co-rich-text-editor.entry.js +26 -92
  595. package/dist/esm/co-rich-text-toolbar.entry.js +79 -20
  596. package/dist/esm/co-rich-text-viewer.entry.js +9 -2
  597. package/dist/esm/co-row.entry.js +3 -3
  598. package/dist/esm/co-segmented-bar.entry.js +3 -3
  599. package/dist/esm/co-select.entry.js +158 -29
  600. package/dist/esm/co-separator.entry.js +2 -2
  601. package/dist/esm/co-sidebar-nav.entry.js +20 -5
  602. package/dist/esm/co-sidebar.entry.js +3 -3
  603. package/dist/esm/co-slider.entry.js +203 -23
  604. package/dist/esm/co-swatch-grid.entry.js +119 -0
  605. package/dist/esm/co-switch.entry.js +5 -5
  606. package/dist/esm/co-tab-group.entry.js +113 -4
  607. package/dist/esm/co-tab.entry.js +15 -5
  608. package/dist/esm/co-tags-field.entry.js +8 -8
  609. package/dist/esm/co-textarea.entry.js +6 -6
  610. package/dist/esm/co-tile.entry.js +59 -0
  611. package/dist/esm/co-time-field.entry.js +2 -2
  612. package/dist/esm/co-toast.entry.js +3 -3
  613. package/dist/esm/co-toggle-button-group.entry.js +26 -5
  614. package/dist/esm/co-toggle-button.entry.js +67 -6
  615. package/dist/esm/co-transfer-list.entry.js +3 -3
  616. package/dist/esm/co-tree-item.entry.js +108 -0
  617. package/dist/esm/co-video.entry.js +3 -3
  618. package/dist/esm/cobalt.js +3 -3
  619. package/dist/esm/{color-BRbgGqLw.js → color-BVGGRfNG.js} +10 -6
  620. package/dist/esm/{fieldChip-uyggU8VV.js → fieldChip-B2ctp2m6.js} +1 -1
  621. package/dist/esm/gradientStops-DDK0y8ra.js +145 -0
  622. package/dist/esm/hsv-COJdaKBU.js +90 -0
  623. package/dist/esm/index-Cpo8HTwr.js +142 -0
  624. package/dist/esm/{index-DH5lfRNj.js → index-DJkaRtbb.js} +67 -28
  625. package/dist/esm/loader.js +3 -3
  626. package/dist/esm/{index-BBIYyvq-.js → pagination-D9OfZUnY.js} +1728 -297
  627. package/dist/esm/{positioning-DFHRS9cJ.js → positioning-BtliEQAT.js} +45 -19
  628. package/dist/esm/{requiredMark-BCJUuZvC.js → requiredMark-D5C5NzOE.js} +1 -1
  629. package/dist/esm/rich-text-host-BmdKHBZP.js +111 -0
  630. package/dist/esm/{richTextI18n-BYKAgwq3.js → richTextI18n-xnrKkNWQ.js} +45 -0
  631. package/dist/esm/submenu-DU-KOQ8L.js +57 -0
  632. package/dist/esm/{toolbar-config-BAYo-RBt.js → toolbar-config-CRxTFT_z.js} +32 -0
  633. package/dist/types/components/co-avatar/co-avatar.d.ts +4 -2
  634. package/dist/types/components/co-button/co-button.d.ts +6 -4
  635. package/dist/types/components/co-calendar/calendarMarks.d.ts +15 -0
  636. package/dist/types/components/co-calendar/co-calendar.d.ts +16 -0
  637. package/dist/types/components/co-checkbox/co-checkbox.d.ts +7 -0
  638. package/dist/types/components/co-color-area/co-color-area.d.ts +64 -0
  639. package/dist/types/components/co-color-slider/co-color-slider.d.ts +61 -0
  640. package/dist/types/components/co-date-time-picker/co-date-time-picker.d.ts +1 -1
  641. package/dist/types/components/co-document-editor/change-throttle.d.ts +9 -0
  642. package/dist/types/components/co-document-editor/co-document-editor.d.ts +276 -0
  643. package/dist/types/components/co-document-editor/document-props.d.ts +6 -0
  644. package/dist/types/components/co-document-editor/header-tools.d.ts +11 -0
  645. package/dist/types/components/co-document-editor/image-bar.d.ts +50 -0
  646. package/dist/types/components/co-document-editor/page-styles.d.ts +1 -0
  647. package/dist/types/components/co-document-editor/zoom.d.ts +26 -0
  648. package/dist/types/components/co-gradient-bar/co-gradient-bar.d.ts +72 -0
  649. package/dist/types/components/co-icon-button/co-icon-button.d.ts +34 -2
  650. package/dist/types/components/co-input/co-input.d.ts +14 -5
  651. package/dist/types/components/co-kbd/co-kbd.d.ts +43 -0
  652. package/dist/types/components/co-menu/co-menu.d.ts +40 -1
  653. package/dist/types/components/co-menu-item/co-menu-item.d.ts +17 -0
  654. package/dist/types/components/co-modal/co-modal.d.ts +111 -2
  655. package/dist/types/components/co-option-list/co-option-list.d.ts +1 -0
  656. package/dist/types/components/co-option-list/optionListLogic.d.ts +3 -0
  657. package/dist/types/components/co-popover/co-popover.d.ts +36 -0
  658. package/dist/types/components/co-rich-text-editor/co-rich-text-editor.d.ts +2 -5
  659. package/dist/types/components/co-rich-text-toolbar/co-rich-text-toolbar.d.ts +17 -2
  660. package/dist/types/components/co-select/co-select.d.ts +47 -5
  661. package/dist/types/components/co-select/virtualRows.d.ts +44 -0
  662. package/dist/types/components/co-slider/co-slider.d.ts +143 -1
  663. package/dist/types/components/co-swatch-grid/co-swatch-grid.d.ts +37 -0
  664. package/dist/types/components/co-tab/co-tab.d.ts +12 -2
  665. package/dist/types/components/co-tab-group/co-tab-group.d.ts +37 -0
  666. package/dist/types/components/co-tab-group/revealTab.d.ts +29 -0
  667. package/dist/types/components/co-tile/co-tile.d.ts +40 -0
  668. package/dist/types/components/co-toggle-button/co-toggle-button.d.ts +37 -2
  669. package/dist/types/components/co-toggle-button-group/co-toggle-button-group.d.ts +20 -2
  670. package/dist/types/components/co-tooltip/co-tooltip.d.ts +12 -0
  671. package/dist/types/components/co-tree-item/co-tree-item.d.ts +73 -0
  672. package/dist/types/components/co-tree-item/treeItemI18n.d.ts +6 -0
  673. package/dist/types/components.d.ts +1744 -88
  674. package/dist/types/utils/color.d.ts +9 -1
  675. package/dist/types/utils/dragMove.d.ts +63 -0
  676. package/dist/types/utils/gradientBarI18n.d.ts +8 -0
  677. package/dist/types/utils/gradientStops.d.ts +63 -0
  678. package/dist/types/utils/hsv.d.ts +44 -0
  679. package/dist/types/utils/kbdI18n.d.ts +25 -0
  680. package/dist/types/utils/positioning.d.ts +24 -0
  681. package/dist/types/utils/rich-text-host.d.ts +41 -0
  682. package/dist/types/utils/richTextI18n.d.ts +15 -0
  683. package/dist/types/utils/submenu.d.ts +16 -2
  684. package/dist/types/utils/swatchGridI18n.d.ts +6 -0
  685. package/dist/types/utils/test/fake-block-layout.d.ts +7 -0
  686. package/dist/types/utils/test/prosemirror-dom-shim.d.ts +1 -0
  687. package/dist/types/utils/test/shared-contract-css.d.ts +9 -0
  688. package/package.json +5 -5
  689. package/dist/cobalt/p-0678c797.entry.js +0 -1
  690. package/dist/cobalt/p-1d3a79af.entry.js +0 -1
  691. package/dist/cobalt/p-216a63ee.entry.js +0 -1
  692. package/dist/cobalt/p-3d31c575.entry.js +0 -1
  693. package/dist/cobalt/p-416795f5.entry.js +0 -1
  694. package/dist/cobalt/p-56551580.entry.js +0 -1
  695. package/dist/cobalt/p-58137c9e.entry.js +0 -1
  696. package/dist/cobalt/p-5a3e4c81.entry.js +0 -1
  697. package/dist/cobalt/p-5c756787.entry.js +0 -1
  698. package/dist/cobalt/p-67f3b9d6.entry.js +0 -1
  699. package/dist/cobalt/p-6a4f3179.entry.js +0 -1
  700. package/dist/cobalt/p-71cbc53c.entry.js +0 -1
  701. package/dist/cobalt/p-72e52af7.entry.js +0 -1
  702. package/dist/cobalt/p-8530ad16.entry.js +0 -1
  703. package/dist/cobalt/p-8a74bf7d.entry.js +0 -1
  704. package/dist/cobalt/p-8e05b979.entry.js +0 -1
  705. package/dist/cobalt/p-8ebc0c12.entry.js +0 -1
  706. package/dist/cobalt/p-8f2199ff.entry.js +0 -1
  707. package/dist/cobalt/p-9246e09c.entry.js +0 -1
  708. package/dist/cobalt/p-99a655f6.entry.js +0 -1
  709. package/dist/cobalt/p-BYKAgwq3.js +0 -1
  710. package/dist/cobalt/p-CJW9H3Gi.js +0 -1
  711. package/dist/cobalt/p-DFHRS9cJ.js +0 -1
  712. package/dist/cobalt/p-DH5lfRNj.js +0 -2
  713. package/dist/cobalt/p-a1b422ca.entry.js +0 -1
  714. package/dist/cobalt/p-ade07307.entry.js +0 -1
  715. package/dist/cobalt/p-b0762fd8.entry.js +0 -1
  716. package/dist/cobalt/p-b698188c.entry.js +0 -1
  717. package/dist/cobalt/p-bde32f8b.entry.js +0 -1
  718. package/dist/cobalt/p-db805569.entry.js +0 -1
  719. package/dist/cobalt/p-e3aae282.entry.js +0 -1
  720. package/dist/cobalt/p-e49a564c.entry.js +0 -1
  721. package/dist/cobalt/p-ef301976.entry.js +0 -1
  722. package/dist/cobalt/p-f4e1c3c3.entry.js +0 -1
  723. package/dist/cobalt/p-fMqVDypp.js +0 -1
  724. package/dist/components/p-2EOI1nrz.js +0 -1
  725. package/dist/components/p-7TncUlLN.js +0 -1
  726. package/dist/components/p-B4NCaKrR.js +0 -1
  727. package/dist/components/p-BJh68Jqe.js +0 -1
  728. package/dist/components/p-BrAFTkAn.js +0 -1
  729. package/dist/components/p-Bsh0JMGf.js +0 -1
  730. package/dist/components/p-CJW9H3Gi.js +0 -1
  731. package/dist/components/p-CWCYYQrF.js +0 -1
  732. package/dist/components/p-D9T7zKeL.js +0 -1
  733. package/dist/components/p-DFHRS9cJ.js +0 -1
  734. package/dist/components/p-DTPYZwaZ.js +0 -1
  735. package/dist/components/p-Dcg4krSX.js +0 -1
  736. package/dist/components/p-Dh8ffSjK.js +0 -1
@@ -1,4 +1,5 @@
1
1
  import { h } from "@stencil/core";
2
+ import { MENU_DIRECTION_ATTR, menuDirectionOfPlacement } from "../../utils/submenu";
2
3
  /**
3
4
  * Dropdown menu. Wraps `co-popover` with menu-specific UX:
4
5
  * - Default `placement="bottom-end"` (typical for "more actions" 3-dot triggers)
@@ -34,6 +35,24 @@ export class CoMenu {
34
35
  this.autoClose = true;
35
36
  /** Whether the menu panel is visible. Reflected to attribute. */
36
37
  this.open = false;
38
+ /** Superficie sobre la que se apoya el panel (regla transversal `surface="dark"`).
39
+ * `dark` = fondo `--co-semantic-surface-primary`, texto `--co-semantic-text-inverse`,
40
+ * sin anillo ni sombra, radio `--co-border-radius-xs`, `min-width: auto`. Para los
41
+ * menús negros de herramienta (formas, plantillas de página, Lineal/Radial).
42
+ * Reflejado a atributo para que el CSS lo lea vía `:host([surface="dark"])`.
43
+ *
44
+ * Los `co-menu-item` (y `co-menu-divider`) hijos heredan el tema oscuro SOLOS,
45
+ * sin ningún prop propio: `co-menu.css` publica variables CSS en el elemento
46
+ * slotted (`::slotted(co-menu-item) { --co-menu-item-color: ...; }`) y esas
47
+ * variables — al ser custom properties heredadas — atraviesan el shadow
48
+ * boundary del hijo hasta su propio `:host` y de ahí a su árbol interno.
49
+ * `co-menu-item`/`co-menu-divider` las consumen con fallback al valor claro
50
+ * de siempre, así que sin `surface="dark"` no cambia nada. */
51
+ this.surface = 'light';
52
+ /** Desplazamiento en px sobre el eje CRUZADO del `placement` (Task C10,
53
+ * Fase 2 Cobalt — fix round 1). Reenviada tal cual al `co-popover`
54
+ * interno. Default `0` = sin cambio. */
55
+ this.shift = 0;
37
56
  this.handleKeydown = (e) => {
38
57
  if (!this.open)
39
58
  return;
@@ -58,6 +77,11 @@ export class CoMenu {
58
77
  this.open = true;
59
78
  this.coOpen.emit();
60
79
  };
80
+ /** Publica hacia los ítems (light DOM) si el panel abrió hacia arriba, ya
81
+ * resuelto el flip: sus submenús crecen en la misma dirección (utils/submenu). */
82
+ this.handlePlacement = (e) => {
83
+ this.el.setAttribute(MENU_DIRECTION_ATTR, menuDirectionOfPlacement(e.detail.placement));
84
+ };
61
85
  this.handlePopoverClose = () => {
62
86
  this.open = false;
63
87
  this.coClose.emit();
@@ -83,6 +107,16 @@ export class CoMenu {
83
107
  document.removeEventListener('keydown', this.handleKeydown, true);
84
108
  }
85
109
  }
110
+ componentDidLoad() {
111
+ // Stencil NO dispara @Watch para el valor inicial: un menú CONTROLADO que
112
+ // monta ya con `open=true` (el contextual del canvas del editor, que nace
113
+ // abierto en la coordenada del clic) se quedaba sin listener de teclado y
114
+ // sin foco inicial — ↑/↓/Enter no hacían nada, aunque Escape sí cerraba
115
+ // porque ese lo maneja el `co-popover` interno, que ya tenía este mismo
116
+ // remedio (ver su componentDidLoad).
117
+ if (this.open)
118
+ this.onOpenChange(true);
119
+ }
86
120
  disconnectedCallback() {
87
121
  document.removeEventListener('keydown', this.handleKeydown, true);
88
122
  }
@@ -94,9 +128,27 @@ export class CoMenu {
94
128
  /** Walk the LIGHT DOM children for `<co-menu-item>` rows in document order.
95
129
  * Returns the focusable inner buttons via `.focus()`-able interface — we
96
130
  * use the host element here and rely on focus delegating to the inner
97
- * `<button>` via Stencil's `delegatesFocus`-like behavior. */
131
+ * `<button>` via Stencil's `delegatesFocus`-like behavior.
132
+ *
133
+ * Las filas son las del panel ACTIVO: el submenú abierto más profundo, o la
134
+ * raíz si no hay ninguno (lo que el docstring del componente ya prometía).
135
+ * Antes era un `querySelectorAll` plano, que también devolvía las filas de
136
+ * los submenús CERRADOS — sus `co-menu-item` viven en el light DOM aunque su
137
+ * panel no esté renderizado, así que ↓ mandaba el foco a filas invisibles.
138
+ * Sin submenús el resultado es idéntico al de siempre. */
98
139
  getMenuItems() {
99
- return Array.from(this.el.querySelectorAll('co-menu-item'));
140
+ return itemsIn(this.activePanel());
141
+ }
142
+ /** El submenú abierto más profundo (por el atributo `data-submenu-open` que
143
+ * publica `co-menu-item`), o el propio menú si no hay ninguno abierto. */
144
+ activePanel() {
145
+ let panel = this.el;
146
+ for (;;) {
147
+ const open = itemsIn(panel).find((item) => item.hasAttribute('data-submenu-open'));
148
+ if (!open)
149
+ return panel;
150
+ panel = open;
151
+ }
100
152
  }
101
153
  moveFocus(delta) {
102
154
  var _a, _b;
@@ -111,7 +163,14 @@ export class CoMenu {
111
163
  (_b = (_a = items[next]) === null || _a === void 0 ? void 0 : _a.focusItem) === null || _b === void 0 ? void 0 : _b.call(_a);
112
164
  }
113
165
  render() {
114
- return (h("co-popover", { key: 'a386ccd371e9eb5627b6c70f43e66d6844df0b8a', placement: this.placement, offset: this.offset, open: this.open, onCoOpen: this.handlePopoverOpen, onCoClose: this.handlePopoverClose }, h("slot", { key: '9115ac2e7689183d9d397bd602d1a8651dcf364d', name: "trigger", slot: "trigger" }), h("div", { key: 'a56a14dfc5810144b93ca68ce54aceb7e5c2b85c', class: "co-menu", role: "menu", style: this.width ? { width: this.width, minWidth: this.width } : undefined }, h("slot", { key: '045510a7bbde56d841eee17d7561249a090e6de3' }))));
166
+ return (h("co-popover", { key: '9ad32ee1adf1436a4ff266db44a34c0b4e9b5293', placement: this.placement, offset: this.offset, open: this.open, anchor: this.anchor, shift: this.shift,
167
+ // `co-menu` SIEMPRE pinta su propio chrome (`.co-menu`: fondo +
168
+ // shadow-lg + anillo, o el panel sólido de `surface="dark"`) — el
169
+ // `co-popover` interno tiene que ir SIEMPRE bare, sin condición, para
170
+ // no sumarle un fondo/borde/sombra propios detrás (Task C10, Fase 2
171
+ // Cobalt — fix round 1; antes de esto el panel del menú tenía doble
172
+ // chrome SIEMPRE, no solo en un caso opcional).
173
+ bare: true, onCoOpen: this.handlePopoverOpen, onCoClose: this.handlePopoverClose, onCoPlacement: this.handlePlacement }, h("slot", { key: 'b093c29c2e8a6773843a030282cc9e06af54f8c7', name: "trigger", slot: "trigger" }), h("div", { key: '00baf22b70a5f0544a134c170549b31fb46baf38', class: "co-menu", role: "menu", style: this.width ? { width: this.width, minWidth: this.width } : undefined }, h("slot", { key: '2307edc81be264fe4e8a76fb2e1bc14b59538cc2' }))));
115
174
  }
116
175
  static get is() { return "co-menu"; }
117
176
  static get encapsulation() { return "shadow"; }
@@ -232,6 +291,70 @@ export class CoMenu {
232
291
  "setter": false,
233
292
  "reflect": false,
234
293
  "attribute": "width"
294
+ },
295
+ "surface": {
296
+ "type": "string",
297
+ "mutable": false,
298
+ "complexType": {
299
+ "original": "'light' | 'dark'",
300
+ "resolved": "\"dark\" | \"light\"",
301
+ "references": {}
302
+ },
303
+ "required": false,
304
+ "optional": false,
305
+ "docs": {
306
+ "tags": [],
307
+ "text": "Superficie sobre la que se apoya el panel (regla transversal `surface=\"dark\"`).\n`dark` = fondo `--co-semantic-surface-primary`, texto `--co-semantic-text-inverse`,\nsin anillo ni sombra, radio `--co-border-radius-xs`, `min-width: auto`. Para los\nmen\u00FAs negros de herramienta (formas, plantillas de p\u00E1gina, Lineal/Radial).\nReflejado a atributo para que el CSS lo lea v\u00EDa `:host([surface=\"dark\"])`.\n\nLos `co-menu-item` (y `co-menu-divider`) hijos heredan el tema oscuro SOLOS,\nsin ning\u00FAn prop propio: `co-menu.css` publica variables CSS en el elemento\nslotted (`::slotted(co-menu-item) { --co-menu-item-color: ...; }`) y esas\nvariables \u2014 al ser custom properties heredadas \u2014 atraviesan el shadow\nboundary del hijo hasta su propio `:host` y de ah\u00ED a su \u00E1rbol interno.\n`co-menu-item`/`co-menu-divider` las consumen con fallback al valor claro\nde siempre, as\u00ED que sin `surface=\"dark\"` no cambia nada."
308
+ },
309
+ "getter": false,
310
+ "setter": false,
311
+ "reflect": true,
312
+ "attribute": "surface",
313
+ "defaultValue": "'light'"
314
+ },
315
+ "anchor": {
316
+ "type": "string",
317
+ "mutable": false,
318
+ "complexType": {
319
+ "original": "HTMLElement | string",
320
+ "resolved": "HTMLElement | string | undefined",
321
+ "references": {
322
+ "HTMLElement": {
323
+ "location": "global",
324
+ "id": "global::HTMLElement"
325
+ }
326
+ }
327
+ },
328
+ "required": false,
329
+ "optional": true,
330
+ "docs": {
331
+ "tags": [],
332
+ "text": "Elemento (o selector resuelto contra `document`) al que se alinea el\npanel EN VEZ del trigger (Task C10, Fase 2 Cobalt \u2014 fix round 1).\nReenviada tal cual al `co-popover` interno; sin `anchor`, cae al\ntrigger (comportamiento de siempre). \u00DAtil para alinear el men\u00FA contra\nun contenedor m\u00E1s grande que el bot\u00F3n que lo abre (p.ej. la p\u00EDldora del\nzoom del toolbar)."
333
+ },
334
+ "getter": false,
335
+ "setter": false,
336
+ "reflect": false,
337
+ "attribute": "anchor"
338
+ },
339
+ "shift": {
340
+ "type": "number",
341
+ "mutable": false,
342
+ "complexType": {
343
+ "original": "number",
344
+ "resolved": "number",
345
+ "references": {}
346
+ },
347
+ "required": false,
348
+ "optional": false,
349
+ "docs": {
350
+ "tags": [],
351
+ "text": "Desplazamiento en px sobre el eje CRUZADO del `placement` (Task C10,\nFase 2 Cobalt \u2014 fix round 1). Reenviada tal cual al `co-popover`\ninterno. Default `0` = sin cambio."
352
+ },
353
+ "getter": false,
354
+ "setter": false,
355
+ "reflect": false,
356
+ "attribute": "shift",
357
+ "defaultValue": "0"
235
358
  }
236
359
  };
237
360
  }
@@ -306,3 +429,20 @@ export class CoMenu {
306
429
  }];
307
430
  }
308
431
  }
432
+ /** Filas de UN panel: todos los `co-menu-item` de adentro cuyo `co-menu-item`
433
+ * ancestro más cercano sea ESTE panel — los del menú raíz no tienen ninguno y
434
+ * los de un submenú cuelgan del ítem que lo abre.
435
+ *
436
+ * Se mira el ancestro y no los hijos directos a propósito (fix round 1): con
437
+ * hijos directos, un consumidor que envuelva sus filas en un `<div>` (un
438
+ * grupo, un `v-for` con wrapper, un fragmento con contenedor) se quedaba sin
439
+ * navegación por flechas **en silencio**. Así el envoltorio da igual y los
440
+ * submenús siguen quedando fuera. */
441
+ function itemsIn(panel) {
442
+ const esItem = panel.tagName.toLowerCase() === 'co-menu-item';
443
+ return Array.from(panel.querySelectorAll('co-menu-item')).filter((item) => {
444
+ var _a, _b;
445
+ const ancestro = (_b = (_a = item.parentElement) === null || _a === void 0 ? void 0 : _a.closest('co-menu-item')) !== null && _b !== void 0 ? _b : null;
446
+ return esItem ? ancestro === panel : ancestro === null;
447
+ });
448
+ }
@@ -7,3 +7,20 @@
7
7
  border-top: 1px solid var(--co-semantic-border-subtle, rgba(31, 28, 27, 0.08));
8
8
  margin: var(--co-spacing-xs, 4px) 0;
9
9
  }
10
+
11
+ /* Task C9 — hook de color para `co-menu surface="dark"` (ver co-menu.css):
12
+ el borde sutil negro-8 es casi invisible sobre el fondo negro del panel
13
+ oscuro. El ancestro oscuro publica `--co-menu-divider-color` en ESTE
14
+ elemento (custom property heredada — atraviesa el shadow boundary hasta
15
+ acá). Solo tocamos `border-top-color` (no todo el shorthand `border-top`
16
+ de arriba), así el ancho/estilo (1px solid) quedan intactos. Sin ancestro
17
+ oscuro, sigue el borde de siempre. */
18
+ .co-menu-divider {
19
+ border-top-color: var(--co-menu-divider-color, var(--co-semantic-border-subtle, rgba(31, 28, 27, 0.08)));
20
+ /* Task C1 — hook del margen, con el default de siempre (`4px 0`). El
21
+ separador del menú contextual del canvas es más ANCHO que el contenido
22
+ del panel (margen horizontal negativo) y su aire vertical no es simétrico
23
+ (el borde de 1px cuenta). Va en la re-declaración y no en el shorthand
24
+ `margin` de arriba para no cambiar nada sin la variable. */
25
+ margin: var(--co-menu-divider-margin, var(--co-spacing-xs, 4px) 0);
26
+ }
@@ -5,7 +5,7 @@ import { h } from "@stencil/core";
5
5
  */
6
6
  export class CoMenuDivider {
7
7
  render() {
8
- return h("hr", { key: '9896239f2395bd79f45309fb61e0a0173572947a', class: "co-menu-divider", role: "separator" });
8
+ return h("hr", { key: '7ec669cd5b23822d5ac9e94bf6f9d729222bc107', class: "co-menu-divider", role: "separator" });
9
9
  }
10
10
  static get is() { return "co-menu-divider"; }
11
11
  static get encapsulation() { return "shadow"; }
@@ -19,8 +19,25 @@
19
19
  border: 0;
20
20
  border-radius: var(--co-border-radius-xs, 8px);
21
21
  font-family: var(--co-font-family-primary);
22
- font-size: var(--co-font-size-14, 14px);
23
- color: var(--co-semantic-text-default);
22
+ /* Task C9 — hooks aditivos de tipografía (mismo default de siempre: 14px,
23
+ sin font-weight/letter-spacing explícitos — o sea `normal`) y de color
24
+ para `co-menu surface="dark"` (ver co-menu.css): el ancestro oscuro
25
+ publica `--co-menu-item-color` en ESTE elemento (custom property
26
+ heredada — atraviesa el shadow boundary hasta acá). Sin ancestro oscuro,
27
+ sigue el texto de siempre. Los hooks van EN la regla original, no en una
28
+ re-declaración al final: `.co-menu-item--danger` pesa lo mismo (0,1,0) y
29
+ gana solo por orden de fuente — una `.co-menu-item { color }` posterior
30
+ le quitaba el rojo a todo ítem danger (fix C-1). */
31
+ font-size: var(--co-menu-item-font-size, var(--co-font-size-14, 14px));
32
+ font-weight: var(--co-menu-item-font-weight, normal);
33
+ letter-spacing: var(--co-menu-item-letter-spacing, normal);
34
+ /* Follow-up Fase 4 (editor): hook para fijar el interlineado de la fila
35
+ (filas de 12px del editor). Fallback `normal` = lo que ya computaba: la
36
+ fila es un <button> y el UA le pone `line-height: normal` (Chromium/
37
+ WebKit vía `font: -webkit-small-control`, Firefox en forms.css); esta
38
+ hoja no lo tocaba. Sin la variable, nada cambia. */
39
+ line-height: var(--co-menu-item-line-height, normal);
40
+ color: var(--co-menu-item-color, var(--co-semantic-text-default));
24
41
  text-align: left;
25
42
  cursor: pointer;
26
43
  transition: background var(--co-motion-duration-fast) var(--co-motion-ease-out), color var(--co-motion-duration-fast) var(--co-motion-ease-out);
@@ -33,14 +50,19 @@
33
50
  min-height: 32px;
34
51
  }
35
52
 
36
- /* At-rest selected highlight. Declared before :hover so hover still wins. */
53
+ /* At-rest selected highlight. Declared before :hover so hover still wins.
54
+ En `co-menu surface="dark"` el ancestro publica `--co-menu-item-selected-bg:
55
+ transparent` (selected SIN fondo) y `--co-menu-item-hover-bg` en blanco-16;
56
+ sin esas variables el fallback es el valor de siempre. Ambas reglas se
57
+ quedan ACÁ, antes de `--danger:hover` (misma especificidad que
58
+ `.co-menu-item:hover`): el hover rojo de danger gana por orden (fix C-1). */
37
59
  .co-menu-item--selected {
38
- background: var(--co-color-gray-100, #f6f6f6);
60
+ background: var(--co-menu-item-selected-bg, var(--co-color-gray-100, #f6f6f6));
39
61
  }
40
62
 
41
63
  .co-menu-item:hover,
42
64
  .co-menu-item--submenu-open {
43
- background: var(--co-semantic-surface-hover, rgba(31, 28, 27, 0.04));
65
+ background: var(--co-menu-item-hover-bg, var(--co-semantic-surface-hover, rgba(31, 28, 27, 0.04)));
44
66
  }
45
67
 
46
68
  .co-menu-item:focus-visible {
@@ -75,7 +97,9 @@
75
97
  display: inline-flex;
76
98
  align-items: center;
77
99
  flex-shrink: 0;
78
- color: var(--co-semantic-text-default);
100
+ /* Mismo hook de color que la fila (Task C9): en `surface="dark"` sigue el
101
+ texto claro del panel; sin ancestro oscuro, el default de siempre. */
102
+ color: var(--co-menu-item-color, var(--co-semantic-text-default));
79
103
  }
80
104
 
81
105
  .co-menu-item__label {
@@ -163,3 +187,15 @@
163
187
  }
164
188
  .co-menu-item__submenu::before { left: -6px; }
165
189
  .co-menu-item__submenu::after { right: -6px; }
190
+
191
+ /* leadingCheck: check de 12px al INICIO de la fila (primer hijo del flex, ver
192
+ .tsx), pareja de trailingCheck pero para menús de selección única con panel
193
+ oscuro (formas, plantillas de página). El span se reserva SIEMPRE que
194
+ leadingCheck esté activo — ancho fijo 12px, mismo tamaño que el ícono de
195
+ adentro — el gap con el siguiente hijo (icono o label) ya lo pone el `gap`
196
+ de `.co-menu-item`, así que el hueco total es 12px + ese gap. El `co-icon`
197
+ de adentro solo se monta si además `selected` es true (ver .tsx). */
198
+ .co-menu-item__check--leading {
199
+ width: 12px;
200
+ justify-content: center;
201
+ }
@@ -1,5 +1,5 @@
1
1
  import { h } from "@stencil/core";
2
- import { SUBMENU_SIDE_ATTR, inheritedSubmenuSide, sideOfPlacement, submenuPlacement } from "../../utils/submenu";
2
+ import { SUBMENU_SIDE_ATTR, inheritedSubmenuSide, menuOpensUp, sideOfPlacement, submenuPlacement } from "../../utils/submenu";
3
3
  /**
4
4
  * Row inside a `co-menu`. Two modes:
5
5
  *
@@ -24,6 +24,14 @@ export class CoMenuItem {
24
24
  /** Renders a trailing check (size 15) after the label. Pair with `selected`
25
25
  * to mark the chosen option in a single-select menu. */
26
26
  this.trailingCheck = false;
27
+ /** Reserva un check de 12px AL INICIO de la fila (antes del ícono/label).
28
+ * A diferencia de `trailingCheck` (que solo se monta si el prop está en
29
+ * true), acá el HUECO (12px + el gap de la fila) se reserva SIEMPRE que
30
+ * `leadingCheck` esté activo — el `co-icon` de adentro solo se monta si
31
+ * además `selected` es true, así todas las filas de un menú de selección
32
+ * única (formas, plantillas de página) quedan alineadas aunque solo una
33
+ * esté marcada. Pensado para menús con `co-menu surface="dark"`. */
34
+ this.leadingCheck = false;
27
35
  /** Visually disabled — pointer events ignored, opacity reduced. */
28
36
  this.disabled = false;
29
37
  /** `danger` shifts text + icon to the destructive color. Use for Delete, etc. */
@@ -107,6 +115,20 @@ export class CoMenuItem {
107
115
  }
108
116
  };
109
117
  }
118
+ /** Publica el submenú abierto como atributo del HOST (`data-submenu-open`).
119
+ * Prefijo `data-`: es un atributo que el componente escribe solo, no una
120
+ * API que se setea desde afuera, y sin prefijo ensuciaba el espacio de
121
+ * nombres de atributos estándar (review final 2).
122
+ * `submenuOpen` es `@State` y vive en el shadow: sin esto, el `co-menu`
123
+ * ancestro no tiene forma de saber qué panel está activo para dirigir las
124
+ * flechas (ver `getMenuItems` en co-menu.tsx). Aditivo: un atributo de solo
125
+ * lectura que nadie más consume; el resto del componente no cambia. */
126
+ onSubmenuOpenChange(isOpen) {
127
+ if (isOpen)
128
+ this.el.setAttribute('data-submenu-open', '');
129
+ else
130
+ this.el.removeAttribute('data-submenu-open');
131
+ }
110
132
  /** Programmatic focus — used by `co-menu`'s keyboard navigation. Named
111
133
  * `focusItem` (not `focus`) because Stencil reserves the latter (it shadows
112
134
  * HTMLElement.prototype.focus). */
@@ -144,7 +166,7 @@ export class CoMenuItem {
144
166
  // La dirección se resuelve ACÁ y no en render: heredarla exige que el
145
167
  // submenú del ancestro ya esté posicionado, y eso solo está garantizado
146
168
  // cuando el cursor pudo llegar a esta fila (que vive dentro de ese panel).
147
- this.submenuPlacementValue = submenuPlacement(inheritedSubmenuSide(this.el));
169
+ this.submenuPlacementValue = submenuPlacement(inheritedSubmenuSide(this.el), menuOpensUp(this.el));
148
170
  this.submenuOpen = true;
149
171
  }
150
172
  /** Cierra el submenú YA (sin delay de gracia). Público: lo invoca el hermano
@@ -181,14 +203,20 @@ export class CoMenuItem {
181
203
  'co-menu-item--danger': this.variant === 'danger',
182
204
  'co-menu-item--submenu': this.hasSubmenu,
183
205
  'co-menu-item--submenu-open': this.hasSubmenu && this.submenuOpen,
184
- }, type: "button", role: "menuitem", "aria-haspopup": this.hasSubmenu ? 'menu' : undefined, "aria-expanded": this.hasSubmenu ? (this.submenuOpen ? 'true' : 'false') : undefined, disabled: this.disabled, onClick: this.handleClick, onKeyDown: this.handleKeydown, onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave }, this.icon && (h("span", { class: "co-menu-item__icon" }, h("co-icon", { name: this.icon, size: (_a = this.iconSize) !== null && _a !== void 0 ? _a : 16 }))), h("span", { class: { 'co-menu-item__label': true, 'co-menu-item__label--stacked': !!this.caption } }, h("span", { class: "co-menu-item__label-main" }, this.label, h("slot", { name: "label" })), this.caption && h("span", { class: "co-menu-item__caption" }, this.caption)), this.trailingCheck && (h("span", { class: "co-menu-item__check" }, h("co-icon", { name: "check", size: 15 }))), h("span", { class: "co-menu-item__suffix" }, h("slot", { name: "suffix" }), this.hasSubmenu && h("co-icon", { name: "caret-right", size: 14 }))));
206
+ }, type: "button", role: "menuitem", "aria-haspopup": this.hasSubmenu ? 'menu' : undefined, "aria-expanded": this.hasSubmenu ? (this.submenuOpen ? 'true' : 'false') : undefined, disabled: this.disabled, onClick: this.handleClick, onKeyDown: this.handleKeydown, onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave }, this.leadingCheck && (h("span", { class: "co-menu-item__check co-menu-item__check--leading" }, this.selected && h("co-icon", { name: "check", size: 12 }))), this.icon && (h("span", { class: "co-menu-item__icon" }, h("co-icon", { name: this.icon, size: (_a = this.iconSize) !== null && _a !== void 0 ? _a : 16 }))), h("span", { class: { 'co-menu-item__label': true, 'co-menu-item__label--stacked': !!this.caption } }, h("span", { class: "co-menu-item__label-main" }, this.label, h("slot", { name: "label" })), this.caption && h("span", { class: "co-menu-item__caption" }, this.caption)), this.trailingCheck && (h("span", { class: "co-menu-item__check" }, h("co-icon", { name: "check", size: 15 }))), h("span", { class: "co-menu-item__suffix" }, h("slot", { name: "suffix" }), this.hasSubmenu && h("co-icon", { name: "caret-right", size: 14 }))));
185
207
  if (!this.hasSubmenu) {
186
208
  // Leaf — the default slot is unused for leaves; ignore it.
187
209
  return h("div", { class: "co-menu-item__wrap" }, row);
188
210
  }
189
211
  // Submenu trigger — wrap the row in a co-popover anchored to the right.
190
212
  // The default slot (nested co-menu-items) is projected into the popover.
191
- return (h("div", { class: "co-menu-item__wrap co-menu-item__wrap--submenu", onMouseEnter: this.cancelClose, onMouseLeave: this.handleMouseLeave }, h("co-popover", { placement: this.submenuPlacementValue, offset: 4, open: this.submenuOpen, onCoOpen: () => this.openSubmenu(), onCoClose: () => { this.submenuOpen = false; }, onCoPlacement: this.handlePlacement }, h("div", { slot: "trigger", class: "co-menu-item__trigger-wrap" }, row), h("div", { class: "co-menu-item__submenu", role: "menu", onMouseEnter: this.cancelClose, onMouseLeave: this.handleMouseLeave }, h("slot", null)))));
213
+ return (h("div", { class: "co-menu-item__wrap co-menu-item__wrap--submenu", onMouseEnter: this.cancelClose, onMouseLeave: this.handleMouseLeave }, h("co-popover", { placement: this.submenuPlacementValue, offset: 4, open: this.submenuOpen,
214
+ // `.co-menu-item__submenu` pinta su PROPIO chrome (fondo + shadow-lg
215
+ // + anillo interno, igual que `.co-menu`), así que el popover va
216
+ // SIEMPRE bare — misma regla que el popover interno de `co-menu`
217
+ // (Task C10 fix round 1); sin esto el submenú tenía doble
218
+ // borde/sombra/fondo (fix I-4).
219
+ bare: true, onCoOpen: () => this.openSubmenu(), onCoClose: () => { this.submenuOpen = false; }, onCoPlacement: this.handlePlacement }, h("div", { slot: "trigger", class: "co-menu-item__trigger-wrap" }, row), h("div", { class: "co-menu-item__submenu", role: "menu", onMouseEnter: this.cancelClose, onMouseLeave: this.handleMouseLeave }, h("slot", null)))));
192
220
  }
193
221
  static get is() { return "co-menu-item"; }
194
222
  static get encapsulation() { return "shadow"; }
@@ -340,6 +368,26 @@ export class CoMenuItem {
340
368
  "attribute": "trailing-check",
341
369
  "defaultValue": "false"
342
370
  },
371
+ "leadingCheck": {
372
+ "type": "boolean",
373
+ "mutable": false,
374
+ "complexType": {
375
+ "original": "boolean",
376
+ "resolved": "boolean",
377
+ "references": {}
378
+ },
379
+ "required": false,
380
+ "optional": false,
381
+ "docs": {
382
+ "tags": [],
383
+ "text": "Reserva un check de 12px AL INICIO de la fila (antes del \u00EDcono/label).\nA diferencia de `trailingCheck` (que solo se monta si el prop est\u00E1 en\ntrue), ac\u00E1 el HUECO (12px + el gap de la fila) se reserva SIEMPRE que\n`leadingCheck` est\u00E9 activo \u2014 el `co-icon` de adentro solo se monta si\nadem\u00E1s `selected` es true, as\u00ED todas las filas de un men\u00FA de selecci\u00F3n\n\u00FAnica (formas, plantillas de p\u00E1gina) quedan alineadas aunque solo una\nest\u00E9 marcada. Pensado para men\u00FAs con `co-menu surface=\"dark\"`."
384
+ },
385
+ "getter": false,
386
+ "setter": false,
387
+ "reflect": false,
388
+ "attribute": "leading-check",
389
+ "defaultValue": "false"
390
+ },
343
391
  "disabled": {
344
392
  "type": "boolean",
345
393
  "mutable": false,
@@ -461,4 +509,10 @@ export class CoMenuItem {
461
509
  };
462
510
  }
463
511
  static get elementRef() { return "el"; }
512
+ static get watchers() {
513
+ return [{
514
+ "propName": "submenuOpen",
515
+ "methodName": "onSubmenuOpenChange"
516
+ }];
517
+ }
464
518
  }
@@ -235,8 +235,219 @@
235
235
  border-top: none;
236
236
  }
237
237
 
238
- /* header-divider="false": the body runs straight under the heading. */
238
+ /* header-divider="false": the body runs straight under the heading.
239
+ Va ANTES de los modos panel/dialog (misma especificidad 0,2,0): esos modos
240
+ conservan la anatomía de su cuerpo (padding propio, sin divisor) aunque
241
+ además llegue header-divider="false". */
239
242
  .co-modal--no-header-divider .co-modal__body {
240
243
  border-top: none;
241
244
  padding-top: 0;
242
245
  }
246
+
247
+ /* ─── size="xs" (Task C12) ──────────────────────────────────── */
248
+ /* Panel angosto de ancho fijo (369px) — a diferencia de sm/lg (solo
249
+ max-width sobre el `width: 90vw` base) acá el ancho es fijo, expuesto vía
250
+ variable para que un consumidor lo pueda ajustar sin nueva prop. */
251
+ .co-modal--xs {
252
+ width: var(--co-modal-width, 369px);
253
+ max-width: var(--co-modal-width, 369px);
254
+ }
255
+
256
+ /* ─── appearance="panel" (Task C12) ─────────────────────────── */
257
+ /* Superficie plana con borde + sombra completa, SIN squircle: el tsx omite
258
+ .co-sq-clip/.co-sq-elevation en .co-modal--panel y .co-sq-elevation-fallback
259
+ en el frame para esta variante, así que radio/box-shadow van declarados acá
260
+ enteros (no hay partial squircle-surface.css involucrado). */
261
+ .co-modal--panel {
262
+ border-radius: var(--co-border-radius-sm);
263
+ border: 1px solid var(--co-semantic-border-subtle);
264
+ box-shadow: var(--co-shadow-lg);
265
+ }
266
+
267
+ .co-modal--panel .co-modal__header {
268
+ padding: 16px 20px 16px 24px;
269
+ align-items: center;
270
+ border-bottom: 1px solid var(--co-semantic-border-subtle);
271
+ }
272
+
273
+ .co-modal--panel .co-modal__heading {
274
+ font-size: var(--co-font-size-20);
275
+ font-weight: 500;
276
+ line-height: 1.25;
277
+ letter-spacing: var(--co-font-letter-spacing-body);
278
+ }
279
+
280
+ .co-modal--panel .co-modal__close {
281
+ width: 32px;
282
+ height: 32px;
283
+ padding: 0;
284
+ border-radius: var(--co-border-radius-full);
285
+ color: var(--co-semantic-text-default);
286
+ }
287
+
288
+ .co-modal--panel .co-modal__body {
289
+ padding: 24px;
290
+ border-top: none;
291
+ }
292
+
293
+ .co-modal--panel .co-modal__footer {
294
+ padding: 12px 24px;
295
+ gap: 12px;
296
+ border-top: 1px solid var(--co-semantic-border-subtle);
297
+ }
298
+
299
+ /* ─── backdrop="none" / inline (Task C12) ───────────────────── */
300
+ /* Sin <co-overlay> el frame deja de ser centrado por su flex del padre — se
301
+ posiciona y apila SOLO: mismo fixed+inset+centrado que co-overlay.css,
302
+ pero sin promoción a top layer (ver doc de `inline` en el @Prop). El
303
+ z-index es una variable propia (no pisa el 1000 de co-overlay) para que un
304
+ consumidor pueda ubicar sus propios portales por encima o por debajo a
305
+ gusto. `pointer-events: none` en el wrapper deja pasar los clics al resto
306
+ de la página (no hay backdrop que los intercepte); el panel recupera
307
+ `auto` SOLO mientras está abierto — `pointer-events` hereda, así que
308
+ cerrado (sin --open) el wrapper en none ya alcanza. */
309
+ .co-modal__frame--standalone {
310
+ position: fixed;
311
+ inset: 0;
312
+ z-index: var(--co-modal-z-index, 1000);
313
+ display: flex;
314
+ align-items: center;
315
+ justify-content: center;
316
+ pointer-events: none;
317
+ }
318
+
319
+ .co-modal__frame--standalone .co-modal--open {
320
+ pointer-events: auto;
321
+ }
322
+
323
+ /* Cerrado, el frame standalone sigue MONTADO (no hay co-overlay que lo
324
+ saque del flujo): solo con `opacity: 0` el panel seguía en el tab-order y
325
+ legible para AT (fix I-1). `visibility: hidden` lo saca de ambos, pero el
326
+ flip va DIFERIDO al final del fade-out de salida (delay = la misma
327
+ --co-motion-duration-fast de la transición base de .co-modal) para no
328
+ cortar la animación de cierre ni el `transitionend` de `transform` del que
329
+ sale `coAfterClose` (mismo patrón que co-accordion / co-action-bar). Al
330
+ abrir, la transición vigente es la de `.co-modal--open` (sin visibility),
331
+ así que el panel es visible desde el frame 1. Reduced-motion lo cubre el
332
+ zeroing global de --co-motion-duration-*. Solo aplica bajo el frame
333
+ standalone: el modal default (dentro de co-overlay) no cambia. */
334
+ .co-modal__frame--standalone .co-modal:not(.co-modal--open) {
335
+ visibility: hidden;
336
+ transition: transform var(--co-motion-duration-fast) var(--co-motion-ease-in), opacity var(--co-motion-duration-fast) var(--co-motion-ease-in), visibility 0s linear var(--co-motion-duration-fast);
337
+ }
338
+
339
+ /* ─── appearance="dialog" (Task M1) ─────────────────────────── */
340
+ /* La anatomía del componente "Modal" del design system (Figma Prolibu UI
341
+ Suite `1179:37247`), medida del Figma: contenedor 540 (= `md`) radio 16
342
+ `radius-lg`, fondo blanco, SIN borde ni sombra propios (el nodo no lleva
343
+ efecto: sobre el scrim alcanza); contenido con padding 32 `space-3xl` y gap
344
+ 16 `space-lg` entre título (Subheading/S1: 22/500, lh 1.25, ls −3 %) y
345
+ cuerpo (Body/B2: 16/400, lh 1.5, ls −3 %, gris-600) sin divisor entre
346
+ ambos; footer con padding 16/24 (`space-lg`/`space-2xl`), gap 12
347
+ `space-md`, hairline superior `negro-8 %` = `--co-semantic-border-subtle`
348
+ y botones a la derecha (cuadrados radio 12: `co-button shape="square"
349
+ size="m"`). Igual que `panel`, el tsx omite las clases squircle para esta
350
+ variante, así que el radio va declarado acá entero (no hay partial
351
+ squircle-surface.css involucrado). Aditivo: `default` y `panel` no cambian. */
352
+ .co-modal--dialog {
353
+ border-radius: var(--co-border-radius-lg);
354
+ }
355
+
356
+ /* Header = solo el título (y el ✕ si `closable`): el padding inferior lo
357
+ pone el cuerpo (gap 16 del Figma). `flex-start`, no `center`: con
358
+ `description` el texto es una columna y el ✕ tiene que quedar arriba. */
359
+ .co-modal--dialog .co-modal__header {
360
+ padding: var(--co-spacing-3xl) var(--co-spacing-3xl) 0;
361
+ align-items: flex-start;
362
+ gap: var(--co-spacing-lg);
363
+ }
364
+
365
+ .co-modal--dialog .co-modal__header-text {
366
+ gap: var(--co-spacing-lg);
367
+ }
368
+
369
+ .co-modal--dialog .co-modal__heading {
370
+ font-size: var(--co-font-size-22);
371
+ font-weight: 500;
372
+ line-height: 1.25;
373
+ letter-spacing: var(--co-font-letter-spacing-body);
374
+ }
375
+
376
+ .co-modal--dialog .co-modal__description {
377
+ font-size: var(--co-font-size-16);
378
+ line-height: 1.5;
379
+ letter-spacing: var(--co-font-letter-spacing-body);
380
+ }
381
+
382
+ /* ✕ redondo de 32 (el mismo del modo `panel`), subido 3 px para centrarlo
383
+ ópticamente en la línea de 27,5 del título y corrido 6 px hacia el borde
384
+ para que el glifo (18 px, 7 de aire en la caja) quede al ras del padding. */
385
+ .co-modal--dialog .co-modal__close {
386
+ width: 32px;
387
+ height: 32px;
388
+ padding: 0;
389
+ margin: -3px -6px 0 0;
390
+ border-radius: var(--co-border-radius-full);
391
+ color: var(--co-semantic-text-default);
392
+ }
393
+
394
+ /* Cuerpo: 16 arriba (gap título→cuerpo), 32 a los lados y abajo; sin el
395
+ divisor del default. Tipografía Body/B2 del DS (el consumidor la hereda). */
396
+ .co-modal--dialog .co-modal__body {
397
+ padding: var(--co-spacing-lg) var(--co-spacing-3xl) var(--co-spacing-3xl);
398
+ border-top: none;
399
+ font-size: var(--co-font-size-16);
400
+ line-height: 1.5;
401
+ letter-spacing: var(--co-font-letter-spacing-body);
402
+ }
403
+
404
+ /* `size="full"` (viewers edge-to-edge) conserva su cuerpo sin padding: la
405
+ regla de arriba tiene la misma especificidad que `.co-modal--full
406
+ .co-modal__body` y va después, así que se re-afirma explícitamente. */
407
+ .co-modal--dialog.co-modal--full .co-modal__body {
408
+ padding: 0;
409
+ }
410
+
411
+ /* Footer 16/24, gap 12, hairline subtle. Solo el COLOR del borde: así
412
+ `no-dividers` (`border-top: none`, misma especificidad, declarado antes)
413
+ sigue quitándolo. Los botones cuadrados del Figma (radio 12) los pone el
414
+ consumidor con `shape="square"`; la variable cubre a los `rounded`. */
415
+ .co-modal--dialog .co-modal__footer {
416
+ padding: var(--co-spacing-lg) var(--co-spacing-2xl);
417
+ gap: var(--co-spacing-md);
418
+ border-top-color: var(--co-semantic-border-subtle);
419
+ --co-button-radius: var(--co-border-radius-sm);
420
+ }
421
+
422
+ /* ─── movable (Task D1) ─────────────────────────────────────── */
423
+ /* Opt-in: sin `movable` no se emite ninguna de estas clases, así que el CSS
424
+ por defecto queda idéntico. El desplazamiento lo escribe el gesto como
425
+ custom property y se aplica con `translate` — una propiedad INDEPENDIENTE
426
+ del `transform` que anima la apertura (scale), así que no la pisa ni
427
+ dispara layout. `none` es el valor inicial: sin arrastrar, el panel queda
428
+ exactamente donde lo dejan co-overlay o el consumidor. */
429
+ .co-modal--movable {
430
+ translate: var(--co-modal-translate, none);
431
+ }
432
+
433
+ /* El header entero es la zona de agarre (no hay ícono de agarre).
434
+ `touch-action: none` para que el gesto táctil mueva en vez de scrollear, y
435
+ sin selección de texto para que arrastrar el título no lo pinte. */
436
+ .co-modal__header--movable {
437
+ cursor: grab;
438
+ touch-action: none;
439
+ user-select: none;
440
+ -webkit-user-select: none;
441
+ }
442
+
443
+ /* Los controles del header conservan su cursor: el ✕ no arrastra (el gesto lo
444
+ ignora, ver isInteractiveDragTarget) y no debe parecer que sí. */
445
+ .co-modal__header--movable .co-modal__close {
446
+ cursor: pointer;
447
+ }
448
+
449
+ /* Declarada DESPUÉS de --movable y con la misma especificidad: gana por orden
450
+ mientras dura el gesto. */
451
+ .co-modal__header--dragging {
452
+ cursor: grabbing;
453
+ }