@prolibu-suite/cobalt-core 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (590) hide show
  1. package/custom-elements.json +15675 -11199
  2. package/dist/cjs/co-accordion.cjs.entry.js +3 -3
  3. package/dist/cjs/co-app-shell.cjs.entry.js +4 -4
  4. package/dist/cjs/co-autocomplete.cjs.entry.js +10 -7
  5. package/dist/cjs/co-avatar-group.cjs.entry.js +77 -0
  6. package/dist/cjs/co-avatar.cjs.entry.js +6 -4
  7. package/dist/cjs/co-badge.cjs.entry.js +2 -2
  8. package/dist/cjs/co-bottom-sheet.cjs.entry.js +325 -0
  9. package/dist/cjs/co-button-group.cjs.entry.js +3 -3
  10. package/dist/cjs/co-button.cjs.entry.js +6 -6
  11. package/dist/cjs/co-calendar-month.cjs.entry.js +381 -0
  12. package/dist/cjs/co-calendar_3.cjs.entry.js +11 -11
  13. package/dist/cjs/co-card.cjs.entry.js +3 -3
  14. package/dist/cjs/co-checkbox-group.cjs.entry.js +5 -5
  15. package/dist/cjs/co-checkbox.cjs.entry.js +5 -5
  16. package/dist/cjs/co-chip.cjs.entry.js +11 -8
  17. package/dist/cjs/co-color-picker.cjs.entry.js +7 -5
  18. package/dist/cjs/co-column-picker.cjs.entry.js +3 -3
  19. package/dist/cjs/co-combobox.cjs.entry.js +7 -7
  20. package/dist/cjs/co-command-search.cjs.entry.js +151 -12
  21. package/dist/cjs/co-data-table-pagination.cjs.entry.js +5 -5
  22. package/dist/cjs/co-data-table.cjs.entry.js +25 -11
  23. package/dist/cjs/co-date-picker.cjs.entry.js +2 -2
  24. package/dist/cjs/co-date-range-picker.cjs.entry.js +3 -3
  25. package/dist/cjs/co-date-range.cjs.entry.js +2 -2
  26. package/dist/cjs/co-empty-state.cjs.entry.js +2 -2
  27. package/dist/cjs/co-event-calendar.cjs.entry.js +318 -0
  28. package/dist/cjs/co-fab.cjs.entry.js +3 -3
  29. package/dist/cjs/co-file-field.cjs.entry.js +8 -8
  30. package/dist/cjs/co-helper-text.cjs.entry.js +3 -3
  31. package/dist/cjs/co-icon-button.cjs.entry.js +5 -5
  32. package/dist/cjs/co-icon.cjs.entry.js +33 -25
  33. package/dist/cjs/co-input.cjs.entry.js +6 -6
  34. package/dist/cjs/co-json-field.cjs.entry.js +10 -6
  35. package/dist/cjs/co-lightbox.cjs.entry.js +5 -5
  36. package/dist/cjs/co-list-footer.cjs.entry.js +25 -0
  37. package/dist/cjs/co-list-item.cjs.entry.js +60 -4
  38. package/dist/cjs/co-loader_2.cjs.entry.js +293 -0
  39. package/dist/cjs/co-menu-divider.cjs.entry.js +2 -2
  40. package/dist/cjs/co-menu-item.cjs.entry.js +17 -10
  41. package/dist/cjs/co-menu.cjs.entry.js +2 -2
  42. package/dist/cjs/co-modal.cjs.entry.js +16 -4
  43. package/dist/cjs/co-navbar.cjs.entry.js +3 -3
  44. package/dist/cjs/co-number-field.cjs.entry.js +18 -6
  45. package/dist/cjs/co-page-header.cjs.entry.js +2 -2
  46. package/dist/cjs/co-phone-field.cjs.entry.js +6 -4
  47. package/dist/cjs/co-popover.cjs.entry.js +45 -14
  48. package/dist/cjs/co-progress-bar.cjs.entry.js +8 -4
  49. package/dist/cjs/co-progress-circle.cjs.entry.js +3 -3
  50. package/dist/cjs/co-radio-group.cjs.entry.js +4 -4
  51. package/dist/cjs/co-radio.cjs.entry.js +4 -4
  52. package/dist/cjs/co-rating.cjs.entry.js +4 -4
  53. package/dist/cjs/co-ref-field.cjs.entry.js +36 -13
  54. package/dist/cjs/co-rich-text-editor.cjs.entry.js +1879 -33
  55. package/dist/cjs/co-rich-text-toolbar.cjs.entry.js +995 -71
  56. package/dist/cjs/co-rich-text-viewer.cjs.entry.js +55 -19
  57. package/dist/cjs/co-row.cjs.entry.js +3 -3
  58. package/dist/cjs/co-select.cjs.entry.js +8 -8
  59. package/dist/cjs/co-separator.cjs.entry.js +2 -2
  60. package/dist/cjs/co-sidebar-nav.cjs.entry.js +29 -9
  61. package/dist/cjs/co-sidebar.cjs.entry.js +3 -3
  62. package/dist/cjs/co-skeleton.cjs.entry.js +26 -0
  63. package/dist/cjs/co-slider.cjs.entry.js +3 -3
  64. package/dist/cjs/co-switch.cjs.entry.js +6 -6
  65. package/dist/cjs/co-tab-group.cjs.entry.js +2 -2
  66. package/dist/cjs/co-tab.cjs.entry.js +3 -3
  67. package/dist/cjs/co-tags-field.cjs.entry.js +19 -13
  68. package/dist/cjs/co-textarea.cjs.entry.js +11 -7
  69. package/dist/cjs/co-toast.cjs.entry.js +2 -2
  70. package/dist/cjs/co-toggle-button-group.cjs.entry.js +4 -4
  71. package/dist/cjs/co-toggle-button.cjs.entry.js +4 -4
  72. package/dist/cjs/co-tooltip.cjs.entry.js +51 -16
  73. package/dist/cjs/co-transfer-list.cjs.entry.js +3 -3
  74. package/dist/cjs/co-video.cjs.entry.js +839 -0
  75. package/dist/cjs/cobalt.cjs.js +2 -2
  76. package/dist/cjs/fieldChip-CDIMz_Y6.js +7 -0
  77. package/dist/cjs/{index-CaEJnpZe.js → index-5NdsiFjZ.js} +14509 -6317
  78. package/dist/cjs/{index-DoFnrUVH.js → index-BumlM92r.js} +45 -21
  79. package/dist/cjs/loader.cjs.js +2 -2
  80. package/dist/cjs/overlayAfterClose-BdeXrhVY.js +12 -0
  81. package/dist/{esm/sanitizer-DcK0GGZC.js → cjs/purify.es-DX41ZWS2.js} +3 -107
  82. package/dist/cjs/{requiredMark-DA6y-4rp.js → requiredMark-CqMGt1H1.js} +1 -1
  83. package/dist/cjs/richTextI18n-B7ktXg3M.js +382 -0
  84. package/dist/cjs/toolbar-config-3PlT-3zm.js +216 -0
  85. package/dist/cjs/tz-Dgom0W69.js +127 -0
  86. package/dist/cobalt/cobalt.css +1 -1
  87. package/dist/cobalt/cobalt.esm.js +1 -1
  88. package/dist/cobalt/p-0a506c9d.entry.js +1 -0
  89. package/dist/cobalt/p-0bb55163.entry.js +1 -0
  90. package/dist/cobalt/{p-6404bd21.entry.js → p-0e8c0d87.entry.js} +1 -1
  91. package/dist/cobalt/p-12e2c2c4.entry.js +1 -0
  92. package/dist/cobalt/p-136ad468.entry.js +1 -0
  93. package/dist/cobalt/{p-654bbc2a.entry.js → p-14b59277.entry.js} +1 -1
  94. package/dist/cobalt/p-1531d3c9.entry.js +1 -0
  95. package/dist/cobalt/p-1774d211.entry.js +1 -0
  96. package/dist/cobalt/p-180e1106.entry.js +1 -0
  97. package/dist/cobalt/p-1a07c23c.entry.js +1 -0
  98. package/dist/cobalt/p-1dc9c49e.entry.js +1 -0
  99. package/dist/cobalt/p-1f747e45.entry.js +1 -0
  100. package/dist/cobalt/p-201eaf35.entry.js +1 -0
  101. package/dist/cobalt/p-260101ab.entry.js +1 -0
  102. package/dist/cobalt/p-279bf91c.entry.js +1 -0
  103. package/dist/cobalt/p-29be61a9.entry.js +1 -0
  104. package/dist/cobalt/p-2d2ce434.entry.js +1 -0
  105. package/dist/cobalt/{p-aa63812a.entry.js → p-2f86e1e0.entry.js} +1 -1
  106. package/dist/cobalt/{p-522fcdb7.entry.js → p-31ab9a46.entry.js} +1 -1
  107. package/dist/cobalt/{p-fe9e85b6.entry.js → p-37595103.entry.js} +1 -1
  108. package/dist/cobalt/{p-def448e4.entry.js → p-377c2ccc.entry.js} +1 -1
  109. package/dist/cobalt/p-3863ea91.entry.js +1 -0
  110. package/dist/cobalt/p-3a257cb0.entry.js +1 -0
  111. package/dist/cobalt/p-3e187456.entry.js +1 -0
  112. package/dist/cobalt/{p-5d01bd4d.entry.js → p-4431faac.entry.js} +1 -1
  113. package/dist/cobalt/{p-54f26e95.entry.js → p-4504f7b0.entry.js} +1 -1
  114. package/dist/cobalt/{p-f8728b21.entry.js → p-456fa86f.entry.js} +1 -1
  115. package/dist/cobalt/{p-3f9b3fcb.entry.js → p-4871690e.entry.js} +1 -1
  116. package/dist/cobalt/{p-d17e1444.entry.js → p-4c01d984.entry.js} +1 -1
  117. package/dist/cobalt/p-51a53177.entry.js +1 -0
  118. package/dist/cobalt/p-52de17da.entry.js +1 -0
  119. package/dist/cobalt/p-5890e4d1.entry.js +1 -0
  120. package/dist/cobalt/{p-f2c5cb74.entry.js → p-58a53421.entry.js} +1 -1
  121. package/dist/cobalt/p-62274eba.entry.js +1 -0
  122. package/dist/cobalt/p-635b03d5.entry.js +1 -0
  123. package/dist/cobalt/p-64ddee92.entry.js +1 -0
  124. package/dist/cobalt/p-65af5017.entry.js +1 -0
  125. package/dist/cobalt/p-69d4c0c8.entry.js +1 -0
  126. package/dist/cobalt/p-6c480916.entry.js +1 -0
  127. package/dist/cobalt/p-6d1217c3.entry.js +1 -0
  128. package/dist/cobalt/{p-f0e8fa7d.entry.js → p-6e808b3a.entry.js} +1 -1
  129. package/dist/cobalt/{p-f97ad9ad.entry.js → p-70b14b05.entry.js} +1 -1
  130. package/dist/cobalt/{p-97c20011.entry.js → p-790d384e.entry.js} +1 -1
  131. package/dist/cobalt/p-8012e152.entry.js +1 -0
  132. package/dist/cobalt/p-80b27203.entry.js +1 -0
  133. package/dist/cobalt/p-867c1465.entry.js +1 -0
  134. package/dist/cobalt/p-86a143d7.entry.js +1 -0
  135. package/dist/cobalt/{p-e8b58332.entry.js → p-8d59f5ad.entry.js} +1 -1
  136. package/dist/cobalt/p-8d7fdb9d.entry.js +1 -0
  137. package/dist/cobalt/{p-7f818368.entry.js → p-8dc1dab8.entry.js} +1 -1
  138. package/dist/cobalt/{p-beb9c11d.entry.js → p-8e1dc062.entry.js} +1 -1
  139. package/dist/cobalt/p-929e647f.entry.js +1 -0
  140. package/dist/cobalt/p-92bd9b29.entry.js +1 -0
  141. package/dist/cobalt/p-93046365.entry.js +1 -0
  142. package/dist/cobalt/p-98ab5f3f.entry.js +1 -0
  143. package/dist/cobalt/{p-c87285b6.entry.js → p-9a04ca90.entry.js} +1 -1
  144. package/dist/cobalt/{p-7ef766c6.entry.js → p-9a088515.entry.js} +1 -1
  145. package/dist/cobalt/p-9abbd436.entry.js +1 -0
  146. package/dist/cobalt/p-9d69c067.entry.js +1 -0
  147. package/dist/cobalt/p-B-ckjCUA.js +1 -0
  148. package/dist/cobalt/p-B2QLgWrz.js +2 -0
  149. package/dist/cobalt/p-B6JZk8fL.js +1 -0
  150. package/dist/cobalt/p-BZJ7NCm5.js +1 -0
  151. package/dist/cobalt/p-CYsftTKf.js +2 -0
  152. package/dist/cobalt/p-CegCk7FL.js +1 -0
  153. package/dist/cobalt/p-Ch1jfwZ2.js +1 -0
  154. package/dist/cobalt/p-ChibIpZv.js +1 -0
  155. package/dist/cobalt/p-afb7e19e.entry.js +1 -0
  156. package/dist/cobalt/{p-b758c2e6.entry.js → p-b6f20268.entry.js} +1 -1
  157. package/dist/cobalt/{p-bb07da22.entry.js → p-ba90e871.entry.js} +1 -1
  158. package/dist/cobalt/p-c10697e1.entry.js +1 -0
  159. package/dist/cobalt/p-c4f59532.entry.js +1 -0
  160. package/dist/cobalt/{p-1e0282b8.entry.js → p-cb235aa7.entry.js} +1 -1
  161. package/dist/cobalt/p-cfb36943.entry.js +1 -0
  162. package/dist/cobalt/p-d809bd44.entry.js +1 -0
  163. package/dist/cobalt/p-e53861e4.entry.js +1 -0
  164. package/dist/cobalt/p-e54dd404.entry.js +1 -0
  165. package/dist/cobalt/{p-01fc77c4.entry.js → p-eb18fdbf.entry.js} +1 -1
  166. package/dist/cobalt/{p-95d14878.entry.js → p-eb73052a.entry.js} +1 -1
  167. package/dist/cobalt/{p-273afd93.entry.js → p-ef7d4ae3.entry.js} +1 -1
  168. package/dist/cobalt/p-f4063c41.entry.js +1 -0
  169. package/dist/cobalt/p-oImf-7fN.js +1 -0
  170. package/dist/cobalt/{p-CyYF8IJE.js → p-tPYikBRJ.js} +1 -1
  171. package/dist/collection/collection-manifest.json +10 -3
  172. package/dist/collection/components/co-accordion/co-accordion.js +2 -2
  173. package/dist/collection/components/co-app-shell/co-app-shell.css +79 -6
  174. package/dist/collection/components/co-app-shell/co-app-shell.js +2 -2
  175. package/dist/collection/components/co-autocomplete/co-autocomplete.css +28 -1
  176. package/dist/collection/components/co-autocomplete/co-autocomplete.js +27 -4
  177. package/dist/collection/components/co-avatar/co-avatar.css +38 -1
  178. package/dist/collection/components/co-avatar/co-avatar.js +23 -2
  179. package/dist/collection/components/co-avatar-group/co-avatar-group.css +86 -0
  180. package/dist/collection/components/co-avatar-group/co-avatar-group.js +224 -0
  181. package/dist/collection/components/co-badge/co-badge.js +1 -1
  182. package/dist/collection/components/co-bottom-sheet/co-bottom-sheet.css +136 -0
  183. package/dist/collection/components/co-bottom-sheet/co-bottom-sheet.js +507 -0
  184. package/dist/collection/components/co-button/co-button.css +40 -7
  185. package/dist/collection/components/co-button/co-button.js +26 -7
  186. package/dist/collection/components/co-button-group/co-button-group.js +2 -2
  187. package/dist/collection/components/co-calendar/co-calendar.js +1 -1
  188. package/dist/collection/components/co-calendar-month/co-calendar-month.css +231 -0
  189. package/dist/collection/components/co-calendar-month/co-calendar-month.js +594 -0
  190. package/dist/collection/components/co-card/co-card.js +2 -2
  191. package/dist/collection/components/co-checkbox/co-checkbox.css +7 -1
  192. package/dist/collection/components/co-checkbox/co-checkbox.js +3 -3
  193. package/dist/collection/components/co-checkbox-group/co-checkbox-group.css +7 -1
  194. package/dist/collection/components/co-checkbox-group/co-checkbox-group.js +3 -3
  195. package/dist/collection/components/co-chip/co-chip.css +27 -7
  196. package/dist/collection/components/co-chip/co-chip.js +52 -10
  197. package/dist/collection/components/co-color-picker/co-color-picker.css +35 -1
  198. package/dist/collection/components/co-color-picker/co-color-picker.js +24 -2
  199. package/dist/collection/components/co-column-picker/co-column-picker.js +2 -2
  200. package/dist/collection/components/co-combobox/co-combobox.css +7 -47
  201. package/dist/collection/components/co-combobox/co-combobox.js +4 -4
  202. package/dist/collection/components/co-command-search/co-command-search.css +163 -1
  203. package/dist/collection/components/co-command-search/co-command-search.js +355 -14
  204. package/dist/collection/components/co-command-search/commandSearchGroup.js +17 -0
  205. package/dist/collection/components/co-command-search/commandSearchLogic.js +27 -0
  206. package/dist/collection/components/co-data-table/co-data-table.css +37 -1
  207. package/dist/collection/components/co-data-table/co-data-table.js +25 -11
  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 +7 -1
  210. package/dist/collection/components/co-date-field/co-date-field.js +4 -4
  211. package/dist/collection/components/co-date-range/co-date-range.js +1 -1
  212. package/dist/collection/components/co-date-range-picker/co-date-range-picker.css +7 -1
  213. package/dist/collection/components/co-drawer/co-drawer.css +1 -0
  214. package/dist/collection/components/co-drawer/co-drawer.js +2 -2
  215. package/dist/collection/components/co-empty-state/co-empty-state.js +1 -1
  216. package/dist/collection/components/co-event-calendar/co-event-calendar.css +146 -0
  217. package/dist/collection/components/co-event-calendar/co-event-calendar.js +620 -0
  218. package/dist/collection/components/co-fab/co-fab.js +2 -2
  219. package/dist/collection/components/co-file-field/co-file-field.css +7 -1
  220. package/dist/collection/components/co-file-field/co-file-field.js +5 -5
  221. package/dist/collection/components/co-helper-text/co-helper-text.js +2 -2
  222. package/dist/collection/components/co-icon/co-icon.js +7 -37
  223. package/dist/collection/components/co-icon/iconLoader.js +39 -0
  224. package/dist/collection/components/co-icon-button/co-icon-button.css +19 -8
  225. package/dist/collection/components/co-icon-button/co-icon-button.js +23 -4
  226. package/dist/collection/components/co-input/co-input.css +7 -1
  227. package/dist/collection/components/co-input/co-input.js +3 -3
  228. package/dist/collection/components/co-json-field/co-json-field.css +25 -1
  229. package/dist/collection/components/co-json-field/co-json-field.js +27 -3
  230. package/dist/collection/components/co-lightbox/co-lightbox.js +4 -4
  231. package/dist/collection/components/co-list-footer/co-list-footer.css +50 -0
  232. package/dist/collection/components/co-list-footer/co-list-footer.js +149 -0
  233. package/dist/collection/components/co-list-item/co-list-item.css +7 -0
  234. package/dist/collection/components/co-list-item/co-list-item.js +65 -2
  235. package/dist/collection/components/co-loader/co-loader.css +9 -0
  236. package/dist/collection/components/co-menu/co-menu.js +1 -1
  237. package/dist/collection/components/co-menu-divider/co-menu-divider.js +1 -1
  238. package/dist/collection/components/co-menu-item/co-menu-item.css +18 -0
  239. package/dist/collection/components/co-menu-item/co-menu-item.js +15 -8
  240. package/dist/collection/components/co-modal/co-modal.css +42 -2
  241. package/dist/collection/components/co-modal/co-modal.js +42 -2
  242. package/dist/collection/components/co-navbar/co-navbar.js +2 -2
  243. package/dist/collection/components/co-number-field/co-number-field.css +19 -1
  244. package/dist/collection/components/co-number-field/co-number-field.js +34 -3
  245. package/dist/collection/components/co-overlay/co-overlay.css +15 -1
  246. package/dist/collection/components/co-overlay/co-overlay.js +266 -1
  247. package/dist/collection/components/co-overlay/focusTrap.js +53 -0
  248. package/dist/collection/components/co-overlay/overlayAfterClose.js +8 -0
  249. package/dist/collection/components/co-page-header/co-page-header.js +1 -1
  250. package/dist/collection/components/co-phone-field/co-phone-field.css +30 -2
  251. package/dist/collection/components/co-phone-field/co-phone-field.js +23 -1
  252. package/dist/collection/components/co-popover/co-popover.css +9 -0
  253. package/dist/collection/components/co-popover/co-popover.js +43 -12
  254. package/dist/collection/components/co-progress-bar/co-progress-bar.css +22 -0
  255. package/dist/collection/components/co-progress-bar/co-progress-bar.js +26 -2
  256. package/dist/collection/components/co-progress-circle/co-progress-circle.js +2 -2
  257. package/dist/collection/components/co-radio/co-radio.js +3 -3
  258. package/dist/collection/components/co-radio-group/co-radio-group.js +3 -3
  259. package/dist/collection/components/co-rating/co-rating.js +3 -3
  260. package/dist/collection/components/co-ref-field/co-ref-field.css +64 -6
  261. package/dist/collection/components/co-ref-field/co-ref-field.js +0 -0
  262. package/dist/collection/components/co-rich-text-editor/co-rich-text-editor.css +1125 -41
  263. package/dist/collection/components/co-rich-text-editor/co-rich-text-editor.js +2008 -53
  264. package/dist/collection/components/co-rich-text-toolbar/co-rich-text-toolbar.css +791 -9
  265. package/dist/collection/components/co-rich-text-toolbar/co-rich-text-toolbar.js +1071 -71
  266. package/dist/collection/components/co-rich-text-viewer/co-rich-text-viewer.css +78 -0
  267. package/dist/collection/components/co-rich-text-viewer/co-rich-text-viewer.js +46 -41
  268. package/dist/collection/components/co-row/co-row.js +2 -2
  269. package/dist/collection/components/co-select/co-select.css +7 -1
  270. package/dist/collection/components/co-select/co-select.js +5 -5
  271. package/dist/collection/components/co-separator/co-separator.js +1 -1
  272. package/dist/collection/components/co-sidebar/co-sidebar.js +2 -2
  273. package/dist/collection/components/co-sidebar-nav/co-sidebar-nav.css +99 -12
  274. package/dist/collection/components/co-sidebar-nav/co-sidebar-nav.js +28 -8
  275. package/dist/collection/components/co-skeleton/co-skeleton.css +28 -0
  276. package/dist/collection/components/co-skeleton/co-skeleton.js +97 -0
  277. package/dist/collection/components/co-slider/co-slider.js +2 -2
  278. package/dist/collection/components/co-switch/co-switch.css +9 -1
  279. package/dist/collection/components/co-switch/co-switch.js +3 -3
  280. package/dist/collection/components/co-tab/co-tab.js +2 -2
  281. package/dist/collection/components/co-tab-group/co-tab-group.js +1 -1
  282. package/dist/collection/components/co-tags-field/co-tags-field.css +39 -1
  283. package/dist/collection/components/co-tags-field/co-tags-field.js +36 -10
  284. package/dist/collection/components/co-textarea/co-textarea.css +26 -1
  285. package/dist/collection/components/co-textarea/co-textarea.js +28 -4
  286. package/dist/collection/components/co-toast/co-toast.js +1 -1
  287. package/dist/collection/components/co-toggle-button/co-toggle-button.css +26 -4
  288. package/dist/collection/components/co-toggle-button/co-toggle-button.js +3 -3
  289. package/dist/collection/components/co-toggle-button-group/co-toggle-button-group.css +16 -12
  290. package/dist/collection/components/co-toggle-button-group/co-toggle-button-group.js +2 -2
  291. package/dist/collection/components/co-tooltip/co-tooltip.css +8 -0
  292. package/dist/collection/components/co-tooltip/co-tooltip.js +69 -14
  293. package/dist/collection/components/co-transfer-list/co-transfer-list.js +2 -2
  294. package/dist/collection/components/co-video/co-video.css +497 -0
  295. package/dist/collection/components/co-video/co-video.js +1772 -0
  296. package/dist/collection/utils/fieldChip.js +2 -0
  297. package/dist/collection/utils/icon-config.js +12 -0
  298. package/dist/collection/utils/richTextI18n.js +378 -0
  299. package/dist/collection/utils/sheetGesture.js +53 -0
  300. package/dist/components/co-accordion.js +1 -1
  301. package/dist/components/co-app-shell.js +1 -1
  302. package/dist/components/co-autocomplete.js +1 -1
  303. package/dist/components/co-avatar-group.d.ts +11 -0
  304. package/dist/components/co-avatar-group.js +1 -0
  305. package/dist/components/co-avatar.js +1 -1
  306. package/dist/components/co-badge.js +1 -1
  307. package/dist/components/co-bottom-sheet.d.ts +11 -0
  308. package/dist/components/co-bottom-sheet.js +1 -0
  309. package/dist/components/co-button-group.js +1 -1
  310. package/dist/components/co-button.js +1 -1
  311. package/dist/components/co-calendar-month.d.ts +11 -0
  312. package/dist/components/co-calendar-month.js +1 -0
  313. package/dist/components/co-calendar.js +1 -1
  314. package/dist/components/co-card.js +1 -1
  315. package/dist/components/co-checkbox-group.js +1 -1
  316. package/dist/components/co-checkbox.js +1 -1
  317. package/dist/components/co-chip.js +1 -1
  318. package/dist/components/co-color-picker.js +1 -1
  319. package/dist/components/co-column-picker.js +1 -1
  320. package/dist/components/co-combobox.js +1 -1
  321. package/dist/components/co-command-search.js +1 -1
  322. package/dist/components/co-data-table-pagination.js +1 -1
  323. package/dist/components/co-data-table.js +1 -1
  324. package/dist/components/co-date-field.js +1 -1
  325. package/dist/components/co-date-picker.js +1 -1
  326. package/dist/components/co-date-range-picker.js +1 -1
  327. package/dist/components/co-date-range.js +1 -1
  328. package/dist/components/co-drawer.js +1 -1
  329. package/dist/components/co-empty-state.js +1 -1
  330. package/dist/components/co-event-calendar.d.ts +11 -0
  331. package/dist/components/co-event-calendar.js +1 -0
  332. package/dist/components/co-fab.js +1 -1
  333. package/dist/components/co-file-field.js +1 -1
  334. package/dist/components/co-helper-text.js +1 -1
  335. package/dist/components/co-icon-button.js +1 -1
  336. package/dist/components/co-icon.js +1 -1
  337. package/dist/components/co-input.js +1 -1
  338. package/dist/components/co-json-field.js +1 -1
  339. package/dist/components/co-lightbox.js +1 -1
  340. package/dist/components/co-list-footer.d.ts +11 -0
  341. package/dist/components/co-list-footer.js +1 -0
  342. package/dist/components/co-list-item.js +1 -1
  343. package/dist/components/co-loader.js +1 -1
  344. package/dist/components/co-menu-divider.js +1 -1
  345. package/dist/components/co-menu-item.js +1 -1
  346. package/dist/components/co-menu.js +1 -1
  347. package/dist/components/co-modal.js +1 -1
  348. package/dist/components/co-navbar.js +1 -1
  349. package/dist/components/co-number-field.js +1 -1
  350. package/dist/components/co-overlay.js +1 -1
  351. package/dist/components/co-page-header.js +1 -1
  352. package/dist/components/co-phone-field.js +1 -1
  353. package/dist/components/co-popover.js +1 -1
  354. package/dist/components/co-progress-bar.js +1 -1
  355. package/dist/components/co-progress-circle.js +1 -1
  356. package/dist/components/co-radio-group.js +1 -1
  357. package/dist/components/co-radio.js +1 -1
  358. package/dist/components/co-rating.js +1 -1
  359. package/dist/components/co-ref-field.js +1 -1
  360. package/dist/components/co-rich-text-editor.js +1 -1
  361. package/dist/components/co-rich-text-toolbar.js +1 -1
  362. package/dist/components/co-rich-text-viewer.js +1 -1
  363. package/dist/components/co-row.js +1 -1
  364. package/dist/components/co-select.js +1 -1
  365. package/dist/components/co-separator.js +1 -1
  366. package/dist/components/co-sidebar-nav.js +1 -1
  367. package/dist/components/co-sidebar.js +1 -1
  368. package/dist/components/co-skeleton.d.ts +11 -0
  369. package/dist/components/co-skeleton.js +1 -0
  370. package/dist/components/co-slider.js +1 -1
  371. package/dist/components/co-switch.js +1 -1
  372. package/dist/components/co-tab-group.js +1 -1
  373. package/dist/components/co-tab.js +1 -1
  374. package/dist/components/co-tags-field.js +1 -1
  375. package/dist/components/co-textarea.js +1 -1
  376. package/dist/components/co-toast.js +1 -1
  377. package/dist/components/co-toggle-button-group.js +1 -1
  378. package/dist/components/co-toggle-button.js +1 -1
  379. package/dist/components/co-tooltip.js +1 -1
  380. package/dist/components/co-transfer-list.js +1 -1
  381. package/dist/components/co-video.d.ts +11 -0
  382. package/dist/components/co-video.js +1 -0
  383. package/dist/components/index.js +1 -1
  384. package/dist/components/p-B2QLgWrz.js +2 -0
  385. package/dist/components/{p-BeWXpX8I.js → p-B7vGYFbO.js} +1 -1
  386. package/dist/components/p-BB2OaYKF.js +1 -0
  387. package/dist/components/p-BFeE_fiq.js +1 -0
  388. package/dist/components/p-BNKz39GA.js +1 -0
  389. package/dist/components/p-Ba4v1NXo.js +1 -0
  390. package/dist/components/p-C_ULDaks.js +1 -0
  391. package/dist/components/p-CegCk7FL.js +1 -0
  392. package/dist/components/p-ChibIpZv.js +1 -0
  393. package/dist/components/p-D3Y_ti3Q.js +1 -0
  394. package/dist/components/{p-DObrQi5F.js → p-DKh8ZK4U.js} +1 -1
  395. package/dist/components/{p-C9tHLXKS.js → p-DeZxp9vb.js} +1 -1
  396. package/dist/components/p-DvhR3H61.js +1 -0
  397. package/dist/components/p-DxCFMMfY.js +1 -0
  398. package/dist/components/{p-OGpfa9Yd.js → p-DzoNGEDU.js} +1 -1
  399. package/dist/components/p-EPZfLt5l.js +1 -0
  400. package/dist/components/p-FMnqPWcM.js +1 -0
  401. package/dist/components/p-Hzh9U2cM.js +1 -0
  402. package/dist/components/p-WZ06pT2Y.js +1 -0
  403. package/dist/components/p-tloAgDin.js +1 -0
  404. package/dist/esm/co-accordion.entry.js +3 -3
  405. package/dist/esm/co-app-shell.entry.js +4 -4
  406. package/dist/esm/co-autocomplete.entry.js +10 -7
  407. package/dist/esm/co-avatar-group.entry.js +75 -0
  408. package/dist/esm/co-avatar.entry.js +6 -4
  409. package/dist/esm/co-badge.entry.js +2 -2
  410. package/dist/esm/co-bottom-sheet.entry.js +323 -0
  411. package/dist/esm/co-button-group.entry.js +3 -3
  412. package/dist/esm/co-button.entry.js +6 -6
  413. package/dist/esm/co-calendar-month.entry.js +379 -0
  414. package/dist/esm/co-calendar_3.entry.js +12 -12
  415. package/dist/esm/co-card.entry.js +3 -3
  416. package/dist/esm/co-checkbox-group.entry.js +5 -5
  417. package/dist/esm/co-checkbox.entry.js +5 -5
  418. package/dist/esm/co-chip.entry.js +11 -8
  419. package/dist/esm/co-color-picker.entry.js +7 -5
  420. package/dist/esm/co-column-picker.entry.js +3 -3
  421. package/dist/esm/co-combobox.entry.js +7 -7
  422. package/dist/esm/co-command-search.entry.js +151 -12
  423. package/dist/esm/co-data-table-pagination.entry.js +5 -5
  424. package/dist/esm/co-data-table.entry.js +25 -11
  425. package/dist/esm/co-date-picker.entry.js +2 -2
  426. package/dist/esm/co-date-range-picker.entry.js +4 -4
  427. package/dist/esm/co-date-range.entry.js +2 -2
  428. package/dist/esm/co-empty-state.entry.js +2 -2
  429. package/dist/esm/co-event-calendar.entry.js +316 -0
  430. package/dist/esm/co-fab.entry.js +3 -3
  431. package/dist/esm/co-file-field.entry.js +8 -8
  432. package/dist/esm/co-helper-text.entry.js +3 -3
  433. package/dist/esm/co-icon-button.entry.js +5 -5
  434. package/dist/esm/co-icon.entry.js +33 -25
  435. package/dist/esm/co-input.entry.js +6 -6
  436. package/dist/esm/co-json-field.entry.js +10 -6
  437. package/dist/esm/co-lightbox.entry.js +5 -5
  438. package/dist/esm/co-list-footer.entry.js +23 -0
  439. package/dist/esm/co-list-item.entry.js +60 -4
  440. package/dist/esm/co-loader_2.entry.js +290 -0
  441. package/dist/esm/co-menu-divider.entry.js +2 -2
  442. package/dist/esm/co-menu-item.entry.js +17 -10
  443. package/dist/esm/co-menu.entry.js +2 -2
  444. package/dist/esm/co-modal.entry.js +16 -4
  445. package/dist/esm/co-navbar.entry.js +3 -3
  446. package/dist/esm/co-number-field.entry.js +18 -6
  447. package/dist/esm/co-page-header.entry.js +2 -2
  448. package/dist/esm/co-phone-field.entry.js +6 -4
  449. package/dist/esm/co-popover.entry.js +45 -14
  450. package/dist/esm/co-progress-bar.entry.js +8 -4
  451. package/dist/esm/co-progress-circle.entry.js +3 -3
  452. package/dist/esm/co-radio-group.entry.js +4 -4
  453. package/dist/esm/co-radio.entry.js +4 -4
  454. package/dist/esm/co-rating.entry.js +4 -4
  455. package/dist/esm/co-ref-field.entry.js +36 -13
  456. package/dist/esm/co-rich-text-editor.entry.js +1879 -33
  457. package/dist/esm/co-rich-text-toolbar.entry.js +995 -71
  458. package/dist/esm/co-rich-text-viewer.entry.js +55 -19
  459. package/dist/esm/co-row.entry.js +3 -3
  460. package/dist/esm/co-select.entry.js +8 -8
  461. package/dist/esm/co-separator.entry.js +2 -2
  462. package/dist/esm/co-sidebar-nav.entry.js +29 -9
  463. package/dist/esm/co-sidebar.entry.js +3 -3
  464. package/dist/esm/co-skeleton.entry.js +24 -0
  465. package/dist/esm/co-slider.entry.js +3 -3
  466. package/dist/esm/co-switch.entry.js +6 -6
  467. package/dist/esm/co-tab-group.entry.js +2 -2
  468. package/dist/esm/co-tab.entry.js +3 -3
  469. package/dist/esm/co-tags-field.entry.js +19 -13
  470. package/dist/esm/co-textarea.entry.js +11 -7
  471. package/dist/esm/co-toast.entry.js +2 -2
  472. package/dist/esm/co-toggle-button-group.entry.js +4 -4
  473. package/dist/esm/co-toggle-button.entry.js +4 -4
  474. package/dist/esm/co-tooltip.entry.js +51 -16
  475. package/dist/esm/co-transfer-list.entry.js +3 -3
  476. package/dist/esm/co-video.entry.js +837 -0
  477. package/dist/esm/cobalt.js +3 -3
  478. package/dist/esm/{dates-CyYF8IJE.js → dates-tPYikBRJ.js} +1 -1
  479. package/dist/esm/fieldChip-GPikjpYw.js +5 -0
  480. package/dist/esm/{index-BKmfyPZK.js → index-CYsftTKf.js} +45 -21
  481. package/dist/esm/{index-BjAqSidM.js → index-w_Wxgclf.js} +14508 -6305
  482. package/dist/esm/loader.js +3 -3
  483. package/dist/esm/overlayAfterClose-Ch1jfwZ2.js +10 -0
  484. package/dist/{cjs/sanitizer-CjHZAkOm.js → esm/purify.es-B2QLgWrz.js} +1 -110
  485. package/dist/esm/{requiredMark-DFvtYtkE.js → requiredMark-CEbXKHcU.js} +1 -1
  486. package/dist/esm/richTextI18n-B-ckjCUA.js +380 -0
  487. package/dist/esm/toolbar-config-ChibIpZv.js +212 -0
  488. package/dist/esm/tz-B6JZk8fL.js +119 -0
  489. package/dist/types/components/co-autocomplete/co-autocomplete.d.ts +2 -0
  490. package/dist/types/components/co-avatar/co-avatar.d.ts +2 -0
  491. package/dist/types/components/co-avatar-group/co-avatar-group.d.ts +33 -0
  492. package/dist/types/components/co-bottom-sheet/co-bottom-sheet.d.ts +81 -0
  493. package/dist/types/components/co-button/co-button.d.ts +3 -1
  494. package/dist/types/components/co-calendar-month/co-calendar-month.d.ts +83 -0
  495. package/dist/types/components/co-chip/co-chip.d.ts +7 -2
  496. package/dist/types/components/co-color-picker/co-color-picker.d.ts +2 -0
  497. package/dist/types/components/co-command-search/co-command-search.d.ts +39 -6
  498. package/dist/types/components/co-command-search/commandSearchGroup.d.ts +20 -0
  499. package/dist/types/components/co-command-search/commandSearchLogic.d.ts +17 -0
  500. package/dist/types/components/co-data-table/co-data-table.d.ts +2 -1
  501. package/dist/types/components/co-event-calendar/co-event-calendar.d.ts +110 -0
  502. package/dist/types/components/co-icon/co-icon.d.ts +1 -1
  503. package/dist/types/components/co-icon/iconLoader.d.ts +6 -0
  504. package/dist/types/components/co-icon-button/co-icon-button.d.ts +2 -0
  505. package/dist/types/components/co-json-field/co-json-field.d.ts +3 -0
  506. package/dist/types/components/co-list-footer/co-list-footer.d.ts +26 -0
  507. package/dist/types/components/co-list-item/co-list-item.d.ts +11 -0
  508. package/dist/types/components/co-modal/co-modal.d.ts +6 -0
  509. package/dist/types/components/co-number-field/co-number-field.d.ts +13 -0
  510. package/dist/types/components/co-overlay/co-overlay.d.ts +45 -0
  511. package/dist/types/components/co-overlay/focusTrap.d.ts +20 -0
  512. package/dist/types/components/co-overlay/overlayAfterClose.d.ts +5 -0
  513. package/dist/types/components/co-phone-field/co-phone-field.d.ts +2 -0
  514. package/dist/types/components/co-popover/co-popover.d.ts +9 -0
  515. package/dist/types/components/co-progress-bar/co-progress-bar.d.ts +2 -0
  516. package/dist/types/components/co-ref-field/co-ref-field.d.ts +17 -2
  517. package/dist/types/components/co-rich-text-editor/co-rich-text-editor.d.ts +161 -9
  518. package/dist/types/components/co-rich-text-toolbar/co-rich-text-toolbar.d.ts +119 -13
  519. package/dist/types/components/co-rich-text-viewer/co-rich-text-viewer.d.ts +1 -14
  520. package/dist/types/components/co-skeleton/co-skeleton.d.ts +13 -0
  521. package/dist/types/components/co-tags-field/co-tags-field.d.ts +2 -0
  522. package/dist/types/components/co-textarea/co-textarea.d.ts +3 -0
  523. package/dist/types/components/co-tooltip/co-tooltip.d.ts +12 -0
  524. package/dist/types/components/co-video/co-video.d.ts +203 -0
  525. package/dist/types/components.d.ts +1729 -72
  526. package/dist/types/utils/fieldChip.d.ts +37 -0
  527. package/dist/types/utils/icon-config.d.ts +11 -0
  528. package/dist/types/utils/richTextI18n.d.ts +130 -0
  529. package/dist/types/utils/sheetGesture.d.ts +31 -0
  530. package/package.json +3 -2
  531. package/dist/cjs/co-loader.cjs.entry.js +0 -34
  532. package/dist/cjs/co-overlay.cjs.entry.js +0 -23
  533. package/dist/cobalt/p-0a6d8061.entry.js +0 -1
  534. package/dist/cobalt/p-0bf288cd.entry.js +0 -1
  535. package/dist/cobalt/p-136bdbd2.entry.js +0 -1
  536. package/dist/cobalt/p-15708d32.entry.js +0 -1
  537. package/dist/cobalt/p-1578b019.entry.js +0 -1
  538. package/dist/cobalt/p-23d48581.entry.js +0 -1
  539. package/dist/cobalt/p-2718ff27.entry.js +0 -1
  540. package/dist/cobalt/p-2b4d8535.entry.js +0 -1
  541. package/dist/cobalt/p-3190d715.entry.js +0 -1
  542. package/dist/cobalt/p-41228dce.entry.js +0 -1
  543. package/dist/cobalt/p-44672953.entry.js +0 -1
  544. package/dist/cobalt/p-53ce9023.entry.js +0 -1
  545. package/dist/cobalt/p-5e7141aa.entry.js +0 -1
  546. package/dist/cobalt/p-5f905739.entry.js +0 -1
  547. package/dist/cobalt/p-6678ac0a.entry.js +0 -1
  548. package/dist/cobalt/p-66a912dd.entry.js +0 -1
  549. package/dist/cobalt/p-6759ee1c.entry.js +0 -1
  550. package/dist/cobalt/p-69a40bfd.entry.js +0 -1
  551. package/dist/cobalt/p-6a6a62cb.entry.js +0 -1
  552. package/dist/cobalt/p-6d43b6cd.entry.js +0 -1
  553. package/dist/cobalt/p-759c3dd0.entry.js +0 -1
  554. package/dist/cobalt/p-782f729f.entry.js +0 -1
  555. package/dist/cobalt/p-83b89bf8.entry.js +0 -1
  556. package/dist/cobalt/p-88dc561a.entry.js +0 -1
  557. package/dist/cobalt/p-8c27aff7.entry.js +0 -1
  558. package/dist/cobalt/p-996179f7.entry.js +0 -1
  559. package/dist/cobalt/p-9c533830.entry.js +0 -1
  560. package/dist/cobalt/p-9d89bf47.entry.js +0 -1
  561. package/dist/cobalt/p-BKmfyPZK.js +0 -2
  562. package/dist/cobalt/p-BchB6Hdr.js +0 -1
  563. package/dist/cobalt/p-DcK0GGZC.js +0 -2
  564. package/dist/cobalt/p-Qqq8fysz.js +0 -1
  565. package/dist/cobalt/p-aa17c70b.entry.js +0 -1
  566. package/dist/cobalt/p-ad4c1b41.entry.js +0 -1
  567. package/dist/cobalt/p-ae4d3207.entry.js +0 -1
  568. package/dist/cobalt/p-af64da37.entry.js +0 -1
  569. package/dist/cobalt/p-c6a242e4.entry.js +0 -1
  570. package/dist/cobalt/p-cd57e8b4.entry.js +0 -1
  571. package/dist/cobalt/p-ce3a535f.entry.js +0 -1
  572. package/dist/cobalt/p-d958566a.entry.js +0 -1
  573. package/dist/cobalt/p-dd873bf8.entry.js +0 -1
  574. package/dist/cobalt/p-e4de8865.entry.js +0 -1
  575. package/dist/cobalt/p-eba0bf7f.entry.js +0 -1
  576. package/dist/cobalt/p-fad3605d.entry.js +0 -1
  577. package/dist/cobalt/p-ff2690e5.entry.js +0 -1
  578. package/dist/components/p-BXdfh__-.js +0 -1
  579. package/dist/components/p-BchB6Hdr.js +0 -1
  580. package/dist/components/p-BiW0ubLs.js +0 -1
  581. package/dist/components/p-CaMgu2_g.js +0 -1
  582. package/dist/components/p-DBhNS7JD.js +0 -1
  583. package/dist/components/p-DPi_U-Kl.js +0 -1
  584. package/dist/components/p-DcK0GGZC.js +0 -2
  585. package/dist/components/p-MiSJXuBx.js +0 -1
  586. package/dist/components/p-Sgn-2g8m.js +0 -1
  587. package/dist/components/p-jDjfGZJp.js +0 -1
  588. package/dist/components/p-o8hrDIKe.js +0 -1
  589. package/dist/esm/co-loader.entry.js +0 -32
  590. package/dist/esm/co-overlay.entry.js +0 -21
@@ -57,12 +57,12 @@ export class CoToggleButtonGroup {
57
57
  });
58
58
  }
59
59
  render() {
60
- return (h("div", { key: '59aac10e6e4f7eb9337aed57f3d258c615139046', class: {
60
+ return (h("div", { key: '68e2fbfac009b921d780c38c5b4abbd95eafbe38', class: {
61
61
  'co-toggle-button-group': true,
62
62
  [`co-toggle-button-group--${this.direction}`]: true,
63
63
  'co-toggle-button-group--disabled': this.disabled,
64
64
  'co-toggle-button-group--full': this.fullWidth,
65
- }, role: "group" }, h("slot", { key: 'c6a683245689d3109bc6fcedacae4e2d54209909' })));
65
+ }, role: "group" }, h("slot", { key: 'a5b033a58961baed609e6bbd91cc4de26cad3fa2' })));
66
66
  }
67
67
  static get is() { return "co-toggle-button-group"; }
68
68
  static get encapsulation() { return "shadow"; }
@@ -33,8 +33,16 @@
33
33
  /* ── Panel ──────────────────────────────────────────────── */
34
34
  .co-tooltip__panel {
35
35
  position: fixed;
36
+ /* Neutralize UA [popover] defaults (border:solid; margin:auto; inset:0;
37
+ max-height) so our JS top/left + styled bubble win in the top layer.
38
+ inset:auto BEFORE top/left so they aren't reset by the shorthand. */
39
+ inset: auto;
36
40
  top: 0;
37
41
  left: 0;
42
+ margin: 0;
43
+ border: 0;
44
+ max-height: none;
45
+ overflow: visible;
38
46
  z-index: 10000;
39
47
  visibility: hidden;
40
48
  opacity: 0;
@@ -21,6 +21,10 @@ export class CoTooltip {
21
21
  this.flip = true;
22
22
  /** Maximum width before text wraps. */
23
23
  this.maxWidth = '280px';
24
+ /** Full-width wrapper (opt-in) so the tooltip can wrap a flex/grid child that
25
+ * must fill its track — e.g. an ellipsised list/table cell — without the
26
+ * inline-block wrapper shrink-wrapping it. Drives the `:host([block])` CSS. */
27
+ this.block = false;
24
28
  // ── State ──────────────────────────────────────────────────
25
29
  this.visible = false;
26
30
  this.actualPlacement = 'top';
@@ -85,18 +89,24 @@ export class CoTooltip {
85
89
  this.actualPlacement = actualPlacement;
86
90
  let finalTop = top;
87
91
  let finalLeft = left;
88
- // Compensate for transformed ancestors
89
- if (!this.offsetAncestorComputed) {
90
- this.cachedOffsetAncestor = getOffsetAncestor(this.panelEl);
91
- // Only cache if the element is connected (traversal was reliable)
92
- if (this.cachedOffsetAncestor || this.panelEl.isConnected) {
93
- this.offsetAncestorComputed = true;
92
+ // Compensate for transformed ancestors. When the panel is promoted to the
93
+ // top layer (Popover API), `position:fixed` resolves against the viewport
94
+ // regardless of any transformed/filtered ancestor — so skip compensation
95
+ // (it would double-shift). Only applies in the no-Popover-API fallback.
96
+ const promoted = this.panelEl.matches(':popover-open');
97
+ if (!promoted) {
98
+ if (!this.offsetAncestorComputed) {
99
+ this.cachedOffsetAncestor = getOffsetAncestor(this.panelEl);
100
+ // Only cache if the element is connected (traversal was reliable)
101
+ if (this.cachedOffsetAncestor || this.panelEl.isConnected) {
102
+ this.offsetAncestorComputed = true;
103
+ }
104
+ }
105
+ if (this.cachedOffsetAncestor) {
106
+ const parentRect = this.cachedOffsetAncestor.getBoundingClientRect();
107
+ finalTop -= parentRect.top;
108
+ finalLeft -= parentRect.left;
94
109
  }
95
- }
96
- if (this.cachedOffsetAncestor) {
97
- const parentRect = this.cachedOffsetAncestor.getBoundingClientRect();
98
- finalTop -= parentRect.top;
99
- finalLeft -= parentRect.left;
100
110
  }
101
111
  if (this.panelEl) {
102
112
  this.panelEl.style.top = `${finalTop}px`;
@@ -130,6 +140,10 @@ export class CoTooltip {
130
140
  this.cleanupListeners();
131
141
  this.cachedOffsetAncestor = null;
132
142
  this.offsetAncestorComputed = false;
143
+ // The panel is removed from the DOM by the conditional render (which also
144
+ // evicts it from the top layer); drop the now-detached ref so no async
145
+ // updatePosition can touch a stale element before the next show re-sets it.
146
+ this.panelEl = undefined;
133
147
  }
134
148
  }
135
149
  onDisabledChange(isDisabled) {
@@ -154,6 +168,26 @@ export class CoTooltip {
154
168
  this.clearShowTimeout();
155
169
  this.clearHideTimeout();
156
170
  }
171
+ /**
172
+ * Promote the tooltip panel to the browser top layer (Popover API) so an
173
+ * ancestor's filter / mask / overflow / transform can't clip or mis-anchor it
174
+ * — needed when the trigger lives inside another top-layer panel (co-popover).
175
+ * Mirrors co-popover. No-ops where unsupported (falls back to in-place fixed
176
+ * positioning + offset-ancestor compensation).
177
+ */
178
+ promotePanel() {
179
+ const el = this.panelEl;
180
+ if (!el || typeof el.showPopover !== 'function')
181
+ return;
182
+ try {
183
+ if (!el.matches(':popover-open'))
184
+ el.showPopover();
185
+ }
186
+ catch (_a) {
187
+ /* browser rejected promotion (already open, or element left the DOM in the
188
+ same frame) — safe to ignore; falls back to in-place positioning */
189
+ }
190
+ }
157
191
  // ── Scroll/resize listeners ────────────────────────────────
158
192
  addScrollListeners() {
159
193
  window.addEventListener('resize', this.scheduleUpdate, { passive: true });
@@ -180,15 +214,16 @@ export class CoTooltip {
180
214
  // ── Render ─────────────────────────────────────────────────
181
215
  render() {
182
216
  const side = this.actualPlacement.split('-')[0];
183
- return (h("div", { key: '77842efc5b054b049c4fb38f8d1f43fb2f6c418d', class: "co-tooltip" }, h("div", { key: '406170b45a6cc284253151b986c0d1fc8375ce30', class: "co-tooltip__trigger", ref: (el) => (this.triggerEl = el), onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave, onFocusin: this.handleFocusIn, onFocusout: this.handleFocusOut, onKeyDown: this.handleKeyDown, "aria-describedby": this.visible ? 'tooltip-panel' : undefined }, h("slot", { key: '169ec07030c124a4cbea6cb4b56ec75682af1793' })), this.visible && this.content && (h("div", { key: '58f68348a2068dbfa8fc16a0dea4cdee2f64093b', id: "tooltip-panel", class: {
217
+ return (h("div", { key: '638cd078ca415c24e4da46d9fb3a5ab4a25a9ee2', class: "co-tooltip" }, h("div", { key: '5a98d9c8a99122b1c26be38e7926716cf36c46c0', class: "co-tooltip__trigger", ref: (el) => (this.triggerEl = el), onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave, onFocusin: this.handleFocusIn, onFocusout: this.handleFocusOut, onKeyDown: this.handleKeyDown, "aria-describedby": this.visible ? 'tooltip-panel' : undefined }, h("slot", { key: 'f481c969f09ced4838ba099d0dda1cbdbae4e32a' })), this.visible && this.content && (h("div", { key: '7b929dba8c546944723b2d2060b6f0bd521d9038', id: "tooltip-panel", class: {
184
218
  'co-tooltip__panel': true,
185
219
  [`co-tooltip__panel--${side}`]: true,
186
- }, role: "tooltip", ref: (el) => {
220
+ }, role: "tooltip", popover: "manual", ref: (el) => {
187
221
  if (el && el !== this.panelEl) {
188
222
  this.panelEl = el;
223
+ this.promotePanel();
189
224
  this.scheduleUpdate();
190
225
  }
191
- }, style: { maxWidth: this.maxWidth } }, this.arrow && h("div", { key: 'a5dc3bcdceb72c5e7a6533e3025b882743bfd19a', class: `co-tooltip__arrow co-tooltip__arrow--${side}` }), h("span", { key: 'eaa99090f18a0160a42ad2885841cd3c0b163bba', class: "co-tooltip__content" }, this.content)))));
226
+ }, style: { maxWidth: this.maxWidth } }, this.arrow && h("div", { key: 'a94520b95c5c2ebe6cb9488ae2e5c73d60000305', class: `co-tooltip__arrow co-tooltip__arrow--${side}` }), h("span", { key: 'fed5b28f34c15892cec3a0f6271b8940efe869dc', class: "co-tooltip__content" }, this.content)))));
192
227
  }
193
228
  static get is() { return "co-tooltip"; }
194
229
  static get encapsulation() { return "shadow"; }
@@ -390,6 +425,26 @@ export class CoTooltip {
390
425
  "reflect": false,
391
426
  "attribute": "max-width",
392
427
  "defaultValue": "'280px'"
428
+ },
429
+ "block": {
430
+ "type": "boolean",
431
+ "mutable": false,
432
+ "complexType": {
433
+ "original": "boolean",
434
+ "resolved": "boolean",
435
+ "references": {}
436
+ },
437
+ "required": false,
438
+ "optional": false,
439
+ "docs": {
440
+ "tags": [],
441
+ "text": "Full-width wrapper (opt-in) so the tooltip can wrap a flex/grid child that\nmust fill its track \u2014 e.g. an ellipsised list/table cell \u2014 without the\ninline-block wrapper shrink-wrapping it. Drives the `:host([block])` CSS."
442
+ },
443
+ "getter": false,
444
+ "setter": false,
445
+ "reflect": true,
446
+ "attribute": "block",
447
+ "defaultValue": "false"
393
448
  }
394
449
  };
395
450
  }
@@ -117,11 +117,11 @@ export class CoTransferList {
117
117
  this.osInstances = [];
118
118
  }
119
119
  render() {
120
- return (h("div", { key: 'fd9cddc7be36b5acc9bc5852a9173b2ed950e529', class: {
120
+ return (h("div", { key: '37944f666bd5a6824fe91ad6dc9340e3b390ceb1', class: {
121
121
  'co-transfer-list': true,
122
122
  'co-transfer-list--disabled': this.disabled,
123
123
  [`co-transfer-list--${this.status}`]: this.status !== 'default',
124
- } }, this.label && h("label", { key: '6bcde50bb852ee58443d44b43ce5d67ad425f013', class: "co-transfer-list__label" }, this.label), h("div", { key: '836b094c4ccf69d4cfbaace4283e87ec55c13d07', class: "co-transfer-list__body" }, this.renderList(this.leftItems, this.leftChecked, this.toggleLeftCheck, this.leftTitle), h("div", { key: '8222a5f1207514f500e222a175ce9aef20e9df5f', class: "co-transfer-list__actions" }, h("button", { key: '21b61c709b1b66f293289fb8ae6e2e40fcdc1fb6', class: "co-transfer-list__btn", disabled: this.disabled, onClick: this.moveAllRight, "aria-label": "Move all right" }, h("co-icon", { key: 'c575643b4988a6f36ce0b738a400d0f4270b339d', name: "caret-double-right", size: 16 })), h("button", { key: 'db88f4725eb0e8e0e9cd573bf4ee6613f9b752de', class: "co-transfer-list__btn", disabled: this.disabled || this.leftChecked.size === 0, onClick: this.moveRight, "aria-label": "Move selected right" }, h("co-icon", { key: '789e6f0b3934a1ce571b1b24f78d215f263793b9', name: "caret-right", size: 16 })), h("button", { key: '72c2829abff4dc3453ccebb9846fb4b5b423a044', class: "co-transfer-list__btn", disabled: this.disabled || this.rightChecked.size === 0, onClick: this.moveLeft, "aria-label": "Move selected left" }, h("co-icon", { key: '2a77ca393a41134dd0b8befa085c1ff0caa050ef', name: "caret-left", size: 16 })), h("button", { key: '292bf6d2cc097523c6ea14a694cd134ed5526935', class: "co-transfer-list__btn", disabled: this.disabled, onClick: this.moveAllLeft, "aria-label": "Move all left" }, h("co-icon", { key: 'fc5f1f90f4eec18a4a3db20301a787280f77ba92', name: "caret-double-left", size: 16 }))), this.renderList(this.rightItems, this.rightChecked, this.toggleRightCheck, this.rightTitle)), this.helperText && (h("div", { key: '112008f9b2f9ef0e72a4c3add8d89319fa5e1c89', class: `co-transfer-list__helper co-transfer-list__helper--${this.status}` }, this.statusIcon && h("co-icon", { key: '712da720169f753bc161922edac625a44ea5e6d2', name: this.statusIcon, size: 14, weight: "fill", class: "co-transfer-list__helper-icon" }), h("span", { key: 'ad424d40bad49265e88cf3c0a524f74b5213e406', class: "co-transfer-list__helper-text" }, this.helperText)))));
124
+ } }, this.label && h("label", { key: '4a985cdd8b52be5f83b6215e3e3fcc53c5d1b118', class: "co-transfer-list__label" }, this.label), h("div", { key: '4993d0074a2a531d592c45c83b90e61f6c6ae7af', class: "co-transfer-list__body" }, this.renderList(this.leftItems, this.leftChecked, this.toggleLeftCheck, this.leftTitle), h("div", { key: '82888df2b21d56d5a33e5ba631642d022c0a6283', class: "co-transfer-list__actions" }, h("button", { key: 'f38c7faf334ffca06fb76a012bfd70168e43138c', class: "co-transfer-list__btn", disabled: this.disabled, onClick: this.moveAllRight, "aria-label": "Move all right" }, h("co-icon", { key: 'ac56c7e5c87012f0f0c0371280efd2f089ee1625', name: "caret-double-right", size: 16 })), h("button", { key: '33d08d82d1a4d77f8edc9c9849147625f472b7d5', class: "co-transfer-list__btn", disabled: this.disabled || this.leftChecked.size === 0, onClick: this.moveRight, "aria-label": "Move selected right" }, h("co-icon", { key: '411584fcbff3466454faab1c79f5df77607e9e2b', name: "caret-right", size: 16 })), h("button", { key: '7e626c5c042d8ae7cefe8c07ac6403af17b117fa', class: "co-transfer-list__btn", disabled: this.disabled || this.rightChecked.size === 0, onClick: this.moveLeft, "aria-label": "Move selected left" }, h("co-icon", { key: '60bb240a183b1dd8ffae584b72c95dfbb3612ccb', name: "caret-left", size: 16 })), h("button", { key: '688f9d2e86838f6b852d8bcc97be9b3fee88bf70', class: "co-transfer-list__btn", disabled: this.disabled, onClick: this.moveAllLeft, "aria-label": "Move all left" }, h("co-icon", { key: 'b0278c0fbd443627a8c0f23625ce1d8c48430e70', name: "caret-double-left", size: 16 }))), this.renderList(this.rightItems, this.rightChecked, this.toggleRightCheck, this.rightTitle)), this.helperText && (h("div", { key: '784beb84f5583d332ca8937b97e5fc2ed307e2bc', class: `co-transfer-list__helper co-transfer-list__helper--${this.status}` }, this.statusIcon && h("co-icon", { key: 'b66e10f1a23fb81dbaddd388ae088464a164ceee', name: this.statusIcon, size: 14, weight: "fill", class: "co-transfer-list__helper-icon" }), h("span", { key: 'e0ca98142070b258f33698bbe79a51260bd70f72', class: "co-transfer-list__helper-text" }, this.helperText)))));
125
125
  }
126
126
  static get is() { return "co-transfer-list"; }
127
127
  static get encapsulation() { return "shadow"; }
@@ -0,0 +1,497 @@
1
+ /* ═══════════════════════════════════════════════════
2
+ co-video
3
+ ═══════════════════════════════════════════════════ */
4
+
5
+ :host {
6
+ display: block;
7
+ font-family: var(--co-font-family-primary);
8
+ --co-video-controls-bg: linear-gradient(transparent, rgba(0, 0, 0, 0.75));
9
+ --co-video-controls-color: #fff;
10
+ --co-video-progress-height: 4px;
11
+ --co-video-progress-height-hover: 8px;
12
+ --co-video-accent: var(--co-color-base-blanco);
13
+ --co-video-buffered: rgba(255, 255, 255, 0.25);
14
+ --co-video-btn-hover: rgba(255, 255, 255, 0.16);
15
+ }
16
+
17
+ /* ─── Container ─────────────────────────────────── */
18
+
19
+ .co-video {
20
+ position: relative;
21
+ width: 100%;
22
+ background: #000;
23
+ overflow: hidden;
24
+ outline: none;
25
+ user-select: none;
26
+ -webkit-user-select: none;
27
+ }
28
+
29
+ .co-video:focus-visible {
30
+ outline: 2px solid var(--co-semantic-border-focus-ring);
31
+ outline-offset: 2px;
32
+ }
33
+
34
+ /* ─── Aspect Ratios ─────────────────────────────── */
35
+
36
+ .co-video--16-9 { aspect-ratio: 16 / 9; }
37
+ .co-video--4-3 { aspect-ratio: 4 / 3; }
38
+ .co-video--1-1 { aspect-ratio: 1 / 1; }
39
+ .co-video--21-9 { aspect-ratio: 21 / 9; }
40
+ .co-video--auto { height: 100%; }
41
+
42
+ /* ─── Border Radius ─────────────────────────────── */
43
+
44
+ .co-video--rounded-none { border-radius: 0; }
45
+ .co-video--rounded-sm { border-radius: var(--co-border-radius-xs); }
46
+ .co-video--rounded-md { border-radius: var(--co-border-radius-sm); }
47
+ .co-video--rounded-lg { border-radius: var(--co-border-radius-lg); }
48
+ .co-video--rounded-xl { border-radius: var(--co-border-radius-xl); }
49
+
50
+ /* ─── Fullscreen ────────────────────────────────── */
51
+
52
+ :host(:fullscreen) {
53
+ width: 100%;
54
+ height: 100%;
55
+ }
56
+
57
+ :host(:fullscreen) .co-video {
58
+ border-radius: 0 !important;
59
+ aspect-ratio: unset;
60
+ width: 100%;
61
+ height: 100%;
62
+ }
63
+
64
+ /* ─── Disabled ──────────────────────────────────── */
65
+
66
+ .co-video--disabled {
67
+ opacity: 0.5;
68
+ pointer-events: none;
69
+ }
70
+
71
+ /* ─── Native Video ──────────────────────────────── */
72
+
73
+ .co-video__native {
74
+ position: absolute;
75
+ inset: 0;
76
+ width: 100%;
77
+ height: 100%;
78
+ object-fit: contain;
79
+ display: block;
80
+ }
81
+
82
+ /* ─── Click Area (transparent overlay for play/pause) ── */
83
+
84
+ .co-video__click-area {
85
+ position: absolute;
86
+ inset: 0;
87
+ z-index: 1;
88
+ cursor: pointer;
89
+ }
90
+
91
+ /* ─── Poster ────────────────────────────────────── */
92
+
93
+ .co-video__poster {
94
+ position: absolute;
95
+ inset: 0;
96
+ z-index: 1;
97
+ background-size: cover;
98
+ background-position: center;
99
+ background-repeat: no-repeat;
100
+ }
101
+
102
+ /* ─── Loader ────────────────────────────────────── */
103
+
104
+ .co-video__loader {
105
+ position: absolute;
106
+ inset: 0;
107
+ display: flex;
108
+ align-items: center;
109
+ justify-content: center;
110
+ z-index: 3;
111
+ pointer-events: none;
112
+ }
113
+
114
+ .co-video__spinner {
115
+ width: 40px;
116
+ height: 40px;
117
+ border: 3px solid rgba(255, 255, 255, 0.15);
118
+ border-top-color: #fff;
119
+ border-radius: 50%;
120
+ animation: co-video-spin 0.7s linear infinite;
121
+ }
122
+
123
+ @keyframes co-video-spin {
124
+ to { transform: rotate(360deg); }
125
+ }
126
+
127
+ /* ─── Big Play Button ───────────────────────────── */
128
+
129
+ .co-video__big-play {
130
+ position: absolute;
131
+ inset: 0;
132
+ display: flex;
133
+ align-items: center;
134
+ justify-content: center;
135
+ z-index: 2;
136
+ cursor: pointer;
137
+ background: transparent;
138
+ border: none;
139
+ padding: 0;
140
+ color: #fff;
141
+ }
142
+
143
+ .co-video__big-play-circle {
144
+ width: 72px;
145
+ height: 72px;
146
+ border-radius: var(--co-border-radius-full);
147
+ background: rgba(0, 0, 0, 0.5);
148
+ backdrop-filter: blur(8px);
149
+ -webkit-backdrop-filter: blur(8px);
150
+ display: flex;
151
+ align-items: center;
152
+ justify-content: center;
153
+ transition: transform 0.2s ease, background 0.2s ease;
154
+ }
155
+
156
+ .co-video__big-play:hover .co-video__big-play-circle {
157
+ transform: scale(1.1);
158
+ background: rgba(0, 0, 0, 0.7);
159
+ }
160
+
161
+ /* ─── Error ─────────────────────────────────────── */
162
+
163
+ .co-video__error {
164
+ position: absolute;
165
+ inset: 0;
166
+ display: flex;
167
+ flex-direction: column;
168
+ align-items: center;
169
+ justify-content: center;
170
+ gap: var(--co-spacing-md);
171
+ z-index: 4;
172
+ background: rgba(0, 0, 0, 0.85);
173
+ color: #fff;
174
+ }
175
+
176
+ .co-video__error-text {
177
+ font-size: var(--co-font-size-14);
178
+ color: rgba(255, 255, 255, 0.7);
179
+ margin: 0;
180
+ text-align: center;
181
+ padding: 0 var(--co-spacing-xl);
182
+ }
183
+
184
+ .co-video__error-retry {
185
+ display: inline-flex;
186
+ align-items: center;
187
+ gap: var(--co-spacing-xs);
188
+ padding: var(--co-spacing-sm2) var(--co-spacing-lg);
189
+ border: 1px solid rgba(255, 255, 255, 0.3);
190
+ border-radius: var(--co-border-radius-full);
191
+ background: transparent;
192
+ color: #fff;
193
+ font-family: var(--co-font-family-primary);
194
+ font-size: var(--co-font-size-14);
195
+ cursor: pointer;
196
+ transition: background 0.15s ease, border-color 0.15s ease;
197
+ }
198
+
199
+ .co-video__error-retry:hover {
200
+ background: rgba(255, 255, 255, 0.1);
201
+ border-color: rgba(255, 255, 255, 0.5);
202
+ }
203
+
204
+ /* ═══════════════════════════════════════════════════
205
+ Controls
206
+ ═══════════════════════════════════════════════════ */
207
+
208
+ .co-video__controls {
209
+ position: absolute;
210
+ bottom: 0;
211
+ left: 0;
212
+ right: 0;
213
+ background: var(--co-video-controls-bg);
214
+ padding: var(--co-spacing-3xl) var(--co-spacing-lg) var(--co-spacing-md);
215
+ z-index: 5;
216
+ opacity: 1;
217
+ transition: opacity 0.3s ease;
218
+ }
219
+
220
+ .co-video__controls--hidden {
221
+ opacity: 0;
222
+ pointer-events: none;
223
+ }
224
+
225
+ /* ─── Progress Bar ──────────────────────────────── */
226
+
227
+ .co-video__progress {
228
+ position: relative;
229
+ width: 100%;
230
+ height: var(--co-video-progress-height);
231
+ cursor: pointer;
232
+ transition: height 0.15s ease;
233
+ margin-bottom: var(--co-spacing-sm);
234
+ outline: none;
235
+ touch-action: none;
236
+ }
237
+
238
+ .co-video__progress:hover,
239
+ .co-video__progress:focus-visible {
240
+ height: var(--co-video-progress-height-hover);
241
+ }
242
+
243
+ .co-video__progress:focus-visible {
244
+ outline: 2px solid var(--co-semantic-border-focus-ring);
245
+ outline-offset: 4px;
246
+ border-radius: var(--co-border-radius-full);
247
+ }
248
+
249
+ .co-video__progress-track {
250
+ position: absolute;
251
+ inset: 0;
252
+ background: rgba(255, 255, 255, 0.2);
253
+ border-radius: var(--co-border-radius-full);
254
+ overflow: hidden;
255
+ }
256
+
257
+ .co-video__progress-buffered {
258
+ position: absolute;
259
+ top: 0;
260
+ left: 0;
261
+ height: 100%;
262
+ background: var(--co-video-buffered);
263
+ border-radius: var(--co-border-radius-full);
264
+ transition: width 0.3s ease;
265
+ }
266
+
267
+ .co-video__progress-played {
268
+ position: absolute;
269
+ top: 0;
270
+ left: 0;
271
+ height: 100%;
272
+ background: var(--co-video-accent);
273
+ border-radius: var(--co-border-radius-full);
274
+ }
275
+
276
+ .co-video__progress-thumb {
277
+ position: absolute;
278
+ top: 50%;
279
+ width: 14px;
280
+ height: 14px;
281
+ border-radius: var(--co-border-radius-full);
282
+ background: var(--co-video-accent);
283
+ transform: translate(-50%, -50%) scale(0);
284
+ transition: transform 0.15s ease;
285
+ pointer-events: none;
286
+ }
287
+
288
+ .co-video__progress:hover .co-video__progress-thumb {
289
+ transform: translate(-50%, -50%) scale(1);
290
+ }
291
+
292
+ /* ─── Toolbar ───────────────────────────────────── */
293
+
294
+ .co-video__toolbar {
295
+ display: flex;
296
+ align-items: center;
297
+ justify-content: space-between;
298
+ gap: var(--co-spacing-sm);
299
+ }
300
+
301
+ .co-video__toolbar-left,
302
+ .co-video__toolbar-right {
303
+ display: flex;
304
+ align-items: center;
305
+ gap: var(--co-spacing-sm);
306
+ }
307
+
308
+ /* ─── Control Buttons ───────────────────────────── */
309
+
310
+ .co-video__btn {
311
+ display: inline-flex;
312
+ align-items: center;
313
+ justify-content: center;
314
+ width: 36px;
315
+ height: 36px;
316
+ border: none;
317
+ background: transparent;
318
+ color: var(--co-video-controls-color);
319
+ cursor: pointer;
320
+ border-radius: var(--co-border-radius-xs);
321
+ padding: 0;
322
+ transition: background 0.15s ease;
323
+ flex-shrink: 0;
324
+ }
325
+
326
+ .co-video__btn:hover {
327
+ background: var(--co-video-btn-hover);
328
+ }
329
+
330
+ .co-video__btn:focus-visible {
331
+ outline: 2px solid #fff;
332
+ outline-offset: 2px;
333
+ }
334
+
335
+ .co-video__btn--disabled {
336
+ opacity: 0.4;
337
+ cursor: not-allowed;
338
+ pointer-events: none;
339
+ }
340
+
341
+ /* ─── Time Display ──────────────────────────────── */
342
+
343
+ .co-video__time {
344
+ font-size: var(--co-font-size-12);
345
+ color: var(--co-video-controls-color);
346
+ white-space: nowrap;
347
+ padding: 0 var(--co-spacing-xs);
348
+ font-variant-numeric: tabular-nums;
349
+ }
350
+
351
+ /* ─── Volume ────────────────────────────────────── */
352
+
353
+ .co-video__volume {
354
+ display: flex;
355
+ align-items: center;
356
+ position: relative;
357
+ }
358
+
359
+ .co-video__volume-slider-wrap {
360
+ width: 0;
361
+ overflow: hidden;
362
+ transition: width 0.2s ease, opacity 0.2s ease;
363
+ opacity: 0;
364
+ }
365
+
366
+ .co-video__volume-slider-wrap--visible {
367
+ width: 96px;
368
+ opacity: 1;
369
+ overflow: visible;
370
+ }
371
+
372
+ .co-video__volume-slider {
373
+ width: 96px;
374
+ height: 20px;
375
+ display: flex;
376
+ align-items: center;
377
+ cursor: pointer;
378
+ touch-action: none;
379
+ padding: 0 10px;
380
+ }
381
+
382
+ .co-video__volume-track {
383
+ position: relative;
384
+ width: 100%;
385
+ height: 4px;
386
+ background: rgba(255, 255, 255, 0.2);
387
+ border-radius: var(--co-border-radius-full);
388
+ }
389
+
390
+ .co-video__volume-fill {
391
+ position: absolute;
392
+ top: 0;
393
+ left: 0;
394
+ height: 100%;
395
+ background: var(--co-video-accent);
396
+ border-radius: var(--co-border-radius-full);
397
+ }
398
+
399
+ .co-video__volume-thumb {
400
+ position: absolute;
401
+ top: 50%;
402
+ width: 12px;
403
+ height: 12px;
404
+ border-radius: var(--co-border-radius-full);
405
+ background: var(--co-video-accent);
406
+ transform: translate(-50%, -50%);
407
+ pointer-events: none;
408
+ }
409
+
410
+ /* ─── Speed ─────────────────────────────────────── */
411
+
412
+ .co-video__speed-wrap {
413
+ position: relative;
414
+ }
415
+
416
+ .co-video__btn--speed {
417
+ width: auto;
418
+ padding: 0 var(--co-spacing-sm);
419
+ }
420
+
421
+ .co-video__speed-label {
422
+ font-family: var(--co-font-family-primary);
423
+ font-size: var(--co-font-size-13);
424
+ font-weight: 500;
425
+ color: var(--co-video-controls-color);
426
+ }
427
+
428
+ .co-video__speed-menu {
429
+ position: absolute;
430
+ bottom: 100%;
431
+ right: 0;
432
+ margin-bottom: var(--co-spacing-xs);
433
+ background: rgba(20, 20, 20, 0.92);
434
+ backdrop-filter: blur(16px);
435
+ -webkit-backdrop-filter: blur(16px);
436
+ border-radius: var(--co-border-radius-sm);
437
+ padding: var(--co-spacing-xs) 0;
438
+ min-width: 130px;
439
+ box-shadow: var(--co-shadow-lg);
440
+ z-index: 10;
441
+ }
442
+
443
+ .co-video__speed-option {
444
+ display: flex;
445
+ align-items: center;
446
+ justify-content: space-between;
447
+ width: 100%;
448
+ padding: var(--co-spacing-sm) var(--co-spacing-lg);
449
+ color: #fff;
450
+ font-size: var(--co-font-size-14);
451
+ font-family: var(--co-font-family-primary);
452
+ cursor: pointer;
453
+ background: transparent;
454
+ border: none;
455
+ transition: background 0.1s ease;
456
+ text-align: left;
457
+ }
458
+
459
+ .co-video__speed-option:hover {
460
+ background: rgba(255, 255, 255, 0.08);
461
+ }
462
+
463
+ .co-video__speed-option--active {
464
+ font-weight: 600;
465
+ }
466
+
467
+ /* ═══════════════════════════════════════════════════
468
+ Responsive
469
+ ═══════════════════════════════════════════════════ */
470
+
471
+ @media (max-width: 480px) {
472
+ .co-video__volume-slider-wrap {
473
+ display: none;
474
+ }
475
+
476
+ .co-video__toolbar {
477
+ gap: var(--co-spacing-xxs);
478
+ }
479
+
480
+ .co-video__btn {
481
+ width: 32px;
482
+ height: 32px;
483
+ }
484
+
485
+ .co-video__big-play-circle {
486
+ width: 56px;
487
+ height: 56px;
488
+ }
489
+
490
+ .co-video__time {
491
+ font-size: var(--co-font-size-11);
492
+ }
493
+
494
+ .co-video__controls {
495
+ padding: var(--co-spacing-2xl) var(--co-spacing-sm2) var(--co-spacing-sm);
496
+ }
497
+ }