@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
@@ -22,11 +22,18 @@ export class CoDataTable {
22
22
  this.emptyMessage = 'No records found';
23
23
  /** Empty state icon (Phosphor icon name). */
24
24
  this.emptyIcon = 'magnifying-glass';
25
+ /** Variant for the prop-driven empty-action button. */
26
+ this.emptyActionVariant = 'stroke';
25
27
  /* ─── SORT ──────────────────────────────────────────────── */
26
28
  /** Current sort field */
27
29
  this.sortField = '';
28
30
  /** Current sort direction */
29
31
  this.sortOrder = '';
32
+ /* ─── COLUMN FILTERS ────────────────────────────────────── */
33
+ /** Fields with an active column filter (funnel filled + always visible). JSON string or array. */
34
+ this.filteredFields = '[]';
35
+ /** Fields filtered by OTHER filter layers (funnel dimmed hint). JSON string or array. */
36
+ this.indirectFilteredFields = '[]';
30
37
  /* ─── SELECTION ─────────────────────────────────────────── */
31
38
  /** Enable row selection with checkboxes */
32
39
  this.selectable = false;
@@ -39,6 +46,8 @@ export class CoDataTable {
39
46
  this.parsedColumns = [];
40
47
  this.parsedRows = [];
41
48
  this.parsedSelectedKeys = new Set();
49
+ this.parsedFilteredFields = [];
50
+ this.parsedIndirectFields = [];
42
51
  this.columnWidths = new Map();
43
52
  this.resizingColumn = null;
44
53
  this.resizeStartX = 0;
@@ -81,10 +90,28 @@ export class CoDataTable {
81
90
  this.parsedSelectedKeys = new Set();
82
91
  }
83
92
  }
93
+ parseFilteredFields() {
94
+ try {
95
+ this.parsedFilteredFields = typeof this.filteredFields === 'string' ? JSON.parse(this.filteredFields) : (this.filteredFields || []);
96
+ }
97
+ catch (_a) {
98
+ this.parsedFilteredFields = [];
99
+ }
100
+ }
101
+ parseIndirectFields() {
102
+ try {
103
+ this.parsedIndirectFields = typeof this.indirectFilteredFields === 'string' ? JSON.parse(this.indirectFilteredFields) : (this.indirectFilteredFields || []);
104
+ }
105
+ catch (_a) {
106
+ this.parsedIndirectFields = [];
107
+ }
108
+ }
84
109
  componentWillLoad() {
85
110
  this.parseColumns();
86
111
  this.parseRows();
87
112
  this.parseSelectedKeys();
113
+ this.parseFilteredFields();
114
+ this.parseIndirectFields();
88
115
  }
89
116
  /* ─── SORT HANDLERS ─────────────────────────────────────── */
90
117
  handleSort(field) {
@@ -172,6 +199,15 @@ export class CoDataTable {
172
199
  e.stopPropagation();
173
200
  this.coColumnPin.emit({ field });
174
201
  }
202
+ handleColumnFilter(field, e) {
203
+ e.stopPropagation();
204
+ const el = e.currentTarget;
205
+ const r = el.getBoundingClientRect();
206
+ this.coHeaderFilter.emit({
207
+ field,
208
+ rect: { top: r.top, left: r.left, bottom: r.bottom, right: r.right, width: r.width, height: r.height },
209
+ });
210
+ }
175
211
  /* ─── HELPERS ───────────────────────────────────────────── */
176
212
  formatCellValue(value) {
177
213
  if (value == null)
@@ -268,35 +304,47 @@ export class CoDataTable {
268
304
  : undefined }, h("span", { class: "co-data-table__th-content" }, h("span", { class: {
269
305
  'co-data-table__pin-icon': true,
270
306
  'co-data-table__pin-icon--active': !!col.sticky,
271
- }, title: col.sticky ? 'Unpin column' : 'Pin column', onClick: (e) => this.handleColumnPin(col.field, e) }, h("co-icon", { name: "push-pin", size: 14, weight: col.sticky ? 'fill' : 'regular' })), col.sortable ? (h("button", { type: "button", class: "co-data-table__sort-button", "aria-label": `Sort by ${col.label}`, onClick: () => this.handleSort(col.field) }, h("span", { class: "co-data-table__th-label" }, col.label), this.renderSortIcon(col))) : (h("span", { class: "co-data-table__th-label" }, col.label))), this.resizable && i < this.parsedColumns.length - 1 && (h("span", { class: {
307
+ }, title: col.sticky ? 'Unpin column' : 'Pin column', onClick: (e) => this.handleColumnPin(col.field, e) }, h("co-icon", { name: "push-pin", size: 14, weight: col.sticky ? 'fill' : 'regular' })), col.sortable ? (h("button", { type: "button", class: "co-data-table__sort-button", "aria-label": `Sort by ${col.label}`, onClick: () => this.handleSort(col.field) }, h("span", { class: "co-data-table__th-label" }, col.label), this.renderSortIcon(col))) : (h("span", { class: "co-data-table__th-label" }, col.label)), col.filterable && (h("span", { class: {
308
+ 'co-data-table__filter-icon': true,
309
+ 'co-data-table__filter-icon--active': this.parsedFilteredFields.includes(col.field),
310
+ 'co-data-table__filter-icon--indirect': !this.parsedFilteredFields.includes(col.field) && this.parsedIndirectFields.includes(col.field),
311
+ }, title: this.parsedFilteredFields.includes(col.field)
312
+ ? 'Edit column filter'
313
+ : this.parsedIndirectFields.includes(col.field)
314
+ ? 'Filtered by other filters'
315
+ : 'Filter column', onClick: (e) => this.handleColumnFilter(col.field, e) }, h("co-icon", { name: "funnel", size: 14, weight: this.parsedFilteredFields.includes(col.field) ? 'fill' : 'regular' })))), this.resizable && i < this.parsedColumns.length - 1 && (h("span", { class: {
272
316
  'co-data-table__resize-handle': true,
273
317
  'co-data-table__resize-handle--active': this.resizingColumn === col.field,
274
318
  }, onMouseDown: (e) => this.handleResizeStart(col.field, e), onClick: (e) => e.stopPropagation() }))))))));
275
319
  }
276
- renderBody() {
277
- if (this.loading) {
278
- return (h("tbody", { class: "co-data-table__body" }, Array.from({ length: this.skeletonRows }).map((_, rowIndex) => (h("tr", { class: "co-data-table__row co-data-table__row--skeleton", key: `skeleton-${rowIndex}` }, this.selectable && (h("td", { class: "co-data-table__td co-data-table__td--checkbox co-data-table__td--sticky", style: { left: '0px' } }, h("div", { class: "co-data-table__skeleton co-data-table__skeleton--checkbox" }))), this.parsedColumns.map(col => (h("td", { class: {
279
- 'co-data-table__td': true,
280
- 'co-data-table__td--sticky': !!col.sticky,
281
- }, style: Object.assign({}, this.getColumnStyle(col)) }, h("div", { class: "co-data-table__skeleton" })))))))));
282
- }
283
- // When not loading, delegate row rendering to the consumer via default slot.
284
- // This avoids Stencil's costly per-cell named-slot relocation (N rows × M cols).
285
- // The consumer (e.g. Vue) renders <tbody> directly using co-data-table CSS classes.
286
- return h("slot", null);
320
+ // Skeleton rows shown WHILE loading. Rendered as a SEPARATE <tbody> that
321
+ // co-exists with the always-mounted default <slot/> (see render()) — it never
322
+ // REPLACES it. Previously the body position was swapped between this skeleton
323
+ // and <slot/> on every `loading` toggle; that swap tore the slot down and
324
+ // orphaned the consumer's projected rows (e.g. Vue's <tbody>), so a concurrent
325
+ // consumer patch threw "insertBefore ... not a child of this node" on data/model
326
+ // switches. Row rendering itself is still delegated to the consumer via the
327
+ // default slot — this avoids Stencil's costly per-cell named-slot relocation.
328
+ renderSkeletonBody() {
329
+ return (h("tbody", { class: "co-data-table__body co-data-table__body--skeleton", "aria-hidden": "true" }, Array.from({ length: this.skeletonRows }).map((_, rowIndex) => (h("tr", { class: "co-data-table__row co-data-table__row--skeleton", key: `skeleton-${rowIndex}` }, this.selectable && (h("td", { class: "co-data-table__td co-data-table__td--checkbox co-data-table__td--sticky", style: { left: '0px' } }, h("div", { class: "co-data-table__skeleton co-data-table__skeleton--checkbox" }))), this.parsedColumns.map(col => (h("td", { class: {
330
+ 'co-data-table__td': true,
331
+ 'co-data-table__td--sticky': !!col.sticky,
332
+ }, style: Object.assign({}, this.getColumnStyle(col)) }, h("div", { class: "co-data-table__skeleton" })))))))));
287
333
  }
288
334
  renderEmpty() {
289
335
  if (this.loading || this.parsedRows.length > 0)
290
336
  return null;
291
- return (h("div", { class: "co-data-table__empty", part: "empty" }, h("div", { class: "co-data-table__empty-icon" }, h("co-icon", { name: this.emptyIcon, size: 32, weight: "regular" })), this.emptyTitle && (h("h3", { class: "co-data-table__empty-title" }, this.emptyTitle)), this.emptyMessage && (h("p", { class: "co-data-table__empty-message" }, this.emptyMessage)), h("div", { class: "co-data-table__empty-action" }, h("slot", { name: "empty-action" }))));
337
+ return (h("div", { class: "co-data-table__empty", part: "empty" }, h("div", { class: "co-data-table__empty-icon" }, h("co-icon", { name: this.emptyIcon, size: 32, weight: "regular" })), this.emptyTitle && (h("h3", { class: "co-data-table__empty-title" }, this.emptyTitle)), this.emptyMessage && (h("p", { class: "co-data-table__empty-message" }, this.emptyMessage)), h("div", { class: "co-data-table__empty-action" }, this.emptyActionLabel
338
+ ? (h("co-button", { variant: this.emptyActionVariant, size: "m", label: this.emptyActionLabel, iconLeft: this.emptyActionIcon, onClick: () => this.coEmptyAction.emit() }))
339
+ : h("slot", { name: "empty-action" }))));
292
340
  }
293
341
  render() {
294
- return (h("div", { key: 'ca97ff4e2b3fb28ff64e49654c35e3081e43b036', class: {
342
+ return (h("div", { key: 'baf9a797b25e76d4b054513b3e4c90aacce24a80', class: {
295
343
  'co-data-table': true,
296
344
  'co-data-table--resizing': this.resizingColumn !== null,
297
345
  'co-data-table--loading': this.loading,
298
346
  'co-data-table--empty': !this.loading && this.parsedRows.length === 0,
299
- } }, h("div", { key: '9ffdd459a8b46f4c019309412cf85fe7e12f803d', class: "co-data-table__scroll" }, h("table", { key: 'f621aaba41690f6fe6060b0641817908d5c3ae92', class: "co-data-table__table", style: { width: `${this.getTableWidth()}px`, minWidth: '100%' } }, this.renderColgroup(), this.renderHeader(), this.renderBody())), this.renderEmpty()));
347
+ } }, h("div", { key: '132100357cb7fed5d27054e2e3a66c218dddad9d', class: "co-data-table__scroll" }, h("table", { key: '0e183744b6f1c7c44ec8dd741eb8cdbbbdf5b638', class: "co-data-table__table", style: { width: `${this.getTableWidth()}px`, minWidth: '100%' } }, this.renderColgroup(), this.renderHeader(), h("slot", { key: 'c3c58515f63fdfdfa760ba483f00c686863ddb20' }), this.loading ? this.renderSkeletonBody() : null)), this.renderEmpty()));
300
348
  }
301
349
  static get is() { return "co-data-table"; }
302
350
  static get originalStyleUrls() {
@@ -477,6 +525,64 @@ export class CoDataTable {
477
525
  "attribute": "empty-icon",
478
526
  "defaultValue": "'magnifying-glass'"
479
527
  },
528
+ "emptyActionLabel": {
529
+ "type": "string",
530
+ "mutable": false,
531
+ "complexType": {
532
+ "original": "string",
533
+ "resolved": "string | undefined",
534
+ "references": {}
535
+ },
536
+ "required": false,
537
+ "optional": true,
538
+ "docs": {
539
+ "tags": [],
540
+ "text": "Empty-state action button, rendered BY the component (not via slot). Prefer\nthis over the `empty-action` slot: a non-shadow component relocates slotted\nlight-DOM nodes, so projecting togglable framework content (e.g. a Vue\n`v-if` button) corrupts that framework's virtual DOM. Leave empty to fall\nback to the `empty-action` slot."
541
+ },
542
+ "getter": false,
543
+ "setter": false,
544
+ "reflect": false,
545
+ "attribute": "empty-action-label"
546
+ },
547
+ "emptyActionVariant": {
548
+ "type": "string",
549
+ "mutable": false,
550
+ "complexType": {
551
+ "original": "'primary' | 'secondary' | 'stroke' | 'ghost' | 'danger' | 'success'",
552
+ "resolved": "\"danger\" | \"ghost\" | \"primary\" | \"secondary\" | \"stroke\" | \"success\"",
553
+ "references": {}
554
+ },
555
+ "required": false,
556
+ "optional": false,
557
+ "docs": {
558
+ "tags": [],
559
+ "text": "Variant for the prop-driven empty-action button."
560
+ },
561
+ "getter": false,
562
+ "setter": false,
563
+ "reflect": false,
564
+ "attribute": "empty-action-variant",
565
+ "defaultValue": "'stroke'"
566
+ },
567
+ "emptyActionIcon": {
568
+ "type": "string",
569
+ "mutable": false,
570
+ "complexType": {
571
+ "original": "string",
572
+ "resolved": "string | undefined",
573
+ "references": {}
574
+ },
575
+ "required": false,
576
+ "optional": true,
577
+ "docs": {
578
+ "tags": [],
579
+ "text": "Optional left icon (Phosphor name) for the prop-driven empty-action button."
580
+ },
581
+ "getter": false,
582
+ "setter": false,
583
+ "reflect": false,
584
+ "attribute": "empty-action-icon"
585
+ },
480
586
  "sortField": {
481
587
  "type": "string",
482
588
  "mutable": true,
@@ -517,6 +623,46 @@ export class CoDataTable {
517
623
  "attribute": "sort-order",
518
624
  "defaultValue": "''"
519
625
  },
626
+ "filteredFields": {
627
+ "type": "string",
628
+ "mutable": false,
629
+ "complexType": {
630
+ "original": "string | string[]",
631
+ "resolved": "string | string[]",
632
+ "references": {}
633
+ },
634
+ "required": false,
635
+ "optional": false,
636
+ "docs": {
637
+ "tags": [],
638
+ "text": "Fields with an active column filter (funnel filled + always visible). JSON string or array."
639
+ },
640
+ "getter": false,
641
+ "setter": false,
642
+ "reflect": true,
643
+ "attribute": "filtered-fields",
644
+ "defaultValue": "'[]'"
645
+ },
646
+ "indirectFilteredFields": {
647
+ "type": "string",
648
+ "mutable": false,
649
+ "complexType": {
650
+ "original": "string | string[]",
651
+ "resolved": "string | string[]",
652
+ "references": {}
653
+ },
654
+ "required": false,
655
+ "optional": false,
656
+ "docs": {
657
+ "tags": [],
658
+ "text": "Fields filtered by OTHER filter layers (funnel dimmed hint). JSON string or array."
659
+ },
660
+ "getter": false,
661
+ "setter": false,
662
+ "reflect": true,
663
+ "attribute": "indirect-filtered-fields",
664
+ "defaultValue": "'[]'"
665
+ },
520
666
  "selectable": {
521
667
  "type": "boolean",
522
668
  "mutable": false,
@@ -584,6 +730,8 @@ export class CoDataTable {
584
730
  "parsedColumns": {},
585
731
  "parsedRows": {},
586
732
  "parsedSelectedKeys": {},
733
+ "parsedFilteredFields": {},
734
+ "parsedIndirectFields": {},
587
735
  "columnWidths": {},
588
736
  "resizingColumn": {},
589
737
  "resizeStartX": {},
@@ -666,6 +814,21 @@ export class CoDataTable {
666
814
  "resolved": "{ field: string; }",
667
815
  "references": {}
668
816
  }
817
+ }, {
818
+ "method": "coHeaderFilter",
819
+ "name": "coHeaderFilter",
820
+ "bubbles": true,
821
+ "cancelable": true,
822
+ "composed": true,
823
+ "docs": {
824
+ "tags": [],
825
+ "text": "Emitted when a column's filter icon is clicked (rect = icon bounding box for anchoring)."
826
+ },
827
+ "complexType": {
828
+ "original": "{ field: string; rect: { top: number; left: number; bottom: number; right: number; width: number; height: number } }",
829
+ "resolved": "{ field: string; rect: { top: number; left: number; bottom: number; right: number; width: number; height: number; }; }",
830
+ "references": {}
831
+ }
669
832
  }, {
670
833
  "method": "coRowDblClick",
671
834
  "name": "coRowDblClick",
@@ -696,6 +859,21 @@ export class CoDataTable {
696
859
  "resolved": "{ row: any; index: number; }",
697
860
  "references": {}
698
861
  }
862
+ }, {
863
+ "method": "coEmptyAction",
864
+ "name": "coEmptyAction",
865
+ "bubbles": true,
866
+ "cancelable": true,
867
+ "composed": true,
868
+ "docs": {
869
+ "tags": [],
870
+ "text": "Fired when the prop-driven empty-action button (`emptyActionLabel`) is clicked."
871
+ },
872
+ "complexType": {
873
+ "original": "void",
874
+ "resolved": "void",
875
+ "references": {}
876
+ }
699
877
  }];
700
878
  }
701
879
  static get elementRef() { return "el"; }
@@ -709,6 +887,12 @@ export class CoDataTable {
709
887
  }, {
710
888
  "propName": "selectedKeys",
711
889
  "methodName": "parseSelectedKeys"
890
+ }, {
891
+ "propName": "filteredFields",
892
+ "methodName": "parseFilteredFields"
893
+ }, {
894
+ "propName": "indirectFilteredFields",
895
+ "methodName": "parseIndirectFields"
712
896
  }];
713
897
  }
714
898
  }
@@ -84,17 +84,17 @@ export class CoDataTablePagination {
84
84
  }
85
85
  render() {
86
86
  const pages = this.getVisiblePages();
87
- return (h("div", { key: 'ae314d39c78125c7a0b237d30b6d298c5c699a75', class: "co-pagination", part: "pagination" }, h("div", { key: 'eff8732e235bfcbb6578a144377736f6a5c05d91', class: "co-pagination__section" }, h("span", { key: 'e4a5b980aaae92eec46b5e090e7b87745938fe81', class: "co-pagination__label" }, this.jumpToPageLabel), h("input", { key: '012b0613c8cfce667687ca27ad434b6271845900', type: "text", class: "co-pagination__jump-input", value: this.jumpToValue || String(this.page), onInput: (e) => {
87
+ return (h("div", { key: 'a0634afed71b18005f42921052b2bb41b5710818', class: "co-pagination", part: "pagination" }, h("div", { key: '08afef194748764e581c9c0e173af57bd7484e6a', class: "co-pagination__section" }, h("span", { key: '8bf238dd11b3c322becb18e07afbe087584ce3e0', class: "co-pagination__label" }, this.jumpToPageLabel), h("input", { key: '109f501ce7a1dc4ee2c109d75f7fcbc81aa3bfcc', type: "text", class: "co-pagination__jump-input", value: this.jumpToValue || String(this.page), onInput: (e) => {
88
88
  this.jumpToValue = e.target.value;
89
89
  }, onKeyDown: (e) => this.handleJumpToPage(e), onFocus: (e) => {
90
90
  e.target.select();
91
- }, part: "jump-input" })), h("div", { key: '76016cea5933b9b057256e4c54717925b95396e4', class: "co-pagination__section co-pagination__section--page-size" }, h("div", { key: 'ec1ac8b20b71a01483ef6f33170ccea9dc60baf2', class: "co-pagination__page-size-trigger", onClick: () => { this.showPageSizeDropdown = !this.showPageSizeDropdown; } }, h("span", { key: '3db2891ead65d088b2a9a19868c00576fc3d212b', class: "co-pagination__page-size-value" }, this.pageSize), h("span", { key: '2be8c9861d4509df5b695b5c07e25cc346b77628', class: "co-pagination__label" }, this.perPageLabel), h("co-icon", { key: '91ba0332b4eb496b3de3fe271d78686aad429d71', name: "caret-down", size: 14 })), this.showPageSizeDropdown && (h("div", { key: '4a7f2a17c52d71762c3a9b15e8ed55aa78b894a8', class: "co-pagination__page-size-dropdown", part: "dropdown" }, this.parsedPageSizes.map(size => (h("button", { class: {
91
+ }, part: "jump-input" })), h("div", { key: '706f537a7165004e18a4cf9f3b172392cbc25657', class: "co-pagination__section co-pagination__section--page-size" }, h("div", { key: '15102e983f876658cf56c2aba8d94d29d132fa47', class: "co-pagination__page-size-trigger", onClick: () => { this.showPageSizeDropdown = !this.showPageSizeDropdown; } }, h("span", { key: '5eb114f934a1f694c45ae4165d3dc32e120fd7c9', class: "co-pagination__page-size-value" }, this.pageSize), h("span", { key: 'f767df618ae0f1193dd107d8b8ab66434ab3da92', class: "co-pagination__label" }, this.perPageLabel), h("co-icon", { key: '013df9bfa151cbc9c266c10e94e18823edd48050', name: "caret-down", size: 14 })), this.showPageSizeDropdown && (h("div", { key: '634d6cdb5ceaaf6e0ffee6ee3533d568765d8868', class: "co-pagination__page-size-dropdown", part: "dropdown" }, this.parsedPageSizes.map(size => (h("button", { class: {
92
92
  'co-pagination__page-size-option': true,
93
93
  'co-pagination__page-size-option--active': size === this.pageSize,
94
- }, onClick: () => this.changePageSize(size) }, size)))))), h("div", { key: 'e8e81ef1186485963908cd923fab0f5974e4cbf3', class: "co-pagination__spacer" }), h("div", { key: '04fd583b0fff46d13d8abe384cb7896d2c4b8799', class: "co-pagination__section" }, h("span", { key: '69bf9e0a8fd0e9f3b5fe06c9951300323fce42bf', class: "co-pagination__count" }, this.totalCount.toLocaleString(), " ", this.recordsLabel)), h("div", { key: 'a90b8a8b5cdd5cfc945fb0fa00d50b44b4ab88b7', class: "co-pagination__section co-pagination__nav" }, h("button", { key: '6b14f2a16c691a202bf81cc1fff8f505f5ce0f29', class: "co-pagination__nav-btn", disabled: this.page <= 1, onClick: () => this.goToPage(this.page - 1), part: "prev-btn" }, this.previousLabel), pages.map(p => p === '...' ? (h("span", { class: "co-pagination__ellipsis" }, "\u2026")) : (h("button", { class: {
94
+ }, onClick: () => this.changePageSize(size) }, size)))))), h("div", { key: '9cd537ceee590fdf03fb71f1e703c468e88881c5', class: "co-pagination__spacer" }), h("div", { key: '4f958f5ce6d1d5bb77a232d49dcf0375cadd8bff', class: "co-pagination__section" }, h("span", { key: '50717cd14f6dd64a47c31d64c6b98064316c5363', class: "co-pagination__count" }, this.totalCount.toLocaleString(), " ", this.recordsLabel)), h("div", { key: 'd133196b3970aed10f5e80fe8edc16576d3ef723', class: "co-pagination__section co-pagination__nav" }, h("button", { key: '497d2dec11447e6426810770a38ff09564796336', class: "co-pagination__nav-btn", disabled: this.page <= 1, onClick: () => this.goToPage(this.page - 1), part: "prev-btn" }, this.previousLabel), pages.map(p => p === '...' ? (h("span", { class: "co-pagination__ellipsis" }, "\u2026")) : (h("button", { class: {
95
95
  'co-pagination__page-btn': true,
96
96
  'co-pagination__page-btn--active': p === this.page,
97
- }, onClick: () => this.goToPage(p) }, p))), h("button", { key: '9b3cdab026b566275248734a8db218d70a81b082', class: "co-pagination__nav-btn", disabled: this.page >= this.totalPages, onClick: () => this.goToPage(this.page + 1), part: "next-btn" }, this.nextLabel))));
97
+ }, onClick: () => this.goToPage(p) }, p))), h("button", { key: '86ef170b109112e82cc2b7e53932a1ce1594e3cf', class: "co-pagination__nav-btn", disabled: this.page >= this.totalPages, onClick: () => this.goToPage(this.page + 1), part: "next-btn" }, this.nextLabel))));
98
98
  }
99
99
  static get is() { return "co-data-table-pagination"; }
100
100
  static get encapsulation() { return "shadow"; }
@@ -56,10 +56,10 @@
56
56
  align-items: center;
57
57
  gap: var(--co-spacing-sm2);
58
58
  padding: var(--co-spacing-sm2) var(--co-spacing-md);
59
- background: color-mix(in srgb, var(--co-semantic-surface-secondary) 55%, transparent);
60
- -webkit-backdrop-filter: blur(var(--co-glass-blur)) saturate(var(--co-glass-saturate));
61
- backdrop-filter: blur(var(--co-glass-blur)) saturate(var(--co-glass-saturate));
62
- border: 1px solid var(--co-semantic-border-subtle);
59
+ /* Figma Text Field parity (same box as co-input): solid page surface +
60
+ Negro 25% border — tinted glass didn't read as editable on white. */
61
+ background: var(--co-semantic-surface-page);
62
+ border: 1px solid var(--co-color-opacity-negro-25, rgba(31, 28, 27, 0.25));
63
63
  border-radius: var(--co-border-radius-xs);
64
64
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
65
65
  min-height: 40px;
@@ -240,6 +240,3 @@
240
240
  content: var(--co-field-required-text, ' (required)');
241
241
  }
242
242
 
243
- @supports not (background: color-mix(in srgb, red, transparent)) {
244
- .co-date-field__field { background: var(--co-semantic-surface-secondary); }
245
- }
@@ -162,20 +162,20 @@ export class CoDateField {
162
162
  // should still fall back to the localized default placeholder.
163
163
  const placeholder = this.placeholder || t.setDate;
164
164
  const helper = this.isInvalid ? this.errorMessage : this.helperText;
165
- return (h("div", { key: '88be9ead58abc8f3c417e66482aa8f05fee57337', class: {
165
+ return (h("div", { key: '7c7de06d53bf9ab7dab40906d533bfaf1874e41e', class: {
166
166
  'co-date-field': true,
167
167
  'co-date-field--disabled': this.disabled,
168
168
  'co-date-field--focused': this.hasFocus,
169
169
  'co-date-field--filled': this.hasValue,
170
170
  'co-date-field--invalid': this.isInvalid,
171
171
  [`co-date-field--${this.size}`]: true,
172
- }, part: "wrapper" }, this.label && (h("div", { key: 'c916f0e36ba63ffdcf2a6cd08ffe295c93e9aa91', class: "co-date-field__labels" }, h("label", { key: '0d84f75656c45fff7e695ecea68d9e93b5031e7e', class: "co-date-field__label", part: "label" }, this.label, h(RequiredMark, { key: '3fc035181fb79cb0879736dfa91ff979d4d6f8ab', required: this.required })))), h("div", { key: 'e423c62b5ed75b52786732944be251ec4c565692', class: "co-date-field__field-row" }, h("div", { key: '6c902beccd2d3d50166c027d755c4bd9687fa770', class: "co-date-field__field", part: "field" }, h("co-icon", { key: '87ac25c7d1816069d60f488c7d4ca0ab6902954b', name: "calendar", size: 16, class: "co-date-field__icon" }), h("div", { key: 'ac1d1ee4b641ce034a5723487bf1bfb6f1f834ff', class: "co-date-field__input-wrapper" }, h("input", { key: '54d4478118e7c02185619b07a1c44034e2d0cbe0', ref: (el) => (this.inputEl = el), class: "co-date-field__native", type: "text", inputMode: "numeric", autocomplete: "off", value: this.draft, placeholder: placeholder, disabled: this.disabled, readOnly: this.readonly, required: this.required, "aria-invalid": this.isInvalid ? 'true' : 'false', "aria-label": !this.label ? t.dateLabel : undefined, onInput: this.handleInput, onFocus: this.handleFocus, onBlur: this.handleBlur, onKeyDown: this.handleKeyDown, part: "input" })), this.clearable && (h("button", { key: '484bdacdb620dec400355efe868779f91ec352b7', class: {
172
+ }, part: "wrapper" }, this.label && (h("div", { key: '30828a7b19aae5f304a26ec5025dba14039060d2', class: "co-date-field__labels" }, h("label", { key: '0b004de41209191ee0a03cf8436eb4dba96bb99c', class: "co-date-field__label", part: "label" }, this.label, h(RequiredMark, { key: '810008c09dbc2fd5e889adc71230a546ab4e78df', required: this.required })))), h("div", { key: '8e488bd0ceb0b011fc4a903d66f3dd17a668cea3', class: "co-date-field__field-row" }, h("div", { key: '9a7fb685c5fc65ee9f731dba6c34a527044a1388', class: "co-date-field__field", part: "field" }, h("co-icon", { key: '81aa74d44ff1b524c253e278345c8add4fb3fe9f', name: "calendar", size: 16, class: "co-date-field__icon" }), h("div", { key: '4dc0d25d37fb8d099860566af1c2ac59d5111e4a', class: "co-date-field__input-wrapper" }, h("input", { key: '1aedac94aff9df44316509d9062e41f86a405a33', ref: (el) => (this.inputEl = el), class: "co-date-field__native", type: "text", inputMode: "numeric", autocomplete: "off", value: this.draft, placeholder: placeholder, disabled: this.disabled, readOnly: this.readonly, required: this.required, "aria-invalid": this.isInvalid ? 'true' : 'false', "aria-label": !this.label ? t.dateLabel : undefined, onInput: this.handleInput, onFocus: this.handleFocus, onBlur: this.handleBlur, onKeyDown: this.handleKeyDown, part: "input" })), this.clearable && (h("button", { key: '0e91b71755c341971064186ee1371d59353cdd1c', class: {
173
173
  'co-date-field__clear': true,
174
174
  'co-date-field__clear--hidden': !showClear,
175
- }, type: "button", tabIndex: -1, onMouseDown: (e) => e.preventDefault() /* keep input focus */, onClick: this.handleClear, "aria-label": (_a = this.clearLabel) !== null && _a !== void 0 ? _a : t.clearDate, part: "clear" }, h("co-icon", { key: '9d5ce8fa3cf07062ac62fb50cd95bfd3841a6298', name: "x-circle", size: 16, weight: "fill" }))))), this.name && h("input", { key: '6bf071d3aaa3b02542860c5cd12156df1a34d6f3', type: "hidden", name: this.name, value: (_b = this.value) !== null && _b !== void 0 ? _b : '' }), helper && (h("div", { key: '39ac15b77ff7f6c7e710b714709f42a67decb4db', class: {
175
+ }, type: "button", tabIndex: -1, onMouseDown: (e) => e.preventDefault() /* keep input focus */, onClick: this.handleClear, "aria-label": (_a = this.clearLabel) !== null && _a !== void 0 ? _a : t.clearDate, part: "clear" }, h("co-icon", { key: 'c4714d0444f27adf4c85f9303d0a510cb63af406', name: "x-circle", size: 16, weight: "fill" }))))), this.name && h("input", { key: '257a873a76fdf65494778b1d514717ae2627f4ef', type: "hidden", name: this.name, value: (_b = this.value) !== null && _b !== void 0 ? _b : '' }), helper && (h("div", { key: '345fe8ad6fd0c5c512c038249f7d8f95ff286838', class: {
176
176
  'co-date-field__helper': true,
177
177
  'co-date-field__helper--error': this.isInvalid,
178
- }, part: "helper" }, this.isInvalid && (h("co-icon", { key: '2c652605bf6f0a04bb08a0fa679ffaace1aaa110', name: "warning-circle", size: 14, class: "co-date-field__helper-icon" })), h("span", { key: 'c1022e560275a0f263af532304e948b78a0d4318', class: "co-date-field__helper-text" }, helper)))));
178
+ }, part: "helper" }, this.isInvalid && (h("co-icon", { key: '32b6d53b1f8d78fdff90c960c039ac109c80c137', name: "warning-circle", size: 14, class: "co-date-field__helper-icon" })), h("span", { key: '6f9ad478ddb4401d314ad7ef4fb98b21230b5ef1', class: "co-date-field__helper-text" }, helper)))));
179
179
  }
180
180
  static get is() { return "co-date-field"; }
181
181
  static get encapsulation() { return "shadow"; }
@@ -33,7 +33,7 @@ export class CoDateRange {
33
33
  }
34
34
  }
35
35
  render() {
36
- return (h("co-date-range-picker", { key: '0523f38971fe7b9289838d36737fe40f43c8cadc', value: this.value, label: this.label, placeholder: this.placeholder, disabled: this.disabled, clearable: this.clearable, presets: this.presets, helperText: this.helperText, locale: this.locale, applyLabel: this.applyLabel, clearLabel: this.clearLabel, onCoApply: this.handleApply, onCoClear: () => this.coClear.emit() }));
36
+ return (h("co-date-range-picker", { key: '4982a84de425fdf533128dc3ce3665b51d8c885d', value: this.value, label: this.label, placeholder: this.placeholder, disabled: this.disabled, clearable: this.clearable, presets: this.presets, helperText: this.helperText, locale: this.locale, applyLabel: this.applyLabel, clearLabel: this.clearLabel, onCoApply: this.handleApply, onCoClear: () => this.coClear.emit() }));
37
37
  }
38
38
  static get is() { return "co-date-range"; }
39
39
  static get encapsulation() { return "shadow"; }
@@ -38,10 +38,10 @@
38
38
  width: 100%;
39
39
  min-height: 40px;
40
40
  padding: 0 var(--co-spacing-md);
41
- background: color-mix(in srgb, var(--co-semantic-surface-secondary) 55%, transparent);
42
- -webkit-backdrop-filter: blur(var(--co-glass-blur)) saturate(var(--co-glass-saturate));
43
- backdrop-filter: blur(var(--co-glass-blur)) saturate(var(--co-glass-saturate));
44
- border: 1px solid var(--co-semantic-border-subtle);
41
+ /* Figma Text Field parity (same box as co-input): solid page surface +
42
+ Negro 25% border — tinted glass didn't read as editable on white. */
43
+ background: var(--co-semantic-surface-page);
44
+ border: 1px solid var(--co-color-opacity-negro-25, rgba(31, 28, 27, 0.25));
45
45
  border-radius: var(--co-border-radius-xs);
46
46
  cursor: pointer;
47
47
  color: var(--co-semantic-text-default);
@@ -189,8 +189,11 @@
189
189
  }
190
190
 
191
191
  .co-date-range-picker__btn--primary {
192
- background: var(--co-color-primary-azul);
193
- color: var(--co-color-base-blanco, #fff);
192
+ background: var(--co-semantic-surface-primary);
193
+ color: var(--co-semantic-on-primary);
194
+ }
195
+ .co-date-range-picker__btn--primary:hover:not(:disabled) {
196
+ opacity: 0.88;
194
197
  }
195
198
  .co-date-range-picker__btn--primary:disabled {
196
199
  opacity: 0.5;
@@ -252,6 +255,3 @@
252
255
  content: var(--co-field-required-text, ' (required)');
253
256
  }
254
257
 
255
- @supports not (background: color-mix(in srgb, red, transparent)) {
256
- .co-date-range-picker__trigger { background: var(--co-semantic-surface-secondary); }
257
- }
@@ -4,14 +4,26 @@
4
4
 
5
5
  .co-drawer {
6
6
  position: fixed;
7
- background: var(--co-semantic-surface-page);
8
7
  display: flex;
9
8
  flex-direction: column;
10
9
  font-family: var(--co-font-family-primary);
11
10
  transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
12
- overflow: hidden;
13
11
  will-change: transform;
14
12
  z-index: 1;
13
+ /* Elevation: a layered soft drop-shadow that follows the squircle silhouette
14
+ of the inner card (drop-shadow respects the child mask; a box-shadow here
15
+ would be rectangular and the inner mask would clip it away). Same recipe
16
+ as co-app-shell .main / co-modal .co-modal__frame. */
17
+ filter:
18
+ drop-shadow(0 1px 2px rgba(31, 28, 27, 0.06))
19
+ drop-shadow(0 10px 28px rgba(31, 28, 27, 0.12));
20
+ /* Squircle geometry — shared with .co-drawer__card. Match the app-shell
21
+ surface radius (same knob co-app-shell uses). */
22
+ --co-drawer-r: var(--co-shell-r, var(--co-border-radius-md));
23
+ --co-sq-tl: url("data:image/svg+xml,<svg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 100 100%27 preserveAspectRatio=%27none%27><path d=%27M100 0L97.5 0L95 0L92.5 0L90 0L87.5 0.01L85 0.01L82.5 0.02L80 0.04L77.5 0.06L75 0.1L72.5 0.14L70 0.2L67.5 0.28L65 0.38L62.5 0.5L60 0.65L57.5 0.83L55 1.04L52.5 1.3L50 1.6L47.5 1.96L45 2.37L42.5 2.85L40 3.41L37.5 4.05L35 4.8L32.5 5.65L30 6.63L27.5 7.77L25 9.07L22.5 10.58L20 12.34L17.5 14.41L15 16.85L12.5 19.79L10 23.42L7.5 28.06L5 34.37L2.5 44.29L0 100L100 100Z%27 fill=%27%23fff%27/></svg>");
24
+ --co-sq-tr: url("data:image/svg+xml,<svg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 100 100%27 preserveAspectRatio=%27none%27><path d=%27M0 0L2.5 0L5 0L7.5 0L10 0L12.5 0.01L15 0.01L17.5 0.02L20 0.04L22.5 0.06L25 0.1L27.5 0.14L30 0.2L32.5 0.28L35 0.38L37.5 0.5L40 0.65L42.5 0.83L45 1.04L47.5 1.3L50 1.6L52.5 1.96L55 2.37L57.5 2.85L60 3.41L62.5 4.05L65 4.8L67.5 5.65L70 6.63L72.5 7.77L75 9.07L77.5 10.58L80 12.34L82.5 14.41L85 16.85L87.5 19.79L90 23.42L92.5 28.06L95 34.37L97.5 44.29L100 100L0 100Z%27 fill=%27%23fff%27/></svg>");
25
+ --co-sq-bl: url("data:image/svg+xml,<svg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 100 100%27 preserveAspectRatio=%27none%27><path d=%27M0 0L2.5 55.71L5 65.63L7.5 71.94L10 76.58L12.5 80.21L15 83.15L17.5 85.59L20 87.66L22.5 89.42L25 90.93L27.5 92.23L30 93.37L32.5 94.35L35 95.2L37.5 95.95L40 96.59L42.5 97.15L45 97.63L47.5 98.04L50 98.4L52.5 98.7L55 98.96L57.5 99.17L60 99.35L62.5 99.5L65 99.62L67.5 99.72L70 99.8L72.5 99.86L75 99.9L77.5 99.94L80 99.96L82.5 99.98L85 99.99L87.5 99.99L90 100L92.5 100L95 100L97.5 100L100 100L100 0Z%27 fill=%27%23fff%27/></svg>");
26
+ --co-sq-br: url("data:image/svg+xml,<svg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 100 100%27 preserveAspectRatio=%27none%27><path d=%27M100 0L97.5 55.71L95 65.63L92.5 71.94L90 76.58L87.5 80.21L85 83.15L82.5 85.59L80 87.66L77.5 89.42L75 90.93L72.5 92.23L70 93.37L67.5 94.35L65 95.2L62.5 95.95L60 96.59L57.5 97.15L55 97.63L52.5 98.04L50 98.4L47.5 98.7L45 98.96L42.5 99.17L40 99.35L37.5 99.5L35 99.62L32.5 99.72L30 99.8L27.5 99.86L25 99.9L22.5 99.94L20 99.96L17.5 99.98L15 99.99L12.5 99.99L10 100L7.5 100L5 100L2.5 100L0 100L0 0Z%27 fill=%27%23fff%27/></svg>");
15
27
  }
16
28
 
17
29
  /* ─── Position: right (default) ───────────────────────────── */
@@ -26,9 +38,7 @@
26
38
  margin: 6px;
27
39
  height: 100vh;
28
40
  height: -webkit-fill-available;
29
- border-radius: 24px;
30
41
  transform: translateX(calc(100% + 12px));
31
- box-shadow: 0 4px 24px rgba(0, 0, 0, 0.12);
32
42
  }
33
43
  .co-drawer--right.co-drawer--open { transform: translateX(0); }
34
44
 
@@ -39,9 +49,7 @@
39
49
  margin: 6px;
40
50
  height: 100vh;
41
51
  height: -webkit-fill-available;
42
- border-radius: 24px;
43
52
  transform: translateX(calc(-100% - 12px));
44
- box-shadow: 0 4px 24px rgba(0, 0, 0, 0.12);
45
53
  }
46
54
  .co-drawer--left.co-drawer--open { transform: translateX(0); }
47
55
 
@@ -53,8 +61,6 @@
53
61
  margin: 6px;
54
62
  width: auto;
55
63
  transform: translateY(calc(100% + 12px));
56
- box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.12);
57
- border-radius: 24px;
58
64
  }
59
65
  .co-drawer--bottom.co-drawer--open { transform: translateY(0); }
60
66
 
@@ -64,7 +70,7 @@
64
70
  .co-drawer--right.co-drawer--md,
65
71
  .co-drawer--left.co-drawer--md { width: 520px; max-width: 100vw; }
66
72
  .co-drawer--right.co-drawer--lg,
67
- .co-drawer--left.co-drawer--lg { width: 720px; max-width: 100vw; }
73
+ .co-drawer--left.co-drawer--lg { width: 672px; max-width: 100vw; } /* Figma drawer */
68
74
  .co-drawer--right.co-drawer--xl,
69
75
  .co-drawer--left.co-drawer--xl { width: 960px; max-width: 100vw; }
70
76
  .co-drawer--right.co-drawer--full,
@@ -77,6 +83,36 @@
77
83
  .co-drawer--bottom.co-drawer--xl { height: 95vh; }
78
84
  .co-drawer--bottom.co-drawer--full { height: 100vh; }
79
85
 
86
+ /* The visible card: smooth (squircle) corners, background + clip live here
87
+ (not on .co-drawer) so .co-drawer's drop-shadow isn't clipped by the mask. */
88
+ .co-drawer__card {
89
+ flex: 1;
90
+ min-height: 0;
91
+ display: flex;
92
+ flex-direction: column;
93
+ overflow: hidden;
94
+ background: var(--co-semantic-surface-page);
95
+ border-radius: 0; /* the mask defines the (smooth) shape */
96
+ /* Squircle via 4 corner pieces + a cross of 2 bars (H full-width, V full-height).
97
+ The bars are sized `calc(... + 2px)` so they OVERLAP each corner by ~1px on
98
+ every side — same anti-seam trick as co-app-shell .main__card / co-modal
99
+ .co-modal (prevents a sub-pixel transparent seam that flickers with zoom). */
100
+ -webkit-mask:
101
+ var(--co-sq-tl) top left / var(--co-drawer-r) var(--co-drawer-r) no-repeat,
102
+ var(--co-sq-tr) top right / var(--co-drawer-r) var(--co-drawer-r) no-repeat,
103
+ var(--co-sq-bl) bottom left / var(--co-drawer-r) var(--co-drawer-r) no-repeat,
104
+ var(--co-sq-br) bottom right / var(--co-drawer-r) var(--co-drawer-r) no-repeat,
105
+ linear-gradient(#fff 0 0) center / 100% calc(100% - 2 * var(--co-drawer-r) + 2px) no-repeat,
106
+ linear-gradient(#fff 0 0) center / calc(100% - 2 * var(--co-drawer-r) + 2px) 100% no-repeat;
107
+ mask:
108
+ var(--co-sq-tl) top left / var(--co-drawer-r) var(--co-drawer-r) no-repeat,
109
+ var(--co-sq-tr) top right / var(--co-drawer-r) var(--co-drawer-r) no-repeat,
110
+ var(--co-sq-bl) bottom left / var(--co-drawer-r) var(--co-drawer-r) no-repeat,
111
+ var(--co-sq-br) bottom right / var(--co-drawer-r) var(--co-drawer-r) no-repeat,
112
+ linear-gradient(#fff 0 0) center / 100% calc(100% - 2 * var(--co-drawer-r) + 2px) no-repeat,
113
+ linear-gradient(#fff 0 0) center / calc(100% - 2 * var(--co-drawer-r) + 2px) 100% no-repeat;
114
+ }
115
+
80
116
  /* ─── Header ──────────────────────────────────────────────── */
81
117
  .co-drawer__header {
82
118
  display: flex;
@@ -113,7 +149,7 @@
113
149
 
114
150
  .co-drawer__description {
115
151
  margin: var(--co-spacing-xs) 0 0;
116
- font-size: var(--co-font-size-13);
152
+ font-size: var(--co-font-size-13, 13px);
117
153
  font-weight: 400;
118
154
  color: var(--co-semantic-text-muted);
119
155
  line-height: 1.4;
@@ -176,3 +212,20 @@
176
212
  width: 100vw !important;
177
213
  }
178
214
  }
215
+
216
+ /* ─── Modeless (no overlay) ───────────────────────────────────────────── */
217
+ /* The aside renders standalone with popover="manual" (top-layer). The UA
218
+ [popover] stylesheet sets inset:0/border/padding/margin:auto — neutralize
219
+ what our position rules don't already override. z-index is the fallback
220
+ layer for browsers without the Popover API. */
221
+ .co-drawer--modeless {
222
+ z-index: 1000;
223
+ border: 0;
224
+ padding: 0;
225
+ /* UA [popover] pinta background: Canvas en el aside — sin esto, un rect
226
+ blanco cuadrado asoma detrás de las esquinas squircle del card. */
227
+ background: transparent;
228
+ }
229
+ .co-drawer--modeless.co-drawer--right { left: auto; bottom: auto; }
230
+ .co-drawer--modeless.co-drawer--left { right: auto; bottom: auto; }
231
+ .co-drawer--modeless.co-drawer--bottom { top: auto; }