@prolibu-suite/cobalt-core 0.9.3 → 0.9.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/custom-elements.json +375 -25
- package/dist/cjs/co-audio-player.cjs.entry.js +107 -18
- package/dist/cjs/co-avatar_2.cjs.entry.js +7 -31
- package/dist/cjs/co-button.cjs.entry.js +6 -4
- package/dist/cjs/co-calendar-month_2.cjs.entry.js +59 -2
- package/dist/cjs/co-checkbox.cjs.entry.js +10 -4
- package/dist/cjs/co-chip_2.cjs.entry.js +388 -18
- package/dist/cjs/co-color-picker.cjs.entry.js +36 -3
- package/dist/cjs/co-combobox.cjs.entry.js +44 -4
- package/dist/cjs/co-event-popover.cjs.entry.js +5 -2
- package/dist/cjs/co-file-field.cjs.entry.js +12 -6
- package/dist/cjs/co-icon-button.cjs.entry.js +5 -2
- package/dist/cjs/co-icon.cjs.entry.js +17 -1
- package/dist/cjs/co-input.cjs.entry.js +21 -1
- package/dist/cjs/co-loader.cjs.entry.js +1 -1
- package/dist/cjs/co-number-field.cjs.entry.js +22 -2
- package/dist/cjs/co-ref-field.cjs.entry.js +99 -13
- package/dist/cjs/co-select.cjs.entry.js +273 -8
- package/dist/cjs/co-tags-field.cjs.entry.js +1 -1
- package/dist/cjs/cobalt.cjs.js +1 -1
- package/dist/cjs/color-YhUkm10t.js +32 -0
- package/dist/cjs/fieldChip-BLzo9MEV.js +7 -0
- package/dist/cjs/index-DK-2Lzmf.js +4 -4
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cobalt/cobalt.esm.js +1 -1
- package/dist/cobalt/p-0c463d9a.entry.js +1 -0
- package/dist/cobalt/{p-3ced4269.entry.js → p-2828ecf6.entry.js} +1 -1
- package/dist/cobalt/p-2f88d151.entry.js +1 -0
- package/dist/cobalt/p-409f28bb.entry.js +1 -0
- package/dist/cobalt/{p-18af9e44.entry.js → p-568cfe8d.entry.js} +1 -1
- package/dist/cobalt/p-6bf814f9.entry.js +1 -0
- package/dist/cobalt/p-76420ac1.entry.js +1 -0
- package/dist/cobalt/p-7ea87b75.entry.js +1 -0
- package/dist/cobalt/p-8b4b3589.entry.js +1 -0
- package/dist/cobalt/p-93c68029.entry.js +1 -0
- package/dist/cobalt/p-BG4WRR22.js +1 -0
- package/dist/cobalt/p-a2d31248.entry.js +1 -0
- package/dist/cobalt/p-bcedbd73.entry.js +1 -0
- package/dist/cobalt/p-dfd25f1d.entry.js +1 -0
- package/dist/cobalt/p-e364b8a5.entry.js +1 -0
- package/dist/cobalt/p-e84eda2e.entry.js +1 -0
- package/dist/cobalt/p-f25967fb.entry.js +1 -0
- package/dist/cobalt/p-f5f1b463.entry.js +1 -0
- package/dist/cobalt/p-fef5db54.entry.js +1 -0
- package/dist/cobalt/p-mAGnZXRn.js +1 -0
- package/dist/collection/components/co-audio-player/co-audio-player.js +81 -17
- package/dist/collection/components/co-audio-player/co-audio-player.utils.js +27 -2
- package/dist/collection/components/co-autocomplete/co-autocomplete.js +1 -1
- package/dist/collection/components/co-avatar/co-avatar.js +5 -1
- package/dist/collection/components/co-avatar-group/co-avatar-group.js +1 -1
- package/dist/collection/components/co-button/co-button.css +7 -0
- package/dist/collection/components/co-button/co-button.js +7 -5
- package/dist/collection/components/co-calendar-month/co-calendar-month.js +59 -2
- package/dist/collection/components/co-checkbox/co-checkbox.css +22 -0
- package/dist/collection/components/co-checkbox/co-checkbox.js +9 -3
- package/dist/collection/components/co-checkbox-group/co-checkbox-group.js +1 -1
- package/dist/collection/components/co-color-picker/co-color-picker.css +7 -0
- package/dist/collection/components/co-color-picker/co-color-picker.js +35 -2
- package/dist/collection/components/co-combobox/co-combobox.css +7 -0
- package/dist/collection/components/co-combobox/co-combobox.js +44 -4
- package/dist/collection/components/co-command-search/co-command-search.js +1 -1
- package/dist/collection/components/co-data-table/co-data-table.js +1 -1
- package/dist/collection/components/co-date-range-picker/co-date-range-picker.js +2 -2
- package/dist/collection/components/co-event-popover/co-event-popover.js +5 -2
- package/dist/collection/components/co-file-field/co-file-field.css +2 -0
- package/dist/collection/components/co-file-field/co-file-field.js +8 -5
- package/dist/collection/components/co-icon/iconLoader.js +17 -1
- package/dist/collection/components/co-icon-button/co-icon-button.css +7 -0
- package/dist/collection/components/co-icon-button/co-icon-button.js +6 -3
- package/dist/collection/components/co-input/co-input.css +13 -0
- package/dist/collection/components/co-input/co-input.js +21 -0
- package/dist/collection/components/co-loader/co-loader.css +5 -3
- package/dist/collection/components/co-number-field/co-number-field.js +23 -2
- package/dist/collection/components/co-option-list/co-option-list.css +45 -2
- package/dist/collection/components/co-option-list/co-option-list.js +468 -18
- package/dist/collection/components/co-option-list/optionListLogic.js +25 -0
- package/dist/collection/components/co-popover/co-popover.js +1 -1
- package/dist/collection/components/co-radio-group/co-radio-group.js +1 -1
- package/dist/collection/components/co-ref-field/co-ref-field.css +49 -0
- package/dist/collection/components/co-ref-field/co-ref-field.js +252 -12
- package/dist/collection/components/co-segmented-bar/co-segmented-bar.js +1 -1
- package/dist/collection/components/co-select/co-select.css +19 -0
- package/dist/collection/components/co-select/co-select.js +275 -9
- package/dist/collection/components/co-sidebar-nav/co-sidebar-nav.js +1 -1
- package/dist/collection/components/co-toast/co-toast.js +2 -2
- package/dist/collection/components/co-transfer-list/co-transfer-list.js +1 -1
- package/dist/collection/utils/fieldChip.js +1 -1
- package/dist/collection/utils/fileI18n.js +3 -0
- package/dist/components/co-accordion.js +1 -1
- package/dist/components/co-action-bar.js +1 -1
- package/dist/components/co-audio-player.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-breadcrumb-item.js +1 -1
- package/dist/components/co-breadcrumb.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-timegrid.js +1 -1
- package/dist/components/co-calendar.js +1 -1
- package/dist/components/co-carousel.js +1 -1
- package/dist/components/co-checkbox-group.js +1 -1
- package/dist/components/co-checkbox.js +1 -1
- package/dist/components/co-chip.js +1 -1
- package/dist/components/co-color-picker.js +1 -1
- package/dist/components/co-column-picker.js +1 -1
- package/dist/components/co-combobox.js +1 -1
- package/dist/components/co-command-search.js +1 -1
- package/dist/components/co-data-table-pagination.js +1 -1
- package/dist/components/co-data-table.js +1 -1
- package/dist/components/co-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-date-time-picker.js +1 -1
- package/dist/components/co-drawer.js +1 -1
- package/dist/components/co-drive-card.js +1 -1
- package/dist/components/co-drop-zone.js +1 -1
- package/dist/components/co-emoji-picker.js +1 -1
- package/dist/components/co-empty-state.js +1 -1
- package/dist/components/co-event-calendar.js +1 -1
- package/dist/components/co-event-popover.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.js +1 -1
- 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-loader.js +1 -1
- package/dist/components/co-menu-item.js +1 -1
- package/dist/components/co-modal.js +1 -1
- package/dist/components/co-number-field.js +1 -1
- package/dist/components/co-option-list.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-radio-group.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-select.js +1 -1
- package/dist/components/co-sidebar-nav.js +1 -1
- package/dist/components/co-slider.js +1 -1
- package/dist/components/co-switch.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.js +1 -1
- package/dist/components/co-transfer-list.js +1 -1
- package/dist/components/co-video.js +1 -1
- package/dist/components/{p-CklsvHeL.js → p-B0Dc-I_C.js} +1 -1
- package/dist/components/{p-DzoNGEDU.js → p-BH184F0X.js} +1 -1
- package/dist/components/{p-BGD3oQ73.js → p-BHYtxTzM.js} +1 -1
- package/dist/components/{p-mom5kiBa.js → p-BTQEg3UO.js} +1 -1
- package/dist/components/p-BZIB4JDs.js +1 -0
- package/dist/components/p-Bbny3WUc.js +1 -0
- package/dist/components/{p-D5QJpmqf.js → p-Bxk96Zgc.js} +1 -1
- package/dist/components/p-C1Kv3zYZ.js +1 -0
- package/dist/components/p-C4U2tbRp.js +1 -0
- package/dist/components/{p-CyMaOb1j.js → p-CA_JAK9s.js} +1 -1
- package/dist/components/{p-AvSaw4Ua.js → p-CR0izsJC.js} +1 -1
- package/dist/components/p-CuZXTvDM.js +1 -0
- package/dist/components/{p-_131DL6m.js → p-D4qzGifz.js} +1 -1
- package/dist/components/{p-BsQQ7Mki.js → p-D5EdMieb.js} +1 -1
- package/dist/components/p-Dabi98BI.js +1 -0
- package/dist/components/p-DbipMAyT.js +1 -0
- package/dist/components/p-DgUBcJIS.js +1 -0
- package/dist/components/p-Dj1EZ5qD.js +1 -0
- package/dist/components/{p-DkmKOF60.js → p-P8wvwhM2.js} +1 -1
- package/dist/components/{p-nwy6X1QT.js → p-hfGFsvaD.js} +1 -1
- package/dist/esm/co-audio-player.entry.js +107 -18
- package/dist/esm/co-avatar_2.entry.js +6 -30
- package/dist/esm/co-button.entry.js +6 -4
- package/dist/esm/co-calendar-month_2.entry.js +59 -2
- package/dist/esm/co-checkbox.entry.js +10 -4
- package/dist/esm/co-chip_2.entry.js +388 -18
- package/dist/esm/co-color-picker.entry.js +36 -3
- package/dist/esm/co-combobox.entry.js +44 -4
- package/dist/esm/co-event-popover.entry.js +5 -2
- package/dist/esm/co-file-field.entry.js +12 -6
- package/dist/esm/co-icon-button.entry.js +5 -2
- package/dist/esm/co-icon.entry.js +17 -1
- package/dist/esm/co-input.entry.js +21 -1
- package/dist/esm/co-loader.entry.js +1 -1
- package/dist/esm/co-number-field.entry.js +22 -2
- package/dist/esm/co-ref-field.entry.js +99 -13
- package/dist/esm/co-select.entry.js +273 -8
- package/dist/esm/co-tags-field.entry.js +1 -1
- package/dist/esm/cobalt.js +1 -1
- package/dist/esm/color-BG4WRR22.js +30 -0
- package/dist/esm/fieldChip-DsAfq1e0.js +5 -0
- package/dist/esm/index-CrtiywTB.js +4 -4
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/co-audio-player/co-audio-player.d.ts +13 -0
- package/dist/types/components/co-audio-player/co-audio-player.utils.d.ts +18 -1
- package/dist/types/components/co-button/co-button.d.ts +3 -1
- package/dist/types/components/co-calendar-month/co-calendar-month.d.ts +7 -0
- package/dist/types/components/co-checkbox/co-checkbox.d.ts +1 -0
- package/dist/types/components/co-color-picker/co-color-picker.d.ts +15 -0
- package/dist/types/components/co-combobox/co-combobox.d.ts +17 -0
- package/dist/types/components/co-icon-button/co-icon-button.d.ts +3 -0
- package/dist/types/components/co-input/co-input.d.ts +9 -0
- package/dist/types/components/co-number-field/co-number-field.d.ts +9 -0
- package/dist/types/components/co-option-list/co-option-list.d.ts +79 -0
- package/dist/types/components/co-option-list/optionListLogic.d.ts +23 -1
- package/dist/types/components/co-ref-field/co-ref-field.d.ts +46 -0
- package/dist/types/components/co-select/co-select.d.ts +67 -0
- package/dist/types/components.d.ts +110 -4
- package/dist/types/utils/fieldChip.d.ts +5 -0
- package/dist/types/utils/fileI18n.d.ts +1 -0
- package/package.json +4 -4
- package/dist/cjs/fieldChip-xNJPEFcS.js +0 -7
- package/dist/cobalt/p-02ac492f.entry.js +0 -1
- package/dist/cobalt/p-0ccb672b.entry.js +0 -1
- package/dist/cobalt/p-2d81b292.entry.js +0 -1
- package/dist/cobalt/p-4a503187.entry.js +0 -1
- package/dist/cobalt/p-55566b37.entry.js +0 -1
- package/dist/cobalt/p-680d3db8.entry.js +0 -1
- package/dist/cobalt/p-7457aa89.entry.js +0 -1
- package/dist/cobalt/p-77719335.entry.js +0 -1
- package/dist/cobalt/p-8f600512.entry.js +0 -1
- package/dist/cobalt/p-CQAYgqA6.js +0 -1
- package/dist/cobalt/p-a02db338.entry.js +0 -1
- package/dist/cobalt/p-a51d8775.entry.js +0 -1
- package/dist/cobalt/p-aafb9d11.entry.js +0 -1
- package/dist/cobalt/p-b28dc0fe.entry.js +0 -1
- package/dist/cobalt/p-c6b9b9d6.entry.js +0 -1
- package/dist/cobalt/p-d4debd6f.entry.js +0 -1
- package/dist/cobalt/p-d629fb4e.entry.js +0 -1
- package/dist/components/p-B3TkpLNh.js +0 -1
- package/dist/components/p-B7hvddnu.js +0 -1
- package/dist/components/p-BT5tSgZa.js +0 -1
- package/dist/components/p-CXLX8DpD.js +0 -1
- package/dist/components/p-DTvb412h.js +0 -1
- package/dist/components/p-DvhR3H61.js +0 -1
- package/dist/components/p-KWTokD0C.js +0 -1
- package/dist/components/p-Q6caHt79.js +0 -1
- package/dist/components/p-WWlZiln1.js +0 -1
- package/dist/esm/fieldChip-BZDUy9Z-.js +0 -5
|
@@ -3,7 +3,7 @@ import { R as RequiredMark } from './requiredMark-DCD-ZA51.js';
|
|
|
3
3
|
import { O as OverlayScrollbars } from './overlayscrollbars-ox7HzCZn.js';
|
|
4
4
|
import { r as rankByMatch, h as highlightMatch } from './normalizeText-CQY6Ul7q.js';
|
|
5
5
|
|
|
6
|
-
const coSelectCss = () => `.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);font-size:var(--co-font-size-14);letter-spacing:var(--co-font-letter-spacing-body);line-height:1;position:relative}.co-select{display:flex;flex-direction:column;gap:var(--co-spacing-sm2);position:relative}.co-select__labels{display:flex;align-items:center;justify-content:space-between;padding:0 var(--co-spacing-xs);gap:var(--co-spacing-sm2)}.co-select__label{color:var(--co-semantic-text-secondary);font-size:var(--co-font-size-14);font-weight:400;line-height:1;white-space:nowrap;cursor:default}.co-select__secondary-label{color:var(--co-semantic-text-muted);font-size:var(--co-font-size-14);font-weight:400;line-height:1;white-space:nowrap;text-align:right}.co-select--disabled .co-select__label,.co-select--disabled .co-select__secondary-label{color:var(--co-semantic-text-disabled)}.co-select__trigger{display:flex;align-items:center;gap:var(--co-spacing-sm2);padding:var(--co-spacing-sm2) var(--co-spacing-md);background:var(--co-semantic-surface-page);border:1px solid var(--co-semantic-border-field);border-radius:var(--co-border-radius-xs);min-height:40px;box-sizing:border-box;cursor:pointer;transition:border-color var(--co-motion-duration-fast) var(--co-motion-ease-out), box-shadow var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-select--flat .co-select__trigger{background:transparent;border-color:transparent}.co-select__chips{flex:1;min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:var(--co-spacing-xs);padding:var(--co-spacing-xxs) 0}.co-select__chip{display:inline-flex;align-items:center;gap:var(--co-spacing-xs);padding:var(--co-spacing-xxs) var(--co-spacing-sm2);background:var(--co-color-gray-100);border-radius:var(--co-border-radius-full);font-size:var(--co-font-size-14);line-height:1;max-width:200px}.co-select__chip-label{color:var(--co-semantic-text-default);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.co-select__chip-remove{display:flex;align-items:center;padding:0;margin:0;border:none;background:transparent;cursor:pointer;color:var(--co-color-gray-500);transition:color var(--co-motion-duration-fast) var(--co-motion-ease-out);flex-shrink:0}.co-select__chip-remove:hover{color:var(--co-semantic-text-default)}.co-select--s .co-select__trigger{min-height:28px;padding:var(--co-spacing-xxs) var(--co-spacing-sm);font-size:var(--co-font-size-12)}.co-select--sm .co-select__trigger{min-height:32px;padding:var(--co-spacing-xs) var(--co-spacing-sm);font-size:var(--co-font-size-14)}.co-select--lg .co-select__trigger{min-height:48px;padding:var(--co-spacing-sm) var(--co-spacing-lg);font-size:var(--co-font-size-16)}.co-select--open .co-select__trigger{border-color:var(--co-semantic-border-focus);box-shadow:0 0 0 2px var(--co-semantic-border-focus-ring)}.co-select--disabled .co-select__trigger{background:var(--co-semantic-surface-disabled);border-color:transparent;cursor:not-allowed}.co-select--error .co-select__trigger{border-color:var(--co-semantic-status-error)}.co-select--success .co-select__trigger{border-color:var(--co-semantic-status-success)}.co-select--warning .co-select__trigger{border-color:var(--co-color-status-review)}.co-select--info .co-select__trigger{border-color:var(--co-semantic-status-info)}.co-select__flag,.co-select__option-flag{flex-shrink:0;width:20px;height:15px;object-fit:cover;border-radius:2px;box-shadow:0 0 0 1px var(--co-semantic-border-subtle)}.co-select__icon{flex-shrink:0;color:var(--co-semantic-text-muted);display:flex;align-items:center}.co-select__text{flex:1;min-width:0;color:var(--co-semantic-text-default);font-size:inherit;font-weight:400;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.co-select__text--placeholder{color:var(--co-semantic-text-muted)}.co-select--disabled .co-select__text{color:var(--co-semantic-text-disabled)}.co-select__clear{flex-shrink:0;display:flex;align-items:center;padding:0;margin:0;border:none;background:transparent;cursor:pointer;color:var(--co-semantic-text-muted);transition:color var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-select__clear:hover{color:var(--co-semantic-text-default)}.co-select__caret{flex-shrink:0;color:var(--co-semantic-text-muted);display:flex;align-items:center}.co-select__dropdown{padding:var(--co-spacing-sm2)}.co-select__search{display:flex;align-items:center;gap:var(--co-spacing-xs);padding:var(--co-spacing-xs) var(--co-spacing-sm2);margin-bottom:var(--co-spacing-sm2);border:1px solid var(--co-semantic-border-subtle);border-radius:var(--co-border-radius-xs);height:32px;box-sizing:border-box;color:var(--co-semantic-text-muted)}.co-select__search-input{flex:1;min-width:0;border:none;outline:none;background:transparent;font-family:inherit;font-size:var(--co-font-size-14, 14px);line-height:1;color:var(--co-semantic-text-default);padding:0;margin:0}.co-select__search-input::placeholder{color:var(--co-semantic-text-muted)}.co-select__match{font-weight:700;color:var(--co-semantic-text-default)}.co-select__empty{padding:var(--co-spacing-md);text-align:center;color:var(--co-semantic-text-muted);font-size:var(--co-font-size-14, 14px)}.co-select__options{max-height:calc(34px * 8);overflow-y:auto}.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);--os-handle-bg:var(--co-color-opacity-negro-16);--os-handle-bg-hover:var(--co-color-opacity-negro-25);--os-handle-bg-active:var(--co-color-opacity-negro-50);--os-handle-min-size:24px}.co-select__option{display:flex;align-items:center;gap:var(--co-spacing-sm2);padding:var(--co-spacing-sm2) var(--co-spacing-md);border-radius:var(--co-border-radius-xs);cursor:pointer;transition:background var(--co-motion-duration-fast) var(--co-motion-ease-out);min-height:32px;box-sizing:border-box}.co-select__option:hover{background:var(--co-semantic-surface-hover)}.co-select__option--selected{background:var(--co-semantic-surface-muted)}.co-select__option--disabled{opacity:0.4;cursor:not-allowed;pointer-events:none}.co-select__option-icon{flex-shrink:0;color:var(--co-semantic-text-muted)}.co-select__option-label{flex:1;color:var(--co-semantic-text-default);font-size:var(--co-font-size-14);font-weight:400;line-height:1}.co-select__option-check{flex-shrink:0;color:var(--co-semantic-text-default)}.co-select__helper{display:flex;align-items:center;gap:var(--co-spacing-xs);padding:0 var(--co-spacing-xs)}.co-select__helper-icon{flex-shrink:0;display:flex;align-items:center}.co-select__helper-text{color:var(--co-semantic-text-muted);font-size:var(--co-font-size-14);font-weight:400;line-height:1}.co-select__helper--error .co-select__helper-icon,.co-select__helper--error .co-select__helper-text{color:var(--co-semantic-status-error)}.co-select__helper--success .co-select__helper-icon,.co-select__helper--success .co-select__helper-text{color:var(--co-semantic-status-success)}.co-select__helper--warning .co-select__helper-icon,.co-select__helper--warning .co-select__helper-text{color:var(--co-color-status-review)}.co-select__helper--info .co-select__helper-icon,.co-select__helper--info .co-select__helper-text{color:var(--co-semantic-status-info)}:host([layout='horizontal']) .co-select{display:grid;grid-template-columns:var(--co-field-label-width, max-content) 1fr;align-items:start;column-gap:var(--co-spacing-md);row-gap:var(--co-spacing-sm2)}:host([layout='horizontal']) .co-select__labels{grid-column:1;grid-row:1;padding-top:var(--co-spacing-sm2);min-width:0}:host([layout='horizontal']) .co-select__label{white-space:normal}:host([layout='horizontal']) .co-select>:not(.co-select__labels){grid-column:2;min-width:0}.co-field-required{margin-left:2px;color:var(--co-color-status-error)}.co-field-required__caption{margin-left:4px;color:var(--co-semantic-text-muted);font-size:var(--co-font-size-12);font-weight:400}.co-field-required__caption::before{content:var(--co-field-required-text, ' (required)')}`;
|
|
6
|
+
const coSelectCss = () => `.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);font-size:var(--co-font-size-14);letter-spacing:var(--co-font-letter-spacing-body);line-height:1;position:relative}.co-select{display:flex;flex-direction:column;gap:var(--co-spacing-sm2);position:relative}.co-select__labels{display:flex;align-items:center;justify-content:space-between;padding:0 var(--co-spacing-xs);gap:var(--co-spacing-sm2)}.co-select__label{color:var(--co-semantic-text-secondary);font-size:var(--co-font-size-14);font-weight:400;line-height:1;white-space:nowrap;cursor:default}.co-select__secondary-label{color:var(--co-semantic-text-muted);font-size:var(--co-font-size-14);font-weight:400;line-height:1;white-space:nowrap;text-align:right}.co-select--disabled .co-select__label,.co-select--disabled .co-select__secondary-label{color:var(--co-semantic-text-disabled)}.co-select__trigger{display:flex;align-items:center;gap:var(--co-spacing-sm2);padding:var(--co-spacing-sm2) var(--co-spacing-md);background:var(--co-semantic-surface-page);border:1px solid var(--co-semantic-border-field);border-radius:var(--co-border-radius-xs);min-height:40px;box-sizing:border-box;cursor:pointer;transition:border-color var(--co-motion-duration-fast) var(--co-motion-ease-out), box-shadow var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-select--flat .co-select__trigger{background:transparent;border-color:transparent}.co-select__chips{flex:1;min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:var(--co-spacing-xs);padding:var(--co-spacing-xxs) 0}.co-select__chip{display:inline-flex;align-items:center;gap:var(--co-spacing-xs);padding:var(--co-spacing-xxs) var(--co-spacing-sm2);background:var(--co-color-gray-100);border-radius:var(--co-border-radius-full);font-size:var(--co-font-size-14);line-height:1;max-width:200px}.co-select__chip-label{color:var(--co-semantic-text-default);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.co-select__chip-remove{display:flex;align-items:center;padding:0;margin:0;border:none;background:transparent;cursor:pointer;color:var(--co-color-gray-500);transition:color var(--co-motion-duration-fast) var(--co-motion-ease-out);flex-shrink:0}.co-select__chip-remove:hover{color:var(--co-semantic-text-default)}.co-select--s .co-select__trigger{min-height:28px;padding:var(--co-spacing-xxs) var(--co-spacing-sm);font-size:var(--co-font-size-12)}.co-select--sm .co-select__trigger{min-height:32px;padding:var(--co-spacing-xs) var(--co-spacing-sm);font-size:var(--co-font-size-14)}.co-select--lg .co-select__trigger{min-height:48px;padding:var(--co-spacing-sm) var(--co-spacing-lg);font-size:var(--co-font-size-16)}.co-select--open .co-select__trigger{border-color:var(--co-semantic-border-focus);box-shadow:0 0 0 2px var(--co-semantic-border-focus-ring)}.co-select__trigger:focus-visible{outline:none;border-color:var(--co-semantic-border-focus);box-shadow:0 0 0 2px var(--co-semantic-border-focus-ring)}.co-select--disabled .co-select__trigger{background:var(--co-semantic-surface-disabled);border-color:transparent;box-shadow:none;cursor:not-allowed}.co-select--error .co-select__trigger{border-color:var(--co-semantic-status-error)}.co-select--success .co-select__trigger{border-color:var(--co-semantic-status-success)}.co-select--warning .co-select__trigger{border-color:var(--co-color-status-review)}.co-select--info .co-select__trigger{border-color:var(--co-semantic-status-info)}.co-select__flag,.co-select__option-flag{flex-shrink:0;width:20px;height:15px;object-fit:cover;border-radius:2px;box-shadow:0 0 0 1px var(--co-semantic-border-subtle)}.co-select__icon{flex-shrink:0;color:var(--co-semantic-text-muted);display:flex;align-items:center}.co-select__text{flex:1;min-width:0;color:var(--co-semantic-text-default);font-size:inherit;font-weight:400;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.co-select__text--placeholder{color:var(--co-semantic-text-muted)}.co-select--disabled .co-select__text{color:var(--co-semantic-text-disabled)}.co-select__clear{flex-shrink:0;display:flex;align-items:center;padding:0;margin:0;border:none;background:transparent;cursor:pointer;color:var(--co-semantic-text-muted);transition:color var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-select__clear:hover{color:var(--co-semantic-text-default)}.co-select__caret{flex-shrink:0;color:var(--co-semantic-text-muted);display:flex;align-items:center}.co-select__dropdown{padding:var(--co-spacing-sm2)}.co-select__search{display:flex;align-items:center;gap:var(--co-spacing-xs);padding:var(--co-spacing-xs) var(--co-spacing-sm2);margin-bottom:var(--co-spacing-sm2);border:1px solid var(--co-semantic-border-subtle);border-radius:var(--co-border-radius-xs);height:32px;box-sizing:border-box;color:var(--co-semantic-text-muted)}.co-select__search-input{flex:1;min-width:0;border:none;outline:none;background:transparent;font-family:inherit;font-size:var(--co-font-size-14, 14px);line-height:1;color:var(--co-semantic-text-default);padding:0;margin:0}.co-select__search-input::placeholder{color:var(--co-semantic-text-muted)}.co-select__match{font-weight:700;color:var(--co-semantic-text-default)}.co-select__empty{padding:var(--co-spacing-md);text-align:center;color:var(--co-semantic-text-muted);font-size:var(--co-font-size-14, 14px)}.co-select__options{max-height:calc(34px * 8);overflow-y:auto}.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);--os-handle-bg:var(--co-color-opacity-negro-16);--os-handle-bg-hover:var(--co-color-opacity-negro-25);--os-handle-bg-active:var(--co-color-opacity-negro-50);--os-handle-min-size:24px}.co-select__option{display:flex;align-items:center;gap:var(--co-spacing-sm2);padding:var(--co-spacing-sm2) var(--co-spacing-md);border-radius:var(--co-border-radius-xs);cursor:pointer;transition:background var(--co-motion-duration-fast) var(--co-motion-ease-out);min-height:32px;box-sizing:border-box}.co-select__option:hover{background:var(--co-semantic-surface-hover)}.co-select__option--selected{background:var(--co-semantic-surface-muted)}.co-select__option--active{background:var(--co-semantic-surface-hover)}.co-select__option--disabled{opacity:0.4;cursor:not-allowed;pointer-events:none}.co-select__option-icon{flex-shrink:0;color:var(--co-semantic-text-muted)}.co-select__option-label{flex:1;color:var(--co-semantic-text-default);font-size:var(--co-font-size-14);font-weight:400;line-height:1}.co-select__option-check{flex-shrink:0;color:var(--co-semantic-text-default)}.co-select__helper{display:flex;align-items:center;gap:var(--co-spacing-xs);padding:0 var(--co-spacing-xs)}.co-select__helper-icon{flex-shrink:0;display:flex;align-items:center}.co-select__helper-text{color:var(--co-semantic-text-muted);font-size:var(--co-font-size-14);font-weight:400;line-height:1}.co-select__helper--error .co-select__helper-icon,.co-select__helper--error .co-select__helper-text{color:var(--co-semantic-status-error)}.co-select__helper--success .co-select__helper-icon,.co-select__helper--success .co-select__helper-text{color:var(--co-semantic-status-success)}.co-select__helper--warning .co-select__helper-icon,.co-select__helper--warning .co-select__helper-text{color:var(--co-color-status-review)}.co-select__helper--info .co-select__helper-icon,.co-select__helper--info .co-select__helper-text{color:var(--co-semantic-status-info)}:host([layout='horizontal']) .co-select{display:grid;grid-template-columns:var(--co-field-label-width, max-content) 1fr;align-items:start;column-gap:var(--co-spacing-md);row-gap:var(--co-spacing-sm2)}:host([layout='horizontal']) .co-select__labels{grid-column:1;grid-row:1;padding-top:var(--co-spacing-sm2);min-width:0}:host([layout='horizontal']) .co-select__label{white-space:normal}:host([layout='horizontal']) .co-select>:not(.co-select__labels){grid-column:2;min-width:0}.co-field-required{margin-left:2px;color:var(--co-color-status-error)}.co-field-required__caption{margin-left:4px;color:var(--co-semantic-text-muted);font-size:var(--co-font-size-12);font-weight:400}.co-field-required__caption::before{content:var(--co-field-required-text, ' (required)')}`;
|
|
7
7
|
|
|
8
8
|
const CoSelect = class {
|
|
9
9
|
constructor(hostRef) {
|
|
@@ -42,21 +42,154 @@ const CoSelect = class {
|
|
|
42
42
|
// Frozen at open time so selected options render first without jumping while
|
|
43
43
|
// the user toggles them during the session (mirrors co-ref-field).
|
|
44
44
|
this.sortSnapshot = new Set();
|
|
45
|
+
/** Índice (sobre `filteredOptions`) de la opción resaltada por teclado.
|
|
46
|
+
* Patrón APG de combobox: el foco NUNCA baja a las opciones — queda en el
|
|
47
|
+
* trigger (o en el search input) y esto viaja por `aria-activedescendant`. */
|
|
48
|
+
this.activeIndex = -1;
|
|
49
|
+
/** Scroll pendiente hacia la opción activa, resuelto en componentDidRender. */
|
|
50
|
+
this.pendingActiveScroll = false;
|
|
51
|
+
this.activeScrollFrames = 0;
|
|
45
52
|
this.lastParsedOptions = [];
|
|
46
53
|
this.lastRankSearch = '';
|
|
47
54
|
this.lastRanked = [];
|
|
48
55
|
this.handleSearchInput = (e) => {
|
|
49
56
|
this.searchText = e.target.value;
|
|
50
57
|
this.scrollTop = 0;
|
|
58
|
+
// Resultset nuevo: la activa vuelve a la primera coincidencia (si el índice
|
|
59
|
+
// viejo sobreviviera, apuntaría a otra opción o a ninguna).
|
|
60
|
+
this.activeIndex = this.filteredOptions.length ? 0 : -1;
|
|
51
61
|
};
|
|
52
62
|
this.handleTriggerClick = (e) => {
|
|
53
63
|
if (this.disabled)
|
|
54
64
|
e.stopPropagation();
|
|
55
65
|
};
|
|
66
|
+
this.handleTriggerKeyDown = (e) => {
|
|
67
|
+
if (this.disabled)
|
|
68
|
+
return;
|
|
69
|
+
// Los botones internos (quitar chip, clear) son tabIndex={-1} pero quedan
|
|
70
|
+
// focuseados al clickearlos: sin este guard su Enter/Space nativo lo
|
|
71
|
+
// secuestraría el toggle del trigger y el botón nunca se activaría.
|
|
72
|
+
if (e.target !== this.triggerEl)
|
|
73
|
+
return;
|
|
74
|
+
// Panel abierto: manda la navegación del listbox (Enter/Space seleccionan
|
|
75
|
+
// la activa en vez de togglear).
|
|
76
|
+
if (this.handleNavKeyDown(e))
|
|
77
|
+
return;
|
|
78
|
+
if (e.key === 'Enter' || e.key === ' ') {
|
|
79
|
+
e.preventDefault();
|
|
80
|
+
if (this.isOpen)
|
|
81
|
+
this.isOpen = false;
|
|
82
|
+
else
|
|
83
|
+
this.openPanel();
|
|
84
|
+
}
|
|
85
|
+
else if (e.key === 'ArrowDown' && !this.isOpen) {
|
|
86
|
+
e.preventDefault();
|
|
87
|
+
this.openPanel();
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
/** Navegación del panel abierto, compartida por el trigger (caso
|
|
91
|
+
* no-searchable, donde el foco se queda ahí) y el search input (caso
|
|
92
|
+
* searchable, donde las flechas no deben mover el caret). Devuelve `true`
|
|
93
|
+
* si consumió la tecla — con el panel cerrado no consume nada, así el
|
|
94
|
+
* comportamiento del trigger (Enter/Space togglean, ArrowDown abre) queda
|
|
95
|
+
* intacto. */
|
|
96
|
+
this.handleNavKeyDown = (e) => {
|
|
97
|
+
if (this.disabled || !this.isOpen)
|
|
98
|
+
return false;
|
|
99
|
+
// Divergencia consciente con co-option-list: las flechas NO saltean las
|
|
100
|
+
// opciones deshabilitadas (mapeo 1:1 índice↔fila, `aria-posinset` estable);
|
|
101
|
+
// seleccionarlas sigue siendo imposible — ver activateActiveOption.
|
|
102
|
+
const total = this.filteredOptions.length;
|
|
103
|
+
const last = total - 1;
|
|
104
|
+
const current = this.activeIndex >= 0 ? this.activeIndex : -1;
|
|
105
|
+
switch (e.key) {
|
|
106
|
+
case 'ArrowDown':
|
|
107
|
+
if (total)
|
|
108
|
+
this.setActiveIndex(current >= last ? 0 : current + 1);
|
|
109
|
+
break;
|
|
110
|
+
case 'ArrowUp':
|
|
111
|
+
if (total)
|
|
112
|
+
this.setActiveIndex(current <= 0 ? last : current - 1);
|
|
113
|
+
break;
|
|
114
|
+
case 'Home':
|
|
115
|
+
if (total)
|
|
116
|
+
this.setActiveIndex(0);
|
|
117
|
+
break;
|
|
118
|
+
case 'End':
|
|
119
|
+
if (total)
|
|
120
|
+
this.setActiveIndex(last);
|
|
121
|
+
break;
|
|
122
|
+
case ' ':
|
|
123
|
+
// En el search input la barra espaciadora tipea: solo el trigger
|
|
124
|
+
// (no-searchable) la usa para seleccionar.
|
|
125
|
+
if (e.target === this.searchInputEl)
|
|
126
|
+
return false;
|
|
127
|
+
this.activateActiveOption();
|
|
128
|
+
break;
|
|
129
|
+
case 'Enter':
|
|
130
|
+
this.activateActiveOption();
|
|
131
|
+
break;
|
|
132
|
+
default:
|
|
133
|
+
return false;
|
|
134
|
+
}
|
|
135
|
+
e.preventDefault();
|
|
136
|
+
return true;
|
|
137
|
+
};
|
|
138
|
+
/** Alinea el scroll REAL con la ventana virtual ya renderizada.
|
|
139
|
+
*
|
|
140
|
+
* Escribe `scrollTop` DIRECTO sobre el viewport de OverlayScrollbars: el
|
|
141
|
+
* `[role="listbox"]` queda en `overflow:hidden` y OS monta su propio
|
|
142
|
+
* elemento scrolleable, así que `scrollIntoView` desde el nodo de la opción
|
|
143
|
+
* no siempre encuentra un ancestro que scrollee. Y reintenta unos frames
|
|
144
|
+
* porque en la APERTURA el panel del popover todavía no tiene layout (su
|
|
145
|
+
* ciclo de posicionamiento son 2 rAF): sin layout el `scrollTop` se clampea
|
|
146
|
+
* a 0 en silencio y el usuario ve el panel EN BLANCO con la fila activa
|
|
147
|
+
* renderizada fuera del área visible. */
|
|
148
|
+
this.flushActiveScroll = () => {
|
|
149
|
+
var _a, _b, _c, _d, _e;
|
|
150
|
+
if (!this.pendingActiveScroll)
|
|
151
|
+
return;
|
|
152
|
+
if (!this.isOpen) {
|
|
153
|
+
this.pendingActiveScroll = false;
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
const target = this.scrollTop || 0;
|
|
157
|
+
const viewport = (_b = (_a = this.osInstance) === null || _a === void 0 ? void 0 : _a.elements().viewport) !== null && _b !== void 0 ? _b : this.optionsContainerEl;
|
|
158
|
+
if (viewport) {
|
|
159
|
+
viewport.scrollTop = target;
|
|
160
|
+
if (Math.abs(viewport.scrollTop - target) <= 1) {
|
|
161
|
+
this.pendingActiveScroll = false;
|
|
162
|
+
this.activeScrollFrames = 0;
|
|
163
|
+
// Afinado dentro del slice ya visible (las alturas reales de fila no son
|
|
164
|
+
// exactamente ITEM_HEIGHT). jsdom no implementa scrollIntoView.
|
|
165
|
+
(_e = (_d = (_c = this.el.shadowRoot) === null || _c === void 0 ? void 0 : _c.getElementById(this.optionId(this.activeIndex))) === null || _d === void 0 ? void 0 : _d.scrollIntoView) === null || _e === void 0 ? void 0 : _e.call(_d, { block: 'nearest' });
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
if (++this.activeScrollFrames > CoSelect.ACTIVE_SCROLL_MAX_FRAMES) {
|
|
170
|
+
this.pendingActiveScroll = false;
|
|
171
|
+
this.activeScrollFrames = 0;
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
requestAnimationFrame(this.flushActiveScroll);
|
|
175
|
+
};
|
|
56
176
|
this.handlePopoverOpen = () => {
|
|
177
|
+
// `coOpen` no es exclusivo de la transición cerrado→abierto: co-popover lo
|
|
178
|
+
// emite desde su componentDidLoad cuando monta/upgradea ya con open=true.
|
|
179
|
+
// Con el panel YA abierto no hay nada que (re)congelar — y re-congelar sí
|
|
180
|
+
// haría daño: en multiple, un snapshot nuevo reordena la lista
|
|
181
|
+
// (selected-first) por debajo de un `activeIndex` que es POSICIONAL, así que
|
|
182
|
+
// la activa saltaría de fila. También evita el doble-freeze del path de
|
|
183
|
+
// teclado, donde openPanel() ya congeló antes de mover `isOpen`.
|
|
184
|
+
if (this.isOpen)
|
|
185
|
+
return;
|
|
57
186
|
// Freeze the selected-first ordering for this opening.
|
|
58
187
|
this.sortSnapshot = new Set(this.selectedValues);
|
|
59
188
|
this.isOpen = true;
|
|
189
|
+
// ⚠️ La opción activa NO se recalcula acá: la inicialización vive en el
|
|
190
|
+
// @Watch('isOpen'), que corre una sola vez por apertura. Un reset colgado de
|
|
191
|
+
// este evento devolvería la activa a la opción SELECCIONADA en pleno uso del
|
|
192
|
+
// teclado (las flechas quedarían clavadas en ese índice).
|
|
60
193
|
};
|
|
61
194
|
this.handlePopoverClose = () => {
|
|
62
195
|
this.isOpen = false;
|
|
@@ -176,14 +309,107 @@ const CoSelect = class {
|
|
|
176
309
|
};
|
|
177
310
|
return map[this.status] || null;
|
|
178
311
|
}
|
|
312
|
+
optionId(index) {
|
|
313
|
+
return `co-select-option-${index}`;
|
|
314
|
+
}
|
|
315
|
+
/** Al abrir, la activa arranca en la opción seleccionada (la primera de ellas
|
|
316
|
+
* en multiple) para que las flechas continúen desde donde el usuario está. */
|
|
317
|
+
resetActiveIndex() {
|
|
318
|
+
const opts = this.filteredOptions;
|
|
319
|
+
if (opts.length === 0) {
|
|
320
|
+
this.activeIndex = -1;
|
|
321
|
+
return;
|
|
322
|
+
}
|
|
323
|
+
const sel = this.selectedValues;
|
|
324
|
+
const i = sel.length ? opts.findIndex((o) => sel.includes(o.value)) : -1;
|
|
325
|
+
this.activeIndex = i >= 0 ? i : 0;
|
|
326
|
+
// En single NO hay hoisting selected-first (`filteredOptions` solo reordena
|
|
327
|
+
// en multiple): con la selección abajo en la lista, el índice inicial cae
|
|
328
|
+
// fuera del slice virtual y el `aria-activedescendant` apuntaría a un nodo
|
|
329
|
+
// inexistente. Hay que arrastrar el scroll con la activa.
|
|
330
|
+
this.scrollActiveIntoView();
|
|
331
|
+
}
|
|
179
332
|
onOpenChange(open) {
|
|
180
333
|
if (open) {
|
|
181
334
|
this.scrollTop = 0;
|
|
335
|
+
this.resetActiveIndex();
|
|
182
336
|
if (this.searchable)
|
|
183
|
-
|
|
337
|
+
this.focusSearchWhenVisible();
|
|
184
338
|
}
|
|
185
339
|
else {
|
|
186
340
|
this.searchText = '';
|
|
341
|
+
this.activeIndex = -1;
|
|
342
|
+
this.restoreTriggerFocus();
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
/** Apertura por TECLADO. Congela el orden selected-first ANTES de mover
|
|
346
|
+
* `isOpen` para que el @Watch calcule la opción activa sobre la lista
|
|
347
|
+
* definitiva; por mouse eso ya lo garantiza handlePopoverOpen, que corre
|
|
348
|
+
* antes del cambio de estado. */
|
|
349
|
+
openPanel() {
|
|
350
|
+
this.sortSnapshot = new Set(this.selectedValues);
|
|
351
|
+
this.isOpen = true;
|
|
352
|
+
}
|
|
353
|
+
setActiveIndex(index) {
|
|
354
|
+
this.activeIndex = index;
|
|
355
|
+
this.scrollActiveIntoView();
|
|
356
|
+
}
|
|
357
|
+
/** Enter/Space sobre una opción deshabilitada no hace nada — igual que el
|
|
358
|
+
* click (la tecla igual se consume: el panel abierto no togglea). */
|
|
359
|
+
activateActiveOption() {
|
|
360
|
+
const opt = this.filteredOptions[this.activeIndex];
|
|
361
|
+
if (opt && !opt.disabled)
|
|
362
|
+
this.handleOptionClick(opt.value);
|
|
363
|
+
}
|
|
364
|
+
/** Deja la opción activa dentro de la ventana virtual (state) y agenda el
|
|
365
|
+
* scroll real para después del próximo render. */
|
|
366
|
+
scrollActiveIntoView() {
|
|
367
|
+
const { ITEM_HEIGHT, VIEWPORT_ITEMS } = CoSelect;
|
|
368
|
+
const index = this.activeIndex;
|
|
369
|
+
if (!(index >= 0))
|
|
370
|
+
return;
|
|
371
|
+
// La lista está virtualizada: un índice fuera de la ventana renderizada
|
|
372
|
+
// (apertura con la selección abajo, Home/End, wrap) no tendría nodo — y el
|
|
373
|
+
// `aria-activedescendant` quedaría colgado. Se empuja la posición virtual
|
|
374
|
+
// para que el próximo slice lo incluya.
|
|
375
|
+
const top = index * ITEM_HEIGHT;
|
|
376
|
+
const viewportH = ITEM_HEIGHT * VIEWPORT_ITEMS;
|
|
377
|
+
const from = this.scrollTop || 0;
|
|
378
|
+
if (top < from)
|
|
379
|
+
this.scrollTop = top;
|
|
380
|
+
else if (top + ITEM_HEIGHT > from + viewportH)
|
|
381
|
+
this.scrollTop = top + ITEM_HEIGHT - viewportH;
|
|
382
|
+
// El scroll REAL se resuelve en componentDidRender, no en un rAF suelto:
|
|
383
|
+
// al abrir, el @Watch('isOpen') corre ANTES de que Stencil agende el
|
|
384
|
+
// re-render, así que un rAF pedido acá se ejecutaría con el slice viejo
|
|
385
|
+
// todavía en el DOM y no encontraría el nodo.
|
|
386
|
+
this.pendingActiveScroll = true;
|
|
387
|
+
this.activeScrollFrames = 0;
|
|
388
|
+
}
|
|
389
|
+
/** Enfoca el search esperando visibilidad real (paridad focusSearch de
|
|
390
|
+
* co-option-list): el panel se posiciona 2+ rAF después de abrir — y más
|
|
391
|
+
* tarde dentro de un modal/drawer animado — y focus() sobre un subtree sin
|
|
392
|
+
* layout es no-op silencioso. Un solo rAF dejaba el buscador sin foco en
|
|
393
|
+
* esos hosts. Reintenta ~20 frames; aborta si el panel se cerró. */
|
|
394
|
+
focusSearchWhenVisible(attempt = 0) {
|
|
395
|
+
var _a, _b;
|
|
396
|
+
if (!this.isOpen || !this.searchable)
|
|
397
|
+
return;
|
|
398
|
+
(_a = this.searchInputEl) === null || _a === void 0 ? void 0 : _a.focus();
|
|
399
|
+
if (this.searchInputEl && ((_b = this.el.shadowRoot) === null || _b === void 0 ? void 0 : _b.activeElement) === this.searchInputEl)
|
|
400
|
+
return;
|
|
401
|
+
if (attempt >= 20)
|
|
402
|
+
return;
|
|
403
|
+
requestAnimationFrame(() => this.focusSearchWhenVisible(attempt + 1));
|
|
404
|
+
}
|
|
405
|
+
/** Devuelve el foco al trigger al cerrar el panel (Escape, selección),
|
|
406
|
+
* salvo que el cierre venga de un click-outside que ya movió el foco a
|
|
407
|
+
* otro elemento — en ese caso no robarlo. */
|
|
408
|
+
restoreTriggerFocus() {
|
|
409
|
+
var _a;
|
|
410
|
+
const active = document.activeElement;
|
|
411
|
+
if (active === this.el || this.el.contains(active)) {
|
|
412
|
+
(_a = this.triggerEl) === null || _a === void 0 ? void 0 : _a.focus();
|
|
187
413
|
}
|
|
188
414
|
}
|
|
189
415
|
// OverlayScrollbars: floating, auto-hide handle that overlays the content (no
|
|
@@ -201,12 +427,26 @@ const CoSelect = class {
|
|
|
201
427
|
}
|
|
202
428
|
}
|
|
203
429
|
componentDidRender() {
|
|
430
|
+
// Orden importante: primero se (re)crea la instancia de OverlayScrollbars,
|
|
431
|
+
// porque el scroll se escribe sobre SU viewport.
|
|
204
432
|
this.syncOverlayScrollbars();
|
|
433
|
+
this.flushActiveScroll();
|
|
434
|
+
}
|
|
435
|
+
componentWillLoad() {
|
|
436
|
+
// searchText se LEE en cada render (filteredOptions lo trimea con
|
|
437
|
+
// `searchable`) antes de que nadie lo escriba: se ancla acá y no solo en
|
|
438
|
+
// el class-field initializer, que el harness de specs no aplica (paridad
|
|
439
|
+
// `this.term = initialTerm || ''` de co-option-list).
|
|
440
|
+
this.searchText = this.searchText || '';
|
|
205
441
|
}
|
|
206
442
|
disconnectedCallback() {
|
|
207
443
|
var _a;
|
|
208
444
|
(_a = this.osInstance) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
209
445
|
this.osInstance = undefined;
|
|
446
|
+
// El retry por rAF del scroll no debe seguir escribiendo sobre nodos ya
|
|
447
|
+
// desprendidos del documento.
|
|
448
|
+
this.pendingActiveScroll = false;
|
|
449
|
+
this.activeScrollFrames = 0;
|
|
210
450
|
}
|
|
211
451
|
/** Option label with the matched substring wrapped for highlighting. */
|
|
212
452
|
renderLabel(label) {
|
|
@@ -228,31 +468,43 @@ const CoSelect = class {
|
|
|
228
468
|
var _a;
|
|
229
469
|
const selected = this.selectedValues;
|
|
230
470
|
const options = this.filteredOptions;
|
|
231
|
-
|
|
471
|
+
// Se calcula UNA vez sobre `options` (no en un getter): el virtualizador
|
|
472
|
+
// re-renderiza en cada frame de scroll y `filteredOptions` recorre la lista
|
|
473
|
+
// de nuevo en modo multiple. Ausente con el panel cerrado o si el índice no
|
|
474
|
+
// apunta a una opción listada — un IDREF colgado es peor que ninguno.
|
|
475
|
+
const activeOptionId = this.isOpen && this.activeIndex >= 0 && this.activeIndex < options.length
|
|
476
|
+
? this.optionId(this.activeIndex)
|
|
477
|
+
: undefined;
|
|
478
|
+
return (h("div", { key: '0305b0465d53217480a9c8eb7a7f8eb9f1a6d01e', class: {
|
|
232
479
|
'co-select': true,
|
|
233
480
|
'co-select--open': this.isOpen,
|
|
234
481
|
'co-select--disabled': this.disabled,
|
|
235
482
|
[`co-select--${this.size}`]: true,
|
|
236
483
|
[`co-select--${this.status}`]: this.status !== 'default',
|
|
237
484
|
'co-select--flat': this.variant === 'flat',
|
|
238
|
-
} }, (this.label || this.secondaryLabel) && (h("div", { key: '
|
|
485
|
+
} }, (this.label || this.secondaryLabel) && (h("div", { key: '7b13a836b8124f62b711481c35fe0efa7be01ee2', class: "co-select__labels" }, this.label && h("label", { key: 'a05933f160d3b48cf746fda1a01195e99fca94bc', class: "co-select__label" }, this.label, h(RequiredMark, { key: 'd71397f773f28a1f8a224587a5c4e67bd5f80d41', required: this.required })), this.secondaryLabel && h("span", { key: '26cb193f44b4e57395d305a54044d2e54f925963', class: "co-select__secondary-label" }, this.secondaryLabel))), h("co-popover", { key: '7becd47bbac023383cfa3f0f2a5cef15d12d7510', open: this.isOpen, placement: "bottom-start", matchWidth: true, offset: 4, onCoOpen: this.handlePopoverOpen, onCoClose: this.handlePopoverClose }, h("div", { key: 'e93a10d03648cb510b27d80b9cf665724827d9c0', slot: "trigger", class: "co-select__trigger", role: "combobox", "aria-expanded": this.isOpen ? 'true' : 'false', "aria-haspopup": "listbox", "aria-label": this.label || undefined, "aria-disabled": this.disabled ? 'true' : undefined, "aria-controls": CoSelect.LISTBOX_ID, "aria-activedescendant": activeOptionId, tabIndex: this.disabled ? -1 : 0, ref: (el) => (this.triggerEl = el), onClick: this.handleTriggerClick, onKeyDown: this.handleTriggerKeyDown }, this.iconLeft && h("co-icon", { key: '837f075fcae3b2bd11c4f5199591fdb4e840518c', name: this.iconLeft, size: 16, class: "co-select__icon" }), ((_a = this.selectedOption) === null || _a === void 0 ? void 0 : _a.image) && (h("img", { key: 'b7d067c82372fb525132a1079332aac6fd7e77d5', class: "co-select__flag", src: this.selectedOption.image, alt: "" })), this.multiple && this.hasValue ? (h("div", { class: "co-select__chips" }, this.selectedValues.map((v) => {
|
|
239
486
|
const opt = this.parsedOptions.find((o) => o.value === v);
|
|
240
487
|
return (h("span", { class: "co-select__chip", key: v }, h("span", { class: "co-select__chip-label" }, opt ? opt.label : v), h("button", { class: "co-select__chip-remove", type: "button", tabIndex: -1, "aria-label": "Remove", onClick: (e) => {
|
|
241
488
|
e.stopPropagation();
|
|
242
489
|
this.handleOptionClick(v);
|
|
243
490
|
} }, h("co-icon", { name: "x", size: 12 }))));
|
|
244
|
-
}))) : (h("span", { class: { 'co-select__text': true, 'co-select__text--placeholder': !this.hasValue } }, this.hasValue ? this.displayText : this.placeholder)), this.clearable && this.hasValue && !this.disabled && (h("button", { key: '
|
|
491
|
+
}))) : (h("span", { class: { 'co-select__text': true, 'co-select__text--placeholder': !this.hasValue } }, this.hasValue ? this.displayText : this.placeholder)), this.clearable && this.hasValue && !this.disabled && (h("button", { key: 'e9444409fcba6b16d6ff520b3c2632456d2604a2', class: "co-select__clear", type: "button", tabIndex: -1, onClick: this.handleClear, "aria-label": "Clear" }, h("co-icon", { key: '34df04cf14b9e7c56f7244a00263c2182094b61c', name: "x-circle", size: 16, weight: "fill" }))), h("co-icon", { key: 'f9c02e5d08b8ffb30cd8ef8d5ca6c30fa5d21280', name: this.isOpen ? 'caret-up' : 'caret-down', size: 16, class: "co-select__caret" })), h("div", { key: 'cdd17b6eef07e54ce1d8cdd2b48d055f18c24d9e', class: "co-select__dropdown" }, this.isOpen && this.searchable && (h("div", { key: '743f19477657f1cfadbf1e8c9ddba9fa1dc439b8', class: "co-select__search" }, h("co-icon", { key: 'd7e2518a33ad48306041c8f85994c446960718e1', name: "magnifying-glass", size: 16, class: "co-select__search-icon" }), h("input", { key: '4e928b2bb41fac16e410c42217629ede0441e335', class: "co-select__search-input", type: "text", placeholder: this.searchPlaceholder, value: this.searchText, "aria-controls": CoSelect.LISTBOX_ID, "aria-activedescendant": activeOptionId, onInput: this.handleSearchInput, onKeyDown: this.handleNavKeyDown, ref: (el) => (this.searchInputEl = el) }))), this.isOpen && this.searchable && options.length === 0 && (h("div", { key: '27a8c9cd56b398f6e8f9c0cc66dee5ee8df3b9ed', class: "co-select__empty" }, this.emptyText)), h("div", { key: 'b6275f538ac6b92d3ee3c7f40dfcdd8468ce6d98', class: "co-select__options", id: CoSelect.LISTBOX_ID, role: "listbox", "aria-multiselectable": this.multiple ? 'true' : undefined, ref: (el) => (this.optionsContainerEl = el) }, this.isOpen && (() => {
|
|
245
492
|
const { totalHeight, startIdx, endIdx, offsetY } = this.getVirtualSlice(options);
|
|
246
|
-
return (
|
|
493
|
+
return (
|
|
494
|
+
// Los wrappers del virtualizador van `presentation` para que las
|
|
495
|
+
// opciones sigan siendo hijas del listbox en el árbol de a11y.
|
|
496
|
+
h("div", { role: "presentation", class: "co-select__virtual-spacer", style: { height: `${totalHeight}px`, position: 'relative' } }, h("div", { role: "presentation", style: { position: 'absolute', top: `${offsetY}px`, left: '0', right: '0' } }, options.slice(startIdx, endIdx).map((opt, i) => {
|
|
497
|
+
const index = startIdx + i;
|
|
247
498
|
const isSelected = selected.includes(opt.value);
|
|
248
499
|
const isDisabled = !!opt.disabled;
|
|
249
|
-
return (h("div", { class: {
|
|
500
|
+
return (h("div", { id: this.optionId(index), role: "option", "aria-selected": isSelected ? 'true' : 'false', "aria-disabled": isDisabled ? 'true' : undefined, "aria-setsize": options.length, "aria-posinset": index + 1, class: {
|
|
250
501
|
'co-select__option': true,
|
|
251
502
|
'co-select__option--selected': isSelected,
|
|
252
503
|
'co-select__option--disabled': isDisabled,
|
|
504
|
+
'co-select__option--active': index === this.activeIndex,
|
|
253
505
|
}, onClick: () => !isDisabled && this.handleOptionClick(opt.value) }, opt.image ? (h("img", { class: "co-select__option-flag", src: opt.image, alt: "", loading: "lazy" })) : opt.icon ? (h("co-icon", { name: opt.icon, size: 20, class: "co-select__option-icon" })) : null, h("span", { class: "co-select__option-label" }, this.renderLabel(opt.label)), isSelected && h("co-icon", { name: "check", size: 16, class: "co-select__option-check" })));
|
|
254
506
|
}))));
|
|
255
|
-
})()), this.isOpen && this.showFooter && (h("co-list-footer", { key: '
|
|
507
|
+
})()), this.isOpen && this.showFooter && (h("co-list-footer", { key: 'c149c3f4f7b530c29b01f793a47a07b1a1d0987e', class: "co-select__footer", primaryLabel: this.footerPrimaryLabel, primaryIcon: "check", onCoPrimary: this.handleFooterPrimary })))), this.helperText && (h("div", { key: '3b803c16df5f825c240b8c48a4d5377b85fa1b23', class: `co-select__helper co-select__helper--${this.status}` }, this.statusIcon && h("co-icon", { key: '5e076fb55ded68c8d2febde25aa1f6ef6fc6e445', name: this.statusIcon, size: 14, class: "co-select__helper-icon" }), h("span", { key: 'eb5d5a290f80869bf4c0eecf1b2eaa6d48145721', class: "co-select__helper-text" }, this.helperText)))));
|
|
256
508
|
}
|
|
257
509
|
get el() { return getElement(this); }
|
|
258
510
|
static get watchers() { return {
|
|
@@ -264,6 +516,19 @@ const CoSelect = class {
|
|
|
264
516
|
CoSelect.ITEM_HEIGHT = 34;
|
|
265
517
|
CoSelect.VIEWPORT_ITEMS = 8;
|
|
266
518
|
CoSelect.OVERSCAN = 3;
|
|
519
|
+
/** Ids del shadow root (únicos por instancia sin sufijos aleatorios).
|
|
520
|
+
* Acá `aria-controls` se emite SIEMPRE (no solo abierto) porque este nodo
|
|
521
|
+
* listbox es permanente en el shadow root — el IDREF nunca cuelga. En
|
|
522
|
+
* co-ref-field/co-combobox/co-color-picker el panel se monta on-demand, así
|
|
523
|
+
* que ahí `aria-controls` va solo con el panel abierto: no unificar en la
|
|
524
|
+
* dirección equivocada. */
|
|
525
|
+
CoSelect.LISTBOX_ID = 'co-select-listbox';
|
|
526
|
+
/** Frames que esperamos a que el panel tenga layout para escribir el scroll.
|
|
527
|
+
* Holgado a propósito (~0.8s a 60Hz): dentro de un co-modal/drawer animado el
|
|
528
|
+
* layout llega tarde y con 12 frames el flush se rendía a mitad de camino —
|
|
529
|
+
* el scroll quedaba clampeado en cualquier parte de la lista en vez de en la
|
|
530
|
+
* opción seleccionada. El loop corta solo al verificar el write o al cerrar. */
|
|
531
|
+
CoSelect.ACTIVE_SCROLL_MAX_FRAMES = 48;
|
|
267
532
|
CoSelect.style = coSelectCss();
|
|
268
533
|
|
|
269
534
|
export { CoSelect as co_select };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as registerInstance, c as createEvent, h, a as getElement } from './index-CrtiywTB.js';
|
|
2
2
|
import { R as RequiredMark } from './requiredMark-DCD-ZA51.js';
|
|
3
|
-
import { F as FieldChip } from './fieldChip-
|
|
3
|
+
import { F as FieldChip } from './fieldChip-DsAfq1e0.js';
|
|
4
4
|
|
|
5
5
|
const coTagsFieldCss = () => `:host{display:block;font-family:var(--co-font-family-primary);font-size:var(--co-font-size-14);letter-spacing:var(--co-font-letter-spacing-body);line-height:1}.co-tags-field{display:flex;flex-direction:column;gap:var(--co-spacing-sm2)}.co-tags-field__labels{display:flex;align-items:center;justify-content:space-between;padding:0 var(--co-spacing-xs);gap:var(--co-spacing-sm2)}.co-tags-field__label{color:var(--co-semantic-text-secondary);font-size:var(--co-font-size-14);font-weight:400;letter-spacing:var(--co-font-letter-spacing-body);line-height:1;white-space:nowrap;cursor:default}.co-field-required{margin-left:2px;color:var(--co-color-status-error)}.co-field-required__caption{margin-left:4px;color:var(--co-semantic-text-muted);font-size:var(--co-font-size-12);font-weight:400}.co-field-required__caption::before{content:var(--co-field-required-text, ' (required)')}.co-tags-field__field-row{display:flex;align-items:stretch}.co-tags-field__field{display:flex;align-items:flex-start;gap:var(--co-spacing-sm2);padding:var(--co-spacing-sm2) var(--co-spacing-md);background:var(--co-semantic-surface-page);border:1px solid var(--co-semantic-border-field);border-radius:var(--co-border-radius-xs);transition:border-color var(--co-motion-duration-fast) var(--co-motion-ease-out), box-shadow var(--co-motion-duration-fast) var(--co-motion-ease-out);min-height:40px;box-sizing:border-box;flex:1;min-width:0;cursor:text}.co-tags-field__input-wrapper{flex:1;display:flex;flex-wrap:wrap;align-items:center;gap:var(--co-spacing-sm);min-width:0;min-height:22px;padding:0}.co-tags-field--s .co-tags-field__field{min-height:28px;padding:var(--co-spacing-xxs) var(--co-spacing-sm);font-size:var(--co-font-size-12)}.co-tags-field--sm .co-tags-field__field{min-height:32px;padding:var(--co-spacing-xs) var(--co-spacing-sm);font-size:var(--co-font-size-14)}.co-tags-field--lg .co-tags-field__field{min-height:48px;padding:var(--co-spacing-sm) var(--co-spacing-lg);font-size:var(--co-font-size-16)}.co-tags-field__chip{display:inline-flex;align-items:center;gap:var(--co-spacing-sm);padding:var(--co-spacing-sm) var(--co-spacing-sm2);background:var(--co-semantic-surface-hover);border-radius:var(--co-border-radius-full);font-size:var(--co-font-size-14);line-height:1;max-width:240px;cursor:pointer;user-select:none}.co-tags-field__chip-label{color:var(--co-semantic-text-default);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.co-tags-field__chip-remove{display:flex;align-items:center;padding:0;margin:0;border:none;background:transparent;cursor:pointer;color:var(--co-semantic-text-muted);transition:color var(--co-motion-duration-fast) var(--co-motion-ease-out);flex-shrink:0}.co-tags-field__chip-remove:hover{color:var(--co-semantic-text-default)}.co-tags-field__native{flex:1;min-width:80px;border:none;outline:none;background:transparent;font-family:inherit;font-size:inherit;font-weight:400;letter-spacing:inherit;line-height:1;color:var(--co-semantic-text-default);padding:0;margin:0}.co-tags-field__native::placeholder{color:var(--co-semantic-text-muted)}.co-tags-field__edit{border:1px solid var(--co-semantic-border-focus);border-radius:var(--co-border-radius-xxs);outline:none;background:var(--co-semantic-surface-page);font-family:inherit;font-size:var(--co-font-size-12);line-height:1;color:var(--co-semantic-text-default);padding:var(--co-spacing-xxs) var(--co-spacing-xs);margin:0;min-width:60px}.co-tags-field__clear{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:16px;padding:0;margin:var(--co-spacing-xxs) 0 0;border:none;background:transparent;cursor:pointer;color:var(--co-semantic-text-muted);transition:color var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-tags-field__clear--hidden{visibility:hidden;pointer-events:none}.co-tags-field__clear:hover{color:var(--co-semantic-text-default)}.co-tags-field__helper{display:flex;align-items:center;gap:var(--co-spacing-xs);padding:0 var(--co-spacing-xs)}.co-tags-field__helper-icon{flex-shrink:0;color:var(--co-semantic-text-muted);display:flex;align-items:center}.co-tags-field__helper-text{color:var(--co-semantic-text-muted);font-size:var(--co-font-size-14);font-weight:400;line-height:1;letter-spacing:var(--co-font-letter-spacing-body)}.co-tags-field--focused .co-tags-field__field{border-color:var(--co-semantic-border-focus);box-shadow:0 0 0 2px var(--co-semantic-border-focus-ring)}.co-tags-field--disabled{opacity:0.6;pointer-events:none}.co-tags-field--disabled .co-tags-field__labels .co-tags-field__label{color:var(--co-semantic-text-disabled)}.co-tags-field--disabled .co-tags-field__field{background:var(--co-semantic-surface-disabled);border-color:transparent;cursor:not-allowed}.co-tags-field--invalid .co-tags-field__field{border-color:var(--co-semantic-status-error)}.co-tags-field--invalid.co-tags-field--focused .co-tags-field__field{border-color:var(--co-semantic-status-error);box-shadow:0 0 0 2px rgba(170, 46, 27, 0.12)}.co-tags-field__helper--error .co-tags-field__helper-icon,.co-tags-field__helper--error .co-tags-field__helper-text{color:var(--co-semantic-status-error)}:host([layout='horizontal']) .co-tags-field{display:grid;grid-template-columns:var(--co-field-label-width, max-content) 1fr;align-items:start;column-gap:var(--co-spacing-md);row-gap:var(--co-spacing-sm2)}:host([layout='horizontal']) .co-tags-field__labels{grid-column:1;grid-row:1;padding-top:var(--co-spacing-sm2);min-width:0}:host([layout='horizontal']) .co-tags-field__label{white-space:normal}:host([layout='horizontal']) .co-tags-field>:not(.co-tags-field__labels){grid-column:2;min-width:0}`;
|
|
6
6
|
|