@prolibu-suite/cobalt-core 0.10.3 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (736) hide show
  1. package/custom-elements.json +4385 -389
  2. package/dist/cjs/co-accordion.cjs.entry.js +3 -3
  3. package/dist/cjs/co-action-bar.cjs.entry.js +3 -3
  4. package/dist/cjs/co-app-shell.cjs.entry.js +3 -3
  5. package/dist/cjs/co-audio-player.cjs.entry.js +4 -4
  6. package/dist/cjs/co-autocomplete.cjs.entry.js +2 -2
  7. package/dist/cjs/co-avatar-group.cjs.entry.js +1 -1
  8. package/dist/cjs/co-avatar.cjs.entry.js +7 -4
  9. package/dist/cjs/co-badge.cjs.entry.js +2 -2
  10. package/dist/cjs/co-bottom-sheet.cjs.entry.js +5 -5
  11. package/dist/cjs/co-breadcrumb-item.cjs.entry.js +3 -3
  12. package/dist/cjs/co-breadcrumb.cjs.entry.js +2 -2
  13. package/dist/cjs/co-button-group.cjs.entry.js +3 -3
  14. package/dist/cjs/co-button.cjs.entry.js +9 -7
  15. package/dist/cjs/co-calendar-month_2.cjs.entry.js +4 -4
  16. package/dist/cjs/co-calendar_3.cjs.entry.js +72 -27
  17. package/dist/cjs/co-card.cjs.entry.js +3 -3
  18. package/dist/cjs/co-carousel-item.cjs.entry.js +2 -2
  19. package/dist/cjs/co-carousel.cjs.entry.js +3 -3
  20. package/dist/cjs/co-checkbox-group.cjs.entry.js +1 -1
  21. package/dist/cjs/co-checkbox.cjs.entry.js +13 -5
  22. package/dist/cjs/co-chip_2.cjs.entry.js +28 -6
  23. package/dist/cjs/co-color-area.cjs.entry.js +169 -0
  24. package/dist/cjs/co-color-picker.cjs.entry.js +5 -5
  25. package/dist/cjs/co-color-slider.cjs.entry.js +189 -0
  26. package/dist/cjs/co-column-picker.cjs.entry.js +3 -3
  27. package/dist/cjs/co-combobox.cjs.entry.js +5 -5
  28. package/dist/cjs/co-command-search.cjs.entry.js +5 -5
  29. package/dist/cjs/co-data-table-pagination.cjs.entry.js +5 -5
  30. package/dist/cjs/co-data-table.cjs.entry.js +3 -3
  31. package/dist/cjs/co-date-picker.cjs.entry.js +2 -2
  32. package/dist/cjs/co-date-range-picker.cjs.entry.js +2 -2
  33. package/dist/cjs/co-date-range.cjs.entry.js +2 -2
  34. package/dist/cjs/co-date-time-picker.cjs.entry.js +4 -4
  35. package/dist/cjs/co-document-editor.cjs.entry.js +1161 -0
  36. package/dist/cjs/co-drive-card.cjs.entry.js +2 -2
  37. package/dist/cjs/co-drop-zone.cjs.entry.js +2 -2
  38. package/dist/cjs/co-emoji-picker.cjs.entry.js +3 -3
  39. package/dist/cjs/co-empty-state.cjs.entry.js +3 -3
  40. package/dist/cjs/co-event-calendar.cjs.entry.js +3 -3
  41. package/dist/cjs/co-event-popover.cjs.entry.js +3 -3
  42. package/dist/cjs/co-fab.cjs.entry.js +3 -3
  43. package/dist/cjs/co-file-field.cjs.entry.js +8 -8
  44. package/dist/cjs/co-file-type-tile.cjs.entry.js +3 -3
  45. package/dist/cjs/co-gradient-bar.cjs.entry.js +220 -0
  46. package/dist/cjs/co-helper-text.cjs.entry.js +3 -3
  47. package/dist/cjs/co-icon-button.cjs.entry.js +49 -9
  48. package/dist/cjs/co-icon.cjs.entry.js +3 -3
  49. package/dist/cjs/co-input.cjs.entry.js +14 -8
  50. package/dist/cjs/co-json-field.cjs.entry.js +5 -5
  51. package/dist/cjs/{co-tooltip.cjs.entry.js → co-kbd_2.cjs.entry.js} +194 -6
  52. package/dist/cjs/co-lightbox.cjs.entry.js +5 -5
  53. package/dist/cjs/co-list-footer.cjs.entry.js +2 -2
  54. package/dist/cjs/co-list-item.cjs.entry.js +5 -5
  55. package/dist/cjs/co-loader.cjs.entry.js +1 -1
  56. package/dist/cjs/co-media-thumb.cjs.entry.js +3 -3
  57. package/dist/cjs/co-menu-divider.cjs.entry.js +3 -3
  58. package/dist/cjs/co-menu-item.cjs.entry.js +41 -43
  59. package/dist/cjs/co-menu.cjs.entry.js +81 -5
  60. package/dist/cjs/co-modal.cjs.entry.js +350 -7
  61. package/dist/cjs/co-navbar.cjs.entry.js +3 -3
  62. package/dist/cjs/co-number-field.cjs.entry.js +5 -5
  63. package/dist/cjs/co-overlay.cjs.entry.js +8 -4
  64. package/dist/cjs/co-page-header.cjs.entry.js +2 -2
  65. package/dist/cjs/co-phone-field.cjs.entry.js +3 -3
  66. package/dist/cjs/co-popover.cjs.entry.js +81 -6
  67. package/dist/cjs/co-progress-bar.cjs.entry.js +3 -3
  68. package/dist/cjs/co-progress-circle.cjs.entry.js +3 -3
  69. package/dist/cjs/co-provider-logo_2.cjs.entry.js +2 -2
  70. package/dist/cjs/co-radio-group.cjs.entry.js +4 -4
  71. package/dist/cjs/co-radio.cjs.entry.js +4 -4
  72. package/dist/cjs/co-rating.cjs.entry.js +4 -4
  73. package/dist/cjs/co-ref-field.cjs.entry.js +5 -5
  74. package/dist/cjs/co-rich-text-editor.cjs.entry.js +26 -92
  75. package/dist/cjs/co-rich-text-toolbar.cjs.entry.js +79 -20
  76. package/dist/cjs/co-rich-text-viewer.cjs.entry.js +9 -2
  77. package/dist/cjs/co-row.cjs.entry.js +3 -3
  78. package/dist/cjs/co-segmented-bar.cjs.entry.js +3 -3
  79. package/dist/cjs/co-select.cjs.entry.js +158 -29
  80. package/dist/cjs/co-separator.cjs.entry.js +2 -2
  81. package/dist/cjs/co-sidebar-nav.cjs.entry.js +20 -5
  82. package/dist/cjs/co-sidebar.cjs.entry.js +3 -3
  83. package/dist/cjs/co-slider.cjs.entry.js +203 -23
  84. package/dist/cjs/co-swatch-grid.cjs.entry.js +121 -0
  85. package/dist/cjs/co-switch.cjs.entry.js +5 -5
  86. package/dist/cjs/co-tab-group.cjs.entry.js +113 -4
  87. package/dist/cjs/co-tab.cjs.entry.js +15 -5
  88. package/dist/cjs/co-tags-field.cjs.entry.js +8 -8
  89. package/dist/cjs/co-textarea.cjs.entry.js +6 -6
  90. package/dist/cjs/co-tile.cjs.entry.js +61 -0
  91. package/dist/cjs/co-time-field.cjs.entry.js +2 -2
  92. package/dist/cjs/co-toast.cjs.entry.js +3 -3
  93. package/dist/cjs/co-toggle-button-group.cjs.entry.js +26 -5
  94. package/dist/cjs/co-toggle-button.cjs.entry.js +67 -6
  95. package/dist/cjs/co-transfer-list.cjs.entry.js +3 -3
  96. package/dist/cjs/co-tree-item.cjs.entry.js +110 -0
  97. package/dist/cjs/co-video.cjs.entry.js +3 -3
  98. package/dist/cjs/cobalt.cjs.js +2 -2
  99. package/dist/cjs/{color-CML2Cfdh.js → color-DQVrQGi0.js} +10 -5
  100. package/dist/cjs/{fieldChip-B6YIGU1V.js → fieldChip-C7MxxBVO.js} +1 -1
  101. package/dist/cjs/gradientStops-CMpH4fB_.js +153 -0
  102. package/dist/cjs/hsv-DpfSF3M2.js +95 -0
  103. package/dist/cjs/{index-MDAnKsze.js → index-bHoidDwv.js} +67 -27
  104. package/dist/cjs/index-oMHzCXm6.js +144 -0
  105. package/dist/cjs/loader.cjs.js +2 -2
  106. package/dist/cjs/{index-2kMmd5-a.js → pagination-DV43TRj9.js} +1780 -297
  107. package/dist/cjs/{positioning-CyatXeT_.js → positioning-CILo5esi.js} +45 -18
  108. package/dist/cjs/{requiredMark-D-t-IPN0.js → requiredMark-21yHvvZS.js} +1 -1
  109. package/dist/cjs/rich-text-host-ueFSfW-6.js +119 -0
  110. package/dist/cjs/{richTextI18n-B28uAhh4.js → richTextI18n-DXGIv5w1.js} +45 -0
  111. package/dist/cjs/submenu-RlaX6irw.js +65 -0
  112. package/dist/cjs/{toolbar-config-CYACt9hh.js → toolbar-config-DczL6C4W.js} +32 -0
  113. package/dist/cobalt/cobalt.css +1 -1
  114. package/dist/cobalt/cobalt.esm.js +1 -1
  115. package/dist/cobalt/{p-ee149fd2.entry.js → p-05000ef3.entry.js} +1 -1
  116. package/dist/cobalt/p-06689166.entry.js +1 -0
  117. package/dist/cobalt/{p-1dc55e43.entry.js → p-0a5cfed0.entry.js} +1 -1
  118. package/dist/cobalt/p-1289131f.entry.js +1 -0
  119. package/dist/cobalt/{p-c7d7d7f7.entry.js → p-136beb2c.entry.js} +1 -1
  120. package/dist/cobalt/{p-b437eff6.entry.js → p-1693b614.entry.js} +1 -1
  121. package/dist/cobalt/p-1bfb69ae.entry.js +1 -0
  122. package/dist/cobalt/{p-2c9dba2f.entry.js → p-1f3d5313.entry.js} +1 -1
  123. package/dist/cobalt/{p-b821d9de.entry.js → p-22233b31.entry.js} +1 -1
  124. package/dist/cobalt/{p-c30b4cb5.entry.js → p-26fa36f8.entry.js} +1 -1
  125. package/dist/cobalt/p-2794c500.entry.js +1 -0
  126. package/dist/cobalt/p-297b55cd.entry.js +1 -0
  127. package/dist/cobalt/{p-17244412.entry.js → p-2a2b0c7a.entry.js} +1 -1
  128. package/dist/cobalt/{p-2636b7eb.entry.js → p-2e5702a0.entry.js} +1 -1
  129. package/dist/cobalt/p-3011c84f.entry.js +1 -0
  130. package/dist/cobalt/{p-4d65e713.entry.js → p-30760f77.entry.js} +1 -1
  131. package/dist/cobalt/{p-6dd220e0.entry.js → p-3b9a8e86.entry.js} +1 -1
  132. package/dist/cobalt/p-4111fefa.entry.js +1 -0
  133. package/dist/cobalt/{p-a32b20eb.entry.js → p-44edde81.entry.js} +1 -1
  134. package/dist/cobalt/{p-292b0389.entry.js → p-45007758.entry.js} +1 -1
  135. package/dist/cobalt/p-48c23310.entry.js +1 -0
  136. package/dist/cobalt/p-4b327483.entry.js +1 -0
  137. package/dist/cobalt/p-4c6caa41.entry.js +1 -0
  138. package/dist/cobalt/{p-000a15b8.entry.js → p-5534a64f.entry.js} +1 -1
  139. package/dist/cobalt/p-5573985a.entry.js +1 -0
  140. package/dist/cobalt/p-57d250ad.entry.js +1 -0
  141. package/dist/cobalt/{p-826ee074.entry.js → p-59d3e8fc.entry.js} +1 -1
  142. package/dist/cobalt/{p-4592ca00.entry.js → p-5a32b9a2.entry.js} +1 -1
  143. package/dist/cobalt/p-5b2aa70e.entry.js +1 -0
  144. package/dist/cobalt/{p-d29bb0fa.entry.js → p-5d6e02dd.entry.js} +1 -1
  145. package/dist/cobalt/{p-623cc195.entry.js → p-608d251d.entry.js} +1 -1
  146. package/dist/cobalt/{p-011dc80b.entry.js → p-66fc1528.entry.js} +1 -1
  147. package/dist/cobalt/{p-11c5ce78.entry.js → p-67ad9544.entry.js} +1 -1
  148. package/dist/cobalt/{p-290066ef.entry.js → p-6c157ea2.entry.js} +1 -1
  149. package/dist/cobalt/{p-a2462d7a.entry.js → p-6d541199.entry.js} +1 -1
  150. package/dist/cobalt/{p-58d9b650.entry.js → p-7376f4ed.entry.js} +1 -1
  151. package/dist/cobalt/{p-39a50e7f.entry.js → p-7569375a.entry.js} +1 -1
  152. package/dist/cobalt/{p-7b5c555c.entry.js → p-763698b3.entry.js} +1 -1
  153. package/dist/cobalt/{p-f57dffca.entry.js → p-7675cebe.entry.js} +1 -1
  154. package/dist/cobalt/p-78a20284.entry.js +1 -0
  155. package/dist/cobalt/{p-aa9400bf.entry.js → p-7f3523ce.entry.js} +1 -1
  156. package/dist/cobalt/{p-24196410.entry.js → p-86b6fd81.entry.js} +1 -1
  157. package/dist/cobalt/{p-996f4e38.entry.js → p-889563d5.entry.js} +1 -1
  158. package/dist/cobalt/{p-eadfd661.entry.js → p-8ab5b396.entry.js} +1 -1
  159. package/dist/cobalt/{p-c91d4fc6.entry.js → p-8b2e4579.entry.js} +1 -1
  160. package/dist/cobalt/p-8cd3acaa.entry.js +1 -0
  161. package/dist/cobalt/{p-23ab0cc5.entry.js → p-8f701eac.entry.js} +1 -1
  162. package/dist/cobalt/p-90fad0f9.entry.js +1 -0
  163. package/dist/cobalt/{p-76249983.entry.js → p-97a4fbba.entry.js} +1 -1
  164. package/dist/cobalt/p-9b46a8fe.entry.js +1 -0
  165. package/dist/cobalt/{p-ee2023da.entry.js → p-9bee9dc8.entry.js} +1 -1
  166. package/dist/cobalt/{p-2f9cbbd5.entry.js → p-9cf10331.entry.js} +1 -1
  167. package/dist/cobalt/p-9dc01092.entry.js +1 -0
  168. package/dist/cobalt/p-9e406172.entry.js +1 -0
  169. package/dist/cobalt/p-B1JT7us1.js +1 -0
  170. package/dist/cobalt/{p-BRbgGqLw.js → p-BVGGRfNG.js} +1 -1
  171. package/dist/cobalt/p-BmdKHBZP.js +1 -0
  172. package/dist/cobalt/p-BtliEQAT.js +1 -0
  173. package/dist/cobalt/p-COJdaKBU.js +1 -0
  174. package/dist/cobalt/{p-BAYo-RBt.js → p-CRxTFT_z.js} +1 -1
  175. package/dist/cobalt/p-CYN5B3IQ.js +1 -0
  176. package/dist/cobalt/p-DJkaRtbb.js +2 -0
  177. package/dist/cobalt/p-DU-KOQ8L.js +1 -0
  178. package/dist/cobalt/p-DXLeDZvr.js +1 -0
  179. package/dist/cobalt/{p-D_zA1Pv4.js → p-DgJovDdy.js} +1 -1
  180. package/dist/cobalt/p-RVQJEYxa.js +1 -0
  181. package/dist/cobalt/{p-1861fe41.entry.js → p-a07dedd1.entry.js} +1 -1
  182. package/dist/cobalt/{p-08e42e00.entry.js → p-a336178b.entry.js} +1 -1
  183. package/dist/cobalt/{p-f9a7b7c6.entry.js → p-a52ed6ff.entry.js} +1 -1
  184. package/dist/cobalt/{p-aaca6dab.entry.js → p-a930cdd7.entry.js} +1 -1
  185. package/dist/cobalt/{p-eb82358d.entry.js → p-b1994bb4.entry.js} +1 -1
  186. package/dist/cobalt/p-b2b13da8.entry.js +1 -0
  187. package/dist/cobalt/{p-c2ebf0ec.entry.js → p-b5ec4286.entry.js} +1 -1
  188. package/dist/cobalt/p-b9401dd7.entry.js +1 -0
  189. package/dist/cobalt/p-b9dfb333.entry.js +1 -0
  190. package/dist/cobalt/p-bc3ba0cd.entry.js +1 -0
  191. package/dist/cobalt/{p-d375014b.entry.js → p-bc4fbfa6.entry.js} +1 -1
  192. package/dist/cobalt/{p-d0b2c418.entry.js → p-c109a1e1.entry.js} +1 -1
  193. package/dist/cobalt/{p-ee9a623d.entry.js → p-c1caa112.entry.js} +1 -1
  194. package/dist/cobalt/p-c9990662.entry.js +1 -0
  195. package/dist/cobalt/p-cc4b51fa.entry.js +1 -0
  196. package/dist/cobalt/p-cc5989e9.entry.js +1 -0
  197. package/dist/cobalt/{p-e4264532.entry.js → p-ce2b2048.entry.js} +1 -1
  198. package/dist/cobalt/p-d1c378ff.entry.js +1 -0
  199. package/dist/cobalt/p-d1e83525.entry.js +1 -0
  200. package/dist/cobalt/{p-59963937.entry.js → p-d1f47915.entry.js} +1 -1
  201. package/dist/cobalt/{p-28764b8e.entry.js → p-d4979025.entry.js} +1 -1
  202. package/dist/cobalt/p-d6e7c258.entry.js +1 -0
  203. package/dist/cobalt/p-d75d2f3d.entry.js +1 -0
  204. package/dist/cobalt/p-db42c4ab.entry.js +1 -0
  205. package/dist/cobalt/{p-44c4e4a3.entry.js → p-e4ff2fcb.entry.js} +1 -1
  206. package/dist/cobalt/p-e6116149.entry.js +1 -0
  207. package/dist/cobalt/{p-0c004735.entry.js → p-e99ddf9c.entry.js} +1 -1
  208. package/dist/cobalt/{p-1cc818ca.entry.js → p-ea24eea8.entry.js} +1 -1
  209. package/dist/cobalt/{p-07416e31.entry.js → p-ea564148.entry.js} +1 -1
  210. package/dist/cobalt/{p-8471abe2.entry.js → p-ec7a6bf2.entry.js} +1 -1
  211. package/dist/cobalt/{p-fb2d1144.entry.js → p-ee42dca6.entry.js} +1 -1
  212. package/dist/cobalt/{p-49834b8e.entry.js → p-ee88ec40.entry.js} +1 -1
  213. package/dist/cobalt/p-eeb114da.entry.js +1 -0
  214. package/dist/cobalt/{p-f6691108.entry.js → p-f0898e21.entry.js} +1 -1
  215. package/dist/cobalt/p-f246946a.entry.js +1 -0
  216. package/dist/cobalt/{p-b90d41e4.entry.js → p-f5934cd9.entry.js} +1 -1
  217. package/dist/cobalt/p-f5e1873d.entry.js +1 -0
  218. package/dist/cobalt/p-f60bd4d6.entry.js +1 -0
  219. package/dist/cobalt/p-f813569c.entry.js +1 -0
  220. package/dist/cobalt/{p-f7eb1a40.entry.js → p-f8c7941f.entry.js} +1 -1
  221. package/dist/cobalt/{p-44ea675f.entry.js → p-f8d3c71e.entry.js} +1 -1
  222. package/dist/cobalt/{p-91e73a92.entry.js → p-ffbe955a.entry.js} +1 -1
  223. package/dist/cobalt/p-xnrKkNWQ.js +1 -0
  224. package/dist/collection/collection-manifest.json +8 -0
  225. package/dist/collection/components/co-accordion/co-accordion.js +2 -2
  226. package/dist/collection/components/co-action-bar/co-action-bar.js +2 -2
  227. package/dist/collection/components/co-app-shell/co-app-shell.js +2 -2
  228. package/dist/collection/components/co-audio-player/co-audio-player.js +3 -3
  229. package/dist/collection/components/co-autocomplete/co-autocomplete.js +1 -1
  230. package/dist/collection/components/co-avatar/co-avatar.css +11 -2
  231. package/dist/collection/components/co-avatar/co-avatar.js +7 -4
  232. package/dist/collection/components/co-avatar-group/co-avatar-group.js +1 -1
  233. package/dist/collection/components/co-badge/co-badge.js +1 -1
  234. package/dist/collection/components/co-bottom-sheet/co-bottom-sheet.js +4 -4
  235. package/dist/collection/components/co-breadcrumb/co-breadcrumb.js +1 -1
  236. package/dist/collection/components/co-breadcrumb-item/co-breadcrumb-item.js +2 -2
  237. package/dist/collection/components/co-button/co-button.css +73 -6
  238. package/dist/collection/components/co-button/co-button.js +33 -11
  239. package/dist/collection/components/co-button-group/co-button-group.js +2 -2
  240. package/dist/collection/components/co-calendar/calendarMarks.js +40 -0
  241. package/dist/collection/components/co-calendar/co-calendar.css +11 -1
  242. package/dist/collection/components/co-calendar/co-calendar.js +82 -20
  243. package/dist/collection/components/co-calendar-month/co-calendar-month.js +1 -1
  244. package/dist/collection/components/co-calendar-timegrid/co-calendar-timegrid.js +2 -2
  245. package/dist/collection/components/co-card/co-card.js +2 -2
  246. package/dist/collection/components/co-carousel/co-carousel.js +2 -2
  247. package/dist/collection/components/co-carousel-item/co-carousel-item.js +1 -1
  248. package/dist/collection/components/co-checkbox/co-checkbox.css +43 -1
  249. package/dist/collection/components/co-checkbox/co-checkbox.js +31 -3
  250. package/dist/collection/components/co-checkbox-group/co-checkbox-group.js +1 -1
  251. package/dist/collection/components/co-chip/co-chip.js +2 -2
  252. package/dist/collection/components/co-color-area/co-color-area.css +83 -0
  253. package/dist/collection/components/co-color-area/co-color-area.js +341 -0
  254. package/dist/collection/components/co-color-picker/co-color-picker.js +2 -2
  255. package/dist/collection/components/co-color-slider/co-color-slider.css +115 -0
  256. package/dist/collection/components/co-color-slider/co-color-slider.js +353 -0
  257. package/dist/collection/components/co-column-picker/co-column-picker.js +2 -2
  258. package/dist/collection/components/co-combobox/co-combobox.js +4 -4
  259. package/dist/collection/components/co-command-search/co-command-search.js +5 -5
  260. package/dist/collection/components/co-data-table/co-data-table.js +3 -3
  261. package/dist/collection/components/co-data-table-pagination/co-data-table-pagination.js +4 -4
  262. package/dist/collection/components/co-date-field/co-date-field.js +4 -4
  263. package/dist/collection/components/co-date-range/co-date-range.js +1 -1
  264. package/dist/collection/components/co-date-range-picker/co-date-range-picker.js +2 -2
  265. package/dist/collection/components/co-date-time-picker/co-date-time-picker.js +3 -3
  266. package/dist/collection/components/co-document-editor/change-throttle.js +30 -0
  267. package/dist/collection/components/co-document-editor/co-document-editor.css +438 -0
  268. package/dist/collection/components/co-document-editor/co-document-editor.js +1542 -0
  269. package/dist/collection/components/co-document-editor/document-props.js +40 -0
  270. package/dist/collection/components/co-document-editor/header-tools.js +11 -0
  271. package/dist/collection/components/co-document-editor/image-bar.js +66 -0
  272. package/dist/collection/components/co-document-editor/page-styles.js +90 -0
  273. package/dist/collection/components/co-document-editor/zoom.js +45 -0
  274. package/dist/collection/components/co-drive-card/co-drive-card.js +1 -1
  275. package/dist/collection/components/co-drop-zone/co-drop-zone.js +1 -1
  276. package/dist/collection/components/co-emoji-picker/co-emoji-picker.js +2 -2
  277. package/dist/collection/components/co-empty-state/co-empty-state.js +2 -2
  278. package/dist/collection/components/co-event-calendar/co-event-calendar.js +2 -2
  279. package/dist/collection/components/co-event-popover/co-event-popover.js +1 -1
  280. package/dist/collection/components/co-fab/co-fab.js +2 -2
  281. package/dist/collection/components/co-file-field/co-file-field.js +6 -6
  282. package/dist/collection/components/co-file-type-tile/co-file-type-tile.js +2 -2
  283. package/dist/collection/components/co-gradient-bar/co-gradient-bar.css +138 -0
  284. package/dist/collection/components/co-gradient-bar/co-gradient-bar.js +407 -0
  285. package/dist/collection/components/co-helper-text/co-helper-text.js +2 -2
  286. package/dist/collection/components/co-icon/co-icon.js +2 -2
  287. package/dist/collection/components/co-icon-button/co-icon-button.css +95 -19
  288. package/dist/collection/components/co-icon-button/co-icon-button.js +120 -10
  289. package/dist/collection/components/co-input/co-input.css +122 -0
  290. package/dist/collection/components/co-input/co-input.js +37 -11
  291. package/dist/collection/components/co-json-field/co-json-field.js +3 -3
  292. package/dist/collection/components/co-kbd/co-kbd.css +99 -0
  293. package/dist/collection/components/co-kbd/co-kbd.js +291 -0
  294. package/dist/collection/components/co-lightbox/co-lightbox.js +4 -4
  295. package/dist/collection/components/co-list-footer/co-list-footer.js +1 -1
  296. package/dist/collection/components/co-list-item/co-list-item.js +4 -4
  297. package/dist/collection/components/co-media-thumb/co-media-thumb.js +2 -2
  298. package/dist/collection/components/co-menu/co-menu.css +60 -0
  299. package/dist/collection/components/co-menu/co-menu.js +143 -3
  300. package/dist/collection/components/co-menu-divider/co-menu-divider.css +17 -0
  301. package/dist/collection/components/co-menu-divider/co-menu-divider.js +1 -1
  302. package/dist/collection/components/co-menu-item/co-menu-item.css +42 -6
  303. package/dist/collection/components/co-menu-item/co-menu-item.js +58 -4
  304. package/dist/collection/components/co-modal/co-modal.css +212 -1
  305. package/dist/collection/components/co-modal/co-modal.js +339 -9
  306. package/dist/collection/components/co-navbar/co-navbar.js +2 -2
  307. package/dist/collection/components/co-number-field/co-number-field.js +3 -3
  308. package/dist/collection/components/co-option-list/co-option-list.css +64 -21
  309. package/dist/collection/components/co-option-list/co-option-list.js +43 -3
  310. package/dist/collection/components/co-overlay/co-overlay.js +7 -3
  311. package/dist/collection/components/co-page-header/co-page-header.js +1 -1
  312. package/dist/collection/components/co-phone-field/co-phone-field.js +1 -1
  313. package/dist/collection/components/co-popover/co-popover.css +15 -2
  314. package/dist/collection/components/co-popover/co-popover.js +144 -5
  315. package/dist/collection/components/co-progress-bar/co-progress-bar.js +2 -2
  316. package/dist/collection/components/co-progress-circle/co-progress-circle.js +2 -2
  317. package/dist/collection/components/co-radio/co-radio.js +3 -3
  318. package/dist/collection/components/co-radio-group/co-radio-group.js +4 -4
  319. package/dist/collection/components/co-rating/co-rating.js +3 -3
  320. package/dist/collection/components/co-ref-field/co-ref-field.js +5 -5
  321. package/dist/collection/components/co-rich-text-editor/co-rich-text-editor.js +23 -90
  322. package/dist/collection/components/co-rich-text-toolbar/co-rich-text-toolbar.css +12 -0
  323. package/dist/collection/components/co-rich-text-toolbar/co-rich-text-toolbar.js +123 -18
  324. package/dist/collection/components/co-rich-text-viewer/co-rich-text-viewer.js +8 -1
  325. package/dist/collection/components/co-row/co-row.js +2 -2
  326. package/dist/collection/components/co-segmented-bar/co-segmented-bar.js +3 -3
  327. package/dist/collection/components/co-select/co-select.css +194 -10
  328. package/dist/collection/components/co-select/co-select.js +163 -32
  329. package/dist/collection/components/co-select/virtualRows.js +57 -0
  330. package/dist/collection/components/co-separator/co-separator.js +1 -1
  331. package/dist/collection/components/co-sidebar/co-sidebar.js +2 -2
  332. package/dist/collection/components/co-sidebar-nav/co-sidebar-nav.css +10 -0
  333. package/dist/collection/components/co-sidebar-nav/co-sidebar-nav.js +19 -4
  334. package/dist/collection/components/co-skeleton/co-skeleton.js +1 -1
  335. package/dist/collection/components/co-slider/co-slider.css +148 -5
  336. package/dist/collection/components/co-slider/co-slider.js +240 -21
  337. package/dist/collection/components/co-swatch-grid/co-swatch-grid.css +56 -0
  338. package/dist/collection/components/co-swatch-grid/co-swatch-grid.js +292 -0
  339. package/dist/collection/components/co-switch/co-switch.js +3 -3
  340. package/dist/collection/components/co-tab/co-tab.css +60 -0
  341. package/dist/collection/components/co-tab/co-tab.js +36 -6
  342. package/dist/collection/components/co-tab-group/co-tab-group.css +24 -0
  343. package/dist/collection/components/co-tab-group/co-tab-group.js +124 -2
  344. package/dist/collection/components/co-tab-group/revealTab.js +26 -0
  345. package/dist/collection/components/co-tags-field/co-tags-field.js +5 -5
  346. package/dist/collection/components/co-textarea/co-textarea.js +4 -4
  347. package/dist/collection/components/co-tile/co-tile.css +63 -0
  348. package/dist/collection/components/co-tile/co-tile.js +162 -0
  349. package/dist/collection/components/co-time-field/co-time-field.js +1 -1
  350. package/dist/collection/components/co-toast/co-toast.js +4 -4
  351. package/dist/collection/components/co-toggle-button/co-toggle-button.css +101 -0
  352. package/dist/collection/components/co-toggle-button/co-toggle-button.js +80 -8
  353. package/dist/collection/components/co-toggle-button-group/co-toggle-button-group.css +21 -0
  354. package/dist/collection/components/co-toggle-button-group/co-toggle-button-group.js +28 -7
  355. package/dist/collection/components/co-tooltip/co-tooltip.css +36 -0
  356. package/dist/collection/components/co-tooltip/co-tooltip.js +51 -3
  357. package/dist/collection/components/co-transfer-list/co-transfer-list.js +3 -3
  358. package/dist/collection/components/co-tree-item/co-tree-item.css +226 -0
  359. package/dist/collection/components/co-tree-item/co-tree-item.js +353 -0
  360. package/dist/collection/components/co-tree-item/treeItemI18n.js +16 -0
  361. package/dist/collection/components/co-video/co-video.js +2 -2
  362. package/dist/collection/utils/color.js +9 -5
  363. package/dist/collection/utils/dragMove.js +95 -0
  364. package/dist/collection/utils/gradientBarI18n.js +24 -0
  365. package/dist/collection/utils/gradientStops.js +142 -0
  366. package/dist/collection/utils/hsv.js +114 -0
  367. package/dist/collection/utils/kbdI18n.js +29 -0
  368. package/dist/collection/utils/positioning.js +44 -18
  369. package/dist/collection/utils/rich-text-host.js +109 -0
  370. package/dist/collection/utils/richTextI18n.js +45 -0
  371. package/dist/collection/utils/submenu.js +23 -3
  372. package/dist/collection/utils/swatchGridI18n.js +14 -0
  373. package/dist/collection/utils/test/fake-block-layout.js +41 -0
  374. package/dist/collection/utils/test/prosemirror-dom-shim.js +17 -0
  375. package/dist/collection/utils/test/shared-contract-css.js +9 -0
  376. package/dist/components/co-accordion.js +1 -1
  377. package/dist/components/co-action-bar.js +1 -1
  378. package/dist/components/co-app-shell.js +1 -1
  379. package/dist/components/co-audio-player.js +1 -1
  380. package/dist/components/co-autocomplete.js +1 -1
  381. package/dist/components/co-avatar-group.js +1 -1
  382. package/dist/components/co-avatar.js +1 -1
  383. package/dist/components/co-badge.js +1 -1
  384. package/dist/components/co-bottom-sheet.js +1 -1
  385. package/dist/components/co-breadcrumb-item.js +1 -1
  386. package/dist/components/co-breadcrumb.js +1 -1
  387. package/dist/components/co-button-group.js +1 -1
  388. package/dist/components/co-button.js +1 -1
  389. package/dist/components/co-calendar-month.js +1 -1
  390. package/dist/components/co-calendar-timegrid.js +1 -1
  391. package/dist/components/co-calendar.js +1 -1
  392. package/dist/components/co-card.js +1 -1
  393. package/dist/components/co-carousel-item.js +1 -1
  394. package/dist/components/co-carousel.js +1 -1
  395. package/dist/components/co-checkbox-group.js +1 -1
  396. package/dist/components/co-checkbox.js +1 -1
  397. package/dist/components/co-chip.js +1 -1
  398. package/dist/components/co-color-area.d.ts +11 -0
  399. package/dist/components/co-color-area.js +1 -0
  400. package/dist/components/co-color-picker.js +1 -1
  401. package/dist/components/co-color-slider.d.ts +11 -0
  402. package/dist/components/co-color-slider.js +1 -0
  403. package/dist/components/co-column-picker.js +1 -1
  404. package/dist/components/co-combobox.js +1 -1
  405. package/dist/components/co-command-search.js +1 -1
  406. package/dist/components/co-data-table-pagination.js +1 -1
  407. package/dist/components/co-data-table.js +1 -1
  408. package/dist/components/co-date-field.js +1 -1
  409. package/dist/components/co-date-picker.js +1 -1
  410. package/dist/components/co-date-range-picker.js +1 -1
  411. package/dist/components/co-date-range.js +1 -1
  412. package/dist/components/co-date-time-picker.js +1 -1
  413. package/dist/components/co-document-editor.d.ts +11 -0
  414. package/dist/components/co-document-editor.js +1 -0
  415. package/dist/components/co-drawer.js +1 -1
  416. package/dist/components/co-drive-card.js +1 -1
  417. package/dist/components/co-drop-zone.js +1 -1
  418. package/dist/components/co-emoji-picker.js +1 -1
  419. package/dist/components/co-empty-state.js +1 -1
  420. package/dist/components/co-event-calendar.js +1 -1
  421. package/dist/components/co-event-popover.js +1 -1
  422. package/dist/components/co-fab.js +1 -1
  423. package/dist/components/co-file-field.js +1 -1
  424. package/dist/components/co-file-type-tile.js +1 -1
  425. package/dist/components/co-gradient-bar.d.ts +11 -0
  426. package/dist/components/co-gradient-bar.js +1 -0
  427. package/dist/components/co-helper-text.js +1 -1
  428. package/dist/components/co-icon-button.js +1 -1
  429. package/dist/components/co-icon.js +1 -1
  430. package/dist/components/co-input.js +1 -1
  431. package/dist/components/co-json-field.js +1 -1
  432. package/dist/components/co-kbd.d.ts +11 -0
  433. package/dist/components/co-kbd.js +1 -0
  434. package/dist/components/co-lightbox.js +1 -1
  435. package/dist/components/co-list-footer.js +1 -1
  436. package/dist/components/co-list-item.js +1 -1
  437. package/dist/components/co-media-thumb.js +1 -1
  438. package/dist/components/co-menu-divider.js +1 -1
  439. package/dist/components/co-menu-item.js +1 -1
  440. package/dist/components/co-menu.js +1 -1
  441. package/dist/components/co-modal.js +1 -1
  442. package/dist/components/co-navbar.js +1 -1
  443. package/dist/components/co-number-field.js +1 -1
  444. package/dist/components/co-option-list.js +1 -1
  445. package/dist/components/co-overlay.js +1 -1
  446. package/dist/components/co-page-header.js +1 -1
  447. package/dist/components/co-phone-field.js +1 -1
  448. package/dist/components/co-popover.js +1 -1
  449. package/dist/components/co-progress-bar.js +1 -1
  450. package/dist/components/co-progress-circle.js +1 -1
  451. package/dist/components/co-radio-group.js +1 -1
  452. package/dist/components/co-radio.js +1 -1
  453. package/dist/components/co-rating.js +1 -1
  454. package/dist/components/co-ref-field.js +1 -1
  455. package/dist/components/co-rich-text-editor.js +1 -1
  456. package/dist/components/co-rich-text-toolbar.js +1 -1
  457. package/dist/components/co-rich-text-viewer.js +1 -1
  458. package/dist/components/co-row.js +1 -1
  459. package/dist/components/co-segmented-bar.js +1 -1
  460. package/dist/components/co-select.js +1 -1
  461. package/dist/components/co-separator.js +1 -1
  462. package/dist/components/co-sidebar-nav.js +1 -1
  463. package/dist/components/co-sidebar.js +1 -1
  464. package/dist/components/co-skeleton.js +1 -1
  465. package/dist/components/co-slider.js +1 -1
  466. package/dist/components/co-swatch-grid.d.ts +11 -0
  467. package/dist/components/co-swatch-grid.js +1 -0
  468. package/dist/components/co-switch.js +1 -1
  469. package/dist/components/co-tab-group.js +1 -1
  470. package/dist/components/co-tab.js +1 -1
  471. package/dist/components/co-tags-field.js +1 -1
  472. package/dist/components/co-textarea.js +1 -1
  473. package/dist/components/co-tile.d.ts +11 -0
  474. package/dist/components/co-tile.js +1 -0
  475. package/dist/components/co-time-field.js +1 -1
  476. package/dist/components/co-toast.js +1 -1
  477. package/dist/components/co-toggle-button-group.js +1 -1
  478. package/dist/components/co-toggle-button.js +1 -1
  479. package/dist/components/co-tooltip.js +1 -1
  480. package/dist/components/co-transfer-list.js +1 -1
  481. package/dist/components/co-tree-item.d.ts +11 -0
  482. package/dist/components/co-tree-item.js +1 -0
  483. package/dist/components/co-video.js +1 -1
  484. package/dist/components/index.js +1 -1
  485. package/dist/components/p-B1JT7us1.js +1 -0
  486. package/dist/components/{p-Nt4JJxbL.js → p-B20o5exO.js} +1 -1
  487. package/dist/components/{p-DNJAIVfI.js → p-B3kKOgsA.js} +1 -1
  488. package/dist/components/{p-P4HlMBlL.js → p-BIDSDP05.js} +1 -1
  489. package/dist/components/p-BOqtnWTJ.js +1 -0
  490. package/dist/components/p-BQltjDw5.js +1 -0
  491. package/dist/components/p-BR0LYW9v.js +1 -0
  492. package/dist/components/{p-BRbgGqLw.js → p-BVGGRfNG.js} +1 -1
  493. package/dist/components/p-BZDl9aFl.js +1 -0
  494. package/dist/components/p-BcXdId8y.js +1 -0
  495. package/dist/components/p-BmdKHBZP.js +1 -0
  496. package/dist/components/{p-NNxjElcX.js → p-BraiMwgs.js} +1 -1
  497. package/dist/components/p-BtliEQAT.js +1 -0
  498. package/dist/components/p-Bymi-A7C.js +1 -0
  499. package/dist/components/p-C-f8wTqe.js +1 -0
  500. package/dist/components/{p-BhCVadcA.js → p-C1jZYtUS.js} +1 -1
  501. package/dist/components/{p-CT2enQ6h.js → p-C3G8oPgU.js} +1 -1
  502. package/dist/components/{p-cndRd_-U.js → p-CGH3E8uK.js} +1 -1
  503. package/dist/components/p-COJdaKBU.js +1 -0
  504. package/dist/components/{p-BAYo-RBt.js → p-CRxTFT_z.js} +1 -1
  505. package/dist/components/{p-Du_CgT5E.js → p-CfJgypOl.js} +1 -1
  506. package/dist/components/{p-uxdXViMV.js → p-ChwSnCFf.js} +1 -1
  507. package/dist/components/{p-Dc_Kbari.js → p-CpGEV0iM.js} +1 -1
  508. package/dist/components/{p-DvR45CLa.js → p-D9or2g4j.js} +1 -1
  509. package/dist/components/{p-e5KibEs8.js → p-DJ468fPu.js} +1 -1
  510. package/dist/components/{p-DFlJMEJ-.js → p-DKXCr-hE.js} +1 -1
  511. package/dist/components/p-DU-KOQ8L.js +1 -0
  512. package/dist/components/p-DXLeDZvr.js +1 -0
  513. package/dist/components/{p-BGDqldEg.js → p-DfcPGitr.js} +1 -1
  514. package/dist/components/p-Dg-Ti_Bf.js +1 -0
  515. package/dist/components/p-Dh_eRYKu.js +1 -0
  516. package/dist/components/p-Dp650Gpp.js +1 -0
  517. package/dist/components/p-FA1kBmZ-.js +1 -0
  518. package/dist/components/p-RVQJEYxa.js +1 -0
  519. package/dist/components/p-d4rf3H8p.js +1 -0
  520. package/dist/components/{p-Dxa7c4Ap.js → p-dnaee7fS.js} +1 -1
  521. package/dist/components/p-f2xwcrXa.js +1 -0
  522. package/dist/esm/co-accordion.entry.js +3 -3
  523. package/dist/esm/co-action-bar.entry.js +3 -3
  524. package/dist/esm/co-app-shell.entry.js +3 -3
  525. package/dist/esm/co-audio-player.entry.js +4 -4
  526. package/dist/esm/co-autocomplete.entry.js +2 -2
  527. package/dist/esm/co-avatar-group.entry.js +1 -1
  528. package/dist/esm/co-avatar.entry.js +7 -4
  529. package/dist/esm/co-badge.entry.js +2 -2
  530. package/dist/esm/co-bottom-sheet.entry.js +5 -5
  531. package/dist/esm/co-breadcrumb-item.entry.js +3 -3
  532. package/dist/esm/co-breadcrumb.entry.js +2 -2
  533. package/dist/esm/co-button-group.entry.js +3 -3
  534. package/dist/esm/co-button.entry.js +9 -7
  535. package/dist/esm/co-calendar-month_2.entry.js +4 -4
  536. package/dist/esm/co-calendar_3.entry.js +72 -27
  537. package/dist/esm/co-card.entry.js +3 -3
  538. package/dist/esm/co-carousel-item.entry.js +2 -2
  539. package/dist/esm/co-carousel.entry.js +3 -3
  540. package/dist/esm/co-checkbox-group.entry.js +1 -1
  541. package/dist/esm/co-checkbox.entry.js +13 -5
  542. package/dist/esm/co-chip_2.entry.js +28 -6
  543. package/dist/esm/co-color-area.entry.js +167 -0
  544. package/dist/esm/co-color-picker.entry.js +5 -5
  545. package/dist/esm/co-color-slider.entry.js +187 -0
  546. package/dist/esm/co-column-picker.entry.js +3 -3
  547. package/dist/esm/co-combobox.entry.js +5 -5
  548. package/dist/esm/co-command-search.entry.js +5 -5
  549. package/dist/esm/co-data-table-pagination.entry.js +5 -5
  550. package/dist/esm/co-data-table.entry.js +3 -3
  551. package/dist/esm/co-date-picker.entry.js +2 -2
  552. package/dist/esm/co-date-range-picker.entry.js +2 -2
  553. package/dist/esm/co-date-range.entry.js +2 -2
  554. package/dist/esm/co-date-time-picker.entry.js +4 -4
  555. package/dist/esm/co-document-editor.entry.js +1159 -0
  556. package/dist/esm/co-drive-card.entry.js +2 -2
  557. package/dist/esm/co-drop-zone.entry.js +2 -2
  558. package/dist/esm/co-emoji-picker.entry.js +3 -3
  559. package/dist/esm/co-empty-state.entry.js +3 -3
  560. package/dist/esm/co-event-calendar.entry.js +3 -3
  561. package/dist/esm/co-event-popover.entry.js +3 -3
  562. package/dist/esm/co-fab.entry.js +3 -3
  563. package/dist/esm/co-file-field.entry.js +8 -8
  564. package/dist/esm/co-file-type-tile.entry.js +3 -3
  565. package/dist/esm/co-gradient-bar.entry.js +218 -0
  566. package/dist/esm/co-helper-text.entry.js +3 -3
  567. package/dist/esm/co-icon-button.entry.js +49 -9
  568. package/dist/esm/co-icon.entry.js +3 -3
  569. package/dist/esm/co-input.entry.js +14 -8
  570. package/dist/esm/co-json-field.entry.js +5 -5
  571. package/dist/esm/{co-tooltip.entry.js → co-kbd_2.entry.js} +194 -7
  572. package/dist/esm/co-lightbox.entry.js +5 -5
  573. package/dist/esm/co-list-footer.entry.js +2 -2
  574. package/dist/esm/co-list-item.entry.js +5 -5
  575. package/dist/esm/co-loader.entry.js +1 -1
  576. package/dist/esm/co-media-thumb.entry.js +3 -3
  577. package/dist/esm/co-menu-divider.entry.js +3 -3
  578. package/dist/esm/co-menu-item.entry.js +39 -41
  579. package/dist/esm/co-menu.entry.js +81 -5
  580. package/dist/esm/co-modal.entry.js +350 -7
  581. package/dist/esm/co-navbar.entry.js +3 -3
  582. package/dist/esm/co-number-field.entry.js +5 -5
  583. package/dist/esm/co-overlay.entry.js +8 -4
  584. package/dist/esm/co-page-header.entry.js +2 -2
  585. package/dist/esm/co-phone-field.entry.js +3 -3
  586. package/dist/esm/co-popover.entry.js +81 -6
  587. package/dist/esm/co-progress-bar.entry.js +3 -3
  588. package/dist/esm/co-progress-circle.entry.js +3 -3
  589. package/dist/esm/co-provider-logo_2.entry.js +2 -2
  590. package/dist/esm/co-radio-group.entry.js +4 -4
  591. package/dist/esm/co-radio.entry.js +4 -4
  592. package/dist/esm/co-rating.entry.js +4 -4
  593. package/dist/esm/co-ref-field.entry.js +5 -5
  594. package/dist/esm/co-rich-text-editor.entry.js +26 -92
  595. package/dist/esm/co-rich-text-toolbar.entry.js +79 -20
  596. package/dist/esm/co-rich-text-viewer.entry.js +9 -2
  597. package/dist/esm/co-row.entry.js +3 -3
  598. package/dist/esm/co-segmented-bar.entry.js +3 -3
  599. package/dist/esm/co-select.entry.js +158 -29
  600. package/dist/esm/co-separator.entry.js +2 -2
  601. package/dist/esm/co-sidebar-nav.entry.js +20 -5
  602. package/dist/esm/co-sidebar.entry.js +3 -3
  603. package/dist/esm/co-slider.entry.js +203 -23
  604. package/dist/esm/co-swatch-grid.entry.js +119 -0
  605. package/dist/esm/co-switch.entry.js +5 -5
  606. package/dist/esm/co-tab-group.entry.js +113 -4
  607. package/dist/esm/co-tab.entry.js +15 -5
  608. package/dist/esm/co-tags-field.entry.js +8 -8
  609. package/dist/esm/co-textarea.entry.js +6 -6
  610. package/dist/esm/co-tile.entry.js +59 -0
  611. package/dist/esm/co-time-field.entry.js +2 -2
  612. package/dist/esm/co-toast.entry.js +3 -3
  613. package/dist/esm/co-toggle-button-group.entry.js +26 -5
  614. package/dist/esm/co-toggle-button.entry.js +67 -6
  615. package/dist/esm/co-transfer-list.entry.js +3 -3
  616. package/dist/esm/co-tree-item.entry.js +108 -0
  617. package/dist/esm/co-video.entry.js +3 -3
  618. package/dist/esm/cobalt.js +3 -3
  619. package/dist/esm/{color-BRbgGqLw.js → color-BVGGRfNG.js} +10 -6
  620. package/dist/esm/{fieldChip-uyggU8VV.js → fieldChip-B2ctp2m6.js} +1 -1
  621. package/dist/esm/gradientStops-DDK0y8ra.js +145 -0
  622. package/dist/esm/hsv-COJdaKBU.js +90 -0
  623. package/dist/esm/index-Cpo8HTwr.js +142 -0
  624. package/dist/esm/{index-DH5lfRNj.js → index-DJkaRtbb.js} +67 -28
  625. package/dist/esm/loader.js +3 -3
  626. package/dist/esm/{index-BBIYyvq-.js → pagination-D9OfZUnY.js} +1728 -297
  627. package/dist/esm/{positioning-DFHRS9cJ.js → positioning-BtliEQAT.js} +45 -19
  628. package/dist/esm/{requiredMark-BCJUuZvC.js → requiredMark-D5C5NzOE.js} +1 -1
  629. package/dist/esm/rich-text-host-BmdKHBZP.js +111 -0
  630. package/dist/esm/{richTextI18n-BYKAgwq3.js → richTextI18n-xnrKkNWQ.js} +45 -0
  631. package/dist/esm/submenu-DU-KOQ8L.js +57 -0
  632. package/dist/esm/{toolbar-config-BAYo-RBt.js → toolbar-config-CRxTFT_z.js} +32 -0
  633. package/dist/types/components/co-avatar/co-avatar.d.ts +4 -2
  634. package/dist/types/components/co-button/co-button.d.ts +6 -4
  635. package/dist/types/components/co-calendar/calendarMarks.d.ts +15 -0
  636. package/dist/types/components/co-calendar/co-calendar.d.ts +16 -0
  637. package/dist/types/components/co-checkbox/co-checkbox.d.ts +7 -0
  638. package/dist/types/components/co-color-area/co-color-area.d.ts +64 -0
  639. package/dist/types/components/co-color-slider/co-color-slider.d.ts +61 -0
  640. package/dist/types/components/co-date-time-picker/co-date-time-picker.d.ts +1 -1
  641. package/dist/types/components/co-document-editor/change-throttle.d.ts +9 -0
  642. package/dist/types/components/co-document-editor/co-document-editor.d.ts +276 -0
  643. package/dist/types/components/co-document-editor/document-props.d.ts +6 -0
  644. package/dist/types/components/co-document-editor/header-tools.d.ts +11 -0
  645. package/dist/types/components/co-document-editor/image-bar.d.ts +50 -0
  646. package/dist/types/components/co-document-editor/page-styles.d.ts +1 -0
  647. package/dist/types/components/co-document-editor/zoom.d.ts +26 -0
  648. package/dist/types/components/co-gradient-bar/co-gradient-bar.d.ts +72 -0
  649. package/dist/types/components/co-icon-button/co-icon-button.d.ts +34 -2
  650. package/dist/types/components/co-input/co-input.d.ts +14 -5
  651. package/dist/types/components/co-kbd/co-kbd.d.ts +43 -0
  652. package/dist/types/components/co-menu/co-menu.d.ts +40 -1
  653. package/dist/types/components/co-menu-item/co-menu-item.d.ts +17 -0
  654. package/dist/types/components/co-modal/co-modal.d.ts +111 -2
  655. package/dist/types/components/co-option-list/co-option-list.d.ts +8 -0
  656. package/dist/types/components/co-option-list/optionListLogic.d.ts +3 -0
  657. package/dist/types/components/co-popover/co-popover.d.ts +38 -0
  658. package/dist/types/components/co-rich-text-editor/co-rich-text-editor.d.ts +2 -5
  659. package/dist/types/components/co-rich-text-toolbar/co-rich-text-toolbar.d.ts +17 -2
  660. package/dist/types/components/co-select/co-select.d.ts +47 -5
  661. package/dist/types/components/co-select/virtualRows.d.ts +44 -0
  662. package/dist/types/components/co-slider/co-slider.d.ts +143 -1
  663. package/dist/types/components/co-swatch-grid/co-swatch-grid.d.ts +37 -0
  664. package/dist/types/components/co-tab/co-tab.d.ts +12 -2
  665. package/dist/types/components/co-tab-group/co-tab-group.d.ts +37 -0
  666. package/dist/types/components/co-tab-group/revealTab.d.ts +29 -0
  667. package/dist/types/components/co-tile/co-tile.d.ts +40 -0
  668. package/dist/types/components/co-toggle-button/co-toggle-button.d.ts +37 -2
  669. package/dist/types/components/co-toggle-button-group/co-toggle-button-group.d.ts +20 -2
  670. package/dist/types/components/co-tooltip/co-tooltip.d.ts +12 -0
  671. package/dist/types/components/co-tree-item/co-tree-item.d.ts +73 -0
  672. package/dist/types/components/co-tree-item/treeItemI18n.d.ts +6 -0
  673. package/dist/types/components.d.ts +1748 -91
  674. package/dist/types/utils/color.d.ts +9 -1
  675. package/dist/types/utils/dragMove.d.ts +63 -0
  676. package/dist/types/utils/gradientBarI18n.d.ts +8 -0
  677. package/dist/types/utils/gradientStops.d.ts +63 -0
  678. package/dist/types/utils/hsv.d.ts +44 -0
  679. package/dist/types/utils/kbdI18n.d.ts +25 -0
  680. package/dist/types/utils/positioning.d.ts +24 -0
  681. package/dist/types/utils/rich-text-host.d.ts +41 -0
  682. package/dist/types/utils/richTextI18n.d.ts +15 -0
  683. package/dist/types/utils/submenu.d.ts +16 -2
  684. package/dist/types/utils/swatchGridI18n.d.ts +6 -0
  685. package/dist/types/utils/test/fake-block-layout.d.ts +7 -0
  686. package/dist/types/utils/test/prosemirror-dom-shim.d.ts +1 -0
  687. package/dist/types/utils/test/shared-contract-css.d.ts +9 -0
  688. package/package.json +5 -5
  689. package/dist/cobalt/p-0678c797.entry.js +0 -1
  690. package/dist/cobalt/p-216a63ee.entry.js +0 -1
  691. package/dist/cobalt/p-39dc4ec8.entry.js +0 -1
  692. package/dist/cobalt/p-3d31c575.entry.js +0 -1
  693. package/dist/cobalt/p-410bee4d.entry.js +0 -1
  694. package/dist/cobalt/p-416795f5.entry.js +0 -1
  695. package/dist/cobalt/p-56551580.entry.js +0 -1
  696. package/dist/cobalt/p-58137c9e.entry.js +0 -1
  697. package/dist/cobalt/p-5a3e4c81.entry.js +0 -1
  698. package/dist/cobalt/p-5c756787.entry.js +0 -1
  699. package/dist/cobalt/p-67f3b9d6.entry.js +0 -1
  700. package/dist/cobalt/p-6a4f3179.entry.js +0 -1
  701. package/dist/cobalt/p-71cbc53c.entry.js +0 -1
  702. package/dist/cobalt/p-72e52af7.entry.js +0 -1
  703. package/dist/cobalt/p-8530ad16.entry.js +0 -1
  704. package/dist/cobalt/p-8a74bf7d.entry.js +0 -1
  705. package/dist/cobalt/p-8e05b979.entry.js +0 -1
  706. package/dist/cobalt/p-8ebc0c12.entry.js +0 -1
  707. package/dist/cobalt/p-8f2199ff.entry.js +0 -1
  708. package/dist/cobalt/p-9246e09c.entry.js +0 -1
  709. package/dist/cobalt/p-99a655f6.entry.js +0 -1
  710. package/dist/cobalt/p-BYKAgwq3.js +0 -1
  711. package/dist/cobalt/p-CJW9H3Gi.js +0 -1
  712. package/dist/cobalt/p-DFHRS9cJ.js +0 -1
  713. package/dist/cobalt/p-DH5lfRNj.js +0 -2
  714. package/dist/cobalt/p-a1b422ca.entry.js +0 -1
  715. package/dist/cobalt/p-ade07307.entry.js +0 -1
  716. package/dist/cobalt/p-b698188c.entry.js +0 -1
  717. package/dist/cobalt/p-bde32f8b.entry.js +0 -1
  718. package/dist/cobalt/p-db805569.entry.js +0 -1
  719. package/dist/cobalt/p-e3aae282.entry.js +0 -1
  720. package/dist/cobalt/p-e49a564c.entry.js +0 -1
  721. package/dist/cobalt/p-ef301976.entry.js +0 -1
  722. package/dist/cobalt/p-f4e1c3c3.entry.js +0 -1
  723. package/dist/cobalt/p-fMqVDypp.js +0 -1
  724. package/dist/components/p-2EOI1nrz.js +0 -1
  725. package/dist/components/p-7TncUlLN.js +0 -1
  726. package/dist/components/p-B4NCaKrR.js +0 -1
  727. package/dist/components/p-BJh68Jqe.js +0 -1
  728. package/dist/components/p-BrAFTkAn.js +0 -1
  729. package/dist/components/p-Bsh0JMGf.js +0 -1
  730. package/dist/components/p-CJW9H3Gi.js +0 -1
  731. package/dist/components/p-CWCYYQrF.js +0 -1
  732. package/dist/components/p-D7Lhxz7L.js +0 -1
  733. package/dist/components/p-DFHRS9cJ.js +0 -1
  734. package/dist/components/p-DRP8D9ro.js +0 -1
  735. package/dist/components/p-DTPYZwaZ.js +0 -1
  736. package/dist/components/p-Dcg4krSX.js +0 -1
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-MDAnKsze.js');
3
+ var index = require('./index-bHoidDwv.js');
4
4
 
5
- const coSliderCss = () => `:host{display:block;font-family:var(--co-font-family-primary);font-size:var(--co-font-size-14);line-height:1}.co-slider{display:flex;flex-direction:column;gap:var(--co-spacing-sm2)}.co-slider__labels{display:flex;align-items:center;justify-content:space-between;padding:0 var(--co-spacing-xs)}.co-slider__labels-left{display:flex;align-items:center;gap:var(--co-spacing-sm2)}.co-slider__label{color:var(--co-semantic-text-secondary);font-size:var(--co-font-size-14);font-weight:400;cursor:default}.co-slider__secondary-label{color:var(--co-semantic-text-muted);font-size:var(--co-font-size-14);font-weight:400}.co-slider__value{color:var(--co-semantic-text-default);font-size:var(--co-font-size-14);font-weight:500;font-variant-numeric:tabular-nums}.co-slider--disabled .co-slider__label,.co-slider--disabled .co-slider__secondary-label,.co-slider--disabled .co-slider__value{color:var(--co-semantic-text-disabled)}.co-slider__track-wrapper{position:relative;height:24px;display:flex;align-items:center;cursor:pointer;touch-action:none}.co-slider--disabled .co-slider__track-wrapper{cursor:not-allowed}.co-slider__track{width:100%;height:4px;background:var(--co-semantic-border-subtle);border-radius:var(--co-border-radius-full);overflow:hidden}.co-slider__fill{height:100%;background:var(--co-semantic-surface-primary);border-radius:var(--co-border-radius-full);transition:width var(--co-motion-duration-instant) var(--co-motion-ease-out)}.co-slider--disabled .co-slider__fill{background:var(--co-semantic-text-disabled)}.co-slider--error .co-slider__fill{background:var(--co-semantic-status-error)}.co-slider--success .co-slider__fill{background:var(--co-semantic-status-success)}.co-slider--warning .co-slider__fill{background:var(--co-color-status-review)}.co-slider__thumb{position:absolute;top:50%;width:20px;height:20px;border-radius:var(--co-border-radius-full);background:var(--co-semantic-surface-primary);border:2px solid var(--co-semantic-surface-secondary);box-shadow:var(--co-semantic-control-shadow, 0 1px 4px rgba(0,0,0,0.12));transform:translate(-50%, -50%);transition:box-shadow var(--co-motion-duration-fast) var(--co-motion-ease-out), transform var(--co-motion-duration-fast) var(--co-motion-ease-out);pointer-events:none}.co-slider--dragging .co-slider__thumb{transform:translate(-50%, -50%) scale(1.15);box-shadow:0 0 0 4px var(--co-semantic-border-focus-ring)}.co-slider--dragging .co-slider__fill{transition:none}.co-slider--disabled .co-slider__thumb{background:var(--co-semantic-text-disabled)}.co-slider--error .co-slider__thumb{background:var(--co-semantic-status-error)}.co-slider--success .co-slider__thumb{background:var(--co-semantic-status-success)}.co-slider--warning .co-slider__thumb{background:var(--co-color-status-review)}.co-slider__marks{display:flex;justify-content:space-between;padding:0 var(--co-spacing-xs)}.co-slider__mark{color:var(--co-semantic-text-muted);font-size:var(--co-font-size-12);font-variant-numeric:tabular-nums}.co-slider__native{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;padding:0;margin:-1px}.co-slider__helper{display:flex;align-items:center;gap:var(--co-spacing-xs);padding:0 var(--co-spacing-xs)}.co-slider__helper-icon{flex-shrink:0;display:flex;align-items:center}.co-slider__helper-text{color:var(--co-semantic-text-muted);font-size:var(--co-font-size-14);font-weight:400;line-height:1}.co-slider__helper--error .co-slider__helper-icon,.co-slider__helper--error .co-slider__helper-text{color:var(--co-semantic-status-error)}.co-slider__helper--success .co-slider__helper-icon,.co-slider__helper--success .co-slider__helper-text{color:var(--co-semantic-status-success)}.co-slider__helper--warning .co-slider__helper-icon,.co-slider__helper--warning .co-slider__helper-text{color:var(--co-color-status-review)}.co-slider__helper--info .co-slider__helper-icon,.co-slider__helper--info .co-slider__helper-text{color:var(--co-semantic-status-info)}`;
5
+ const coSliderCss = () => `:host{display:block;font-family:var(--co-font-family-primary);font-size:var(--co-font-size-14);line-height:1}.co-slider{display:flex;flex-direction:column;gap:var(--co-spacing-sm2)}.co-slider__labels{display:flex;align-items:center;justify-content:space-between;padding:0 var(--co-spacing-xs)}.co-slider__labels-left{display:flex;align-items:center;gap:var(--co-spacing-sm2)}.co-slider__label{color:var(--co-semantic-text-secondary);font-size:var(--co-font-size-14);font-weight:400;cursor:default}.co-slider__secondary-label{color:var(--co-semantic-text-muted);font-size:var(--co-font-size-14);font-weight:400}.co-slider__value{color:var(--co-semantic-text-default);font-size:var(--co-font-size-14);font-weight:500;font-variant-numeric:tabular-nums}.co-slider--disabled .co-slider__label,.co-slider--disabled .co-slider__secondary-label,.co-slider--disabled .co-slider__value{color:var(--co-semantic-text-disabled)}.co-slider__track-wrapper{position:relative;height:max(24px, var(--co-slider-thumb-size, 24px));display:flex;align-items:center;cursor:pointer;touch-action:none}.co-slider--disabled .co-slider__track-wrapper{cursor:not-allowed}.co-slider__track{width:100%;height:var(--co-slider-track-thickness, 4px);background:var(--co-semantic-border-subtle);border-radius:var(--co-border-radius-full);overflow:hidden}.co-slider__fill{height:100%;background:var(--co-semantic-surface-primary);border-radius:var(--co-border-radius-full);transition:width var(--co-motion-duration-instant) var(--co-motion-ease-out)}.co-slider--disabled .co-slider__fill{background:var(--co-semantic-text-disabled)}.co-slider--error .co-slider__fill{background:var(--co-semantic-status-error)}.co-slider--success .co-slider__fill{background:var(--co-semantic-status-success)}.co-slider--warning .co-slider__fill{background:var(--co-color-status-review)}.co-slider__thumb{position:absolute;top:50%;box-sizing:border-box;width:var(--co-slider-thumb-size, 24px);height:var(--co-slider-thumb-size, 24px);border-radius:var(--co-border-radius-full);background:var(--co-semantic-surface-primary);border:var(--co-slider-thumb-border, 2px) solid var(--co-semantic-surface-secondary);box-shadow:var(--co-semantic-control-shadow, 0 1px 4px rgba(0,0,0,0.12));transform:translate(-50%, -50%);transition:box-shadow var(--co-motion-duration-fast) var(--co-motion-ease-out), transform var(--co-motion-duration-fast) var(--co-motion-ease-out);pointer-events:none}.co-slider--vertical .co-slider__track-wrapper{box-sizing:border-box;width:max(24px, var(--co-slider-thumb-size, 24px));height:var(--co-slider-vertical-length, 120px);flex-direction:column;justify-content:center;margin-inline:auto}.co-slider--vertical .co-slider__track{box-sizing:border-box;width:var(--co-slider-track-thickness, 4px);height:100%;display:flex;flex-direction:column;justify-content:flex-end}.co-slider--vertical .co-slider__fill{width:100%;flex-shrink:0;transition:height var(--co-motion-duration-instant) var(--co-motion-ease-out)}.co-slider--vertical .co-slider__thumb{top:auto;left:50%;transform:translate(-50%, 50%)}.co-slider--vertical.co-slider--dragging .co-slider__thumb{transform:translate(-50%, 50%) scale(1.15)}.co-slider--vertical .co-slider__native{writing-mode:vertical-rl;direction:rtl}.co-slider--vertical{display:grid;grid-template-columns:max-content;grid-auto-columns:max-content;justify-content:center}.co-slider--vertical .co-slider__labels,.co-slider--vertical .co-slider__track-wrapper,.co-slider--vertical .co-slider__helper{grid-column:1}.co-slider--vertical .co-slider__labels{gap:var(--co-spacing-sm2)}.co-slider--vertical .co-slider__marks{grid-column:2;flex-direction:column-reverse;justify-content:space-between;align-items:flex-start;padding:0}.co-slider--dragging .co-slider__thumb{transform:translate(-50%, -50%) scale(1.15);box-shadow:0 0 0 4px var(--co-semantic-border-focus-ring)}.co-slider--dragging .co-slider__fill{transition:none}.co-slider--disabled .co-slider__thumb{background:var(--co-semantic-text-disabled)}.co-slider--error .co-slider__thumb{background:var(--co-semantic-status-error)}.co-slider--success .co-slider__thumb{background:var(--co-semantic-status-success)}.co-slider--warning .co-slider__thumb{background:var(--co-color-status-review)}.co-slider__marks{display:flex;justify-content:space-between;padding:0 var(--co-spacing-xs)}.co-slider__mark{color:var(--co-semantic-text-muted);font-size:var(--co-font-size-12);font-variant-numeric:tabular-nums}.co-slider__native{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;padding:0;margin:-1px}.co-slider__helper{display:flex;align-items:center;gap:var(--co-spacing-xs);padding:0 var(--co-spacing-xs)}.co-slider__helper-icon{flex-shrink:0;display:flex;align-items:center}.co-slider__helper-text{color:var(--co-semantic-text-muted);font-size:var(--co-font-size-14);font-weight:400;line-height:1}.co-slider__helper--error .co-slider__helper-icon,.co-slider__helper--error .co-slider__helper-text{color:var(--co-semantic-status-error)}.co-slider__helper--success .co-slider__helper-icon,.co-slider__helper--success .co-slider__helper-text{color:var(--co-semantic-status-success)}.co-slider__helper--warning .co-slider__helper-icon,.co-slider__helper--warning .co-slider__helper-text{color:var(--co-color-status-review)}.co-slider__helper--info .co-slider__helper-icon,.co-slider__helper--info .co-slider__helper-text{color:var(--co-semantic-status-info)}`;
6
6
 
7
7
  const CoSlider = class {
8
8
  constructor(hostRef) {
@@ -19,28 +19,75 @@ const CoSlider = class {
19
19
  this.showValue = true;
20
20
  /** Show min/max marks */
21
21
  this.showMarks = false;
22
+ /**
23
+ * Eje del control. `horizontal` (default) es el slider de siempre: mismo
24
+ * markup, mismo CSS, mismos eventos — la variante es ADITIVA y ningún
25
+ * consumidor actual (prolibu-front-v2) cambia de comportamiento.
26
+ *
27
+ * `vertical` INVIERTE el eje como manda la convención de un control de
28
+ * volumen: arriba es MÁS. El relleno crece desde abajo, el thumb se posiciona
29
+ * por `bottom`, y el largo del riel se ajusta con la variable
30
+ * `--co-slider-vertical-length` (default 120px).
31
+ *
32
+ * NO lleva `reflect`: reflejar una prop de string con default escribiría
33
+ * `orientation="horizontal"` en el host de TODOS los consumidores actuales, y
34
+ * eso ya sería cambiarles el markup. El estilo cuelga de la clase interna
35
+ * `.co-slider--vertical`, que es nuestra.
36
+ */
37
+ this.orientation = 'horizontal';
22
38
  this.dragging = false;
39
+ /** ¿Algún `coInput` real durante el gesto? Sin cambio no hay `coChange` de cierre. */
40
+ this.changedInGesture = false;
23
41
  this.handlePointerDown = (e) => {
24
- if (this.disabled)
42
+ // Solo el botón primario; un segundo puntero (multitouch) no roba el gesto
43
+ // en curso. Sin el guard del botón, un clic DERECHO sobre el riel arrancaba
44
+ // un gesto que en macOS nunca veía su `pointerup` (se lo come el menú
45
+ // contextual): el slider seguía arrastrándose con cada movimiento del mouse
46
+ // hasta el clic siguiente, que remataba con un `coChange` espurio.
47
+ if (this.disabled || e.button !== 0 || this.dragging)
25
48
  return;
26
49
  e.preventDefault();
27
50
  this.dragging = true;
28
- const v = this.valueFromEvent(e.clientX);
29
- this.value = v;
30
- this.coInput.emit(v);
31
- const onMove = (ev) => {
32
- const val = this.valueFromEvent(ev.clientX);
33
- this.value = val;
34
- this.coInput.emit(val);
35
- };
36
- const onUp = () => {
37
- this.dragging = false;
51
+ this.dragPointerId = e.pointerId;
52
+ this.changedInGesture = false;
53
+ this.bindGesture();
54
+ this.commitInput(this.valueFromPointer(e.clientX, e.clientY));
55
+ };
56
+ this.handleGesturePointerMove = (e) => {
57
+ if (!this.isGesturePointer(e))
58
+ return;
59
+ this.commitInput(this.valueFromPointer(e.clientX, e.clientY));
60
+ };
61
+ /**
62
+ * Fin del gesto — `pointerup` y también `pointercancel`, igual que el
63
+ * `handlePointerEnd` de co-color-slider / co-color-area: cancelar TERMINA el
64
+ * gesto y CONFIRMA lo alcanzado, no revierte.
65
+ *
66
+ * (Una versión anterior de esta rama revertía al valor previo con un `coInput`
67
+ * de rollback, copiando el arrastre de `co-modal movable`. Se descartó: el
68
+ * modal mueve una posición cosmética que no tiene canal de commit, mientras
69
+ * que acá el valor ES estado del host. Los dos sliders del propio design
70
+ * system confirman al cancelar, un `input type="range"` nativo también
71
+ * conserva el valor en `pointercancel`, y revertir obligaba al host a saber
72
+ * absorber un `coInput` de vuelta atrás — contrato de más, distinto al de los
73
+ * hermanos.)
74
+ */
75
+ this.handleGestureEnd = (e) => {
76
+ if (!this.isGesturePointer(e))
77
+ return;
78
+ // Un clic sobre el valor actual (o en un extremo ya alcanzado) no cambia
79
+ // nada: sin `coChange`, igual que el teclado en el borde.
80
+ if (this.endGesture())
81
+ this.coChange.emit(this.value);
82
+ };
83
+ /** Perder el foco de la ventana (alt-tab, un iframe que se lo lleva) cierra
84
+ * el gesto igual que un `pointercancel`: sin esto, un puntero que nunca
85
+ * suelta su `pointerup` deja el arrastre vivo. */
86
+ this.handleWindowBlur = () => {
87
+ if (!this.dragging)
88
+ return;
89
+ if (this.endGesture())
38
90
  this.coChange.emit(this.value);
39
- document.removeEventListener('pointermove', onMove);
40
- document.removeEventListener('pointerup', onUp);
41
- };
42
- document.addEventListener('pointermove', onMove);
43
- document.addEventListener('pointerup', onUp);
44
91
  };
45
92
  this.handleInputChange = (e) => {
46
93
  const raw = parseFloat(e.target.value);
@@ -50,6 +97,47 @@ const CoSlider = class {
50
97
  this.coChange.emit(v);
51
98
  }
52
99
  };
100
+ /**
101
+ * Flechas de la variante VERTICAL: las resuelve el componente en vez de
102
+ * delegarlas al range nativo, y solo ahí — en horizontal este handler NO se
103
+ * engancha (ver `render`), así que el camino de siempre no cambia en nada.
104
+ *
105
+ * Por qué: la orientación vertical del input se consigue con
106
+ * `writing-mode: vertical-rl` + `direction: rtl` (ver co-slider.css). Un motor
107
+ * que ignore `writing-mode` en form controls pero sí honre `direction`
108
+ * (Safari 17.0–17.3, Firefox < 129) deja ←/→ INVERTIDOS. Manejadas acá, las
109
+ * cuatro flechas siguen el eje en cualquier motor — arriba/derecha suben,
110
+ * abajo/izquierda bajan, de a `step` — y el contrato queda testeable (jsdom no
111
+ * implementa el teclado del range nativo).
112
+ *
113
+ * PageUp/PageDown/Home/End siguen siendo del nativo. Emite `coChange` y no
114
+ * `coInput`, exactamente como el paso de teclado del horizontal
115
+ * (`handleInputChange`): un paso discreto es un commit, no un preview.
116
+ */
117
+ this.handleVerticalKeyDown = (e) => {
118
+ if (this.disabled)
119
+ return;
120
+ const dir = e.key === 'ArrowUp' || e.key === 'ArrowRight' ? 1
121
+ : e.key === 'ArrowDown' || e.key === 'ArrowLeft' ? -1
122
+ : 0;
123
+ if (dir === 0)
124
+ return;
125
+ e.preventDefault();
126
+ const next = this.snap(this.value + dir * this.step);
127
+ // En el borde no hay cambio → sin eventos, igual que el gesto.
128
+ if (next === this.value)
129
+ return;
130
+ this.value = next;
131
+ this.coChange.emit(next);
132
+ };
133
+ }
134
+ /**
135
+ * `=== 'vertical'` y no `!== 'horizontal'`: con `@stencil/vitest` las `@Prop`
136
+ * omitidas en `h()` llegan `undefined` (no se siembra el default), y un valor
137
+ * ausente tiene que caer del lado de SIEMPRE, que es el horizontal.
138
+ */
139
+ get isVertical() {
140
+ return this.orientation === 'vertical';
53
141
  }
54
142
  get percentage() {
55
143
  const range = this.max - this.min;
@@ -70,22 +158,114 @@ const CoSlider = class {
70
158
  const steps = Math.round((v - this.min) / this.step);
71
159
  return this.clamp(this.min + steps * this.step);
72
160
  }
73
- valueFromEvent(clientX) {
161
+ /**
162
+ * Valor bajo el puntero. En horizontal el eje va de `left` a `right`; en
163
+ * vertical va de ABAJO hacia arriba (`bottom - clientY`), así que acercarse
164
+ * al borde superior sube el valor.
165
+ *
166
+ * El guard de tamaño evita el `NaN` que salía de dividir por un riel de 0px
167
+ * (track sin medir todavía, o dentro de un contenedor colapsado).
168
+ */
169
+ valueFromPointer(clientX, clientY) {
74
170
  if (!this.trackEl)
75
171
  return this.value;
76
172
  const rect = this.trackEl.getBoundingClientRect();
77
- const ratio = Math.max(0, Math.min(1, (clientX - rect.left) / rect.width));
78
- const raw = this.min + ratio * (this.max - this.min);
173
+ const ratio = this.isVertical
174
+ ? rect.height > 0 ? (rect.bottom - clientY) / rect.height : 0
175
+ : rect.width > 0 ? (clientX - rect.left) / rect.width : 0;
176
+ const raw = this.min + Math.max(0, Math.min(1, ratio)) * (this.max - this.min);
79
177
  return this.snap(raw);
80
178
  }
179
+ /**
180
+ * Aplica el valor y emite `coInput` SOLO si cambió — el contrato de la casa
181
+ * (gemelo de `commitInput` en co-color-slider / co-color-area).
182
+ *
183
+ * Que `coInput` sea condicional es lo que cierra el ciclo de vida del
184
+ * consumidor: en el editor `coInput` ABRE una foto de "antes" y `coChange` la
185
+ * LIBERA (`fill/gestureHistory.ts`). Con las dos condiciones atadas al mismo
186
+ * `changedInGesture`, vale la invariante **"todo gesto que emitió `coInput`
187
+ * termina con exactamente un `coChange`"**: si el valor nunca se movió no se
188
+ * abre ninguna foto, y si se movió —aunque vuelva al de partida— hay cierre.
189
+ * Emitir `coInput` en cada paso (como antes) y `coChange` solo si el valor
190
+ * FINAL difería dejaba fotos colgadas en la ida y vuelta 50→80→50.
191
+ */
192
+ commitInput(next) {
193
+ if (next === this.value)
194
+ return false;
195
+ this.value = next;
196
+ this.changedInGesture = true;
197
+ this.coInput.emit(next);
198
+ return true;
199
+ }
200
+ /** `==`: en jsdom un MouseEvent sintético trae `pointerId` undefined y debe seguir pasando. */
201
+ isGesturePointer(e) {
202
+ // eslint-disable-next-line eqeqeq
203
+ return this.dragging && e.pointerId == this.dragPointerId;
204
+ }
205
+ bindGesture() {
206
+ document.addEventListener('pointermove', this.handleGesturePointerMove);
207
+ document.addEventListener('pointerup', this.handleGestureEnd);
208
+ document.addEventListener('pointercancel', this.handleGestureEnd);
209
+ window.addEventListener('blur', this.handleWindowBlur);
210
+ }
211
+ unbindGesture() {
212
+ document.removeEventListener('pointermove', this.handleGesturePointerMove);
213
+ document.removeEventListener('pointerup', this.handleGestureEnd);
214
+ document.removeEventListener('pointercancel', this.handleGestureEnd);
215
+ window.removeEventListener('blur', this.handleWindowBlur);
216
+ }
217
+ /**
218
+ * Cierra el gesto y devuelve si hubo algún `coInput` — el ÚNICO lugar donde
219
+ * se apaga `changedInGesture`, para que todos los finales (pointerup,
220
+ * pointercancel, blur, desconexión) compartan la misma contabilidad.
221
+ *
222
+ * Que la bandera se desarme acá es lo que impide un `coChange` de más: antes
223
+ * solo se ponía en `false` al ARRANCAR el gesto siguiente, así que una vez
224
+ * movido el valor quedaba armada para siempre y `disconnectedCallback`
225
+ * —que cierra el gesto con su `coChange`— reemitía un commit con el valor ya
226
+ * escrito CADA vez que el elemento se desmontaba. En el editor eso marcaba el
227
+ * documento como "modificado" al cerrar el popover sin que hubiera edición;
228
+ * el evento de más le llega a cualquier consumidor.
229
+ */
230
+ endGesture() {
231
+ this.unbindGesture();
232
+ this.dragging = false;
233
+ this.dragPointerId = undefined;
234
+ const huboCambio = this.changedInGesture;
235
+ this.changedInGesture = false;
236
+ return huboCambio;
237
+ }
238
+ /**
239
+ * Desmontarse en pleno gesto tiene que dejar el componente como si nunca
240
+ * hubiera empezado: `endGesture()` y no solo `unbindGesture()`. Con `dragging`
241
+ * en `true`, una instancia que se desconecta y se vuelve a conectar (reorden
242
+ * de una lista keyed, un `Teleport`) quedaba sin listeners Y rechazando todo
243
+ * `pointerdown` por el guard de arriba: slider muerto al puntero para siempre.
244
+ *
245
+ * Y CIERRA el gesto con su `coChange`, como cualquier otro final: era el único
246
+ * camino donde la invariante ("todo gesto que emitió `coInput` termina con
247
+ * exactamente un `coChange`") no valía. Sin el cierre, un host que se recrea
248
+ * el subárbol con el thumb agarrado deja abierta la foto de "antes" del
249
+ * historial y la edición siguiente del mismo nodo se registra contra ella.
250
+ *
251
+ * El `dispatchEvent` sobre un nodo ya desconectado llega igual a los listeners
252
+ * puestos sobre el propio elemento, que es como enganchan `@lit/react` y el
253
+ * `defineContainer` de Vue.
254
+ */
255
+ disconnectedCallback() {
256
+ if (this.endGesture())
257
+ this.coChange.emit(this.value);
258
+ }
81
259
  render() {
82
260
  const pct = this.percentage;
83
- return (index.h("div", { key: 'd6e0584e8c2f04f1b9a393f200a853a6acc0399c', class: {
261
+ const vertical = this.isVertical;
262
+ return (index.h("div", { key: 'b06be1f1e7d51c4daa472d191976572b53ef9d95', class: {
84
263
  'co-slider': true,
85
264
  'co-slider--disabled': this.disabled,
86
265
  'co-slider--dragging': this.dragging,
266
+ 'co-slider--vertical': vertical,
87
267
  [`co-slider--${this.status}`]: this.status !== 'default',
88
- } }, (this.label || this.secondaryLabel || this.showValue) && (index.h("div", { key: 'a0eae621e367f1145bdd9bdde53fb024489d0812', class: "co-slider__labels" }, index.h("div", { key: '19e102fe586ccff3ad37bc7cd6b4dd4de5172be7', class: "co-slider__labels-left" }, this.label && index.h("label", { key: 'ad31ddd76acb9bf7bf25f07a7fad5206ab6eb689', class: "co-slider__label" }, this.label), this.secondaryLabel && index.h("span", { key: 'ccb7be2022de9d8d8ed1c7eeeac38b6d4711bd60', class: "co-slider__secondary-label" }, this.secondaryLabel)), this.showValue && index.h("span", { key: 'c38e8a050941184056441c94f6bcbfcc62522e62', class: "co-slider__value" }, this.value))), index.h("div", { key: 'c6cc971ea5dc3b4d30f8224ec359ae97a8ffa24a', class: "co-slider__track-wrapper", ref: el => (this.trackEl = el), onPointerDown: this.handlePointerDown }, index.h("div", { key: 'de241b0017db6f5934b2332b08b6709038379b2c', class: "co-slider__track" }, index.h("div", { key: '9b590f27f16839a6dba5f0e2eea7467a485f79c1', class: "co-slider__fill", style: { width: `${pct}%` } })), index.h("div", { key: 'c8820089a72ec566210550317233832ba84a9e0a', class: "co-slider__thumb", style: { left: `${pct}%` } })), this.showMarks && (index.h("div", { key: '2a40f01b836d29e453b691bc1f5f378166322e1e', class: "co-slider__marks" }, index.h("span", { key: '1f9dc67ca0e9c327766154a1a07a67c7e53efc68', class: "co-slider__mark" }, this.min), index.h("span", { key: '073c37ad99a45c05d7a0341e62ea9ed4e68d7acb', class: "co-slider__mark" }, this.max))), index.h("input", { key: 'fa18beabbcb2e26e86436bedc57de95f40c849f2', class: "co-slider__native", type: "range", min: this.min, max: this.max, step: this.step, value: this.value, disabled: this.disabled, onInput: this.handleInputChange, "aria-label": this.label || 'Slider' }), this.helperText && (index.h("div", { key: 'e8e46da2806b049d29c34620acd5cadf3abb03c8', class: `co-slider__helper co-slider__helper--${this.status}` }, this.statusIcon && index.h("co-icon", { key: '1802da1ab54a283d46eca9cbb0fe0bf4a381956c', name: this.statusIcon, size: 14, weight: "fill", class: "co-slider__helper-icon" }), index.h("span", { key: 'ab294efdeee8c4546a83b16b55e3600f8706b2d7', class: "co-slider__helper-text" }, this.helperText)))));
268
+ } }, (this.label || this.secondaryLabel || this.showValue) && (index.h("div", { key: 'a5521722b6acab7644d18398dd98998d63b67c56', class: "co-slider__labels" }, index.h("div", { key: 'a5c9898337f548be34108f9295a8f8392ed75696', class: "co-slider__labels-left" }, this.label && index.h("label", { key: '55381c63ffc6baf11cd11e70ec7b2e8917b7c339', class: "co-slider__label" }, this.label), this.secondaryLabel && index.h("span", { key: '7eb00d9872a003ec6a379351d0a45ecf81e6087e', class: "co-slider__secondary-label" }, this.secondaryLabel)), this.showValue && index.h("span", { key: 'dc36252a28b06664ec3087873a46cf36524c3dcb', class: "co-slider__value" }, this.value))), index.h("div", { key: '6cfa5a0a001dd7606862ffe01657004205bb7b4b', class: "co-slider__track-wrapper", ref: el => (this.trackEl = el), onPointerDown: this.handlePointerDown }, index.h("div", { key: 'c2b3554422d040f38a8d776f2c059661f6fecf9c', class: "co-slider__track" }, index.h("div", { key: '07946bf60392b55450ddeb751d65e0ff521e8766', class: "co-slider__fill", style: vertical ? { height: `${pct}%` } : { width: `${pct}%` } })), index.h("div", { key: '5b44ccb7c5940487c81008b98c05c33f2aaf7dda', class: "co-slider__thumb", style: vertical ? { bottom: `${pct}%` } : { left: `${pct}%` } })), this.showMarks && (index.h("div", { key: 'd53df80a2ec227dca30d71b0e1917de062056d94', class: "co-slider__marks" }, index.h("span", { key: '519ab6e39389806151785265163d4d06492b8ce0', class: "co-slider__mark" }, this.min), index.h("span", { key: '779111260623acfdd87bc83266e9c47ae5e653fe', class: "co-slider__mark" }, this.max))), index.h("input", { key: '56f7f648079ef0777368b93e078c782be0ce5bdc', class: "co-slider__native", type: "range", min: this.min, max: this.max, step: this.step, value: this.value, disabled: this.disabled, onInput: this.handleInputChange, onKeyDown: vertical ? this.handleVerticalKeyDown : undefined, "aria-label": this.ariaLabelText || this.label || 'Slider', "aria-orientation": vertical ? 'vertical' : undefined }), this.helperText && (index.h("div", { key: '83511ef3eaeaa9dd73e21141708786bfb3937f9f', class: `co-slider__helper co-slider__helper--${this.status}` }, this.statusIcon && index.h("co-icon", { key: 'b82ab2938322bdd9711b1a2dbd024be22c9f1238', name: this.statusIcon, size: 14, weight: "fill", class: "co-slider__helper-icon" }), index.h("span", { key: 'bd35dbcc7063061ed5aac0cb635ea69217624bd9', class: "co-slider__helper-text" }, this.helperText)))));
89
269
  }
90
270
  get el() { return index.getElement(this); }
91
271
  };
@@ -0,0 +1,121 @@
1
+ 'use strict';
2
+
3
+ var index = require('./index-bHoidDwv.js');
4
+ var gradientStops = require('./gradientStops-CMpH4fB_.js');
5
+ var dateI18n = require('./dateI18n-BK2qHqoC.js');
6
+ require('./color-DQVrQGi0.js');
7
+ require('./hsv-DpfSF3M2.js');
8
+
9
+ /**
10
+ * Diccionario de strings de co-swatch-grid (aria labels). Misma estrategia
11
+ * que carouselI18n/dateI18n: es/en/pt resueltos por la prop `locale`.
12
+ */
13
+ const DICT = {
14
+ es: { gridLabel: 'Colores' },
15
+ en: { gridLabel: 'Colors' },
16
+ pt: { gridLabel: 'Cores' },
17
+ };
18
+ /** Resuelve los strings integrados para un locale. */
19
+ function getSwatchGridStrings(locale) {
20
+ return DICT[dateI18n.langFromLocale(locale)];
21
+ }
22
+
23
+ const coSwatchGridCss = () => `:host{display:block}:host([hidden]){display:none}.co-swatch-grid{display:grid;justify-content:start}.co-swatch-grid__swatch{box-sizing:border-box;padding:0;margin:0;border:1px solid transparent;background:linear-gradient(var(--co-swatch-grid-color), var(--co-swatch-grid-color)), conic-gradient(var(--co-color-gray-200) 25%, #ffffff 0 50%, var(--co-color-gray-200) 0 75%, #ffffff 0) 0 0 / 8px 8px;cursor:pointer;outline:none;transition:box-shadow var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-swatch-grid__swatch--light{border-color:var(--co-color-opacity-negro-8)}.co-swatch-grid__swatch:hover{box-shadow:0 0 0 1px var(--co-color-opacity-negro-16)}.co-swatch-grid__swatch--selected,.co-swatch-grid__swatch--selected:hover{box-shadow:0 0 0 1px var(--co-semantic-surface-page, #ffffff), 0 0 0 3px var(--co-semantic-accent)}.co-swatch-grid__swatch:focus-visible{box-shadow:0 0 0 1px var(--co-semantic-surface-page, #ffffff), 0 0 0 3px var(--co-semantic-border-focus)}`;
24
+
25
+ /** Medidas por defecto. También cubren un `undefined` explícito (los wrappers
26
+ * React/Vue lo pasan por las props omitidas y eso pisa el default de Stencil). */
27
+ const DEFAULTS = { columns: 8, swatchSize: 24, gap: 8, radius: 6 };
28
+ const CoSwatchGrid = class {
29
+ constructor(hostRef) {
30
+ index.registerInstance(this, hostRef);
31
+ this.coSelect = index.createEvent(this, "coSelect", 7);
32
+ /** Colores a mostrar (hex/rgba), en orden de lectura. */
33
+ this.colors = [];
34
+ /** Columnas de la grilla. */
35
+ this.columns = DEFAULTS.columns;
36
+ /** Lado de cada swatch en px. */
37
+ this.swatchSize = DEFAULTS.swatchSize;
38
+ /** Separación entre swatches en px. */
39
+ this.gap = DEFAULTS.gap;
40
+ /** Radio de cada swatch en px. */
41
+ this.radius = DEFAULTS.radius;
42
+ this.swatchEls = [];
43
+ this.handleKeyDown = (index, e) => {
44
+ var _a;
45
+ const last = this.colorList.length - 1;
46
+ if (last < 0)
47
+ return;
48
+ const cols = this.columnCount;
49
+ let next;
50
+ switch (e.key) {
51
+ case 'ArrowRight':
52
+ next = Math.min(last, index + 1);
53
+ break;
54
+ case 'ArrowLeft':
55
+ next = Math.max(0, index - 1);
56
+ break;
57
+ case 'ArrowDown':
58
+ next = index + cols > last ? index : index + cols;
59
+ break;
60
+ case 'ArrowUp':
61
+ next = index - cols < 0 ? index : index - cols;
62
+ break;
63
+ case 'Home':
64
+ next = 0;
65
+ break;
66
+ case 'End':
67
+ next = last;
68
+ break;
69
+ default:
70
+ return;
71
+ }
72
+ e.preventDefault();
73
+ (_a = this.swatchEls[next]) === null || _a === void 0 ? void 0 : _a.focus();
74
+ };
75
+ }
76
+ static normalize(color) {
77
+ return (color !== null && color !== void 0 ? color : '').trim().toLowerCase();
78
+ }
79
+ get colorList() {
80
+ var _a;
81
+ return (_a = this.colors) !== null && _a !== void 0 ? _a : [];
82
+ }
83
+ get columnCount() {
84
+ var _a;
85
+ return Math.max(1, Math.floor((_a = this.columns) !== null && _a !== void 0 ? _a : DEFAULTS.columns) || 1);
86
+ }
87
+ selectedIndex() {
88
+ const v = CoSwatchGrid.normalize(this.value);
89
+ if (!v)
90
+ return -1;
91
+ return this.colorList.findIndex((c) => CoSwatchGrid.normalize(c) === v);
92
+ }
93
+ render() {
94
+ var _a, _b, _c;
95
+ const s = getSwatchGridStrings(this.locale);
96
+ const size = (_a = this.swatchSize) !== null && _a !== void 0 ? _a : DEFAULTS.swatchSize;
97
+ const gap = (_b = this.gap) !== null && _b !== void 0 ? _b : DEFAULTS.gap;
98
+ const radius = (_c = this.radius) !== null && _c !== void 0 ? _c : DEFAULTS.radius;
99
+ const selected = this.selectedIndex();
100
+ // Roving tabindex: una sola parada de tab (el seleccionado, o el primero).
101
+ const tabbableIndex = selected >= 0 ? selected : 0;
102
+ this.swatchEls = [];
103
+ return (index.h("div", { key: 'be71436bd099c18cb537f1f992582da31c56a675', class: "co-swatch-grid", role: "listbox", "aria-label": this.label || s.gridLabel, style: { gridTemplateColumns: `repeat(${this.columnCount}, ${size}px)`, gap: `${gap}px` } }, this.colorList.map((color, i) => (index.h("button", { type: "button", key: `${i}-${color}`, ref: (el) => {
104
+ if (el)
105
+ this.swatchEls[i] = el;
106
+ }, class: {
107
+ 'co-swatch-grid__swatch': true,
108
+ 'co-swatch-grid__swatch--selected': i === selected,
109
+ 'co-swatch-grid__swatch--light': gradientStops.isLightSwatch(color),
110
+ }, role: "option", "aria-selected": i === selected ? 'true' : 'false', "aria-label": color, tabIndex: i === tabbableIndex ? 0 : -1, style: {
111
+ width: `${size}px`,
112
+ height: `${size}px`,
113
+ borderRadius: `${radius}px`,
114
+ '--co-swatch-grid-color': color,
115
+ }, onClick: () => this.coSelect.emit(color), onKeyDown: (e) => this.handleKeyDown(i, e) })))));
116
+ }
117
+ get el() { return index.getElement(this); }
118
+ };
119
+ CoSwatchGrid.style = coSwatchGridCss();
120
+
121
+ exports.co_swatch_grid = CoSwatchGrid;
@@ -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
  const coSwitchCss = () => `:host{display:inline-flex;font-family:var(--co-font-family-primary);font-size:var(--co-font-size-14);letter-spacing:var(--co-font-letter-spacing-body);line-height:1}.co-switch-wrapper{display:flex;flex-direction:column;gap:var(--co-spacing-xs)}.co-switch-wrapper__row{display:flex;align-items:center;gap:var(--co-switch-label-gap, var(--co-spacing-sm2));cursor:pointer}.co-switch-wrapper--disabled .co-switch-wrapper__row{cursor:not-allowed}.co-switch-wrapper__labels{display:flex;align-items:center;gap:var(--co-spacing-sm2);flex:1;min-width:0}.co-switch-wrapper__label{color:var(--co-semantic-text-secondary);font-size:var(--co-font-size-14);font-weight:400;line-height:1;white-space:nowrap}.co-switch-wrapper__secondary-label{color:var(--co-semantic-text-muted);font-size:var(--co-font-size-14);font-weight:400;line-height:1;white-space:nowrap;margin-left:auto}.co-switch-wrapper--disabled .co-switch-wrapper__label,.co-switch-wrapper--disabled .co-switch-wrapper__secondary-label{color:var(--co-semantic-text-disabled)}.co-switch-wrapper__helper{display:flex;align-items:center;gap:var(--co-spacing-xs);padding-left:calc(44px + var(--co-spacing-sm2));}.co-switch-wrapper__helper-icon{flex-shrink:0;display:flex;align-items:center}.co-switch-wrapper__helper-text{color:var(--co-semantic-text-muted);font-size:var(--co-font-size-14);font-weight:400;line-height:1}.co-switch-wrapper__helper--error .co-switch-wrapper__helper-icon,.co-switch-wrapper__helper--error .co-switch-wrapper__helper-text{color:var(--co-semantic-status-error)}.co-switch-wrapper__helper--success .co-switch-wrapper__helper-icon,.co-switch-wrapper__helper--success .co-switch-wrapper__helper-text{color:var(--co-semantic-status-success)}.co-switch-wrapper__helper--warning .co-switch-wrapper__helper-icon,.co-switch-wrapper__helper--warning .co-switch-wrapper__helper-text{color:var(--co-color-status-review)}.co-switch-wrapper__helper--info .co-switch-wrapper__helper-icon,.co-switch-wrapper__helper--info .co-switch-wrapper__helper-text{color:var(--co-semantic-status-info)}.co-switch{position:relative;display:inline-flex;align-items:center;width:44px;height:24px;border-radius:var(--co-border-radius-full);border:none;outline:none;cursor:pointer;padding:0;overflow:hidden;transition:background var(--co-motion-duration-base) var(--co-motion-ease-out);box-sizing:border-box;flex-shrink:0}.co-switch--on{background:var(--co-semantic-surface-primary)}.co-switch--off{background:color-mix(in srgb, var(--co-semantic-surface-muted) 35%, transparent)}.co-switch__thumb{position:absolute;top:50%;left:2px;transform:translateY(-50%);width:20px;height:20px;border-radius:var(--co-border-radius-full);background:var(--co-semantic-control-thumb);transition:transform var(--co-motion-duration-base) var(--co-motion-ease-spring);box-shadow:0 1px 3px var(--co-semantic-control-shadow)}.co-switch--off .co-switch__thumb{transform:translateY(-50%) translateX(0)}.co-switch--on .co-switch__thumb{transform:translateY(-50%) translateX(20px)}.co-switch--disabled{opacity:0.4;cursor:not-allowed;pointer-events:none}.co-field-required{margin-left:2px;color:var(--co-color-status-error)}.co-field-required__caption{margin-left:4px;color:var(--co-semantic-text-muted);font-size:var(--co-font-size-12);font-weight:400}.co-field-required__caption::before{content:var(--co-field-required-text, ' (required)')}@supports not (background: color-mix(in srgb, red, transparent)){.co-switch--off{background:var(--co-semantic-surface-muted)}}`;
7
7
 
@@ -36,16 +36,16 @@ const CoSwitch = class {
36
36
  render() {
37
37
  const hasLabels = this.label || this.secondaryLabel;
38
38
  const hasHelper = !!this.helperText;
39
- return (index.h("div", { key: '94410fce797382a4b25356d8b1325b5a75508d84', class: {
39
+ return (index.h("div", { key: 'cb5bdf31569ecb25bc8511d6aed95b8479439449', class: {
40
40
  'co-switch-wrapper': true,
41
41
  'co-switch-wrapper--disabled': this.disabled,
42
42
  [`co-switch-wrapper--${this.status}`]: this.status !== 'default',
43
- } }, index.h("div", { key: '9b0d491e7e33faaa476dedd4f0e8826c4fde1249', class: "co-switch-wrapper__row", onClick: this.handleClick }, index.h("button", { key: '6c7cc4ece2aff5fa089271cf47908cfcbc3d5827', role: "switch", "aria-checked": String(this.checked), "aria-label": this.label || '', class: {
43
+ } }, index.h("div", { key: '455228c9ab3e7dbb15f491771d645ae2d535ab00', class: "co-switch-wrapper__row", onClick: this.handleClick }, index.h("button", { key: '4aef8c522cbeacea52921c691d0dd13c1431eb99', role: "switch", "aria-checked": String(this.checked), "aria-label": this.label || '', class: {
44
44
  'co-switch': true,
45
45
  'co-switch--on': this.checked,
46
46
  'co-switch--off': !this.checked,
47
47
  'co-switch--disabled': this.disabled,
48
- }, disabled: this.disabled, part: "track" }, index.h("span", { key: '3a55c9aa1cc925dd09ac4d2b7367f8fd627b9e19', class: "co-switch__thumb", part: "thumb" })), hasLabels && (index.h("div", { key: '450cf6e28979b72e7821c0fa6130333410207343', class: "co-switch-wrapper__labels" }, this.label && index.h("span", { key: '509f09430837fcba73ff248d80a44e8bb7e2175f', class: "co-switch-wrapper__label", part: "label" }, this.label, index.h(requiredMark.RequiredMark, { key: 'ff017ff012f698b054db7f43832e3fb94b3eec01', required: this.required })), this.secondaryLabel && (index.h("span", { key: 'd5d33606934cd0d69f0faa3eb8afe2c962a1f5ab', class: "co-switch-wrapper__secondary-label", part: "secondary-label" }, this.secondaryLabel))))), hasHelper && (index.h("div", { key: '1111d3b03f846f524b53510dd3c638db2a0d7753', class: `co-switch-wrapper__helper co-switch-wrapper__helper--${this.status}` }, this.statusIcon && (index.h("co-icon", { key: '0deb3c0d9e2b6a4e7a5b791b8f739ed0d1dc9f91', name: this.statusIcon, size: 14, weight: "fill", class: "co-switch-wrapper__helper-icon" })), index.h("span", { key: 'f769d1b5c2217f84517b58baf91b0db7952c9062', class: "co-switch-wrapper__helper-text" }, this.helperText)))));
48
+ }, disabled: this.disabled, part: "track" }, index.h("span", { key: '14d1298fda1435774c9e2c2c7f0c520a38ee56fd', class: "co-switch__thumb", part: "thumb" })), hasLabels && (index.h("div", { key: '092325cff854533520244d8bb783e917fcfc5827', class: "co-switch-wrapper__labels" }, this.label && index.h("span", { key: '354f905fe663ecfab517f251adfd8a956f598244', class: "co-switch-wrapper__label", part: "label" }, this.label, index.h(requiredMark.RequiredMark, { key: '7c79bc7214fc1dfa4188d7d3c7c67014e54d2892', required: this.required })), this.secondaryLabel && (index.h("span", { key: '66d5b233028700c142c9b5122a448ade37dd941f', class: "co-switch-wrapper__secondary-label", part: "secondary-label" }, this.secondaryLabel))))), hasHelper && (index.h("div", { key: '7ee1c73c19a4cc030489e21e444b0a6caecb7d5a', class: `co-switch-wrapper__helper co-switch-wrapper__helper--${this.status}` }, this.statusIcon && (index.h("co-icon", { key: '089f18ba17c3b72e9368241593e39d54bdeb3b1e', name: this.statusIcon, size: 14, weight: "fill", class: "co-switch-wrapper__helper-icon" })), index.h("span", { key: '082109f28c774a2f53290cd7e168347ab3e35b8a', class: "co-switch-wrapper__helper-text" }, this.helperText)))));
49
49
  }
50
50
  };
51
51
  CoSwitch.style = coSwitchCss();
@@ -1,8 +1,35 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-MDAnKsze.js');
3
+ var index = require('./index-bHoidDwv.js');
4
4
 
5
- const coTabGroupCss = () => `:host{display:flex;max-width:100%;min-width:0}.co-tab-group{display:flex;align-items:center;gap:var(--co-spacing-sm2);max-width:100%;overflow-x:auto;scrollbar-width:none;scroll-behavior:smooth}.co-tab-group::-webkit-scrollbar{display:none}::slotted(co-tab){flex-shrink:0}.co-tab-group--underline{gap:var(--co-spacing-xs, 4px);border-bottom:1px solid var(--co-color-opacity-negro-8, rgba(31, 28, 27, 0.08))}.co-tab-group--segmented{display:inline-flex;gap:var(--co-spacing-xxs, 2px);padding:var(--co-spacing-sm, 6px);background:var(--co-color-gray-100, #f6f6f6);border-bottom:1px solid var(--co-color-opacity-negro-4, rgba(31, 28, 27, 0.04));border-radius:var(--co-border-radius-sm, 12px)}`;
5
+ /**
6
+ * `scrollLeft` del track para que la pestaña quede ENTERA a la vista (con `pad`
7
+ * de aire). Rects en coordenadas de viewport (getBoundingClientRect). Si ya se
8
+ * ve, devuelve el mismo `scrollLeft`: no hay salto.
9
+ */
10
+ function revealScrollLeft(scrollLeft, track, tab, pad = 8) {
11
+ if (tab.left < track.left)
12
+ return Math.max(0, scrollLeft - (track.left - tab.left) - pad);
13
+ if (tab.right > track.right)
14
+ return scrollLeft + (tab.right - track.right) + pad;
15
+ return scrollLeft;
16
+ }
17
+ /**
18
+ * Bordes de la pestaña y del área visible del track en px CSS relativos al
19
+ * borde interno del track (el mismo espacio que `scrollLeft`). Los rects de
20
+ * getBoundingClientRect salen ESCALADOS si un ancestro tiene transform (el
21
+ * drawer entra con escala): se dividen por la escala visual del track.
22
+ */
23
+ function tabEdgesInTrack(trackRect, tabRect, box) {
24
+ const scale = box.offsetWidth ? trackRect.width / box.offsetWidth || 1 : 1;
25
+ const toCss = (x) => (x - trackRect.left) / scale - box.clientLeft;
26
+ return {
27
+ track: { left: 0, right: box.clientWidth },
28
+ tab: { left: toCss(tabRect.left), right: toCss(tabRect.right) },
29
+ };
30
+ }
31
+
32
+ const coTabGroupCss = () => `:host{display:flex;max-width:100%;min-width:0}.co-tab-group{display:flex;align-items:center;gap:var(--co-spacing-sm2);max-width:100%;overflow-x:auto;scrollbar-width:none;scroll-behavior:smooth}.co-tab-group::-webkit-scrollbar{display:none}::slotted(co-tab){flex-shrink:0}:host([full-width]){width:100%}:host([full-width]) .co-tab-group{width:100%}:host([full-width]) ::slotted(co-tab){flex:1}.co-tab-group--underline{gap:var(--co-spacing-xs, 4px);border-bottom:1px solid var(--co-color-opacity-negro-8, rgba(31, 28, 27, 0.08))}.co-tab-group--segmented{display:inline-flex;gap:var(--co-spacing-xxs, 2px);padding:var(--co-spacing-sm, 6px);background:var(--co-color-gray-100, #f6f6f6);border-bottom:1px solid var(--co-color-opacity-negro-4, rgba(31, 28, 27, 0.04));border-radius:var(--co-border-radius-sm, 12px)}.co-tab-group--segmented.co-tab-group--size-s{padding:4px;border-radius:var(--co-border-radius-xs, 8px);border-bottom:none}`;
6
33
 
7
34
  const CoTabGroup = class {
8
35
  constructor(hostRef) {
@@ -10,11 +37,24 @@ const CoTabGroup = class {
10
37
  this.coTabChange = index.createEvent(this, "coTabChange", 7);
11
38
  /** Visual variant, propagated to slotted co-tab children */
12
39
  this.variant = 'pill';
40
+ /** Estira el host y el track al 100% del contenedor; cada `co-tab` hijo
41
+ reparte el ancho por igual (`::slotted(co-tab) { flex: 1 }`) y, como se
42
+ propaga a los hijos igual que `size` (`syncTabs()`), cada `co-tab`
43
+ estira además su `part="tab"` al 100% del host (`:host([full-width])
44
+ .co-tab` en co-tab.css). Mismo contrato que `size`: un grupo sin
45
+ `fullWidth` nunca pisa un `fullWidth` puesto a mano en un hijo, y al
46
+ apagarlo baja solo a los hijos que él mismo subió. */
47
+ this.fullWidth = false;
48
+ /** Hijos a los que ESTE grupo les subió `fullWidth` — al apagar `fullWidth`
49
+ en el grupo se baja solo a estos, nunca a uno puesto a mano (M1). */
50
+ this.raisedFullWidth = new WeakSet();
13
51
  /** Slotted tabs can mount AFTER the group (async v-for data): re-propagate
14
52
  variant/selection whenever the slot content changes, or late tabs render
15
53
  with the default pill variant. */
16
54
  this.onSlotChange = () => {
17
55
  this.syncTabs();
56
+ this.observeTabSizes();
57
+ this.revealSelected();
18
58
  };
19
59
  /** Wheel → horizontal scroll cuando el track desborda (los tabs clipean con
20
60
  `overflow-x`, ver CSS): la rueda vertical del mouse scrollea el strip.
@@ -41,25 +81,88 @@ const CoTabGroup = class {
41
81
  }
42
82
  watchValue() {
43
83
  this.syncTabs();
84
+ this.revealSelected();
44
85
  }
45
86
  watchVariant() {
46
87
  this.syncTabs();
47
88
  }
89
+ watchSize() {
90
+ this.syncTabs();
91
+ }
92
+ watchFullWidth() {
93
+ this.syncTabs();
94
+ }
48
95
  componentDidLoad() {
49
96
  this.syncTabs();
97
+ this.observeTabSizes();
98
+ this.revealSelected();
99
+ }
100
+ disconnectedCallback() {
101
+ var _a;
102
+ (_a = this.tabsObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
103
+ this.tabsObserver = undefined;
104
+ }
105
+ observeTabSizes() {
106
+ var _a;
107
+ if (typeof ResizeObserver === 'undefined')
108
+ return;
109
+ (_a = this.tabsObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
110
+ this.tabsObserver = new ResizeObserver(() => this.revealSelected());
111
+ this.el.querySelectorAll('co-tab').forEach((tab) => this.tabsObserver.observe(tab));
112
+ }
113
+ /** Lleva la pestaña activa a la vista dentro del track (sólo scroll horizontal
114
+ del track: la página no se mueve). Sin esto, abrir con una pestaña del final
115
+ activa (deep-link `?tab=`) la dejaba fuera de la tira. En rAF: al cargar y
116
+ con tabs async todavía no hay layout. */
117
+ revealSelected() {
118
+ requestAnimationFrame(() => {
119
+ var _a;
120
+ const track = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.co-tab-group');
121
+ if (!track || track.clientWidth === 0 || track.scrollWidth <= track.clientWidth)
122
+ return;
123
+ const selected = Array.from(this.el.querySelectorAll('co-tab')).find((tab) => tab.selected);
124
+ if (!selected)
125
+ return;
126
+ const { track: area, tab } = tabEdgesInTrack(track.getBoundingClientRect(), selected.getBoundingClientRect(), track);
127
+ const next = revealScrollLeft(track.scrollLeft, area, tab);
128
+ if (next !== track.scrollLeft)
129
+ track.scrollLeft = next;
130
+ });
50
131
  }
51
132
  syncTabs() {
52
133
  const tabs = this.el.querySelectorAll('co-tab');
53
134
  tabs.forEach((tab) => {
54
135
  tab.selected = (tab.value || tab.label) === this.value;
55
136
  tab.variant = this.variant;
137
+ if (this.size) {
138
+ tab.size = this.size;
139
+ }
140
+ this.syncFullWidth(tab);
56
141
  });
57
142
  }
143
+ /** Propaga `fullWidth` con el contrato de `size`: con el grupo en true, sube
144
+ al hijo (y lo anota); con el grupo en false, baja SOLO a los que subió
145
+ este grupo — un `fullWidth` puesto a mano en el hijo queda intacto. Sin
146
+ `fullWidth` en el grupo y sin hijos anotados, no toca nada: el DOM del
147
+ hijo queda como siempre (aditivo). */
148
+ syncFullWidth(tab) {
149
+ if (this.fullWidth) {
150
+ if (!tab.fullWidth) {
151
+ tab.fullWidth = true;
152
+ this.raisedFullWidth.add(tab);
153
+ }
154
+ }
155
+ else if (this.raisedFullWidth.has(tab)) {
156
+ tab.fullWidth = false;
157
+ this.raisedFullWidth.delete(tab);
158
+ }
159
+ }
58
160
  render() {
59
- return (index.h("div", { key: 'f08c8fd752d5496f2699eeb3c67fa5d6dc106077', class: {
161
+ return (index.h("div", { key: 'a68d2cecdbce222f14100ebbde2b49001cb799f3', class: {
60
162
  'co-tab-group': true,
61
163
  [`co-tab-group--${this.variant}`]: true,
62
- }, role: "tablist", part: "tab-group", onWheel: this.onWheel }, index.h("slot", { key: 'ffc3a7bfbf2efdd40e3f7e6dcf02e3b9e5026dc4', onSlotchange: this.onSlotChange })));
164
+ [`co-tab-group--size-${this.size}`]: !!this.size,
165
+ }, role: "tablist", part: "tab-group", onWheel: this.onWheel }, index.h("slot", { key: '321c8f8b5110a818d34d1eaccb60fc416e5ad57a', onSlotchange: this.onSlotChange })));
63
166
  }
64
167
  get el() { return index.getElement(this); }
65
168
  static get watchers() { return {
@@ -68,6 +171,12 @@ const CoTabGroup = class {
68
171
  }],
69
172
  "variant": [{
70
173
  "watchVariant": 0
174
+ }],
175
+ "size": [{
176
+ "watchSize": 0
177
+ }],
178
+ "fullWidth": [{
179
+ "watchFullWidth": 0
71
180
  }]
72
181
  }; }
73
182
  };