@prolibu-suite/cobalt-core 0.3.0 → 0.5.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 (580) hide show
  1. package/README.md +3 -3
  2. package/custom-elements.json +6887 -3484
  3. package/dist/cjs/co-accordion.cjs.entry.js +4 -4
  4. package/dist/cjs/co-app-shell.cjs.entry.js +3 -3
  5. package/dist/cjs/co-autocomplete.cjs.entry.js +38 -73
  6. package/dist/cjs/co-avatar-group.cjs.entry.js +3 -3
  7. package/dist/cjs/co-avatar.cjs.entry.js +9 -4
  8. package/dist/cjs/co-badge.cjs.entry.js +2 -2
  9. package/dist/cjs/co-bottom-sheet.cjs.entry.js +4 -4
  10. package/dist/cjs/co-breadcrumb-item.cjs.entry.js +37 -0
  11. package/dist/cjs/co-breadcrumb.cjs.entry.js +55 -0
  12. package/dist/cjs/co-button-group.cjs.entry.js +3 -3
  13. package/dist/cjs/co-button.cjs.entry.js +10 -4
  14. package/dist/cjs/co-calendar-month.cjs.entry.js +2 -2
  15. package/dist/cjs/co-calendar_3.cjs.entry.js +50 -15
  16. package/dist/cjs/co-card.cjs.entry.js +3 -3
  17. package/dist/cjs/co-checkbox-group.cjs.entry.js +4 -4
  18. package/dist/cjs/co-checkbox.cjs.entry.js +18 -6
  19. package/dist/cjs/co-chip_2.cjs.entry.js +485 -0
  20. package/dist/cjs/co-color-picker.cjs.entry.js +4 -4
  21. package/dist/cjs/co-column-picker.cjs.entry.js +3 -3
  22. package/dist/cjs/co-combobox.cjs.entry.js +51 -82
  23. package/dist/cjs/co-command-search.cjs.entry.js +20 -59
  24. package/dist/cjs/co-data-table-pagination.cjs.entry.js +5 -5
  25. package/dist/cjs/co-data-table.cjs.entry.js +73 -17
  26. package/dist/cjs/co-date-picker.cjs.entry.js +2 -2
  27. package/dist/cjs/co-date-range-picker.cjs.entry.js +3 -3
  28. package/dist/cjs/co-date-range.cjs.entry.js +2 -2
  29. package/dist/cjs/co-drive-card.cjs.entry.js +81 -0
  30. package/dist/cjs/co-drop-zone.cjs.entry.js +63 -0
  31. package/dist/cjs/co-empty-state.cjs.entry.js +13 -3
  32. package/dist/cjs/co-event-calendar.cjs.entry.js +3 -3
  33. package/dist/cjs/co-fab.cjs.entry.js +5 -5
  34. package/dist/cjs/co-file-field.cjs.entry.js +7 -7
  35. package/dist/cjs/co-file-type-tile.cjs.entry.js +78 -0
  36. package/dist/cjs/co-helper-text.cjs.entry.js +3 -3
  37. package/dist/cjs/co-icon-button.cjs.entry.js +23 -7
  38. package/dist/cjs/co-icon.cjs.entry.js +3 -3
  39. package/dist/cjs/co-input.cjs.entry.js +36 -7
  40. package/dist/cjs/co-json-field.cjs.entry.js +5 -5
  41. package/dist/cjs/co-lightbox.cjs.entry.js +6 -6
  42. package/dist/cjs/co-list-footer.cjs.entry.js +2 -2
  43. package/dist/cjs/co-list-item.cjs.entry.js +5 -5
  44. package/dist/cjs/co-loader.cjs.entry.js +34 -0
  45. package/dist/cjs/co-media-thumb.cjs.entry.js +36 -0
  46. package/dist/cjs/co-menu-divider.cjs.entry.js +2 -2
  47. package/dist/cjs/co-menu-item.cjs.entry.js +11 -3
  48. package/dist/cjs/co-menu.cjs.entry.js +3 -3
  49. package/dist/cjs/co-modal.cjs.entry.js +29 -5
  50. package/dist/cjs/co-navbar.cjs.entry.js +3 -3
  51. package/dist/cjs/co-number-field.cjs.entry.js +5 -5
  52. package/dist/cjs/{co-loader_2.cjs.entry.js → co-overlay.cjs.entry.js} +2 -32
  53. package/dist/cjs/co-page-header.cjs.entry.js +2 -2
  54. package/dist/cjs/co-phone-field.cjs.entry.js +4 -4
  55. package/dist/cjs/co-popover.cjs.entry.js +12 -3
  56. package/dist/cjs/co-progress-bar.cjs.entry.js +4 -4
  57. package/dist/cjs/co-progress-circle.cjs.entry.js +3 -3
  58. package/dist/cjs/co-radio-group.cjs.entry.js +4 -4
  59. package/dist/cjs/co-radio.cjs.entry.js +4 -4
  60. package/dist/cjs/co-rating.cjs.entry.js +4 -4
  61. package/dist/cjs/co-ref-field.cjs.entry.js +31 -135
  62. package/dist/cjs/co-rich-text-editor.cjs.entry.js +5 -5
  63. package/dist/cjs/co-rich-text-toolbar.cjs.entry.js +1 -1
  64. package/dist/cjs/co-rich-text-viewer.cjs.entry.js +2 -2
  65. package/dist/cjs/co-row.cjs.entry.js +3 -3
  66. package/dist/cjs/co-segmented-bar.cjs.entry.js +58 -0
  67. package/dist/cjs/co-select.cjs.entry.js +7 -7
  68. package/dist/cjs/co-separator.cjs.entry.js +2 -2
  69. package/dist/cjs/co-sidebar-nav.cjs.entry.js +10 -8
  70. package/dist/cjs/co-sidebar.cjs.entry.js +3 -3
  71. package/dist/cjs/co-skeleton.cjs.entry.js +2 -2
  72. package/dist/cjs/co-slider.cjs.entry.js +3 -3
  73. package/dist/cjs/co-switch.cjs.entry.js +6 -6
  74. package/dist/cjs/co-tab-group.cjs.entry.js +21 -3
  75. package/dist/cjs/co-tab.cjs.entry.js +8 -5
  76. package/dist/cjs/co-tags-field.cjs.entry.js +8 -8
  77. package/dist/cjs/co-textarea.cjs.entry.js +6 -6
  78. package/dist/cjs/co-toast.cjs.entry.js +10 -4
  79. package/dist/cjs/co-toggle-button-group.cjs.entry.js +16 -4
  80. package/dist/cjs/co-toggle-button.cjs.entry.js +9 -5
  81. package/dist/cjs/co-tooltip.cjs.entry.js +3 -3
  82. package/dist/cjs/co-transfer-list.cjs.entry.js +3 -3
  83. package/dist/cjs/co-video.cjs.entry.js +4 -4
  84. package/dist/cjs/cobalt.cjs.js +2 -2
  85. package/dist/cjs/{fieldChip-CDIMz_Y6.js → fieldChip-D8YJCyQF.js} +1 -1
  86. package/dist/cjs/{index-5NdsiFjZ.js → index-4y1Dm145.js} +64 -11
  87. package/dist/cjs/{index-BumlM92r.js → index-DxEFsH_t.js} +69 -13
  88. package/dist/cjs/loader.cjs.js +2 -2
  89. package/dist/cjs/{requiredMark-CqMGt1H1.js → requiredMark-B3pKyqYI.js} +1 -1
  90. package/dist/cobalt/cobalt.css +1 -1
  91. package/dist/cobalt/cobalt.esm.js +1 -1
  92. package/dist/cobalt/p-002e5beb.entry.js +1 -0
  93. package/dist/cobalt/{p-ba90e871.entry.js → p-02c5a9a9.entry.js} +1 -1
  94. package/dist/cobalt/p-075eed3d.entry.js +1 -0
  95. package/dist/cobalt/p-0c0621a7.entry.js +1 -0
  96. package/dist/cobalt/{p-ef7d4ae3.entry.js → p-0d6a562d.entry.js} +1 -1
  97. package/dist/cobalt/p-0d7536a8.entry.js +1 -0
  98. package/dist/cobalt/{p-6d1217c3.entry.js → p-13fc9c8a.entry.js} +1 -1
  99. package/dist/cobalt/{p-afb7e19e.entry.js → p-14d4c5c7.entry.js} +1 -1
  100. package/dist/cobalt/{p-31ab9a46.entry.js → p-1681ce1d.entry.js} +1 -1
  101. package/dist/cobalt/{p-93046365.entry.js → p-1726ce07.entry.js} +1 -1
  102. package/dist/cobalt/p-20ba59a2.entry.js +1 -0
  103. package/dist/cobalt/p-2d1cbd7f.entry.js +1 -0
  104. package/dist/cobalt/{p-4871690e.entry.js → p-373cd08e.entry.js} +1 -1
  105. package/dist/cobalt/{p-37595103.entry.js → p-3f06d373.entry.js} +1 -1
  106. package/dist/cobalt/p-3f68fd2e.entry.js +1 -0
  107. package/dist/cobalt/p-47a2dd67.entry.js +1 -0
  108. package/dist/cobalt/p-495c9b99.entry.js +1 -0
  109. package/dist/cobalt/p-4a075257.entry.js +1 -0
  110. package/dist/cobalt/{p-52de17da.entry.js → p-5647ca9d.entry.js} +1 -1
  111. package/dist/cobalt/{p-1a07c23c.entry.js → p-5b31d45b.entry.js} +1 -1
  112. package/dist/cobalt/{p-929e647f.entry.js → p-5c3101b5.entry.js} +1 -1
  113. package/dist/cobalt/{p-8d59f5ad.entry.js → p-5c43d30e.entry.js} +1 -1
  114. package/dist/cobalt/{p-4504f7b0.entry.js → p-5e9a9caf.entry.js} +1 -1
  115. package/dist/cobalt/p-5edd0d3f.entry.js +1 -0
  116. package/dist/cobalt/{p-12e2c2c4.entry.js → p-627d2d1a.entry.js} +1 -1
  117. package/dist/cobalt/p-6911a034.entry.js +1 -0
  118. package/dist/cobalt/{p-e53861e4.entry.js → p-6ad1625a.entry.js} +1 -1
  119. package/dist/cobalt/{p-f4063c41.entry.js → p-70f70e02.entry.js} +1 -1
  120. package/dist/cobalt/p-73b30ebb.entry.js +1 -0
  121. package/dist/cobalt/p-771bc8fe.entry.js +1 -0
  122. package/dist/cobalt/p-7780ddb5.entry.js +1 -0
  123. package/dist/cobalt/p-77d01b39.entry.js +1 -0
  124. package/dist/cobalt/p-7FZXeBK4.js +1 -0
  125. package/dist/cobalt/p-7a3fb93b.entry.js +1 -0
  126. package/dist/cobalt/{p-0bb55163.entry.js → p-809015dd.entry.js} +1 -1
  127. package/dist/cobalt/p-8128e84a.entry.js +1 -0
  128. package/dist/cobalt/p-81cfd951.entry.js +1 -0
  129. package/dist/cobalt/p-82ce1178.entry.js +1 -0
  130. package/dist/cobalt/p-85eed52c.entry.js +1 -0
  131. package/dist/cobalt/p-86d4e016.entry.js +1 -0
  132. package/dist/cobalt/{p-cb235aa7.entry.js → p-86e60cfa.entry.js} +1 -1
  133. package/dist/cobalt/p-8a9ed2da.entry.js +1 -0
  134. package/dist/cobalt/{p-8e1dc062.entry.js → p-8dfb6886.entry.js} +1 -1
  135. package/dist/cobalt/{p-2f86e1e0.entry.js → p-8e823c15.entry.js} +1 -1
  136. package/dist/cobalt/p-9a587867.entry.js +1 -0
  137. package/dist/cobalt/p-9c6ca902.entry.js +1 -0
  138. package/dist/cobalt/{p-279bf91c.entry.js → p-9c873a6a.entry.js} +1 -1
  139. package/dist/cobalt/{p-BZJ7NCm5.js → p-BAA4ln31.js} +1 -1
  140. package/dist/cobalt/{p-CegCk7FL.js → p-Bgxofdfb.js} +1 -1
  141. package/dist/cobalt/p-a6900010.entry.js +1 -0
  142. package/dist/cobalt/p-a9afbaa6.entry.js +1 -0
  143. package/dist/cobalt/{p-c10697e1.entry.js → p-aa20ffca.entry.js} +1 -1
  144. package/dist/cobalt/{p-3863ea91.entry.js → p-ac5df270.entry.js} +1 -1
  145. package/dist/cobalt/{p-b6f20268.entry.js → p-af4cb263.entry.js} +1 -1
  146. package/dist/cobalt/p-b1197c08.entry.js +1 -0
  147. package/dist/cobalt/{p-4c01d984.entry.js → p-b4bed98b.entry.js} +1 -1
  148. package/dist/cobalt/{p-58a53421.entry.js → p-b8ec0cc1.entry.js} +1 -1
  149. package/dist/cobalt/p-ba66584f.entry.js +1 -0
  150. package/dist/cobalt/p-bb534985.entry.js +1 -0
  151. package/dist/cobalt/{p-1531d3c9.entry.js → p-c0f39ddd.entry.js} +1 -1
  152. package/dist/cobalt/{p-51a53177.entry.js → p-c1e53e4c.entry.js} +1 -1
  153. package/dist/cobalt/p-c2e2eee9.entry.js +1 -0
  154. package/dist/cobalt/p-c3462def.entry.js +1 -0
  155. package/dist/cobalt/p-c6fedc59.entry.js +1 -0
  156. package/dist/cobalt/{p-6e808b3a.entry.js → p-c750b2d2.entry.js} +1 -1
  157. package/dist/cobalt/{p-70b14b05.entry.js → p-cc0a4617.entry.js} +1 -1
  158. package/dist/cobalt/{p-29be61a9.entry.js → p-cc8e2f16.entry.js} +1 -1
  159. package/dist/cobalt/{p-790d384e.entry.js → p-d9608046.entry.js} +1 -1
  160. package/dist/cobalt/{p-cfb36943.entry.js → p-e1957078.entry.js} +1 -1
  161. package/dist/cobalt/{p-8d7fdb9d.entry.js → p-e2762263.entry.js} +1 -1
  162. package/dist/cobalt/p-e33853fa.entry.js +1 -0
  163. package/dist/cobalt/p-e420d5c9.entry.js +1 -0
  164. package/dist/cobalt/{p-377c2ccc.entry.js → p-e4a539da.entry.js} +1 -1
  165. package/dist/cobalt/{p-d809bd44.entry.js → p-e7085f08.entry.js} +1 -1
  166. package/dist/cobalt/p-e710b9ea.entry.js +1 -0
  167. package/dist/cobalt/{p-eb18fdbf.entry.js → p-e9aaeaf7.entry.js} +1 -1
  168. package/dist/cobalt/{p-65af5017.entry.js → p-f073b467.entry.js} +1 -1
  169. package/dist/cobalt/p-f0de4415.entry.js +1 -0
  170. package/dist/cobalt/p-f36e461f.entry.js +1 -0
  171. package/dist/cobalt/p-f6ac5301.entry.js +1 -0
  172. package/dist/cobalt/{p-9a04ca90.entry.js → p-f6b0c4a0.entry.js} +1 -1
  173. package/dist/cobalt/p-f86ccb38.entry.js +1 -0
  174. package/dist/cobalt/{p-1f747e45.entry.js → p-fb251497.entry.js} +1 -1
  175. package/dist/cobalt/p-fd27c2bd.entry.js +1 -0
  176. package/dist/cobalt/p-tT-aZV0-.js +2 -0
  177. package/dist/collection/collection-manifest.json +9 -1
  178. package/dist/collection/components/co-accordion/co-accordion.css +20 -8
  179. package/dist/collection/components/co-accordion/co-accordion.js +5 -2
  180. package/dist/collection/components/co-app-shell/co-app-shell.js +2 -2
  181. package/dist/collection/components/co-autocomplete/co-autocomplete.css +4 -751
  182. package/dist/collection/components/co-autocomplete/co-autocomplete.js +41 -76
  183. package/dist/collection/components/co-avatar/co-avatar.js +27 -3
  184. package/dist/collection/components/co-avatar-group/co-avatar-group.js +2 -2
  185. package/dist/collection/components/co-badge/co-badge.js +1 -1
  186. package/dist/collection/components/co-bottom-sheet/co-bottom-sheet.js +3 -3
  187. package/dist/collection/components/co-breadcrumb/co-breadcrumb.css +6 -0
  188. package/dist/collection/components/co-breadcrumb/co-breadcrumb.js +111 -0
  189. package/dist/collection/components/co-breadcrumb-item/co-breadcrumb-item.css +66 -0
  190. package/dist/collection/components/co-breadcrumb-item/co-breadcrumb-item.js +169 -0
  191. package/dist/collection/components/co-button/co-button.css +23 -0
  192. package/dist/collection/components/co-button/co-button.js +48 -2
  193. package/dist/collection/components/co-button-group/co-button-group.js +2 -2
  194. package/dist/collection/components/co-calendar/co-calendar.css +12 -12
  195. package/dist/collection/components/co-calendar/co-calendar.js +1 -1
  196. package/dist/collection/components/co-calendar-month/co-calendar-month.js +1 -1
  197. package/dist/collection/components/co-card/co-card.js +2 -2
  198. package/dist/collection/components/co-checkbox/co-checkbox.css +63 -0
  199. package/dist/collection/components/co-checkbox/co-checkbox.js +58 -7
  200. package/dist/collection/components/co-checkbox-group/co-checkbox-group.js +3 -3
  201. package/dist/collection/components/co-chip/co-chip.css +56 -1
  202. package/dist/collection/components/co-chip/co-chip.js +52 -9
  203. package/dist/collection/components/co-color-picker/co-color-picker.js +2 -2
  204. package/dist/collection/components/co-column-picker/co-column-picker.js +2 -2
  205. package/dist/collection/components/co-combobox/co-combobox.css +6 -830
  206. package/dist/collection/components/co-combobox/co-combobox.js +73 -84
  207. package/dist/collection/components/co-command-search/co-command-search.css +2 -60
  208. package/dist/collection/components/co-command-search/co-command-search.js +23 -48
  209. package/dist/collection/components/co-data-table/co-data-table.css +47 -8
  210. package/dist/collection/components/co-data-table/co-data-table.js +199 -15
  211. package/dist/collection/components/co-data-table-pagination/co-data-table-pagination.js +4 -4
  212. package/dist/collection/components/co-date-field/co-date-field.css +4 -7
  213. package/dist/collection/components/co-date-field/co-date-field.js +4 -4
  214. package/dist/collection/components/co-date-range/co-date-range.js +1 -1
  215. package/dist/collection/components/co-date-range-picker/co-date-range-picker.css +9 -9
  216. package/dist/collection/components/co-drawer/co-drawer.css +63 -10
  217. package/dist/collection/components/co-drawer/co-drawer.js +60 -5
  218. package/dist/collection/components/co-drive-card/co-drive-card.css +285 -0
  219. package/dist/collection/components/co-drive-card/co-drive-card.js +329 -0
  220. package/dist/collection/components/co-drop-zone/co-drop-zone.css +49 -0
  221. package/dist/collection/components/co-drop-zone/co-drop-zone.js +197 -0
  222. package/dist/collection/components/co-empty-state/co-empty-state.css +39 -1
  223. package/dist/collection/components/co-empty-state/co-empty-state.js +72 -1
  224. package/dist/collection/components/co-event-calendar/co-event-calendar.js +2 -2
  225. package/dist/collection/components/co-fab/co-fab.css +8 -1
  226. package/dist/collection/components/co-fab/co-fab.js +24 -5
  227. package/dist/collection/components/co-file-field/co-file-field.js +5 -5
  228. package/dist/collection/components/co-file-type-tile/co-file-type-tile.css +14 -0
  229. package/dist/collection/components/co-file-type-tile/co-file-type-tile.js +164 -0
  230. package/dist/collection/components/co-helper-text/co-helper-text.js +2 -2
  231. package/dist/collection/components/co-icon/co-icon.js +2 -2
  232. package/dist/collection/components/co-icon-button/co-icon-button.css +11 -4
  233. package/dist/collection/components/co-icon-button/co-icon-button.js +80 -25
  234. package/dist/collection/components/co-input/co-input.css +67 -6
  235. package/dist/collection/components/co-input/co-input.js +54 -5
  236. package/dist/collection/components/co-json-field/co-json-field.js +3 -3
  237. package/dist/collection/components/co-lightbox/co-lightbox.css +2 -2
  238. package/dist/collection/components/co-lightbox/co-lightbox.js +4 -4
  239. package/dist/collection/components/co-list-footer/co-list-footer.js +1 -1
  240. package/dist/collection/components/co-list-item/co-list-item.js +4 -4
  241. package/dist/collection/components/co-media-thumb/co-media-thumb.css +43 -0
  242. package/dist/collection/components/co-media-thumb/co-media-thumb.js +148 -0
  243. package/dist/collection/components/co-menu/co-menu.css +6 -4
  244. package/dist/collection/components/co-menu/co-menu.js +20 -1
  245. package/dist/collection/components/co-menu-divider/co-menu-divider.js +1 -1
  246. package/dist/collection/components/co-menu-item/co-menu-item.css +27 -9
  247. package/dist/collection/components/co-menu-item/co-menu-item.js +69 -2
  248. package/dist/collection/components/co-modal/co-modal.css +17 -0
  249. package/dist/collection/components/co-modal/co-modal.js +59 -6
  250. package/dist/collection/components/co-navbar/co-navbar.js +2 -2
  251. package/dist/collection/components/co-number-field/co-number-field.css +10 -11
  252. package/dist/collection/components/co-number-field/co-number-field.js +2 -2
  253. package/dist/collection/components/co-option-list/co-option-list.css +966 -0
  254. package/dist/collection/components/co-option-list/co-option-list.js +899 -0
  255. package/dist/collection/components/co-option-list/optionListLogic.js +100 -0
  256. package/dist/collection/components/co-overlay/co-overlay.js +1 -1
  257. package/dist/collection/components/co-page-header/co-page-header.js +1 -1
  258. package/dist/collection/components/co-phone-field/co-phone-field.css +4 -7
  259. package/dist/collection/components/co-phone-field/co-phone-field.js +1 -1
  260. package/dist/collection/components/co-popover/co-popover.js +11 -2
  261. package/dist/collection/components/co-progress-bar/co-progress-bar.css +1 -1
  262. package/dist/collection/components/co-progress-bar/co-progress-bar.js +2 -2
  263. package/dist/collection/components/co-progress-circle/co-progress-circle.js +2 -2
  264. package/dist/collection/components/co-radio/co-radio.js +3 -3
  265. package/dist/collection/components/co-radio-group/co-radio-group.js +3 -3
  266. package/dist/collection/components/co-rating/co-rating.js +3 -3
  267. package/dist/collection/components/co-ref-field/co-ref-field.css +6 -897
  268. package/dist/collection/components/co-ref-field/co-ref-field.js +0 -0
  269. package/dist/collection/components/co-rich-text-editor/co-rich-text-editor.css +1 -1
  270. package/dist/collection/components/co-rich-text-editor/co-rich-text-editor.js +2 -2
  271. package/dist/collection/components/co-row/co-row.js +2 -2
  272. package/dist/collection/components/co-segmented-bar/co-segmented-bar.css +36 -0
  273. package/dist/collection/components/co-segmented-bar/co-segmented-bar.js +176 -0
  274. package/dist/collection/components/co-select/co-select.css +4 -7
  275. package/dist/collection/components/co-select/co-select.js +4 -4
  276. package/dist/collection/components/co-separator/co-separator.js +1 -1
  277. package/dist/collection/components/co-sidebar/co-sidebar.js +2 -2
  278. package/dist/collection/components/co-sidebar-nav/co-sidebar-nav.css +8 -6
  279. package/dist/collection/components/co-sidebar-nav/co-sidebar-nav.js +8 -6
  280. package/dist/collection/components/co-skeleton/co-skeleton.js +1 -1
  281. package/dist/collection/components/co-slider/co-slider.js +2 -2
  282. package/dist/collection/components/co-switch/co-switch.css +3 -1
  283. package/dist/collection/components/co-switch/co-switch.js +3 -3
  284. package/dist/collection/components/co-tab/co-tab.css +93 -7
  285. package/dist/collection/components/co-tab/co-tab.js +45 -3
  286. package/dist/collection/components/co-tab-group/co-tab-group.css +19 -0
  287. package/dist/collection/components/co-tab-group/co-tab-group.js +41 -1
  288. package/dist/collection/components/co-tags-field/co-tags-field.js +5 -5
  289. package/dist/collection/components/co-textarea/co-textarea.js +4 -4
  290. package/dist/collection/components/co-toast/co-toast.css +56 -2
  291. package/dist/collection/components/co-toast/co-toast.js +27 -2
  292. package/dist/collection/components/co-toggle-button/co-toggle-button.css +38 -0
  293. package/dist/collection/components/co-toggle-button/co-toggle-button.js +46 -3
  294. package/dist/collection/components/co-toggle-button-group/co-toggle-button-group.css +16 -0
  295. package/dist/collection/components/co-toggle-button-group/co-toggle-button-group.js +34 -2
  296. package/dist/collection/components/co-tooltip/co-tooltip.js +2 -2
  297. package/dist/collection/components/co-transfer-list/co-transfer-list.js +2 -2
  298. package/dist/collection/components/co-video/co-video.css +2 -2
  299. package/dist/collection/components/co-video/co-video.js +2 -2
  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.js +1 -1
  304. package/dist/components/co-avatar.js +1 -1
  305. package/dist/components/co-badge.js +1 -1
  306. package/dist/components/co-bottom-sheet.js +1 -1
  307. package/dist/components/co-breadcrumb-item.d.ts +11 -0
  308. package/dist/components/co-breadcrumb-item.js +1 -0
  309. package/dist/components/co-breadcrumb.d.ts +11 -0
  310. package/dist/components/co-breadcrumb.js +1 -0
  311. package/dist/components/co-button-group.js +1 -1
  312. package/dist/components/co-button.js +1 -1
  313. package/dist/components/co-calendar-month.js +1 -1
  314. package/dist/components/co-calendar.js +1 -1
  315. package/dist/components/co-card.js +1 -1
  316. package/dist/components/co-checkbox-group.js +1 -1
  317. package/dist/components/co-checkbox.js +1 -1
  318. package/dist/components/co-chip.js +1 -1
  319. package/dist/components/co-color-picker.js +1 -1
  320. package/dist/components/co-column-picker.js +1 -1
  321. package/dist/components/co-combobox.js +1 -1
  322. package/dist/components/co-command-search.js +1 -1
  323. package/dist/components/co-data-table-pagination.js +1 -1
  324. package/dist/components/co-data-table.js +1 -1
  325. package/dist/components/co-date-field.js +1 -1
  326. package/dist/components/co-date-picker.js +1 -1
  327. package/dist/components/co-date-range-picker.js +1 -1
  328. package/dist/components/co-date-range.js +1 -1
  329. package/dist/components/co-drawer.js +1 -1
  330. package/dist/components/co-drive-card.d.ts +11 -0
  331. package/dist/components/co-drive-card.js +1 -0
  332. package/dist/components/co-drop-zone.d.ts +11 -0
  333. package/dist/components/co-drop-zone.js +1 -0
  334. package/dist/components/co-empty-state.js +1 -1
  335. package/dist/components/co-event-calendar.js +1 -1
  336. package/dist/components/co-fab.js +1 -1
  337. package/dist/components/co-file-field.js +1 -1
  338. package/dist/components/co-file-type-tile.d.ts +11 -0
  339. package/dist/components/co-file-type-tile.js +1 -0
  340. package/dist/components/co-helper-text.js +1 -1
  341. package/dist/components/co-icon-button.js +1 -1
  342. package/dist/components/co-icon.js +1 -1
  343. package/dist/components/co-input.js +1 -1
  344. package/dist/components/co-json-field.js +1 -1
  345. package/dist/components/co-lightbox.js +1 -1
  346. package/dist/components/co-list-footer.js +1 -1
  347. package/dist/components/co-list-item.js +1 -1
  348. package/dist/components/co-media-thumb.d.ts +11 -0
  349. package/dist/components/co-media-thumb.js +1 -0
  350. package/dist/components/co-menu-divider.js +1 -1
  351. package/dist/components/co-menu-item.js +1 -1
  352. package/dist/components/co-menu.js +1 -1
  353. package/dist/components/co-modal.js +1 -1
  354. package/dist/components/co-navbar.js +1 -1
  355. package/dist/components/co-number-field.js +1 -1
  356. package/dist/components/co-option-list.d.ts +11 -0
  357. package/dist/components/co-option-list.js +1 -0
  358. package/dist/components/co-overlay.js +1 -1
  359. package/dist/components/co-page-header.js +1 -1
  360. package/dist/components/co-phone-field.js +1 -1
  361. package/dist/components/co-popover.js +1 -1
  362. package/dist/components/co-progress-bar.js +1 -1
  363. package/dist/components/co-progress-circle.js +1 -1
  364. package/dist/components/co-radio-group.js +1 -1
  365. package/dist/components/co-radio.js +1 -1
  366. package/dist/components/co-rating.js +1 -1
  367. package/dist/components/co-ref-field.js +1 -1
  368. package/dist/components/co-rich-text-editor.js +1 -1
  369. package/dist/components/co-rich-text-toolbar.js +1 -1
  370. package/dist/components/co-rich-text-viewer.js +1 -1
  371. package/dist/components/co-row.js +1 -1
  372. package/dist/components/co-segmented-bar.d.ts +11 -0
  373. package/dist/components/co-segmented-bar.js +1 -0
  374. package/dist/components/co-select.js +1 -1
  375. package/dist/components/co-separator.js +1 -1
  376. package/dist/components/co-sidebar-nav.js +1 -1
  377. package/dist/components/co-sidebar.js +1 -1
  378. package/dist/components/co-skeleton.js +1 -1
  379. package/dist/components/co-slider.js +1 -1
  380. package/dist/components/co-switch.js +1 -1
  381. package/dist/components/co-tab-group.js +1 -1
  382. package/dist/components/co-tab.js +1 -1
  383. package/dist/components/co-tags-field.js +1 -1
  384. package/dist/components/co-textarea.js +1 -1
  385. package/dist/components/co-toast.js +1 -1
  386. package/dist/components/co-toggle-button-group.js +1 -1
  387. package/dist/components/co-toggle-button.js +1 -1
  388. package/dist/components/co-tooltip.js +1 -1
  389. package/dist/components/co-transfer-list.js +1 -1
  390. package/dist/components/co-video.js +1 -1
  391. package/dist/components/index.js +1 -1
  392. package/dist/components/p-BHqdcGDh.js +1 -0
  393. package/dist/components/{p-D3Y_ti3Q.js → p-BJTMFYax.js} +1 -1
  394. package/dist/components/p-Ba5lW0pA.js +1 -0
  395. package/dist/components/{p-CegCk7FL.js → p-Bgxofdfb.js} +1 -1
  396. package/dist/components/{p-BB2OaYKF.js → p-CNIs9j-h.js} +1 -1
  397. package/dist/components/{p-DeZxp9vb.js → p-COb8X_fE.js} +1 -1
  398. package/dist/components/{p-BFeE_fiq.js → p-Cam92sWP.js} +1 -1
  399. package/dist/components/p-CmCsm4L-.js +1 -0
  400. package/dist/components/p-D3ts7oo9.js +1 -0
  401. package/dist/components/{p-BNKz39GA.js → p-D4SOCy8I.js} +1 -1
  402. package/dist/components/{p-DKh8ZK4U.js → p-Dh-h40mY.js} +1 -1
  403. package/dist/components/p-DrQh1Cb8.js +1 -0
  404. package/dist/components/p-DvL2TcDG.js +1 -0
  405. package/dist/components/{p-C_ULDaks.js → p-OKwHt2i9.js} +1 -1
  406. package/dist/components/p-QWi9AmnD.js +1 -0
  407. package/dist/components/p-Xwo2HQmt.js +1 -0
  408. package/dist/components/p-_k-j03K-.js +1 -0
  409. package/dist/components/{p-B7vGYFbO.js → p-eSq2ze8W.js} +1 -1
  410. package/dist/components/p-ivjj-BP8.js +1 -0
  411. package/dist/components/{p-DxCFMMfY.js → p-lus32JrB.js} +1 -1
  412. package/dist/esm/co-accordion.entry.js +4 -4
  413. package/dist/esm/co-app-shell.entry.js +3 -3
  414. package/dist/esm/co-autocomplete.entry.js +38 -73
  415. package/dist/esm/co-avatar-group.entry.js +3 -3
  416. package/dist/esm/co-avatar.entry.js +9 -4
  417. package/dist/esm/co-badge.entry.js +2 -2
  418. package/dist/esm/co-bottom-sheet.entry.js +4 -4
  419. package/dist/esm/co-breadcrumb-item.entry.js +35 -0
  420. package/dist/esm/co-breadcrumb.entry.js +53 -0
  421. package/dist/esm/co-button-group.entry.js +3 -3
  422. package/dist/esm/co-button.entry.js +10 -4
  423. package/dist/esm/co-calendar-month.entry.js +2 -2
  424. package/dist/esm/co-calendar_3.entry.js +50 -15
  425. package/dist/esm/co-card.entry.js +3 -3
  426. package/dist/esm/co-checkbox-group.entry.js +4 -4
  427. package/dist/esm/co-checkbox.entry.js +18 -6
  428. package/dist/esm/co-chip_2.entry.js +482 -0
  429. package/dist/esm/co-color-picker.entry.js +4 -4
  430. package/dist/esm/co-column-picker.entry.js +3 -3
  431. package/dist/esm/co-combobox.entry.js +52 -83
  432. package/dist/esm/co-command-search.entry.js +21 -60
  433. package/dist/esm/co-data-table-pagination.entry.js +5 -5
  434. package/dist/esm/co-data-table.entry.js +73 -17
  435. package/dist/esm/co-date-picker.entry.js +2 -2
  436. package/dist/esm/co-date-range-picker.entry.js +3 -3
  437. package/dist/esm/co-date-range.entry.js +2 -2
  438. package/dist/esm/co-drive-card.entry.js +79 -0
  439. package/dist/esm/co-drop-zone.entry.js +61 -0
  440. package/dist/esm/co-empty-state.entry.js +13 -3
  441. package/dist/esm/co-event-calendar.entry.js +3 -3
  442. package/dist/esm/co-fab.entry.js +5 -5
  443. package/dist/esm/co-file-field.entry.js +7 -7
  444. package/dist/esm/co-file-type-tile.entry.js +76 -0
  445. package/dist/esm/co-helper-text.entry.js +3 -3
  446. package/dist/esm/co-icon-button.entry.js +23 -7
  447. package/dist/esm/co-icon.entry.js +3 -3
  448. package/dist/esm/co-input.entry.js +36 -7
  449. package/dist/esm/co-json-field.entry.js +5 -5
  450. package/dist/esm/co-lightbox.entry.js +6 -6
  451. package/dist/esm/co-list-footer.entry.js +2 -2
  452. package/dist/esm/co-list-item.entry.js +5 -5
  453. package/dist/esm/co-loader.entry.js +32 -0
  454. package/dist/esm/co-media-thumb.entry.js +34 -0
  455. package/dist/esm/co-menu-divider.entry.js +2 -2
  456. package/dist/esm/co-menu-item.entry.js +11 -3
  457. package/dist/esm/co-menu.entry.js +3 -3
  458. package/dist/esm/co-modal.entry.js +29 -5
  459. package/dist/esm/co-navbar.entry.js +3 -3
  460. package/dist/esm/co-number-field.entry.js +5 -5
  461. package/dist/esm/{co-loader_2.entry.js → co-overlay.entry.js} +3 -32
  462. package/dist/esm/co-page-header.entry.js +2 -2
  463. package/dist/esm/co-phone-field.entry.js +4 -4
  464. package/dist/esm/co-popover.entry.js +12 -3
  465. package/dist/esm/co-progress-bar.entry.js +4 -4
  466. package/dist/esm/co-progress-circle.entry.js +3 -3
  467. package/dist/esm/co-radio-group.entry.js +4 -4
  468. package/dist/esm/co-radio.entry.js +4 -4
  469. package/dist/esm/co-rating.entry.js +4 -4
  470. package/dist/esm/co-ref-field.entry.js +31 -135
  471. package/dist/esm/co-rich-text-editor.entry.js +5 -5
  472. package/dist/esm/co-rich-text-toolbar.entry.js +1 -1
  473. package/dist/esm/co-rich-text-viewer.entry.js +2 -2
  474. package/dist/esm/co-row.entry.js +3 -3
  475. package/dist/esm/co-segmented-bar.entry.js +56 -0
  476. package/dist/esm/co-select.entry.js +7 -7
  477. package/dist/esm/co-separator.entry.js +2 -2
  478. package/dist/esm/co-sidebar-nav.entry.js +10 -8
  479. package/dist/esm/co-sidebar.entry.js +3 -3
  480. package/dist/esm/co-skeleton.entry.js +2 -2
  481. package/dist/esm/co-slider.entry.js +3 -3
  482. package/dist/esm/co-switch.entry.js +6 -6
  483. package/dist/esm/co-tab-group.entry.js +21 -3
  484. package/dist/esm/co-tab.entry.js +8 -5
  485. package/dist/esm/co-tags-field.entry.js +8 -8
  486. package/dist/esm/co-textarea.entry.js +6 -6
  487. package/dist/esm/co-toast.entry.js +10 -4
  488. package/dist/esm/co-toggle-button-group.entry.js +16 -4
  489. package/dist/esm/co-toggle-button.entry.js +9 -5
  490. package/dist/esm/co-tooltip.entry.js +3 -3
  491. package/dist/esm/co-transfer-list.entry.js +3 -3
  492. package/dist/esm/co-video.entry.js +4 -4
  493. package/dist/esm/cobalt.js +3 -3
  494. package/dist/esm/{fieldChip-GPikjpYw.js → fieldChip-ChXW__C5.js} +1 -1
  495. package/dist/esm/{index-w_Wxgclf.js → index-Cyrxk8Qq.js} +64 -11
  496. package/dist/esm/{index-CYsftTKf.js → index-tT-aZV0-.js} +69 -13
  497. package/dist/esm/loader.js +3 -3
  498. package/dist/esm/{requiredMark-CEbXKHcU.js → requiredMark-C7-_2UhB.js} +1 -1
  499. package/dist/types/components/co-accordion/co-accordion.d.ts +3 -0
  500. package/dist/types/components/co-autocomplete/co-autocomplete.d.ts +12 -14
  501. package/dist/types/components/co-avatar/co-avatar.d.ts +2 -0
  502. package/dist/types/components/co-breadcrumb/co-breadcrumb.d.ts +27 -0
  503. package/dist/types/components/co-breadcrumb-item/co-breadcrumb-item.d.ts +33 -0
  504. package/dist/types/components/co-button/co-button.d.ts +4 -0
  505. package/dist/types/components/co-checkbox/co-checkbox.d.ts +10 -2
  506. package/dist/types/components/co-chip/co-chip.d.ts +15 -3
  507. package/dist/types/components/co-combobox/co-combobox.d.ts +29 -15
  508. package/dist/types/components/co-command-search/co-command-search.d.ts +13 -5
  509. package/dist/types/components/co-command-search/commandSearchLogic.d.ts +1 -1
  510. package/dist/types/components/co-data-table/co-data-table.d.ts +35 -1
  511. package/dist/types/components/co-drawer/co-drawer.d.ts +12 -0
  512. package/dist/types/components/co-drive-card/co-drive-card.d.ts +52 -0
  513. package/dist/types/components/co-drop-zone/co-drop-zone.d.ts +38 -0
  514. package/dist/types/components/co-empty-state/co-empty-state.d.ts +6 -0
  515. package/dist/types/components/co-fab/co-fab.d.ts +3 -1
  516. package/dist/types/components/co-file-type-tile/co-file-type-tile.d.ts +11 -0
  517. package/dist/types/components/co-icon-button/co-icon-button.d.ts +18 -3
  518. package/dist/types/components/co-input/co-input.d.ts +13 -1
  519. package/dist/types/components/co-media-thumb/co-media-thumb.d.ts +21 -0
  520. package/dist/types/components/co-menu/co-menu.d.ts +4 -0
  521. package/dist/types/components/co-menu-item/co-menu-item.d.ts +10 -1
  522. package/dist/types/components/co-modal/co-modal.d.ts +20 -2
  523. package/dist/types/components/co-option-list/co-option-list.d.ts +105 -0
  524. package/dist/types/components/co-option-list/optionListLogic.d.ts +69 -0
  525. package/dist/types/components/co-popover/co-popover.d.ts +1 -0
  526. package/dist/types/components/co-ref-field/co-ref-field.d.ts +8 -30
  527. package/dist/types/components/co-segmented-bar/co-segmented-bar.d.ts +32 -0
  528. package/dist/types/components/co-sidebar-nav/co-sidebar-nav.d.ts +2 -0
  529. package/dist/types/components/co-tab/co-tab.d.ts +4 -0
  530. package/dist/types/components/co-tab-group/co-tab-group.d.ts +7 -0
  531. package/dist/types/components/co-toast/co-toast.d.ts +7 -0
  532. package/dist/types/components/co-toggle-button/co-toggle-button.d.ts +6 -0
  533. package/dist/types/components/co-toggle-button-group/co-toggle-button-group.d.ts +5 -0
  534. package/dist/types/components.d.ts +1451 -82
  535. package/package.json +3 -3
  536. package/dist/cjs/co-chip.cjs.entry.js +0 -86
  537. package/dist/cobalt/p-0a506c9d.entry.js +0 -1
  538. package/dist/cobalt/p-0e8c0d87.entry.js +0 -1
  539. package/dist/cobalt/p-136ad468.entry.js +0 -1
  540. package/dist/cobalt/p-14b59277.entry.js +0 -1
  541. package/dist/cobalt/p-1774d211.entry.js +0 -1
  542. package/dist/cobalt/p-180e1106.entry.js +0 -1
  543. package/dist/cobalt/p-1dc9c49e.entry.js +0 -1
  544. package/dist/cobalt/p-201eaf35.entry.js +0 -1
  545. package/dist/cobalt/p-260101ab.entry.js +0 -1
  546. package/dist/cobalt/p-2d2ce434.entry.js +0 -1
  547. package/dist/cobalt/p-3a257cb0.entry.js +0 -1
  548. package/dist/cobalt/p-3e187456.entry.js +0 -1
  549. package/dist/cobalt/p-4431faac.entry.js +0 -1
  550. package/dist/cobalt/p-456fa86f.entry.js +0 -1
  551. package/dist/cobalt/p-5890e4d1.entry.js +0 -1
  552. package/dist/cobalt/p-62274eba.entry.js +0 -1
  553. package/dist/cobalt/p-635b03d5.entry.js +0 -1
  554. package/dist/cobalt/p-64ddee92.entry.js +0 -1
  555. package/dist/cobalt/p-69d4c0c8.entry.js +0 -1
  556. package/dist/cobalt/p-6c480916.entry.js +0 -1
  557. package/dist/cobalt/p-8012e152.entry.js +0 -1
  558. package/dist/cobalt/p-80b27203.entry.js +0 -1
  559. package/dist/cobalt/p-867c1465.entry.js +0 -1
  560. package/dist/cobalt/p-86a143d7.entry.js +0 -1
  561. package/dist/cobalt/p-8dc1dab8.entry.js +0 -1
  562. package/dist/cobalt/p-92bd9b29.entry.js +0 -1
  563. package/dist/cobalt/p-98ab5f3f.entry.js +0 -1
  564. package/dist/cobalt/p-9a088515.entry.js +0 -1
  565. package/dist/cobalt/p-9abbd436.entry.js +0 -1
  566. package/dist/cobalt/p-9d69c067.entry.js +0 -1
  567. package/dist/cobalt/p-CYsftTKf.js +0 -2
  568. package/dist/cobalt/p-c4f59532.entry.js +0 -1
  569. package/dist/cobalt/p-e54dd404.entry.js +0 -1
  570. package/dist/cobalt/p-eb73052a.entry.js +0 -1
  571. package/dist/cobalt/p-oImf-7fN.js +0 -1
  572. package/dist/collection/components/co-command-search/commandSearchGroup.js +0 -17
  573. package/dist/components/p-Ba4v1NXo.js +0 -1
  574. package/dist/components/p-EPZfLt5l.js +0 -1
  575. package/dist/components/p-FMnqPWcM.js +0 -1
  576. package/dist/components/p-Hzh9U2cM.js +0 -1
  577. package/dist/components/p-WZ06pT2Y.js +0 -1
  578. package/dist/components/p-tloAgDin.js +0 -1
  579. package/dist/esm/co-chip.entry.js +0 -84
  580. package/dist/types/components/co-command-search/commandSearchGroup.d.ts +0 -20
@@ -15,7 +15,7 @@
15
15
  white-space: nowrap;
16
16
  border-radius: var(--co-border-radius-full);
17
17
  background: transparent;
18
- color: var(--co-color-gris-500, #888);
18
+ color: var(--co-color-gray-500, #888);
19
19
  transition: background 0.15s ease, color 0.15s ease, font-weight 0.15s ease;
20
20
  box-sizing: border-box;
21
21
  }
@@ -33,20 +33,23 @@
33
33
  height: 40px;
34
34
  }
35
35
 
36
- /* ─── States ────────────────────────────────────────────────── */
37
- .co-tab:hover:not(:disabled) {
38
- background: var(--co-color-gris-100, #f6f6f6);
36
+ /* ─── States (pill) ─────────────────────────────────────────── */
37
+ /* Hover fill is scoped to the pill variant so the underline variant
38
+ has no hover rule. Every pill tab carries `.co-tab--pill`, so this
39
+ reproduces the previous `.co-tab:hover` behavior exactly. */
40
+ .co-tab--pill:hover:not(:disabled) {
41
+ background: var(--co-color-gray-100, #f6f6f6);
39
42
  color: var(--co-color-base-negro, #1f1c1b);
40
43
  }
41
44
 
42
45
  .co-tab--selected {
43
- background: var(--co-color-gris-100, #f6f6f6);
46
+ background: var(--co-color-gray-100, #f6f6f6);
44
47
  color: var(--co-color-base-negro, #1f1c1b);
45
48
  font-weight: 500;
46
49
  }
47
50
 
48
- .co-tab--selected:hover:not(:disabled) {
49
- background: var(--co-color-gris-100, #f6f6f6);
51
+ .co-tab--pill.co-tab--selected:hover:not(:disabled) {
52
+ background: var(--co-color-gray-100, #f6f6f6);
50
53
  color: var(--co-color-base-negro, #1f1c1b);
51
54
  }
52
55
 
@@ -59,3 +62,86 @@
59
62
  outline: 2px solid var(--co-semantic-border-focus, var(--co-color-primary-azul, #2563eb));
60
63
  outline-offset: 2px;
61
64
  }
65
+
66
+ /* ─── Underline variant ─────────────────────────────────────── */
67
+ /* Transparent bg in ALL states; only the bottom-border colour, text
68
+ colour and weight change. No hover rule. Placed after the size
69
+ rules so its fixed height/padding win on a specificity tie. */
70
+ .co-tab--underline {
71
+ height: var(--co-spacing-4xl, 40px);
72
+ padding: 0 var(--co-spacing-md, 12px);
73
+ gap: var(--co-spacing-sm2, 8px);
74
+ border-radius: 0;
75
+ border-bottom: 2px solid transparent;
76
+ margin-bottom: -1px;
77
+ background: transparent;
78
+ color: var(--co-color-gray-500, #888888);
79
+ font-size: var(--co-font-size-14, 14px);
80
+ font-weight: 400;
81
+ letter-spacing: var(--co-font-letter-spacing-body, -0.03em);
82
+ transition: color 0.12s ease;
83
+ }
84
+
85
+ .co-tab--underline.co-tab--selected {
86
+ background: transparent;
87
+ border-bottom-color: var(--co-color-base-negro, #1f1c1b);
88
+ color: var(--co-color-base-negro, #1f1c1b);
89
+ font-weight: 500;
90
+ }
91
+
92
+ /* ─── Badge pill ────────────────────────────────────────────── */
93
+ .co-tab__badge {
94
+ display: inline-flex;
95
+ align-items: center;
96
+ justify-content: center;
97
+ box-sizing: border-box;
98
+ min-width: 18px;
99
+ height: 18px;
100
+ padding: 0 5px;
101
+ border-radius: var(--co-border-radius-full, 9999px);
102
+ font-size: 11px;
103
+ font-weight: 500;
104
+ line-height: 1;
105
+ background: var(--co-color-gray-200, #e3e3e3);
106
+ color: var(--co-color-gray-600, #585858);
107
+ }
108
+
109
+ .co-tab--selected .co-tab__badge {
110
+ background: var(--co-color-base-negro, #1f1c1b);
111
+ color: var(--co-color-base-blanco, #fff);
112
+ }
113
+
114
+ /* ─── Segmented variant ─────────────────────────────────────── */
115
+ /* Lives inside a .co-tab-group--segmented track. Transparent chip by
116
+ default; the selected tab becomes a white bordered pill with the lg
117
+ shadow. The transparent border on the base state reserves the 1px so
118
+ selecting a tab never shifts layout. */
119
+ .co-tab--segmented {
120
+ height: auto;
121
+ padding: var(--co-spacing-sm2, 8px) var(--co-spacing-md, 12px);
122
+ border: 1px solid transparent;
123
+ border-radius: var(--co-border-radius-xs, 8px);
124
+ font-size: var(--co-font-size-14);
125
+ font-weight: 400;
126
+ letter-spacing: -0.03em;
127
+ color: var(--co-color-gray-600, #585858);
128
+ background: transparent;
129
+ }
130
+
131
+ .co-tab--segmented:hover:not(:disabled) {
132
+ background: transparent;
133
+ color: var(--co-color-base-negro, #1f1c1b);
134
+ }
135
+
136
+ .co-tab--segmented.co-tab--selected {
137
+ background: var(--co-color-base-blanco, #fff);
138
+ border-color: var(--co-semantic-border-subtle, rgba(31, 28, 27, 0.08));
139
+ box-shadow: var(--co-shadow-lg);
140
+ font-weight: 500;
141
+ color: var(--co-color-base-negro, #1f1c1b);
142
+ }
143
+
144
+ .co-tab--segmented.co-tab--selected:hover:not(:disabled) {
145
+ background: var(--co-color-base-blanco, #fff);
146
+ color: var(--co-color-base-negro, #1f1c1b);
147
+ }
@@ -9,6 +9,8 @@ export class CoTab {
9
9
  this.selected = false;
10
10
  /** Size */
11
11
  this.size = 'small';
12
+ /** Visual variant: filled pill (default), underline tab, or segmented-control pill */
13
+ this.variant = 'pill';
12
14
  /** Disabled state */
13
15
  this.disabled = false;
14
16
  this.handleClick = () => {
@@ -18,13 +20,14 @@ export class CoTab {
18
20
  };
19
21
  }
20
22
  render() {
21
- const iconSize = this.size === 'large' ? 18 : 14;
22
- return (h("button", { key: 'f639c074e062b1d8f2cb0062cb617a53451ec78f', class: {
23
+ const iconSize = this.variant === 'underline' ? 16 : this.size === 'large' ? 18 : 14;
24
+ return (h("button", { key: '77fc8443dbdc5fe327ea28de6e926c4438e96cca', class: {
23
25
  'co-tab': true,
24
26
  [`co-tab--${this.size}`]: true,
27
+ [`co-tab--${this.variant}`]: true,
25
28
  'co-tab--selected': this.selected,
26
29
  'co-tab--disabled': this.disabled,
27
- }, type: "button", role: "tab", "aria-selected": this.selected ? 'true' : 'false', disabled: this.disabled, part: "tab", onClick: this.handleClick }, this.iconLeft && (h("co-icon", { key: 'eaae38c6de14707c2b0a318f0afea16a3b5051f8', name: this.iconLeft, size: iconSize })), h("span", { key: '296bac2a9c7639b590065b6eba2730218fff3ba2', class: "co-tab__label" }, this.label), this.iconRight && (h("co-icon", { key: 'cf2c205989a2a172ab16482bfb510dbb0be86453', 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: '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 }))));
28
31
  }
29
32
  static get is() { return "co-tab"; }
30
33
  static get encapsulation() { return "shadow"; }
@@ -120,6 +123,45 @@ export class CoTab {
120
123
  "attribute": "size",
121
124
  "defaultValue": "'small'"
122
125
  },
126
+ "variant": {
127
+ "type": "string",
128
+ "mutable": false,
129
+ "complexType": {
130
+ "original": "'pill' | 'underline' | 'segmented'",
131
+ "resolved": "\"pill\" | \"segmented\" | \"underline\"",
132
+ "references": {}
133
+ },
134
+ "required": false,
135
+ "optional": false,
136
+ "docs": {
137
+ "tags": [],
138
+ "text": "Visual variant: filled pill (default), underline tab, or segmented-control pill"
139
+ },
140
+ "getter": false,
141
+ "setter": false,
142
+ "reflect": false,
143
+ "attribute": "variant",
144
+ "defaultValue": "'pill'"
145
+ },
146
+ "badge": {
147
+ "type": "string",
148
+ "mutable": false,
149
+ "complexType": {
150
+ "original": "string",
151
+ "resolved": "string | undefined",
152
+ "references": {}
153
+ },
154
+ "required": false,
155
+ "optional": true,
156
+ "docs": {
157
+ "tags": [],
158
+ "text": "Optional count/badge pill rendered after the label"
159
+ },
160
+ "getter": false,
161
+ "setter": false,
162
+ "reflect": false,
163
+ "attribute": "badge"
164
+ },
123
165
  "iconLeft": {
124
166
  "type": "string",
125
167
  "mutable": false,
@@ -7,3 +7,22 @@
7
7
  align-items: center;
8
8
  gap: var(--co-spacing-sm2);
9
9
  }
10
+
11
+ /* ─── Underline variant ─────────────────────────────────────── */
12
+ /* Full-width hairline rail under the tabs; children overlap it with
13
+ their own `margin-bottom: -1px`. */
14
+ .co-tab-group--underline {
15
+ gap: var(--co-spacing-xs, 4px);
16
+ border-bottom: 1px solid var(--co-color-opacity-negro-8, rgba(31, 28, 27, 0.08));
17
+ }
18
+
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. */
22
+ .co-tab-group--segmented {
23
+ display: inline-flex;
24
+ gap: 2px;
25
+ padding: 3px;
26
+ background: var(--co-color-gray-100, #f6f6f6);
27
+ border-radius: var(--co-border-radius-sm, 12px);
28
+ }
@@ -1,5 +1,15 @@
1
1
  import { h } from "@stencil/core";
2
2
  export class CoTabGroup {
3
+ constructor() {
4
+ /** Visual variant, propagated to slotted co-tab children */
5
+ this.variant = 'pill';
6
+ /** Slotted tabs can mount AFTER the group (async v-for data): re-propagate
7
+ variant/selection whenever the slot content changes, or late tabs render
8
+ with the default pill variant. */
9
+ this.onSlotChange = () => {
10
+ this.syncTabs();
11
+ };
12
+ }
3
13
  onTabSelect(e) {
4
14
  e.stopPropagation();
5
15
  this.value = e.detail;
@@ -9,6 +19,9 @@ export class CoTabGroup {
9
19
  watchValue() {
10
20
  this.syncTabs();
11
21
  }
22
+ watchVariant() {
23
+ this.syncTabs();
24
+ }
12
25
  componentDidLoad() {
13
26
  this.syncTabs();
14
27
  }
@@ -16,10 +29,14 @@ export class CoTabGroup {
16
29
  const tabs = this.el.querySelectorAll('co-tab');
17
30
  tabs.forEach((tab) => {
18
31
  tab.selected = (tab.value || tab.label) === this.value;
32
+ tab.variant = this.variant;
19
33
  });
20
34
  }
21
35
  render() {
22
- return (h("div", { key: '458524e7f1469d90c43bf9a8f34ee68d511e9d36', class: "co-tab-group", role: "tablist", part: "tab-group" }, h("slot", { key: 'f11af2be459cb51e9cd426d0e20839fd6d1477f8' })));
36
+ return (h("div", { key: 'b0e4e872934528c7dbce3bf1c0329b1efb0db887', class: {
37
+ 'co-tab-group': true,
38
+ [`co-tab-group--${this.variant}`]: true,
39
+ }, role: "tablist", part: "tab-group" }, h("slot", { key: '407d99ce75badc9bfeecaf8506155ef346681489', onSlotchange: this.onSlotChange })));
23
40
  }
24
41
  static get is() { return "co-tab-group"; }
25
42
  static get encapsulation() { return "shadow"; }
@@ -53,6 +70,26 @@ export class CoTabGroup {
53
70
  "setter": false,
54
71
  "reflect": true,
55
72
  "attribute": "value"
73
+ },
74
+ "variant": {
75
+ "type": "string",
76
+ "mutable": false,
77
+ "complexType": {
78
+ "original": "'pill' | 'underline' | 'segmented'",
79
+ "resolved": "\"pill\" | \"segmented\" | \"underline\"",
80
+ "references": {}
81
+ },
82
+ "required": false,
83
+ "optional": false,
84
+ "docs": {
85
+ "tags": [],
86
+ "text": "Visual variant, propagated to slotted co-tab children"
87
+ },
88
+ "getter": false,
89
+ "setter": false,
90
+ "reflect": false,
91
+ "attribute": "variant",
92
+ "defaultValue": "'pill'"
56
93
  }
57
94
  };
58
95
  }
@@ -79,6 +116,9 @@ export class CoTabGroup {
79
116
  return [{
80
117
  "propName": "value",
81
118
  "methodName": "watchValue"
119
+ }, {
120
+ "propName": "variant",
121
+ "methodName": "watchVariant"
82
122
  }];
83
123
  }
84
124
  static get listeners() {
@@ -186,14 +186,14 @@ export class CoTagsField {
186
186
  const showClear = this.clearable && this.hasValue && !this.disabled && !this.readonly;
187
187
  const helper = this.isInvalid ? this.errorMessage : this.helperText;
188
188
  const showInput = !this.readonly && !this.atCapacity;
189
- return (h("div", { key: '1cef49a116560d7dbb9bf8d188fdc96361a57eb2', class: {
189
+ return (h("div", { key: '45bafe056e1e22295fca85e4117688b3689f6531', class: {
190
190
  'co-tags-field': true,
191
191
  'co-tags-field--disabled': this.disabled,
192
192
  'co-tags-field--focused': this.hasFocus,
193
193
  'co-tags-field--filled': this.hasValue,
194
194
  'co-tags-field--invalid': this.isInvalid,
195
195
  [`co-tags-field--${this.size}`]: true,
196
- }, part: "wrapper" }, this.label && (h("div", { key: 'a4b799bdb15d8a64d86e9b3f367da4eb080a513a', class: "co-tags-field__labels" }, h("label", { key: '09b17b8888f9ab34ae6e52d6149f2234bab29cad', class: "co-tags-field__label", part: "label" }, this.label, h(RequiredMark, { key: '2e629eb73a4b76d7484f506edf26de88b13082b3', required: this.required })))), h("div", { key: 'd0f285b57c0d0dec34f5c62889c09eeb1b85d7f0', class: "co-tags-field__field-row" }, h("div", { key: '244270d7af8d9a615fa4e294d52986e470c71882', class: "co-tags-field__field", part: "field", onClick: this.handleFieldClick }, h("div", { key: '434c8fe594082e57a1bc84c83467041f9070cc8b', class: "co-tags-field__input-wrapper" }, tags.map((tag, index) => this.editingIndex === index ? (h("input", { key: `edit-${index}`, ref: (el) => (this.editEl = el), class: "co-tags-field__edit", type: "text", value: this.editingDraft, onInput: (e) => (this.editingDraft = e.target.value), onKeyDown: this.handleEditKeyDown, onBlur: () => this.saveEdit() })) : (
196
+ }, part: "wrapper" }, this.label && (h("div", { key: '74f22995661cc3617ec781c002e9dd0d14be1d08', class: "co-tags-field__labels" }, h("label", { key: '90d1e9356d0e2e308b74be32fc508dcfd0d1049c', class: "co-tags-field__label", part: "label" }, this.label, h(RequiredMark, { key: '0cdef38368b8770ccf6f202f947a9b8797a0de2d', required: this.required })))), h("div", { key: '9be586d54135a42590ccd1114aa0024fb0a4cb89', class: "co-tags-field__field-row" }, h("div", { key: '61024e618e9140aa6e8ca14dc9b0d26dcf0192ed', class: "co-tags-field__field", part: "field", onClick: this.handleFieldClick }, h("div", { key: 'bcac0080c15699779e844632f52969ed3b97e669', class: "co-tags-field__input-wrapper" }, tags.map((tag, index) => this.editingIndex === index ? (h("input", { key: `edit-${index}`, ref: (el) => (this.editEl = el), class: "co-tags-field__edit", type: "text", value: this.editingDraft, onInput: (e) => (this.editingDraft = e.target.value), onKeyDown: this.handleEditKeyDown, onBlur: () => this.saveEdit() })) : (
197
197
  // Shared field-chip (utils/fieldChip.tsx) per the Figma
198
198
  // "Tipo=Chips" spec — same look as co-ref-field's chips.
199
199
  h(FieldChip, { key: `chip-${index}-${tag}`, baseClass: "co-tags-field__chip", label: tag, title: tag, onChipDblClick: () => this.startEdit(index), onRemove: !this.disabled && !this.readonly
@@ -201,13 +201,13 @@ export class CoTagsField {
201
201
  e.stopPropagation();
202
202
  this.removeTag(index);
203
203
  }
204
- : undefined }))), showInput && (h("input", { key: '2b425cbf2761cac6eb63bd9e6b27e5dcc082dc69', ref: (el) => (this.inputEl = el), class: "co-tags-field__native", type: "text", autocomplete: "off", value: this.draft, placeholder: tags.length === 0 ? this.placeholder : '', disabled: this.disabled, required: this.required && tags.length === 0, "aria-invalid": this.isInvalid ? 'true' : 'false', "aria-label": !this.label ? 'Tags' : undefined, onInput: this.handleInput, onFocus: this.handleFocus, onBlur: this.handleBlur, onKeyDown: this.handleKeyDown, part: "input" }))), this.clearable && (h("button", { key: 'a972a27e6b26d585e66a1d400e8af1da4571d12d', class: {
204
+ : undefined }))), showInput && (h("input", { key: 'a72e551df5531ccbc08db60c9f2c87dfd4d4b554', ref: (el) => (this.inputEl = el), class: "co-tags-field__native", type: "text", autocomplete: "off", value: this.draft, placeholder: tags.length === 0 ? this.placeholder : '', disabled: this.disabled, required: this.required && tags.length === 0, "aria-invalid": this.isInvalid ? 'true' : 'false', "aria-label": !this.label ? 'Tags' : undefined, onInput: this.handleInput, onFocus: this.handleFocus, onBlur: this.handleBlur, onKeyDown: this.handleKeyDown, part: "input" }))), this.clearable && (h("button", { key: 'c18186dba9f0f07db60885885734fb924c8deeb5', class: {
205
205
  'co-tags-field__clear': true,
206
206
  'co-tags-field__clear--hidden': !showClear,
207
- }, type: "button", tabIndex: -1, onMouseDown: (e) => e.preventDefault() /* keep input focus */, onClick: this.handleClearAll, "aria-label": "Clear all", part: "clear" }, h("co-icon", { key: '7d7286ed2c13129e40dd18e205626615d0b94022', name: "x-circle", size: 16, weight: "fill" }))))), this.name && h("input", { key: 'd1538321cd3e330a54978424ec165fe8b9a533e4', type: "hidden", name: this.name, value: JSON.stringify(tags) }), helper && (h("div", { key: 'e74d2fcbe0c8355cb66becbe526d974f524acdfa', class: {
207
+ }, type: "button", tabIndex: -1, onMouseDown: (e) => e.preventDefault() /* keep input focus */, onClick: this.handleClearAll, "aria-label": "Clear all", part: "clear" }, h("co-icon", { key: '6831ec45b34a29da992291838bcd21bec82f9bc3', name: "x-circle", size: 16, weight: "fill" }))))), this.name && h("input", { key: 'ec43dc82ad02fe07a7dde183355c824275d64c7e', type: "hidden", name: this.name, value: JSON.stringify(tags) }), helper && (h("div", { key: '8d1a219b0536746e0d57a31b9124f203872e9360', class: {
208
208
  'co-tags-field__helper': true,
209
209
  'co-tags-field__helper--error': this.isInvalid,
210
- }, part: "helper" }, this.isInvalid && (h("co-icon", { key: '17642154cb83071f07819f98dccd866066d0eae1', name: "warning-circle", size: 14, class: "co-tags-field__helper-icon" })), h("span", { key: '1cf60e4b7f9eed91aacdb0ab4044b20a2971d57d', class: "co-tags-field__helper-text" }, helper)))));
210
+ }, part: "helper" }, this.isInvalid && (h("co-icon", { key: 'ceb06b309d8614eefaa81fd92a028e6fb69c8302', name: "warning-circle", size: 14, class: "co-tags-field__helper-icon" })), h("span", { key: '96134b037eb376bc20aab31b627b8cf579f76f8f', class: "co-tags-field__helper-text" }, helper)))));
211
211
  }
212
212
  static get is() { return "co-tags-field"; }
213
213
  static get encapsulation() { return "shadow"; }
@@ -71,7 +71,7 @@ export class CoTextarea {
71
71
  const showClear = this.clearable && this.hasValue && !this.disabled && !this.readonly;
72
72
  const isOverLimit = this.maxLength != null && this.charCount > this.maxLength;
73
73
  const statusClass = this.status !== 'default' ? `co-textarea--${this.status}` : '';
74
- return (h("div", { key: 'bbc105515a08e5ddf757c3095aa220d9ff3c1643', class: {
74
+ return (h("div", { key: 'cb418f5b90a1a22cdd5661d923fec6b5111d4f2f', class: {
75
75
  'co-textarea': true,
76
76
  'co-textarea--disabled': this.disabled,
77
77
  'co-textarea--focused': this.hasFocus,
@@ -79,13 +79,13 @@ export class CoTextarea {
79
79
  'co-textarea--over-limit': isOverLimit,
80
80
  [`co-textarea--${this.size}`]: true,
81
81
  [statusClass]: !!statusClass,
82
- }, part: "wrapper" }, (this.label || this.secondaryLabel) && (h("div", { key: '54eeba06154d9ce2ec18e41046cdab973c7b30ab', class: "co-textarea__labels" }, this.label && (h("label", { key: 'b7f996ad516af104753219042d6fa3f0db32f462', class: "co-textarea__label", part: "label" }, this.label, h(RequiredMark, { key: '29801d7d5958919629d93c6ae70312f44196b907', required: this.required }))), this.secondaryLabel && (h("span", { key: 'fe3637ec4dc07d95ba73d372b93d4205bf9b836c', class: "co-textarea__secondary-label" }, this.secondaryLabel)))), h("div", { key: 'ca1f28e1b809c0e6071a98f654ec0b9d5f55d474', class: "co-textarea__field", part: "field" }, h("textarea", { key: 'f5db20027591b83a255e746dcda548f6b308972f', ref: (el) => (this.textareaEl = el), class: {
82
+ }, part: "wrapper" }, (this.label || this.secondaryLabel) && (h("div", { key: '400c4187c7c6614e4e843216b466a45fdbb49d2b', class: "co-textarea__labels" }, this.label && (h("label", { key: 'a1e0e0fac2cd0c8645a89aba1367881e6f907005', class: "co-textarea__label", part: "label" }, this.label, h(RequiredMark, { key: '07870f276a4d35f35072dab6c8ee726079c34be5', required: this.required }))), this.secondaryLabel && (h("span", { key: 'ddcfffd9e502787acc434e4dd78abac7193b19cd', class: "co-textarea__secondary-label" }, this.secondaryLabel)))), h("div", { key: '4a315f9667d81b1aed6be91ed08095666bc69c37', class: "co-textarea__field", part: "field" }, h("textarea", { key: 'b0c69a6c064a04c7f487b8d48897f0882d15a8ad', ref: (el) => (this.textareaEl = el), class: {
83
83
  'co-textarea__native': true,
84
84
  [`co-textarea__native--resize-${this.resize}`]: true,
85
- }, rows: this.rows, value: this.value, placeholder: this.placeholder, disabled: this.disabled, readOnly: this.readonly, required: this.required, "aria-invalid": this.status === 'error' || isOverLimit ? 'true' : 'false', onInput: this.handleInput, onFocus: this.handleFocus, onBlur: this.handleBlur, part: "input" }), showClear && (h("button", { key: 'd795cedb2bc45a8fa15a364eabb54dba869672f5', class: "co-textarea__clear", type: "button", tabIndex: -1, onClick: this.handleClear, "aria-label": "Clear" }, h("co-icon", { key: '72406240943ffe5644a83e5b00f028a246de792c', name: "x-circle", size: 16, weight: "fill" })))), (this.helperText || this.maxLength != null) && (h("div", { key: 'efeb161b6c9cf518d55446d7ed319d343afa736c', class: "co-textarea__footer" }, this.helperText && (h("div", { key: '0741e7389c3bd2ee683b16fe6a06705f81826bd7', class: {
85
+ }, rows: this.rows, value: this.value, placeholder: this.placeholder, disabled: this.disabled, readOnly: this.readonly, required: this.required, "aria-invalid": this.status === 'error' || isOverLimit ? 'true' : 'false', onInput: this.handleInput, onFocus: this.handleFocus, onBlur: this.handleBlur, part: "input" }), showClear && (h("button", { key: 'b832c62e32fe0bf0e2343c71cec9755ecb68537c', class: "co-textarea__clear", type: "button", tabIndex: -1, onClick: this.handleClear, "aria-label": "Clear" }, h("co-icon", { key: 'e0d6673bb0d29ddabb83ebff4bce9dcb1dce5408', name: "x-circle", size: 16, weight: "fill" })))), (this.helperText || this.maxLength != null) && (h("div", { key: '2f30b4a7923e78ee4c60fd40bbf891607978e961', class: "co-textarea__footer" }, this.helperText && (h("div", { key: '7de370940c99f30fad34e6b40911f190b38eb9b5', class: {
86
86
  'co-textarea__helper': true,
87
87
  'co-textarea__helper--error': this.status === 'error',
88
- }, part: "helper" }, this.status === 'error' && (h("co-icon", { key: '51bd6497349280c1e09bfe4fc8b066726318c08d', name: "warning-circle", size: 14, class: "co-textarea__helper-icon" })), h("span", { key: '63d07623f709027a4a0f4eac8a25fb6b72b8043b', class: "co-textarea__helper-text" }, this.helperText))), this.maxLength != null && (h("span", { key: 'e9b6498ea76e13e69bf58cf8996cafa3561f4609', class: {
88
+ }, part: "helper" }, this.status === 'error' && (h("co-icon", { key: '57e658fc2c65c787f11eaf10a56ac25358467710', name: "warning-circle", size: 14, class: "co-textarea__helper-icon" })), h("span", { key: '53f33d1e87ac75b87019843b8ffbd56e15fd998a', class: "co-textarea__helper-text" }, this.helperText))), this.maxLength != null && (h("span", { key: '80f731565f9fb3d99539ee06bc6bd6285736dbde', class: {
89
89
  'co-textarea__counter': true,
90
90
  'co-textarea__counter--over': isOverLimit,
91
91
  }, part: "counter" }, this.charCount, "/", this.maxLength))))));
@@ -28,7 +28,8 @@
28
28
  }
29
29
 
30
30
  .co-toast--multiline,
31
- .co-toast--stacked {
31
+ .co-toast--stacked,
32
+ .co-toast--progress {
32
33
  align-items: flex-start;
33
34
  }
34
35
 
@@ -38,10 +39,16 @@
38
39
  color: var(--co-toast-icon);
39
40
  }
40
41
 
41
- .co-toast--multiline .co-toast__icon {
42
+ .co-toast--multiline .co-toast__icon,
43
+ .co-toast--progress .co-toast__icon {
42
44
  padding-top: 2px;
43
45
  }
44
46
 
47
+ /* Progress icon is always the azul upload accent */
48
+ .co-toast--progress .co-toast__icon {
49
+ color: var(--co-color-primary-azul, #2563eb);
50
+ }
51
+
45
52
  .co-toast__body {
46
53
  display: flex;
47
54
  flex-direction: column;
@@ -160,3 +167,50 @@
160
167
  --co-toast-dismiss-bg: var(--co-color-status-progress);
161
168
  --co-toast-dismiss-color: var(--co-color-base-blanco);
162
169
  }
170
+
171
+ /* ─── Progress (upload/loading) ──────────────────────────────────────
172
+ * Additive: only rendered when the `progress` prop is a number. Message
173
+ * row + percentage label, with a determinate track underneath. */
174
+
175
+ .co-toast__progress {
176
+ min-width: 0;
177
+ }
178
+
179
+ .co-toast__progress-header {
180
+ display: flex;
181
+ align-items: center;
182
+ gap: var(--co-spacing-md);
183
+ min-width: 0;
184
+ }
185
+
186
+ .co-toast__progress-header .co-toast__content {
187
+ flex: 1;
188
+ min-width: 0;
189
+ }
190
+
191
+ .co-toast__percent {
192
+ flex-shrink: 0;
193
+ font-size: var(--co-font-size-12, 12px);
194
+ font-weight: 400;
195
+ line-height: 1.25;
196
+ letter-spacing: var(--co-font-letter-spacing-body);
197
+ color: var(--co-color-gray-500, #888888);
198
+ font-variant-numeric: tabular-nums;
199
+ }
200
+
201
+ .co-toast__track {
202
+ width: 100%;
203
+ height: 6px;
204
+ margin-top: 9px;
205
+ border-radius: 9999px;
206
+ background: var(--co-color-gray-100, #f6f6f6);
207
+ overflow: hidden;
208
+ }
209
+
210
+ .co-toast__fill {
211
+ display: block;
212
+ height: 100%;
213
+ border-radius: inherit;
214
+ background: var(--co-color-primary-azul, #2563eb);
215
+ transition: width 0.3s ease;
216
+ }
@@ -33,15 +33,21 @@ export class CoToast {
33
33
  var _a;
34
34
  const hasDescription = !!this.description;
35
35
  const isStacked = this.actionsLayout === 'stacked';
36
- const resolvedIcon = (_a = this.icon) !== null && _a !== void 0 ? _a : DEFAULT_ICON[this.variant];
36
+ const hasProgress = this.progress !== undefined && this.progress !== null;
37
+ const clampedProgress = hasProgress
38
+ ? Math.max(0, Math.min(100, this.progress))
39
+ : 0;
40
+ const resolvedIcon = (_a = this.icon) !== null && _a !== void 0 ? _a : (hasProgress ? 'upload-simple' : DEFAULT_ICON[this.variant]);
37
41
  const role = ALERT_VARIANTS.includes(this.variant) ? 'alert' : 'status';
38
42
  const rootClass = {
39
43
  'co-toast': true,
40
44
  [`co-toast--${this.variant}`]: true,
41
45
  'co-toast--multiline': hasDescription,
42
46
  'co-toast--stacked': isStacked,
47
+ 'co-toast--progress': hasProgress,
43
48
  };
44
- return (h("div", { key: '2113d3f769ae8575ff5031a558625fda2e1482cc', class: rootClass, part: "toast", role: role }, resolvedIcon && (h("span", { key: '7019ff2526714c5dfc79ed276f4905399752b3dd', class: "co-toast__icon" }, h("co-icon", { key: 'a99bd1cd1d7e47e618924ca13b44f461d42828c8', name: resolvedIcon, size: 20 }))), h("div", { key: '0ab3a6e6fb7cd6315f85a350c8813b6e9530911b', class: "co-toast__body" }, h("div", { key: '24e9d31de0a9d0b4eb128702ecde67b081166638', class: "co-toast__content" }, h("span", { key: '7dc886e4103b626c08208fb0e4504ba2c8654922', class: "co-toast__message" }, this.message), hasDescription && (h("span", { key: 'f98fb4331439a518192ea34174dae62ba4156c7c', class: "co-toast__description" }, this.description))), isStacked && (h("div", { key: '6298bc22d84a34057d918e39a29d94d62b9fd571', class: "co-toast__actions" }, h("slot", { key: '71d176dcc20b2fb91e134ede5e09e06166350856', name: "action" })))), !isStacked && (h("div", { key: '5cc30d3a60648e2d599a63989ffeb90e28ff6b72', class: "co-toast__actions" }, h("slot", { key: 'bb8a00f5ce4b7737b70960e95a986542278b90c6', name: "action" }))), this.dismissible && (h("button", { key: 'c9f5da7275c6cdd3c4bf512821b1d05309d74090', class: "co-toast__dismiss", type: "button", "aria-label": "Dismiss", onClick: () => this.coDismiss.emit() }, h("co-icon", { key: 'c9bf8eb4639d0e558739d3cf63fc169d4c7721eb', name: "x", size: 16 })))));
49
+ const content = (h("div", { key: '4727f0b593050826892f25a3da53fd42edfad744', class: "co-toast__content" }, h("span", { key: '8c1a29b562d9a8b6aed4a60bef8be39647fc8b7a', class: "co-toast__message" }, this.message), hasDescription && (h("span", { key: 'ccb7b545065311525ba40d7e066dd1dc12be995f', class: "co-toast__description" }, this.description))));
50
+ return (h("div", { key: '49d0d786f54a7d9e9fb648dd4aa0dd0e1122ecdc', class: rootClass, part: "toast", role: role }, resolvedIcon && (h("span", { key: 'f67cff3e6b14cbe9be11090c17cb33fb7dd944e9', class: "co-toast__icon" }, h("co-icon", { key: '6c45e2ad5d844228f4352f0593bb111b23b715b9', name: resolvedIcon, size: 20 }))), h("div", { key: '61942396846ec88cc1fb8ee04b4da6b5e9541b11', class: "co-toast__body" }, hasProgress ? (h("div", { class: "co-toast__progress" }, h("div", { class: "co-toast__progress-header" }, content, h("span", { class: "co-toast__percent" }, clampedProgress, "%")), h("div", { class: "co-toast__track", part: "track", role: "progressbar", "aria-valuenow": clampedProgress, "aria-valuemin": 0, "aria-valuemax": 100 }, h("span", { class: "co-toast__fill", part: "fill", style: { width: `${clampedProgress}%` } })))) : (content), isStacked && (h("div", { key: '48cbdafb944ddac91c62154f59b08c7401e7ca9f', class: "co-toast__actions" }, h("slot", { key: '15d119f0724e3bf791ed65bba140bff394395396', name: "action" })))), !isStacked && (h("div", { key: '87cc2aa477b3ede5ec648047b920d6747360a712', class: "co-toast__actions" }, h("slot", { key: 'bdecde963be2ce12ef437b3524bab17ffd51a200', name: "action" }))), this.dismissible && (h("button", { key: '1da56cebd4714f72b3396ff7c00405341654c421', class: "co-toast__dismiss", type: "button", "aria-label": "Dismiss", onClick: () => this.coDismiss.emit() }, h("co-icon", { key: 'a0061ab640565171efc109a790a599adf4f90b86', name: "x", size: 16 })))));
45
51
  }
46
52
  static get is() { return "co-toast"; }
47
53
  static get encapsulation() { return "shadow"; }
@@ -186,6 +192,25 @@ export class CoToast {
186
192
  "reflect": false,
187
193
  "attribute": "variant",
188
194
  "defaultValue": "'neutral'"
195
+ },
196
+ "progress": {
197
+ "type": "number",
198
+ "mutable": false,
199
+ "complexType": {
200
+ "original": "number",
201
+ "resolved": "number | undefined",
202
+ "references": {}
203
+ },
204
+ "required": false,
205
+ "optional": true,
206
+ "docs": {
207
+ "tags": [],
208
+ "text": "Determinate upload/loading progress (0\u2013100). When set, a progress track is\nrendered below the message row (with a percentage label, and an\n`upload-simple` azul icon when no `icon` is provided). Leave undefined for\na plain toast \u2014 behaviour is unchanged."
209
+ },
210
+ "getter": false,
211
+ "setter": false,
212
+ "reflect": false,
213
+ "attribute": "progress"
189
214
  }
190
215
  };
191
216
  }
@@ -81,3 +81,41 @@
81
81
  @supports not (background: color-mix(in srgb, red, transparent)) {
82
82
  .co-toggle-button { background: var(--co-semantic-surface-secondary); }
83
83
  }
84
+
85
+ /* Track variant — detached rounded pills that sit on the group's sunken track.
86
+ The parent co-toggle-button-group[variant='track'] reflects variant='track'
87
+ onto each child, so all styling below is fully self-contained per pill.
88
+ Connected variant is untouched. */
89
+ :host([variant='track']) .co-toggle-button {
90
+ height: 30px;
91
+ border-radius: 8px;
92
+ border-color: transparent;
93
+ background: transparent;
94
+ color: var(--co-color-gray-500, #888888);
95
+ box-shadow: none;
96
+ padding: 0 12px;
97
+ -webkit-backdrop-filter: none;
98
+ backdrop-filter: none;
99
+ }
100
+
101
+ :host([variant='track']) .co-toggle-button.co-toggle-button--icon-only {
102
+ width: 34px;
103
+ padding: 0;
104
+ }
105
+
106
+ :host([variant='track']) .co-toggle-button:hover:not(:disabled) {
107
+ background: transparent;
108
+ color: var(--co-color-base-negro, #1f1c1b);
109
+ }
110
+
111
+ :host([variant='track']) .co-toggle-button--selected {
112
+ background: var(--co-color-base-blanco, #fff);
113
+ color: var(--co-color-base-negro, #1f1c1b);
114
+ border-color: transparent;
115
+ box-shadow: var(--co-shadow-sm, 0 1px 2px 0 rgba(26, 26, 26, 0.04));
116
+ }
117
+
118
+ :host([variant='track']) .co-toggle-button--selected:hover:not(:disabled) {
119
+ background: var(--co-color-base-blanco, #fff);
120
+ border-color: transparent;
121
+ }
@@ -5,6 +5,9 @@ export class CoToggleButton {
5
5
  this.value = '';
6
6
  this.size = 'm';
7
7
  this.disabled = false;
8
+ /** Visual variant. 'track' renders the button as a detached rounded pill for a
9
+ * sunken toggle-button-group track. Normally set by the parent group. */
10
+ this.variant = 'connected';
8
11
  this.handleClick = () => {
9
12
  if (this.disabled)
10
13
  return;
@@ -13,14 +16,15 @@ export class CoToggleButton {
13
16
  };
14
17
  }
15
18
  render() {
16
- const iconSize = this.size === 'l' ? 20 : this.size === 'xs' ? 14 : 16;
17
- return (h("button", { key: 'b8dd3d02b6494ae0984147116facf334bf6217b7', class: {
19
+ const iconSize = this.variant === 'track' ? 18 : this.size === 'l' ? 20 : this.size === 'xs' ? 14 : 16;
20
+ const iconWeight = this.selected && this.selectedIconWeight ? this.selectedIconWeight : undefined;
21
+ return (h("button", { key: '0016c8ec4c9f9e408c818e725b1d10159d53168c', class: {
18
22
  'co-toggle-button': true,
19
23
  'co-toggle-button--selected': this.selected,
20
24
  [`co-toggle-button--${this.size}`]: true,
21
25
  'co-toggle-button--disabled': this.disabled,
22
26
  'co-toggle-button--icon-only': !this.label && (!!this.iconLeft || !!this.iconRight),
23
- }, type: "button", disabled: this.disabled, "aria-pressed": String(this.selected), onClick: this.handleClick }, this.iconLeft && h("co-icon", { key: '76400887fc6373c1cce6aed8872f30562bd21e86', name: this.iconLeft, size: iconSize }), this.label && h("span", { key: 'c4658c1f800f20211b2eed6e5b44139362a7bf8d', class: "co-toggle-button__label" }, this.label), this.iconRight && h("co-icon", { key: '153f4a2a3c24a1e95ecdfe5f77d257421b21aec3', name: this.iconRight, size: iconSize })));
27
+ }, type: "button", disabled: this.disabled, "aria-pressed": String(this.selected), onClick: this.handleClick }, this.iconLeft && h("co-icon", { key: 'b301e2330b92fbd0347b89d0d453b1fbfa4091aa', name: this.iconLeft, size: iconSize, weight: iconWeight }), this.label && h("span", { key: '8917418e796a53d8e269e1ebb69f293975a140c7', class: "co-toggle-button__label" }, this.label), this.iconRight && h("co-icon", { key: '4fc74790fba1e7ec56f489fbda65d21b0048de26', name: this.iconRight, size: iconSize, weight: iconWeight })));
24
28
  }
25
29
  static get is() { return "co-toggle-button"; }
26
30
  static get encapsulation() { return "shadow"; }
@@ -172,6 +176,45 @@ export class CoToggleButton {
172
176
  "reflect": false,
173
177
  "attribute": "disabled",
174
178
  "defaultValue": "false"
179
+ },
180
+ "variant": {
181
+ "type": "string",
182
+ "mutable": false,
183
+ "complexType": {
184
+ "original": "'connected' | 'track'",
185
+ "resolved": "\"connected\" | \"track\"",
186
+ "references": {}
187
+ },
188
+ "required": false,
189
+ "optional": false,
190
+ "docs": {
191
+ "tags": [],
192
+ "text": "Visual variant. 'track' renders the button as a detached rounded pill for a\nsunken toggle-button-group track. Normally set by the parent group."
193
+ },
194
+ "getter": false,
195
+ "setter": false,
196
+ "reflect": true,
197
+ "attribute": "variant",
198
+ "defaultValue": "'connected'"
199
+ },
200
+ "selectedIconWeight": {
201
+ "type": "string",
202
+ "mutable": false,
203
+ "complexType": {
204
+ "original": "'regular' | 'fill'",
205
+ "resolved": "\"fill\" | \"regular\" | undefined",
206
+ "references": {}
207
+ },
208
+ "required": false,
209
+ "optional": true,
210
+ "docs": {
211
+ "tags": [],
212
+ "text": "When set, the leading/trailing icon renders at this weight while the button\nis selected (e.g. 'fill' for the active segment of a track toggle)."
213
+ },
214
+ "getter": false,
215
+ "setter": false,
216
+ "reflect": false,
217
+ "attribute": "selected-icon-weight"
175
218
  }
176
219
  };
177
220
  }
@@ -77,3 +77,19 @@
77
77
  opacity: 0.4;
78
78
  pointer-events: none;
79
79
  }
80
+
81
+ /* Track variant — a sunken gray track carrying detached rounded pills.
82
+ Placed after the base/connected rules so it overrides gap; the pills' own
83
+ chrome (radius, fill, shadow) lives in co-toggle-button[variant='track'].
84
+ We only neutralise the connected seam collapse (negative margins). */
85
+ .co-toggle-button-group--track {
86
+ display: inline-flex;
87
+ gap: 2px;
88
+ padding: 3px;
89
+ border-radius: 10px;
90
+ background: var(--co-color-gray-100, #f6f6f6);
91
+ }
92
+
93
+ .co-toggle-button-group--track ::slotted(co-toggle-button) {
94
+ margin: 0 !important;
95
+ }