@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
@@ -0,0 +1,899 @@
1
+ import { h } from "@stencil/core";
2
+ import { highlightMatch } from "../../utils/normalizeText";
3
+ import { initOverlayScroll } from "../../utils/overlayScroll";
4
+ import { buildRows, deriveMore, nextActiveIndex, orderItems, parseItems, parseValue, virtualSlice, VIRTUAL_ITEM_HEIGHT, VIRTUAL_VIEWPORT_ITEMS, } from "./optionListLogic";
5
+ /**
6
+ * Núcleo de lista de opciones — la única fuente del look & behavior de los
7
+ * dropdowns Cobalt (co-ref-field, co-combobox, co-autocomplete,
8
+ * co-command-search) y de los pickers de celda de suite-v2.
9
+ *
10
+ * NO renderiza trigger ni chrome de panel (popover/dialog/ancho): eso es del
11
+ * host. Es 100% controlada: no muta `value`; emite y el host decide.
12
+ *
13
+ * @slot footer - Footer del panel (normalmente <co-list-footer>).
14
+ */
15
+ export class CoOptionList {
16
+ constructor() {
17
+ // ── Data (controlada) ──────────────────────────────────────
18
+ /** JSON string o array de OptionListItem. */
19
+ this.items = '[]';
20
+ /** Selección actual: id single o JSON array de ids. */
21
+ this.value = '';
22
+ /** Display-items de la selección (para selected-first con ids fuera de página). */
23
+ this.selectedItems = '[]';
24
+ this.multiple = false;
25
+ /** Partición selected-first (snapshot al llamar snapshotOrder()). */
26
+ this.selectedFirst = false;
27
+ /** Afford. del seleccionado: check (combobox/autocomplete) o X deselect (ref-field). */
28
+ this.selectedAffordance = 'check';
29
+ /** Botón remove por fila seleccionada en multiple (tags de combobox). */
30
+ this.removableItems = false;
31
+ // ── Search integrado (opcional) ────────────────────────────
32
+ this.searchable = false;
33
+ this.searchPlaceholder = 'Search…';
34
+ this.searchDebounce = 350;
35
+ /** Pre-seed del término (modo convert de las celdas). */
36
+ this.initialTerm = '';
37
+ // ── Estados ────────────────────────────────────────────────
38
+ this.loading = false;
39
+ /** Total del server: deriva hasMore + hint "N more results". */
40
+ this.total = 0;
41
+ /** Fallback cuando el host no conoce totales (⌘K). total>0 manda. */
42
+ this.hasMore = false;
43
+ this.emptyMessage = 'No results found';
44
+ /** Si se setea y hay selección, fila "quitar selección" al tope. */
45
+ this.clearOptionLabel = '';
46
+ // ── Presentación ───────────────────────────────────────────
47
+ /** Lista virtualizada (autocomplete/combobox). Ignora `group`. */
48
+ this.virtual = false;
49
+ /** Resalta el match del término en los labels. */
50
+ this.highlightMatches = false;
51
+ /** Término externo para highlight (input en el host, p.ej. ⌘K). */
52
+ this.highlightTerm = '';
53
+ this.avatarShape = 'circle';
54
+ // ── Navegación ─────────────────────────────────────────────
55
+ /** Auto-resalta la primera fila navegable al montar y en cada cambio de
56
+ * items (paridad command-palette: tipear + Enter = primer resultado).
57
+ * Salta filas disabled vía nextActiveIndex. */
58
+ this.autoHighlight = false;
59
+ this.term = '';
60
+ this.activeIndex = -1;
61
+ this.scrollTop = 0;
62
+ /** Snapshot selected-first (ver snapshotOrder). */
63
+ this.sortSnapshot = new Set();
64
+ this.displaySnapshot = [];
65
+ /**
66
+ * Enter sobre un control real (footer, fila clear) activa ese control
67
+ * nativamente — nunca el highlight (regla heredada de CellRefPicker).
68
+ */
69
+ this.onRootKeyDown = (e) => {
70
+ var _a, _b;
71
+ if (e.key === 'Enter') {
72
+ const origin = (((_a = e.composedPath) === null || _a === void 0 ? void 0 : _a.call(e)[0]) || e.target);
73
+ // `instanceof HTMLElement`, NO `Element`: el decorador `@Element` importado
74
+ // de `@stencil/core` arriba shadowea el nombre global `Element` en este
75
+ // módulo, así que `origin instanceof Element` referenciaría el decorador
76
+ // (siempre false / rompe el narrowing de TS) en vez del DOM Element.
77
+ if (origin instanceof HTMLElement && ((_b = origin.closest) === null || _b === void 0 ? void 0 : _b.call(origin, 'button:not(.co-option-list__option), co-list-footer')))
78
+ return;
79
+ }
80
+ if (this.processKey(e.key))
81
+ e.preventDefault();
82
+ };
83
+ this.onSearchInput = (e) => {
84
+ const v = e.target.value;
85
+ this.term = v;
86
+ this.activeIndex = -1;
87
+ if (this.debounceTimer)
88
+ clearTimeout(this.debounceTimer);
89
+ this.debounceTimer = setTimeout(() => this.coSearch.emit(v), this.searchDebounce);
90
+ };
91
+ this.onNativeScroll = (e) => {
92
+ // Fallback pre-OverlayScrollbars (primer frame) — misma lógica.
93
+ const el = e.target;
94
+ this.scrollTop = el.scrollTop;
95
+ this.maybeLoadMore(el.scrollTop, el.clientHeight, el.scrollHeight);
96
+ };
97
+ }
98
+ // ── Parsed ─────────────────────────────────────────────────
99
+ get parsedItems() { return parseItems(this.items); }
100
+ get selectedIds() { return parseValue(this.value); }
101
+ get orderedItems() {
102
+ if (!this.selectedFirst)
103
+ return this.parsedItems;
104
+ return orderItems(this.parsedItems, this.sortSnapshot, this.displaySnapshot, !!this.term);
105
+ }
106
+ get effectiveHighlightTerm() {
107
+ if (!this.highlightMatches)
108
+ return '';
109
+ return this.searchable ? this.term : this.highlightTerm;
110
+ }
111
+ // ── Lifecycle ──────────────────────────────────────────────
112
+ componentWillLoad() {
113
+ this.term = this.initialTerm || '';
114
+ this.takeSnapshot();
115
+ if (this.autoHighlight)
116
+ this.activeIndex = nextActiveIndex(-1, 1, this.orderedItems);
117
+ }
118
+ componentDidRender() {
119
+ // OverlayScrollbars sobre el contenedor; wrapper interno estable para que
120
+ // Stencil pueda seguir agregando filas (infinite scroll) sin pelear con
121
+ // la reestructuración de DOM de OS (patrón co-ref-field).
122
+ if (this.optionsEl && !this.osInstance) {
123
+ this.osInstance = initOverlayScroll(this.optionsEl, (vp) => {
124
+ this.scrollTop = vp.scrollTop;
125
+ this.maybeLoadMore(vp.scrollTop, vp.clientHeight, vp.scrollHeight);
126
+ });
127
+ }
128
+ }
129
+ disconnectedCallback() {
130
+ var _a;
131
+ if (this.debounceTimer)
132
+ clearTimeout(this.debounceTimer);
133
+ (_a = this.osInstance) === null || _a === void 0 ? void 0 : _a.destroy();
134
+ this.osInstance = undefined;
135
+ }
136
+ onItemsChange() {
137
+ // Nueva página / nuevos resultados: si autoHighlight, re-resalta la primera fila
138
+ // navegable (paridad command-palette); si no, solo resetea cuando el highlight
139
+ // quedó fuera de rango.
140
+ if (this.autoHighlight) {
141
+ this.activeIndex = nextActiveIndex(-1, 1, this.orderedItems);
142
+ }
143
+ else if (this.activeIndex >= this.orderedItems.length) {
144
+ this.activeIndex = -1;
145
+ }
146
+ // Clamp defensivo del scroll virtual: si la nueva lista es más corta que el
147
+ // scrollTop actual (p.ej. búsqueda que redujo drásticamente el resultset),
148
+ // reencuadra dentro de rango. NO resetear a 0 incondicionalmente — eso
149
+ // rompería el infinite scroll por append (la lista crece hacia abajo y el
150
+ // usuario sigue viendo su posición de scroll).
151
+ const maxScrollTop = Math.max(0, this.orderedItems.length * VIRTUAL_ITEM_HEIGHT - VIRTUAL_VIEWPORT_ITEMS * VIRTUAL_ITEM_HEIGHT);
152
+ if (this.scrollTop > this.orderedItems.length * VIRTUAL_ITEM_HEIGHT) {
153
+ this.scrollTop = maxScrollTop;
154
+ }
155
+ }
156
+ // ── Métodos públicos ───────────────────────────────────────
157
+ /** Re-toma el snapshot selected-first. El host la llama al abrir su panel. */
158
+ async snapshotOrder() {
159
+ this.takeSnapshot();
160
+ }
161
+ /**
162
+ * Enfoca el input de búsqueda esperando visibilidad real: el panel del host
163
+ * se vuelve visible frames después (showPopover/position en rAF) y focus()
164
+ * sobre subtree oculto es no-op silencioso. Reintenta ~20 frames.
165
+ */
166
+ async focusSearch() {
167
+ var _a, _b;
168
+ for (let i = 0; i < 20; i++) {
169
+ (_a = this.searchInputEl) === null || _a === void 0 ? void 0 : _a.focus();
170
+ if (this.searchInputEl && ((_b = this.el.shadowRoot) === null || _b === void 0 ? void 0 : _b.activeElement) === this.searchInputEl)
171
+ return;
172
+ await new Promise((resolve) => requestAnimationFrame(() => resolve()));
173
+ }
174
+ }
175
+ /** Navegación para hosts con input externo. true = tecla consumida (host hace preventDefault). */
176
+ async handleKey(e) {
177
+ return this.processKey(e.key);
178
+ }
179
+ // ── Internos ───────────────────────────────────────────────
180
+ takeSnapshot() {
181
+ this.sortSnapshot = new Set(this.selectedIds);
182
+ const byId = new Map();
183
+ for (const it of parseItems(this.selectedItems))
184
+ byId.set(it._id, it);
185
+ for (const it of this.parsedItems)
186
+ if (!byId.has(it._id))
187
+ byId.set(it._id, it);
188
+ this.displaySnapshot = this.selectedIds
189
+ .map((id) => byId.get(id))
190
+ .filter(Boolean);
191
+ }
192
+ processKey(key) {
193
+ const items = this.orderedItems;
194
+ switch (key) {
195
+ case 'ArrowDown':
196
+ this.activeIndex = nextActiveIndex(this.activeIndex, 1, items);
197
+ this.scrollActiveIntoView();
198
+ return true;
199
+ case 'ArrowUp':
200
+ this.activeIndex = nextActiveIndex(this.activeIndex, -1, items);
201
+ this.scrollActiveIntoView();
202
+ return true;
203
+ case 'Enter': {
204
+ // Enter con un fetch in-flight pickearía de la lista STALE (race
205
+ // detectada en smoke: el usuario teclea y confirma antes de que
206
+ // lleguen los resultados). Se consume sin actuar; el siguiente
207
+ // Enter opera sobre la lista fresca.
208
+ if (this.loading)
209
+ return true;
210
+ const item = items[this.activeIndex];
211
+ if (item && !item.disabled) {
212
+ this.pick(item);
213
+ return true;
214
+ }
215
+ return false;
216
+ }
217
+ default:
218
+ return false;
219
+ }
220
+ }
221
+ pick(item) {
222
+ if (this.multiple) {
223
+ const current = this.selectedIds;
224
+ const idx = current.indexOf(item._id);
225
+ const next = idx >= 0 ? current.filter((id) => id !== item._id) : [...current, item._id];
226
+ this.coChange.emit({ value: next, item });
227
+ }
228
+ else {
229
+ this.coChange.emit({ value: item._id, item });
230
+ }
231
+ }
232
+ maybeLoadMore(scrollTop, clientHeight, scrollHeight) {
233
+ if (this.loading)
234
+ return;
235
+ const { hasMore } = deriveMore(this.parsedItems.length, this.total, this.hasMore);
236
+ if (hasMore && scrollTop + clientHeight >= scrollHeight - 40)
237
+ this.coLoadMore.emit();
238
+ }
239
+ scrollActiveIntoView() {
240
+ requestAnimationFrame(() => {
241
+ var _a, _b;
242
+ (_b = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.getElementById(`co-optlist-${this.activeIndex}`)) === null || _b === void 0 ? void 0 : _b.scrollIntoView({ block: 'nearest' });
243
+ });
244
+ }
245
+ // ── Render helpers ─────────────────────────────────────────
246
+ renderLeading(item) {
247
+ if (item.image || item.avatar) {
248
+ return (h("co-avatar", { class: "co-option-list__avatar", type: item.image ? 'image' : 'text', src: item.image, text: item.avatar, color: item.color, size: "xxs", shape: this.avatarShape }));
249
+ }
250
+ if (item.color)
251
+ return h("span", { class: "co-option-list__dot", style: { backgroundColor: item.color } });
252
+ if (item.icon)
253
+ return h("co-icon", { name: item.icon, size: 16, class: "co-option-list__icon" });
254
+ return null;
255
+ }
256
+ renderLabelText(label) {
257
+ const term = this.effectiveHighlightTerm;
258
+ const seg = term ? highlightMatch(label, term) : null;
259
+ if (!seg)
260
+ return label;
261
+ return [seg.pre, h("span", { class: "co-option-list__match" }, seg.match), seg.post];
262
+ }
263
+ renderRow(item, index, selectedIds) {
264
+ const isSelected = selectedIds.includes(item._id);
265
+ return (h("div", { class: {
266
+ 'co-option-list__option': true,
267
+ 'co-option-list__option--selected': isSelected,
268
+ 'co-option-list__option--active': index === this.activeIndex,
269
+ 'co-option-list__option--disabled': !!item.disabled,
270
+ }, key: item._id, id: `co-optlist-${index}`, role: "option", "aria-selected": isSelected ? 'true' : 'false', "aria-disabled": item.disabled ? 'true' : 'false', onClick: () => !item.disabled && this.pick(item), onMouseEnter: () => { this.activeIndex = index; } }, this.renderLeading(item), h("div", { class: "co-option-list__text" }, h("span", { class: "co-option-list__title" }, h("span", { class: "co-option-list__label", style: item.labelColor ? { color: item.labelColor, fontWeight: '600' } : undefined }, this.renderLabelText(item.label)), item.suffix && h("span", { class: "co-option-list__suffix" }, "- ", item.suffix), item.badge && (h("span", { class: "co-option-list__badge", style: item.badge.color ? { backgroundColor: item.badge.color, color: 'var(--co-color-base-blanco, #fff)' } : undefined }, item.badge.label))), item.description && h("span", { class: "co-option-list__desc" }, item.description)), isSelected && this.removableItems && this.multiple && (h("button", { class: "co-option-list__row-action", type: "button", tabIndex: -1, "aria-label": `Remove ${item.label}`, onClick: (e) => { e.stopPropagation(); this.coRemoveItem.emit(item._id); } }, h("co-icon", { name: "x-circle", size: 16, weight: "fill" }))), isSelected && !this.removableItems && this.selectedAffordance === 'deselect' && (h("button", { class: "co-option-list__row-action", type: "button", tabIndex: -1, "aria-label": `Deselect ${item.label}`, onClick: (e) => { e.stopPropagation(); this.pick(item); } }, h("co-icon", { name: "x-circle", size: 16, weight: "fill" }))), isSelected && !this.removableItems && this.selectedAffordance === 'check' && (h("co-icon", { name: "check", size: 16, class: "co-option-list__check" }))));
271
+ }
272
+ renderVirtual(items, selectedIds) {
273
+ const { totalHeight, startIdx, endIdx, offsetY } = virtualSlice(this.scrollTop, items.length);
274
+ return (h("div", { class: "co-option-list__spacer", style: { height: `${totalHeight}px`, position: 'relative' } }, h("div", { style: { position: 'absolute', top: `${offsetY}px`, left: '0', right: '0' } }, items.slice(startIdx, endIdx).map((item, i) => this.renderRow(item, startIdx + i, selectedIds)))));
275
+ }
276
+ render() {
277
+ const items = this.orderedItems;
278
+ const selectedIds = this.selectedIds;
279
+ const { hasMore, remaining } = deriveMore(this.parsedItems.length, this.total, this.hasMore);
280
+ const showClear = !!this.clearOptionLabel && selectedIds.length > 0;
281
+ return (h("div", { key: 'f6262519bd90bb9a419daeb9a1386147396a79ff', class: "co-option-list", onKeyDown: this.onRootKeyDown }, this.searchable && (h("div", { key: '081a2cfee9a8a903c6bd2a2f0bd06cbac635c021', class: "co-option-list__search", part: "search" }, h("co-icon", { key: 'a001c71f5de00288907cde1e123f8d393e052a9e', name: "magnifying-glass", size: 16 }), h("input", { key: '355520b7d77077e02666fcd5012f36c648eaeacf', class: "co-option-list__search-input", type: "text", placeholder: this.searchPlaceholder, value: this.term, onInput: this.onSearchInput, ref: (el) => (this.searchInputEl = el), role: "combobox", "aria-expanded": "true", "aria-autocomplete": "list" }))), h("div", { key: '833708f614d3f561ba45bf1656f4bcfa6701b8ce', class: "co-option-list__options", part: "options", role: "listbox", "aria-multiselectable": this.multiple ? 'true' : 'false', ref: (el) => (this.optionsEl = el), onScroll: this.onNativeScroll }, h("div", { key: '10da99a56133af0748f43c20af62e03e975aebcd', class: "co-option-list__inner" }, showClear && (h("button", { key: '208bc13eb8e89c88657022fbc174bb22ffe9e1c4', class: "co-option-list__clear-row", type: "button", onClick: () => this.coClearSelection.emit() }, h("co-icon", { key: '8c6d29e405a12e53bd3ab9f1662c7237bcae0617', name: "x-circle", size: 14 }), h("span", { key: 'd7e11cc7753c8dd63ae6a556bf5368c01ea1fc2a' }, this.clearOptionLabel))), this.loading && items.length === 0 && (h("div", { key: 'dec374969fe6b401a95d60d101cc625c181f3e72', class: "co-option-list__loading" }, h("co-loader", { key: 'c1547fc0f49911f2f8ab8b85063bf15af6500314', size: "sm" }))), !this.loading && items.length === 0 && (h("div", { key: '1e0692572f89d4f9507f1e4b8c4ef90f9f8d307c', class: "co-option-list__empty" }, h("co-icon", { key: 'ff979119305afdd7b2180336c203ff33adc3c463', name: "magnifying-glass", size: 20 }), h("span", { key: '9d460743d6edf7734012d75cabb0f488b67d20cf' }, this.emptyMessage))), items.length > 0 && this.virtual
282
+ ? this.renderVirtual(items, selectedIds)
283
+ : buildRows(items).map((row) => row.kind === 'header'
284
+ ? h("div", { class: "co-option-list__group", role: "presentation" }, row.label)
285
+ : this.renderRow(row.item, row.index, selectedIds)), this.loading && items.length > 0 && (h("div", { key: 'f9c506fddfba9d360a7dd4b2d4ed4142aaa179c5', class: "co-option-list__loading-more" }, h("co-loader", { key: '587d93ebd03eb3764e5637c748975c925d1bd59f', size: "sm" }))), !this.loading && hasMore && remaining > 0 && (h("div", { key: 'cef0c72b2aa1f246404001bae6c8ee4ea560ee07', class: "co-option-list__more" }, remaining, " more results")))), h("slot", { key: '646b6421fb03008d55e5361e14f12d05db08e299', name: "footer" })));
286
+ }
287
+ static get is() { return "co-option-list"; }
288
+ static get encapsulation() { return "shadow"; }
289
+ static get originalStyleUrls() {
290
+ return {
291
+ "$": ["co-option-list.css"]
292
+ };
293
+ }
294
+ static get styleUrls() {
295
+ return {
296
+ "$": ["co-option-list.css"]
297
+ };
298
+ }
299
+ static get properties() {
300
+ return {
301
+ "items": {
302
+ "type": "string",
303
+ "mutable": false,
304
+ "complexType": {
305
+ "original": "string | OptionListItem[]",
306
+ "resolved": "OptionListItem[] | string",
307
+ "references": {
308
+ "OptionListItem": {
309
+ "location": "import",
310
+ "path": "./optionListLogic",
311
+ "id": "src/components/co-option-list/optionListLogic.ts::OptionListItem",
312
+ "referenceLocation": "OptionListItem"
313
+ }
314
+ }
315
+ },
316
+ "required": false,
317
+ "optional": false,
318
+ "docs": {
319
+ "tags": [],
320
+ "text": "JSON string o array de OptionListItem."
321
+ },
322
+ "getter": false,
323
+ "setter": false,
324
+ "reflect": false,
325
+ "attribute": "items",
326
+ "defaultValue": "'[]'"
327
+ },
328
+ "value": {
329
+ "type": "string",
330
+ "mutable": false,
331
+ "complexType": {
332
+ "original": "string",
333
+ "resolved": "string",
334
+ "references": {}
335
+ },
336
+ "required": false,
337
+ "optional": false,
338
+ "docs": {
339
+ "tags": [],
340
+ "text": "Selecci\u00F3n actual: id single o JSON array de ids."
341
+ },
342
+ "getter": false,
343
+ "setter": false,
344
+ "reflect": false,
345
+ "attribute": "value",
346
+ "defaultValue": "''"
347
+ },
348
+ "selectedItems": {
349
+ "type": "string",
350
+ "mutable": false,
351
+ "complexType": {
352
+ "original": "string | OptionListItem[]",
353
+ "resolved": "OptionListItem[] | string",
354
+ "references": {
355
+ "OptionListItem": {
356
+ "location": "import",
357
+ "path": "./optionListLogic",
358
+ "id": "src/components/co-option-list/optionListLogic.ts::OptionListItem",
359
+ "referenceLocation": "OptionListItem"
360
+ }
361
+ }
362
+ },
363
+ "required": false,
364
+ "optional": false,
365
+ "docs": {
366
+ "tags": [],
367
+ "text": "Display-items de la selecci\u00F3n (para selected-first con ids fuera de p\u00E1gina)."
368
+ },
369
+ "getter": false,
370
+ "setter": false,
371
+ "reflect": false,
372
+ "attribute": "selected-items",
373
+ "defaultValue": "'[]'"
374
+ },
375
+ "multiple": {
376
+ "type": "boolean",
377
+ "mutable": false,
378
+ "complexType": {
379
+ "original": "boolean",
380
+ "resolved": "boolean",
381
+ "references": {}
382
+ },
383
+ "required": false,
384
+ "optional": false,
385
+ "docs": {
386
+ "tags": [],
387
+ "text": ""
388
+ },
389
+ "getter": false,
390
+ "setter": false,
391
+ "reflect": false,
392
+ "attribute": "multiple",
393
+ "defaultValue": "false"
394
+ },
395
+ "selectedFirst": {
396
+ "type": "boolean",
397
+ "mutable": false,
398
+ "complexType": {
399
+ "original": "boolean",
400
+ "resolved": "boolean",
401
+ "references": {}
402
+ },
403
+ "required": false,
404
+ "optional": false,
405
+ "docs": {
406
+ "tags": [],
407
+ "text": "Partici\u00F3n selected-first (snapshot al llamar snapshotOrder())."
408
+ },
409
+ "getter": false,
410
+ "setter": false,
411
+ "reflect": false,
412
+ "attribute": "selected-first",
413
+ "defaultValue": "false"
414
+ },
415
+ "selectedAffordance": {
416
+ "type": "string",
417
+ "mutable": false,
418
+ "complexType": {
419
+ "original": "'check' | 'deselect'",
420
+ "resolved": "\"check\" | \"deselect\"",
421
+ "references": {}
422
+ },
423
+ "required": false,
424
+ "optional": false,
425
+ "docs": {
426
+ "tags": [],
427
+ "text": "Afford. del seleccionado: check (combobox/autocomplete) o X deselect (ref-field)."
428
+ },
429
+ "getter": false,
430
+ "setter": false,
431
+ "reflect": false,
432
+ "attribute": "selected-affordance",
433
+ "defaultValue": "'check'"
434
+ },
435
+ "removableItems": {
436
+ "type": "boolean",
437
+ "mutable": false,
438
+ "complexType": {
439
+ "original": "boolean",
440
+ "resolved": "boolean",
441
+ "references": {}
442
+ },
443
+ "required": false,
444
+ "optional": false,
445
+ "docs": {
446
+ "tags": [],
447
+ "text": "Bot\u00F3n remove por fila seleccionada en multiple (tags de combobox)."
448
+ },
449
+ "getter": false,
450
+ "setter": false,
451
+ "reflect": false,
452
+ "attribute": "removable-items",
453
+ "defaultValue": "false"
454
+ },
455
+ "searchable": {
456
+ "type": "boolean",
457
+ "mutable": false,
458
+ "complexType": {
459
+ "original": "boolean",
460
+ "resolved": "boolean",
461
+ "references": {}
462
+ },
463
+ "required": false,
464
+ "optional": false,
465
+ "docs": {
466
+ "tags": [],
467
+ "text": ""
468
+ },
469
+ "getter": false,
470
+ "setter": false,
471
+ "reflect": true,
472
+ "attribute": "searchable",
473
+ "defaultValue": "false"
474
+ },
475
+ "searchPlaceholder": {
476
+ "type": "string",
477
+ "mutable": false,
478
+ "complexType": {
479
+ "original": "string",
480
+ "resolved": "string",
481
+ "references": {}
482
+ },
483
+ "required": false,
484
+ "optional": false,
485
+ "docs": {
486
+ "tags": [],
487
+ "text": ""
488
+ },
489
+ "getter": false,
490
+ "setter": false,
491
+ "reflect": false,
492
+ "attribute": "search-placeholder",
493
+ "defaultValue": "'Search\u2026'"
494
+ },
495
+ "searchDebounce": {
496
+ "type": "number",
497
+ "mutable": false,
498
+ "complexType": {
499
+ "original": "number",
500
+ "resolved": "number",
501
+ "references": {}
502
+ },
503
+ "required": false,
504
+ "optional": false,
505
+ "docs": {
506
+ "tags": [],
507
+ "text": ""
508
+ },
509
+ "getter": false,
510
+ "setter": false,
511
+ "reflect": false,
512
+ "attribute": "search-debounce",
513
+ "defaultValue": "350"
514
+ },
515
+ "initialTerm": {
516
+ "type": "string",
517
+ "mutable": false,
518
+ "complexType": {
519
+ "original": "string",
520
+ "resolved": "string",
521
+ "references": {}
522
+ },
523
+ "required": false,
524
+ "optional": false,
525
+ "docs": {
526
+ "tags": [],
527
+ "text": "Pre-seed del t\u00E9rmino (modo convert de las celdas)."
528
+ },
529
+ "getter": false,
530
+ "setter": false,
531
+ "reflect": false,
532
+ "attribute": "initial-term",
533
+ "defaultValue": "''"
534
+ },
535
+ "loading": {
536
+ "type": "boolean",
537
+ "mutable": false,
538
+ "complexType": {
539
+ "original": "boolean",
540
+ "resolved": "boolean",
541
+ "references": {}
542
+ },
543
+ "required": false,
544
+ "optional": false,
545
+ "docs": {
546
+ "tags": [],
547
+ "text": ""
548
+ },
549
+ "getter": false,
550
+ "setter": false,
551
+ "reflect": false,
552
+ "attribute": "loading",
553
+ "defaultValue": "false"
554
+ },
555
+ "total": {
556
+ "type": "number",
557
+ "mutable": false,
558
+ "complexType": {
559
+ "original": "number",
560
+ "resolved": "number",
561
+ "references": {}
562
+ },
563
+ "required": false,
564
+ "optional": false,
565
+ "docs": {
566
+ "tags": [],
567
+ "text": "Total del server: deriva hasMore + hint \"N more results\"."
568
+ },
569
+ "getter": false,
570
+ "setter": false,
571
+ "reflect": false,
572
+ "attribute": "total",
573
+ "defaultValue": "0"
574
+ },
575
+ "hasMore": {
576
+ "type": "boolean",
577
+ "mutable": false,
578
+ "complexType": {
579
+ "original": "boolean",
580
+ "resolved": "boolean",
581
+ "references": {}
582
+ },
583
+ "required": false,
584
+ "optional": false,
585
+ "docs": {
586
+ "tags": [],
587
+ "text": "Fallback cuando el host no conoce totales (\u2318K). total>0 manda."
588
+ },
589
+ "getter": false,
590
+ "setter": false,
591
+ "reflect": false,
592
+ "attribute": "has-more",
593
+ "defaultValue": "false"
594
+ },
595
+ "emptyMessage": {
596
+ "type": "string",
597
+ "mutable": false,
598
+ "complexType": {
599
+ "original": "string",
600
+ "resolved": "string",
601
+ "references": {}
602
+ },
603
+ "required": false,
604
+ "optional": false,
605
+ "docs": {
606
+ "tags": [],
607
+ "text": ""
608
+ },
609
+ "getter": false,
610
+ "setter": false,
611
+ "reflect": false,
612
+ "attribute": "empty-message",
613
+ "defaultValue": "'No results found'"
614
+ },
615
+ "clearOptionLabel": {
616
+ "type": "string",
617
+ "mutable": false,
618
+ "complexType": {
619
+ "original": "string",
620
+ "resolved": "string",
621
+ "references": {}
622
+ },
623
+ "required": false,
624
+ "optional": false,
625
+ "docs": {
626
+ "tags": [],
627
+ "text": "Si se setea y hay selecci\u00F3n, fila \"quitar selecci\u00F3n\" al tope."
628
+ },
629
+ "getter": false,
630
+ "setter": false,
631
+ "reflect": false,
632
+ "attribute": "clear-option-label",
633
+ "defaultValue": "''"
634
+ },
635
+ "virtual": {
636
+ "type": "boolean",
637
+ "mutable": false,
638
+ "complexType": {
639
+ "original": "boolean",
640
+ "resolved": "boolean",
641
+ "references": {}
642
+ },
643
+ "required": false,
644
+ "optional": false,
645
+ "docs": {
646
+ "tags": [],
647
+ "text": "Lista virtualizada (autocomplete/combobox). Ignora `group`."
648
+ },
649
+ "getter": false,
650
+ "setter": false,
651
+ "reflect": true,
652
+ "attribute": "virtual",
653
+ "defaultValue": "false"
654
+ },
655
+ "highlightMatches": {
656
+ "type": "boolean",
657
+ "mutable": false,
658
+ "complexType": {
659
+ "original": "boolean",
660
+ "resolved": "boolean",
661
+ "references": {}
662
+ },
663
+ "required": false,
664
+ "optional": false,
665
+ "docs": {
666
+ "tags": [],
667
+ "text": "Resalta el match del t\u00E9rmino en los labels."
668
+ },
669
+ "getter": false,
670
+ "setter": false,
671
+ "reflect": false,
672
+ "attribute": "highlight-matches",
673
+ "defaultValue": "false"
674
+ },
675
+ "highlightTerm": {
676
+ "type": "string",
677
+ "mutable": false,
678
+ "complexType": {
679
+ "original": "string",
680
+ "resolved": "string",
681
+ "references": {}
682
+ },
683
+ "required": false,
684
+ "optional": false,
685
+ "docs": {
686
+ "tags": [],
687
+ "text": "T\u00E9rmino externo para highlight (input en el host, p.ej. \u2318K)."
688
+ },
689
+ "getter": false,
690
+ "setter": false,
691
+ "reflect": false,
692
+ "attribute": "highlight-term",
693
+ "defaultValue": "''"
694
+ },
695
+ "avatarShape": {
696
+ "type": "string",
697
+ "mutable": false,
698
+ "complexType": {
699
+ "original": "'circle' | 'square'",
700
+ "resolved": "\"circle\" | \"square\"",
701
+ "references": {}
702
+ },
703
+ "required": false,
704
+ "optional": false,
705
+ "docs": {
706
+ "tags": [],
707
+ "text": ""
708
+ },
709
+ "getter": false,
710
+ "setter": false,
711
+ "reflect": false,
712
+ "attribute": "avatar-shape",
713
+ "defaultValue": "'circle'"
714
+ },
715
+ "autoHighlight": {
716
+ "type": "boolean",
717
+ "mutable": false,
718
+ "complexType": {
719
+ "original": "boolean",
720
+ "resolved": "boolean",
721
+ "references": {}
722
+ },
723
+ "required": false,
724
+ "optional": false,
725
+ "docs": {
726
+ "tags": [],
727
+ "text": "Auto-resalta la primera fila navegable al montar y en cada cambio de\nitems (paridad command-palette: tipear + Enter = primer resultado).\nSalta filas disabled v\u00EDa nextActiveIndex."
728
+ },
729
+ "getter": false,
730
+ "setter": false,
731
+ "reflect": false,
732
+ "attribute": "auto-highlight",
733
+ "defaultValue": "false"
734
+ }
735
+ };
736
+ }
737
+ static get states() {
738
+ return {
739
+ "term": {},
740
+ "activeIndex": {},
741
+ "scrollTop": {}
742
+ };
743
+ }
744
+ static get events() {
745
+ return [{
746
+ "method": "coSearch",
747
+ "name": "coSearch",
748
+ "bubbles": false,
749
+ "cancelable": true,
750
+ "composed": true,
751
+ "docs": {
752
+ "tags": [],
753
+ "text": ""
754
+ },
755
+ "complexType": {
756
+ "original": "string",
757
+ "resolved": "string",
758
+ "references": {}
759
+ }
760
+ }, {
761
+ "method": "coChange",
762
+ "name": "coChange",
763
+ "bubbles": false,
764
+ "cancelable": true,
765
+ "composed": true,
766
+ "docs": {
767
+ "tags": [],
768
+ "text": ""
769
+ },
770
+ "complexType": {
771
+ "original": "{ value: string | string[]; item: OptionListItem }",
772
+ "resolved": "{ value: string | string[]; item: OptionListItem; }",
773
+ "references": {
774
+ "OptionListItem": {
775
+ "location": "import",
776
+ "path": "./optionListLogic",
777
+ "id": "src/components/co-option-list/optionListLogic.ts::OptionListItem",
778
+ "referenceLocation": "OptionListItem"
779
+ }
780
+ }
781
+ }
782
+ }, {
783
+ "method": "coLoadMore",
784
+ "name": "coLoadMore",
785
+ "bubbles": false,
786
+ "cancelable": true,
787
+ "composed": true,
788
+ "docs": {
789
+ "tags": [],
790
+ "text": ""
791
+ },
792
+ "complexType": {
793
+ "original": "void",
794
+ "resolved": "void",
795
+ "references": {}
796
+ }
797
+ }, {
798
+ "method": "coClearSelection",
799
+ "name": "coClearSelection",
800
+ "bubbles": false,
801
+ "cancelable": true,
802
+ "composed": true,
803
+ "docs": {
804
+ "tags": [],
805
+ "text": ""
806
+ },
807
+ "complexType": {
808
+ "original": "void",
809
+ "resolved": "void",
810
+ "references": {}
811
+ }
812
+ }, {
813
+ "method": "coRemoveItem",
814
+ "name": "coRemoveItem",
815
+ "bubbles": false,
816
+ "cancelable": true,
817
+ "composed": true,
818
+ "docs": {
819
+ "tags": [],
820
+ "text": ""
821
+ },
822
+ "complexType": {
823
+ "original": "string",
824
+ "resolved": "string",
825
+ "references": {}
826
+ }
827
+ }];
828
+ }
829
+ static get methods() {
830
+ return {
831
+ "snapshotOrder": {
832
+ "complexType": {
833
+ "signature": "() => Promise<void>",
834
+ "parameters": [],
835
+ "references": {
836
+ "Promise": {
837
+ "location": "global",
838
+ "id": "global::Promise"
839
+ }
840
+ },
841
+ "return": "Promise<void>"
842
+ },
843
+ "docs": {
844
+ "text": "Re-toma el snapshot selected-first. El host la llama al abrir su panel.",
845
+ "tags": []
846
+ }
847
+ },
848
+ "focusSearch": {
849
+ "complexType": {
850
+ "signature": "() => Promise<void>",
851
+ "parameters": [],
852
+ "references": {
853
+ "Promise": {
854
+ "location": "global",
855
+ "id": "global::Promise"
856
+ }
857
+ },
858
+ "return": "Promise<void>"
859
+ },
860
+ "docs": {
861
+ "text": "Enfoca el input de b\u00FAsqueda esperando visibilidad real: el panel del host\nse vuelve visible frames despu\u00E9s (showPopover/position en rAF) y focus()\nsobre subtree oculto es no-op silencioso. Reintenta ~20 frames.",
862
+ "tags": []
863
+ }
864
+ },
865
+ "handleKey": {
866
+ "complexType": {
867
+ "signature": "(e: KeyboardEvent) => Promise<boolean>",
868
+ "parameters": [{
869
+ "name": "e",
870
+ "type": "KeyboardEvent",
871
+ "docs": ""
872
+ }],
873
+ "references": {
874
+ "Promise": {
875
+ "location": "global",
876
+ "id": "global::Promise"
877
+ },
878
+ "KeyboardEvent": {
879
+ "location": "global",
880
+ "id": "global::KeyboardEvent"
881
+ }
882
+ },
883
+ "return": "Promise<boolean>"
884
+ },
885
+ "docs": {
886
+ "text": "Navegaci\u00F3n para hosts con input externo. true = tecla consumida (host hace preventDefault).",
887
+ "tags": []
888
+ }
889
+ }
890
+ };
891
+ }
892
+ static get elementRef() { return "el"; }
893
+ static get watchers() {
894
+ return [{
895
+ "propName": "items",
896
+ "methodName": "onItemsChange"
897
+ }];
898
+ }
899
+ }