@prolibu-suite/cobalt-core 0.9.6 → 0.10.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/custom-elements.json +1125 -89
- package/dist/cjs/co-accordion.cjs.entry.js +5 -5
- package/dist/cjs/co-action-bar.cjs.entry.js +2 -2
- package/dist/cjs/co-app-shell.cjs.entry.js +4 -4
- package/dist/cjs/co-audio-player.cjs.entry.js +83 -13
- package/dist/cjs/co-autocomplete.cjs.entry.js +2 -2
- package/dist/cjs/co-avatar-group.cjs.entry.js +1 -1
- package/dist/cjs/co-avatar.cjs.entry.js +72 -0
- package/dist/cjs/co-badge.cjs.entry.js +11 -3
- package/dist/cjs/co-bottom-sheet.cjs.entry.js +1 -1
- package/dist/cjs/co-breadcrumb-item.cjs.entry.js +1 -1
- package/dist/cjs/co-breadcrumb.cjs.entry.js +1 -1
- package/dist/cjs/co-button-group.cjs.entry.js +1 -1
- package/dist/cjs/co-button.cjs.entry.js +2 -2
- package/dist/cjs/co-calendar-month_2.cjs.entry.js +55 -20
- package/dist/cjs/co-calendar_3.cjs.entry.js +27 -15
- package/dist/cjs/co-card.cjs.entry.js +1 -1
- package/dist/cjs/co-carousel-item.cjs.entry.js +1 -1
- package/dist/cjs/co-carousel.cjs.entry.js +2 -2
- package/dist/cjs/co-checkbox-group.cjs.entry.js +2 -2
- package/dist/cjs/co-checkbox.cjs.entry.js +6 -6
- package/dist/cjs/co-chip_2.cjs.entry.js +68 -13
- package/dist/cjs/co-color-picker.cjs.entry.js +1078 -27
- package/dist/cjs/co-column-picker.cjs.entry.js +3 -3
- package/dist/cjs/co-combobox.cjs.entry.js +2 -2
- package/dist/cjs/co-command-search.cjs.entry.js +1 -1
- package/dist/cjs/co-data-table-pagination.cjs.entry.js +5 -5
- package/dist/cjs/co-data-table.cjs.entry.js +83 -5
- package/dist/cjs/co-date-picker.cjs.entry.js +3 -3
- package/dist/cjs/co-date-range-picker.cjs.entry.js +3 -3
- package/dist/cjs/co-date-range.cjs.entry.js +2 -2
- package/dist/cjs/co-date-time-picker.cjs.entry.js +101 -130
- 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 +4 -4
- package/dist/cjs/co-empty-state.cjs.entry.js +4 -4
- package/dist/cjs/co-event-calendar.cjs.entry.js +4 -4
- package/dist/cjs/co-event-popover.cjs.entry.js +3 -3
- package/dist/cjs/co-fab.cjs.entry.js +3 -3
- package/dist/cjs/co-file-field.cjs.entry.js +102 -106
- package/dist/cjs/co-file-type-tile.cjs.entry.js +3 -3
- package/dist/cjs/co-helper-text.cjs.entry.js +3 -3
- package/dist/cjs/co-icon-button.cjs.entry.js +6 -6
- package/dist/cjs/co-icon.cjs.entry.js +3 -3
- package/dist/cjs/co-input.cjs.entry.js +32 -6
- package/dist/cjs/co-json-field.cjs.entry.js +5 -5
- package/dist/cjs/co-lightbox.cjs.entry.js +204 -21
- 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 +2 -2
- package/dist/cjs/co-menu-item.cjs.entry.js +85 -4
- package/dist/cjs/co-menu.cjs.entry.js +2 -2
- package/dist/cjs/co-modal.cjs.entry.js +10 -4
- package/dist/cjs/co-navbar.cjs.entry.js +4 -4
- package/dist/cjs/co-number-field.cjs.entry.js +272 -9
- package/dist/cjs/co-overlay.cjs.entry.js +6 -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 +58 -21
- 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 +47 -3
- package/dist/cjs/co-radio-group.cjs.entry.js +1 -1
- package/dist/cjs/co-radio.cjs.entry.js +4 -4
- package/dist/cjs/co-rating.cjs.entry.js +4 -4
- package/dist/cjs/co-ref-field.cjs.entry.js +104 -13
- package/dist/cjs/co-rich-text-editor.cjs.entry.js +11 -8
- package/dist/cjs/co-rich-text-toolbar.cjs.entry.js +7 -3
- package/dist/cjs/co-rich-text-viewer.cjs.entry.js +4 -3
- package/dist/cjs/co-row.cjs.entry.js +3 -3
- package/dist/cjs/co-segmented-bar.cjs.entry.js +1 -1
- package/dist/cjs/co-select.cjs.entry.js +6 -6
- package/dist/cjs/co-separator.cjs.entry.js +2 -2
- package/dist/cjs/co-sidebar-nav.cjs.entry.js +2 -2
- package/dist/cjs/co-sidebar.cjs.entry.js +3 -3
- package/dist/cjs/co-slider.cjs.entry.js +3 -3
- package/dist/cjs/co-switch.cjs.entry.js +6 -6
- package/dist/cjs/co-tab-group.cjs.entry.js +3 -3
- package/dist/cjs/co-tab.cjs.entry.js +3 -3
- package/dist/cjs/co-tags-field.cjs.entry.js +8 -8
- package/dist/cjs/co-textarea.cjs.entry.js +6 -6
- package/dist/cjs/co-time-field.cjs.entry.js +325 -0
- package/dist/cjs/co-toast.cjs.entry.js +2 -2
- package/dist/cjs/co-toggle-button-group.cjs.entry.js +4 -4
- package/dist/cjs/co-toggle-button.cjs.entry.js +4 -4
- package/dist/cjs/{co-avatar_2.cjs.entry.js → co-tooltip.cjs.entry.js} +48 -84
- package/dist/cjs/co-transfer-list.cjs.entry.js +1 -1
- package/dist/cjs/co-video.cjs.entry.js +32 -7
- package/dist/cjs/cobalt.cjs.js +2 -2
- package/dist/cjs/color-CML2Cfdh.js +142 -0
- package/dist/cjs/{dateI18n-wblvKRq_.js → dateI18n-BK2qHqoC.js} +36 -0
- package/dist/cjs/{fieldChip-BLzo9MEV.js → fieldChip-B6YIGU1V.js} +1 -1
- package/dist/cjs/fileI18n-6sdbKvo6.js +88 -0
- package/dist/cjs/{index-DFZ5YhIT.js → index-BYwrR87Z.js} +28 -10
- package/dist/cjs/{index-DK-2Lzmf.js → index-MDAnKsze.js} +35 -27
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{positioning-DCj_AJ2T.js → positioning-CyatXeT_.js} +32 -13
- package/dist/cjs/{requiredMark-C1xcrzSZ.js → requiredMark-D-t-IPN0.js} +1 -1
- package/dist/cjs/{toolbar-config-BQfWTW6P.js → toolbar-config-BSGas-Wl.js} +10 -0
- package/dist/cobalt/cobalt.css +1 -1
- package/dist/cobalt/cobalt.esm.js +1 -1
- package/dist/cobalt/{p-bfc2a849.entry.js → p-000a15b8.entry.js} +1 -1
- package/dist/cobalt/{p-f83b48fd.entry.js → p-011dc80b.entry.js} +1 -1
- package/dist/cobalt/{p-316c62c0.entry.js → p-0678c797.entry.js} +1 -1
- package/dist/cobalt/{p-43bd298d.entry.js → p-08e42e00.entry.js} +1 -1
- package/dist/cobalt/{p-0e91e5c4.entry.js → p-148d4aa6.entry.js} +1 -1
- package/dist/cobalt/{p-07d570a6.entry.js → p-16954cea.entry.js} +1 -1
- package/dist/cobalt/{p-d40a465f.entry.js → p-16f8cee6.entry.js} +1 -1
- package/dist/cobalt/{p-85a61e28.entry.js → p-17244412.entry.js} +1 -1
- package/dist/cobalt/{p-da546d08.entry.js → p-1dc55e43.entry.js} +1 -1
- package/dist/cobalt/p-239c5c5f.entry.js +1 -0
- package/dist/cobalt/{p-4c7e3984.entry.js → p-23ab0cc5.entry.js} +1 -1
- package/dist/cobalt/{p-fabe5fb2.entry.js → p-2636b7eb.entry.js} +1 -1
- package/dist/cobalt/{p-88a0659f.entry.js → p-27a7e549.entry.js} +1 -1
- package/dist/cobalt/{p-dca4cd5f.entry.js → p-28764b8e.entry.js} +1 -1
- package/dist/cobalt/{p-18d34b01.entry.js → p-290066ef.entry.js} +1 -1
- package/dist/cobalt/p-2a30c143.entry.js +1 -0
- package/dist/cobalt/p-2f0f3bb1.entry.js +1 -0
- package/dist/cobalt/{p-89e38c5e.entry.js → p-2f9cbbd5.entry.js} +1 -1
- package/dist/cobalt/p-2fba312b.entry.js +1 -0
- package/dist/cobalt/p-354d5089.entry.js +1 -0
- package/dist/cobalt/{p-60cb66f5.entry.js → p-37f5036b.entry.js} +1 -1
- package/dist/cobalt/{p-ac91259e.entry.js → p-383a998e.entry.js} +1 -1
- package/dist/cobalt/{p-ef5e1167.entry.js → p-3c4f7026.entry.js} +1 -1
- package/dist/cobalt/p-410bee4d.entry.js +1 -0
- package/dist/cobalt/p-416795f5.entry.js +1 -0
- package/dist/cobalt/{p-6795a258.entry.js → p-44c4e4a3.entry.js} +1 -1
- package/dist/cobalt/{p-4b083da4.entry.js → p-44ea675f.entry.js} +1 -1
- package/dist/cobalt/{p-2828ecf6.entry.js → p-4592ca00.entry.js} +1 -1
- package/dist/cobalt/{p-342e1da4.entry.js → p-4d65e713.entry.js} +1 -1
- package/dist/cobalt/p-56551580.entry.js +1 -0
- package/dist/cobalt/p-58137c9e.entry.js +1 -0
- package/dist/cobalt/{p-4f754c9a.entry.js → p-58d9b650.entry.js} +1 -1
- package/dist/cobalt/p-59963937.entry.js +1 -0
- package/dist/cobalt/p-5a3e4c81.entry.js +1 -0
- package/dist/cobalt/p-5adf117c.entry.js +1 -0
- package/dist/cobalt/{p-23b3ff3f.entry.js → p-5ca394b1.entry.js} +1 -1
- package/dist/cobalt/p-5e4973a6.entry.js +1 -0
- package/dist/cobalt/{p-2d329ac8.entry.js → p-623cc195.entry.js} +1 -1
- package/dist/cobalt/{p-8e667eb6.entry.js → p-66b11b38.entry.js} +1 -1
- package/dist/cobalt/{p-7e53e9c8.entry.js → p-6c82a892.entry.js} +1 -1
- package/dist/cobalt/{p-a6357340.entry.js → p-76249983.entry.js} +1 -1
- package/dist/cobalt/{p-568cfe8d.entry.js → p-789c4b3e.entry.js} +1 -1
- package/dist/cobalt/p-7e8e6907.entry.js +1 -0
- package/dist/cobalt/{p-a9b29cc2.entry.js → p-826ee074.entry.js} +1 -1
- package/dist/cobalt/{p-1c68bc41.entry.js → p-8471abe2.entry.js} +1 -1
- package/dist/cobalt/p-8f2199ff.entry.js +1 -0
- package/dist/cobalt/{p-c8dba82f.entry.js → p-91e73a92.entry.js} +1 -1
- package/dist/cobalt/p-9246e09c.entry.js +1 -0
- package/dist/cobalt/{p-c1e7fb32.entry.js → p-93fe45fd.entry.js} +1 -1
- package/dist/cobalt/{p-8f38e24d.entry.js → p-95cfcb34.entry.js} +1 -1
- package/dist/cobalt/{p-36197363.entry.js → p-996f4e38.entry.js} +1 -1
- package/dist/cobalt/{p-c5684c79.entry.js → p-9cf738ed.entry.js} +1 -1
- package/dist/cobalt/p-BRbgGqLw.js +1 -0
- package/dist/cobalt/{p-BL0sCfMH.js → p-Bryf3-Js.js} +1 -1
- package/dist/cobalt/p-DFHRS9cJ.js +1 -0
- package/dist/cobalt/{p-CrtiywTB.js → p-DH5lfRNj.js} +1 -1
- package/dist/{components/p-WeuPA9Rw.js → cobalt/p-DOL2zACE.js} +1 -1
- package/dist/cobalt/p-D_zA1Pv4.js +1 -0
- package/dist/cobalt/p-a2462d7a.entry.js +1 -0
- package/dist/cobalt/p-a325ea0c.entry.js +1 -0
- package/dist/cobalt/{p-fef5db54.entry.js → p-a32b20eb.entry.js} +1 -1
- package/dist/cobalt/p-aa9400bf.entry.js +1 -0
- package/dist/cobalt/{p-8eb485c8.entry.js → p-aaca6dab.entry.js} +1 -1
- package/dist/cobalt/p-b0c4fc71.entry.js +1 -0
- package/dist/cobalt/p-b5bba7fe.entry.js +1 -0
- package/dist/cobalt/{p-fb3a095b.entry.js → p-b821d9de.entry.js} +1 -1
- package/dist/cobalt/{p-b0319a2d.entry.js → p-b90d41e4.entry.js} +1 -1
- package/dist/cobalt/{p-ac466658.entry.js → p-be34e447.entry.js} +1 -1
- package/dist/cobalt/{p-1ddbc48b.entry.js → p-c124e82b.entry.js} +1 -1
- package/dist/cobalt/{p-95efe661.entry.js → p-c2ebf0ec.entry.js} +1 -1
- package/dist/cobalt/{p-54ae807d.entry.js → p-c465d619.entry.js} +1 -1
- package/dist/cobalt/p-c7d7d7f7.entry.js +1 -0
- package/dist/cobalt/{p-ab45d9bd.entry.js → p-c91d4fc6.entry.js} +1 -1
- package/dist/cobalt/{p-e5495539.entry.js → p-d0b2c418.entry.js} +1 -1
- package/dist/cobalt/{p-ce35c898.entry.js → p-d29bb0fa.entry.js} +1 -1
- package/dist/cobalt/{p-33ea4a90.entry.js → p-d3344187.entry.js} +1 -1
- package/dist/cobalt/p-d375014b.entry.js +1 -0
- package/dist/cobalt/p-d9d9e8ae.entry.js +1 -0
- package/dist/cobalt/{p-7c5e846a.entry.js → p-db805569.entry.js} +1 -1
- package/dist/cobalt/p-e371ec7a.entry.js +1 -0
- package/dist/cobalt/p-e3aae282.entry.js +1 -0
- package/dist/cobalt/{p-d15d3a97.entry.js → p-e4264532.entry.js} +1 -1
- package/dist/cobalt/{p-3f0eed59.entry.js → p-e49a564c.entry.js} +1 -1
- package/dist/cobalt/p-e8a2f993.entry.js +1 -0
- package/dist/cobalt/p-eadfd661.entry.js +1 -0
- package/dist/cobalt/p-eb82358d.entry.js +1 -0
- package/dist/cobalt/{p-2114c036.entry.js → p-eb8691f2.entry.js} +1 -1
- package/dist/cobalt/{p-e8878cf9.entry.js → p-ee2023da.entry.js} +1 -1
- package/dist/cobalt/p-ee9a623d.entry.js +1 -0
- package/dist/cobalt/p-ef301976.entry.js +1 -0
- package/dist/cobalt/p-f4e1c3c3.entry.js +1 -0
- package/dist/cobalt/{p-e364b8a5.entry.js → p-f57dffca.entry.js} +1 -1
- package/dist/cobalt/p-f6691108.entry.js +1 -0
- package/dist/cobalt/p-fMqVDypp.js +1 -0
- package/dist/cobalt/p-fb2d1144.entry.js +1 -0
- package/dist/cobalt/{p-0c463d9a.entry.js → p-fd150cc6.entry.js} +1 -1
- package/dist/cobalt/p-gKnOhsd2.js +1 -0
- package/dist/cobalt/p-jYd9gu_c.js +1 -0
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/co-accordion/co-accordion.css +2 -2
- package/dist/collection/components/co-accordion/co-accordion.js +4 -4
- package/dist/collection/components/co-action-bar/co-action-bar.css +9 -2
- package/dist/collection/components/co-app-shell/co-app-shell.css +107 -41
- package/dist/collection/components/co-app-shell/co-app-shell.js +2 -2
- package/dist/collection/components/co-audio-player/co-audio-player.js +138 -12
- 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-badge/co-badge.css +18 -0
- package/dist/collection/components/co-badge/co-badge.js +29 -1
- package/dist/collection/components/co-button/co-button.css +10 -7
- package/dist/collection/components/co-checkbox/co-checkbox.css +12 -3
- package/dist/collection/components/co-checkbox/co-checkbox.js +25 -6
- package/dist/collection/components/co-checkbox-group/co-checkbox-group.css +1 -3
- package/dist/collection/components/co-checkbox-group/co-checkbox-group.js +1 -1
- package/dist/collection/components/co-color-picker/co-color-picker.css +252 -5
- package/dist/collection/components/co-color-picker/co-color-picker.js +962 -15
- package/dist/collection/components/co-color-picker/presets.js +113 -15
- package/dist/collection/components/co-column-picker/co-column-picker.js +2 -2
- 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.css +63 -2
- package/dist/collection/components/co-data-table/co-data-table.js +59 -4
- package/dist/collection/components/co-data-table/headerTruncationLogic.js +34 -0
- package/dist/collection/components/co-data-table-pagination/co-data-table-pagination.js +4 -4
- package/dist/collection/components/co-date-field/co-date-field.js +4 -4
- package/dist/collection/components/co-date-range/co-date-range.js +1 -1
- package/dist/collection/components/co-date-range-picker/co-date-range-picker.js +2 -2
- package/dist/collection/components/co-date-time-picker/co-date-time-picker.css +128 -32
- package/dist/collection/components/co-date-time-picker/co-date-time-picker.js +142 -138
- package/dist/collection/components/co-drawer/co-drawer.css +99 -36
- package/dist/collection/components/co-drawer/co-drawer.js +19 -7
- package/dist/collection/components/co-drive-card/co-drive-card.js +1 -1
- package/dist/collection/components/co-drop-zone/co-drop-zone.js +1 -1
- package/dist/collection/components/co-emoji-picker/co-emoji-picker.js +2 -2
- package/dist/collection/components/co-empty-state/co-empty-state.css +28 -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.css +55 -2
- package/dist/collection/components/co-file-field/co-file-field.js +41 -13
- package/dist/collection/components/co-file-field/co-file-field.utils.js +51 -4
- 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 +40 -2
- package/dist/collection/components/co-icon-button/co-icon-button.js +43 -4
- package/dist/collection/components/co-input/co-input.css +33 -0
- package/dist/collection/components/co-input/co-input.js +42 -7
- package/dist/collection/components/co-json-field/co-json-field.js +3 -3
- package/dist/collection/components/co-lightbox/co-lightbox.css +23 -0
- package/dist/collection/components/co-lightbox/co-lightbox.js +209 -20
- 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-menu-item/co-menu-item.css +9 -0
- package/dist/collection/components/co-menu-item/co-menu-item.js +67 -3
- package/dist/collection/components/co-modal/co-modal.css +112 -37
- package/dist/collection/components/co-modal/co-modal.js +35 -2
- package/dist/collection/components/co-navbar/co-navbar.css +4 -2
- package/dist/collection/components/co-navbar/co-navbar.js +2 -2
- package/dist/collection/components/co-number-field/co-number-field.css +22 -0
- package/dist/collection/components/co-number-field/co-number-field.js +216 -9
- package/dist/collection/components/co-option-list/co-option-list.css +25 -4
- package/dist/collection/components/co-option-list/co-option-list.js +56 -4
- package/dist/collection/components/co-option-list/optionListLogic.js +31 -8
- package/dist/collection/components/co-overlay/co-overlay.js +5 -3
- 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.css +18 -3
- package/dist/collection/components/co-popover/co-popover.js +83 -20
- 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.css +40 -0
- package/dist/collection/components/co-ref-field/co-ref-field.js +207 -11
- package/dist/collection/components/co-rich-text-editor/co-rich-text-editor.css +14 -1
- package/dist/collection/components/co-rich-text-editor/co-rich-text-editor.js +9 -6
- package/dist/collection/components/co-rich-text-toolbar/co-rich-text-toolbar.js +7 -3
- package/dist/collection/components/co-rich-text-viewer/co-rich-text-viewer.js +3 -2
- 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 +24 -5
- package/dist/collection/components/co-separator/co-separator.js +1 -1
- package/dist/collection/components/co-sidebar/co-sidebar.js +2 -2
- package/dist/collection/components/co-sidebar-nav/co-sidebar-nav.css +2 -2
- package/dist/collection/components/co-sidebar-nav/co-sidebar-nav.js +1 -1
- package/dist/collection/components/co-skeleton/co-skeleton.css +18 -0
- package/dist/collection/components/co-skeleton/co-skeleton.js +83 -1
- package/dist/collection/components/co-slider/co-slider.js +2 -2
- package/dist/collection/components/co-switch/co-switch.css +3 -3
- 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-time-field/co-time-field.css +111 -0
- package/dist/collection/components/co-time-field/co-time-field.js +536 -0
- package/dist/collection/components/co-toast/co-toast.css +13 -7
- package/dist/collection/components/co-toast/co-toast.js +2 -2
- package/dist/collection/components/co-toggle-button/co-toggle-button.css +20 -14
- 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.css +14 -4
- package/dist/collection/components/co-toggle-button-group/co-toggle-button-group.js +2 -2
- package/dist/collection/components/co-tooltip/co-tooltip.css +12 -1
- package/dist/collection/components/co-tooltip/co-tooltip.js +49 -16
- package/dist/collection/components/co-transfer-list/co-transfer-list.js +1 -1
- package/dist/collection/components/co-video/co-video.js +34 -9
- package/dist/collection/utils/amountText.js +95 -0
- package/dist/collection/utils/color.js +109 -3
- package/dist/collection/utils/colorPickerI18n.js +55 -0
- package/dist/collection/utils/dateI18n.js +36 -0
- package/dist/collection/utils/fileI18n.js +3 -0
- package/dist/collection/utils/positioning.js +37 -4
- package/dist/collection/utils/submenu.js +35 -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-breadcrumb-item.js +1 -1
- package/dist/components/co-breadcrumb.js +1 -1
- package/dist/components/co-button.js +1 -1
- package/dist/components/co-calendar-month.js +1 -1
- package/dist/components/co-calendar-timegrid.js +1 -1
- package/dist/components/co-calendar.js +1 -1
- package/dist/components/co-carousel.js +1 -1
- package/dist/components/co-checkbox-group.js +1 -1
- package/dist/components/co-checkbox.js +1 -1
- package/dist/components/co-chip.js +1 -1
- package/dist/components/co-color-picker.js +1 -1
- package/dist/components/co-column-picker.js +1 -1
- package/dist/components/co-combobox.js +1 -1
- package/dist/components/co-command-search.js +1 -1
- package/dist/components/co-data-table-pagination.js +1 -1
- package/dist/components/co-data-table.js +1 -1
- package/dist/components/co-date-field.js +1 -1
- package/dist/components/co-date-picker.js +1 -1
- package/dist/components/co-date-range-picker.js +1 -1
- package/dist/components/co-date-range.js +1 -1
- package/dist/components/co-date-time-picker.js +1 -1
- package/dist/components/co-drawer.js +1 -1
- package/dist/components/co-drive-card.js +1 -1
- package/dist/components/co-drop-zone.js +1 -1
- package/dist/components/co-emoji-picker.js +1 -1
- package/dist/components/co-empty-state.js +1 -1
- package/dist/components/co-event-calendar.js +1 -1
- package/dist/components/co-event-popover.js +1 -1
- package/dist/components/co-fab.js +1 -1
- package/dist/components/co-file-field.js +1 -1
- package/dist/components/co-file-type-tile.js +1 -1
- package/dist/components/co-helper-text.js +1 -1
- package/dist/components/co-icon-button.js +1 -1
- package/dist/components/co-icon.js +1 -1
- package/dist/components/co-input.js +1 -1
- package/dist/components/co-json-field.js +1 -1
- package/dist/components/co-lightbox.js +1 -1
- package/dist/components/co-list-footer.js +1 -1
- package/dist/components/co-list-item.js +1 -1
- package/dist/components/co-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-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-time-field.d.ts +11 -0
- package/dist/components/co-time-field.js +1 -0
- package/dist/components/co-toast.js +1 -1
- package/dist/components/co-toggle-button-group.js +1 -1
- package/dist/components/co-toggle-button.js +1 -1
- package/dist/components/co-tooltip.js +1 -1
- package/dist/components/co-transfer-list.js +1 -1
- package/dist/components/co-video.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/p-7TncUlLN.js +1 -0
- package/dist/components/p-B4NCaKrR.js +1 -0
- package/dist/components/p-B9xitpGU.js +1 -0
- package/dist/components/{p-Dabi98BI.js → p-BGDqldEg.js} +1 -1
- package/dist/components/p-BRbgGqLw.js +1 -0
- package/dist/components/{p-BL0sCfMH.js → p-Bryf3-Js.js} +1 -1
- package/dist/components/{p-D6OUW6oW.js → p-CBTGN490.js} +1 -1
- package/dist/components/{p-P8wvwhM2.js → p-CFFDmGPS.js} +1 -1
- package/dist/components/p-CLsAo0-A.js +1 -0
- package/dist/components/{p-CA_JAK9s.js → p-CT2enQ6h.js} +1 -1
- package/dist/components/p-D2ldYZo1.js +1 -0
- package/dist/components/{p-CuZXTvDM.js → p-D3mVYO-G.js} +1 -1
- package/dist/components/p-DDV_bRcU.js +1 -0
- package/dist/components/p-DFHRS9cJ.js +1 -0
- package/dist/components/{p-Dj1EZ5qD.js → p-DNJAIVfI.js} +1 -1
- package/dist/{cobalt/p-WeuPA9Rw.js → components/p-DOL2zACE.js} +1 -1
- package/dist/components/p-DRP8D9ro.js +1 -0
- package/dist/components/p-DSnJWzQw.js +1 -0
- package/dist/components/p-DTi2O4O8.js +1 -0
- package/dist/components/p-De7w9k6_.js +1 -0
- package/dist/components/{p-D5EdMieb.js → p-DoHLTC0n.js} +1 -1
- package/dist/components/{p-Bxk96Zgc.js → p-Du_CgT5E.js} +1 -1
- package/dist/components/p-DxtNejr2.js +1 -0
- package/dist/components/{p-BHYtxTzM.js → p-HxVRXXXC.js} +1 -1
- package/dist/components/{p-B0Dc-I_C.js → p-NNxjElcX.js} +1 -1
- package/dist/components/p-gKnOhsd2.js +1 -0
- package/dist/components/p-jYd9gu_c.js +1 -0
- package/dist/components/{p-D4qzGifz.js → p-vby0ITbe.js} +1 -1
- package/dist/components/p-wjt4IAGZ.js +1 -0
- package/dist/components/p-zuhal3IZ.js +1 -0
- package/dist/esm/co-accordion.entry.js +5 -5
- package/dist/esm/co-action-bar.entry.js +2 -2
- package/dist/esm/co-app-shell.entry.js +4 -4
- package/dist/esm/co-audio-player.entry.js +83 -13
- package/dist/esm/co-autocomplete.entry.js +2 -2
- package/dist/esm/co-avatar-group.entry.js +1 -1
- package/dist/esm/co-avatar.entry.js +70 -0
- package/dist/esm/co-badge.entry.js +11 -3
- package/dist/esm/co-bottom-sheet.entry.js +1 -1
- package/dist/esm/co-breadcrumb-item.entry.js +1 -1
- package/dist/esm/co-breadcrumb.entry.js +1 -1
- package/dist/esm/co-button-group.entry.js +1 -1
- package/dist/esm/co-button.entry.js +2 -2
- package/dist/esm/co-calendar-month_2.entry.js +37 -2
- package/dist/esm/co-calendar_3.entry.js +27 -15
- package/dist/esm/co-card.entry.js +1 -1
- package/dist/esm/co-carousel-item.entry.js +1 -1
- package/dist/esm/co-carousel.entry.js +2 -2
- package/dist/esm/co-checkbox-group.entry.js +2 -2
- package/dist/esm/co-checkbox.entry.js +6 -6
- package/dist/esm/co-chip_2.entry.js +68 -13
- package/dist/esm/co-color-picker.entry.js +1078 -27
- package/dist/esm/co-column-picker.entry.js +3 -3
- package/dist/esm/co-combobox.entry.js +2 -2
- package/dist/esm/co-command-search.entry.js +1 -1
- package/dist/esm/co-data-table-pagination.entry.js +5 -5
- package/dist/esm/co-data-table.entry.js +83 -5
- package/dist/esm/co-date-picker.entry.js +3 -3
- package/dist/esm/co-date-range-picker.entry.js +3 -3
- package/dist/esm/co-date-range.entry.js +2 -2
- package/dist/esm/co-date-time-picker.entry.js +101 -130
- 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 +4 -4
- package/dist/esm/co-empty-state.entry.js +4 -4
- package/dist/esm/co-event-calendar.entry.js +4 -4
- package/dist/esm/co-event-popover.entry.js +3 -3
- package/dist/esm/co-fab.entry.js +3 -3
- package/dist/esm/co-file-field.entry.js +95 -99
- package/dist/esm/co-file-type-tile.entry.js +3 -3
- package/dist/esm/co-helper-text.entry.js +3 -3
- package/dist/esm/co-icon-button.entry.js +6 -6
- package/dist/esm/co-icon.entry.js +3 -3
- package/dist/esm/co-input.entry.js +32 -6
- package/dist/esm/co-json-field.entry.js +5 -5
- package/dist/esm/co-lightbox.entry.js +204 -21
- 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 +2 -2
- package/dist/esm/co-menu-item.entry.js +85 -4
- package/dist/esm/co-menu.entry.js +2 -2
- package/dist/esm/co-modal.entry.js +10 -4
- package/dist/esm/co-navbar.entry.js +4 -4
- package/dist/esm/co-number-field.entry.js +272 -9
- package/dist/esm/co-overlay.entry.js +6 -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 +58 -21
- 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 +47 -3
- package/dist/esm/co-radio-group.entry.js +1 -1
- package/dist/esm/co-radio.entry.js +4 -4
- package/dist/esm/co-rating.entry.js +4 -4
- package/dist/esm/co-ref-field.entry.js +104 -13
- package/dist/esm/co-rich-text-editor.entry.js +11 -8
- package/dist/esm/co-rich-text-toolbar.entry.js +7 -3
- package/dist/esm/co-rich-text-viewer.entry.js +4 -3
- package/dist/esm/co-row.entry.js +3 -3
- package/dist/esm/co-segmented-bar.entry.js +1 -1
- package/dist/esm/co-select.entry.js +6 -6
- package/dist/esm/co-separator.entry.js +2 -2
- package/dist/esm/co-sidebar-nav.entry.js +2 -2
- package/dist/esm/co-sidebar.entry.js +3 -3
- package/dist/esm/co-slider.entry.js +3 -3
- package/dist/esm/co-switch.entry.js +6 -6
- package/dist/esm/co-tab-group.entry.js +3 -3
- package/dist/esm/co-tab.entry.js +3 -3
- package/dist/esm/co-tags-field.entry.js +8 -8
- package/dist/esm/co-textarea.entry.js +6 -6
- package/dist/esm/co-time-field.entry.js +323 -0
- package/dist/esm/co-toast.entry.js +2 -2
- package/dist/esm/co-toggle-button-group.entry.js +4 -4
- package/dist/esm/co-toggle-button.entry.js +4 -4
- package/dist/esm/{co-avatar_2.entry.js → co-tooltip.entry.js} +49 -84
- package/dist/esm/co-transfer-list.entry.js +1 -1
- package/dist/esm/co-video.entry.js +32 -7
- package/dist/esm/cobalt.js +3 -3
- package/dist/esm/color-BRbgGqLw.js +136 -0
- package/dist/esm/{dateI18n-CnNpoKwg.js → dateI18n-jYd9gu_c.js} +36 -0
- package/dist/esm/{fieldChip-DsAfq1e0.js → fieldChip-uyggU8VV.js} +1 -1
- package/dist/esm/fileI18n-gKnOhsd2.js +84 -0
- package/dist/esm/{index-RuXxdKzC.js → index-68iUQp5j.js} +28 -10
- package/dist/esm/{index-CrtiywTB.js → index-DH5lfRNj.js} +35 -27
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{positioning-BMdapAL8.js → positioning-DFHRS9cJ.js} +32 -13
- package/dist/esm/{requiredMark-DCD-ZA51.js → requiredMark-BCJUuZvC.js} +1 -1
- package/dist/esm/{toolbar-config-WeuPA9Rw.js → toolbar-config-DOL2zACE.js} +10 -0
- package/dist/types/components/co-accordion/co-accordion.d.ts +6 -0
- package/dist/types/components/co-audio-player/co-audio-player.d.ts +25 -0
- package/dist/types/components/co-badge/co-badge.d.ts +7 -0
- package/dist/types/components/co-checkbox/co-checkbox.d.ts +5 -1
- package/dist/types/components/co-color-picker/co-color-picker.d.ts +360 -4
- package/dist/types/components/co-color-picker/presets.d.ts +107 -4
- package/dist/types/components/co-data-table/co-data-table.d.ts +15 -0
- package/dist/types/components/co-data-table/headerTruncationLogic.d.ts +24 -0
- package/dist/types/components/co-date-time-picker/co-date-time-picker.d.ts +43 -21
- package/dist/types/components/co-drawer/co-drawer.d.ts +4 -3
- package/dist/types/components/co-file-field/co-file-field.d.ts +14 -0
- package/dist/types/components/co-file-field/co-file-field.utils.d.ts +18 -1
- package/dist/types/components/co-icon-button/co-icon-button.d.ts +9 -0
- package/dist/types/components/co-input/co-input.d.ts +9 -1
- package/dist/types/components/co-lightbox/co-lightbox.d.ts +60 -4
- package/dist/types/components/co-menu-item/co-menu-item.d.ts +16 -0
- package/dist/types/components/co-modal/co-modal.d.ts +10 -0
- package/dist/types/components/co-number-field/co-number-field.d.ts +42 -1
- package/dist/types/components/co-option-list/co-option-list.d.ts +16 -0
- package/dist/types/components/co-option-list/optionListLogic.d.ts +23 -6
- package/dist/types/components/co-overlay/co-overlay.d.ts +4 -2
- package/dist/types/components/co-popover/co-popover.d.ts +16 -0
- package/dist/types/components/co-ref-field/co-ref-field.d.ts +38 -0
- package/dist/types/components/co-rich-text-toolbar/co-rich-text-toolbar.d.ts +1 -1
- package/dist/types/components/co-select/co-select.d.ts +6 -0
- package/dist/types/components/co-skeleton/co-skeleton.d.ts +13 -0
- package/dist/types/components/co-time-field/co-time-field.d.ts +60 -0
- package/dist/types/components/co-tooltip/co-tooltip.d.ts +5 -0
- package/dist/types/components/co-video/co-video.d.ts +4 -0
- package/dist/types/components.d.ts +530 -90
- package/dist/types/utils/amountText.d.ts +34 -0
- package/dist/types/utils/color.d.ts +44 -1
- package/dist/types/utils/colorPickerI18n.d.ts +26 -0
- package/dist/types/utils/dateI18n.d.ts +12 -0
- package/dist/types/utils/fileI18n.d.ts +1 -0
- package/dist/types/utils/positioning.d.ts +10 -0
- package/dist/types/utils/submenu.d.ts +44 -0
- package/package.json +3 -3
- package/dist/cjs/color-YhUkm10t.js +0 -32
- package/dist/cjs/time-LBHtzLHe.js +0 -42
- package/dist/cobalt/p-07904986.entry.js +0 -1
- package/dist/cobalt/p-09799193.entry.js +0 -1
- package/dist/cobalt/p-17ae943c.entry.js +0 -1
- package/dist/cobalt/p-23a103a0.entry.js +0 -1
- package/dist/cobalt/p-2f88d151.entry.js +0 -1
- package/dist/cobalt/p-3495fda1.entry.js +0 -1
- package/dist/cobalt/p-409f28bb.entry.js +0 -1
- package/dist/cobalt/p-682b3313.entry.js +0 -1
- package/dist/cobalt/p-6bf814f9.entry.js +0 -1
- package/dist/cobalt/p-7532c739.entry.js +0 -1
- package/dist/cobalt/p-76420ac1.entry.js +0 -1
- package/dist/cobalt/p-7c88163e.entry.js +0 -1
- package/dist/cobalt/p-7cf4b4ae.entry.js +0 -1
- package/dist/cobalt/p-7ea87b75.entry.js +0 -1
- package/dist/cobalt/p-8183f56f.entry.js +0 -1
- package/dist/cobalt/p-8345b25f.entry.js +0 -1
- package/dist/cobalt/p-93c68029.entry.js +0 -1
- package/dist/cobalt/p-983af614.entry.js +0 -1
- package/dist/cobalt/p-BG4WRR22.js +0 -1
- package/dist/cobalt/p-BMdapAL8.js +0 -1
- package/dist/cobalt/p-CF8OB_TM.js +0 -1
- package/dist/cobalt/p-CnNpoKwg.js +0 -1
- package/dist/cobalt/p-T4la7ly_.js +0 -1
- package/dist/cobalt/p-a2d31248.entry.js +0 -1
- package/dist/cobalt/p-a6b5cadd.entry.js +0 -1
- package/dist/cobalt/p-a8c64cc3.entry.js +0 -1
- package/dist/cobalt/p-b8581787.entry.js +0 -1
- package/dist/cobalt/p-bcedbd73.entry.js +0 -1
- package/dist/cobalt/p-da18b5f4.entry.js +0 -1
- package/dist/cobalt/p-dea43204.entry.js +0 -1
- package/dist/cobalt/p-dfcf667d.entry.js +0 -1
- package/dist/cobalt/p-dfd25f1d.entry.js +0 -1
- package/dist/cobalt/p-e6882ddd.entry.js +0 -1
- package/dist/cobalt/p-e84eda2e.entry.js +0 -1
- package/dist/cobalt/p-f25967fb.entry.js +0 -1
- package/dist/cobalt/p-f5f1b463.entry.js +0 -1
- package/dist/cobalt/p-fd39f410.entry.js +0 -1
- package/dist/cobalt/p-mAGnZXRn.js +0 -1
- package/dist/components/p-BMdapAL8.js +0 -1
- package/dist/components/p-BTQEg3UO.js +0 -1
- package/dist/components/p-Bbny3WUc.js +0 -1
- package/dist/components/p-Bz0QZqnB.js +0 -1
- package/dist/components/p-CF8OB_TM.js +0 -1
- package/dist/components/p-CR0izsJC.js +0 -1
- package/dist/components/p-CnNpoKwg.js +0 -1
- package/dist/components/p-DI1ek0EB.js +0 -1
- package/dist/components/p-DP0bbhfN.js +0 -1
- package/dist/components/p-D_9BRkj6.js +0 -1
- package/dist/components/p-DbipMAyT.js +0 -1
- package/dist/components/p-DgUBcJIS.js +0 -1
- package/dist/components/p-DolCkNsL.js +0 -1
- package/dist/components/p-hfGFsvaD.js +0 -1
- package/dist/esm/color-BG4WRR22.js +0 -30
- package/dist/esm/time-CF8OB_TM.js +0 -37
|
@@ -1,3 +1,88 @@
|
|
|
1
|
+
/* squircle-surface.css — receta ÚNICA de superficie squircle (co-app-shell,
|
|
2
|
+
co-drawer, co-modal). Se @import-a desde el CSS del componente como PRIMER
|
|
3
|
+
statement (Stencil inlinea @import relativos; precedente co-select.css:3) y
|
|
4
|
+
el tsx agrega las clases. Spec: prolibu-front-v2/docs/superpowers/specs/
|
|
5
|
+
2026-09-02-suite-v2-intel-perf-remediation-design.md §7 (E1, E5).
|
|
6
|
+
|
|
7
|
+
Variables que declara CADA consumidor sobre el elemento (o un ancestro):
|
|
8
|
+
--co-sq-r radio de esquina
|
|
9
|
+
--co-sq-shadow box-shadow (rama Chromium ≥139, sigue el corner-shape)
|
|
10
|
+
--co-sq-drop-shadow filter drop-shadow (fallback Safari/Firefox)
|
|
11
|
+
Conversión entre ambas: drop-shadow(x y σ) ≡ box-shadow x y 2σ.
|
|
12
|
+
|
|
13
|
+
Clases:
|
|
14
|
+
.co-sq-elevation sombra que sigue la silueta squircle
|
|
15
|
+
.co-sq-clip recorte superelíptico SIN máscara
|
|
16
|
+
.co-sq-elevation-fallback SIEMPRE en un ancestro del .co-sq-clip: en el
|
|
17
|
+
fallback la sombra es un `filter`, y `filter` se
|
|
18
|
+
aplica antes que `mask` en el mismo elemento →
|
|
19
|
+
la máscara la recortaría.
|
|
20
|
+
|
|
21
|
+
Reglas: (1) el componente NO redeclara border-radius / overflow / filter /
|
|
22
|
+
mask / box-shadow en esos elementos (una redeclaración posterior le gana al
|
|
23
|
+
partial por cascada; guard squircle-surface-guard.test.ts); (2)
|
|
24
|
+
.co-sq-elevation y .co-sq-clip pueden ir en el MISMO elemento (co-modal) o
|
|
25
|
+
en padre/hijo (shell, drawer); (3) `contain: layout` NO va acá: lo declara
|
|
26
|
+
cada componente donde E2/E20 lo piden.
|
|
27
|
+
|
|
28
|
+
Las 4 rutas SVG son una superelipse de exponente 4 = `corner-shape: squircle`
|
|
29
|
+
(superellipse(2)): misma silueta, error máx 1e-4 — a 14 px de radio la
|
|
30
|
+
diferencia con un círculo es ≤1.87 px en la punta. Sin `+2px` anti-costura en
|
|
31
|
+
la rama Chromium: sin máscara no hay costura posible (historia del hack: nota
|
|
32
|
+
de memoria cobalt-squircle-mask-seam). */
|
|
33
|
+
|
|
34
|
+
.co-sq-elevation {
|
|
35
|
+
border-radius: var(--co-sq-r);
|
|
36
|
+
corner-shape: squircle;
|
|
37
|
+
box-shadow: var(--co-sq-shadow);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.co-sq-clip {
|
|
41
|
+
overflow: hidden;
|
|
42
|
+
border-radius: var(--co-sq-r);
|
|
43
|
+
corner-shape: squircle;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/* F2 (E1): Safari/Firefox = píxel-idéntico a la receta anterior (filter
|
|
47
|
+
drop-shadow en el ancestro + máscara de 6 capas en el clip). */
|
|
48
|
+
@supports not (corner-shape: squircle) {
|
|
49
|
+
.co-sq-elevation {
|
|
50
|
+
box-shadow: none;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.co-sq-elevation-fallback {
|
|
54
|
+
filter: var(--co-sq-drop-shadow);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/* Declarado DESPUÉS de .co-sq-elevation a propósito: cuando ambas clases van
|
|
58
|
+
en el mismo elemento (co-modal) gana el radius 0 y la máscara define la
|
|
59
|
+
forma. 4 esquinas + cruz de 2 barras (H full-width, V full-height); las
|
|
60
|
+
barras van `calc(... + 2px)` para solapar cada esquina ~1px y evitar la
|
|
61
|
+
costura sub-píxel que flickeaba con el zoom. */
|
|
62
|
+
.co-sq-clip {
|
|
63
|
+
border-radius: 0;
|
|
64
|
+
--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>");
|
|
65
|
+
--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>");
|
|
66
|
+
--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>");
|
|
67
|
+
--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>");
|
|
68
|
+
-webkit-mask:
|
|
69
|
+
var(--co-sq-tl) top left / var(--co-sq-r) var(--co-sq-r) no-repeat,
|
|
70
|
+
var(--co-sq-tr) top right / var(--co-sq-r) var(--co-sq-r) no-repeat,
|
|
71
|
+
var(--co-sq-bl) bottom left / var(--co-sq-r) var(--co-sq-r) no-repeat,
|
|
72
|
+
var(--co-sq-br) bottom right / var(--co-sq-r) var(--co-sq-r) no-repeat,
|
|
73
|
+
linear-gradient(#fff 0 0) center / 100% calc(100% - 2 * var(--co-sq-r) + 2px) no-repeat,
|
|
74
|
+
linear-gradient(#fff 0 0) center / calc(100% - 2 * var(--co-sq-r) + 2px) 100% no-repeat;
|
|
75
|
+
mask:
|
|
76
|
+
var(--co-sq-tl) top left / var(--co-sq-r) var(--co-sq-r) no-repeat,
|
|
77
|
+
var(--co-sq-tr) top right / var(--co-sq-r) var(--co-sq-r) no-repeat,
|
|
78
|
+
var(--co-sq-bl) bottom left / var(--co-sq-r) var(--co-sq-r) no-repeat,
|
|
79
|
+
var(--co-sq-br) bottom right / var(--co-sq-r) var(--co-sq-r) no-repeat,
|
|
80
|
+
linear-gradient(#fff 0 0) center / 100% calc(100% - 2 * var(--co-sq-r) + 2px) no-repeat,
|
|
81
|
+
linear-gradient(#fff 0 0) center / calc(100% - 2 * var(--co-sq-r) + 2px) 100% no-repeat;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
|
|
1
86
|
:host {
|
|
2
87
|
display: flex;
|
|
3
88
|
height: 100vh;
|
|
@@ -129,55 +214,36 @@
|
|
|
129
214
|
margin: var(--co-spacing-sm);
|
|
130
215
|
margin-left: 0;
|
|
131
216
|
min-height: 0;
|
|
132
|
-
/*
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
217
|
+
/* E2: containing block + stacking context para los `position: fixed`
|
|
218
|
+
slotteados (co-fab, co-action-bar centrada en la card, uploads de Drive).
|
|
219
|
+
Antes lo daba el `filter: drop-shadow` — que se fue al partial y solo
|
|
220
|
+
existe en el fallback — y sin esto se re-anclarían al viewport. El Host ya
|
|
221
|
+
es overflow:hidden y .main no scrollea, así que el overflow "ink" que
|
|
222
|
+
introduce contain no cambia nada. */
|
|
223
|
+
contain: layout;
|
|
224
|
+
/* Squircle: receta en global/squircle-surface.css — .main lleva
|
|
225
|
+
.co-sq-elevation (+ .co-sq-elevation-fallback), .main__card lleva
|
|
226
|
+
.co-sq-clip. Radio: --co-shell-r se queda como knob público (co-drawer.css
|
|
227
|
+
lo hereda por el flat tree del slot). */
|
|
141
228
|
--co-shell-r: var(--co-border-radius-md);
|
|
142
|
-
--co-sq-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
229
|
+
--co-sq-r: var(--co-shell-r);
|
|
230
|
+
/* Sombra: box-shadow (Chromium ≥139, sigue el corner-shape) / drop-shadow
|
|
231
|
+
(fallback). Overridables desde el host por custom property, NO por
|
|
232
|
+
::part(main){filter} (eso reinstala el render surface con dos blurs por
|
|
233
|
+
frame). Conversión: drop-shadow(x y σ) ≡ box-shadow x y 2σ. */
|
|
234
|
+
--co-sq-shadow: var(--co-app-shell-shadow, 0 1px 4px rgba(31, 28, 27, 0.06), 0 10px 56px rgba(31, 28, 27, 0.12));
|
|
235
|
+
--co-sq-drop-shadow: var(--co-app-shell-drop-shadow, drop-shadow(0 1px 2px rgba(31, 28, 27, 0.06)) drop-shadow(0 10px 28px rgba(31, 28, 27, 0.12)));
|
|
146
236
|
}
|
|
147
237
|
|
|
148
|
-
/* The visible card:
|
|
149
|
-
|
|
238
|
+
/* The visible card: el recorte squircle lo da .co-sq-clip (partial). No
|
|
239
|
+
redeclarar overflow / border-radius / mask acá: le ganarían al partial por
|
|
240
|
+
orden de cascada. (Sin glass top-rim: el 1px blanco se leía como una línea
|
|
241
|
+
sobre el navbar oscuro; el borde de la card lo define la sombra de .main.) */
|
|
150
242
|
.main__card {
|
|
151
243
|
flex: 1;
|
|
152
244
|
min-height: 0;
|
|
153
245
|
display: flex;
|
|
154
246
|
flex-direction: column;
|
|
155
|
-
overflow: hidden;
|
|
156
|
-
border-radius: 0; /* the mask defines the (smooth) shape */
|
|
157
|
-
/* (No glass top-rim: the 1px white highlight read as a distracting line on the
|
|
158
|
-
dark navbar. The card edge is defined by .main's drop-shadow instead.) */
|
|
159
|
-
/* Squircle via 4 corner pieces + a cross of 2 bars (H full-width, V full-height).
|
|
160
|
-
The bars are sized `calc(... + 2px)` so they OVERLAP each corner by ~1px on
|
|
161
|
-
every side: otherwise the bar↔corner edges abut exactly at x=r / y=r and the
|
|
162
|
-
fractional-pixel rounding (per device-pixel-ratio) leaves a <1px transparent
|
|
163
|
-
SEAM there. Because the navbar slotted on top is semi-transparent, that seam
|
|
164
|
-
read as a faint line that flickered in/out with browser zoom. The overlap
|
|
165
|
-
lands in the corners' already-opaque area, so the rounded shape is unchanged
|
|
166
|
-
(at most a sub-px nub at the very corner tip). */
|
|
167
|
-
-webkit-mask:
|
|
168
|
-
var(--co-sq-tl) top left / var(--co-shell-r) var(--co-shell-r) no-repeat,
|
|
169
|
-
var(--co-sq-tr) top right / var(--co-shell-r) var(--co-shell-r) no-repeat,
|
|
170
|
-
var(--co-sq-bl) bottom left / var(--co-shell-r) var(--co-shell-r) no-repeat,
|
|
171
|
-
var(--co-sq-br) bottom right / var(--co-shell-r) var(--co-shell-r) no-repeat,
|
|
172
|
-
linear-gradient(#fff 0 0) center / 100% calc(100% - 2 * var(--co-shell-r) + 2px) no-repeat,
|
|
173
|
-
linear-gradient(#fff 0 0) center / calc(100% - 2 * var(--co-shell-r) + 2px) 100% no-repeat;
|
|
174
|
-
mask:
|
|
175
|
-
var(--co-sq-tl) top left / var(--co-shell-r) var(--co-shell-r) no-repeat,
|
|
176
|
-
var(--co-sq-tr) top right / var(--co-shell-r) var(--co-shell-r) no-repeat,
|
|
177
|
-
var(--co-sq-bl) bottom left / var(--co-shell-r) var(--co-shell-r) no-repeat,
|
|
178
|
-
var(--co-sq-br) bottom right / var(--co-shell-r) var(--co-shell-r) no-repeat,
|
|
179
|
-
linear-gradient(#fff 0 0) center / 100% calc(100% - 2 * var(--co-shell-r) + 2px) no-repeat,
|
|
180
|
-
linear-gradient(#fff 0 0) center / calc(100% - 2 * var(--co-shell-r) + 2px) 100% no-repeat;
|
|
181
247
|
}
|
|
182
248
|
|
|
183
249
|
/* ─── Header ────────────────────────────────────────────────── */
|
|
@@ -16,10 +16,10 @@ export class CoAppShell {
|
|
|
16
16
|
this.contentCard = true;
|
|
17
17
|
}
|
|
18
18
|
render() {
|
|
19
|
-
return (h(Host, { key: '7a45ab21e3ad256e25f05df33ad827931532c34a' }, h("aside", { key: '5ca5469a35e630b4ab01be23cae46efc43cb1519', class: "sidebar", part: "sidebar" }, h("div", { key: 'f4243197b46e67b4d632aa8abad803b07f471bb2', class: "sidebar__header", part: "sidebar-header" }, h("slot", { key: 'b609c8272c05f7e4cbb2c8ae1ab0c24430541f84', name: "sidebar-header" })), h("div", { key: '72ca1118e1eeb6b5f3467c16c82dac60c4dc4042', class: "sidebar__body", part: "sidebar-body" }, h("slot", { key: '48c65d150a4836996cf7406f32142bcb86e545df', name: "sidebar" })), h("div", { key: 'be09567b81d7abae1738decfd30b9b7b6edb47f2', class: "sidebar__footer", part: "sidebar-footer" }, h("slot", { key: 'd202466aa14916d7fd3be163a615ce1156151150', name: "sidebar-footer" }))), h("div", { key: '
|
|
19
|
+
return (h(Host, { key: '7a45ab21e3ad256e25f05df33ad827931532c34a' }, h("aside", { key: '5ca5469a35e630b4ab01be23cae46efc43cb1519', class: "sidebar", part: "sidebar" }, h("div", { key: 'f4243197b46e67b4d632aa8abad803b07f471bb2', class: "sidebar__header", part: "sidebar-header" }, h("slot", { key: 'b609c8272c05f7e4cbb2c8ae1ab0c24430541f84', name: "sidebar-header" })), h("div", { key: '72ca1118e1eeb6b5f3467c16c82dac60c4dc4042', class: "sidebar__body", part: "sidebar-body" }, h("slot", { key: '48c65d150a4836996cf7406f32142bcb86e545df', name: "sidebar" })), h("div", { key: 'be09567b81d7abae1738decfd30b9b7b6edb47f2', class: "sidebar__footer", part: "sidebar-footer" }, h("slot", { key: 'd202466aa14916d7fd3be163a615ce1156151150', name: "sidebar-footer" }))), h("div", { key: 'e7d10070e45f3eec363c3206ba8858b55fae6270', class: "main co-sq-elevation co-sq-elevation-fallback", part: "main" }, h("div", { key: 'b3a78141a04b5592f20ce26a7da8a6e596c5a2bf', class: "main__card co-sq-clip", part: "card" }, h("header", { key: 'f9c8d6a6c42d143328d9062e49ab63904c7ba485', class: "main__header", part: "header" }, h("slot", { key: '42722bbc79a308258a89d43c0a9d7eafd0841b47', name: "navbar" })), h("main", { key: 'fd841d8a6010c4feb278ce6f7914591d145ad304', class: {
|
|
20
20
|
'main__content': true,
|
|
21
21
|
'main__content--card': this.contentCard,
|
|
22
|
-
}, part: "content" }, h("slot", { key: '
|
|
22
|
+
}, part: "content" }, h("slot", { key: '03c35d1fa1c9f849aa235e5afc940c7f919371a8' }))))));
|
|
23
23
|
}
|
|
24
24
|
static get is() { return "co-app-shell"; }
|
|
25
25
|
static get encapsulation() { return "shadow"; }
|
|
@@ -38,10 +38,22 @@ export class CoAudioPlayer {
|
|
|
38
38
|
// Bumped by every init(); an in-flight extractPeaks whose token no longer matches
|
|
39
39
|
// belongs to a superseded `src` and must not write peaks/duration.
|
|
40
40
|
this.loadToken = 0;
|
|
41
|
-
this.onMeta = () => { this.syncDuration(); };
|
|
42
|
-
|
|
41
|
+
this.onMeta = () => { this.syncDuration(); this.applyPendingSeek(); };
|
|
42
|
+
/**
|
|
43
|
+
* A seek asked for before the media had data. `<audio>` DROPS a `currentTime`
|
|
44
|
+
* write while `readyState` is HAVE_NOTHING, silently: with `preload="metadata"`
|
|
45
|
+
* and a clip never played, the very first jump (clicking a transcript line on
|
|
46
|
+
* a recording nobody opened yet) went nowhere. Kept here and applied as soon
|
|
47
|
+
* as the element can take it.
|
|
48
|
+
*/
|
|
49
|
+
this.pendingSeek = null;
|
|
50
|
+
this.onCanPlay = () => { this.isLoading = false; this.applyPendingSeek(); };
|
|
43
51
|
this.onWaiting = () => { this.isLoading = true; };
|
|
44
|
-
this.onTime = () => {
|
|
52
|
+
this.onTime = () => {
|
|
53
|
+
var _a;
|
|
54
|
+
this.currentTime = ((_a = this.audio) === null || _a === void 0 ? void 0 : _a.currentTime) || 0;
|
|
55
|
+
this.coTimeUpdate.emit({ currentTime: this.currentTime, duration: this.knownDuration });
|
|
56
|
+
};
|
|
45
57
|
this.onEnded = () => { this.isPlaying = false; this.currentTime = 0; this.coEnded.emit(); };
|
|
46
58
|
this.onErr = (e) => { this.isLoading = false; this.hasError = true; this.coError.emit(e); };
|
|
47
59
|
this.toggle = () => {
|
|
@@ -198,12 +210,26 @@ export class CoAudioPlayer {
|
|
|
198
210
|
this.isPlaying = false;
|
|
199
211
|
}
|
|
200
212
|
async extractPeaks(url, token) {
|
|
213
|
+
var _a;
|
|
201
214
|
let ctx;
|
|
202
215
|
try {
|
|
216
|
+
/**
|
|
217
|
+
* `OfflineAudioContext` FIRST, and a live `AudioContext` only as the
|
|
218
|
+
* fallback: decoding a waveform needs no audio OUTPUT, and a live context
|
|
219
|
+
* created before the user has interacted trips the browser's autoplay
|
|
220
|
+
* policy — "The AudioContext was not allowed to start. It must be resumed
|
|
221
|
+
* (or created) after a user gesture on the page", once per player. A page
|
|
222
|
+
* with 15 recordings logged it 15 times. The offline one has no output
|
|
223
|
+
* device, so the policy does not apply to it.
|
|
224
|
+
*
|
|
225
|
+
* Its arguments are placeholders: nothing is ever rendered through this
|
|
226
|
+
* context, it is only the host for `decodeAudioData`.
|
|
227
|
+
*/
|
|
228
|
+
const OfflineCtx = window.OfflineAudioContext || window.webkitOfflineAudioContext;
|
|
203
229
|
const Ctx = window.AudioContext || window.webkitAudioContext;
|
|
204
|
-
if (!Ctx || typeof fetch === 'undefined')
|
|
230
|
+
if ((!OfflineCtx && !Ctx) || typeof fetch === 'undefined')
|
|
205
231
|
return; // keep fallback
|
|
206
|
-
ctx = new Ctx();
|
|
232
|
+
ctx = OfflineCtx ? new OfflineCtx(1, 1, 44100) : new Ctx();
|
|
207
233
|
const buf = await (await fetch(url)).arrayBuffer();
|
|
208
234
|
const audioBuf = await ctx.decodeAudioData(buf);
|
|
209
235
|
if (token !== this.loadToken)
|
|
@@ -212,7 +238,7 @@ export class CoAudioPlayer {
|
|
|
212
238
|
this.decodedDuration = audioBuf.duration;
|
|
213
239
|
this.peaks = resamplePeaks(this.rawChannelData, this.effectiveBars);
|
|
214
240
|
}
|
|
215
|
-
catch (
|
|
241
|
+
catch (_b) {
|
|
216
242
|
if (token !== this.loadToken)
|
|
217
243
|
return;
|
|
218
244
|
// Undecodable (codec WebAudio can't handle, CORS, network): keep the
|
|
@@ -225,11 +251,13 @@ export class CoAudioPlayer {
|
|
|
225
251
|
finally {
|
|
226
252
|
// Always release the context. Chrome caps concurrent AudioContexts per
|
|
227
253
|
// document, so leaking one per failed decode would eventually stop every
|
|
228
|
-
// later player on the page from decoding at all.
|
|
254
|
+
// later player on the page from decoding at all. `close()` lives on
|
|
255
|
+
// AudioContext, not on every BaseAudioContext (an OfflineAudioContext
|
|
256
|
+
// needs no closing and may not implement it): optional call, not a cast.
|
|
229
257
|
try {
|
|
230
|
-
await (ctx === null || ctx === void 0 ? void 0 : ctx.close());
|
|
258
|
+
await ((_a = ctx === null || ctx === void 0 ? void 0 : ctx.close) === null || _a === void 0 ? void 0 : _a.call(ctx));
|
|
231
259
|
}
|
|
232
|
-
catch ( /* already closed */
|
|
260
|
+
catch ( /* already closed */_c) { /* already closed */ }
|
|
233
261
|
}
|
|
234
262
|
if (token === this.loadToken)
|
|
235
263
|
this.syncDuration();
|
|
@@ -244,6 +272,47 @@ export class CoAudioPlayer {
|
|
|
244
272
|
if (!Object.is(next, this.duration))
|
|
245
273
|
this.duration = next;
|
|
246
274
|
}
|
|
275
|
+
applyPendingSeek() {
|
|
276
|
+
if (this.pendingSeek == null || !this.audio)
|
|
277
|
+
return;
|
|
278
|
+
const target = this.pendingSeek;
|
|
279
|
+
this.pendingSeek = null;
|
|
280
|
+
this.audio.currentTime = target;
|
|
281
|
+
this.currentTime = this.audio.currentTime;
|
|
282
|
+
this.coTimeUpdate.emit({ currentTime: this.currentTime, duration: this.knownDuration });
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Move the playhead. Clamped to `[0, duration]`: `audio.currentTime` takes a
|
|
286
|
+
* restricted double and THROWS on a non-finite value, and a duration that is
|
|
287
|
+
* not known yet reads as 0 (see `knownDuration`).
|
|
288
|
+
*/
|
|
289
|
+
async seek(seconds) {
|
|
290
|
+
var _a;
|
|
291
|
+
if (!this.audio || !Number.isFinite(seconds))
|
|
292
|
+
return;
|
|
293
|
+
const total = this.knownDuration;
|
|
294
|
+
const target = total ? Math.max(0, Math.min(total, seconds)) : Math.max(0, seconds);
|
|
295
|
+
this.audio.currentTime = target;
|
|
296
|
+
// The element could not take it yet (no data): keep it for `loadedmetadata`.
|
|
297
|
+
// The readback is the only way to tell — the write throws nothing.
|
|
298
|
+
if (Math.abs(((_a = this.audio.currentTime) !== null && _a !== void 0 ? _a : 0) - target) > 0.05)
|
|
299
|
+
this.pendingSeek = target;
|
|
300
|
+
// Optimistic either way: the UI shows where playback is GOING, and the
|
|
301
|
+
// pending write lands on its own.
|
|
302
|
+
this.currentTime = target;
|
|
303
|
+
this.coTimeUpdate.emit({ currentTime: this.currentTime, duration: total });
|
|
304
|
+
}
|
|
305
|
+
/** Start playback if it is not already running (no-op on a failed load). */
|
|
306
|
+
async play() {
|
|
307
|
+
if (!this.audio || this.isPlaying || this.hasError)
|
|
308
|
+
return;
|
|
309
|
+
try {
|
|
310
|
+
await this.audio.play();
|
|
311
|
+
this.isPlaying = true;
|
|
312
|
+
this.coPlay.emit();
|
|
313
|
+
}
|
|
314
|
+
catch ( /* autoplay blocked or source not ready: the button still works */_a) { /* autoplay blocked or source not ready: the button still works */ }
|
|
315
|
+
}
|
|
247
316
|
async download() {
|
|
248
317
|
if (!this.src || typeof fetch === 'undefined')
|
|
249
318
|
return;
|
|
@@ -270,13 +339,13 @@ export class CoAudioPlayer {
|
|
|
270
339
|
// below `aria-valuenow` the moment playback advances. ARIA 1.2 makes valuemax
|
|
271
340
|
// optional for `slider`, so leaving it off while unknown is well-formed.
|
|
272
341
|
const ariaMax = total ? Math.floor(total) : undefined;
|
|
273
|
-
const bar = (hFrac, i, played = false) => (h("rect", { key: '
|
|
274
|
-
return (h("div", { key: '
|
|
342
|
+
const bar = (hFrac, i, played = false) => (h("rect", { key: '7cbeb92ef52ffc865077340d72bae11139ced551', x: i * UNIT, y: H / 2 - (hFrac * H) / 2, width: W, height: Math.max(hFrac * H, 2), rx: R, class: { 'co-audio-player__bar': true, 'co-audio-player__bar--played': played } }));
|
|
343
|
+
return (h("div", { key: '34078ed0540dc72c87644c3ae830b3a2ff43a99e', class: {
|
|
275
344
|
'co-audio-player': true,
|
|
276
345
|
'co-audio-player--compact': this.compact,
|
|
277
346
|
'co-audio-player--error': this.hasError,
|
|
278
347
|
'co-audio-player--playing': this.isPlaying,
|
|
279
|
-
}, part: "player" }, h("button", { key: '
|
|
348
|
+
}, part: "player" }, h("button", { key: '7f692d951704a6e101f77512967d4b206f985e18', type: "button", class: "co-audio-player__play", part: "play", "aria-label": this.hasError ? 'Audio no disponible' : this.isPlaying ? 'Pausar' : 'Reproducir', "aria-busy": this.isLoading ? 'true' : 'false', disabled: this.hasError || !this.src, onClick: this.toggle }, h("co-icon", { key: 'fdc0a0a0703189efe10bbc1b1182572d1120a347', name: this.hasError ? 'warning-circle' : this.isPlaying ? 'pause' : 'play', weight: "fill", size: this.compact ? 12 : 14 })), h("div", { key: '6842ce24993895bf70461a28eb837a0558d277d7', class: "co-audio-player__wave", part: "wave", role: "slider", tabindex: "0", "aria-label": "Progreso de reproducci\u00F3n", "aria-valuemin": 0, "aria-valuemax": ariaMax, "aria-valuenow": Math.floor(this.currentTime), ref: (el) => (this.waveEl = el), onClick: (e) => this.seekAt(e.clientX), onKeyDown: this.onWaveKey }, h("svg", { key: 'e75c5e1f78633194608758f43a47987bc28c2081', class: "co-audio-player__svg", viewBox: `0 0 ${vbW} ${H}`, preserveAspectRatio: "none", "aria-hidden": "true" }, this.peaks.map((hFrac, i) => bar(hFrac, i)), h("clipPath", { key: 'c4136dddad555e8b5ef09a81c38433cd2bf39d7c', id: "co-ap-clip" }, h("rect", { key: 'edb79083fbc7d225bd5668443fb6541fe77c8f9d', x: "0", y: "0", width: (pct / 100) * vbW, height: H })), h("g", { key: 'c91b8b285f53b9dc4f6110f9cb73b7f3f892fad6', "clip-path": "url(#co-ap-clip)" }, this.peaks.map((hFrac, i) => bar(hFrac, i, true))))), h("span", { key: '26af75ef91f36d432add06bb636c4d3194902b0a', class: "co-audio-player__time", part: "time" }, formatTime(this.currentTime), " / ", formatTime(this.duration)), !this.compact && (h("button", { key: 'a2093fc2d9c9a9c120e97e59f5e8b91467e1c20c', type: "button", class: "co-audio-player__speed", part: "speed", "aria-label": `Velocidad de reproducción ${this.playbackRate}x`, onClick: this.cycleSpeed }, this.playbackRate, "x")), !this.compact && !this.noDownload && (h("button", { key: '327336de6ad09adac5f8cba6e048b58bbef0008e', type: "button", class: "co-audio-player__dl", part: "download", "aria-label": "Descargar", onClick: () => this.download() }, h("co-icon", { key: '787738fea40ab74531c943f876e20acf6ceb54df', name: "download-simple", size: 14 })))));
|
|
280
349
|
}
|
|
281
350
|
static get is() { return "co-audio-player"; }
|
|
282
351
|
static get encapsulation() { return "shadow"; }
|
|
@@ -506,8 +575,65 @@ export class CoAudioPlayer {
|
|
|
506
575
|
"resolved": "unknown",
|
|
507
576
|
"references": {}
|
|
508
577
|
}
|
|
578
|
+
}, {
|
|
579
|
+
"method": "coTimeUpdate",
|
|
580
|
+
"name": "coTimeUpdate",
|
|
581
|
+
"bubbles": false,
|
|
582
|
+
"cancelable": true,
|
|
583
|
+
"composed": true,
|
|
584
|
+
"docs": {
|
|
585
|
+
"tags": [],
|
|
586
|
+
"text": "Playback position, on the `<audio>` element's own `timeupdate` cadence\n(~4\u00D7/s while playing, plus every seek). Exists so a host can follow the\nplayhead \u2014 a transcript highlighting the line being spoken, for one \u2014\nwithout reaching into this component's shadow DOM for its `<audio>`."
|
|
587
|
+
},
|
|
588
|
+
"complexType": {
|
|
589
|
+
"original": "{ currentTime: number; duration: number }",
|
|
590
|
+
"resolved": "{ currentTime: number; duration: number; }",
|
|
591
|
+
"references": {}
|
|
592
|
+
}
|
|
509
593
|
}];
|
|
510
594
|
}
|
|
595
|
+
static get methods() {
|
|
596
|
+
return {
|
|
597
|
+
"seek": {
|
|
598
|
+
"complexType": {
|
|
599
|
+
"signature": "(seconds: number) => Promise<void>",
|
|
600
|
+
"parameters": [{
|
|
601
|
+
"name": "seconds",
|
|
602
|
+
"type": "number",
|
|
603
|
+
"docs": ""
|
|
604
|
+
}],
|
|
605
|
+
"references": {
|
|
606
|
+
"Promise": {
|
|
607
|
+
"location": "global",
|
|
608
|
+
"id": "global::Promise"
|
|
609
|
+
}
|
|
610
|
+
},
|
|
611
|
+
"return": "Promise<void>"
|
|
612
|
+
},
|
|
613
|
+
"docs": {
|
|
614
|
+
"text": "Move the playhead. Clamped to `[0, duration]`: `audio.currentTime` takes a\nrestricted double and THROWS on a non-finite value, and a duration that is\nnot known yet reads as 0 (see `knownDuration`).",
|
|
615
|
+
"tags": []
|
|
616
|
+
}
|
|
617
|
+
},
|
|
618
|
+
"play": {
|
|
619
|
+
"complexType": {
|
|
620
|
+
"signature": "() => Promise<void>",
|
|
621
|
+
"parameters": [],
|
|
622
|
+
"references": {
|
|
623
|
+
"Promise": {
|
|
624
|
+
"location": "global",
|
|
625
|
+
"id": "global::Promise"
|
|
626
|
+
}
|
|
627
|
+
},
|
|
628
|
+
"return": "Promise<void>"
|
|
629
|
+
},
|
|
630
|
+
"docs": {
|
|
631
|
+
"text": "Start playback if it is not already running (no-op on a failed load).",
|
|
632
|
+
"tags": []
|
|
633
|
+
}
|
|
634
|
+
}
|
|
635
|
+
};
|
|
636
|
+
}
|
|
511
637
|
static get watchers() {
|
|
512
638
|
return [{
|
|
513
639
|
"propName": "src",
|
|
@@ -418,7 +418,7 @@ export class CoAutocomplete {
|
|
|
418
418
|
"references": {
|
|
419
419
|
"AutocompleteOption": {
|
|
420
420
|
"location": "local",
|
|
421
|
-
"path": "/Users/agox/worktrees/cobalt-
|
|
421
|
+
"path": "/Users/agox/worktrees/cobalt-release/packages/core/src/components/co-autocomplete/co-autocomplete.tsx",
|
|
422
422
|
"id": "src/components/co-autocomplete/co-autocomplete.tsx::AutocompleteOption"
|
|
423
423
|
}
|
|
424
424
|
}
|
|
@@ -87,7 +87,7 @@ export class CoAvatarGroup {
|
|
|
87
87
|
"references": {
|
|
88
88
|
"CoAvatarGroupItem": {
|
|
89
89
|
"location": "local",
|
|
90
|
-
"path": "/Users/agox/worktrees/cobalt-
|
|
90
|
+
"path": "/Users/agox/worktrees/cobalt-release/packages/core/src/components/co-avatar-group/co-avatar-group.tsx",
|
|
91
91
|
"id": "src/components/co-avatar-group/co-avatar-group.tsx::CoAvatarGroupItem"
|
|
92
92
|
}
|
|
93
93
|
}
|
|
@@ -20,3 +20,21 @@
|
|
|
20
20
|
.co-badge--error { background: var(--co-semantic-status-error); }
|
|
21
21
|
.co-badge--warning { background: var(--co-semantic-status-warning); }
|
|
22
22
|
.co-badge--info { background: var(--co-semantic-status-info); }
|
|
23
|
+
|
|
24
|
+
/* ─── POP DE ENTRADA (opt-in via prop `animated`) ────────────── */
|
|
25
|
+
.co-badge--animated {
|
|
26
|
+
animation: co-badge-pop var(--co-motion-duration-slower) var(--co-motion-ease-spring) both;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
@keyframes co-badge-pop {
|
|
30
|
+
from {
|
|
31
|
+
transform: scale(0);
|
|
32
|
+
opacity: 0;
|
|
33
|
+
filter: blur(var(--co-motion-blur-sm));
|
|
34
|
+
}
|
|
35
|
+
to {
|
|
36
|
+
transform: scale(1);
|
|
37
|
+
opacity: 1;
|
|
38
|
+
filter: none;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -8,12 +8,20 @@ export class CoBadge {
|
|
|
8
8
|
this.size = 'large';
|
|
9
9
|
/** Color — maps to semantic status tokens */
|
|
10
10
|
this.color = 'default';
|
|
11
|
+
/**
|
|
12
|
+
* Pop de entrada al montar (spring + blur). Opt-in: un badge estático no
|
|
13
|
+
* debe animar al render. El host activa `animated` solo donde el énfasis
|
|
14
|
+
* de entrada se desea; un remonte por `:key` re-popea — comportamiento
|
|
15
|
+
* aceptado, no una regresión.
|
|
16
|
+
*/
|
|
17
|
+
this.animated = false;
|
|
11
18
|
}
|
|
12
19
|
render() {
|
|
13
|
-
return (h("span", { key: '
|
|
20
|
+
return (h("span", { key: '18cea751b9be9ae4712f931ab11e00f87adb353a', class: {
|
|
14
21
|
'co-badge': true,
|
|
15
22
|
[`co-badge--${this.size}`]: true,
|
|
16
23
|
[`co-badge--${this.color}`]: true,
|
|
24
|
+
'co-badge--animated': this.animated,
|
|
17
25
|
}, part: "badge" }));
|
|
18
26
|
}
|
|
19
27
|
static get is() { return "co-badge"; }
|
|
@@ -69,6 +77,26 @@ export class CoBadge {
|
|
|
69
77
|
"reflect": false,
|
|
70
78
|
"attribute": "color",
|
|
71
79
|
"defaultValue": "'default'"
|
|
80
|
+
},
|
|
81
|
+
"animated": {
|
|
82
|
+
"type": "boolean",
|
|
83
|
+
"mutable": false,
|
|
84
|
+
"complexType": {
|
|
85
|
+
"original": "boolean",
|
|
86
|
+
"resolved": "boolean",
|
|
87
|
+
"references": {}
|
|
88
|
+
},
|
|
89
|
+
"required": false,
|
|
90
|
+
"optional": false,
|
|
91
|
+
"docs": {
|
|
92
|
+
"tags": [],
|
|
93
|
+
"text": "Pop de entrada al montar (spring + blur). Opt-in: un badge est\u00E1tico no\ndebe animar al render. El host activa `animated` solo donde el \u00E9nfasis\nde entrada se desea; un remonte por `:key` re-popea \u2014 comportamiento\naceptado, no una regresi\u00F3n."
|
|
94
|
+
},
|
|
95
|
+
"getter": false,
|
|
96
|
+
"setter": false,
|
|
97
|
+
"reflect": false,
|
|
98
|
+
"attribute": "animated",
|
|
99
|
+
"defaultValue": "false"
|
|
72
100
|
}
|
|
73
101
|
};
|
|
74
102
|
}
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
background var(--co-motion-duration-fast) var(--co-motion-ease-out),
|
|
28
28
|
transform var(--co-motion-duration-fast) var(--co-motion-ease-out);
|
|
29
29
|
box-sizing: border-box;
|
|
30
|
-
-webkit-backdrop-filter: blur(var(--co-glass-blur)) saturate(var(--co-glass-saturate));
|
|
31
|
-
|
|
30
|
+
-webkit-backdrop-filter: var(--co-glass-filter, blur(var(--co-glass-blur)) saturate(var(--co-glass-saturate)));
|
|
31
|
+
backdrop-filter: var(--co-glass-filter, blur(var(--co-glass-blur)) saturate(var(--co-glass-saturate)));
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
/* ─── VARIANTS ─────────────────────────────────────────────── */
|
|
@@ -41,10 +41,13 @@
|
|
|
41
41
|
color: var(--co-semantic-on-primary);
|
|
42
42
|
border-color: color-mix(in srgb, var(--co-semantic-on-primary) 28%, transparent);
|
|
43
43
|
}
|
|
44
|
+
/* Knobs (heredan a través del shadow, mismo mecanismo y nombres que
|
|
45
|
+
--co-icon-button-bg/-color/-border): un consumidor con spec propia cambia la
|
|
46
|
+
superficie de la variante clara SIN un ::part de color. Defaults = look del DS. */
|
|
44
47
|
.co-button--secondary {
|
|
45
|
-
background: color-mix(in srgb, var(--co-semantic-surface-secondary) 55%, transparent);
|
|
46
|
-
color: var(--co-semantic-on-secondary);
|
|
47
|
-
border-color: var(--co-semantic-border-subtle);
|
|
48
|
+
background: color-mix(in srgb, var(--co-button-bg, var(--co-semantic-surface-secondary)) 55%, transparent);
|
|
49
|
+
color: var(--co-button-color, var(--co-semantic-on-secondary));
|
|
50
|
+
border-color: var(--co-button-border, var(--co-semantic-border-subtle));
|
|
48
51
|
}
|
|
49
52
|
.co-button--stroke {
|
|
50
53
|
background: color-mix(in srgb, var(--co-semantic-surface-secondary) 25%, transparent);
|
|
@@ -139,8 +142,8 @@
|
|
|
139
142
|
}
|
|
140
143
|
.co-button--ghost:hover:not(:disabled) {
|
|
141
144
|
background: color-mix(in srgb, var(--co-semantic-surface-hover) 60%, transparent);
|
|
142
|
-
-webkit-backdrop-filter: blur(var(--co-glass-blur)) saturate(var(--co-glass-saturate));
|
|
143
|
-
|
|
145
|
+
-webkit-backdrop-filter: var(--co-glass-filter, blur(var(--co-glass-blur)) saturate(var(--co-glass-saturate)));
|
|
146
|
+
backdrop-filter: var(--co-glass-filter, blur(var(--co-glass-blur)) saturate(var(--co-glass-saturate)));
|
|
144
147
|
}
|
|
145
148
|
.co-button--danger:hover:not(:disabled),
|
|
146
149
|
.co-button--success:hover:not(:disabled) {
|
|
@@ -70,10 +70,14 @@
|
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
/* ─── UNCHECKED ─────────────────────────────────────────────── */
|
|
73
|
+
/* Sin backdrop-filter (D2, spec intel-perf §7 C3): un checkbox vive sobre un
|
|
74
|
+
fondo UNIFORME (fila blanca/hover/seleccionada, card kanban, form, isla) y
|
|
75
|
+
blur() de un color constante es la identidad; saturate(1.3) sobre neutros
|
|
76
|
+
queda sub-JND. Cada uno pagaba capa + render surface + read-back + máscara
|
|
77
|
+
redondeada (≈41 por datatable). La translucidez se queda (gratis: sigue el
|
|
78
|
+
tinte de la fila). Frost real solo en appearance="overlay", más abajo. */
|
|
73
79
|
.co-checkbox:not(.co-checkbox--checked) {
|
|
74
80
|
background: color-mix(in srgb, var(--co-semantic-surface-secondary) 35%, transparent);
|
|
75
|
-
-webkit-backdrop-filter: blur(var(--co-glass-blur)) saturate(var(--co-glass-saturate));
|
|
76
|
-
backdrop-filter: blur(var(--co-glass-blur)) saturate(var(--co-glass-saturate));
|
|
77
81
|
border: 1px solid color-mix(in srgb, var(--co-semantic-border-default) 75%, transparent);
|
|
78
82
|
}
|
|
79
83
|
|
|
@@ -117,11 +121,16 @@
|
|
|
117
121
|
border-radius: 6px;
|
|
118
122
|
}
|
|
119
123
|
|
|
120
|
-
/* Unchecked → frosted white chip with a hairline inset border
|
|
124
|
+
/* Unchecked → frosted white chip with a hairline inset border. El frost es
|
|
125
|
+
EXPLÍCITO acá (antes lo heredaba de la regla unchecked genérica, que ya no
|
|
126
|
+
lo trae): sobre un thumbnail de Drive SÍ hay imagen que esmerilar. Encadenado
|
|
127
|
+
a --co-glass-filter (none = opt-out / reduced-transparency). */
|
|
121
128
|
.co-checkbox--overlay:not(.co-checkbox--checked):not(.co-checkbox--indeterminate) {
|
|
122
129
|
background: rgba(255, 255, 255, 0.9);
|
|
123
130
|
box-shadow: inset 0 0 0 1px var(--co-color-opacity-negro-16, rgba(31, 28, 27, 0.16));
|
|
124
131
|
border: none;
|
|
132
|
+
-webkit-backdrop-filter: var(--co-glass-filter, blur(var(--co-glass-blur)) saturate(var(--co-glass-saturate)));
|
|
133
|
+
backdrop-filter: var(--co-glass-filter, blur(var(--co-glass-blur)) saturate(var(--co-glass-saturate)));
|
|
125
134
|
}
|
|
126
135
|
|
|
127
136
|
/* Checked / indeterminate → solid accent fill (overridable via the on-color prop) */
|