@prolibu-suite/cobalt-core 0.10.1 → 0.10.3

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 (269) hide show
  1. package/custom-elements.json +107 -27
  2. package/dist/cjs/co-accordion.cjs.entry.js +32 -3
  3. package/dist/cjs/co-avatar.cjs.entry.js +1 -1
  4. package/dist/cjs/co-button.cjs.entry.js +1 -1
  5. package/dist/cjs/co-calendar_3.cjs.entry.js +7 -3
  6. package/dist/cjs/co-chip_2.cjs.entry.js +8 -6
  7. package/dist/cjs/co-column-picker.cjs.entry.js +1 -1
  8. package/dist/cjs/co-combobox.cjs.entry.js +1 -1
  9. package/dist/cjs/co-command-search.cjs.entry.js +1 -1
  10. package/dist/cjs/co-date-range-picker.cjs.entry.js +3 -1
  11. package/dist/cjs/co-emoji-picker.cjs.entry.js +1 -1
  12. package/dist/cjs/co-file-type-tile.cjs.entry.js +23 -7
  13. package/dist/cjs/co-number-field.cjs.entry.js +25 -4
  14. package/dist/cjs/co-overlay.cjs.entry.js +34 -3
  15. package/dist/cjs/co-phone-field.cjs.entry.js +5 -5
  16. package/dist/cjs/co-provider-logo_2.cjs.entry.js +1 -1
  17. package/dist/cjs/co-rich-text-editor.cjs.entry.js +30 -10
  18. package/dist/cjs/co-rich-text-toolbar.cjs.entry.js +5 -2
  19. package/dist/cjs/co-rich-text-viewer.cjs.entry.js +19 -3
  20. package/dist/cjs/co-row.cjs.entry.js +2 -2
  21. package/dist/cjs/co-select.cjs.entry.js +8 -8
  22. package/dist/cjs/co-separator.cjs.entry.js +1 -1
  23. package/dist/cjs/co-sidebar-nav.cjs.entry.js +1 -1
  24. package/dist/cjs/co-sidebar.cjs.entry.js +2 -2
  25. package/dist/cjs/co-slider.cjs.entry.js +2 -2
  26. package/dist/cjs/co-switch.cjs.entry.js +3 -3
  27. package/dist/cjs/co-tab-group.cjs.entry.js +2 -2
  28. package/dist/cjs/co-tab.cjs.entry.js +2 -2
  29. package/dist/cjs/co-tags-field.cjs.entry.js +5 -5
  30. package/dist/cjs/co-textarea.cjs.entry.js +4 -4
  31. package/dist/cjs/co-time-field.cjs.entry.js +1 -1
  32. package/dist/cjs/co-toggle-button-group.cjs.entry.js +2 -2
  33. package/dist/cjs/co-toggle-button.cjs.entry.js +2 -2
  34. package/dist/cjs/co-tooltip.cjs.entry.js +2 -2
  35. package/dist/cjs/co-video.cjs.entry.js +2 -2
  36. package/dist/cjs/cobalt.cjs.js +1 -1
  37. package/dist/cjs/{index-BYwrR87Z.js → index-2kMmd5-a.js} +6717 -6654
  38. package/dist/cjs/index-MDAnKsze.js +8 -8
  39. package/dist/cjs/loader.cjs.js +1 -1
  40. package/dist/cjs/{normalizeText-B-v-XPKf.js → normalizeText-D9rlJWZa.js} +29 -18
  41. package/dist/cjs/{toolbar-config-BSGas-Wl.js → toolbar-config-CYACt9hh.js} +13 -1
  42. package/dist/cobalt/cobalt.esm.js +1 -1
  43. package/dist/cobalt/p-07416e31.entry.js +1 -0
  44. package/dist/cobalt/{p-2fba312b.entry.js → p-0c004735.entry.js} +1 -1
  45. package/dist/cobalt/{p-16954cea.entry.js → p-11c5ce78.entry.js} +1 -1
  46. package/dist/cobalt/{p-c465d619.entry.js → p-1861fe41.entry.js} +1 -1
  47. package/dist/cobalt/p-1cc818ca.entry.js +1 -0
  48. package/dist/cobalt/p-216a63ee.entry.js +1 -0
  49. package/dist/cobalt/p-24196410.entry.js +1 -0
  50. package/dist/cobalt/{p-5e4973a6.entry.js → p-292b0389.entry.js} +1 -1
  51. package/dist/cobalt/{p-b5bba7fe.entry.js → p-2c9dba2f.entry.js} +1 -1
  52. package/dist/cobalt/{p-789c4b3e.entry.js → p-39a50e7f.entry.js} +1 -1
  53. package/dist/cobalt/p-39dc4ec8.entry.js +1 -0
  54. package/dist/cobalt/{p-3c4f7026.entry.js → p-3d31c575.entry.js} +1 -1
  55. package/dist/cobalt/{p-37f5036b.entry.js → p-49834b8e.entry.js} +1 -1
  56. package/dist/cobalt/p-5c756787.entry.js +1 -0
  57. package/dist/cobalt/{p-27a7e549.entry.js → p-67f3b9d6.entry.js} +1 -1
  58. package/dist/cobalt/{p-9cf738ed.entry.js → p-6a4f3179.entry.js} +1 -1
  59. package/dist/cobalt/{p-6c82a892.entry.js → p-6dd220e0.entry.js} +1 -1
  60. package/dist/cobalt/{p-93fe45fd.entry.js → p-71cbc53c.entry.js} +1 -1
  61. package/dist/cobalt/{p-e371ec7a.entry.js → p-72e52af7.entry.js} +1 -1
  62. package/dist/cobalt/{p-d3344187.entry.js → p-7b5c555c.entry.js} +1 -1
  63. package/dist/cobalt/{p-148d4aa6.entry.js → p-8530ad16.entry.js} +1 -1
  64. package/dist/cobalt/{p-a325ea0c.entry.js → p-8a74bf7d.entry.js} +1 -1
  65. package/dist/cobalt/p-8e05b979.entry.js +1 -0
  66. package/dist/cobalt/{p-7e8e6907.entry.js → p-8ebc0c12.entry.js} +1 -1
  67. package/dist/cobalt/p-99a655f6.entry.js +1 -0
  68. package/dist/{components/p-DOL2zACE.js → cobalt/p-BAYo-RBt.js} +1 -1
  69. package/dist/cobalt/p-Ba_v-MzM.js +1 -0
  70. package/dist/cobalt/{p-Bryf3-Js.js → p-CJW9H3Gi.js} +1 -1
  71. package/dist/cobalt/p-a1b422ca.entry.js +1 -0
  72. package/dist/cobalt/{p-354d5089.entry.js → p-ade07307.entry.js} +1 -1
  73. package/dist/cobalt/{p-383a998e.entry.js → p-b437eff6.entry.js} +1 -1
  74. package/dist/cobalt/p-b698188c.entry.js +1 -0
  75. package/dist/cobalt/p-bde32f8b.entry.js +1 -0
  76. package/dist/cobalt/{p-95cfcb34.entry.js → p-c30b4cb5.entry.js} +1 -1
  77. package/dist/cobalt/p-ee149fd2.entry.js +1 -0
  78. package/dist/cobalt/{p-fd150cc6.entry.js → p-f7eb1a40.entry.js} +1 -1
  79. package/dist/cobalt/{p-16f8cee6.entry.js → p-f9a7b7c6.entry.js} +1 -1
  80. package/dist/collection/components/co-accordion/co-accordion.css +9 -2
  81. package/dist/collection/components/co-accordion/co-accordion.js +35 -4
  82. package/dist/collection/components/co-autocomplete/co-autocomplete.js +1 -1
  83. package/dist/collection/components/co-avatar/co-avatar.css +22 -1
  84. package/dist/collection/components/co-avatar-group/co-avatar-group.js +1 -1
  85. package/dist/collection/components/co-button/co-button.css +9 -0
  86. package/dist/collection/components/co-calendar/co-calendar.css +10 -4
  87. package/dist/collection/components/co-calendar/co-calendar.js +6 -2
  88. package/dist/collection/components/co-checkbox-group/co-checkbox-group.js +1 -1
  89. package/dist/collection/components/co-combobox/co-combobox.js +1 -1
  90. package/dist/collection/components/co-command-search/co-command-search.js +1 -1
  91. package/dist/collection/components/co-data-table/co-data-table.js +1 -1
  92. package/dist/collection/components/co-date-range-picker/co-date-range-picker.css +13 -0
  93. package/dist/collection/components/co-date-range-picker/co-date-range-picker.js +4 -2
  94. package/dist/collection/components/co-file-type-tile/co-file-type-tile.js +4 -43
  95. package/dist/collection/components/co-file-type-tile/co-file-type-tile.utils.js +55 -0
  96. package/dist/collection/components/co-number-field/co-number-field.js +25 -4
  97. package/dist/collection/components/co-option-list/co-option-list.js +8 -6
  98. package/dist/collection/components/co-overlay/backdropDismiss.js +12 -0
  99. package/dist/collection/components/co-overlay/co-overlay.js +22 -3
  100. package/dist/collection/components/co-phone-field/co-phone-field.js +5 -5
  101. package/dist/collection/components/co-popover/co-popover.js +1 -1
  102. package/dist/collection/components/co-radio-group/co-radio-group.js +1 -1
  103. package/dist/collection/components/co-ref-field/co-ref-field.js +4 -4
  104. package/dist/collection/components/co-rich-text-editor/co-rich-text-editor.css +22 -0
  105. package/dist/collection/components/co-rich-text-editor/co-rich-text-editor.js +48 -8
  106. package/dist/collection/components/co-rich-text-toolbar/co-rich-text-toolbar.css +52 -0
  107. package/dist/collection/components/co-rich-text-toolbar/co-rich-text-toolbar.js +25 -2
  108. package/dist/collection/components/co-rich-text-viewer/co-rich-text-viewer.css +5 -0
  109. package/dist/collection/components/co-rich-text-viewer/co-rich-text-viewer.js +17 -1
  110. package/dist/collection/components/co-row/co-row.js +2 -2
  111. package/dist/collection/components/co-segmented-bar/co-segmented-bar.js +1 -1
  112. package/dist/collection/components/co-select/co-select.js +9 -9
  113. package/dist/collection/components/co-separator/co-separator.js +1 -1
  114. package/dist/collection/components/co-sidebar/co-sidebar.js +2 -2
  115. package/dist/collection/components/co-sidebar-nav/co-sidebar-nav.js +1 -1
  116. package/dist/collection/components/co-skeleton/co-skeleton.js +1 -1
  117. package/dist/collection/components/co-slider/co-slider.js +2 -2
  118. package/dist/collection/components/co-switch/co-switch.js +3 -3
  119. package/dist/collection/components/co-tab/co-tab.js +2 -2
  120. package/dist/collection/components/co-tab-group/co-tab-group.js +2 -2
  121. package/dist/collection/components/co-tags-field/co-tags-field.js +5 -5
  122. package/dist/collection/components/co-textarea/co-textarea.js +4 -4
  123. package/dist/collection/components/co-time-field/co-time-field.js +1 -1
  124. package/dist/collection/components/co-toast/co-toast.js +2 -2
  125. package/dist/collection/components/co-toggle-button/co-toggle-button.js +2 -2
  126. package/dist/collection/components/co-toggle-button-group/co-toggle-button-group.js +2 -2
  127. package/dist/collection/components/co-tooltip/co-tooltip.js +2 -2
  128. package/dist/collection/components/co-transfer-list/co-transfer-list.js +1 -1
  129. package/dist/collection/components/co-video/co-video.js +2 -2
  130. package/dist/collection/utils/normalizeText.js +43 -0
  131. package/dist/components/co-accordion.js +1 -1
  132. package/dist/components/co-autocomplete.js +1 -1
  133. package/dist/components/co-avatar-group.js +1 -1
  134. package/dist/components/co-avatar.js +1 -1
  135. package/dist/components/co-button.js +1 -1
  136. package/dist/components/co-calendar-month.js +1 -1
  137. package/dist/components/co-calendar-timegrid.js +1 -1
  138. package/dist/components/co-calendar.js +1 -1
  139. package/dist/components/co-column-picker.js +1 -1
  140. package/dist/components/co-combobox.js +1 -1
  141. package/dist/components/co-command-search.js +1 -1
  142. package/dist/components/co-data-table.js +1 -1
  143. package/dist/components/co-date-picker.js +1 -1
  144. package/dist/components/co-date-range-picker.js +1 -1
  145. package/dist/components/co-date-range.js +1 -1
  146. package/dist/components/co-date-time-picker.js +1 -1
  147. package/dist/components/co-drawer.js +1 -1
  148. package/dist/components/co-drive-card.js +1 -1
  149. package/dist/components/co-emoji-picker.js +1 -1
  150. package/dist/components/co-event-calendar.js +1 -1
  151. package/dist/components/co-file-field.js +1 -1
  152. package/dist/components/co-file-type-tile.js +1 -1
  153. package/dist/components/co-lightbox.js +1 -1
  154. package/dist/components/co-list-item.js +1 -1
  155. package/dist/components/co-modal.js +1 -1
  156. package/dist/components/co-number-field.js +1 -1
  157. package/dist/components/co-option-list.js +1 -1
  158. package/dist/components/co-overlay.js +1 -1
  159. package/dist/components/co-phone-field.js +1 -1
  160. package/dist/components/co-ref-field.js +1 -1
  161. package/dist/components/co-rich-text-editor.js +1 -1
  162. package/dist/components/co-rich-text-toolbar.js +1 -1
  163. package/dist/components/co-rich-text-viewer.js +1 -1
  164. package/dist/components/co-row.js +1 -1
  165. package/dist/components/co-select.js +1 -1
  166. package/dist/components/co-separator.js +1 -1
  167. package/dist/components/co-sidebar-nav.js +1 -1
  168. package/dist/components/co-sidebar.js +1 -1
  169. package/dist/components/co-skeleton.js +1 -1
  170. package/dist/components/co-slider.js +1 -1
  171. package/dist/components/co-switch.js +1 -1
  172. package/dist/components/co-tab-group.js +1 -1
  173. package/dist/components/co-tab.js +1 -1
  174. package/dist/components/co-tags-field.js +1 -1
  175. package/dist/components/co-textarea.js +1 -1
  176. package/dist/components/co-time-field.js +1 -1
  177. package/dist/components/co-toggle-button-group.js +1 -1
  178. package/dist/components/co-toggle-button.js +1 -1
  179. package/dist/components/co-tooltip.js +1 -1
  180. package/dist/components/co-video.js +1 -1
  181. package/dist/components/{p-CLsAo0-A.js → p-2EOI1nrz.js} +1 -1
  182. package/dist/{cobalt/p-DOL2zACE.js → components/p-BAYo-RBt.js} +1 -1
  183. package/dist/components/p-BJh68Jqe.js +1 -0
  184. package/dist/components/p-Ba_v-MzM.js +1 -0
  185. package/dist/components/p-BhCVadcA.js +1 -0
  186. package/dist/components/p-BrAFTkAn.js +1 -0
  187. package/dist/components/{p-zuhal3IZ.js → p-Bsh0JMGf.js} +1 -1
  188. package/dist/components/{p-Bryf3-Js.js → p-CJW9H3Gi.js} +1 -1
  189. package/dist/components/p-CWCYYQrF.js +1 -0
  190. package/dist/components/p-D7Lhxz7L.js +1 -0
  191. package/dist/components/{p-B9xitpGU.js → p-DFlJMEJ-.js} +1 -1
  192. package/dist/components/{p-De7w9k6_.js → p-DTPYZwaZ.js} +1 -1
  193. package/dist/components/{p-DSnJWzQw.js → p-Dc_Kbari.js} +1 -1
  194. package/dist/components/{p-D2ldYZo1.js → p-Dcg4krSX.js} +1 -1
  195. package/dist/components/{p-DTi2O4O8.js → p-DvR45CLa.js} +1 -1
  196. package/dist/components/{p-DDV_bRcU.js → p-Nt4JJxbL.js} +1 -1
  197. package/dist/components/{p-DxtNejr2.js → p-P4HlMBlL.js} +1 -1
  198. package/dist/components/p-cndRd_-U.js +1 -0
  199. package/dist/components/{p-D3mVYO-G.js → p-uxdXViMV.js} +1 -1
  200. package/dist/esm/co-accordion.entry.js +32 -3
  201. package/dist/esm/co-avatar.entry.js +1 -1
  202. package/dist/esm/co-button.entry.js +1 -1
  203. package/dist/esm/co-calendar_3.entry.js +7 -3
  204. package/dist/esm/co-chip_2.entry.js +8 -6
  205. package/dist/esm/co-column-picker.entry.js +1 -1
  206. package/dist/esm/co-combobox.entry.js +1 -1
  207. package/dist/esm/co-command-search.entry.js +1 -1
  208. package/dist/esm/co-date-range-picker.entry.js +3 -1
  209. package/dist/esm/co-emoji-picker.entry.js +1 -1
  210. package/dist/esm/co-file-type-tile.entry.js +23 -7
  211. package/dist/esm/co-number-field.entry.js +25 -4
  212. package/dist/esm/co-overlay.entry.js +34 -3
  213. package/dist/esm/co-phone-field.entry.js +5 -5
  214. package/dist/esm/co-provider-logo_2.entry.js +1 -1
  215. package/dist/esm/co-rich-text-editor.entry.js +30 -10
  216. package/dist/esm/co-rich-text-toolbar.entry.js +5 -2
  217. package/dist/esm/co-rich-text-viewer.entry.js +19 -3
  218. package/dist/esm/co-row.entry.js +2 -2
  219. package/dist/esm/co-select.entry.js +8 -8
  220. package/dist/esm/co-separator.entry.js +1 -1
  221. package/dist/esm/co-sidebar-nav.entry.js +1 -1
  222. package/dist/esm/co-sidebar.entry.js +2 -2
  223. package/dist/esm/co-slider.entry.js +2 -2
  224. package/dist/esm/co-switch.entry.js +3 -3
  225. package/dist/esm/co-tab-group.entry.js +2 -2
  226. package/dist/esm/co-tab.entry.js +2 -2
  227. package/dist/esm/co-tags-field.entry.js +5 -5
  228. package/dist/esm/co-textarea.entry.js +4 -4
  229. package/dist/esm/co-time-field.entry.js +1 -1
  230. package/dist/esm/co-toggle-button-group.entry.js +2 -2
  231. package/dist/esm/co-toggle-button.entry.js +2 -2
  232. package/dist/esm/co-tooltip.entry.js +2 -2
  233. package/dist/esm/co-video.entry.js +2 -2
  234. package/dist/esm/cobalt.js +1 -1
  235. package/dist/esm/{index-68iUQp5j.js → index-BBIYyvq-.js} +6717 -6654
  236. package/dist/esm/index-DH5lfRNj.js +8 -8
  237. package/dist/esm/loader.js +1 -1
  238. package/dist/esm/{normalizeText-CQY6Ul7q.js → normalizeText-Ba_v-MzM.js} +29 -18
  239. package/dist/esm/{toolbar-config-DOL2zACE.js → toolbar-config-BAYo-RBt.js} +13 -1
  240. package/dist/types/components/co-accordion/co-accordion.d.ts +11 -2
  241. package/dist/types/components/co-file-type-tile/co-file-type-tile.utils.d.ts +12 -0
  242. package/dist/types/components/co-number-field/co-number-field.d.ts +7 -0
  243. package/dist/types/components/co-overlay/backdropDismiss.d.ts +10 -0
  244. package/dist/types/components/co-overlay/co-overlay.d.ts +4 -0
  245. package/dist/types/components/co-rich-text-editor/co-rich-text-editor.d.ts +7 -0
  246. package/dist/types/components/co-rich-text-toolbar/co-rich-text-toolbar.d.ts +4 -1
  247. package/dist/types/components.d.ts +41 -11
  248. package/dist/types/utils/normalizeText.d.ts +13 -0
  249. package/package.json +4 -4
  250. package/dist/cobalt/p-239c5c5f.entry.js +0 -1
  251. package/dist/cobalt/p-2a30c143.entry.js +0 -1
  252. package/dist/cobalt/p-2f0f3bb1.entry.js +0 -1
  253. package/dist/cobalt/p-5adf117c.entry.js +0 -1
  254. package/dist/cobalt/p-5ca394b1.entry.js +0 -1
  255. package/dist/cobalt/p-66b11b38.entry.js +0 -1
  256. package/dist/cobalt/p-CQY6Ul7q.js +0 -1
  257. package/dist/cobalt/p-b0c4fc71.entry.js +0 -1
  258. package/dist/cobalt/p-be34e447.entry.js +0 -1
  259. package/dist/cobalt/p-c124e82b.entry.js +0 -1
  260. package/dist/cobalt/p-d9d9e8ae.entry.js +0 -1
  261. package/dist/cobalt/p-e8a2f993.entry.js +0 -1
  262. package/dist/cobalt/p-eb8691f2.entry.js +0 -1
  263. package/dist/components/p-CBTGN490.js +0 -1
  264. package/dist/components/p-CFFDmGPS.js +0 -1
  265. package/dist/components/p-CQY6Ul7q.js +0 -1
  266. package/dist/components/p-DoHLTC0n.js +0 -1
  267. package/dist/components/p-HxVRXXXC.js +0 -1
  268. package/dist/components/p-vby0ITbe.js +0 -1
  269. package/dist/components/p-wjt4IAGZ.js +0 -1
@@ -5,7 +5,7 @@ var requiredMark = require('./requiredMark-D-t-IPN0.js');
5
5
  var dateI18n = require('./dateI18n-BK2qHqoC.js');
6
6
  var dates = require('./dates-TQLHlFd2.js');
7
7
 
8
- const coDateRangePickerCss = () => `:host{display:block;font-family:var(--co-font-family-primary);font-size:var(--co-font-size-14)}.co-date-range-picker{display:flex;flex-direction:column;gap:var(--co-spacing-sm2)}.co-date-range-picker__label{font-size:var(--co-font-size-14);font-weight:400;color:var(--co-semantic-text-secondary);line-height:1;padding:0 var(--co-spacing-xs)}.co-date-range-picker co-popover{display:block;width:100%}.co-date-range-picker--s .co-date-range-picker__trigger{min-height:28px;padding:0 var(--co-spacing-sm)}.co-date-range-picker--sm .co-date-range-picker__trigger{min-height:32px;padding:0 var(--co-spacing-sm)}.co-date-range-picker--lg .co-date-range-picker__trigger{min-height:48px;padding:0 var(--co-spacing-lg)}.co-date-range-picker__trigger{display:inline-flex;align-items:center;gap:var(--co-spacing-sm2);width:100%;min-height:40px;padding:0 var(--co-spacing-md);background:var(--co-semantic-surface-page);border:1px solid var(--co-semantic-border-field);border-radius:var(--co-border-radius-xs);cursor:pointer;color:var(--co-semantic-text-default);box-sizing:border-box;transition:border-color var(--co-motion-duration-fast) var(--co-motion-ease-out), box-shadow var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-date-range-picker__trigger--flat{background:transparent;border-color:transparent}.co-date-range-picker__trigger--open{border-color:var(--co-semantic-border-focus);box-shadow:0 0 0 2px var(--co-semantic-border-focus-ring)}.co-date-range-picker__trigger--disabled{opacity:0.5;cursor:not-allowed}.co-date-range-picker--invalid .co-date-range-picker__trigger{border-color:var(--co-semantic-status-error)}.co-date-range-picker__icon,.co-date-range-picker__caret{color:var(--co-semantic-text-muted);flex-shrink:0}.co-date-range-picker__trigger-text{flex:1;min-width:0;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.co-date-range-picker__trigger-text--placeholder{color:var(--co-semantic-text-muted)}.co-date-range-picker__clear{background:none;border:0;padding:0;cursor:pointer;color:var(--co-semantic-text-muted);display:inline-flex;align-items:center;flex-shrink:0}.co-date-range-picker__clear:hover{color:var(--co-semantic-text-default)}.co-date-range-picker__panel{display:flex;flex-direction:column;gap:var(--co-spacing-md);padding:var(--co-spacing-md);min-width:280px}.co-date-range-picker__fields{display:grid;grid-template-columns:1fr 1fr;gap:var(--co-spacing-sm)}.co-date-range-picker__body{display:flex;gap:var(--co-spacing-md);align-items:flex-start}.co-date-range-picker__body--touch{flex-direction:column;align-items:stretch}.co-date-range-picker__body--touch .co-date-range-picker__presets{flex-direction:row;flex-wrap:wrap;min-width:0;border-right:0;padding-right:0;border-bottom:1px solid var(--co-semantic-border-subtle);padding-bottom:var(--co-spacing-sm)}.co-date-range-picker__body--touch co-calendar{align-self:center}.co-date-range-picker__presets{display:flex;flex-direction:column;gap:var(--co-spacing-xxs);min-width:120px;border-right:1px solid var(--co-semantic-border-subtle);padding-right:var(--co-spacing-md)}.co-date-range-picker__preset{text-align:left;background:none;border:0;padding:var(--co-spacing-xs) var(--co-spacing-sm);border-radius:var(--co-border-radius-xs);font-size:var(--co-font-size-14);font-family:inherit;color:var(--co-semantic-text-default);cursor:pointer;transition:background var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-date-range-picker__preset:hover{background:var(--co-semantic-surface-hover)}.co-date-range-picker__footer{display:flex;justify-content:flex-end;gap:var(--co-spacing-sm);padding-top:var(--co-spacing-sm);border-top:1px solid var(--co-semantic-border-subtle)}.co-date-range-picker__btn{padding:var(--co-spacing-xs) var(--co-spacing-md);border-radius:var(--co-border-radius-xs);font-size:var(--co-font-size-14);font-family:inherit;font-weight:500;cursor:pointer;border:0}.co-date-range-picker__btn--ghost{background:transparent;color:var(--co-semantic-text-default)}.co-date-range-picker__btn--ghost:hover{background:var(--co-semantic-surface-hover)}.co-date-range-picker__btn--primary{background:var(--co-semantic-surface-primary);color:var(--co-semantic-on-primary)}.co-date-range-picker__btn--primary:hover:not(:disabled){opacity:0.88}.co-date-range-picker__btn--primary:disabled{opacity:0.5;cursor:not-allowed}.co-date-range-picker__helper{display:inline-flex;align-items:center;gap:var(--co-spacing-xs);font-size:var(--co-font-size-14);color:var(--co-semantic-text-muted);padding:0 var(--co-spacing-xs)}.co-date-range-picker__helper--error{color:var(--co-semantic-status-error)}:host([layout='horizontal']) .co-date-range-picker{display:grid;grid-template-columns:var(--co-field-label-width, max-content) 1fr;align-items:start;column-gap:var(--co-spacing-md);row-gap:var(--co-spacing-sm2)}:host([layout='horizontal']) .co-date-range-picker__label{grid-column:1;grid-row:1;padding-top:var(--co-spacing-sm2);min-width:0}:host([layout='horizontal']) .co-date-range-picker__label{white-space:normal}:host([layout='horizontal']) .co-date-range-picker>:not(.co-date-range-picker__label){grid-column:2;min-width:0}.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)')}`;
8
+ const coDateRangePickerCss = () => `:host{display:block;font-family:var(--co-font-family-primary);font-size:var(--co-font-size-14)}.co-date-range-picker{display:flex;flex-direction:column;gap:var(--co-spacing-sm2)}.co-date-range-picker__label{font-size:var(--co-font-size-14);font-weight:400;color:var(--co-semantic-text-secondary);line-height:1;padding:0 var(--co-spacing-xs)}.co-date-range-picker co-popover{display:block;width:100%}.co-date-range-picker--s .co-date-range-picker__trigger{min-height:28px;padding:0 var(--co-spacing-sm)}.co-date-range-picker--sm .co-date-range-picker__trigger{min-height:32px;padding:0 var(--co-spacing-sm)}.co-date-range-picker--lg .co-date-range-picker__trigger{min-height:48px;padding:0 var(--co-spacing-lg)}.co-date-range-picker__trigger{display:inline-flex;align-items:center;gap:var(--co-spacing-sm2);width:100%;min-height:40px;padding:0 var(--co-spacing-md);background:var(--co-semantic-surface-page);border:1px solid var(--co-semantic-border-field);border-radius:var(--co-border-radius-xs);cursor:pointer;color:var(--co-semantic-text-default);box-sizing:border-box;transition:border-color var(--co-motion-duration-fast) var(--co-motion-ease-out), box-shadow var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-date-range-picker__trigger--flat{background:transparent;border-color:transparent}.co-date-range-picker__trigger--open{border-color:var(--co-semantic-border-focus);box-shadow:0 0 0 2px var(--co-semantic-border-focus-ring)}.co-date-range-picker__trigger--disabled{opacity:0.5;cursor:not-allowed}.co-date-range-picker--invalid .co-date-range-picker__trigger{border-color:var(--co-semantic-status-error)}.co-date-range-picker__icon,.co-date-range-picker__caret{color:var(--co-semantic-text-muted);flex-shrink:0}.co-date-range-picker__trigger-text{flex:1;min-width:0;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.co-date-range-picker__trigger-text--placeholder{color:var(--co-semantic-text-muted)}.co-date-range-picker__clear{background:none;border:0;padding:0;cursor:pointer;color:var(--co-semantic-text-muted);display:inline-flex;align-items:center;flex-shrink:0}.co-date-range-picker__clear:hover{color:var(--co-semantic-text-default)}.co-date-range-picker__panel{display:flex;flex-direction:column;gap:var(--co-spacing-md);padding:var(--co-spacing-md);min-width:280px}.co-date-range-picker__fields{display:grid;grid-template-columns:1fr 1fr;gap:var(--co-spacing-sm)}.co-date-range-picker__body{display:flex;gap:var(--co-spacing-md);align-items:flex-start}.co-date-range-picker__body:not(.co-date-range-picker__body--touch) co-calendar{flex:1;min-width:0;--co-calendar-width:100%;--co-calendar-col:minmax(var(--co-calendar-day-size), 1fr);--co-calendar-day-width:100%}.co-date-range-picker__body--touch{flex-direction:column;align-items:stretch}.co-date-range-picker__body--touch .co-date-range-picker__presets{flex-direction:row;flex-wrap:wrap;min-width:0;border-right:0;padding-right:0;border-bottom:1px solid var(--co-semantic-border-subtle);padding-bottom:var(--co-spacing-sm)}.co-date-range-picker__body--touch co-calendar{align-self:center}.co-date-range-picker__presets{display:flex;flex-direction:column;gap:var(--co-spacing-xxs);min-width:120px;border-right:1px solid var(--co-semantic-border-subtle);padding-right:var(--co-spacing-md)}.co-date-range-picker__preset{text-align:left;background:none;border:0;padding:var(--co-spacing-xs) var(--co-spacing-sm);border-radius:var(--co-border-radius-xs);font-size:var(--co-font-size-14);font-family:inherit;color:var(--co-semantic-text-default);cursor:pointer;transition:background var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-date-range-picker__preset:hover{background:var(--co-semantic-surface-hover)}.co-date-range-picker__footer{display:flex;justify-content:flex-end;gap:var(--co-spacing-sm);padding-top:var(--co-spacing-sm);border-top:1px solid var(--co-semantic-border-subtle)}.co-date-range-picker__btn{padding:var(--co-spacing-xs) var(--co-spacing-md);border-radius:var(--co-border-radius-xs);font-size:var(--co-font-size-14);font-family:inherit;font-weight:500;cursor:pointer;border:0}.co-date-range-picker__btn--ghost{background:transparent;color:var(--co-semantic-text-default)}.co-date-range-picker__btn--ghost:hover{background:var(--co-semantic-surface-hover)}.co-date-range-picker__btn--primary{background:var(--co-semantic-surface-primary);color:var(--co-semantic-on-primary)}.co-date-range-picker__btn--primary:hover:not(:disabled){opacity:0.88}.co-date-range-picker__btn--primary:disabled{opacity:0.5;cursor:not-allowed}.co-date-range-picker__helper{display:inline-flex;align-items:center;gap:var(--co-spacing-xs);font-size:var(--co-font-size-14);color:var(--co-semantic-text-muted);padding:0 var(--co-spacing-xs)}.co-date-range-picker__helper--error{color:var(--co-semantic-status-error)}:host([layout='horizontal']) .co-date-range-picker{display:grid;grid-template-columns:var(--co-field-label-width, max-content) 1fr;align-items:start;column-gap:var(--co-spacing-md);row-gap:var(--co-spacing-sm2)}:host([layout='horizontal']) .co-date-range-picker__label{grid-column:1;grid-row:1;padding-top:var(--co-spacing-sm2);min-width:0}:host([layout='horizontal']) .co-date-range-picker__label{white-space:normal}:host([layout='horizontal']) .co-date-range-picker>:not(.co-date-range-picker__label){grid-column:2;min-width:0}.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)')}`;
9
9
 
10
10
  const CoDateRangePicker = class {
11
11
  constructor(hostRef) {
@@ -276,6 +276,8 @@ const CoDateRangePicker = class {
276
276
  return `${f} → ${to}`;
277
277
  if (f)
278
278
  return `${f} → …`;
279
+ if (to)
280
+ return `… → ${to}`; // solo fin (p. ej. un ticket con vencimiento y sin inicio): no ocultar el dato
279
281
  return this.placeholder || t.setDate; // `||`: empty string → localized default
280
282
  }
281
283
  presetItems(t) {
@@ -2,7 +2,7 @@
2
2
 
3
3
  var index = require('./index-MDAnKsze.js');
4
4
  var dateI18n = require('./dateI18n-BK2qHqoC.js');
5
- var normalizeText = require('./normalizeText-B-v-XPKf.js');
5
+ var normalizeText = require('./normalizeText-D9rlJWZa.js');
6
6
 
7
7
  /**
8
8
  * Built-in UI string dictionary for co-emoji-picker (chrome + aria labels +
@@ -2,18 +2,21 @@
2
2
 
3
3
  var index = require('./index-MDAnKsze.js');
4
4
 
5
- const coFileTypeTileCss = () => `:host{display:inline-flex}.co-file-type-tile{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;box-sizing:border-box}`;
6
-
7
5
  /** Extension → type bucket. Unknown extensions fall back to `file`. */
8
6
  const EXT_TO_TYPE = {
9
7
  pdf: 'pdf',
10
8
  doc: 'doc',
11
9
  docx: 'doc',
10
+ odt: 'doc',
12
11
  txt: 'txt',
13
12
  md: 'txt',
14
13
  xls: 'sheet',
15
14
  xlsx: 'sheet',
16
15
  csv: 'sheet',
16
+ ods: 'sheet',
17
+ ppt: 'slides',
18
+ pptx: 'slides',
19
+ key: 'slides',
17
20
  png: 'image',
18
21
  jpg: 'image',
19
22
  jpeg: 'image',
@@ -29,19 +32,34 @@ const EXT_TO_TYPE = {
29
32
  sketch: 'design',
30
33
  zip: 'zip',
31
34
  rar: 'zip',
35
+ // Forwarded emails (tickets created from an inbox carry the original
36
+ // messages as attachments): `.eml` from Gmail/IMAP, `.msg` from Outlook.
37
+ eml: 'mail',
38
+ msg: 'mail',
32
39
  };
33
40
  /** Type → { icon, accent (foreground), tint (background) }. Exact values per design spec (audit 1.6). */
34
41
  const TYPE_META = {
35
42
  pdf: { icon: 'file-pdf', accent: 'var(--co-color-secondary-rojo-100)', tint: 'rgb(255,236,236)' },
36
43
  doc: { icon: 'file-text', accent: 'var(--co-color-primary-azul)', tint: 'var(--co-color-azul-100)' },
37
44
  sheet: { icon: 'table', accent: 'var(--co-color-status-success)', tint: 'var(--co-color-verde-100)' },
45
+ slides: { icon: 'presentation-chart', accent: 'var(--co-color-secondary-guinda-100)', tint: 'var(--co-color-secondary-guinda-25)' },
38
46
  image: { icon: 'image', accent: 'var(--co-color-secondary-violeta-100)', tint: 'rgb(233,232,255)' },
39
47
  video: { icon: 'broadcast', accent: 'var(--co-color-secondary-naranja-100)', tint: 'rgb(255,236,220)' },
40
48
  txt: { icon: 'text-align-left', accent: 'var(--co-color-gray-600)', tint: 'var(--co-color-gray-100)' },
41
49
  design: { icon: 'sparkle', accent: 'var(--co-color-primary-rosado)', tint: 'var(--co-color-rosado-100)' },
42
50
  zip: { icon: 'package', accent: 'var(--co-color-status-pending)', tint: 'var(--co-color-status-bg-pending)' },
51
+ mail: { icon: 'envelope-simple', accent: 'var(--co-color-secondary-turquesa-100)', tint: 'var(--co-color-secondary-turquesa-25)' },
43
52
  file: { icon: 'file', accent: 'var(--co-color-gray-600)', tint: 'var(--co-color-gray-100)' },
44
53
  };
54
+ /** Bucket for an extension: case-insensitive, a leading dot is ignored, unknown → `file`. */
55
+ function resolveFileTileType(ext) {
56
+ var _a;
57
+ const key = (ext !== null && ext !== void 0 ? ext : '').trim().toLowerCase().replace(/^\./, '');
58
+ return (_a = EXT_TO_TYPE[key]) !== null && _a !== void 0 ? _a : 'file';
59
+ }
60
+
61
+ const coFileTypeTileCss = () => `:host{display:inline-flex}.co-file-type-tile{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;box-sizing:border-box}`;
62
+
45
63
  const CoFileTypeTile = class {
46
64
  constructor(hostRef) {
47
65
  index.registerInstance(this, hostRef);
@@ -53,14 +71,12 @@ const CoFileTypeTile = class {
53
71
  this.colorTags = true;
54
72
  }
55
73
  render() {
56
- var _a, _b;
57
- const key = ((_a = this.ext) !== null && _a !== void 0 ? _a : '').trim().toLowerCase().replace(/^\./, '');
58
- const type = (_b = EXT_TO_TYPE[key]) !== null && _b !== void 0 ? _b : 'file';
74
+ const type = resolveFileTileType(this.ext);
59
75
  const meta = TYPE_META[type];
60
76
  const iconSize = Math.round(this.size * 0.5);
61
77
  const background = this.colorTags ? meta.tint : 'var(--co-color-gray-100)';
62
78
  const color = this.colorTags ? meta.accent : 'var(--co-color-gray-600)';
63
- return (index.h("span", { key: '1df6dee1c0f729279f36463be6df9137bcbf4af0', class: {
79
+ return (index.h("span", { key: '0cbc40f94f5d917b4f3c35e0a9678daa81a58624', class: {
64
80
  'co-file-type-tile': true,
65
81
  [`co-file-type-tile--${type}`]: true,
66
82
  'co-file-type-tile--mono': !this.colorTags,
@@ -70,7 +86,7 @@ const CoFileTypeTile = class {
70
86
  borderRadius: `${this.radius}px`,
71
87
  background,
72
88
  color,
73
- } }, index.h("co-icon", { key: '566163b957b853911e3eef15cd38c7573cf749b4', name: meta.icon, size: iconSize, weight: "fill" })));
89
+ } }, index.h("co-icon", { key: 'c5245ababcc734116d4e71dd48e41bf66d02fdff', name: meta.icon, size: iconSize, weight: "fill" })));
74
90
  }
75
91
  };
76
92
  CoFileTypeTile.style = coFileTypeTileCss();
@@ -156,6 +156,13 @@ const CoNumberField = class {
156
156
  */
157
157
  this.hideControls = false;
158
158
  this.focused = false;
159
+ /**
160
+ * El usuario VACIÓ un campo no-clearable (borró todo el texto). Sin clearable
161
+ * el vacío no se emite mientras se tipea (sigue editando), pero al salir
162
+ * commitea el piso (`min ?? 0`, handleBlur) — antes el blur repintaba el valor
163
+ * anterior y el borrado se perdía. Un campo que NACE vacío no levanta la marca.
164
+ */
165
+ this.emptiedByUser = false;
159
166
  // Stepping/clear son mutaciones PROGRAMÁTICAS: con el campo enfocado ni el
160
167
  // @Watch (guard `focused`) ni el vdom (que copia el texto vivo) repintan, así
161
168
  // que cada path escribe el input él mismo — si no, ArrowUp emite y persiste
@@ -197,6 +204,9 @@ const CoNumberField = class {
197
204
  this.value = null;
198
205
  this.coChange.emit(null);
199
206
  }
207
+ else {
208
+ this.emptiedByUser = true;
209
+ }
200
210
  return;
201
211
  }
202
212
  if (raw === '-')
@@ -238,6 +248,9 @@ const CoNumberField = class {
238
248
  this.value = null;
239
249
  this.coChange.emit(null);
240
250
  }
251
+ else if (spliced === '') {
252
+ this.emptiedByUser = true;
253
+ }
241
254
  return;
242
255
  }
243
256
  const num = parseFloat(spliced);
@@ -255,9 +268,13 @@ const CoNumberField = class {
255
268
  (_a = this.inputEl) === null || _a === void 0 ? void 0 : _a.focus();
256
269
  };
257
270
  this.handleBlur = () => {
271
+ var _a;
258
272
  this.focused = false;
273
+ // Vaciado a mano sin clearable: commitea el piso (ver emptiedByUser).
274
+ if (this.emptiedByUser)
275
+ this.emitValue((_a = this.min) !== null && _a !== void 0 ? _a : 0);
259
276
  // Re-clamp on blur, but keep an empty field empty.
260
- if (!this.isEmpty)
277
+ else if (!this.isEmpty)
261
278
  this.emitValue(this.value);
262
279
  // Repinta el texto canónico: si el clamp devolvió el MISMO valor que ya
263
280
  // tenía el prop (tipear "-20" sobre 0 con min 0), el @Watch no dispara y el
@@ -356,6 +373,7 @@ const CoNumberField = class {
356
373
  return this.scaled ? n / 100 : n;
357
374
  }
358
375
  emitValue(next) {
376
+ this.emptiedByUser = false;
359
377
  const clamped = this.clamp(next);
360
378
  this.value = clamped;
361
379
  this.coChange.emit(clamped);
@@ -384,6 +402,9 @@ const CoNumberField = class {
384
402
  this.value = null;
385
403
  this.coChange.emit(null);
386
404
  }
405
+ else {
406
+ this.emptiedByUser = true;
407
+ }
387
408
  return;
388
409
  }
389
410
  if (cleaned === '-')
@@ -405,18 +426,18 @@ const CoNumberField = class {
405
426
  return this.scaled && !this.isEmpty ? '%' : null;
406
427
  }
407
428
  render() {
408
- return (index.h("div", { key: '1bcd7e60596bc28f5159f86a026d69d0d053f038', class: {
429
+ return (index.h("div", { key: 'de7f3ae049ac5afcdf7d8a711c566b947fa7e151', class: {
409
430
  'co-number-field': true,
410
431
  'co-number-field--disabled': this.disabled,
411
432
  'co-number-field--focused': this.focused,
412
433
  [`co-number-field--${this.size}`]: true,
413
434
  [`co-number-field--${this.status}`]: this.status !== 'default',
414
- } }, (this.label || this.secondaryLabel) && (index.h("div", { key: 'aca2d9958374940304e05495ae05e74d627154c7', class: "co-number-field__labels" }, this.label && index.h("label", { key: '8cf05675830ad181005430526785984acc793d0b', class: "co-number-field__label" }, this.label, index.h(requiredMark.RequiredMark, { key: '36aed2cf48890cf79506416d0c45f272ed329664', required: this.required })), this.secondaryLabel && index.h("span", { key: '636111436e1e3fff8d74fb4b9412c2192c93495a', class: "co-number-field__secondary-label" }, this.secondaryLabel))), index.h("div", { key: '6cbbb87a304cd9e415aafda276daede8dbe0b6a7', class: "co-number-field__row", part: "row" }, !this.hideControls && (index.h("button", { key: 'e11dfc41ee97b3287908877aa74f732a4cbe31fe', class: "co-number-field__btn co-number-field__btn--minus", type: "button", tabIndex: -1, disabled: !this.canDecrement, onClick: this.handleDecrement, "aria-label": "Decrease" }, index.h("co-icon", { key: '3f369b4d8293e9e987d18ba58fa1f010bd538016', name: "minus", size: 16 }))), index.h("input", { key: '8144b563cd4ae46774adbf224c45fa59378da4c7', ref: el => (this.inputEl = el), class: "co-number-field__input", type: "text", inputMode: "decimal",
435
+ } }, (this.label || this.secondaryLabel) && (index.h("div", { key: '3a6c96b2987f0502334a23048f8693745589e965', class: "co-number-field__labels" }, this.label && index.h("label", { key: '7e0c9c08e93f10f6e18143d038ea8810a0f156b8', class: "co-number-field__label" }, this.label, index.h(requiredMark.RequiredMark, { key: '88b110f3d59908c27d182533100220ff8a65bb66', required: this.required })), this.secondaryLabel && index.h("span", { key: '5dd9219f995fc59ce557c8ba2b5dfea2d7cb56ef', class: "co-number-field__secondary-label" }, this.secondaryLabel))), index.h("div", { key: 'e2079dd9e28daf904057106167cd368de906daba', class: "co-number-field__row", part: "row" }, !this.hideControls && (index.h("button", { key: '7ff22639f594e7a008f02962ed7782b84654b78e', class: "co-number-field__btn co-number-field__btn--minus", type: "button", tabIndex: -1, disabled: !this.canDecrement, onClick: this.handleDecrement, "aria-label": "Decrease" }, index.h("co-icon", { key: '61aafdc7c083ea39b9b65b87d267df63b91cb8d4', name: "minus", size: 16 }))), index.h("input", { key: 'e088482da6c9fe1e02abe5bcae2611f157be83ed', ref: el => (this.inputEl = el), class: "co-number-field__input", type: "text", inputMode: "decimal",
415
436
  // Mismo guard `focused` que el @Watch: mientras el usuario edita, su
416
437
  // texto manda. Sin esto, el re-render que dispara emitValue repinta
417
438
  // el input desde el NÚMERO y se come el texto en construcción
418
439
  // ("34,640.00" pegado quedaba "34,640"; un "12." perdería el punto).
419
- value: this.focused && this.inputEl ? this.inputEl.value : this.displayValue, placeholder: this.placeholder, disabled: this.disabled, onInput: this.handleInput, onPaste: this.handlePaste, onFocus: this.handleFocus, onBlur: this.handleBlur, onKeyDown: this.handleKeyDown, part: "input" }), this.affixText && (index.h("span", { key: '56e8b3a225f2332f9c3974ec195b63b3681d5b09', class: "co-number-field__affix", "aria-hidden": "true" }, this.affixText)), this.clearable && !this.isEmpty && !this.disabled && (index.h("button", { key: 'ea8325f7097c5b0b87bd51554163d44bdfe379ff', class: "co-number-field__clear", type: "button", tabIndex: -1, onClick: this.handleClear, "aria-label": "Clear" }, index.h("co-icon", { key: 'c72d4e3a039752fbcf7cf4594421d24bc2f0570a', name: "x-circle", size: 16, weight: "fill" }))), index.h("slot", { key: '2a3dc1b5a3e22ade3db02389178dd4ae3b1d3295', name: "suffix" }), !this.hideControls && (index.h("button", { key: '3b9bf39d86c7aacb212576dc4cf4af548b56fbed', class: "co-number-field__btn co-number-field__btn--plus", type: "button", tabIndex: -1, disabled: !this.canIncrement, onClick: this.handleIncrement, "aria-label": "Increase" }, index.h("co-icon", { key: '1655aaca9e66b51c0d97fc128c132326d3c740ad', name: "plus", size: 16 })))), this.helperText && (index.h("div", { key: '397b37569cabdf68072d870b5e5781f7d39da8fe', class: `co-number-field__helper co-number-field__helper--${this.status}` }, this.statusIcon && index.h("co-icon", { key: 'b574fddca9813af3e208ea3e9258480a992fd4f2', name: this.statusIcon, size: 14, weight: "fill", class: "co-number-field__helper-icon" }), index.h("span", { key: 'd17a39a82108f12100dee523d7754b50f147bb63', class: "co-number-field__helper-text" }, this.helperText)))));
440
+ value: this.focused && this.inputEl ? this.inputEl.value : this.displayValue, placeholder: this.placeholder, disabled: this.disabled, onInput: this.handleInput, onPaste: this.handlePaste, onFocus: this.handleFocus, onBlur: this.handleBlur, onKeyDown: this.handleKeyDown, part: "input" }), this.affixText && (index.h("span", { key: '2a7bc2f465844ccb9db7017c1b3782625e784c05', class: "co-number-field__affix", "aria-hidden": "true" }, this.affixText)), this.clearable && !this.isEmpty && !this.disabled && (index.h("button", { key: '06e40ddc080297db49823f17eeeaba313f68fafd', class: "co-number-field__clear", type: "button", tabIndex: -1, onClick: this.handleClear, "aria-label": "Clear" }, index.h("co-icon", { key: 'f69d2f6bf5cb4cd6731d55f873fd03d21eb0f42e', name: "x-circle", size: 16, weight: "fill" }))), index.h("slot", { key: 'd16df6468bf0f514ce183e36d555b5e8f97ff969', name: "suffix" }), !this.hideControls && (index.h("button", { key: '523f5cbda86bbe3b69d08aedc9eb678d6b218cb7', class: "co-number-field__btn co-number-field__btn--plus", type: "button", tabIndex: -1, disabled: !this.canIncrement, onClick: this.handleIncrement, "aria-label": "Increase" }, index.h("co-icon", { key: '7f546fa2885ebecc3f16129bdc815a1cea57f53f', name: "plus", size: 16 })))), this.helperText && (index.h("div", { key: 'e807bbe38823ee148e227baaac1feafd85f93c49', class: `co-number-field__helper co-number-field__helper--${this.status}` }, this.statusIcon && index.h("co-icon", { key: 'e8bc48908cb9e53952e0bffeb898d0a4b0d2fef3', name: this.statusIcon, size: 14, weight: "fill", class: "co-number-field__helper-icon" }), index.h("span", { key: 'c00dc9f3bd966988f6a2546a360ede337de383e4', class: "co-number-field__helper-text" }, this.helperText)))));
420
441
  }
421
442
  get el() { return index.getElement(this); }
422
443
  static get watchers() { return {
@@ -3,6 +3,19 @@
3
3
  var index = require('./index-MDAnKsze.js');
4
4
  var overlayAfterClose = require('./overlayAfterClose-BdeXrhVY.js');
5
5
 
6
+ /**
7
+ * ¿Un `click` sobre el fondo del overlay es un gesto de cierre?
8
+ *
9
+ * El navegador despacha `click` al ANCESTRO COMÚN de donde empezó y donde
10
+ * terminó la pulsación: seleccionar texto dentro de un modal y soltar fuera
11
+ * producía un `click` en el fondo y cerraba el modal (con lo editado adentro).
12
+ * Solo cuenta si la pulsación entera —down, up y click— ocurrió sobre el MISMO
13
+ * elemento (`composedPath()[0]`, para ver a través de shadow roots).
14
+ */
15
+ function isBackdropDismiss(downTarget, upTarget, clickTarget) {
16
+ return downTarget !== null && downTarget === upTarget && upTarget === clickTarget;
17
+ }
18
+
6
19
  // focusTrap.ts
7
20
  //
8
21
  // Focus-trap helpers for co-overlay. The Tab-cycling decision is a PURE function
@@ -113,8 +126,26 @@ const CoOverlay = class {
113
126
  this.closeOnEscape = false;
114
127
  /** Whether THIS instance currently holds a scroll lock (prevents double-count). */
115
128
  this.hasLock = false;
116
- this.handleClick = () => {
117
- this.coClose.emit();
129
+ // Origen de la pulsación en curso (ver isBackdropDismiss): un drag que
130
+ // empieza dentro del contenido y suelta en el fondo NO es un cierre.
131
+ this.pressDownTarget = null;
132
+ this.pressUpTarget = null;
133
+ this.handlePointerDown = (e) => {
134
+ var _a;
135
+ this.pressDownTarget = (_a = e.composedPath()[0]) !== null && _a !== void 0 ? _a : null;
136
+ this.pressUpTarget = null;
137
+ };
138
+ this.handlePointerUp = (e) => {
139
+ var _a;
140
+ this.pressUpTarget = (_a = e.composedPath()[0]) !== null && _a !== void 0 ? _a : null;
141
+ };
142
+ this.handleClick = (e) => {
143
+ var _a;
144
+ const dismiss = isBackdropDismiss(this.pressDownTarget, this.pressUpTarget, (_a = e.composedPath()[0]) !== null && _a !== void 0 ? _a : null);
145
+ this.pressDownTarget = null;
146
+ this.pressUpTarget = null;
147
+ if (dismiss)
148
+ this.coClose.emit();
118
149
  };
119
150
  this.handleTransitionEnd = (e) => {
120
151
  if (e.target !== this.overlayEl)
@@ -251,7 +282,7 @@ const CoOverlay = class {
251
282
  focusables[nextIndex].focus();
252
283
  }
253
284
  render() {
254
- return (index.h("div", { key: '4fafc87768eca581018ff578875b2362cf5297d2', class: { 'co-overlay': true, 'co-overlay--open': this.open }, part: "overlay", popover: "manual", tabindex: this.trapFocus ? -1 : undefined, ref: (el) => (this.overlayEl = el), onClick: this.handleClick, onTransitionEnd: this.handleTransitionEnd }, index.h("slot", { key: '2d18410bb6774701806101d38b6d41293b0e7ff9' })));
285
+ return (index.h("div", { key: '74051ac6a35eff0b9c873bafe2141b0a9486f83e', class: { 'co-overlay': true, 'co-overlay--open': this.open }, part: "overlay", popover: "manual", tabindex: this.trapFocus ? -1 : undefined, ref: (el) => (this.overlayEl = el), onPointerDown: this.handlePointerDown, onPointerUp: this.handlePointerUp, onClick: this.handleClick, onTransitionEnd: this.handleTransitionEnd }, index.h("slot", { key: '8ed7f244bfe88f3d38b9e1f6720b0a191529f6f1' })));
255
286
  }
256
287
  get el() { return index.getElement(this); }
257
288
  static get watchers() { return {
@@ -2,7 +2,7 @@
2
2
 
3
3
  var index = require('./index-MDAnKsze.js');
4
4
  var requiredMark = require('./requiredMark-D-t-IPN0.js');
5
- var normalizeText = require('./normalizeText-B-v-XPKf.js');
5
+ var normalizeText = require('./normalizeText-D9rlJWZa.js');
6
6
 
7
7
  /**
8
8
  * Dial codes sorted by name. Covers the full ITU-T E.164 assignment.
@@ -265,10 +265,10 @@ const CoPhoneField = class {
265
265
  }
266
266
  /** Country name with the matched substring wrapped for highlighting. */
267
267
  renderName(name) {
268
- const seg = this.searchQuery.trim() ? normalizeText.highlightMatch(name, this.searchQuery) : null;
269
- if (!seg)
268
+ const segs = this.searchQuery.trim() ? normalizeText.highlightSegments(name, this.searchQuery) : null;
269
+ if (!segs)
270
270
  return name;
271
- return [seg.pre, index.h("span", { class: "co-phone-field__match" }, seg.match), seg.post];
271
+ return segs.map((s) => (s.match ? index.h("span", { class: "co-phone-field__match" }, s.text) : s.text));
272
272
  }
273
273
  onValueChange(newVal) {
274
274
  if (!newVal) {
@@ -361,7 +361,7 @@ const CoPhoneField = class {
361
361
  render() {
362
362
  const entry = this.selectedEntry;
363
363
  const statusClass = this.status !== 'default' ? `co-phone-field--${this.status}` : '';
364
- return (index.h("div", { key: 'a9c32c0be0ebd40ed647e76522424eb7e5e9aa18', class: `co-phone-field co-phone-field--${this.size} ${statusClass} ${this.disabled ? 'co-phone-field--disabled' : ''}` }, this.label && (index.h("label", { key: '37178a06aab45e8254fd0a366758e5302f2eaa46', class: "co-phone-field__label" }, this.label, index.h(requiredMark.RequiredMark, { key: '03a342ae39b5f17ba154b5c41f38c68ed3b017ba', required: this.required }))), index.h("div", { key: '1ec715b8334d174369e2cf84c1599d98f99e0a46', class: "co-phone-field__container" }, index.h("button", { key: '4570d47ae1b5f29777ef83934f29238f41f39c72', type: "button", class: "co-phone-field__selector", disabled: this.disabled, onClick: () => this.handleToggleDropdown(), "aria-expanded": String(this.isOpen), "aria-haspopup": "listbox" }, entry ? (index.h("img", { class: "co-phone-field__flag", src: `https://flagcdn.com/w40/${entry.iso2.toLowerCase()}.png`, alt: entry.iso2 })) : (index.h("co-icon", { name: "phone", size: 16 })), index.h("span", { key: 'eeea700daa0921575451e84229f756a8b07ba2bc', class: "co-phone-field__dial-code" }, entry ? entry.dialCode : ''), index.h("span", { key: '8a255cbcdd177d2c3df85e70cd533977401b4331', class: "co-phone-field__chevron" }, index.h("co-icon", { key: 'b7b7f8ae9ff2faa4aced5387cbdcafbdca3ab850', name: "caret-down", size: 14 }))), index.h("input", { key: '5c22124cf3b89be951b241dc5414ecfaa914f311', class: "co-phone-field__input", type: "tel", placeholder: this.placeholder, value: this.numberPart, disabled: this.disabled, onInput: (e) => this.handleNumberInput(e) })), this.isOpen && (index.h("div", { key: '58a86dd712fff37ae8a15aa814ecffe68872c546', class: "co-phone-field__dropdown", role: "listbox" }, index.h("div", { key: '7641be732c29f0cb601b05a185ea10219fc45bae', class: "co-phone-field__search" }, index.h("input", { key: 'd77b2e9acb00dcf28babbc203b65692fb5b9c8e7', class: "co-phone-field__search-input", type: "text", placeholder: "Search country...", value: this.searchQuery, onInput: (e) => this.handleSearchInput(e), autoFocus: true })), index.h("div", { key: 'a80b7fbe6ac444f44ea802d8820b0dabff943885', class: "co-phone-field__options" }, this.filteredCountries.map((d) => (index.h("button", { type: "button", key: d.iso2, class: `co-phone-field__option ${d.iso2 === this.selectedIso2 ? 'co-phone-field__option--selected' : ''}`, role: "option", "aria-selected": d.iso2 === this.selectedIso2 ? 'true' : 'false', onClick: () => this.handleCountrySelect(d) }, index.h("img", { class: "co-phone-field__option-flag", src: `https://flagcdn.com/w40/${d.iso2.toLowerCase()}.png`, alt: d.iso2 }), index.h("span", { class: "co-phone-field__option-name" }, this.renderName(d.name)), index.h("span", { class: "co-phone-field__option-code" }, d.dialCode))))))), this.helperText && (index.h("div", { key: 'c24516916b7d78d89eb18d03c8b70363567db9cf', class: "co-phone-field__helper" }, this.statusIcon && (index.h("co-icon", { key: 'e76e608653f1b45c7904bbfe0325a2813fe6aff1', name: this.statusIcon, size: 14, weight: "fill", class: "co-phone-field__helper-icon" })), index.h("span", { key: 'b7f14cc4ad48df862eee0ba4b45e19fe29e26baa', class: "co-phone-field__helper-text" }, this.helperText)))));
364
+ return (index.h("div", { key: '007dbe9a20cd410cb818f512d9f698afba6e821f', class: `co-phone-field co-phone-field--${this.size} ${statusClass} ${this.disabled ? 'co-phone-field--disabled' : ''}` }, this.label && (index.h("label", { key: 'a4c5c1b7e10de3098f7f50d74a3ca8703d41f465', class: "co-phone-field__label" }, this.label, index.h(requiredMark.RequiredMark, { key: 'bcd04f54711067258d1270814141b4b81324ee21', required: this.required }))), index.h("div", { key: 'a04a6996610ccd5007c54f5728a1158c951c50e9', class: "co-phone-field__container" }, index.h("button", { key: '317348de58e74afb6f545749c83670ed92eb61bb', type: "button", class: "co-phone-field__selector", disabled: this.disabled, onClick: () => this.handleToggleDropdown(), "aria-expanded": String(this.isOpen), "aria-haspopup": "listbox" }, entry ? (index.h("img", { class: "co-phone-field__flag", src: `https://flagcdn.com/w40/${entry.iso2.toLowerCase()}.png`, alt: entry.iso2 })) : (index.h("co-icon", { name: "phone", size: 16 })), index.h("span", { key: '122cd3a7b4f363554410c7a37df3331b91e4bc81', class: "co-phone-field__dial-code" }, entry ? entry.dialCode : ''), index.h("span", { key: '3d3d8691ba489bbe093f99a6141323f2620fd6a8', class: "co-phone-field__chevron" }, index.h("co-icon", { key: 'adab28c8fb4f1d6838dd0e400494656d0bc50812', name: "caret-down", size: 14 }))), index.h("input", { key: '13214ef8043c4984fcab73e7971e836039d8b469', class: "co-phone-field__input", type: "tel", placeholder: this.placeholder, value: this.numberPart, disabled: this.disabled, onInput: (e) => this.handleNumberInput(e) })), this.isOpen && (index.h("div", { key: 'b993dff8a4ad5ef53b7f50849591310ec3df54f5', class: "co-phone-field__dropdown", role: "listbox" }, index.h("div", { key: '95db7d412dbb49ebebda43e7dc13b9f763f2e3e1', class: "co-phone-field__search" }, index.h("input", { key: 'cd97d9422f0b2ee04de398a4ddd38500664d3828', class: "co-phone-field__search-input", type: "text", placeholder: "Search country...", value: this.searchQuery, onInput: (e) => this.handleSearchInput(e), autoFocus: true })), index.h("div", { key: 'f0a8c53ed8a8a2e212f6bb2da2883c3efa7eab1e', class: "co-phone-field__options" }, this.filteredCountries.map((d) => (index.h("button", { type: "button", key: d.iso2, class: `co-phone-field__option ${d.iso2 === this.selectedIso2 ? 'co-phone-field__option--selected' : ''}`, role: "option", "aria-selected": d.iso2 === this.selectedIso2 ? 'true' : 'false', onClick: () => this.handleCountrySelect(d) }, index.h("img", { class: "co-phone-field__option-flag", src: `https://flagcdn.com/w40/${d.iso2.toLowerCase()}.png`, alt: d.iso2 }), index.h("span", { class: "co-phone-field__option-name" }, this.renderName(d.name)), index.h("span", { class: "co-phone-field__option-code" }, d.dialCode))))))), this.helperText && (index.h("div", { key: 'c2b32d573c9c94720a403280a84547ad08c8a686', class: "co-phone-field__helper" }, this.statusIcon && (index.h("co-icon", { key: '9199cc2660052d07753d3a12b28a3ff60724c3ea', name: this.statusIcon, size: 14, weight: "fill", class: "co-phone-field__helper-icon" })), index.h("span", { key: '27462c9a1cefa4aa4cf43ab19924c1f59a399b68', class: "co-phone-field__helper-text" }, this.helperText)))));
365
365
  }
366
366
  get host() { return index.getElement(this); }
367
367
  static get watchers() { return {
@@ -98,7 +98,7 @@ const CoSkeleton = class {
98
98
  const style = { width: this.width };
99
99
  if (this.height)
100
100
  style.height = this.height;
101
- return (index.h("div", { key: '45da8e989feca14de295c7b83bfd8f5e196a9734', class: {
101
+ return (index.h("div", { key: '744fb805939c99587c4d0b72355da54d1f5aad43', class: {
102
102
  'co-skeleton': true,
103
103
  [`co-skeleton--${this.variant}`]: true,
104
104
  'co-skeleton--revealed': this.revealed,
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
3
  var index = require('./index-MDAnKsze.js');
4
- var index$1 = require('./index-BYwrR87Z.js');
4
+ var index$1 = require('./index-2kMmd5-a.js');
5
5
  var richTextI18n = require('./richTextI18n-B28uAhh4.js');
6
6
  require('./purify.es-DX41ZWS2.js');
7
- require('./toolbar-config-BSGas-Wl.js');
7
+ require('./toolbar-config-CYACt9hh.js');
8
8
 
9
- const coRichTextEditorCss = () => `co-rich-text-editor{display:block;font-family:var(--co-font-family-primary);font-size:var(--co-font-size-14);letter-spacing:var(--co-font-letter-spacing-body)}.co-rich-text-editor{display:flex;flex-direction:column;gap:var(--co-spacing-sm2, 6px)}.co-rich-text-editor__labels{display:flex;align-items:center;justify-content:space-between;padding:0 var(--co-spacing-xs);gap:var(--co-spacing-sm2, 6px)}.co-rich-text-editor__label,.co-rich-text-editor__secondary-label{color:var(--co-semantic-text-secondary);font-size:var(--co-font-size-14);font-weight:400;line-height:1}.co-rich-text-editor__frame{display:flex;flex-direction:column;background:var(--co-semantic-surface-page);border:1px solid var(--co-semantic-border-field);border-radius:var(--co-border-radius-xs);transition:border-color var(--co-motion-duration-fast) var(--co-motion-ease-out), box-shadow var(--co-motion-duration-fast) var(--co-motion-ease-out);min-height:0;flex:1;position:relative;overflow:visible}.co-rich-text-editor__box{display:flex;flex-direction:column;min-height:0;flex:1;position:relative;overflow-y:auto;overflow-x:hidden}.co-rich-text-editor--flat .co-rich-text-editor__frame{background:transparent;border-color:transparent}.co-rich-text-editor--focused .co-rich-text-editor__frame{border-color:var(--co-semantic-border-focus, var(--co-color-base-negro, #1a1a1a));box-shadow:0 0 0 3px var(--co-semantic-border-focus-ring, rgba(37, 99, 235, 0.15))}.co-rich-text-editor--error .co-rich-text-editor__frame{border-color:var(--co-color-status-error)}.co-rich-text-editor--success .co-rich-text-editor__frame{border-color:var(--co-color-status-success)}.co-rich-text-editor--disabled .co-rich-text-editor__frame,.co-rich-text-editor--readonly .co-rich-text-editor__frame{opacity:0.7;cursor:not-allowed}.co-rich-text-editor--loading .co-rte-content{min-height:96px;background:linear-gradient(90deg, var(--co-semantic-surface-secondary) 0%, var(--co-semantic-surface-hover, rgba(0, 0, 0, 0.04)) 50%, var(--co-semantic-surface-secondary) 100%);background-size:200% 100%;animation:co-rte-skeleton 1.2s ease-in-out infinite}@keyframes co-rte-skeleton{0%{background-position:200% 0}100%{background-position:-200% 0}}.co-rich-text-editor__toolbar{position:relative;flex-shrink:0;z-index:60;border-top-left-radius:calc(var(--co-border-radius-xs) - 1px);border-top-right-radius:calc(var(--co-border-radius-xs) - 1px)}.co-rte-content{min-height:96px;color:var(--co-semantic-text-default);flex:1 0 auto;display:flex;flex-direction:column}.co-rte-content .ProseMirror{outline:none;flex:1 0 auto;line-height:1.5;padding:var(--co-spacing-md);box-sizing:border-box}.co-rte-content .ProseMirror p{margin:0 0 var(--co-spacing-sm) 0}.co-rte-content .ProseMirror p:last-child{margin-bottom:0}.co-rte-content .ProseMirror>p{margin-bottom:var(--co-spacing-sm) !important}.co-rte-content .ProseMirror>p:last-child{margin-bottom:0 !important}.co-rte-content .ProseMirror [style*="text-align: justify"]{text-align-last:left}.co-rte-content .ProseMirror [style*="text-align: center"]{text-align:center}.co-rte-content .ProseMirror [style*="text-align: right"]{text-align:right}.co-rte-content .ProseMirror h1,.co-rte-content .ProseMirror h2,.co-rte-content .ProseMirror h3,.co-rte-content .ProseMirror h4{margin:var(--co-spacing-md) 0 var(--co-spacing-sm);font-weight:600;line-height:1.3}.co-rte-content .ProseMirror h1{font-size:var(--co-font-size-28, 28px)}.co-rte-content .ProseMirror h2{font-size:var(--co-font-size-20, 20px)}.co-rte-content .ProseMirror h3{font-size:var(--co-font-size-16, 16px)}.co-rte-content .ProseMirror ul,.co-rte-content .ProseMirror ol{padding-left:var(--co-spacing-xl);margin:0 0 var(--co-spacing-sm) 0}.co-rte-content .ProseMirror ul[data-type="taskList"]{list-style:none;padding-left:0;margin:0 0 var(--co-spacing-sm) 0}.co-rte-content .ProseMirror ul[data-type="taskList"] li{display:flex;align-items:flex-start;gap:var(--co-spacing-sm, 8px)}.co-rte-content .ProseMirror ul[data-type="taskList"] li>label{flex:0 0 auto;margin-top:0.15em;user-select:none}.co-rte-content .ProseMirror ul[data-type="taskList"] li>div{flex:1 1 auto;min-width:0}.co-rte-content .ProseMirror ul[data-type="taskList"] li>div>p{margin:0}.co-rte-content .ProseMirror ul[data-type="taskList"] input[type="checkbox"]{width:16px;height:16px;cursor:pointer;accent-color:var(--co-color-base-negro, #1a1a1a)}.co-rte-content .ProseMirror ul[data-type="taskList"][data-variant="strike"] li[data-checked="true"]>div{text-decoration:line-through;color:var(--co-semantic-text-muted, #999)}.co-rte-content .ProseMirror ul[data-type="taskList"][data-variant="plain"] li[data-checked="true"]>div{text-decoration:none}.co-rte-content .ProseMirror blockquote{border-left:3px solid var(--co-semantic-border-default, var(--co-semantic-border-subtle));padding-left:var(--co-spacing-md);margin:0 0 var(--co-spacing-sm) 0;color:var(--co-semantic-text-secondary)}.co-rte-content .ProseMirror a{color:var(--co-color-base-negro, #1a1a1a);text-decoration:underline;text-underline-offset:2px}.co-rte-content .ProseMirror img{max-width:100%;height:auto;border-radius:var(--co-border-radius-xs);margin:var(--co-spacing-sm) 0;cursor:default;-webkit-user-drag:none;user-select:none}.co-rte-content .ProseMirror img.ProseMirror-selectednode{outline:2px solid var(--co-color-base-negro, #1a1a1a)}.co-rte-content [data-resize-container].ProseMirror-selectednode{outline:2px solid var(--co-color-base-negro, #1a1a1a);outline-offset:0px;border-radius:0}.co-rte-content [data-resize-container]{position:relative;display:inline-block;width:fit-content;max-width:100%;margin:var(--co-spacing-sm) 0;line-height:0}.co-rte-content [data-resize-container][data-resize-state="true"]{outline:2px solid var(--co-color-base-negro, #1a1a1a);outline-offset:0px;border-radius:0}.co-rte-content [data-resize-wrapper]{position:relative;display:inline-block;line-height:0}.co-rte-content [data-resize-handle]{width:10px;height:10px;background:var(--co-color-base-negro, #1a1a1a);border:1.5px solid #fff;border-radius:50%;box-shadow:0 0 2px rgba(0, 0, 0, 0.3);z-index:5;opacity:0;pointer-events:none}.co-rte-content [data-resize-container][data-resize-state="true"] [data-resize-handle],.co-rte-content [data-resize-container].ProseMirror-selectednode [data-resize-handle]{opacity:1;pointer-events:auto}.co-rte-content [data-resize-handle="top-left"]{cursor:nw-resize}.co-rte-content [data-resize-handle="top-right"]{cursor:ne-resize}.co-rte-content [data-resize-handle="bottom-left"]{cursor:sw-resize}.co-rte-content [data-resize-handle="bottom-right"]{cursor:se-resize}.co-rte-content [data-resize-handle="top"],.co-rte-content [data-resize-handle="bottom"]{width:30px;height:6px;border-radius:3px;left:50% !important;transform:translateX(-50%)}.co-rte-content [data-resize-handle="top"]{cursor:n-resize}.co-rte-content [data-resize-handle="bottom"]{cursor:s-resize}.co-rte-content [data-resize-handle="left"],.co-rte-content [data-resize-handle="right"]{width:6px;height:30px;border-radius:3px;top:50% !important;transform:translateY(-50%)}.co-rte-content [data-resize-handle="left"]{cursor:w-resize}.co-rte-content [data-resize-handle="right"]{cursor:e-resize}.co-rte-content [data-resize-container] img{max-width:100%;display:block;border-radius:0;margin:0}.co-rte-content .ProseMirror hr{border:none;border-top:1px solid var(--co-semantic-border-default, #e0e0e0);margin:var(--co-spacing-lg) 0}.co-rte-content .ProseMirror code{font-family:var(--co-font-family-mono);font-size:0.9em;background:var(--co-semantic-surface-hover, rgba(0, 0, 0, 0.06));padding:0.1em 0.3em;border-radius:var(--co-border-radius-xxs)}.co-rte-content .ProseMirror pre{font-family:var(--co-font-family-mono);font-size:0.9em;background:var(--co-semantic-surface-hover, rgba(0, 0, 0, 0.06));padding:var(--co-spacing-md);border-radius:var(--co-border-radius-xs);overflow-x:auto;margin:var(--co-spacing-sm) 0}.co-rte-content .ProseMirror pre code{background:none;padding:0;border-radius:0}.co-rte-content .ProseMirror p.is-editor-empty:first-child::before{content:attr(data-placeholder);color:var(--co-semantic-text-muted);float:left;height:0;pointer-events:none}.co-rte-content .co-rte-variable,.co-rte-content .co-rte-mention{display:inline-block;padding:0.05em 0.4em;border-radius:var(--co-border-radius-xxs);background:var(--co-color-base-negro, #1a1a1a);color:var(--co-color-base-blanco, #fff);font-size:0.9em;white-space:nowrap}.co-rte-content .co-rte-mention{background:var(--co-color-azul-200);color:var(--co-color-azul-800)}.co-rich-text-editor__footer{display:flex;align-items:center;justify-content:space-between;gap:var(--co-spacing-sm);padding:0 var(--co-spacing-xs);min-height:0}.co-rich-text-editor__helper{display:flex;align-items:center;gap:var(--co-spacing-xs);color:var(--co-semantic-text-secondary);font-size:var(--co-font-size-12, 12px)}.co-rich-text-editor__helper--error{color:var(--co-color-status-error)}.co-rich-text-editor__helper--success{color:var(--co-color-status-success)}.co-rich-text-editor__count{margin-left:auto;color:var(--co-semantic-text-muted);font-size:var(--co-font-size-12, 12px)}.co-rte-bubble.co-rte-bubble--suppressed{display:none !important}.co-rte-bubble{position:absolute;z-index:50;display:flex;flex-direction:row;align-items:center;gap:2px;padding:var(--co-spacing-xs, 4px) var(--co-spacing-sm, 8px);background:var(--co-semantic-surface-secondary, #fff);border:1px solid var(--co-semantic-border-default, #e0e0e0);border-radius:var(--co-border-radius-xs, 8px);box-shadow:0 4px 16px rgba(0, 0, 0, 0.12);user-select:none;white-space:nowrap;max-width:100%;box-sizing:border-box;flex-wrap:wrap}.co-rte-bubble__drag-handle{display:flex;align-items:center;justify-content:center;cursor:grab;color:var(--co-semantic-text-muted, #999);width:18px;height:28px;margin:0 2px 0 0;flex-shrink:0}.co-rte-bubble__drag-handle:hover{color:var(--co-semantic-text-secondary, #555)}.co-rte-bubble__drag-handle:active{cursor:grabbing}.co-rte-bubble__row{display:flex;align-items:center;gap:2px;flex-wrap:wrap;max-width:100%;min-width:0}.co-rte-bubble__btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:var(--co-border-radius-xxs, 4px);background:transparent;color:var(--co-semantic-text-default, #333);cursor:pointer}.co-rte-bubble__btn:hover:not(.co-rte-bubble__btn--active){background:var(--co-semantic-surface-hover, rgba(0, 0, 0, 0.06))}.co-rte-bubble__btn--active{background:var(--co-color-base-negro, #1a1a1a);color:var(--co-color-base-blanco, #fff)}.co-rte-bubble__btn--active:hover{background:var(--co-color-base-negro, #333)}.co-rte-bubble__sep{display:inline-block;width:1px;height:18px;margin:0 4px;background:var(--co-semantic-border-default, rgba(0, 0, 0, 0.12));flex-shrink:0}.co-rte-bubble__select{position:relative}.co-rte-bubble__select-trigger{display:flex;align-items:center;gap:2px;height:28px;padding:0 6px;border:1px solid transparent;border-radius:var(--co-border-radius-xxs, 4px);background:transparent;color:var(--co-semantic-text-default, #333);font-family:var(--co-font-family-primary);font-size:11px;cursor:pointer;white-space:nowrap;transition:background var(--co-motion-duration-fast), border-color var(--co-motion-duration-fast)}.co-rte-bubble__select-trigger:hover{background:var(--co-semantic-surface-hover, #f5f5f5);border-color:var(--co-semantic-border-default, #e0e0e0)}.co-rte-bubble__select-label{max-width:72px;overflow:hidden;text-overflow:ellipsis}.co-rte-bubble__select--font .co-rte-bubble__select-label{max-width:110px}.co-rte-bubble__select-dropdown{position:absolute;bottom:100%;left:0;z-index:120;min-width:100px;max-height:260px;overflow-y:auto;padding:var(--co-spacing-xxs, 2px);background:var(--co-semantic-surface-secondary, #fff);border:1px solid var(--co-semantic-border-default, #e0e0e0);border-radius:var(--co-border-radius-xxs, 4px);box-shadow:0 4px 16px rgba(0, 0, 0, 0.12);margin-bottom:4px;white-space:normal}.co-rte-bubble__select-dropdown[data-position="above"]{bottom:100%;top:auto;margin-bottom:4px;margin-top:0}.co-rte-bubble__select-dropdown[data-position="below"]{top:100%;bottom:auto;margin-top:4px;margin-bottom:0}.co-rte-bubble__select-option{display:block;width:100%;padding:4px 8px;border:none;border-radius:3px;background:transparent;color:var(--co-semantic-text-default, #333);font-family:var(--co-font-family-primary);font-size:12px;text-align:left;cursor:pointer;white-space:nowrap}.co-rte-bubble__select-option:hover{background:var(--co-semantic-surface-hover, #f5f5f5)}.co-rte-bubble__select-dropdown--font{min-width:200px;max-height:320px;overflow:hidden;overflow-y:auto;display:flex;flex-direction:column;white-space:normal}.co-rte-bubble__font-search{padding:6px 6px 4px;flex-shrink:0}.co-rte-bubble__font-search-input{width:100%;padding:4px 8px;border:1px solid var(--co-semantic-border-default, #ccc);border-radius:4px;background:var(--co-semantic-surface-secondary, #fff);color:var(--co-semantic-text-default, #333);font-family:var(--co-font-family-primary);font-size:12px;outline:none;box-sizing:border-box}.co-rte-bubble__font-search-input:focus{border-color:var(--co-color-base-negro, #1a1a1a)}.co-rte-bubble__font-list{max-height:260px;overflow-y:auto;padding:0 var(--co-spacing-xxs, 2px) var(--co-spacing-xxs, 2px)}.co-rte-bubble__font-section-header{padding:6px 8px 2px;font-size:11px;font-weight:600;color:var(--co-semantic-text-muted, #888);text-transform:uppercase;letter-spacing:0.5px}.co-rte-bubble__font-empty{padding:12px 8px;text-align:center;color:var(--co-semantic-text-muted, #888);font-size:12px}.co-rte-bubble__color{position:relative}.co-rte-bubble__color-dropdown{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);z-index:120;width:224px;padding:var(--co-spacing-sm, 8px);background:var(--co-semantic-surface-secondary, #fff);border:1px solid var(--co-semantic-border-default, #e0e0e0);border-radius:var(--co-border-radius-xs, 8px);box-shadow:0 4px 16px rgba(0, 0, 0, 0.12);margin-bottom:4px;white-space:normal;max-width:calc(100vw - 16px)}.co-rte-bubble__color-dropdown[data-position="above"]{bottom:100%;top:auto;margin-bottom:4px;margin-top:0}.co-rte-bubble__color-dropdown[data-position="below"]{top:100%;bottom:auto;margin-top:4px;margin-bottom:0}.co-rte-bubble__color-grid{display:grid;grid-template-columns:repeat(10, 1fr);gap:2px}.co-rte-bubble__color-swatch{width:20px;height:20px;padding:0;border:none;border-radius:3px;cursor:pointer;transition:transform var(--co-motion-duration-fast), box-shadow var(--co-motion-duration-fast)}.co-rte-bubble__color-swatch:hover{transform:scale(1.2);box-shadow:0 0 0 2px var(--co-color-base-negro, #1a1a1a)}.co-rte-bubble__color-hex{display:flex;align-items:center;gap:4px;margin-top:6px}.co-rte-bubble__color-hex-input{width:100%;padding:3px 6px;border:1px solid var(--co-semantic-border-default, #ccc);border-radius:3px;background:var(--co-semantic-surface-secondary, #fff);color:var(--co-semantic-text-default, #333);font-family:var(--co-font-family-mono, monospace);font-size:11px;outline:none}.co-rte-bubble__color-hex-input:focus{border-color:var(--co-color-base-negro, #1a1a1a)}.co-rte-bubble__color-clear{display:flex;align-items:center;gap:4px;width:100%;padding:3px 6px;margin-top:4px;border:none;background:transparent;color:var(--co-semantic-text-secondary, #666);font-family:var(--co-font-family-primary);font-size:11px;cursor:pointer;border-radius:3px}.co-rte-bubble__color-clear:hover{background:var(--co-semantic-surface-hover, #f5f5f5)}.co-rte-bubble__link-form{display:flex;align-items:center;gap:4px;margin-left:4px}.co-rte-bubble__link-input{width:160px;padding:3px 8px;border:1px solid var(--co-semantic-border-default, #ccc);border-radius:4px;background:var(--co-semantic-surface-secondary, #fff);color:var(--co-semantic-text-default, #333);font-family:var(--co-font-family-primary);font-size:12px;outline:none}.co-rte-bubble__link-input::placeholder{color:var(--co-semantic-text-muted, #999)}.co-rte-bubble__link-input:focus{border-color:var(--co-color-base-negro, #1a1a1a);box-shadow:0 0 0 2px rgba(0, 0, 0, 0.1)}.co-rte-bubble__link-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;border-radius:4px;background:var(--co-color-base-negro, #1a1a1a);color:#fff;cursor:pointer}.co-rte-bubble__link-btn:hover{opacity:0.9}.co-rte-bubble__link-unlink{background:var(--co-semantic-status-error, #aa2e1b)}.co-rte-bubble__panel{position:absolute;z-index:140;width:230px;background:var(--co-semantic-surface-secondary, #fff);border:1px solid var(--co-semantic-border-default, #e0e0e0);border-radius:var(--co-border-radius-xs, 8px);box-shadow:0 4px 16px rgba(0, 0, 0, 0.12);overflow:hidden;user-select:none}.co-rte-bubble__panel-header{display:flex;align-items:center;gap:4px;padding:6px 8px;border-bottom:1px solid var(--co-semantic-border-subtle, #eee)}.co-rte-bubble__panel-drag{cursor:grab;display:flex;align-items:center;justify-content:center;color:var(--co-semantic-text-muted, #999);flex-shrink:0}.co-rte-bubble__panel-drag:active{cursor:grabbing}.co-rte-bubble__panel-title{flex:1;font-size:12px;font-weight:600;color:var(--co-semantic-text-default, #333);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.co-rte-bubble__panel-close{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border:none;border-radius:3px;background:transparent;color:var(--co-semantic-text-muted, #999);cursor:pointer;flex-shrink:0}.co-rte-bubble__panel-close:hover{background:var(--co-semantic-surface-hover, rgba(0, 0, 0, 0.06));color:var(--co-semantic-text-default, #333)}.co-rte-bubble__panel-input-wrap{padding:6px 8px}.co-rte-bubble__panel-input{width:100%;padding:4px 8px;border:1px solid var(--co-semantic-border-default, #e0e0e0);border-radius:4px;font-size:12px;font-family:inherit;outline:none;box-sizing:border-box;background:var(--co-semantic-surface-secondary, #fff);color:var(--co-semantic-text-default, #333)}.co-rte-bubble__panel-input:focus{border-color:var(--co-color-base-negro, #1a1a1a)}.co-rte-bubble__panel-options{max-height:280px;overflow-y:auto;padding:2px 4px 4px}.co-rte-bubble__panel-option{display:block;width:100%;padding:5px 8px;border:none;border-radius:3px;background:transparent;cursor:pointer;text-align:left;font-family:inherit;color:var(--co-semantic-text-default, #333)}.co-rte-bubble__panel-option:hover{background:var(--co-semantic-surface-hover, #f5f5f5)}.co-rte-bubble__panel-sep{height:1px;background:var(--co-semantic-border-subtle, #eee);margin:4px 8px}.co-rte-bubble__panel-opt-row{display:flex;justify-content:space-between;align-items:center;width:100%}.co-rte-bubble__panel-opt-value{color:var(--co-semantic-text-muted, #999);font-size:11px;font-weight:400 !important;min-width:28px;text-align:right}.co-rte-bubble__panel[data-position="above"]{bottom:100%;top:auto;margin-bottom:4px}.co-rte-bubble__panel[data-position="below"]{top:100%;bottom:auto;margin-top:4px}.co-rte-bubble__overflow{position:relative}.co-rte-bubble__overflow-menu{position:absolute;bottom:100%;right:0;z-index:130;min-width:230px;padding:4px;background:var(--co-semantic-surface-secondary, #fff);border:1px solid var(--co-semantic-border-default, #e0e0e0);border-radius:var(--co-border-radius-xs, 8px);box-shadow:0 4px 16px rgba(0, 0, 0, 0.12);margin-bottom:4px}.co-rte-bubble__overflow-menu[data-position="below"]{top:100%;bottom:auto;margin-top:4px;margin-bottom:0}.co-rte-bubble__overflow-item{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;border:none;border-radius:4px;background:transparent;font-family:inherit;font-size:13px;color:var(--co-semantic-text-default, #333);cursor:pointer;text-align:left;white-space:nowrap}.co-rte-bubble__overflow-item:hover{background:var(--co-semantic-surface-hover, #f5f5f5)}.co-rte-bubble__overflow-item--active{background:var(--co-semantic-surface-hover, rgba(0, 0, 0, 0.06));color:var(--co-color-base-negro, #1a1a1a);font-weight:600}.co-rte-bubble__overflow-value{margin-left:auto;color:var(--co-semantic-text-muted, #999);font-size:11px}.co-rte-bubble__overflow-sep{height:1px;background:var(--co-semantic-border-subtle, #eee);margin:3px 8px}.co-rte-bubble__overflow-section-title{padding:6px 8px 2px;font-size:11px;font-weight:600;color:var(--co-semantic-text-muted, #888);letter-spacing:0.5px}.co-rte-bubble__overflow-item--danger{color:var(--co-color-status-error, #aa2e1b)}.co-rte-bubble__overflow-item--danger:hover{background:rgba(170, 46, 27, 0.06)}.co-rte-bubble__color-indicator{display:flex;flex-direction:column;align-items:center;gap:1px;line-height:1}.co-rte-bubble__color-letter{font-family:var(--co-font-family-primary);font-size:14px;font-weight:700;color:var(--co-semantic-text-default, #333);line-height:1}.co-rte-bubble__color-bar{width:14px;height:3px;border-radius:1px}.co-rte-content .callout{display:flex;gap:0.75rem;padding:1rem;border-radius:var(--co-border-radius-xs, 8px);border:2px solid;margin:1rem 0}.co-rte-content .callout--info{background:#eff6ff;border-color:#bfdbfe}.co-rte-content .callout--warning{background:#fffbeb;border-color:#fde68a}.co-rte-content .callout--success{background:#f0fdf4;border-color:#bbf7d0}.co-rte-content .callout--error{background:#fef2f2;border-color:#fecaca}.co-rte-content .callout__icon{flex-shrink:0;font-size:1.2em}.co-rte-content .callout__content{flex:1}.co-rte-content .callout__content p{margin:0}.co-rte-content table{border-collapse:collapse;table-layout:auto;width:100%;margin:1rem 0;overflow:hidden}.co-rte-content .tableWrapper{overflow-x:auto;max-width:100%}.co-rte-content td,.co-rte-content th{min-width:1em;border:1px solid var(--co-semantic-border-default, #e0e0e0);padding:0.5rem;vertical-align:top;box-sizing:border-box;position:relative}.co-rte-content th{font-weight:600;text-align:left;background-color:#e3e3e3;color:var(--co-semantic-text-default, #333)}.co-rte-content .ProseMirror table th{background-color:#e3e3e3}.co-rte-content .selectedCell{background:rgba(0, 0, 0, 0.06)}.co-rte-content .column-resize-handle{position:absolute;right:-2px;top:0;bottom:0;width:4px;background-color:var(--co-color-base-negro, #1a1a1a);pointer-events:none}.co-rte-content .ProseMirror.resize-cursor,.co-rte-content .ProseMirror.resize-cursor *{cursor:col-resize}.co-rte-content iframe{border-radius:var(--co-border-radius-xs, 8px);max-width:100%;aspect-ratio:16 / 9;width:100%;height:auto;display:block;margin:0}.co-rte-content .co-rte-embed{position:relative;display:block;max-width:100%;margin:1rem 0;line-height:0}.co-rte-content .co-rte-embed::before{content:'';position:absolute;inset:0;z-index:1}.co-rte-content .co-rte-embed.ProseMirror-selectednode,.co-rte-content .co-rte-embed--selected{outline:2px solid var(--co-color-base-negro, #1a1a1a);outline-offset:2px;border-radius:var(--co-border-radius-xs, 8px)}.co-rte-content .co-rte-embed__handle{position:absolute;width:12px;height:12px;background:var(--co-color-base-negro, #1a1a1a);border:1.5px solid #fff;border-radius:50%;box-shadow:0 0 2px rgba(0, 0, 0, 0.3);z-index:3;opacity:0;pointer-events:none}.co-rte-content .co-rte-embed.ProseMirror-selectednode .co-rte-embed__handle,.co-rte-content .co-rte-embed--selected .co-rte-embed__handle{opacity:1;pointer-events:auto}.co-rte-content .co-rte-embed__handle--bottom-right{right:-6px;bottom:-6px;cursor:nwse-resize}.co-rte-content .co-rte-embed__handle--bottom-left{left:-6px;bottom:-6px;cursor:nesw-resize}.co-rte-content .co-rte-embed--resizing{outline:2px dashed var(--co-color-base-negro, #1a1a1a);outline-offset:2px}.co-rich-text-editor--readonly .co-rte-embed::before,.co-rich-text-editor--disabled .co-rte-embed::before{display:none}.co-rich-text-editor--readonly .co-rte-embed.ProseMirror-selectednode,.co-rich-text-editor--readonly .co-rte-embed--selected,.co-rich-text-editor--disabled .co-rte-embed.ProseMirror-selectednode,.co-rich-text-editor--disabled .co-rte-embed--selected{outline:none !important}.co-rte-img-layout{position:absolute;z-index:50;display:flex;align-items:center;gap:2px;padding:4px;background:var(--co-semantic-surface-secondary, #fff);border:1px solid var(--co-semantic-border-default, #e0e0e0);border-radius:var(--co-border-radius-xs, 8px);box-shadow:0 2px 12px rgba(0, 0, 0, 0.12);pointer-events:auto}.co-rte-img-layout__btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:1px solid transparent;border-radius:var(--co-border-radius-xxs, 4px);background:transparent;color:var(--co-semantic-text-default, #333);cursor:pointer;transition:background var(--co-motion-duration-fast), border-color var(--co-motion-duration-fast)}.co-rte-img-layout__btn:hover{background:var(--co-semantic-surface-hover, rgba(0, 0, 0, 0.06))}.co-rte-img-layout__btn--active{background:var(--co-color-base-negro, #1a1a1a);color:var(--co-color-base-blanco, #fff)}.co-rte-img-layout__btn--active:hover{background:var(--co-color-base-negro, #333)}.co-rte-img-layout__btn[data-tooltip]{position:relative}.co-rte-img-layout__btn[data-tooltip]::after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);padding:4px 8px;background:var(--co-color-base-negro, #1a1a1a);color:var(--co-color-base-blanco, #fff);font-family:var(--co-font-family-primary);font-size:11px;font-weight:500;line-height:1.3;white-space:nowrap;border-radius:4px;pointer-events:none;opacity:0;transition:opacity var(--co-motion-duration-fast) var(--co-motion-ease-out);z-index:100}.co-rte-img-layout__btn[data-tooltip]:hover::after{opacity:1;transition-delay:0.3s}.co-rte-content [data-resize-container][data-image-layout="wrap-left"]{float:left;max-width:50%;margin:4px 16px 8px 0}.co-rte-content [data-resize-container][data-image-layout="wrap-right"]{float:right;max-width:50%;margin:4px 0 8px 16px}.co-rte-content [data-resize-container][data-image-layout="center"]{display:block;margin:12px auto}.co-rte-content [data-resize-container][data-image-layout="full-width"]{display:block;width:100%;margin:12px 0}.co-rte-content [data-resize-container][data-image-layout="full-width"] [data-resize-wrapper],.co-rte-content [data-resize-container][data-image-layout="full-width"] img{width:100%}@media (max-width: 768px){.co-rte-content [data-resize-container][data-image-layout="wrap-left"],.co-rte-content [data-resize-container][data-image-layout="wrap-right"]{float:none;max-width:100%;display:block;margin:12px 0}}.co-rte-content--site .ProseMirror{width:var(--co-rte-content-width, 80%);max-width:100%;margin:0 auto}@media (max-width: 768px){.co-rte-content--site .ProseMirror{width:100%}}.co-rich-text-editor--readonly [data-resize-handle],.co-rich-text-editor--disabled [data-resize-handle]{display:none !important}.co-rich-text-editor--readonly [data-resize-container].ProseMirror-selectednode,.co-rich-text-editor--disabled [data-resize-container].ProseMirror-selectednode,.co-rich-text-editor--readonly img.ProseMirror-selectednode,.co-rich-text-editor--disabled img.ProseMirror-selectednode{outline:none !important}`;
9
+ const coRichTextEditorCss = () => `co-rich-text-editor{display:block;font-family:var(--co-font-family-primary);font-size:var(--co-font-size-14);letter-spacing:var(--co-font-letter-spacing-body)}.co-rich-text-editor{display:flex;flex-direction:column;gap:var(--co-spacing-sm2, 6px)}.co-rich-text-editor__labels{display:flex;align-items:center;justify-content:space-between;padding:0 var(--co-spacing-xs);gap:var(--co-spacing-sm2, 6px)}.co-rich-text-editor__label,.co-rich-text-editor__secondary-label{color:var(--co-semantic-text-secondary);font-size:var(--co-font-size-14);font-weight:400;line-height:1}.co-rich-text-editor__frame{display:flex;flex-direction:column;background:var(--co-semantic-surface-page);border:1px solid var(--co-semantic-border-field);border-radius:var(--co-border-radius-xs);transition:border-color var(--co-motion-duration-fast) var(--co-motion-ease-out), box-shadow var(--co-motion-duration-fast) var(--co-motion-ease-out);min-height:0;flex:1;position:relative;overflow:visible}.co-rich-text-editor__box{display:flex;flex-direction:column;min-height:0;flex:1;position:relative;overflow-y:auto;overflow-x:hidden}.co-rich-text-editor--flat .co-rich-text-editor__frame{background:transparent;border-color:transparent}.co-rich-text-editor--focused .co-rich-text-editor__frame{border-color:var(--co-semantic-border-focus, var(--co-color-base-negro, #1a1a1a));box-shadow:0 0 0 3px var(--co-semantic-border-focus-ring, rgba(37, 99, 235, 0.15))}.co-rich-text-editor--error .co-rich-text-editor__frame{border-color:var(--co-color-status-error)}.co-rich-text-editor--success .co-rich-text-editor__frame{border-color:var(--co-color-status-success)}.co-rich-text-editor--disabled .co-rich-text-editor__frame,.co-rich-text-editor--readonly .co-rich-text-editor__frame{opacity:0.7;cursor:not-allowed}.co-rich-text-editor--loading .co-rte-content{min-height:96px;background:linear-gradient(90deg, var(--co-semantic-surface-secondary) 0%, var(--co-semantic-surface-hover, rgba(0, 0, 0, 0.04)) 50%, var(--co-semantic-surface-secondary) 100%);background-size:200% 100%;animation:co-rte-skeleton 1.2s ease-in-out infinite}@keyframes co-rte-skeleton{0%{background-position:200% 0}100%{background-position:-200% 0}}.co-rich-text-editor__toolbar{position:relative;flex-shrink:0;z-index:60;border-top-left-radius:calc(var(--co-border-radius-xs) - 1px);border-top-right-radius:calc(var(--co-border-radius-xs) - 1px)}.co-rich-text-editor__toolbar-row{display:flex;align-items:center;justify-content:space-between;gap:var(--co-spacing-md);flex-shrink:0;min-width:0;border-top:1px solid var(--co-semantic-border-subtle)}.co-rich-text-editor--toolbar-bottom .co-rich-text-editor__toolbar{border-top-left-radius:0;border-top-right-radius:0;min-width:0}.co-rte-content{min-height:96px;color:var(--co-semantic-text-default);flex:1 0 auto;display:flex;flex-direction:column}.co-rte-content .ProseMirror{outline:none;flex:1 0 auto;line-height:1.5;padding:var(--co-spacing-md);box-sizing:border-box}.co-rte-content .ProseMirror p{margin:0 0 var(--co-spacing-sm) 0}.co-rte-content .ProseMirror p:last-child{margin-bottom:0}.co-rte-content .ProseMirror>p{margin-bottom:var(--co-spacing-sm) !important}.co-rte-content .ProseMirror>p:last-child{margin-bottom:0 !important}.co-rte-content .ProseMirror [style*="text-align: justify"]{text-align-last:left}.co-rte-content .ProseMirror [style*="text-align: center"]{text-align:center}.co-rte-content .ProseMirror [style*="text-align: right"]{text-align:right}.co-rte-content .ProseMirror h1,.co-rte-content .ProseMirror h2,.co-rte-content .ProseMirror h3,.co-rte-content .ProseMirror h4{margin:var(--co-spacing-md) 0 var(--co-spacing-sm);font-weight:600;line-height:1.3}.co-rte-content .ProseMirror h1{font-size:var(--co-font-size-28, 28px)}.co-rte-content .ProseMirror h2{font-size:var(--co-font-size-20, 20px)}.co-rte-content .ProseMirror h3{font-size:var(--co-font-size-16, 16px)}.co-rte-content .ProseMirror ul,.co-rte-content .ProseMirror ol{padding-left:var(--co-spacing-xl);margin:0 0 var(--co-spacing-sm) 0}.co-rte-content .ProseMirror ul[data-type="taskList"]{list-style:none;padding-left:0;margin:0 0 var(--co-spacing-sm) 0}.co-rte-content .ProseMirror ul[data-type="taskList"] li{display:flex;align-items:flex-start;gap:var(--co-spacing-sm, 8px)}.co-rte-content .ProseMirror ul[data-type="taskList"] li>label{flex:0 0 auto;margin-top:0.15em;user-select:none}.co-rte-content .ProseMirror ul[data-type="taskList"] li>div{flex:1 1 auto;min-width:0}.co-rte-content .ProseMirror ul[data-type="taskList"] li>div>p{margin:0}.co-rte-content .ProseMirror ul[data-type="taskList"] input[type="checkbox"]{width:16px;height:16px;cursor:pointer;accent-color:var(--co-color-base-negro, #1a1a1a)}.co-rte-content .ProseMirror ul[data-type="taskList"][data-variant="strike"] li[data-checked="true"]>div{text-decoration:line-through;color:var(--co-semantic-text-muted, #999)}.co-rte-content .ProseMirror ul[data-type="taskList"][data-variant="plain"] li[data-checked="true"]>div{text-decoration:none}.co-rte-content .ProseMirror blockquote{border-left:3px solid var(--co-semantic-border-default, var(--co-semantic-border-subtle));padding-left:var(--co-spacing-md);margin:0 0 var(--co-spacing-sm) 0;color:var(--co-semantic-text-secondary)}.co-rte-content .ProseMirror a{color:var(--co-color-base-negro, #1a1a1a);text-decoration:underline;text-underline-offset:2px}.co-rte-content .ProseMirror img{max-width:100%;height:auto;border-radius:var(--co-border-radius-xs);margin:var(--co-spacing-sm) 0;cursor:default;-webkit-user-drag:none;user-select:none}.co-rte-content .ProseMirror img.ProseMirror-selectednode{outline:2px solid var(--co-color-base-negro, #1a1a1a)}.co-rte-content [data-resize-container].ProseMirror-selectednode{outline:2px solid var(--co-color-base-negro, #1a1a1a);outline-offset:0px;border-radius:0}.co-rte-content [data-resize-container]{position:relative;display:inline-block;width:fit-content;max-width:100%;margin:var(--co-spacing-sm) 0;line-height:0}.co-rte-content [data-resize-container][data-resize-state="true"]{outline:2px solid var(--co-color-base-negro, #1a1a1a);outline-offset:0px;border-radius:0}.co-rte-content [data-resize-wrapper]{position:relative;display:inline-block;line-height:0}.co-rte-content [data-resize-handle]{width:10px;height:10px;background:var(--co-color-base-negro, #1a1a1a);border:1.5px solid #fff;border-radius:50%;box-shadow:0 0 2px rgba(0, 0, 0, 0.3);z-index:5;opacity:0;pointer-events:none}.co-rte-content [data-resize-container][data-resize-state="true"] [data-resize-handle],.co-rte-content [data-resize-container].ProseMirror-selectednode [data-resize-handle]{opacity:1;pointer-events:auto}.co-rte-content [data-resize-handle="top-left"]{cursor:nw-resize}.co-rte-content [data-resize-handle="top-right"]{cursor:ne-resize}.co-rte-content [data-resize-handle="bottom-left"]{cursor:sw-resize}.co-rte-content [data-resize-handle="bottom-right"]{cursor:se-resize}.co-rte-content [data-resize-handle="top"],.co-rte-content [data-resize-handle="bottom"]{width:30px;height:6px;border-radius:3px;left:50% !important;transform:translateX(-50%)}.co-rte-content [data-resize-handle="top"]{cursor:n-resize}.co-rte-content [data-resize-handle="bottom"]{cursor:s-resize}.co-rte-content [data-resize-handle="left"],.co-rte-content [data-resize-handle="right"]{width:6px;height:30px;border-radius:3px;top:50% !important;transform:translateY(-50%)}.co-rte-content [data-resize-handle="left"]{cursor:w-resize}.co-rte-content [data-resize-handle="right"]{cursor:e-resize}.co-rte-content [data-resize-container] img{max-width:100%;display:block;border-radius:0;margin:0}.co-rte-content .ProseMirror hr{border:none;border-top:1px solid var(--co-semantic-border-default, #e0e0e0);margin:var(--co-spacing-lg) 0}.co-rte-content .ProseMirror code{font-family:var(--co-font-family-mono);font-size:0.9em;background:var(--co-semantic-surface-hover, rgba(0, 0, 0, 0.06));padding:0.1em 0.3em;border-radius:var(--co-border-radius-xxs)}.co-rte-content .ProseMirror pre{font-family:var(--co-font-family-mono);font-size:0.9em;background:var(--co-semantic-surface-hover, rgba(0, 0, 0, 0.06));padding:var(--co-spacing-md);border-radius:var(--co-border-radius-xs);overflow-x:auto;margin:var(--co-spacing-sm) 0}.co-rte-content .ProseMirror pre code{background:none;padding:0;border-radius:0}.co-rte-content .ProseMirror p.is-editor-empty:first-child::before{content:attr(data-placeholder);color:var(--co-semantic-text-muted);float:left;height:0;pointer-events:none}.co-rte-content .co-rte-variable,.co-rte-content .co-rte-mention{display:inline-block;padding:0.05em 0.4em;border-radius:var(--co-border-radius-xxs);background:var(--co-color-base-negro, #1a1a1a);color:var(--co-color-base-blanco, #fff);font-size:0.9em;white-space:nowrap}.co-rte-content .co-rte-mention{background:var(--co-color-azul-200);color:var(--co-color-azul-800)}.co-rich-text-editor__footer{display:flex;align-items:center;justify-content:space-between;gap:var(--co-spacing-sm);padding:0 var(--co-spacing-xs);min-height:0}.co-rich-text-editor__helper{display:flex;align-items:center;gap:var(--co-spacing-xs);color:var(--co-semantic-text-secondary);font-size:var(--co-font-size-12, 12px)}.co-rich-text-editor__helper--error{color:var(--co-color-status-error)}.co-rich-text-editor__helper--success{color:var(--co-color-status-success)}.co-rich-text-editor__count{margin-left:auto;color:var(--co-semantic-text-muted);font-size:var(--co-font-size-12, 12px)}.co-rte-bubble.co-rte-bubble--suppressed{display:none !important}.co-rte-bubble{position:absolute;z-index:50;display:flex;flex-direction:row;align-items:center;gap:2px;padding:var(--co-spacing-xs, 4px) var(--co-spacing-sm, 8px);background:var(--co-semantic-surface-secondary, #fff);border:1px solid var(--co-semantic-border-default, #e0e0e0);border-radius:var(--co-border-radius-xs, 8px);box-shadow:0 4px 16px rgba(0, 0, 0, 0.12);user-select:none;white-space:nowrap;max-width:100%;box-sizing:border-box;flex-wrap:wrap}.co-rte-bubble__drag-handle{display:flex;align-items:center;justify-content:center;cursor:grab;color:var(--co-semantic-text-muted, #999);width:18px;height:28px;margin:0 2px 0 0;flex-shrink:0}.co-rte-bubble__drag-handle:hover{color:var(--co-semantic-text-secondary, #555)}.co-rte-bubble__drag-handle:active{cursor:grabbing}.co-rte-bubble__row{display:flex;align-items:center;gap:2px;flex-wrap:wrap;max-width:100%;min-width:0}.co-rte-bubble__btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:var(--co-border-radius-xxs, 4px);background:transparent;color:var(--co-semantic-text-default, #333);cursor:pointer}.co-rte-bubble__btn:hover:not(.co-rte-bubble__btn--active){background:var(--co-semantic-surface-hover, rgba(0, 0, 0, 0.06))}.co-rte-bubble__btn--active{background:var(--co-color-base-negro, #1a1a1a);color:var(--co-color-base-blanco, #fff)}.co-rte-bubble__btn--active:hover{background:var(--co-color-base-negro, #333)}.co-rte-bubble__sep{display:inline-block;width:1px;height:18px;margin:0 4px;background:var(--co-semantic-border-default, rgba(0, 0, 0, 0.12));flex-shrink:0}.co-rte-bubble__select{position:relative}.co-rte-bubble__select-trigger{display:flex;align-items:center;gap:2px;height:28px;padding:0 6px;border:1px solid transparent;border-radius:var(--co-border-radius-xxs, 4px);background:transparent;color:var(--co-semantic-text-default, #333);font-family:var(--co-font-family-primary);font-size:11px;cursor:pointer;white-space:nowrap;transition:background var(--co-motion-duration-fast), border-color var(--co-motion-duration-fast)}.co-rte-bubble__select-trigger:hover{background:var(--co-semantic-surface-hover, #f5f5f5);border-color:var(--co-semantic-border-default, #e0e0e0)}.co-rte-bubble__select-label{max-width:72px;overflow:hidden;text-overflow:ellipsis}.co-rte-bubble__select--font .co-rte-bubble__select-label{max-width:110px}.co-rte-bubble__select-dropdown{position:absolute;bottom:100%;left:0;z-index:120;min-width:100px;max-height:260px;overflow-y:auto;padding:var(--co-spacing-xxs, 2px);background:var(--co-semantic-surface-secondary, #fff);border:1px solid var(--co-semantic-border-default, #e0e0e0);border-radius:var(--co-border-radius-xxs, 4px);box-shadow:0 4px 16px rgba(0, 0, 0, 0.12);margin-bottom:4px;white-space:normal}.co-rte-bubble__select-dropdown[data-position="above"]{bottom:100%;top:auto;margin-bottom:4px;margin-top:0}.co-rte-bubble__select-dropdown[data-position="below"]{top:100%;bottom:auto;margin-top:4px;margin-bottom:0}.co-rte-bubble__select-option{display:block;width:100%;padding:4px 8px;border:none;border-radius:3px;background:transparent;color:var(--co-semantic-text-default, #333);font-family:var(--co-font-family-primary);font-size:12px;text-align:left;cursor:pointer;white-space:nowrap}.co-rte-bubble__select-option:hover{background:var(--co-semantic-surface-hover, #f5f5f5)}.co-rte-bubble__select-dropdown--font{min-width:200px;max-height:320px;overflow:hidden;overflow-y:auto;display:flex;flex-direction:column;white-space:normal}.co-rte-bubble__font-search{padding:6px 6px 4px;flex-shrink:0}.co-rte-bubble__font-search-input{width:100%;padding:4px 8px;border:1px solid var(--co-semantic-border-default, #ccc);border-radius:4px;background:var(--co-semantic-surface-secondary, #fff);color:var(--co-semantic-text-default, #333);font-family:var(--co-font-family-primary);font-size:12px;outline:none;box-sizing:border-box}.co-rte-bubble__font-search-input:focus{border-color:var(--co-color-base-negro, #1a1a1a)}.co-rte-bubble__font-list{max-height:260px;overflow-y:auto;padding:0 var(--co-spacing-xxs, 2px) var(--co-spacing-xxs, 2px)}.co-rte-bubble__font-section-header{padding:6px 8px 2px;font-size:11px;font-weight:600;color:var(--co-semantic-text-muted, #888);text-transform:uppercase;letter-spacing:0.5px}.co-rte-bubble__font-empty{padding:12px 8px;text-align:center;color:var(--co-semantic-text-muted, #888);font-size:12px}.co-rte-bubble__color{position:relative}.co-rte-bubble__color-dropdown{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);z-index:120;width:224px;padding:var(--co-spacing-sm, 8px);background:var(--co-semantic-surface-secondary, #fff);border:1px solid var(--co-semantic-border-default, #e0e0e0);border-radius:var(--co-border-radius-xs, 8px);box-shadow:0 4px 16px rgba(0, 0, 0, 0.12);margin-bottom:4px;white-space:normal;max-width:calc(100vw - 16px)}.co-rte-bubble__color-dropdown[data-position="above"]{bottom:100%;top:auto;margin-bottom:4px;margin-top:0}.co-rte-bubble__color-dropdown[data-position="below"]{top:100%;bottom:auto;margin-top:4px;margin-bottom:0}.co-rte-bubble__color-grid{display:grid;grid-template-columns:repeat(10, 1fr);gap:2px}.co-rte-bubble__color-swatch{width:20px;height:20px;padding:0;border:none;border-radius:3px;cursor:pointer;transition:transform var(--co-motion-duration-fast), box-shadow var(--co-motion-duration-fast)}.co-rte-bubble__color-swatch:hover{transform:scale(1.2);box-shadow:0 0 0 2px var(--co-color-base-negro, #1a1a1a)}.co-rte-bubble__color-hex{display:flex;align-items:center;gap:4px;margin-top:6px}.co-rte-bubble__color-hex-input{width:100%;padding:3px 6px;border:1px solid var(--co-semantic-border-default, #ccc);border-radius:3px;background:var(--co-semantic-surface-secondary, #fff);color:var(--co-semantic-text-default, #333);font-family:var(--co-font-family-mono, monospace);font-size:11px;outline:none}.co-rte-bubble__color-hex-input:focus{border-color:var(--co-color-base-negro, #1a1a1a)}.co-rte-bubble__color-clear{display:flex;align-items:center;gap:4px;width:100%;padding:3px 6px;margin-top:4px;border:none;background:transparent;color:var(--co-semantic-text-secondary, #666);font-family:var(--co-font-family-primary);font-size:11px;cursor:pointer;border-radius:3px}.co-rte-bubble__color-clear:hover{background:var(--co-semantic-surface-hover, #f5f5f5)}.co-rte-bubble__link-form{display:flex;align-items:center;gap:4px;margin-left:4px}.co-rte-bubble__link-input{width:160px;padding:3px 8px;border:1px solid var(--co-semantic-border-default, #ccc);border-radius:4px;background:var(--co-semantic-surface-secondary, #fff);color:var(--co-semantic-text-default, #333);font-family:var(--co-font-family-primary);font-size:12px;outline:none}.co-rte-bubble__link-input::placeholder{color:var(--co-semantic-text-muted, #999)}.co-rte-bubble__link-input:focus{border-color:var(--co-color-base-negro, #1a1a1a);box-shadow:0 0 0 2px rgba(0, 0, 0, 0.1)}.co-rte-bubble__link-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;border-radius:4px;background:var(--co-color-base-negro, #1a1a1a);color:#fff;cursor:pointer}.co-rte-bubble__link-btn:hover{opacity:0.9}.co-rte-bubble__link-unlink{background:var(--co-semantic-status-error, #aa2e1b)}.co-rte-bubble__panel{position:absolute;z-index:140;width:230px;background:var(--co-semantic-surface-secondary, #fff);border:1px solid var(--co-semantic-border-default, #e0e0e0);border-radius:var(--co-border-radius-xs, 8px);box-shadow:0 4px 16px rgba(0, 0, 0, 0.12);overflow:hidden;user-select:none}.co-rte-bubble__panel-header{display:flex;align-items:center;gap:4px;padding:6px 8px;border-bottom:1px solid var(--co-semantic-border-subtle, #eee)}.co-rte-bubble__panel-drag{cursor:grab;display:flex;align-items:center;justify-content:center;color:var(--co-semantic-text-muted, #999);flex-shrink:0}.co-rte-bubble__panel-drag:active{cursor:grabbing}.co-rte-bubble__panel-title{flex:1;font-size:12px;font-weight:600;color:var(--co-semantic-text-default, #333);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.co-rte-bubble__panel-close{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border:none;border-radius:3px;background:transparent;color:var(--co-semantic-text-muted, #999);cursor:pointer;flex-shrink:0}.co-rte-bubble__panel-close:hover{background:var(--co-semantic-surface-hover, rgba(0, 0, 0, 0.06));color:var(--co-semantic-text-default, #333)}.co-rte-bubble__panel-input-wrap{padding:6px 8px}.co-rte-bubble__panel-input{width:100%;padding:4px 8px;border:1px solid var(--co-semantic-border-default, #e0e0e0);border-radius:4px;font-size:12px;font-family:inherit;outline:none;box-sizing:border-box;background:var(--co-semantic-surface-secondary, #fff);color:var(--co-semantic-text-default, #333)}.co-rte-bubble__panel-input:focus{border-color:var(--co-color-base-negro, #1a1a1a)}.co-rte-bubble__panel-options{max-height:280px;overflow-y:auto;padding:2px 4px 4px}.co-rte-bubble__panel-option{display:block;width:100%;padding:5px 8px;border:none;border-radius:3px;background:transparent;cursor:pointer;text-align:left;font-family:inherit;color:var(--co-semantic-text-default, #333)}.co-rte-bubble__panel-option:hover{background:var(--co-semantic-surface-hover, #f5f5f5)}.co-rte-bubble__panel-sep{height:1px;background:var(--co-semantic-border-subtle, #eee);margin:4px 8px}.co-rte-bubble__panel-opt-row{display:flex;justify-content:space-between;align-items:center;width:100%}.co-rte-bubble__panel-opt-value{color:var(--co-semantic-text-muted, #999);font-size:11px;font-weight:400 !important;min-width:28px;text-align:right}.co-rte-bubble__panel[data-position="above"]{bottom:100%;top:auto;margin-bottom:4px}.co-rte-bubble__panel[data-position="below"]{top:100%;bottom:auto;margin-top:4px}.co-rte-bubble__overflow{position:relative}.co-rte-bubble__overflow-menu{position:absolute;bottom:100%;right:0;z-index:130;min-width:230px;padding:4px;background:var(--co-semantic-surface-secondary, #fff);border:1px solid var(--co-semantic-border-default, #e0e0e0);border-radius:var(--co-border-radius-xs, 8px);box-shadow:0 4px 16px rgba(0, 0, 0, 0.12);margin-bottom:4px}.co-rte-bubble__overflow-menu[data-position="below"]{top:100%;bottom:auto;margin-top:4px;margin-bottom:0}.co-rte-bubble__overflow-item{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;border:none;border-radius:4px;background:transparent;font-family:inherit;font-size:13px;color:var(--co-semantic-text-default, #333);cursor:pointer;text-align:left;white-space:nowrap}.co-rte-bubble__overflow-item:hover{background:var(--co-semantic-surface-hover, #f5f5f5)}.co-rte-bubble__overflow-item--active{background:var(--co-semantic-surface-hover, rgba(0, 0, 0, 0.06));color:var(--co-color-base-negro, #1a1a1a);font-weight:600}.co-rte-bubble__overflow-value{margin-left:auto;color:var(--co-semantic-text-muted, #999);font-size:11px}.co-rte-bubble__overflow-sep{height:1px;background:var(--co-semantic-border-subtle, #eee);margin:3px 8px}.co-rte-bubble__overflow-section-title{padding:6px 8px 2px;font-size:11px;font-weight:600;color:var(--co-semantic-text-muted, #888);letter-spacing:0.5px}.co-rte-bubble__overflow-item--danger{color:var(--co-color-status-error, #aa2e1b)}.co-rte-bubble__overflow-item--danger:hover{background:rgba(170, 46, 27, 0.06)}.co-rte-bubble__color-indicator{display:flex;flex-direction:column;align-items:center;gap:1px;line-height:1}.co-rte-bubble__color-letter{font-family:var(--co-font-family-primary);font-size:14px;font-weight:700;color:var(--co-semantic-text-default, #333);line-height:1}.co-rte-bubble__color-bar{width:14px;height:3px;border-radius:1px}.co-rte-content .callout{display:flex;gap:0.75rem;padding:1rem;border-radius:var(--co-border-radius-xs, 8px);border:2px solid;margin:1rem 0}.co-rte-content .callout--info{background:#eff6ff;border-color:#bfdbfe}.co-rte-content .callout--warning{background:#fffbeb;border-color:#fde68a}.co-rte-content .callout--success{background:#f0fdf4;border-color:#bbf7d0}.co-rte-content .callout--error{background:#fef2f2;border-color:#fecaca}.co-rte-content .callout__icon{flex-shrink:0;font-size:1.2em}.co-rte-content .callout__content{flex:1}.co-rte-content .callout__content p{margin:0}.co-rte-content table{border-collapse:collapse;table-layout:auto;width:100%;margin:1rem 0;overflow:hidden}.co-rte-content .tableWrapper{overflow-x:auto;max-width:100%}.co-rte-content td,.co-rte-content th{min-width:1em;border:1px solid var(--co-semantic-border-default, #e0e0e0);padding:0.5rem;vertical-align:top;box-sizing:border-box;position:relative}.co-rte-content th{font-weight:600;text-align:left;background-color:#e3e3e3;color:var(--co-semantic-text-default, #333)}.co-rte-content .ProseMirror table th{background-color:#e3e3e3}.co-rte-content .selectedCell{background:rgba(0, 0, 0, 0.06)}.co-rte-content .column-resize-handle{position:absolute;right:-2px;top:0;bottom:0;width:4px;background-color:var(--co-color-base-negro, #1a1a1a);pointer-events:none}.co-rte-content .ProseMirror.resize-cursor,.co-rte-content .ProseMirror.resize-cursor *{cursor:col-resize}.co-rte-content iframe{border-radius:var(--co-border-radius-xs, 8px);max-width:100%;aspect-ratio:16 / 9;width:100%;height:auto;display:block;margin:0}.co-rte-content .co-rte-embed{position:relative;display:block;max-width:100%;margin:1rem 0;line-height:0}.co-rte-content .co-rte-embed::before{content:'';position:absolute;inset:0;z-index:1}.co-rte-content .co-rte-embed.ProseMirror-selectednode,.co-rte-content .co-rte-embed--selected{outline:2px solid var(--co-color-base-negro, #1a1a1a);outline-offset:2px;border-radius:var(--co-border-radius-xs, 8px)}.co-rte-content .co-rte-embed__handle{position:absolute;width:12px;height:12px;background:var(--co-color-base-negro, #1a1a1a);border:1.5px solid #fff;border-radius:50%;box-shadow:0 0 2px rgba(0, 0, 0, 0.3);z-index:3;opacity:0;pointer-events:none}.co-rte-content .co-rte-embed.ProseMirror-selectednode .co-rte-embed__handle,.co-rte-content .co-rte-embed--selected .co-rte-embed__handle{opacity:1;pointer-events:auto}.co-rte-content .co-rte-embed__handle--bottom-right{right:-6px;bottom:-6px;cursor:nwse-resize}.co-rte-content .co-rte-embed__handle--bottom-left{left:-6px;bottom:-6px;cursor:nesw-resize}.co-rte-content .co-rte-embed--resizing{outline:2px dashed var(--co-color-base-negro, #1a1a1a);outline-offset:2px}.co-rich-text-editor--readonly .co-rte-embed::before,.co-rich-text-editor--disabled .co-rte-embed::before{display:none}.co-rich-text-editor--readonly .co-rte-embed.ProseMirror-selectednode,.co-rich-text-editor--readonly .co-rte-embed--selected,.co-rich-text-editor--disabled .co-rte-embed.ProseMirror-selectednode,.co-rich-text-editor--disabled .co-rte-embed--selected{outline:none !important}.co-rte-img-layout{position:absolute;z-index:50;display:flex;align-items:center;gap:2px;padding:4px;background:var(--co-semantic-surface-secondary, #fff);border:1px solid var(--co-semantic-border-default, #e0e0e0);border-radius:var(--co-border-radius-xs, 8px);box-shadow:0 2px 12px rgba(0, 0, 0, 0.12);pointer-events:auto}.co-rte-img-layout__btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:1px solid transparent;border-radius:var(--co-border-radius-xxs, 4px);background:transparent;color:var(--co-semantic-text-default, #333);cursor:pointer;transition:background var(--co-motion-duration-fast), border-color var(--co-motion-duration-fast)}.co-rte-img-layout__btn:hover{background:var(--co-semantic-surface-hover, rgba(0, 0, 0, 0.06))}.co-rte-img-layout__btn--active{background:var(--co-color-base-negro, #1a1a1a);color:var(--co-color-base-blanco, #fff)}.co-rte-img-layout__btn--active:hover{background:var(--co-color-base-negro, #333)}.co-rte-img-layout__btn[data-tooltip]{position:relative}.co-rte-img-layout__btn[data-tooltip]::after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);padding:4px 8px;background:var(--co-color-base-negro, #1a1a1a);color:var(--co-color-base-blanco, #fff);font-family:var(--co-font-family-primary);font-size:11px;font-weight:500;line-height:1.3;white-space:nowrap;border-radius:4px;pointer-events:none;opacity:0;transition:opacity var(--co-motion-duration-fast) var(--co-motion-ease-out);z-index:100}.co-rte-img-layout__btn[data-tooltip]:hover::after{opacity:1;transition-delay:0.3s}.co-rte-content [data-resize-container][data-image-layout="wrap-left"]{float:left;max-width:50%;margin:4px 16px 8px 0}.co-rte-content [data-resize-container][data-image-layout="wrap-right"]{float:right;max-width:50%;margin:4px 0 8px 16px}.co-rte-content [data-resize-container][data-image-layout="center"]{display:block;margin:12px auto}.co-rte-content [data-resize-container][data-image-layout="full-width"]{display:block;width:100%;margin:12px 0}.co-rte-content [data-resize-container][data-image-layout="full-width"] [data-resize-wrapper],.co-rte-content [data-resize-container][data-image-layout="full-width"] img{width:100%}@media (max-width: 768px){.co-rte-content [data-resize-container][data-image-layout="wrap-left"],.co-rte-content [data-resize-container][data-image-layout="wrap-right"]{float:none;max-width:100%;display:block;margin:12px 0}}.co-rte-content--site .ProseMirror{width:var(--co-rte-content-width, 80%);max-width:100%;margin:0 auto}@media (max-width: 768px){.co-rte-content--site .ProseMirror{width:100%}}.co-rich-text-editor--readonly [data-resize-handle],.co-rich-text-editor--disabled [data-resize-handle]{display:none !important}.co-rich-text-editor--readonly [data-resize-container].ProseMirror-selectednode,.co-rich-text-editor--disabled [data-resize-container].ProseMirror-selectednode,.co-rich-text-editor--readonly img.ProseMirror-selectednode,.co-rich-text-editor--disabled img.ProseMirror-selectednode{outline:none !important}`;
10
10
 
11
11
  const CoRichTextEditor = class {
12
12
  constructor(hostRef) {
@@ -41,6 +41,13 @@ const CoRichTextEditor = class {
41
41
  this.autofocus = false;
42
42
  /** Toolbar layout. `auto` uses the preset default. */
43
43
  this.toolbar = 'auto';
44
+ /** Where the toolbar sits. `bottom` moves it under the content, into a row that also
45
+ * exposes a `toolbar-end` light-DOM slot (this component is `shadow: false`) for the
46
+ * consumer's footer (hint, submit). The row renders whenever the mode is `bottom`, even
47
+ * while the toolbar itself is hidden (disabled/readonly): keep the slotted child ALWAYS
48
+ * mounted and toggle its insides — a placeholder that comes and goes desyncs Stencil's
49
+ * slot relocation with the consumer's vdom. */
50
+ this.toolbarPosition = 'top';
44
51
  /** Passthrough: shows the toolbar attachment button (host owns the files). */
45
52
  this.attachmentsEnabled = false;
46
53
  /** BCP-47 locale for UI strings (e.g. 'en', 'es-CO', 'pt-BR'). Default English. */
@@ -300,7 +307,10 @@ const CoRichTextEditor = class {
300
307
  }
301
308
  }
302
309
  sanitizeHtml(html) {
303
- return this.rt.sanitize(html, this.preset);
310
+ // Con las MISMAS features que cargaron el schema: sin ellas, un <img> con
311
+ // `features.image` o los attrs de menciones en un preset que no los lleva en
312
+ // su whitelist base se podaban EN SILENCIO al emitir (2026-09-18).
313
+ return this.rt.sanitize(html, this.preset, this.parsedFeatures);
304
314
  }
305
315
  buildOutput(editor) {
306
316
  const empty = editor.isEmpty;
@@ -1986,12 +1996,19 @@ const CoRichTextEditor = class {
1986
1996
  const c = (((_a = dom === null || dom === void 0 ? void 0 : dom.closest) === null || _a === void 0 ? void 0 : _a.call(dom, '[data-resize-container]')) || dom);
1987
1997
  if (!c)
1988
1998
  return true;
1989
- c.dataset.imageLayout = node.attrs.imageLayout || 'inline';
1999
+ const layout = node.attrs.imageLayout || 'inline';
2000
+ c.dataset.imageLayout = layout;
1990
2001
  // Neutralise any absolute positioning baked by the old fixed-page model.
1991
2002
  c.style.position = '';
1992
2003
  c.style.left = '';
1993
2004
  c.style.top = '';
1994
2005
  c.style.zIndex = '';
2006
+ // The resize NodeView pins `display: inline-flex` INLINE on the container, which
2007
+ // beats the stylesheet's `display: block` for `center` / `full-width`: the editor
2008
+ // showed those images inline-left while the viewer (and the sent email) centred
2009
+ // them (2026-09-17). Clear it for block layouts so the CSS rule can apply; the
2010
+ // inline value is restored for flow layouts so the resize handles keep working.
2011
+ c.style.display = layout === 'center' || layout === 'full-width' ? '' : 'inline-flex';
1995
2012
  return true;
1996
2013
  });
1997
2014
  }
@@ -2033,7 +2050,12 @@ const CoRichTextEditor = class {
2033
2050
  render() {
2034
2051
  const showToolbar = this.resolvedToolbar !== 'none' && !this.readonly && !this.disabled;
2035
2052
  const showCount = this.showCharacterCount || this.maxLength != null;
2036
- return (index.h("div", { key: '3acc844eb53d8b3568d9f72e053363b674e9ba87', class: {
2053
+ const bottom = this.toolbarPosition === 'bottom';
2054
+ const toolbar = showToolbar && (index.h("co-rich-text-toolbar", { key: '0df30a57a843cbcd967ffd254ae0e54bee448902', class: "co-rich-text-editor__toolbar", part: "toolbar", variant: this.resolvedToolbar, position: this.toolbarPosition, disabled: this.disabled || this.readonly, locale: this.locale, attachmentsEnabled: this.attachmentsEnabled, attachmentAccept: this.attachmentAccept, onCoAttachmentsSelected: (e) => {
2055
+ e.stopPropagation();
2056
+ this.coAttachmentsSelected.emit(e.detail);
2057
+ }, ref: (el) => (this.toolbarEl = el) }));
2058
+ return (index.h("div", { key: '03be9df0d50d00a3cf889b3404c4f347626aa27c', class: {
2037
2059
  'co-rich-text-editor': true,
2038
2060
  'co-rich-text-editor--focused': this.hasFocus,
2039
2061
  'co-rich-text-editor--disabled': this.disabled,
@@ -2041,10 +2063,8 @@ const CoRichTextEditor = class {
2041
2063
  'co-rich-text-editor--loading': !this.ready,
2042
2064
  [`co-rich-text-editor--${this.status}`]: this.status !== 'default',
2043
2065
  'co-rich-text-editor--flat': this.variant === 'flat',
2044
- }, part: "wrapper" }, (this.label || this.secondaryLabel) && (index.h("div", { key: '53b6f47e19e422ab1c7b3e2d452f320495199c33', class: "co-rich-text-editor__labels" }, this.label && index.h("label", { key: 'c4c7eb0f49cbffc40cbd6cfd2a28848201623be9', class: "co-rich-text-editor__label", part: "label" }, this.label), this.secondaryLabel && (index.h("span", { key: '13663ac237f80b637ebf8df841ba52c4aa73a0f4', class: "co-rich-text-editor__secondary-label" }, this.secondaryLabel)))), index.h("div", { key: 'deb51dfabddb6ca08dc849f17f7850d635bee9e0', class: "co-rich-text-editor__frame" }, showToolbar && (index.h("co-rich-text-toolbar", { key: 'f62c2cf76ce791f0648bde14c30300c40417a22b', class: "co-rich-text-editor__toolbar", part: "toolbar", variant: this.resolvedToolbar, disabled: this.disabled || this.readonly, locale: this.locale, attachmentsEnabled: this.attachmentsEnabled, attachmentAccept: this.attachmentAccept, onCoAttachmentsSelected: (e) => {
2045
- e.stopPropagation();
2046
- this.coAttachmentsSelected.emit(e.detail);
2047
- }, ref: (el) => (this.toolbarEl = el) })), index.h("div", { key: 'af3c512a9ec4ed3dc62d83b8acbd13132c84f349', class: "co-rich-text-editor__box" }, index.h("div", { key: '3cacb60bf24487d631ec3e7153313b3ed940ea8e', class: "co-rte-content", part: "content", role: "textbox", "aria-multiline": "true", "aria-label": this.label, "aria-required": this.required ? 'true' : undefined, "aria-invalid": this.status === 'error' ? 'true' : undefined, ref: (el) => (this.contentEl = el) }))), index.h("div", { key: 'ac6511ee617587f29a55adeb5ef9840be559adcd', class: "co-rich-text-editor__footer" }, this.helperText && (index.h("div", { key: '8ae2c198a948e553d22111bad15d5119c7ee090f', class: `co-rich-text-editor__helper co-rich-text-editor__helper--${this.status}`, part: "helper" }, index.h("co-icon", { key: 'a764d0daeeaeee64fae43c2358cdad9ecfe89b13', name: this.helperIcon, size: 14 }), index.h("span", { key: 'c1efcf1a97de016fa78a408306696cc0f4b29f29' }, this.helperText))), showCount && (index.h("span", { key: 'c68f01b407e6b2aa17582b58244b147825729138', class: "co-rich-text-editor__count", ref: (el) => (this.charCountEl = el) }, this.charCount, this.maxLength != null ? ` / ${this.maxLength}` : '')))));
2066
+ 'co-rich-text-editor--toolbar-bottom': bottom,
2067
+ }, part: "wrapper" }, (this.label || this.secondaryLabel) && (index.h("div", { key: 'ae732219465a376af19e771e63589c955be37c4b', class: "co-rich-text-editor__labels" }, this.label && index.h("label", { key: 'd316724c4f4bcbf55adf582b8ad40c6c45fba407', class: "co-rich-text-editor__label", part: "label" }, this.label), this.secondaryLabel && (index.h("span", { key: '3cca63f6dfa2335dcd7122eb734205d4fd86a90f', class: "co-rich-text-editor__secondary-label" }, this.secondaryLabel)))), index.h("div", { key: '620bd101dd94684f7b2d533401717eeb7421593c', class: "co-rich-text-editor__frame" }, !bottom && toolbar, index.h("div", { key: 'a20f163022dd1c6e23dfc222786ddf0fc6f9b3ac', class: "co-rich-text-editor__box" }, index.h("div", { key: 'd678e095ae36610895cb466c1a15c722b46d4483', class: "co-rte-content", part: "content", role: "textbox", "aria-multiline": "true", "aria-label": this.label, "aria-required": this.required ? 'true' : undefined, "aria-invalid": this.status === 'error' ? 'true' : undefined, ref: (el) => (this.contentEl = el) })), index.h("slot", { key: '62127cb0a34e7f43ceadcb20ef724aba0524fa69', name: "content-end" }), bottom && (index.h("div", { key: '99d574e7cbb2a115a243288b770cb03f1892ff93', class: "co-rich-text-editor__toolbar-row", part: "toolbar-row" }, toolbar, index.h("slot", { key: 'b9b971930ddda8d118c8b6d204fad8d41d25468e', name: "toolbar-end" })))), index.h("div", { key: 'caafa3f153192eee6efa7679dafa376dea69b150', class: "co-rich-text-editor__footer" }, this.helperText && (index.h("div", { key: '8d2ab21ababab2c14c912f8ffd6945001fca62f7', class: `co-rich-text-editor__helper co-rich-text-editor__helper--${this.status}`, part: "helper" }, index.h("co-icon", { key: 'b60df4c320b9356a87df39179c75360f91e858bf', name: this.helperIcon, size: 14 }), index.h("span", { key: 'd56108257c9bba2332e434d6240f4f387e2411f6' }, this.helperText))), showCount && (index.h("span", { key: '7973c2996e24ec991115fe4932915a9aefc1b495', class: "co-rich-text-editor__count", ref: (el) => (this.charCountEl = el) }, this.charCount, this.maxLength != null ? ` / ${this.maxLength}` : '')))));
2048
2068
  }
2049
2069
  get el() { return index.getElement(this); }
2050
2070
  static get watchers() { return {