@prolibu-suite/cobalt-core 0.11.12 → 0.11.13
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.
- package/custom-elements.json +36 -109
- package/dist/cjs/co-accordion.cjs.entry.js +5 -5
- package/dist/cjs/co-action-bar.cjs.entry.js +1 -1
- package/dist/cjs/co-app-shell.cjs.entry.js +1 -1
- package/dist/cjs/co-audio-player.cjs.entry.js +1 -1
- package/dist/cjs/co-autocomplete.cjs.entry.js +2 -2
- package/dist/cjs/co-avatar-group.cjs.entry.js +1 -1
- package/dist/cjs/co-avatar.cjs.entry.js +1 -1
- package/dist/cjs/co-badge.cjs.entry.js +1 -1
- package/dist/cjs/co-bottom-sheet.cjs.entry.js +1 -1
- package/dist/cjs/co-breadcrumb-item.cjs.entry.js +1 -1
- package/dist/cjs/co-breadcrumb.cjs.entry.js +1 -1
- package/dist/cjs/co-button-group.cjs.entry.js +1 -1
- package/dist/cjs/co-button.cjs.entry.js +1 -1
- package/dist/cjs/co-calendar-month_2.cjs.entry.js +2 -2
- package/dist/cjs/co-calendar_3.cjs.entry.js +2 -2
- package/dist/cjs/co-card.cjs.entry.js +1 -1
- package/dist/cjs/co-carousel-item.cjs.entry.js +1 -1
- package/dist/cjs/co-carousel.cjs.entry.js +2 -2
- package/dist/cjs/co-checkbox-group.cjs.entry.js +2 -2
- package/dist/cjs/co-checkbox.cjs.entry.js +2 -2
- package/dist/cjs/co-chip_2.cjs.entry.js +6 -6
- package/dist/cjs/co-color-area.cjs.entry.js +1 -1
- package/dist/cjs/co-color-picker.cjs.entry.js +3 -3
- package/dist/cjs/co-color-slider.cjs.entry.js +1 -1
- package/dist/cjs/co-column-picker.cjs.entry.js +2 -2
- package/dist/cjs/co-combobox.cjs.entry.js +2 -2
- package/dist/cjs/co-command-search.cjs.entry.js +2 -2
- package/dist/cjs/co-data-table-pagination.cjs.entry.js +2 -2
- package/dist/cjs/co-data-table.cjs.entry.js +2 -2
- package/dist/cjs/co-date-picker.cjs.entry.js +2 -2
- package/dist/cjs/co-date-range-picker.cjs.entry.js +2 -2
- package/dist/cjs/co-date-range.cjs.entry.js +1 -1
- package/dist/cjs/co-date-time-picker.cjs.entry.js +2 -2
- package/dist/cjs/co-document-editor.cjs.entry.js +2 -2
- package/dist/cjs/co-drive-card.cjs.entry.js +1 -1
- package/dist/cjs/co-drop-zone.cjs.entry.js +1 -1
- package/dist/cjs/co-emoji-picker.cjs.entry.js +2 -2
- package/dist/cjs/co-empty-state.cjs.entry.js +2 -2
- package/dist/cjs/co-event-calendar.cjs.entry.js +1 -1
- package/dist/cjs/co-event-popover.cjs.entry.js +1 -1
- package/dist/cjs/co-fab.cjs.entry.js +1 -1
- package/dist/cjs/co-file-field.cjs.entry.js +3 -3
- package/dist/cjs/co-file-type-tile.cjs.entry.js +1 -1
- package/dist/cjs/co-gradient-bar.cjs.entry.js +1 -1
- package/dist/cjs/co-helper-text.cjs.entry.js +1 -1
- package/dist/cjs/co-icon-button.cjs.entry.js +2 -2
- package/dist/cjs/co-icon.cjs.entry.js +1 -1
- package/dist/cjs/co-input.cjs.entry.js +2 -2
- package/dist/cjs/co-json-field.cjs.entry.js +2 -2
- package/dist/cjs/co-kbd_2.cjs.entry.js +1 -1
- package/dist/cjs/co-lightbox.cjs.entry.js +1 -1
- package/dist/cjs/co-list-footer.cjs.entry.js +1 -1
- package/dist/cjs/co-list-item.cjs.entry.js +2 -2
- package/dist/cjs/co-loader.cjs.entry.js +1 -1
- package/dist/cjs/co-media-thumb.cjs.entry.js +1 -1
- package/dist/cjs/co-menu-divider.cjs.entry.js +1 -1
- package/dist/cjs/co-menu-item.cjs.entry.js +7 -40
- package/dist/cjs/co-menu.cjs.entry.js +2 -2
- package/dist/cjs/co-modal.cjs.entry.js +2 -2
- package/dist/cjs/co-navbar.cjs.entry.js +1 -1
- package/dist/cjs/co-number-field.cjs.entry.js +2 -2
- package/dist/cjs/co-overlay.cjs.entry.js +1 -1
- package/dist/cjs/co-page-header.cjs.entry.js +1 -1
- package/dist/cjs/co-phone-field.cjs.entry.js +4 -4
- package/dist/cjs/co-popover.cjs.entry.js +1 -1
- package/dist/cjs/co-progress-bar.cjs.entry.js +1 -1
- package/dist/cjs/co-progress-circle.cjs.entry.js +2 -2
- package/dist/cjs/co-provider-logo_2.cjs.entry.js +2 -2
- package/dist/cjs/co-radio-group.cjs.entry.js +1 -1
- package/dist/cjs/co-radio.cjs.entry.js +2 -2
- package/dist/cjs/co-rating.cjs.entry.js +2 -2
- package/dist/cjs/co-ref-field.cjs.entry.js +3 -3
- package/dist/cjs/co-rich-text-editor.cjs.entry.js +2 -2
- package/dist/cjs/co-rich-text-toolbar.cjs.entry.js +1 -1
- package/dist/cjs/co-rich-text-viewer.cjs.entry.js +1 -1
- package/dist/cjs/co-row.cjs.entry.js +1 -1
- package/dist/cjs/co-segmented-bar.cjs.entry.js +1 -1
- package/dist/cjs/co-select.cjs.entry.js +27 -14
- package/dist/cjs/co-separator.cjs.entry.js +1 -1
- package/dist/cjs/co-sidebar-nav.cjs.entry.js +1 -1
- package/dist/cjs/co-sidebar.cjs.entry.js +1 -1
- package/dist/cjs/co-slider.cjs.entry.js +2 -2
- package/dist/cjs/co-swatch-grid.cjs.entry.js +1 -1
- package/dist/cjs/co-switch.cjs.entry.js +3 -3
- package/dist/cjs/co-tab-group.cjs.entry.js +2 -2
- package/dist/cjs/co-tab.cjs.entry.js +2 -2
- package/dist/cjs/co-tags-field.cjs.entry.js +4 -4
- package/dist/cjs/co-textarea.cjs.entry.js +2 -2
- package/dist/cjs/co-tile.cjs.entry.js +1 -1
- package/dist/cjs/co-time-field.cjs.entry.js +1 -1
- package/dist/cjs/co-toast.cjs.entry.js +1 -1
- package/dist/cjs/co-toggle-button-group.cjs.entry.js +1 -1
- package/dist/cjs/co-toggle-button.cjs.entry.js +2 -2
- package/dist/cjs/co-transfer-list.cjs.entry.js +2 -2
- package/dist/cjs/co-tree-item.cjs.entry.js +2 -2
- package/dist/cjs/co-video.cjs.entry.js +2 -2
- package/dist/cjs/cobalt.cjs.js +2 -2
- package/dist/cjs/{fieldChip-D-x9bJ-W.js → fieldChip-DbYMfylq.js} +1 -1
- package/dist/cjs/{index-CuskTAyj.js → index-bHoidDwv.js} +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{requiredMark-ooEZAZbC.js → requiredMark-21yHvvZS.js} +1 -1
- package/dist/cobalt/cobalt.css +1 -1
- package/dist/cobalt/cobalt.esm.js +1 -1
- package/dist/cobalt/{p-6d12e825.entry.js → p-019eed8e.entry.js} +1 -1
- package/dist/cobalt/p-01b54d81.entry.js +1 -0
- package/dist/cobalt/{p-b3994c94.entry.js → p-02133c95.entry.js} +1 -1
- package/dist/cobalt/{p-d0129851.entry.js → p-04e3e1f6.entry.js} +1 -1
- package/dist/cobalt/{p-fa4a59e8.entry.js → p-0bbaaf4f.entry.js} +1 -1
- package/dist/cobalt/p-0e13b7d0.entry.js +1 -0
- package/dist/cobalt/{p-8b2432b2.entry.js → p-0f3a3232.entry.js} +1 -1
- package/dist/cobalt/{p-6a270d5d.entry.js → p-12fc5119.entry.js} +1 -1
- package/dist/cobalt/{p-134331e6.entry.js → p-15d995b4.entry.js} +1 -1
- package/dist/cobalt/{p-f3975988.entry.js → p-19f0f534.entry.js} +1 -1
- package/dist/cobalt/{p-4ee87962.entry.js → p-1c9253a2.entry.js} +1 -1
- package/dist/cobalt/p-21b4a830.entry.js +1 -0
- package/dist/cobalt/p-256ca457.entry.js +1 -0
- package/dist/cobalt/{p-8bf0975d.entry.js → p-299c2425.entry.js} +1 -1
- package/dist/cobalt/{p-ac1565df.entry.js → p-2ff8f591.entry.js} +1 -1
- package/dist/cobalt/{p-038cc50a.entry.js → p-33840969.entry.js} +1 -1
- package/dist/cobalt/{p-24456175.entry.js → p-353ff9ed.entry.js} +1 -1
- package/dist/cobalt/{p-3842ac1a.entry.js → p-37f9ec35.entry.js} +1 -1
- package/dist/cobalt/{p-9c00499b.entry.js → p-3878f174.entry.js} +1 -1
- package/dist/cobalt/{p-741c14af.entry.js → p-3890d22f.entry.js} +1 -1
- package/dist/cobalt/{p-19544796.entry.js → p-3b5024ce.entry.js} +1 -1
- package/dist/cobalt/{p-a6516907.entry.js → p-3b7e90c8.entry.js} +1 -1
- package/dist/cobalt/{p-ac963082.entry.js → p-3bff827a.entry.js} +1 -1
- package/dist/cobalt/{p-15e29500.entry.js → p-3e532a11.entry.js} +1 -1
- package/dist/cobalt/{p-ec11b337.entry.js → p-3e864e7d.entry.js} +1 -1
- package/dist/cobalt/{p-af8cc16e.entry.js → p-438cc876.entry.js} +1 -1
- package/dist/cobalt/{p-c4bbb701.entry.js → p-4a7fd0b4.entry.js} +1 -1
- package/dist/cobalt/{p-4e1ba090.entry.js → p-4ae6fe0e.entry.js} +1 -1
- package/dist/cobalt/{p-c5978c46.entry.js → p-4cdfcd9c.entry.js} +1 -1
- package/dist/cobalt/{p-67fac886.entry.js → p-4e81e580.entry.js} +1 -1
- package/dist/cobalt/{p-ae66e746.entry.js → p-50ab6b9b.entry.js} +1 -1
- package/dist/cobalt/{p-be860577.entry.js → p-53a251ca.entry.js} +1 -1
- package/dist/cobalt/{p-45460f75.entry.js → p-59a71695.entry.js} +1 -1
- package/dist/cobalt/{p-0d163b25.entry.js → p-5a32b9a2.entry.js} +1 -1
- package/dist/cobalt/{p-66a07095.entry.js → p-5d41b58b.entry.js} +1 -1
- package/dist/cobalt/{p-9a307b64.entry.js → p-5e14f676.entry.js} +1 -1
- package/dist/cobalt/{p-bf8212cf.entry.js → p-5e39cf70.entry.js} +1 -1
- package/dist/cobalt/{p-5aaaa257.entry.js → p-600d0cab.entry.js} +1 -1
- package/dist/cobalt/{p-e120435e.entry.js → p-63f888a1.entry.js} +1 -1
- package/dist/cobalt/{p-7be0f85b.entry.js → p-6eca1c7c.entry.js} +1 -1
- package/dist/cobalt/{p-1cc15af6.entry.js → p-71ee36a8.entry.js} +1 -1
- package/dist/cobalt/{p-669ad1c6.entry.js → p-74804c79.entry.js} +1 -1
- package/dist/cobalt/{p-7550fc02.entry.js → p-76ea3f34.entry.js} +1 -1
- package/dist/cobalt/{p-76244cca.entry.js → p-7737354e.entry.js} +1 -1
- package/dist/cobalt/p-7e444408.entry.js +1 -0
- package/dist/cobalt/{p-f9937237.entry.js → p-7e678cbd.entry.js} +1 -1
- package/dist/cobalt/p-7e72720a.entry.js +1 -0
- package/dist/cobalt/{p-ce9a3708.entry.js → p-82bcd062.entry.js} +1 -1
- package/dist/cobalt/{p-5b098a4c.entry.js → p-83691cfb.entry.js} +1 -1
- package/dist/cobalt/p-84ad0227.entry.js +1 -0
- package/dist/cobalt/{p-6bb9964f.entry.js → p-89328cd8.entry.js} +1 -1
- package/dist/cobalt/{p-c71b736c.entry.js → p-8a26f3cc.entry.js} +1 -1
- package/dist/cobalt/{p-e0b542ad.entry.js → p-8e7ad2fe.entry.js} +1 -1
- package/dist/cobalt/{p-6fe227e0.entry.js → p-9125252a.entry.js} +1 -1
- package/dist/cobalt/p-947b8e35.entry.js +1 -0
- package/dist/cobalt/{p-0ea06cee.entry.js → p-94b871fb.entry.js} +1 -1
- package/dist/cobalt/{p-6c35584c.entry.js → p-9af26af0.entry.js} +1 -1
- package/dist/cobalt/{p-88edf7d0.entry.js → p-9ce57385.entry.js} +1 -1
- package/dist/cobalt/p-CSLjZ3WO.js +1 -0
- package/dist/cobalt/p-CYN5B3IQ.js +1 -0
- package/dist/cobalt/{p-YRicbXh3.js → p-DJkaRtbb.js} +2 -2
- package/dist/cobalt/{p-1288867e.entry.js → p-a18c01eb.entry.js} +1 -1
- package/dist/cobalt/{p-1ef7bbbc.entry.js → p-a27013e6.entry.js} +1 -1
- package/dist/cobalt/{p-a9242183.entry.js → p-a33a277a.entry.js} +1 -1
- package/dist/cobalt/{p-811f1dd7.entry.js → p-a4154bcf.entry.js} +1 -1
- package/dist/cobalt/{p-e71f6186.entry.js → p-a4264bde.entry.js} +1 -1
- package/dist/cobalt/{p-eca12c29.entry.js → p-a6c9a0c5.entry.js} +1 -1
- package/dist/cobalt/{p-20651254.entry.js → p-b402665a.entry.js} +1 -1
- package/dist/cobalt/{p-71f9fa68.entry.js → p-b6463d35.entry.js} +1 -1
- package/dist/cobalt/{p-a671facd.entry.js → p-b723aa47.entry.js} +1 -1
- package/dist/cobalt/{p-05f0feca.entry.js → p-bbf3d859.entry.js} +1 -1
- package/dist/cobalt/{p-79b62ce3.entry.js → p-be520bd5.entry.js} +1 -1
- package/dist/cobalt/p-bee52042.entry.js +1 -0
- package/dist/cobalt/{p-09ff5302.entry.js → p-c004fde5.entry.js} +1 -1
- package/dist/cobalt/{p-ebcdc0b2.entry.js → p-c026968c.entry.js} +1 -1
- package/dist/cobalt/{p-be9f69e4.entry.js → p-c220362c.entry.js} +1 -1
- package/dist/cobalt/{p-894f59ce.entry.js → p-c23630ab.entry.js} +1 -1
- package/dist/cobalt/p-c93be2d5.entry.js +1 -0
- package/dist/cobalt/{p-c01454be.entry.js → p-cb1013e6.entry.js} +1 -1
- package/dist/cobalt/{p-0d2deeaa.entry.js → p-cea21e08.entry.js} +1 -1
- package/dist/cobalt/{p-d525aec4.entry.js → p-d1595580.entry.js} +1 -1
- package/dist/cobalt/{p-2d76fafb.entry.js → p-d1e83525.entry.js} +1 -1
- package/dist/cobalt/{p-0bd8e079.entry.js → p-d26dc681.entry.js} +1 -1
- package/dist/cobalt/{p-052289b3.entry.js → p-d375c84e.entry.js} +1 -1
- package/dist/cobalt/{p-5009ad0a.entry.js → p-d7775109.entry.js} +1 -1
- package/dist/cobalt/{p-011fd3ca.entry.js → p-d9b4594b.entry.js} +1 -1
- package/dist/cobalt/{p-2f44a37b.entry.js → p-dabcbba7.entry.js} +1 -1
- package/dist/cobalt/{p-a679c368.entry.js → p-e4646a0e.entry.js} +1 -1
- package/dist/cobalt/{p-66375026.entry.js → p-e5350eeb.entry.js} +1 -1
- package/dist/cobalt/{p-c0f579d9.entry.js → p-eab59be5.entry.js} +1 -1
- package/dist/cobalt/{p-63c588e1.entry.js → p-efb3cbb0.entry.js} +1 -1
- package/dist/cobalt/{p-5d17b6e9.entry.js → p-f1da1df1.entry.js} +1 -1
- package/dist/cobalt/{p-fd15353a.entry.js → p-f23f52ed.entry.js} +1 -1
- package/dist/cobalt/{p-63e5d7fe.entry.js → p-f562bd96.entry.js} +1 -1
- package/dist/cobalt/{p-5e04cecc.entry.js → p-f6f273f7.entry.js} +1 -1
- package/dist/cobalt/{p-65e0176c.entry.js → p-fb6671e0.entry.js} +1 -1
- package/dist/cobalt/p-fb731600.entry.js +1 -0
- package/dist/cobalt/{p-16eb0771.entry.js → p-feec49a4.entry.js} +1 -1
- package/dist/cobalt/{p-ea2cc20e.entry.js → p-ff218d09.entry.js} +1 -1
- package/dist/collection/components/co-accordion/co-accordion.css +1 -1
- package/dist/collection/components/co-accordion/co-accordion.js +3 -3
- package/dist/collection/components/co-autocomplete/co-autocomplete.js +1 -1
- package/dist/collection/components/co-avatar-group/co-avatar-group.js +1 -1
- package/dist/collection/components/co-calendar-month/co-calendar-month.css +4 -9
- package/dist/collection/components/co-carousel/co-carousel.css +5 -7
- package/dist/collection/components/co-checkbox/co-checkbox.css +17 -12
- package/dist/collection/components/co-checkbox-group/co-checkbox-group.css +2 -4
- package/dist/collection/components/co-checkbox-group/co-checkbox-group.js +1 -1
- package/dist/collection/components/co-chip/co-chip.css +1 -14
- package/dist/collection/components/co-color-area/co-color-area.js +2 -2
- package/dist/collection/components/co-color-picker/co-color-picker.css +4 -4
- package/dist/collection/components/co-color-slider/co-color-slider.js +1 -1
- package/dist/collection/components/co-column-picker/co-column-picker.css +2 -12
- package/dist/collection/components/co-combobox/co-combobox.js +1 -1
- package/dist/collection/components/co-command-search/co-command-search.css +1 -1
- package/dist/collection/components/co-command-search/co-command-search.js +1 -1
- package/dist/collection/components/co-data-table/co-data-table.css +10 -20
- package/dist/collection/components/co-data-table/co-data-table.js +1 -1
- package/dist/collection/components/co-data-table-pagination/co-data-table-pagination.css +3 -11
- package/dist/collection/components/co-date-range-picker/co-date-range-picker.js +2 -2
- package/dist/collection/components/co-document-editor/co-document-editor.css +7 -10
- package/dist/collection/components/co-document-editor/co-document-editor.js +5 -5
- package/dist/collection/components/co-emoji-picker/co-emoji-picker.css +3 -3
- package/dist/collection/components/co-empty-state/co-empty-state.css +4 -7
- package/dist/collection/components/co-file-field/co-file-field.css +1 -3
- package/dist/collection/components/co-icon-button/co-icon-button.css +1 -1
- package/dist/collection/components/co-list-item/co-list-item.css +0 -6
- package/dist/collection/components/co-menu/co-menu.css +2 -4
- package/dist/collection/components/co-menu-item/co-menu-item.css +5 -14
- package/dist/collection/components/co-menu-item/co-menu-item.js +7 -80
- package/dist/collection/components/co-option-list/co-option-list.css +4 -12
- package/dist/collection/components/co-option-list/co-option-list.js +3 -3
- package/dist/collection/components/co-phone-field/co-phone-field.css +3 -12
- package/dist/collection/components/co-phone-field/co-phone-field.js +1 -1
- package/dist/collection/components/co-popover/co-popover.js +1 -1
- package/dist/collection/components/co-progress-circle/co-progress-circle.css +1 -3
- package/dist/collection/components/co-radio/co-radio.css +1 -10
- package/dist/collection/components/co-radio-group/co-radio-group.js +1 -1
- package/dist/collection/components/co-rating/co-rating.css +1 -3
- package/dist/collection/components/co-ref-field/co-ref-field.js +4 -4
- package/dist/collection/components/co-segmented-bar/co-segmented-bar.js +1 -1
- package/dist/collection/components/co-select/co-select.css +47 -1
- package/dist/collection/components/co-select/co-select.js +26 -13
- package/dist/collection/components/co-sidebar-nav/co-sidebar-nav.js +1 -1
- package/dist/collection/components/co-skeleton/co-skeleton.css +3 -6
- package/dist/collection/components/co-slider/co-slider.css +1 -21
- package/dist/collection/components/co-switch/co-switch.css +4 -10
- package/dist/collection/components/co-tab/co-tab.css +8 -14
- package/dist/collection/components/co-tab-group/co-tab-group.css +9 -15
- package/dist/collection/components/co-tags-field/co-tags-field.css +2 -3
- package/dist/collection/components/co-toast/co-toast.js +2 -2
- package/dist/collection/components/co-toggle-button/co-toggle-button.css +4 -10
- package/dist/collection/components/co-transfer-list/co-transfer-list.css +2 -4
- package/dist/collection/components/co-transfer-list/co-transfer-list.js +1 -1
- package/dist/collection/components/co-tree-item/co-tree-item.css +1 -1
- package/dist/collection/components/co-tree-item/co-tree-item.js +2 -2
- package/dist/collection/components/co-video/co-video.css +3 -5
- package/dist/collection/utils/dragMove.js +1 -1
- package/dist/components/co-accordion.js +1 -1
- package/dist/components/co-action-bar.js +1 -1
- package/dist/components/co-autocomplete.js +1 -1
- package/dist/components/co-calendar-month.js +1 -1
- package/dist/components/co-calendar-timegrid.js +1 -1
- package/dist/components/co-carousel.js +1 -1
- package/dist/components/co-checkbox-group.js +1 -1
- package/dist/components/co-checkbox.js +1 -1
- package/dist/components/co-chip.js +1 -1
- package/dist/components/co-color-picker.js +1 -1
- package/dist/components/co-column-picker.js +1 -1
- package/dist/components/co-combobox.js +1 -1
- package/dist/components/co-command-search.js +1 -1
- package/dist/components/co-data-table-pagination.js +1 -1
- package/dist/components/co-data-table.js +1 -1
- package/dist/components/co-document-editor.js +1 -1
- package/dist/components/co-emoji-picker.js +1 -1
- package/dist/components/co-empty-state.js +1 -1
- package/dist/components/co-event-calendar.js +1 -1
- package/dist/components/co-file-field.js +1 -1
- package/dist/components/co-icon-button.js +1 -1
- package/dist/components/co-lightbox.js +1 -1
- package/dist/components/co-list-item.js +1 -1
- package/dist/components/co-menu-item.js +1 -1
- package/dist/components/co-menu.js +1 -1
- package/dist/components/co-modal.js +1 -1
- package/dist/components/co-option-list.js +1 -1
- package/dist/components/co-phone-field.js +1 -1
- package/dist/components/co-progress-circle.js +1 -1
- package/dist/components/co-radio.js +1 -1
- package/dist/components/co-rating.js +1 -1
- package/dist/components/co-ref-field.js +1 -1
- package/dist/components/co-select.js +1 -1
- package/dist/components/co-skeleton.js +1 -1
- package/dist/components/co-slider.js +1 -1
- package/dist/components/co-switch.js +1 -1
- package/dist/components/co-tab-group.js +1 -1
- package/dist/components/co-tab.js +1 -1
- package/dist/components/co-tags-field.js +1 -1
- package/dist/components/co-toggle-button.js +1 -1
- package/dist/components/co-transfer-list.js +1 -1
- package/dist/components/co-tree-item.js +1 -1
- package/dist/components/co-video.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/p-B70R6xWE.js +1 -0
- package/dist/components/p-BGNXvnDr.js +1 -0
- package/dist/components/{p-y-UE-CLu.js → p-BMyWdiVO.js} +1 -1
- package/dist/components/p-BSt2t5Fy.js +1 -0
- package/dist/components/p-BfDYq7JS.js +1 -0
- package/dist/components/{p-4nVctQq9.js → p-COCcx0DN.js} +1 -1
- package/dist/components/p-CwRoHnzq.js +1 -0
- package/dist/components/{p-Ct4MpUdn.js → p-DMW9TJ7Z.js} +1 -1
- package/dist/components/{p-CxXO0llX.js → p-R1W48hzW.js} +1 -1
- package/dist/components/{p-C1WNmtGN.js → p-rfvTj6cP.js} +1 -1
- package/dist/esm/co-accordion.entry.js +5 -5
- package/dist/esm/co-action-bar.entry.js +1 -1
- package/dist/esm/co-app-shell.entry.js +1 -1
- package/dist/esm/co-audio-player.entry.js +1 -1
- package/dist/esm/co-autocomplete.entry.js +2 -2
- package/dist/esm/co-avatar-group.entry.js +1 -1
- package/dist/esm/co-avatar.entry.js +1 -1
- package/dist/esm/co-badge.entry.js +1 -1
- package/dist/esm/co-bottom-sheet.entry.js +1 -1
- package/dist/esm/co-breadcrumb-item.entry.js +1 -1
- package/dist/esm/co-breadcrumb.entry.js +1 -1
- package/dist/esm/co-button-group.entry.js +1 -1
- package/dist/esm/co-button.entry.js +1 -1
- package/dist/esm/co-calendar-month_2.entry.js +2 -2
- package/dist/esm/co-calendar_3.entry.js +2 -2
- package/dist/esm/co-card.entry.js +1 -1
- package/dist/esm/co-carousel-item.entry.js +1 -1
- package/dist/esm/co-carousel.entry.js +2 -2
- package/dist/esm/co-checkbox-group.entry.js +2 -2
- package/dist/esm/co-checkbox.entry.js +2 -2
- package/dist/esm/co-chip_2.entry.js +6 -6
- package/dist/esm/co-color-area.entry.js +1 -1
- package/dist/esm/co-color-picker.entry.js +3 -3
- package/dist/esm/co-color-slider.entry.js +1 -1
- package/dist/esm/co-column-picker.entry.js +2 -2
- package/dist/esm/co-combobox.entry.js +2 -2
- package/dist/esm/co-command-search.entry.js +2 -2
- package/dist/esm/co-data-table-pagination.entry.js +2 -2
- package/dist/esm/co-data-table.entry.js +2 -2
- package/dist/esm/co-date-picker.entry.js +2 -2
- package/dist/esm/co-date-range-picker.entry.js +2 -2
- package/dist/esm/co-date-range.entry.js +1 -1
- package/dist/esm/co-date-time-picker.entry.js +2 -2
- package/dist/esm/co-document-editor.entry.js +2 -2
- package/dist/esm/co-drive-card.entry.js +1 -1
- package/dist/esm/co-drop-zone.entry.js +1 -1
- package/dist/esm/co-emoji-picker.entry.js +2 -2
- package/dist/esm/co-empty-state.entry.js +2 -2
- package/dist/esm/co-event-calendar.entry.js +1 -1
- package/dist/esm/co-event-popover.entry.js +1 -1
- package/dist/esm/co-fab.entry.js +1 -1
- package/dist/esm/co-file-field.entry.js +3 -3
- package/dist/esm/co-file-type-tile.entry.js +1 -1
- package/dist/esm/co-gradient-bar.entry.js +1 -1
- package/dist/esm/co-helper-text.entry.js +1 -1
- package/dist/esm/co-icon-button.entry.js +2 -2
- package/dist/esm/co-icon.entry.js +1 -1
- package/dist/esm/co-input.entry.js +2 -2
- package/dist/esm/co-json-field.entry.js +2 -2
- package/dist/esm/co-kbd_2.entry.js +1 -1
- package/dist/esm/co-lightbox.entry.js +1 -1
- package/dist/esm/co-list-footer.entry.js +1 -1
- package/dist/esm/co-list-item.entry.js +2 -2
- package/dist/esm/co-loader.entry.js +1 -1
- package/dist/esm/co-media-thumb.entry.js +1 -1
- package/dist/esm/co-menu-divider.entry.js +1 -1
- package/dist/esm/co-menu-item.entry.js +7 -40
- package/dist/esm/co-menu.entry.js +2 -2
- package/dist/esm/co-modal.entry.js +2 -2
- package/dist/esm/co-navbar.entry.js +1 -1
- package/dist/esm/co-number-field.entry.js +2 -2
- package/dist/esm/co-overlay.entry.js +1 -1
- package/dist/esm/co-page-header.entry.js +1 -1
- package/dist/esm/co-phone-field.entry.js +4 -4
- package/dist/esm/co-popover.entry.js +1 -1
- package/dist/esm/co-progress-bar.entry.js +1 -1
- package/dist/esm/co-progress-circle.entry.js +2 -2
- package/dist/esm/co-provider-logo_2.entry.js +2 -2
- package/dist/esm/co-radio-group.entry.js +1 -1
- package/dist/esm/co-radio.entry.js +2 -2
- package/dist/esm/co-rating.entry.js +2 -2
- package/dist/esm/co-ref-field.entry.js +3 -3
- package/dist/esm/co-rich-text-editor.entry.js +2 -2
- package/dist/esm/co-rich-text-toolbar.entry.js +1 -1
- package/dist/esm/co-rich-text-viewer.entry.js +1 -1
- package/dist/esm/co-row.entry.js +1 -1
- package/dist/esm/co-segmented-bar.entry.js +1 -1
- package/dist/esm/co-select.entry.js +27 -14
- package/dist/esm/co-separator.entry.js +1 -1
- package/dist/esm/co-sidebar-nav.entry.js +1 -1
- package/dist/esm/co-sidebar.entry.js +1 -1
- package/dist/esm/co-slider.entry.js +2 -2
- package/dist/esm/co-swatch-grid.entry.js +1 -1
- package/dist/esm/co-switch.entry.js +3 -3
- package/dist/esm/co-tab-group.entry.js +2 -2
- package/dist/esm/co-tab.entry.js +2 -2
- package/dist/esm/co-tags-field.entry.js +4 -4
- package/dist/esm/co-textarea.entry.js +2 -2
- package/dist/esm/co-tile.entry.js +1 -1
- package/dist/esm/co-time-field.entry.js +1 -1
- package/dist/esm/co-toast.entry.js +1 -1
- package/dist/esm/co-toggle-button-group.entry.js +1 -1
- package/dist/esm/co-toggle-button.entry.js +2 -2
- package/dist/esm/co-transfer-list.entry.js +2 -2
- package/dist/esm/co-tree-item.entry.js +2 -2
- package/dist/esm/co-video.entry.js +2 -2
- package/dist/esm/cobalt.js +3 -3
- package/dist/esm/{fieldChip-DFpKjAN_.js → fieldChip-B0N8z5W-.js} +1 -1
- package/dist/esm/{index-YRicbXh3.js → index-DJkaRtbb.js} +1 -1
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{requiredMark-BNC0WBDk.js → requiredMark-D5C5NzOE.js} +1 -1
- package/dist/types/components/co-menu-item/co-menu-item.d.ts +4 -30
- package/dist/types/components/co-select/co-select.d.ts +14 -4
- package/dist/types/components.d.ts +6 -28
- package/package.json +4 -4
- package/dist/cobalt/p-05f90173.entry.js +0 -1
- package/dist/cobalt/p-1318c5b9.entry.js +0 -1
- package/dist/cobalt/p-1361f386.entry.js +0 -1
- package/dist/cobalt/p-388f5a71.entry.js +0 -1
- package/dist/cobalt/p-5259c731.entry.js +0 -1
- package/dist/cobalt/p-71a289f9.entry.js +0 -1
- package/dist/cobalt/p-90823b79.entry.js +0 -1
- package/dist/cobalt/p-9a3e631e.entry.js +0 -1
- package/dist/cobalt/p-C_xES1w3.js +0 -1
- package/dist/cobalt/p-d127a7c4.entry.js +0 -1
- package/dist/cobalt/p-d1293695.entry.js +0 -1
- package/dist/cobalt/p-ddf6083f.entry.js +0 -1
- package/dist/cobalt/p-pl89alJ1.js +0 -1
- package/dist/components/p-BDk4ffI3.js +0 -1
- package/dist/components/p-BXDvRVSp.js +0 -1
- package/dist/components/p-CV7I0t8n.js +0 -1
- package/dist/components/p-CpwIdVV5.js +0 -1
- package/dist/components/p-DpnlSVX3.js +0 -1
|
@@ -20,31 +20,11 @@ export class CoMenuItem {
|
|
|
20
20
|
constructor() {
|
|
21
21
|
/** Tighter row metrics (32px instead of 36px). */
|
|
22
22
|
this.dense = false;
|
|
23
|
-
/** Marks the row as selected —
|
|
24
|
-
*
|
|
25
|
-
* `role="menuitemradio"` con `aria-checked="true"` (o `menuitemcheckbox` con
|
|
26
|
-
* `selectionMode="multiple"`). Used by selection menus (sort/type, columnas). */
|
|
23
|
+
/** Marks the row as selected — paints an at-rest gray-100 background. Used by
|
|
24
|
+
* single-select menus (sort/type). */
|
|
27
25
|
this.selected = false;
|
|
28
|
-
/**
|
|
29
|
-
*
|
|
30
|
-
* `aria-checked` sobre `role="menuitem"` es ARIA inválido, y sin este prop una
|
|
31
|
-
* fila no marcada de un menú de selección quedaría como `menuitem` pelado al lado
|
|
32
|
-
* de su hermana `menuitemradio`. Ponerlo en TODAS las filas del grupo. Implícito
|
|
33
|
-
* con `selected` o `leadingCheck` (que reserva el hueco en todas las filas). */
|
|
34
|
-
this.selectable = false;
|
|
35
|
-
/** Tipo de grupo de selección al que pertenece la fila (solo cuenta con
|
|
36
|
-
* `selectable`, `selected` o `leadingCheck`):
|
|
37
|
-
* - `'single'` (default) → `role="menuitemradio"`: una sola marcada (orden, tipo).
|
|
38
|
-
* - `'multiple'` → `role="menuitemcheckbox"`: varias marcadas a la vez (columnas
|
|
39
|
-
* visibles, filtros). Mismo look (peso 600 + check, sin relleno) y el mismo
|
|
40
|
-
* `aria-checked` true/false. Ponerlo en TODAS las filas del grupo. */
|
|
41
|
-
this.selectionMode = 'single';
|
|
42
|
-
/** Legacy/redundante: `selected` ya pinta el check al final y
|
|
43
|
-
* expone `aria-checked`. Solo, sin `selected`, `trailingCheck` dibuja un check
|
|
44
|
-
* DECORATIVO sobre un `role="menuitem"` sin `aria-checked` (el lector de
|
|
45
|
-
* pantalla no se entera de nada): para marcar la opción elegida usar
|
|
46
|
-
* `selected` (+ `selectable` en las filas no marcadas del grupo). Se conserva
|
|
47
|
-
* por compatibilidad; junto con `selected` no agrega un segundo check. */
|
|
26
|
+
/** Renders a trailing check (size 15) after the label. Pair with `selected`
|
|
27
|
+
* to mark the chosen option in a single-select menu. */
|
|
48
28
|
this.trailingCheck = false;
|
|
49
29
|
/** Reserva un check de 12px AL INICIO de la fila (antes del ícono/label).
|
|
50
30
|
* A diferencia de `trailingCheck` (que solo se monta si el prop está en
|
|
@@ -215,21 +195,8 @@ export class CoMenuItem {
|
|
|
215
195
|
// flipped submenu). The panel's own mouseenter cancels this on arrival.
|
|
216
196
|
this.closeTimer = window.setTimeout(() => { this.submenuOpen = false; }, 260);
|
|
217
197
|
}
|
|
218
|
-
/** La fila es marcable (pertenece a un grupo de selección, ver `selectable`).
|
|
219
|
-
* Un disparador de submenú nunca lo es. */
|
|
220
|
-
get isCheckable() {
|
|
221
|
-
return !this.hasSubmenu && (this.selectable || this.leadingCheck || this.selected);
|
|
222
|
-
}
|
|
223
|
-
/** Rol ARIA de la fila: `menuitemcheckbox` en un grupo de selección múltiple,
|
|
224
|
-
* `menuitemradio` en uno de selección única, `menuitem` en el resto. */
|
|
225
|
-
get role() {
|
|
226
|
-
if (!this.isCheckable)
|
|
227
|
-
return 'menuitem';
|
|
228
|
-
return this.selectionMode === 'multiple' ? 'menuitemcheckbox' : 'menuitemradio';
|
|
229
|
-
}
|
|
230
198
|
render() {
|
|
231
199
|
var _a;
|
|
232
|
-
const isCheckable = this.isCheckable;
|
|
233
200
|
const row = (h("button", { ref: (el) => (this.rowEl = el), class: {
|
|
234
201
|
'co-menu-item': true,
|
|
235
202
|
'co-menu-item--dense': this.dense,
|
|
@@ -238,7 +205,7 @@ export class CoMenuItem {
|
|
|
238
205
|
'co-menu-item--danger': this.variant === 'danger',
|
|
239
206
|
'co-menu-item--submenu': this.hasSubmenu,
|
|
240
207
|
'co-menu-item--submenu-open': this.hasSubmenu && this.submenuOpen,
|
|
241
|
-
}, type: "button", role:
|
|
208
|
+
}, type: "button", role: "menuitem", "aria-haspopup": this.hasSubmenu ? 'menu' : undefined, "aria-expanded": this.hasSubmenu ? (this.submenuOpen ? 'true' : 'false') : undefined, disabled: this.disabled, onClick: this.handleClick, onKeyDown: this.handleKeydown, onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave }, this.leadingCheck && (h("span", { class: "co-menu-item__check co-menu-item__check--leading" }, this.selected && h("co-icon", { name: "check", size: 12 }))), this.icon && (h("span", { class: "co-menu-item__icon" }, h("co-icon", { name: this.icon, size: (_a = this.iconSize) !== null && _a !== void 0 ? _a : 16 }))), h("span", { class: { 'co-menu-item__label': true, 'co-menu-item__label--stacked': !!this.caption } }, h("span", { class: "co-menu-item__label-main" }, this.label, h("slot", { name: "label" })), this.caption && h("span", { class: "co-menu-item__caption" }, this.caption)), this.trailingCheck && (h("span", { class: "co-menu-item__check" }, h("co-icon", { name: "check", size: 15 }))), h("span", { class: "co-menu-item__suffix" }, h("slot", { name: "suffix" }), this.hasSubmenu && h("co-icon", { name: "caret-right", size: 14 }))));
|
|
242
209
|
if (!this.hasSubmenu) {
|
|
243
210
|
// Leaf — the default slot is unused for leaves; ignore it.
|
|
244
211
|
return h("div", { class: "co-menu-item__wrap" }, row);
|
|
@@ -375,7 +342,7 @@ export class CoMenuItem {
|
|
|
375
342
|
"optional": false,
|
|
376
343
|
"docs": {
|
|
377
344
|
"tags": [],
|
|
378
|
-
"text": "Marks the row as selected \u2014
|
|
345
|
+
"text": "Marks the row as selected \u2014 paints an at-rest gray-100 background. Used by\nsingle-select menus (sort/type)."
|
|
379
346
|
},
|
|
380
347
|
"getter": false,
|
|
381
348
|
"setter": false,
|
|
@@ -383,46 +350,6 @@ export class CoMenuItem {
|
|
|
383
350
|
"attribute": "selected",
|
|
384
351
|
"defaultValue": "false"
|
|
385
352
|
},
|
|
386
|
-
"selectable": {
|
|
387
|
-
"type": "boolean",
|
|
388
|
-
"mutable": false,
|
|
389
|
-
"complexType": {
|
|
390
|
-
"original": "boolean",
|
|
391
|
-
"resolved": "boolean",
|
|
392
|
-
"references": {}
|
|
393
|
-
},
|
|
394
|
-
"required": false,
|
|
395
|
-
"optional": false,
|
|
396
|
-
"docs": {
|
|
397
|
-
"tags": [],
|
|
398
|
-
"text": "La fila pertenece a un men\u00FA de selecci\u00F3n \u00FAnica: se expone como\n`role=\"menuitemradio\"` con `aria-checked` true/false aunque NO est\u00E9 marcada.\n`aria-checked` sobre `role=\"menuitem\"` es ARIA inv\u00E1lido, y sin este prop una\nfila no marcada de un men\u00FA de selecci\u00F3n quedar\u00EDa como `menuitem` pelado al lado\nde su hermana `menuitemradio`. Ponerlo en TODAS las filas del grupo. Impl\u00EDcito\ncon `selected` o `leadingCheck` (que reserva el hueco en todas las filas)."
|
|
399
|
-
},
|
|
400
|
-
"getter": false,
|
|
401
|
-
"setter": false,
|
|
402
|
-
"reflect": false,
|
|
403
|
-
"attribute": "selectable",
|
|
404
|
-
"defaultValue": "false"
|
|
405
|
-
},
|
|
406
|
-
"selectionMode": {
|
|
407
|
-
"type": "string",
|
|
408
|
-
"mutable": false,
|
|
409
|
-
"complexType": {
|
|
410
|
-
"original": "'single' | 'multiple'",
|
|
411
|
-
"resolved": "\"multiple\" | \"single\"",
|
|
412
|
-
"references": {}
|
|
413
|
-
},
|
|
414
|
-
"required": false,
|
|
415
|
-
"optional": false,
|
|
416
|
-
"docs": {
|
|
417
|
-
"tags": [],
|
|
418
|
-
"text": "Tipo de grupo de selecci\u00F3n al que pertenece la fila (solo cuenta con\n`selectable`, `selected` o `leadingCheck`):\n- `'single'` (default) \u2192 `role=\"menuitemradio\"`: una sola marcada (orden, tipo).\n- `'multiple'` \u2192 `role=\"menuitemcheckbox\"`: varias marcadas a la vez (columnas\n visibles, filtros). Mismo look (peso 600 + check, sin relleno) y el mismo\n `aria-checked` true/false. Ponerlo en TODAS las filas del grupo."
|
|
419
|
-
},
|
|
420
|
-
"getter": false,
|
|
421
|
-
"setter": false,
|
|
422
|
-
"reflect": false,
|
|
423
|
-
"attribute": "selection-mode",
|
|
424
|
-
"defaultValue": "'single'"
|
|
425
|
-
},
|
|
426
353
|
"trailingCheck": {
|
|
427
354
|
"type": "boolean",
|
|
428
355
|
"mutable": false,
|
|
@@ -435,7 +362,7 @@ export class CoMenuItem {
|
|
|
435
362
|
"optional": false,
|
|
436
363
|
"docs": {
|
|
437
364
|
"tags": [],
|
|
438
|
-
"text": "
|
|
365
|
+
"text": "Renders a trailing check (size 15) after the label. Pair with `selected`\nto mark the chosen option in a single-select menu."
|
|
439
366
|
},
|
|
440
367
|
"getter": false,
|
|
441
368
|
"setter": false,
|
|
@@ -683,7 +683,6 @@ html[data-overlayscrollbars-viewport~=scrollbarHidden] > body::-webkit-scrollbar
|
|
|
683
683
|
* @prop --co-option-list-item-font-size: Tamaño del texto de la fila (default 14px).
|
|
684
684
|
* @prop --co-option-list-active-bg: Fondo de la fila activa (hover o teclado).
|
|
685
685
|
* @prop --co-option-list-active-ring: Sombra/anillo de la fila activa.
|
|
686
|
-
* @prop --co-option-list-selected-label-weight: Peso del rótulo de la fila seleccionada (default 600).
|
|
687
686
|
* @prop --co-option-list-label-weight: Peso del label de la fila.
|
|
688
687
|
* @prop --co-option-list-text-gap: Separación entre el título y la descripción de la fila.
|
|
689
688
|
* @prop --co-option-list-icon-tile-size: Lado del recuadro del ícono (default 22px).
|
|
@@ -874,21 +873,14 @@ html[data-overlayscrollbars-viewport~=scrollbarHidden] > body::-webkit-scrollbar
|
|
|
874
873
|
margin-bottom: var(--co-spacing-xxs, 2px);
|
|
875
874
|
}
|
|
876
875
|
|
|
877
|
-
/* Activa (hover o teclado) = gris liviano text-default 6 %, gira con el tema. Antes
|
|
878
|
-
surface-hover (negro 8 %), el mismo gris que el seleccionado: no se distinguían. */
|
|
879
876
|
.co-option-list__option--active {
|
|
880
|
-
background: var(--co-option-list-active-bg,
|
|
877
|
+
background: var(--co-option-list-active-bg, var(--co-semantic-surface-hover, rgba(31, 28, 27, 0.04)));
|
|
881
878
|
box-shadow: var(--co-option-list-active-ring, none);
|
|
882
879
|
}
|
|
883
880
|
|
|
884
|
-
/* Seleccionado =
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
fila seleccionada que además está activa muestra el gris del hover (--active) y en
|
|
888
|
-
reposo queda en el fondo de la fila (--co-option-list-item-bg).
|
|
889
|
-
Peso: `--co-option-list-selected-label-weight` (default 600). */
|
|
890
|
-
.co-option-list__option--selected .co-option-list__label {
|
|
891
|
-
font-weight: var(--co-option-list-selected-label-weight, 600);
|
|
881
|
+
/* Seleccionado = mismo gris-100 del Figma; el affordance (X/check) distingue. */
|
|
882
|
+
.co-option-list__option--selected {
|
|
883
|
+
background: var(--co-semantic-surface-hover, rgba(31, 28, 27, 0.04));
|
|
892
884
|
}
|
|
893
885
|
|
|
894
886
|
.co-option-list__option--disabled {
|
|
@@ -770,7 +770,7 @@ export class CoOptionList {
|
|
|
770
770
|
'co-option-list__option--lifted': !this.listDragActive && this.dragKey === item._id,
|
|
771
771
|
'co-option-list__option--drop-before': this.listDragActive && this.overKey === item._id && !this.dropAfter,
|
|
772
772
|
'co-option-list__option--drop-after': this.listDragActive && this.overKey === item._id && this.dropAfter,
|
|
773
|
-
}, key: item._id, id: `co-optlist-${index}`, "data-id": item._id, role: "option", "aria-selected": isSelected ? 'true' : 'false', "aria-disabled": item.disabled ? 'true' : 'false', draggable: listDragRow && this.armedKey === item._id, onClick: () => !item.disabled && this.pick(item), onMouseEnter: () => { this.activeIndex = index; }, onDragStart: listDragRow ? (e) => this.handleRowDragStart(e, item._id) : undefined, onDragOver: listDragRow ? (e) => this.handleRowDragOver(e, item._id) : undefined, onDrop: listDragRow ? (e) => this.handleRowDrop(e, item._id) : undefined, onDragEnd: listDragRow ? this.handleRowDragEnd : undefined, onDragLeave: listDragRow ? (e) => this.handleRowDragLeave(e, item._id) : undefined }, (ptrDragRow || listDragRow) && (h("span", { class: "co-option-list__drag-handle", part: "drag-handle", title: "Drag to reorder", onMouseDown: listDragRow ? () => (this.armedKey = item._id) : undefined, onPointerDown: ptrDragRow ? (e) => this.startPointerDrag(e, item._id) : undefined, onClick: (e) => e.stopPropagation() }, h("co-icon", { name: "dots-six-vertical", size: 16 }))), 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 && this.suffixAlign !== 'end' && h("span", { class: "co-option-list__suffix" }, "- ", item.suffix), item.badge && this.renderBadge(item.badge)), item.description && h("span", { class: "co-option-list__desc" }, item.description)), item.suffix && this.suffixAlign === 'end' && h("span", { class: "co-option-list__suffix co-option-list__suffix--end" }, item.suffix), this.pinnable && (h("button", { class: { 'co-option-list__pin': true, 'co-option-list__pin--active': !!item.pinned }, type: "button", tabIndex: -1, "aria-label": item.pinned ? `Unpin ${item.label}` : `Pin ${item.label}`, "aria-pressed": item.pinned ? 'true' : 'false', onClick: (e) => { e.stopPropagation(); this.coPinToggle.emit({ item }); } }, h("co-icon", { name: "push-pin", size: 16, weight: item.pinned ? 'fill' : 'regular' }))), 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.deselectItem(item); } }, h("co-icon", { name: "x-circle", size: 16, weight: "fill" }))), isSelected && !
|
|
773
|
+
}, key: item._id, id: `co-optlist-${index}`, "data-id": item._id, role: "option", "aria-selected": isSelected ? 'true' : 'false', "aria-disabled": item.disabled ? 'true' : 'false', draggable: listDragRow && this.armedKey === item._id, onClick: () => !item.disabled && this.pick(item), onMouseEnter: () => { this.activeIndex = index; }, onDragStart: listDragRow ? (e) => this.handleRowDragStart(e, item._id) : undefined, onDragOver: listDragRow ? (e) => this.handleRowDragOver(e, item._id) : undefined, onDrop: listDragRow ? (e) => this.handleRowDrop(e, item._id) : undefined, onDragEnd: listDragRow ? this.handleRowDragEnd : undefined, onDragLeave: listDragRow ? (e) => this.handleRowDragLeave(e, item._id) : undefined }, (ptrDragRow || listDragRow) && (h("span", { class: "co-option-list__drag-handle", part: "drag-handle", title: "Drag to reorder", onMouseDown: listDragRow ? () => (this.armedKey = item._id) : undefined, onPointerDown: ptrDragRow ? (e) => this.startPointerDrag(e, item._id) : undefined, onClick: (e) => e.stopPropagation() }, h("co-icon", { name: "dots-six-vertical", size: 16 }))), 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 && this.suffixAlign !== 'end' && h("span", { class: "co-option-list__suffix" }, "- ", item.suffix), item.badge && this.renderBadge(item.badge)), item.description && h("span", { class: "co-option-list__desc" }, item.description)), item.suffix && this.suffixAlign === 'end' && h("span", { class: "co-option-list__suffix co-option-list__suffix--end" }, item.suffix), this.pinnable && (h("button", { class: { 'co-option-list__pin': true, 'co-option-list__pin--active': !!item.pinned }, type: "button", tabIndex: -1, "aria-label": item.pinned ? `Unpin ${item.label}` : `Pin ${item.label}`, "aria-pressed": item.pinned ? 'true' : 'false', onClick: (e) => { e.stopPropagation(); this.coPinToggle.emit({ item }); } }, h("co-icon", { name: "push-pin", size: 16, weight: item.pinned ? 'fill' : 'regular' }))), 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.deselectItem(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" }))));
|
|
774
774
|
}
|
|
775
775
|
renderVirtual(items, selectedIds) {
|
|
776
776
|
const { totalHeight, startIdx, endIdx, offsetY } = virtualSlice(this.scrollTop, items.length);
|
|
@@ -781,11 +781,11 @@ export class CoOptionList {
|
|
|
781
781
|
const selectedIds = this.selectedIds;
|
|
782
782
|
const { hasMore, remaining } = deriveMore(this.parsedItems.length, this.total, this.hasMore);
|
|
783
783
|
const showClear = !!this.clearOptionLabel && selectedIds.length > 0;
|
|
784
|
-
return (h("div", { key: '
|
|
784
|
+
return (h("div", { key: 'c73f8d143c1f655f4d9145ef0a2a4d3219a43e49', class: "co-option-list", onKeyDown: this.onRootKeyDown }, this.searchable && (h("div", { key: 'bd5dfa8848da20fd66293acdd87568ca0e2fbebc', class: "co-option-list__search", part: "search" }, h("co-icon", { key: '0c5aeacb9fbde646862a6359f2c58a75f31a6100', name: "magnifying-glass", size: 16 }), h("input", { key: '0a573789feff4b3cd31610ee720ddfaa2b859ea4', 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("slot", { key: '650e79a9b2ba218f7fcd324335505fda29a87b71', name: "header" }), h("div", { key: '1f2baa6b0b6b728cd0eeab5ae555847d397351ac', 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: '33f7230c30c06ef31ac83fb5febba040f0d88d6e', class: "co-option-list__inner" }, showClear && (h("button", { key: '9934486c64862d94ee8ed6e3af603710edd2a5c6', class: "co-option-list__clear-row", type: "button", onClick: () => this.coClearSelection.emit() }, h("co-icon", { key: 'f0abd016e20d238345c0c2d40436220631a1403a', name: "x-circle", size: 14 }), h("span", { key: '9090f327d77767db03792e13bd4bfcdd4abcffcd' }, this.clearOptionLabel))), this.loading && items.length === 0 && (h("div", { key: '25b13f063b888d6d95b24a2741e1ae3e070d60ab', class: "co-option-list__loading" }, h("co-loader", { key: 'dc56d924da21b4029fc81b454672a2ded44f14ef', size: "sm" }))), !this.loading && items.length === 0 && (h("div", { key: '492e6902e2849a83ac0529fe922aa43814db2c40', class: "co-option-list__empty" }, h("co-icon", { key: '2c9d91ddaad0b52e0dbff654871ce147e0617f59', name: "magnifying-glass", size: 20 }), h("span", { key: '76eacb323225035d650f1ebb6e17507035d02ac4' }, this.emptyMessage))), items.length > 0 && this.virtual
|
|
785
785
|
? this.renderVirtual(items, selectedIds)
|
|
786
786
|
: buildRows(items).map((row) => row.kind === 'header'
|
|
787
787
|
? h("div", { class: "co-option-list__group", role: "presentation" }, row.label)
|
|
788
|
-
: this.renderRow(row.item, row.index, selectedIds)), this.loading && items.length > 0 && (h("div", { key: '
|
|
788
|
+
: this.renderRow(row.item, row.index, selectedIds)), this.loading && items.length > 0 && (h("div", { key: 'e86f2a2157e84d9e9a414f6bbf3d20235bc75829', class: "co-option-list__loading-more" }, h("co-loader", { key: 'de4c472413852c7fc3e4c6fb088632c79ce518d6', size: "sm" }))), !this.loading && hasMore && remaining > 0 && (h("div", { key: '12616fbfb51d2c656937e22907d5152f3f7ea210', class: "co-option-list__more" }, remaining, " more results")))), h("slot", { key: 'd73683805a28e15b2a126867fd7947869ee649f6', name: "footer" })));
|
|
789
789
|
}
|
|
790
790
|
static get is() { return "co-option-list"; }
|
|
791
791
|
static get encapsulation() { return "shadow"; }
|
|
@@ -213,22 +213,13 @@
|
|
|
213
213
|
text-align: left;
|
|
214
214
|
}
|
|
215
215
|
|
|
216
|
-
/* Opción = patrón #5 B de la auditoría de contraste (2026-10-05), el mismo de co-option-list:
|
|
217
|
-
hover = gris liviano text-default 6 % (gira con el tema); seleccionada = SIN relleno, rótulo
|
|
218
|
-
en 600 + check decorativo al final (aria-hidden; el estado lo expone aria-selected de la
|
|
219
|
-
fila). Antes la seleccionada pintaba un tinte y el hover surface-hover (8 %): el hover pesaba
|
|
220
|
-
más que la selección y no se distinguían. */
|
|
221
216
|
.co-phone-field__option:hover {
|
|
222
|
-
background:
|
|
217
|
+
background: var(--co-semantic-surface-hover);
|
|
223
218
|
}
|
|
224
219
|
|
|
225
220
|
.co-phone-field__option--selected {
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
.co-phone-field__option-check {
|
|
230
|
-
flex-shrink: 0;
|
|
231
|
-
color: var(--co-semantic-text-default);
|
|
221
|
+
background: color-mix(in srgb, var(--co-semantic-border-focus) 8%, transparent);
|
|
222
|
+
font-weight: 500;
|
|
232
223
|
}
|
|
233
224
|
|
|
234
225
|
.co-phone-field__option-flag {
|
|
@@ -175,7 +175,7 @@ export class CoPhoneField {
|
|
|
175
175
|
render() {
|
|
176
176
|
const entry = this.selectedEntry;
|
|
177
177
|
const statusClass = this.status !== 'default' ? `co-phone-field--${this.status}` : '';
|
|
178
|
-
return (h("div", { key: '8c960a1db186c84921d1062f3a81dac55d36be90', class: `co-phone-field co-phone-field--${this.size} ${statusClass} ${this.disabled ? 'co-phone-field--disabled' : ''}` }, this.label && (h("label", { key: 'c19628c6057b6314a7dca1aeac5c8e201d2c20c0', class: "co-phone-field__label" }, this.label, h(RequiredMark, { key: 'e070c5a69e9064d61ca6fb6fd1d5fca6944f8a36', required: this.required }))), h("div", { key: '69e52a3489ddc693271a2eff7b63e7a3f6ffee9b', class: "co-phone-field__container" }, h("button", { key: '1b0998e28fb0f0aa0ab64443adceea96355483e5', type: "button", class: "co-phone-field__selector", disabled: this.disabled, onClick: () => this.handleToggleDropdown(), "aria-expanded": String(this.isOpen), "aria-haspopup": "listbox", "aria-label": entry ? `${this.strings.selectCountry}: ${entry.name} ${entry.dialCode}` : this.strings.selectCountry }, entry ? (h("img", { class: "co-phone-field__flag", src: `https://flagcdn.com/w40/${entry.iso2.toLowerCase()}.png`, alt: "", decoding: "async", onError: this.hideBrokenFlag })) : (h("co-icon", { name: "phone", size: 16 })), h("span", { key: '5f2f173697b6e659b729547eb44372efbdebf0de', class: "co-phone-field__dial-code" }, entry ? entry.dialCode : ''), h("span", { key: 'd0ad9d09fd06c9ab4385b6b10fd335429d2b2782', class: "co-phone-field__chevron" }, h("co-icon", { key: '6ef136322e4fcada10e924d25beff2ff3699a0d9', name: "caret-down", size: 14 }))), h("input", { key: 'b5d77691bbd9638a3868e82a243c1106e3167384', class: "co-phone-field__input", type: "tel", placeholder: this.placeholder, value: this.numberPart, disabled: this.disabled, onInput: (e) => this.handleNumberInput(e) })), this.isOpen && (h("div", { key: 'c9310ebc76fb76f4ad7b3f460199131e89238129', class: "co-phone-field__dropdown", role: "listbox" }, h("div", { key: '2b103381c88331f86dd0cd941b5d7dc102d60cfa', class: "co-phone-field__search" }, h("input", { key: '3152d3842b4db1f2f75b36c8c16933a115af75b5', class: "co-phone-field__search-input", type: "text", placeholder: this.strings.searchPlaceholder, value: this.searchQuery, onInput: (e) => this.handleSearchInput(e), autoFocus: true })), h("div", { key: '0b5fdd035243c03563e956b7c6e8b189e3fac976', class: "co-phone-field__options" }, this.filteredCountries.map((d) => (h("button", { type: "button", key: d.iso2, class: `co-phone-field__option ${d.iso2 === this.selectedIso2 ? 'co-phone-field__option--selected' : ''}`, role: "option", "aria-selected": d.iso2 === this.selectedIso2 ? 'true' : 'false', onClick: () => this.handleCountrySelect(d) }, h("img", { class: "co-phone-field__option-flag", src: `https://flagcdn.com/w40/${d.iso2.toLowerCase()}.png`, alt: "", loading: "lazy", decoding: "async", onError: this.hideBrokenFlag }), h("span", { class: "co-phone-field__option-name" }, this.renderName(d.name)), h("span", { class: "co-phone-field__option-code" }, d.dialCode)
|
|
178
|
+
return (h("div", { key: '8c960a1db186c84921d1062f3a81dac55d36be90', class: `co-phone-field co-phone-field--${this.size} ${statusClass} ${this.disabled ? 'co-phone-field--disabled' : ''}` }, this.label && (h("label", { key: 'c19628c6057b6314a7dca1aeac5c8e201d2c20c0', class: "co-phone-field__label" }, this.label, h(RequiredMark, { key: 'e070c5a69e9064d61ca6fb6fd1d5fca6944f8a36', required: this.required }))), h("div", { key: '69e52a3489ddc693271a2eff7b63e7a3f6ffee9b', class: "co-phone-field__container" }, h("button", { key: '1b0998e28fb0f0aa0ab64443adceea96355483e5', type: "button", class: "co-phone-field__selector", disabled: this.disabled, onClick: () => this.handleToggleDropdown(), "aria-expanded": String(this.isOpen), "aria-haspopup": "listbox", "aria-label": entry ? `${this.strings.selectCountry}: ${entry.name} ${entry.dialCode}` : this.strings.selectCountry }, entry ? (h("img", { class: "co-phone-field__flag", src: `https://flagcdn.com/w40/${entry.iso2.toLowerCase()}.png`, alt: "", decoding: "async", onError: this.hideBrokenFlag })) : (h("co-icon", { name: "phone", size: 16 })), h("span", { key: '5f2f173697b6e659b729547eb44372efbdebf0de', class: "co-phone-field__dial-code" }, entry ? entry.dialCode : ''), h("span", { key: 'd0ad9d09fd06c9ab4385b6b10fd335429d2b2782', class: "co-phone-field__chevron" }, h("co-icon", { key: '6ef136322e4fcada10e924d25beff2ff3699a0d9', name: "caret-down", size: 14 }))), h("input", { key: 'b5d77691bbd9638a3868e82a243c1106e3167384', class: "co-phone-field__input", type: "tel", placeholder: this.placeholder, value: this.numberPart, disabled: this.disabled, onInput: (e) => this.handleNumberInput(e) })), this.isOpen && (h("div", { key: 'c9310ebc76fb76f4ad7b3f460199131e89238129', class: "co-phone-field__dropdown", role: "listbox" }, h("div", { key: '2b103381c88331f86dd0cd941b5d7dc102d60cfa', class: "co-phone-field__search" }, h("input", { key: '3152d3842b4db1f2f75b36c8c16933a115af75b5', class: "co-phone-field__search-input", type: "text", placeholder: this.strings.searchPlaceholder, value: this.searchQuery, onInput: (e) => this.handleSearchInput(e), autoFocus: true })), h("div", { key: '0b5fdd035243c03563e956b7c6e8b189e3fac976', class: "co-phone-field__options" }, this.filteredCountries.map((d) => (h("button", { type: "button", key: d.iso2, class: `co-phone-field__option ${d.iso2 === this.selectedIso2 ? 'co-phone-field__option--selected' : ''}`, role: "option", "aria-selected": d.iso2 === this.selectedIso2 ? 'true' : 'false', onClick: () => this.handleCountrySelect(d) }, h("img", { class: "co-phone-field__option-flag", src: `https://flagcdn.com/w40/${d.iso2.toLowerCase()}.png`, alt: "", loading: "lazy", decoding: "async", onError: this.hideBrokenFlag }), h("span", { class: "co-phone-field__option-name" }, this.renderName(d.name)), h("span", { class: "co-phone-field__option-code" }, d.dialCode))))))), this.helperText && (h("div", { key: '49841fcec083d7d619c699cdc5a236dcdf5cb214', class: "co-phone-field__helper" }, this.statusIcon && (h("co-icon", { key: 'c0e2d6641adcd3bea675e1b78a6d982f75ef56df', name: this.statusIcon, size: 14, weight: "fill", class: "co-phone-field__helper-icon" })), h("span", { key: '305562aeba6e0169b0f1b23f504c5f686413cb79', class: "co-phone-field__helper-text" }, this.helperText)))));
|
|
179
179
|
}
|
|
180
180
|
static get is() { return "co-phone-field"; }
|
|
181
181
|
static get encapsulation() { return "shadow"; }
|
|
@@ -476,7 +476,7 @@ export class CoPopover {
|
|
|
476
476
|
"references": {
|
|
477
477
|
"PopoverPlacement": {
|
|
478
478
|
"location": "local",
|
|
479
|
-
"path": "/Users/agox/
|
|
479
|
+
"path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-popover/co-popover.tsx",
|
|
480
480
|
"id": "src/components/co-popover/co-popover.tsx::PopoverPlacement"
|
|
481
481
|
}
|
|
482
482
|
}
|
|
@@ -4,9 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
.co-progress-circle {
|
|
6
6
|
--_color: var(--co-semantic-status-info, #2563eb);
|
|
7
|
-
|
|
8
|
-
primitiva negro-8 se perdía en oscuro (1,01:1 → 1,18:1). */
|
|
9
|
-
--_track: var(--co-semantic-surface-hover, rgba(0, 0, 0, 0.08));
|
|
7
|
+
--_track: var(--co-color-opacity-negro-8, rgba(0, 0, 0, 0.08));
|
|
10
8
|
|
|
11
9
|
position: relative;
|
|
12
10
|
display: inline-flex;
|
|
@@ -52,13 +52,6 @@
|
|
|
52
52
|
overflow: hidden;
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
/* Foco por teclado (H1, auditoría a11y 2026-10-05): trazo border-focus (tinta sólida desde
|
|
56
|
-
#2D/#3D), no el halo focus-ring. box-shadow y no outline: el propio overflow:hidden no
|
|
57
|
-
recorta la sombra del elemento. Molde co-checkbox. */
|
|
58
|
-
.co-radio:focus-visible {
|
|
59
|
-
box-shadow: 0 0 0 2px var(--co-semantic-border-focus);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
55
|
/* ─── SIZES ─────────────────────────────────────────────────── */
|
|
63
56
|
.co-radio--small {
|
|
64
57
|
width: 16px;
|
|
@@ -71,10 +64,8 @@
|
|
|
71
64
|
}
|
|
72
65
|
|
|
73
66
|
/* ─── UNCHECKED ─────────────────────────────────────────────── */
|
|
74
|
-
/* #3D (auditoría de contraste 2026-10-05): contorno border-field, el mismo de los campos
|
|
75
|
-
(≥3:1). border-default (16%) quedaba a ~1,3:1. */
|
|
76
67
|
.co-radio:not(.co-radio--checked) {
|
|
77
|
-
border-color: var(--co-semantic-border-
|
|
68
|
+
border-color: var(--co-semantic-border-default);
|
|
78
69
|
}
|
|
79
70
|
|
|
80
71
|
/* ─── CHECKED ───────────────────────────────────────────────── */
|
|
@@ -224,7 +224,7 @@ export class CoRadioGroup {
|
|
|
224
224
|
"references": {
|
|
225
225
|
"RadioOption": {
|
|
226
226
|
"location": "local",
|
|
227
|
-
"path": "/Users/agox/
|
|
227
|
+
"path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-radio-group/co-radio-group.tsx",
|
|
228
228
|
"id": "src/components/co-radio-group/co-radio-group.tsx::RadioOption"
|
|
229
229
|
}
|
|
230
230
|
}
|
|
@@ -39,9 +39,7 @@
|
|
|
39
39
|
border: none;
|
|
40
40
|
background: transparent;
|
|
41
41
|
cursor: pointer;
|
|
42
|
-
|
|
43
|
-
la página. text-muted: 5,33 claro / 5,58 oscuro. */
|
|
44
|
-
color: var(--co-semantic-text-muted);
|
|
42
|
+
color: var(--co-semantic-border-subtle);
|
|
45
43
|
transition: color var(--co-motion-duration-fast) var(--co-motion-ease-out), transform var(--co-motion-duration-fast) var(--co-motion-ease-out);
|
|
46
44
|
}
|
|
47
45
|
|
|
@@ -1356,7 +1356,7 @@ export class CoRefField {
|
|
|
1356
1356
|
"references": {
|
|
1357
1357
|
"RefFieldOption": {
|
|
1358
1358
|
"location": "local",
|
|
1359
|
-
"path": "/Users/agox/
|
|
1359
|
+
"path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-ref-field/co-ref-field.tsx",
|
|
1360
1360
|
"id": "src/components/co-ref-field/co-ref-field.tsx::RefFieldOption"
|
|
1361
1361
|
}
|
|
1362
1362
|
}
|
|
@@ -1497,7 +1497,7 @@ export class CoRefField {
|
|
|
1497
1497
|
"references": {
|
|
1498
1498
|
"RefFieldOption": {
|
|
1499
1499
|
"location": "local",
|
|
1500
|
-
"path": "/Users/agox/
|
|
1500
|
+
"path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-ref-field/co-ref-field.tsx",
|
|
1501
1501
|
"id": "src/components/co-ref-field/co-ref-field.tsx::RefFieldOption"
|
|
1502
1502
|
}
|
|
1503
1503
|
}
|
|
@@ -1518,7 +1518,7 @@ export class CoRefField {
|
|
|
1518
1518
|
"references": {
|
|
1519
1519
|
"RefFieldOption": {
|
|
1520
1520
|
"location": "local",
|
|
1521
|
-
"path": "/Users/agox/
|
|
1521
|
+
"path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-ref-field/co-ref-field.tsx",
|
|
1522
1522
|
"id": "src/components/co-ref-field/co-ref-field.tsx::RefFieldOption"
|
|
1523
1523
|
}
|
|
1524
1524
|
}
|
|
@@ -1557,7 +1557,7 @@ export class CoRefField {
|
|
|
1557
1557
|
},
|
|
1558
1558
|
"RefFieldOption": {
|
|
1559
1559
|
"location": "local",
|
|
1560
|
-
"path": "/Users/agox/
|
|
1560
|
+
"path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-ref-field/co-ref-field.tsx",
|
|
1561
1561
|
"id": "src/components/co-ref-field/co-ref-field.tsx::RefFieldOption"
|
|
1562
1562
|
}
|
|
1563
1563
|
},
|
|
@@ -160,7 +160,7 @@ export class CoSegmentedBar {
|
|
|
160
160
|
"references": {
|
|
161
161
|
"CoSegment": {
|
|
162
162
|
"location": "local",
|
|
163
|
-
"path": "/Users/agox/
|
|
163
|
+
"path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-segmented-bar/co-segmented-bar.tsx",
|
|
164
164
|
"id": "src/components/co-segmented-bar/co-segmented-bar.tsx::CoSegment"
|
|
165
165
|
}
|
|
166
166
|
}
|
|
@@ -894,6 +894,51 @@ html[data-overlayscrollbars-viewport~=scrollbarHidden] > body::-webkit-scrollbar
|
|
|
894
894
|
box-shadow: 0 0 0 1px var(--co-semantic-border-subtle);
|
|
895
895
|
}
|
|
896
896
|
|
|
897
|
+
/* Logo (`logo`): marca CUADRADA de una opción —proveedor, integración— en el trigger
|
|
898
|
+
(seleccionada) y en las filas. A diferencia de la bandera no se recorta ni se
|
|
899
|
+
enmarca: `contain`, sin radio ni aro (el aro es del rectángulo de una bandera). */
|
|
900
|
+
.co-select__logo,
|
|
901
|
+
.co-select__option-logo {
|
|
902
|
+
flex-shrink: 0;
|
|
903
|
+
width: 18px;
|
|
904
|
+
height: 18px;
|
|
905
|
+
object-fit: contain;
|
|
906
|
+
}
|
|
907
|
+
|
|
908
|
+
/* `logoMono`: marca de UNA tinta (OpenAI, Apple…) pintada con la tinta del texto por
|
|
909
|
+
máscara, así sigue al tema — un <img> no hereda `color` y la marca negra desaparecía
|
|
910
|
+
en oscuro. La URL va inline (`mask-image`, desde el tsx); lo demás vive acá. */
|
|
911
|
+
.co-select__logo--mono,
|
|
912
|
+
.co-select__option-logo--mono {
|
|
913
|
+
color: var(--co-semantic-text-default);
|
|
914
|
+
background-color: currentColor;
|
|
915
|
+
-webkit-mask-position: center;
|
|
916
|
+
mask-position: center;
|
|
917
|
+
-webkit-mask-size: contain;
|
|
918
|
+
mask-size: contain;
|
|
919
|
+
-webkit-mask-repeat: no-repeat;
|
|
920
|
+
mask-repeat: no-repeat;
|
|
921
|
+
}
|
|
922
|
+
|
|
923
|
+
.co-select--disabled .co-select__logo--mono {
|
|
924
|
+
color: var(--co-semantic-text-disabled);
|
|
925
|
+
}
|
|
926
|
+
|
|
927
|
+
/* Alto contraste de Windows (forced-colors): el sistema fuerza `background-color` a Canvas
|
|
928
|
+
—el color del fondo— y la máscara no dejaba ni un píxel (medido en Chromium). La marca va
|
|
929
|
+
en la tinta del texto del sistema, y en GrayText con el trigger deshabilitado. */
|
|
930
|
+
@media (forced-colors: active) {
|
|
931
|
+
.co-select__logo--mono,
|
|
932
|
+
.co-select__option-logo--mono {
|
|
933
|
+
forced-color-adjust: none;
|
|
934
|
+
background-color: CanvasText;
|
|
935
|
+
}
|
|
936
|
+
|
|
937
|
+
.co-select--disabled .co-select__logo--mono {
|
|
938
|
+
background-color: GrayText;
|
|
939
|
+
}
|
|
940
|
+
}
|
|
941
|
+
|
|
897
942
|
.co-select__icon {
|
|
898
943
|
flex-shrink: 0;
|
|
899
944
|
color: var(--co-semantic-text-muted);
|
|
@@ -1280,7 +1325,8 @@ html[data-overlayscrollbars-viewport~=scrollbarHidden] > body::-webkit-scrollbar
|
|
|
1280
1325
|
border-radius: var(--co-border-radius-xs, 8px);
|
|
1281
1326
|
}
|
|
1282
1327
|
|
|
1283
|
-
.co-select__dropdown--dark .co-select__option-label
|
|
1328
|
+
.co-select__dropdown--dark .co-select__option-label,
|
|
1329
|
+
.co-select__dropdown--dark .co-select__option-logo--mono {
|
|
1284
1330
|
color: var(--co-semantic-text-inverse);
|
|
1285
1331
|
}
|
|
1286
1332
|
|
|
@@ -3,6 +3,8 @@ import { RequiredMark } from "../../utils/requiredMark";
|
|
|
3
3
|
import { OverlayScrollbars } from "overlayscrollbars";
|
|
4
4
|
import { highlightSegments, rankByMatch } from "../../utils/normalizeText";
|
|
5
5
|
import { LEGACY_ROW_METRICS, resolveRowMetrics, scrollTopToReveal, virtualSlice } from "./virtualRows";
|
|
6
|
+
/** `url("…")` safe for any URL, data-URIs included: escapes `\` and `"`, drops line breaks. */
|
|
7
|
+
const cssUrl = (src) => `url("${src.replace(/[\\"]/g, '\\$&').replace(/[\r\n]/g, '')}")`;
|
|
6
8
|
/**
|
|
7
9
|
* Selector desplegable de una o varias opciones de una lista conocida, con
|
|
8
10
|
* búsqueda opcional del lado del cliente y lista virtualizada. Para opciones que
|
|
@@ -23,8 +25,8 @@ export class CoSelect {
|
|
|
23
25
|
this.layout = 'vertical';
|
|
24
26
|
/** Estado de validación: pinta el borde y el `helperText` con el color del estado. */
|
|
25
27
|
this.status = 'default';
|
|
26
|
-
/** Opciones: array de `{ value, label, icon?, image?, disabled? }`, array de
|
|
27
|
-
* (value = label), o ese mismo array como JSON desde HTML. */
|
|
28
|
+
/** Opciones: array de `{ value, label, icon?, image?, logo?, logoMono?, disabled? }`, array de
|
|
29
|
+
* strings (value = label), o ese mismo array como JSON desde HTML. */
|
|
28
30
|
this.options = '[]';
|
|
29
31
|
/** Selección: el `value` de la opción en single; en `multiple`, array o JSON array.
|
|
30
32
|
* `''` significa «sin selección» (una opción con `value: ''` no se puede marcar).
|
|
@@ -356,7 +358,7 @@ export class CoSelect {
|
|
|
356
358
|
get hasValue() {
|
|
357
359
|
return this.selectedValues.length > 0;
|
|
358
360
|
}
|
|
359
|
-
/** The selected option in single mode (used to show its flag/image in the trigger). */
|
|
361
|
+
/** The selected option in single mode (used to show its flag/image or logo in the trigger). */
|
|
360
362
|
get selectedOption() {
|
|
361
363
|
if (this.multiple)
|
|
362
364
|
return undefined;
|
|
@@ -529,6 +531,16 @@ export class CoSelect {
|
|
|
529
531
|
return label;
|
|
530
532
|
return segs.map((s) => (s.match ? h("span", { class: "co-select__match" }, s.text) : s.text));
|
|
531
533
|
}
|
|
534
|
+
/** `logo` de una opción: `<img>` a color o, con `logoMono`, una máscara que pinta la tinta del
|
|
535
|
+
* texto (la URL va inline; tamaño, posición y tinta los pone el CSS). `lazy` solo en las filas,
|
|
536
|
+
* igual que la bandera: el trigger está a la vista. */
|
|
537
|
+
renderLogo(opt, cls, lazy) {
|
|
538
|
+
if (opt.logoMono) {
|
|
539
|
+
const src = cssUrl(opt.logo);
|
|
540
|
+
return h("span", { class: `${cls} ${cls}--mono`, style: { '-webkit-mask-image': src, 'mask-image': src }, "aria-hidden": "true" });
|
|
541
|
+
}
|
|
542
|
+
return h("img", { class: cls, src: opt.logo, alt: "", loading: lazy ? 'lazy' : undefined });
|
|
543
|
+
}
|
|
532
544
|
/** `?? LEGACY`: el harness de specs no siembra inicializadores de campo en
|
|
533
545
|
* todos los casos; en el build real `rowMetrics` siempre existe. */
|
|
534
546
|
get metrics() {
|
|
@@ -539,7 +551,7 @@ export class CoSelect {
|
|
|
539
551
|
return virtualSlice(items.length, this.scrollTop || 0, this.metrics, CoSelect.VIEWPORT_ITEMS, CoSelect.OVERSCAN);
|
|
540
552
|
}
|
|
541
553
|
render() {
|
|
542
|
-
var _a, _b;
|
|
554
|
+
var _a, _b, _c, _d;
|
|
543
555
|
const selected = this.selectedValues;
|
|
544
556
|
const options = this.filteredOptions;
|
|
545
557
|
// Se calcula UNA vez sobre `options` (no en un getter): el virtualizador
|
|
@@ -549,7 +561,7 @@ export class CoSelect {
|
|
|
549
561
|
const activeOptionId = this.isOpen && this.activeIndex >= 0 && this.activeIndex < options.length
|
|
550
562
|
? this.optionId(this.activeIndex)
|
|
551
563
|
: undefined;
|
|
552
|
-
return (h("div", { key: '
|
|
564
|
+
return (h("div", { key: '6003cc4133eddbbb6fced6d10a13c2771727df84', class: {
|
|
553
565
|
'co-select': true,
|
|
554
566
|
'co-select--open': this.isOpen,
|
|
555
567
|
'co-select--disabled': this.disabled,
|
|
@@ -558,22 +570,23 @@ export class CoSelect {
|
|
|
558
570
|
'co-select--flat': this.variant === 'flat',
|
|
559
571
|
'co-select--soft': this.variant === 'soft',
|
|
560
572
|
'co-select--inline-help': this.labelStyle === 'inline-help',
|
|
561
|
-
} }, (this.label || this.secondaryLabel) && (h("div", { key: '
|
|
573
|
+
} }, (this.label || this.secondaryLabel) && (h("div", { key: '43b148e8868b1641d025697da63e864760acad2f', class: "co-select__labels" }, this.label && h("label", { key: '13f801c1fd6bd360278c9d76b87eb1c4e3c17d96', class: "co-select__label" }, this.label, h(RequiredMark, { key: 'ab7fbf24df924590a2a2f3e8b5ec32d5bae8b2e3', required: this.required })), this.secondaryLabel && h("span", { key: '2346a6b8281d7661d055b7e662aa5f2dd12ce672', class: "co-select__secondary-label" }, this.secondaryLabel))), h("co-popover", { key: '33947720df541df7ef1db7ab299bb39479a3cf0d', open: this.isOpen, placement: "bottom-start", matchWidth: true, offset: 4,
|
|
562
574
|
// menuSurface="dark": el panel oscuro pinta su propio chrome (fondo
|
|
563
575
|
// negro, radio xs, sin borde ni sombra — Figma 4750:23242), así que
|
|
564
576
|
// el co-popover va `bare` para no sumar el borde hairline ni la
|
|
565
577
|
// sombra del panel claro (y cualquier --co-popover-shadow heredada
|
|
566
578
|
// del contexto). En "light" (default) no cambia nada.
|
|
567
|
-
bare: this.menuSurface === 'dark', onCoOpen: this.handlePopoverOpen, onCoClose: this.handlePopoverClose }, h("div", { key: '
|
|
579
|
+
bare: this.menuSurface === 'dark', onCoOpen: this.handlePopoverOpen, onCoClose: this.handlePopoverClose }, h("div", { key: 'ecf35c28e3f5a8986f55387617c1c105d2d9764e', slot: "trigger", class: "co-select__trigger", role: "combobox", "aria-expanded": this.isOpen ? 'true' : 'false', "aria-haspopup": "listbox", "aria-label": this.label || this.ariaLabelText || undefined, "aria-disabled": this.disabled ? 'true' : undefined, "aria-controls": CoSelect.LISTBOX_ID, "aria-activedescendant": activeOptionId, tabIndex: this.disabled ? -1 : 0, ref: (el) => (this.triggerEl = el), onClick: this.handleTriggerClick, onKeyDown: this.handleTriggerKeyDown }, this.iconLeft && (h("co-icon", { key: '28ae3b87205f06144b9ec3d5f52f99c4b9d2eaae', name: this.iconLeft, size: (_a = this.iconSize) !== null && _a !== void 0 ? _a : 16, class: "co-select__icon" })), ((_b = this.selectedOption) === null || _b === void 0 ? void 0 : _b.image) && (h("img", { key: '1cb0ebfd61ae1bd3ca702abd65c826a7a61cca7b', class: "co-select__flag", src: this.selectedOption.image, alt: "" })), !((_c = this.selectedOption) === null || _c === void 0 ? void 0 : _c.image) && ((_d = this.selectedOption) === null || _d === void 0 ? void 0 : _d.logo) &&
|
|
580
|
+
this.renderLogo(this.selectedOption, 'co-select__logo', false), this.multiple && this.hasValue ? (h("div", { class: "co-select__chips" }, this.selectedValues.map((v) => {
|
|
568
581
|
const opt = this.parsedOptions.find((o) => o.value === v);
|
|
569
582
|
return (h("span", { class: "co-select__chip", key: v }, h("span", { class: "co-select__chip-label" }, opt ? opt.label : v), h("button", { class: "co-select__chip-remove", type: "button", tabIndex: -1, "aria-label": "Remove", onClick: (e) => {
|
|
570
583
|
e.stopPropagation();
|
|
571
584
|
this.handleOptionClick(v);
|
|
572
585
|
} }, h("co-icon", { name: "x", size: 12 }))));
|
|
573
|
-
}))) : (h("span", { class: { 'co-select__text': true, 'co-select__text--placeholder': !this.hasValue } }, this.hasValue ? this.displayText : this.placeholder)), this.clearable && this.hasValue && !this.disabled && (h("button", { key: '
|
|
586
|
+
}))) : (h("span", { class: { 'co-select__text': true, 'co-select__text--placeholder': !this.hasValue } }, this.hasValue ? this.displayText : this.placeholder)), this.clearable && this.hasValue && !this.disabled && (h("button", { key: '496cd4f5e4573c650d208f651bc6d99303889d91', class: "co-select__clear", type: "button", tabIndex: -1, onClick: this.handleClear, "aria-label": "Clear" }, h("co-icon", { key: '80bde8985273408581de34ebda1aacb29b85846f', name: "x-circle", size: 16, weight: "fill" }))), h("co-icon", { key: 'b6063522d74bb07864915512416c1e71cad00062', name: this.isOpen ? 'caret-up' : 'caret-down', size: 16, class: "co-select__caret" })), h("div", { key: 'dfce4c79b0de038a83a34533fbafc5583679f5cc', class: {
|
|
574
587
|
'co-select__dropdown': true,
|
|
575
588
|
'co-select__dropdown--dark': this.menuSurface === 'dark',
|
|
576
|
-
} }, this.isOpen && this.searchable && (h("div", { key: '
|
|
589
|
+
} }, this.isOpen && this.searchable && (h("div", { key: '96b1c59af0d3e8a55d457bff581e3091b6095117', class: "co-select__search" }, h("co-icon", { key: '794175738f7337468e072f95a3069728013761f5', name: "magnifying-glass", size: 16, class: "co-select__search-icon" }), h("input", { key: 'c02a77bc52e3f7dfec008cff41337686281601f6', class: "co-select__search-input", type: "text", placeholder: this.searchPlaceholder, value: this.searchText, "aria-controls": CoSelect.LISTBOX_ID, "aria-activedescendant": activeOptionId, onInput: this.handleSearchInput, onKeyDown: this.handleNavKeyDown, ref: (el) => (this.searchInputEl = el) }))), this.isOpen && this.searchable && options.length === 0 && (h("div", { key: 'db7b93c92ff58f84d2ced8c3190309c10a46e76a', class: "co-select__empty" }, this.emptyText)), h("div", { key: 'ea7e328c1c105e50aa2d82c4a71da4e8a655bd74', class: "co-select__options", id: CoSelect.LISTBOX_ID, role: "listbox", "aria-multiselectable": this.multiple ? 'true' : undefined, ref: (el) => (this.optionsContainerEl = el) }, this.isOpen && (() => {
|
|
577
590
|
const { totalHeight, startIdx, endIdx, offsetY } = this.getVirtualSlice(options);
|
|
578
591
|
return (
|
|
579
592
|
// Los wrappers del virtualizador van `presentation` para que las
|
|
@@ -587,9 +600,9 @@ export class CoSelect {
|
|
|
587
600
|
'co-select__option--selected': isSelected,
|
|
588
601
|
'co-select__option--disabled': isDisabled,
|
|
589
602
|
'co-select__option--active': index === this.activeIndex,
|
|
590
|
-
}, onClick: () => !isDisabled && this.handleOptionClick(opt.value), onPointerMove: (e) => this.handleOptionPointerMove(e, index) }, this.menuSurface === 'dark' && (h("span", { class: "co-select__option-check-slot" }, isSelected && (h("co-icon", { name: "check", size: 12, class: "co-select__option-check co-select__option-check--leading" })))), opt.image ? (h("img", { class: "co-select__option-flag", src: opt.image, alt: "", loading: "lazy" })) : opt.icon ? (h("co-icon", { name: opt.icon, size: 20, class: "co-select__option-icon" })) : null, h("span", { class: "co-select__option-label" }, this.renderLabel(opt.label)), isSelected && this.menuSurface !== 'dark' && (h("co-icon", { name: "check", size: 16, class: "co-select__option-check" }))));
|
|
603
|
+
}, onClick: () => !isDisabled && this.handleOptionClick(opt.value), onPointerMove: (e) => this.handleOptionPointerMove(e, index) }, this.menuSurface === 'dark' && (h("span", { class: "co-select__option-check-slot" }, isSelected && (h("co-icon", { name: "check", size: 12, class: "co-select__option-check co-select__option-check--leading" })))), opt.image ? (h("img", { class: "co-select__option-flag", src: opt.image, alt: "", loading: "lazy" })) : opt.logo ? (this.renderLogo(opt, 'co-select__option-logo', true)) : opt.icon ? (h("co-icon", { name: opt.icon, size: 20, class: "co-select__option-icon" })) : null, h("span", { class: "co-select__option-label" }, this.renderLabel(opt.label)), isSelected && this.menuSurface !== 'dark' && (h("co-icon", { name: "check", size: 16, class: "co-select__option-check" }))));
|
|
591
604
|
}))));
|
|
592
|
-
})()), this.isOpen && this.showFooter && (h("co-list-footer", { key: '
|
|
605
|
+
})()), this.isOpen && this.showFooter && (h("co-list-footer", { key: '2200fd64cb53faa05e50e68ee96b44508fe4607f', class: "co-select__footer", primaryLabel: this.footerPrimaryLabel, primaryIcon: "check", onCoPrimary: this.handleFooterPrimary })))), this.helperText && (h("div", { key: '79255371e7a6cc8cfcbd71011b9746e759fc4432', class: `co-select__helper co-select__helper--${this.status}` }, this.statusIcon && h("co-icon", { key: 'd72f636d292253376b84a7a2cf9f2a5711965bf8', name: this.statusIcon, size: 14, class: "co-select__helper-icon" }), h("span", { key: 'f0984d9d3190349a1002422639a4e54b9c92dd22', class: "co-select__helper-text" }, this.helperText)))));
|
|
593
606
|
}
|
|
594
607
|
static get is() { return "co-select"; }
|
|
595
608
|
static get encapsulation() { return "shadow"; }
|
|
@@ -848,7 +861,7 @@ export class CoSelect {
|
|
|
848
861
|
"references": {
|
|
849
862
|
"SelectOption": {
|
|
850
863
|
"location": "local",
|
|
851
|
-
"path": "/Users/agox/
|
|
864
|
+
"path": "/Users/agox/Documents/Prolibu/prolibu-cobalt/packages/core/src/components/co-select/co-select.tsx",
|
|
852
865
|
"id": "src/components/co-select/co-select.tsx::SelectOption"
|
|
853
866
|
}
|
|
854
867
|
}
|
|
@@ -857,7 +870,7 @@ export class CoSelect {
|
|
|
857
870
|
"optional": false,
|
|
858
871
|
"docs": {
|
|
859
872
|
"tags": [],
|
|
860
|
-
"text": "Opciones: array de `{ value, label, icon?, image?, disabled? }`, array de
|
|
873
|
+
"text": "Opciones: array de `{ value, label, icon?, image?, logo?, logoMono?, disabled? }`, array de\nstrings (value = label), o ese mismo array como JSON desde HTML."
|
|
861
874
|
},
|
|
862
875
|
"getter": false,
|
|
863
876
|
"setter": false,
|