@prolibu-suite/cobalt-core 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (530) hide show
  1. package/custom-elements.json +1049 -52
  2. package/dist/cjs/co-accordion.cjs.entry.js +1 -1
  3. package/dist/cjs/co-app-shell.cjs.entry.js +1 -1
  4. package/dist/cjs/co-autocomplete.cjs.entry.js +3 -3
  5. package/dist/cjs/co-avatar-group.cjs.entry.js +3 -3
  6. package/dist/cjs/{co-tooltip.cjs.entry.js → co-avatar_2.cjs.entry.js} +95 -3
  7. package/dist/cjs/co-badge.cjs.entry.js +2 -2
  8. package/dist/cjs/co-bottom-sheet.cjs.entry.js +4 -4
  9. package/dist/cjs/co-breadcrumb-item.cjs.entry.js +3 -3
  10. package/dist/cjs/co-breadcrumb.cjs.entry.js +2 -2
  11. package/dist/cjs/co-button-group.cjs.entry.js +3 -3
  12. package/dist/cjs/co-button.cjs.entry.js +3 -3
  13. package/dist/cjs/co-calendar-month.cjs.entry.js +2 -2
  14. package/dist/cjs/co-calendar_3.cjs.entry.js +8 -8
  15. package/dist/cjs/co-card.cjs.entry.js +3 -3
  16. package/dist/cjs/co-carousel-item.cjs.entry.js +17 -0
  17. package/dist/cjs/co-carousel.cjs.entry.js +368 -0
  18. package/dist/cjs/co-checkbox-group.cjs.entry.js +1 -1
  19. package/dist/cjs/co-checkbox.cjs.entry.js +4 -4
  20. package/dist/cjs/co-chip_2.cjs.entry.js +5 -5
  21. package/dist/cjs/co-color-picker.cjs.entry.js +5 -5
  22. package/dist/cjs/co-column-picker.cjs.entry.js +3 -3
  23. package/dist/cjs/co-combobox.cjs.entry.js +3 -3
  24. package/dist/cjs/co-command-search.cjs.entry.js +1 -1
  25. package/dist/cjs/co-data-table-pagination.cjs.entry.js +5 -5
  26. package/dist/cjs/co-data-table.cjs.entry.js +2 -2
  27. package/dist/cjs/co-date-picker.cjs.entry.js +11 -4
  28. package/dist/cjs/co-date-range-picker.cjs.entry.js +9 -3
  29. package/dist/cjs/co-date-range.cjs.entry.js +2 -2
  30. package/dist/cjs/co-drive-card.cjs.entry.js +2 -2
  31. package/dist/cjs/co-drop-zone.cjs.entry.js +2 -2
  32. package/dist/cjs/co-empty-state.cjs.entry.js +3 -3
  33. package/dist/cjs/co-event-calendar.cjs.entry.js +3 -3
  34. package/dist/cjs/co-fab.cjs.entry.js +21 -6
  35. package/dist/cjs/co-file-field.cjs.entry.js +8 -8
  36. package/dist/cjs/co-file-type-tile.cjs.entry.js +3 -3
  37. package/dist/cjs/co-helper-text.cjs.entry.js +3 -3
  38. package/dist/cjs/co-icon-button.cjs.entry.js +2 -2
  39. package/dist/cjs/co-icon.cjs.entry.js +3 -3
  40. package/dist/cjs/co-input.cjs.entry.js +9 -3
  41. package/dist/cjs/co-json-field.cjs.entry.js +6 -6
  42. package/dist/cjs/co-lightbox.cjs.entry.js +33 -6
  43. package/dist/cjs/co-list-footer.cjs.entry.js +2 -2
  44. package/dist/cjs/co-list-item.cjs.entry.js +5 -5
  45. package/dist/cjs/co-loader.cjs.entry.js +1 -1
  46. package/dist/cjs/co-media-thumb.cjs.entry.js +3 -3
  47. package/dist/cjs/co-menu-divider.cjs.entry.js +2 -2
  48. package/dist/cjs/co-menu-item.cjs.entry.js +1 -1
  49. package/dist/cjs/co-menu.cjs.entry.js +2 -2
  50. package/dist/cjs/co-modal.cjs.entry.js +3 -3
  51. package/dist/cjs/co-navbar.cjs.entry.js +3 -3
  52. package/dist/cjs/co-number-field.cjs.entry.js +5 -5
  53. package/dist/cjs/co-overlay.cjs.entry.js +2 -2
  54. package/dist/cjs/co-page-header.cjs.entry.js +2 -2
  55. package/dist/cjs/co-phone-field.cjs.entry.js +4 -4
  56. package/dist/cjs/co-popover.cjs.entry.js +1 -1
  57. package/dist/cjs/co-progress-bar.cjs.entry.js +3 -3
  58. package/dist/cjs/co-progress-circle.cjs.entry.js +3 -3
  59. package/dist/cjs/co-radio-group.cjs.entry.js +1 -1
  60. package/dist/cjs/co-radio.cjs.entry.js +4 -4
  61. package/dist/cjs/co-rating.cjs.entry.js +4 -4
  62. package/dist/cjs/co-ref-field.cjs.entry.js +11 -5
  63. package/dist/cjs/co-rich-text-editor.cjs.entry.js +22 -7
  64. package/dist/cjs/co-rich-text-toolbar.cjs.entry.js +36 -4
  65. package/dist/cjs/co-rich-text-viewer.cjs.entry.js +36 -6
  66. package/dist/cjs/co-row.cjs.entry.js +3 -3
  67. package/dist/cjs/co-segmented-bar.cjs.entry.js +1 -1
  68. package/dist/cjs/co-select.cjs.entry.js +13 -7
  69. package/dist/cjs/co-separator.cjs.entry.js +2 -2
  70. package/dist/cjs/co-sidebar-nav.cjs.entry.js +1 -1
  71. package/dist/cjs/co-sidebar.cjs.entry.js +3 -3
  72. package/dist/cjs/co-skeleton.cjs.entry.js +2 -2
  73. package/dist/cjs/co-slider.cjs.entry.js +3 -3
  74. package/dist/cjs/co-switch.cjs.entry.js +5 -5
  75. package/dist/cjs/co-tab-group.cjs.entry.js +4 -4
  76. package/dist/cjs/co-tab.cjs.entry.js +3 -3
  77. package/dist/cjs/co-tags-field.cjs.entry.js +9 -9
  78. package/dist/cjs/co-textarea.cjs.entry.js +13 -7
  79. package/dist/cjs/co-toast.cjs.entry.js +1 -1
  80. package/dist/cjs/co-toggle-button-group.cjs.entry.js +3 -3
  81. package/dist/cjs/co-toggle-button.cjs.entry.js +3 -3
  82. package/dist/cjs/co-transfer-list.cjs.entry.js +1 -1
  83. package/dist/cjs/co-video.cjs.entry.js +3 -3
  84. package/dist/cjs/cobalt.cjs.js +2 -2
  85. package/dist/cjs/{fieldChip-D8YJCyQF.js → fieldChip-B_npd9rL.js} +1 -1
  86. package/dist/cjs/{index-4y1Dm145.js → index-DFZ5YhIT.js} +171 -11
  87. package/dist/cjs/{index-DxEFsH_t.js → index-kBiXCEE7.js} +13 -9
  88. package/dist/cjs/loader.cjs.js +2 -2
  89. package/dist/cjs/{requiredMark-B3pKyqYI.js → requiredMark-DuMIcKtt.js} +1 -1
  90. package/dist/cjs/{richTextI18n-B7ktXg3M.js → richTextI18n-B28uAhh4.js} +3 -0
  91. package/dist/cjs/{toolbar-config-3PlT-3zm.js → toolbar-config-BQfWTW6P.js} +2 -0
  92. package/dist/cobalt/cobalt.css +1 -1
  93. package/dist/cobalt/cobalt.esm.js +1 -1
  94. package/dist/cobalt/{p-86e60cfa.entry.js → p-0110108f.entry.js} +1 -1
  95. package/dist/cobalt/p-037cc571.entry.js +1 -0
  96. package/dist/cobalt/{p-47a2dd67.entry.js → p-080f62e4.entry.js} +1 -1
  97. package/dist/cobalt/{p-8128e84a.entry.js → p-0a294205.entry.js} +1 -1
  98. package/dist/cobalt/{p-a9afbaa6.entry.js → p-0b7359bb.entry.js} +1 -1
  99. package/dist/cobalt/p-0b92167a.entry.js +1 -0
  100. package/dist/cobalt/p-0bc5a962.entry.js +1 -0
  101. package/dist/cobalt/{p-02c5a9a9.entry.js → p-202eadfc.entry.js} +1 -1
  102. package/dist/cobalt/{p-1681ce1d.entry.js → p-264508ae.entry.js} +1 -1
  103. package/dist/cobalt/{p-b8ec0cc1.entry.js → p-2661557c.entry.js} +1 -1
  104. package/dist/cobalt/{p-771bc8fe.entry.js → p-27dce0ac.entry.js} +1 -1
  105. package/dist/cobalt/{p-c3462def.entry.js → p-28ab9cef.entry.js} +1 -1
  106. package/dist/cobalt/{p-d9608046.entry.js → p-2da09948.entry.js} +1 -1
  107. package/dist/cobalt/p-2f6c7eb5.entry.js +1 -0
  108. package/dist/cobalt/{p-002e5beb.entry.js → p-30c80e3a.entry.js} +1 -1
  109. package/dist/cobalt/p-331a0108.entry.js +1 -0
  110. package/dist/cobalt/{p-c0f39ddd.entry.js → p-36ad3a96.entry.js} +1 -1
  111. package/dist/cobalt/{p-8dfb6886.entry.js → p-3af74ab8.entry.js} +1 -1
  112. package/dist/cobalt/{p-c6fedc59.entry.js → p-3b9be8a8.entry.js} +1 -1
  113. package/dist/cobalt/p-3c681e3a.entry.js +1 -0
  114. package/dist/cobalt/{p-14d4c5c7.entry.js → p-3ecbbe93.entry.js} +1 -1
  115. package/dist/cobalt/{p-9c873a6a.entry.js → p-3f1030fb.entry.js} +1 -1
  116. package/dist/cobalt/p-3f7215e7.entry.js +1 -0
  117. package/dist/cobalt/p-431cec34.entry.js +1 -0
  118. package/dist/cobalt/p-48fbf051.entry.js +1 -0
  119. package/dist/cobalt/{p-e420d5c9.entry.js → p-4f615cbd.entry.js} +1 -1
  120. package/dist/cobalt/{p-81cfd951.entry.js → p-5319ac3f.entry.js} +1 -1
  121. package/dist/cobalt/p-532baca4.entry.js +1 -0
  122. package/dist/cobalt/{p-ba66584f.entry.js → p-53a276a8.entry.js} +1 -1
  123. package/dist/cobalt/{p-f0de4415.entry.js → p-543cc00d.entry.js} +1 -1
  124. package/dist/cobalt/{p-f073b467.entry.js → p-54857f78.entry.js} +1 -1
  125. package/dist/cobalt/{p-85eed52c.entry.js → p-54f8c68c.entry.js} +1 -1
  126. package/dist/cobalt/{p-9c6ca902.entry.js → p-585c132d.entry.js} +1 -1
  127. package/dist/cobalt/{p-8f194753.entry.js → p-59b114ab.entry.js} +1 -1
  128. package/dist/cobalt/{p-2d1cbd7f.entry.js → p-5b84cf37.entry.js} +1 -1
  129. package/dist/cobalt/{p-0d7536a8.entry.js → p-5c250889.entry.js} +1 -1
  130. package/dist/cobalt/{p-e33853fa.entry.js → p-5d0510a5.entry.js} +1 -1
  131. package/dist/cobalt/{p-f86ccb38.entry.js → p-5e246304.entry.js} +1 -1
  132. package/dist/cobalt/{p-075eed3d.entry.js → p-616e4286.entry.js} +1 -1
  133. package/dist/cobalt/{p-8e823c15.entry.js → p-64115d66.entry.js} +1 -1
  134. package/dist/cobalt/{p-495c9b99.entry.js → p-69723cc1.entry.js} +1 -1
  135. package/dist/cobalt/{p-6ad1625a.entry.js → p-69ce2269.entry.js} +1 -1
  136. package/dist/cobalt/{p-b1197c08.entry.js → p-6b38e8fb.entry.js} +1 -1
  137. package/dist/cobalt/{p-5c43d30e.entry.js → p-7178113f.entry.js} +1 -1
  138. package/dist/cobalt/p-741cf623.entry.js +1 -0
  139. package/dist/cobalt/{p-1726ce07.entry.js → p-75515a8e.entry.js} +1 -1
  140. package/dist/cobalt/{p-fd27c2bd.entry.js → p-7f78e45c.entry.js} +1 -1
  141. package/dist/cobalt/{p-3f06d373.entry.js → p-8155d781.entry.js} +1 -1
  142. package/dist/cobalt/{p-e710b9ea.entry.js → p-8fe5b07e.entry.js} +1 -1
  143. package/dist/cobalt/{p-9a587867.entry.js → p-9211e794.entry.js} +1 -1
  144. package/dist/cobalt/p-97875bde.entry.js +1 -0
  145. package/dist/cobalt/p-9824c478.entry.js +1 -0
  146. package/dist/cobalt/{p-cc0a4617.entry.js → p-9994fcd8.entry.js} +1 -1
  147. package/dist/cobalt/p-9bf42bf4.entry.js +1 -0
  148. package/dist/cobalt/{p-f6ac5301.entry.js → p-9fab9c1f.entry.js} +1 -1
  149. package/dist/cobalt/p-BCEz3S-z.js +2 -0
  150. package/dist/cobalt/{p-Bgxofdfb.js → p-BL0sCfMH.js} +1 -1
  151. package/dist/cobalt/p-BYKAgwq3.js +1 -0
  152. package/dist/cobalt/p-C-d15gih.js +1 -0
  153. package/dist/cobalt/p-D5gr2ent.js +1 -0
  154. package/dist/cobalt/p-WeuPA9Rw.js +1 -0
  155. package/dist/cobalt/{p-77d01b39.entry.js → p-a252f8c5.entry.js} +1 -1
  156. package/dist/cobalt/{p-809015dd.entry.js → p-b06af5c6.entry.js} +1 -1
  157. package/dist/cobalt/p-b87a2e7a.entry.js +1 -0
  158. package/dist/cobalt/{p-fb251497.entry.js → p-ba5c6aa7.entry.js} +1 -1
  159. package/dist/cobalt/{p-373cd08e.entry.js → p-bb00ae4a.entry.js} +1 -1
  160. package/dist/cobalt/{p-5edd0d3f.entry.js → p-bcd38114.entry.js} +1 -1
  161. package/dist/cobalt/{p-bb534985.entry.js → p-c237add6.entry.js} +1 -1
  162. package/dist/cobalt/{p-c750b2d2.entry.js → p-c3004e1c.entry.js} +1 -1
  163. package/dist/cobalt/p-c589ae25.entry.js +1 -0
  164. package/dist/cobalt/p-c635417b.entry.js +1 -0
  165. package/dist/cobalt/p-c7d9ff39.entry.js +1 -0
  166. package/dist/cobalt/{p-c1e53e4c.entry.js → p-c9528a5f.entry.js} +1 -1
  167. package/dist/cobalt/{p-20ba59a2.entry.js → p-cbac0a11.entry.js} +1 -1
  168. package/dist/cobalt/p-cd28aa6d.entry.js +1 -0
  169. package/dist/cobalt/{p-5c3101b5.entry.js → p-cdedaa82.entry.js} +1 -1
  170. package/dist/cobalt/{p-627d2d1a.entry.js → p-ceb85838.entry.js} +1 -1
  171. package/dist/cobalt/{p-5e9a9caf.entry.js → p-d3a1a604.entry.js} +1 -1
  172. package/dist/cobalt/{p-a6900010.entry.js → p-d71b800a.entry.js} +1 -1
  173. package/dist/cobalt/p-df752f6e.entry.js +1 -0
  174. package/dist/cobalt/{p-b4bed98b.entry.js → p-e1b468c1.entry.js} +1 -1
  175. package/dist/cobalt/{p-0d6a562d.entry.js → p-e4555fda.entry.js} +1 -1
  176. package/dist/cobalt/p-ec9dd3a3.entry.js +1 -0
  177. package/dist/cobalt/p-eec1c44c.entry.js +1 -0
  178. package/dist/cobalt/p-eeed80ac.entry.js +1 -0
  179. package/dist/cobalt/p-f0a98453.entry.js +1 -0
  180. package/dist/cobalt/{p-af4cb263.entry.js → p-ff581807.entry.js} +1 -1
  181. package/dist/cobalt/p-fffeb610.entry.js +1 -0
  182. package/dist/collection/collection-manifest.json +2 -0
  183. package/dist/collection/components/co-autocomplete/co-autocomplete.css +1 -1
  184. package/dist/collection/components/co-avatar/co-avatar.css +23 -0
  185. package/dist/collection/components/co-avatar/co-avatar.js +24 -1
  186. package/dist/collection/components/co-avatar-group/co-avatar-group.css +9 -5
  187. package/dist/collection/components/co-avatar-group/co-avatar-group.js +2 -2
  188. package/dist/collection/components/co-badge/co-badge.js +1 -1
  189. package/dist/collection/components/co-bottom-sheet/co-bottom-sheet.js +3 -3
  190. package/dist/collection/components/co-breadcrumb/co-breadcrumb.js +1 -1
  191. package/dist/collection/components/co-breadcrumb-item/co-breadcrumb-item.js +2 -2
  192. package/dist/collection/components/co-button/co-button.js +2 -2
  193. package/dist/collection/components/co-button-group/co-button-group.js +2 -2
  194. package/dist/collection/components/co-calendar/co-calendar.js +1 -1
  195. package/dist/collection/components/co-calendar-month/co-calendar-month.js +1 -1
  196. package/dist/collection/components/co-card/co-card.js +2 -2
  197. package/dist/collection/components/co-carousel/co-carousel.css +152 -0
  198. package/dist/collection/components/co-carousel/co-carousel.js +633 -0
  199. package/dist/collection/components/co-carousel-item/co-carousel-item.css +6 -0
  200. package/dist/collection/components/co-carousel-item/co-carousel-item.js +25 -0
  201. package/dist/collection/components/co-checkbox/co-checkbox.js +3 -3
  202. package/dist/collection/components/co-chip/co-chip.js +2 -2
  203. package/dist/collection/components/co-color-picker/co-color-picker.css +11 -10
  204. package/dist/collection/components/co-color-picker/co-color-picker.js +2 -2
  205. package/dist/collection/components/co-column-picker/co-column-picker.js +2 -2
  206. package/dist/collection/components/co-combobox/co-combobox.css +6 -8
  207. package/dist/collection/components/co-data-table/co-data-table.css +19 -4
  208. package/dist/collection/components/co-data-table-pagination/co-data-table-pagination.js +4 -4
  209. package/dist/collection/components/co-date-field/co-date-field.css +6 -7
  210. package/dist/collection/components/co-date-field/co-date-field.js +4 -4
  211. package/dist/collection/components/co-date-picker/co-date-picker.css +16 -0
  212. package/dist/collection/components/co-date-picker/co-date-picker.js +28 -1
  213. package/dist/collection/components/co-date-range/co-date-range.js +1 -1
  214. package/dist/collection/components/co-date-range-picker/co-date-range-picker.css +13 -1
  215. package/dist/collection/components/co-date-range-picker/co-date-range-picker.js +26 -0
  216. package/dist/collection/components/co-drive-card/co-drive-card.js +1 -1
  217. package/dist/collection/components/co-drop-zone/co-drop-zone.js +1 -1
  218. package/dist/collection/components/co-empty-state/co-empty-state.js +2 -2
  219. package/dist/collection/components/co-event-calendar/co-event-calendar.js +2 -2
  220. package/dist/collection/components/co-fab/co-fab.css +70 -10
  221. package/dist/collection/components/co-fab/co-fab.js +39 -4
  222. package/dist/collection/components/co-file-field/co-file-field.css +2 -2
  223. package/dist/collection/components/co-file-field/co-file-field.js +5 -5
  224. package/dist/collection/components/co-file-type-tile/co-file-type-tile.js +2 -2
  225. package/dist/collection/components/co-helper-text/co-helper-text.js +2 -2
  226. package/dist/collection/components/co-icon/co-icon.js +2 -2
  227. package/dist/collection/components/co-icon-button/co-icon-button.js +1 -1
  228. package/dist/collection/components/co-input/co-input.css +13 -1
  229. package/dist/collection/components/co-input/co-input.js +26 -0
  230. package/dist/collection/components/co-json-field/co-json-field.css +4 -8
  231. package/dist/collection/components/co-json-field/co-json-field.js +3 -3
  232. package/dist/collection/components/co-lightbox/co-lightbox.css +12 -1
  233. package/dist/collection/components/co-lightbox/co-lightbox.js +31 -4
  234. package/dist/collection/components/co-list-footer/co-list-footer.js +1 -1
  235. package/dist/collection/components/co-list-item/co-list-item.js +4 -4
  236. package/dist/collection/components/co-media-thumb/co-media-thumb.js +2 -2
  237. package/dist/collection/components/co-menu/co-menu.js +1 -1
  238. package/dist/collection/components/co-menu-divider/co-menu-divider.js +1 -1
  239. package/dist/collection/components/co-modal/co-modal.js +2 -2
  240. package/dist/collection/components/co-navbar/co-navbar.js +2 -2
  241. package/dist/collection/components/co-number-field/co-number-field.css +1 -1
  242. package/dist/collection/components/co-number-field/co-number-field.js +2 -2
  243. package/dist/collection/components/co-option-list/co-option-list.js +2 -2
  244. package/dist/collection/components/co-overlay/co-overlay.js +1 -1
  245. package/dist/collection/components/co-page-header/co-page-header.js +1 -1
  246. package/dist/collection/components/co-phone-field/co-phone-field.css +2 -2
  247. package/dist/collection/components/co-phone-field/co-phone-field.js +1 -1
  248. package/dist/collection/components/co-progress-bar/co-progress-bar.js +2 -2
  249. package/dist/collection/components/co-progress-circle/co-progress-circle.js +2 -2
  250. package/dist/collection/components/co-radio/co-radio.js +3 -3
  251. package/dist/collection/components/co-rating/co-rating.js +3 -3
  252. package/dist/collection/components/co-ref-field/co-ref-field.css +17 -1
  253. package/dist/collection/components/co-ref-field/co-ref-field.js +27 -1
  254. package/dist/collection/components/co-rich-text-editor/co-rich-text-editor.css +21 -3
  255. package/dist/collection/components/co-rich-text-editor/co-rich-text-editor.js +97 -4
  256. package/dist/collection/components/co-rich-text-toolbar/co-rich-text-toolbar.js +93 -3
  257. package/dist/collection/components/co-rich-text-viewer/co-rich-text-viewer.css +19 -0
  258. package/dist/collection/components/co-rich-text-viewer/co-rich-text-viewer.js +53 -4
  259. package/dist/collection/components/co-row/co-row.js +2 -2
  260. package/dist/collection/components/co-select/co-select.css +12 -1
  261. package/dist/collection/components/co-select/co-select.js +30 -4
  262. package/dist/collection/components/co-separator/co-separator.js +1 -1
  263. package/dist/collection/components/co-sidebar/co-sidebar.js +2 -2
  264. package/dist/collection/components/co-skeleton/co-skeleton.js +1 -1
  265. package/dist/collection/components/co-slider/co-slider.js +2 -2
  266. package/dist/collection/components/co-switch/co-switch.js +3 -3
  267. package/dist/collection/components/co-tab/co-tab.js +2 -2
  268. package/dist/collection/components/co-tab-group/co-tab-group.css +7 -4
  269. package/dist/collection/components/co-tab-group/co-tab-group.js +2 -2
  270. package/dist/collection/components/co-tags-field/co-tags-field.css +12 -21
  271. package/dist/collection/components/co-tags-field/co-tags-field.js +5 -5
  272. package/dist/collection/components/co-textarea/co-textarea.css +18 -8
  273. package/dist/collection/components/co-textarea/co-textarea.js +30 -4
  274. package/dist/collection/components/co-toggle-button/co-toggle-button.js +2 -2
  275. package/dist/collection/components/co-toggle-button-group/co-toggle-button-group.js +2 -2
  276. package/dist/collection/components/co-tooltip/co-tooltip.js +2 -2
  277. package/dist/collection/components/co-video/co-video.js +2 -2
  278. package/dist/collection/utils/carouselI18n.js +36 -0
  279. package/dist/collection/utils/richTextI18n.js +3 -0
  280. package/dist/components/co-accordion.js +1 -1
  281. package/dist/components/co-autocomplete.js +1 -1
  282. package/dist/components/co-avatar-group.js +1 -1
  283. package/dist/components/co-avatar.js +1 -1
  284. package/dist/components/co-badge.js +1 -1
  285. package/dist/components/co-bottom-sheet.js +1 -1
  286. package/dist/components/co-breadcrumb-item.js +1 -1
  287. package/dist/components/co-breadcrumb.js +1 -1
  288. package/dist/components/co-button-group.js +1 -1
  289. package/dist/components/co-button.js +1 -1
  290. package/dist/components/co-calendar-month.js +1 -1
  291. package/dist/components/co-calendar.js +1 -1
  292. package/dist/components/co-card.js +1 -1
  293. package/dist/components/co-carousel-item.d.ts +11 -0
  294. package/dist/components/co-carousel-item.js +1 -0
  295. package/dist/components/co-carousel.d.ts +11 -0
  296. package/dist/components/co-carousel.js +1 -0
  297. package/dist/components/co-checkbox-group.js +1 -1
  298. package/dist/components/co-checkbox.js +1 -1
  299. package/dist/components/co-chip.js +1 -1
  300. package/dist/components/co-color-picker.js +1 -1
  301. package/dist/components/co-column-picker.js +1 -1
  302. package/dist/components/co-combobox.js +1 -1
  303. package/dist/components/co-command-search.js +1 -1
  304. package/dist/components/co-data-table-pagination.js +1 -1
  305. package/dist/components/co-data-table.js +1 -1
  306. package/dist/components/co-date-field.js +1 -1
  307. package/dist/components/co-date-picker.js +1 -1
  308. package/dist/components/co-date-range-picker.js +1 -1
  309. package/dist/components/co-date-range.js +1 -1
  310. package/dist/components/co-drawer.js +1 -1
  311. package/dist/components/co-drive-card.js +1 -1
  312. package/dist/components/co-drop-zone.js +1 -1
  313. package/dist/components/co-empty-state.js +1 -1
  314. package/dist/components/co-event-calendar.js +1 -1
  315. package/dist/components/co-fab.js +1 -1
  316. package/dist/components/co-file-field.js +1 -1
  317. package/dist/components/co-file-type-tile.js +1 -1
  318. package/dist/components/co-helper-text.js +1 -1
  319. package/dist/components/co-icon-button.js +1 -1
  320. package/dist/components/co-icon.js +1 -1
  321. package/dist/components/co-input.js +1 -1
  322. package/dist/components/co-json-field.js +1 -1
  323. package/dist/components/co-lightbox.js +1 -1
  324. package/dist/components/co-list-footer.js +1 -1
  325. package/dist/components/co-list-item.js +1 -1
  326. package/dist/components/co-media-thumb.js +1 -1
  327. package/dist/components/co-menu-divider.js +1 -1
  328. package/dist/components/co-menu-item.js +1 -1
  329. package/dist/components/co-menu.js +1 -1
  330. package/dist/components/co-modal.js +1 -1
  331. package/dist/components/co-navbar.js +1 -1
  332. package/dist/components/co-number-field.js +1 -1
  333. package/dist/components/co-option-list.js +1 -1
  334. package/dist/components/co-overlay.js +1 -1
  335. package/dist/components/co-page-header.js +1 -1
  336. package/dist/components/co-phone-field.js +1 -1
  337. package/dist/components/co-progress-bar.js +1 -1
  338. package/dist/components/co-progress-circle.js +1 -1
  339. package/dist/components/co-radio-group.js +1 -1
  340. package/dist/components/co-radio.js +1 -1
  341. package/dist/components/co-rating.js +1 -1
  342. package/dist/components/co-ref-field.js +1 -1
  343. package/dist/components/co-rich-text-editor.js +1 -1
  344. package/dist/components/co-rich-text-toolbar.js +1 -1
  345. package/dist/components/co-rich-text-viewer.js +1 -1
  346. package/dist/components/co-row.js +1 -1
  347. package/dist/components/co-select.js +1 -1
  348. package/dist/components/co-separator.js +1 -1
  349. package/dist/components/co-sidebar-nav.js +1 -1
  350. package/dist/components/co-sidebar.js +1 -1
  351. package/dist/components/co-skeleton.js +1 -1
  352. package/dist/components/co-slider.js +1 -1
  353. package/dist/components/co-switch.js +1 -1
  354. package/dist/components/co-tab-group.js +1 -1
  355. package/dist/components/co-tab.js +1 -1
  356. package/dist/components/co-tags-field.js +1 -1
  357. package/dist/components/co-textarea.js +1 -1
  358. package/dist/components/co-toast.js +1 -1
  359. package/dist/components/co-toggle-button-group.js +1 -1
  360. package/dist/components/co-toggle-button.js +1 -1
  361. package/dist/components/co-tooltip.js +1 -1
  362. package/dist/components/co-transfer-list.js +1 -1
  363. package/dist/components/co-video.js +1 -1
  364. package/dist/components/index.js +1 -1
  365. package/dist/components/{p-CNIs9j-h.js → p-9aNhJfTT.js} +1 -1
  366. package/dist/components/{p-QWi9AmnD.js → p-B0b9Etx4.js} +1 -1
  367. package/dist/components/{p-D4SOCy8I.js → p-B3U63yZw.js} +1 -1
  368. package/dist/components/p-B7Yv00g9.js +1 -0
  369. package/dist/components/{p-Bgxofdfb.js → p-BL0sCfMH.js} +1 -1
  370. package/dist/components/{p-DrQh1Cb8.js → p-BTa6ss5i.js} +1 -1
  371. package/dist/components/p-BtpRnpaF.js +1 -0
  372. package/dist/components/{p-lus32JrB.js → p-Bul6EdDX.js} +1 -1
  373. package/dist/components/{p-COb8X_fE.js → p-Bzg5FPSA.js} +1 -1
  374. package/dist/components/{p-Cam92sWP.js → p-CQ-8domm.js} +1 -1
  375. package/dist/components/{p-Bsq90mo4.js → p-CVeEoHr7.js} +1 -1
  376. package/dist/components/p-CYi6V_Ss.js +1 -0
  377. package/dist/components/{p-DvL2TcDG.js → p-Cd3inFSL.js} +1 -1
  378. package/dist/components/{p-OKwHt2i9.js → p-CuQjKAf5.js} +1 -1
  379. package/dist/components/{p-Ba5lW0pA.js → p-DKvTqEaf.js} +1 -1
  380. package/dist/components/p-DfpOEXHC.js +1 -0
  381. package/dist/components/p-DwwxS5bY.js +1 -0
  382. package/dist/components/p-T0UfY6rA.js +1 -0
  383. package/dist/components/p-WeuPA9Rw.js +1 -0
  384. package/dist/components/{p-_k-j03K-.js → p-oV_1MoAN.js} +1 -1
  385. package/dist/esm/co-accordion.entry.js +1 -1
  386. package/dist/esm/co-app-shell.entry.js +1 -1
  387. package/dist/esm/co-autocomplete.entry.js +3 -3
  388. package/dist/esm/co-avatar-group.entry.js +3 -3
  389. package/dist/esm/{co-tooltip.entry.js → co-avatar_2.entry.js} +95 -4
  390. package/dist/esm/co-badge.entry.js +2 -2
  391. package/dist/esm/co-bottom-sheet.entry.js +4 -4
  392. package/dist/esm/co-breadcrumb-item.entry.js +3 -3
  393. package/dist/esm/co-breadcrumb.entry.js +2 -2
  394. package/dist/esm/co-button-group.entry.js +3 -3
  395. package/dist/esm/co-button.entry.js +3 -3
  396. package/dist/esm/co-calendar-month.entry.js +2 -2
  397. package/dist/esm/co-calendar_3.entry.js +8 -8
  398. package/dist/esm/co-card.entry.js +3 -3
  399. package/dist/esm/co-carousel-item.entry.js +15 -0
  400. package/dist/esm/co-carousel.entry.js +366 -0
  401. package/dist/esm/co-checkbox-group.entry.js +1 -1
  402. package/dist/esm/co-checkbox.entry.js +4 -4
  403. package/dist/esm/co-chip_2.entry.js +5 -5
  404. package/dist/esm/co-color-picker.entry.js +5 -5
  405. package/dist/esm/co-column-picker.entry.js +3 -3
  406. package/dist/esm/co-combobox.entry.js +3 -3
  407. package/dist/esm/co-command-search.entry.js +1 -1
  408. package/dist/esm/co-data-table-pagination.entry.js +5 -5
  409. package/dist/esm/co-data-table.entry.js +2 -2
  410. package/dist/esm/co-date-picker.entry.js +11 -4
  411. package/dist/esm/co-date-range-picker.entry.js +9 -3
  412. package/dist/esm/co-date-range.entry.js +2 -2
  413. package/dist/esm/co-drive-card.entry.js +2 -2
  414. package/dist/esm/co-drop-zone.entry.js +2 -2
  415. package/dist/esm/co-empty-state.entry.js +3 -3
  416. package/dist/esm/co-event-calendar.entry.js +3 -3
  417. package/dist/esm/co-fab.entry.js +21 -6
  418. package/dist/esm/co-file-field.entry.js +8 -8
  419. package/dist/esm/co-file-type-tile.entry.js +3 -3
  420. package/dist/esm/co-helper-text.entry.js +3 -3
  421. package/dist/esm/co-icon-button.entry.js +2 -2
  422. package/dist/esm/co-icon.entry.js +3 -3
  423. package/dist/esm/co-input.entry.js +9 -3
  424. package/dist/esm/co-json-field.entry.js +6 -6
  425. package/dist/esm/co-lightbox.entry.js +33 -6
  426. package/dist/esm/co-list-footer.entry.js +2 -2
  427. package/dist/esm/co-list-item.entry.js +5 -5
  428. package/dist/esm/co-loader.entry.js +1 -1
  429. package/dist/esm/co-media-thumb.entry.js +3 -3
  430. package/dist/esm/co-menu-divider.entry.js +2 -2
  431. package/dist/esm/co-menu-item.entry.js +1 -1
  432. package/dist/esm/co-menu.entry.js +2 -2
  433. package/dist/esm/co-modal.entry.js +3 -3
  434. package/dist/esm/co-navbar.entry.js +3 -3
  435. package/dist/esm/co-number-field.entry.js +5 -5
  436. package/dist/esm/co-overlay.entry.js +2 -2
  437. package/dist/esm/co-page-header.entry.js +2 -2
  438. package/dist/esm/co-phone-field.entry.js +4 -4
  439. package/dist/esm/co-popover.entry.js +1 -1
  440. package/dist/esm/co-progress-bar.entry.js +3 -3
  441. package/dist/esm/co-progress-circle.entry.js +3 -3
  442. package/dist/esm/co-radio-group.entry.js +1 -1
  443. package/dist/esm/co-radio.entry.js +4 -4
  444. package/dist/esm/co-rating.entry.js +4 -4
  445. package/dist/esm/co-ref-field.entry.js +11 -5
  446. package/dist/esm/co-rich-text-editor.entry.js +22 -7
  447. package/dist/esm/co-rich-text-toolbar.entry.js +36 -4
  448. package/dist/esm/co-rich-text-viewer.entry.js +36 -6
  449. package/dist/esm/co-row.entry.js +3 -3
  450. package/dist/esm/co-segmented-bar.entry.js +1 -1
  451. package/dist/esm/co-select.entry.js +13 -7
  452. package/dist/esm/co-separator.entry.js +2 -2
  453. package/dist/esm/co-sidebar-nav.entry.js +1 -1
  454. package/dist/esm/co-sidebar.entry.js +3 -3
  455. package/dist/esm/co-skeleton.entry.js +2 -2
  456. package/dist/esm/co-slider.entry.js +3 -3
  457. package/dist/esm/co-switch.entry.js +5 -5
  458. package/dist/esm/co-tab-group.entry.js +4 -4
  459. package/dist/esm/co-tab.entry.js +3 -3
  460. package/dist/esm/co-tags-field.entry.js +9 -9
  461. package/dist/esm/co-textarea.entry.js +13 -7
  462. package/dist/esm/co-toast.entry.js +1 -1
  463. package/dist/esm/co-toggle-button-group.entry.js +3 -3
  464. package/dist/esm/co-toggle-button.entry.js +3 -3
  465. package/dist/esm/co-transfer-list.entry.js +1 -1
  466. package/dist/esm/co-video.entry.js +3 -3
  467. package/dist/esm/cobalt.js +3 -3
  468. package/dist/esm/{fieldChip-ChXW__C5.js → fieldChip-Bb8YIN0J.js} +1 -1
  469. package/dist/esm/{index-tT-aZV0-.js → index-BCEz3S-z.js} +13 -9
  470. package/dist/esm/{index-Cyrxk8Qq.js → index-RuXxdKzC.js} +171 -11
  471. package/dist/esm/loader.js +3 -3
  472. package/dist/esm/{requiredMark-C7-_2UhB.js → requiredMark-D7kAMXHM.js} +1 -1
  473. package/dist/esm/{richTextI18n-B-ckjCUA.js → richTextI18n-BYKAgwq3.js} +3 -0
  474. package/dist/esm/{toolbar-config-ChibIpZv.js → toolbar-config-WeuPA9Rw.js} +2 -0
  475. package/dist/types/components/co-avatar/co-avatar.d.ts +5 -0
  476. package/dist/types/components/co-carousel/co-carousel.d.ts +85 -0
  477. package/dist/types/components/co-carousel-item/co-carousel-item.d.ts +10 -0
  478. package/dist/types/components/co-date-picker/co-date-picker.d.ts +7 -0
  479. package/dist/types/components/co-date-range-picker/co-date-range-picker.d.ts +5 -0
  480. package/dist/types/components/co-fab/co-fab.d.ts +6 -0
  481. package/dist/types/components/co-input/co-input.d.ts +5 -0
  482. package/dist/types/components/co-lightbox/co-lightbox.d.ts +7 -0
  483. package/dist/types/components/co-ref-field/co-ref-field.d.ts +5 -0
  484. package/dist/types/components/co-rich-text-editor/co-rich-text-editor.d.ts +17 -0
  485. package/dist/types/components/co-rich-text-toolbar/co-rich-text-toolbar.d.ts +12 -1
  486. package/dist/types/components/co-rich-text-viewer/co-rich-text-viewer.d.ts +10 -0
  487. package/dist/types/components/co-select/co-select.d.ts +5 -0
  488. package/dist/types/components/co-textarea/co-textarea.d.ts +5 -0
  489. package/dist/types/components.d.ts +363 -3
  490. package/dist/types/utils/carouselI18n.d.ts +10 -0
  491. package/dist/types/utils/richTextI18n.d.ts +1 -0
  492. package/package.json +4 -4
  493. package/dist/cjs/co-avatar.cjs.entry.js +0 -92
  494. package/dist/cobalt/p-0c0621a7.entry.js +0 -1
  495. package/dist/cobalt/p-13fc9c8a.entry.js +0 -1
  496. package/dist/cobalt/p-3f68fd2e.entry.js +0 -1
  497. package/dist/cobalt/p-4a075257.entry.js +0 -1
  498. package/dist/cobalt/p-5647ca9d.entry.js +0 -1
  499. package/dist/cobalt/p-5b31d45b.entry.js +0 -1
  500. package/dist/cobalt/p-6911a034.entry.js +0 -1
  501. package/dist/cobalt/p-70f70e02.entry.js +0 -1
  502. package/dist/cobalt/p-73b30ebb.entry.js +0 -1
  503. package/dist/cobalt/p-75dcaeb0.entry.js +0 -1
  504. package/dist/cobalt/p-7780ddb5.entry.js +0 -1
  505. package/dist/cobalt/p-7FZXeBK4.js +0 -1
  506. package/dist/cobalt/p-86d4e016.entry.js +0 -1
  507. package/dist/cobalt/p-8a9ed2da.entry.js +0 -1
  508. package/dist/cobalt/p-B-ckjCUA.js +0 -1
  509. package/dist/cobalt/p-BAA4ln31.js +0 -1
  510. package/dist/cobalt/p-ChibIpZv.js +0 -1
  511. package/dist/cobalt/p-aa20ffca.entry.js +0 -1
  512. package/dist/cobalt/p-ac5df270.entry.js +0 -1
  513. package/dist/cobalt/p-c2e2eee9.entry.js +0 -1
  514. package/dist/cobalt/p-cc8e2f16.entry.js +0 -1
  515. package/dist/cobalt/p-e1957078.entry.js +0 -1
  516. package/dist/cobalt/p-e2762263.entry.js +0 -1
  517. package/dist/cobalt/p-e4a539da.entry.js +0 -1
  518. package/dist/cobalt/p-e7085f08.entry.js +0 -1
  519. package/dist/cobalt/p-e9aaeaf7.entry.js +0 -1
  520. package/dist/cobalt/p-f36e461f.entry.js +0 -1
  521. package/dist/cobalt/p-f6b0c4a0.entry.js +0 -1
  522. package/dist/cobalt/p-tT-aZV0-.js +0 -2
  523. package/dist/components/p-BHqdcGDh.js +0 -1
  524. package/dist/components/p-BJTMFYax.js +0 -1
  525. package/dist/components/p-ChibIpZv.js +0 -1
  526. package/dist/components/p-D3ts7oo9.js +0 -1
  527. package/dist/components/p-Dh-h40mY.js +0 -1
  528. package/dist/components/p-Xwo2HQmt.js +0 -1
  529. package/dist/components/p-eSq2ze8W.js +0 -1
  530. package/dist/esm/co-avatar.entry.js +0 -90
@@ -17,6 +17,9 @@ export class CoRichTextToolbar {
17
17
  this.disabled = false;
18
18
  /** BCP-47 locale for UI strings (e.g. 'en', 'es-CO', 'pt-BR'). Default English. */
19
19
  this.locale = 'en';
20
+ /** Shows the attachment button (compact-assets variant). The editor never
21
+ * owns the attachment list — it only emits the picked files. */
22
+ this.attachmentsEnabled = false;
20
23
  this.items = [];
21
24
  /** Bumped on every editor transaction to refresh active state. */
22
25
  this.tick = 0;
@@ -170,6 +173,9 @@ export class CoRichTextToolbar {
170
173
  chain.outdent().run();
171
174
  }
172
175
  break;
176
+ case 'attachment':
177
+ this.triggerAttachmentFileUpload();
178
+ return; // no editor command — the host owns the files
173
179
  case 'link':
174
180
  case 'image':
175
181
  case 'youtube':
@@ -206,6 +212,7 @@ export class CoRichTextToolbar {
206
212
  blockquote: s.quote, codeBlock: s.codeBlock,
207
213
  horizontalRule: s.horizontalRule,
208
214
  link: s.link, image: s.image, youtube: s.youtubeVideo, iframe: s.iframeEmbed,
215
+ attachment: s.attachFiles,
209
216
  table: s.table, textColor: s.textColor, highlight: s.highlight,
210
217
  alignment: s.alignment, lineSpacing: s.lineSpacing,
211
218
  letterSpacing: s.letterSpacing,
@@ -277,6 +284,9 @@ export class CoRichTextToolbar {
277
284
  onVariantChange(v) {
278
285
  this.items = this.resolveItems(v);
279
286
  }
287
+ onAttachmentsEnabledChange() {
288
+ this.items = this.resolveItems(this.variant);
289
+ }
280
290
  onEditorChange(next, prev) {
281
291
  prev === null || prev === void 0 ? void 0 : prev.off('transaction', this.onTransaction);
282
292
  next === null || next === void 0 ? void 0 : next.on('transaction', this.onTransaction);
@@ -309,7 +319,11 @@ export class CoRichTextToolbar {
309
319
  const kept = base.filter((entry) => {
310
320
  if (this.isSeparator(entry))
311
321
  return true;
312
- const cmd = CoRichTextToolbar.ITEM_COMMAND[entry.action];
322
+ const action = entry.action;
323
+ // attachment has no editor command — visibility is host opt-in.
324
+ if (action === 'attachment')
325
+ return this.attachmentsEnabled;
326
+ const cmd = CoRichTextToolbar.ITEM_COMMAND[action];
313
327
  return cmd ? available(cmd) : true;
314
328
  });
315
329
  // Drop separators that ended up leading, trailing, or doubled-up.
@@ -788,6 +802,20 @@ export class CoRichTextToolbar {
788
802
  }
789
803
  return (h("div", { class: "co-rich-text-toolbar__popover", onMouseDown: (e) => { e.preventDefault(); e.stopPropagation(); } }, h("button", { type: "button", class: "co-rich-text-toolbar__popover-option", onMouseDown: (e) => e.preventDefault(), onClick: () => this.triggerImageFileUpload() }, h("co-icon", { name: "upload-simple", size: 16 }), h("span", null, this.s.uploadFromComputer)), h("button", { type: "button", class: "co-rich-text-toolbar__popover-option", onMouseDown: (e) => e.preventDefault(), onClick: () => { this.imagePopoverMode = 'url'; } }, h("co-icon", { name: "link", size: 16 }), h("span", null, this.s.viaUrl))));
790
804
  }
805
+ triggerAttachmentFileUpload() {
806
+ const input = document.createElement('input');
807
+ input.type = 'file';
808
+ input.multiple = true;
809
+ if (this.attachmentAccept)
810
+ input.accept = this.attachmentAccept;
811
+ input.onchange = () => {
812
+ var _a;
813
+ const files = Array.from((_a = input.files) !== null && _a !== void 0 ? _a : []);
814
+ if (files.length)
815
+ this.coAttachmentsSelected.emit({ files });
816
+ };
817
+ input.click();
818
+ }
791
819
  triggerImageFileUpload() {
792
820
  const input = document.createElement('input');
793
821
  input.type = 'file';
@@ -1111,8 +1139,8 @@ export class CoRichTextToolbar {
1111
1139
  "type": "string",
1112
1140
  "mutable": false,
1113
1141
  "complexType": {
1114
- "original": "'none' | 'compact' | 'basic' | 'full'",
1115
- "resolved": "\"basic\" | \"compact\" | \"full\" | \"none\"",
1142
+ "original": "'none' | 'compact' | 'compact-assets' | 'basic' | 'full'",
1143
+ "resolved": "\"basic\" | \"compact\" | \"compact-assets\" | \"full\" | \"none\"",
1116
1144
  "references": {}
1117
1145
  },
1118
1146
  "required": false,
@@ -1192,6 +1220,45 @@ export class CoRichTextToolbar {
1192
1220
  },
1193
1221
  "getter": false,
1194
1222
  "setter": false
1223
+ },
1224
+ "attachmentsEnabled": {
1225
+ "type": "boolean",
1226
+ "mutable": false,
1227
+ "complexType": {
1228
+ "original": "boolean",
1229
+ "resolved": "boolean",
1230
+ "references": {}
1231
+ },
1232
+ "required": false,
1233
+ "optional": false,
1234
+ "docs": {
1235
+ "tags": [],
1236
+ "text": "Shows the attachment button (compact-assets variant). The editor never\nowns the attachment list \u2014 it only emits the picked files."
1237
+ },
1238
+ "getter": false,
1239
+ "setter": false,
1240
+ "reflect": false,
1241
+ "attribute": "attachments-enabled",
1242
+ "defaultValue": "false"
1243
+ },
1244
+ "attachmentAccept": {
1245
+ "type": "string",
1246
+ "mutable": false,
1247
+ "complexType": {
1248
+ "original": "string",
1249
+ "resolved": "string | undefined",
1250
+ "references": {}
1251
+ },
1252
+ "required": false,
1253
+ "optional": true,
1254
+ "docs": {
1255
+ "tags": [],
1256
+ "text": "`accept` attr for the attachment file picker (e.g. '.pdf,.png')."
1257
+ },
1258
+ "getter": false,
1259
+ "setter": false,
1260
+ "reflect": false,
1261
+ "attribute": "attachment-accept"
1195
1262
  }
1196
1263
  };
1197
1264
  }
@@ -1245,6 +1312,26 @@ export class CoRichTextToolbar {
1245
1312
  "resolved": "{ open: boolean; }",
1246
1313
  "references": {}
1247
1314
  }
1315
+ }, {
1316
+ "method": "coAttachmentsSelected",
1317
+ "name": "coAttachmentsSelected",
1318
+ "bubbles": true,
1319
+ "cancelable": true,
1320
+ "composed": true,
1321
+ "docs": {
1322
+ "tags": [],
1323
+ "text": "Files picked from the toolbar attachment button. The host owns them."
1324
+ },
1325
+ "complexType": {
1326
+ "original": "{ files: File[] }",
1327
+ "resolved": "{ files: File[]; }",
1328
+ "references": {
1329
+ "File": {
1330
+ "location": "global",
1331
+ "id": "global::File"
1332
+ }
1333
+ }
1334
+ }
1248
1335
  }];
1249
1336
  }
1250
1337
  static get elementRef() { return "el"; }
@@ -1252,6 +1339,9 @@ export class CoRichTextToolbar {
1252
1339
  return [{
1253
1340
  "propName": "variant",
1254
1341
  "methodName": "onVariantChange"
1342
+ }, {
1343
+ "propName": "attachmentsEnabled",
1344
+ "methodName": "onAttachmentsEnabledChange"
1255
1345
  }, {
1256
1346
  "propName": "editor",
1257
1347
  "methodName": "onEditorChange"
@@ -137,6 +137,25 @@
137
137
  font-size: 0.9em;
138
138
  }
139
139
 
140
+ /* Menciones: markup nuevo (data-mention-id) y V1 (quill: data-id +
141
+ data-denotation-char). Mismo chip que el editor (.co-rte-mention). */
142
+ .co-rich-text-viewer [data-mention-id],
143
+ .co-rich-text-viewer [data-denotation-char='@'][data-id] {
144
+ display: inline-block;
145
+ padding: 0.05em 0.4em;
146
+ border-radius: var(--co-border-radius-xxs);
147
+ /* Highlight pastel azul — mismo look que el chip del editor (.co-rte-mention). */
148
+ background: var(--co-color-azul-200);
149
+ color: var(--co-color-azul-800);
150
+ font-size: 0.9em;
151
+ white-space: nowrap;
152
+ }
153
+
154
+ /* El tracker oculto del contrato V1 jamás debe pintar en lectura. */
155
+ .co-rich-text-viewer #userMentionsTracker {
156
+ display: none;
157
+ }
158
+
140
159
  /* ============================================================
141
160
  Fluid content width (document / "site" preset)
142
161
 
@@ -16,6 +16,7 @@ const ALLOWED_TAGS = {
16
16
  task: ['p', 'br', 'strong', 'em', 'a', 'span', 'u', 's', 'code', 'ul', 'ol', 'li', 'blockquote'],
17
17
  email: ['p', 'br', 'strong', 'em', 'a', 'span', 'u', 's', 'code', 'ul', 'ol', 'li', 'blockquote', 'h2', 'h3', 'div', 'img'],
18
18
  document: ['p', 'br', 'strong', 'em', 'a', 'span', 'u', 's', 'code', 'ul', 'ol', 'li', 'blockquote', 'h1', 'h2', 'h3', 'h4', 'hr', 'div', 'mark', 'img', 'table', 'thead', 'tbody', 'tr', 'th', 'td', 'iframe'],
19
+ 'block-email': ['p', 'br', 'strong', 'em', 'a', 'span', 'u', 's', 'code', 'ul', 'ol', 'li', 'blockquote', 'h2', 'h3', 'div', 'img'],
19
20
  };
20
21
  /** iframes are permitted only with an https: source (blocks javascript:/data:/http:). */
21
22
  const SAFE_IFRAME_SRC_RE = /^https:\/\/[^\s"'<>]+$/i;
@@ -37,8 +38,22 @@ export class CoRichTextViewer {
37
38
  watchInputs() {
38
39
  return this.compute();
39
40
  }
41
+ /** Parse `features` (JSON string via HTML attr, or object via JS property). */
42
+ get parsedFeatures() {
43
+ if (!this.features)
44
+ return undefined;
45
+ if (typeof this.features === 'string') {
46
+ try {
47
+ return JSON.parse(this.features);
48
+ }
49
+ catch (_a) {
50
+ return undefined;
51
+ }
52
+ }
53
+ return this.features;
54
+ }
40
55
  sanitizeHtml(html) {
41
- var _a;
56
+ var _a, _b;
42
57
  DOMPurify.addHook('uponSanitizeElement', (node, data) => {
43
58
  var _a, _b;
44
59
  // Only allow <input type="checkbox"> (task list checkboxes); strip others.
@@ -52,10 +67,22 @@ export class CoRichTextViewer {
52
67
  (_b = node.parentNode) === null || _b === void 0 ? void 0 : _b.removeChild(node);
53
68
  }
54
69
  });
70
+ // Feature overrides only WIDEN the whitelist (mirrors the rich-text
71
+ // package's `configFor`). `mentions` re-admits the V1 quill markup attrs so
72
+ // the mention chip keeps its style hook in read mode — the new markup
73
+ // (data-mention-id/label) is always allowed. image/variables attrs are
74
+ // already in the base list below.
75
+ const allowedAttr = ['href', 'target', 'rel', 'data-variable', 'data-mention-id', 'data-mention-label', 'style', 'colspan', 'rowspan', 'src', 'alt', 'width', 'height', 'allowfullscreen', 'frameborder', 'allow', 'loading', 'data-youtube-video', 'data-iframe', 'data-image-layout', 'data-file-id', 'type', 'checked', 'disabled'];
76
+ if ((_a = this.parsedFeatures) === null || _a === void 0 ? void 0 : _a.mentions) {
77
+ for (const a of ['data-id', 'data-value', 'data-denotation-char', 'data-index']) {
78
+ if (!allowedAttr.includes(a))
79
+ allowedAttr.push(a);
80
+ }
81
+ }
55
82
  try {
56
83
  const clean = DOMPurify.sanitize(html, {
57
- ALLOWED_TAGS: (_a = ALLOWED_TAGS[this.preset]) !== null && _a !== void 0 ? _a : ALLOWED_TAGS.document,
58
- ALLOWED_ATTR: ['href', 'target', 'rel', 'data-variable', 'data-mention-id', 'data-mention-label', 'style', 'colspan', 'rowspan', 'src', 'alt', 'width', 'height', 'allowfullscreen', 'frameborder', 'allow', 'loading', 'data-youtube-video', 'data-iframe', 'data-image-layout', 'data-file-id', 'type', 'checked', 'disabled'],
84
+ ALLOWED_TAGS: (_b = ALLOWED_TAGS[this.preset]) !== null && _b !== void 0 ? _b : ALLOWED_TAGS.document,
85
+ ALLOWED_ATTR: allowedAttr,
59
86
  ALLOW_DATA_ATTR: false,
60
87
  FORBID_TAGS: ['script', 'object', 'embed', 'form', 'textarea', 'style'],
61
88
  ADD_ATTR: ['allowfullscreen', 'frameborder', 'allow', 'loading'],
@@ -154,7 +181,7 @@ export class CoRichTextViewer {
154
181
  "mutable": false,
155
182
  "complexType": {
156
183
  "original": "RichTextPreset",
157
- "resolved": "\"comment\" | \"document\" | \"email\" | \"task\"",
184
+ "resolved": "\"block-email\" | \"comment\" | \"document\" | \"email\" | \"task\"",
158
185
  "references": {
159
186
  "RichTextPreset": {
160
187
  "location": "import",
@@ -214,6 +241,25 @@ export class CoRichTextViewer {
214
241
  "reflect": false,
215
242
  "attribute": "compact",
216
243
  "defaultValue": "false"
244
+ },
245
+ "features": {
246
+ "type": "string",
247
+ "mutable": false,
248
+ "complexType": {
249
+ "original": "string | object",
250
+ "resolved": "object | string | undefined",
251
+ "references": {}
252
+ },
253
+ "required": false,
254
+ "optional": true,
255
+ "docs": {
256
+ "tags": [],
257
+ "text": "Feature overrides (JSON string for HTML attr, or object via JS property) \u2014\nmirror the editor's `features`. They only WIDEN the whitelist: e.g.\n`mentions` keeps the V1 quill markup attrs (`data-id`,\n`data-denotation-char`, \u2026) so the mention chip keeps its style hook in\nread mode. Without it the preset profile strips them."
258
+ },
259
+ "getter": false,
260
+ "setter": false,
261
+ "reflect": false,
262
+ "attribute": "features"
217
263
  }
218
264
  };
219
265
  }
@@ -232,6 +278,9 @@ export class CoRichTextViewer {
232
278
  }, {
233
279
  "propName": "preset",
234
280
  "methodName": "watchInputs"
281
+ }, {
282
+ "propName": "features",
283
+ "methodName": "watchInputs"
235
284
  }];
236
285
  }
237
286
  }
@@ -13,11 +13,11 @@ export class CoRow {
13
13
  this.size = 'sm';
14
14
  }
15
15
  render() {
16
- return (h("div", { key: '3b77dcfd8a0d6fccdb5932e2dd316ab1166e13e9', class: {
16
+ return (h("div", { key: 'acd6c8b2a2c0331dcad0b0308f407a999e52f049', class: {
17
17
  'co-row': true,
18
18
  [`co-row--${this.position}`]: true,
19
19
  [`co-row--${this.size}`]: true,
20
- }, part: "row" }, h("div", { key: '0f0112ad8cf977587af1cc756ec822ca5d8c81fc', class: "co-row__prefix" }, h("slot", { key: 'd6ac18b41dca0597dba80f5d49554471832b6c4f', name: "prefix" })), h("div", { key: '8c1de305f4268cc8d10f6ba1203750bd96061dc3', class: "co-row__content" }, h("slot", { key: 'fe882bbb96faae81377c4613024a74762f84c113' })), h("div", { key: '0bb2646c6f0d4f52573021b76e3a950ddca11056', class: "co-row__suffix" }, h("slot", { key: '3518a826a39d3491a24067a9be3a5284e6a184d4', name: "suffix" }))));
20
+ }, part: "row" }, h("div", { key: '3680dafc73ecf8c394a7dcbbd77fb89d73862c76', class: "co-row__prefix" }, h("slot", { key: '9b6629d967b4a88264481a25cd042c3ab01fa173', name: "prefix" })), h("div", { key: '7796ddafded2b51672f9ff4bcea3432faa855427', class: "co-row__content" }, h("slot", { key: 'fa09c61de348af277be8c5538bc95eb4b30faf07' })), h("div", { key: '1881efe091915d3f45a5ef8035970cebeb27def0', class: "co-row__suffix" }, h("slot", { key: '580c7f8d19a886f5d0efed9c8fdfcbb60daa0630', name: "suffix" }))));
21
21
  }
22
22
  static get is() { return "co-row"; }
23
23
  static get encapsulation() { return "shadow"; }
@@ -730,7 +730,7 @@ html[data-overlayscrollbars-viewport~=scrollbarHidden] > body::-webkit-scrollbar
730
730
  /* Figma Text Field parity (same box as co-input): solid page surface +
731
731
  Negro 25% border — tinted glass didn't read as editable on white. */
732
732
  background: var(--co-semantic-surface-page);
733
- border: 1px solid var(--co-color-opacity-negro-25, rgba(31, 28, 27, 0.25));
733
+ border: 1px solid var(--co-semantic-border-field);
734
734
  border-radius: var(--co-border-radius-xs);
735
735
  min-height: 40px;
736
736
  box-sizing: border-box;
@@ -738,6 +738,17 @@ html[data-overlayscrollbars-viewport~=scrollbarHidden] > body::-webkit-scrollbar
738
738
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
739
739
  }
740
740
 
741
+ /* ── Variant: flat (no border/background — reads as content) ──────────
742
+ Border-width/radius are left untouched (only the color goes transparent),
743
+ so padding/box size never shift between default and flat. Placed here
744
+ (before size variants and ahead of open/disabled/status below) so the
745
+ equal-specificity (0,2,0) state selectors win their cascade tie by
746
+ source order and keep showing through on top of flat, same as today. */
747
+ .co-select--flat .co-select__trigger {
748
+ background: transparent;
749
+ border-color: transparent;
750
+ }
751
+
741
752
  /* ── Multiple: selected values as removable chips (mirror co-ref-field) ── */
742
753
  .co-select__chips {
743
754
  flex: 1;
@@ -16,6 +16,11 @@ export class CoSelect {
16
16
  this.value = '';
17
17
  this.multiple = false;
18
18
  this.size = 'md';
19
+ /** Visual style. `flat` strips the trigger's border and background so it
20
+ * reads as plain content instead of a boxed control — padding, label,
21
+ * focus ring, disabled and status states are unaffected. `default` (the
22
+ * standard bordered box) renders identically to before this prop existed. */
23
+ this.variant = 'default';
19
24
  /** Show a search box inside the dropdown to filter options client-side. */
20
25
  this.searchable = false;
21
26
  this.searchPlaceholder = 'Search…';
@@ -208,19 +213,20 @@ export class CoSelect {
208
213
  var _a;
209
214
  const selected = this.selectedValues;
210
215
  const options = this.filteredOptions;
211
- return (h("div", { key: 'e52ada6dab00c28435576237271547db70c66b7a', class: {
216
+ return (h("div", { key: 'dda1b5f2f72939374a748224137586c8cc67cfcb', class: {
212
217
  'co-select': true,
213
218
  'co-select--open': this.isOpen,
214
219
  'co-select--disabled': this.disabled,
215
220
  [`co-select--${this.size}`]: true,
216
221
  [`co-select--${this.status}`]: this.status !== 'default',
217
- } }, (this.label || this.secondaryLabel) && (h("div", { key: '45c9c037da6523f7ffaea58f22363f239e1537d3', class: "co-select__labels" }, this.label && h("label", { key: '611dec09fd4637c09ca45e8fbb9a930bafaf8e15', class: "co-select__label" }, this.label, h(RequiredMark, { key: '75f302013790f9cf73da4db38a1c8635d8132a2e', required: this.required })), this.secondaryLabel && h("span", { key: '49404c2801028303e2bb825f1eb5e0d1854cf72a', class: "co-select__secondary-label" }, this.secondaryLabel))), h("co-popover", { key: '2169518b1ed1944b4b483e19a72507865762764a', open: this.isOpen, placement: "bottom-start", matchWidth: true, offset: 4, onCoOpen: this.handlePopoverOpen, onCoClose: this.handlePopoverClose }, h("div", { key: '6d4984781b7b59ba09c77b24677e4911a3f0827b', slot: "trigger", class: "co-select__trigger", onClick: this.handleTriggerClick }, this.iconLeft && h("co-icon", { key: '8aa3d88126db4f7840b8080c46fe00a1e498dc7f', name: this.iconLeft, size: 16, class: "co-select__icon" }), ((_a = this.selectedOption) === null || _a === void 0 ? void 0 : _a.image) && (h("img", { key: '6cf713b9dbbd2923d6543a9903e998ee83185010', class: "co-select__flag", src: this.selectedOption.image, alt: "" })), this.multiple && this.hasValue ? (h("div", { class: "co-select__chips" }, this.selectedValues.map((v) => {
222
+ 'co-select--flat': this.variant === 'flat',
223
+ } }, (this.label || this.secondaryLabel) && (h("div", { key: '5947cfc99c31904238dd3c86c4da4e42e7d94ba3', class: "co-select__labels" }, this.label && h("label", { key: 'fac1de54916c5b0701c10b3b618c41f8319c3a50', class: "co-select__label" }, this.label, h(RequiredMark, { key: '12f175c2dc67ef19c949fd517e38cd2c32b55084', required: this.required })), this.secondaryLabel && h("span", { key: 'a1a0fa82fc220952e4c8225e13fa8bbb2cbbe310', class: "co-select__secondary-label" }, this.secondaryLabel))), h("co-popover", { key: '126cb2923ea3a5e3646697fd514050258c82bcaa', open: this.isOpen, placement: "bottom-start", matchWidth: true, offset: 4, onCoOpen: this.handlePopoverOpen, onCoClose: this.handlePopoverClose }, h("div", { key: '0b3dd75a9d0bb427bc8e5c8f17fe5c297855a899', slot: "trigger", class: "co-select__trigger", onClick: this.handleTriggerClick }, this.iconLeft && h("co-icon", { key: 'ad2fa6c5a6798314097d8e0715cddff8ce349586', name: this.iconLeft, size: 16, class: "co-select__icon" }), ((_a = this.selectedOption) === null || _a === void 0 ? void 0 : _a.image) && (h("img", { key: '36e7407bf782a1adb15cd41432bc4f36d5605094', class: "co-select__flag", src: this.selectedOption.image, alt: "" })), this.multiple && this.hasValue ? (h("div", { class: "co-select__chips" }, this.selectedValues.map((v) => {
218
224
  const opt = this.parsedOptions.find((o) => o.value === v);
219
225
  return (h("span", { class: "co-select__chip", key: v }, h("span", { class: "co-select__chip-label" }, opt ? opt.label : v), h("button", { class: "co-select__chip-remove", type: "button", tabIndex: -1, "aria-label": "Remove", onClick: (e) => {
220
226
  e.stopPropagation();
221
227
  this.handleOptionClick(v);
222
228
  } }, h("co-icon", { name: "x", size: 12 }))));
223
- }))) : (h("span", { class: { 'co-select__text': true, 'co-select__text--placeholder': !this.hasValue } }, this.hasValue ? this.displayText : this.placeholder)), this.clearable && this.hasValue && !this.disabled && (h("button", { key: 'b2e65bbec3c9f4eade2f250b8f446fc7719ac87f', class: "co-select__clear", type: "button", tabIndex: -1, onClick: this.handleClear, "aria-label": "Clear" }, h("co-icon", { key: 'ec6bef7248b519d032c831208a89d8fdabdd5e85', name: "x-circle", size: 16, weight: "fill" }))), h("co-icon", { key: '9e43c223117d1a30b3b24f1e64a4bf1ca2e003db', name: this.isOpen ? 'caret-up' : 'caret-down', size: 16, class: "co-select__caret" })), h("div", { key: 'c622ad50ad8667ffa1094d9f53a467588963a720', class: "co-select__dropdown" }, this.isOpen && this.searchable && (h("div", { key: 'a20bb6f186b6c740da4f7f22392dd5369dd1cd15', class: "co-select__search" }, h("co-icon", { key: '02a8fbbcdc31b6924bc69255c692cb9c89210321', name: "magnifying-glass", size: 16, class: "co-select__search-icon" }), h("input", { key: '5323a3037c9deb9855d65ec1d3246ba80b0811e2', class: "co-select__search-input", type: "text", placeholder: this.searchPlaceholder, value: this.searchText, onInput: this.handleSearchInput, ref: (el) => (this.searchInputEl = el) }))), this.isOpen && this.searchable && options.length === 0 && (h("div", { key: 'b9d8a5f12e278bf5b8ff813b22e43f7e8ffee0fb', class: "co-select__empty" }, this.emptyText)), h("div", { key: '7f84a589795e9333e18926854ead79dc0fa3c6e1', class: "co-select__options", ref: (el) => (this.optionsContainerEl = el) }, this.isOpen && (() => {
229
+ }))) : (h("span", { class: { 'co-select__text': true, 'co-select__text--placeholder': !this.hasValue } }, this.hasValue ? this.displayText : this.placeholder)), this.clearable && this.hasValue && !this.disabled && (h("button", { key: '3e97e8239b922280a21cd0fa53d37cbb15f313ba', class: "co-select__clear", type: "button", tabIndex: -1, onClick: this.handleClear, "aria-label": "Clear" }, h("co-icon", { key: 'da2171535417fed8e6a3422120c13f4f860354e3', name: "x-circle", size: 16, weight: "fill" }))), h("co-icon", { key: 'e262edfb38a2bcd9771082c78af22ae3816a4472', name: this.isOpen ? 'caret-up' : 'caret-down', size: 16, class: "co-select__caret" })), h("div", { key: 'd557662d3722a7a60e7b499fea0c47a11bb86737', class: "co-select__dropdown" }, this.isOpen && this.searchable && (h("div", { key: '7248c5417c929016e43eba3754ef74cb68e21d76', class: "co-select__search" }, h("co-icon", { key: 'a88c9f7da98cb112d33a7bc6f970f503d7fbfcdc', name: "magnifying-glass", size: 16, class: "co-select__search-icon" }), h("input", { key: 'ed90bd495b6d92941af5f585d24ad9a4986757d9', class: "co-select__search-input", type: "text", placeholder: this.searchPlaceholder, value: this.searchText, onInput: this.handleSearchInput, ref: (el) => (this.searchInputEl = el) }))), this.isOpen && this.searchable && options.length === 0 && (h("div", { key: '0b9a0a98cb298dd25f2f869f7c6d01ced4c030a8', class: "co-select__empty" }, this.emptyText)), h("div", { key: '4c0aa1f9e0f0f3fcede94decb037217466c80ca5', class: "co-select__options", ref: (el) => (this.optionsContainerEl = el) }, this.isOpen && (() => {
224
230
  const { totalHeight, startIdx, endIdx, offsetY } = this.getVirtualSlice(options);
225
231
  return (h("div", { class: "co-select__virtual-spacer", style: { height: `${totalHeight}px`, position: 'relative' } }, h("div", { style: { position: 'absolute', top: `${offsetY}px`, left: '0', right: '0' } }, options.slice(startIdx, endIdx).map(opt => {
226
232
  const isSelected = selected.includes(opt.value);
@@ -231,7 +237,7 @@ export class CoSelect {
231
237
  'co-select__option--disabled': isDisabled,
232
238
  }, onClick: () => !isDisabled && this.handleOptionClick(opt.value) }, opt.image ? (h("img", { class: "co-select__option-flag", src: opt.image, alt: "", loading: "lazy" })) : opt.icon ? (h("co-icon", { name: opt.icon, size: 20, class: "co-select__option-icon" })) : null, h("span", { class: "co-select__option-label" }, this.renderLabel(opt.label)), isSelected && h("co-icon", { name: "check", size: 16, class: "co-select__option-check" })));
233
239
  }))));
234
- })()))), this.helperText && (h("div", { key: '2d65962fc0025c8bf2b3950328e0187a15c92cf8', class: `co-select__helper co-select__helper--${this.status}` }, this.statusIcon && h("co-icon", { key: 'c64d2b35fb10dbe5e25a9db78c7155f9cfdde33c', name: this.statusIcon, size: 14, weight: "fill", class: "co-select__helper-icon" }), h("span", { key: 'e49697063342fd79a85e101a821f944e781c9ef5', class: "co-select__helper-text" }, this.helperText)))));
240
+ })()))), this.helperText && (h("div", { key: 'b7f14d7e02dd3fe15be6c0f82b13df14edc0db60', class: `co-select__helper co-select__helper--${this.status}` }, this.statusIcon && h("co-icon", { key: '384f8ecbf6b20da23a7ff6e0b8e1745058e624ef', name: this.statusIcon, size: 14, weight: "fill", class: "co-select__helper-icon" }), h("span", { key: '26d47cad143f8d66819d497d4618893599665aff', class: "co-select__helper-text" }, this.helperText)))));
235
241
  }
236
242
  static get is() { return "co-select"; }
237
243
  static get encapsulation() { return "shadow"; }
@@ -529,6 +535,26 @@ export class CoSelect {
529
535
  "attribute": "size",
530
536
  "defaultValue": "'md'"
531
537
  },
538
+ "variant": {
539
+ "type": "string",
540
+ "mutable": false,
541
+ "complexType": {
542
+ "original": "'default' | 'flat'",
543
+ "resolved": "\"default\" | \"flat\"",
544
+ "references": {}
545
+ },
546
+ "required": false,
547
+ "optional": false,
548
+ "docs": {
549
+ "tags": [],
550
+ "text": "Visual style. `flat` strips the trigger's border and background so it\nreads as plain content instead of a boxed control \u2014 padding, label,\nfocus ring, disabled and status states are unaffected. `default` (the\nstandard bordered box) renders identically to before this prop existed."
551
+ },
552
+ "getter": false,
553
+ "setter": false,
554
+ "reflect": true,
555
+ "attribute": "variant",
556
+ "defaultValue": "'default'"
557
+ },
532
558
  "searchable": {
533
559
  "type": "boolean",
534
560
  "mutable": false,
@@ -57,7 +57,7 @@ export class CoSeparator {
57
57
  style['--co-separator-inset-end'] = '0px';
58
58
  }
59
59
  }
60
- return (h("hr", { key: '79a2dd5c7bc7d37d1b9d77b03e72b6014228532b', class: {
60
+ return (h("hr", { key: 'ef9b9d7c11ca50e1042ddb613ee3bbaaf7802972', class: {
61
61
  'co-separator': true,
62
62
  'co-separator--vertical': this.vertical,
63
63
  'co-separator--dark': this.dark,
@@ -10,10 +10,10 @@ export class CoSidebar {
10
10
  this.mode = 'full';
11
11
  }
12
12
  render() {
13
- return (h("nav", { key: 'ea33fc3e60a0b3e7f5d5ad37569524aa46b1cb76', class: {
13
+ return (h("nav", { key: '1bc3acd9fa28f05c9665d9fe0ab78b9bf701b56e', class: {
14
14
  'co-sidebar': true,
15
15
  [`co-sidebar--${this.mode}`]: true,
16
- }, part: "sidebar" }, h("div", { key: '7feaf48ba91059cf5b046579b68adfbfb896850d', class: "co-sidebar__header", part: "header" }, h("slot", { key: '869fd6af70b09829ef05f15b2fdab554a978f1f8', name: "header" })), h("div", { key: '1bc044d4c70854b748e473041fea378ca1e3bd4f', class: "co-sidebar__body", part: "body" }, h("slot", { key: '0c0033d1af7a9dd902a61da6e97811e75214e9c5' })), h("div", { key: 'ef37cc7709b4d6afc420f1e3aaba13b6db2997e6', class: "co-sidebar__footer", part: "footer" }, h("slot", { key: 'df1b6a08c313ed1818fcfd93a89f9c1cd709bccd', name: "footer" }))));
16
+ }, part: "sidebar" }, h("div", { key: 'a69b8746d524053a6caac9d8c5c8764f414cb599', class: "co-sidebar__header", part: "header" }, h("slot", { key: '6f4fe0997327537261663c3177c29bd59aba2f3f', name: "header" })), h("div", { key: 'f1c5d4fd6d11c5c872591706ab0c84d238bdf09b', class: "co-sidebar__body", part: "body" }, h("slot", { key: '06b3192da38333283cf1a2c7e2c4922bce2d4b56' })), h("div", { key: 'fb16f4a10d90cbbb82afbad3c531f5e807039cb8', class: "co-sidebar__footer", part: "footer" }, h("slot", { key: '916b98484c92cb8c9e24f7b0e2facbd926bc8f68', name: "footer" }))));
17
17
  }
18
18
  static get is() { return "co-sidebar"; }
19
19
  static get encapsulation() { return "shadow"; }
@@ -16,7 +16,7 @@ export class CoSkeleton {
16
16
  const style = { width: this.width };
17
17
  if (this.height)
18
18
  style.height = this.height;
19
- return (h("div", { key: 'e62aec4781b1ef8b7b4fa2ba423cf9e94184646a', class: { 'co-skeleton': true, [`co-skeleton--${this.variant}`]: true }, part: "skeleton", style: style, "aria-hidden": "true" }));
19
+ return (h("div", { key: '62e14646999122acf4190e503bc89ba1a75a16a0', class: { 'co-skeleton': true, [`co-skeleton--${this.variant}`]: true }, part: "skeleton", style: style, "aria-hidden": "true" }));
20
20
  }
21
21
  static get is() { return "co-skeleton"; }
22
22
  static get encapsulation() { return "shadow"; }
@@ -72,12 +72,12 @@ export class CoSlider {
72
72
  }
73
73
  render() {
74
74
  const pct = this.percentage;
75
- return (h("div", { key: 'a445c6c490d0a86aabdd1863ffca7fb5b6a83dcb', class: {
75
+ return (h("div", { key: '1f94a2bea59726bfe63dd0226e6c76aba6e5eed6', class: {
76
76
  'co-slider': true,
77
77
  'co-slider--disabled': this.disabled,
78
78
  'co-slider--dragging': this.dragging,
79
79
  [`co-slider--${this.status}`]: this.status !== 'default',
80
- } }, (this.label || this.secondaryLabel || this.showValue) && (h("div", { key: '604b51df33236b1401660a8b914035adbd339665', class: "co-slider__labels" }, h("div", { key: '3000bbc413d021ecdfbbb7efef5d8ec6d5924e6e', class: "co-slider__labels-left" }, this.label && h("label", { key: 'b9b02590dc634466834ac6229934cf3b78281fb6', class: "co-slider__label" }, this.label), this.secondaryLabel && h("span", { key: 'c6acee956d73ae313b26196b87ee7ea1b8a2b134', class: "co-slider__secondary-label" }, this.secondaryLabel)), this.showValue && h("span", { key: 'aba76d883e5cf2631104cbaebb302002e1fe496a', class: "co-slider__value" }, this.value))), h("div", { key: '6535ee992fccc80988c77a33032846e8b5fe605f', class: "co-slider__track-wrapper", ref: el => (this.trackEl = el), onPointerDown: this.handlePointerDown }, h("div", { key: 'c017699fc2fea78cb55cac01b4dce6c8c660d27a', class: "co-slider__track" }, h("div", { key: '7831a55b6e34544915e27fb2ed5dd84f92acb60e', class: "co-slider__fill", style: { width: `${pct}%` } })), h("div", { key: 'e03368137b3e548e9a082f1f7f57b6e7a9b0df37', class: "co-slider__thumb", style: { left: `${pct}%` } })), this.showMarks && (h("div", { key: '8f8be1af979de772be4f7ebc69e9d3b6a7c2f58d', class: "co-slider__marks" }, h("span", { key: '2037b37b88f6a5734bf8845e5a562ca17d823ef0', class: "co-slider__mark" }, this.min), h("span", { key: 'db35ba88af0d4b13b4f47370360d0f041fbeb4b7', class: "co-slider__mark" }, this.max))), h("input", { key: '6a98de808328d9a72f4b95f9a64ad01e4003082e', class: "co-slider__native", type: "range", min: this.min, max: this.max, step: this.step, value: this.value, disabled: this.disabled, onInput: this.handleInputChange, "aria-label": this.label || 'Slider' }), this.helperText && (h("div", { key: '2d5f0d9ccf9d4e052ddbedb5080718f9e71f0605', class: `co-slider__helper co-slider__helper--${this.status}` }, this.statusIcon && h("co-icon", { key: 'afa9618ff8a3dfab3a55163e1fe500c58f0a4406', name: this.statusIcon, size: 14, weight: "fill", class: "co-slider__helper-icon" }), h("span", { key: '6e0c46b8561beca6a3dadf03d117a8526d31a860', class: "co-slider__helper-text" }, this.helperText)))));
80
+ } }, (this.label || this.secondaryLabel || this.showValue) && (h("div", { key: '53731220f37468ad024ead0b930b7fa542ce3254', class: "co-slider__labels" }, h("div", { key: '39eccf3964f1463a7a84a8420f2963f0b79935ec', class: "co-slider__labels-left" }, this.label && h("label", { key: 'ab63ada93da100e8d613fcd392dad3b9c6fde6d4', class: "co-slider__label" }, this.label), this.secondaryLabel && h("span", { key: 'a821f151830ef03296724a21241342348848006c', class: "co-slider__secondary-label" }, this.secondaryLabel)), this.showValue && h("span", { key: '1c0888c1ccb60544a5d1fb20c3d44a04d73fa3a0', class: "co-slider__value" }, this.value))), h("div", { key: 'a766dc086713341329a560bc332130245160eb02', class: "co-slider__track-wrapper", ref: el => (this.trackEl = el), onPointerDown: this.handlePointerDown }, h("div", { key: 'a6aa57cafbf17efc2079627e822f4a909324fa35', class: "co-slider__track" }, h("div", { key: '07183ce09d776aea1249276d44383162f5634633', class: "co-slider__fill", style: { width: `${pct}%` } })), h("div", { key: 'e139f1cec3ec5060667602ac04bdf7e0e6d9ef6d', class: "co-slider__thumb", style: { left: `${pct}%` } })), this.showMarks && (h("div", { key: '5df827960aa6d8cb48305efd3a090ed8fe981c88', class: "co-slider__marks" }, h("span", { key: '8f3f20a7e2f5d15f1b8a10f548093b374b41eac0', class: "co-slider__mark" }, this.min), h("span", { key: '11196868d93fd21c9ab3e8f672aad51fcd1e2907', class: "co-slider__mark" }, this.max))), h("input", { key: '97bb0aa1e2ec72c5052c2c0018c5ba3d488aa704', class: "co-slider__native", type: "range", min: this.min, max: this.max, step: this.step, value: this.value, disabled: this.disabled, onInput: this.handleInputChange, "aria-label": this.label || 'Slider' }), this.helperText && (h("div", { key: 'c5e41ad16c3548703c544dd412f121c1933976db', class: `co-slider__helper co-slider__helper--${this.status}` }, this.statusIcon && h("co-icon", { key: 'f6d17f21068433ba9fea7fec7f7015fe7a03576d', name: this.statusIcon, size: 14, weight: "fill", class: "co-slider__helper-icon" }), h("span", { key: '8f85afae6cf7b6a1cbec2096a39312b9c691ac55', class: "co-slider__helper-text" }, this.helperText)))));
81
81
  }
82
82
  static get is() { return "co-slider"; }
83
83
  static get encapsulation() { return "shadow"; }
@@ -29,16 +29,16 @@ export class CoSwitch {
29
29
  render() {
30
30
  const hasLabels = this.label || this.secondaryLabel;
31
31
  const hasHelper = !!this.helperText;
32
- return (h("div", { key: 'aa2690f72e8a64fcf835a58ed7b5a578e93dd6fa', class: {
32
+ return (h("div", { key: '526145ecd1b1592cc650db93f0628ef07e5e1786', class: {
33
33
  'co-switch-wrapper': true,
34
34
  'co-switch-wrapper--disabled': this.disabled,
35
35
  [`co-switch-wrapper--${this.status}`]: this.status !== 'default',
36
- } }, h("div", { key: 'fda38eadee3187b559ab343acd80de17d6f88da1', class: "co-switch-wrapper__row", onClick: this.handleClick }, h("button", { key: '11c63216f459295d2858530f9d879913d205417d', role: "switch", "aria-checked": String(this.checked), "aria-label": this.label || '', class: {
36
+ } }, h("div", { key: '4e72f02ad08d6f15f0bbc6a202db9965666dbd45', class: "co-switch-wrapper__row", onClick: this.handleClick }, h("button", { key: '3ce3f2a7f89c4c5017127df470166267f619a739', role: "switch", "aria-checked": String(this.checked), "aria-label": this.label || '', class: {
37
37
  'co-switch': true,
38
38
  'co-switch--on': this.checked,
39
39
  'co-switch--off': !this.checked,
40
40
  'co-switch--disabled': this.disabled,
41
- }, disabled: this.disabled, part: "track" }, h("span", { key: '6e6060ee3128697653bb11335e7ebd82a37d2960', class: "co-switch__thumb", part: "thumb" })), hasLabels && (h("div", { key: '10084cce0ded48f6188fe5bbba1e2058f2d6962c', class: "co-switch-wrapper__labels" }, this.label && h("span", { key: '87665730e8cf05f481f4835594fd912f4499b9c7', class: "co-switch-wrapper__label", part: "label" }, this.label, h(RequiredMark, { key: '0d121097ee0c5ca14f150a93a9f021ddf883667c', required: this.required })), this.secondaryLabel && (h("span", { key: '0bc01f629b4b62ba7c86e2ff229b127a3ac45537', class: "co-switch-wrapper__secondary-label", part: "secondary-label" }, this.secondaryLabel))))), hasHelper && (h("div", { key: '7447890f8f651445917e1b59166e827e1a0a52ca', class: `co-switch-wrapper__helper co-switch-wrapper__helper--${this.status}` }, this.statusIcon && (h("co-icon", { key: '5759ca2e6b013743ce263a4b002214c03d8a202c', name: this.statusIcon, size: 14, weight: "fill", class: "co-switch-wrapper__helper-icon" })), h("span", { key: '359a87a5865fde6d9db953e6e4554a7b5ae5cb5e', class: "co-switch-wrapper__helper-text" }, this.helperText)))));
41
+ }, disabled: this.disabled, part: "track" }, h("span", { key: 'c8189b585b70b08c269e04505a5edbbb3b3a064c', class: "co-switch__thumb", part: "thumb" })), hasLabels && (h("div", { key: '912328e5167f0db2704267713e988807cda0c318', class: "co-switch-wrapper__labels" }, this.label && h("span", { key: 'd86b976d95ec01fb16529034f75fa0b874e1c4f0', class: "co-switch-wrapper__label", part: "label" }, this.label, h(RequiredMark, { key: '89623a1a38326a443598a7e0598035e6067ef977', required: this.required })), this.secondaryLabel && (h("span", { key: 'df602d9aa8eba9805674cc921447e7621338d551', class: "co-switch-wrapper__secondary-label", part: "secondary-label" }, this.secondaryLabel))))), hasHelper && (h("div", { key: '63198303a7ba9fd9a3b6c306018867802491b535', class: `co-switch-wrapper__helper co-switch-wrapper__helper--${this.status}` }, this.statusIcon && (h("co-icon", { key: '1f2790d86165562add0967856e1812ccce90d703', name: this.statusIcon, size: 14, weight: "fill", class: "co-switch-wrapper__helper-icon" })), h("span", { key: '77ab535dc73ef130d360e4d31c0cc9b510a4b94c', class: "co-switch-wrapper__helper-text" }, this.helperText)))));
42
42
  }
43
43
  static get is() { return "co-switch"; }
44
44
  static get encapsulation() { return "shadow"; }
@@ -21,13 +21,13 @@ export class CoTab {
21
21
  }
22
22
  render() {
23
23
  const iconSize = this.variant === 'underline' ? 16 : this.size === 'large' ? 18 : 14;
24
- return (h("button", { key: '77fc8443dbdc5fe327ea28de6e926c4438e96cca', class: {
24
+ return (h("button", { key: '7899f20cb7d2692331364a61cd2b9ef744f422ba', class: {
25
25
  'co-tab': true,
26
26
  [`co-tab--${this.size}`]: true,
27
27
  [`co-tab--${this.variant}`]: true,
28
28
  'co-tab--selected': this.selected,
29
29
  'co-tab--disabled': this.disabled,
30
- }, type: "button", role: "tab", "aria-selected": this.selected ? 'true' : 'false', disabled: this.disabled, part: "tab", onClick: this.handleClick }, this.iconLeft && (h("co-icon", { key: '6d209028484dc6726f48cf1c5919cdeb59dac33a', name: this.iconLeft, size: iconSize })), h("span", { key: 'ee7cbdaaa22dde0b6ed599a1c9d20909f639d3db' }, this.label), this.badge && (h("span", { key: 'a1099b9d141f70d70e736853da2261fe3a125964', class: "co-tab__badge", part: "badge" }, this.badge)), this.iconRight && (h("co-icon", { key: '56a8917e4bbb27411f1bed6ef7b0a11e8c8b75b7', name: this.iconRight, size: iconSize }))));
30
+ }, type: "button", role: "tab", "aria-selected": this.selected ? 'true' : 'false', disabled: this.disabled, part: "tab", onClick: this.handleClick }, this.iconLeft && (h("co-icon", { key: '535a9993eda5ee22c01bbbbed0bb3b357eac088b', name: this.iconLeft, size: iconSize })), h("span", { key: '46786bee82d9f0935fe23e09bea59aa50791e38c' }, this.label), this.badge && (h("span", { key: 'a9eaa06f970a70b6e55e9cb295709d340db3bdf4', class: "co-tab__badge", part: "badge" }, this.badge)), this.iconRight && (h("co-icon", { key: 'bcf9ba9c5846592d47d81640e0e609cfa8dde5af', name: this.iconRight, size: iconSize }))));
31
31
  }
32
32
  static get is() { return "co-tab"; }
33
33
  static get encapsulation() { return "shadow"; }
@@ -17,12 +17,15 @@
17
17
  }
18
18
 
19
19
  /* ─── Segmented variant ─────────────────────────────────────── */
20
- /* Gray track + white active pill (Figma segmented control). The
21
- track hugs its content; each co-tab styles its own pill. */
20
+ /* Gray track + white active pill (Figma segmented control, node
21
+ 3500:93295). The track hugs its content; each co-tab styles its
22
+ own pill. The subtle bottom border is part of the track itself —
23
+ hosts must not add their own separator under it. */
22
24
  .co-tab-group--segmented {
23
25
  display: inline-flex;
24
- gap: 2px;
25
- padding: 3px;
26
+ gap: var(--co-spacing-xxs, 2px);
27
+ padding: var(--co-spacing-sm, 6px);
26
28
  background: var(--co-color-gray-100, #f6f6f6);
29
+ border-bottom: 1px solid var(--co-color-opacity-negro-4, rgba(31, 28, 27, 0.04));
27
30
  border-radius: var(--co-border-radius-sm, 12px);
28
31
  }
@@ -33,10 +33,10 @@ export class CoTabGroup {
33
33
  });
34
34
  }
35
35
  render() {
36
- return (h("div", { key: 'b0e4e872934528c7dbce3bf1c0329b1efb0db887', class: {
36
+ return (h("div", { key: 'fa78f36e2c58a2dfa33280ecc58a8e22b55a0238', class: {
37
37
  'co-tab-group': true,
38
38
  [`co-tab-group--${this.variant}`]: true,
39
- }, role: "tablist", part: "tab-group" }, h("slot", { key: '407d99ce75badc9bfeecaf8506155ef346681489', onSlotchange: this.onSlotChange })));
39
+ }, role: "tablist", part: "tab-group" }, h("slot", { key: '0c27dbc561fa7aac4cb7697abb3b71187c9c53ff', onSlotchange: this.onSlotChange })));
40
40
  }
41
41
  static get is() { return "co-tab-group"; }
42
42
  static get encapsulation() { return "shadow"; }