@prolibu-suite/cobalt-core 0.1.2 → 0.3.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 (682) hide show
  1. package/custom-elements.json +21351 -7087
  2. package/dist/cjs/co-accordion.cjs.entry.js +19 -4
  3. package/dist/cjs/co-app-shell.cjs.entry.js +4 -4
  4. package/dist/cjs/co-autocomplete.cjs.entry.js +54 -6
  5. package/dist/cjs/co-avatar-group.cjs.entry.js +77 -0
  6. package/dist/cjs/co-avatar.cjs.entry.js +42 -7
  7. package/dist/cjs/co-badge.cjs.entry.js +2 -2
  8. package/dist/cjs/co-bottom-sheet.cjs.entry.js +325 -0
  9. package/dist/cjs/co-button-group.cjs.entry.js +3 -3
  10. package/dist/cjs/co-button.cjs.entry.js +12 -7
  11. package/dist/cjs/co-calendar-month.cjs.entry.js +381 -0
  12. package/dist/cjs/co-calendar_3.cjs.entry.js +692 -0
  13. package/dist/cjs/co-card.cjs.entry.js +21 -4
  14. package/dist/cjs/co-checkbox-group.cjs.entry.js +7 -5
  15. package/dist/cjs/co-checkbox.cjs.entry.js +5 -5
  16. package/dist/cjs/co-chip.cjs.entry.js +11 -8
  17. package/dist/cjs/co-color-picker.cjs.entry.js +111 -0
  18. package/dist/cjs/co-column-picker.cjs.entry.js +443 -0
  19. package/dist/cjs/co-combobox.cjs.entry.js +51 -15
  20. package/dist/cjs/co-command-search.cjs.entry.js +159 -13
  21. package/dist/cjs/co-data-table-pagination.cjs.entry.js +5 -5
  22. package/dist/cjs/co-data-table.cjs.entry.js +38 -12
  23. package/dist/cjs/co-date-picker.cjs.entry.js +177 -0
  24. package/dist/cjs/co-date-range-picker.cjs.entry.js +378 -0
  25. package/dist/cjs/co-date-range.cjs.entry.js +13 -259
  26. package/dist/cjs/co-empty-state.cjs.entry.js +2 -2
  27. package/dist/cjs/co-event-calendar.cjs.entry.js +318 -0
  28. package/dist/cjs/co-fab.cjs.entry.js +3 -3
  29. package/dist/cjs/co-file-field.cjs.entry.js +498 -0
  30. package/dist/cjs/co-helper-text.cjs.entry.js +3 -3
  31. package/dist/cjs/co-icon-button.cjs.entry.js +6 -6
  32. package/dist/cjs/co-icon.cjs.entry.js +36 -25
  33. package/dist/cjs/co-input.cjs.entry.js +13 -8
  34. package/dist/cjs/co-json-field.cjs.entry.js +113 -0
  35. package/dist/cjs/co-lightbox.cjs.entry.js +344 -0
  36. package/dist/cjs/co-list-footer.cjs.entry.js +25 -0
  37. package/dist/cjs/co-list-item.cjs.entry.js +70 -4
  38. package/dist/cjs/co-loader_2.cjs.entry.js +293 -0
  39. package/dist/cjs/co-menu-divider.cjs.entry.js +2 -2
  40. package/dist/cjs/co-menu-item.cjs.entry.js +17 -10
  41. package/dist/cjs/co-menu.cjs.entry.js +2 -2
  42. package/dist/cjs/co-modal.cjs.entry.js +25 -3
  43. package/dist/cjs/co-navbar.cjs.entry.js +4 -4
  44. package/dist/cjs/co-number-field.cjs.entry.js +60 -12
  45. package/dist/cjs/co-page-header.cjs.entry.js +2 -2
  46. package/dist/cjs/co-phone-field.cjs.entry.js +378 -0
  47. package/dist/cjs/co-popover.cjs.entry.js +46 -15
  48. package/dist/cjs/co-progress-bar.cjs.entry.js +8 -4
  49. package/dist/cjs/co-progress-circle.cjs.entry.js +38 -0
  50. package/dist/cjs/co-radio-group.cjs.entry.js +7 -5
  51. package/dist/cjs/co-radio.cjs.entry.js +4 -4
  52. package/dist/cjs/co-rating.cjs.entry.js +4 -4
  53. package/dist/cjs/co-ref-field.cjs.entry.js +214 -21
  54. package/dist/cjs/co-rich-text-editor.cjs.entry.js +2081 -0
  55. package/dist/cjs/co-rich-text-toolbar.cjs.entry.js +1108 -0
  56. package/dist/cjs/co-rich-text-viewer.cjs.entry.js +118 -0
  57. package/dist/cjs/co-row.cjs.entry.js +3 -3
  58. package/dist/cjs/co-select.cjs.entry.js +119 -18
  59. package/dist/cjs/co-separator.cjs.entry.js +2 -2
  60. package/dist/cjs/co-sidebar-nav.cjs.entry.js +55 -10
  61. package/dist/cjs/co-sidebar.cjs.entry.js +3 -3
  62. package/dist/cjs/co-skeleton.cjs.entry.js +26 -0
  63. package/dist/cjs/co-slider.cjs.entry.js +3 -3
  64. package/dist/cjs/co-switch.cjs.entry.js +9 -6
  65. package/dist/cjs/co-tab-group.cjs.entry.js +2 -2
  66. package/dist/cjs/co-tab.cjs.entry.js +3 -3
  67. package/dist/cjs/co-tags-field.cjs.entry.js +211 -0
  68. package/dist/cjs/co-textarea.cjs.entry.js +96 -0
  69. package/dist/cjs/co-toast.cjs.entry.js +2 -2
  70. package/dist/cjs/co-toggle-button-group.cjs.entry.js +7 -4
  71. package/dist/cjs/co-toggle-button.cjs.entry.js +4 -4
  72. package/dist/cjs/co-tooltip.cjs.entry.js +56 -15
  73. package/dist/cjs/co-transfer-list.cjs.entry.js +20 -6
  74. package/dist/cjs/co-video.cjs.entry.js +839 -0
  75. package/dist/cjs/cobalt.cjs.js +2 -2
  76. package/dist/cjs/dateI18n-BdiNAl0_.js +106 -0
  77. package/dist/cjs/dates-D8D-aS5d.js +432 -0
  78. package/dist/cjs/fieldChip-CDIMz_Y6.js +7 -0
  79. package/dist/cjs/index-5NdsiFjZ.js +35405 -0
  80. package/dist/cjs/{index-BEovErzl.js → index-BumlM92r.js} +115 -23
  81. package/dist/cjs/loader.cjs.js +2 -2
  82. package/dist/cjs/normalizeText-B-v-XPKf.js +96 -0
  83. package/dist/cjs/overlayAfterClose-BdeXrhVY.js +12 -0
  84. package/dist/cjs/overlayScroll-ifzDNeyb.js +25 -0
  85. package/dist/cjs/overlayscrollbars-BlBHo2Xx.js +2842 -0
  86. package/dist/cjs/{positioning-DozpXyBd.js → positioning-DwHW399W.js} +40 -25
  87. package/dist/cjs/purify.es-DX41ZWS2.js +1776 -0
  88. package/dist/cjs/requiredMark-CqMGt1H1.js +16 -0
  89. package/dist/cjs/richTextI18n-B7ktXg3M.js +382 -0
  90. package/dist/cjs/toolbar-config-3PlT-3zm.js +216 -0
  91. package/dist/cjs/tz-Dgom0W69.js +127 -0
  92. package/dist/cobalt/cobalt.css +1 -1
  93. package/dist/cobalt/cobalt.esm.js +1 -1
  94. package/dist/cobalt/p-0a506c9d.entry.js +1 -0
  95. package/dist/cobalt/p-0bb55163.entry.js +1 -0
  96. package/dist/cobalt/{p-fb047df8.entry.js → p-0e8c0d87.entry.js} +1 -1
  97. package/dist/cobalt/p-12e2c2c4.entry.js +1 -0
  98. package/dist/cobalt/p-136ad468.entry.js +1 -0
  99. package/dist/cobalt/p-14b59277.entry.js +1 -0
  100. package/dist/cobalt/p-1531d3c9.entry.js +1 -0
  101. package/dist/cobalt/p-1774d211.entry.js +1 -0
  102. package/dist/cobalt/{p-c7517f86.entry.js → p-180e1106.entry.js} +1 -1
  103. package/dist/cobalt/p-1a07c23c.entry.js +1 -0
  104. package/dist/cobalt/p-1dc9c49e.entry.js +1 -0
  105. package/dist/cobalt/p-1f747e45.entry.js +1 -0
  106. package/dist/cobalt/{p-d29c77cb.entry.js → p-201eaf35.entry.js} +1 -1
  107. package/dist/cobalt/p-260101ab.entry.js +1 -0
  108. package/dist/cobalt/p-279bf91c.entry.js +1 -0
  109. package/dist/cobalt/p-29be61a9.entry.js +1 -0
  110. package/dist/cobalt/p-2d2ce434.entry.js +1 -0
  111. package/dist/cobalt/{p-416bb5ae.entry.js → p-2f86e1e0.entry.js} +1 -1
  112. package/dist/cobalt/{p-4cf6d1f4.entry.js → p-31ab9a46.entry.js} +1 -1
  113. package/dist/cobalt/{p-319937c3.entry.js → p-37595103.entry.js} +1 -1
  114. package/dist/cobalt/p-377c2ccc.entry.js +1 -0
  115. package/dist/cobalt/p-3863ea91.entry.js +1 -0
  116. package/dist/cobalt/p-3a257cb0.entry.js +1 -0
  117. package/dist/cobalt/p-3e187456.entry.js +1 -0
  118. package/dist/cobalt/p-4431faac.entry.js +1 -0
  119. package/dist/cobalt/{p-4d8ff00a.entry.js → p-4504f7b0.entry.js} +1 -1
  120. package/dist/cobalt/p-456fa86f.entry.js +1 -0
  121. package/dist/cobalt/p-4871690e.entry.js +1 -0
  122. package/dist/cobalt/p-4c01d984.entry.js +1 -0
  123. package/dist/cobalt/p-51a53177.entry.js +1 -0
  124. package/dist/cobalt/p-52de17da.entry.js +1 -0
  125. package/dist/cobalt/p-5890e4d1.entry.js +1 -0
  126. package/dist/cobalt/{p-e50c4c6f.entry.js → p-58a53421.entry.js} +1 -1
  127. package/dist/cobalt/p-62274eba.entry.js +1 -0
  128. package/dist/cobalt/p-635b03d5.entry.js +1 -0
  129. package/dist/cobalt/p-64ddee92.entry.js +1 -0
  130. package/dist/cobalt/p-65af5017.entry.js +1 -0
  131. package/dist/cobalt/p-69d4c0c8.entry.js +1 -0
  132. package/dist/cobalt/p-6c480916.entry.js +1 -0
  133. package/dist/cobalt/p-6d1217c3.entry.js +1 -0
  134. package/dist/cobalt/p-6e808b3a.entry.js +1 -0
  135. package/dist/cobalt/{p-697df797.entry.js → p-70b14b05.entry.js} +1 -1
  136. package/dist/cobalt/{p-1d7da33f.entry.js → p-790d384e.entry.js} +1 -1
  137. package/dist/cobalt/p-8012e152.entry.js +1 -0
  138. package/dist/cobalt/p-80b27203.entry.js +1 -0
  139. package/dist/cobalt/p-867c1465.entry.js +1 -0
  140. package/dist/cobalt/p-86a143d7.entry.js +1 -0
  141. package/dist/cobalt/{p-3b2f7959.entry.js → p-8d59f5ad.entry.js} +1 -1
  142. package/dist/cobalt/p-8d7fdb9d.entry.js +1 -0
  143. package/dist/cobalt/p-8dc1dab8.entry.js +1 -0
  144. package/dist/cobalt/p-8e1dc062.entry.js +1 -0
  145. package/dist/cobalt/p-929e647f.entry.js +1 -0
  146. package/dist/cobalt/p-92bd9b29.entry.js +1 -0
  147. package/dist/cobalt/p-93046365.entry.js +1 -0
  148. package/dist/cobalt/p-98ab5f3f.entry.js +1 -0
  149. package/dist/cobalt/p-9a04ca90.entry.js +1 -0
  150. package/dist/cobalt/{p-ebd1555e.entry.js → p-9a088515.entry.js} +1 -1
  151. package/dist/cobalt/p-9abbd436.entry.js +1 -0
  152. package/dist/cobalt/p-9d69c067.entry.js +1 -0
  153. package/dist/cobalt/p-B-ckjCUA.js +1 -0
  154. package/dist/cobalt/p-B2QLgWrz.js +2 -0
  155. package/dist/cobalt/p-B6JZk8fL.js +1 -0
  156. package/dist/cobalt/p-BZJ7NCm5.js +1 -0
  157. package/dist/cobalt/p-C1DCLOEl.js +1 -0
  158. package/dist/cobalt/p-C2mZ7x_Y.js +1 -0
  159. package/dist/cobalt/p-CQY6Ul7q.js +1 -0
  160. package/dist/cobalt/p-CYsftTKf.js +2 -0
  161. package/dist/cobalt/p-CegCk7FL.js +1 -0
  162. package/dist/cobalt/p-Ch1jfwZ2.js +1 -0
  163. package/dist/cobalt/p-ChibIpZv.js +1 -0
  164. package/dist/cobalt/p-DqyWGweA.js +1 -0
  165. package/dist/cobalt/p-afb7e19e.entry.js +1 -0
  166. package/dist/cobalt/p-b6f20268.entry.js +1 -0
  167. package/dist/cobalt/p-ba90e871.entry.js +1 -0
  168. package/dist/cobalt/p-c10697e1.entry.js +1 -0
  169. package/dist/cobalt/p-c4f59532.entry.js +1 -0
  170. package/dist/cobalt/{p-1b5c723a.entry.js → p-cb235aa7.entry.js} +1 -1
  171. package/dist/cobalt/p-cfb36943.entry.js +1 -0
  172. package/dist/cobalt/p-d809bd44.entry.js +1 -0
  173. package/dist/cobalt/p-e53861e4.entry.js +1 -0
  174. package/dist/cobalt/p-e54dd404.entry.js +1 -0
  175. package/dist/cobalt/{p-1021f612.entry.js → p-eb18fdbf.entry.js} +1 -1
  176. package/dist/cobalt/{p-a7fa4484.entry.js → p-eb73052a.entry.js} +1 -1
  177. package/dist/cobalt/p-ef7d4ae3.entry.js +1 -0
  178. package/dist/cobalt/p-f4063c41.entry.js +1 -0
  179. package/dist/cobalt/p-oImf-7fN.js +1 -0
  180. package/dist/cobalt/p-ox7HzCZn.js +10 -0
  181. package/dist/cobalt/p-tPYikBRJ.js +1 -0
  182. package/dist/collection/collection-manifest.json +27 -4
  183. package/dist/collection/components/co-accordion/co-accordion.css +19 -1
  184. package/dist/collection/components/co-accordion/co-accordion.js +46 -4
  185. package/dist/collection/components/co-app-shell/co-app-shell.css +79 -6
  186. package/dist/collection/components/co-app-shell/co-app-shell.js +2 -2
  187. package/dist/collection/components/co-autocomplete/co-autocomplete.css +753 -8
  188. package/dist/collection/components/co-autocomplete/co-autocomplete.js +111 -4
  189. package/dist/collection/components/co-avatar/co-avatar.css +45 -1
  190. package/dist/collection/components/co-avatar/co-avatar.js +56 -6
  191. package/dist/collection/components/co-avatar-group/co-avatar-group.css +86 -0
  192. package/dist/collection/components/co-avatar-group/co-avatar-group.js +224 -0
  193. package/dist/collection/components/co-badge/co-badge.js +1 -1
  194. package/dist/collection/components/co-bottom-sheet/co-bottom-sheet.css +136 -0
  195. package/dist/collection/components/co-bottom-sheet/co-bottom-sheet.js +507 -0
  196. package/dist/collection/components/co-button/co-button.css +48 -12
  197. package/dist/collection/components/co-button/co-button.js +70 -8
  198. package/dist/collection/components/co-button-group/co-button-group.js +2 -2
  199. package/dist/collection/components/co-calendar/co-calendar.css +236 -0
  200. package/dist/collection/components/co-calendar/co-calendar.js +728 -0
  201. package/dist/collection/components/co-calendar-month/co-calendar-month.css +231 -0
  202. package/dist/collection/components/co-calendar-month/co-calendar-month.js +594 -0
  203. package/dist/collection/components/co-card/co-card.css +28 -5
  204. package/dist/collection/components/co-card/co-card.js +47 -4
  205. package/dist/collection/components/co-checkbox/co-checkbox.css +7 -1
  206. package/dist/collection/components/co-checkbox/co-checkbox.js +3 -3
  207. package/dist/collection/components/co-checkbox-group/co-checkbox-group.css +33 -1
  208. package/dist/collection/components/co-checkbox-group/co-checkbox-group.js +25 -3
  209. package/dist/collection/components/co-chip/co-chip.css +27 -7
  210. package/dist/collection/components/co-chip/co-chip.js +52 -10
  211. package/dist/collection/components/co-color-picker/co-color-picker.css +258 -0
  212. package/dist/collection/components/co-color-picker/co-color-picker.js +355 -0
  213. package/dist/collection/components/co-color-picker/presets.js +19 -0
  214. package/dist/collection/components/co-column-picker/co-column-picker.css +490 -0
  215. package/dist/collection/components/co-column-picker/co-column-picker.js +675 -0
  216. package/dist/collection/components/co-column-picker/column-picker-node.js +34 -0
  217. package/dist/collection/components/co-column-picker/utils/column-picker-tree.js +221 -0
  218. package/dist/collection/components/co-combobox/co-combobox.css +778 -51
  219. package/dist/collection/components/co-combobox/co-combobox.js +130 -15
  220. package/dist/collection/components/co-command-search/co-command-search.css +167 -1
  221. package/dist/collection/components/co-command-search/co-command-search.js +362 -14
  222. package/dist/collection/components/co-command-search/commandSearchGroup.js +17 -0
  223. package/dist/collection/components/co-command-search/commandSearchLogic.js +27 -0
  224. package/dist/collection/components/co-data-table/co-data-table.css +37 -1
  225. package/dist/collection/components/co-data-table/co-data-table.js +38 -12
  226. package/dist/collection/components/co-data-table-pagination/co-data-table-pagination.js +4 -4
  227. package/dist/collection/components/co-date-field/co-date-field.css +245 -0
  228. package/dist/collection/components/co-date-field/co-date-field.js +746 -0
  229. package/dist/collection/components/co-date-picker/co-date-picker.css +112 -0
  230. package/dist/collection/components/co-date-picker/co-date-picker.js +801 -0
  231. package/dist/collection/components/co-date-range/co-date-range.css +3 -254
  232. package/dist/collection/components/co-date-range/co-date-range.js +29 -433
  233. package/dist/collection/components/co-date-range-picker/co-date-range-picker.css +257 -0
  234. package/dist/collection/components/co-date-range-picker/co-date-range-picker.js +1142 -0
  235. package/dist/collection/components/co-drawer/co-drawer.css +20 -0
  236. package/dist/collection/components/co-drawer/co-drawer.js +46 -2
  237. package/dist/collection/components/co-empty-state/co-empty-state.js +1 -1
  238. package/dist/collection/components/co-event-calendar/co-event-calendar.css +146 -0
  239. package/dist/collection/components/co-event-calendar/co-event-calendar.js +620 -0
  240. package/dist/collection/components/co-fab/co-fab.js +2 -2
  241. package/dist/collection/components/co-file-field/co-file-field.css +395 -0
  242. package/dist/collection/components/co-file-field/co-file-field.js +841 -0
  243. package/dist/collection/components/co-file-field/co-file-field.utils.js +47 -0
  244. package/dist/collection/components/co-helper-text/co-helper-text.js +2 -2
  245. package/dist/collection/components/co-icon/co-icon.js +7 -34
  246. package/dist/collection/components/co-icon/iconLoader.js +39 -0
  247. package/dist/collection/components/co-icon-button/co-icon-button.css +27 -6
  248. package/dist/collection/components/co-icon-button/co-icon-button.js +26 -7
  249. package/dist/collection/components/co-input/co-input.css +63 -11
  250. package/dist/collection/components/co-input/co-input.js +34 -9
  251. package/dist/collection/components/co-json-field/co-json-field.css +193 -0
  252. package/dist/collection/components/co-json-field/co-json-field.js +477 -0
  253. package/dist/collection/components/co-lightbox/co-lightbox.css +164 -0
  254. package/dist/collection/components/co-lightbox/co-lightbox.js +451 -0
  255. package/dist/collection/components/co-list-footer/co-list-footer.css +50 -0
  256. package/dist/collection/components/co-list-footer/co-list-footer.js +149 -0
  257. package/dist/collection/components/co-list-item/co-list-item.css +12 -0
  258. package/dist/collection/components/co-list-item/co-list-item.js +75 -2
  259. package/dist/collection/components/co-loader/co-loader.css +9 -0
  260. package/dist/collection/components/co-menu/co-menu.js +1 -1
  261. package/dist/collection/components/co-menu-divider/co-menu-divider.js +1 -1
  262. package/dist/collection/components/co-menu-item/co-menu-item.css +18 -0
  263. package/dist/collection/components/co-menu-item/co-menu-item.js +15 -8
  264. package/dist/collection/components/co-modal/co-modal.css +59 -5
  265. package/dist/collection/components/co-modal/co-modal.js +91 -1
  266. package/dist/collection/components/co-navbar/co-navbar.css +1 -1
  267. package/dist/collection/components/co-navbar/co-navbar.js +2 -2
  268. package/dist/collection/components/co-number-field/co-number-field.css +89 -1
  269. package/dist/collection/components/co-number-field/co-number-field.js +175 -14
  270. package/dist/collection/components/co-overlay/co-overlay.css +15 -1
  271. package/dist/collection/components/co-overlay/co-overlay.js +266 -1
  272. package/dist/collection/components/co-overlay/focusTrap.js +53 -0
  273. package/dist/collection/components/co-overlay/overlayAfterClose.js +8 -0
  274. package/dist/collection/components/co-page-header/co-page-header.js +1 -1
  275. package/dist/collection/components/co-phone-field/co-phone-field.css +293 -0
  276. package/dist/collection/components/co-phone-field/co-phone-field.js +414 -0
  277. package/dist/collection/components/co-phone-field/dial-codes.js +208 -0
  278. package/dist/collection/components/co-popover/co-popover.css +9 -0
  279. package/dist/collection/components/co-popover/co-popover.js +43 -12
  280. package/dist/collection/components/co-progress-bar/co-progress-bar.css +22 -0
  281. package/dist/collection/components/co-progress-bar/co-progress-bar.js +26 -2
  282. package/dist/collection/components/co-progress-circle/co-progress-circle.css +50 -0
  283. package/dist/collection/components/co-progress-circle/co-progress-circle.js +148 -0
  284. package/dist/collection/components/co-radio/co-radio.js +3 -3
  285. package/dist/collection/components/co-radio-group/co-radio-group.css +26 -0
  286. package/dist/collection/components/co-radio-group/co-radio-group.js +25 -3
  287. package/dist/collection/components/co-rating/co-rating.js +3 -3
  288. package/dist/collection/components/co-ref-field/co-ref-field.css +876 -56
  289. package/dist/collection/components/co-ref-field/co-ref-field.js +0 -0
  290. package/dist/collection/components/co-rich-text-editor/co-rich-text-editor.css +1322 -0
  291. package/dist/collection/components/co-rich-text-editor/co-rich-text-editor.js +2823 -0
  292. package/dist/collection/components/co-rich-text-toolbar/co-rich-text-toolbar.css +837 -0
  293. package/dist/collection/components/co-rich-text-toolbar/co-rich-text-toolbar.js +1289 -0
  294. package/dist/collection/components/co-rich-text-viewer/co-rich-text-viewer.css +156 -0
  295. package/dist/collection/components/co-rich-text-viewer/co-rich-text-viewer.js +237 -0
  296. package/dist/collection/components/co-row/co-row.js +2 -2
  297. package/dist/collection/components/co-select/co-select.css +852 -8
  298. package/dist/collection/components/co-select/co-select.js +240 -17
  299. package/dist/collection/components/co-separator/co-separator.js +1 -1
  300. package/dist/collection/components/co-sidebar/co-sidebar.js +2 -2
  301. package/dist/collection/components/co-sidebar-nav/co-sidebar-nav.css +99 -12
  302. package/dist/collection/components/co-sidebar-nav/co-sidebar-nav.js +54 -9
  303. package/dist/collection/components/co-skeleton/co-skeleton.css +28 -0
  304. package/dist/collection/components/co-skeleton/co-skeleton.js +97 -0
  305. package/dist/collection/components/co-slider/co-slider.js +2 -2
  306. package/dist/collection/components/co-switch/co-switch.css +26 -1
  307. package/dist/collection/components/co-switch/co-switch.js +27 -4
  308. package/dist/collection/components/co-tab/co-tab.js +2 -2
  309. package/dist/collection/components/co-tab-group/co-tab-group.js +1 -1
  310. package/dist/collection/components/co-tags-field/co-tags-field.css +310 -0
  311. package/dist/collection/components/co-tags-field/co-tags-field.js +616 -0
  312. package/dist/collection/components/co-textarea/co-textarea.css +286 -0
  313. package/dist/collection/components/co-textarea/co-textarea.js +508 -0
  314. package/dist/collection/components/co-toast/co-toast.js +1 -1
  315. package/dist/collection/components/co-toggle-button/co-toggle-button.css +30 -6
  316. package/dist/collection/components/co-toggle-button/co-toggle-button.js +3 -3
  317. package/dist/collection/components/co-toggle-button-group/co-toggle-button-group.css +32 -12
  318. package/dist/collection/components/co-toggle-button-group/co-toggle-button-group.js +25 -2
  319. package/dist/collection/components/co-tooltip/co-tooltip.css +24 -0
  320. package/dist/collection/components/co-tooltip/co-tooltip.js +73 -12
  321. package/dist/collection/components/co-transfer-list/co-transfer-list.css +683 -7
  322. package/dist/collection/components/co-transfer-list/co-transfer-list.js +17 -4
  323. package/dist/collection/components/co-video/co-video.css +497 -0
  324. package/dist/collection/components/co-video/co-video.js +1772 -0
  325. package/dist/collection/utils/dateI18n.js +101 -0
  326. package/dist/collection/utils/fieldChip.js +2 -0
  327. package/dist/collection/utils/fileI18n.js +76 -0
  328. package/dist/collection/utils/icon-config.js +34 -0
  329. package/dist/collection/utils/lightboxI18n.js +42 -0
  330. package/dist/collection/utils/normalizeText.js +94 -0
  331. package/dist/collection/utils/overlayScroll.js +20 -0
  332. package/dist/collection/utils/positioning.js +40 -25
  333. package/dist/collection/utils/requiredMark.js +11 -0
  334. package/dist/collection/utils/richTextI18n.js +378 -0
  335. package/dist/collection/utils/sheetGesture.js +53 -0
  336. package/dist/components/co-accordion.js +1 -1
  337. package/dist/components/co-app-shell.js +1 -1
  338. package/dist/components/co-autocomplete.js +1 -1
  339. package/dist/components/co-avatar-group.d.ts +11 -0
  340. package/dist/components/co-avatar-group.js +1 -0
  341. package/dist/components/co-avatar.js +1 -1
  342. package/dist/components/co-badge.js +1 -1
  343. package/dist/components/co-bottom-sheet.d.ts +11 -0
  344. package/dist/components/co-bottom-sheet.js +1 -0
  345. package/dist/components/co-button-group.js +1 -1
  346. package/dist/components/co-button.js +1 -1
  347. package/dist/components/co-calendar-month.d.ts +11 -0
  348. package/dist/components/co-calendar-month.js +1 -0
  349. package/dist/components/co-calendar.d.ts +11 -0
  350. package/dist/components/co-calendar.js +1 -0
  351. package/dist/components/co-card.js +1 -1
  352. package/dist/components/co-checkbox-group.js +1 -1
  353. package/dist/components/co-checkbox.js +1 -1
  354. package/dist/components/co-chip.js +1 -1
  355. package/dist/components/co-color-picker.d.ts +11 -0
  356. package/dist/components/co-color-picker.js +1 -0
  357. package/dist/components/co-column-picker.d.ts +11 -0
  358. package/dist/components/co-column-picker.js +1 -0
  359. package/dist/components/co-combobox.js +1 -1
  360. package/dist/components/co-command-search.js +1 -1
  361. package/dist/components/co-data-table-pagination.js +1 -1
  362. package/dist/components/co-data-table.js +1 -1
  363. package/dist/components/co-date-field.d.ts +11 -0
  364. package/dist/components/co-date-field.js +1 -0
  365. package/dist/components/co-date-picker.d.ts +11 -0
  366. package/dist/components/co-date-picker.js +1 -0
  367. package/dist/components/co-date-range-picker.d.ts +11 -0
  368. package/dist/components/co-date-range-picker.js +1 -0
  369. package/dist/components/co-date-range.js +1 -1
  370. package/dist/components/co-drawer.js +1 -1
  371. package/dist/components/co-empty-state.js +1 -1
  372. package/dist/components/co-event-calendar.d.ts +11 -0
  373. package/dist/components/co-event-calendar.js +1 -0
  374. package/dist/components/co-fab.js +1 -1
  375. package/dist/components/co-file-field.d.ts +11 -0
  376. package/dist/components/co-file-field.js +1 -0
  377. package/dist/components/co-helper-text.js +1 -1
  378. package/dist/components/co-icon-button.js +1 -1
  379. package/dist/components/co-icon.js +1 -1
  380. package/dist/components/co-input.js +1 -1
  381. package/dist/components/co-json-field.d.ts +11 -0
  382. package/dist/components/co-json-field.js +1 -0
  383. package/dist/components/co-lightbox.d.ts +11 -0
  384. package/dist/components/co-lightbox.js +1 -0
  385. package/dist/components/co-list-footer.d.ts +11 -0
  386. package/dist/components/co-list-footer.js +1 -0
  387. package/dist/components/co-list-item.js +1 -1
  388. package/dist/components/co-loader.js +1 -1
  389. package/dist/components/co-menu-divider.js +1 -1
  390. package/dist/components/co-menu-item.js +1 -1
  391. package/dist/components/co-menu.js +1 -1
  392. package/dist/components/co-modal.js +1 -1
  393. package/dist/components/co-navbar.js +1 -1
  394. package/dist/components/co-number-field.js +1 -1
  395. package/dist/components/co-overlay.js +1 -1
  396. package/dist/components/co-page-header.js +1 -1
  397. package/dist/components/co-phone-field.d.ts +11 -0
  398. package/dist/components/co-phone-field.js +1 -0
  399. package/dist/components/co-popover.js +1 -1
  400. package/dist/components/co-progress-bar.js +1 -1
  401. package/dist/components/co-progress-circle.d.ts +11 -0
  402. package/dist/components/co-progress-circle.js +1 -0
  403. package/dist/components/co-radio-group.js +1 -1
  404. package/dist/components/co-radio.js +1 -1
  405. package/dist/components/co-rating.js +1 -1
  406. package/dist/components/co-ref-field.js +1 -1
  407. package/dist/components/co-rich-text-editor.d.ts +11 -0
  408. package/dist/components/co-rich-text-editor.js +1 -0
  409. package/dist/components/co-rich-text-toolbar.d.ts +11 -0
  410. package/dist/components/co-rich-text-toolbar.js +1 -0
  411. package/dist/components/co-rich-text-viewer.d.ts +11 -0
  412. package/dist/components/co-rich-text-viewer.js +1 -0
  413. package/dist/components/co-row.js +1 -1
  414. package/dist/components/co-select.js +1 -1
  415. package/dist/components/co-separator.js +1 -1
  416. package/dist/components/co-sidebar-nav.js +1 -1
  417. package/dist/components/co-sidebar.js +1 -1
  418. package/dist/components/co-skeleton.d.ts +11 -0
  419. package/dist/components/co-skeleton.js +1 -0
  420. package/dist/components/co-slider.js +1 -1
  421. package/dist/components/co-switch.js +1 -1
  422. package/dist/components/co-tab-group.js +1 -1
  423. package/dist/components/co-tab.js +1 -1
  424. package/dist/components/co-tags-field.d.ts +11 -0
  425. package/dist/components/co-tags-field.js +1 -0
  426. package/dist/components/co-textarea.d.ts +11 -0
  427. package/dist/components/co-textarea.js +1 -0
  428. package/dist/components/co-toast.js +1 -1
  429. package/dist/components/co-toggle-button-group.js +1 -1
  430. package/dist/components/co-toggle-button.js +1 -1
  431. package/dist/components/co-tooltip.js +1 -1
  432. package/dist/components/co-transfer-list.js +1 -1
  433. package/dist/components/co-video.d.ts +11 -0
  434. package/dist/components/co-video.js +1 -0
  435. package/dist/components/index.js +1 -1
  436. package/dist/components/p-B2QLgWrz.js +2 -0
  437. package/dist/components/p-B7vGYFbO.js +1 -0
  438. package/dist/components/p-BB2OaYKF.js +1 -0
  439. package/dist/components/p-BFeE_fiq.js +1 -0
  440. package/dist/components/p-BNKz39GA.js +1 -0
  441. package/dist/components/p-Ba4v1NXo.js +1 -0
  442. package/dist/components/p-C1DCLOEl.js +1 -0
  443. package/dist/components/p-C2mZ7x_Y.js +1 -0
  444. package/dist/components/p-CQY6Ul7q.js +1 -0
  445. package/dist/components/p-CWneqh4n.js +1 -0
  446. package/dist/components/p-C_ULDaks.js +1 -0
  447. package/dist/components/p-CegCk7FL.js +1 -0
  448. package/dist/components/p-ChibIpZv.js +1 -0
  449. package/dist/components/p-CyYF8IJE.js +1 -0
  450. package/dist/components/p-D3Y_ti3Q.js +1 -0
  451. package/dist/components/p-DKh8ZK4U.js +1 -0
  452. package/dist/components/p-DeZxp9vb.js +1 -0
  453. package/dist/components/p-DqyWGweA.js +1 -0
  454. package/dist/components/p-DvhR3H61.js +1 -0
  455. package/dist/components/p-DxCFMMfY.js +1 -0
  456. package/dist/components/{p-OGpfa9Yd.js → p-DzoNGEDU.js} +1 -1
  457. package/dist/components/p-EPZfLt5l.js +1 -0
  458. package/dist/components/p-FMnqPWcM.js +1 -0
  459. package/dist/components/p-Hzh9U2cM.js +1 -0
  460. package/dist/components/p-WZ06pT2Y.js +1 -0
  461. package/dist/components/p-ox7HzCZn.js +10 -0
  462. package/dist/components/p-tloAgDin.js +1 -0
  463. package/dist/esm/co-accordion.entry.js +19 -4
  464. package/dist/esm/co-app-shell.entry.js +4 -4
  465. package/dist/esm/co-autocomplete.entry.js +54 -6
  466. package/dist/esm/co-avatar-group.entry.js +75 -0
  467. package/dist/esm/co-avatar.entry.js +41 -6
  468. package/dist/esm/co-badge.entry.js +2 -2
  469. package/dist/esm/co-bottom-sheet.entry.js +323 -0
  470. package/dist/esm/co-button-group.entry.js +3 -3
  471. package/dist/esm/co-button.entry.js +12 -7
  472. package/dist/esm/co-calendar-month.entry.js +379 -0
  473. package/dist/esm/co-calendar_3.entry.js +688 -0
  474. package/dist/esm/co-card.entry.js +21 -4
  475. package/dist/esm/co-checkbox-group.entry.js +7 -5
  476. package/dist/esm/co-checkbox.entry.js +5 -5
  477. package/dist/esm/co-chip.entry.js +11 -8
  478. package/dist/esm/co-color-picker.entry.js +109 -0
  479. package/dist/esm/co-column-picker.entry.js +441 -0
  480. package/dist/esm/co-combobox.entry.js +51 -15
  481. package/dist/esm/co-command-search.entry.js +159 -13
  482. package/dist/esm/co-data-table-pagination.entry.js +5 -5
  483. package/dist/esm/co-data-table.entry.js +38 -12
  484. package/dist/esm/co-date-picker.entry.js +175 -0
  485. package/dist/esm/co-date-range-picker.entry.js +376 -0
  486. package/dist/esm/co-date-range.entry.js +13 -259
  487. package/dist/esm/co-empty-state.entry.js +2 -2
  488. package/dist/esm/co-event-calendar.entry.js +316 -0
  489. package/dist/esm/co-fab.entry.js +3 -3
  490. package/dist/esm/co-file-field.entry.js +496 -0
  491. package/dist/esm/co-helper-text.entry.js +3 -3
  492. package/dist/esm/co-icon-button.entry.js +6 -6
  493. package/dist/esm/co-icon.entry.js +36 -25
  494. package/dist/esm/co-input.entry.js +13 -8
  495. package/dist/esm/co-json-field.entry.js +111 -0
  496. package/dist/esm/co-lightbox.entry.js +342 -0
  497. package/dist/esm/co-list-footer.entry.js +23 -0
  498. package/dist/esm/co-list-item.entry.js +70 -4
  499. package/dist/esm/co-loader_2.entry.js +290 -0
  500. package/dist/esm/co-menu-divider.entry.js +2 -2
  501. package/dist/esm/co-menu-item.entry.js +17 -10
  502. package/dist/esm/co-menu.entry.js +2 -2
  503. package/dist/esm/co-modal.entry.js +25 -3
  504. package/dist/esm/co-navbar.entry.js +4 -4
  505. package/dist/esm/co-number-field.entry.js +60 -12
  506. package/dist/esm/co-page-header.entry.js +2 -2
  507. package/dist/esm/co-phone-field.entry.js +376 -0
  508. package/dist/esm/co-popover.entry.js +46 -15
  509. package/dist/esm/co-progress-bar.entry.js +8 -4
  510. package/dist/esm/co-progress-circle.entry.js +36 -0
  511. package/dist/esm/co-radio-group.entry.js +7 -5
  512. package/dist/esm/co-radio.entry.js +4 -4
  513. package/dist/esm/co-rating.entry.js +4 -4
  514. package/dist/esm/co-ref-field.entry.js +214 -21
  515. package/dist/esm/co-rich-text-editor.entry.js +2079 -0
  516. package/dist/esm/co-rich-text-toolbar.entry.js +1106 -0
  517. package/dist/esm/co-rich-text-viewer.entry.js +116 -0
  518. package/dist/esm/co-row.entry.js +3 -3
  519. package/dist/esm/co-select.entry.js +119 -18
  520. package/dist/esm/co-separator.entry.js +2 -2
  521. package/dist/esm/co-sidebar-nav.entry.js +55 -10
  522. package/dist/esm/co-sidebar.entry.js +3 -3
  523. package/dist/esm/co-skeleton.entry.js +24 -0
  524. package/dist/esm/co-slider.entry.js +3 -3
  525. package/dist/esm/co-switch.entry.js +9 -6
  526. package/dist/esm/co-tab-group.entry.js +2 -2
  527. package/dist/esm/co-tab.entry.js +3 -3
  528. package/dist/esm/co-tags-field.entry.js +209 -0
  529. package/dist/esm/co-textarea.entry.js +94 -0
  530. package/dist/esm/co-toast.entry.js +2 -2
  531. package/dist/esm/co-toggle-button-group.entry.js +7 -4
  532. package/dist/esm/co-toggle-button.entry.js +4 -4
  533. package/dist/esm/co-tooltip.entry.js +56 -15
  534. package/dist/esm/co-transfer-list.entry.js +20 -6
  535. package/dist/esm/co-video.entry.js +837 -0
  536. package/dist/esm/cobalt.js +3 -3
  537. package/dist/esm/dateI18n-C1DCLOEl.js +103 -0
  538. package/dist/esm/dates-tPYikBRJ.js +416 -0
  539. package/dist/esm/fieldChip-GPikjpYw.js +5 -0
  540. package/dist/esm/{index-B0lqrhFo.js → index-CYsftTKf.js} +115 -23
  541. package/dist/esm/index-w_Wxgclf.js +35403 -0
  542. package/dist/esm/loader.js +3 -3
  543. package/dist/esm/normalizeText-CQY6Ul7q.js +92 -0
  544. package/dist/esm/overlayAfterClose-Ch1jfwZ2.js +10 -0
  545. package/dist/esm/overlayScroll-Bpv882_z.js +23 -0
  546. package/dist/esm/overlayscrollbars-ox7HzCZn.js +2840 -0
  547. package/dist/esm/{positioning-Am-OlB8h.js → positioning-C2mZ7x_Y.js} +40 -25
  548. package/dist/esm/purify.es-B2QLgWrz.js +1774 -0
  549. package/dist/esm/requiredMark-CEbXKHcU.js +14 -0
  550. package/dist/esm/richTextI18n-B-ckjCUA.js +380 -0
  551. package/dist/esm/toolbar-config-ChibIpZv.js +212 -0
  552. package/dist/esm/tz-B6JZk8fL.js +119 -0
  553. package/dist/types/components/co-accordion/co-accordion.d.ts +12 -2
  554. package/dist/types/components/co-autocomplete/co-autocomplete.d.ts +13 -0
  555. package/dist/types/components/co-avatar/co-avatar.d.ts +8 -2
  556. package/dist/types/components/co-avatar-group/co-avatar-group.d.ts +33 -0
  557. package/dist/types/components/co-bottom-sheet/co-bottom-sheet.d.ts +81 -0
  558. package/dist/types/components/co-button/co-button.d.ts +7 -1
  559. package/dist/types/components/co-calendar/co-calendar.d.ts +108 -0
  560. package/dist/types/components/co-calendar-month/co-calendar-month.d.ts +83 -0
  561. package/dist/types/components/co-card/co-card.d.ts +10 -2
  562. package/dist/types/components/co-checkbox-group/co-checkbox-group.d.ts +2 -0
  563. package/dist/types/components/co-chip/co-chip.d.ts +7 -2
  564. package/dist/types/components/co-color-picker/co-color-picker.d.ts +50 -0
  565. package/dist/types/components/co-color-picker/presets.d.ts +10 -0
  566. package/dist/types/components/co-column-picker/co-column-picker.d.ts +60 -0
  567. package/dist/types/components/co-column-picker/column-picker-node.d.ts +18 -0
  568. package/dist/types/components/co-column-picker/utils/column-picker-tree.d.ts +37 -0
  569. package/dist/types/components/co-combobox/co-combobox.d.ts +14 -1
  570. package/dist/types/components/co-command-search/co-command-search.d.ts +41 -6
  571. package/dist/types/components/co-command-search/commandSearchGroup.d.ts +20 -0
  572. package/dist/types/components/co-command-search/commandSearchLogic.d.ts +17 -0
  573. package/dist/types/components/co-data-table/co-data-table.d.ts +3 -1
  574. package/dist/types/components/co-date-field/co-date-field.d.ts +96 -0
  575. package/dist/types/components/co-date-picker/co-date-picker.d.ts +92 -0
  576. package/dist/types/components/co-date-range/co-date-range.d.ts +12 -50
  577. package/dist/types/components/co-date-range-picker/co-date-range-picker.d.ts +112 -0
  578. package/dist/types/components/co-drawer/co-drawer.d.ts +4 -0
  579. package/dist/types/components/co-event-calendar/co-event-calendar.d.ts +110 -0
  580. package/dist/types/components/co-file-field/co-file-field.d.ts +146 -0
  581. package/dist/types/components/co-file-field/co-file-field.utils.d.ts +18 -0
  582. package/dist/types/components/co-icon/co-icon.d.ts +1 -1
  583. package/dist/types/components/co-icon/iconLoader.d.ts +6 -0
  584. package/dist/types/components/co-icon-button/co-icon-button.d.ts +3 -1
  585. package/dist/types/components/co-input/co-input.d.ts +4 -1
  586. package/dist/types/components/co-json-field/co-json-field.d.ts +69 -0
  587. package/dist/types/components/co-lightbox/co-lightbox.d.ts +95 -0
  588. package/dist/types/components/co-list-footer/co-list-footer.d.ts +26 -0
  589. package/dist/types/components/co-list-item/co-list-item.d.ts +12 -0
  590. package/dist/types/components/co-modal/co-modal.d.ts +10 -0
  591. package/dist/types/components/co-number-field/co-number-field.d.ts +29 -2
  592. package/dist/types/components/co-overlay/co-overlay.d.ts +45 -0
  593. package/dist/types/components/co-overlay/focusTrap.d.ts +20 -0
  594. package/dist/types/components/co-overlay/overlayAfterClose.d.ts +5 -0
  595. package/dist/types/components/co-phone-field/co-phone-field.d.ts +58 -0
  596. package/dist/types/components/co-phone-field/dial-codes.d.ts +14 -0
  597. package/dist/types/components/co-popover/co-popover.d.ts +9 -0
  598. package/dist/types/components/co-progress-bar/co-progress-bar.d.ts +2 -0
  599. package/dist/types/components/co-progress-circle/co-progress-circle.d.ts +16 -0
  600. package/dist/types/components/co-radio-group/co-radio-group.d.ts +2 -0
  601. package/dist/types/components/co-ref-field/co-ref-field.d.ts +69 -1
  602. package/dist/types/components/co-rich-text-editor/co-rich-text-editor.d.ts +246 -0
  603. package/dist/types/components/co-rich-text-toolbar/co-rich-text-toolbar.d.ts +148 -0
  604. package/dist/types/components/co-rich-text-viewer/co-rich-text-viewer.d.ts +19 -0
  605. package/dist/types/components/co-select/co-select.d.ts +31 -1
  606. package/dist/types/components/co-skeleton/co-skeleton.d.ts +13 -0
  607. package/dist/types/components/co-switch/co-switch.d.ts +2 -0
  608. package/dist/types/components/co-tags-field/co-tags-field.d.ts +84 -0
  609. package/dist/types/components/co-textarea/co-textarea.d.ts +68 -0
  610. package/dist/types/components/co-toggle-button-group/co-toggle-button-group.d.ts +2 -0
  611. package/dist/types/components/co-tooltip/co-tooltip.d.ts +12 -0
  612. package/dist/types/components/co-transfer-list/co-transfer-list.d.ts +4 -0
  613. package/dist/types/components/co-video/co-video.d.ts +203 -0
  614. package/dist/types/components.d.ts +5422 -391
  615. package/dist/types/utils/dateI18n.d.ts +39 -0
  616. package/dist/types/utils/fieldChip.d.ts +37 -0
  617. package/dist/types/utils/fileI18n.d.ts +34 -0
  618. package/dist/types/utils/icon-config.d.ts +31 -0
  619. package/dist/types/utils/lightboxI18n.d.ts +12 -0
  620. package/dist/types/utils/normalizeText.d.ts +41 -0
  621. package/dist/types/utils/overlayScroll.d.ts +17 -0
  622. package/dist/types/utils/positioning.d.ts +7 -14
  623. package/dist/types/utils/requiredMark.d.ts +13 -0
  624. package/dist/types/utils/richTextI18n.d.ts +130 -0
  625. package/dist/types/utils/sheetGesture.d.ts +31 -0
  626. package/package.json +10 -1
  627. package/dist/cjs/co-drawer.cjs.entry.js +0 -75
  628. package/dist/cjs/co-loader.cjs.entry.js +0 -34
  629. package/dist/cjs/co-overlay.cjs.entry.js +0 -23
  630. package/dist/cjs/color-YhUkm10t.js +0 -32
  631. package/dist/cobalt/p-08afdc51.entry.js +0 -1
  632. package/dist/cobalt/p-1b7d6808.entry.js +0 -1
  633. package/dist/cobalt/p-1d3338b6.entry.js +0 -1
  634. package/dist/cobalt/p-1d91ec93.entry.js +0 -1
  635. package/dist/cobalt/p-230a23f3.entry.js +0 -1
  636. package/dist/cobalt/p-31bc842d.entry.js +0 -1
  637. package/dist/cobalt/p-37c1f700.entry.js +0 -1
  638. package/dist/cobalt/p-4905b51d.entry.js +0 -1
  639. package/dist/cobalt/p-4dd7499c.entry.js +0 -1
  640. package/dist/cobalt/p-4e7ce8ee.entry.js +0 -1
  641. package/dist/cobalt/p-4ffba5a3.entry.js +0 -1
  642. package/dist/cobalt/p-5a13e3a0.entry.js +0 -1
  643. package/dist/cobalt/p-6793c51e.entry.js +0 -1
  644. package/dist/cobalt/p-689e38b3.entry.js +0 -1
  645. package/dist/cobalt/p-7028880b.entry.js +0 -1
  646. package/dist/cobalt/p-72113ec2.entry.js +0 -1
  647. package/dist/cobalt/p-8e54e74d.entry.js +0 -1
  648. package/dist/cobalt/p-92c39eed.entry.js +0 -1
  649. package/dist/cobalt/p-9887b828.entry.js +0 -1
  650. package/dist/cobalt/p-9a5c6600.entry.js +0 -1
  651. package/dist/cobalt/p-Am-OlB8h.js +0 -1
  652. package/dist/cobalt/p-B0lqrhFo.js +0 -2
  653. package/dist/cobalt/p-BG4WRR22.js +0 -1
  654. package/dist/cobalt/p-a1b248ad.entry.js +0 -1
  655. package/dist/cobalt/p-a470b764.entry.js +0 -1
  656. package/dist/cobalt/p-a4d55b1a.entry.js +0 -1
  657. package/dist/cobalt/p-b6840df4.entry.js +0 -1
  658. package/dist/cobalt/p-b89d54d9.entry.js +0 -1
  659. package/dist/cobalt/p-ba84631a.entry.js +0 -1
  660. package/dist/cobalt/p-c9b0e73f.entry.js +0 -1
  661. package/dist/cobalt/p-ca41eec2.entry.js +0 -1
  662. package/dist/cobalt/p-cc93ab05.entry.js +0 -1
  663. package/dist/cobalt/p-d9d8b10e.entry.js +0 -1
  664. package/dist/cobalt/p-da55678f.entry.js +0 -1
  665. package/dist/cobalt/p-dc5598d1.entry.js +0 -1
  666. package/dist/cobalt/p-e2c9cb00.entry.js +0 -1
  667. package/dist/cobalt/p-e808916c.entry.js +0 -1
  668. package/dist/cobalt/p-ebd68f56.entry.js +0 -1
  669. package/dist/cobalt/p-f051f44d.entry.js +0 -1
  670. package/dist/cobalt/p-fe1447a3.entry.js +0 -1
  671. package/dist/cobalt/p-ff6a647c.entry.js +0 -1
  672. package/dist/components/p-Am-OlB8h.js +0 -1
  673. package/dist/components/p-B18FTYLq.js +0 -1
  674. package/dist/components/p-BG4WRR22.js +0 -1
  675. package/dist/components/p-Cr8Yc0zj.js +0 -1
  676. package/dist/components/p-FBICWTuN.js +0 -1
  677. package/dist/components/p-cpdUXBiS.js +0 -1
  678. package/dist/components/p-wwWquAtm.js +0 -1
  679. package/dist/esm/co-drawer.entry.js +0 -73
  680. package/dist/esm/co-loader.entry.js +0 -32
  681. package/dist/esm/co-overlay.entry.js +0 -21
  682. package/dist/esm/color-BG4WRR22.js +0 -30
@@ -0,0 +1,1322 @@
1
+ /* ============================================================
2
+ co-rich-text-editor — Tiptap v3 editor (light DOM)
3
+ shadow:false / scoped:false → BEM + tokens, no :host.
4
+ ============================================================ */
5
+
6
+ co-rich-text-editor {
7
+ display: block;
8
+ font-family: var(--co-font-family-primary);
9
+ font-size: var(--co-font-size-14);
10
+ letter-spacing: var(--co-font-letter-spacing-body);
11
+ }
12
+
13
+ .co-rich-text-editor {
14
+ display: flex;
15
+ flex-direction: column;
16
+ gap: var(--co-spacing-sm2, 6px);
17
+ }
18
+
19
+ /* ---- Labels ---- */
20
+ .co-rich-text-editor__labels {
21
+ display: flex;
22
+ align-items: center;
23
+ justify-content: space-between;
24
+ padding: 0 var(--co-spacing-xs);
25
+ gap: var(--co-spacing-sm2, 6px);
26
+ }
27
+
28
+ .co-rich-text-editor__label,
29
+ .co-rich-text-editor__secondary-label {
30
+ color: var(--co-semantic-text-secondary);
31
+ font-size: var(--co-font-size-14);
32
+ font-weight: 400;
33
+ line-height: 1;
34
+ }
35
+
36
+ /* ---- Frame (toolbar + box — visual container) ---- */
37
+ .co-rich-text-editor__frame {
38
+ display: flex;
39
+ flex-direction: column;
40
+ background: var(--co-semantic-surface-secondary);
41
+ border: 1px solid var(--co-semantic-border-subtle);
42
+ border-radius: var(--co-border-radius-xs);
43
+ transition: border-color 0.15s ease, box-shadow 0.15s ease;
44
+ min-height: 0;
45
+ flex: 1;
46
+ position: relative;
47
+ overflow: visible;
48
+ }
49
+
50
+ /* ---- Box (scrollable content area) ---- */
51
+ .co-rich-text-editor__box {
52
+ display: flex;
53
+ flex-direction: column;
54
+ min-height: 0;
55
+ flex: 1;
56
+ position: relative;
57
+ overflow-y: auto;
58
+ overflow-x: hidden;
59
+ }
60
+
61
+ .co-rich-text-editor--focused .co-rich-text-editor__frame {
62
+ border-color: var(--co-semantic-border-focus, var(--co-color-base-negro, #1a1a1a));
63
+ box-shadow: 0 0 0 3px var(--co-semantic-border-focus-ring, rgba(37, 99, 235, 0.15));
64
+ }
65
+
66
+ .co-rich-text-editor--error .co-rich-text-editor__frame {
67
+ border-color: var(--co-color-status-error);
68
+ }
69
+ .co-rich-text-editor--success .co-rich-text-editor__frame {
70
+ border-color: var(--co-color-status-success);
71
+ }
72
+
73
+ .co-rich-text-editor--disabled .co-rich-text-editor__frame,
74
+ .co-rich-text-editor--readonly .co-rich-text-editor__frame {
75
+ opacity: 0.7;
76
+ cursor: not-allowed;
77
+ }
78
+
79
+ .co-rich-text-editor--loading .co-rte-content {
80
+ min-height: 96px;
81
+ background: linear-gradient(90deg,
82
+ var(--co-semantic-surface-secondary) 0%,
83
+ var(--co-semantic-surface-hover, rgba(0, 0, 0, 0.04)) 50%,
84
+ var(--co-semantic-surface-secondary) 100%);
85
+ background-size: 200% 100%;
86
+ animation: co-rte-skeleton 1.2s ease-in-out infinite;
87
+ }
88
+
89
+ @keyframes co-rte-skeleton {
90
+ 0% { background-position: 200% 0; }
91
+ 100% { background-position: -200% 0; }
92
+ }
93
+
94
+ /* ---- Editable surface ---- */
95
+ .co-rich-text-editor__toolbar {
96
+ position: relative;
97
+ flex-shrink: 0;
98
+ /* Must sit above the selection bubble (z-index 50) so toolbar dropdowns,
99
+ color pickers and panels render on top of it instead of being crossed. */
100
+ z-index: 60;
101
+ }
102
+
103
+ .co-rte-content {
104
+ min-height: 96px;
105
+ color: var(--co-semantic-text-default);
106
+ flex: 1 0 auto;
107
+ display: flex;
108
+ flex-direction: column;
109
+ }
110
+
111
+ .co-rte-content .ProseMirror {
112
+ outline: none;
113
+ flex: 1 0 auto;
114
+ line-height: 1.5;
115
+ padding: var(--co-spacing-md);
116
+ box-sizing: border-box;
117
+ }
118
+
119
+ .co-rte-content .ProseMirror p {
120
+ margin: 0 0 var(--co-spacing-sm) 0;
121
+ }
122
+ .co-rte-content .ProseMirror p:last-child {
123
+ margin-bottom: 0;
124
+ }
125
+
126
+ /* Defensive: some host apps ship aggressive global resets like
127
+ `.tiptap p { margin: 0 !important }` (e.g. a legacy editor whose styles are
128
+ imported unscoped). ProseMirror also carries the `.tiptap` class, so those
129
+ leak in and collapse paragraph spacing. Re-assert top-level paragraph spacing
130
+ with a more specific selector so it survives. (Indent sets margin-left inline
131
+ with `!important`, which still wins — different property.) */
132
+ .co-rte-content .ProseMirror > p {
133
+ margin-bottom: var(--co-spacing-sm) !important;
134
+ }
135
+ .co-rte-content .ProseMirror > p:last-child {
136
+ margin-bottom: 0 !important;
137
+ }
138
+
139
+ /* Text alignment (TextAlign extension renders text-align inline; these
140
+ guarantee justify spreads to the last line consistently). */
141
+ .co-rte-content .ProseMirror [style*="text-align: justify"] {
142
+ text-align-last: left;
143
+ }
144
+ .co-rte-content .ProseMirror [style*="text-align: center"] { text-align: center; }
145
+ .co-rte-content .ProseMirror [style*="text-align: right"] { text-align: right; }
146
+
147
+ .co-rte-content .ProseMirror h1,
148
+ .co-rte-content .ProseMirror h2,
149
+ .co-rte-content .ProseMirror h3,
150
+ .co-rte-content .ProseMirror h4 {
151
+ margin: var(--co-spacing-md) 0 var(--co-spacing-sm);
152
+ font-weight: 600;
153
+ line-height: 1.3;
154
+ }
155
+ .co-rte-content .ProseMirror h1 { font-size: var(--co-font-size-28, 28px); }
156
+ .co-rte-content .ProseMirror h2 { font-size: var(--co-font-size-20, 20px); }
157
+ .co-rte-content .ProseMirror h3 { font-size: var(--co-font-size-16, 16px); }
158
+
159
+ .co-rte-content .ProseMirror ul,
160
+ .co-rte-content .ProseMirror ol {
161
+ padding-left: var(--co-spacing-xl);
162
+ margin: 0 0 var(--co-spacing-sm) 0;
163
+ }
164
+
165
+ /* ---- Task lists (checklists) ---- */
166
+ .co-rte-content .ProseMirror ul[data-type="taskList"] {
167
+ list-style: none;
168
+ padding-left: 0;
169
+ margin: 0 0 var(--co-spacing-sm) 0;
170
+ }
171
+ .co-rte-content .ProseMirror ul[data-type="taskList"] li {
172
+ display: flex;
173
+ align-items: flex-start;
174
+ gap: var(--co-spacing-sm, 8px);
175
+ }
176
+ .co-rte-content .ProseMirror ul[data-type="taskList"] li > label {
177
+ flex: 0 0 auto;
178
+ margin-top: 0.15em;
179
+ user-select: none;
180
+ }
181
+ .co-rte-content .ProseMirror ul[data-type="taskList"] li > div {
182
+ flex: 1 1 auto;
183
+ min-width: 0;
184
+ }
185
+ .co-rte-content .ProseMirror ul[data-type="taskList"] li > div > p {
186
+ margin: 0;
187
+ }
188
+ .co-rte-content .ProseMirror ul[data-type="taskList"] input[type="checkbox"] {
189
+ width: 16px;
190
+ height: 16px;
191
+ cursor: pointer;
192
+ accent-color: var(--co-color-base-negro, #1a1a1a);
193
+ }
194
+ /* Variant "strike" (default): completed items get struck through + dimmed. */
195
+ .co-rte-content .ProseMirror ul[data-type="taskList"][data-variant="strike"] li[data-checked="true"] > div {
196
+ text-decoration: line-through;
197
+ color: var(--co-semantic-text-muted, #999);
198
+ }
199
+ /* Variant "plain": completed items keep normal text (no strikethrough). */
200
+ .co-rte-content .ProseMirror ul[data-type="taskList"][data-variant="plain"] li[data-checked="true"] > div {
201
+ text-decoration: none;
202
+ }
203
+
204
+ .co-rte-content .ProseMirror blockquote {
205
+ border-left: 3px solid var(--co-semantic-border-default, var(--co-semantic-border-subtle));
206
+ padding-left: var(--co-spacing-md);
207
+ margin: 0 0 var(--co-spacing-sm) 0;
208
+ color: var(--co-semantic-text-secondary);
209
+ }
210
+
211
+ .co-rte-content .ProseMirror a {
212
+ color: var(--co-color-base-negro, #1a1a1a);
213
+ text-decoration: underline;
214
+ text-underline-offset: 2px;
215
+ }
216
+
217
+ .co-rte-content .ProseMirror img {
218
+ max-width: 100%;
219
+ height: auto;
220
+ border-radius: var(--co-border-radius-xs);
221
+ margin: var(--co-spacing-sm) 0;
222
+ cursor: default;
223
+ -webkit-user-drag: none;
224
+ user-select: none;
225
+ }
226
+
227
+ .co-rte-content .ProseMirror img.ProseMirror-selectednode {
228
+ outline: 2px solid var(--co-color-base-negro, #1a1a1a);
229
+ }
230
+ .co-rte-content [data-resize-container].ProseMirror-selectednode {
231
+ outline: 2px solid var(--co-color-base-negro, #1a1a1a);
232
+ outline-offset: 0px;
233
+ border-radius: 0;
234
+ }
235
+
236
+ /* Image resize handles (TipTap v3 ResizableNodeView) */
237
+ .co-rte-content [data-resize-container] {
238
+ position: relative;
239
+ display: inline-block;
240
+ width: fit-content;
241
+ max-width: 100%;
242
+ margin: var(--co-spacing-sm) 0;
243
+ line-height: 0;
244
+ }
245
+
246
+ .co-rte-content [data-resize-container][data-resize-state="true"] {
247
+ outline: 2px solid var(--co-color-base-negro, #1a1a1a);
248
+ outline-offset: 0px;
249
+ border-radius: 0;
250
+ }
251
+
252
+ .co-rte-content [data-resize-wrapper] {
253
+ position: relative;
254
+ display: inline-block;
255
+ line-height: 0;
256
+ }
257
+
258
+ /* Hide handles by default — show only when selected */
259
+ .co-rte-content [data-resize-handle] {
260
+ width: 10px;
261
+ height: 10px;
262
+ background: var(--co-color-base-negro, #1a1a1a);
263
+ border: 1.5px solid #fff;
264
+ border-radius: 50%;
265
+ box-shadow: 0 0 2px rgba(0, 0, 0, 0.3);
266
+ z-index: 5;
267
+ opacity: 0;
268
+ pointer-events: none;
269
+ }
270
+
271
+ .co-rte-content [data-resize-container][data-resize-state="true"] [data-resize-handle],
272
+ .co-rte-content [data-resize-container].ProseMirror-selectednode [data-resize-handle] {
273
+ opacity: 1;
274
+ pointer-events: auto;
275
+ }
276
+
277
+ /* Corner handles */
278
+ .co-rte-content [data-resize-handle="top-left"] { cursor: nw-resize; }
279
+ .co-rte-content [data-resize-handle="top-right"] { cursor: ne-resize; }
280
+ .co-rte-content [data-resize-handle="bottom-left"] { cursor: sw-resize; }
281
+ .co-rte-content [data-resize-handle="bottom-right"] { cursor: se-resize; }
282
+
283
+ /* Edge handles: bars */
284
+ .co-rte-content [data-resize-handle="top"],
285
+ .co-rte-content [data-resize-handle="bottom"] {
286
+ width: 30px;
287
+ height: 6px;
288
+ border-radius: 3px;
289
+ left: 50% !important;
290
+ transform: translateX(-50%);
291
+ }
292
+ .co-rte-content [data-resize-handle="top"] { cursor: n-resize; }
293
+ .co-rte-content [data-resize-handle="bottom"] { cursor: s-resize; }
294
+
295
+ .co-rte-content [data-resize-handle="left"],
296
+ .co-rte-content [data-resize-handle="right"] {
297
+ width: 6px;
298
+ height: 30px;
299
+ border-radius: 3px;
300
+ top: 50% !important;
301
+ transform: translateY(-50%);
302
+ }
303
+ .co-rte-content [data-resize-handle="left"] { cursor: w-resize; }
304
+ .co-rte-content [data-resize-handle="right"] { cursor: e-resize; }
305
+
306
+ .co-rte-content [data-resize-container] img {
307
+ max-width: 100%;
308
+ display: block;
309
+ border-radius: 0;
310
+ margin: 0;
311
+ }
312
+
313
+
314
+ .co-rte-content .ProseMirror hr {
315
+ border: none;
316
+ border-top: 1px solid var(--co-semantic-border-default, #e0e0e0);
317
+ margin: var(--co-spacing-lg) 0;
318
+ }
319
+
320
+ .co-rte-content .ProseMirror code {
321
+ font-family: var(--co-font-family-mono);
322
+ font-size: 0.9em;
323
+ background: var(--co-semantic-surface-hover, rgba(0, 0, 0, 0.06));
324
+ padding: 0.1em 0.3em;
325
+ border-radius: var(--co-border-radius-xxs);
326
+ }
327
+
328
+ .co-rte-content .ProseMirror pre {
329
+ font-family: var(--co-font-family-mono);
330
+ font-size: 0.9em;
331
+ background: var(--co-semantic-surface-hover, rgba(0, 0, 0, 0.06));
332
+ padding: var(--co-spacing-md);
333
+ border-radius: var(--co-border-radius-xs);
334
+ overflow-x: auto;
335
+ margin: var(--co-spacing-sm) 0;
336
+ }
337
+
338
+ .co-rte-content .ProseMirror pre code {
339
+ background: none;
340
+ padding: 0;
341
+ border-radius: 0;
342
+ }
343
+
344
+ /* Placeholder (from @tiptap/extensions) */
345
+ .co-rte-content .ProseMirror p.is-editor-empty:first-child::before {
346
+ content: attr(data-placeholder);
347
+ color: var(--co-semantic-text-muted);
348
+ float: left;
349
+ height: 0;
350
+ pointer-events: none;
351
+ }
352
+
353
+ /* Custom inline nodes */
354
+ .co-rte-content .co-rte-variable,
355
+ .co-rte-content .co-rte-mention {
356
+ display: inline-block;
357
+ padding: 0.05em 0.4em;
358
+ border-radius: var(--co-border-radius-xxs);
359
+ background: var(--co-color-base-negro, #1a1a1a);
360
+ color: var(--co-color-base-blanco, #fff);
361
+ font-size: 0.9em;
362
+ white-space: nowrap;
363
+ }
364
+ .co-rte-content .co-rte-mention {
365
+ background: var(--co-color-primary-verde);
366
+ }
367
+
368
+ /* ---- Footer (helper + count) ---- */
369
+ .co-rich-text-editor__footer {
370
+ display: flex;
371
+ align-items: center;
372
+ justify-content: space-between;
373
+ gap: var(--co-spacing-sm);
374
+ padding: 0 var(--co-spacing-xs);
375
+ min-height: 0;
376
+ }
377
+
378
+ .co-rich-text-editor__helper {
379
+ display: flex;
380
+ align-items: center;
381
+ gap: var(--co-spacing-xs);
382
+ color: var(--co-semantic-text-secondary);
383
+ font-size: var(--co-font-size-12, 12px);
384
+ }
385
+ .co-rich-text-editor__helper--error { color: var(--co-color-status-error); }
386
+ .co-rich-text-editor__helper--success { color: var(--co-color-status-success); }
387
+
388
+ .co-rich-text-editor__count {
389
+ margin-left: auto;
390
+ color: var(--co-semantic-text-muted);
391
+ font-size: var(--co-font-size-12, 12px);
392
+ }
393
+
394
+ /* ---- Bubble menu ---- */
395
+ /* Suppressed while a toolbar dropdown is open (prevents overlap). The
396
+ !important beats the BubbleMenu plugin's inline display writes. */
397
+ .co-rte-bubble.co-rte-bubble--suppressed {
398
+ display: none !important;
399
+ }
400
+
401
+ .co-rte-bubble {
402
+ position: absolute;
403
+ z-index: 50;
404
+ display: flex;
405
+ flex-direction: row;
406
+ align-items: center;
407
+ gap: 2px;
408
+ padding: var(--co-spacing-xs, 4px) var(--co-spacing-sm, 8px);
409
+ background: var(--co-semantic-surface-secondary, #fff);
410
+ border: 1px solid var(--co-semantic-border-default, #e0e0e0);
411
+ border-radius: var(--co-border-radius-xs, 8px);
412
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
413
+ user-select: none;
414
+ white-space: nowrap;
415
+ }
416
+
417
+ .co-rte-bubble__drag-handle {
418
+ display: flex;
419
+ align-items: center;
420
+ justify-content: center;
421
+ cursor: grab;
422
+ color: var(--co-semantic-text-muted, #999);
423
+ width: 18px;
424
+ height: 28px;
425
+ margin: 0 2px 0 0;
426
+ flex-shrink: 0;
427
+ }
428
+
429
+ .co-rte-bubble__drag-handle:hover {
430
+ color: var(--co-semantic-text-secondary, #555);
431
+ }
432
+
433
+ .co-rte-bubble__drag-handle:active {
434
+ cursor: grabbing;
435
+ }
436
+
437
+ .co-rte-bubble__row {
438
+ display: flex;
439
+ align-items: center;
440
+ gap: 2px;
441
+ flex-wrap: nowrap;
442
+ }
443
+
444
+ .co-rte-bubble__btn {
445
+ display: inline-flex;
446
+ align-items: center;
447
+ justify-content: center;
448
+ width: 28px;
449
+ height: 28px;
450
+ padding: 0;
451
+ border: none;
452
+ border-radius: var(--co-border-radius-xxs, 4px);
453
+ background: transparent;
454
+ color: var(--co-semantic-text-default, #333);
455
+ cursor: pointer;
456
+ }
457
+
458
+ .co-rte-bubble__btn:hover:not(.co-rte-bubble__btn--active) {
459
+ background: var(--co-semantic-surface-hover, rgba(0, 0, 0, 0.06));
460
+ }
461
+
462
+ .co-rte-bubble__btn--active {
463
+ background: var(--co-color-base-negro, #1a1a1a);
464
+ color: var(--co-color-base-blanco, #fff);
465
+ }
466
+
467
+ .co-rte-bubble__btn--active:hover {
468
+ background: var(--co-color-base-negro, #333);
469
+ }
470
+
471
+ .co-rte-bubble__sep {
472
+ display: inline-block;
473
+ width: 1px;
474
+ height: 18px;
475
+ margin: 0 4px;
476
+ background: var(--co-semantic-border-default, rgba(0, 0, 0, 0.12));
477
+ flex-shrink: 0;
478
+ }
479
+
480
+ /* ── Bubble select (compact dropdown) ── */
481
+ .co-rte-bubble__select {
482
+ position: relative;
483
+ }
484
+
485
+ .co-rte-bubble__select-trigger {
486
+ display: flex;
487
+ align-items: center;
488
+ gap: 2px;
489
+ height: 28px;
490
+ padding: 0 6px;
491
+ border: 1px solid transparent;
492
+ border-radius: var(--co-border-radius-xxs, 4px);
493
+ background: transparent;
494
+ color: var(--co-semantic-text-default, #333);
495
+ font-family: var(--co-font-family-primary);
496
+ font-size: 11px;
497
+ cursor: pointer;
498
+ white-space: nowrap;
499
+ transition: background 0.12s, border-color 0.12s;
500
+ }
501
+
502
+ .co-rte-bubble__select-trigger:hover {
503
+ background: var(--co-semantic-surface-hover, #f5f5f5);
504
+ border-color: var(--co-semantic-border-default, #e0e0e0);
505
+ }
506
+
507
+ .co-rte-bubble__select-label {
508
+ max-width: 72px;
509
+ overflow: hidden;
510
+ text-overflow: ellipsis;
511
+ }
512
+
513
+ /* Font family select: wider trigger */
514
+ .co-rte-bubble__select--font .co-rte-bubble__select-label {
515
+ max-width: 110px;
516
+ }
517
+
518
+ .co-rte-bubble__select-dropdown {
519
+ position: absolute;
520
+ bottom: 100%;
521
+ left: 0;
522
+ z-index: 120;
523
+ min-width: 100px;
524
+ max-height: 260px;
525
+ overflow-y: auto;
526
+ padding: var(--co-spacing-xxs, 2px);
527
+ background: var(--co-semantic-surface-secondary, #fff);
528
+ border: 1px solid var(--co-semantic-border-default, #e0e0e0);
529
+ border-radius: var(--co-border-radius-xxs, 4px);
530
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
531
+ margin-bottom: 4px;
532
+ white-space: normal;
533
+ }
534
+
535
+ /* Position flipping via data-position attribute */
536
+ .co-rte-bubble__select-dropdown[data-position="above"] {
537
+ bottom: 100%;
538
+ top: auto;
539
+ margin-bottom: 4px;
540
+ margin-top: 0;
541
+ }
542
+
543
+ .co-rte-bubble__select-dropdown[data-position="below"] {
544
+ top: 100%;
545
+ bottom: auto;
546
+ margin-top: 4px;
547
+ margin-bottom: 0;
548
+ }
549
+
550
+ .co-rte-bubble__select-option {
551
+ display: block;
552
+ width: 100%;
553
+ padding: 4px 8px;
554
+ border: none;
555
+ border-radius: 3px;
556
+ background: transparent;
557
+ color: var(--co-semantic-text-default, #333);
558
+ font-family: var(--co-font-family-primary);
559
+ font-size: 12px;
560
+ text-align: left;
561
+ cursor: pointer;
562
+ white-space: nowrap;
563
+ }
564
+
565
+ .co-rte-bubble__select-option:hover {
566
+ background: var(--co-semantic-surface-hover, #f5f5f5);
567
+ }
568
+
569
+ /* ── Font family dropdown (with search) ── */
570
+ .co-rte-bubble__select-dropdown--font {
571
+ min-width: 200px;
572
+ max-height: 320px;
573
+ overflow: hidden;
574
+ overflow-y: auto;
575
+ display: flex;
576
+ flex-direction: column;
577
+ white-space: normal;
578
+ }
579
+
580
+ .co-rte-bubble__font-search {
581
+ padding: 6px 6px 4px;
582
+ flex-shrink: 0;
583
+ }
584
+
585
+ .co-rte-bubble__font-search-input {
586
+ width: 100%;
587
+ padding: 4px 8px;
588
+ border: 1px solid var(--co-semantic-border-default, #ccc);
589
+ border-radius: 4px;
590
+ background: var(--co-semantic-surface-secondary, #fff);
591
+ color: var(--co-semantic-text-default, #333);
592
+ font-family: var(--co-font-family-primary);
593
+ font-size: 12px;
594
+ outline: none;
595
+ box-sizing: border-box;
596
+ }
597
+
598
+ .co-rte-bubble__font-search-input:focus {
599
+ border-color: var(--co-color-base-negro, #1a1a1a);
600
+ }
601
+
602
+ .co-rte-bubble__font-list {
603
+ max-height: 260px;
604
+ overflow-y: auto;
605
+ padding: 0 var(--co-spacing-xxs, 2px) var(--co-spacing-xxs, 2px);
606
+ }
607
+
608
+ .co-rte-bubble__font-section-header {
609
+ padding: 6px 8px 2px;
610
+ font-size: 11px;
611
+ font-weight: 600;
612
+ color: var(--co-semantic-text-muted, #888);
613
+ text-transform: uppercase;
614
+ letter-spacing: 0.5px;
615
+ }
616
+
617
+ .co-rte-bubble__font-empty {
618
+ padding: 12px 8px;
619
+ text-align: center;
620
+ color: var(--co-semantic-text-muted, #888);
621
+ font-size: 12px;
622
+ }
623
+
624
+ /* ── Bubble color picker ── */
625
+ .co-rte-bubble__color {
626
+ position: relative;
627
+ }
628
+
629
+ .co-rte-bubble__color-dropdown {
630
+ position: absolute;
631
+ bottom: 100%;
632
+ left: 50%;
633
+ transform: translateX(-50%);
634
+ z-index: 120;
635
+ width: 224px;
636
+ padding: var(--co-spacing-sm, 8px);
637
+ background: var(--co-semantic-surface-secondary, #fff);
638
+ border: 1px solid var(--co-semantic-border-default, #e0e0e0);
639
+ border-radius: var(--co-border-radius-xs, 8px);
640
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
641
+ margin-bottom: 4px;
642
+ white-space: normal;
643
+ /* Prevent horizontal overflow */
644
+ max-width: calc(100vw - 16px);
645
+ }
646
+
647
+ .co-rte-bubble__color-dropdown[data-position="above"] {
648
+ bottom: 100%;
649
+ top: auto;
650
+ margin-bottom: 4px;
651
+ margin-top: 0;
652
+ }
653
+
654
+ .co-rte-bubble__color-dropdown[data-position="below"] {
655
+ top: 100%;
656
+ bottom: auto;
657
+ margin-top: 4px;
658
+ margin-bottom: 0;
659
+ }
660
+
661
+ .co-rte-bubble__color-grid {
662
+ display: grid;
663
+ grid-template-columns: repeat(10, 1fr);
664
+ gap: 2px;
665
+ }
666
+
667
+ .co-rte-bubble__color-swatch {
668
+ width: 20px;
669
+ height: 20px;
670
+ padding: 0;
671
+ border: none;
672
+ border-radius: 3px;
673
+ cursor: pointer;
674
+ transition: transform 0.1s, box-shadow 0.1s;
675
+ }
676
+
677
+ .co-rte-bubble__color-swatch:hover {
678
+ transform: scale(1.2);
679
+ box-shadow: 0 0 0 2px var(--co-color-base-negro, #1a1a1a);
680
+ }
681
+
682
+ .co-rte-bubble__color-hex {
683
+ display: flex;
684
+ align-items: center;
685
+ gap: 4px;
686
+ margin-top: 6px;
687
+ }
688
+
689
+ .co-rte-bubble__color-hex-input {
690
+ width: 100%;
691
+ padding: 3px 6px;
692
+ border: 1px solid var(--co-semantic-border-default, #ccc);
693
+ border-radius: 3px;
694
+ background: var(--co-semantic-surface-secondary, #fff);
695
+ color: var(--co-semantic-text-default, #333);
696
+ font-family: var(--co-font-family-mono, monospace);
697
+ font-size: 11px;
698
+ outline: none;
699
+ }
700
+
701
+ .co-rte-bubble__color-hex-input:focus {
702
+ border-color: var(--co-color-base-negro, #1a1a1a);
703
+ }
704
+
705
+ .co-rte-bubble__color-clear {
706
+ display: flex;
707
+ align-items: center;
708
+ gap: 4px;
709
+ width: 100%;
710
+ padding: 3px 6px;
711
+ margin-top: 4px;
712
+ border: none;
713
+ background: transparent;
714
+ color: var(--co-semantic-text-secondary, #666);
715
+ font-family: var(--co-font-family-primary);
716
+ font-size: 11px;
717
+ cursor: pointer;
718
+ border-radius: 3px;
719
+ }
720
+
721
+ .co-rte-bubble__color-clear:hover {
722
+ background: var(--co-semantic-surface-hover, #f5f5f5);
723
+ }
724
+
725
+ /* Bubble link form */
726
+ .co-rte-bubble__link-form {
727
+ display: flex;
728
+ align-items: center;
729
+ gap: 4px;
730
+ margin-left: 4px;
731
+ }
732
+
733
+ .co-rte-bubble__link-input {
734
+ width: 160px;
735
+ padding: 3px 8px;
736
+ border: 1px solid var(--co-semantic-border-default, #ccc);
737
+ border-radius: 4px;
738
+ background: var(--co-semantic-surface-secondary, #fff);
739
+ color: var(--co-semantic-text-default, #333);
740
+ font-family: var(--co-font-family-primary);
741
+ font-size: 12px;
742
+ outline: none;
743
+ }
744
+
745
+ .co-rte-bubble__link-input::placeholder {
746
+ color: var(--co-semantic-text-muted, #999);
747
+ }
748
+
749
+ .co-rte-bubble__link-input:focus {
750
+ border-color: var(--co-color-base-negro, #1a1a1a);
751
+ box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);
752
+ }
753
+
754
+ .co-rte-bubble__link-btn {
755
+ display: inline-flex;
756
+ align-items: center;
757
+ justify-content: center;
758
+ width: 24px;
759
+ height: 24px;
760
+ padding: 0;
761
+ border: none;
762
+ border-radius: 4px;
763
+ background: var(--co-color-base-negro, #1a1a1a);
764
+ color: #fff;
765
+ cursor: pointer;
766
+ }
767
+
768
+ .co-rte-bubble__link-btn:hover {
769
+ opacity: 0.9;
770
+ }
771
+
772
+ .co-rte-bubble__link-unlink {
773
+ background: var(--co-semantic-surface-error, #ef4444);
774
+ }
775
+
776
+ /* ── Draggable panels (font size, weight, line height, letter spacing, bg color) ── */
777
+ .co-rte-bubble__panel {
778
+ position: absolute;
779
+ z-index: 140;
780
+ width: 230px;
781
+ background: var(--co-semantic-surface-secondary, #fff);
782
+ border: 1px solid var(--co-semantic-border-default, #e0e0e0);
783
+ border-radius: var(--co-border-radius-xs, 8px);
784
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
785
+ overflow: hidden;
786
+ user-select: none;
787
+ }
788
+
789
+ .co-rte-bubble__panel-header {
790
+ display: flex;
791
+ align-items: center;
792
+ gap: 4px;
793
+ padding: 6px 8px;
794
+ border-bottom: 1px solid var(--co-semantic-border-subtle, #eee);
795
+ }
796
+
797
+ .co-rte-bubble__panel-drag {
798
+ cursor: grab;
799
+ display: flex;
800
+ align-items: center;
801
+ justify-content: center;
802
+ color: var(--co-semantic-text-muted, #999);
803
+ flex-shrink: 0;
804
+ }
805
+ .co-rte-bubble__panel-drag:active { cursor: grabbing; }
806
+
807
+ .co-rte-bubble__panel-title {
808
+ flex: 1;
809
+ font-size: 12px;
810
+ font-weight: 600;
811
+ color: var(--co-semantic-text-default, #333);
812
+ white-space: nowrap;
813
+ overflow: hidden;
814
+ text-overflow: ellipsis;
815
+ }
816
+
817
+ .co-rte-bubble__panel-close {
818
+ display: flex;
819
+ align-items: center;
820
+ justify-content: center;
821
+ width: 22px;
822
+ height: 22px;
823
+ border: none;
824
+ border-radius: 3px;
825
+ background: transparent;
826
+ color: var(--co-semantic-text-muted, #999);
827
+ cursor: pointer;
828
+ flex-shrink: 0;
829
+ }
830
+ .co-rte-bubble__panel-close:hover {
831
+ background: var(--co-semantic-surface-hover, rgba(0, 0, 0, 0.06));
832
+ color: var(--co-semantic-text-default, #333);
833
+ }
834
+
835
+ .co-rte-bubble__panel-input-wrap {
836
+ padding: 6px 8px;
837
+ }
838
+
839
+ .co-rte-bubble__panel-input {
840
+ width: 100%;
841
+ padding: 4px 8px;
842
+ border: 1px solid var(--co-semantic-border-default, #e0e0e0);
843
+ border-radius: 4px;
844
+ font-size: 12px;
845
+ font-family: inherit;
846
+ outline: none;
847
+ box-sizing: border-box;
848
+ background: var(--co-semantic-surface-secondary, #fff);
849
+ color: var(--co-semantic-text-default, #333);
850
+ }
851
+ .co-rte-bubble__panel-input:focus {
852
+ border-color: var(--co-color-base-negro, #1a1a1a);
853
+ }
854
+
855
+ .co-rte-bubble__panel-options {
856
+ max-height: 280px;
857
+ overflow-y: auto;
858
+ padding: 2px 4px 4px;
859
+ }
860
+
861
+ .co-rte-bubble__panel-option {
862
+ display: block;
863
+ width: 100%;
864
+ padding: 5px 8px;
865
+ border: none;
866
+ border-radius: 3px;
867
+ background: transparent;
868
+ cursor: pointer;
869
+ text-align: left;
870
+ font-family: inherit;
871
+ color: var(--co-semantic-text-default, #333);
872
+ }
873
+ .co-rte-bubble__panel-option:hover {
874
+ background: var(--co-semantic-surface-hover, #f5f5f5);
875
+ }
876
+
877
+ .co-rte-bubble__panel-sep {
878
+ height: 1px;
879
+ background: var(--co-semantic-border-subtle, #eee);
880
+ margin: 4px 8px;
881
+ }
882
+
883
+ /* Font weight panel: two-column option layout */
884
+ .co-rte-bubble__panel-opt-row {
885
+ display: flex;
886
+ justify-content: space-between;
887
+ align-items: center;
888
+ width: 100%;
889
+ }
890
+ .co-rte-bubble__panel-opt-value {
891
+ color: var(--co-semantic-text-muted, #999);
892
+ font-size: 11px;
893
+ font-weight: 400 !important;
894
+ min-width: 28px;
895
+ text-align: right;
896
+ }
897
+
898
+ /* Position flipping for panels */
899
+ .co-rte-bubble__panel[data-position="above"] {
900
+ bottom: 100%;
901
+ top: auto;
902
+ margin-bottom: 4px;
903
+ }
904
+ .co-rte-bubble__panel[data-position="below"] {
905
+ top: 100%;
906
+ bottom: auto;
907
+ margin-top: 4px;
908
+ }
909
+
910
+ /* ── Overflow menu (three-dots) ── */
911
+ .co-rte-bubble__overflow {
912
+ position: relative;
913
+ }
914
+
915
+ .co-rte-bubble__overflow-menu {
916
+ position: absolute;
917
+ bottom: 100%;
918
+ right: 0;
919
+ z-index: 130;
920
+ min-width: 230px;
921
+ padding: 4px;
922
+ background: var(--co-semantic-surface-secondary, #fff);
923
+ border: 1px solid var(--co-semantic-border-default, #e0e0e0);
924
+ border-radius: var(--co-border-radius-xs, 8px);
925
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
926
+ margin-bottom: 4px;
927
+ }
928
+ .co-rte-bubble__overflow-menu[data-position="below"] {
929
+ top: 100%;
930
+ bottom: auto;
931
+ margin-top: 4px;
932
+ margin-bottom: 0;
933
+ }
934
+
935
+ .co-rte-bubble__overflow-item {
936
+ display: flex;
937
+ align-items: center;
938
+ gap: 8px;
939
+ width: 100%;
940
+ padding: 6px 8px;
941
+ border: none;
942
+ border-radius: 4px;
943
+ background: transparent;
944
+ font-family: inherit;
945
+ font-size: 13px;
946
+ color: var(--co-semantic-text-default, #333);
947
+ cursor: pointer;
948
+ text-align: left;
949
+ white-space: nowrap;
950
+ }
951
+ .co-rte-bubble__overflow-item:hover {
952
+ background: var(--co-semantic-surface-hover, #f5f5f5);
953
+ }
954
+ .co-rte-bubble__overflow-item--active {
955
+ background: var(--co-semantic-surface-hover, rgba(0, 0, 0, 0.06));
956
+ color: var(--co-color-base-negro, #1a1a1a);
957
+ font-weight: 600;
958
+ }
959
+
960
+ .co-rte-bubble__overflow-value {
961
+ margin-left: auto;
962
+ color: var(--co-semantic-text-muted, #999);
963
+ font-size: 11px;
964
+ }
965
+
966
+ .co-rte-bubble__overflow-sep {
967
+ height: 1px;
968
+ background: var(--co-semantic-border-subtle, #eee);
969
+ margin: 3px 8px;
970
+ }
971
+
972
+ .co-rte-bubble__overflow-section-title {
973
+ padding: 6px 8px 2px;
974
+ font-size: 11px;
975
+ font-weight: 600;
976
+ color: var(--co-semantic-text-muted, #888);
977
+ letter-spacing: 0.5px;
978
+ }
979
+
980
+ .co-rte-bubble__overflow-item--danger {
981
+ color: var(--co-color-status-error, #aa2e1b);
982
+ }
983
+ .co-rte-bubble__overflow-item--danger:hover {
984
+ background: rgba(170, 46, 27, 0.06);
985
+ }
986
+
987
+ /* ── Text color "A" indicator with colored bar ── */
988
+ .co-rte-bubble__color-indicator {
989
+ display: flex;
990
+ flex-direction: column;
991
+ align-items: center;
992
+ gap: 1px;
993
+ line-height: 1;
994
+ }
995
+
996
+ .co-rte-bubble__color-letter {
997
+ font-family: var(--co-font-family-primary);
998
+ font-size: 14px;
999
+ font-weight: 700;
1000
+ color: var(--co-semantic-text-default, #333);
1001
+ line-height: 1;
1002
+ }
1003
+
1004
+ .co-rte-bubble__color-bar {
1005
+ width: 14px;
1006
+ height: 3px;
1007
+ border-radius: 1px;
1008
+ }
1009
+
1010
+ /* ---- Callout blocks (content styles) ---- */
1011
+ .co-rte-content .callout {
1012
+ display: flex;
1013
+ gap: 0.75rem;
1014
+ padding: 1rem;
1015
+ border-radius: var(--co-border-radius-xs, 8px);
1016
+ border: 2px solid;
1017
+ margin: 1rem 0;
1018
+ }
1019
+ .co-rte-content .callout--info { background: #eff6ff; border-color: #bfdbfe; }
1020
+ .co-rte-content .callout--warning { background: #fffbeb; border-color: #fde68a; }
1021
+ .co-rte-content .callout--success { background: #f0fdf4; border-color: #bbf7d0; }
1022
+ .co-rte-content .callout--error { background: #fef2f2; border-color: #fecaca; }
1023
+ .co-rte-content .callout__icon { flex-shrink: 0; font-size: 1.2em; }
1024
+ .co-rte-content .callout__content { flex: 1; }
1025
+ .co-rte-content .callout__content p { margin: 0; }
1026
+
1027
+ /* ---- Table styles (content) ---- */
1028
+ .co-rte-content table {
1029
+ border-collapse: collapse;
1030
+ table-layout: auto;
1031
+ width: 100%;
1032
+ margin: 1rem 0;
1033
+ overflow: hidden;
1034
+ }
1035
+
1036
+ /* Wide / column-resized tables scroll horizontally INSIDE the page instead of
1037
+ overflowing it. Tiptap wraps every table in `.tableWrapper`; host editor.css
1038
+ doesn't scroll it, so we do. */
1039
+ .co-rte-content .tableWrapper {
1040
+ overflow-x: auto;
1041
+ max-width: 100%;
1042
+ }
1043
+ .co-rte-content td,
1044
+ .co-rte-content th {
1045
+ min-width: 1em;
1046
+ border: 1px solid var(--co-semantic-border-default, #e0e0e0);
1047
+ padding: 0.5rem;
1048
+ vertical-align: top;
1049
+ box-sizing: border-box;
1050
+ position: relative;
1051
+ }
1052
+ .co-rte-content th {
1053
+ font-weight: 600;
1054
+ text-align: left;
1055
+ background-color: #e3e3e3;
1056
+ color: var(--co-semantic-text-default, #333);
1057
+ }
1058
+ /* Host editor.css ships `.tiptap table th { background: var(--gray-1) }` with
1059
+ `--gray-1: #fff` (specificity 0,1,2) which paints our header white. Beat it
1060
+ with a higher-specificity selector (0,2,2) — our ProseMirror carries both the
1061
+ `.tiptap` and `.ProseMirror` classes. */
1062
+ .co-rte-content .ProseMirror table th {
1063
+ background-color: #e3e3e3;
1064
+ }
1065
+ .co-rte-content .selectedCell {
1066
+ background: rgba(0, 0, 0, 0.06);
1067
+ }
1068
+ .co-rte-content .column-resize-handle {
1069
+ position: absolute;
1070
+ right: -2px;
1071
+ top: 0;
1072
+ bottom: 0;
1073
+ width: 4px;
1074
+ background-color: var(--co-color-base-negro, #1a1a1a);
1075
+ pointer-events: none;
1076
+ }
1077
+
1078
+ /* The ↔ resize cursor. prosemirror-tables toggles the `resize-cursor` class on
1079
+ the editor while a column edge is grabbable; without this rule the pointer
1080
+ never changes, so the column boundary looks like a plain line with no
1081
+ resize affordance. */
1082
+ .co-rte-content .ProseMirror.resize-cursor,
1083
+ .co-rte-content .ProseMirror.resize-cursor * {
1084
+ cursor: col-resize;
1085
+ }
1086
+
1087
+ /* ---- YouTube / iframe embeds (content) ----
1088
+ The iframe fills its wrapper; the WRAPPER (.co-rte-embed in the editor NodeView,
1089
+ or [data-iframe]/[data-youtube-video] in the saved HTML) carries the width. A
1090
+ resized embed sets an inline px width on the wrapper; default = full width. */
1091
+ .co-rte-content iframe {
1092
+ border-radius: var(--co-border-radius-xs, 8px);
1093
+ max-width: 100%;
1094
+ aspect-ratio: 16 / 9;
1095
+ width: 100%;
1096
+ height: auto;
1097
+ display: block;
1098
+ margin: 0;
1099
+ }
1100
+
1101
+ /* Embed wrapper (NodeView): block-level, carries the controlled width, and is
1102
+ the positioning context for the click-overlay + resize handles. */
1103
+ .co-rte-content .co-rte-embed {
1104
+ position: relative;
1105
+ display: block;
1106
+ max-width: 100%;
1107
+ margin: 1rem 0;
1108
+ line-height: 0;
1109
+ }
1110
+
1111
+ /* Transparent overlay so clicks reach ProseMirror instead of the iframe's nested
1112
+ browsing context — without it, atom NodeSelection never fires while EDITING.
1113
+ Reader mode removes it (below) so the embed is interactive. */
1114
+ .co-rte-content .co-rte-embed::before {
1115
+ content: '';
1116
+ position: absolute;
1117
+ inset: 0;
1118
+ z-index: 1;
1119
+ }
1120
+
1121
+ /* Selection outline (editing only). */
1122
+ .co-rte-content .co-rte-embed.ProseMirror-selectednode,
1123
+ .co-rte-content .co-rte-embed--selected {
1124
+ outline: 2px solid var(--co-color-base-negro, #1a1a1a);
1125
+ outline-offset: 2px;
1126
+ border-radius: var(--co-border-radius-xs, 8px);
1127
+ }
1128
+
1129
+ /* Resize handles (corners) — shown only when the embed is selected. */
1130
+ .co-rte-content .co-rte-embed__handle {
1131
+ position: absolute;
1132
+ width: 12px;
1133
+ height: 12px;
1134
+ background: var(--co-color-base-negro, #1a1a1a);
1135
+ border: 1.5px solid #fff;
1136
+ border-radius: 50%;
1137
+ box-shadow: 0 0 2px rgba(0, 0, 0, 0.3);
1138
+ z-index: 3;
1139
+ opacity: 0;
1140
+ pointer-events: none;
1141
+ }
1142
+ .co-rte-content .co-rte-embed.ProseMirror-selectednode .co-rte-embed__handle,
1143
+ .co-rte-content .co-rte-embed--selected .co-rte-embed__handle {
1144
+ opacity: 1;
1145
+ pointer-events: auto;
1146
+ }
1147
+ .co-rte-content .co-rte-embed__handle--bottom-right { right: -6px; bottom: -6px; cursor: nwse-resize; }
1148
+ .co-rte-content .co-rte-embed__handle--bottom-left { left: -6px; bottom: -6px; cursor: nesw-resize; }
1149
+
1150
+ /* While dragging a handle, the iframe is pointer-events:none (set in JS) so the
1151
+ drag keeps tracking; show a subtle dashed edge for feedback. */
1152
+ .co-rte-content .co-rte-embed--resizing {
1153
+ outline: 2px dashed var(--co-color-base-negro, #1a1a1a);
1154
+ outline-offset: 2px;
1155
+ }
1156
+
1157
+ /* Reader mode: drop the click-catching overlay so the embed is interactive
1158
+ (play the video, scroll the iframe), and never show selection chrome. */
1159
+ .co-rich-text-editor--readonly .co-rte-embed::before,
1160
+ .co-rich-text-editor--disabled .co-rte-embed::before {
1161
+ display: none;
1162
+ }
1163
+ .co-rich-text-editor--readonly .co-rte-embed.ProseMirror-selectednode,
1164
+ .co-rich-text-editor--readonly .co-rte-embed--selected,
1165
+ .co-rich-text-editor--disabled .co-rte-embed.ProseMirror-selectednode,
1166
+ .co-rich-text-editor--disabled .co-rte-embed--selected {
1167
+ outline: none !important;
1168
+ }
1169
+
1170
+ /* ============================================================
1171
+ Image layout bar (Google-Docs-style floating toolbar)
1172
+ ============================================================ */
1173
+ .co-rte-img-layout {
1174
+ position: absolute;
1175
+ z-index: 50;
1176
+ display: flex;
1177
+ align-items: center;
1178
+ gap: 2px;
1179
+ padding: 4px;
1180
+ background: var(--co-semantic-surface-secondary, #fff);
1181
+ border: 1px solid var(--co-semantic-border-default, #e0e0e0);
1182
+ border-radius: var(--co-border-radius-xs, 8px);
1183
+ box-shadow: 0 2px 12px rgba(0, 0, 0, 0.12);
1184
+ pointer-events: auto;
1185
+ }
1186
+
1187
+ .co-rte-img-layout__btn {
1188
+ display: inline-flex;
1189
+ align-items: center;
1190
+ justify-content: center;
1191
+ width: 34px;
1192
+ height: 34px;
1193
+ padding: 0;
1194
+ border: 1px solid transparent;
1195
+ border-radius: var(--co-border-radius-xxs, 4px);
1196
+ background: transparent;
1197
+ color: var(--co-semantic-text-default, #333);
1198
+ cursor: pointer;
1199
+ transition: background 0.12s, border-color 0.12s;
1200
+ }
1201
+
1202
+ .co-rte-img-layout__btn:hover {
1203
+ background: var(--co-semantic-surface-hover, rgba(0, 0, 0, 0.06));
1204
+ }
1205
+
1206
+ .co-rte-img-layout__btn--active {
1207
+ background: var(--co-color-base-negro, #1a1a1a);
1208
+ color: var(--co-color-base-blanco, #fff);
1209
+ }
1210
+
1211
+ .co-rte-img-layout__btn--active:hover {
1212
+ background: var(--co-color-base-negro, #333);
1213
+ }
1214
+
1215
+ /* Fast CSS tooltip for layout buttons (replaces slow native title) */
1216
+ .co-rte-img-layout__btn[data-tooltip] {
1217
+ position: relative;
1218
+ }
1219
+ .co-rte-img-layout__btn[data-tooltip]::after {
1220
+ content: attr(data-tooltip);
1221
+ position: absolute;
1222
+ bottom: calc(100% + 6px);
1223
+ left: 50%;
1224
+ transform: translateX(-50%);
1225
+ padding: 4px 8px;
1226
+ background: var(--co-color-base-negro, #1a1a1a);
1227
+ color: var(--co-color-base-blanco, #fff);
1228
+ font-family: var(--co-font-family-primary);
1229
+ font-size: 11px;
1230
+ font-weight: 500;
1231
+ line-height: 1.3;
1232
+ white-space: nowrap;
1233
+ border-radius: 4px;
1234
+ pointer-events: none;
1235
+ opacity: 0;
1236
+ transition: opacity 0.12s ease;
1237
+ z-index: 100;
1238
+ }
1239
+ .co-rte-img-layout__btn[data-tooltip]:hover::after {
1240
+ opacity: 1;
1241
+ transition-delay: 0.3s;
1242
+ }
1243
+
1244
+ /* ============================================================
1245
+ Image layout modes (responsive, reflow-based)
1246
+
1247
+ Layout is driven by the container's `data-image-layout` attribute (set in JS
1248
+ by syncImageLayouts) — no absolute positioning, no fixed page. Everything
1249
+ reflows, and floats collapse to full-width on small screens. The serialized
1250
+ <img> carries the same attribute, so the viewer mirrors these rules.
1251
+
1252
+ `inline` (default) needs no rule — the base [data-resize-container] styling
1253
+ already keeps the image in the text flow.
1254
+ ============================================================ */
1255
+ .co-rte-content [data-resize-container][data-image-layout="wrap-left"] {
1256
+ float: left;
1257
+ max-width: 50%;
1258
+ margin: 4px 16px 8px 0;
1259
+ }
1260
+ .co-rte-content [data-resize-container][data-image-layout="wrap-right"] {
1261
+ float: right;
1262
+ max-width: 50%;
1263
+ margin: 4px 0 8px 16px;
1264
+ }
1265
+ .co-rte-content [data-resize-container][data-image-layout="center"] {
1266
+ display: block;
1267
+ margin: 12px auto;
1268
+ }
1269
+ .co-rte-content [data-resize-container][data-image-layout="full-width"] {
1270
+ display: block;
1271
+ width: 100%;
1272
+ margin: 12px 0;
1273
+ }
1274
+ .co-rte-content [data-resize-container][data-image-layout="full-width"] [data-resize-wrapper],
1275
+ .co-rte-content [data-resize-container][data-image-layout="full-width"] img {
1276
+ width: 100%;
1277
+ }
1278
+
1279
+ /* Mobile: a floated image beside a sliver of text reads badly — collapse floats
1280
+ to full-width blocks so they stack above/below the text instead. */
1281
+ @media (max-width: 768px) {
1282
+ .co-rte-content [data-resize-container][data-image-layout="wrap-left"],
1283
+ .co-rte-content [data-resize-container][data-image-layout="wrap-right"] {
1284
+ float: none;
1285
+ max-width: 100%;
1286
+ display: block;
1287
+ margin: 12px 0;
1288
+ }
1289
+ }
1290
+
1291
+ /* ============================================================
1292
+ Fluid content width (document / "site" preset)
1293
+
1294
+ The editing surface fills ~80% of its container on desktop and the full width
1295
+ on mobile, so authored content reflows to fit any device (the viewer mirrors
1296
+ this). Host apps can tune the desktop measure via --co-rte-content-width.
1297
+ Scoped to `--site` so compact presets (comment/task) still fill their box.
1298
+ ============================================================ */
1299
+ .co-rte-content--site .ProseMirror {
1300
+ width: var(--co-rte-content-width, 80%);
1301
+ max-width: 100%;
1302
+ margin: 0 auto;
1303
+ }
1304
+ @media (max-width: 768px) {
1305
+ .co-rte-content--site .ProseMirror {
1306
+ width: 100%;
1307
+ }
1308
+ }
1309
+
1310
+ /* Reader mode (readonly/disabled): no resize chrome, no selection outline — the
1311
+ content reads as a finished page, not an editable image. */
1312
+ .co-rich-text-editor--readonly [data-resize-handle],
1313
+ .co-rich-text-editor--disabled [data-resize-handle] {
1314
+ display: none !important;
1315
+ }
1316
+ .co-rich-text-editor--readonly [data-resize-container].ProseMirror-selectednode,
1317
+ .co-rich-text-editor--disabled [data-resize-container].ProseMirror-selectednode,
1318
+ .co-rich-text-editor--readonly img.ProseMirror-selectednode,
1319
+ .co-rich-text-editor--disabled img.ProseMirror-selectednode {
1320
+ outline: none !important;
1321
+ }
1322
+