@prolibu-suite/cobalt-core 0.10.4 → 0.11.1

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 (824) hide show
  1. package/README.md +12 -5
  2. package/custom-elements.json +7034 -1203
  3. package/dist/cjs/co-accordion.cjs.entry.js +3 -3
  4. package/dist/cjs/co-action-bar.cjs.entry.js +3 -3
  5. package/dist/cjs/co-app-shell.cjs.entry.js +3 -3
  6. package/dist/cjs/co-audio-player.cjs.entry.js +4 -4
  7. package/dist/cjs/co-autocomplete.cjs.entry.js +12 -5
  8. package/dist/cjs/co-avatar-group.cjs.entry.js +3 -3
  9. package/dist/cjs/co-avatar.cjs.entry.js +7 -4
  10. package/dist/cjs/co-badge.cjs.entry.js +2 -2
  11. package/dist/cjs/co-bottom-sheet.cjs.entry.js +5 -5
  12. package/dist/cjs/co-breadcrumb-item.cjs.entry.js +3 -3
  13. package/dist/cjs/co-breadcrumb.cjs.entry.js +2 -2
  14. package/dist/cjs/co-button-group.cjs.entry.js +4 -3
  15. package/dist/cjs/co-button.cjs.entry.js +9 -7
  16. package/dist/cjs/co-calendar-month_2.cjs.entry.js +16 -4
  17. package/dist/cjs/co-calendar_3.cjs.entry.js +76 -27
  18. package/dist/cjs/co-card.cjs.entry.js +3 -3
  19. package/dist/cjs/co-carousel-item.cjs.entry.js +2 -2
  20. package/dist/cjs/co-carousel.cjs.entry.js +6 -3
  21. package/dist/cjs/co-checkbox-group.cjs.entry.js +4 -4
  22. package/dist/cjs/co-checkbox.cjs.entry.js +13 -5
  23. package/dist/cjs/co-chip_2.cjs.entry.js +20 -7
  24. package/dist/cjs/co-color-area.cjs.entry.js +169 -0
  25. package/dist/cjs/co-color-picker.cjs.entry.js +5 -5
  26. package/dist/cjs/co-color-slider.cjs.entry.js +189 -0
  27. package/dist/cjs/co-column-picker.cjs.entry.js +23 -3
  28. package/dist/cjs/co-combobox.cjs.entry.js +5 -5
  29. package/dist/cjs/co-command-search.cjs.entry.js +5 -5
  30. package/dist/cjs/co-data-table-pagination.cjs.entry.js +5 -5
  31. package/dist/cjs/co-data-table.cjs.entry.js +3 -3
  32. package/dist/cjs/co-date-picker.cjs.entry.js +10 -2
  33. package/dist/cjs/co-date-range-picker.cjs.entry.js +11 -2
  34. package/dist/cjs/co-date-range.cjs.entry.js +8 -2
  35. package/dist/cjs/co-date-time-picker.cjs.entry.js +11 -4
  36. package/dist/cjs/co-document-editor.cjs.entry.js +1167 -0
  37. package/dist/cjs/co-drive-card.cjs.entry.js +2 -2
  38. package/dist/cjs/co-drop-zone.cjs.entry.js +2 -2
  39. package/dist/cjs/co-emoji-picker.cjs.entry.js +3 -3
  40. package/dist/cjs/co-empty-state.cjs.entry.js +3 -3
  41. package/dist/cjs/co-event-calendar.cjs.entry.js +5 -3
  42. package/dist/cjs/co-event-popover.cjs.entry.js +7 -3
  43. package/dist/cjs/co-fab.cjs.entry.js +7 -3
  44. package/dist/cjs/co-file-field.cjs.entry.js +12 -8
  45. package/dist/cjs/co-file-type-tile.cjs.entry.js +3 -3
  46. package/dist/cjs/co-gradient-bar.cjs.entry.js +220 -0
  47. package/dist/cjs/co-helper-text.cjs.entry.js +3 -3
  48. package/dist/cjs/co-icon-button.cjs.entry.js +48 -9
  49. package/dist/cjs/co-icon.cjs.entry.js +3 -3
  50. package/dist/cjs/co-input.cjs.entry.js +14 -8
  51. package/dist/cjs/co-json-field.cjs.entry.js +10 -5
  52. package/dist/cjs/{co-tooltip.cjs.entry.js → co-kbd_2.cjs.entry.js} +194 -6
  53. package/dist/cjs/co-lightbox.cjs.entry.js +5 -5
  54. package/dist/cjs/co-list-footer.cjs.entry.js +2 -2
  55. package/dist/cjs/co-list-item.cjs.entry.js +5 -5
  56. package/dist/cjs/co-loader.cjs.entry.js +1 -1
  57. package/dist/cjs/co-media-thumb.cjs.entry.js +3 -3
  58. package/dist/cjs/co-menu-divider.cjs.entry.js +3 -3
  59. package/dist/cjs/co-menu-item.cjs.entry.js +41 -43
  60. package/dist/cjs/co-menu.cjs.entry.js +81 -5
  61. package/dist/cjs/co-modal.cjs.entry.js +350 -7
  62. package/dist/cjs/co-navbar.cjs.entry.js +3 -3
  63. package/dist/cjs/co-number-field.cjs.entry.js +11 -5
  64. package/dist/cjs/co-overlay.cjs.entry.js +8 -4
  65. package/dist/cjs/co-page-header.cjs.entry.js +2 -2
  66. package/dist/cjs/co-phone-field.cjs.entry.js +3 -3
  67. package/dist/cjs/co-popover.cjs.entry.js +69 -6
  68. package/dist/cjs/co-progress-bar.cjs.entry.js +3 -3
  69. package/dist/cjs/co-progress-circle.cjs.entry.js +3 -3
  70. package/dist/cjs/co-provider-logo_2.cjs.entry.js +2 -2
  71. package/dist/cjs/co-radio-group.cjs.entry.js +4 -4
  72. package/dist/cjs/co-radio.cjs.entry.js +4 -4
  73. package/dist/cjs/co-rating.cjs.entry.js +11 -4
  74. package/dist/cjs/co-ref-field.cjs.entry.js +14 -5
  75. package/dist/cjs/co-rich-text-editor.cjs.entry.js +40 -92
  76. package/dist/cjs/co-rich-text-toolbar.cjs.entry.js +80 -20
  77. package/dist/cjs/co-rich-text-viewer.cjs.entry.js +9 -2
  78. package/dist/cjs/co-row.cjs.entry.js +3 -3
  79. package/dist/cjs/co-segmented-bar.cjs.entry.js +3 -3
  80. package/dist/cjs/co-select.cjs.entry.js +171 -29
  81. package/dist/cjs/co-separator.cjs.entry.js +2 -2
  82. package/dist/cjs/co-sidebar-nav.cjs.entry.js +20 -5
  83. package/dist/cjs/co-sidebar.cjs.entry.js +3 -3
  84. package/dist/cjs/co-slider.cjs.entry.js +209 -23
  85. package/dist/cjs/co-swatch-grid.cjs.entry.js +121 -0
  86. package/dist/cjs/co-switch.cjs.entry.js +5 -5
  87. package/dist/cjs/co-tab-group.cjs.entry.js +113 -4
  88. package/dist/cjs/co-tab.cjs.entry.js +15 -5
  89. package/dist/cjs/co-tags-field.cjs.entry.js +13 -8
  90. package/dist/cjs/co-textarea.cjs.entry.js +6 -6
  91. package/dist/cjs/co-tile.cjs.entry.js +61 -0
  92. package/dist/cjs/co-time-field.cjs.entry.js +5 -2
  93. package/dist/cjs/co-toast.cjs.entry.js +3 -3
  94. package/dist/cjs/co-toggle-button-group.cjs.entry.js +29 -5
  95. package/dist/cjs/co-toggle-button.cjs.entry.js +70 -6
  96. package/dist/cjs/co-transfer-list.cjs.entry.js +7 -3
  97. package/dist/cjs/co-tree-item.cjs.entry.js +110 -0
  98. package/dist/cjs/co-video.cjs.entry.js +11 -3
  99. package/dist/cjs/cobalt.cjs.js +2 -2
  100. package/dist/cjs/{color-CML2Cfdh.js → color-DQVrQGi0.js} +10 -5
  101. package/dist/cjs/{fieldChip-B6YIGU1V.js → fieldChip-C7MxxBVO.js} +1 -1
  102. package/dist/cjs/gradientStops-CMpH4fB_.js +153 -0
  103. package/dist/cjs/hsv-DpfSF3M2.js +95 -0
  104. package/dist/cjs/{index-MDAnKsze.js → index-bHoidDwv.js} +67 -27
  105. package/dist/cjs/index-oMHzCXm6.js +144 -0
  106. package/dist/cjs/loader.cjs.js +2 -2
  107. package/dist/cjs/{index-2kMmd5-a.js → pagination-DV43TRj9.js} +1780 -297
  108. package/dist/cjs/{positioning-CyatXeT_.js → positioning-CILo5esi.js} +45 -18
  109. package/dist/cjs/{requiredMark-D-t-IPN0.js → requiredMark-21yHvvZS.js} +1 -1
  110. package/dist/cjs/rich-text-host-ueFSfW-6.js +119 -0
  111. package/dist/cjs/{richTextI18n-B28uAhh4.js → richTextI18n-DXGIv5w1.js} +45 -0
  112. package/dist/cjs/submenu-RlaX6irw.js +65 -0
  113. package/dist/cjs/{toolbar-config-CYACt9hh.js → toolbar-config-DczL6C4W.js} +32 -0
  114. package/dist/cobalt/cobalt.css +1 -1
  115. package/dist/cobalt/cobalt.esm.js +1 -1
  116. package/dist/cobalt/{p-76249983.entry.js → p-019eed8e.entry.js} +1 -1
  117. package/dist/cobalt/p-04e3e1f6.entry.js +1 -0
  118. package/dist/cobalt/p-06689166.entry.js +1 -0
  119. package/dist/cobalt/p-0d046d98.entry.js +1 -0
  120. package/dist/cobalt/{p-28764b8e.entry.js → p-0e4c2234.entry.js} +1 -1
  121. package/dist/cobalt/{p-b90d41e4.entry.js → p-1348d5ca.entry.js} +1 -1
  122. package/dist/cobalt/{p-49834b8e.entry.js → p-13e5b724.entry.js} +1 -1
  123. package/dist/cobalt/p-1a5bec8c.entry.js +1 -0
  124. package/dist/cobalt/p-21b4a830.entry.js +1 -0
  125. package/dist/cobalt/p-2231bacc.entry.js +1 -0
  126. package/dist/cobalt/{p-b437eff6.entry.js → p-26cbdc33.entry.js} +1 -1
  127. package/dist/cobalt/{p-aa9400bf.entry.js → p-28cf05f3.entry.js} +1 -1
  128. package/dist/cobalt/{p-eadfd661.entry.js → p-358a6c2a.entry.js} +1 -1
  129. package/dist/cobalt/p-3b5024ce.entry.js +1 -0
  130. package/dist/cobalt/p-3b6efb79.entry.js +1 -0
  131. package/dist/cobalt/p-3d1a48e5.entry.js +1 -0
  132. package/dist/cobalt/p-47eca182.entry.js +1 -0
  133. package/dist/cobalt/{p-eb82358d.entry.js → p-4bcdd422.entry.js} +1 -1
  134. package/dist/cobalt/{p-17244412.entry.js → p-4d743628.entry.js} +1 -1
  135. package/dist/cobalt/{p-011dc80b.entry.js → p-4e81e580.entry.js} +1 -1
  136. package/dist/cobalt/{p-ee9a623d.entry.js → p-53a251ca.entry.js} +1 -1
  137. package/dist/cobalt/{p-11c5ce78.entry.js → p-56176aa0.entry.js} +1 -1
  138. package/dist/cobalt/{p-a32b20eb.entry.js → p-58ebb303.entry.js} +1 -1
  139. package/dist/cobalt/{p-4592ca00.entry.js → p-5a32b9a2.entry.js} +1 -1
  140. package/dist/cobalt/{p-2636b7eb.entry.js → p-5e678e88.entry.js} +1 -1
  141. package/dist/cobalt/{p-996f4e38.entry.js → p-60f948c4.entry.js} +1 -1
  142. package/dist/cobalt/p-63908a8d.entry.js +1 -0
  143. package/dist/cobalt/p-65c191aa.entry.js +1 -0
  144. package/dist/cobalt/{p-c2ebf0ec.entry.js → p-65d44da2.entry.js} +1 -1
  145. package/dist/cobalt/p-67a024dd.entry.js +1 -0
  146. package/dist/cobalt/{p-ee149fd2.entry.js → p-6974df59.entry.js} +1 -1
  147. package/dist/cobalt/{p-000a15b8.entry.js → p-69ecc933.entry.js} +1 -1
  148. package/dist/cobalt/p-6c1992c9.entry.js +1 -0
  149. package/dist/cobalt/{p-b821d9de.entry.js → p-6d4a660c.entry.js} +1 -1
  150. package/dist/cobalt/{p-f57dffca.entry.js → p-713637f2.entry.js} +1 -1
  151. package/dist/cobalt/{p-292b0389.entry.js → p-71ae1551.entry.js} +1 -1
  152. package/dist/cobalt/{p-91e73a92.entry.js → p-71dc8e4a.entry.js} +1 -1
  153. package/dist/cobalt/{p-aaca6dab.entry.js → p-71ee36a8.entry.js} +1 -1
  154. package/dist/cobalt/p-71fe35c4.entry.js +1 -0
  155. package/dist/cobalt/{p-08e42e00.entry.js → p-73313cbe.entry.js} +1 -1
  156. package/dist/cobalt/{p-7b5c555c.entry.js → p-763698b3.entry.js} +1 -1
  157. package/dist/cobalt/p-77e0d401.entry.js +1 -0
  158. package/dist/cobalt/{p-c91d4fc6.entry.js → p-78412feb.entry.js} +1 -1
  159. package/dist/cobalt/p-7beface1.entry.js +1 -0
  160. package/dist/cobalt/{p-f4e1c3c3.entry.js → p-7d1718ed.entry.js} +1 -1
  161. package/dist/cobalt/{p-826ee074.entry.js → p-7df18a52.entry.js} +1 -1
  162. package/dist/cobalt/p-7e678cbd.entry.js +1 -0
  163. package/dist/cobalt/{p-d0b2c418.entry.js → p-7fabd8ba.entry.js} +1 -1
  164. package/dist/cobalt/{p-23ab0cc5.entry.js → p-848f5ca4.entry.js} +1 -1
  165. package/dist/cobalt/{p-623cc195.entry.js → p-8680559b.entry.js} +1 -1
  166. package/dist/cobalt/p-87de5469.entry.js +1 -0
  167. package/dist/cobalt/p-87e62e2b.entry.js +1 -0
  168. package/dist/cobalt/{p-1861fe41.entry.js → p-8a2a2b6c.entry.js} +1 -1
  169. package/dist/cobalt/p-903237f9.entry.js +1 -0
  170. package/dist/cobalt/{p-2c9dba2f.entry.js → p-95f2ebb1.entry.js} +1 -1
  171. package/dist/cobalt/{p-24196410.entry.js → p-99df434b.entry.js} +1 -1
  172. package/dist/cobalt/{p-290066ef.entry.js → p-9adbab95.entry.js} +1 -1
  173. package/dist/cobalt/p-9dc01092.entry.js +1 -0
  174. package/dist/cobalt/p-9ee5bef3.entry.js +1 -0
  175. package/dist/cobalt/p-B1JT7us1.js +1 -0
  176. package/dist/cobalt/{p-BRbgGqLw.js → p-BVGGRfNG.js} +1 -1
  177. package/dist/cobalt/p-BmdKHBZP.js +1 -0
  178. package/dist/cobalt/p-BtliEQAT.js +1 -0
  179. package/dist/cobalt/p-COJdaKBU.js +1 -0
  180. package/dist/cobalt/{p-BAYo-RBt.js → p-CRxTFT_z.js} +1 -1
  181. package/dist/cobalt/p-CYN5B3IQ.js +1 -0
  182. package/dist/cobalt/p-DJkaRtbb.js +2 -0
  183. package/dist/cobalt/p-DU-KOQ8L.js +1 -0
  184. package/dist/cobalt/p-DXLeDZvr.js +1 -0
  185. package/dist/cobalt/{p-D_zA1Pv4.js → p-DgJovDdy.js} +1 -1
  186. package/dist/cobalt/p-RVQJEYxa.js +1 -0
  187. package/dist/cobalt/{p-ee2023da.entry.js → p-a27013e6.entry.js} +1 -1
  188. package/dist/cobalt/{p-2f9cbbd5.entry.js → p-a4eb298c.entry.js} +1 -1
  189. package/dist/cobalt/p-a56bd4a8.entry.js +1 -0
  190. package/dist/cobalt/{p-59963937.entry.js → p-a5eabecb.entry.js} +1 -1
  191. package/dist/cobalt/p-a5ee1fc2.entry.js +1 -0
  192. package/dist/cobalt/{p-fb2d1144.entry.js → p-a7cd61ce.entry.js} +1 -1
  193. package/dist/cobalt/{p-39a50e7f.entry.js → p-ad752791.entry.js} +1 -1
  194. package/dist/cobalt/{p-07416e31.entry.js → p-ae999b94.entry.js} +1 -1
  195. package/dist/cobalt/{p-4d65e713.entry.js → p-aed832d5.entry.js} +1 -1
  196. package/dist/cobalt/p-b2457431.entry.js +1 -0
  197. package/dist/cobalt/{p-6dd220e0.entry.js → p-b39a4999.entry.js} +1 -1
  198. package/dist/cobalt/p-b5dabdc3.entry.js +1 -0
  199. package/dist/cobalt/{p-8471abe2.entry.js → p-b67fb616.entry.js} +1 -1
  200. package/dist/cobalt/{p-f7eb1a40.entry.js → p-b9b73dcb.entry.js} +1 -1
  201. package/dist/cobalt/{p-f9a7b7c6.entry.js → p-ba39a965.entry.js} +1 -1
  202. package/dist/cobalt/{p-58d9b650.entry.js → p-be520bd5.entry.js} +1 -1
  203. package/dist/cobalt/{p-1dc55e43.entry.js → p-bee30373.entry.js} +1 -1
  204. package/dist/cobalt/{p-44c4e4a3.entry.js → p-c220362c.entry.js} +1 -1
  205. package/dist/cobalt/p-c4c997f3.entry.js +1 -0
  206. package/dist/cobalt/{p-a2462d7a.entry.js → p-c5464a98.entry.js} +1 -1
  207. package/dist/cobalt/p-c567533e.entry.js +1 -0
  208. package/dist/cobalt/{p-c30b4cb5.entry.js → p-cf5b91be.entry.js} +1 -1
  209. package/dist/cobalt/p-cfaaa684.entry.js +1 -0
  210. package/dist/cobalt/p-d00c3894.entry.js +1 -0
  211. package/dist/cobalt/p-d1e83525.entry.js +1 -0
  212. package/dist/cobalt/{p-44ea675f.entry.js → p-d5d8fa8b.entry.js} +1 -1
  213. package/dist/cobalt/p-d6215d80.entry.js +1 -0
  214. package/dist/cobalt/p-d6e7c258.entry.js +1 -0
  215. package/dist/cobalt/p-dabcbba7.entry.js +1 -0
  216. package/dist/cobalt/p-db623519.entry.js +1 -0
  217. package/dist/cobalt/{p-c7d7d7f7.entry.js → p-df529110.entry.js} +1 -1
  218. package/dist/cobalt/{p-1cc818ca.entry.js → p-ea24eea8.entry.js} +1 -1
  219. package/dist/cobalt/{p-d29bb0fa.entry.js → p-efb3cbb0.entry.js} +1 -1
  220. package/dist/cobalt/{p-f6691108.entry.js → p-f0898e21.entry.js} +1 -1
  221. package/dist/cobalt/{p-0c004735.entry.js → p-f2fa2ac0.entry.js} +1 -1
  222. package/dist/cobalt/p-f403eeec.entry.js +1 -0
  223. package/dist/cobalt/{p-e4264532.entry.js → p-f69804a6.entry.js} +1 -1
  224. package/dist/cobalt/p-xnrKkNWQ.js +1 -0
  225. package/dist/collection/collection-manifest.json +8 -0
  226. package/dist/collection/components/co-accordion/co-accordion.js +12 -2
  227. package/dist/collection/components/co-action-bar/co-action-bar.css +6 -0
  228. package/dist/collection/components/co-action-bar/co-action-bar.js +3 -2
  229. package/dist/collection/components/co-app-shell/co-app-shell.css +6 -0
  230. package/dist/collection/components/co-app-shell/co-app-shell.js +13 -2
  231. package/dist/collection/components/co-audio-player/co-audio-player.js +19 -7
  232. package/dist/collection/components/co-autocomplete/co-autocomplete.js +30 -17
  233. package/dist/collection/components/co-avatar/co-avatar.css +16 -2
  234. package/dist/collection/components/co-avatar/co-avatar.js +14 -4
  235. package/dist/collection/components/co-avatar-group/co-avatar-group.css +4 -0
  236. package/dist/collection/components/co-avatar-group/co-avatar-group.js +8 -3
  237. package/dist/collection/components/co-badge/co-badge.js +8 -1
  238. package/dist/collection/components/co-bottom-sheet/co-bottom-sheet.js +13 -4
  239. package/dist/collection/components/co-breadcrumb/co-breadcrumb.js +5 -1
  240. package/dist/collection/components/co-breadcrumb-item/co-breadcrumb-item.js +8 -2
  241. package/dist/collection/components/co-button/co-button.css +81 -6
  242. package/dist/collection/components/co-button/co-button.js +39 -11
  243. package/dist/collection/components/co-button-group/co-button-group.js +10 -3
  244. package/dist/collection/components/co-calendar/calendarMarks.js +40 -0
  245. package/dist/collection/components/co-calendar/co-calendar.css +19 -1
  246. package/dist/collection/components/co-calendar/co-calendar.js +84 -20
  247. package/dist/collection/components/co-calendar-month/co-calendar-month.js +1 -1
  248. package/dist/collection/components/co-calendar-timegrid/co-calendar-timegrid.js +36 -19
  249. package/dist/collection/components/co-card/co-card.js +11 -2
  250. package/dist/collection/components/co-carousel/co-carousel.css +10 -0
  251. package/dist/collection/components/co-carousel/co-carousel.js +17 -5
  252. package/dist/collection/components/co-carousel-item/co-carousel-item.js +1 -1
  253. package/dist/collection/components/co-checkbox/co-checkbox.css +43 -1
  254. package/dist/collection/components/co-checkbox/co-checkbox.js +39 -3
  255. package/dist/collection/components/co-checkbox-group/co-checkbox-group.js +9 -4
  256. package/dist/collection/components/co-chip/co-chip.css +9 -0
  257. package/dist/collection/components/co-chip/co-chip.js +15 -2
  258. package/dist/collection/components/co-color-area/co-color-area.css +87 -0
  259. package/dist/collection/components/co-color-area/co-color-area.js +342 -0
  260. package/dist/collection/components/co-color-picker/co-color-picker.js +4 -2
  261. package/dist/collection/components/co-color-slider/co-color-slider.css +115 -0
  262. package/dist/collection/components/co-color-slider/co-color-slider.js +354 -0
  263. package/dist/collection/components/co-column-picker/co-column-picker.js +51 -25
  264. package/dist/collection/components/co-combobox/co-combobox.js +18 -4
  265. package/dist/collection/components/co-command-search/co-command-search.js +19 -8
  266. package/dist/collection/components/co-data-table/co-data-table.js +8 -3
  267. package/dist/collection/components/co-data-table-pagination/co-data-table-pagination.js +16 -4
  268. package/dist/collection/components/co-date-field/co-date-field.js +19 -13
  269. package/dist/collection/components/co-date-picker/co-date-picker.js +38 -25
  270. package/dist/collection/components/co-date-range/co-date-range.js +19 -10
  271. package/dist/collection/components/co-date-range-picker/co-date-range-picker.js +44 -30
  272. package/dist/collection/components/co-date-time-picker/co-date-time-picker.js +31 -22
  273. package/dist/collection/components/co-document-editor/change-throttle.js +30 -0
  274. package/dist/collection/components/co-document-editor/co-document-editor.css +438 -0
  275. package/dist/collection/components/co-document-editor/co-document-editor.js +1549 -0
  276. package/dist/collection/components/co-document-editor/document-props.js +40 -0
  277. package/dist/collection/components/co-document-editor/header-tools.js +11 -0
  278. package/dist/collection/components/co-document-editor/image-bar.js +66 -0
  279. package/dist/collection/components/co-document-editor/page-styles.js +90 -0
  280. package/dist/collection/components/co-document-editor/zoom.js +45 -0
  281. package/dist/collection/components/co-drawer/co-drawer.css +5 -0
  282. package/dist/collection/components/co-drawer/co-drawer.js +13 -0
  283. package/dist/collection/components/co-drive-card/co-drive-card.js +14 -1
  284. package/dist/collection/components/co-drop-zone/co-drop-zone.js +7 -2
  285. package/dist/collection/components/co-emoji-picker/co-emoji-picker.css +4 -0
  286. package/dist/collection/components/co-emoji-picker/co-emoji-picker.js +11 -2
  287. package/dist/collection/components/co-empty-state/co-empty-state.js +4 -2
  288. package/dist/collection/components/co-event-calendar/co-event-calendar.js +16 -4
  289. package/dist/collection/components/co-event-popover/co-event-popover.js +18 -6
  290. package/dist/collection/components/co-fab/co-fab.css +8 -0
  291. package/dist/collection/components/co-fab/co-fab.js +17 -8
  292. package/dist/collection/components/co-file-field/co-file-field.js +16 -11
  293. package/dist/collection/components/co-file-type-tile/co-file-type-tile.js +9 -2
  294. package/dist/collection/components/co-gradient-bar/co-gradient-bar.css +143 -0
  295. package/dist/collection/components/co-gradient-bar/co-gradient-bar.js +412 -0
  296. package/dist/collection/components/co-helper-text/co-helper-text.js +4 -2
  297. package/dist/collection/components/co-icon/co-icon.js +6 -2
  298. package/dist/collection/components/co-icon-button/co-icon-button.css +104 -19
  299. package/dist/collection/components/co-icon-button/co-icon-button.js +125 -10
  300. package/dist/collection/components/co-input/co-input.css +125 -0
  301. package/dist/collection/components/co-input/co-input.js +48 -11
  302. package/dist/collection/components/co-json-field/co-json-field.js +19 -12
  303. package/dist/collection/components/co-kbd/co-kbd.css +99 -0
  304. package/dist/collection/components/co-kbd/co-kbd.js +298 -0
  305. package/dist/collection/components/co-lightbox/co-lightbox.js +4 -4
  306. package/dist/collection/components/co-list-footer/co-list-footer.js +4 -1
  307. package/dist/collection/components/co-list-item/co-list-item.js +7 -4
  308. package/dist/collection/components/co-loader/co-loader.js +5 -0
  309. package/dist/collection/components/co-media-thumb/co-media-thumb.js +9 -2
  310. package/dist/collection/components/co-menu/co-menu.css +70 -0
  311. package/dist/collection/components/co-menu/co-menu.js +146 -6
  312. package/dist/collection/components/co-menu-divider/co-menu-divider.css +21 -0
  313. package/dist/collection/components/co-menu-divider/co-menu-divider.js +2 -1
  314. package/dist/collection/components/co-menu-item/co-menu-item.css +56 -6
  315. package/dist/collection/components/co-menu-item/co-menu-item.js +60 -4
  316. package/dist/collection/components/co-modal/co-modal.css +218 -1
  317. package/dist/collection/components/co-modal/co-modal.js +354 -12
  318. package/dist/collection/components/co-navbar/co-navbar.css +7 -0
  319. package/dist/collection/components/co-navbar/co-navbar.js +4 -2
  320. package/dist/collection/components/co-number-field/co-number-field.js +29 -15
  321. package/dist/collection/components/co-option-list/co-option-list.css +102 -21
  322. package/dist/collection/components/co-option-list/co-option-list.js +37 -16
  323. package/dist/collection/components/co-overlay/co-overlay.css +4 -0
  324. package/dist/collection/components/co-overlay/co-overlay.js +17 -3
  325. package/dist/collection/components/co-page-header/co-page-header.js +4 -1
  326. package/dist/collection/components/co-phone-field/co-phone-field.js +1 -1
  327. package/dist/collection/components/co-popover/co-popover.css +20 -2
  328. package/dist/collection/components/co-popover/co-popover.js +148 -10
  329. package/dist/collection/components/co-progress-bar/co-progress-bar.js +5 -2
  330. package/dist/collection/components/co-progress-circle/co-progress-circle.js +5 -2
  331. package/dist/collection/components/co-provider-logo/co-provider-logo.js +3 -0
  332. package/dist/collection/components/co-radio/co-radio.js +11 -3
  333. package/dist/collection/components/co-radio-group/co-radio-group.js +9 -4
  334. package/dist/collection/components/co-rating/co-rating.js +25 -13
  335. package/dist/collection/components/co-ref-field/co-ref-field.css +14 -0
  336. package/dist/collection/components/co-ref-field/co-ref-field.js +55 -27
  337. package/dist/collection/components/co-rich-text-editor/co-rich-text-editor.js +66 -111
  338. package/dist/collection/components/co-rich-text-toolbar/co-rich-text-toolbar.css +12 -0
  339. package/dist/collection/components/co-rich-text-toolbar/co-rich-text-toolbar.js +127 -19
  340. package/dist/collection/components/co-rich-text-viewer/co-rich-text-viewer.js +16 -1
  341. package/dist/collection/components/co-row/co-row.js +5 -2
  342. package/dist/collection/components/co-segmented-bar/co-segmented-bar.js +9 -3
  343. package/dist/collection/components/co-select/co-select.css +207 -11
  344. package/dist/collection/components/co-select/co-select.js +198 -48
  345. package/dist/collection/components/co-select/virtualRows.js +57 -0
  346. package/dist/collection/components/co-separator/co-separator.js +8 -1
  347. package/dist/collection/components/co-sidebar/co-sidebar.js +10 -2
  348. package/dist/collection/components/co-sidebar-nav/co-sidebar-nav.css +15 -0
  349. package/dist/collection/components/co-sidebar-nav/co-sidebar-nav.js +20 -4
  350. package/dist/collection/components/co-skeleton/co-skeleton.js +4 -1
  351. package/dist/collection/components/co-slider/co-slider.css +155 -5
  352. package/dist/collection/components/co-slider/co-slider.js +263 -32
  353. package/dist/collection/components/co-swatch-grid/co-swatch-grid.css +56 -0
  354. package/dist/collection/components/co-swatch-grid/co-swatch-grid.js +293 -0
  355. package/dist/collection/components/co-switch/co-switch.css +4 -0
  356. package/dist/collection/components/co-switch/co-switch.js +12 -3
  357. package/dist/collection/components/co-tab/co-tab.css +60 -0
  358. package/dist/collection/components/co-tab/co-tab.js +44 -6
  359. package/dist/collection/components/co-tab-group/co-tab-group.css +24 -0
  360. package/dist/collection/components/co-tab-group/co-tab-group.js +133 -2
  361. package/dist/collection/components/co-tab-group/revealTab.js +26 -0
  362. package/dist/collection/components/co-tags-field/co-tags-field.js +21 -14
  363. package/dist/collection/components/co-textarea/co-textarea.js +4 -4
  364. package/dist/collection/components/co-tile/co-tile.css +63 -0
  365. package/dist/collection/components/co-tile/co-tile.js +167 -0
  366. package/dist/collection/components/co-time-field/co-time-field.js +9 -4
  367. package/dist/collection/components/co-toast/co-toast.css +11 -0
  368. package/dist/collection/components/co-toast/co-toast.js +13 -4
  369. package/dist/collection/components/co-toggle-button/co-toggle-button.css +106 -0
  370. package/dist/collection/components/co-toggle-button/co-toggle-button.js +91 -15
  371. package/dist/collection/components/co-toggle-button-group/co-toggle-button-group.css +21 -0
  372. package/dist/collection/components/co-toggle-button-group/co-toggle-button-group.js +41 -11
  373. package/dist/collection/components/co-tooltip/co-tooltip.css +36 -0
  374. package/dist/collection/components/co-tooltip/co-tooltip.js +61 -3
  375. package/dist/collection/components/co-transfer-list/co-transfer-list.js +19 -10
  376. package/dist/collection/components/co-tree-item/co-tree-item.css +235 -0
  377. package/dist/collection/components/co-tree-item/co-tree-item.js +355 -0
  378. package/dist/collection/components/co-tree-item/treeItemI18n.js +16 -0
  379. package/dist/collection/components/co-video/co-video.css +11 -0
  380. package/dist/collection/components/co-video/co-video.js +41 -22
  381. package/dist/collection/utils/color.js +9 -5
  382. package/dist/collection/utils/dragMove.js +95 -0
  383. package/dist/collection/utils/gradientBarI18n.js +24 -0
  384. package/dist/collection/utils/gradientStops.js +142 -0
  385. package/dist/collection/utils/hsv.js +114 -0
  386. package/dist/collection/utils/kbdI18n.js +29 -0
  387. package/dist/collection/utils/positioning.js +44 -18
  388. package/dist/collection/utils/rich-text-host.js +109 -0
  389. package/dist/collection/utils/richTextI18n.js +45 -0
  390. package/dist/collection/utils/submenu.js +23 -3
  391. package/dist/collection/utils/swatchGridI18n.js +14 -0
  392. package/dist/collection/utils/test/fake-block-layout.js +41 -0
  393. package/dist/collection/utils/test/prosemirror-dom-shim.js +17 -0
  394. package/dist/collection/utils/test/shared-contract-css.js +9 -0
  395. package/dist/components/co-accordion.js +1 -1
  396. package/dist/components/co-action-bar.js +1 -1
  397. package/dist/components/co-app-shell.js +1 -1
  398. package/dist/components/co-audio-player.js +1 -1
  399. package/dist/components/co-autocomplete.js +1 -1
  400. package/dist/components/co-avatar-group.js +1 -1
  401. package/dist/components/co-avatar.js +1 -1
  402. package/dist/components/co-badge.js +1 -1
  403. package/dist/components/co-bottom-sheet.js +1 -1
  404. package/dist/components/co-breadcrumb-item.js +1 -1
  405. package/dist/components/co-breadcrumb.js +1 -1
  406. package/dist/components/co-button-group.js +1 -1
  407. package/dist/components/co-button.js +1 -1
  408. package/dist/components/co-calendar-month.js +1 -1
  409. package/dist/components/co-calendar-timegrid.js +1 -1
  410. package/dist/components/co-calendar.js +1 -1
  411. package/dist/components/co-card.js +1 -1
  412. package/dist/components/co-carousel-item.js +1 -1
  413. package/dist/components/co-carousel.js +1 -1
  414. package/dist/components/co-checkbox-group.js +1 -1
  415. package/dist/components/co-checkbox.js +1 -1
  416. package/dist/components/co-chip.js +1 -1
  417. package/dist/components/co-color-area.d.ts +11 -0
  418. package/dist/components/co-color-area.js +1 -0
  419. package/dist/components/co-color-picker.js +1 -1
  420. package/dist/components/co-color-slider.d.ts +11 -0
  421. package/dist/components/co-color-slider.js +1 -0
  422. package/dist/components/co-column-picker.js +1 -1
  423. package/dist/components/co-combobox.js +1 -1
  424. package/dist/components/co-command-search.js +1 -1
  425. package/dist/components/co-data-table-pagination.js +1 -1
  426. package/dist/components/co-data-table.js +1 -1
  427. package/dist/components/co-date-field.js +1 -1
  428. package/dist/components/co-date-picker.js +1 -1
  429. package/dist/components/co-date-range-picker.js +1 -1
  430. package/dist/components/co-date-range.js +1 -1
  431. package/dist/components/co-date-time-picker.js +1 -1
  432. package/dist/components/co-document-editor.d.ts +11 -0
  433. package/dist/components/co-document-editor.js +1 -0
  434. package/dist/components/co-drawer.js +1 -1
  435. package/dist/components/co-drive-card.js +1 -1
  436. package/dist/components/co-drop-zone.js +1 -1
  437. package/dist/components/co-emoji-picker.js +1 -1
  438. package/dist/components/co-empty-state.js +1 -1
  439. package/dist/components/co-event-calendar.js +1 -1
  440. package/dist/components/co-event-popover.js +1 -1
  441. package/dist/components/co-fab.js +1 -1
  442. package/dist/components/co-file-field.js +1 -1
  443. package/dist/components/co-file-type-tile.js +1 -1
  444. package/dist/components/co-gradient-bar.d.ts +11 -0
  445. package/dist/components/co-gradient-bar.js +1 -0
  446. package/dist/components/co-helper-text.js +1 -1
  447. package/dist/components/co-icon-button.js +1 -1
  448. package/dist/components/co-icon.js +1 -1
  449. package/dist/components/co-input.js +1 -1
  450. package/dist/components/co-json-field.js +1 -1
  451. package/dist/components/co-kbd.d.ts +11 -0
  452. package/dist/components/co-kbd.js +1 -0
  453. package/dist/components/co-lightbox.js +1 -1
  454. package/dist/components/co-list-footer.js +1 -1
  455. package/dist/components/co-list-item.js +1 -1
  456. package/dist/components/co-media-thumb.js +1 -1
  457. package/dist/components/co-menu-divider.js +1 -1
  458. package/dist/components/co-menu-item.js +1 -1
  459. package/dist/components/co-menu.js +1 -1
  460. package/dist/components/co-modal.js +1 -1
  461. package/dist/components/co-navbar.js +1 -1
  462. package/dist/components/co-number-field.js +1 -1
  463. package/dist/components/co-option-list.js +1 -1
  464. package/dist/components/co-overlay.js +1 -1
  465. package/dist/components/co-page-header.js +1 -1
  466. package/dist/components/co-phone-field.js +1 -1
  467. package/dist/components/co-popover.js +1 -1
  468. package/dist/components/co-progress-bar.js +1 -1
  469. package/dist/components/co-progress-circle.js +1 -1
  470. package/dist/components/co-radio-group.js +1 -1
  471. package/dist/components/co-radio.js +1 -1
  472. package/dist/components/co-rating.js +1 -1
  473. package/dist/components/co-ref-field.js +1 -1
  474. package/dist/components/co-rich-text-editor.js +1 -1
  475. package/dist/components/co-rich-text-toolbar.js +1 -1
  476. package/dist/components/co-rich-text-viewer.js +1 -1
  477. package/dist/components/co-row.js +1 -1
  478. package/dist/components/co-segmented-bar.js +1 -1
  479. package/dist/components/co-select.js +1 -1
  480. package/dist/components/co-separator.js +1 -1
  481. package/dist/components/co-sidebar-nav.js +1 -1
  482. package/dist/components/co-sidebar.js +1 -1
  483. package/dist/components/co-skeleton.js +1 -1
  484. package/dist/components/co-slider.js +1 -1
  485. package/dist/components/co-swatch-grid.d.ts +11 -0
  486. package/dist/components/co-swatch-grid.js +1 -0
  487. package/dist/components/co-switch.js +1 -1
  488. package/dist/components/co-tab-group.js +1 -1
  489. package/dist/components/co-tab.js +1 -1
  490. package/dist/components/co-tags-field.js +1 -1
  491. package/dist/components/co-textarea.js +1 -1
  492. package/dist/components/co-tile.d.ts +11 -0
  493. package/dist/components/co-tile.js +1 -0
  494. package/dist/components/co-time-field.js +1 -1
  495. package/dist/components/co-toast.js +1 -1
  496. package/dist/components/co-toggle-button-group.js +1 -1
  497. package/dist/components/co-toggle-button.js +1 -1
  498. package/dist/components/co-tooltip.js +1 -1
  499. package/dist/components/co-transfer-list.js +1 -1
  500. package/dist/components/co-tree-item.d.ts +11 -0
  501. package/dist/components/co-tree-item.js +1 -0
  502. package/dist/components/co-video.js +1 -1
  503. package/dist/components/index.js +1 -1
  504. package/dist/components/p-8XzG8pzY.js +1 -0
  505. package/dist/components/p-9VoFSbIH.js +1 -0
  506. package/dist/components/p-B1JT7us1.js +1 -0
  507. package/dist/components/{p-Dc_Kbari.js → p-B3Egz082.js} +1 -1
  508. package/dist/components/p-B9wdMd_0.js +1 -0
  509. package/dist/components/p-BRZci8B3.js +1 -0
  510. package/dist/components/{p-BRbgGqLw.js → p-BVGGRfNG.js} +1 -1
  511. package/dist/components/{p-B56LX2SH.js → p-BVdCvEza.js} +1 -1
  512. package/dist/components/p-BdmzslA5.js +1 -0
  513. package/dist/components/p-BmdKHBZP.js +1 -0
  514. package/dist/components/p-BtliEQAT.js +1 -0
  515. package/dist/components/{p-CT2enQ6h.js → p-Bw_b_czs.js} +1 -1
  516. package/dist/components/{p-NNxjElcX.js → p-C4sZjIDj.js} +1 -1
  517. package/dist/components/{p-Nt4JJxbL.js → p-C6WHpL5X.js} +1 -1
  518. package/dist/components/p-COJdaKBU.js +1 -0
  519. package/dist/components/p-COozgrEk.js +1 -0
  520. package/dist/components/{p-BAYo-RBt.js → p-CRxTFT_z.js} +1 -1
  521. package/dist/components/{p-uxdXViMV.js → p-CiYPJW0B.js} +1 -1
  522. package/dist/components/p-Cnfd6Zze.js +1 -0
  523. package/dist/components/{p-BhCVadcA.js → p-CxWo3qDo.js} +1 -1
  524. package/dist/components/p-D4XP17VP.js +1 -0
  525. package/dist/components/{p-e5KibEs8.js → p-DJ468fPu.js} +1 -1
  526. package/dist/components/p-DU-KOQ8L.js +1 -0
  527. package/dist/components/p-DXLeDZvr.js +1 -0
  528. package/dist/components/{p-DvR45CLa.js → p-Dn2wblrA.js} +1 -1
  529. package/dist/components/p-Dnz99Ox_.js +1 -0
  530. package/dist/components/p-DsuFNmTI.js +1 -0
  531. package/dist/components/{p-Du_CgT5E.js → p-Du8EpQb-.js} +1 -1
  532. package/dist/components/{p-DFlJMEJ-.js → p-DymSqdlK.js} +1 -1
  533. package/dist/components/p-Hi57w2_2.js +1 -0
  534. package/dist/components/{p-DNJAIVfI.js → p-KK2vAKs-.js} +1 -1
  535. package/dist/components/p-RVQJEYxa.js +1 -0
  536. package/dist/components/p-TGRbLkLz.js +1 -0
  537. package/dist/components/p-VcrjNCew.js +1 -0
  538. package/dist/components/{p-Dxa7c4Ap.js → p-dnaee7fS.js} +1 -1
  539. package/dist/components/p-nrwDl_gx.js +1 -0
  540. package/dist/components/{p-P4HlMBlL.js → p-zJ3pjFzW.js} +1 -1
  541. package/dist/esm/co-accordion.entry.js +3 -3
  542. package/dist/esm/co-action-bar.entry.js +3 -3
  543. package/dist/esm/co-app-shell.entry.js +3 -3
  544. package/dist/esm/co-audio-player.entry.js +4 -4
  545. package/dist/esm/co-autocomplete.entry.js +12 -5
  546. package/dist/esm/co-avatar-group.entry.js +3 -3
  547. package/dist/esm/co-avatar.entry.js +7 -4
  548. package/dist/esm/co-badge.entry.js +2 -2
  549. package/dist/esm/co-bottom-sheet.entry.js +5 -5
  550. package/dist/esm/co-breadcrumb-item.entry.js +3 -3
  551. package/dist/esm/co-breadcrumb.entry.js +2 -2
  552. package/dist/esm/co-button-group.entry.js +4 -3
  553. package/dist/esm/co-button.entry.js +9 -7
  554. package/dist/esm/co-calendar-month_2.entry.js +16 -4
  555. package/dist/esm/co-calendar_3.entry.js +76 -27
  556. package/dist/esm/co-card.entry.js +3 -3
  557. package/dist/esm/co-carousel-item.entry.js +2 -2
  558. package/dist/esm/co-carousel.entry.js +6 -3
  559. package/dist/esm/co-checkbox-group.entry.js +4 -4
  560. package/dist/esm/co-checkbox.entry.js +13 -5
  561. package/dist/esm/co-chip_2.entry.js +20 -7
  562. package/dist/esm/co-color-area.entry.js +167 -0
  563. package/dist/esm/co-color-picker.entry.js +5 -5
  564. package/dist/esm/co-color-slider.entry.js +187 -0
  565. package/dist/esm/co-column-picker.entry.js +23 -3
  566. package/dist/esm/co-combobox.entry.js +5 -5
  567. package/dist/esm/co-command-search.entry.js +5 -5
  568. package/dist/esm/co-data-table-pagination.entry.js +5 -5
  569. package/dist/esm/co-data-table.entry.js +3 -3
  570. package/dist/esm/co-date-picker.entry.js +10 -2
  571. package/dist/esm/co-date-range-picker.entry.js +11 -2
  572. package/dist/esm/co-date-range.entry.js +8 -2
  573. package/dist/esm/co-date-time-picker.entry.js +11 -4
  574. package/dist/esm/co-document-editor.entry.js +1165 -0
  575. package/dist/esm/co-drive-card.entry.js +2 -2
  576. package/dist/esm/co-drop-zone.entry.js +2 -2
  577. package/dist/esm/co-emoji-picker.entry.js +3 -3
  578. package/dist/esm/co-empty-state.entry.js +3 -3
  579. package/dist/esm/co-event-calendar.entry.js +5 -3
  580. package/dist/esm/co-event-popover.entry.js +7 -3
  581. package/dist/esm/co-fab.entry.js +7 -3
  582. package/dist/esm/co-file-field.entry.js +12 -8
  583. package/dist/esm/co-file-type-tile.entry.js +3 -3
  584. package/dist/esm/co-gradient-bar.entry.js +218 -0
  585. package/dist/esm/co-helper-text.entry.js +3 -3
  586. package/dist/esm/co-icon-button.entry.js +48 -9
  587. package/dist/esm/co-icon.entry.js +3 -3
  588. package/dist/esm/co-input.entry.js +14 -8
  589. package/dist/esm/co-json-field.entry.js +10 -5
  590. package/dist/esm/{co-tooltip.entry.js → co-kbd_2.entry.js} +194 -7
  591. package/dist/esm/co-lightbox.entry.js +5 -5
  592. package/dist/esm/co-list-footer.entry.js +2 -2
  593. package/dist/esm/co-list-item.entry.js +5 -5
  594. package/dist/esm/co-loader.entry.js +1 -1
  595. package/dist/esm/co-media-thumb.entry.js +3 -3
  596. package/dist/esm/co-menu-divider.entry.js +3 -3
  597. package/dist/esm/co-menu-item.entry.js +39 -41
  598. package/dist/esm/co-menu.entry.js +81 -5
  599. package/dist/esm/co-modal.entry.js +350 -7
  600. package/dist/esm/co-navbar.entry.js +3 -3
  601. package/dist/esm/co-number-field.entry.js +11 -5
  602. package/dist/esm/co-overlay.entry.js +8 -4
  603. package/dist/esm/co-page-header.entry.js +2 -2
  604. package/dist/esm/co-phone-field.entry.js +3 -3
  605. package/dist/esm/co-popover.entry.js +69 -6
  606. package/dist/esm/co-progress-bar.entry.js +3 -3
  607. package/dist/esm/co-progress-circle.entry.js +3 -3
  608. package/dist/esm/co-provider-logo_2.entry.js +2 -2
  609. package/dist/esm/co-radio-group.entry.js +4 -4
  610. package/dist/esm/co-radio.entry.js +4 -4
  611. package/dist/esm/co-rating.entry.js +11 -4
  612. package/dist/esm/co-ref-field.entry.js +14 -5
  613. package/dist/esm/co-rich-text-editor.entry.js +40 -92
  614. package/dist/esm/co-rich-text-toolbar.entry.js +80 -20
  615. package/dist/esm/co-rich-text-viewer.entry.js +9 -2
  616. package/dist/esm/co-row.entry.js +3 -3
  617. package/dist/esm/co-segmented-bar.entry.js +3 -3
  618. package/dist/esm/co-select.entry.js +171 -29
  619. package/dist/esm/co-separator.entry.js +2 -2
  620. package/dist/esm/co-sidebar-nav.entry.js +20 -5
  621. package/dist/esm/co-sidebar.entry.js +3 -3
  622. package/dist/esm/co-slider.entry.js +209 -23
  623. package/dist/esm/co-swatch-grid.entry.js +119 -0
  624. package/dist/esm/co-switch.entry.js +5 -5
  625. package/dist/esm/co-tab-group.entry.js +113 -4
  626. package/dist/esm/co-tab.entry.js +15 -5
  627. package/dist/esm/co-tags-field.entry.js +13 -8
  628. package/dist/esm/co-textarea.entry.js +6 -6
  629. package/dist/esm/co-tile.entry.js +59 -0
  630. package/dist/esm/co-time-field.entry.js +5 -2
  631. package/dist/esm/co-toast.entry.js +3 -3
  632. package/dist/esm/co-toggle-button-group.entry.js +29 -5
  633. package/dist/esm/co-toggle-button.entry.js +70 -6
  634. package/dist/esm/co-transfer-list.entry.js +7 -3
  635. package/dist/esm/co-tree-item.entry.js +108 -0
  636. package/dist/esm/co-video.entry.js +11 -3
  637. package/dist/esm/cobalt.js +3 -3
  638. package/dist/esm/{color-BRbgGqLw.js → color-BVGGRfNG.js} +10 -6
  639. package/dist/esm/{fieldChip-uyggU8VV.js → fieldChip-B2ctp2m6.js} +1 -1
  640. package/dist/esm/gradientStops-DDK0y8ra.js +145 -0
  641. package/dist/esm/hsv-COJdaKBU.js +90 -0
  642. package/dist/esm/index-Cpo8HTwr.js +142 -0
  643. package/dist/esm/{index-DH5lfRNj.js → index-DJkaRtbb.js} +67 -28
  644. package/dist/esm/loader.js +3 -3
  645. package/dist/esm/{index-BBIYyvq-.js → pagination-D9OfZUnY.js} +1728 -297
  646. package/dist/esm/{positioning-DFHRS9cJ.js → positioning-BtliEQAT.js} +45 -19
  647. package/dist/esm/{requiredMark-BCJUuZvC.js → requiredMark-D5C5NzOE.js} +1 -1
  648. package/dist/esm/rich-text-host-BmdKHBZP.js +111 -0
  649. package/dist/esm/{richTextI18n-BYKAgwq3.js → richTextI18n-xnrKkNWQ.js} +45 -0
  650. package/dist/esm/submenu-DU-KOQ8L.js +57 -0
  651. package/dist/esm/{toolbar-config-BAYo-RBt.js → toolbar-config-CRxTFT_z.js} +32 -0
  652. package/dist/types/components/co-accordion/co-accordion.d.ts +10 -0
  653. package/dist/types/components/co-action-bar/co-action-bar.d.ts +1 -0
  654. package/dist/types/components/co-app-shell/co-app-shell.d.ts +11 -0
  655. package/dist/types/components/co-audio-player/co-audio-player.d.ts +16 -0
  656. package/dist/types/components/co-autocomplete/co-autocomplete.d.ts +21 -0
  657. package/dist/types/components/co-avatar/co-avatar.d.ts +11 -2
  658. package/dist/types/components/co-avatar-group/co-avatar-group.d.ts +5 -0
  659. package/dist/types/components/co-badge/co-badge.d.ts +7 -0
  660. package/dist/types/components/co-bottom-sheet/co-bottom-sheet.d.ts +9 -0
  661. package/dist/types/components/co-breadcrumb/co-breadcrumb.d.ts +4 -0
  662. package/dist/types/components/co-breadcrumb-item/co-breadcrumb-item.d.ts +6 -0
  663. package/dist/types/components/co-button/co-button.d.ts +12 -4
  664. package/dist/types/components/co-button-group/co-button-group.d.ts +7 -0
  665. package/dist/types/components/co-calendar/calendarMarks.d.ts +15 -0
  666. package/dist/types/components/co-calendar/co-calendar.d.ts +18 -0
  667. package/dist/types/components/co-calendar-timegrid/co-calendar-timegrid.d.ts +23 -0
  668. package/dist/types/components/co-card/co-card.d.ts +9 -0
  669. package/dist/types/components/co-carousel/co-carousel.d.ts +12 -0
  670. package/dist/types/components/co-checkbox/co-checkbox.d.ts +15 -0
  671. package/dist/types/components/co-checkbox-group/co-checkbox-group.d.ts +5 -0
  672. package/dist/types/components/co-chip/co-chip.d.ts +13 -0
  673. package/dist/types/components/co-color-area/co-color-area.d.ts +65 -0
  674. package/dist/types/components/co-color-picker/co-color-picker.d.ts +2 -0
  675. package/dist/types/components/co-color-slider/co-color-slider.d.ts +62 -0
  676. package/dist/types/components/co-column-picker/co-column-picker.d.ts +32 -0
  677. package/dist/types/components/co-combobox/co-combobox.d.ts +14 -0
  678. package/dist/types/components/co-command-search/co-command-search.d.ts +15 -0
  679. package/dist/types/components/co-data-table/co-data-table.d.ts +5 -0
  680. package/dist/types/components/co-data-table-pagination/co-data-table-pagination.d.ts +12 -0
  681. package/dist/types/components/co-date-field/co-date-field.d.ts +11 -0
  682. package/dist/types/components/co-date-picker/co-date-picker.d.ts +30 -0
  683. package/dist/types/components/co-date-range/co-date-range.d.ts +12 -0
  684. package/dist/types/components/co-date-range-picker/co-date-range-picker.d.ts +33 -0
  685. package/dist/types/components/co-date-time-picker/co-date-time-picker.d.ts +22 -1
  686. package/dist/types/components/co-document-editor/change-throttle.d.ts +9 -0
  687. package/dist/types/components/co-document-editor/co-document-editor.d.ts +284 -0
  688. package/dist/types/components/co-document-editor/document-props.d.ts +6 -0
  689. package/dist/types/components/co-document-editor/header-tools.d.ts +11 -0
  690. package/dist/types/components/co-document-editor/image-bar.d.ts +50 -0
  691. package/dist/types/components/co-document-editor/page-styles.d.ts +1 -0
  692. package/dist/types/components/co-document-editor/zoom.d.ts +26 -0
  693. package/dist/types/components/co-drawer/co-drawer.d.ts +13 -0
  694. package/dist/types/components/co-drive-card/co-drive-card.d.ts +13 -0
  695. package/dist/types/components/co-drop-zone/co-drop-zone.d.ts +6 -1
  696. package/dist/types/components/co-emoji-picker/co-emoji-picker.d.ts +9 -0
  697. package/dist/types/components/co-empty-state/co-empty-state.d.ts +2 -0
  698. package/dist/types/components/co-event-calendar/co-event-calendar.d.ts +12 -16
  699. package/dist/types/components/co-event-popover/co-event-popover.d.ts +13 -0
  700. package/dist/types/components/co-fab/co-fab.d.ts +11 -0
  701. package/dist/types/components/co-file-field/co-file-field.d.ts +6 -0
  702. package/dist/types/components/co-file-type-tile/co-file-type-tile.d.ts +7 -0
  703. package/dist/types/components/co-gradient-bar/co-gradient-bar.d.ts +77 -0
  704. package/dist/types/components/co-helper-text/co-helper-text.d.ts +2 -0
  705. package/dist/types/components/co-icon/co-icon.d.ts +4 -0
  706. package/dist/types/components/co-icon-button/co-icon-button.d.ts +39 -2
  707. package/dist/types/components/co-input/co-input.d.ts +25 -5
  708. package/dist/types/components/co-json-field/co-json-field.d.ts +11 -0
  709. package/dist/types/components/co-kbd/co-kbd.d.ts +50 -0
  710. package/dist/types/components/co-list-footer/co-list-footer.d.ts +3 -0
  711. package/dist/types/components/co-list-item/co-list-item.d.ts +3 -0
  712. package/dist/types/components/co-loader/co-loader.d.ts +5 -0
  713. package/dist/types/components/co-media-thumb/co-media-thumb.d.ts +7 -0
  714. package/dist/types/components/co-menu/co-menu.d.ts +42 -1
  715. package/dist/types/components/co-menu-divider/co-menu-divider.d.ts +1 -0
  716. package/dist/types/components/co-menu-item/co-menu-item.d.ts +19 -0
  717. package/dist/types/components/co-modal/co-modal.d.ts +126 -5
  718. package/dist/types/components/co-navbar/co-navbar.d.ts +2 -0
  719. package/dist/types/components/co-number-field/co-number-field.d.ts +20 -0
  720. package/dist/types/components/co-option-list/co-option-list.d.ts +29 -1
  721. package/dist/types/components/co-option-list/optionListLogic.d.ts +3 -0
  722. package/dist/types/components/co-overlay/co-overlay.d.ts +10 -0
  723. package/dist/types/components/co-page-header/co-page-header.d.ts +3 -0
  724. package/dist/types/components/co-popover/co-popover.d.ts +51 -0
  725. package/dist/types/components/co-progress-bar/co-progress-bar.d.ts +3 -0
  726. package/dist/types/components/co-progress-circle/co-progress-circle.d.ts +3 -0
  727. package/dist/types/components/co-provider-logo/co-provider-logo.d.ts +3 -0
  728. package/dist/types/components/co-radio/co-radio.d.ts +8 -0
  729. package/dist/types/components/co-radio-group/co-radio-group.d.ts +5 -0
  730. package/dist/types/components/co-rating/co-rating.d.ts +15 -0
  731. package/dist/types/components/co-ref-field/co-ref-field.d.ts +42 -0
  732. package/dist/types/components/co-rich-text-editor/co-rich-text-editor.d.ts +31 -5
  733. package/dist/types/components/co-rich-text-toolbar/co-rich-text-toolbar.d.ts +20 -2
  734. package/dist/types/components/co-rich-text-viewer/co-rich-text-viewer.d.ts +8 -0
  735. package/dist/types/components/co-row/co-row.d.ts +3 -0
  736. package/dist/types/components/co-segmented-bar/co-segmented-bar.d.ts +6 -0
  737. package/dist/types/components/co-select/co-select.d.ts +73 -5
  738. package/dist/types/components/co-select/virtualRows.d.ts +44 -0
  739. package/dist/types/components/co-separator/co-separator.d.ts +7 -0
  740. package/dist/types/components/co-sidebar/co-sidebar.d.ts +8 -0
  741. package/dist/types/components/co-sidebar-nav/co-sidebar-nav.d.ts +1 -0
  742. package/dist/types/components/co-skeleton/co-skeleton.d.ts +3 -0
  743. package/dist/types/components/co-slider/co-slider.d.ts +160 -1
  744. package/dist/types/components/co-swatch-grid/co-swatch-grid.d.ts +38 -0
  745. package/dist/types/components/co-switch/co-switch.d.ts +9 -0
  746. package/dist/types/components/co-tab/co-tab.d.ts +20 -2
  747. package/dist/types/components/co-tab-group/co-tab-group.d.ts +46 -0
  748. package/dist/types/components/co-tab-group/revealTab.d.ts +29 -0
  749. package/dist/types/components/co-tags-field/co-tags-field.d.ts +11 -0
  750. package/dist/types/components/co-tile/co-tile.d.ts +45 -0
  751. package/dist/types/components/co-time-field/co-time-field.d.ts +5 -0
  752. package/dist/types/components/co-toast/co-toast.d.ts +9 -0
  753. package/dist/types/components/co-toggle-button/co-toggle-button.d.ts +45 -2
  754. package/dist/types/components/co-toggle-button-group/co-toggle-button-group.d.ts +30 -2
  755. package/dist/types/components/co-tooltip/co-tooltip.d.ts +22 -0
  756. package/dist/types/components/co-transfer-list/co-transfer-list.d.ts +12 -0
  757. package/dist/types/components/co-tree-item/co-tree-item.d.ts +75 -0
  758. package/dist/types/components/co-tree-item/treeItemI18n.d.ts +6 -0
  759. package/dist/types/components/co-video/co-video.d.ts +31 -0
  760. package/dist/types/components.d.ts +3905 -85
  761. package/dist/types/utils/color.d.ts +9 -1
  762. package/dist/types/utils/dragMove.d.ts +63 -0
  763. package/dist/types/utils/gradientBarI18n.d.ts +8 -0
  764. package/dist/types/utils/gradientStops.d.ts +63 -0
  765. package/dist/types/utils/hsv.d.ts +44 -0
  766. package/dist/types/utils/kbdI18n.d.ts +25 -0
  767. package/dist/types/utils/positioning.d.ts +24 -0
  768. package/dist/types/utils/rich-text-host.d.ts +41 -0
  769. package/dist/types/utils/richTextI18n.d.ts +15 -0
  770. package/dist/types/utils/submenu.d.ts +16 -2
  771. package/dist/types/utils/swatchGridI18n.d.ts +6 -0
  772. package/dist/types/utils/test/fake-block-layout.d.ts +7 -0
  773. package/dist/types/utils/test/prosemirror-dom-shim.d.ts +1 -0
  774. package/dist/types/utils/test/shared-contract-css.d.ts +9 -0
  775. package/package.json +5 -5
  776. package/dist/cobalt/p-0678c797.entry.js +0 -1
  777. package/dist/cobalt/p-1d3a79af.entry.js +0 -1
  778. package/dist/cobalt/p-216a63ee.entry.js +0 -1
  779. package/dist/cobalt/p-3d31c575.entry.js +0 -1
  780. package/dist/cobalt/p-416795f5.entry.js +0 -1
  781. package/dist/cobalt/p-56551580.entry.js +0 -1
  782. package/dist/cobalt/p-58137c9e.entry.js +0 -1
  783. package/dist/cobalt/p-5a3e4c81.entry.js +0 -1
  784. package/dist/cobalt/p-5c756787.entry.js +0 -1
  785. package/dist/cobalt/p-67f3b9d6.entry.js +0 -1
  786. package/dist/cobalt/p-6a4f3179.entry.js +0 -1
  787. package/dist/cobalt/p-71cbc53c.entry.js +0 -1
  788. package/dist/cobalt/p-72e52af7.entry.js +0 -1
  789. package/dist/cobalt/p-8530ad16.entry.js +0 -1
  790. package/dist/cobalt/p-8a74bf7d.entry.js +0 -1
  791. package/dist/cobalt/p-8e05b979.entry.js +0 -1
  792. package/dist/cobalt/p-8ebc0c12.entry.js +0 -1
  793. package/dist/cobalt/p-8f2199ff.entry.js +0 -1
  794. package/dist/cobalt/p-9246e09c.entry.js +0 -1
  795. package/dist/cobalt/p-99a655f6.entry.js +0 -1
  796. package/dist/cobalt/p-BYKAgwq3.js +0 -1
  797. package/dist/cobalt/p-CJW9H3Gi.js +0 -1
  798. package/dist/cobalt/p-DFHRS9cJ.js +0 -1
  799. package/dist/cobalt/p-DH5lfRNj.js +0 -2
  800. package/dist/cobalt/p-a1b422ca.entry.js +0 -1
  801. package/dist/cobalt/p-ade07307.entry.js +0 -1
  802. package/dist/cobalt/p-b0762fd8.entry.js +0 -1
  803. package/dist/cobalt/p-b698188c.entry.js +0 -1
  804. package/dist/cobalt/p-bde32f8b.entry.js +0 -1
  805. package/dist/cobalt/p-d375014b.entry.js +0 -1
  806. package/dist/cobalt/p-db805569.entry.js +0 -1
  807. package/dist/cobalt/p-e3aae282.entry.js +0 -1
  808. package/dist/cobalt/p-e49a564c.entry.js +0 -1
  809. package/dist/cobalt/p-ef301976.entry.js +0 -1
  810. package/dist/cobalt/p-fMqVDypp.js +0 -1
  811. package/dist/components/p-2EOI1nrz.js +0 -1
  812. package/dist/components/p-7TncUlLN.js +0 -1
  813. package/dist/components/p-B4NCaKrR.js +0 -1
  814. package/dist/components/p-BGDqldEg.js +0 -1
  815. package/dist/components/p-BJh68Jqe.js +0 -1
  816. package/dist/components/p-BrAFTkAn.js +0 -1
  817. package/dist/components/p-Bsh0JMGf.js +0 -1
  818. package/dist/components/p-CJW9H3Gi.js +0 -1
  819. package/dist/components/p-CWCYYQrF.js +0 -1
  820. package/dist/components/p-D9T7zKeL.js +0 -1
  821. package/dist/components/p-DFHRS9cJ.js +0 -1
  822. package/dist/components/p-DTPYZwaZ.js +0 -1
  823. package/dist/components/p-Dcg4krSX.js +0 -1
  824. package/dist/components/p-Dh8ffSjK.js +0 -1
@@ -1,10 +1,106 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-MDAnKsze.js');
3
+ var index = require('./index-bHoidDwv.js');
4
4
  var overlayAfterClose = require('./overlayAfterClose-BdeXrhVY.js');
5
5
  var slotContent = require('./slotContent-Bm9RcM_Q.js');
6
6
 
7
- const coModalCss = () => `.co-sq-elevation{border-radius:var(--co-sq-r);corner-shape:squircle;box-shadow:var(--co-sq-shadow)}.co-sq-clip{overflow:hidden;border-radius:var(--co-sq-r);corner-shape:squircle}@supports not (corner-shape: squircle){.co-sq-elevation{box-shadow:none}.co-sq-elevation-fallback{filter:var(--co-sq-drop-shadow)}.co-sq-clip{border-radius:0;--co-sq-tl:url("data:image/svg+xml,<svg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 100 100%27 preserveAspectRatio=%27none%27><path d=%27M100 0L97.5 0L95 0L92.5 0L90 0L87.5 0.01L85 0.01L82.5 0.02L80 0.04L77.5 0.06L75 0.1L72.5 0.14L70 0.2L67.5 0.28L65 0.38L62.5 0.5L60 0.65L57.5 0.83L55 1.04L52.5 1.3L50 1.6L47.5 1.96L45 2.37L42.5 2.85L40 3.41L37.5 4.05L35 4.8L32.5 5.65L30 6.63L27.5 7.77L25 9.07L22.5 10.58L20 12.34L17.5 14.41L15 16.85L12.5 19.79L10 23.42L7.5 28.06L5 34.37L2.5 44.29L0 100L100 100Z%27 fill=%27%23fff%27/></svg>");--co-sq-tr:url("data:image/svg+xml,<svg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 100 100%27 preserveAspectRatio=%27none%27><path d=%27M0 0L2.5 0L5 0L7.5 0L10 0L12.5 0.01L15 0.01L17.5 0.02L20 0.04L22.5 0.06L25 0.1L27.5 0.14L30 0.2L32.5 0.28L35 0.38L37.5 0.5L40 0.65L42.5 0.83L45 1.04L47.5 1.3L50 1.6L52.5 1.96L55 2.37L57.5 2.85L60 3.41L62.5 4.05L65 4.8L67.5 5.65L70 6.63L72.5 7.77L75 9.07L77.5 10.58L80 12.34L82.5 14.41L85 16.85L87.5 19.79L90 23.42L92.5 28.06L95 34.37L97.5 44.29L100 100L0 100Z%27 fill=%27%23fff%27/></svg>");--co-sq-bl:url("data:image/svg+xml,<svg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 100 100%27 preserveAspectRatio=%27none%27><path d=%27M0 0L2.5 55.71L5 65.63L7.5 71.94L10 76.58L12.5 80.21L15 83.15L17.5 85.59L20 87.66L22.5 89.42L25 90.93L27.5 92.23L30 93.37L32.5 94.35L35 95.2L37.5 95.95L40 96.59L42.5 97.15L45 97.63L47.5 98.04L50 98.4L52.5 98.7L55 98.96L57.5 99.17L60 99.35L62.5 99.5L65 99.62L67.5 99.72L70 99.8L72.5 99.86L75 99.9L77.5 99.94L80 99.96L82.5 99.98L85 99.99L87.5 99.99L90 100L92.5 100L95 100L97.5 100L100 100L100 0Z%27 fill=%27%23fff%27/></svg>");--co-sq-br:url("data:image/svg+xml,<svg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 100 100%27 preserveAspectRatio=%27none%27><path d=%27M100 0L97.5 55.71L95 65.63L92.5 71.94L90 76.58L87.5 80.21L85 83.15L82.5 85.59L80 87.66L77.5 89.42L75 90.93L72.5 92.23L70 93.37L67.5 94.35L65 95.2L62.5 95.95L60 96.59L57.5 97.15L55 97.63L52.5 98.04L50 98.4L47.5 98.7L45 98.96L42.5 99.17L40 99.35L37.5 99.5L35 99.62L32.5 99.72L30 99.8L27.5 99.86L25 99.9L22.5 99.94L20 99.96L17.5 99.98L15 99.99L12.5 99.99L10 100L7.5 100L5 100L2.5 100L0 100L0 0Z%27 fill=%27%23fff%27/></svg>");-webkit-mask:var(--co-sq-tl) top left / var(--co-sq-r) var(--co-sq-r) no-repeat, var(--co-sq-tr) top right / var(--co-sq-r) var(--co-sq-r) no-repeat, var(--co-sq-bl) bottom left / var(--co-sq-r) var(--co-sq-r) no-repeat, var(--co-sq-br) bottom right / var(--co-sq-r) var(--co-sq-r) no-repeat, linear-gradient(#fff 0 0) center / 100% calc(100% - 2 * var(--co-sq-r) + 2px) no-repeat, linear-gradient(#fff 0 0) center / calc(100% - 2 * var(--co-sq-r) + 2px) 100% no-repeat;mask:var(--co-sq-tl) top left / var(--co-sq-r) var(--co-sq-r) no-repeat, var(--co-sq-tr) top right / var(--co-sq-r) var(--co-sq-r) no-repeat, var(--co-sq-bl) bottom left / var(--co-sq-r) var(--co-sq-r) no-repeat, var(--co-sq-br) bottom right / var(--co-sq-r) var(--co-sq-r) no-repeat, linear-gradient(#fff 0 0) center / 100% calc(100% - 2 * var(--co-sq-r) + 2px) no-repeat, linear-gradient(#fff 0 0) center / calc(100% - 2 * var(--co-sq-r) + 2px) 100% no-repeat}}:host{display:contents;--co-overlay-blur:8px;--co-overlay-bg:rgba(31, 28, 27, 0.35)}.co-modal__frame{display:flex;contain:layout;--co-sq-drop-shadow:drop-shadow(0 1px 2px rgba(31, 28, 27, 0.06)) drop-shadow(0 14px 34px rgba(31, 28, 27, 0.16))}.co-modal{display:flex;flex-direction:column;background:var(--co-semantic-surface-secondary);--co-modal-r:var(--co-border-radius-xl);--co-sq-r:var(--co-modal-r);--co-sq-shadow:0 1px 4px rgba(31, 28, 27, 0.06), 0 14px 68px rgba(31, 28, 27, 0.16);max-width:540px;width:90vw;max-height:80vh;font-family:var(--co-font-family-primary);transform:scale(0.96);opacity:0;transition:transform var(--co-motion-duration-fast) var(--co-motion-ease-in), opacity var(--co-motion-duration-fast) var(--co-motion-ease-in)}.co-modal--sm{max-width:400px}.co-modal--lg{max-width:680px}.co-modal--full{max-width:min(1400px, 95vw);width:95vw;height:92vh;max-height:92vh}.co-modal--full .co-modal__body{flex:1;min-height:0;padding:0;overflow:hidden}.co-modal--open{transform:scale(1);opacity:1;transition:transform var(--co-motion-duration-base) var(--co-motion-ease-out), opacity var(--co-motion-duration-base) var(--co-motion-ease-out)}.co-modal__header{display:flex;align-items:flex-start;gap:var(--co-spacing-md);padding:var(--co-spacing-xl) var(--co-spacing-xl) var(--co-spacing-md)}.co-modal__header-text{display:flex;flex-direction:column;gap:var(--co-spacing-sm);flex:1}.co-modal__heading{margin:0;font-size:var(--co-font-size-20);font-weight:700;color:var(--co-semantic-text-default);line-height:1.3}.co-modal__description{margin:0;font-size:var(--co-font-size-14);color:var(--co-semantic-text-secondary);line-height:1.5}.co-modal__close{display:flex;align-items:center;justify-content:center;padding:var(--co-spacing-xs);margin:0;border:none;background:transparent;cursor:pointer;color:var(--co-semantic-text-muted);border-radius:var(--co-border-radius-sm);flex-shrink:0;transition:background var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-modal__close:hover{background:var(--co-semantic-surface-hover)}.co-modal__body{padding:var(--co-spacing-lg) var(--co-spacing-xl);overflow-y:auto;overscroll-behavior:contain;font-size:var(--co-font-size-14);color:var(--co-semantic-text-secondary);line-height:1.6;border-top:1px solid var(--co-semantic-border-default)}.co-modal__body:empty{display:none}.co-modal__footer{display:flex;justify-content:flex-end;gap:var(--co-spacing-md);padding:var(--co-spacing-lg) var(--co-spacing-xl) var(--co-spacing-xl);border-top:1px solid var(--co-semantic-border-default);--co-button-radius:var(--co-border-radius-xs)}.co-modal__footer--empty{display:none}.co-modal--no-dividers .co-modal__footer{border-top:none}.co-modal--no-header-divider .co-modal__body{border-top:none;padding-top:0}`;
7
+ /**
8
+ * Núcleo puro de "arrastrar para mover un panel flotante" (Task D1).
9
+ *
10
+ * Solo aritmética: el desplazamiento acumulado del gesto y su acotado al
11
+ * viewport. Quien lo use aporta la cáscara (pointer events, escritura del
12
+ * estilo) — así el contrato se testea sin layout, que jsdom no calcula.
13
+ *
14
+ * El editor (Design Studio) tiene su propio gemelo de estas funciones en
15
+ * `lib/dragOffset.ts`: son dos paquetes sin dependencia entre sí y el núcleo
16
+ * son ~20 líneas; si alguna regla cambia, hay que cambiar las dos.
17
+ */
18
+ /** Px del panel que SIEMPRE quedan dentro del viewport (un panel más chico no exige más de lo que mide). */
19
+ const DRAG_MIN_VISIBLE = 48;
20
+ /**
21
+ * Desplazamiento del gesto: lo ya acumulado (`base`) más lo que se movió el
22
+ * puntero desde que empezó. `base` existe porque el gesto siguiente arranca
23
+ * donde quedó el anterior.
24
+ */
25
+ function dragOffsetOf(base, start, current) {
26
+ return { x: base.x + current.x - start.x, y: base.y + current.y - start.y };
27
+ }
28
+ /** Acota `value` a [min, max] con el 0 SIEMPRE dentro del rango — ver `clampDragOffset`. */
29
+ function clampAxis(value, min, max) {
30
+ const lo = Math.min(min, 0);
31
+ const hi = Math.max(max, 0);
32
+ return Math.min(Math.max(value, lo), hi);
33
+ }
34
+ /**
35
+ * Acota el desplazamiento para que el panel no se pierda de pantalla:
36
+ *
37
+ * - Horizontal: siempre quedan `minVisible` px del panel dentro del viewport
38
+ * (por cualquiera de los dos lados).
39
+ * - Vertical: el borde SUPERIOR nunca sube del borde del viewport (el header
40
+ * —la zona de agarre— queda siempre alcanzable) y por abajo rige el mismo
41
+ * `minVisible`.
42
+ *
43
+ * El rango incluye el 0 por construcción: un panel que ya nace fuera (más alto
44
+ * que el viewport) no debe SALTAR al agarrarlo; solo no se puede empeorar.
45
+ *
46
+ * `rect` es la caja del panel medida UNA vez, al empezar el gesto: medir en
47
+ * cada `pointermove` fuerza layout síncrono en cada frame.
48
+ */
49
+ function clampDragOffset(offset, rect, viewport, minVisible = DRAG_MIN_VISIBLE) {
50
+ const visibleX = Math.min(minVisible, rect.width);
51
+ const visibleY = Math.min(minVisible, rect.height);
52
+ return {
53
+ x: clampAxis(offset.x, visibleX - rect.left - rect.width, viewport.width - visibleX - rect.left),
54
+ y: clampAxis(offset.y, -rect.top, viewport.height - visibleY - rect.top),
55
+ };
56
+ }
57
+ /**
58
+ * Controles que NO arrastran aunque vivan en la zona de agarre: el ✕, los
59
+ * botones/enlaces y los campos. Lista gemela de la del editor
60
+ * (`apps/web/src/lib/dragOffset.ts`): las dos se mantienen en sincronía.
61
+ */
62
+ const INTERACTIVE_SELECTOR = [
63
+ 'button',
64
+ 'a[href]',
65
+ 'input',
66
+ 'select',
67
+ 'textarea',
68
+ '[role="button"]',
69
+ '[role="checkbox"]',
70
+ '[role="radio"]',
71
+ '[role="switch"]',
72
+ '[role="combobox"]',
73
+ '[role="option"]',
74
+ '[role="menuitem"]',
75
+ '[role="slider"]',
76
+ '[role="tab"]',
77
+ '[role="separator"]',
78
+ '[data-no-drag]',
79
+ ].join(', ');
80
+ /**
81
+ * `true` si el evento nació en un control interactivo DENTRO de la zona de
82
+ * agarre. Recorre el `composedPath` (no `closest`) porque el origen puede venir
83
+ * de otro shadow root — el `<svg>` dentro del ✕, un control del consumidor
84
+ * proyectado en un slot.
85
+ *
86
+ * `handle` acota el recorrido: se corta al llegar al asa. Sin ese tope, un
87
+ * flotante montado dentro de un `<button>` o de un `[role=…]` del consumidor
88
+ * dejaba de arrastrar entero y sin diagnóstico (el ancestro matcheaba).
89
+ */
90
+ function isInteractiveDragTarget(event, handle) {
91
+ const path = typeof event.composedPath === 'function' ? event.composedPath() : [event.target];
92
+ for (const node of path) {
93
+ if (handle && node === handle)
94
+ return false;
95
+ if (node && typeof node.matches === 'function') {
96
+ if (node.matches(INTERACTIVE_SELECTOR))
97
+ return true;
98
+ }
99
+ }
100
+ return false;
101
+ }
102
+
103
+ const coModalCss = () => `.co-sq-elevation{border-radius:var(--co-sq-r);corner-shape:squircle;box-shadow:var(--co-sq-shadow)}.co-sq-clip{overflow:hidden;border-radius:var(--co-sq-r);corner-shape:squircle}@supports not (corner-shape: squircle){.co-sq-elevation{box-shadow:none}.co-sq-elevation-fallback{filter:var(--co-sq-drop-shadow)}.co-sq-clip{border-radius:0;--co-sq-tl:url("data:image/svg+xml,<svg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 100 100%27 preserveAspectRatio=%27none%27><path d=%27M100 0L97.5 0L95 0L92.5 0L90 0L87.5 0.01L85 0.01L82.5 0.02L80 0.04L77.5 0.06L75 0.1L72.5 0.14L70 0.2L67.5 0.28L65 0.38L62.5 0.5L60 0.65L57.5 0.83L55 1.04L52.5 1.3L50 1.6L47.5 1.96L45 2.37L42.5 2.85L40 3.41L37.5 4.05L35 4.8L32.5 5.65L30 6.63L27.5 7.77L25 9.07L22.5 10.58L20 12.34L17.5 14.41L15 16.85L12.5 19.79L10 23.42L7.5 28.06L5 34.37L2.5 44.29L0 100L100 100Z%27 fill=%27%23fff%27/></svg>");--co-sq-tr:url("data:image/svg+xml,<svg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 100 100%27 preserveAspectRatio=%27none%27><path d=%27M0 0L2.5 0L5 0L7.5 0L10 0L12.5 0.01L15 0.01L17.5 0.02L20 0.04L22.5 0.06L25 0.1L27.5 0.14L30 0.2L32.5 0.28L35 0.38L37.5 0.5L40 0.65L42.5 0.83L45 1.04L47.5 1.3L50 1.6L52.5 1.96L55 2.37L57.5 2.85L60 3.41L62.5 4.05L65 4.8L67.5 5.65L70 6.63L72.5 7.77L75 9.07L77.5 10.58L80 12.34L82.5 14.41L85 16.85L87.5 19.79L90 23.42L92.5 28.06L95 34.37L97.5 44.29L100 100L0 100Z%27 fill=%27%23fff%27/></svg>");--co-sq-bl:url("data:image/svg+xml,<svg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 100 100%27 preserveAspectRatio=%27none%27><path d=%27M0 0L2.5 55.71L5 65.63L7.5 71.94L10 76.58L12.5 80.21L15 83.15L17.5 85.59L20 87.66L22.5 89.42L25 90.93L27.5 92.23L30 93.37L32.5 94.35L35 95.2L37.5 95.95L40 96.59L42.5 97.15L45 97.63L47.5 98.04L50 98.4L52.5 98.7L55 98.96L57.5 99.17L60 99.35L62.5 99.5L65 99.62L67.5 99.72L70 99.8L72.5 99.86L75 99.9L77.5 99.94L80 99.96L82.5 99.98L85 99.99L87.5 99.99L90 100L92.5 100L95 100L97.5 100L100 100L100 0Z%27 fill=%27%23fff%27/></svg>");--co-sq-br:url("data:image/svg+xml,<svg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 100 100%27 preserveAspectRatio=%27none%27><path d=%27M100 0L97.5 55.71L95 65.63L92.5 71.94L90 76.58L87.5 80.21L85 83.15L82.5 85.59L80 87.66L77.5 89.42L75 90.93L72.5 92.23L70 93.37L67.5 94.35L65 95.2L62.5 95.95L60 96.59L57.5 97.15L55 97.63L52.5 98.04L50 98.4L47.5 98.7L45 98.96L42.5 99.17L40 99.35L37.5 99.5L35 99.62L32.5 99.72L30 99.8L27.5 99.86L25 99.9L22.5 99.94L20 99.96L17.5 99.98L15 99.99L12.5 99.99L10 100L7.5 100L5 100L2.5 100L0 100L0 0Z%27 fill=%27%23fff%27/></svg>");-webkit-mask:var(--co-sq-tl) top left / var(--co-sq-r) var(--co-sq-r) no-repeat, var(--co-sq-tr) top right / var(--co-sq-r) var(--co-sq-r) no-repeat, var(--co-sq-bl) bottom left / var(--co-sq-r) var(--co-sq-r) no-repeat, var(--co-sq-br) bottom right / var(--co-sq-r) var(--co-sq-r) no-repeat, linear-gradient(#fff 0 0) center / 100% calc(100% - 2 * var(--co-sq-r) + 2px) no-repeat, linear-gradient(#fff 0 0) center / calc(100% - 2 * var(--co-sq-r) + 2px) 100% no-repeat;mask:var(--co-sq-tl) top left / var(--co-sq-r) var(--co-sq-r) no-repeat, var(--co-sq-tr) top right / var(--co-sq-r) var(--co-sq-r) no-repeat, var(--co-sq-bl) bottom left / var(--co-sq-r) var(--co-sq-r) no-repeat, var(--co-sq-br) bottom right / var(--co-sq-r) var(--co-sq-r) no-repeat, linear-gradient(#fff 0 0) center / 100% calc(100% - 2 * var(--co-sq-r) + 2px) no-repeat, linear-gradient(#fff 0 0) center / calc(100% - 2 * var(--co-sq-r) + 2px) 100% no-repeat}}:host{display:contents;--co-overlay-blur:8px;--co-overlay-bg:rgba(31, 28, 27, 0.35)}.co-modal__frame{display:flex;contain:layout;--co-sq-drop-shadow:drop-shadow(0 1px 2px rgba(31, 28, 27, 0.06)) drop-shadow(0 14px 34px rgba(31, 28, 27, 0.16))}.co-modal{display:flex;flex-direction:column;background:var(--co-semantic-surface-secondary);--co-modal-r:var(--co-border-radius-xl);--co-sq-r:var(--co-modal-r);--co-sq-shadow:0 1px 4px rgba(31, 28, 27, 0.06), 0 14px 68px rgba(31, 28, 27, 0.16);max-width:540px;width:90vw;max-height:80vh;font-family:var(--co-font-family-primary);transform:scale(0.96);opacity:0;transition:transform var(--co-motion-duration-fast) var(--co-motion-ease-in), opacity var(--co-motion-duration-fast) var(--co-motion-ease-in)}.co-modal--sm{max-width:400px}.co-modal--lg{max-width:680px}.co-modal--full{max-width:min(1400px, 95vw);width:95vw;height:92vh;max-height:92vh}.co-modal--full .co-modal__body{flex:1;min-height:0;padding:0;overflow:hidden}.co-modal--open{transform:scale(1);opacity:1;transition:transform var(--co-motion-duration-base) var(--co-motion-ease-out), opacity var(--co-motion-duration-base) var(--co-motion-ease-out)}.co-modal__header{display:flex;align-items:flex-start;gap:var(--co-spacing-md);padding:var(--co-spacing-xl) var(--co-spacing-xl) var(--co-spacing-md)}.co-modal__header-text{display:flex;flex-direction:column;gap:var(--co-spacing-sm);flex:1}.co-modal__heading{margin:0;font-size:var(--co-font-size-20);font-weight:700;color:var(--co-semantic-text-default);line-height:1.3}.co-modal__description{margin:0;font-size:var(--co-font-size-14);color:var(--co-semantic-text-secondary);line-height:1.5}.co-modal__close{display:flex;align-items:center;justify-content:center;padding:var(--co-spacing-xs);margin:0;border:none;background:transparent;cursor:pointer;color:var(--co-semantic-text-muted);border-radius:var(--co-border-radius-sm);flex-shrink:0;transition:background var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-modal__close:hover{background:var(--co-semantic-surface-hover)}.co-modal__body{padding:var(--co-spacing-lg) var(--co-spacing-xl);overflow-y:auto;overscroll-behavior:contain;font-size:var(--co-font-size-14);color:var(--co-semantic-text-secondary);line-height:1.6;border-top:1px solid var(--co-semantic-border-default)}.co-modal__body:empty{display:none}.co-modal__footer{display:flex;justify-content:flex-end;gap:var(--co-spacing-md);padding:var(--co-spacing-lg) var(--co-spacing-xl) var(--co-spacing-xl);border-top:1px solid var(--co-semantic-border-default);--co-button-radius:var(--co-border-radius-xs)}.co-modal__footer--empty{display:none}.co-modal--no-dividers .co-modal__footer{border-top:none}.co-modal--no-header-divider .co-modal__body{border-top:none;padding-top:0}.co-modal--xs{width:var(--co-modal-width, 369px);max-width:var(--co-modal-width, 369px)}.co-modal--panel{border-radius:var(--co-border-radius-sm);border:1px solid var(--co-semantic-border-subtle);box-shadow:var(--co-shadow-lg)}.co-modal--panel .co-modal__header{padding:16px 20px 16px 24px;align-items:center;border-bottom:1px solid var(--co-semantic-border-subtle)}.co-modal--panel .co-modal__heading{font-size:var(--co-font-size-20);font-weight:500;line-height:1.25;letter-spacing:var(--co-font-letter-spacing-body)}.co-modal--panel .co-modal__close{width:32px;height:32px;padding:0;border-radius:var(--co-border-radius-full);color:var(--co-semantic-text-default)}.co-modal--panel .co-modal__body{padding:24px;border-top:none}.co-modal--panel .co-modal__footer{padding:12px 24px;gap:12px;border-top:1px solid var(--co-semantic-border-subtle)}.co-modal__frame--standalone{position:fixed;inset:0;z-index:var(--co-modal-z-index, 1000);display:flex;align-items:center;justify-content:center;pointer-events:none}.co-modal__frame--standalone .co-modal--open{pointer-events:auto}.co-modal__frame--standalone .co-modal:not(.co-modal--open){visibility:hidden;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)}.co-modal--dialog{border-radius:var(--co-border-radius-lg)}.co-modal--dialog .co-modal__header{padding:var(--co-spacing-3xl) var(--co-spacing-3xl) 0;align-items:flex-start;gap:var(--co-spacing-lg)}.co-modal--dialog .co-modal__header-text{gap:var(--co-spacing-lg)}.co-modal--dialog .co-modal__heading{font-size:var(--co-font-size-22);font-weight:500;line-height:1.25;letter-spacing:var(--co-font-letter-spacing-body)}.co-modal--dialog .co-modal__description{font-size:var(--co-font-size-16);line-height:1.5;letter-spacing:var(--co-font-letter-spacing-body)}.co-modal--dialog .co-modal__close{width:32px;height:32px;padding:0;margin:-3px -6px 0 0;border-radius:var(--co-border-radius-full);color:var(--co-semantic-text-default)}.co-modal--dialog .co-modal__body{padding:var(--co-spacing-lg) var(--co-spacing-3xl) var(--co-spacing-3xl);border-top:none;font-size:var(--co-font-size-16);line-height:1.5;letter-spacing:var(--co-font-letter-spacing-body)}.co-modal--dialog.co-modal--full .co-modal__body{padding:0}.co-modal--dialog .co-modal__footer{padding:var(--co-spacing-lg) var(--co-spacing-2xl);gap:var(--co-spacing-md);border-top-color:var(--co-semantic-border-subtle);--co-button-radius:var(--co-border-radius-sm)}.co-modal--movable{translate:var(--co-modal-translate, none)}.co-modal__header--movable{cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}.co-modal__header--movable .co-modal__close{cursor:pointer}.co-modal__header--dragging{cursor:grabbing}`;
8
104
 
9
105
  const CoModal = class {
10
106
  constructor(hostRef) {
@@ -31,7 +127,8 @@ const CoModal = class {
31
127
  */
32
128
  this.closeOnEscape = false;
33
129
  /**
34
- * Modal width: sm (400px), md (540px), lg (680px),
130
+ * Modal width: xs (369px, vía `--co-modal-width` — paneles anclados como
131
+ * "Tipografía y color"), sm (400px), md (540px), lg (680px),
35
132
  * full (min(1400px, 95vw) × 92vh — media/document viewers).
36
133
  *
37
134
  * `full` also drops the body padding and lets the body grow, so a slotted
@@ -44,6 +141,59 @@ const CoModal = class {
44
141
  /** Hairline between header and body. `false` lets the body run straight
45
142
  * under the heading (Figma modals whose first row is a segmented control). */
46
143
  this.headerDivider = true;
144
+ /**
145
+ * Visual treatment. `default` = superficie squircle actual
146
+ * (radio `--co-modal-r`, sombra que sigue la silueta). `panel` = superficie
147
+ * plana (radio 12, borde `--co-semantic-border-subtle`, `--co-shadow-lg`),
148
+ * SIN máscara squircle — look de panel anclado, no de diálogo centrado.
149
+ *
150
+ * `dialog` = la anatomía del componente "Modal" del design system
151
+ * (Figma Prolibu UI Suite, nodo `1179:37247`): superficie plana radio 16
152
+ * (`--co-border-radius-lg`) sin borde ni sombra propios, título 22/500 y
153
+ * cuerpo 16/1.5 `text-secondary` sin divisor entre ambos, padding 32
154
+ * (`--co-spacing-3xl`), footer 16/24 con hairline `border-subtle` y botones
155
+ * cuadrados de radio 12. Sin máscara squircle. El ✕ (si `closable`) es el
156
+ * redondo de 32 del modo `panel`.
157
+ */
158
+ this.appearance = 'default';
159
+ /**
160
+ * Control del scrim. `none` = sin fondo oscuro y sin cierre por
161
+ * clic afuera — independiente de `closeOnOverlay` (que solo aplica cuando
162
+ * SÍ hay scrim). `co-overlay` es quien posee el único `<div>` de scrim del
163
+ * árbol, así que `none` implica no montar `<co-overlay>` (ver `inline`).
164
+ */
165
+ this.backdrop = 'default';
166
+ /**
167
+ * Renderiza en `position: fixed` con su propio `--co-modal-z-index` en vez
168
+ * de promoverse al TOP LAYER del browser. `co-overlay` promueve
169
+ * su scrim al top layer vía Popover API (`showPopover()`); el top layer
170
+ * SIEMPRE pinta por encima de cualquier `z-index` normal, así que un
171
+ * portal propio del consumidor (selector de fuente/color del editor) con
172
+ * z-index alto quedaría igual TAPADO detrás del modal. `inline` evita eso.
173
+ *
174
+ * `co-overlay` es también quien posee la promoción a top layer — no hay
175
+ * forma de pedirle "no te promuevas" sin tocar ese componente, así que,
176
+ * igual que `backdrop="none"`, `inline`
177
+ * implica no montar `<co-overlay>`: el panel pasa a posicionarse y apilarse
178
+ * solo (`.co-modal__frame--standalone`, ver co-modal.css).
179
+ */
180
+ this.inline = false;
181
+ /**
182
+ * Opt-in: el modal se MUEVE arrastrando su header. Default false →
183
+ * los consumidores actuales quedan byte-idénticos (ni DOM ni CSS cambian).
184
+ *
185
+ * Con `movable`, el `part="header"` entero es la zona de agarre (`cursor:
186
+ * grab`), salvo los controles que contenga (el ✕, y cualquier botón, enlace
187
+ * o campo: ver `isInteractiveDragTarget`). Soltar confirma la posición;
188
+ * `pointercancel` o perder el foco de la ventana la CANCELAN y dejan la
189
+ * anterior. La posición no se persiste: cerrar y reabrir devuelve el panel a
190
+ * su lugar por defecto.
191
+ *
192
+ * Se llama `movable` y no `draggable` a propósito: `draggable` es un atributo
193
+ * global de HTML (arrastre nativo HTML5) y una prop de React, y una prop del
194
+ * mismo nombre taparía `HTMLElement.draggable` con dos semánticas encimadas.
195
+ */
196
+ this.movable = false;
47
197
  /* `:empty` can't see across a <slot>, so slotted presence is tracked in JS */
48
198
  this.hasFooter = false;
49
199
  this.handleFooterSlotChange = (e) => {
@@ -56,6 +206,12 @@ const CoModal = class {
56
206
  this.handleCloseClick = () => {
57
207
  this.coClose.emit();
58
208
  };
209
+ /** Freno del clic del panel: existe SOLO para que un clic adentro no llegue
210
+ * al `<co-overlay>`, que cierra con cualquier clic sobre su div. Sin
211
+ * overlay (`inline` / `backdrop="none"`) no hay nada que proteger, y el
212
+ * freno se tragaba los `onClick` de React del contenido proyectado (React
213
+ * delega en la raíz; el camino compuesto del evento cruza este div). Por
214
+ * eso se monta condicionado a `usesOverlay` — ver `render()`. */
59
215
  this.stopPropagation = (e) => {
60
216
  e.stopPropagation();
61
217
  };
@@ -68,6 +224,84 @@ const CoModal = class {
68
224
  else if (ev === 'after-close')
69
225
  this.coAfterClose.emit();
70
226
  };
227
+ // ── Arrastre por el header (Task D1) ──────────────────────────────────
228
+ /** Gesto en curso: pinta el cursor `grabbing` (única razón para re-render). */
229
+ this.dragging = false;
230
+ /** Desplazamiento YA confirmado. El gesto siguiente arranca desde acá. */
231
+ this.committedOffset = { x: 0, y: 0 };
232
+ /** Desplazamiento en vivo (= el confirmado mientras no hay gesto). */
233
+ this.liveOffset = { x: 0, y: 0 };
234
+ this.handleDragDown = (e) => {
235
+ var _a;
236
+ // Solo el botón primario; un segundo puntero no roba el gesto en curso.
237
+ if (!this.movable || this.dragging || e.button !== 0)
238
+ return;
239
+ // El ✕ (y cualquier control que el header llegue a tener) no arrastra.
240
+ if (isInteractiveDragTarget(e, this.headerEl))
241
+ return;
242
+ const rect = (_a = this.modalEl) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();
243
+ if (!rect)
244
+ return;
245
+ // Evita seleccionar el título al arrastrar. El foco NO se toca: el header
246
+ // no es un control, no entra al tab-order ni cambia el aria-labelledby.
247
+ e.preventDefault();
248
+ this.dragging = true;
249
+ this.dragPointerId = e.pointerId;
250
+ this.dragStart = { x: e.clientX, y: e.clientY };
251
+ // Caja SIN trasladar: `getBoundingClientRect` la devuelve con el
252
+ // desplazamiento ya aplicado, pero el offset que se acota es absoluto
253
+ // desde el origen sin trasladar (`committedOffset + delta`). Mezclarlos
254
+ // corría el rango permitido exactamente `committedOffset` px en cada
255
+ // gesto nuevo, y del segundo en adelante el panel se iba de pantalla.
256
+ this.dragRect = {
257
+ left: rect.left - this.committedOffset.x,
258
+ top: rect.top - this.committedOffset.y,
259
+ width: rect.width,
260
+ height: rect.height,
261
+ };
262
+ this.dragViewport = { width: window.innerWidth, height: window.innerHeight };
263
+ this.capturePointer(e);
264
+ // El listener del blur vive solo mientras dura el gesto: sin `movable` (o
265
+ // sin arrastre en curso) el componente no engancha nada en `window`.
266
+ window.addEventListener('blur', this.handleWindowBlur);
267
+ };
268
+ this.handleDragMove = (e) => {
269
+ if (!this.isActiveDragPointer(e))
270
+ return;
271
+ if (!this.dragStart || !this.dragRect || !this.dragViewport)
272
+ return;
273
+ const raw = dragOffsetOf(this.committedOffset, this.dragStart, { x: e.clientX, y: e.clientY });
274
+ this.writeOffset(clampDragOffset(raw, this.dragRect, this.dragViewport));
275
+ };
276
+ /** Soltar CONFIRMA la posición alcanzada. */
277
+ this.handleDragUp = (e) => {
278
+ if (!this.isActiveDragPointer(e))
279
+ return;
280
+ this.committedOffset = this.liveOffset;
281
+ this.releasePointer(e);
282
+ this.endDrag();
283
+ };
284
+ /** `pointercancel` CANCELA: el panel vuelve a la última posición confirmada. */
285
+ this.handleDragCancel = (e) => {
286
+ if (!this.isActiveDragPointer(e))
287
+ return;
288
+ this.releasePointer(e);
289
+ this.writeOffset(this.committedOffset);
290
+ this.endDrag();
291
+ };
292
+ /** Perder el foco de la ventana (alt-tab, un iframe que se lo lleva) cancela igual que `pointercancel`. */
293
+ this.handleWindowBlur = () => {
294
+ if (!this.dragging)
295
+ return;
296
+ this.writeOffset(this.committedOffset);
297
+ this.endDrag();
298
+ };
299
+ }
300
+ /** Verdadero cuando NO corresponde montar `<co-overlay>` — ver doc de
301
+ * `backdrop` e `inline` arriba: ambas comparten el mismo mecanismo porque
302
+ * co-overlay es la única superficie dueña del scrim Y del top layer. */
303
+ get usesOverlay() {
304
+ return this.backdrop !== 'none' && !this.inline;
71
305
  }
72
306
  handleKeydown(e) {
73
307
  if (!this.open || !this.closeOnEscape)
@@ -75,19 +309,128 @@ const CoModal = class {
75
309
  if (e.key === 'Escape')
76
310
  this.coClose.emit();
77
311
  }
312
+ /**
313
+ * La posición no se persiste: cada APERTURA arranca desde la posición por
314
+ * defecto. El reset va al abrir y no al cerrar a propósito — reseteando al
315
+ * cerrar, el panel se teletransportaba al centro mientras corría su
316
+ * animación de salida (un consumidor que lo deja montado y solo apaga
317
+ * `open` lo veía saltar).
318
+ */
319
+ resetPositionOnOpen(open) {
320
+ this.endDrag();
321
+ if (!open)
322
+ return;
323
+ this.committedOffset = { x: 0, y: 0 };
324
+ this.writeOffset({ x: 0, y: 0 });
325
+ }
326
+ disconnectedCallback() {
327
+ // Desmontarse en pleno gesto no debe dejar el listener colgado.
328
+ window.removeEventListener('blur', this.handleWindowBlur);
329
+ }
330
+ endDrag() {
331
+ window.removeEventListener('blur', this.handleWindowBlur);
332
+ this.dragging = false;
333
+ this.dragPointerId = undefined;
334
+ this.dragStart = undefined;
335
+ this.dragRect = undefined;
336
+ this.dragViewport = undefined;
337
+ }
338
+ /** `==`: en jsdom los MouseEvent traen `pointerId` undefined y deben seguir pasando. */
339
+ isActiveDragPointer(e) {
340
+ // eslint-disable-next-line eqeqeq
341
+ return this.dragging && e.pointerId == this.dragPointerId;
342
+ }
343
+ /** `setPointerCapture` sigue el gesto fuera del header (y garantiza el `pointercancel`). */
344
+ capturePointer(e) {
345
+ const el = this.headerEl;
346
+ if (!el || typeof el.setPointerCapture !== 'function' || e.pointerId == null)
347
+ return;
348
+ try {
349
+ el.setPointerCapture(e.pointerId);
350
+ }
351
+ catch (_a) {
352
+ /* pointerId inactivo (evento sintético): sin captura, el gesto vive dentro del header */
353
+ }
354
+ }
355
+ releasePointer(e) {
356
+ const el = this.headerEl;
357
+ if (!el || typeof el.releasePointerCapture !== 'function' || e.pointerId == null)
358
+ return;
359
+ try {
360
+ el.releasePointerCapture(e.pointerId);
361
+ }
362
+ catch (_a) {
363
+ /* ya liberado */
364
+ }
365
+ }
366
+ /**
367
+ * Escribe el desplazamiento como custom property en el panel; la regla que la
368
+ * consume vive en `.co-modal--movable` (co-modal.css).
369
+ *
370
+ * Va por el DOM y no por el `style` del vdom a propósito: el `transform` del
371
+ * panel es la animación de apertura (`scale`), así que el desplazamiento usa
372
+ * la propiedad independiente `translate` — se compone con ese transform, no
373
+ * dispara layout, y al no declararla el vdom ningún re-render la pisa.
374
+ */
375
+ writeOffset(offset) {
376
+ this.liveOffset = offset;
377
+ const el = this.modalEl;
378
+ if (!el)
379
+ return;
380
+ if (offset.x === 0 && offset.y === 0)
381
+ el.style.removeProperty('--co-modal-translate');
382
+ else
383
+ el.style.setProperty('--co-modal-translate', `${offset.x}px ${offset.y}px`);
384
+ }
78
385
  render() {
79
- return (index.h("co-overlay", { key: '9b796364a697af4d4a0ede50e5dd5516ccaa299f', open: this.open, onCoClose: this.handleOverlayClick }, index.h("div", { key: 'bea863aedb405cdc492277add25e2c08ea7ef258', class: "co-modal__frame co-sq-elevation-fallback" }, index.h("div", { key: '05f9e86f7a813243913f60c6a042fb93ed65a463', class: {
386
+ // `panel` (Task C12) y `dialog` (Task M1) no usan la receta squircle:
387
+ // superficies planas con radio/borde/sombra propios declarados en
388
+ // co-modal.css. (Las dos comparaciones van literales: el guard
389
+ // squircle-surface-guard.test.ts las busca por texto.)
390
+ const squircle = this.appearance !== 'panel' && this.appearance !== 'dialog';
391
+ const flat = !squircle;
392
+ const closeIconSize = flat ? 18 : 20;
393
+ // Receta squircle: global/squircle-surface.css. El frame lleva el
394
+ // drop-shadow SOLO en el fallback (.co-sq-elevation-fallback); el panel
395
+ // lleva recorte + box-shadow (Chromium) y conserva la animación de
396
+ // open/close + onTransitionEnd sin cambios.
397
+ const frame = (index.h("div", { class: {
398
+ 'co-modal__frame': true,
399
+ 'co-sq-elevation-fallback': squircle,
400
+ // Ver doc de `backdrop`/`inline` en los @Prop: sin <co-overlay> el
401
+ // frame se posiciona y apila solo (position:fixed + z-index).
402
+ 'co-modal__frame--standalone': !this.usesOverlay,
403
+ } }, index.h("div", { class: {
80
404
  'co-modal': true,
81
- 'co-sq-clip': true,
82
- 'co-sq-elevation': true,
405
+ 'co-sq-clip': squircle,
406
+ 'co-sq-elevation': squircle,
83
407
  'co-modal--open': this.open,
408
+ 'co-modal--xs': this.size === 'xs',
84
409
  'co-modal--sm': this.size === 'sm',
85
410
  'co-modal--lg': this.size === 'lg',
86
411
  'co-modal--full': this.size === 'full',
87
412
  'co-modal--no-dividers': this.noDividers,
88
413
  'co-modal--no-header-divider': !this.headerDivider,
89
- }, part: "modal", ref: (el) => (this.modalEl = el), role: "dialog", "aria-modal": "true", "aria-labelledby": this.heading ? 'modal-heading' : undefined, onClick: this.stopPropagation, onTransitionEnd: this.handleTransitionEnd }, index.h("div", { key: '8ecd9f7f4413339e484710e2abef1c21fc7f25d0', class: "co-modal__header", part: "header" }, index.h("slot", { key: '09df61b3aac8a26e0eb85a6a6aa48f9a7f547dbf', name: "header-leading" }), index.h("div", { key: '8e9a55561a1b5615f77eb3eb96284ddc68eddbc3', class: "co-modal__header-text", part: "header-text" }, index.h("h2", { key: '65c083247543448d9f527592cd8614a4c713cf4c', class: "co-modal__heading", part: "heading", id: "modal-heading" }, this.heading), this.description && (index.h("p", { key: 'c871aa6549cf56265a02048ca18f736d92d1a482', class: "co-modal__description", part: "description" }, this.description))), index.h("slot", { key: '106a5be71c8c03736313c1084c61d3b836ebb495', name: "header-actions" }), this.closable && (index.h("button", { key: 'a0df67cd09e5f414c58f9f67f6a92c58b9f4773b', class: "co-modal__close", type: "button", "aria-label": "Close", onClick: this.handleCloseClick }, index.h("co-icon", { key: 'e766981fff30de0c79599756dde74c5981d5c9fd', name: "x", size: 20 })))), !this.noDividers && (index.h("div", { key: '355e455c19cbc4a0783c0e0c2689265e6f599484', class: "co-modal__body", part: "body" }, index.h("slot", { key: 'fa6d3310464ff33de17618561182736bc6cef0e5' }))), index.h("div", { key: '43b89751fac3fd1b707a284d260e91dd7d7ea8a6', class: { 'co-modal__footer': true, 'co-modal__footer--empty': !this.hasFooter }, part: "footer" }, index.h("slot", { key: 'e9821b0712a6903c923f9bb50393e4b85545c211', name: "footer", onSlotchange: this.handleFooterSlotChange }))))));
414
+ 'co-modal--panel': this.appearance === 'panel',
415
+ 'co-modal--dialog': this.appearance === 'dialog',
416
+ 'co-modal--movable': this.movable,
417
+ }, part: "modal", ref: (el) => (this.modalEl = el), role: "dialog", "aria-modal": "true", "aria-labelledby": this.heading ? 'modal-heading' : undefined,
418
+ // Sin <co-overlay> el clic sigue su curso (los onClick delegados del
419
+ // consumidor lo necesitan); con overlay, el freno de siempre.
420
+ onClick: this.usesOverlay ? this.stopPropagation : undefined, onTransitionEnd: this.handleTransitionEnd }, index.h("div", { class: {
421
+ 'co-modal__header': true,
422
+ 'co-modal__header--movable': this.movable,
423
+ 'co-modal__header--dragging': this.dragging,
424
+ }, part: "header", ref: (el) => (this.headerEl = el), onPointerDown: this.movable ? this.handleDragDown : undefined, onPointerMove: this.movable ? this.handleDragMove : undefined, onPointerUp: this.movable ? this.handleDragUp : undefined, onPointerCancel: this.movable ? this.handleDragCancel : undefined }, index.h("slot", { name: "header-leading" }), index.h("div", { class: "co-modal__header-text", part: "header-text" }, index.h("h2", { class: "co-modal__heading", part: "heading", id: "modal-heading" }, this.heading), this.description && (index.h("p", { class: "co-modal__description", part: "description" }, this.description))), index.h("slot", { name: "header-actions" }), this.closable && (index.h("button", { class: "co-modal__close", type: "button", "aria-label": "Close", onClick: this.handleCloseClick }, index.h("co-icon", { name: "x", size: closeIconSize })))), !this.noDividers && (index.h("div", { class: "co-modal__body", part: "body" }, index.h("slot", null))), index.h("div", { class: { 'co-modal__footer': true, 'co-modal__footer--empty': !this.hasFooter }, part: "footer" }, index.h("slot", { name: "footer", onSlotchange: this.handleFooterSlotChange })))));
425
+ if (!this.usesOverlay)
426
+ return frame;
427
+ return (index.h("co-overlay", { open: this.open, onCoClose: this.handleOverlayClick }, frame));
90
428
  }
429
+ static get watchers() { return {
430
+ "open": [{
431
+ "resetPositionOnOpen": 0
432
+ }]
433
+ }; }
91
434
  };
92
435
  CoModal.style = coModalCss();
93
436
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-MDAnKsze.js');
3
+ var index = require('./index-bHoidDwv.js');
4
4
 
5
5
  const coNavbarCss = () => `:host{display:block}.co-navbar{display:flex;align-items:center;justify-content:space-between;width:100%;font-family:var(--co-font-family-primary);box-sizing:border-box;background:var(--co-navbar-bg);color:var(--co-navbar-color)}.co-navbar--default{--co-navbar-bg:transparent}.co-navbar--filled{--co-navbar-bg:var(--co-semantic-surface-primary, #1f1c1b);--co-navbar-color:var(--co-semantic-on-primary, #fff)}.co-navbar--bordered{--co-navbar-bg:var(--co-semantic-surface-page, #fff);--co-navbar-color:inherit;border-bottom:1px solid var(--co-semantic-border-subtle, rgba(31,28,27,0.08))}.co-navbar--dark{--co-navbar-bg:var(--co-theme-navbar-bg, var(--co-color-base-negro, #1F1C1B));--co-navbar-color:var(--co-theme-on-navbar, #fff);--co-icon-button-bg:var(--co-theme-on-navbar-surface, var(--co-color-opacity-blanco-16, rgba(255,255,255,0.16)));--co-icon-button-color:var(--co-theme-on-navbar, #fff);--co-icon-button-border:transparent}.co-navbar--rounded{border-radius:var(--co-border-radius-sm, 12px);overflow:hidden}.co-navbar--sm{min-height:40px;padding:0 var(--co-navbar-padding-x, var(--co-spacing-md, 12px));gap:var(--co-spacing-sm2, 8px);font-size:var(--co-font-size-12, 12px)}.co-navbar--md{min-height:48px;padding:0 var(--co-navbar-padding-x, var(--co-spacing-lg, 16px));gap:var(--co-spacing-md, 12px);font-size:var(--co-font-size-14, 14px)}.co-navbar--lg{min-height:56px;padding:0 var(--co-navbar-padding-x-end, var(--co-spacing-2xl, 24px)) 0 var(--co-navbar-padding-x-start, var(--co-spacing-md, 12px));gap:var(--co-spacing-sm2, 8px);font-size:var(--co-font-size-14, 14px)}::slotted([slot-spacer]),::slotted(.co-spacer){flex:1}`;
6
6
 
@@ -15,12 +15,12 @@ const CoNavbar = class {
15
15
  this.rounded = false;
16
16
  }
17
17
  render() {
18
- return (index.h("div", { key: '9899b395fdf793bf9b7e47509b81eb559aac0b56', class: {
18
+ return (index.h("div", { key: '68c78b33434a32372eef9763b0c11c9a185f6ef8', class: {
19
19
  'co-navbar': true,
20
20
  [`co-navbar--${this.variant}`]: true,
21
21
  [`co-navbar--${this.size}`]: true,
22
22
  'co-navbar--rounded': this.rounded,
23
- }, part: "navbar", role: "toolbar" }, index.h("slot", { key: 'c863bcf8dc9eddab771922a81e11c1966bfe8d2e' })));
23
+ }, part: "navbar", role: "toolbar" }, index.h("slot", { key: 'a9d05ff60065f85dc24e941478a18fa40466143f' })));
24
24
  }
25
25
  };
26
26
  CoNavbar.style = coNavbarCss();
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-MDAnKsze.js');
4
- var requiredMark = require('./requiredMark-D-t-IPN0.js');
3
+ var index = require('./index-bHoidDwv.js');
4
+ var requiredMark = require('./requiredMark-21yHvvZS.js');
5
5
 
6
6
  /**
7
7
  * Texto de montos para co-number-field `format="amount"`.
@@ -142,11 +142,17 @@ const CoNumberField = class {
142
142
  this.required = false;
143
143
  /** Label layout: vertical (label above) or horizontal (label beside) */
144
144
  this.layout = 'vertical';
145
+ /** Estado de validación: pinta el borde y el `helperText` con el color del estado. */
145
146
  this.status = 'default';
147
+ /** Valor numérico (reflejado); `null` = vacío (solo alcanzable con `clearable`). El componente lo actualiza. */
146
148
  this.value = 0;
149
+ /** Paso de los botones −/+ y de las flechas (default 1). */
147
150
  this.step = 1;
151
+ /** Deshabilita el campo y los botones. */
148
152
  this.disabled = false;
153
+ /** Placeholder del campo vacío (default `'0'`). */
149
154
  this.placeholder = '0';
155
+ /** Alto del campo: `s` 28 · `sm` 32 · `md` 40 (default) · `lg` 48. */
150
156
  this.size = 'md';
151
157
  /** Show clear button when the field has a value */
152
158
  this.clearable = false;
@@ -426,18 +432,18 @@ const CoNumberField = class {
426
432
  return this.scaled && !this.isEmpty ? '%' : null;
427
433
  }
428
434
  render() {
429
- return (index.h("div", { key: 'de7f3ae049ac5afcdf7d8a711c566b947fa7e151', class: {
435
+ return (index.h("div", { key: 'cf4d63ce0278fd8f429aa4bf541497b7cf178ffe', class: {
430
436
  'co-number-field': true,
431
437
  'co-number-field--disabled': this.disabled,
432
438
  'co-number-field--focused': this.focused,
433
439
  [`co-number-field--${this.size}`]: true,
434
440
  [`co-number-field--${this.status}`]: this.status !== 'default',
435
- } }, (this.label || this.secondaryLabel) && (index.h("div", { key: '3a6c96b2987f0502334a23048f8693745589e965', class: "co-number-field__labels" }, this.label && index.h("label", { key: '7e0c9c08e93f10f6e18143d038ea8810a0f156b8', class: "co-number-field__label" }, this.label, index.h(requiredMark.RequiredMark, { key: '88b110f3d59908c27d182533100220ff8a65bb66', required: this.required })), this.secondaryLabel && index.h("span", { key: '5dd9219f995fc59ce557c8ba2b5dfea2d7cb56ef', class: "co-number-field__secondary-label" }, this.secondaryLabel))), index.h("div", { key: 'e2079dd9e28daf904057106167cd368de906daba', class: "co-number-field__row", part: "row" }, !this.hideControls && (index.h("button", { key: '7ff22639f594e7a008f02962ed7782b84654b78e', class: "co-number-field__btn co-number-field__btn--minus", type: "button", tabIndex: -1, disabled: !this.canDecrement, onClick: this.handleDecrement, "aria-label": "Decrease" }, index.h("co-icon", { key: '61aafdc7c083ea39b9b65b87d267df63b91cb8d4', name: "minus", size: 16 }))), index.h("input", { key: 'e088482da6c9fe1e02abe5bcae2611f157be83ed', ref: el => (this.inputEl = el), class: "co-number-field__input", type: "text", inputMode: "decimal",
441
+ } }, (this.label || this.secondaryLabel) && (index.h("div", { key: 'ecf9fd16f18a3ebbaef5b81b0c8ae41b80f04abf', class: "co-number-field__labels" }, this.label && index.h("label", { key: '7602d901e085e3380dff2a355d61ac1dc515428b', class: "co-number-field__label" }, this.label, index.h(requiredMark.RequiredMark, { key: '361743bf41c66ff28ceec00aba583328f2404713', required: this.required })), this.secondaryLabel && index.h("span", { key: 'ec9af4b27f3915704ef89ed6f51e7184eb5e1dd4', class: "co-number-field__secondary-label" }, this.secondaryLabel))), index.h("div", { key: '30f1716aed06da03f924fa1da2b2ab29dbede0bb', class: "co-number-field__row", part: "row" }, !this.hideControls && (index.h("button", { key: '1dbee1178df2a86e54ae42572a20ecf30484b8bc', class: "co-number-field__btn co-number-field__btn--minus", type: "button", tabIndex: -1, disabled: !this.canDecrement, onClick: this.handleDecrement, "aria-label": "Decrease" }, index.h("co-icon", { key: '40f61bd3774fb03b6aaceaef006dd45f2df260d3', name: "minus", size: 16 }))), index.h("input", { key: '254a74cd61a2776a69953965f8b289267b25fbb2', ref: el => (this.inputEl = el), class: "co-number-field__input", type: "text", inputMode: "decimal",
436
442
  // Mismo guard `focused` que el @Watch: mientras el usuario edita, su
437
443
  // texto manda. Sin esto, el re-render que dispara emitValue repinta
438
444
  // el input desde el NÚMERO y se come el texto en construcción
439
445
  // ("34,640.00" pegado quedaba "34,640"; un "12." perdería el punto).
440
- value: this.focused && this.inputEl ? this.inputEl.value : this.displayValue, placeholder: this.placeholder, disabled: this.disabled, onInput: this.handleInput, onPaste: this.handlePaste, onFocus: this.handleFocus, onBlur: this.handleBlur, onKeyDown: this.handleKeyDown, part: "input" }), this.affixText && (index.h("span", { key: '2a7bc2f465844ccb9db7017c1b3782625e784c05', class: "co-number-field__affix", "aria-hidden": "true" }, this.affixText)), this.clearable && !this.isEmpty && !this.disabled && (index.h("button", { key: '06e40ddc080297db49823f17eeeaba313f68fafd', class: "co-number-field__clear", type: "button", tabIndex: -1, onClick: this.handleClear, "aria-label": "Clear" }, index.h("co-icon", { key: 'f69d2f6bf5cb4cd6731d55f873fd03d21eb0f42e', name: "x-circle", size: 16, weight: "fill" }))), index.h("slot", { key: 'd16df6468bf0f514ce183e36d555b5e8f97ff969', name: "suffix" }), !this.hideControls && (index.h("button", { key: '523f5cbda86bbe3b69d08aedc9eb678d6b218cb7', class: "co-number-field__btn co-number-field__btn--plus", type: "button", tabIndex: -1, disabled: !this.canIncrement, onClick: this.handleIncrement, "aria-label": "Increase" }, index.h("co-icon", { key: '7f546fa2885ebecc3f16129bdc815a1cea57f53f', name: "plus", size: 16 })))), this.helperText && (index.h("div", { key: 'e807bbe38823ee148e227baaac1feafd85f93c49', class: `co-number-field__helper co-number-field__helper--${this.status}` }, this.statusIcon && index.h("co-icon", { key: 'e8bc48908cb9e53952e0bffeb898d0a4b0d2fef3', name: this.statusIcon, size: 14, weight: "fill", class: "co-number-field__helper-icon" }), index.h("span", { key: 'c00dc9f3bd966988f6a2546a360ede337de383e4', class: "co-number-field__helper-text" }, this.helperText)))));
446
+ value: this.focused && this.inputEl ? this.inputEl.value : this.displayValue, placeholder: this.placeholder, disabled: this.disabled, onInput: this.handleInput, onPaste: this.handlePaste, onFocus: this.handleFocus, onBlur: this.handleBlur, onKeyDown: this.handleKeyDown, part: "input" }), this.affixText && (index.h("span", { key: '836ea4e4cba0b21a36b1017d6fc0c4d621d69e56', class: "co-number-field__affix", "aria-hidden": "true" }, this.affixText)), this.clearable && !this.isEmpty && !this.disabled && (index.h("button", { key: '5eefa937a055dea1855d1bc3bae675003d8382c8', class: "co-number-field__clear", type: "button", tabIndex: -1, onClick: this.handleClear, "aria-label": "Clear" }, index.h("co-icon", { key: '096dec8d88b7b241cd83a04788bc4db05feec585', name: "x-circle", size: 16, weight: "fill" }))), index.h("slot", { key: '1ea7d1ff2c61d74b0884e7b8f1b7b54de4978876', name: "suffix" }), !this.hideControls && (index.h("button", { key: '9ae95697534b85dcd928c0d0e7f72a3b8c5402c7', class: "co-number-field__btn co-number-field__btn--plus", type: "button", tabIndex: -1, disabled: !this.canIncrement, onClick: this.handleIncrement, "aria-label": "Increase" }, index.h("co-icon", { key: 'af526ac4278865052f32ae7359a571aa485492af', name: "plus", size: 16 })))), this.helperText && (index.h("div", { key: '9bad3ffd8c70ce49205132f9f73294a83b6ebbc3', class: `co-number-field__helper co-number-field__helper--${this.status}` }, this.statusIcon && index.h("co-icon", { key: '4987bc82011c4bb93e1bd00ef1ffd45d2e8681f4', name: this.statusIcon, size: 14, weight: "fill", class: "co-number-field__helper-icon" }), index.h("span", { key: '8eac5821653dc0110113f94833e13f27411188a7', class: "co-number-field__helper-text" }, this.helperText)))));
441
447
  }
442
448
  get el() { return index.getElement(this); }
443
449
  static get watchers() { return {
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-MDAnKsze.js');
3
+ var index = require('./index-bHoidDwv.js');
4
4
  var overlayAfterClose = require('./overlayAfterClose-BdeXrhVY.js');
5
5
 
6
6
  /**
@@ -127,7 +127,9 @@ const CoOverlay = class {
127
127
  /** Whether THIS instance currently holds a scroll lock (prevents double-count). */
128
128
  this.hasLock = false;
129
129
  // Origen de la pulsación en curso (ver isBackdropDismiss): un drag que
130
- // empieza dentro del contenido y suelta en el fondo NO es un cierre.
130
+ // empieza dentro del contenido y suelta en el fondo NO es un cierre —el
131
+ // navegador despacha ese `click` al ancestro común, el propio scrim—, ni
132
+ // uno que empieza en el fondo y suelta en el contenido (Tarea QA 94).
131
133
  this.pressDownTarget = null;
132
134
  this.pressUpTarget = null;
133
135
  this.handlePointerDown = (e) => {
@@ -139,9 +141,11 @@ const CoOverlay = class {
139
141
  var _a;
140
142
  this.pressUpTarget = (_a = e.composedPath()[0]) !== null && _a !== void 0 ? _a : null;
141
143
  };
144
+ // Sólo cierra una pulsación completa sobre el scrim mismo, no sobre el contenido.
142
145
  this.handleClick = (e) => {
143
146
  var _a;
144
- const dismiss = isBackdropDismiss(this.pressDownTarget, this.pressUpTarget, (_a = e.composedPath()[0]) !== null && _a !== void 0 ? _a : null);
147
+ const clickTarget = (_a = e.composedPath()[0]) !== null && _a !== void 0 ? _a : null;
148
+ const dismiss = clickTarget === this.overlayEl && isBackdropDismiss(this.pressDownTarget, this.pressUpTarget, clickTarget);
145
149
  this.pressDownTarget = null;
146
150
  this.pressUpTarget = null;
147
151
  if (dismiss)
@@ -282,7 +286,7 @@ const CoOverlay = class {
282
286
  focusables[nextIndex].focus();
283
287
  }
284
288
  render() {
285
- return (index.h("div", { key: '74051ac6a35eff0b9c873bafe2141b0a9486f83e', class: { 'co-overlay': true, 'co-overlay--open': this.open }, part: "overlay", popover: "manual", tabindex: this.trapFocus ? -1 : undefined, ref: (el) => (this.overlayEl = el), onPointerDown: this.handlePointerDown, onPointerUp: this.handlePointerUp, onClick: this.handleClick, onTransitionEnd: this.handleTransitionEnd }, index.h("slot", { key: '8ed7f244bfe88f3d38b9e1f6720b0a191529f6f1' })));
289
+ return (index.h("div", { key: '1edc956747aa0c79bcc7863fd3530c4f64fd6746', class: { 'co-overlay': true, 'co-overlay--open': this.open }, part: "overlay", popover: "manual", tabindex: this.trapFocus ? -1 : undefined, ref: (el) => (this.overlayEl = el), onPointerDown: this.handlePointerDown, onPointerUp: this.handlePointerUp, onClick: this.handleClick, onTransitionEnd: this.handleTransitionEnd }, index.h("slot", { key: 'b17930138f924657b21511b95bd152e90a53a04a' })));
286
290
  }
287
291
  get el() { return index.getElement(this); }
288
292
  static get watchers() { return {
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-MDAnKsze.js');
3
+ var index = require('./index-bHoidDwv.js');
4
4
 
5
5
  const coPageHeaderCss = () => `:host{display:block}.co-page-header{display:flex;align-items:center;justify-content:space-between;padding:var(--co-spacing-lg) var(--co-spacing-xl);font-family:var(--co-font-family-primary);border-bottom:1px solid var(--co-semantic-border-subtle);background:var(--co-semantic-surface-page);min-height:72px;box-sizing:border-box}.co-page-header__left{display:flex;align-items:center;gap:var(--co-spacing-md)}.co-page-header__icon{display:flex;color:var(--co-semantic-text-muted)}.co-page-header__title{font-size:var(--co-font-size-18);font-weight:600;color:var(--co-semantic-text-default)}.co-page-header__actions{display:flex;align-items:center;gap:var(--co-spacing-md)}.co-page-header__actions:empty{display:none}`;
6
6
 
@@ -9,7 +9,7 @@ const CoPageHeader = class {
9
9
  index.registerInstance(this, hostRef);
10
10
  }
11
11
  render() {
12
- return (index.h("div", { key: '0f064f7e659103d8f679f23242492a5e9a869a88', class: "co-page-header", part: "page-header" }, index.h("div", { key: '4ccd5682d2d6872a5fa771b2779a8f7e0ab8b6f7', class: "co-page-header__left" }, this.icon && (index.h("span", { key: '10bc9aa126f8b9932b1e4247d7c3c3c04d89c425', class: "co-page-header__icon" }, index.h("co-icon", { key: '42f2cda7ec8ee4e0e4a51069606492647d13f690', name: this.icon, size: 24 }))), index.h("span", { key: '368633ff1b213286d5f6bdf5716e3acb1cbe2f71', class: "co-page-header__title" }, index.h("slot", { key: 'c74f2dcde7cfc0c0384f6a10a9f069a9ff94f78d' }, this.heading))), index.h("div", { key: '6666c103a2e6e826837091658ce1e4e4b1704215', class: "co-page-header__actions" }, index.h("slot", { key: '7df47ea333491b960bc1faff7fd0b6431aba56e5', name: "actions" }))));
12
+ return (index.h("div", { key: '18d15d7b241f92bbd121fd6547832a30f4404928', class: "co-page-header", part: "page-header" }, index.h("div", { key: 'cbf4427991e3b43775a1d47c95f953ef79d71c77', class: "co-page-header__left" }, this.icon && (index.h("span", { key: '647701102f261fc214a0a4347894ba275da1ed7d', class: "co-page-header__icon" }, index.h("co-icon", { key: 'd377f2f5cbfa190cb483fe4a6ff2a483f9053f7b', name: this.icon, size: 24 }))), index.h("span", { key: 'ccf59184d2154c89fc90ccddfffc8dfc8c07b72b', class: "co-page-header__title" }, index.h("slot", { key: '34dd64e79e72cb154c63b16f72c2ec58193d9988' }, this.heading))), index.h("div", { key: 'e2f1d119629a3b9479896cf2338625ad775b8556', class: "co-page-header__actions" }, index.h("slot", { key: '62ee162b3388968ee1930a2c3ab20e45b34a2d65', name: "actions" }))));
13
13
  }
14
14
  };
15
15
  CoPageHeader.style = coPageHeaderCss();
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-MDAnKsze.js');
4
- var requiredMark = require('./requiredMark-D-t-IPN0.js');
3
+ var index = require('./index-bHoidDwv.js');
4
+ var requiredMark = require('./requiredMark-21yHvvZS.js');
5
5
  var normalizeText = require('./normalizeText-D9rlJWZa.js');
6
6
 
7
7
  /**
@@ -361,7 +361,7 @@ const CoPhoneField = class {
361
361
  render() {
362
362
  const entry = this.selectedEntry;
363
363
  const statusClass = this.status !== 'default' ? `co-phone-field--${this.status}` : '';
364
- return (index.h("div", { key: '007dbe9a20cd410cb818f512d9f698afba6e821f', class: `co-phone-field co-phone-field--${this.size} ${statusClass} ${this.disabled ? 'co-phone-field--disabled' : ''}` }, this.label && (index.h("label", { key: 'a4c5c1b7e10de3098f7f50d74a3ca8703d41f465', class: "co-phone-field__label" }, this.label, index.h(requiredMark.RequiredMark, { key: 'bcd04f54711067258d1270814141b4b81324ee21', required: this.required }))), index.h("div", { key: 'a04a6996610ccd5007c54f5728a1158c951c50e9', class: "co-phone-field__container" }, index.h("button", { key: '317348de58e74afb6f545749c83670ed92eb61bb', type: "button", class: "co-phone-field__selector", disabled: this.disabled, onClick: () => this.handleToggleDropdown(), "aria-expanded": String(this.isOpen), "aria-haspopup": "listbox" }, entry ? (index.h("img", { class: "co-phone-field__flag", src: `https://flagcdn.com/w40/${entry.iso2.toLowerCase()}.png`, alt: entry.iso2 })) : (index.h("co-icon", { name: "phone", size: 16 })), index.h("span", { key: '122cd3a7b4f363554410c7a37df3331b91e4bc81', class: "co-phone-field__dial-code" }, entry ? entry.dialCode : ''), index.h("span", { key: '3d3d8691ba489bbe093f99a6141323f2620fd6a8', class: "co-phone-field__chevron" }, index.h("co-icon", { key: 'adab28c8fb4f1d6838dd0e400494656d0bc50812', name: "caret-down", size: 14 }))), index.h("input", { key: '13214ef8043c4984fcab73e7971e836039d8b469', class: "co-phone-field__input", type: "tel", placeholder: this.placeholder, value: this.numberPart, disabled: this.disabled, onInput: (e) => this.handleNumberInput(e) })), this.isOpen && (index.h("div", { key: 'b993dff8a4ad5ef53b7f50849591310ec3df54f5', class: "co-phone-field__dropdown", role: "listbox" }, index.h("div", { key: '95db7d412dbb49ebebda43e7dc13b9f763f2e3e1', class: "co-phone-field__search" }, index.h("input", { key: 'cd97d9422f0b2ee04de398a4ddd38500664d3828', class: "co-phone-field__search-input", type: "text", placeholder: "Search country...", value: this.searchQuery, onInput: (e) => this.handleSearchInput(e), autoFocus: true })), index.h("div", { key: 'f0a8c53ed8a8a2e212f6bb2da2883c3efa7eab1e', class: "co-phone-field__options" }, this.filteredCountries.map((d) => (index.h("button", { type: "button", key: d.iso2, class: `co-phone-field__option ${d.iso2 === this.selectedIso2 ? 'co-phone-field__option--selected' : ''}`, role: "option", "aria-selected": d.iso2 === this.selectedIso2 ? 'true' : 'false', onClick: () => this.handleCountrySelect(d) }, index.h("img", { class: "co-phone-field__option-flag", src: `https://flagcdn.com/w40/${d.iso2.toLowerCase()}.png`, alt: d.iso2 }), index.h("span", { class: "co-phone-field__option-name" }, this.renderName(d.name)), index.h("span", { class: "co-phone-field__option-code" }, d.dialCode))))))), this.helperText && (index.h("div", { key: 'c2b32d573c9c94720a403280a84547ad08c8a686', class: "co-phone-field__helper" }, this.statusIcon && (index.h("co-icon", { key: '9199cc2660052d07753d3a12b28a3ff60724c3ea', name: this.statusIcon, size: 14, weight: "fill", class: "co-phone-field__helper-icon" })), index.h("span", { key: '27462c9a1cefa4aa4cf43ab19924c1f59a399b68', class: "co-phone-field__helper-text" }, this.helperText)))));
364
+ return (index.h("div", { key: '46c764eaa95e5948b860341cd1a1a1468bc26920', class: `co-phone-field co-phone-field--${this.size} ${statusClass} ${this.disabled ? 'co-phone-field--disabled' : ''}` }, this.label && (index.h("label", { key: '25b5a320625765b5ce9ebca165c165b6b7423a0a', class: "co-phone-field__label" }, this.label, index.h(requiredMark.RequiredMark, { key: 'b04b160b13504030159a51cb6bc8e2c258dab0a8', required: this.required }))), index.h("div", { key: '3bbe98a398007123d7ad405f16e0c5093829999e', class: "co-phone-field__container" }, index.h("button", { key: '58b43e162f7966cd11ac5c3b4ece75612769863b', type: "button", class: "co-phone-field__selector", disabled: this.disabled, onClick: () => this.handleToggleDropdown(), "aria-expanded": String(this.isOpen), "aria-haspopup": "listbox" }, entry ? (index.h("img", { class: "co-phone-field__flag", src: `https://flagcdn.com/w40/${entry.iso2.toLowerCase()}.png`, alt: entry.iso2 })) : (index.h("co-icon", { name: "phone", size: 16 })), index.h("span", { key: '78b26caa474d9f3df6f0f39bcb3c731761354786', class: "co-phone-field__dial-code" }, entry ? entry.dialCode : ''), index.h("span", { key: 'd2753d9b70c19ce15b525e2bb6ed02d61aa15045', class: "co-phone-field__chevron" }, index.h("co-icon", { key: 'd94cffbcf3d0348c11a69cc3c7554dbe11d001b2', name: "caret-down", size: 14 }))), index.h("input", { key: 'ee111f5cb76785ebcbae917f9cd00d08e00d62c1', class: "co-phone-field__input", type: "tel", placeholder: this.placeholder, value: this.numberPart, disabled: this.disabled, onInput: (e) => this.handleNumberInput(e) })), this.isOpen && (index.h("div", { key: '9d86bccfa1643b1e6703b300a74587bed334cbc2', class: "co-phone-field__dropdown", role: "listbox" }, index.h("div", { key: '8dfeb48d11dc7d70e3acc499ad1390805aa7889d', class: "co-phone-field__search" }, index.h("input", { key: '1e673f71acfea7a50915dfa7a0e9e5d67a6e76cf', class: "co-phone-field__search-input", type: "text", placeholder: "Search country...", value: this.searchQuery, onInput: (e) => this.handleSearchInput(e), autoFocus: true })), index.h("div", { key: 'e28014f19f7002049657884b4d5ff0caf81eb3d8', class: "co-phone-field__options" }, this.filteredCountries.map((d) => (index.h("button", { type: "button", key: d.iso2, class: `co-phone-field__option ${d.iso2 === this.selectedIso2 ? 'co-phone-field__option--selected' : ''}`, role: "option", "aria-selected": d.iso2 === this.selectedIso2 ? 'true' : 'false', onClick: () => this.handleCountrySelect(d) }, index.h("img", { class: "co-phone-field__option-flag", src: `https://flagcdn.com/w40/${d.iso2.toLowerCase()}.png`, alt: d.iso2 }), index.h("span", { class: "co-phone-field__option-name" }, this.renderName(d.name)), index.h("span", { class: "co-phone-field__option-code" }, d.dialCode))))))), this.helperText && (index.h("div", { key: '2033c1184dbb72d5705d9e0ba392d77bc9629f4c', class: "co-phone-field__helper" }, this.statusIcon && (index.h("co-icon", { key: 'b3204decf888ec35cc0bf3f044ea5a8037fa8a53', name: this.statusIcon, size: 14, weight: "fill", class: "co-phone-field__helper-icon" })), index.h("span", { key: '697323bd25dbd70a4dc9872d1678d80e6c7bdeff', class: "co-phone-field__helper-text" }, this.helperText)))));
365
365
  }
366
366
  get host() { return index.getElement(this); }
367
367
  static get watchers() { return {