@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.
- package/README.md +3 -3
- package/custom-elements.json +6887 -3484
- package/dist/cjs/co-accordion.cjs.entry.js +4 -4
- package/dist/cjs/co-app-shell.cjs.entry.js +3 -3
- package/dist/cjs/co-autocomplete.cjs.entry.js +38 -73
- package/dist/cjs/co-avatar-group.cjs.entry.js +3 -3
- package/dist/cjs/co-avatar.cjs.entry.js +9 -4
- package/dist/cjs/co-badge.cjs.entry.js +2 -2
- package/dist/cjs/co-bottom-sheet.cjs.entry.js +4 -4
- package/dist/cjs/co-breadcrumb-item.cjs.entry.js +37 -0
- package/dist/cjs/co-breadcrumb.cjs.entry.js +55 -0
- package/dist/cjs/co-button-group.cjs.entry.js +3 -3
- package/dist/cjs/co-button.cjs.entry.js +10 -4
- package/dist/cjs/co-calendar-month.cjs.entry.js +2 -2
- package/dist/cjs/co-calendar_3.cjs.entry.js +50 -15
- package/dist/cjs/co-card.cjs.entry.js +3 -3
- package/dist/cjs/co-checkbox-group.cjs.entry.js +4 -4
- package/dist/cjs/co-checkbox.cjs.entry.js +18 -6
- package/dist/cjs/co-chip_2.cjs.entry.js +485 -0
- package/dist/cjs/co-color-picker.cjs.entry.js +4 -4
- package/dist/cjs/co-column-picker.cjs.entry.js +3 -3
- package/dist/cjs/co-combobox.cjs.entry.js +51 -82
- package/dist/cjs/co-command-search.cjs.entry.js +20 -59
- package/dist/cjs/co-data-table-pagination.cjs.entry.js +5 -5
- package/dist/cjs/co-data-table.cjs.entry.js +73 -17
- package/dist/cjs/co-date-picker.cjs.entry.js +2 -2
- package/dist/cjs/co-date-range-picker.cjs.entry.js +3 -3
- package/dist/cjs/co-date-range.cjs.entry.js +2 -2
- package/dist/cjs/co-drive-card.cjs.entry.js +81 -0
- package/dist/cjs/co-drop-zone.cjs.entry.js +63 -0
- package/dist/cjs/co-empty-state.cjs.entry.js +13 -3
- package/dist/cjs/co-event-calendar.cjs.entry.js +3 -3
- package/dist/cjs/co-fab.cjs.entry.js +5 -5
- package/dist/cjs/co-file-field.cjs.entry.js +7 -7
- package/dist/cjs/co-file-type-tile.cjs.entry.js +78 -0
- package/dist/cjs/co-helper-text.cjs.entry.js +3 -3
- package/dist/cjs/co-icon-button.cjs.entry.js +23 -7
- package/dist/cjs/co-icon.cjs.entry.js +3 -3
- package/dist/cjs/co-input.cjs.entry.js +36 -7
- package/dist/cjs/co-json-field.cjs.entry.js +5 -5
- package/dist/cjs/co-lightbox.cjs.entry.js +6 -6
- package/dist/cjs/co-list-footer.cjs.entry.js +2 -2
- package/dist/cjs/co-list-item.cjs.entry.js +5 -5
- package/dist/cjs/co-loader.cjs.entry.js +34 -0
- package/dist/cjs/co-media-thumb.cjs.entry.js +36 -0
- package/dist/cjs/co-menu-divider.cjs.entry.js +2 -2
- package/dist/cjs/co-menu-item.cjs.entry.js +11 -3
- package/dist/cjs/co-menu.cjs.entry.js +3 -3
- package/dist/cjs/co-modal.cjs.entry.js +29 -5
- package/dist/cjs/co-navbar.cjs.entry.js +3 -3
- package/dist/cjs/co-number-field.cjs.entry.js +5 -5
- package/dist/cjs/{co-loader_2.cjs.entry.js → co-overlay.cjs.entry.js} +2 -32
- package/dist/cjs/co-page-header.cjs.entry.js +2 -2
- package/dist/cjs/co-phone-field.cjs.entry.js +4 -4
- package/dist/cjs/co-popover.cjs.entry.js +12 -3
- package/dist/cjs/co-progress-bar.cjs.entry.js +4 -4
- package/dist/cjs/co-progress-circle.cjs.entry.js +3 -3
- package/dist/cjs/co-radio-group.cjs.entry.js +4 -4
- package/dist/cjs/co-radio.cjs.entry.js +4 -4
- package/dist/cjs/co-rating.cjs.entry.js +4 -4
- package/dist/cjs/co-ref-field.cjs.entry.js +31 -135
- package/dist/cjs/co-rich-text-editor.cjs.entry.js +5 -5
- package/dist/cjs/co-rich-text-toolbar.cjs.entry.js +1 -1
- package/dist/cjs/co-rich-text-viewer.cjs.entry.js +2 -2
- package/dist/cjs/co-row.cjs.entry.js +3 -3
- package/dist/cjs/co-segmented-bar.cjs.entry.js +58 -0
- package/dist/cjs/co-select.cjs.entry.js +7 -7
- package/dist/cjs/co-separator.cjs.entry.js +2 -2
- package/dist/cjs/co-sidebar-nav.cjs.entry.js +10 -8
- package/dist/cjs/co-sidebar.cjs.entry.js +3 -3
- package/dist/cjs/co-skeleton.cjs.entry.js +2 -2
- package/dist/cjs/co-slider.cjs.entry.js +3 -3
- package/dist/cjs/co-switch.cjs.entry.js +6 -6
- package/dist/cjs/co-tab-group.cjs.entry.js +21 -3
- package/dist/cjs/co-tab.cjs.entry.js +8 -5
- package/dist/cjs/co-tags-field.cjs.entry.js +8 -8
- package/dist/cjs/co-textarea.cjs.entry.js +6 -6
- package/dist/cjs/co-toast.cjs.entry.js +10 -4
- package/dist/cjs/co-toggle-button-group.cjs.entry.js +16 -4
- package/dist/cjs/co-toggle-button.cjs.entry.js +9 -5
- package/dist/cjs/co-tooltip.cjs.entry.js +3 -3
- package/dist/cjs/co-transfer-list.cjs.entry.js +3 -3
- package/dist/cjs/co-video.cjs.entry.js +4 -4
- package/dist/cjs/cobalt.cjs.js +2 -2
- package/dist/cjs/{fieldChip-CDIMz_Y6.js → fieldChip-D8YJCyQF.js} +1 -1
- package/dist/cjs/{index-5NdsiFjZ.js → index-4y1Dm145.js} +64 -11
- package/dist/cjs/{index-BumlM92r.js → index-DxEFsH_t.js} +69 -13
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{requiredMark-CqMGt1H1.js → requiredMark-B3pKyqYI.js} +1 -1
- package/dist/cobalt/cobalt.css +1 -1
- package/dist/cobalt/cobalt.esm.js +1 -1
- package/dist/cobalt/p-002e5beb.entry.js +1 -0
- package/dist/cobalt/{p-ba90e871.entry.js → p-02c5a9a9.entry.js} +1 -1
- package/dist/cobalt/p-075eed3d.entry.js +1 -0
- package/dist/cobalt/p-0c0621a7.entry.js +1 -0
- package/dist/cobalt/{p-ef7d4ae3.entry.js → p-0d6a562d.entry.js} +1 -1
- package/dist/cobalt/p-0d7536a8.entry.js +1 -0
- package/dist/cobalt/{p-6d1217c3.entry.js → p-13fc9c8a.entry.js} +1 -1
- package/dist/cobalt/{p-afb7e19e.entry.js → p-14d4c5c7.entry.js} +1 -1
- package/dist/cobalt/{p-31ab9a46.entry.js → p-1681ce1d.entry.js} +1 -1
- package/dist/cobalt/{p-93046365.entry.js → p-1726ce07.entry.js} +1 -1
- package/dist/cobalt/p-20ba59a2.entry.js +1 -0
- package/dist/cobalt/p-2d1cbd7f.entry.js +1 -0
- package/dist/cobalt/{p-4871690e.entry.js → p-373cd08e.entry.js} +1 -1
- package/dist/cobalt/{p-37595103.entry.js → p-3f06d373.entry.js} +1 -1
- package/dist/cobalt/p-3f68fd2e.entry.js +1 -0
- package/dist/cobalt/p-47a2dd67.entry.js +1 -0
- package/dist/cobalt/p-495c9b99.entry.js +1 -0
- package/dist/cobalt/p-4a075257.entry.js +1 -0
- package/dist/cobalt/{p-52de17da.entry.js → p-5647ca9d.entry.js} +1 -1
- package/dist/cobalt/{p-1a07c23c.entry.js → p-5b31d45b.entry.js} +1 -1
- package/dist/cobalt/{p-929e647f.entry.js → p-5c3101b5.entry.js} +1 -1
- package/dist/cobalt/{p-8d59f5ad.entry.js → p-5c43d30e.entry.js} +1 -1
- package/dist/cobalt/{p-4504f7b0.entry.js → p-5e9a9caf.entry.js} +1 -1
- package/dist/cobalt/p-5edd0d3f.entry.js +1 -0
- package/dist/cobalt/{p-12e2c2c4.entry.js → p-627d2d1a.entry.js} +1 -1
- package/dist/cobalt/p-6911a034.entry.js +1 -0
- package/dist/cobalt/{p-e53861e4.entry.js → p-6ad1625a.entry.js} +1 -1
- package/dist/cobalt/{p-f4063c41.entry.js → p-70f70e02.entry.js} +1 -1
- package/dist/cobalt/p-73b30ebb.entry.js +1 -0
- package/dist/cobalt/p-771bc8fe.entry.js +1 -0
- package/dist/cobalt/p-7780ddb5.entry.js +1 -0
- package/dist/cobalt/p-77d01b39.entry.js +1 -0
- package/dist/cobalt/p-7FZXeBK4.js +1 -0
- package/dist/cobalt/p-7a3fb93b.entry.js +1 -0
- package/dist/cobalt/{p-0bb55163.entry.js → p-809015dd.entry.js} +1 -1
- package/dist/cobalt/p-8128e84a.entry.js +1 -0
- package/dist/cobalt/p-81cfd951.entry.js +1 -0
- package/dist/cobalt/p-82ce1178.entry.js +1 -0
- package/dist/cobalt/p-85eed52c.entry.js +1 -0
- package/dist/cobalt/p-86d4e016.entry.js +1 -0
- package/dist/cobalt/{p-cb235aa7.entry.js → p-86e60cfa.entry.js} +1 -1
- package/dist/cobalt/p-8a9ed2da.entry.js +1 -0
- package/dist/cobalt/{p-8e1dc062.entry.js → p-8dfb6886.entry.js} +1 -1
- package/dist/cobalt/{p-2f86e1e0.entry.js → p-8e823c15.entry.js} +1 -1
- package/dist/cobalt/p-9a587867.entry.js +1 -0
- package/dist/cobalt/p-9c6ca902.entry.js +1 -0
- package/dist/cobalt/{p-279bf91c.entry.js → p-9c873a6a.entry.js} +1 -1
- package/dist/cobalt/{p-BZJ7NCm5.js → p-BAA4ln31.js} +1 -1
- package/dist/cobalt/{p-CegCk7FL.js → p-Bgxofdfb.js} +1 -1
- package/dist/cobalt/p-a6900010.entry.js +1 -0
- package/dist/cobalt/p-a9afbaa6.entry.js +1 -0
- package/dist/cobalt/{p-c10697e1.entry.js → p-aa20ffca.entry.js} +1 -1
- package/dist/cobalt/{p-3863ea91.entry.js → p-ac5df270.entry.js} +1 -1
- package/dist/cobalt/{p-b6f20268.entry.js → p-af4cb263.entry.js} +1 -1
- package/dist/cobalt/p-b1197c08.entry.js +1 -0
- package/dist/cobalt/{p-4c01d984.entry.js → p-b4bed98b.entry.js} +1 -1
- package/dist/cobalt/{p-58a53421.entry.js → p-b8ec0cc1.entry.js} +1 -1
- package/dist/cobalt/p-ba66584f.entry.js +1 -0
- package/dist/cobalt/p-bb534985.entry.js +1 -0
- package/dist/cobalt/{p-1531d3c9.entry.js → p-c0f39ddd.entry.js} +1 -1
- package/dist/cobalt/{p-51a53177.entry.js → p-c1e53e4c.entry.js} +1 -1
- package/dist/cobalt/p-c2e2eee9.entry.js +1 -0
- package/dist/cobalt/p-c3462def.entry.js +1 -0
- package/dist/cobalt/p-c6fedc59.entry.js +1 -0
- package/dist/cobalt/{p-6e808b3a.entry.js → p-c750b2d2.entry.js} +1 -1
- package/dist/cobalt/{p-70b14b05.entry.js → p-cc0a4617.entry.js} +1 -1
- package/dist/cobalt/{p-29be61a9.entry.js → p-cc8e2f16.entry.js} +1 -1
- package/dist/cobalt/{p-790d384e.entry.js → p-d9608046.entry.js} +1 -1
- package/dist/cobalt/{p-cfb36943.entry.js → p-e1957078.entry.js} +1 -1
- package/dist/cobalt/{p-8d7fdb9d.entry.js → p-e2762263.entry.js} +1 -1
- package/dist/cobalt/p-e33853fa.entry.js +1 -0
- package/dist/cobalt/p-e420d5c9.entry.js +1 -0
- package/dist/cobalt/{p-377c2ccc.entry.js → p-e4a539da.entry.js} +1 -1
- package/dist/cobalt/{p-d809bd44.entry.js → p-e7085f08.entry.js} +1 -1
- package/dist/cobalt/p-e710b9ea.entry.js +1 -0
- package/dist/cobalt/{p-eb18fdbf.entry.js → p-e9aaeaf7.entry.js} +1 -1
- package/dist/cobalt/{p-65af5017.entry.js → p-f073b467.entry.js} +1 -1
- package/dist/cobalt/p-f0de4415.entry.js +1 -0
- package/dist/cobalt/p-f36e461f.entry.js +1 -0
- package/dist/cobalt/p-f6ac5301.entry.js +1 -0
- package/dist/cobalt/{p-9a04ca90.entry.js → p-f6b0c4a0.entry.js} +1 -1
- package/dist/cobalt/p-f86ccb38.entry.js +1 -0
- package/dist/cobalt/{p-1f747e45.entry.js → p-fb251497.entry.js} +1 -1
- package/dist/cobalt/p-fd27c2bd.entry.js +1 -0
- package/dist/cobalt/p-tT-aZV0-.js +2 -0
- package/dist/collection/collection-manifest.json +9 -1
- package/dist/collection/components/co-accordion/co-accordion.css +20 -8
- package/dist/collection/components/co-accordion/co-accordion.js +5 -2
- package/dist/collection/components/co-app-shell/co-app-shell.js +2 -2
- package/dist/collection/components/co-autocomplete/co-autocomplete.css +4 -751
- package/dist/collection/components/co-autocomplete/co-autocomplete.js +41 -76
- package/dist/collection/components/co-avatar/co-avatar.js +27 -3
- package/dist/collection/components/co-avatar-group/co-avatar-group.js +2 -2
- package/dist/collection/components/co-badge/co-badge.js +1 -1
- package/dist/collection/components/co-bottom-sheet/co-bottom-sheet.js +3 -3
- package/dist/collection/components/co-breadcrumb/co-breadcrumb.css +6 -0
- package/dist/collection/components/co-breadcrumb/co-breadcrumb.js +111 -0
- package/dist/collection/components/co-breadcrumb-item/co-breadcrumb-item.css +66 -0
- package/dist/collection/components/co-breadcrumb-item/co-breadcrumb-item.js +169 -0
- package/dist/collection/components/co-button/co-button.css +23 -0
- package/dist/collection/components/co-button/co-button.js +48 -2
- package/dist/collection/components/co-button-group/co-button-group.js +2 -2
- package/dist/collection/components/co-calendar/co-calendar.css +12 -12
- package/dist/collection/components/co-calendar/co-calendar.js +1 -1
- package/dist/collection/components/co-calendar-month/co-calendar-month.js +1 -1
- package/dist/collection/components/co-card/co-card.js +2 -2
- package/dist/collection/components/co-checkbox/co-checkbox.css +63 -0
- package/dist/collection/components/co-checkbox/co-checkbox.js +58 -7
- package/dist/collection/components/co-checkbox-group/co-checkbox-group.js +3 -3
- package/dist/collection/components/co-chip/co-chip.css +56 -1
- package/dist/collection/components/co-chip/co-chip.js +52 -9
- package/dist/collection/components/co-color-picker/co-color-picker.js +2 -2
- package/dist/collection/components/co-column-picker/co-column-picker.js +2 -2
- package/dist/collection/components/co-combobox/co-combobox.css +6 -830
- package/dist/collection/components/co-combobox/co-combobox.js +73 -84
- package/dist/collection/components/co-command-search/co-command-search.css +2 -60
- package/dist/collection/components/co-command-search/co-command-search.js +23 -48
- package/dist/collection/components/co-data-table/co-data-table.css +47 -8
- package/dist/collection/components/co-data-table/co-data-table.js +199 -15
- package/dist/collection/components/co-data-table-pagination/co-data-table-pagination.js +4 -4
- package/dist/collection/components/co-date-field/co-date-field.css +4 -7
- package/dist/collection/components/co-date-field/co-date-field.js +4 -4
- package/dist/collection/components/co-date-range/co-date-range.js +1 -1
- package/dist/collection/components/co-date-range-picker/co-date-range-picker.css +9 -9
- package/dist/collection/components/co-drawer/co-drawer.css +63 -10
- package/dist/collection/components/co-drawer/co-drawer.js +60 -5
- package/dist/collection/components/co-drive-card/co-drive-card.css +285 -0
- package/dist/collection/components/co-drive-card/co-drive-card.js +329 -0
- package/dist/collection/components/co-drop-zone/co-drop-zone.css +49 -0
- package/dist/collection/components/co-drop-zone/co-drop-zone.js +197 -0
- package/dist/collection/components/co-empty-state/co-empty-state.css +39 -1
- package/dist/collection/components/co-empty-state/co-empty-state.js +72 -1
- package/dist/collection/components/co-event-calendar/co-event-calendar.js +2 -2
- package/dist/collection/components/co-fab/co-fab.css +8 -1
- package/dist/collection/components/co-fab/co-fab.js +24 -5
- package/dist/collection/components/co-file-field/co-file-field.js +5 -5
- package/dist/collection/components/co-file-type-tile/co-file-type-tile.css +14 -0
- package/dist/collection/components/co-file-type-tile/co-file-type-tile.js +164 -0
- package/dist/collection/components/co-helper-text/co-helper-text.js +2 -2
- package/dist/collection/components/co-icon/co-icon.js +2 -2
- package/dist/collection/components/co-icon-button/co-icon-button.css +11 -4
- package/dist/collection/components/co-icon-button/co-icon-button.js +80 -25
- package/dist/collection/components/co-input/co-input.css +67 -6
- package/dist/collection/components/co-input/co-input.js +54 -5
- package/dist/collection/components/co-json-field/co-json-field.js +3 -3
- package/dist/collection/components/co-lightbox/co-lightbox.css +2 -2
- package/dist/collection/components/co-lightbox/co-lightbox.js +4 -4
- package/dist/collection/components/co-list-footer/co-list-footer.js +1 -1
- package/dist/collection/components/co-list-item/co-list-item.js +4 -4
- package/dist/collection/components/co-media-thumb/co-media-thumb.css +43 -0
- package/dist/collection/components/co-media-thumb/co-media-thumb.js +148 -0
- package/dist/collection/components/co-menu/co-menu.css +6 -4
- package/dist/collection/components/co-menu/co-menu.js +20 -1
- package/dist/collection/components/co-menu-divider/co-menu-divider.js +1 -1
- package/dist/collection/components/co-menu-item/co-menu-item.css +27 -9
- package/dist/collection/components/co-menu-item/co-menu-item.js +69 -2
- package/dist/collection/components/co-modal/co-modal.css +17 -0
- package/dist/collection/components/co-modal/co-modal.js +59 -6
- package/dist/collection/components/co-navbar/co-navbar.js +2 -2
- package/dist/collection/components/co-number-field/co-number-field.css +10 -11
- package/dist/collection/components/co-number-field/co-number-field.js +2 -2
- package/dist/collection/components/co-option-list/co-option-list.css +966 -0
- package/dist/collection/components/co-option-list/co-option-list.js +899 -0
- package/dist/collection/components/co-option-list/optionListLogic.js +100 -0
- package/dist/collection/components/co-overlay/co-overlay.js +1 -1
- package/dist/collection/components/co-page-header/co-page-header.js +1 -1
- package/dist/collection/components/co-phone-field/co-phone-field.css +4 -7
- package/dist/collection/components/co-phone-field/co-phone-field.js +1 -1
- package/dist/collection/components/co-popover/co-popover.js +11 -2
- package/dist/collection/components/co-progress-bar/co-progress-bar.css +1 -1
- package/dist/collection/components/co-progress-bar/co-progress-bar.js +2 -2
- package/dist/collection/components/co-progress-circle/co-progress-circle.js +2 -2
- package/dist/collection/components/co-radio/co-radio.js +3 -3
- package/dist/collection/components/co-radio-group/co-radio-group.js +3 -3
- package/dist/collection/components/co-rating/co-rating.js +3 -3
- package/dist/collection/components/co-ref-field/co-ref-field.css +6 -897
- package/dist/collection/components/co-ref-field/co-ref-field.js +0 -0
- package/dist/collection/components/co-rich-text-editor/co-rich-text-editor.css +1 -1
- package/dist/collection/components/co-rich-text-editor/co-rich-text-editor.js +2 -2
- package/dist/collection/components/co-row/co-row.js +2 -2
- package/dist/collection/components/co-segmented-bar/co-segmented-bar.css +36 -0
- package/dist/collection/components/co-segmented-bar/co-segmented-bar.js +176 -0
- package/dist/collection/components/co-select/co-select.css +4 -7
- package/dist/collection/components/co-select/co-select.js +4 -4
- package/dist/collection/components/co-separator/co-separator.js +1 -1
- package/dist/collection/components/co-sidebar/co-sidebar.js +2 -2
- package/dist/collection/components/co-sidebar-nav/co-sidebar-nav.css +8 -6
- package/dist/collection/components/co-sidebar-nav/co-sidebar-nav.js +8 -6
- package/dist/collection/components/co-skeleton/co-skeleton.js +1 -1
- package/dist/collection/components/co-slider/co-slider.js +2 -2
- package/dist/collection/components/co-switch/co-switch.css +3 -1
- package/dist/collection/components/co-switch/co-switch.js +3 -3
- package/dist/collection/components/co-tab/co-tab.css +93 -7
- package/dist/collection/components/co-tab/co-tab.js +45 -3
- package/dist/collection/components/co-tab-group/co-tab-group.css +19 -0
- package/dist/collection/components/co-tab-group/co-tab-group.js +41 -1
- package/dist/collection/components/co-tags-field/co-tags-field.js +5 -5
- package/dist/collection/components/co-textarea/co-textarea.js +4 -4
- package/dist/collection/components/co-toast/co-toast.css +56 -2
- package/dist/collection/components/co-toast/co-toast.js +27 -2
- package/dist/collection/components/co-toggle-button/co-toggle-button.css +38 -0
- package/dist/collection/components/co-toggle-button/co-toggle-button.js +46 -3
- package/dist/collection/components/co-toggle-button-group/co-toggle-button-group.css +16 -0
- package/dist/collection/components/co-toggle-button-group/co-toggle-button-group.js +34 -2
- package/dist/collection/components/co-tooltip/co-tooltip.js +2 -2
- package/dist/collection/components/co-transfer-list/co-transfer-list.js +2 -2
- package/dist/collection/components/co-video/co-video.css +2 -2
- package/dist/collection/components/co-video/co-video.js +2 -2
- package/dist/components/co-accordion.js +1 -1
- package/dist/components/co-app-shell.js +1 -1
- package/dist/components/co-autocomplete.js +1 -1
- package/dist/components/co-avatar-group.js +1 -1
- package/dist/components/co-avatar.js +1 -1
- package/dist/components/co-badge.js +1 -1
- package/dist/components/co-bottom-sheet.js +1 -1
- package/dist/components/co-breadcrumb-item.d.ts +11 -0
- package/dist/components/co-breadcrumb-item.js +1 -0
- package/dist/components/co-breadcrumb.d.ts +11 -0
- package/dist/components/co-breadcrumb.js +1 -0
- package/dist/components/co-button-group.js +1 -1
- package/dist/components/co-button.js +1 -1
- package/dist/components/co-calendar-month.js +1 -1
- package/dist/components/co-calendar.js +1 -1
- package/dist/components/co-card.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-date-field.js +1 -1
- package/dist/components/co-date-picker.js +1 -1
- package/dist/components/co-date-range-picker.js +1 -1
- package/dist/components/co-date-range.js +1 -1
- package/dist/components/co-drawer.js +1 -1
- package/dist/components/co-drive-card.d.ts +11 -0
- package/dist/components/co-drive-card.js +1 -0
- package/dist/components/co-drop-zone.d.ts +11 -0
- package/dist/components/co-drop-zone.js +1 -0
- package/dist/components/co-empty-state.js +1 -1
- package/dist/components/co-event-calendar.js +1 -1
- package/dist/components/co-fab.js +1 -1
- package/dist/components/co-file-field.js +1 -1
- package/dist/components/co-file-type-tile.d.ts +11 -0
- package/dist/components/co-file-type-tile.js +1 -0
- package/dist/components/co-helper-text.js +1 -1
- package/dist/components/co-icon-button.js +1 -1
- package/dist/components/co-icon.js +1 -1
- package/dist/components/co-input.js +1 -1
- package/dist/components/co-json-field.js +1 -1
- package/dist/components/co-lightbox.js +1 -1
- package/dist/components/co-list-footer.js +1 -1
- package/dist/components/co-list-item.js +1 -1
- package/dist/components/co-media-thumb.d.ts +11 -0
- package/dist/components/co-media-thumb.js +1 -0
- package/dist/components/co-menu-divider.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-navbar.js +1 -1
- package/dist/components/co-number-field.js +1 -1
- package/dist/components/co-option-list.d.ts +11 -0
- package/dist/components/co-option-list.js +1 -0
- package/dist/components/co-overlay.js +1 -1
- package/dist/components/co-page-header.js +1 -1
- package/dist/components/co-phone-field.js +1 -1
- package/dist/components/co-popover.js +1 -1
- package/dist/components/co-progress-bar.js +1 -1
- package/dist/components/co-progress-circle.js +1 -1
- package/dist/components/co-radio-group.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-rich-text-editor.js +1 -1
- package/dist/components/co-rich-text-toolbar.js +1 -1
- package/dist/components/co-rich-text-viewer.js +1 -1
- package/dist/components/co-row.js +1 -1
- package/dist/components/co-segmented-bar.d.ts +11 -0
- package/dist/components/co-segmented-bar.js +1 -0
- package/dist/components/co-select.js +1 -1
- package/dist/components/co-separator.js +1 -1
- package/dist/components/co-sidebar-nav.js +1 -1
- package/dist/components/co-sidebar.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-textarea.js +1 -1
- package/dist/components/co-toast.js +1 -1
- package/dist/components/co-toggle-button-group.js +1 -1
- package/dist/components/co-toggle-button.js +1 -1
- package/dist/components/co-tooltip.js +1 -1
- package/dist/components/co-transfer-list.js +1 -1
- package/dist/components/co-video.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/p-BHqdcGDh.js +1 -0
- package/dist/components/{p-D3Y_ti3Q.js → p-BJTMFYax.js} +1 -1
- package/dist/components/p-Ba5lW0pA.js +1 -0
- package/dist/components/{p-CegCk7FL.js → p-Bgxofdfb.js} +1 -1
- package/dist/components/{p-BB2OaYKF.js → p-CNIs9j-h.js} +1 -1
- package/dist/components/{p-DeZxp9vb.js → p-COb8X_fE.js} +1 -1
- package/dist/components/{p-BFeE_fiq.js → p-Cam92sWP.js} +1 -1
- package/dist/components/p-CmCsm4L-.js +1 -0
- package/dist/components/p-D3ts7oo9.js +1 -0
- package/dist/components/{p-BNKz39GA.js → p-D4SOCy8I.js} +1 -1
- package/dist/components/{p-DKh8ZK4U.js → p-Dh-h40mY.js} +1 -1
- package/dist/components/p-DrQh1Cb8.js +1 -0
- package/dist/components/p-DvL2TcDG.js +1 -0
- package/dist/components/{p-C_ULDaks.js → p-OKwHt2i9.js} +1 -1
- package/dist/components/p-QWi9AmnD.js +1 -0
- package/dist/components/p-Xwo2HQmt.js +1 -0
- package/dist/components/p-_k-j03K-.js +1 -0
- package/dist/components/{p-B7vGYFbO.js → p-eSq2ze8W.js} +1 -1
- package/dist/components/p-ivjj-BP8.js +1 -0
- package/dist/components/{p-DxCFMMfY.js → p-lus32JrB.js} +1 -1
- package/dist/esm/co-accordion.entry.js +4 -4
- package/dist/esm/co-app-shell.entry.js +3 -3
- package/dist/esm/co-autocomplete.entry.js +38 -73
- package/dist/esm/co-avatar-group.entry.js +3 -3
- package/dist/esm/co-avatar.entry.js +9 -4
- package/dist/esm/co-badge.entry.js +2 -2
- package/dist/esm/co-bottom-sheet.entry.js +4 -4
- package/dist/esm/co-breadcrumb-item.entry.js +35 -0
- package/dist/esm/co-breadcrumb.entry.js +53 -0
- package/dist/esm/co-button-group.entry.js +3 -3
- package/dist/esm/co-button.entry.js +10 -4
- package/dist/esm/co-calendar-month.entry.js +2 -2
- package/dist/esm/co-calendar_3.entry.js +50 -15
- package/dist/esm/co-card.entry.js +3 -3
- package/dist/esm/co-checkbox-group.entry.js +4 -4
- package/dist/esm/co-checkbox.entry.js +18 -6
- package/dist/esm/co-chip_2.entry.js +482 -0
- package/dist/esm/co-color-picker.entry.js +4 -4
- package/dist/esm/co-column-picker.entry.js +3 -3
- package/dist/esm/co-combobox.entry.js +52 -83
- package/dist/esm/co-command-search.entry.js +21 -60
- package/dist/esm/co-data-table-pagination.entry.js +5 -5
- package/dist/esm/co-data-table.entry.js +73 -17
- package/dist/esm/co-date-picker.entry.js +2 -2
- package/dist/esm/co-date-range-picker.entry.js +3 -3
- package/dist/esm/co-date-range.entry.js +2 -2
- package/dist/esm/co-drive-card.entry.js +79 -0
- package/dist/esm/co-drop-zone.entry.js +61 -0
- package/dist/esm/co-empty-state.entry.js +13 -3
- package/dist/esm/co-event-calendar.entry.js +3 -3
- package/dist/esm/co-fab.entry.js +5 -5
- package/dist/esm/co-file-field.entry.js +7 -7
- package/dist/esm/co-file-type-tile.entry.js +76 -0
- package/dist/esm/co-helper-text.entry.js +3 -3
- package/dist/esm/co-icon-button.entry.js +23 -7
- package/dist/esm/co-icon.entry.js +3 -3
- package/dist/esm/co-input.entry.js +36 -7
- package/dist/esm/co-json-field.entry.js +5 -5
- package/dist/esm/co-lightbox.entry.js +6 -6
- package/dist/esm/co-list-footer.entry.js +2 -2
- package/dist/esm/co-list-item.entry.js +5 -5
- package/dist/esm/co-loader.entry.js +32 -0
- package/dist/esm/co-media-thumb.entry.js +34 -0
- package/dist/esm/co-menu-divider.entry.js +2 -2
- package/dist/esm/co-menu-item.entry.js +11 -3
- package/dist/esm/co-menu.entry.js +3 -3
- package/dist/esm/co-modal.entry.js +29 -5
- package/dist/esm/co-navbar.entry.js +3 -3
- package/dist/esm/co-number-field.entry.js +5 -5
- package/dist/esm/{co-loader_2.entry.js → co-overlay.entry.js} +3 -32
- package/dist/esm/co-page-header.entry.js +2 -2
- package/dist/esm/co-phone-field.entry.js +4 -4
- package/dist/esm/co-popover.entry.js +12 -3
- package/dist/esm/co-progress-bar.entry.js +4 -4
- package/dist/esm/co-progress-circle.entry.js +3 -3
- package/dist/esm/co-radio-group.entry.js +4 -4
- package/dist/esm/co-radio.entry.js +4 -4
- package/dist/esm/co-rating.entry.js +4 -4
- package/dist/esm/co-ref-field.entry.js +31 -135
- package/dist/esm/co-rich-text-editor.entry.js +5 -5
- package/dist/esm/co-rich-text-toolbar.entry.js +1 -1
- package/dist/esm/co-rich-text-viewer.entry.js +2 -2
- package/dist/esm/co-row.entry.js +3 -3
- package/dist/esm/co-segmented-bar.entry.js +56 -0
- package/dist/esm/co-select.entry.js +7 -7
- package/dist/esm/co-separator.entry.js +2 -2
- package/dist/esm/co-sidebar-nav.entry.js +10 -8
- package/dist/esm/co-sidebar.entry.js +3 -3
- package/dist/esm/co-skeleton.entry.js +2 -2
- package/dist/esm/co-slider.entry.js +3 -3
- package/dist/esm/co-switch.entry.js +6 -6
- package/dist/esm/co-tab-group.entry.js +21 -3
- package/dist/esm/co-tab.entry.js +8 -5
- package/dist/esm/co-tags-field.entry.js +8 -8
- package/dist/esm/co-textarea.entry.js +6 -6
- package/dist/esm/co-toast.entry.js +10 -4
- package/dist/esm/co-toggle-button-group.entry.js +16 -4
- package/dist/esm/co-toggle-button.entry.js +9 -5
- package/dist/esm/co-tooltip.entry.js +3 -3
- package/dist/esm/co-transfer-list.entry.js +3 -3
- package/dist/esm/co-video.entry.js +4 -4
- package/dist/esm/cobalt.js +3 -3
- package/dist/esm/{fieldChip-GPikjpYw.js → fieldChip-ChXW__C5.js} +1 -1
- package/dist/esm/{index-w_Wxgclf.js → index-Cyrxk8Qq.js} +64 -11
- package/dist/esm/{index-CYsftTKf.js → index-tT-aZV0-.js} +69 -13
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{requiredMark-CEbXKHcU.js → requiredMark-C7-_2UhB.js} +1 -1
- package/dist/types/components/co-accordion/co-accordion.d.ts +3 -0
- package/dist/types/components/co-autocomplete/co-autocomplete.d.ts +12 -14
- package/dist/types/components/co-avatar/co-avatar.d.ts +2 -0
- package/dist/types/components/co-breadcrumb/co-breadcrumb.d.ts +27 -0
- package/dist/types/components/co-breadcrumb-item/co-breadcrumb-item.d.ts +33 -0
- package/dist/types/components/co-button/co-button.d.ts +4 -0
- package/dist/types/components/co-checkbox/co-checkbox.d.ts +10 -2
- package/dist/types/components/co-chip/co-chip.d.ts +15 -3
- package/dist/types/components/co-combobox/co-combobox.d.ts +29 -15
- package/dist/types/components/co-command-search/co-command-search.d.ts +13 -5
- package/dist/types/components/co-command-search/commandSearchLogic.d.ts +1 -1
- package/dist/types/components/co-data-table/co-data-table.d.ts +35 -1
- package/dist/types/components/co-drawer/co-drawer.d.ts +12 -0
- package/dist/types/components/co-drive-card/co-drive-card.d.ts +52 -0
- package/dist/types/components/co-drop-zone/co-drop-zone.d.ts +38 -0
- package/dist/types/components/co-empty-state/co-empty-state.d.ts +6 -0
- package/dist/types/components/co-fab/co-fab.d.ts +3 -1
- package/dist/types/components/co-file-type-tile/co-file-type-tile.d.ts +11 -0
- package/dist/types/components/co-icon-button/co-icon-button.d.ts +18 -3
- package/dist/types/components/co-input/co-input.d.ts +13 -1
- package/dist/types/components/co-media-thumb/co-media-thumb.d.ts +21 -0
- package/dist/types/components/co-menu/co-menu.d.ts +4 -0
- package/dist/types/components/co-menu-item/co-menu-item.d.ts +10 -1
- package/dist/types/components/co-modal/co-modal.d.ts +20 -2
- package/dist/types/components/co-option-list/co-option-list.d.ts +105 -0
- package/dist/types/components/co-option-list/optionListLogic.d.ts +69 -0
- package/dist/types/components/co-popover/co-popover.d.ts +1 -0
- package/dist/types/components/co-ref-field/co-ref-field.d.ts +8 -30
- package/dist/types/components/co-segmented-bar/co-segmented-bar.d.ts +32 -0
- package/dist/types/components/co-sidebar-nav/co-sidebar-nav.d.ts +2 -0
- package/dist/types/components/co-tab/co-tab.d.ts +4 -0
- package/dist/types/components/co-tab-group/co-tab-group.d.ts +7 -0
- package/dist/types/components/co-toast/co-toast.d.ts +7 -0
- package/dist/types/components/co-toggle-button/co-toggle-button.d.ts +6 -0
- package/dist/types/components/co-toggle-button-group/co-toggle-button-group.d.ts +5 -0
- package/dist/types/components.d.ts +1451 -82
- package/package.json +3 -3
- package/dist/cjs/co-chip.cjs.entry.js +0 -86
- package/dist/cobalt/p-0a506c9d.entry.js +0 -1
- package/dist/cobalt/p-0e8c0d87.entry.js +0 -1
- package/dist/cobalt/p-136ad468.entry.js +0 -1
- package/dist/cobalt/p-14b59277.entry.js +0 -1
- package/dist/cobalt/p-1774d211.entry.js +0 -1
- package/dist/cobalt/p-180e1106.entry.js +0 -1
- package/dist/cobalt/p-1dc9c49e.entry.js +0 -1
- package/dist/cobalt/p-201eaf35.entry.js +0 -1
- package/dist/cobalt/p-260101ab.entry.js +0 -1
- package/dist/cobalt/p-2d2ce434.entry.js +0 -1
- package/dist/cobalt/p-3a257cb0.entry.js +0 -1
- package/dist/cobalt/p-3e187456.entry.js +0 -1
- package/dist/cobalt/p-4431faac.entry.js +0 -1
- package/dist/cobalt/p-456fa86f.entry.js +0 -1
- package/dist/cobalt/p-5890e4d1.entry.js +0 -1
- package/dist/cobalt/p-62274eba.entry.js +0 -1
- package/dist/cobalt/p-635b03d5.entry.js +0 -1
- package/dist/cobalt/p-64ddee92.entry.js +0 -1
- package/dist/cobalt/p-69d4c0c8.entry.js +0 -1
- package/dist/cobalt/p-6c480916.entry.js +0 -1
- package/dist/cobalt/p-8012e152.entry.js +0 -1
- package/dist/cobalt/p-80b27203.entry.js +0 -1
- package/dist/cobalt/p-867c1465.entry.js +0 -1
- package/dist/cobalt/p-86a143d7.entry.js +0 -1
- package/dist/cobalt/p-8dc1dab8.entry.js +0 -1
- package/dist/cobalt/p-92bd9b29.entry.js +0 -1
- package/dist/cobalt/p-98ab5f3f.entry.js +0 -1
- package/dist/cobalt/p-9a088515.entry.js +0 -1
- package/dist/cobalt/p-9abbd436.entry.js +0 -1
- package/dist/cobalt/p-9d69c067.entry.js +0 -1
- package/dist/cobalt/p-CYsftTKf.js +0 -2
- package/dist/cobalt/p-c4f59532.entry.js +0 -1
- package/dist/cobalt/p-e54dd404.entry.js +0 -1
- package/dist/cobalt/p-eb73052a.entry.js +0 -1
- package/dist/cobalt/p-oImf-7fN.js +0 -1
- package/dist/collection/components/co-command-search/commandSearchGroup.js +0 -17
- package/dist/components/p-Ba4v1NXo.js +0 -1
- package/dist/components/p-EPZfLt5l.js +0 -1
- package/dist/components/p-FMnqPWcM.js +0 -1
- package/dist/components/p-Hzh9U2cM.js +0 -1
- package/dist/components/p-WZ06pT2Y.js +0 -1
- package/dist/components/p-tloAgDin.js +0 -1
- package/dist/esm/co-chip.entry.js +0 -84
- package/dist/types/components/co-command-search/commandSearchGroup.d.ts +0 -20
|
@@ -0,0 +1,485 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var index = require('./index-DxEFsH_t.js');
|
|
4
|
+
var normalizeText = require('./normalizeText-B-v-XPKf.js');
|
|
5
|
+
var overlayScroll = require('./overlayScroll-ifzDNeyb.js');
|
|
6
|
+
require('./overlayscrollbars-BlBHo2Xx.js');
|
|
7
|
+
|
|
8
|
+
const coChipCss = () => `:host{display:inline-flex;max-width:var(--co-chip-max-width, none)}.co-chip{display:inline-flex;align-items:center;justify-content:center;font-family:var(--co-font-family-primary);font-weight:400;line-height:1;letter-spacing:var(--co-font-letter-spacing-body);white-space:nowrap;box-sizing:border-box;-webkit-font-smoothing:antialiased;max-width:100%;overflow:hidden;border:1px solid transparent;transition:background 0.15s ease, border-color 0.15s ease, opacity 0.15s ease, box-shadow 0.15s ease;cursor:default;margin:0;padding:0}button.co-chip{cursor:pointer;outline:none}button.co-chip:focus-visible{box-shadow:0 0 0 2px var(--co-semantic-border-focus-ring)}.co-chip__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.co-chip__value{color:var(--co-chip-value-color, var(--co-color-gray-500, #888888))}.co-chip--filled{background:var(--co-chip-bg, var(--co-semantic-surface-muted));color:var(--co-chip-color, var(--co-semantic-text-default));border-color:var(--co-chip-border, transparent)}.co-chip--filled.co-chip--clickable:hover:not(.co-chip--disabled){background:var(--co-color-opacity-negro-8, rgba(0, 0, 0, 0.08))}.co-chip--filled.co-chip--clickable:active:not(.co-chip--disabled){opacity:0.85}.co-chip--filled.co-chip--primary{background:var(--co-semantic-surface-primary);color:var(--co-semantic-on-primary)}.co-chip--filled.co-chip--primary.co-chip--clickable:hover:not(.co-chip--disabled){background:var(--co-semantic-surface-primary);opacity:0.85}.co-chip--filled.co-chip--success{background:var(--co-semantic-status-success);color:#fff}.co-chip--filled.co-chip--error{background:var(--co-semantic-status-error);color:#fff}.co-chip--filled.co-chip--warning{background:var(--co-color-status-review);color:#fff}.co-chip--filled.co-chip--info{background:var(--co-semantic-status-info);color:#fff}.co-chip--filled.co-chip--pending{background:var(--co-color-status-pending);color:#fff}.co-chip--filled.co-chip--progress{background:var(--co-color-status-progress);color:#fff}.co-chip--filled.co-chip--review{background:var(--co-color-status-review);color:#fff}.co-chip--filled.co-chip--submitted{background:var(--co-color-status-submitted);color:#fff}.co-chip--outlined{background:transparent;color:var(--co-semantic-text-default);border-color:var(--co-semantic-border-default)}.co-chip--outlined.co-chip--clickable:hover:not(.co-chip--disabled){background:var(--co-semantic-surface-hover)}.co-chip--outlined.co-chip--clickable:active:not(.co-chip--disabled){background:var(--co-semantic-surface-muted)}.co-chip--outlined.co-chip--primary{color:var(--co-semantic-surface-primary);border-color:var(--co-semantic-surface-primary)}.co-chip--outlined.co-chip--success{color:var(--co-semantic-status-success);border-color:var(--co-semantic-status-success)}.co-chip--outlined.co-chip--error{color:var(--co-semantic-status-error);border-color:var(--co-semantic-status-error)}.co-chip--outlined.co-chip--warning{color:var(--co-color-status-review);border-color:var(--co-color-status-review)}.co-chip--outlined.co-chip--info{color:var(--co-semantic-status-info);border-color:var(--co-semantic-status-info)}.co-chip--filled.co-chip--selected{box-shadow:inset 0 0 0 1px rgba(255, 255, 255, 0.3)}.co-chip--outlined.co-chip--selected{background:var(--co-semantic-surface-muted);border-width:2px}.co-chip--disabled{opacity:0.4;cursor:not-allowed;pointer-events:none}button.co-chip--disabled{pointer-events:auto;}.co-chip--large{font-size:var(--co-font-size-12)}.co-chip--large.co-chip--icon-none{padding:var(--co-spacing-sm) var(--co-spacing-sm2);gap:0}.co-chip--large.co-chip--icon-left{padding:var(--co-spacing-xs) var(--co-spacing-sm2) var(--co-spacing-xs) var(--co-spacing-sm);gap:var(--co-spacing-sm)}.co-chip--large.co-chip--icon-right{padding:var(--co-spacing-xs) var(--co-spacing-xs) var(--co-spacing-xs) var(--co-spacing-sm2);gap:var(--co-spacing-sm)}.co-chip--large.co-chip--icon-both{padding:var(--co-spacing-xs);gap:var(--co-spacing-sm)}.co-chip--small{font-size:var(--co-font-size-10)}.co-chip--small.co-chip--icon-none{padding:var(--co-spacing-xs) var(--co-spacing-sm);gap:0}.co-chip--small.co-chip--icon-left{padding:var(--co-spacing-xs) var(--co-spacing-sm) var(--co-spacing-xs) var(--co-spacing-xs);gap:var(--co-spacing-xs)}.co-chip--small.co-chip--icon-right{padding:var(--co-spacing-xs) var(--co-spacing-xs) var(--co-spacing-xs) var(--co-spacing-sm);gap:var(--co-spacing-xs)}.co-chip--small.co-chip--icon-both{padding:var(--co-spacing-xs);gap:var(--co-spacing-xs)}.co-chip--rounded{border-radius:var(--co-border-radius-full)}.co-chip--square{border-radius:var(--co-spacing-sm)}.co-chip__icon-left,.co-chip__icon-right,.co-chip__dot,.co-chip__trailing{display:inline-flex;flex-shrink:0;align-items:center}.co-chip__trailing{color:var(--co-chip-trailing-color, currentColor)}.co-chip--large .co-chip__icon-left,.co-chip--large .co-chip__icon-right,.co-chip--large .co-chip__dot{width:16px;height:16px}.co-chip--small .co-chip__icon-left,.co-chip--small .co-chip__icon-right,.co-chip--small .co-chip__dot{width:10px;height:10px}.co-chip__remove{display:inline-flex;flex-shrink:0;align-items:center;cursor:pointer;opacity:1;transition:opacity 0.1s ease;border:none;background:transparent;padding:0;color:inherit}.co-chip__remove:hover{opacity:0.7}.co-chip--large .co-chip__remove{width:16px;height:16px}.co-chip--small .co-chip__remove{width:10px;height:10px}::slotted(*){display:inline-flex;width:100%;height:100%}.co-chip.co-chip--filter{height:34px;padding:0 12px;gap:7px;font-size:13.5px;border-radius:var(--co-border-radius-full);background:var(--co-color-base-blanco, #fff);color:var(--co-color-base-negro, #1f1c1b);border-color:transparent;box-shadow:inset 0 0 0 1px var(--co-color-opacity-negro-16, rgba(0, 0, 0, 0.16))}.co-chip--filter .co-chip__icon-left{color:var(--co-color-gray-500, #888888)}.co-chip--filter .co-chip__trailing{color:var(--co-color-gray-400, #a0a0a0)}.co-chip--filter.co-chip--clickable:hover:not(.co-chip--disabled){box-shadow:inset 0 0 0 1px var(--co-color-opacity-negro-25, rgba(0, 0, 0, 0.25))}.co-chip--filter.co-chip--clickable:active:not(.co-chip--disabled){background:var(--co-color-gray-100, #f6f6f6)}.co-chip--filter.co-chip--selected{background:var(--co-color-gray-100, #f6f6f6)}`;
|
|
9
|
+
|
|
10
|
+
const CoChip = class {
|
|
11
|
+
constructor(hostRef) {
|
|
12
|
+
index.registerInstance(this, hostRef);
|
|
13
|
+
this.coRemove = index.createEvent(this, "coRemove", 7);
|
|
14
|
+
this.coClick = index.createEvent(this, "coClick", 7);
|
|
15
|
+
/** Shape: pill or straight corners */
|
|
16
|
+
this.shape = 'rounded';
|
|
17
|
+
/** Size: large (12px text), small (10px text) */
|
|
18
|
+
this.size = 'large';
|
|
19
|
+
/**
|
|
20
|
+
* Icon mode (for slot-based icons):
|
|
21
|
+
* - none = no icon slots
|
|
22
|
+
* - left = icon before label (Figma "1nd Icon")
|
|
23
|
+
* - both = icon before + icon after (Figma "2nd Icon")
|
|
24
|
+
*/
|
|
25
|
+
this.iconMode = 'none';
|
|
26
|
+
/** Visual variant.
|
|
27
|
+
* - filled/outlined = existing tag/chip looks (unchanged defaults).
|
|
28
|
+
* - filter = Cloud Drive filter-trigger pill (white pill, inset hairline
|
|
29
|
+
* ring, tinted leading icon, two-tone value, trailing caret). */
|
|
30
|
+
this.variant = 'filled';
|
|
31
|
+
/** Semantic color */
|
|
32
|
+
this.color = 'default';
|
|
33
|
+
/** Icon weight applied to prop-based iconLeft / iconRight / trailingIcon. */
|
|
34
|
+
this.iconWeight = 'regular';
|
|
35
|
+
/** Show dismiss/remove button and emit coRemove on click. Reflected so it
|
|
36
|
+
* survives lazy hydration when set via a framework wrapper. */
|
|
37
|
+
this.removable = false;
|
|
38
|
+
/** Show a leading colour dot (status/value colour). Reflected for hydration. */
|
|
39
|
+
this.dot = false;
|
|
40
|
+
/** Make the chip clickable (emits coClick) */
|
|
41
|
+
this.clickable = false;
|
|
42
|
+
/** Disabled state */
|
|
43
|
+
this.disabled = false;
|
|
44
|
+
/** Selected / active state */
|
|
45
|
+
this.selected = false;
|
|
46
|
+
this.handleClick = () => {
|
|
47
|
+
if (this.disabled)
|
|
48
|
+
return;
|
|
49
|
+
if (this.clickable)
|
|
50
|
+
this.coClick.emit();
|
|
51
|
+
};
|
|
52
|
+
this.handleRemove = (e) => {
|
|
53
|
+
e.stopPropagation();
|
|
54
|
+
if (this.disabled)
|
|
55
|
+
return;
|
|
56
|
+
this.coRemove.emit();
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
render() {
|
|
60
|
+
const hasLeftSlot = this.iconMode === 'left' || this.iconMode === 'both';
|
|
61
|
+
const hasRightSlot = this.iconMode === 'both' && !this.removable;
|
|
62
|
+
const iconSize = this.size === 'large' ? 16 : 10;
|
|
63
|
+
const removeIconSize = this.size === 'large' ? 16 : 10;
|
|
64
|
+
// Filter-variant trailing caret is a fixed 13px; otherwise match icon size.
|
|
65
|
+
const trailingIconSize = this.variant === 'filter' ? 13 : iconSize;
|
|
66
|
+
// Determine effective icon mode for CSS padding (the dot counts as a left icon).
|
|
67
|
+
const hasAnyLeft = hasLeftSlot || !!this.iconLeft || this.dot;
|
|
68
|
+
const hasAnyRight = hasRightSlot || !!this.iconRight || this.removable || !!this.trailingIcon;
|
|
69
|
+
let effectiveIconMode;
|
|
70
|
+
if (hasAnyLeft && hasAnyRight)
|
|
71
|
+
effectiveIconMode = 'both';
|
|
72
|
+
else if (hasAnyLeft)
|
|
73
|
+
effectiveIconMode = 'left';
|
|
74
|
+
else if (hasAnyRight)
|
|
75
|
+
effectiveIconMode = 'right';
|
|
76
|
+
else
|
|
77
|
+
effectiveIconMode = 'none';
|
|
78
|
+
const Tag = this.clickable ? 'button' : 'div';
|
|
79
|
+
return (index.h(Tag, { key: '3210b69426aa37cc7e1f9cc7d7a9add9fd0dd93b', class: {
|
|
80
|
+
'co-chip': true,
|
|
81
|
+
[`co-chip--${this.shape}`]: true,
|
|
82
|
+
[`co-chip--${this.size}`]: true,
|
|
83
|
+
[`co-chip--icon-${effectiveIconMode}`]: true,
|
|
84
|
+
[`co-chip--${this.variant}`]: true,
|
|
85
|
+
[`co-chip--${this.color}`]: this.color !== 'default',
|
|
86
|
+
'co-chip--clickable': this.clickable,
|
|
87
|
+
'co-chip--disabled': this.disabled,
|
|
88
|
+
'co-chip--selected': this.selected,
|
|
89
|
+
}, part: "chip", type: this.clickable ? 'button' : undefined, disabled: this.clickable ? this.disabled : undefined, onClick: this.handleClick }, this.dot && (index.h("span", { key: '105306abb8267ebec6a4241b85be844ce9e0fe9e', class: "co-chip__dot", part: "dot", style: this.dotColor ? { color: this.dotColor } : undefined }, index.h("co-icon", { key: 'a6e6bbf79ec321916bae16fea448b63f22109bd0', name: "circle", size: iconSize, weight: "fill" }))), this.iconLeft && !hasLeftSlot && (index.h("span", { key: '6ddd3f25eca0380831c10fce157aa042d5195da5', class: "co-chip__icon-left", part: "icon-left" }, index.h("co-icon", { key: 'd331947abb472bede535a794dfae052a021d06b1', name: this.iconLeft, size: iconSize, weight: this.iconWeight }))), hasLeftSlot && (index.h("span", { key: 'ddf803655d633a17901ecab726739ad69ae03d5c', class: "co-chip__icon-left", part: "icon-left" }, index.h("slot", { key: '4602a3f28aa74f31bd7a5124b9ef1a1337f4d960', name: "icon-left" }))), index.h("span", { key: 'aebc08bb058e32d13ef3c962e1cf23cfdbc3baf5', class: "co-chip__label" }, index.h("slot", { key: 'be0e8625634f0b4a9da70944e32bb7d2c80c3a00' }, this.label), this.valueLabel != null && this.valueLabel !== '' && (index.h("span", { key: '11634b783e3a482fe161781658fd22d0ec015265', class: "co-chip__value", part: "value" }, `: ${this.valueLabel}`))), this.iconRight && !hasRightSlot && !this.removable && (index.h("span", { key: '49837e189f540874558c337bce19a983a5bd77f2', class: "co-chip__icon-right", part: "icon-right" }, index.h("co-icon", { key: '6510c33b909da03ef0e6ee59fb52b5c12a5faa86', name: this.iconRight, size: iconSize, weight: this.iconWeight }))), hasRightSlot && (index.h("span", { key: '9c6e6ccea304803daaecf447a5651d5e8a67cc07', class: "co-chip__icon-right", part: "icon-right" }, index.h("slot", { key: '3bdd7c888bba838894b88a41039df45af8f7547c', name: "icon-right" }))), this.removable && (index.h("span", { key: 'a4d45167d0c3fc237692371a131af5a76840a89a', class: "co-chip__remove", part: "remove", role: "button", tabIndex: this.disabled ? -1 : 0, onClick: this.handleRemove, "aria-label": "Remove" }, index.h("co-icon", { key: 'ce146e623ce90a936c54a8bfad349b7ea04691fa', name: "x-circle", size: removeIconSize, weight: "fill" }))), this.trailingIcon && (index.h("span", { key: 'fe01795e08be25909f530d6da4f57cb38b6f8a8e', class: "co-chip__trailing", part: "trailing" }, index.h("co-icon", { key: '2d8c0bba14a8fa9128c9f9673d9d295f191f1e5c', name: this.trailingIcon, size: trailingIconSize, weight: this.iconWeight })))));
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
CoChip.style = coChipCss();
|
|
93
|
+
|
|
94
|
+
// optionListLogic.ts — lógica pura de co-option-list (patrón commandSearchLogic).
|
|
95
|
+
function parseItems(raw) {
|
|
96
|
+
let parsed = raw;
|
|
97
|
+
if (typeof raw === 'string') {
|
|
98
|
+
try {
|
|
99
|
+
parsed = JSON.parse(raw);
|
|
100
|
+
}
|
|
101
|
+
catch (_a) {
|
|
102
|
+
return [];
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return Array.isArray(parsed) ? parsed : [];
|
|
106
|
+
}
|
|
107
|
+
function parseValue(raw) {
|
|
108
|
+
if (!raw)
|
|
109
|
+
return [];
|
|
110
|
+
try {
|
|
111
|
+
const parsed = JSON.parse(raw);
|
|
112
|
+
return Array.isArray(parsed) ? parsed : [raw];
|
|
113
|
+
}
|
|
114
|
+
catch (_a) {
|
|
115
|
+
return [raw];
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Selected-first contra el snapshot tomado al abrir (patrón co-ref-field):
|
|
120
|
+
* idle → bloque seleccionado en orden de snapshot (sintetizando desde
|
|
121
|
+
* snapshotDisplay los que la página actual no contiene) + resto en orden de
|
|
122
|
+
* server; buscando → solo resultados reales, seleccionados primero.
|
|
123
|
+
*
|
|
124
|
+
* Invariante: todo id en `snapshotIds` DEBE tener una entrada correspondiente
|
|
125
|
+
* en `snapshotDisplay` (armado por el caller desde selectedItems ∪ items al
|
|
126
|
+
* tomar el snapshot). Un id sin display-item asociado se cae silenciosamente
|
|
127
|
+
* de la lista en modo idle (el `byId.get(d._id) ?? d` sintetiza desde el
|
|
128
|
+
* display-item mismo, pero no hay nada que sintetizar si el id nunca entró a
|
|
129
|
+
* snapshotDisplay en primer lugar).
|
|
130
|
+
*/
|
|
131
|
+
function orderItems(items, snapshotIds, snapshotDisplay, searching) {
|
|
132
|
+
var _a;
|
|
133
|
+
if (snapshotIds.size === 0)
|
|
134
|
+
return items;
|
|
135
|
+
const byId = new Map(items.map((i) => [i._id, i]));
|
|
136
|
+
const selectedBlock = [];
|
|
137
|
+
if (!searching) {
|
|
138
|
+
for (const d of snapshotDisplay)
|
|
139
|
+
selectedBlock.push((_a = byId.get(d._id)) !== null && _a !== void 0 ? _a : d);
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
for (const i of items)
|
|
143
|
+
if (snapshotIds.has(i._id))
|
|
144
|
+
selectedBlock.push(i);
|
|
145
|
+
}
|
|
146
|
+
const rest = items.filter((i) => !snapshotIds.has(i._id));
|
|
147
|
+
return [...selectedBlock, ...rest];
|
|
148
|
+
}
|
|
149
|
+
/** Aplana a filas de render insertando un header cuando `group` cambia
|
|
150
|
+
* (groupItems de co-command-search). `index` cuenta solo items. */
|
|
151
|
+
function buildRows(items) {
|
|
152
|
+
const rows = [];
|
|
153
|
+
let lastGroup;
|
|
154
|
+
let index = 0;
|
|
155
|
+
for (const it of items) {
|
|
156
|
+
if (it.group && it.group !== lastGroup)
|
|
157
|
+
rows.push({ kind: 'header', label: it.group });
|
|
158
|
+
lastGroup = it.group;
|
|
159
|
+
rows.push({ kind: 'item', item: it, index });
|
|
160
|
+
index++;
|
|
161
|
+
}
|
|
162
|
+
return rows;
|
|
163
|
+
}
|
|
164
|
+
/** Siguiente highlight: wrap, salta disabled. -1 = sin items navegables. */
|
|
165
|
+
function nextActiveIndex(current, delta, items) {
|
|
166
|
+
const positions = [];
|
|
167
|
+
items.forEach((it, idx) => {
|
|
168
|
+
if (!it.disabled)
|
|
169
|
+
positions.push(idx);
|
|
170
|
+
});
|
|
171
|
+
if (positions.length === 0)
|
|
172
|
+
return -1;
|
|
173
|
+
const at = positions.indexOf(current);
|
|
174
|
+
if (at === -1)
|
|
175
|
+
return delta === 1 ? positions[0] : positions[positions.length - 1];
|
|
176
|
+
return positions[(at + delta + positions.length) % positions.length];
|
|
177
|
+
}
|
|
178
|
+
/** `total > 0` tiene precedencia (deriva remaining); si no, vale `hasMoreProp`. */
|
|
179
|
+
function deriveMore(count, total, hasMoreProp) {
|
|
180
|
+
if (total > 0)
|
|
181
|
+
return { hasMore: count < total, remaining: Math.max(0, total - count) };
|
|
182
|
+
return { hasMore: hasMoreProp, remaining: 0 };
|
|
183
|
+
}
|
|
184
|
+
// Misma matemática que la virtualización de co-autocomplete / co-combobox.
|
|
185
|
+
const VIRTUAL_ITEM_HEIGHT = 34;
|
|
186
|
+
const VIRTUAL_VIEWPORT_ITEMS = 8;
|
|
187
|
+
const VIRTUAL_OVERSCAN = 3;
|
|
188
|
+
function virtualSlice(scrollTop, count) {
|
|
189
|
+
const totalHeight = count * VIRTUAL_ITEM_HEIGHT;
|
|
190
|
+
const startIdx = Math.max(0, Math.floor(scrollTop / VIRTUAL_ITEM_HEIGHT) - VIRTUAL_OVERSCAN);
|
|
191
|
+
const endIdx = Math.min(count, startIdx + VIRTUAL_VIEWPORT_ITEMS + VIRTUAL_OVERSCAN * 2);
|
|
192
|
+
return { totalHeight, startIdx, endIdx, offsetY: startIdx * VIRTUAL_ITEM_HEIGHT };
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
const coOptionListCss = () => `.os-size-observer,.os-size-observer-listener{scroll-behavior:auto !important;direction:inherit;pointer-events:none;overflow:hidden;visibility:hidden;box-sizing:border-box}.os-size-observer,.os-size-observer-listener,.os-size-observer-listener-item,.os-size-observer-listener-item-final{writing-mode:horizontal-tb;position:absolute;left:0;top:0}.os-size-observer{z-index:-1;contain:strict;display:flex;flex-direction:row;flex-wrap:nowrap;padding:inherit;border:inherit;box-sizing:inherit;margin:-133px;top:0;right:0;bottom:0;left:0;transform:scale(0.1)}.os-size-observer::before{content:"";flex:none;box-sizing:inherit;padding:10px;width:10px;height:10px}.os-size-observer-appear{animation:os-size-observer-appear-animation 1ms forwards}.os-size-observer-listener{box-sizing:border-box;position:relative;flex:auto;padding:inherit;border:inherit;margin:-133px;transform:scale(calc(1 / 0.1))}.os-size-observer-listener.ltr{margin-right:-266px;margin-left:0}.os-size-observer-listener.rtl{margin-left:-266px;margin-right:0}.os-size-observer-listener:empty::before{content:"";width:100%;height:100%}.os-size-observer-listener:empty::before,.os-size-observer-listener>.os-size-observer-listener-item{display:block;position:relative;padding:inherit;border:inherit;box-sizing:content-box;flex:auto}.os-size-observer-listener-scroll{box-sizing:border-box;display:flex}.os-size-observer-listener-item{right:0;bottom:0;overflow:hidden;direction:ltr;flex:none}.os-size-observer-listener-item-final{transition:none}@keyframes os-size-observer-appear-animation{from{cursor:auto}to{cursor:none}}.os-trinsic-observer{flex:none;box-sizing:border-box;position:relative;max-width:0px;max-height:1px;padding:0;margin:0;border:none;overflow:hidden;z-index:-1;height:0;top:calc(100% + 1px);contain:strict}.os-trinsic-observer:not(:empty){height:calc(100% + 1px);top:-1px}.os-trinsic-observer:not(:empty)>.os-size-observer{width:1000%;height:1000%;min-height:1px;min-width:1px}html[data-overlayscrollbars-body]{overflow:hidden}html[data-overlayscrollbars-body],html[data-overlayscrollbars-body]>body{width:100%;height:100%;margin:0}html[data-overlayscrollbars-body]>body{overflow:visible;margin:0}[data-overlayscrollbars]{position:relative}[data-overlayscrollbars~=host],[data-overlayscrollbars-padding]{display:flex;align-items:stretch !important;flex-direction:row !important;flex-wrap:nowrap !important;scroll-behavior:auto !important}[data-overlayscrollbars-padding],[data-overlayscrollbars-viewport]:not([data-overlayscrollbars]){box-sizing:inherit;position:relative;flex:auto;height:auto;width:100%;min-width:0;padding:0;margin:0;border:none;z-index:0}[data-overlayscrollbars-viewport]:not([data-overlayscrollbars]){--os-vaw:0;--os-vah:0;outline:none}[data-overlayscrollbars-viewport]:not([data-overlayscrollbars]):focus{outline:none}[data-overlayscrollbars-viewport][data-overlayscrollbars-viewport~=arrange]::before{content:"";position:absolute;pointer-events:none;z-index:-1;min-width:1px;min-height:1px;width:var(--os-vaw);height:var(--os-vah)}[data-overlayscrollbars~=host],[data-overlayscrollbars-padding]{overflow:hidden !important}[data-overlayscrollbars~=host][data-overlayscrollbars~=noClipping],[data-overlayscrollbars-padding~=noClipping]{overflow:visible !important}[data-overlayscrollbars-viewport]{--os-viewport-overflow-x:hidden;--os-viewport-overflow-y:hidden;overflow-x:var(--os-viewport-overflow-x);overflow-y:var(--os-viewport-overflow-y)}[data-overlayscrollbars-viewport~=overflowXVisible]{--os-viewport-overflow-x:visible}[data-overlayscrollbars-viewport~=overflowXHidden]{--os-viewport-overflow-x:hidden}[data-overlayscrollbars-viewport~=overflowXScroll]{--os-viewport-overflow-x:scroll}[data-overlayscrollbars-viewport~=overflowYVisible]{--os-viewport-overflow-y:visible}[data-overlayscrollbars-viewport~=overflowYHidden]{--os-viewport-overflow-y:hidden}[data-overlayscrollbars-viewport~=overflowYScroll]{--os-viewport-overflow-y:scroll}[data-overlayscrollbars-viewport~=overflowImportant]{overflow-x:var(--os-viewport-overflow-x) !important;overflow-y:var(--os-viewport-overflow-y) !important}[data-overlayscrollbars-viewport~=noContent]:not(#osFakeId){font-size:0 !important;line-height:0 !important}[data-overlayscrollbars-viewport~=noContent]:not(#osFakeId)::before,[data-overlayscrollbars-viewport~=noContent]:not(#osFakeId)::after,[data-overlayscrollbars-viewport~=noContent]:not(#osFakeId)>*:not(#osFakeId){display:none !important;position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}[data-overlayscrollbars-viewport~=measuring],[data-overlayscrollbars-viewport~=scrolling]{scroll-behavior:auto !important;scroll-snap-type:none !important}[data-overlayscrollbars-viewport~=measuring][data-overlayscrollbars-viewport~=overflowXVisible]{overflow-x:hidden !important}[data-overlayscrollbars-viewport~=measuring][data-overlayscrollbars-viewport~=overflowYVisible]{overflow-y:hidden !important}[data-overlayscrollbars-content]{box-sizing:inherit}[data-overlayscrollbars-contents]:not(#osFakeId):not([data-overlayscrollbars-padding]):not([data-overlayscrollbars-viewport]):not([data-overlayscrollbars-content]){display:contents}[data-overlayscrollbars-grid],[data-overlayscrollbars-grid] [data-overlayscrollbars-padding]{display:grid;grid-template:1fr/1fr}[data-overlayscrollbars-grid]>[data-overlayscrollbars-padding],[data-overlayscrollbars-grid]>[data-overlayscrollbars-viewport],[data-overlayscrollbars-grid]>[data-overlayscrollbars-padding]>[data-overlayscrollbars-viewport]{height:auto !important;width:auto !important}@property --os-scroll-percent{syntax:"<number>";inherits:true;initial-value:0}@property --os-viewport-percent{syntax:"<number>";inherits:true;initial-value:0}.os-scrollbar{--os-viewport-percent:0;--os-scroll-percent:0;--os-scroll-direction:0;--os-scroll-percent-directional:calc( var(--os-scroll-percent) - (var(--os-scroll-percent) + (1 - var(--os-scroll-percent)) * -1) * var(--os-scroll-direction) )}.os-scrollbar{contain:size layout;contain:size layout style;transition:opacity 0.15s, visibility 0.15s, top 0.15s, right 0.15s, bottom 0.15s, left 0.15s;pointer-events:none;position:absolute;opacity:0;visibility:hidden}body>.os-scrollbar{position:fixed;z-index:99999}.os-scrollbar-transitionless{transition:none !important}.os-scrollbar-track{position:relative;padding:0 !important;border:none !important}.os-scrollbar-handle{position:absolute}.os-scrollbar-track,.os-scrollbar-handle{pointer-events:none;width:100%;height:100%}.os-scrollbar.os-scrollbar-track-interactive .os-scrollbar-track,.os-scrollbar.os-scrollbar-handle-interactive .os-scrollbar-handle{pointer-events:auto;touch-action:none}.os-scrollbar-horizontal{bottom:0;left:0}.os-scrollbar-vertical{top:0;right:0}.os-scrollbar-rtl.os-scrollbar-horizontal{right:0}.os-scrollbar-rtl.os-scrollbar-vertical{right:auto;left:0}.os-scrollbar-visible{opacity:1;visibility:visible}.os-scrollbar-auto-hide.os-scrollbar-auto-hide-hidden{opacity:0;visibility:hidden}.os-scrollbar-interaction.os-scrollbar-visible{opacity:1;visibility:visible}.os-scrollbar-unusable,.os-scrollbar-unusable *,.os-scrollbar-wheel,.os-scrollbar-wheel *{pointer-events:none !important}.os-scrollbar-unusable .os-scrollbar-handle{opacity:0 !important;transition:none !important}.os-scrollbar-horizontal .os-scrollbar-handle{bottom:0;left:calc(var(--os-scroll-percent-directional) * 100%);transform:translateX(calc(var(--os-scroll-percent-directional) * -100%));width:calc(var(--os-viewport-percent) * 100%)}.os-scrollbar-vertical .os-scrollbar-handle{right:0;top:calc(var(--os-scroll-percent-directional) * 100%);transform:translateY(calc(var(--os-scroll-percent-directional) * -100%));height:calc(var(--os-viewport-percent) * 100%)}@supports (container-type: size){.os-scrollbar-track{container-type:size}.os-scrollbar-horizontal .os-scrollbar-handle{left:auto;transform:translateX(calc(var(--os-scroll-percent-directional) * 100cqw + var(--os-scroll-percent-directional) * -100%))}.os-scrollbar-vertical .os-scrollbar-handle{top:auto;transform:translateY(calc(var(--os-scroll-percent-directional) * 100cqh + var(--os-scroll-percent-directional) * -100%))}.os-scrollbar-rtl.os-scrollbar-horizontal .os-scrollbar-handle{right:auto;left:0}}.os-scrollbar-rtl.os-scrollbar-vertical .os-scrollbar-handle{right:auto;left:0}.os-scrollbar.os-scrollbar-horizontal.os-scrollbar-cornerless,.os-scrollbar.os-scrollbar-horizontal.os-scrollbar-cornerless.os-scrollbar-rtl{left:0;right:0}.os-scrollbar.os-scrollbar-vertical.os-scrollbar-cornerless,.os-scrollbar.os-scrollbar-vertical.os-scrollbar-cornerless.os-scrollbar-rtl{top:0;bottom:0}@media print{.os-scrollbar{display:none}}.os-scrollbar{--os-size:0;--os-padding-perpendicular:0;--os-padding-axis:0;--os-track-border-radius:0;--os-track-bg:none;--os-track-bg-hover:none;--os-track-bg-active:none;--os-track-border:none;--os-track-border-hover:none;--os-track-border-active:none;--os-handle-border-radius:0;--os-handle-bg:none;--os-handle-bg-hover:none;--os-handle-bg-active:none;--os-handle-border:none;--os-handle-border-hover:none;--os-handle-border-active:none;--os-handle-min-size:33px;--os-handle-max-size:none;--os-handle-perpendicular-size:100%;--os-handle-perpendicular-size-hover:100%;--os-handle-perpendicular-size-active:100%;--os-handle-interactive-area-offset:0}.os-scrollbar-track{border:var(--os-track-border);border-radius:var(--os-track-border-radius);background:var(--os-track-bg);transition:opacity 0.15s, background-color 0.15s, border-color 0.15s}.os-scrollbar-track:hover{border:var(--os-track-border-hover);background:var(--os-track-bg-hover)}.os-scrollbar-track:active{border:var(--os-track-border-active);background:var(--os-track-bg-active)}.os-scrollbar-handle{border:var(--os-handle-border);border-radius:var(--os-handle-border-radius);background:var(--os-handle-bg)}.os-scrollbar-handle:hover{border:var(--os-handle-border-hover);background:var(--os-handle-bg-hover)}.os-scrollbar-handle:active{border:var(--os-handle-border-active);background:var(--os-handle-bg-active)}.os-scrollbar-track:before,.os-scrollbar-handle:before{content:"";position:absolute;left:0;right:0;top:0;bottom:0;display:block}.os-scrollbar-horizontal{padding:var(--os-padding-perpendicular) var(--os-padding-axis);right:var(--os-size);height:var(--os-size)}.os-scrollbar-horizontal.os-scrollbar-rtl{left:var(--os-size);right:0}.os-scrollbar-horizontal .os-scrollbar-track:before{top:calc(var(--os-padding-perpendicular) * -1);bottom:calc(var(--os-padding-perpendicular) * -1)}.os-scrollbar-horizontal .os-scrollbar-handle{min-width:var(--os-handle-min-size);max-width:var(--os-handle-max-size);height:var(--os-handle-perpendicular-size);transition:opacity 0.15s, background-color 0.15s, border-color 0.15s, height 0.15s}.os-scrollbar-horizontal .os-scrollbar-handle:before{top:calc((var(--os-padding-perpendicular) + var(--os-handle-interactive-area-offset)) * -1);bottom:calc(var(--os-padding-perpendicular) * -1)}.os-scrollbar-horizontal:hover .os-scrollbar-handle{height:var(--os-handle-perpendicular-size-hover)}.os-scrollbar-horizontal:active .os-scrollbar-handle{height:var(--os-handle-perpendicular-size-active)}.os-scrollbar-vertical{padding:var(--os-padding-axis) var(--os-padding-perpendicular);bottom:var(--os-size);width:var(--os-size)}.os-scrollbar-vertical .os-scrollbar-track:before{left:calc(var(--os-padding-perpendicular) * -1);right:calc(var(--os-padding-perpendicular) * -1)}.os-scrollbar-vertical .os-scrollbar-handle{min-height:var(--os-handle-min-size);max-height:var(--os-handle-max-size);width:var(--os-handle-perpendicular-size);transition:opacity 0.15s, background-color 0.15s, border-color 0.15s, width 0.15s}.os-scrollbar-vertical .os-scrollbar-handle:before{left:calc((var(--os-padding-perpendicular) + var(--os-handle-interactive-area-offset)) * -1);right:calc(var(--os-padding-perpendicular) * -1)}.os-scrollbar-vertical.os-scrollbar-rtl .os-scrollbar-handle:before{right:calc((var(--os-padding-perpendicular) + var(--os-handle-interactive-area-offset)) * -1);left:calc(var(--os-padding-perpendicular) * -1)}.os-scrollbar-vertical:hover .os-scrollbar-handle{width:var(--os-handle-perpendicular-size-hover)}.os-scrollbar-vertical:active .os-scrollbar-handle{width:var(--os-handle-perpendicular-size-active)}[data-overlayscrollbars-viewport~=measuring]>.os-scrollbar,.os-theme-none.os-scrollbar{display:none !important}.os-theme-dark,.os-theme-light{box-sizing:border-box;--os-size:10px;--os-padding-perpendicular:2px;--os-padding-axis:2px;--os-track-border-radius:10px;--os-handle-interactive-area-offset:4px;--os-handle-border-radius:10px}.os-theme-dark{--os-handle-bg:rgba(0, 0, 0, 0.44);--os-handle-bg-hover:rgba(0, 0, 0, 0.55);--os-handle-bg-active:rgba(0, 0, 0, 0.66)}.os-theme-light{--os-handle-bg:rgba(255, 255, 255, 0.44);--os-handle-bg-hover:rgba(255, 255, 255, 0.55);--os-handle-bg-active:rgba(255, 255, 255, 0.66)}[data-overlayscrollbars-initialize]:not([data-overlayscrollbars-viewport]),[data-overlayscrollbars-viewport~=scrollbarHidden],html[data-overlayscrollbars-viewport~=scrollbarHidden]>body{scrollbar-width:none !important}[data-overlayscrollbars-initialize]:not([data-overlayscrollbars-viewport])::-webkit-scrollbar,[data-overlayscrollbars-initialize]:not([data-overlayscrollbars-viewport])::-webkit-scrollbar-corner,[data-overlayscrollbars-viewport~=scrollbarHidden]::-webkit-scrollbar,[data-overlayscrollbars-viewport~=scrollbarHidden]::-webkit-scrollbar-corner,html[data-overlayscrollbars-viewport~=scrollbarHidden]>body::-webkit-scrollbar,html[data-overlayscrollbars-viewport~=scrollbarHidden]>body::-webkit-scrollbar-corner{-webkit-appearance:none !important;appearance:none !important;display:none !important;width:0 !important;height:0 !important}[data-overlayscrollbars-initialize]:not([data-overlayscrollbars]):not(html):not(body){overflow:auto}:host{display:block;font-family:var(--co-font-family-primary, 'Geist', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif)}.co-option-list{display:flex;flex-direction:column;min-width:0}.co-option-list__search{display:flex;align-items:center;gap:var(--co-spacing-sm, 6px);height:32px;box-sizing:border-box;margin:var(--co-spacing-md, 12px) var(--co-spacing-md, 12px) 0;padding:0 var(--co-spacing-sm2, 8px) 0 var(--co-spacing-xs, 4px);border:1px solid var(--co-semantic-border-subtle, rgba(31, 28, 27, 0.08));border-radius:var(--co-border-radius-xs, 8px);color:var(--co-semantic-text-muted, #888888)}.co-option-list__search:focus-within{border-color:var(--co-semantic-border-focus, rgba(31, 28, 27, 0.25))}.co-option-list__search co-icon{flex-shrink:0;width:24px;display:flex;align-items:center;justify-content:center;opacity:0.7}.co-option-list__search-input{flex:1;min-width:0;border:0;outline:none;background:transparent;padding:0;font-family:var(--co-font-family-primary, 'Geist', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);font-size:var(--co-font-size-12, 12px);font-weight:500;letter-spacing:var(--co-font-letter-spacing-body, -0.03em);line-height:1;color:var(--co-semantic-text-default, #1f1c1b)}.co-option-list__search-input::placeholder{color:var(--co-semantic-text-muted, #888888)}.co-option-list__options{max-height:280px;overflow-y:auto;overflow-x:hidden;padding:var(--co-spacing-md, 12px)}.co-option-list__inner{display:flex;flex-direction:column;gap:var(--co-spacing-xxs, 2px);min-width:0}.os-scrollbar.os-theme-co{--os-size:10px;--os-padding-perpendicular:2px;--os-padding-axis:2px;--os-track-bg:transparent;--os-handle-border-radius:var(--co-border-radius-full, 9999px);--os-handle-bg:var(--co-color-opacity-negro-16, rgba(31, 28, 27, 0.16));--os-handle-bg-hover:var(--co-color-opacity-negro-25, rgba(31, 28, 27, 0.25));--os-handle-bg-active:var(--co-color-opacity-negro-50, rgba(31, 28, 27, 0.5));--os-handle-min-size:24px}.co-option-list__option{display:flex;align-items:center;gap:var(--co-spacing-sm2, 8px);min-width:0;min-height:32px;box-sizing:border-box;padding:var(--co-spacing-xs, 4px) var(--co-spacing-sm2, 8px) var(--co-spacing-xs, 4px) var(--co-spacing-xs, 4px);border-radius:var(--co-border-radius-xs, 8px);cursor:pointer;font-size:var(--co-font-size-12, 12px);letter-spacing:var(--co-font-letter-spacing-body, -0.03em);color:var(--co-semantic-text-default, #1f1c1b);transition:background 0.1s ease}.co-option-list__spacer .co-option-list__option{height:32px;margin-bottom:var(--co-spacing-xxs, 2px)}.co-option-list__option--active{background:var(--co-semantic-surface-hover, rgba(31, 28, 27, 0.04))}.co-option-list__option--selected{background:var(--co-semantic-surface-hover, rgba(31, 28, 27, 0.04))}.co-option-list__option--disabled{opacity:0.5;cursor:not-allowed}.co-option-list__avatar,.co-option-list__icon{flex-shrink:0}.co-option-list__icon{margin:0 var(--co-spacing-xs, 4px)}.co-option-list__dot{flex-shrink:0;width:10px;height:10px;margin:0 7px;border-radius:var(--co-border-radius-full, 9999px)}.co-option-list__text{display:flex;flex-direction:column;gap:var(--co-spacing-xxs, 2px);flex:1;min-width:0}.co-option-list__title{display:flex;align-items:center;gap:var(--co-spacing-xs, 4px);min-width:0}.co-option-list__label{font-weight:400;line-height:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.co-option-list__suffix{color:var(--co-semantic-text-secondary, #585858);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:1}.co-option-list__badge{flex-shrink:0;padding:0 var(--co-spacing-xs, 4px);border-radius:var(--co-border-radius-full, 9999px);background:var(--co-semantic-surface-hover, rgba(31, 28, 27, 0.04));color:var(--co-semantic-text-default, #1f1c1b);font-size:var(--co-font-size-10, 10px);font-weight:600;line-height:16px}.co-option-list__desc{font-size:var(--co-font-size-12, 12px);color:var(--co-semantic-text-muted, #888888);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.co-option-list__match{color:var(--co-color-primary-azul, #2563eb);font-weight:700}.co-option-list__check{flex-shrink:0;color:var(--co-semantic-text-default, #1f1c1b)}.co-option-list__row-action{flex-shrink:0;display:inline-flex;align-items:center;border:0;background:transparent;padding:0;cursor:pointer;color:var(--co-semantic-text-muted, #888888);transition:color 0.15s ease}.co-option-list__row-action:hover{color:var(--co-semantic-text-default, #1f1c1b)}.co-option-list__group{padding:var(--co-spacing-sm2, 8px) var(--co-spacing-xs, 4px) var(--co-spacing-xs, 4px);font-family:var(--co-font-family-mono, 'Geist Mono', 'SFMono-Regular', Consolas, 'Liberation Mono', monospace);font-size:var(--co-font-size-10, 10px);font-weight:400;text-transform:uppercase;letter-spacing:var(--co-font-letter-spacing-overline, 0.08em);line-height:1.1;color:var(--co-semantic-text-default, #1f1c1b)}.co-option-list__clear-row{display:flex;align-items:center;gap:var(--co-spacing-sm2, 8px);width:100%;min-height:32px;box-sizing:border-box;border:0;background:transparent;padding:var(--co-spacing-xs, 4px) var(--co-spacing-sm2, 8px);border-radius:var(--co-border-radius-xs, 8px);cursor:pointer;text-align:left;font-family:var(--co-font-family-primary, 'Geist', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);font-size:var(--co-font-size-12, 12px);letter-spacing:var(--co-font-letter-spacing-body, -0.03em);color:var(--co-semantic-text-secondary, #585858)}.co-option-list__clear-row:hover{background:var(--co-semantic-surface-hover, rgba(31, 28, 27, 0.04))}.co-option-list__loading,.co-option-list__loading-more{display:flex;justify-content:center;padding:var(--co-spacing-sm, 6px)}.co-option-list__empty{display:flex;align-items:center;gap:var(--co-spacing-sm2, 8px);padding:var(--co-spacing-md, 12px) var(--co-spacing-xs, 4px);font-size:var(--co-font-size-12, 12px);color:var(--co-semantic-text-muted, #888888)}.co-option-list__more{padding:var(--co-spacing-xs, 4px) var(--co-spacing-sm, 6px);font-size:var(--co-font-size-12, 12px);color:var(--co-semantic-text-muted, #888888);text-align:center}.co-option-list__option:focus-visible,.co-option-list__clear-row:focus-visible{outline:2px solid var(--co-semantic-border-focus, rgba(31, 28, 27, 0.25));outline-offset:-2px}`;
|
|
196
|
+
|
|
197
|
+
const CoOptionList = class {
|
|
198
|
+
constructor(hostRef) {
|
|
199
|
+
index.registerInstance(this, hostRef);
|
|
200
|
+
this.coSearch = index.createEvent(this, "coSearch", 3);
|
|
201
|
+
this.coChange = index.createEvent(this, "coChange", 3);
|
|
202
|
+
this.coLoadMore = index.createEvent(this, "coLoadMore", 3);
|
|
203
|
+
this.coClearSelection = index.createEvent(this, "coClearSelection", 3);
|
|
204
|
+
this.coRemoveItem = index.createEvent(this, "coRemoveItem", 3);
|
|
205
|
+
// ── Data (controlada) ──────────────────────────────────────
|
|
206
|
+
/** JSON string o array de OptionListItem. */
|
|
207
|
+
this.items = '[]';
|
|
208
|
+
/** Selección actual: id single o JSON array de ids. */
|
|
209
|
+
this.value = '';
|
|
210
|
+
/** Display-items de la selección (para selected-first con ids fuera de página). */
|
|
211
|
+
this.selectedItems = '[]';
|
|
212
|
+
this.multiple = false;
|
|
213
|
+
/** Partición selected-first (snapshot al llamar snapshotOrder()). */
|
|
214
|
+
this.selectedFirst = false;
|
|
215
|
+
/** Afford. del seleccionado: check (combobox/autocomplete) o X deselect (ref-field). */
|
|
216
|
+
this.selectedAffordance = 'check';
|
|
217
|
+
/** Botón remove por fila seleccionada en multiple (tags de combobox). */
|
|
218
|
+
this.removableItems = false;
|
|
219
|
+
// ── Search integrado (opcional) ────────────────────────────
|
|
220
|
+
this.searchable = false;
|
|
221
|
+
this.searchPlaceholder = 'Search…';
|
|
222
|
+
this.searchDebounce = 350;
|
|
223
|
+
/** Pre-seed del término (modo convert de las celdas). */
|
|
224
|
+
this.initialTerm = '';
|
|
225
|
+
// ── Estados ────────────────────────────────────────────────
|
|
226
|
+
this.loading = false;
|
|
227
|
+
/** Total del server: deriva hasMore + hint "N more results". */
|
|
228
|
+
this.total = 0;
|
|
229
|
+
/** Fallback cuando el host no conoce totales (⌘K). total>0 manda. */
|
|
230
|
+
this.hasMore = false;
|
|
231
|
+
this.emptyMessage = 'No results found';
|
|
232
|
+
/** Si se setea y hay selección, fila "quitar selección" al tope. */
|
|
233
|
+
this.clearOptionLabel = '';
|
|
234
|
+
// ── Presentación ───────────────────────────────────────────
|
|
235
|
+
/** Lista virtualizada (autocomplete/combobox). Ignora `group`. */
|
|
236
|
+
this.virtual = false;
|
|
237
|
+
/** Resalta el match del término en los labels. */
|
|
238
|
+
this.highlightMatches = false;
|
|
239
|
+
/** Término externo para highlight (input en el host, p.ej. ⌘K). */
|
|
240
|
+
this.highlightTerm = '';
|
|
241
|
+
this.avatarShape = 'circle';
|
|
242
|
+
// ── Navegación ─────────────────────────────────────────────
|
|
243
|
+
/** Auto-resalta la primera fila navegable al montar y en cada cambio de
|
|
244
|
+
* items (paridad command-palette: tipear + Enter = primer resultado).
|
|
245
|
+
* Salta filas disabled vía nextActiveIndex. */
|
|
246
|
+
this.autoHighlight = false;
|
|
247
|
+
this.term = '';
|
|
248
|
+
this.activeIndex = -1;
|
|
249
|
+
this.scrollTop = 0;
|
|
250
|
+
/** Snapshot selected-first (ver snapshotOrder). */
|
|
251
|
+
this.sortSnapshot = new Set();
|
|
252
|
+
this.displaySnapshot = [];
|
|
253
|
+
/**
|
|
254
|
+
* Enter sobre un control real (footer, fila clear) activa ese control
|
|
255
|
+
* nativamente — nunca el highlight (regla heredada de CellRefPicker).
|
|
256
|
+
*/
|
|
257
|
+
this.onRootKeyDown = (e) => {
|
|
258
|
+
var _a, _b;
|
|
259
|
+
if (e.key === 'Enter') {
|
|
260
|
+
const origin = (((_a = e.composedPath) === null || _a === void 0 ? void 0 : _a.call(e)[0]) || e.target);
|
|
261
|
+
// `instanceof HTMLElement`, NO `Element`: el decorador `@Element` importado
|
|
262
|
+
// de `@stencil/core` arriba shadowea el nombre global `Element` en este
|
|
263
|
+
// módulo, así que `origin instanceof Element` referenciaría el decorador
|
|
264
|
+
// (siempre false / rompe el narrowing de TS) en vez del DOM Element.
|
|
265
|
+
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')))
|
|
266
|
+
return;
|
|
267
|
+
}
|
|
268
|
+
if (this.processKey(e.key))
|
|
269
|
+
e.preventDefault();
|
|
270
|
+
};
|
|
271
|
+
this.onSearchInput = (e) => {
|
|
272
|
+
const v = e.target.value;
|
|
273
|
+
this.term = v;
|
|
274
|
+
this.activeIndex = -1;
|
|
275
|
+
if (this.debounceTimer)
|
|
276
|
+
clearTimeout(this.debounceTimer);
|
|
277
|
+
this.debounceTimer = setTimeout(() => this.coSearch.emit(v), this.searchDebounce);
|
|
278
|
+
};
|
|
279
|
+
this.onNativeScroll = (e) => {
|
|
280
|
+
// Fallback pre-OverlayScrollbars (primer frame) — misma lógica.
|
|
281
|
+
const el = e.target;
|
|
282
|
+
this.scrollTop = el.scrollTop;
|
|
283
|
+
this.maybeLoadMore(el.scrollTop, el.clientHeight, el.scrollHeight);
|
|
284
|
+
};
|
|
285
|
+
}
|
|
286
|
+
// ── Parsed ─────────────────────────────────────────────────
|
|
287
|
+
get parsedItems() { return parseItems(this.items); }
|
|
288
|
+
get selectedIds() { return parseValue(this.value); }
|
|
289
|
+
get orderedItems() {
|
|
290
|
+
if (!this.selectedFirst)
|
|
291
|
+
return this.parsedItems;
|
|
292
|
+
return orderItems(this.parsedItems, this.sortSnapshot, this.displaySnapshot, !!this.term);
|
|
293
|
+
}
|
|
294
|
+
get effectiveHighlightTerm() {
|
|
295
|
+
if (!this.highlightMatches)
|
|
296
|
+
return '';
|
|
297
|
+
return this.searchable ? this.term : this.highlightTerm;
|
|
298
|
+
}
|
|
299
|
+
// ── Lifecycle ──────────────────────────────────────────────
|
|
300
|
+
componentWillLoad() {
|
|
301
|
+
this.term = this.initialTerm || '';
|
|
302
|
+
this.takeSnapshot();
|
|
303
|
+
if (this.autoHighlight)
|
|
304
|
+
this.activeIndex = nextActiveIndex(-1, 1, this.orderedItems);
|
|
305
|
+
}
|
|
306
|
+
componentDidRender() {
|
|
307
|
+
// OverlayScrollbars sobre el contenedor; wrapper interno estable para que
|
|
308
|
+
// Stencil pueda seguir agregando filas (infinite scroll) sin pelear con
|
|
309
|
+
// la reestructuración de DOM de OS (patrón co-ref-field).
|
|
310
|
+
if (this.optionsEl && !this.osInstance) {
|
|
311
|
+
this.osInstance = overlayScroll.initOverlayScroll(this.optionsEl, (vp) => {
|
|
312
|
+
this.scrollTop = vp.scrollTop;
|
|
313
|
+
this.maybeLoadMore(vp.scrollTop, vp.clientHeight, vp.scrollHeight);
|
|
314
|
+
});
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
disconnectedCallback() {
|
|
318
|
+
var _a;
|
|
319
|
+
if (this.debounceTimer)
|
|
320
|
+
clearTimeout(this.debounceTimer);
|
|
321
|
+
(_a = this.osInstance) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
322
|
+
this.osInstance = undefined;
|
|
323
|
+
}
|
|
324
|
+
onItemsChange() {
|
|
325
|
+
// Nueva página / nuevos resultados: si autoHighlight, re-resalta la primera fila
|
|
326
|
+
// navegable (paridad command-palette); si no, solo resetea cuando el highlight
|
|
327
|
+
// quedó fuera de rango.
|
|
328
|
+
if (this.autoHighlight) {
|
|
329
|
+
this.activeIndex = nextActiveIndex(-1, 1, this.orderedItems);
|
|
330
|
+
}
|
|
331
|
+
else if (this.activeIndex >= this.orderedItems.length) {
|
|
332
|
+
this.activeIndex = -1;
|
|
333
|
+
}
|
|
334
|
+
// Clamp defensivo del scroll virtual: si la nueva lista es más corta que el
|
|
335
|
+
// scrollTop actual (p.ej. búsqueda que redujo drásticamente el resultset),
|
|
336
|
+
// reencuadra dentro de rango. NO resetear a 0 incondicionalmente — eso
|
|
337
|
+
// rompería el infinite scroll por append (la lista crece hacia abajo y el
|
|
338
|
+
// usuario sigue viendo su posición de scroll).
|
|
339
|
+
const maxScrollTop = Math.max(0, this.orderedItems.length * VIRTUAL_ITEM_HEIGHT - VIRTUAL_VIEWPORT_ITEMS * VIRTUAL_ITEM_HEIGHT);
|
|
340
|
+
if (this.scrollTop > this.orderedItems.length * VIRTUAL_ITEM_HEIGHT) {
|
|
341
|
+
this.scrollTop = maxScrollTop;
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
// ── Métodos públicos ───────────────────────────────────────
|
|
345
|
+
/** Re-toma el snapshot selected-first. El host la llama al abrir su panel. */
|
|
346
|
+
async snapshotOrder() {
|
|
347
|
+
this.takeSnapshot();
|
|
348
|
+
}
|
|
349
|
+
/**
|
|
350
|
+
* Enfoca el input de búsqueda esperando visibilidad real: el panel del host
|
|
351
|
+
* se vuelve visible frames después (showPopover/position en rAF) y focus()
|
|
352
|
+
* sobre subtree oculto es no-op silencioso. Reintenta ~20 frames.
|
|
353
|
+
*/
|
|
354
|
+
async focusSearch() {
|
|
355
|
+
var _a, _b;
|
|
356
|
+
for (let i = 0; i < 20; i++) {
|
|
357
|
+
(_a = this.searchInputEl) === null || _a === void 0 ? void 0 : _a.focus();
|
|
358
|
+
if (this.searchInputEl && ((_b = this.el.shadowRoot) === null || _b === void 0 ? void 0 : _b.activeElement) === this.searchInputEl)
|
|
359
|
+
return;
|
|
360
|
+
await new Promise((resolve) => requestAnimationFrame(() => resolve()));
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
/** Navegación para hosts con input externo. true = tecla consumida (host hace preventDefault). */
|
|
364
|
+
async handleKey(e) {
|
|
365
|
+
return this.processKey(e.key);
|
|
366
|
+
}
|
|
367
|
+
// ── Internos ───────────────────────────────────────────────
|
|
368
|
+
takeSnapshot() {
|
|
369
|
+
this.sortSnapshot = new Set(this.selectedIds);
|
|
370
|
+
const byId = new Map();
|
|
371
|
+
for (const it of parseItems(this.selectedItems))
|
|
372
|
+
byId.set(it._id, it);
|
|
373
|
+
for (const it of this.parsedItems)
|
|
374
|
+
if (!byId.has(it._id))
|
|
375
|
+
byId.set(it._id, it);
|
|
376
|
+
this.displaySnapshot = this.selectedIds
|
|
377
|
+
.map((id) => byId.get(id))
|
|
378
|
+
.filter(Boolean);
|
|
379
|
+
}
|
|
380
|
+
processKey(key) {
|
|
381
|
+
const items = this.orderedItems;
|
|
382
|
+
switch (key) {
|
|
383
|
+
case 'ArrowDown':
|
|
384
|
+
this.activeIndex = nextActiveIndex(this.activeIndex, 1, items);
|
|
385
|
+
this.scrollActiveIntoView();
|
|
386
|
+
return true;
|
|
387
|
+
case 'ArrowUp':
|
|
388
|
+
this.activeIndex = nextActiveIndex(this.activeIndex, -1, items);
|
|
389
|
+
this.scrollActiveIntoView();
|
|
390
|
+
return true;
|
|
391
|
+
case 'Enter': {
|
|
392
|
+
// Enter con un fetch in-flight pickearía de la lista STALE (race
|
|
393
|
+
// detectada en smoke: el usuario teclea y confirma antes de que
|
|
394
|
+
// lleguen los resultados). Se consume sin actuar; el siguiente
|
|
395
|
+
// Enter opera sobre la lista fresca.
|
|
396
|
+
if (this.loading)
|
|
397
|
+
return true;
|
|
398
|
+
const item = items[this.activeIndex];
|
|
399
|
+
if (item && !item.disabled) {
|
|
400
|
+
this.pick(item);
|
|
401
|
+
return true;
|
|
402
|
+
}
|
|
403
|
+
return false;
|
|
404
|
+
}
|
|
405
|
+
default:
|
|
406
|
+
return false;
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
pick(item) {
|
|
410
|
+
if (this.multiple) {
|
|
411
|
+
const current = this.selectedIds;
|
|
412
|
+
const idx = current.indexOf(item._id);
|
|
413
|
+
const next = idx >= 0 ? current.filter((id) => id !== item._id) : [...current, item._id];
|
|
414
|
+
this.coChange.emit({ value: next, item });
|
|
415
|
+
}
|
|
416
|
+
else {
|
|
417
|
+
this.coChange.emit({ value: item._id, item });
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
maybeLoadMore(scrollTop, clientHeight, scrollHeight) {
|
|
421
|
+
if (this.loading)
|
|
422
|
+
return;
|
|
423
|
+
const { hasMore } = deriveMore(this.parsedItems.length, this.total, this.hasMore);
|
|
424
|
+
if (hasMore && scrollTop + clientHeight >= scrollHeight - 40)
|
|
425
|
+
this.coLoadMore.emit();
|
|
426
|
+
}
|
|
427
|
+
scrollActiveIntoView() {
|
|
428
|
+
requestAnimationFrame(() => {
|
|
429
|
+
var _a, _b;
|
|
430
|
+
(_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' });
|
|
431
|
+
});
|
|
432
|
+
}
|
|
433
|
+
// ── Render helpers ─────────────────────────────────────────
|
|
434
|
+
renderLeading(item) {
|
|
435
|
+
if (item.image || item.avatar) {
|
|
436
|
+
return (index.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 }));
|
|
437
|
+
}
|
|
438
|
+
if (item.color)
|
|
439
|
+
return index.h("span", { class: "co-option-list__dot", style: { backgroundColor: item.color } });
|
|
440
|
+
if (item.icon)
|
|
441
|
+
return index.h("co-icon", { name: item.icon, size: 16, class: "co-option-list__icon" });
|
|
442
|
+
return null;
|
|
443
|
+
}
|
|
444
|
+
renderLabelText(label) {
|
|
445
|
+
const term = this.effectiveHighlightTerm;
|
|
446
|
+
const seg = term ? normalizeText.highlightMatch(label, term) : null;
|
|
447
|
+
if (!seg)
|
|
448
|
+
return label;
|
|
449
|
+
return [seg.pre, index.h("span", { class: "co-option-list__match" }, seg.match), seg.post];
|
|
450
|
+
}
|
|
451
|
+
renderRow(item, index$1, selectedIds) {
|
|
452
|
+
const isSelected = selectedIds.includes(item._id);
|
|
453
|
+
return (index.h("div", { class: {
|
|
454
|
+
'co-option-list__option': true,
|
|
455
|
+
'co-option-list__option--selected': isSelected,
|
|
456
|
+
'co-option-list__option--active': index$1 === this.activeIndex,
|
|
457
|
+
'co-option-list__option--disabled': !!item.disabled,
|
|
458
|
+
}, key: item._id, id: `co-optlist-${index$1}`, role: "option", "aria-selected": isSelected ? 'true' : 'false', "aria-disabled": item.disabled ? 'true' : 'false', onClick: () => !item.disabled && this.pick(item), onMouseEnter: () => { this.activeIndex = index$1; } }, this.renderLeading(item), index.h("div", { class: "co-option-list__text" }, index.h("span", { class: "co-option-list__title" }, index.h("span", { class: "co-option-list__label", style: item.labelColor ? { color: item.labelColor, fontWeight: '600' } : undefined }, this.renderLabelText(item.label)), item.suffix && index.h("span", { class: "co-option-list__suffix" }, "- ", item.suffix), item.badge && (index.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 && index.h("span", { class: "co-option-list__desc" }, item.description)), isSelected && this.removableItems && this.multiple && (index.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); } }, index.h("co-icon", { name: "x-circle", size: 16, weight: "fill" }))), isSelected && !this.removableItems && this.selectedAffordance === 'deselect' && (index.h("button", { class: "co-option-list__row-action", type: "button", tabIndex: -1, "aria-label": `Deselect ${item.label}`, onClick: (e) => { e.stopPropagation(); this.pick(item); } }, index.h("co-icon", { name: "x-circle", size: 16, weight: "fill" }))), isSelected && !this.removableItems && this.selectedAffordance === 'check' && (index.h("co-icon", { name: "check", size: 16, class: "co-option-list__check" }))));
|
|
459
|
+
}
|
|
460
|
+
renderVirtual(items, selectedIds) {
|
|
461
|
+
const { totalHeight, startIdx, endIdx, offsetY } = virtualSlice(this.scrollTop, items.length);
|
|
462
|
+
return (index.h("div", { class: "co-option-list__spacer", style: { height: `${totalHeight}px`, position: 'relative' } }, index.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)))));
|
|
463
|
+
}
|
|
464
|
+
render() {
|
|
465
|
+
const items = this.orderedItems;
|
|
466
|
+
const selectedIds = this.selectedIds;
|
|
467
|
+
const { hasMore, remaining } = deriveMore(this.parsedItems.length, this.total, this.hasMore);
|
|
468
|
+
const showClear = !!this.clearOptionLabel && selectedIds.length > 0;
|
|
469
|
+
return (index.h("div", { key: 'f6262519bd90bb9a419daeb9a1386147396a79ff', class: "co-option-list", onKeyDown: this.onRootKeyDown }, this.searchable && (index.h("div", { key: '081a2cfee9a8a903c6bd2a2f0bd06cbac635c021', class: "co-option-list__search", part: "search" }, index.h("co-icon", { key: 'a001c71f5de00288907cde1e123f8d393e052a9e', name: "magnifying-glass", size: 16 }), index.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" }))), index.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 }, index.h("div", { key: '10da99a56133af0748f43c20af62e03e975aebcd', class: "co-option-list__inner" }, showClear && (index.h("button", { key: '208bc13eb8e89c88657022fbc174bb22ffe9e1c4', class: "co-option-list__clear-row", type: "button", onClick: () => this.coClearSelection.emit() }, index.h("co-icon", { key: '8c6d29e405a12e53bd3ab9f1662c7237bcae0617', name: "x-circle", size: 14 }), index.h("span", { key: 'd7e11cc7753c8dd63ae6a556bf5368c01ea1fc2a' }, this.clearOptionLabel))), this.loading && items.length === 0 && (index.h("div", { key: 'dec374969fe6b401a95d60d101cc625c181f3e72', class: "co-option-list__loading" }, index.h("co-loader", { key: 'c1547fc0f49911f2f8ab8b85063bf15af6500314', size: "sm" }))), !this.loading && items.length === 0 && (index.h("div", { key: '1e0692572f89d4f9507f1e4b8c4ef90f9f8d307c', class: "co-option-list__empty" }, index.h("co-icon", { key: 'ff979119305afdd7b2180336c203ff33adc3c463', name: "magnifying-glass", size: 20 }), index.h("span", { key: '9d460743d6edf7734012d75cabb0f488b67d20cf' }, this.emptyMessage))), items.length > 0 && this.virtual
|
|
470
|
+
? this.renderVirtual(items, selectedIds)
|
|
471
|
+
: buildRows(items).map((row) => row.kind === 'header'
|
|
472
|
+
? index.h("div", { class: "co-option-list__group", role: "presentation" }, row.label)
|
|
473
|
+
: this.renderRow(row.item, row.index, selectedIds)), this.loading && items.length > 0 && (index.h("div", { key: 'f9c506fddfba9d360a7dd4b2d4ed4142aaa179c5', class: "co-option-list__loading-more" }, index.h("co-loader", { key: '587d93ebd03eb3764e5637c748975c925d1bd59f', size: "sm" }))), !this.loading && hasMore && remaining > 0 && (index.h("div", { key: 'cef0c72b2aa1f246404001bae6c8ee4ea560ee07', class: "co-option-list__more" }, remaining, " more results")))), index.h("slot", { key: '646b6421fb03008d55e5361e14f12d05db08e299', name: "footer" })));
|
|
474
|
+
}
|
|
475
|
+
get el() { return index.getElement(this); }
|
|
476
|
+
static get watchers() { return {
|
|
477
|
+
"items": [{
|
|
478
|
+
"onItemsChange": 0
|
|
479
|
+
}]
|
|
480
|
+
}; }
|
|
481
|
+
};
|
|
482
|
+
CoOptionList.style = coOptionListCss();
|
|
483
|
+
|
|
484
|
+
exports.co_chip = CoChip;
|
|
485
|
+
exports.co_option_list = CoOptionList;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
4
|
-
var requiredMark = require('./requiredMark-
|
|
3
|
+
var index = require('./index-DxEFsH_t.js');
|
|
4
|
+
var requiredMark = require('./requiredMark-B3pKyqYI.js');
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Default color presets derived from Cobalt design tokens (base.json).
|
|
@@ -99,10 +99,10 @@ const CoColorPicker = class {
|
|
|
99
99
|
const presets = this.parsedPresets;
|
|
100
100
|
const hasValue = !!this.value;
|
|
101
101
|
const statusClass = this.status !== 'default' ? `co-color-picker--${this.status}` : '';
|
|
102
|
-
return (index.h("div", { key: '
|
|
102
|
+
return (index.h("div", { key: 'cf82d2fe5d1ca59a0be4edbd98f2f127cbb0666c', class: `co-color-picker co-color-picker--${this.size} ${statusClass} ${this.isOpen ? 'co-color-picker--open' : ''} ${this.disabled ? 'co-color-picker--disabled' : ''}` }, this.label && (index.h("label", { key: 'ad0e372b32b0e7d5294609b7a952e8d4fb633447', class: "co-color-picker__label" }, this.label, index.h(requiredMark.RequiredMark, { key: '9976b6350be9c69a5db48079cdcc32b597b99e4f', required: this.required }))), index.h("co-popover", { key: 'e50a584f035be8e4cb7d18968c16e6dfe5b8fad2', open: this.isOpen, placement: "bottom-start", matchWidth: true, offset: 4, onCoOpen: this.handlePopoverOpen, onCoClose: this.handlePopoverClose }, index.h("div", { key: '79bfb8856c30be5bbedf2471651eafabf4c2faa5', slot: "trigger", class: "co-color-picker__trigger" }, index.h("span", { key: '468b9f7f6a63297086f48938155bea1a5a82ec04', class: "co-color-picker__swatch", style: { background: hasValue ? this.value : 'transparent' } }), index.h("span", { key: '727966662cfa0c6647d66f0268eca9f77452c46d', class: `co-color-picker__value ${!hasValue ? 'co-color-picker__value--empty' : ''}` }, hasValue ? this.value : this.placeholder)), this.isOpen && (index.h("div", { key: '25df03b58bf3a690e524f53d53a16fe299f019ed', class: "co-color-picker__panel" }, index.h("div", { key: 'd102f3c6b266046dc2b8d6d7536d25aa2dffb79c', class: "co-color-picker__grid" }, presets.map((preset) => {
|
|
103
103
|
var _a;
|
|
104
104
|
return (index.h("button", { type: "button", key: preset.value, class: `co-color-picker__grid-item ${preset.value.toUpperCase() === ((_a = this.value) === null || _a === void 0 ? void 0 : _a.toUpperCase()) ? 'co-color-picker__grid-item--selected' : ''}`, style: { background: preset.value }, title: preset.name, onClick: () => this.handleSwatchClick(preset.value) }));
|
|
105
|
-
})), hasValue && (index.h("div", { key: '
|
|
105
|
+
})), hasValue && (index.h("div", { key: '4897fc8e3c3d371b23b7ae6c9e5c04c92dfe27df', class: "co-color-picker__hex-row" }, index.h("span", { key: '625828e841d8f8b545ee6119d74e839eca80841e', class: "co-color-picker__hex-prefix" }, "#"), index.h("span", { key: '00f73948a453f2db74103ab1d49013e999d13b1f', class: "co-color-picker__hex-value" }, this.value.replace(/^#/, '')), index.h("button", { key: 'c87e69f32065bf05dcad1eaa73cf21d028abf93c', type: "button", class: `co-color-picker__copy-btn ${this.copied ? 'co-color-picker__copy-btn--copied' : ''}`, title: "Copy", onClick: () => this.handleCopy() }, index.h("co-icon", { key: 'bf8e7abbb52e543bb4335acc577b268cce40c2be', name: this.copied ? 'check' : 'copy', size: 16 }))))))), this.helperText && (index.h("div", { key: '368cf0c7f3877c1a6fd35c992b6543862b1cebc8', class: "co-color-picker__helper" }, this.statusIcon && (index.h("co-icon", { key: '5b9f3568320860fde1d701ef6e5d9b3475903d8c', name: this.statusIcon, size: 14, weight: "fill", class: "co-color-picker__helper-icon" })), index.h("span", { key: '5a480e0edaf010df948e8f73e9befa70f88b0865', class: "co-color-picker__helper-text" }, this.helperText)))));
|
|
106
106
|
}
|
|
107
107
|
get el() { return index.getElement(this); }
|
|
108
108
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
3
|
+
var index = require('./index-DxEFsH_t.js');
|
|
4
4
|
var normalizeText = require('./normalizeText-B-v-XPKf.js');
|
|
5
5
|
|
|
6
6
|
/**
|
|
@@ -423,13 +423,13 @@ const CoColumnPicker = class {
|
|
|
423
423
|
return (index.h("div", { class: "co-column-picker__empty" }, index.h("co-icon", { name: "magnifying-glass", size: 40, class: "co-column-picker__empty-icon" }), index.h("span", null, this.emptyText)));
|
|
424
424
|
}
|
|
425
425
|
render() {
|
|
426
|
-
return (index.h("div", { key: '
|
|
426
|
+
return (index.h("div", { key: '2666e34dab21c03638a74bb5aa49ab0e886a0693', class: {
|
|
427
427
|
'co-column-picker': true,
|
|
428
428
|
'co-column-picker--open': this.isOpen,
|
|
429
429
|
'co-column-picker--disabled': this.disabled,
|
|
430
430
|
'co-column-picker--focused': this.focused,
|
|
431
431
|
[`co-column-picker--${this.status}`]: this.status !== 'default',
|
|
432
|
-
} }, (this.label || this.secondaryLabel) && (index.h("div", { key: '
|
|
432
|
+
} }, (this.label || this.secondaryLabel) && (index.h("div", { key: '14278387662b21beb294db48c0758fc6ff265676', class: "co-column-picker__labels" }, this.label && index.h("label", { key: '3f96a7fc4f4c41a4dfd96461b68c3f5b58bb681c', class: "co-column-picker__label" }, this.label), this.secondaryLabel && index.h("span", { key: '96c8aee4265a6a1714d17ab91035bb635df4a925', class: "co-column-picker__secondary-label" }, this.secondaryLabel))), this.renderField(), this.isOpen && (index.h("div", { key: '71ec0116e86706c139eba9a2368c238e527c2251', class: "co-column-picker__dropdown" }, this.showSearch && (index.h("div", { key: 'b17441aa3d0d73dab3b16ae7d9f2d0796968c9da', class: "co-column-picker__search" }, index.h("co-icon", { key: '007c2975b633af4bfde6248372b24cf0a2f9b862', name: "magnifying-glass", size: 14, class: "co-column-picker__search-icon" }), index.h("input", { key: 'd6bbaf600cc3f2ed2e490d095045a744b46bed8d', ref: el => (this.searchInputEl = el), class: "co-column-picker__search-input", type: "text", value: this.query, placeholder: this.placeholder, onInput: this.handleSearchInput, onClick: (e) => e.stopPropagation() }), this.query && (index.h("button", { key: 'ba292c3f2ee4fcfb73d1360d681c5ed2ccdd0f41', class: "co-column-picker__search-clear", type: "button", onClick: this.handleSearchClear }, index.h("co-icon", { key: '1ec246b29fb288351153e896b2014b8f4fdec62c', name: "x", size: 14 }))))), this.showToolbar && this.multiple && (index.h("div", { key: '007a4067b4c369f076eef0e5068419ad1ad7717b', class: "co-column-picker__toolbar" }, index.h("button", { key: 'd4ad1c99e81cba77cce7d7f8a121b16398b4b462', class: "co-column-picker__toolbar-btn", type: "button", onClick: this.handleSelectAll }, this.selectAllText), index.h("button", { key: '2ac4546a1375c337363c905a1262082f4ec4ac25', class: "co-column-picker__toolbar-btn", type: "button", onClick: this.handleDeselectAll }, this.clearText), index.h("span", { key: '053b07244ea82a1d83eadc0f3e0d7f3c79df3f1c', class: "co-column-picker__toolbar-sep" }), index.h("button", { key: '0568ea5680716dc2560ca93e89dbb0649145f552', class: "co-column-picker__toolbar-btn", type: "button", onClick: this.handleExpandAll }, this.expandText), index.h("button", { key: '6538744f86c59489871040bed656a85220fbdb1c', class: "co-column-picker__toolbar-btn", type: "button", onClick: this.handleCollapseAll }, this.collapseText), index.h("span", { key: 'd0c4294e408378f9613655f9f1a8665fff4bc866', style: { flex: '1' } }), this.selectedValues.length > 0 && index.h("span", { key: '5dc6510896ca75e4d1d62608ca9fd0c46daa2158', class: "co-column-picker__toolbar-counter" }, this.selectedValues.length, " ", this.selectedText))), index.h("div", { key: 'bb7a021742ab70da4d1c8b29b58944a826d50399', class: "co-column-picker__scroll", style: { maxHeight: `${this.maxHeight}px` } }, this.renderTree()))), this.helperText && (index.h("div", { key: '8135e8db252ad8de777683d308e7440f7902d281', class: `co-column-picker__helper co-column-picker__helper--${this.status}` }, this.statusIcon && index.h("co-icon", { key: 'cd2416dde35f709547185a893cd61c981be0de3f', name: this.statusIcon, size: 14, weight: "fill", class: "co-column-picker__helper-icon" }), index.h("span", { key: 'eb8b1353ec98c16360ad13484944879046235339', class: "co-column-picker__helper-text" }, this.helperText)))));
|
|
433
433
|
}
|
|
434
434
|
get el() { return index.getElement(this); }
|
|
435
435
|
static get watchers() { return {
|