@prolibu-suite/cobalt-core 0.10.4 → 0.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -5
- package/custom-elements.json +7034 -1203
- package/dist/cjs/co-accordion.cjs.entry.js +3 -3
- package/dist/cjs/co-action-bar.cjs.entry.js +3 -3
- package/dist/cjs/co-app-shell.cjs.entry.js +3 -3
- package/dist/cjs/co-audio-player.cjs.entry.js +4 -4
- package/dist/cjs/co-autocomplete.cjs.entry.js +12 -5
- package/dist/cjs/co-avatar-group.cjs.entry.js +3 -3
- package/dist/cjs/co-avatar.cjs.entry.js +7 -4
- package/dist/cjs/co-badge.cjs.entry.js +2 -2
- package/dist/cjs/co-bottom-sheet.cjs.entry.js +5 -5
- package/dist/cjs/co-breadcrumb-item.cjs.entry.js +3 -3
- package/dist/cjs/co-breadcrumb.cjs.entry.js +2 -2
- package/dist/cjs/co-button-group.cjs.entry.js +4 -3
- package/dist/cjs/co-button.cjs.entry.js +9 -7
- package/dist/cjs/co-calendar-month_2.cjs.entry.js +16 -4
- package/dist/cjs/co-calendar_3.cjs.entry.js +76 -27
- package/dist/cjs/co-card.cjs.entry.js +3 -3
- package/dist/cjs/co-carousel-item.cjs.entry.js +2 -2
- package/dist/cjs/co-carousel.cjs.entry.js +6 -3
- package/dist/cjs/co-checkbox-group.cjs.entry.js +4 -4
- package/dist/cjs/co-checkbox.cjs.entry.js +13 -5
- package/dist/cjs/co-chip_2.cjs.entry.js +20 -7
- package/dist/cjs/co-color-area.cjs.entry.js +169 -0
- package/dist/cjs/co-color-picker.cjs.entry.js +5 -5
- package/dist/cjs/co-color-slider.cjs.entry.js +189 -0
- package/dist/cjs/co-column-picker.cjs.entry.js +23 -3
- package/dist/cjs/co-combobox.cjs.entry.js +5 -5
- package/dist/cjs/co-command-search.cjs.entry.js +5 -5
- package/dist/cjs/co-data-table-pagination.cjs.entry.js +5 -5
- package/dist/cjs/co-data-table.cjs.entry.js +3 -3
- package/dist/cjs/co-date-picker.cjs.entry.js +10 -2
- package/dist/cjs/co-date-range-picker.cjs.entry.js +11 -2
- package/dist/cjs/co-date-range.cjs.entry.js +8 -2
- package/dist/cjs/co-date-time-picker.cjs.entry.js +11 -4
- package/dist/cjs/co-document-editor.cjs.entry.js +1167 -0
- package/dist/cjs/co-drive-card.cjs.entry.js +2 -2
- package/dist/cjs/co-drop-zone.cjs.entry.js +2 -2
- package/dist/cjs/co-emoji-picker.cjs.entry.js +3 -3
- package/dist/cjs/co-empty-state.cjs.entry.js +3 -3
- package/dist/cjs/co-event-calendar.cjs.entry.js +5 -3
- package/dist/cjs/co-event-popover.cjs.entry.js +7 -3
- package/dist/cjs/co-fab.cjs.entry.js +7 -3
- package/dist/cjs/co-file-field.cjs.entry.js +12 -8
- package/dist/cjs/co-file-type-tile.cjs.entry.js +3 -3
- package/dist/cjs/co-gradient-bar.cjs.entry.js +220 -0
- package/dist/cjs/co-helper-text.cjs.entry.js +3 -3
- package/dist/cjs/co-icon-button.cjs.entry.js +48 -9
- package/dist/cjs/co-icon.cjs.entry.js +3 -3
- package/dist/cjs/co-input.cjs.entry.js +14 -8
- package/dist/cjs/co-json-field.cjs.entry.js +10 -5
- package/dist/cjs/{co-tooltip.cjs.entry.js → co-kbd_2.cjs.entry.js} +194 -6
- package/dist/cjs/co-lightbox.cjs.entry.js +5 -5
- package/dist/cjs/co-list-footer.cjs.entry.js +2 -2
- package/dist/cjs/co-list-item.cjs.entry.js +5 -5
- package/dist/cjs/co-loader.cjs.entry.js +1 -1
- package/dist/cjs/co-media-thumb.cjs.entry.js +3 -3
- package/dist/cjs/co-menu-divider.cjs.entry.js +3 -3
- package/dist/cjs/co-menu-item.cjs.entry.js +41 -43
- package/dist/cjs/co-menu.cjs.entry.js +81 -5
- package/dist/cjs/co-modal.cjs.entry.js +350 -7
- package/dist/cjs/co-navbar.cjs.entry.js +3 -3
- package/dist/cjs/co-number-field.cjs.entry.js +11 -5
- package/dist/cjs/co-overlay.cjs.entry.js +8 -4
- package/dist/cjs/co-page-header.cjs.entry.js +2 -2
- package/dist/cjs/co-phone-field.cjs.entry.js +3 -3
- package/dist/cjs/co-popover.cjs.entry.js +69 -6
- package/dist/cjs/co-progress-bar.cjs.entry.js +3 -3
- package/dist/cjs/co-progress-circle.cjs.entry.js +3 -3
- package/dist/cjs/co-provider-logo_2.cjs.entry.js +2 -2
- package/dist/cjs/co-radio-group.cjs.entry.js +4 -4
- package/dist/cjs/co-radio.cjs.entry.js +4 -4
- package/dist/cjs/co-rating.cjs.entry.js +11 -4
- package/dist/cjs/co-ref-field.cjs.entry.js +14 -5
- package/dist/cjs/co-rich-text-editor.cjs.entry.js +40 -92
- package/dist/cjs/co-rich-text-toolbar.cjs.entry.js +80 -20
- package/dist/cjs/co-rich-text-viewer.cjs.entry.js +9 -2
- package/dist/cjs/co-row.cjs.entry.js +3 -3
- package/dist/cjs/co-segmented-bar.cjs.entry.js +3 -3
- package/dist/cjs/co-select.cjs.entry.js +171 -29
- package/dist/cjs/co-separator.cjs.entry.js +2 -2
- package/dist/cjs/co-sidebar-nav.cjs.entry.js +20 -5
- package/dist/cjs/co-sidebar.cjs.entry.js +3 -3
- package/dist/cjs/co-slider.cjs.entry.js +209 -23
- package/dist/cjs/co-swatch-grid.cjs.entry.js +121 -0
- package/dist/cjs/co-switch.cjs.entry.js +5 -5
- package/dist/cjs/co-tab-group.cjs.entry.js +113 -4
- package/dist/cjs/co-tab.cjs.entry.js +15 -5
- package/dist/cjs/co-tags-field.cjs.entry.js +13 -8
- package/dist/cjs/co-textarea.cjs.entry.js +6 -6
- package/dist/cjs/co-tile.cjs.entry.js +61 -0
- package/dist/cjs/co-time-field.cjs.entry.js +5 -2
- package/dist/cjs/co-toast.cjs.entry.js +3 -3
- package/dist/cjs/co-toggle-button-group.cjs.entry.js +29 -5
- package/dist/cjs/co-toggle-button.cjs.entry.js +70 -6
- package/dist/cjs/co-transfer-list.cjs.entry.js +7 -3
- package/dist/cjs/co-tree-item.cjs.entry.js +110 -0
- package/dist/cjs/co-video.cjs.entry.js +11 -3
- package/dist/cjs/cobalt.cjs.js +2 -2
- package/dist/cjs/{color-CML2Cfdh.js → color-DQVrQGi0.js} +10 -5
- package/dist/cjs/{fieldChip-B6YIGU1V.js → fieldChip-C7MxxBVO.js} +1 -1
- package/dist/cjs/gradientStops-CMpH4fB_.js +153 -0
- package/dist/cjs/hsv-DpfSF3M2.js +95 -0
- package/dist/cjs/{index-MDAnKsze.js → index-bHoidDwv.js} +67 -27
- package/dist/cjs/index-oMHzCXm6.js +144 -0
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{index-2kMmd5-a.js → pagination-DV43TRj9.js} +1780 -297
- package/dist/cjs/{positioning-CyatXeT_.js → positioning-CILo5esi.js} +45 -18
- package/dist/cjs/{requiredMark-D-t-IPN0.js → requiredMark-21yHvvZS.js} +1 -1
- package/dist/cjs/rich-text-host-ueFSfW-6.js +119 -0
- package/dist/cjs/{richTextI18n-B28uAhh4.js → richTextI18n-DXGIv5w1.js} +45 -0
- package/dist/cjs/submenu-RlaX6irw.js +65 -0
- package/dist/cjs/{toolbar-config-CYACt9hh.js → toolbar-config-DczL6C4W.js} +32 -0
- package/dist/cobalt/cobalt.css +1 -1
- package/dist/cobalt/cobalt.esm.js +1 -1
- package/dist/cobalt/{p-76249983.entry.js → p-019eed8e.entry.js} +1 -1
- package/dist/cobalt/p-04e3e1f6.entry.js +1 -0
- package/dist/cobalt/p-06689166.entry.js +1 -0
- package/dist/cobalt/p-0d046d98.entry.js +1 -0
- package/dist/cobalt/{p-28764b8e.entry.js → p-0e4c2234.entry.js} +1 -1
- package/dist/cobalt/{p-b90d41e4.entry.js → p-1348d5ca.entry.js} +1 -1
- package/dist/cobalt/{p-49834b8e.entry.js → p-13e5b724.entry.js} +1 -1
- package/dist/cobalt/p-1a5bec8c.entry.js +1 -0
- package/dist/cobalt/p-21b4a830.entry.js +1 -0
- package/dist/cobalt/p-2231bacc.entry.js +1 -0
- package/dist/cobalt/{p-b437eff6.entry.js → p-26cbdc33.entry.js} +1 -1
- package/dist/cobalt/{p-aa9400bf.entry.js → p-28cf05f3.entry.js} +1 -1
- package/dist/cobalt/{p-eadfd661.entry.js → p-358a6c2a.entry.js} +1 -1
- package/dist/cobalt/p-3b5024ce.entry.js +1 -0
- package/dist/cobalt/p-3b6efb79.entry.js +1 -0
- package/dist/cobalt/p-3d1a48e5.entry.js +1 -0
- package/dist/cobalt/p-47eca182.entry.js +1 -0
- package/dist/cobalt/{p-eb82358d.entry.js → p-4bcdd422.entry.js} +1 -1
- package/dist/cobalt/{p-17244412.entry.js → p-4d743628.entry.js} +1 -1
- package/dist/cobalt/{p-011dc80b.entry.js → p-4e81e580.entry.js} +1 -1
- package/dist/cobalt/{p-ee9a623d.entry.js → p-53a251ca.entry.js} +1 -1
- package/dist/cobalt/{p-11c5ce78.entry.js → p-56176aa0.entry.js} +1 -1
- package/dist/cobalt/{p-a32b20eb.entry.js → p-58ebb303.entry.js} +1 -1
- package/dist/cobalt/{p-4592ca00.entry.js → p-5a32b9a2.entry.js} +1 -1
- package/dist/cobalt/{p-2636b7eb.entry.js → p-5e678e88.entry.js} +1 -1
- package/dist/cobalt/{p-996f4e38.entry.js → p-60f948c4.entry.js} +1 -1
- package/dist/cobalt/p-63908a8d.entry.js +1 -0
- package/dist/cobalt/p-65c191aa.entry.js +1 -0
- package/dist/cobalt/{p-c2ebf0ec.entry.js → p-65d44da2.entry.js} +1 -1
- package/dist/cobalt/p-67a024dd.entry.js +1 -0
- package/dist/cobalt/{p-ee149fd2.entry.js → p-6974df59.entry.js} +1 -1
- package/dist/cobalt/{p-000a15b8.entry.js → p-69ecc933.entry.js} +1 -1
- package/dist/cobalt/p-6c1992c9.entry.js +1 -0
- package/dist/cobalt/{p-b821d9de.entry.js → p-6d4a660c.entry.js} +1 -1
- package/dist/cobalt/{p-f57dffca.entry.js → p-713637f2.entry.js} +1 -1
- package/dist/cobalt/{p-292b0389.entry.js → p-71ae1551.entry.js} +1 -1
- package/dist/cobalt/{p-91e73a92.entry.js → p-71dc8e4a.entry.js} +1 -1
- package/dist/cobalt/{p-aaca6dab.entry.js → p-71ee36a8.entry.js} +1 -1
- package/dist/cobalt/p-71fe35c4.entry.js +1 -0
- package/dist/cobalt/{p-08e42e00.entry.js → p-73313cbe.entry.js} +1 -1
- package/dist/cobalt/{p-7b5c555c.entry.js → p-763698b3.entry.js} +1 -1
- package/dist/cobalt/p-77e0d401.entry.js +1 -0
- package/dist/cobalt/{p-c91d4fc6.entry.js → p-78412feb.entry.js} +1 -1
- package/dist/cobalt/p-7beface1.entry.js +1 -0
- package/dist/cobalt/{p-f4e1c3c3.entry.js → p-7d1718ed.entry.js} +1 -1
- package/dist/cobalt/{p-826ee074.entry.js → p-7df18a52.entry.js} +1 -1
- package/dist/cobalt/p-7e678cbd.entry.js +1 -0
- package/dist/cobalt/{p-d0b2c418.entry.js → p-7fabd8ba.entry.js} +1 -1
- package/dist/cobalt/{p-23ab0cc5.entry.js → p-848f5ca4.entry.js} +1 -1
- package/dist/cobalt/{p-623cc195.entry.js → p-8680559b.entry.js} +1 -1
- package/dist/cobalt/p-87de5469.entry.js +1 -0
- package/dist/cobalt/p-87e62e2b.entry.js +1 -0
- package/dist/cobalt/{p-1861fe41.entry.js → p-8a2a2b6c.entry.js} +1 -1
- package/dist/cobalt/p-903237f9.entry.js +1 -0
- package/dist/cobalt/{p-2c9dba2f.entry.js → p-95f2ebb1.entry.js} +1 -1
- package/dist/cobalt/{p-24196410.entry.js → p-99df434b.entry.js} +1 -1
- package/dist/cobalt/{p-290066ef.entry.js → p-9adbab95.entry.js} +1 -1
- package/dist/cobalt/p-9dc01092.entry.js +1 -0
- package/dist/cobalt/p-9ee5bef3.entry.js +1 -0
- package/dist/cobalt/p-B1JT7us1.js +1 -0
- package/dist/cobalt/{p-BRbgGqLw.js → p-BVGGRfNG.js} +1 -1
- package/dist/cobalt/p-BmdKHBZP.js +1 -0
- package/dist/cobalt/p-BtliEQAT.js +1 -0
- package/dist/cobalt/p-COJdaKBU.js +1 -0
- package/dist/cobalt/{p-BAYo-RBt.js → p-CRxTFT_z.js} +1 -1
- package/dist/cobalt/p-CYN5B3IQ.js +1 -0
- package/dist/cobalt/p-DJkaRtbb.js +2 -0
- package/dist/cobalt/p-DU-KOQ8L.js +1 -0
- package/dist/cobalt/p-DXLeDZvr.js +1 -0
- package/dist/cobalt/{p-D_zA1Pv4.js → p-DgJovDdy.js} +1 -1
- package/dist/cobalt/p-RVQJEYxa.js +1 -0
- package/dist/cobalt/{p-ee2023da.entry.js → p-a27013e6.entry.js} +1 -1
- package/dist/cobalt/{p-2f9cbbd5.entry.js → p-a4eb298c.entry.js} +1 -1
- package/dist/cobalt/p-a56bd4a8.entry.js +1 -0
- package/dist/cobalt/{p-59963937.entry.js → p-a5eabecb.entry.js} +1 -1
- package/dist/cobalt/p-a5ee1fc2.entry.js +1 -0
- package/dist/cobalt/{p-fb2d1144.entry.js → p-a7cd61ce.entry.js} +1 -1
- package/dist/cobalt/{p-39a50e7f.entry.js → p-ad752791.entry.js} +1 -1
- package/dist/cobalt/{p-07416e31.entry.js → p-ae999b94.entry.js} +1 -1
- package/dist/cobalt/{p-4d65e713.entry.js → p-aed832d5.entry.js} +1 -1
- package/dist/cobalt/p-b2457431.entry.js +1 -0
- package/dist/cobalt/{p-6dd220e0.entry.js → p-b39a4999.entry.js} +1 -1
- package/dist/cobalt/p-b5dabdc3.entry.js +1 -0
- package/dist/cobalt/{p-8471abe2.entry.js → p-b67fb616.entry.js} +1 -1
- package/dist/cobalt/{p-f7eb1a40.entry.js → p-b9b73dcb.entry.js} +1 -1
- package/dist/cobalt/{p-f9a7b7c6.entry.js → p-ba39a965.entry.js} +1 -1
- package/dist/cobalt/{p-58d9b650.entry.js → p-be520bd5.entry.js} +1 -1
- package/dist/cobalt/{p-1dc55e43.entry.js → p-bee30373.entry.js} +1 -1
- package/dist/cobalt/{p-44c4e4a3.entry.js → p-c220362c.entry.js} +1 -1
- package/dist/cobalt/p-c4c997f3.entry.js +1 -0
- package/dist/cobalt/{p-a2462d7a.entry.js → p-c5464a98.entry.js} +1 -1
- package/dist/cobalt/p-c567533e.entry.js +1 -0
- package/dist/cobalt/{p-c30b4cb5.entry.js → p-cf5b91be.entry.js} +1 -1
- package/dist/cobalt/p-cfaaa684.entry.js +1 -0
- package/dist/cobalt/p-d00c3894.entry.js +1 -0
- package/dist/cobalt/p-d1e83525.entry.js +1 -0
- package/dist/cobalt/{p-44ea675f.entry.js → p-d5d8fa8b.entry.js} +1 -1
- package/dist/cobalt/p-d6215d80.entry.js +1 -0
- package/dist/cobalt/p-d6e7c258.entry.js +1 -0
- package/dist/cobalt/p-dabcbba7.entry.js +1 -0
- package/dist/cobalt/p-db623519.entry.js +1 -0
- package/dist/cobalt/{p-c7d7d7f7.entry.js → p-df529110.entry.js} +1 -1
- package/dist/cobalt/{p-1cc818ca.entry.js → p-ea24eea8.entry.js} +1 -1
- package/dist/cobalt/{p-d29bb0fa.entry.js → p-efb3cbb0.entry.js} +1 -1
- package/dist/cobalt/{p-f6691108.entry.js → p-f0898e21.entry.js} +1 -1
- package/dist/cobalt/{p-0c004735.entry.js → p-f2fa2ac0.entry.js} +1 -1
- package/dist/cobalt/p-f403eeec.entry.js +1 -0
- package/dist/cobalt/{p-e4264532.entry.js → p-f69804a6.entry.js} +1 -1
- package/dist/cobalt/p-xnrKkNWQ.js +1 -0
- package/dist/collection/collection-manifest.json +8 -0
- package/dist/collection/components/co-accordion/co-accordion.js +12 -2
- package/dist/collection/components/co-action-bar/co-action-bar.css +6 -0
- package/dist/collection/components/co-action-bar/co-action-bar.js +3 -2
- package/dist/collection/components/co-app-shell/co-app-shell.css +6 -0
- package/dist/collection/components/co-app-shell/co-app-shell.js +13 -2
- package/dist/collection/components/co-audio-player/co-audio-player.js +19 -7
- package/dist/collection/components/co-autocomplete/co-autocomplete.js +30 -17
- package/dist/collection/components/co-avatar/co-avatar.css +16 -2
- package/dist/collection/components/co-avatar/co-avatar.js +14 -4
- package/dist/collection/components/co-avatar-group/co-avatar-group.css +4 -0
- package/dist/collection/components/co-avatar-group/co-avatar-group.js +8 -3
- package/dist/collection/components/co-badge/co-badge.js +8 -1
- package/dist/collection/components/co-bottom-sheet/co-bottom-sheet.js +13 -4
- package/dist/collection/components/co-breadcrumb/co-breadcrumb.js +5 -1
- package/dist/collection/components/co-breadcrumb-item/co-breadcrumb-item.js +8 -2
- package/dist/collection/components/co-button/co-button.css +81 -6
- package/dist/collection/components/co-button/co-button.js +39 -11
- package/dist/collection/components/co-button-group/co-button-group.js +10 -3
- package/dist/collection/components/co-calendar/calendarMarks.js +40 -0
- package/dist/collection/components/co-calendar/co-calendar.css +19 -1
- package/dist/collection/components/co-calendar/co-calendar.js +84 -20
- package/dist/collection/components/co-calendar-month/co-calendar-month.js +1 -1
- package/dist/collection/components/co-calendar-timegrid/co-calendar-timegrid.js +36 -19
- package/dist/collection/components/co-card/co-card.js +11 -2
- package/dist/collection/components/co-carousel/co-carousel.css +10 -0
- package/dist/collection/components/co-carousel/co-carousel.js +17 -5
- package/dist/collection/components/co-carousel-item/co-carousel-item.js +1 -1
- package/dist/collection/components/co-checkbox/co-checkbox.css +43 -1
- package/dist/collection/components/co-checkbox/co-checkbox.js +39 -3
- package/dist/collection/components/co-checkbox-group/co-checkbox-group.js +9 -4
- package/dist/collection/components/co-chip/co-chip.css +9 -0
- package/dist/collection/components/co-chip/co-chip.js +15 -2
- package/dist/collection/components/co-color-area/co-color-area.css +87 -0
- package/dist/collection/components/co-color-area/co-color-area.js +342 -0
- package/dist/collection/components/co-color-picker/co-color-picker.js +4 -2
- package/dist/collection/components/co-color-slider/co-color-slider.css +115 -0
- package/dist/collection/components/co-color-slider/co-color-slider.js +354 -0
- package/dist/collection/components/co-column-picker/co-column-picker.js +51 -25
- package/dist/collection/components/co-combobox/co-combobox.js +18 -4
- package/dist/collection/components/co-command-search/co-command-search.js +19 -8
- package/dist/collection/components/co-data-table/co-data-table.js +8 -3
- package/dist/collection/components/co-data-table-pagination/co-data-table-pagination.js +16 -4
- package/dist/collection/components/co-date-field/co-date-field.js +19 -13
- package/dist/collection/components/co-date-picker/co-date-picker.js +38 -25
- package/dist/collection/components/co-date-range/co-date-range.js +19 -10
- package/dist/collection/components/co-date-range-picker/co-date-range-picker.js +44 -30
- package/dist/collection/components/co-date-time-picker/co-date-time-picker.js +31 -22
- package/dist/collection/components/co-document-editor/change-throttle.js +30 -0
- package/dist/collection/components/co-document-editor/co-document-editor.css +438 -0
- package/dist/collection/components/co-document-editor/co-document-editor.js +1549 -0
- package/dist/collection/components/co-document-editor/document-props.js +40 -0
- package/dist/collection/components/co-document-editor/header-tools.js +11 -0
- package/dist/collection/components/co-document-editor/image-bar.js +66 -0
- package/dist/collection/components/co-document-editor/page-styles.js +90 -0
- package/dist/collection/components/co-document-editor/zoom.js +45 -0
- package/dist/collection/components/co-drawer/co-drawer.css +5 -0
- package/dist/collection/components/co-drawer/co-drawer.js +13 -0
- package/dist/collection/components/co-drive-card/co-drive-card.js +14 -1
- package/dist/collection/components/co-drop-zone/co-drop-zone.js +7 -2
- package/dist/collection/components/co-emoji-picker/co-emoji-picker.css +4 -0
- package/dist/collection/components/co-emoji-picker/co-emoji-picker.js +11 -2
- package/dist/collection/components/co-empty-state/co-empty-state.js +4 -2
- package/dist/collection/components/co-event-calendar/co-event-calendar.js +16 -4
- package/dist/collection/components/co-event-popover/co-event-popover.js +18 -6
- package/dist/collection/components/co-fab/co-fab.css +8 -0
- package/dist/collection/components/co-fab/co-fab.js +17 -8
- package/dist/collection/components/co-file-field/co-file-field.js +16 -11
- package/dist/collection/components/co-file-type-tile/co-file-type-tile.js +9 -2
- package/dist/collection/components/co-gradient-bar/co-gradient-bar.css +143 -0
- package/dist/collection/components/co-gradient-bar/co-gradient-bar.js +412 -0
- package/dist/collection/components/co-helper-text/co-helper-text.js +4 -2
- package/dist/collection/components/co-icon/co-icon.js +6 -2
- package/dist/collection/components/co-icon-button/co-icon-button.css +104 -19
- package/dist/collection/components/co-icon-button/co-icon-button.js +125 -10
- package/dist/collection/components/co-input/co-input.css +125 -0
- package/dist/collection/components/co-input/co-input.js +48 -11
- package/dist/collection/components/co-json-field/co-json-field.js +19 -12
- package/dist/collection/components/co-kbd/co-kbd.css +99 -0
- package/dist/collection/components/co-kbd/co-kbd.js +298 -0
- package/dist/collection/components/co-lightbox/co-lightbox.js +4 -4
- package/dist/collection/components/co-list-footer/co-list-footer.js +4 -1
- package/dist/collection/components/co-list-item/co-list-item.js +7 -4
- package/dist/collection/components/co-loader/co-loader.js +5 -0
- package/dist/collection/components/co-media-thumb/co-media-thumb.js +9 -2
- package/dist/collection/components/co-menu/co-menu.css +70 -0
- package/dist/collection/components/co-menu/co-menu.js +146 -6
- package/dist/collection/components/co-menu-divider/co-menu-divider.css +21 -0
- package/dist/collection/components/co-menu-divider/co-menu-divider.js +2 -1
- package/dist/collection/components/co-menu-item/co-menu-item.css +56 -6
- package/dist/collection/components/co-menu-item/co-menu-item.js +60 -4
- package/dist/collection/components/co-modal/co-modal.css +218 -1
- package/dist/collection/components/co-modal/co-modal.js +354 -12
- package/dist/collection/components/co-navbar/co-navbar.css +7 -0
- package/dist/collection/components/co-navbar/co-navbar.js +4 -2
- package/dist/collection/components/co-number-field/co-number-field.js +29 -15
- package/dist/collection/components/co-option-list/co-option-list.css +102 -21
- package/dist/collection/components/co-option-list/co-option-list.js +37 -16
- package/dist/collection/components/co-overlay/co-overlay.css +4 -0
- package/dist/collection/components/co-overlay/co-overlay.js +17 -3
- package/dist/collection/components/co-page-header/co-page-header.js +4 -1
- package/dist/collection/components/co-phone-field/co-phone-field.js +1 -1
- package/dist/collection/components/co-popover/co-popover.css +20 -2
- package/dist/collection/components/co-popover/co-popover.js +148 -10
- package/dist/collection/components/co-progress-bar/co-progress-bar.js +5 -2
- package/dist/collection/components/co-progress-circle/co-progress-circle.js +5 -2
- package/dist/collection/components/co-provider-logo/co-provider-logo.js +3 -0
- package/dist/collection/components/co-radio/co-radio.js +11 -3
- package/dist/collection/components/co-radio-group/co-radio-group.js +9 -4
- package/dist/collection/components/co-rating/co-rating.js +25 -13
- package/dist/collection/components/co-ref-field/co-ref-field.css +14 -0
- package/dist/collection/components/co-ref-field/co-ref-field.js +55 -27
- package/dist/collection/components/co-rich-text-editor/co-rich-text-editor.js +66 -111
- package/dist/collection/components/co-rich-text-toolbar/co-rich-text-toolbar.css +12 -0
- package/dist/collection/components/co-rich-text-toolbar/co-rich-text-toolbar.js +127 -19
- package/dist/collection/components/co-rich-text-viewer/co-rich-text-viewer.js +16 -1
- package/dist/collection/components/co-row/co-row.js +5 -2
- package/dist/collection/components/co-segmented-bar/co-segmented-bar.js +9 -3
- package/dist/collection/components/co-select/co-select.css +207 -11
- package/dist/collection/components/co-select/co-select.js +198 -48
- package/dist/collection/components/co-select/virtualRows.js +57 -0
- package/dist/collection/components/co-separator/co-separator.js +8 -1
- package/dist/collection/components/co-sidebar/co-sidebar.js +10 -2
- package/dist/collection/components/co-sidebar-nav/co-sidebar-nav.css +15 -0
- package/dist/collection/components/co-sidebar-nav/co-sidebar-nav.js +20 -4
- package/dist/collection/components/co-skeleton/co-skeleton.js +4 -1
- package/dist/collection/components/co-slider/co-slider.css +155 -5
- package/dist/collection/components/co-slider/co-slider.js +263 -32
- package/dist/collection/components/co-swatch-grid/co-swatch-grid.css +56 -0
- package/dist/collection/components/co-swatch-grid/co-swatch-grid.js +293 -0
- package/dist/collection/components/co-switch/co-switch.css +4 -0
- package/dist/collection/components/co-switch/co-switch.js +12 -3
- package/dist/collection/components/co-tab/co-tab.css +60 -0
- package/dist/collection/components/co-tab/co-tab.js +44 -6
- package/dist/collection/components/co-tab-group/co-tab-group.css +24 -0
- package/dist/collection/components/co-tab-group/co-tab-group.js +133 -2
- package/dist/collection/components/co-tab-group/revealTab.js +26 -0
- package/dist/collection/components/co-tags-field/co-tags-field.js +21 -14
- package/dist/collection/components/co-textarea/co-textarea.js +4 -4
- package/dist/collection/components/co-tile/co-tile.css +63 -0
- package/dist/collection/components/co-tile/co-tile.js +167 -0
- package/dist/collection/components/co-time-field/co-time-field.js +9 -4
- package/dist/collection/components/co-toast/co-toast.css +11 -0
- package/dist/collection/components/co-toast/co-toast.js +13 -4
- package/dist/collection/components/co-toggle-button/co-toggle-button.css +106 -0
- package/dist/collection/components/co-toggle-button/co-toggle-button.js +91 -15
- package/dist/collection/components/co-toggle-button-group/co-toggle-button-group.css +21 -0
- package/dist/collection/components/co-toggle-button-group/co-toggle-button-group.js +41 -11
- package/dist/collection/components/co-tooltip/co-tooltip.css +36 -0
- package/dist/collection/components/co-tooltip/co-tooltip.js +61 -3
- package/dist/collection/components/co-transfer-list/co-transfer-list.js +19 -10
- package/dist/collection/components/co-tree-item/co-tree-item.css +235 -0
- package/dist/collection/components/co-tree-item/co-tree-item.js +355 -0
- package/dist/collection/components/co-tree-item/treeItemI18n.js +16 -0
- package/dist/collection/components/co-video/co-video.css +11 -0
- package/dist/collection/components/co-video/co-video.js +41 -22
- package/dist/collection/utils/color.js +9 -5
- package/dist/collection/utils/dragMove.js +95 -0
- package/dist/collection/utils/gradientBarI18n.js +24 -0
- package/dist/collection/utils/gradientStops.js +142 -0
- package/dist/collection/utils/hsv.js +114 -0
- package/dist/collection/utils/kbdI18n.js +29 -0
- package/dist/collection/utils/positioning.js +44 -18
- package/dist/collection/utils/rich-text-host.js +109 -0
- package/dist/collection/utils/richTextI18n.js +45 -0
- package/dist/collection/utils/submenu.js +23 -3
- package/dist/collection/utils/swatchGridI18n.js +14 -0
- package/dist/collection/utils/test/fake-block-layout.js +41 -0
- package/dist/collection/utils/test/prosemirror-dom-shim.js +17 -0
- package/dist/collection/utils/test/shared-contract-css.js +9 -0
- package/dist/components/co-accordion.js +1 -1
- package/dist/components/co-action-bar.js +1 -1
- package/dist/components/co-app-shell.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-badge.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-group.js +1 -1
- package/dist/components/co-button.js +1 -1
- package/dist/components/co-calendar-month.js +1 -1
- package/dist/components/co-calendar-timegrid.js +1 -1
- package/dist/components/co-calendar.js +1 -1
- package/dist/components/co-card.js +1 -1
- package/dist/components/co-carousel-item.js +1 -1
- package/dist/components/co-carousel.js +1 -1
- package/dist/components/co-checkbox-group.js +1 -1
- package/dist/components/co-checkbox.js +1 -1
- package/dist/components/co-chip.js +1 -1
- package/dist/components/co-color-area.d.ts +11 -0
- package/dist/components/co-color-area.js +1 -0
- package/dist/components/co-color-picker.js +1 -1
- package/dist/components/co-color-slider.d.ts +11 -0
- package/dist/components/co-color-slider.js +1 -0
- 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-document-editor.d.ts +11 -0
- package/dist/components/co-document-editor.js +1 -0
- package/dist/components/co-drawer.js +1 -1
- package/dist/components/co-drive-card.js +1 -1
- package/dist/components/co-drop-zone.js +1 -1
- package/dist/components/co-emoji-picker.js +1 -1
- package/dist/components/co-empty-state.js +1 -1
- package/dist/components/co-event-calendar.js +1 -1
- package/dist/components/co-event-popover.js +1 -1
- package/dist/components/co-fab.js +1 -1
- package/dist/components/co-file-field.js +1 -1
- package/dist/components/co-file-type-tile.js +1 -1
- package/dist/components/co-gradient-bar.d.ts +11 -0
- package/dist/components/co-gradient-bar.js +1 -0
- package/dist/components/co-helper-text.js +1 -1
- package/dist/components/co-icon-button.js +1 -1
- package/dist/components/co-icon.js +1 -1
- package/dist/components/co-input.js +1 -1
- package/dist/components/co-json-field.js +1 -1
- package/dist/components/co-kbd.d.ts +11 -0
- package/dist/components/co-kbd.js +1 -0
- 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-popover.js +1 -1
- package/dist/components/co-progress-bar.js +1 -1
- package/dist/components/co-progress-circle.js +1 -1
- package/dist/components/co-radio-group.js +1 -1
- package/dist/components/co-radio.js +1 -1
- package/dist/components/co-rating.js +1 -1
- package/dist/components/co-ref-field.js +1 -1
- package/dist/components/co-rich-text-editor.js +1 -1
- package/dist/components/co-rich-text-toolbar.js +1 -1
- package/dist/components/co-rich-text-viewer.js +1 -1
- package/dist/components/co-row.js +1 -1
- package/dist/components/co-segmented-bar.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-swatch-grid.d.ts +11 -0
- package/dist/components/co-swatch-grid.js +1 -0
- 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-tile.d.ts +11 -0
- package/dist/components/co-tile.js +1 -0
- package/dist/components/co-time-field.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-tree-item.d.ts +11 -0
- package/dist/components/co-tree-item.js +1 -0
- package/dist/components/co-video.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/p-8XzG8pzY.js +1 -0
- package/dist/components/p-9VoFSbIH.js +1 -0
- package/dist/components/p-B1JT7us1.js +1 -0
- package/dist/components/{p-Dc_Kbari.js → p-B3Egz082.js} +1 -1
- package/dist/components/p-B9wdMd_0.js +1 -0
- package/dist/components/p-BRZci8B3.js +1 -0
- package/dist/components/{p-BRbgGqLw.js → p-BVGGRfNG.js} +1 -1
- package/dist/components/{p-B56LX2SH.js → p-BVdCvEza.js} +1 -1
- package/dist/components/p-BdmzslA5.js +1 -0
- package/dist/components/p-BmdKHBZP.js +1 -0
- package/dist/components/p-BtliEQAT.js +1 -0
- package/dist/components/{p-CT2enQ6h.js → p-Bw_b_czs.js} +1 -1
- package/dist/components/{p-NNxjElcX.js → p-C4sZjIDj.js} +1 -1
- package/dist/components/{p-Nt4JJxbL.js → p-C6WHpL5X.js} +1 -1
- package/dist/components/p-COJdaKBU.js +1 -0
- package/dist/components/p-COozgrEk.js +1 -0
- package/dist/components/{p-BAYo-RBt.js → p-CRxTFT_z.js} +1 -1
- package/dist/components/{p-uxdXViMV.js → p-CiYPJW0B.js} +1 -1
- package/dist/components/p-Cnfd6Zze.js +1 -0
- package/dist/components/{p-BhCVadcA.js → p-CxWo3qDo.js} +1 -1
- package/dist/components/p-D4XP17VP.js +1 -0
- package/dist/components/{p-e5KibEs8.js → p-DJ468fPu.js} +1 -1
- package/dist/components/p-DU-KOQ8L.js +1 -0
- package/dist/components/p-DXLeDZvr.js +1 -0
- package/dist/components/{p-DvR45CLa.js → p-Dn2wblrA.js} +1 -1
- package/dist/components/p-Dnz99Ox_.js +1 -0
- package/dist/components/p-DsuFNmTI.js +1 -0
- package/dist/components/{p-Du_CgT5E.js → p-Du8EpQb-.js} +1 -1
- package/dist/components/{p-DFlJMEJ-.js → p-DymSqdlK.js} +1 -1
- package/dist/components/p-Hi57w2_2.js +1 -0
- package/dist/components/{p-DNJAIVfI.js → p-KK2vAKs-.js} +1 -1
- package/dist/components/p-RVQJEYxa.js +1 -0
- package/dist/components/p-TGRbLkLz.js +1 -0
- package/dist/components/p-VcrjNCew.js +1 -0
- package/dist/components/{p-Dxa7c4Ap.js → p-dnaee7fS.js} +1 -1
- package/dist/components/p-nrwDl_gx.js +1 -0
- package/dist/components/{p-P4HlMBlL.js → p-zJ3pjFzW.js} +1 -1
- package/dist/esm/co-accordion.entry.js +3 -3
- package/dist/esm/co-action-bar.entry.js +3 -3
- package/dist/esm/co-app-shell.entry.js +3 -3
- package/dist/esm/co-audio-player.entry.js +4 -4
- package/dist/esm/co-autocomplete.entry.js +12 -5
- package/dist/esm/co-avatar-group.entry.js +3 -3
- package/dist/esm/co-avatar.entry.js +7 -4
- package/dist/esm/co-badge.entry.js +2 -2
- package/dist/esm/co-bottom-sheet.entry.js +5 -5
- package/dist/esm/co-breadcrumb-item.entry.js +3 -3
- package/dist/esm/co-breadcrumb.entry.js +2 -2
- package/dist/esm/co-button-group.entry.js +4 -3
- package/dist/esm/co-button.entry.js +9 -7
- package/dist/esm/co-calendar-month_2.entry.js +16 -4
- package/dist/esm/co-calendar_3.entry.js +76 -27
- package/dist/esm/co-card.entry.js +3 -3
- package/dist/esm/co-carousel-item.entry.js +2 -2
- package/dist/esm/co-carousel.entry.js +6 -3
- package/dist/esm/co-checkbox-group.entry.js +4 -4
- package/dist/esm/co-checkbox.entry.js +13 -5
- package/dist/esm/co-chip_2.entry.js +20 -7
- package/dist/esm/co-color-area.entry.js +167 -0
- package/dist/esm/co-color-picker.entry.js +5 -5
- package/dist/esm/co-color-slider.entry.js +187 -0
- package/dist/esm/co-column-picker.entry.js +23 -3
- package/dist/esm/co-combobox.entry.js +5 -5
- package/dist/esm/co-command-search.entry.js +5 -5
- package/dist/esm/co-data-table-pagination.entry.js +5 -5
- package/dist/esm/co-data-table.entry.js +3 -3
- package/dist/esm/co-date-picker.entry.js +10 -2
- package/dist/esm/co-date-range-picker.entry.js +11 -2
- package/dist/esm/co-date-range.entry.js +8 -2
- package/dist/esm/co-date-time-picker.entry.js +11 -4
- package/dist/esm/co-document-editor.entry.js +1165 -0
- package/dist/esm/co-drive-card.entry.js +2 -2
- package/dist/esm/co-drop-zone.entry.js +2 -2
- package/dist/esm/co-emoji-picker.entry.js +3 -3
- package/dist/esm/co-empty-state.entry.js +3 -3
- package/dist/esm/co-event-calendar.entry.js +5 -3
- package/dist/esm/co-event-popover.entry.js +7 -3
- package/dist/esm/co-fab.entry.js +7 -3
- package/dist/esm/co-file-field.entry.js +12 -8
- package/dist/esm/co-file-type-tile.entry.js +3 -3
- package/dist/esm/co-gradient-bar.entry.js +218 -0
- package/dist/esm/co-helper-text.entry.js +3 -3
- package/dist/esm/co-icon-button.entry.js +48 -9
- package/dist/esm/co-icon.entry.js +3 -3
- package/dist/esm/co-input.entry.js +14 -8
- package/dist/esm/co-json-field.entry.js +10 -5
- package/dist/esm/{co-tooltip.entry.js → co-kbd_2.entry.js} +194 -7
- package/dist/esm/co-lightbox.entry.js +5 -5
- package/dist/esm/co-list-footer.entry.js +2 -2
- package/dist/esm/co-list-item.entry.js +5 -5
- package/dist/esm/co-loader.entry.js +1 -1
- package/dist/esm/co-media-thumb.entry.js +3 -3
- package/dist/esm/co-menu-divider.entry.js +3 -3
- package/dist/esm/co-menu-item.entry.js +39 -41
- package/dist/esm/co-menu.entry.js +81 -5
- package/dist/esm/co-modal.entry.js +350 -7
- package/dist/esm/co-navbar.entry.js +3 -3
- package/dist/esm/co-number-field.entry.js +11 -5
- package/dist/esm/co-overlay.entry.js +8 -4
- package/dist/esm/co-page-header.entry.js +2 -2
- package/dist/esm/co-phone-field.entry.js +3 -3
- package/dist/esm/co-popover.entry.js +69 -6
- package/dist/esm/co-progress-bar.entry.js +3 -3
- package/dist/esm/co-progress-circle.entry.js +3 -3
- package/dist/esm/co-provider-logo_2.entry.js +2 -2
- package/dist/esm/co-radio-group.entry.js +4 -4
- package/dist/esm/co-radio.entry.js +4 -4
- package/dist/esm/co-rating.entry.js +11 -4
- package/dist/esm/co-ref-field.entry.js +14 -5
- package/dist/esm/co-rich-text-editor.entry.js +40 -92
- package/dist/esm/co-rich-text-toolbar.entry.js +80 -20
- package/dist/esm/co-rich-text-viewer.entry.js +9 -2
- package/dist/esm/co-row.entry.js +3 -3
- package/dist/esm/co-segmented-bar.entry.js +3 -3
- package/dist/esm/co-select.entry.js +171 -29
- package/dist/esm/co-separator.entry.js +2 -2
- package/dist/esm/co-sidebar-nav.entry.js +20 -5
- package/dist/esm/co-sidebar.entry.js +3 -3
- package/dist/esm/co-slider.entry.js +209 -23
- package/dist/esm/co-swatch-grid.entry.js +119 -0
- package/dist/esm/co-switch.entry.js +5 -5
- package/dist/esm/co-tab-group.entry.js +113 -4
- package/dist/esm/co-tab.entry.js +15 -5
- package/dist/esm/co-tags-field.entry.js +13 -8
- package/dist/esm/co-textarea.entry.js +6 -6
- package/dist/esm/co-tile.entry.js +59 -0
- package/dist/esm/co-time-field.entry.js +5 -2
- package/dist/esm/co-toast.entry.js +3 -3
- package/dist/esm/co-toggle-button-group.entry.js +29 -5
- package/dist/esm/co-toggle-button.entry.js +70 -6
- package/dist/esm/co-transfer-list.entry.js +7 -3
- package/dist/esm/co-tree-item.entry.js +108 -0
- package/dist/esm/co-video.entry.js +11 -3
- package/dist/esm/cobalt.js +3 -3
- package/dist/esm/{color-BRbgGqLw.js → color-BVGGRfNG.js} +10 -6
- package/dist/esm/{fieldChip-uyggU8VV.js → fieldChip-B2ctp2m6.js} +1 -1
- package/dist/esm/gradientStops-DDK0y8ra.js +145 -0
- package/dist/esm/hsv-COJdaKBU.js +90 -0
- package/dist/esm/index-Cpo8HTwr.js +142 -0
- package/dist/esm/{index-DH5lfRNj.js → index-DJkaRtbb.js} +67 -28
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{index-BBIYyvq-.js → pagination-D9OfZUnY.js} +1728 -297
- package/dist/esm/{positioning-DFHRS9cJ.js → positioning-BtliEQAT.js} +45 -19
- package/dist/esm/{requiredMark-BCJUuZvC.js → requiredMark-D5C5NzOE.js} +1 -1
- package/dist/esm/rich-text-host-BmdKHBZP.js +111 -0
- package/dist/esm/{richTextI18n-BYKAgwq3.js → richTextI18n-xnrKkNWQ.js} +45 -0
- package/dist/esm/submenu-DU-KOQ8L.js +57 -0
- package/dist/esm/{toolbar-config-BAYo-RBt.js → toolbar-config-CRxTFT_z.js} +32 -0
- package/dist/types/components/co-accordion/co-accordion.d.ts +10 -0
- package/dist/types/components/co-action-bar/co-action-bar.d.ts +1 -0
- package/dist/types/components/co-app-shell/co-app-shell.d.ts +11 -0
- package/dist/types/components/co-audio-player/co-audio-player.d.ts +16 -0
- package/dist/types/components/co-autocomplete/co-autocomplete.d.ts +21 -0
- package/dist/types/components/co-avatar/co-avatar.d.ts +11 -2
- package/dist/types/components/co-avatar-group/co-avatar-group.d.ts +5 -0
- package/dist/types/components/co-badge/co-badge.d.ts +7 -0
- package/dist/types/components/co-bottom-sheet/co-bottom-sheet.d.ts +9 -0
- package/dist/types/components/co-breadcrumb/co-breadcrumb.d.ts +4 -0
- package/dist/types/components/co-breadcrumb-item/co-breadcrumb-item.d.ts +6 -0
- package/dist/types/components/co-button/co-button.d.ts +12 -4
- package/dist/types/components/co-button-group/co-button-group.d.ts +7 -0
- package/dist/types/components/co-calendar/calendarMarks.d.ts +15 -0
- package/dist/types/components/co-calendar/co-calendar.d.ts +18 -0
- package/dist/types/components/co-calendar-timegrid/co-calendar-timegrid.d.ts +23 -0
- package/dist/types/components/co-card/co-card.d.ts +9 -0
- package/dist/types/components/co-carousel/co-carousel.d.ts +12 -0
- package/dist/types/components/co-checkbox/co-checkbox.d.ts +15 -0
- package/dist/types/components/co-checkbox-group/co-checkbox-group.d.ts +5 -0
- package/dist/types/components/co-chip/co-chip.d.ts +13 -0
- package/dist/types/components/co-color-area/co-color-area.d.ts +65 -0
- package/dist/types/components/co-color-picker/co-color-picker.d.ts +2 -0
- package/dist/types/components/co-color-slider/co-color-slider.d.ts +62 -0
- package/dist/types/components/co-column-picker/co-column-picker.d.ts +32 -0
- package/dist/types/components/co-combobox/co-combobox.d.ts +14 -0
- package/dist/types/components/co-command-search/co-command-search.d.ts +15 -0
- package/dist/types/components/co-data-table/co-data-table.d.ts +5 -0
- package/dist/types/components/co-data-table-pagination/co-data-table-pagination.d.ts +12 -0
- package/dist/types/components/co-date-field/co-date-field.d.ts +11 -0
- package/dist/types/components/co-date-picker/co-date-picker.d.ts +30 -0
- package/dist/types/components/co-date-range/co-date-range.d.ts +12 -0
- package/dist/types/components/co-date-range-picker/co-date-range-picker.d.ts +33 -0
- package/dist/types/components/co-date-time-picker/co-date-time-picker.d.ts +22 -1
- package/dist/types/components/co-document-editor/change-throttle.d.ts +9 -0
- package/dist/types/components/co-document-editor/co-document-editor.d.ts +284 -0
- package/dist/types/components/co-document-editor/document-props.d.ts +6 -0
- package/dist/types/components/co-document-editor/header-tools.d.ts +11 -0
- package/dist/types/components/co-document-editor/image-bar.d.ts +50 -0
- package/dist/types/components/co-document-editor/page-styles.d.ts +1 -0
- package/dist/types/components/co-document-editor/zoom.d.ts +26 -0
- package/dist/types/components/co-drawer/co-drawer.d.ts +13 -0
- package/dist/types/components/co-drive-card/co-drive-card.d.ts +13 -0
- package/dist/types/components/co-drop-zone/co-drop-zone.d.ts +6 -1
- package/dist/types/components/co-emoji-picker/co-emoji-picker.d.ts +9 -0
- package/dist/types/components/co-empty-state/co-empty-state.d.ts +2 -0
- package/dist/types/components/co-event-calendar/co-event-calendar.d.ts +12 -16
- package/dist/types/components/co-event-popover/co-event-popover.d.ts +13 -0
- package/dist/types/components/co-fab/co-fab.d.ts +11 -0
- package/dist/types/components/co-file-field/co-file-field.d.ts +6 -0
- package/dist/types/components/co-file-type-tile/co-file-type-tile.d.ts +7 -0
- package/dist/types/components/co-gradient-bar/co-gradient-bar.d.ts +77 -0
- package/dist/types/components/co-helper-text/co-helper-text.d.ts +2 -0
- package/dist/types/components/co-icon/co-icon.d.ts +4 -0
- package/dist/types/components/co-icon-button/co-icon-button.d.ts +39 -2
- package/dist/types/components/co-input/co-input.d.ts +25 -5
- package/dist/types/components/co-json-field/co-json-field.d.ts +11 -0
- package/dist/types/components/co-kbd/co-kbd.d.ts +50 -0
- package/dist/types/components/co-list-footer/co-list-footer.d.ts +3 -0
- package/dist/types/components/co-list-item/co-list-item.d.ts +3 -0
- package/dist/types/components/co-loader/co-loader.d.ts +5 -0
- package/dist/types/components/co-media-thumb/co-media-thumb.d.ts +7 -0
- package/dist/types/components/co-menu/co-menu.d.ts +42 -1
- package/dist/types/components/co-menu-divider/co-menu-divider.d.ts +1 -0
- package/dist/types/components/co-menu-item/co-menu-item.d.ts +19 -0
- package/dist/types/components/co-modal/co-modal.d.ts +126 -5
- package/dist/types/components/co-navbar/co-navbar.d.ts +2 -0
- package/dist/types/components/co-number-field/co-number-field.d.ts +20 -0
- package/dist/types/components/co-option-list/co-option-list.d.ts +29 -1
- package/dist/types/components/co-option-list/optionListLogic.d.ts +3 -0
- package/dist/types/components/co-overlay/co-overlay.d.ts +10 -0
- package/dist/types/components/co-page-header/co-page-header.d.ts +3 -0
- package/dist/types/components/co-popover/co-popover.d.ts +51 -0
- package/dist/types/components/co-progress-bar/co-progress-bar.d.ts +3 -0
- package/dist/types/components/co-progress-circle/co-progress-circle.d.ts +3 -0
- package/dist/types/components/co-provider-logo/co-provider-logo.d.ts +3 -0
- package/dist/types/components/co-radio/co-radio.d.ts +8 -0
- package/dist/types/components/co-radio-group/co-radio-group.d.ts +5 -0
- package/dist/types/components/co-rating/co-rating.d.ts +15 -0
- package/dist/types/components/co-ref-field/co-ref-field.d.ts +42 -0
- package/dist/types/components/co-rich-text-editor/co-rich-text-editor.d.ts +31 -5
- package/dist/types/components/co-rich-text-toolbar/co-rich-text-toolbar.d.ts +20 -2
- package/dist/types/components/co-rich-text-viewer/co-rich-text-viewer.d.ts +8 -0
- package/dist/types/components/co-row/co-row.d.ts +3 -0
- package/dist/types/components/co-segmented-bar/co-segmented-bar.d.ts +6 -0
- package/dist/types/components/co-select/co-select.d.ts +73 -5
- package/dist/types/components/co-select/virtualRows.d.ts +44 -0
- package/dist/types/components/co-separator/co-separator.d.ts +7 -0
- package/dist/types/components/co-sidebar/co-sidebar.d.ts +8 -0
- package/dist/types/components/co-sidebar-nav/co-sidebar-nav.d.ts +1 -0
- package/dist/types/components/co-skeleton/co-skeleton.d.ts +3 -0
- package/dist/types/components/co-slider/co-slider.d.ts +160 -1
- package/dist/types/components/co-swatch-grid/co-swatch-grid.d.ts +38 -0
- package/dist/types/components/co-switch/co-switch.d.ts +9 -0
- package/dist/types/components/co-tab/co-tab.d.ts +20 -2
- package/dist/types/components/co-tab-group/co-tab-group.d.ts +46 -0
- package/dist/types/components/co-tab-group/revealTab.d.ts +29 -0
- package/dist/types/components/co-tags-field/co-tags-field.d.ts +11 -0
- package/dist/types/components/co-tile/co-tile.d.ts +45 -0
- package/dist/types/components/co-time-field/co-time-field.d.ts +5 -0
- package/dist/types/components/co-toast/co-toast.d.ts +9 -0
- package/dist/types/components/co-toggle-button/co-toggle-button.d.ts +45 -2
- package/dist/types/components/co-toggle-button-group/co-toggle-button-group.d.ts +30 -2
- package/dist/types/components/co-tooltip/co-tooltip.d.ts +22 -0
- package/dist/types/components/co-transfer-list/co-transfer-list.d.ts +12 -0
- package/dist/types/components/co-tree-item/co-tree-item.d.ts +75 -0
- package/dist/types/components/co-tree-item/treeItemI18n.d.ts +6 -0
- package/dist/types/components/co-video/co-video.d.ts +31 -0
- package/dist/types/components.d.ts +3905 -85
- package/dist/types/utils/color.d.ts +9 -1
- package/dist/types/utils/dragMove.d.ts +63 -0
- package/dist/types/utils/gradientBarI18n.d.ts +8 -0
- package/dist/types/utils/gradientStops.d.ts +63 -0
- package/dist/types/utils/hsv.d.ts +44 -0
- package/dist/types/utils/kbdI18n.d.ts +25 -0
- package/dist/types/utils/positioning.d.ts +24 -0
- package/dist/types/utils/rich-text-host.d.ts +41 -0
- package/dist/types/utils/richTextI18n.d.ts +15 -0
- package/dist/types/utils/submenu.d.ts +16 -2
- package/dist/types/utils/swatchGridI18n.d.ts +6 -0
- package/dist/types/utils/test/fake-block-layout.d.ts +7 -0
- package/dist/types/utils/test/prosemirror-dom-shim.d.ts +1 -0
- package/dist/types/utils/test/shared-contract-css.d.ts +9 -0
- package/package.json +5 -5
- package/dist/cobalt/p-0678c797.entry.js +0 -1
- package/dist/cobalt/p-1d3a79af.entry.js +0 -1
- package/dist/cobalt/p-216a63ee.entry.js +0 -1
- package/dist/cobalt/p-3d31c575.entry.js +0 -1
- package/dist/cobalt/p-416795f5.entry.js +0 -1
- package/dist/cobalt/p-56551580.entry.js +0 -1
- package/dist/cobalt/p-58137c9e.entry.js +0 -1
- package/dist/cobalt/p-5a3e4c81.entry.js +0 -1
- package/dist/cobalt/p-5c756787.entry.js +0 -1
- package/dist/cobalt/p-67f3b9d6.entry.js +0 -1
- package/dist/cobalt/p-6a4f3179.entry.js +0 -1
- package/dist/cobalt/p-71cbc53c.entry.js +0 -1
- package/dist/cobalt/p-72e52af7.entry.js +0 -1
- package/dist/cobalt/p-8530ad16.entry.js +0 -1
- package/dist/cobalt/p-8a74bf7d.entry.js +0 -1
- package/dist/cobalt/p-8e05b979.entry.js +0 -1
- package/dist/cobalt/p-8ebc0c12.entry.js +0 -1
- package/dist/cobalt/p-8f2199ff.entry.js +0 -1
- package/dist/cobalt/p-9246e09c.entry.js +0 -1
- package/dist/cobalt/p-99a655f6.entry.js +0 -1
- package/dist/cobalt/p-BYKAgwq3.js +0 -1
- package/dist/cobalt/p-CJW9H3Gi.js +0 -1
- package/dist/cobalt/p-DFHRS9cJ.js +0 -1
- package/dist/cobalt/p-DH5lfRNj.js +0 -2
- package/dist/cobalt/p-a1b422ca.entry.js +0 -1
- package/dist/cobalt/p-ade07307.entry.js +0 -1
- package/dist/cobalt/p-b0762fd8.entry.js +0 -1
- package/dist/cobalt/p-b698188c.entry.js +0 -1
- package/dist/cobalt/p-bde32f8b.entry.js +0 -1
- package/dist/cobalt/p-d375014b.entry.js +0 -1
- package/dist/cobalt/p-db805569.entry.js +0 -1
- package/dist/cobalt/p-e3aae282.entry.js +0 -1
- package/dist/cobalt/p-e49a564c.entry.js +0 -1
- package/dist/cobalt/p-ef301976.entry.js +0 -1
- package/dist/cobalt/p-fMqVDypp.js +0 -1
- package/dist/components/p-2EOI1nrz.js +0 -1
- package/dist/components/p-7TncUlLN.js +0 -1
- package/dist/components/p-B4NCaKrR.js +0 -1
- package/dist/components/p-BGDqldEg.js +0 -1
- package/dist/components/p-BJh68Jqe.js +0 -1
- package/dist/components/p-BrAFTkAn.js +0 -1
- package/dist/components/p-Bsh0JMGf.js +0 -1
- package/dist/components/p-CJW9H3Gi.js +0 -1
- package/dist/components/p-CWCYYQrF.js +0 -1
- package/dist/components/p-D9T7zKeL.js +0 -1
- package/dist/components/p-DFHRS9cJ.js +0 -1
- package/dist/components/p-DTPYZwaZ.js +0 -1
- package/dist/components/p-Dcg4krSX.js +0 -1
- package/dist/components/p-Dh8ffSjK.js +0 -1
|
@@ -120,13 +120,17 @@ export function parseCssColor(input) {
|
|
|
120
120
|
}
|
|
121
121
|
return null;
|
|
122
122
|
}
|
|
123
|
-
/** WCAG sRGB relative luminance (0–1)
|
|
123
|
+
/** WCAG sRGB relative luminance (0–1) a partir de canales 0–255 (pueden venir
|
|
124
|
+
* con decimales — p.ej. un color compuesto sobre blanco — sin pasar por hex). */
|
|
125
|
+
export function luminanceRgb({ r, g, b }) {
|
|
126
|
+
const [rs, gs, bs] = [r / 255, g / 255, b / 255].map((v) => v <= 0.03928 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4));
|
|
127
|
+
return 0.2126 * rs + 0.7152 * gs + 0.0722 * bs;
|
|
128
|
+
}
|
|
129
|
+
/** WCAG sRGB relative luminance (0–1). Wrapper fino de `luminanceRgb` para
|
|
130
|
+
* un hex de 3/6 dígitos; lo que no es hex da 0 (comportamiento de siempre). */
|
|
124
131
|
export function luminance(hex) {
|
|
125
132
|
const c = parseHex(hex);
|
|
126
|
-
|
|
127
|
-
return 0;
|
|
128
|
-
const [rs, gs, bs] = [c.r / 255, c.g / 255, c.b / 255].map((v) => v <= 0.03928 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4));
|
|
129
|
-
return 0.2126 * rs + 0.7152 * gs + 0.0722 * bs;
|
|
133
|
+
return c ? luminanceRgb(c) : 0;
|
|
130
134
|
}
|
|
131
135
|
/** Returns true when the color is perceptually light (needs dark foreground). */
|
|
132
136
|
export function isLightColor(hex) {
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Núcleo puro de "arrastrar para mover un panel flotante" (Task D1).
|
|
3
|
+
*
|
|
4
|
+
* Solo aritmética: el desplazamiento acumulado del gesto y su acotado al
|
|
5
|
+
* viewport. Quien lo use aporta la cáscara (pointer events, escritura del
|
|
6
|
+
* estilo) — así el contrato se testea sin layout, que jsdom no calcula.
|
|
7
|
+
*
|
|
8
|
+
* El editor (Design Studio) tiene su propio gemelo de estas funciones en
|
|
9
|
+
* `lib/dragOffset.ts`: son dos paquetes sin dependencia entre sí y el núcleo
|
|
10
|
+
* son ~20 líneas; si alguna regla cambia, hay que cambiar las dos.
|
|
11
|
+
*/
|
|
12
|
+
/** Px del panel que SIEMPRE quedan dentro del viewport (un panel más chico no exige más de lo que mide). */
|
|
13
|
+
export const DRAG_MIN_VISIBLE = 48;
|
|
14
|
+
/**
|
|
15
|
+
* Desplazamiento del gesto: lo ya acumulado (`base`) más lo que se movió el
|
|
16
|
+
* puntero desde que empezó. `base` existe porque el gesto siguiente arranca
|
|
17
|
+
* donde quedó el anterior.
|
|
18
|
+
*/
|
|
19
|
+
export function dragOffsetOf(base, start, current) {
|
|
20
|
+
return { x: base.x + current.x - start.x, y: base.y + current.y - start.y };
|
|
21
|
+
}
|
|
22
|
+
/** Acota `value` a [min, max] con el 0 SIEMPRE dentro del rango — ver `clampDragOffset`. */
|
|
23
|
+
function clampAxis(value, min, max) {
|
|
24
|
+
const lo = Math.min(min, 0);
|
|
25
|
+
const hi = Math.max(max, 0);
|
|
26
|
+
return Math.min(Math.max(value, lo), hi);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Acota el desplazamiento para que el panel no se pierda de pantalla:
|
|
30
|
+
*
|
|
31
|
+
* - Horizontal: siempre quedan `minVisible` px del panel dentro del viewport
|
|
32
|
+
* (por cualquiera de los dos lados).
|
|
33
|
+
* - Vertical: el borde SUPERIOR nunca sube del borde del viewport (el header
|
|
34
|
+
* —la zona de agarre— queda siempre alcanzable) y por abajo rige el mismo
|
|
35
|
+
* `minVisible`.
|
|
36
|
+
*
|
|
37
|
+
* El rango incluye el 0 por construcción: un panel que ya nace fuera (más alto
|
|
38
|
+
* que el viewport) no debe SALTAR al agarrarlo; solo no se puede empeorar.
|
|
39
|
+
*
|
|
40
|
+
* `rect` es la caja del panel medida UNA vez, al empezar el gesto: medir en
|
|
41
|
+
* cada `pointermove` fuerza layout síncrono en cada frame.
|
|
42
|
+
*/
|
|
43
|
+
export function clampDragOffset(offset, rect, viewport, minVisible = DRAG_MIN_VISIBLE) {
|
|
44
|
+
const visibleX = Math.min(minVisible, rect.width);
|
|
45
|
+
const visibleY = Math.min(minVisible, rect.height);
|
|
46
|
+
return {
|
|
47
|
+
x: clampAxis(offset.x, visibleX - rect.left - rect.width, viewport.width - visibleX - rect.left),
|
|
48
|
+
y: clampAxis(offset.y, -rect.top, viewport.height - visibleY - rect.top),
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Controles que NO arrastran aunque vivan en la zona de agarre: el ✕, los
|
|
53
|
+
* botones/enlaces y los campos. Lista gemela de la del editor
|
|
54
|
+
* (`apps/web/src/lib/dragOffset.ts`): las dos se mantienen en sincronía.
|
|
55
|
+
*/
|
|
56
|
+
const INTERACTIVE_SELECTOR = [
|
|
57
|
+
'button',
|
|
58
|
+
'a[href]',
|
|
59
|
+
'input',
|
|
60
|
+
'select',
|
|
61
|
+
'textarea',
|
|
62
|
+
'[role="button"]',
|
|
63
|
+
'[role="checkbox"]',
|
|
64
|
+
'[role="radio"]',
|
|
65
|
+
'[role="switch"]',
|
|
66
|
+
'[role="combobox"]',
|
|
67
|
+
'[role="option"]',
|
|
68
|
+
'[role="menuitem"]',
|
|
69
|
+
'[role="slider"]',
|
|
70
|
+
'[role="tab"]',
|
|
71
|
+
'[role="separator"]',
|
|
72
|
+
'[data-no-drag]',
|
|
73
|
+
].join(', ');
|
|
74
|
+
/**
|
|
75
|
+
* `true` si el evento nació en un control interactivo DENTRO de la zona de
|
|
76
|
+
* agarre. Recorre el `composedPath` (no `closest`) porque el origen puede venir
|
|
77
|
+
* de otro shadow root — el `<svg>` dentro del ✕, un control del consumidor
|
|
78
|
+
* proyectado en un slot.
|
|
79
|
+
*
|
|
80
|
+
* `handle` acota el recorrido: se corta al llegar al asa. Sin ese tope, un
|
|
81
|
+
* flotante montado dentro de un `<button>` o de un `[role=…]` del consumidor
|
|
82
|
+
* dejaba de arrastrar entero y sin diagnóstico (el ancestro matcheaba).
|
|
83
|
+
*/
|
|
84
|
+
export function isInteractiveDragTarget(event, handle) {
|
|
85
|
+
const path = typeof event.composedPath === 'function' ? event.composedPath() : [event.target];
|
|
86
|
+
for (const node of path) {
|
|
87
|
+
if (handle && node === handle)
|
|
88
|
+
return false;
|
|
89
|
+
if (node && typeof node.matches === 'function') {
|
|
90
|
+
if (node.matches(INTERACTIVE_SELECTOR))
|
|
91
|
+
return true;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Diccionario de strings de co-gradient-bar (aria labels). Misma estrategia
|
|
3
|
+
* que carouselI18n/dateI18n: es/en/pt resueltos por la prop `locale`. Las
|
|
4
|
+
* plantillas usan `{i}` / `{n}` / `{p}`.
|
|
5
|
+
*/
|
|
6
|
+
import { langFromLocale } from "./dateI18n";
|
|
7
|
+
const DICT = {
|
|
8
|
+
es: {
|
|
9
|
+
barLabel: 'Degradado',
|
|
10
|
+
stopLabel: 'Parada {i} de {n}, {p}%',
|
|
11
|
+
},
|
|
12
|
+
en: {
|
|
13
|
+
barLabel: 'Gradient',
|
|
14
|
+
stopLabel: 'Stop {i} of {n}, {p}%',
|
|
15
|
+
},
|
|
16
|
+
pt: {
|
|
17
|
+
barLabel: 'Degradê',
|
|
18
|
+
stopLabel: 'Parada {i} de {n}, {p}%',
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
/** Resuelve los strings integrados para un locale. */
|
|
22
|
+
export function getGradientBarStrings(locale) {
|
|
23
|
+
return DICT[langFromLocale(locale)];
|
|
24
|
+
}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Matemática pura de co-gradient-bar y co-swatch-grid: parseo de colores
|
|
3
|
+
* (hex/rgb/rgba), interpolación entre paradas, CSS del degradado y la
|
|
4
|
+
* geometría puntero → posición. Sin DOM ni estado: se testea en el proyecto
|
|
5
|
+
* `unit` (node).
|
|
6
|
+
*/
|
|
7
|
+
import { luminanceRgb } from "./color";
|
|
8
|
+
import { clamp, hexToRgb, rgbToHex } from "./hsv";
|
|
9
|
+
/**
|
|
10
|
+
* Lee un color CSS a canales. Soporta hex de 3/4/6/8 dígitos (vía
|
|
11
|
+
* `hsv.hexToRgb`, único parser de hex del picker) y rgb()/rgba() (con comas
|
|
12
|
+
* o con la sintaxis `/ alpha`). Tokens (`var(--x)`) y nombres (`red`)
|
|
13
|
+
* devuelven null: el llamador decide cómo degradar.
|
|
14
|
+
*/
|
|
15
|
+
export function parseColor(color) {
|
|
16
|
+
var _a;
|
|
17
|
+
if (!color || typeof color !== 'string')
|
|
18
|
+
return null;
|
|
19
|
+
const s = color.trim();
|
|
20
|
+
if (s.startsWith('#')) {
|
|
21
|
+
const c = hexToRgb(s);
|
|
22
|
+
return c ? { r: c.r, g: c.g, b: c.b, a: (_a = c.a) !== null && _a !== void 0 ? _a : 1 } : null;
|
|
23
|
+
}
|
|
24
|
+
const m = /^rgba?\(\s*([^)]*?)\s*\)$/i.exec(s);
|
|
25
|
+
if (!m)
|
|
26
|
+
return null;
|
|
27
|
+
// "10, 20, 30, 0.5" · "10 20 30 / 25%" · "10 20 30"
|
|
28
|
+
const parts = m[1].split(/\s*[,/]\s*|\s+/).filter(Boolean);
|
|
29
|
+
if (parts.length < 3 || parts.length > 4)
|
|
30
|
+
return null;
|
|
31
|
+
const [r, g, b] = parts.slice(0, 3).map((p) => Number(p));
|
|
32
|
+
if ([r, g, b].some((v) => Number.isNaN(v)))
|
|
33
|
+
return null;
|
|
34
|
+
const a = parts[3] === undefined ? 1 : parseAlpha(parts[3]);
|
|
35
|
+
if (a === null)
|
|
36
|
+
return null;
|
|
37
|
+
return { r: clamp(r, 0, 255), g: clamp(g, 0, 255), b: clamp(b, 0, 255), a };
|
|
38
|
+
}
|
|
39
|
+
function parseAlpha(raw) {
|
|
40
|
+
const pct = raw.endsWith('%');
|
|
41
|
+
const n = Number(pct ? raw.slice(0, -1) : raw);
|
|
42
|
+
if (Number.isNaN(n))
|
|
43
|
+
return null;
|
|
44
|
+
return clamp(pct ? n / 100 : n, 0, 1);
|
|
45
|
+
}
|
|
46
|
+
const round = (n, decimals) => Math.round(n * 10 ** decimals) / 10 ** decimals;
|
|
47
|
+
/** Opaco → `#rrggbb` (minúsculas, vía `hsv.rgbToHex`); con alpha → `rgba(r, g, b, a)`. */
|
|
48
|
+
export function formatColor({ r, g, b, a }) {
|
|
49
|
+
if (a >= 1)
|
|
50
|
+
return rgbToHex({ r, g, b });
|
|
51
|
+
return `rgba(${Math.round(r)}, ${Math.round(g)}, ${Math.round(b)}, ${round(a, 3)})`;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* El mismo color con alpha 1 (`#rrggbb`), para la mitad "sólida" del chip de
|
|
55
|
+
* un stop translúcido. Un color ilegible se devuelve tal cual.
|
|
56
|
+
*/
|
|
57
|
+
export function opaqueColor(color) {
|
|
58
|
+
const c = parseColor(color);
|
|
59
|
+
return c ? formatColor(Object.assign(Object.assign({}, c), { a: 1 })) : color;
|
|
60
|
+
}
|
|
61
|
+
const byPosition = (stops) => [...stops].sort((a, b) => a.position - b.position);
|
|
62
|
+
/**
|
|
63
|
+
* Color que tiene el degradado en `position`: mezcla lineal (sRGB, con alpha)
|
|
64
|
+
* entre las dos paradas que la rodean. Fuera del rango devuelve el color del
|
|
65
|
+
* extremo. Si alguna parada vecina no se puede parsear, devuelve el string de
|
|
66
|
+
* la parada más cercana tal cual (no inventa un color).
|
|
67
|
+
*/
|
|
68
|
+
export function interpolateStopColor(stops, position) {
|
|
69
|
+
if (stops.length === 0)
|
|
70
|
+
return 'rgba(0, 0, 0, 0)';
|
|
71
|
+
const sorted = byPosition(stops);
|
|
72
|
+
const p = clamp(position, 0, 100);
|
|
73
|
+
if (p <= sorted[0].position)
|
|
74
|
+
return sorted[0].color;
|
|
75
|
+
const last = sorted[sorted.length - 1];
|
|
76
|
+
if (p >= last.position)
|
|
77
|
+
return last.color;
|
|
78
|
+
let i = 1;
|
|
79
|
+
while (sorted[i].position < p)
|
|
80
|
+
i++;
|
|
81
|
+
const from = sorted[i - 1];
|
|
82
|
+
const to = sorted[i];
|
|
83
|
+
const span = to.position - from.position;
|
|
84
|
+
const t = span === 0 ? 0 : (p - from.position) / span;
|
|
85
|
+
const nearest = t < 0.5 ? from : to;
|
|
86
|
+
const c0 = parseColor(from.color);
|
|
87
|
+
const c1 = parseColor(to.color);
|
|
88
|
+
if (!c0 || !c1)
|
|
89
|
+
return nearest.color;
|
|
90
|
+
return formatColor({
|
|
91
|
+
r: c0.r + (c1.r - c0.r) * t,
|
|
92
|
+
g: c0.g + (c1.g - c0.g) * t,
|
|
93
|
+
b: c0.b + (c1.b - c0.b) * t,
|
|
94
|
+
a: c0.a + (c1.a - c0.a) * t,
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
/** `linear-gradient(to right, …)` con las paradas ordenadas; sin paradas → `transparent`. */
|
|
98
|
+
export function gradientCss(stops) {
|
|
99
|
+
if (stops.length === 0)
|
|
100
|
+
return 'transparent';
|
|
101
|
+
if (stops.length === 1) {
|
|
102
|
+
const { color } = stops[0];
|
|
103
|
+
return `linear-gradient(to right, ${color} 0%, ${color} 100%)`;
|
|
104
|
+
}
|
|
105
|
+
const parts = byPosition(stops).map((s) => `${s.color} ${clamp(s.position, 0, 100)}%`);
|
|
106
|
+
return `linear-gradient(to right, ${parts.join(', ')})`;
|
|
107
|
+
}
|
|
108
|
+
/** true si alguna parada tiene alpha < 1 (la barra necesita el damero debajo). */
|
|
109
|
+
export function hasTransparentStop(stops) {
|
|
110
|
+
return stops.some((s) => {
|
|
111
|
+
const c = parseColor(s.color);
|
|
112
|
+
return !!c && c.a < 1;
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Posición (0–100, entera) de un puntero sobre el track. `trackWidth` 0 (sin
|
|
117
|
+
* medir, display:none, jsdom) → 0, nunca NaN.
|
|
118
|
+
*/
|
|
119
|
+
export function positionFromPointer(clientX, trackLeft, trackWidth) {
|
|
120
|
+
if (trackWidth <= 0)
|
|
121
|
+
return 0;
|
|
122
|
+
return Math.round(clamp(((clientX - trackLeft) / trackWidth) * 100, 0, 100));
|
|
123
|
+
}
|
|
124
|
+
/** Paso de teclado: posición + delta, acotado a 0–100. */
|
|
125
|
+
export function stepPosition(position, delta) {
|
|
126
|
+
return clamp(position + delta, 0, 100);
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Swatch "claro" (necesita borde para no fundirse con el fondo): luminancia
|
|
130
|
+
* WCAG > 0,85 tras componer el alpha sobre blanco. Umbral distinto al
|
|
131
|
+
* `isLightColor` de `utils/color.ts` (0,4, pensado para elegir el color del
|
|
132
|
+
* texto), por eso vive aparte y no cambia aquel default.
|
|
133
|
+
*/
|
|
134
|
+
export function isLightSwatch(color) {
|
|
135
|
+
const c = parseColor(color);
|
|
136
|
+
if (!c)
|
|
137
|
+
return false;
|
|
138
|
+
// Compone sobre blanco y mide directo sobre los canales (sin re-codificar a
|
|
139
|
+
// hex — fix I-6): `luminanceRgb` acepta decimales.
|
|
140
|
+
const over = (v) => v * c.a + 255 * (1 - c.a);
|
|
141
|
+
return luminanceRgb({ r: over(c.r), g: over(c.g), b: over(c.b) }) > 0.85;
|
|
142
|
+
}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conversiones puras HSV ⇄ RGB ⇄ HEX para el picker de color del editor
|
|
3
|
+
* (`co-color-area` + `co-color-slider`).
|
|
4
|
+
*
|
|
5
|
+
* Convención de rangos (la misma que exponen los componentes):
|
|
6
|
+
* h ∈ [0, 360) s ∈ [0, 100] v ∈ [0, 100] r/g/b ∈ [0, 255] a ∈ [0, 1]
|
|
7
|
+
*
|
|
8
|
+
* `hexToHsv` NO redondea: la ida y vuelta hex → hsv → hex solo es estable con
|
|
9
|
+
* los decimales (p.ej. #008ff0 es h=204.25, v=94.117…; redondeado a enteros
|
|
10
|
+
* vuelve como #0090f0). Quien muestre números redondea en la UI.
|
|
11
|
+
*
|
|
12
|
+
* Sin dependencias de DOM: corre en el proyecto `unit` (node) de vitest.
|
|
13
|
+
*/
|
|
14
|
+
/** Acota `n` a [min, max]. NaN cae a `min` para no propagar basura aguas abajo. */
|
|
15
|
+
export function clamp(n, min, max) {
|
|
16
|
+
if (Number.isNaN(n))
|
|
17
|
+
return min;
|
|
18
|
+
return Math.min(max, Math.max(min, n));
|
|
19
|
+
}
|
|
20
|
+
/** Normaliza un tono a [0, 360): 360 → 0, −120 → 240. */
|
|
21
|
+
function wrapHue(h) {
|
|
22
|
+
if (Number.isNaN(h))
|
|
23
|
+
return 0;
|
|
24
|
+
return ((h % 360) + 360) % 360;
|
|
25
|
+
}
|
|
26
|
+
/** HSV → RGB (0–255, redondeado). Algoritmo estándar por sectores de 60°. */
|
|
27
|
+
export function hsvToRgb({ h, s, v }) {
|
|
28
|
+
const hue = wrapHue(h);
|
|
29
|
+
const sat = clamp(s, 0, 100) / 100;
|
|
30
|
+
const val = clamp(v, 0, 100) / 100;
|
|
31
|
+
const c = val * sat;
|
|
32
|
+
const x = c * (1 - Math.abs(((hue / 60) % 2) - 1));
|
|
33
|
+
const m = val - c;
|
|
34
|
+
let r = 0;
|
|
35
|
+
let g = 0;
|
|
36
|
+
let b = 0;
|
|
37
|
+
if (hue < 60)
|
|
38
|
+
[r, g] = [c, x];
|
|
39
|
+
else if (hue < 120)
|
|
40
|
+
[r, g] = [x, c];
|
|
41
|
+
else if (hue < 180)
|
|
42
|
+
[g, b] = [c, x];
|
|
43
|
+
else if (hue < 240)
|
|
44
|
+
[g, b] = [x, c];
|
|
45
|
+
else if (hue < 300)
|
|
46
|
+
[r, b] = [x, c];
|
|
47
|
+
else
|
|
48
|
+
[r, b] = [c, x];
|
|
49
|
+
return {
|
|
50
|
+
r: Math.round((r + m) * 255),
|
|
51
|
+
g: Math.round((g + m) * 255),
|
|
52
|
+
b: Math.round((b + m) * 255),
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/** RGB (0–255) → HSV sin redondear. El gris devuelve h=0, s=0 (nunca NaN). */
|
|
56
|
+
export function rgbToHsv({ r, g, b }) {
|
|
57
|
+
const rr = clamp(r, 0, 255) / 255;
|
|
58
|
+
const gg = clamp(g, 0, 255) / 255;
|
|
59
|
+
const bb = clamp(b, 0, 255) / 255;
|
|
60
|
+
const max = Math.max(rr, gg, bb);
|
|
61
|
+
const min = Math.min(rr, gg, bb);
|
|
62
|
+
const d = max - min;
|
|
63
|
+
let h = 0;
|
|
64
|
+
if (d !== 0) {
|
|
65
|
+
if (max === rr)
|
|
66
|
+
h = 60 * (((gg - bb) / d) % 6);
|
|
67
|
+
else if (max === gg)
|
|
68
|
+
h = 60 * ((bb - rr) / d + 2);
|
|
69
|
+
else
|
|
70
|
+
h = 60 * ((rr - gg) / d + 4);
|
|
71
|
+
if (h < 0)
|
|
72
|
+
h += 360;
|
|
73
|
+
}
|
|
74
|
+
return { h, s: max === 0 ? 0 : (d / max) * 100, v: max * 100 };
|
|
75
|
+
}
|
|
76
|
+
const HEX_RE = /^#?([0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i;
|
|
77
|
+
/**
|
|
78
|
+
* `#rgb` / `#rgba` / `#rrggbb` / `#rrggbbaa` (con o sin `#`, cualquier caja)
|
|
79
|
+
* → RGB. `a` viene en 0–1 (1 cuando el hex no trae alpha). `null` si no es
|
|
80
|
+
* un hex. Es el ÚNICO parser de hex del picker: `gradientStops.parseColor`
|
|
81
|
+
* delega acá su rama hex (fix I-6).
|
|
82
|
+
*/
|
|
83
|
+
export function hexToRgb(hex) {
|
|
84
|
+
if (typeof hex !== 'string')
|
|
85
|
+
return null;
|
|
86
|
+
const m = HEX_RE.exec(hex.trim());
|
|
87
|
+
if (!m)
|
|
88
|
+
return null;
|
|
89
|
+
let h = m[1];
|
|
90
|
+
// Forma corta (#rgb / #rgba): cada dígito se duplica.
|
|
91
|
+
if (h.length <= 4)
|
|
92
|
+
h = h.split('').map((ch) => ch + ch).join('');
|
|
93
|
+
const int = (i) => parseInt(h.slice(i, i + 2), 16);
|
|
94
|
+
return {
|
|
95
|
+
r: int(0),
|
|
96
|
+
g: int(2),
|
|
97
|
+
b: int(4),
|
|
98
|
+
a: h.length === 8 ? int(6) / 255 : 1,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
/** RGB → `#rrggbb` en minúscula (el alpha, si viene, se omite). */
|
|
102
|
+
export function rgbToHex({ r, g, b }) {
|
|
103
|
+
const part = (n) => Math.round(clamp(n, 0, 255)).toString(16).padStart(2, '0');
|
|
104
|
+
return `#${part(r)}${part(g)}${part(b)}`;
|
|
105
|
+
}
|
|
106
|
+
/** HSV → `#rrggbb`. */
|
|
107
|
+
export function hsvToHex(hsv) {
|
|
108
|
+
return rgbToHex(hsvToRgb(hsv));
|
|
109
|
+
}
|
|
110
|
+
/** HEX → HSV sin redondear (ver nota de cabecera). `null` si no es un hex. */
|
|
111
|
+
export function hexToHsv(hex) {
|
|
112
|
+
const rgb = hexToRgb(hex);
|
|
113
|
+
return rgb ? rgbToHsv(rgb) : null;
|
|
114
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Diccionario embebido de `co-kbd` para las etiquetas de texto de los
|
|
3
|
+
* modificadores en plataformas sin teclas dedicadas (Windows/Linux): sin
|
|
4
|
+
* los glifos de Mac (⌘/⇧/⌥/⌃) el modificador se rotula con texto.
|
|
5
|
+
*
|
|
6
|
+
* Mismo patrón que `fileI18n.ts`: un mapa por locale + un getter. A
|
|
7
|
+
* diferencia de `fileI18n`, acá el locale no llega tipado por componente —
|
|
8
|
+
* `co-kbd` expone un `locale?: string` opcional (BCP-47, p.ej. "es-CO") y
|
|
9
|
+
* este util lo resuelve al lenguaje soportado más cercano, igual que
|
|
10
|
+
* `langFromLocale` en `fileI18n.ts`.
|
|
11
|
+
*/
|
|
12
|
+
const DICT = {
|
|
13
|
+
es: { ctrl: 'Ctrl', shift: 'Shift', alt: 'Alt', win: 'Win' },
|
|
14
|
+
en: { ctrl: 'Ctrl', shift: 'Shift', alt: 'Alt', win: 'Win' },
|
|
15
|
+
pt: { ctrl: 'Ctrl', shift: 'Shift', alt: 'Alt', win: 'Win' },
|
|
16
|
+
};
|
|
17
|
+
/** Map any BCP-47 locale (e.g. "es-CO") to a supported language; fallback 'en'. */
|
|
18
|
+
export function langFromLocale(locale) {
|
|
19
|
+
const l = (locale || '').toLowerCase();
|
|
20
|
+
if (l.startsWith('es'))
|
|
21
|
+
return 'es';
|
|
22
|
+
if (l.startsWith('pt'))
|
|
23
|
+
return 'pt';
|
|
24
|
+
return 'en';
|
|
25
|
+
}
|
|
26
|
+
/** Resolve the built-in win-label strings for a locale. */
|
|
27
|
+
export function getKbdStrings(locale) {
|
|
28
|
+
return DICT[langFromLocale(locale)];
|
|
29
|
+
}
|
|
@@ -10,9 +10,15 @@
|
|
|
10
10
|
* Calculate top/left for a fixed-position panel relative to a trigger.
|
|
11
11
|
*/
|
|
12
12
|
export function computePosition(triggerRect, panelRect, options) {
|
|
13
|
+
var _a, _b;
|
|
13
14
|
const { offset, flip } = options;
|
|
14
15
|
const viewportH = window.innerHeight;
|
|
15
16
|
const viewportW = window.innerWidth;
|
|
17
|
+
const shift = (_a = options.shift) !== null && _a !== void 0 ? _a : 0;
|
|
18
|
+
// Task C10 (Fase 2 Cobalt): con `anchor`, TODA la matemática (flip incluido)
|
|
19
|
+
// se hace contra el rect del anchor en vez del trigger. Sin `anchorRect`,
|
|
20
|
+
// `referenceRect === triggerRect` — cero cambio de comportamiento.
|
|
21
|
+
const referenceRect = (_b = options.anchorRect) !== null && _b !== void 0 ? _b : triggerRect;
|
|
16
22
|
let placement = options.placement;
|
|
17
23
|
// Auto-flip if needed
|
|
18
24
|
if (flip) {
|
|
@@ -21,29 +27,29 @@ export function computePosition(triggerRect, panelRect, options) {
|
|
|
21
27
|
const isRight = placement.startsWith('right');
|
|
22
28
|
const isLeft = placement.startsWith('left');
|
|
23
29
|
if (isBottom) {
|
|
24
|
-
const spaceBelow = viewportH -
|
|
25
|
-
const spaceAbove =
|
|
30
|
+
const spaceBelow = viewportH - referenceRect.bottom - offset;
|
|
31
|
+
const spaceAbove = referenceRect.top - offset;
|
|
26
32
|
if (spaceBelow < panelRect.height && spaceAbove > spaceBelow) {
|
|
27
33
|
placement = placement.replace('bottom', 'top');
|
|
28
34
|
}
|
|
29
35
|
}
|
|
30
36
|
else if (isTop) {
|
|
31
|
-
const spaceAbove =
|
|
32
|
-
const spaceBelow = viewportH -
|
|
37
|
+
const spaceAbove = referenceRect.top - offset;
|
|
38
|
+
const spaceBelow = viewportH - referenceRect.bottom - offset;
|
|
33
39
|
if (spaceAbove < panelRect.height && spaceBelow > spaceAbove) {
|
|
34
40
|
placement = placement.replace('top', 'bottom');
|
|
35
41
|
}
|
|
36
42
|
}
|
|
37
43
|
else if (isRight) {
|
|
38
|
-
const spaceRight = viewportW -
|
|
39
|
-
const spaceLeft =
|
|
44
|
+
const spaceRight = viewportW - referenceRect.right - offset;
|
|
45
|
+
const spaceLeft = referenceRect.left - offset;
|
|
40
46
|
if (spaceRight < panelRect.width && spaceLeft > spaceRight) {
|
|
41
47
|
placement = placement.replace('right', 'left');
|
|
42
48
|
}
|
|
43
49
|
}
|
|
44
50
|
else if (isLeft) {
|
|
45
|
-
const spaceLeft =
|
|
46
|
-
const spaceRight = viewportW -
|
|
51
|
+
const spaceLeft = referenceRect.left - offset;
|
|
52
|
+
const spaceRight = viewportW - referenceRect.right - offset;
|
|
47
53
|
if (spaceLeft < panelRect.width && spaceRight > spaceLeft) {
|
|
48
54
|
placement = placement.replace('left', 'right');
|
|
49
55
|
}
|
|
@@ -58,29 +64,33 @@ export function computePosition(triggerRect, panelRect, options) {
|
|
|
58
64
|
const isHorizontal = isRight || isLeft;
|
|
59
65
|
if (isHorizontal) {
|
|
60
66
|
if (isRight)
|
|
61
|
-
left =
|
|
67
|
+
left = referenceRect.right + offset;
|
|
62
68
|
else
|
|
63
|
-
left =
|
|
69
|
+
left = referenceRect.left - panelRect.width - offset;
|
|
64
70
|
const align = placement.split('-')[1] || 'center';
|
|
65
71
|
if (align === 'start')
|
|
66
|
-
top =
|
|
72
|
+
top = referenceRect.top;
|
|
67
73
|
else if (align === 'end')
|
|
68
|
-
top =
|
|
74
|
+
top = referenceRect.bottom - panelRect.height;
|
|
69
75
|
else
|
|
70
|
-
top =
|
|
76
|
+
top = referenceRect.top + (referenceRect.height - panelRect.height) / 2;
|
|
77
|
+
// Eje cruzado de un placement horizontal (left*/right*) es vertical.
|
|
78
|
+
top += shift;
|
|
71
79
|
}
|
|
72
80
|
else {
|
|
73
81
|
if (isTop)
|
|
74
|
-
top =
|
|
82
|
+
top = referenceRect.top - panelRect.height - offset;
|
|
75
83
|
else
|
|
76
|
-
top =
|
|
84
|
+
top = referenceRect.bottom + offset;
|
|
77
85
|
const align = placement.split('-')[1] || 'center';
|
|
78
86
|
if (align === 'start')
|
|
79
|
-
left =
|
|
87
|
+
left = referenceRect.left;
|
|
80
88
|
else if (align === 'end')
|
|
81
|
-
left =
|
|
89
|
+
left = referenceRect.right - panelRect.width;
|
|
82
90
|
else
|
|
83
|
-
left =
|
|
91
|
+
left = referenceRect.left + (referenceRect.width - panelRect.width) / 2;
|
|
92
|
+
// Eje cruzado de un placement vertical (top*/bottom*) es horizontal.
|
|
93
|
+
left += shift;
|
|
84
94
|
}
|
|
85
95
|
// Clamp to viewport edges (4px margin)
|
|
86
96
|
if (left < 4)
|
|
@@ -209,3 +219,19 @@ export function findScrollParents(start) {
|
|
|
209
219
|
}
|
|
210
220
|
return out;
|
|
211
221
|
}
|
|
222
|
+
/**
|
|
223
|
+
* ¿El ancla (trigger) se ve todavía? Tiene que tener caja y cortar el viewport Y
|
|
224
|
+
* cada uno de sus scrollers (`clipRects`, del más cercano al más lejano — lo que
|
|
225
|
+
* devuelve `findScrollParents`, medido). Basta con que UNO la recorte entera para
|
|
226
|
+
* que no se vea: el kebab de una card que el scroll de su columna sacó por arriba
|
|
227
|
+
* sigue dentro del viewport, pero ya no es visible.
|
|
228
|
+
*
|
|
229
|
+
* Asomada en un borde cuenta como visible: el panel todavía tiene de qué colgar.
|
|
230
|
+
*/
|
|
231
|
+
export function isAnchorVisible(anchor, clipRects) {
|
|
232
|
+
if (!anchor.width && !anchor.height)
|
|
233
|
+
return false;
|
|
234
|
+
const viewport = { top: 0, left: 0, bottom: window.innerHeight, right: window.innerWidth };
|
|
235
|
+
return [viewport, ...clipRects].every((clip) => anchor.bottom > clip.top && anchor.top < clip.bottom
|
|
236
|
+
&& anchor.right > clip.left && anchor.left < clip.right);
|
|
237
|
+
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cableado común de los componentes que montan un editor de cobalt-rich-text
|
|
3
|
+
* (co-rich-text-editor y co-document-editor). Extraído del RTE sin cambiar su
|
|
4
|
+
* comportamiento (spec contracts-v2-contract-editor §4.4; caracterización en
|
|
5
|
+
* co-rich-text-editor.characterization.spec.tsx). El menú flotante NO vive acá.
|
|
6
|
+
*/
|
|
7
|
+
/** `features` llega como objeto (propiedad JS) o como JSON (atributo HTML). */
|
|
8
|
+
export function parseFeatures(features) {
|
|
9
|
+
if (!features)
|
|
10
|
+
return undefined;
|
|
11
|
+
if (typeof features === 'string') {
|
|
12
|
+
try {
|
|
13
|
+
return JSON.parse(features);
|
|
14
|
+
}
|
|
15
|
+
catch (_a) {
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return features;
|
|
20
|
+
}
|
|
21
|
+
/** `value` puede ser JSON de ProseMirror o HTML; vacío = documento vacío. */
|
|
22
|
+
export function parseEditorValue(v) {
|
|
23
|
+
if (!v)
|
|
24
|
+
return '';
|
|
25
|
+
try {
|
|
26
|
+
return JSON.parse(v);
|
|
27
|
+
}
|
|
28
|
+
catch (_a) {
|
|
29
|
+
return v;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Guarda anti-eco: el padre suele devolver por `value` lo mismo que el editor
|
|
34
|
+
* acaba de emitir (en JSON o en HTML). Re-aplicarlo reinicia el editor y el
|
|
35
|
+
* cursor salta: se ignora.
|
|
36
|
+
*/
|
|
37
|
+
export class EchoGuard {
|
|
38
|
+
constructor() {
|
|
39
|
+
this.json = null;
|
|
40
|
+
this.html = '';
|
|
41
|
+
}
|
|
42
|
+
/** Tras aplicar un valor externo (o al montar): ese valor pasa a ser el "último". */
|
|
43
|
+
seed(v) {
|
|
44
|
+
this.json = v;
|
|
45
|
+
this.html = '';
|
|
46
|
+
}
|
|
47
|
+
markEmitted(out) {
|
|
48
|
+
this.json = out.json ? JSON.stringify(out.json) : null;
|
|
49
|
+
this.html = out.html;
|
|
50
|
+
}
|
|
51
|
+
isEcho(incoming) {
|
|
52
|
+
return incoming === this.json || incoming === this.html;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/** Aplica un `value` externo sin emitir update. */
|
|
56
|
+
export function applyExternalValue(editor, incoming) {
|
|
57
|
+
if (incoming === '' || incoming === null) {
|
|
58
|
+
editor.commands.clearContent(false);
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
editor.commands.setContent(parseEditorValue(incoming), { emitUpdate: false });
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/** Salida `{json, html, text}` del RTE. `sanitizeHtml` lo pone el componente (preset + features). */
|
|
65
|
+
export function buildOutput(editor, sanitizeHtml) {
|
|
66
|
+
const empty = editor.isEmpty;
|
|
67
|
+
return {
|
|
68
|
+
json: empty ? null : editor.getJSON(),
|
|
69
|
+
html: empty ? '' : sanitizeHtml(editor.getHTML()),
|
|
70
|
+
text: editor.getText(),
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
/** Pasa el editor activo y el handler de imágenes a `co-rich-text-toolbar`. */
|
|
74
|
+
export function syncToolbarEditor(toolbarEl, editor, imageUpload) {
|
|
75
|
+
if (toolbarEl && editor && toolbarEl.editor !== editor) {
|
|
76
|
+
toolbarEl.editor = editor;
|
|
77
|
+
}
|
|
78
|
+
if (toolbarEl) {
|
|
79
|
+
toolbarEl.imageUpload = imageUpload;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Marca cada contenedor de imagen con su modo (`data-image-layout`) para que
|
|
84
|
+
* apliquen las reglas del CSS, y limpia el posicionamiento absoluto heredado del
|
|
85
|
+
* modelo de página fija. El NodeView de resize nunca refleja cambios de attrs en
|
|
86
|
+
* el DOM: se lee del state y se escribe el atributo a mano.
|
|
87
|
+
*/
|
|
88
|
+
export function syncImageLayouts(editor) {
|
|
89
|
+
const view = editor.view;
|
|
90
|
+
editor.state.doc.descendants((node, pos) => {
|
|
91
|
+
var _a;
|
|
92
|
+
if (node.type.name !== 'image')
|
|
93
|
+
return true;
|
|
94
|
+
const dom = view.nodeDOM(pos);
|
|
95
|
+
const c = (((_a = dom === null || dom === void 0 ? void 0 : dom.closest) === null || _a === void 0 ? void 0 : _a.call(dom, '[data-resize-container]')) || dom);
|
|
96
|
+
if (!c)
|
|
97
|
+
return true;
|
|
98
|
+
const layout = node.attrs.imageLayout || 'inline';
|
|
99
|
+
c.dataset.imageLayout = layout;
|
|
100
|
+
c.style.position = '';
|
|
101
|
+
c.style.left = '';
|
|
102
|
+
c.style.top = '';
|
|
103
|
+
c.style.zIndex = '';
|
|
104
|
+
// El NodeView de resize fija `display: inline-flex` inline, que le gana al
|
|
105
|
+
// `display: block` del CSS en `center` / `full-width` (2026-09-17).
|
|
106
|
+
c.style.display = layout === 'center' || layout === 'full-width' ? '' : 'inline-flex';
|
|
107
|
+
return true;
|
|
108
|
+
});
|
|
109
|
+
}
|