@prolibu-suite/cobalt-core 0.9.1 → 0.9.2
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 +411 -18
- package/dist/cjs/co-avatar_2.cjs.entry.js +2 -2
- package/dist/cjs/co-bottom-sheet.cjs.entry.js +10 -11
- package/dist/cjs/co-calendar_3.cjs.entry.js +37 -2
- package/dist/cjs/co-chip_2.cjs.entry.js +2 -2
- package/dist/cjs/co-emoji-picker.cjs.entry.js +2808 -0
- package/dist/cjs/co-empty-state.cjs.entry.js +2 -2
- package/dist/cjs/co-event-calendar.cjs.entry.js +2 -2
- package/dist/cjs/co-event-popover.cjs.entry.js +1 -1
- package/dist/cjs/co-fab.cjs.entry.js +2 -2
- package/dist/cjs/co-file-field.cjs.entry.js +5 -5
- package/dist/cjs/co-file-type-tile.cjs.entry.js +2 -2
- package/dist/cjs/co-helper-text.cjs.entry.js +2 -2
- package/dist/cjs/co-icon-button.cjs.entry.js +2 -2
- package/dist/cjs/co-icon.cjs.entry.js +2 -2
- package/dist/cjs/co-json-field.cjs.entry.js +3 -3
- package/dist/cjs/co-lightbox.cjs.entry.js +4 -4
- package/dist/cjs/co-list-footer.cjs.entry.js +1 -1
- package/dist/cjs/co-list-item.cjs.entry.js +4 -4
- package/dist/cjs/co-media-thumb.cjs.entry.js +2 -2
- package/dist/cjs/co-menu-divider.cjs.entry.js +1 -1
- package/dist/cjs/co-menu.cjs.entry.js +1 -1
- package/dist/cjs/co-modal.cjs.entry.js +9 -3
- package/dist/cjs/co-navbar.cjs.entry.js +2 -2
- package/dist/cjs/co-number-field.cjs.entry.js +2 -2
- package/dist/cjs/co-overlay.cjs.entry.js +1 -1
- package/dist/cjs/co-page-header.cjs.entry.js +1 -1
- package/dist/cjs/co-phone-field.cjs.entry.js +1 -1
- package/dist/cjs/co-progress-bar.cjs.entry.js +2 -2
- package/dist/cjs/co-progress-circle.cjs.entry.js +2 -2
- package/dist/cjs/co-provider-logo_2.cjs.entry.js +1 -1
- package/dist/cjs/co-radio.cjs.entry.js +3 -3
- package/dist/cjs/co-rating.cjs.entry.js +3 -3
- package/dist/cjs/co-rich-text-editor.cjs.entry.js +3 -3
- package/dist/cjs/co-row.cjs.entry.js +2 -2
- package/dist/cjs/co-separator.cjs.entry.js +1 -1
- package/dist/cjs/co-sidebar.cjs.entry.js +2 -2
- package/dist/cjs/co-slider.cjs.entry.js +2 -2
- package/dist/cjs/co-switch.cjs.entry.js +3 -3
- package/dist/cjs/co-tab-group.cjs.entry.js +2 -2
- package/dist/cjs/co-tab.cjs.entry.js +2 -2
- package/dist/cjs/co-tags-field.cjs.entry.js +5 -5
- package/dist/cjs/co-textarea.cjs.entry.js +4 -4
- package/dist/cjs/co-toggle-button-group.cjs.entry.js +2 -2
- package/dist/cjs/co-toggle-button.cjs.entry.js +2 -2
- package/dist/cjs/co-video.cjs.entry.js +2 -2
- package/dist/cjs/cobalt.cjs.js +1 -1
- package/dist/cjs/emojiNames.es-BjpSEJ0c.js +1925 -0
- package/dist/cjs/emojiNames.pt-DWupaZMJ.js +1925 -0
- package/dist/cjs/index-DK-2Lzmf.js +4 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/slotContent-Bm9RcM_Q.js +34 -0
- package/dist/cobalt/cobalt.esm.js +1 -1
- package/dist/cobalt/p-07904986.entry.js +1 -0
- package/dist/cobalt/p-09799193.entry.js +1 -0
- package/dist/cobalt/{p-a811464d.entry.js → p-0ccb672b.entry.js} +1 -1
- package/dist/cobalt/{p-4fe9a3ae.entry.js → p-0e91e5c4.entry.js} +1 -1
- package/dist/cobalt/{p-90e292de.entry.js → p-18af9e44.entry.js} +1 -1
- package/dist/cobalt/{p-136440fc.entry.js → p-18d34b01.entry.js} +1 -1
- package/dist/cobalt/{p-a0a6bfa3.entry.js → p-1c68bc41.entry.js} +1 -1
- package/dist/cobalt/{p-f945a1bd.entry.js → p-2114c036.entry.js} +1 -1
- package/dist/cobalt/{p-44fb4a3f.entry.js → p-23a103a0.entry.js} +1 -1
- package/dist/cobalt/{p-b892b312.entry.js → p-23b3ff3f.entry.js} +1 -1
- package/dist/cobalt/{p-b107063c.entry.js → p-33ea4a90.entry.js} +1 -1
- package/dist/cobalt/p-3495fda1.entry.js +1 -0
- package/dist/cobalt/{p-c3fd7b22.entry.js → p-36197363.entry.js} +1 -1
- package/dist/cobalt/p-3f0eed59.entry.js +1 -0
- package/dist/cobalt/{p-40ce8a3d.entry.js → p-4b083da4.entry.js} +1 -1
- package/dist/cobalt/p-4c7e3984.entry.js +1 -0
- package/dist/cobalt/p-4f754c9a.entry.js +1 -0
- package/dist/cobalt/p-54ae807d.entry.js +1 -0
- package/dist/cobalt/{p-3a229bba.entry.js → p-55566b37.entry.js} +1 -1
- package/dist/cobalt/{p-b5b97c9b.entry.js → p-77719335.entry.js} +1 -1
- package/dist/cobalt/{p-9c89cb01.entry.js → p-7c88163e.entry.js} +1 -1
- package/dist/cobalt/{p-e085b4ff.entry.js → p-7e53e9c8.entry.js} +1 -1
- package/dist/cobalt/{p-6c35b5cc.entry.js → p-8345b25f.entry.js} +1 -1
- package/dist/cobalt/{p-9c9f5b26.entry.js → p-89e38c5e.entry.js} +1 -1
- package/dist/cobalt/{p-4299cfa5.entry.js → p-8f38e24d.entry.js} +1 -1
- package/dist/cobalt/{p-905ba0dd.entry.js → p-95efe661.entry.js} +1 -1
- package/dist/cobalt/{p-909c0113.entry.js → p-983af614.entry.js} +1 -1
- package/dist/cobalt/p-B6oiFdUY.js +1 -0
- package/dist/cobalt/p-CBX_oabB.js +1 -0
- package/dist/cobalt/p-a02db338.entry.js +1 -0
- package/dist/cobalt/{p-a3669301.entry.js → p-a51d8775.entry.js} +1 -1
- package/dist/cobalt/{p-43d31055.entry.js → p-a9096b5c.entry.js} +1 -1
- package/dist/cobalt/{p-2637efc5.entry.js → p-ac466658.entry.js} +1 -1
- package/dist/cobalt/{p-75b7ed13.entry.js → p-ac91259e.entry.js} +1 -1
- package/dist/cobalt/{p-3ef0f849.entry.js → p-b0319a2d.entry.js} +1 -1
- package/dist/cobalt/{p-e4ef25b0.entry.js → p-b8581787.entry.js} +1 -1
- package/dist/cobalt/{p-fdc6ec11.entry.js → p-c1e7fb32.entry.js} +1 -1
- package/dist/cobalt/{p-a3c6b974.entry.js → p-c5684c79.entry.js} +1 -1
- package/dist/cobalt/{p-c1880595.entry.js → p-d15d3a97.entry.js} +1 -1
- package/dist/cobalt/p-d40a465f.entry.js +1 -0
- package/dist/cobalt/{p-138b8bc1.entry.js → p-d629fb4e.entry.js} +1 -1
- package/dist/cobalt/{p-929a4f19.entry.js → p-dca4cd5f.entry.js} +1 -1
- package/dist/cobalt/{p-3d338881.entry.js → p-dea43204.entry.js} +1 -1
- package/dist/cobalt/{p-b22981fd.entry.js → p-dfcf667d.entry.js} +1 -1
- package/dist/cobalt/{p-2c0099a4.entry.js → p-e5495539.entry.js} +1 -1
- package/dist/cobalt/{p-5c1767db.entry.js → p-ef5e1167.entry.js} +1 -1
- package/dist/cobalt/{p-37c17bd8.entry.js → p-fb3a095b.entry.js} +1 -1
- package/dist/cobalt/p-reaWaY4g.js +1 -0
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/co-autocomplete/co-autocomplete.js +1 -1
- package/dist/collection/components/co-avatar-group/co-avatar-group.js +1 -1
- package/dist/collection/components/co-bottom-sheet/co-bottom-sheet.js +10 -11
- package/dist/collection/components/co-checkbox-group/co-checkbox-group.js +1 -1
- package/dist/collection/components/co-combobox/co-combobox.js +1 -1
- package/dist/collection/components/co-command-search/co-command-search.js +1 -1
- package/dist/collection/components/co-data-table/co-data-table.js +1 -1
- package/dist/collection/components/co-date-range-picker/co-date-range-picker.js +2 -2
- package/dist/collection/components/co-drawer/co-drawer.css +5 -2
- package/dist/collection/components/co-drawer/co-drawer.js +43 -1
- package/dist/collection/components/co-emoji-picker/co-emoji-picker.css +290 -0
- package/dist/collection/components/co-emoji-picker/co-emoji-picker.js +682 -0
- package/dist/collection/components/co-emoji-picker/emojiData.js +1953 -0
- package/dist/collection/components/co-emoji-picker/emojiNames.es.js +1922 -0
- package/dist/collection/components/co-emoji-picker/emojiNames.pt.js +1922 -0
- package/dist/collection/components/co-emoji-picker/emojiPickerLogic.js +375 -0
- package/dist/collection/components/co-empty-state/co-empty-state.js +2 -2
- package/dist/collection/components/co-event-calendar/co-event-calendar.js +2 -2
- package/dist/collection/components/co-event-popover/co-event-popover.js +1 -1
- package/dist/collection/components/co-fab/co-fab.js +2 -2
- 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.js +2 -2
- 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 +25 -0
- package/dist/collection/components/co-icon-button/co-icon-button.js +1 -1
- package/dist/collection/components/co-json-field/co-json-field.js +3 -3
- 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.js +2 -2
- package/dist/collection/components/co-menu/co-menu.js +1 -1
- package/dist/collection/components/co-menu-divider/co-menu-divider.js +1 -1
- package/dist/collection/components/co-modal/co-modal.css +3 -1
- package/dist/collection/components/co-modal/co-modal.js +13 -2
- package/dist/collection/components/co-navbar/co-navbar.js +2 -2
- package/dist/collection/components/co-number-field/co-number-field.js +2 -2
- package/dist/collection/components/co-option-list/co-option-list.js +2 -2
- 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.js +1 -1
- package/dist/collection/components/co-popover/co-popover.js +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 +1 -1
- package/dist/collection/components/co-rating/co-rating.js +3 -3
- package/dist/collection/components/co-ref-field/co-ref-field.js +1 -1
- package/dist/collection/components/co-rich-text-editor/co-rich-text-editor.js +3 -3
- package/dist/collection/components/co-row/co-row.js +2 -2
- package/dist/collection/components/co-segmented-bar/co-segmented-bar.js +1 -1
- package/dist/collection/components/co-select/co-select.js +1 -1
- 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.js +1 -1
- 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.js +3 -3
- package/dist/collection/components/co-tab/co-tab.js +2 -2
- package/dist/collection/components/co-tab-group/co-tab-group.js +2 -2
- 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.js +2 -2
- package/dist/collection/components/co-toggle-button/co-toggle-button.js +2 -2
- package/dist/collection/components/co-toggle-button-group/co-toggle-button-group.js +2 -2
- package/dist/collection/components/co-tooltip/co-tooltip.js +2 -2
- package/dist/collection/components/co-transfer-list/co-transfer-list.js +1 -1
- package/dist/collection/components/co-video/co-video.js +2 -2
- package/dist/collection/utils/emojiI18n.js +92 -0
- package/dist/collection/utils/slotContent.js +30 -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-bottom-sheet.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-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.d.ts +11 -0
- package/dist/components/co-emoji-picker.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-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-media-thumb.js +1 -1
- 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.js +1 -1
- 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-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-row.js +1 -1
- 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/{p-BOmAHbix.js → p-AvSaw4Ua.js} +1 -1
- package/dist/components/p-B3TkpLNh.js +1 -0
- package/dist/components/p-B6oiFdUY.js +1 -0
- package/dist/components/{p-BEiPCCVl.js → p-B7hvddnu.js} +1 -1
- package/dist/components/{p-njonLO8t.js → p-BGD3oQ73.js} +1 -1
- package/dist/components/{p-xjzIZcgZ.js → p-BT5tSgZa.js} +1 -1
- package/dist/components/{p-CXdIxtbK.js → p-BsQQ7Mki.js} +1 -1
- package/dist/components/p-CBX_oabB.js +1 -0
- package/dist/components/{p-ClAsHpYv.js → p-CklsvHeL.js} +1 -1
- package/dist/components/{p-DWt_rL1l.js → p-CyMaOb1j.js} +1 -1
- package/dist/components/{p-DEYpoVxc.js → p-D5QJpmqf.js} +1 -1
- package/dist/components/{p-Bhuk55S0.js → p-D6OUW6oW.js} +1 -1
- package/dist/components/p-DTvb412h.js +1 -0
- package/dist/components/{p-DmyELlI1.js → p-DkmKOF60.js} +1 -1
- package/dist/components/{p-DUYGgqjB.js → p-DolCkNsL.js} +1 -1
- package/dist/components/{p-CnBjUP_M.js → p-KWTokD0C.js} +1 -1
- package/dist/components/{p-BCZ-tPBT.js → p-Q6caHt79.js} +1 -1
- package/dist/components/{p-BUYgHlPz.js → p-WWlZiln1.js} +1 -1
- package/dist/components/{p-C4So28aS.js → p-_131DL6m.js} +1 -1
- package/dist/components/{p-BYnSPxpp.js → p-gI62K3Be.js} +1 -1
- package/dist/components/{p-8wvfrEY4.js → p-mom5kiBa.js} +1 -1
- package/dist/components/p-nwy6X1QT.js +1 -0
- package/dist/components/p-reaWaY4g.js +1 -0
- package/dist/esm/co-avatar_2.entry.js +2 -2
- package/dist/esm/co-bottom-sheet.entry.js +10 -11
- package/dist/esm/co-calendar_3.entry.js +37 -2
- package/dist/esm/co-chip_2.entry.js +2 -2
- package/dist/esm/co-emoji-picker.entry.js +2806 -0
- package/dist/esm/co-empty-state.entry.js +2 -2
- package/dist/esm/co-event-calendar.entry.js +2 -2
- package/dist/esm/co-event-popover.entry.js +1 -1
- package/dist/esm/co-fab.entry.js +2 -2
- package/dist/esm/co-file-field.entry.js +5 -5
- package/dist/esm/co-file-type-tile.entry.js +2 -2
- package/dist/esm/co-helper-text.entry.js +2 -2
- package/dist/esm/co-icon-button.entry.js +2 -2
- package/dist/esm/co-icon.entry.js +2 -2
- package/dist/esm/co-json-field.entry.js +3 -3
- package/dist/esm/co-lightbox.entry.js +4 -4
- package/dist/esm/co-list-footer.entry.js +1 -1
- package/dist/esm/co-list-item.entry.js +4 -4
- package/dist/esm/co-media-thumb.entry.js +2 -2
- package/dist/esm/co-menu-divider.entry.js +1 -1
- package/dist/esm/co-menu.entry.js +1 -1
- package/dist/esm/co-modal.entry.js +9 -3
- package/dist/esm/co-navbar.entry.js +2 -2
- package/dist/esm/co-number-field.entry.js +2 -2
- package/dist/esm/co-overlay.entry.js +1 -1
- package/dist/esm/co-page-header.entry.js +1 -1
- package/dist/esm/co-phone-field.entry.js +1 -1
- package/dist/esm/co-progress-bar.entry.js +2 -2
- package/dist/esm/co-progress-circle.entry.js +2 -2
- package/dist/esm/co-provider-logo_2.entry.js +1 -1
- package/dist/esm/co-radio.entry.js +3 -3
- package/dist/esm/co-rating.entry.js +3 -3
- package/dist/esm/co-rich-text-editor.entry.js +3 -3
- package/dist/esm/co-row.entry.js +2 -2
- package/dist/esm/co-separator.entry.js +1 -1
- package/dist/esm/co-sidebar.entry.js +2 -2
- package/dist/esm/co-slider.entry.js +2 -2
- package/dist/esm/co-switch.entry.js +3 -3
- package/dist/esm/co-tab-group.entry.js +2 -2
- package/dist/esm/co-tab.entry.js +2 -2
- package/dist/esm/co-tags-field.entry.js +5 -5
- package/dist/esm/co-textarea.entry.js +4 -4
- package/dist/esm/co-toggle-button-group.entry.js +2 -2
- package/dist/esm/co-toggle-button.entry.js +2 -2
- package/dist/esm/co-video.entry.js +2 -2
- package/dist/esm/cobalt.js +1 -1
- package/dist/esm/emojiNames.es-reaWaY4g.js +1923 -0
- package/dist/esm/emojiNames.pt-B6oiFdUY.js +1923 -0
- package/dist/esm/index-CrtiywTB.js +4 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/slotContent-CBX_oabB.js +32 -0
- package/dist/types/components/co-bottom-sheet/co-bottom-sheet.d.ts +0 -1
- package/dist/types/components/co-drawer/co-drawer.d.ts +23 -0
- package/dist/types/components/co-emoji-picker/co-emoji-picker.d.ts +145 -0
- package/dist/types/components/co-emoji-picker/emojiData.d.ts +24 -0
- package/dist/types/components/co-emoji-picker/emojiNames.es.d.ts +12 -0
- package/dist/types/components/co-emoji-picker/emojiNames.pt.d.ts +12 -0
- package/dist/types/components/co-emoji-picker/emojiPickerLogic.d.ts +149 -0
- package/dist/types/components/co-modal/co-modal.d.ts +2 -0
- package/dist/types/components.d.ts +195 -0
- package/dist/types/utils/emojiI18n.d.ts +22 -0
- package/dist/types/utils/slotContent.d.ts +19 -0
- package/package.json +4 -4
- package/dist/cobalt/p-02f4b71a.entry.js +0 -1
- package/dist/cobalt/p-2f778a5a.entry.js +0 -1
- package/dist/cobalt/p-315586b0.entry.js +0 -1
- package/dist/cobalt/p-6556465f.entry.js +0 -1
- package/dist/cobalt/p-7fbd3359.entry.js +0 -1
- package/dist/cobalt/p-82c8f07b.entry.js +0 -1
- package/dist/cobalt/p-c3bb7e1f.entry.js +0 -1
- package/dist/cobalt/p-e742e978.entry.js +0 -1
- package/dist/components/p-4t5Fputx.js +0 -1
- package/dist/components/p-CRABrJmD.js +0 -1
- package/dist/components/p-aiNhl9Xd.js +0 -1
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { type EmojiCategory } from './emojiData';
|
|
2
|
+
/** Categoría sintética de recientes: va primera y solo existe si hay historial. */
|
|
3
|
+
export declare const RECENT_CATEGORY = "recent";
|
|
4
|
+
/** Categorías del layout = las del dataset más la sintética de recientes. */
|
|
5
|
+
export type GridCategory = EmojiCategory | typeof RECENT_CATEGORY;
|
|
6
|
+
/** '0' sin tono · '1' tras el primer codepoint · '2' tras cada persona. */
|
|
7
|
+
export type ToneFlag = '0' | '1' | '2';
|
|
8
|
+
export interface EmojiEntry {
|
|
9
|
+
/** El carácter (puede ser una secuencia ZWJ de varios codepoints). */
|
|
10
|
+
char: string;
|
|
11
|
+
/** Nombre en inglés (pack base). Es el fallback de todo locale. */
|
|
12
|
+
name: string;
|
|
13
|
+
/** Slug de categoría. */
|
|
14
|
+
category: GridCategory;
|
|
15
|
+
/**
|
|
16
|
+
* Identidad de celda dentro del layout: key de render, id de DOM y valor de
|
|
17
|
+
* `activeIndex`. Las entradas de recientes viven en un espacio propio
|
|
18
|
+
* (`RECENT_INDEX_BASE + n`) porque el MISMO emoji aparece dos veces en la
|
|
19
|
+
* grilla —en recientes y en su categoría real— y dos celdas con el mismo id
|
|
20
|
+
* romperían `aria-activedescendant` y la navegación por teclado.
|
|
21
|
+
*/
|
|
22
|
+
index: number;
|
|
23
|
+
/** Índice en el pack de locale. Difiere de `index` en los recientes. */
|
|
24
|
+
nameIndex: number;
|
|
25
|
+
/** Soporte de tono de piel del emoji base. */
|
|
26
|
+
tone: ToneFlag;
|
|
27
|
+
}
|
|
28
|
+
export type EmojiRow = {
|
|
29
|
+
kind: 'header';
|
|
30
|
+
category: GridCategory;
|
|
31
|
+
} | {
|
|
32
|
+
kind: 'emoji';
|
|
33
|
+
entries: EmojiEntry[];
|
|
34
|
+
};
|
|
35
|
+
/** Alto uniforme de fila (header y grilla) en px. Uniforme a propósito: la
|
|
36
|
+
* virtualización se reduce a `top = row * ROW_HEIGHT`, sin prefix-sums. */
|
|
37
|
+
export declare const ROW_HEIGHT = 36;
|
|
38
|
+
/** Filas de más renderizadas arriba y abajo del viewport. */
|
|
39
|
+
export declare const OVERSCAN = 2;
|
|
40
|
+
/** Columnas por defecto (espejo del default de la prop `columns`). */
|
|
41
|
+
export declare const DEFAULT_COLUMNS = 8;
|
|
42
|
+
/** Offset del espacio de índices de los recientes (ver `EmojiEntry.index`). */
|
|
43
|
+
export declare const RECENT_INDEX_BASE = 1000000;
|
|
44
|
+
/**
|
|
45
|
+
* Desempaqueta EMOJI_PACKED a entradas. Memoizado a nivel de módulo: se paga
|
|
46
|
+
* UNA vez por documento aunque se monten varios pickers.
|
|
47
|
+
*/
|
|
48
|
+
export declare function getEmojiEntries(): EmojiEntry[];
|
|
49
|
+
/** Locales con pack de nombres propio. El resto usa los nombres en inglés. */
|
|
50
|
+
export declare function hasLocalePack(lang: string): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Nombres localizados, alineados por índice global con `getEmojiEntries()`.
|
|
53
|
+
* Devuelve null si el locale no tiene pack o si la carga falla — el llamador
|
|
54
|
+
* cae a los nombres en inglés (degradación, nunca excepción).
|
|
55
|
+
*/
|
|
56
|
+
export declare function loadLocaleNames(lang: string): Promise<string[] | null>;
|
|
57
|
+
/** Los 5 modificadores Fitzpatrick, en orden claro → oscuro (U+1F3FB..U+1F3FF). */
|
|
58
|
+
export declare const SKIN_TONES: readonly ["🏻", "🏼", "🏽", "🏾", "🏿"];
|
|
59
|
+
export type SkinTone = (typeof SKIN_TONES)[number];
|
|
60
|
+
/** Claves estables de la API pública: '' = por defecto (amarillo). */
|
|
61
|
+
export declare const SKIN_TONE_KEYS: readonly ["", "light", "medium-light", "medium", "medium-dark", "dark"];
|
|
62
|
+
export type SkinToneKey = (typeof SKIN_TONE_KEYS)[number];
|
|
63
|
+
/** Modificador correspondiente a una clave pública, o '' si no aplica. */
|
|
64
|
+
export declare function toneFromKey(key: string | undefined): string;
|
|
65
|
+
/**
|
|
66
|
+
* Aplica un modificador de tono a un emoji según su flag.
|
|
67
|
+
*
|
|
68
|
+
* Reglas (las dos que exige Unicode, no una aproximación):
|
|
69
|
+
* - El modificador REEMPLAZA al selector de variación U+FE0F que siga a la
|
|
70
|
+
* base: ✌️ (270C FE0F) + medio = 270C 1F3FD, no 270C FE0F 1F3FD. Solo al de
|
|
71
|
+
* la base — el FE0F de un componente posterior (♀️ en 🕵️♀️) se conserva.
|
|
72
|
+
* - Las secuencias multi-persona (flag '2') llevan el modificador en CADA
|
|
73
|
+
* persona: 👩❤️👨 tonado es 1F469 tono 200D 2764 FE0F 200D 1F468 tono. Con uno
|
|
74
|
+
* solo la secuencia deja de ser RGI y el navegador la parte en dos glifos.
|
|
75
|
+
*/
|
|
76
|
+
export declare function applySkinTone(char: string, flag: ToneFlag, tone: string): string;
|
|
77
|
+
/** Quita todo modificador de tono de un carácter (para volver a la base). */
|
|
78
|
+
export declare function stripSkinTone(char: string): string;
|
|
79
|
+
/**
|
|
80
|
+
* Resuelve un carácter (posiblemente tonado) a su entrada del dataset. Prueba la
|
|
81
|
+
* forma exacta —el caso común, sin costo— y cae a la clave normalizada.
|
|
82
|
+
*/
|
|
83
|
+
export declare function resolveEmoji(char: string): EmojiEntry | undefined;
|
|
84
|
+
/**
|
|
85
|
+
* Entradas para la fila de recientes. Los caracteres los da el consumidor (es
|
|
86
|
+
* el dueño del historial), así que acá se sanea: se descarta lo que no resuelve
|
|
87
|
+
* contra el dataset, se deduplica conservando el orden, y se recorta a `max`.
|
|
88
|
+
*
|
|
89
|
+
* El carácter se conserva TAL CUAL vino —con su tono— y por eso la entrada sale
|
|
90
|
+
* con `tone: '0'`: ya está resuelto, no hay que volver a tonarlo.
|
|
91
|
+
*/
|
|
92
|
+
export declare function buildRecentEntries(recent: string[] | undefined, max: number): EmojiEntry[];
|
|
93
|
+
/**
|
|
94
|
+
* Lista de recientes actualizada tras elegir `emoji` (MRU: más reciente
|
|
95
|
+
* primero, sin repetidos, recortada a `max`). Es una función pura para que el
|
|
96
|
+
* consumidor —dueño de la persistencia— no tenga que reimplementar la política.
|
|
97
|
+
*/
|
|
98
|
+
export declare function pushRecent(recent: string[] | undefined, emoji: string, max: number): string[];
|
|
99
|
+
/**
|
|
100
|
+
* Filtra por nombre, rankeando por relevancia (`rankByMatch`: exacto > prefijo >
|
|
101
|
+
* prefijo de palabra > substring), insensible a acentos y mayúsculas.
|
|
102
|
+
*
|
|
103
|
+
* Cuando hay pack de locale busca contra el nombre localizado Y el inglés: los
|
|
104
|
+
* emoji sin traducción CLDR (la mayoría de las banderas) siguen siendo
|
|
105
|
+
* encontrables, y quien tipea en inglés sobre una UI en español también acierta.
|
|
106
|
+
*/
|
|
107
|
+
export declare function searchEmojis(entries: EmojiEntry[], query: string, localeNames: string[] | null): EmojiEntry[];
|
|
108
|
+
/** Nombre a mostrar (tooltip / aria-label) para una entrada. */
|
|
109
|
+
export declare function displayName(entry: EmojiEntry, localeNames: string[] | null): string;
|
|
110
|
+
/**
|
|
111
|
+
* Aplana a filas de render. `grouped` inserta un header por categoría (modo
|
|
112
|
+
* idle); en modo búsqueda los resultados van en una grilla continua, porque
|
|
113
|
+
* vienen ordenados por relevancia y no por categoría.
|
|
114
|
+
*/
|
|
115
|
+
export declare function layoutRows(entries: EmojiEntry[], columns: number, grouped: boolean): EmojiRow[];
|
|
116
|
+
/** Posición (fila, columna) de cada índice global dentro de un layout. */
|
|
117
|
+
export declare function buildPositionMap(rows: EmojiRow[]): Map<number, {
|
|
118
|
+
row: number;
|
|
119
|
+
col: number;
|
|
120
|
+
}>;
|
|
121
|
+
/** Índice de fila donde arranca cada categoría (para el salto del strip). */
|
|
122
|
+
export declare function categoryRowStarts(rows: EmojiRow[]): Map<GridCategory, number>;
|
|
123
|
+
/** Categoría visible al tope del scroll — resalta el botón del strip. */
|
|
124
|
+
export declare function categoryAtRow(rows: EmojiRow[], rowIdx: number): GridCategory | null;
|
|
125
|
+
/**
|
|
126
|
+
* Ventana de filas a renderizar. 1906 emoji son ~240 filas: sin esto el panel
|
|
127
|
+
* monta ~1900 botones por apertura. Con la ventana quedan ~13 filas (~104
|
|
128
|
+
* botones) sin importar el tamaño del dataset.
|
|
129
|
+
*/
|
|
130
|
+
export declare function virtualSlice(scrollTop: number, viewportHeight: number, rowCount: number): {
|
|
131
|
+
totalHeight: number;
|
|
132
|
+
start: number;
|
|
133
|
+
end: number;
|
|
134
|
+
offsetY: number;
|
|
135
|
+
};
|
|
136
|
+
export type NavKey = 'ArrowRight' | 'ArrowLeft' | 'ArrowDown' | 'ArrowUp' | 'Home' | 'End' | 'PageDown' | 'PageUp';
|
|
137
|
+
/**
|
|
138
|
+
* Siguiente índice global activo tras una tecla de navegación, o el actual si
|
|
139
|
+
* el movimiento no lleva a ninguna celda.
|
|
140
|
+
*
|
|
141
|
+
* Trabaja sobre el layout (no sobre el array plano) para que las filas
|
|
142
|
+
* parciales del final de cada categoría y los headers intercalados se comporten
|
|
143
|
+
* como los ve el usuario: bajar desde una fila corta cae en la última celda de
|
|
144
|
+
* la fila de abajo, y los headers se saltan solos.
|
|
145
|
+
*/
|
|
146
|
+
export declare function moveActive(rows: EmojiRow[], positions: Map<number, {
|
|
147
|
+
row: number;
|
|
148
|
+
col: number;
|
|
149
|
+
}>, activeIndex: number, key: NavKey): number;
|
|
@@ -41,7 +41,9 @@ export declare class CoModal {
|
|
|
41
41
|
coAfterClose: EventEmitter<void>;
|
|
42
42
|
/** Open animation finished. */
|
|
43
43
|
coAfterOpen: EventEmitter<void>;
|
|
44
|
+
hasFooter: boolean;
|
|
44
45
|
private modalEl?;
|
|
46
|
+
private handleFooterSlotChange;
|
|
45
47
|
private handleOverlayClick;
|
|
46
48
|
private handleCloseClick;
|
|
47
49
|
private stopPropagation;
|
|
@@ -2049,6 +2049,68 @@ export namespace Components {
|
|
|
2049
2049
|
*/
|
|
2050
2050
|
"label": string;
|
|
2051
2051
|
}
|
|
2052
|
+
/**
|
|
2053
|
+
* Selector de emoji: buscador + strip de categorías + grilla virtualizada.
|
|
2054
|
+
* Es un PRIMITIVO de panel, igual que co-option-list: no renderiza trigger ni
|
|
2055
|
+
* chrome (popover/dialog/ancho). El host lo compone — típicamente dentro de un
|
|
2056
|
+
* `<co-popover>` colgado de su propio botón.
|
|
2057
|
+
* Dataset: 1906 emoji del set RGI, empaquetados como texto (~16 KB gz). Los
|
|
2058
|
+
* nombres localizados (es/pt) se cargan con `import()` dinámico solo cuando el
|
|
2059
|
+
* `locale` los pide; en inglés no se descargan nunca.
|
|
2060
|
+
* @event coSelect - El emoji elegido: `{ emoji, name }`.
|
|
2061
|
+
* @event coClose - Escape con el buscador vacío (el host decide si cierra).
|
|
2062
|
+
*/
|
|
2063
|
+
interface CoEmojiPicker {
|
|
2064
|
+
/**
|
|
2065
|
+
* Columnas de la grilla.
|
|
2066
|
+
* @default 8
|
|
2067
|
+
*/
|
|
2068
|
+
"columns": number;
|
|
2069
|
+
/**
|
|
2070
|
+
* Mensaje de "sin resultados". Vacío = el del `locale`.
|
|
2071
|
+
* @default ''
|
|
2072
|
+
*/
|
|
2073
|
+
"emptyMessage": string;
|
|
2074
|
+
/**
|
|
2075
|
+
* aria-label del panel. Vacío = el del `locale`.
|
|
2076
|
+
* @default ''
|
|
2077
|
+
*/
|
|
2078
|
+
"label": string;
|
|
2079
|
+
/**
|
|
2080
|
+
* Locale de los textos de UI y de los nombres de emoji ('es' | 'en' | 'pt').
|
|
2081
|
+
*/
|
|
2082
|
+
"locale"?: string;
|
|
2083
|
+
/**
|
|
2084
|
+
* Emoji usados recientemente, del más nuevo al más viejo. Se pintan como una categoría propia al tope de la grilla; con la lista vacía la categoría no existe (ni fila, ni header, ni botón en el strip). El historial lo posee el CONSUMIDOR, igual que el tono. Ningún componente de Cobalt escribe `localStorage`: el design system no conoce el scope de la preferencia (¿por usuario? ¿por workspace? ¿sincronizada al backend?) y escribir por su cuenta le impondría esa decisión a toda la suite. El consumidor recibe `coSelect` y actualiza esta prop; `pushRecent()` de `emojiPickerLogic` implementa la política MRU si no la quiere reescribir. Es RECIENTES (orden temporal), no "frecuentes" (por conteo): lo último que usaste queda primero, sin contadores que se calcifiquen arriba con el uso.
|
|
2085
|
+
* @default []
|
|
2086
|
+
*/
|
|
2087
|
+
"recent": string[];
|
|
2088
|
+
/**
|
|
2089
|
+
* Tope de emoji recientes mostrados.
|
|
2090
|
+
* @default 16
|
|
2091
|
+
*/
|
|
2092
|
+
"recentLimit": number;
|
|
2093
|
+
/**
|
|
2094
|
+
* Placeholder del buscador. Vacío = el del `locale`.
|
|
2095
|
+
* @default ''
|
|
2096
|
+
*/
|
|
2097
|
+
"searchPlaceholder": string;
|
|
2098
|
+
/**
|
|
2099
|
+
* Muestra el buscador.
|
|
2100
|
+
* @default true
|
|
2101
|
+
*/
|
|
2102
|
+
"searchable": boolean;
|
|
2103
|
+
/**
|
|
2104
|
+
* Muestra el strip de categorías.
|
|
2105
|
+
* @default true
|
|
2106
|
+
*/
|
|
2107
|
+
"showCategories": boolean;
|
|
2108
|
+
/**
|
|
2109
|
+
* Tono de piel aplicado a toda la grilla: `''` (por defecto) | `'light'` | `'medium-light'` | `'medium'` | `'medium-dark'` | `'dark'`. Es `mutable`: el componente la actualiza al elegir un tono para que funcione suelto, y emite `coSkinToneChange`. La PERSISTENCIA es del consumidor — Cobalt no escribe storage (ver el comentario de `recent`).
|
|
2110
|
+
* @default ''
|
|
2111
|
+
*/
|
|
2112
|
+
"skinTone": string;
|
|
2113
|
+
}
|
|
2052
2114
|
/**
|
|
2053
2115
|
* Empty state placeholder — icon, title, description, and action buttons.
|
|
2054
2116
|
*/
|
|
@@ -4733,6 +4795,10 @@ export interface CoDropZoneCustomEvent<T> extends CustomEvent<T> {
|
|
|
4733
4795
|
detail: T;
|
|
4734
4796
|
target: HTMLCoDropZoneElement;
|
|
4735
4797
|
}
|
|
4798
|
+
export interface CoEmojiPickerCustomEvent<T> extends CustomEvent<T> {
|
|
4799
|
+
detail: T;
|
|
4800
|
+
target: HTMLCoEmojiPickerElement;
|
|
4801
|
+
}
|
|
4736
4802
|
export interface CoEventCalendarCustomEvent<T> extends CustomEvent<T> {
|
|
4737
4803
|
detail: T;
|
|
4738
4804
|
target: HTMLCoEventCalendarElement;
|
|
@@ -5682,6 +5748,36 @@ declare global {
|
|
|
5682
5748
|
prototype: HTMLCoDropZoneElement;
|
|
5683
5749
|
new (): HTMLCoDropZoneElement;
|
|
5684
5750
|
};
|
|
5751
|
+
interface HTMLCoEmojiPickerElementEventMap {
|
|
5752
|
+
"coSelect": { emoji: string; name: string };
|
|
5753
|
+
"coSkinToneChange": { skinTone: string };
|
|
5754
|
+
"coClose": void;
|
|
5755
|
+
}
|
|
5756
|
+
/**
|
|
5757
|
+
* Selector de emoji: buscador + strip de categorías + grilla virtualizada.
|
|
5758
|
+
* Es un PRIMITIVO de panel, igual que co-option-list: no renderiza trigger ni
|
|
5759
|
+
* chrome (popover/dialog/ancho). El host lo compone — típicamente dentro de un
|
|
5760
|
+
* `<co-popover>` colgado de su propio botón.
|
|
5761
|
+
* Dataset: 1906 emoji del set RGI, empaquetados como texto (~16 KB gz). Los
|
|
5762
|
+
* nombres localizados (es/pt) se cargan con `import()` dinámico solo cuando el
|
|
5763
|
+
* `locale` los pide; en inglés no se descargan nunca.
|
|
5764
|
+
* @event coSelect - El emoji elegido: `{ emoji, name }`.
|
|
5765
|
+
* @event coClose - Escape con el buscador vacío (el host decide si cierra).
|
|
5766
|
+
*/
|
|
5767
|
+
interface HTMLCoEmojiPickerElement extends Components.CoEmojiPicker, HTMLStencilElement {
|
|
5768
|
+
addEventListener<K extends keyof HTMLCoEmojiPickerElementEventMap>(type: K, listener: (this: HTMLCoEmojiPickerElement, ev: CoEmojiPickerCustomEvent<HTMLCoEmojiPickerElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
5769
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
5770
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
5771
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
5772
|
+
removeEventListener<K extends keyof HTMLCoEmojiPickerElementEventMap>(type: K, listener: (this: HTMLCoEmojiPickerElement, ev: CoEmojiPickerCustomEvent<HTMLCoEmojiPickerElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
5773
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
5774
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
5775
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
5776
|
+
}
|
|
5777
|
+
var HTMLCoEmojiPickerElement: {
|
|
5778
|
+
prototype: HTMLCoEmojiPickerElement;
|
|
5779
|
+
new (): HTMLCoEmojiPickerElement;
|
|
5780
|
+
};
|
|
5685
5781
|
/**
|
|
5686
5782
|
* Empty state placeholder — icon, title, description, and action buttons.
|
|
5687
5783
|
*/
|
|
@@ -6758,6 +6854,7 @@ declare global {
|
|
|
6758
6854
|
"co-drawer": HTMLCoDrawerElement;
|
|
6759
6855
|
"co-drive-card": HTMLCoDriveCardElement;
|
|
6760
6856
|
"co-drop-zone": HTMLCoDropZoneElement;
|
|
6857
|
+
"co-emoji-picker": HTMLCoEmojiPickerElement;
|
|
6761
6858
|
"co-empty-state": HTMLCoEmptyStateElement;
|
|
6762
6859
|
"co-event-calendar": HTMLCoEventCalendarElement;
|
|
6763
6860
|
"co-event-popover": HTMLCoEventPopoverElement;
|
|
@@ -9091,6 +9188,80 @@ declare namespace LocalJSX {
|
|
|
9091
9188
|
*/
|
|
9092
9189
|
"onCoDrop"?: (event: CoDropZoneCustomEvent<File[]>) => void;
|
|
9093
9190
|
}
|
|
9191
|
+
/**
|
|
9192
|
+
* Selector de emoji: buscador + strip de categorías + grilla virtualizada.
|
|
9193
|
+
* Es un PRIMITIVO de panel, igual que co-option-list: no renderiza trigger ni
|
|
9194
|
+
* chrome (popover/dialog/ancho). El host lo compone — típicamente dentro de un
|
|
9195
|
+
* `<co-popover>` colgado de su propio botón.
|
|
9196
|
+
* Dataset: 1906 emoji del set RGI, empaquetados como texto (~16 KB gz). Los
|
|
9197
|
+
* nombres localizados (es/pt) se cargan con `import()` dinámico solo cuando el
|
|
9198
|
+
* `locale` los pide; en inglés no se descargan nunca.
|
|
9199
|
+
* @event coSelect - El emoji elegido: `{ emoji, name }`.
|
|
9200
|
+
* @event coClose - Escape con el buscador vacío (el host decide si cierra).
|
|
9201
|
+
*/
|
|
9202
|
+
interface CoEmojiPicker {
|
|
9203
|
+
/**
|
|
9204
|
+
* Columnas de la grilla.
|
|
9205
|
+
* @default 8
|
|
9206
|
+
*/
|
|
9207
|
+
"columns"?: number;
|
|
9208
|
+
/**
|
|
9209
|
+
* Mensaje de "sin resultados". Vacío = el del `locale`.
|
|
9210
|
+
* @default ''
|
|
9211
|
+
*/
|
|
9212
|
+
"emptyMessage"?: string;
|
|
9213
|
+
/**
|
|
9214
|
+
* aria-label del panel. Vacío = el del `locale`.
|
|
9215
|
+
* @default ''
|
|
9216
|
+
*/
|
|
9217
|
+
"label"?: string;
|
|
9218
|
+
/**
|
|
9219
|
+
* Locale de los textos de UI y de los nombres de emoji ('es' | 'en' | 'pt').
|
|
9220
|
+
*/
|
|
9221
|
+
"locale"?: string;
|
|
9222
|
+
/**
|
|
9223
|
+
* Emitido con Escape y el buscador ya vacío.
|
|
9224
|
+
*/
|
|
9225
|
+
"onCoClose"?: (event: CoEmojiPickerCustomEvent<void>) => void;
|
|
9226
|
+
/**
|
|
9227
|
+
* Emitido al elegir un emoji. `emoji` ya viene con el tono aplicado.
|
|
9228
|
+
*/
|
|
9229
|
+
"onCoSelect"?: (event: CoEmojiPickerCustomEvent<{ emoji: string; name: string }>) => void;
|
|
9230
|
+
/**
|
|
9231
|
+
* Emitido al cambiar el tono de piel — el consumidor lo persiste.
|
|
9232
|
+
*/
|
|
9233
|
+
"onCoSkinToneChange"?: (event: CoEmojiPickerCustomEvent<{ skinTone: string }>) => void;
|
|
9234
|
+
/**
|
|
9235
|
+
* Emoji usados recientemente, del más nuevo al más viejo. Se pintan como una categoría propia al tope de la grilla; con la lista vacía la categoría no existe (ni fila, ni header, ni botón en el strip). El historial lo posee el CONSUMIDOR, igual que el tono. Ningún componente de Cobalt escribe `localStorage`: el design system no conoce el scope de la preferencia (¿por usuario? ¿por workspace? ¿sincronizada al backend?) y escribir por su cuenta le impondría esa decisión a toda la suite. El consumidor recibe `coSelect` y actualiza esta prop; `pushRecent()` de `emojiPickerLogic` implementa la política MRU si no la quiere reescribir. Es RECIENTES (orden temporal), no "frecuentes" (por conteo): lo último que usaste queda primero, sin contadores que se calcifiquen arriba con el uso.
|
|
9236
|
+
* @default []
|
|
9237
|
+
*/
|
|
9238
|
+
"recent"?: string[];
|
|
9239
|
+
/**
|
|
9240
|
+
* Tope de emoji recientes mostrados.
|
|
9241
|
+
* @default 16
|
|
9242
|
+
*/
|
|
9243
|
+
"recentLimit"?: number;
|
|
9244
|
+
/**
|
|
9245
|
+
* Placeholder del buscador. Vacío = el del `locale`.
|
|
9246
|
+
* @default ''
|
|
9247
|
+
*/
|
|
9248
|
+
"searchPlaceholder"?: string;
|
|
9249
|
+
/**
|
|
9250
|
+
* Muestra el buscador.
|
|
9251
|
+
* @default true
|
|
9252
|
+
*/
|
|
9253
|
+
"searchable"?: boolean;
|
|
9254
|
+
/**
|
|
9255
|
+
* Muestra el strip de categorías.
|
|
9256
|
+
* @default true
|
|
9257
|
+
*/
|
|
9258
|
+
"showCategories"?: boolean;
|
|
9259
|
+
/**
|
|
9260
|
+
* Tono de piel aplicado a toda la grilla: `''` (por defecto) | `'light'` | `'medium-light'` | `'medium'` | `'medium-dark'` | `'dark'`. Es `mutable`: el componente la actualiza al elegir un tono para que funcione suelto, y emite `coSkinToneChange`. La PERSISTENCIA es del consumidor — Cobalt no escribe storage (ver el comentario de `recent`).
|
|
9261
|
+
* @default ''
|
|
9262
|
+
*/
|
|
9263
|
+
"skinTone"?: string;
|
|
9264
|
+
}
|
|
9094
9265
|
/**
|
|
9095
9266
|
* Empty state placeholder — icon, title, description, and action buttons.
|
|
9096
9267
|
*/
|
|
@@ -12417,6 +12588,17 @@ declare namespace LocalJSX {
|
|
|
12417
12588
|
"label": string;
|
|
12418
12589
|
"icon": string;
|
|
12419
12590
|
}
|
|
12591
|
+
interface CoEmojiPickerAttributes {
|
|
12592
|
+
"locale": string;
|
|
12593
|
+
"searchPlaceholder": string;
|
|
12594
|
+
"emptyMessage": string;
|
|
12595
|
+
"label": string;
|
|
12596
|
+
"searchable": boolean;
|
|
12597
|
+
"showCategories": boolean;
|
|
12598
|
+
"columns": number;
|
|
12599
|
+
"skinTone": string;
|
|
12600
|
+
"recentLimit": number;
|
|
12601
|
+
}
|
|
12420
12602
|
interface CoEmptyStateAttributes {
|
|
12421
12603
|
"icon": string;
|
|
12422
12604
|
"heading": string;
|
|
@@ -13065,6 +13247,7 @@ declare namespace LocalJSX {
|
|
|
13065
13247
|
"co-drawer": Omit<CoDrawer, keyof CoDrawerAttributes> & { [K in keyof CoDrawer & keyof CoDrawerAttributes]?: CoDrawer[K] } & { [K in keyof CoDrawer & keyof CoDrawerAttributes as `attr:${K}`]?: CoDrawerAttributes[K] } & { [K in keyof CoDrawer & keyof CoDrawerAttributes as `prop:${K}`]?: CoDrawer[K] };
|
|
13066
13248
|
"co-drive-card": Omit<CoDriveCard, keyof CoDriveCardAttributes> & { [K in keyof CoDriveCard & keyof CoDriveCardAttributes]?: CoDriveCard[K] } & { [K in keyof CoDriveCard & keyof CoDriveCardAttributes as `attr:${K}`]?: CoDriveCardAttributes[K] } & { [K in keyof CoDriveCard & keyof CoDriveCardAttributes as `prop:${K}`]?: CoDriveCard[K] };
|
|
13067
13249
|
"co-drop-zone": Omit<CoDropZone, keyof CoDropZoneAttributes> & { [K in keyof CoDropZone & keyof CoDropZoneAttributes]?: CoDropZone[K] } & { [K in keyof CoDropZone & keyof CoDropZoneAttributes as `attr:${K}`]?: CoDropZoneAttributes[K] } & { [K in keyof CoDropZone & keyof CoDropZoneAttributes as `prop:${K}`]?: CoDropZone[K] };
|
|
13250
|
+
"co-emoji-picker": Omit<CoEmojiPicker, keyof CoEmojiPickerAttributes> & { [K in keyof CoEmojiPicker & keyof CoEmojiPickerAttributes]?: CoEmojiPicker[K] } & { [K in keyof CoEmojiPicker & keyof CoEmojiPickerAttributes as `attr:${K}`]?: CoEmojiPickerAttributes[K] } & { [K in keyof CoEmojiPicker & keyof CoEmojiPickerAttributes as `prop:${K}`]?: CoEmojiPicker[K] };
|
|
13068
13251
|
"co-empty-state": Omit<CoEmptyState, keyof CoEmptyStateAttributes> & { [K in keyof CoEmptyState & keyof CoEmptyStateAttributes]?: CoEmptyState[K] } & { [K in keyof CoEmptyState & keyof CoEmptyStateAttributes as `attr:${K}`]?: CoEmptyStateAttributes[K] } & { [K in keyof CoEmptyState & keyof CoEmptyStateAttributes as `prop:${K}`]?: CoEmptyState[K] };
|
|
13069
13252
|
"co-event-calendar": Omit<CoEventCalendar, keyof CoEventCalendarAttributes> & { [K in keyof CoEventCalendar & keyof CoEventCalendarAttributes]?: CoEventCalendar[K] } & { [K in keyof CoEventCalendar & keyof CoEventCalendarAttributes as `attr:${K}`]?: CoEventCalendarAttributes[K] } & { [K in keyof CoEventCalendar & keyof CoEventCalendarAttributes as `prop:${K}`]?: CoEventCalendar[K] };
|
|
13070
13253
|
"co-event-popover": Omit<CoEventPopover, keyof CoEventPopoverAttributes> & { [K in keyof CoEventPopover & keyof CoEventPopoverAttributes]?: CoEventPopover[K] } & { [K in keyof CoEventPopover & keyof CoEventPopoverAttributes as `attr:${K}`]?: CoEventPopoverAttributes[K] } & { [K in keyof CoEventPopover & keyof CoEventPopoverAttributes as `prop:${K}`]?: CoEventPopover[K] };
|
|
@@ -13344,6 +13527,18 @@ declare module "@stencil/core" {
|
|
|
13344
13527
|
* Report ref: 3.17 (446–449); drag overlay spec: report lines 135–136.
|
|
13345
13528
|
*/
|
|
13346
13529
|
"co-drop-zone": LocalJSX.IntrinsicElements["co-drop-zone"] & JSXBase.HTMLAttributes<HTMLCoDropZoneElement>;
|
|
13530
|
+
/**
|
|
13531
|
+
* Selector de emoji: buscador + strip de categorías + grilla virtualizada.
|
|
13532
|
+
* Es un PRIMITIVO de panel, igual que co-option-list: no renderiza trigger ni
|
|
13533
|
+
* chrome (popover/dialog/ancho). El host lo compone — típicamente dentro de un
|
|
13534
|
+
* `<co-popover>` colgado de su propio botón.
|
|
13535
|
+
* Dataset: 1906 emoji del set RGI, empaquetados como texto (~16 KB gz). Los
|
|
13536
|
+
* nombres localizados (es/pt) se cargan con `import()` dinámico solo cuando el
|
|
13537
|
+
* `locale` los pide; en inglés no se descargan nunca.
|
|
13538
|
+
* @event coSelect - El emoji elegido: `{ emoji, name }`.
|
|
13539
|
+
* @event coClose - Escape con el buscador vacío (el host decide si cierra).
|
|
13540
|
+
*/
|
|
13541
|
+
"co-emoji-picker": LocalJSX.IntrinsicElements["co-emoji-picker"] & JSXBase.HTMLAttributes<HTMLCoEmojiPickerElement>;
|
|
13347
13542
|
/**
|
|
13348
13543
|
* Empty state placeholder — icon, title, description, and action buttons.
|
|
13349
13544
|
*/
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface EmojiStrings {
|
|
2
|
+
/** Placeholder del buscador. */
|
|
3
|
+
searchPlaceholder: string;
|
|
4
|
+
/** Mensaje cuando la búsqueda no devuelve nada. */
|
|
5
|
+
emptyMessage: string;
|
|
6
|
+
/** aria-label del panel completo. */
|
|
7
|
+
pickerLabel: string;
|
|
8
|
+
/** aria-label de la grilla de resultados. */
|
|
9
|
+
gridLabel: string;
|
|
10
|
+
/** aria-label del strip de categorías. */
|
|
11
|
+
categoriesLabel: string;
|
|
12
|
+
/** Nombres visibles de cada categoría, por slug. */
|
|
13
|
+
categories: Record<string, string>;
|
|
14
|
+
/** aria-label del botón que abre el selector de tono. */
|
|
15
|
+
skinToneLabel: string;
|
|
16
|
+
/** Nombres de los 6 tonos, alineados con SKIN_TONE_KEYS ('' primero). */
|
|
17
|
+
skinTones: string[];
|
|
18
|
+
}
|
|
19
|
+
/** Ícono Phosphor de cada categoría, para el strip de navegación. */
|
|
20
|
+
export declare const EMOJI_CATEGORY_ICONS: Record<string, string>;
|
|
21
|
+
/** Resolve the built-in UI strings for a locale. */
|
|
22
|
+
export declare function getEmojiStrings(locale?: string): EmojiStrings;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Slotted-content detection for shadow-DOM wrappers.
|
|
3
|
+
*
|
|
4
|
+
* WHY THIS EXISTS — `:empty` cannot see across a `<slot>`. A wrapper that holds
|
|
5
|
+
* only `<slot name="footer" />` always has ONE element child (the `<slot>`
|
|
6
|
+
* itself), so `.wrapper:empty` NEVER matches, and the wrapper keeps painting its
|
|
7
|
+
* padding / border-top even when the consumer projects nothing. The classic
|
|
8
|
+
* symptom is a footer strip with a divider line under an otherwise empty modal
|
|
9
|
+
* or drawer, which consumers then patch away with `::part(footer){display:none}`.
|
|
10
|
+
*
|
|
11
|
+
* Slotted presence therefore has to be tracked in JS, driven by `slotchange`,
|
|
12
|
+
* and mapped to a `--empty` / `--show` modifier class the CSS can key off.
|
|
13
|
+
*
|
|
14
|
+
* The `<slot>` itself must stay MOUNTED for this to work: never gate the slot
|
|
15
|
+
* behind the resulting flag (`{hasFooter && <slot/>}`), or the slot disappears,
|
|
16
|
+
* `slotchange` can never fire again and content projected later never shows up.
|
|
17
|
+
* Hide the WRAPPER, keep the slot.
|
|
18
|
+
*/
|
|
19
|
+
export declare function slotHasContent(e: Event): boolean;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prolibu-suite/cobalt-core",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.2",
|
|
4
4
|
"description": "Cobalt Design System — Framework-agnostic Web Components built with Stencil",
|
|
5
5
|
"main": "dist/index.cjs.js",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -50,10 +50,10 @@
|
|
|
50
50
|
"@phosphor-icons/core": "^2.1.1",
|
|
51
51
|
"dompurify": "^3.2.6",
|
|
52
52
|
"overlayscrollbars": "^2.16.0",
|
|
53
|
-
"@prolibu-suite/cobalt-calendar-utils": "0.1.0",
|
|
54
53
|
"@prolibu-suite/cobalt-rich-text": "0.1.2",
|
|
55
|
-
"@prolibu-suite/cobalt-
|
|
56
|
-
"@prolibu-suite/cobalt-
|
|
54
|
+
"@prolibu-suite/cobalt-tokens": "0.4.0",
|
|
55
|
+
"@prolibu-suite/cobalt-calendar-utils": "0.1.0",
|
|
56
|
+
"@prolibu-suite/cobalt-date-utils": "0.1.1"
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
59
|
"@stencil/core": "^4.43.4",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as i,h as t}from"./p-CrtiywTB.js";const e=class{constructor(t){i(this,t),this.video=!1,this.height="132px",this.radius=10}toCss(i){if("number"==typeof i)return`${i}px`;const t=String(i).trim();return/^-?\d*\.?\d+$/.test(t)?`${t}px`:t}render(){var i;return t("div",{key:"42fce6b31a7fe5a35b41b28d96a67c800151bcec",class:{"co-media-thumb":!0,"co-media-thumb--video":this.video},part:"thumb",style:{height:this.toCss(this.height),borderRadius:`${this.radius}px`}},this.src?t("img",{class:"co-media-thumb__img",src:this.src,alt:null!==(i=this.alt)&&void 0!==i?i:"",part:"img"}):t("slot",null),this.video&&t("div",{key:"4430246548961644d9f42f92553500940f4df104",class:"co-media-thumb__scrim",part:"scrim"},t("div",{key:"77caecbab8334f1cfdc962ad0324a3955b96efa4",class:"co-media-thumb__play",part:"play"},t("svg",{key:"ebec80f90e363b1702bbb4c7dbc769d2e864a9a5",class:"co-media-thumb__play-icon",width:"16",height:"18",viewBox:"0 0 16 18",fill:"none","aria-hidden":"true"},t("path",{key:"8e8d03f91df6cf4fb9cf18f03805739689563eb0",d:"M2 2l12 7-12 7z",fill:"var(--co-color-base-negro, #1f1c1b)"})))))}};e.style=":host{display:block}.co-media-thumb{position:relative;overflow:hidden;width:100%;background:var(--co-color-gray-100, #f6f6f6);box-sizing:border-box}.co-media-thumb__img{width:100%;height:100%;object-fit:cover;display:block}.co-media-thumb__scrim{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(31, 28, 27, 0.28)}.co-media-thumb__play{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:rgba(255, 255, 255, 0.92)}.co-media-thumb__play-icon{display:block;margin-left:2px;}";export{e as co_media_thumb}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as a,c as e,h as d}from"./p-CrtiywTB.js";const o=class{constructor(d){a(this,d),this.coModeChange=e(this,"coModeChange",7),this.mode="full"}render(){return d("nav",{key:"ad5f66c721365f3a9ca2192765df243e8dea492e",class:{"co-sidebar":!0,[`co-sidebar--${this.mode}`]:!0},part:"sidebar"},d("div",{key:"45a2250516e1080f79b4a4554a0db7715c30066d",class:"co-sidebar__header",part:"header"},d("slot",{key:"04a468d4eb6cf9bbd2acc482ba50defc4271166e",name:"header"})),d("div",{key:"730e37997945ce8bc7bc2d177beb25bbd0a1813f",class:"co-sidebar__body",part:"body"},d("slot",{key:"22c20554c8f2d85952d43484cda5903dbf33588d"})),d("div",{key:"6bb53d0394b9107ea1553e21047d51ea5fe0f292",class:"co-sidebar__footer",part:"footer"},d("slot",{key:"2b326d1beed32288d50ba17abad459929ed1e940",name:"footer"})))}};o.style=":host{display:flex;height:100%}.co-sidebar{display:flex;flex-direction:column;background:var(--co-semantic-surface-page);border-right:1px solid var(--co-semantic-border-subtle);font-family:var(--co-font-family-primary);box-sizing:border-box;overflow:hidden;transition:width var(--co-motion-duration-base) var(--co-motion-ease-out)}.co-sidebar--full{width:256px}.co-sidebar--min{width:58px;align-items:center}.co-sidebar__header{padding:var(--co-spacing-lg);flex-shrink:0}.co-sidebar--min .co-sidebar__header{padding:var(--co-spacing-md)}.co-sidebar__body{flex:1;overflow-y:auto;padding:var(--co-spacing-sm2) var(--co-spacing-md)}.co-sidebar--min .co-sidebar__body{padding:var(--co-spacing-sm2)}.co-sidebar__footer{padding:var(--co-spacing-md) var(--co-spacing-lg);flex-shrink:0}.co-sidebar--min .co-sidebar__footer{padding:var(--co-spacing-md)}.co-sidebar__header:empty,.co-sidebar__footer:empty{display:none}";export{o as co_sidebar}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as t,c as i,h as a,H as o,a as s}from"./p-CrtiywTB.js";import{c as e}from"./p-BMdapAL8.js";const r=class{constructor(a){t(this,a),this.coClose=i(this,"coClose",3),this.open=!1,this.placement="right-start",this.dot=!0,this.closeOnEscape=!0,this.closeOnClickOutside=!0,this.position=()=>{if(!this.open||!this.panelEl||!this.anchorRect)return;const t=this.anchorRect,i={top:t.top,left:t.left,right:t.left+t.width,bottom:t.top+t.height,width:t.width,height:t.height},a=this.panelEl.getBoundingClientRect(),{top:o,left:s}=e(i,a,{placement:this.placement,offset:8,flip:!0});this.panelEl.style.top=`${o}px`,this.panelEl.style.left=`${s}px`},this.onScroll=()=>{this.open&&this.requestClose()},this.onKeydown=t=>{this.open&&this.closeOnEscape&&"Escape"===t.key&&(t.stopPropagation(),this.requestClose())},this.onPointerDown=t=>{if(!this.open||!this.closeOnClickOutside||!this.panelEl)return;const i=t.composedPath();i.includes(this.panelEl)||i.includes(this.el)||this.requestClose()}}componentDidLoad(){this.open&&this.onOpenChange(!0)}onOpenChange(t){var i;t?(this.prevFocus=null!==(i=document.activeElement)&&void 0!==i?i:void 0,requestAnimationFrame((()=>this.promoteAndPosition()))):(this.dismissPanel(),this.prevFocus&&this.prevFocus.focus())}onAnchorChange(){this.open&&this.position()}disconnectedCallback(){this.teardownListeners()}promoteAndPosition(){var t,i;if(this.open&&this.panelEl){try{null===(i=(t=this.panelEl).showPopover)||void 0===i||i.call(t)}catch(t){}this.position(),this.panelEl.focus(),window.addEventListener("resize",this.onScroll),window.addEventListener("scroll",this.onScroll,!0),window.addEventListener("keydown",this.onKeydown,!0),window.addEventListener("pointerdown",this.onPointerDown,!0)}}dismissPanel(){var t,i;try{null===(i=null===(t=this.panelEl)||void 0===t?void 0:t.hidePopover)||void 0===i||i.call(t)}catch(t){}this.teardownListeners()}teardownListeners(){window.removeEventListener("resize",this.onScroll),window.removeEventListener("scroll",this.onScroll,!0),window.removeEventListener("keydown",this.onKeydown,!0),window.removeEventListener("pointerdown",this.onPointerDown,!0)}requestClose(){this.coClose.emit()}render(){return a(o,{key:"9d9ef1be12cef8d6703df32d7e768bd4b33f5894"},a("div",{key:"ea63b1ab102045fc94c9d095cfcace4975f3fa70",class:"pop",popover:"manual",role:"dialog","aria-modal":"false","aria-label":this.popoverLabel,tabIndex:-1,ref:t=>this.panelEl=t},a("div",{key:"c7f1c90eadd6fad31c60e6ac9878d7a5aa473ba0",class:"pop__actions",part:"actions"},a("slot",{key:"84dd97edf67abeabba540914167b5bc3873587b3",name:"actions"})),a("div",{key:"41b360d62f4e61826a67a3445a0554a29a80d58a",class:"pop__head"},this.dot&&a("span",{key:"7b5d2f30b23464a73164f056719ae65d28786696",class:"pop__dot",style:this.color?{background:this.color}:{}}),a("div",{key:"f9ef28f360297b6e145929ecbbcc4145b1ea855c",class:"pop__body",part:"body"},a("slot",{key:"9029fc9c2c99a8202185a21f1a0212145b61334b"})))))}get el(){return s(this)}static get watchers(){return{open:[{onOpenChange:0}],anchorRect:[{onAnchorChange:0}]}}};r.style=":host{display:contents}.pop{position:fixed;margin:0;inset:auto;width:400px;max-width:calc(100vw - 24px);max-height:calc(100vh - 24px);overflow:auto;background:var(--co-semantic-surface-page);border:1px solid var(--co-semantic-border-default);border-radius:var(--co-border-radius-md, 14px);box-shadow:var(--co-shadow-xl, var(--co-shadow-lg));padding:0;z-index:1000;font-family:var(--co-font-family-primary);color:var(--co-semantic-text-default);animation:co-pop-in var(--co-motion-duration-fast) var(--co-motion-ease-out);outline:none}@keyframes co-pop-in{from{opacity:0;transform:scale(0.96)}to{opacity:1;transform:scale(1)}}.pop__actions{display:flex;justify-content:flex-end;gap:var(--co-spacing-xxs);padding:var(--co-spacing-sm2) var(--co-spacing-sm2) 0}.pop__head{display:flex;gap:var(--co-spacing-md);padding:var(--co-spacing-xs) var(--co-spacing-xl) var(--co-spacing-xl)}.pop__dot{flex:0 0 auto;width:14px;height:14px;border-radius:var(--co-border-radius-xxs);margin-top:5px;background:var(--co-color-primary-azul)}.pop__body{min-width:0;flex:1 1 auto}";export{r as co_event_popover}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as t,c as e,h as s,a as o}from"./p-CrtiywTB.js";const i=class{constructor(s){t(this,s),this.coOpen=e(this,"coOpen",3),this.coClose=e(this,"coClose",3),this.placement="bottom-end",this.offset=4,this.autoClose=!0,this.open=!1,this.handleKeydown=t=>{if(this.open)switch(t.key){case"Escape":t.preventDefault(),t.stopPropagation(),this.open=!1;break;case"ArrowDown":case"ArrowUp":t.preventDefault(),this.moveFocus("ArrowDown"===t.key?1:-1)}},this.handlePopoverOpen=()=>{this.open=!0,this.coOpen.emit()},this.handlePopoverClose=()=>{this.open=!1,this.coClose.emit()}}handleMenuSelect(){this.autoClose&&(this.open=!1)}onOpenChange(t){t?(document.addEventListener("keydown",this.handleKeydown,!0),requestAnimationFrame((()=>this.focusFirstItem()))):document.removeEventListener("keydown",this.handleKeydown,!0)}disconnectedCallback(){document.removeEventListener("keydown",this.handleKeydown,!0)}async focusFirstItem(){var t,e;null===(e=null===(t=this.getMenuItems()[0])||void 0===t?void 0:t.focusItem)||void 0===e||e.call(t)}getMenuItems(){return Array.from(this.el.querySelectorAll("co-menu-item"))}moveFocus(t){var e,s;const o=this.getMenuItems().filter((t=>!t.disabled));if(0===o.length)return;const i=document.activeElement;let n=o.findIndex((t=>t===i||t.contains(i)));-1===n&&(n=t>0?-1:o.length),null===(s=null===(e=o[(n+t+o.length)%o.length])||void 0===e?void 0:e.focusItem)||void 0===s||s.call(e)}render(){return s("co-popover",{key:"afc38289103988c2e71fd219e397f475924ebddc",placement:this.placement,offset:this.offset,open:this.open,onCoOpen:this.handlePopoverOpen,onCoClose:this.handlePopoverClose},s("slot",{key:"35c3defb8ea82fc1a077cd77f75168d1455d8a5c",name:"trigger",slot:"trigger"}),s("div",{key:"4a741c330a25f412396a4331dd63e839334acba4",class:"co-menu",role:"menu",style:this.width?{width:this.width,minWidth:this.width}:void 0},s("slot",{key:"3448b69c6c6be4aa2fcf8dcbe1cef4298b266699"})))}get el(){return o(this)}static get watchers(){return{open:[{onOpenChange:0}]}}};i.style=":host{display:contents}.co-menu{background:var(--co-semantic-surface-secondary, #fff);border-radius:var(--co-border-radius-sm, 12px);box-shadow:var(--co-shadow-lg, 0 4px 12px rgba(0, 0, 0, 0.08), 0 1px 3px rgba(0, 0, 0, 0.04)), inset 0 0 0 1px var(--co-color-opacity-negro-8, rgba(31, 28, 27, 0.08));padding:var(--co-menu-padding, var(--co-spacing-xs, 4px));min-width:200px;display:flex;flex-direction:column;gap:2px;font-family:var(--co-font-family-primary);font-size:var(--co-font-size-14, 14px);color:var(--co-semantic-text-default)}";export{i as co_menu}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e,h as a}from"./p-CrtiywTB.js";const c=class{constructor(a){e(this,a)}render(){return a("div",{key:"305f42c88d10f238351f362b72283abe82eaeb20",class:"co-page-header",part:"page-header"},a("div",{key:"10185fe127049bfece585c59f92824888113861e",class:"co-page-header__left"},this.icon&&a("span",{key:"017bc4f2aed8d05999c581ce0d7a4797aa84eff6",class:"co-page-header__icon"},a("co-icon",{key:"7d5863437875aa09ad3bbe9e12c0b5d5c9f5c0c7",name:this.icon,size:24})),a("span",{key:"e62ead8cb061045d8995689dce3009e9843e3997",class:"co-page-header__title"},a("slot",{key:"9e1d01a94942daeeb1c56f1d0f05534b45125422"},this.heading))),a("div",{key:"5a2dd08e5b11ab33e64ddb581196d8535deb0925",class:"co-page-header__actions"},a("slot",{key:"7fd3a5ea06593c9208a59ba2812bb827f1d39815",name:"actions"})))}};c.style=":host{display:block}.co-page-header{display:flex;align-items:center;justify-content:space-between;padding:var(--co-spacing-lg) var(--co-spacing-xl);font-family:var(--co-font-family-primary);border-bottom:1px solid var(--co-semantic-border-subtle);background:var(--co-semantic-surface-page);min-height:72px;box-sizing:border-box}.co-page-header__left{display:flex;align-items:center;gap:var(--co-spacing-md)}.co-page-header__icon{display:flex;color:var(--co-semantic-text-muted)}.co-page-header__title{font-size:var(--co-font-size-18);font-weight:600;color:var(--co-semantic-text-default)}.co-page-header__actions{display:flex;align-items:center;gap:var(--co-spacing-md)}.co-page-header__actions:empty{display:none}";export{c as co_page_header}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e,c as t,h as a,a as r}from"./p-CrtiywTB.js";import{g as o}from"./p-CnNpoKwg.js";import{b as i,d as s,a as c,p as n,i as d,h as l,s as h,c as f,e as p,j as u,g,k as m,f as b,l as v}from"./p-BU7SQCje.js";import{R as _}from"./p-T4la7ly_.js";const w=class{constructor(a){e(this,a),this.coSelect=t(this,"coSelect",7),this.coRangeSelect=t(this,"coRangeSelect",7),this.mode="single",this.locale="es-CO",this.firstDayOfWeek=1,this.hoverDay=null,this.view="days",this.shouldFocusGrid=!1,this.handleDayHover=e=>{"range"===this.mode&&(this.hoverDay=e)},this.handlePrev=()=>this.step(-1),this.handleNext=()=>this.step(1),this.toggleView=()=>{this.view="days"===this.view?"months":"months"===this.view?"years":"days"},this.handleGridKeyDown=e=>{const t=this.focused;let a=!0;switch(e.key){case"ArrowLeft":this.moveFocus(s(t,-1));break;case"ArrowRight":this.moveFocus(s(t,1));break;case"ArrowUp":this.moveFocus(s(t,-7));break;case"ArrowDown":this.moveFocus(s(t,7));break;case"Home":this.moveFocus(y(t,this.firstDayOfWeek));break;case"End":this.moveFocus(s(y(t,this.firstDayOfWeek),6));break;case"PageUp":this.moveFocus(i(t,e.shiftKey?-12:-1));break;case"PageDown":this.moveFocus(i(t,e.shiftKey?12:1));break;case"Enter":case" ":this.selectDay(t);break;default:a=!1}a&&(e.preventDefault(),e.stopPropagation())}}componentWillLoad(){var e;const t=null!==(e=this.anchorValue)&&void 0!==e?e:c(),a=n(t);this.viewYear=a.year,this.viewMonth=a.month,this.focused=this.initialFocus()}onValueChange(){if(!this.selectedValue)return;const e=n(this.selectedValue);this.viewYear=e.year,this.viewMonth=e.month,this.focused=this.selectedValue}async focusGrid(){this.shouldFocusGrid=!0,this.focusFocusedCell()}get selectedValue(){return d(this.value)?this.value:null}get rangeStartV(){return d(this.rangeStart)?this.rangeStart:null}get rangeEndV(){return d(this.rangeEnd)?this.rangeEnd:null}get anchorValue(){return"range"===this.mode?this.rangeStartV:this.selectedValue}get disabledOpts(){return{min:this.min,max:this.max,disabledDates:x(this.disabledDates),disabledDaysOfWeek:L(this.disabledDaysOfWeek)}}isDayDisabled(e){return l(e,this.disabledOpts)}initialFocus(){const e=this.anchorValue;if(e&&!this.isDayDisabled(e))return e;const t=c(),a=n(t);if(a.year===this.viewYear&&a.month===this.viewMonth&&!this.isDayDisabled(t))return t;const r=`${String(this.viewYear).padStart(4,"0")}-${String(this.viewMonth).padStart(2,"0")}-01`;let o=r;for(let e=0;e<31;e++){const e=n(o);if(!e||e.month!==this.viewMonth)break;if(!this.isDayDisabled(o))return o;o=s(o,1)}return r}selectDay(e){this.isDayDisabled(e)||(this.focused=e,"range"===this.mode?this.selectRangeDay(e):this.coSelect.emit(e))}selectRangeDay(e){const t=this.rangeStartV;let a;a=!t||t&&this.rangeEndV?{start:e,end:null}:f(e,t)<0?{start:e,end:t}:{start:t,end:e},this.coRangeSelect.emit(a)}moveFocus(e){this.focused=e;const t=n(e);t.year===this.viewYear&&t.month===this.viewMonth||(this.viewYear=t.year,this.viewMonth=t.month),this.shouldFocusGrid=!0}step(e){if("days"===this.view){const t=i(`${this.viewYear}-${String(this.viewMonth).padStart(2,"0")}-01`,e),a=n(t);this.viewYear=a.year,this.viewMonth=a.month}else this.viewYear+="months"===this.view?e:10*e}selectMonth(e){this.viewMonth=e,this.view="days"}selectYear(e){this.viewYear=e,this.view="months"}get decadeStart(){return 10*Math.floor(this.viewYear/10)}get selectedYM(){const e="range"===this.mode?this.rangeStartV:this.selectedValue;if(!e)return null;const t=n(e);return{year:t.year,month:t.month}}isMonthDisabled(e,t){const a=`${String(e).padStart(4,"0")}-${String(t).padStart(2,"0")}-01`,r=s(h(i(a,1)),-1);return!!(this.min&&f(r,this.min)<0)||!!(this.max&&f(a,this.max)>0)}isYearDisabled(e){const t=`${String(e).padStart(4,"0")}-01-01`,a=`${String(e).padStart(4,"0")}-12-31`;return!!(this.min&&f(a,this.min)<0)||!!(this.max&&f(t,this.max)>0)}componentDidRender(){this.shouldFocusGrid&&(this.shouldFocusGrid=!1,this.focusFocusedCell())}focusFocusedCell(){var e;const t=null===(e=this.el.shadowRoot)||void 0===e?void 0:e.querySelector(`[data-date="${this.focused}"]`);null==t||t.focus()}rangeFlags(e){const t=this.rangeStartV,a=this.rangeEndV;if(!t)return{isStart:!1,isEnd:!1,inRange:!1};const r=null!=a?a:this.hoverDay&&!a?this.hoverDay:null;if(!r)return{isStart:0===f(e,t),isEnd:!1,inRange:!1};const o=f(t,r)<=0?t:r,i=f(t,r)<=0?r:t;return{isStart:0===f(e,o),isEnd:0===f(e,i),inRange:f(e,o)>0&&f(e,i)<0}}dayClass(e,t,a){const r=0===f(e,c());if("range"===this.mode){const{isStart:o,isEnd:i,inRange:s}=this.rangeFlags(e);return{"co-calendar__day":!0,"co-calendar__day--outside":!t,"co-calendar__day--today":r&&!(o||i)&&!s,"co-calendar__day--range-start":o,"co-calendar__day--range-end":i,"co-calendar__day--in-range":s,"co-calendar__day--disabled":a}}const o=this.selectedValue,i=!!o&&0===f(e,o);return{"co-calendar__day":!0,"co-calendar__day--outside":!t,"co-calendar__day--today":r&&!i,"co-calendar__day--selected":i,"co-calendar__day--disabled":a}}headerTitle(){return"months"===this.view?String(this.viewYear):"years"===this.view?`${this.decadeStart}–${this.decadeStart+9}`:p(this.viewYear,this.viewMonth,this.locale,"long")}renderDays(e){const t=p(this.viewYear,this.viewMonth,this.locale,"long"),r=u(this.locale,this.firstDayOfWeek,"short"),o=u(this.locale,this.firstDayOfWeek,"long"),i=g(this.viewYear,this.viewMonth,this.firstDayOfWeek);return a("div",{class:"co-calendar__grid",part:"grid",role:"grid","aria-label":t,onKeyDown:this.handleGridKeyDown},a("div",{class:"co-calendar__row co-calendar__row--dow",role:"row"},r.map(((e,t)=>a("span",{class:"co-calendar__dow",role:"columnheader","aria-label":o[t]},e)))),i.map((e=>a("div",{class:"co-calendar__row",role:"row"},e.map((e=>{const t=this.isDayDisabled(e.value),r=0===f(e.value,this.focused),o=0===f(e.value,c());let i;if("range"===this.mode){const{isStart:t,isEnd:a}=this.rangeFlags(e.value);i=t||a}else{const t=this.selectedValue;i=!!t&&0===f(e.value,t)}const s=n(e.value).day;return a("button",{type:"button",role:"gridcell","data-date":e.value,class:this.dayClass(e.value,e.inMonth,t),tabIndex:r?0:-1,"aria-selected":i?"true":"false","aria-current":o?"date":void 0,"aria-disabled":t?"true":void 0,"aria-label":m(e.value,this.locale),onClick:()=>this.selectDay(e.value),onMouseEnter:()=>this.handleDayHover(e.value),onMouseLeave:()=>this.handleDayHover(null)},s)}))))))}renderMonths(){const e=this.selectedYM,t=new Date;return a("div",{class:"co-calendar__panel",part:"grid"},Array.from({length:12},((r,o)=>{const i=o+1,s=new Intl.DateTimeFormat(this.locale,{month:"short"}).format(new Date(this.viewYear,o,1)),c=this.isMonthDisabled(this.viewYear,i),n=!!e&&e.year===this.viewYear&&e.month===i,d=t.getFullYear()===this.viewYear&&t.getMonth()===o;return a("button",{type:"button",class:{"co-calendar__cell":!0,"co-calendar__cell--selected":n,"co-calendar__cell--today":d&&!n,"co-calendar__cell--disabled":c},disabled:c,"aria-current":d?"date":void 0,onClick:()=>this.selectMonth(i)},s)})))}renderYears(){const e=this.selectedYM,t=(new Date).getFullYear(),r=this.decadeStart-1;return a("div",{class:"co-calendar__panel",part:"grid"},Array.from({length:12},((o,i)=>{const s=r+i,c=this.isYearDisabled(s),n=!!e&&e.year===s,d=t===s;return a("button",{type:"button",class:{"co-calendar__cell":!0,"co-calendar__cell--muted":s<this.decadeStart||s>this.decadeStart+9,"co-calendar__cell--selected":n,"co-calendar__cell--today":d&&!n,"co-calendar__cell--disabled":c},disabled:c,"aria-current":d?"date":void 0,onClick:()=>this.selectYear(s)},s)})))}render(){var e,t;const r=o(this.locale);return a("div",{key:"795529e38ec7b72934d786b9dcaa5046e73fbde8",class:"co-calendar",part:"root"},a("div",{key:"f409d1670f4f649d8e91f21915e0008d9ed330ac",class:"co-calendar__header",part:"header"},a("button",{key:"23a4f12ec30cd86e49661daf755a6d2e23b209ad",type:"button",class:"co-calendar__nav",onClick:this.handlePrev,"aria-label":null!==(e=this.prevMonthLabel)&&void 0!==e?e:r.prevMonth},a("co-icon",{key:"ce6b736011e3ed13781cac180fe4542ec38c75c3",name:"caret-left",size:16})),a("button",{key:"b1fcbb3d09e33b0b462bc278b46e14a348f9f9a9",type:"button",class:"co-calendar__title","aria-live":"polite",onClick:this.toggleView},this.headerTitle(),a("co-icon",{key:"dbe1800ed74e234dc8f334183e504d19d8ab9d74",name:"caret-down",size:12,class:"co-calendar__title-caret"})),a("button",{key:"bdbda5999d20cb799aeabe48ebad6e8a4d7d89ff",type:"button",class:"co-calendar__nav",onClick:this.handleNext,"aria-label":null!==(t=this.nextMonthLabel)&&void 0!==t?t:r.nextMonth},a("co-icon",{key:"ec2e268c38d04d1f298cfb12d29647b530b03a94",name:"caret-right",size:16}))),"days"===this.view&&this.renderDays(r),"months"===this.view&&this.renderMonths(),"years"===this.view&&this.renderYears())}get el(){return r(this)}static get watchers(){return{value:[{onValueChange:0}]}}};function y(e,t){const a=n(e);if(!a)return e;const r=new Date(a.year,a.month-1,a.day).getDay();return s(e,-(r-t+7)%7)}function x(e){if(Array.isArray(e))return e;if("string"==typeof e&&e.trim()){const t=e.trim();try{const e=JSON.parse(t);if(Array.isArray(e))return e.map(String)}catch(e){}return t.split(",").map((e=>e.trim())).filter(Boolean)}return[]}function L(e){if(Array.isArray(e))return e;if("string"==typeof e&&e.trim()){const t=e.trim();try{const e=JSON.parse(t);if(Array.isArray(e))return e.map(Number).filter((e=>!Number.isNaN(e)))}catch(e){}return t.split(",").map((e=>Number(e.trim()))).filter((e=>!Number.isNaN(e)))}return[]}w.style=":host{display:inline-block;font-family:var(--co-font-family-primary);--co-calendar-day-size:36px}:host([data-touch]){--co-calendar-day-size:44px}.co-calendar{display:flex;flex-direction:column;gap:var(--co-spacing-sm);width:max-content}.co-calendar__header{display:flex;align-items:center;justify-content:space-between;padding:0 var(--co-spacing-xs)}.co-calendar__month{font-size:var(--co-font-size-14);font-weight:600;color:var(--co-semantic-text-default);text-transform:capitalize}.co-calendar__title{display:inline-flex;align-items:center;gap:var(--co-spacing-xxs);background:none;border:0;cursor:pointer;font-family:inherit;font-size:var(--co-font-size-14);font-weight:600;color:var(--co-semantic-text-default);text-transform:capitalize;padding:var(--co-spacing-xxs) var(--co-spacing-sm);border-radius:var(--co-border-radius-xs)}.co-calendar__title:hover{background:var(--co-semantic-surface-hover)}.co-calendar__title:focus-visible{outline:2px solid var(--co-semantic-border-focus);outline-offset:1px}.co-calendar__title-caret{color:var(--co-semantic-text-muted)}.co-calendar__panel{display:grid;grid-template-columns:repeat(3, 1fr);gap:var(--co-spacing-xs);width:calc(var(--co-calendar-day-size) * 7 + 12px);padding-top:var(--co-spacing-xs)}.co-calendar__cell{height:calc(var(--co-calendar-day-size) + 8px);display:inline-flex;align-items:center;justify-content:center;background:none;border:1px solid transparent;border-radius:var(--co-border-radius-xs);font-family:inherit;font-size:var(--co-font-size-14);color:var(--co-semantic-text-default);cursor:pointer;text-transform:capitalize;transition:background var(--co-motion-duration-fast) var(--co-motion-ease-out), color var(--co-motion-duration-fast) var(--co-motion-ease-out), border-color var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-calendar__cell:hover:not(.co-calendar__cell--disabled):not(.co-calendar__cell--selected){background:var(--co-semantic-surface-hover)}.co-calendar__cell:focus-visible{outline:2px solid var(--co-semantic-border-focus);outline-offset:1px}.co-calendar__cell--muted{color:var(--co-semantic-text-muted)}.co-calendar__cell--today{border-color:var(--co-semantic-surface-primary);font-weight:600}.co-calendar__cell--selected{background:var(--co-semantic-surface-primary);border-color:var(--co-semantic-surface-primary);color:var(--co-semantic-on-primary);font-weight:600}.co-calendar__cell--disabled{color:var(--co-semantic-text-disabled);cursor:not-allowed}.co-calendar__nav{background:none;border:0;cursor:pointer;padding:var(--co-spacing-xs);border-radius:var(--co-border-radius-xxs);display:inline-flex;align-items:center;color:var(--co-semantic-text-default)}.co-calendar__nav:hover{background:var(--co-semantic-surface-hover)}.co-calendar__nav:focus-visible{outline:2px solid var(--co-semantic-border-focus);outline-offset:1px}.co-calendar__grid{display:flex;flex-direction:column;gap:2px}.co-calendar__row{display:grid;grid-template-columns:repeat(7, var(--co-calendar-day-size));gap:2px}.co-calendar__row--dow{margin-bottom:2px}.co-calendar__dow{height:24px;display:inline-flex;align-items:center;justify-content:center;font-size:var(--co-font-size-10, 10px);font-weight:600;color:var(--co-semantic-text-muted);text-transform:uppercase;letter-spacing:0.04em}.co-calendar__day{width:var(--co-calendar-day-size);height:var(--co-calendar-day-size);display:inline-flex;align-items:center;justify-content:center;background:none;border:1px solid transparent;border-radius:var(--co-border-radius-xs);font-size:var(--co-font-size-14);font-family:inherit;color:var(--co-semantic-text-default);cursor:pointer;transition:background var(--co-motion-duration-fast) var(--co-motion-ease-out), color var(--co-motion-duration-fast) var(--co-motion-ease-out), border-color var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-calendar__day:hover:not(.co-calendar__day--disabled):not(.co-calendar__day--selected){background:var(--co-semantic-surface-hover)}.co-calendar__day:focus-visible{outline:2px solid var(--co-semantic-border-focus);outline-offset:1px}.co-calendar__day--outside{color:var(--co-semantic-text-muted)}.co-calendar__day--today{border-color:var(--co-semantic-surface-primary);font-weight:600}.co-calendar__day--selected{background:var(--co-semantic-surface-primary);border-color:var(--co-semantic-surface-primary);color:var(--co-semantic-on-primary);font-weight:600}.co-calendar__day--disabled{color:var(--co-semantic-text-disabled);cursor:not-allowed;pointer-events:none}.co-calendar__day--in-range{background:color-mix(in srgb, var(--co-semantic-surface-primary) 8%, transparent);border-radius:0;color:var(--co-semantic-text-default)}.co-calendar__day--range-start,.co-calendar__day--range-end{background:var(--co-semantic-surface-primary);border-color:var(--co-semantic-surface-primary);color:var(--co-semantic-on-primary);font-weight:600}.co-calendar__day--range-start:not(.co-calendar__day--range-end){border-top-right-radius:0;border-bottom-right-radius:0}.co-calendar__day--range-end:not(.co-calendar__day--range-start){border-top-left-radius:0;border-bottom-left-radius:0}";const k=class{constructor(a){e(this,a),this.coInput=t(this,"coInput",7),this.coChange=t(this,"coChange",7),this.coInvalid=t(this,"coInvalid",7),this.coClear=t(this,"coClear",7),this.coFocus=t(this,"coFocus",7),this.coBlur=t(this,"coBlur",7),this.value=null,this.size="md",this.locale="es-CO",this.displayFormat="d MMM yyyy",this.disabled=!1,this.readonly=!1,this.required=!1,this.clearable=!0,this.invalid=!1,this.layout="vertical",this.draft="",this.internalInvalid=!1,this.hasFocus=!1,this.handleInput=e=>{this.draft=e.target.value,this.internalInvalid=!1,this.coInput.emit(this.draft)},this.handleFocus=()=>{this.hasFocus=!0,this.coFocus.emit()},this.handleBlur=()=>{this.hasFocus=!1,this.commit(),this.coBlur.emit()},this.handleKeyDown=e=>{"Enter"===e.key&&(this.commit()||(e.preventDefault(),e.stopPropagation()))},this.handleClear=()=>{var e;this.draft="",this.internalInvalid=!1,null!==this.value&&(this.value=null,this.coChange.emit(null)),this.coClear.emit(),null===(e=this.inputEl)||void 0===e||e.focus()}}componentWillLoad(){this.draft=b(this.value,this.displayFormat,this.locale)}onValueChange(){this.hasFocus||(this.draft=b(this.value,this.displayFormat,this.locale),this.internalInvalid=!1)}async focusInput(){var e;null===(e=this.inputEl)||void 0===e||e.focus()}get order(){const e=this.displayFormat.toLowerCase();return e.startsWith("y")?"ymd":e.startsWith("m")?"mdy":"dmy"}get isInvalid(){return this.invalid||this.internalInvalid}get hasValue(){return""!==this.draft.trim()}commit(){const e=v(this.draft,{order:this.order,locale:this.locale});if("empty"===e.status)return this.internalInvalid=!1,null!==this.value&&(this.value=null,this.coChange.emit(null)),!0;if("invalid"===e.status||null===e.value)return this.internalInvalid=!0,this.coInvalid.emit({raw:this.draft}),!1;const t=e.value;return l(t,{min:this.min,max:this.max,disabledDates:z(this.disabledDates),disabledDaysOfWeek:C(this.disabledDaysOfWeek)})?(this.internalInvalid=!0,this.coInvalid.emit({raw:this.draft}),!1):(this.internalInvalid=!1,this.draft=b(t,this.displayFormat,this.locale),this.value!==t&&(this.value=t,this.coChange.emit(t)),!0)}render(){var e,t;const r=o(this.locale),i=this.clearable&&this.hasValue&&!this.disabled&&!this.readonly,s=this.placeholder||r.setDate,c=this.isInvalid?this.errorMessage:this.helperText;return a("div",{key:"76448762ebc35a510daa099e2b10fffb304a09c1",class:{"co-date-field":!0,"co-date-field--disabled":this.disabled,"co-date-field--focused":this.hasFocus,"co-date-field--filled":this.hasValue,"co-date-field--invalid":this.isInvalid,[`co-date-field--${this.size}`]:!0},part:"wrapper"},this.label&&a("div",{key:"e50f105a589cc7a4098281d2466b875fc70c706c",class:"co-date-field__labels"},a("label",{key:"3dbb87b7f1a4b229afa920352f352cefa0b5be51",class:"co-date-field__label",part:"label"},this.label,a(_,{key:"adad4708c70542e18e241c73dc16522ffc83a52f",required:this.required}))),a("div",{key:"ef8bbba2b0070c21cbff8feba625ada99a75e50f",class:"co-date-field__field-row"},a("div",{key:"a385b086440ef6842049159424664d1f4a9a5cb5",class:"co-date-field__field",part:"field"},a("co-icon",{key:"5ebc11e2f8a0ccaa0534682c6633228c66565396",name:"calendar",size:16,class:"co-date-field__icon"}),a("div",{key:"8ee80f5304623f8da75f20eb93d6fe3eb927d0f1",class:"co-date-field__input-wrapper"},a("input",{key:"c156767ea4818750c5b00f2f965c026417ef6bd2",ref:e=>this.inputEl=e,class:"co-date-field__native",type:"text",inputMode:"numeric",autocomplete:"off",value:this.draft,placeholder:s,disabled:this.disabled,readOnly:this.readonly,required:this.required,"aria-invalid":this.isInvalid?"true":"false","aria-label":this.label?void 0:r.dateLabel,onInput:this.handleInput,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeyDown:this.handleKeyDown,part:"input"})),this.clearable&&a("button",{key:"4d0b388e20ad3f862e310c951ad7a07d620f9d76",class:{"co-date-field__clear":!0,"co-date-field__clear--hidden":!i},type:"button",tabIndex:-1,onMouseDown:e=>e.preventDefault(),onClick:this.handleClear,"aria-label":null!==(e=this.clearLabel)&&void 0!==e?e:r.clearDate,part:"clear"},a("co-icon",{key:"8eb87bc05e53b340b97bdb5f17a3bbd08e2844fc",name:"x-circle",size:16,weight:"fill"})))),this.name&&a("input",{key:"b182c4196a15168a1ad654f00e4c83823b0bf894",type:"hidden",name:this.name,value:null!==(t=this.value)&&void 0!==t?t:""}),c&&a("div",{key:"f2cdef4f478972926e417c03aa6c23269c87fd32",class:{"co-date-field__helper":!0,"co-date-field__helper--error":this.isInvalid},part:"helper"},this.isInvalid&&a("co-icon",{key:"e4a0acf05080876968835be09f4cf04b4b3ee80f",name:"warning-circle",size:14,class:"co-date-field__helper-icon"}),a("span",{key:"2329cec15faab426f09107615e3038428b26182f",class:"co-date-field__helper-text"},c)))}get el(){return r(this)}static get watchers(){return{value:[{onValueChange:0}]}}};function z(e){if(Array.isArray(e))return e;if("string"==typeof e&&e.trim()){try{const t=JSON.parse(e);if(Array.isArray(t))return t.map(String)}catch(e){}return e.split(",").map((e=>e.trim())).filter(Boolean)}return[]}function C(e){if(Array.isArray(e))return e;if("string"==typeof e&&e.trim()){try{const t=JSON.parse(e);if(Array.isArray(t))return t.map(Number).filter((e=>!Number.isNaN(e)))}catch(e){}return e.split(",").map((e=>Number(e.trim()))).filter((e=>!Number.isNaN(e)))}return[]}k.style=":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-date-field{display:flex;flex-direction:column;gap:var(--co-spacing-sm2)}.co-date-field__labels{display:flex;align-items:center;justify-content:space-between;padding:0 var(--co-spacing-xs);gap:var(--co-spacing-sm2)}.co-date-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-date-field__field-row{display:flex;align-items:stretch}.co-date-field--s .co-date-field__field{min-height:28px;padding:var(--co-spacing-xxs) var(--co-spacing-sm)}.co-date-field--sm .co-date-field__field{min-height:32px;padding:var(--co-spacing-xs) var(--co-spacing-sm)}.co-date-field--lg .co-date-field__field{min-height:48px;padding:var(--co-spacing-sm) var(--co-spacing-lg)}.co-date-field__field{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);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;overflow:hidden;flex:1;min-width:0}.co-date-field__icon{flex-shrink:0;color:var(--co-semantic-text-muted);display:flex;align-items:center}.co-date-field__input-wrapper{flex:1;display:flex;align-items:center;min-width:0;min-height:22px;padding:0}.co-date-field__native{width:100%;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-date-field__native::placeholder{color:var(--co-semantic-text-muted)}.co-date-field__clear{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:16px;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-date-field__clear--hidden{visibility:hidden;pointer-events:none}.co-date-field__clear:hover{color:var(--co-semantic-text-default)}.co-date-field__helper{display:flex;align-items:center;gap:var(--co-spacing-xs);padding:0 var(--co-spacing-xs)}.co-date-field__helper-icon{flex-shrink:0;color:var(--co-semantic-text-muted);display:flex;align-items:center}.co-date-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-date-field--focused .co-date-field__field{border-color:var(--co-semantic-border-focus);box-shadow:0 0 0 2px var(--co-semantic-border-focus-ring)}.co-date-field--disabled .co-date-field__labels .co-date-field__label{color:var(--co-semantic-text-disabled)}.co-date-field--disabled .co-date-field__field{background:var(--co-semantic-surface-disabled);border-color:transparent;cursor:not-allowed}.co-date-field--disabled .co-date-field__native{color:var(--co-semantic-text-disabled);cursor:not-allowed}.co-date-field--disabled .co-date-field__native::placeholder{color:var(--co-semantic-text-disabled)}.co-date-field--disabled .co-date-field__icon{color:var(--co-semantic-text-disabled)}.co-date-field--invalid .co-date-field__field{border-color:var(--co-semantic-status-error)}.co-date-field--invalid.co-date-field--focused .co-date-field__field{border-color:var(--co-semantic-status-error);box-shadow:0 0 0 2px rgba(170, 46, 27, 0.12)}.co-date-field__helper--error .co-date-field__helper-icon,.co-date-field__helper--error .co-date-field__helper-text{color:var(--co-semantic-status-error)}:host([layout='horizontal']) .co-date-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-date-field__labels{grid-column:1;grid-row:1;padding-top:var(--co-spacing-sm2);min-width:0}:host([layout='horizontal']) .co-date-field__label{white-space:normal}:host([layout='horizontal']) .co-date-field>:not(.co-date-field__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)')}";const S=class{constructor(a){e(this,a),this.coClose=t(this,"coClose",7),this.coOpen=t(this,"coOpen",7),this.coAfterOpen=t(this,"coAfterOpen",7),this.coAfterClose=t(this,"coAfterClose",7),this.open=!1,this.position="right",this.size="md",this.heading="",this.description="",this.icon="",this.closable=!0,this.closeOnOverlay=!0,this.closeOnEscape=!0,this.modeless=!1,this.loading=!1,this.handleOverlayClose=()=>{this.closeOnOverlay&&this.coClose.emit()},this.handleCloseClick=()=>{this.coClose.emit()},this.stopPropagation=e=>{e.stopPropagation()},this.handleTransitionEnd=e=>{"transform"===e.propertyName&&(this.open?this.coAfterOpen.emit():this.coAfterClose.emit())},this.promoteModeless=e=>{e&&(this.asideEl=e);const t=this.asideEl;if(this.modeless&&t&&"function"==typeof t.showPopover)try{t.matches(":popover-open")||t.showPopover()}catch(e){}}}onOpenChange(e,t){e&&!t&&this.coOpen.emit()}handleKey(e){this.open&&this.closeOnEscape&&"Escape"===e.key&&(this.modeless&&document.querySelector("co-drawer[open]:not([modeless]), co-modal[open]")||this.coClose.emit())}componentDidLoad(){this.promoteModeless()}render(){const e=a("aside",{class:{"co-drawer":!0,"co-drawer--open":this.open,"co-drawer--modeless":this.modeless,[`co-drawer--${this.position}`]:!0,[`co-drawer--${this.size}`]:!0},popover:this.modeless?"manual":void 0,ref:this.modeless?this.promoteModeless:void 0,part:"drawer",role:"dialog","aria-modal":this.modeless?"false":"true","aria-labelledby":"co-drawer-heading",onClick:this.stopPropagation,onTransitionEnd:this.handleTransitionEnd},a("div",{class:"co-drawer__card",part:"card"},a("header",{class:"co-drawer__header",part:"header"},a("div",{class:"co-drawer__header-content"},a("slot",{name:"header"},a("div",{class:"co-drawer__heading-row"},this.icon&&a("co-icon",{name:this.icon,size:20,class:"co-drawer__icon"}),a("h2",{class:"co-drawer__heading",id:"co-drawer-heading"},this.heading)),this.description&&a("p",{class:"co-drawer__description"},this.description))),this.closable&&a("button",{class:"co-drawer__close",type:"button","aria-label":"Close",onClick:this.handleCloseClick},a("co-icon",{name:"x",size:20}))),a("div",{class:"co-drawer__tabs",part:"tabs"},a("slot",{name:"tabs"})),a("div",{class:"co-drawer__body",part:"body"},a("slot",null),a("co-loader",{overlay:!0,visible:this.loading,part:"loader"})),a("footer",{class:"co-drawer__footer",part:"footer"},a("slot",{name:"footer"}))));return this.modeless?e:a("co-overlay",{open:this.open,onCoClose:this.handleOverlayClose},e)}get el(){return r(this)}static get watchers(){return{open:[{onOpenChange:0}]}}};S.style=':host{display:contents}.co-drawer{position:fixed;display:flex;flex-direction:column;font-family:var(--co-font-family-primary);transition:transform var(--co-motion-duration-slow) var(--co-motion-ease-in-out);will-change:transform;z-index:1;filter:drop-shadow(0 1px 2px rgba(31, 28, 27, 0.06)) drop-shadow(0 10px 28px rgba(31, 28, 27, 0.12));--co-drawer-r:var(--co-shell-r, var(--co-border-radius-md));--co-sq-tl:url("data:image/svg+xml,<svg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 100 100%27 preserveAspectRatio=%27none%27><path d=%27M100 0L97.5 0L95 0L92.5 0L90 0L87.5 0.01L85 0.01L82.5 0.02L80 0.04L77.5 0.06L75 0.1L72.5 0.14L70 0.2L67.5 0.28L65 0.38L62.5 0.5L60 0.65L57.5 0.83L55 1.04L52.5 1.3L50 1.6L47.5 1.96L45 2.37L42.5 2.85L40 3.41L37.5 4.05L35 4.8L32.5 5.65L30 6.63L27.5 7.77L25 9.07L22.5 10.58L20 12.34L17.5 14.41L15 16.85L12.5 19.79L10 23.42L7.5 28.06L5 34.37L2.5 44.29L0 100L100 100Z%27 fill=%27%23fff%27/></svg>");--co-sq-tr:url("data:image/svg+xml,<svg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 100 100%27 preserveAspectRatio=%27none%27><path d=%27M0 0L2.5 0L5 0L7.5 0L10 0L12.5 0.01L15 0.01L17.5 0.02L20 0.04L22.5 0.06L25 0.1L27.5 0.14L30 0.2L32.5 0.28L35 0.38L37.5 0.5L40 0.65L42.5 0.83L45 1.04L47.5 1.3L50 1.6L52.5 1.96L55 2.37L57.5 2.85L60 3.41L62.5 4.05L65 4.8L67.5 5.65L70 6.63L72.5 7.77L75 9.07L77.5 10.58L80 12.34L82.5 14.41L85 16.85L87.5 19.79L90 23.42L92.5 28.06L95 34.37L97.5 44.29L100 100L0 100Z%27 fill=%27%23fff%27/></svg>");--co-sq-bl:url("data:image/svg+xml,<svg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 100 100%27 preserveAspectRatio=%27none%27><path d=%27M0 0L2.5 55.71L5 65.63L7.5 71.94L10 76.58L12.5 80.21L15 83.15L17.5 85.59L20 87.66L22.5 89.42L25 90.93L27.5 92.23L30 93.37L32.5 94.35L35 95.2L37.5 95.95L40 96.59L42.5 97.15L45 97.63L47.5 98.04L50 98.4L52.5 98.7L55 98.96L57.5 99.17L60 99.35L62.5 99.5L65 99.62L67.5 99.72L70 99.8L72.5 99.86L75 99.9L77.5 99.94L80 99.96L82.5 99.98L85 99.99L87.5 99.99L90 100L92.5 100L95 100L97.5 100L100 100L100 0Z%27 fill=%27%23fff%27/></svg>");--co-sq-br:url("data:image/svg+xml,<svg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 100 100%27 preserveAspectRatio=%27none%27><path d=%27M100 0L97.5 55.71L95 65.63L92.5 71.94L90 76.58L87.5 80.21L85 83.15L82.5 85.59L80 87.66L77.5 89.42L75 90.93L72.5 92.23L70 93.37L67.5 94.35L65 95.2L62.5 95.95L60 96.59L57.5 97.15L55 97.63L52.5 98.04L50 98.4L47.5 98.7L45 98.96L42.5 99.17L40 99.35L37.5 99.5L35 99.62L32.5 99.72L30 99.8L27.5 99.86L25 99.9L22.5 99.94L20 99.96L17.5 99.98L15 99.99L12.5 99.99L10 100L7.5 100L5 100L2.5 100L0 100L0 0Z%27 fill=%27%23fff%27/></svg>")}.co-drawer--right{top:0;right:0;margin:6px;height:100vh;height:-webkit-fill-available;transform:translateX(calc(100% + 12px))}.co-drawer--right.co-drawer--open{transform:translateX(0)}.co-drawer--left{top:0;left:0;margin:6px;height:100vh;height:-webkit-fill-available;transform:translateX(calc(-100% - 12px))}.co-drawer--left.co-drawer--open{transform:translateX(0)}.co-drawer--bottom{bottom:0;left:0;right:0;margin:6px;width:auto;transform:translateY(calc(100% + 12px))}.co-drawer--bottom.co-drawer--open{transform:translateY(0)}.co-drawer--right.co-drawer--sm,.co-drawer--left.co-drawer--sm{width:400px;max-width:100vw}.co-drawer--right.co-drawer--md,.co-drawer--left.co-drawer--md{width:520px;max-width:100vw}.co-drawer--right.co-drawer--lg,.co-drawer--left.co-drawer--lg{width:672px;max-width:100vw}.co-drawer--right.co-drawer--xl,.co-drawer--left.co-drawer--xl{width:960px;max-width:100vw}.co-drawer--right.co-drawer--full,.co-drawer--left.co-drawer--full{width:100vw}.co-drawer--bottom.co-drawer--sm{height:40vh}.co-drawer--bottom.co-drawer--md{height:60vh}.co-drawer--bottom.co-drawer--lg{height:80vh}.co-drawer--bottom.co-drawer--xl{height:95vh}.co-drawer--bottom.co-drawer--full{height:100vh}.co-drawer__card{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;background:var(--co-semantic-surface-page);border-radius:0;-webkit-mask:var(--co-sq-tl) top left / var(--co-drawer-r) var(--co-drawer-r) no-repeat, var(--co-sq-tr) top right / var(--co-drawer-r) var(--co-drawer-r) no-repeat, var(--co-sq-bl) bottom left / var(--co-drawer-r) var(--co-drawer-r) no-repeat, var(--co-sq-br) bottom right / var(--co-drawer-r) var(--co-drawer-r) no-repeat, linear-gradient(#fff 0 0) center / 100% calc(100% - 2 * var(--co-drawer-r) + 2px) no-repeat, linear-gradient(#fff 0 0) center / calc(100% - 2 * var(--co-drawer-r) + 2px) 100% no-repeat;mask:var(--co-sq-tl) top left / var(--co-drawer-r) var(--co-drawer-r) no-repeat, var(--co-sq-tr) top right / var(--co-drawer-r) var(--co-drawer-r) no-repeat, var(--co-sq-bl) bottom left / var(--co-drawer-r) var(--co-drawer-r) no-repeat, var(--co-sq-br) bottom right / var(--co-drawer-r) var(--co-drawer-r) no-repeat, linear-gradient(#fff 0 0) center / 100% calc(100% - 2 * var(--co-drawer-r) + 2px) no-repeat, linear-gradient(#fff 0 0) center / calc(100% - 2 * var(--co-drawer-r) + 2px) 100% no-repeat}.co-drawer__header{display:flex;align-items:center;gap:var(--co-spacing-md);padding:var(--co-spacing-lg) var(--co-spacing-xl);border-bottom:1px solid var(--co-semantic-border-default);flex-shrink:0}.co-drawer__header-content{flex:1;min-width:0}.co-drawer__heading-row{display:flex;align-items:center;gap:var(--co-spacing-sm, 8px)}.co-drawer__icon{flex-shrink:0;color:var(--co-semantic-text-secondary)}.co-drawer__heading{margin:0;font-size:var(--co-font-size-18);font-weight:600;color:var(--co-semantic-text-default);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.co-drawer__description{margin:var(--co-spacing-xs) 0 0;font-size:var(--co-font-size-13, 13px);font-weight:400;color:var(--co-semantic-text-muted);line-height:1.4}.co-drawer__close{display:flex;align-items:center;justify-content:center;padding:var(--co-spacing-xs);margin:0;border:none;background:transparent;cursor:pointer;color:var(--co-semantic-text-muted);border-radius:var(--co-border-radius-sm);transition:background var(--co-motion-duration-fast) var(--co-motion-ease-out);flex-shrink:0}.co-drawer__close:hover{background:var(--co-semantic-surface-hover)}.co-drawer__close:focus-visible{outline:2px solid var(--co-color-primary-azul);outline-offset:2px}.co-drawer__tabs{flex-shrink:0;border-bottom:1px solid var(--co-semantic-border-default)}.co-drawer__tabs:empty{display:none}.co-drawer__body{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:var(--co-spacing-xl);position:relative}.co-drawer__body{scrollbar-width:thin;scrollbar-color:transparent transparent}.co-drawer__body:hover{scrollbar-color:var(--co-color-opacity-negro-16) transparent}.co-drawer__body::-webkit-scrollbar{width:6px}.co-drawer__body::-webkit-scrollbar-track{background:transparent}.co-drawer__body::-webkit-scrollbar-thumb{background:transparent;border-radius:9999px}.co-drawer__body:hover::-webkit-scrollbar-thumb{background:var(--co-color-opacity-negro-16)}.co-drawer__body:hover::-webkit-scrollbar-thumb:hover{background:var(--co-color-opacity-negro-25)}.co-drawer__body:hover::-webkit-scrollbar-thumb:active{background:var(--co-color-opacity-negro-50)}.co-drawer__footer{display:flex;justify-content:flex-end;align-items:center;gap:var(--co-spacing-md);padding:var(--co-spacing-lg) var(--co-spacing-xl);border-top:1px solid var(--co-semantic-border-default);flex-shrink:0}.co-drawer__footer:empty{display:none}@media (max-width: 600px){.co-drawer--right,.co-drawer--left{width:100vw !important}}.co-drawer--modeless{z-index:1000;border:0;padding:0;background:transparent}.co-drawer--modeless.co-drawer--right{left:auto;bottom:auto}.co-drawer--modeless.co-drawer--left{right:auto;bottom:auto}.co-drawer--modeless.co-drawer--bottom{top:auto}';export{w as co_calendar,k as co_date_field,S as co_drawer}
|