@duetds/components 8.3.0 → 8.3.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/hydrate/index.js +85 -41
- package/lib/cjs/duet-action-button.cjs.entry.js +1 -1
- package/lib/cjs/duet-alert.cjs.entry.js +1 -1
- package/lib/cjs/duet-badge.cjs.entry.js +1 -1
- package/lib/cjs/duet-banner.cjs.entry.js +7 -6
- package/lib/cjs/duet-breadcrumb.cjs.entry.js +1 -1
- package/lib/cjs/duet-breadcrumbs.cjs.entry.js +1 -1
- package/lib/cjs/duet-button_2.cjs.entry.js +2 -2
- package/lib/cjs/duet-callout.cjs.entry.js +5 -4
- package/lib/cjs/duet-caption_4.cjs.entry.js +4 -5
- package/lib/cjs/duet-card.cjs.entry.js +4 -3
- package/lib/cjs/duet-checkbox.cjs.entry.js +1 -1
- package/lib/cjs/duet-checkmark.cjs.entry.js +1 -1
- package/lib/cjs/duet-chip.cjs.entry.js +1 -1
- package/lib/cjs/duet-choice_2.cjs.entry.js +10 -10
- package/lib/cjs/duet-collapsible.cjs.entry.js +3 -3
- package/lib/cjs/duet-combobox.cjs.entry.js +1 -1
- package/lib/cjs/duet-contact-card.cjs.entry.js +1 -1
- package/lib/cjs/duet-cookie-consent.cjs.entry.js +1 -1
- package/lib/cjs/duet-date-picker.cjs.entry.js +5 -4
- package/lib/cjs/duet-divider_2.cjs.entry.js +1 -1
- package/lib/cjs/duet-editable-table_3.cjs.entry.js +1 -1
- package/lib/cjs/duet-empty-state.cjs.entry.js +1 -1
- package/lib/cjs/duet-fieldset.cjs.entry.js +3 -3
- package/lib/cjs/duet-file-chooser.cjs.entry.js +1 -1
- package/lib/cjs/duet-footer.cjs.entry.js +1 -1
- package/lib/cjs/duet-grid_2.cjs.entry.js +1 -1
- package/lib/cjs/duet-header_2.cjs.entry.js +1 -1
- package/lib/cjs/duet-hero.cjs.entry.js +9 -6
- package/lib/cjs/duet-icon.cjs.entry.js +1 -1
- package/lib/cjs/duet-input_2.cjs.entry.js +4 -3
- package/lib/cjs/duet-layout.cjs.entry.js +1 -1
- package/lib/cjs/duet-list_2.cjs.entry.js +1 -1
- package/lib/cjs/duet-menu-bar-button.cjs.entry.js +1 -1
- package/lib/cjs/duet-menu-bar-dropdown-link.cjs.entry.js +1 -1
- package/lib/cjs/duet-menu-bar-dropdown.cjs.entry.js +1 -1
- package/lib/cjs/duet-menu-bar-link.cjs.entry.js +1 -1
- package/lib/cjs/duet-menu-bar.cjs.entry.js +1 -1
- package/lib/cjs/duet-modal.cjs.entry.js +4 -4
- package/lib/cjs/duet-multiselect.cjs.entry.js +4 -3
- package/lib/cjs/duet-nav.cjs.entry.js +1 -1
- package/lib/cjs/duet-notification_2.cjs.entry.js +1 -1
- package/lib/cjs/duet-number-input.cjs.entry.js +4 -3
- package/lib/cjs/duet-page-heading.cjs.entry.js +1 -1
- package/lib/cjs/duet-pagination_2.cjs.entry.js +1 -1
- package/lib/cjs/duet-popup-menu-item.cjs.entry.js +1 -1
- package/lib/cjs/duet-popup-menu.cjs.entry.js +2 -2
- package/lib/cjs/duet-progress.cjs.entry.js +1 -1
- package/lib/cjs/duet-promo-card.cjs.entry.js +14 -9
- package/lib/cjs/duet-radio_2.cjs.entry.js +4 -3
- package/lib/cjs/duet-range-slider.cjs.entry.js +1 -1
- package/lib/cjs/duet-scrollable_3.cjs.entry.js +1 -1
- package/lib/cjs/duet-section-layout.cjs.entry.js +1 -1
- package/lib/cjs/duet-select.cjs.entry.js +4 -3
- package/lib/cjs/duet-shaped-image.cjs.entry.js +1 -1
- package/lib/cjs/duet-show-more.cjs.entry.js +1 -1
- package/lib/cjs/duet-slideout-lang.cjs.entry.js +1 -1
- package/lib/cjs/duet-slideout-link.cjs.entry.js +1 -1
- package/lib/cjs/duet-slideout-panel-dropdown.cjs.entry.js +1 -1
- package/lib/cjs/duet-slideout-panel.cjs.entry.js +4 -4
- package/lib/cjs/duet-slideout.cjs.entry.js +4 -4
- package/lib/cjs/duet-step_2.cjs.entry.js +1 -1
- package/lib/cjs/duet-submenu-bar-dropdown-link.cjs.entry.js +1 -1
- package/lib/cjs/duet-submenu-bar-dropdown.cjs.entry.js +1 -1
- package/lib/cjs/duet-submenu-bar-link.cjs.entry.js +1 -1
- package/lib/cjs/duet-submenu-bar.cjs.entry.js +1 -1
- package/lib/cjs/duet-textarea.cjs.entry.js +4 -3
- package/lib/cjs/duet-toggle.cjs.entry.js +1 -1
- package/lib/cjs/duet-toolbar-dropdown-link.cjs.entry.js +1 -1
- package/lib/cjs/duet-toolbar-dropdown.cjs.entry.js +1 -1
- package/lib/cjs/duet-toolbar-link.cjs.entry.js +1 -1
- package/lib/cjs/duet-toolbar.cjs.entry.js +1 -1
- package/lib/cjs/duet-tooltip-button_2.cjs.entry.js +2 -2
- package/lib/cjs/duet-tooltip.cjs.entry.js +2 -2
- package/lib/cjs/duet-tray.cjs.entry.js +1 -1
- package/lib/cjs/duet-upload-aria-status.cjs.entry.js +1 -1
- package/lib/cjs/duet-upload-item.cjs.entry.js +1 -1
- package/lib/cjs/duet-visually-hidden.cjs.entry.js +1 -1
- package/lib/cjs/duet.cjs.js +1 -1
- package/lib/cjs/{focus-utils-da780025.js → focus-utils-2d403f5e.js} +1 -1
- package/lib/cjs/{index-34b8e765.js → index-a515d5ff.js} +1 -1
- package/lib/cjs/loader.cjs.js +1 -1
- package/lib/cjs/slot-utils-0b8037ab.js +51 -0
- package/lib/collection/common/index.js +0 -1
- package/lib/collection/components/duet-banner/duet-banner.js +6 -5
- package/lib/collection/components/duet-button/duet-button.css +22 -0
- package/lib/collection/components/duet-callout/duet-callout.js +4 -3
- package/lib/collection/components/duet-card/duet-card.js +4 -3
- package/lib/collection/components/duet-choice/duet-choice.js +2 -1
- package/lib/collection/components/duet-choice-group/duet-choice-group.js +3 -2
- package/lib/collection/components/duet-collapsible/duet-collapsible.js +2 -1
- package/lib/collection/components/duet-date-picker/date-picker-input.js +1 -2
- package/lib/collection/components/duet-date-picker/duet-date-picker.js +2 -0
- package/lib/collection/components/duet-fieldset/duet-fieldset.js +1 -1
- package/lib/collection/components/duet-hero/duet-hero.a11y.e2e.js +4 -4
- package/lib/collection/components/duet-hero/duet-hero.js +8 -5
- package/lib/collection/components/duet-input/duet-input.js +3 -2
- package/lib/collection/components/duet-link/duet-link.js +3 -4
- package/lib/collection/components/duet-modal/duet-modal.js +2 -1
- package/lib/collection/components/duet-multiselect/duet-multiselect.js +3 -2
- package/lib/collection/components/duet-number-input/duet-number-input.js +3 -2
- package/lib/collection/components/duet-promo-card/duet-promo-card.css +10 -0
- package/lib/collection/components/duet-promo-card/duet-promo-card.js +13 -8
- package/lib/collection/components/duet-radio-group/duet-radio-group.js +3 -2
- package/lib/collection/components/duet-select/duet-select.js +3 -2
- package/lib/collection/components/duet-slideout/duet-slideout.js +1 -1
- package/lib/collection/components/duet-slideout-panel/duet-slideout-panel.js +1 -1
- package/lib/collection/components/duet-textarea/duet-textarea.js +3 -2
- package/lib/collection/components/duet-tooltip/duet-tooltip.js +1 -1
- package/lib/collection/utils/slot-utils.js +42 -11
- package/lib/dist-custom-elements/duet-action-button.js +1 -1
- package/lib/dist-custom-elements/duet-alert.js +1 -1
- package/lib/dist-custom-elements/duet-badge.js +1 -1
- package/lib/dist-custom-elements/duet-banner.js +9 -8
- package/lib/dist-custom-elements/duet-breadcrumb.js +3 -3
- package/lib/dist-custom-elements/duet-breadcrumbs.js +1 -1
- package/lib/dist-custom-elements/duet-button.js +1 -1
- package/lib/dist-custom-elements/duet-callout.js +6 -5
- package/lib/dist-custom-elements/duet-caption.js +1 -1
- package/lib/dist-custom-elements/duet-card.js +6 -5
- package/lib/dist-custom-elements/duet-checkbox.js +1 -1
- package/lib/dist-custom-elements/duet-checkmark.js +1 -1
- package/lib/dist-custom-elements/duet-chip.js +2 -2
- package/lib/dist-custom-elements/duet-choice-group.js +11 -10
- package/lib/dist-custom-elements/duet-choice.js +6 -6
- package/lib/dist-custom-elements/duet-collapsible.js +3 -3
- package/lib/dist-custom-elements/duet-combobox.js +2 -2
- package/lib/dist-custom-elements/duet-contact-card.js +8 -8
- package/lib/dist-custom-elements/duet-cookie-consent.js +6 -6
- package/lib/dist-custom-elements/duet-date-picker.js +15 -14
- package/lib/dist-custom-elements/duet-divider.js +1 -1
- package/lib/dist-custom-elements/duet-editable-table.js +7 -7
- package/lib/dist-custom-elements/duet-empty-state.js +1 -1
- package/lib/dist-custom-elements/duet-fieldset.js +1 -1
- package/lib/dist-custom-elements/duet-file-chooser.js +2 -2
- package/lib/dist-custom-elements/duet-footer.js +4 -4
- package/lib/dist-custom-elements/duet-grid-item.js +1 -1
- package/lib/dist-custom-elements/duet-grid.js +1 -1
- package/lib/dist-custom-elements/duet-header.js +8 -8
- package/lib/dist-custom-elements/duet-heading.js +1 -1
- package/lib/dist-custom-elements/duet-hero.js +17 -14
- package/lib/dist-custom-elements/duet-icon.js +1 -1
- package/lib/dist-custom-elements/duet-input.js +1 -1
- package/lib/dist-custom-elements/duet-label.js +1 -1
- package/lib/dist-custom-elements/duet-layout.js +1 -1
- package/lib/dist-custom-elements/duet-link.js +1 -1
- package/lib/dist-custom-elements/duet-list-item.js +1 -1
- package/lib/dist-custom-elements/duet-list.js +1 -1
- package/lib/dist-custom-elements/duet-logo.js +1 -1
- package/lib/dist-custom-elements/duet-menu-bar-button.js +2 -2
- package/lib/dist-custom-elements/duet-menu-bar-dropdown-link.js +2 -2
- package/lib/dist-custom-elements/duet-menu-bar-dropdown.js +2 -2
- package/lib/dist-custom-elements/duet-menu-bar-link.js +2 -2
- package/lib/dist-custom-elements/duet-menu-bar.js +2 -2
- package/lib/dist-custom-elements/duet-modal.js +8 -8
- package/lib/dist-custom-elements/duet-multiselect.js +12 -11
- package/lib/dist-custom-elements/duet-nav.js +1 -1
- package/lib/dist-custom-elements/duet-notification-drawer.js +4 -4
- package/lib/dist-custom-elements/duet-notification.js +2 -2
- package/lib/dist-custom-elements/duet-number-input.js +14 -13
- package/lib/dist-custom-elements/duet-page-heading.js +2 -2
- package/lib/dist-custom-elements/duet-pagination.js +13 -13
- package/lib/dist-custom-elements/duet-paragraph.js +1 -1
- package/lib/dist-custom-elements/duet-popup-menu-item.js +2 -2
- package/lib/dist-custom-elements/duet-popup-menu.js +1 -1
- package/lib/dist-custom-elements/duet-progress.js +1 -1
- package/lib/dist-custom-elements/duet-promo-card.js +16 -11
- package/lib/dist-custom-elements/duet-radio-group.js +11 -10
- package/lib/dist-custom-elements/duet-radio.js +1 -1
- package/lib/dist-custom-elements/duet-range-slider.js +2 -2
- package/lib/dist-custom-elements/duet-range-stepper.js +4 -4
- package/lib/dist-custom-elements/duet-scrollable.js +1 -1
- package/lib/dist-custom-elements/duet-section-layout.js +1 -1
- package/lib/dist-custom-elements/duet-select.js +1 -1
- package/lib/dist-custom-elements/duet-shaped-image.js +1 -1
- package/lib/dist-custom-elements/duet-show-more.js +5 -5
- package/lib/dist-custom-elements/duet-slideout-lang.js +2 -2
- package/lib/dist-custom-elements/duet-slideout-link.js +2 -2
- package/lib/dist-custom-elements/duet-slideout-panel-dropdown.js +2 -2
- package/lib/dist-custom-elements/duet-slideout-panel.js +3 -3
- package/lib/dist-custom-elements/duet-slideout.js +3 -3
- package/lib/dist-custom-elements/duet-spacer.js +1 -1
- package/lib/dist-custom-elements/duet-spinner.js +1 -1
- package/lib/dist-custom-elements/duet-step.js +4 -4
- package/lib/dist-custom-elements/duet-stepper.js +2 -2
- package/lib/dist-custom-elements/duet-submenu-bar-dropdown-link.js +2 -2
- package/lib/dist-custom-elements/duet-submenu-bar-dropdown.js +2 -2
- package/lib/dist-custom-elements/duet-submenu-bar-link.js +2 -2
- package/lib/dist-custom-elements/duet-submenu-bar.js +2 -2
- package/lib/dist-custom-elements/duet-tab-group.js +13 -13
- package/lib/dist-custom-elements/duet-tab.js +1 -1
- package/lib/dist-custom-elements/duet-table.js +1 -1
- package/lib/dist-custom-elements/duet-textarea.js +13 -12
- package/lib/dist-custom-elements/duet-toggle.js +2 -2
- package/lib/dist-custom-elements/duet-toolbar-dropdown-link.js +2 -2
- package/lib/dist-custom-elements/duet-toolbar-dropdown.js +2 -2
- package/lib/dist-custom-elements/duet-toolbar-link.js +2 -2
- package/lib/dist-custom-elements/duet-toolbar.js +1 -1
- package/lib/dist-custom-elements/duet-tooltip-button.js +1 -1
- package/lib/dist-custom-elements/duet-tooltip-popup.js +1 -1
- package/lib/dist-custom-elements/duet-tooltip.js +1 -1
- package/lib/dist-custom-elements/duet-tray.js +3 -3
- package/lib/dist-custom-elements/duet-upload-aria-status.js +1 -1
- package/lib/dist-custom-elements/duet-upload-item.js +1 -1
- package/lib/dist-custom-elements/duet-upload.js +18 -18
- package/lib/dist-custom-elements/duet-visually-hidden.js +1 -1
- package/lib/dist-custom-elements/index.js +1 -1
- package/lib/dist-custom-elements/{p-10c1d640.js → p-022cc9de.js} +1 -1
- package/lib/dist-custom-elements/{p-0d6e1f1b.js → p-033ffb95.js} +1 -1
- package/lib/dist-custom-elements/{p-997c1c72.js → p-13cbfdc6.js} +1 -1
- package/lib/dist-custom-elements/{p-41c5df58.js → p-15b43530.js} +2 -2
- package/lib/dist-custom-elements/{p-5df55152.js → p-3380c780.js} +1 -1
- package/lib/dist-custom-elements/{p-5b8774b6.js → p-33c43f27.js} +5 -5
- package/lib/dist-custom-elements/{p-3bcad21a.js → p-57d9241f.js} +3 -3
- package/lib/dist-custom-elements/{p-34fe2adb.js → p-57e61a09.js} +1 -1
- package/lib/dist-custom-elements/{p-e445c96b.js → p-6c8a44ea.js} +1 -1
- package/lib/dist-custom-elements/{p-a13cbd71.js → p-70fb72b8.js} +1 -1
- package/lib/dist-custom-elements/{p-ac4ee6ea.js → p-7385cfae.js} +2 -2
- package/lib/dist-custom-elements/p-796edee6.js +48 -0
- package/lib/dist-custom-elements/{p-363d74c3.js → p-7f8daa04.js} +3 -3
- package/lib/dist-custom-elements/{p-98ca74e0.js → p-82a9c4cc.js} +1 -1
- package/lib/dist-custom-elements/{p-7183d0e7.js → p-83c687c4.js} +10 -10
- package/lib/dist-custom-elements/{p-afe568e9.js → p-8500f1f3.js} +1 -1
- package/lib/dist-custom-elements/{p-96a8a294.js → p-85c51c36.js} +3 -3
- package/lib/dist-custom-elements/{p-5ccb7f41.js → p-89c8eef0.js} +6 -6
- package/lib/dist-custom-elements/{p-0233383b.js → p-89fa2387.js} +1 -1
- package/lib/dist-custom-elements/{p-a73804b7.js → p-8aacf8f2.js} +1 -1
- package/lib/dist-custom-elements/{p-2bc31f8b.js → p-92e8fec4.js} +1 -1
- package/lib/dist-custom-elements/{p-42da65d1.js → p-97144a49.js} +5 -6
- package/lib/dist-custom-elements/{p-8cd82767.js → p-99bfa47d.js} +1 -1
- package/lib/dist-custom-elements/{p-8a5c7cdf.js → p-99c2c6f3.js} +5 -5
- package/lib/dist-custom-elements/{p-7c44c302.js → p-a8d729e4.js} +1 -1
- package/lib/dist-custom-elements/{p-b24c3dc4.js → p-ba9d785a.js} +2 -2
- package/lib/dist-custom-elements/{p-2718851e.js → p-d84624d1.js} +1 -1
- package/lib/dist-custom-elements/{p-2c44fafc.js → p-da0965a5.js} +1 -1
- package/lib/dist-custom-elements/{p-60dcae4f.js → p-dd3202f3.js} +1 -1
- package/lib/dist-custom-elements/{p-d27e5b0d.js → p-de5298ac.js} +2 -2
- package/lib/dist-custom-elements/{p-b443af91.js → p-e8d8a5f1.js} +11 -10
- package/lib/dist-custom-elements/{p-cf2212cc.js → p-eb03dc27.js} +13 -12
- package/lib/dist-custom-elements/{p-73904865.js → p-eb30f749.js} +1 -1
- package/lib/dist-custom-elements/{p-e3d866c6.js → p-f1a37b7f.js} +5 -5
- package/lib/dist-custom-elements/{p-c7e3638d.js → p-fdafc7af.js} +1 -1
- package/lib/duet/duet.esm.js +1 -1
- package/lib/duet/duet.js +1 -1
- package/lib/duet/{p-2eb5153f.system.entry.js → p-03237a62.system.entry.js} +2 -2
- package/lib/duet/p-03c217ae.entry.js +4 -0
- package/lib/duet/p-03c3cf91.entry.js +4 -0
- package/lib/duet/{p-85c6a112.entry.js → p-05728995.entry.js} +1 -1
- package/lib/duet/{p-573ce757.system.entry.js → p-0600d0e8.system.entry.js} +1 -1
- package/lib/duet/{p-85b08ff2.system.entry.js → p-07adc606.system.entry.js} +1 -1
- package/lib/duet/{p-c9c43026.entry.js → p-0857e91c.entry.js} +1 -1
- package/lib/duet/{p-cff7873f.entry.js → p-0a28d72d.entry.js} +1 -1
- package/lib/duet/{p-2e3254e1.system.entry.js → p-0b4b179c.system.entry.js} +1 -1
- package/lib/duet/{p-8c08f362.system.entry.js → p-0cdc8487.system.entry.js} +1 -1
- package/lib/duet/{p-52a756fe.entry.js → p-0ef53ae6.entry.js} +1 -1
- package/lib/duet/{p-58a8254d.entry.js → p-1001ec0f.entry.js} +1 -1
- package/lib/duet/{p-fbbfcc2d.system.entry.js → p-1020c84c.system.entry.js} +1 -1
- package/lib/duet/{p-19fc4ff9.system.entry.js → p-1612a6c7.system.entry.js} +1 -1
- package/lib/duet/{p-f801f2a7.entry.js → p-169aab07.entry.js} +1 -1
- package/lib/duet/{p-e3c31f72.system.entry.js → p-16c13a11.system.entry.js} +1 -1
- package/lib/duet/p-1c9ee2ea.entry.js +4 -0
- package/lib/duet/{p-0296a34a.system.entry.js → p-1d195c3a.system.entry.js} +1 -1
- package/lib/duet/{p-53e192de.system.entry.js → p-1db3932f.system.entry.js} +1 -1
- package/lib/duet/{p-1953edbe.entry.js → p-1e6bd5da.entry.js} +1 -1
- package/lib/duet/p-1f0dc968.entry.js +4 -0
- package/lib/duet/{p-6626a173.entry.js → p-20ed91ba.entry.js} +1 -1
- package/lib/duet/p-20ff95cd.system.entry.js +4 -0
- package/lib/duet/{p-0abf8fe1.system.entry.js → p-2171907b.system.entry.js} +1 -1
- package/lib/duet/{p-e0db152c.system.entry.js → p-21f1bd62.system.entry.js} +1 -1
- package/lib/duet/{p-98a822e3.entry.js → p-26be2678.entry.js} +1 -1
- package/lib/duet/{p-b9c1d172.entry.js → p-28b22d09.entry.js} +1 -1
- package/lib/duet/{p-1c7ca800.entry.js → p-29186e16.entry.js} +1 -1
- package/lib/duet/{p-ba89aaf0.entry.js → p-2c79b6d8.entry.js} +1 -1
- package/lib/duet/{p-fefcaeb4.entry.js → p-2ddd9719.entry.js} +1 -1
- package/lib/duet/{p-6a9f8b30.entry.js → p-31657213.entry.js} +1 -1
- package/lib/duet/p-31730560.entry.js +4 -0
- package/lib/duet/p-357307f7.entry.js +4 -0
- package/lib/duet/{p-d3aed7d8.system.entry.js → p-3730d6bd.system.entry.js} +1 -1
- package/lib/duet/{p-c8466623.system.entry.js → p-3733ebe1.system.entry.js} +1 -1
- package/lib/duet/{p-d84be985.entry.js → p-3760418d.entry.js} +1 -1
- package/lib/duet/{p-a01d2fdb.entry.js → p-38cdaf08.entry.js} +1 -1
- package/lib/duet/{p-193fcf1c.system.entry.js → p-39ea1b09.system.entry.js} +1 -1
- package/lib/duet/{p-9bba389f.entry.js → p-3cf8a878.entry.js} +1 -1
- package/lib/duet/{p-7fd03652.system.entry.js → p-3ecc2d1e.system.entry.js} +1 -1
- package/lib/duet/{p-7479da8d.system.entry.js → p-3f4713a3.system.entry.js} +1 -1
- package/lib/duet/{p-9d841e0f.entry.js → p-3f56cdd6.entry.js} +1 -1
- package/lib/duet/{p-560f26a5.entry.js → p-41d61870.entry.js} +1 -1
- package/lib/duet/p-43091aa7.system.entry.js +4 -0
- package/lib/duet/{p-777fbef3.entry.js → p-43adcd6a.entry.js} +1 -1
- package/lib/duet/{p-56be87c9.system.entry.js → p-43ebba16.system.entry.js} +1 -1
- package/lib/duet/{p-b2ccffd1.system.entry.js → p-45199b0c.system.entry.js} +1 -1
- package/lib/duet/{p-ed8efd4d.system.entry.js → p-4648c2cf.system.entry.js} +1 -1
- package/lib/duet/p-47f7fd31.system.entry.js +4 -0
- package/lib/duet/{p-7083fb38.system.entry.js → p-49ba8156.system.entry.js} +1 -1
- package/lib/duet/{p-dcaed1b0.entry.js → p-4bd54c36.entry.js} +1 -1
- package/lib/duet/{p-73f87dff.system.entry.js → p-4c416890.system.entry.js} +1 -1
- package/lib/duet/p-4cd1b2dc.entry.js +4 -0
- package/lib/duet/{p-45464aa5.entry.js → p-4e002d37.entry.js} +1 -1
- package/lib/duet/p-5263bc35.js +4 -0
- package/lib/duet/p-5581d26e.entry.js +4 -0
- package/lib/duet/{p-2054dad2.entry.js → p-5729c070.entry.js} +1 -1
- package/lib/duet/{p-5eb9efcf.system.js → p-575e4de7.system.js} +1 -1
- package/lib/duet/{p-e79d2de2.system.entry.js → p-5b3275f8.system.entry.js} +2 -2
- package/lib/duet/{p-25e0cbc3.entry.js → p-5c810c8e.entry.js} +1 -1
- package/lib/duet/{p-5d74e505.entry.js → p-63b8a5d9.entry.js} +1 -1
- package/lib/duet/{p-0c416590.system.entry.js → p-65c5d605.system.entry.js} +1 -1
- package/lib/duet/p-6689cf76.entry.js +4 -0
- package/lib/duet/{p-9bfaaf32.entry.js → p-671a9905.entry.js} +1 -1
- package/lib/duet/{p-afa0c531.entry.js → p-67bd1eae.entry.js} +1 -1
- package/lib/duet/{p-fa6061c9.entry.js → p-69f280e3.entry.js} +1 -1
- package/lib/duet/{p-755f5cf0.system.entry.js → p-6b5f5f20.system.entry.js} +1 -1
- package/lib/duet/{p-ccb58dd2.entry.js → p-6b5fc33f.entry.js} +1 -1
- package/lib/duet/{p-5bf6660a.entry.js → p-6c34c6d4.entry.js} +1 -1
- package/lib/duet/{p-0322bace.entry.js → p-70af7daf.entry.js} +1 -1
- package/lib/duet/p-71d1dbcb.entry.js +4 -0
- package/lib/duet/{p-a3351207.entry.js → p-72179a41.entry.js} +1 -1
- package/lib/duet/{p-6ab9f8ce.entry.js → p-756e625e.entry.js} +1 -1
- package/lib/duet/{p-71568bfa.entry.js → p-77be9214.entry.js} +1 -1
- package/lib/duet/p-796edee6.js +4 -0
- package/lib/duet/{p-39730ce5.entry.js → p-79abaaad.entry.js} +1 -1
- package/lib/duet/{p-004f5593.system.entry.js → p-7b445598.system.entry.js} +1 -1
- package/lib/duet/p-7c6d5f9c.system.js +4 -0
- package/lib/duet/{p-f61c00e3.entry.js → p-7c8c5534.entry.js} +1 -1
- package/lib/duet/{p-690d8509.system.entry.js → p-7d4d3bee.system.entry.js} +1 -1
- package/lib/duet/{p-f1843c31.entry.js → p-80aa59cb.entry.js} +1 -1
- package/lib/duet/{p-87112f7c.system.entry.js → p-81a79874.system.entry.js} +1 -1
- package/lib/duet/{p-d864a0e3.system.entry.js → p-825dac25.system.entry.js} +1 -1
- package/lib/duet/p-827fece7.system.entry.js +4 -0
- package/lib/duet/p-875ba244.system.entry.js +4 -0
- package/lib/duet/p-8d260eac.entry.js +4 -0
- package/lib/duet/{p-da0e04fa.entry.js → p-92861390.entry.js} +1 -1
- package/lib/duet/{p-505375e1.system.entry.js → p-92e54702.system.entry.js} +2 -2
- package/lib/duet/{p-0d0867ae.entry.js → p-947af010.entry.js} +1 -1
- package/lib/duet/{p-079710fa.system.entry.js → p-969152f0.system.entry.js} +1 -1
- package/lib/duet/{p-4a4317af.system.entry.js → p-976ed5a5.system.entry.js} +1 -1
- package/lib/duet/{p-310fd85a.system.entry.js → p-99cc01cb.system.entry.js} +1 -1
- package/lib/duet/{p-cfdea256.system.entry.js → p-9d9cab9d.system.entry.js} +1 -1
- package/lib/duet/{p-d7f9ea61.system.entry.js → p-9e1d8b6f.system.entry.js} +1 -1
- package/lib/duet/{p-213dab77.entry.js → p-9e95e6eb.entry.js} +1 -1
- package/lib/duet/{p-d7175aea.entry.js → p-9ed3ab30.entry.js} +1 -1
- package/lib/duet/{p-8a2f8d7d.entry.js → p-9f355c50.entry.js} +1 -1
- package/lib/duet/{p-a3b8bb87.entry.js → p-a0f179db.entry.js} +1 -1
- package/lib/duet/{p-1f6ad797.system.entry.js → p-a319471c.system.entry.js} +2 -2
- package/lib/duet/{p-c9221359.system.entry.js → p-a424f7b8.system.entry.js} +1 -1
- package/lib/duet/{p-f43327c2.system.entry.js → p-a53d7d39.system.entry.js} +1 -1
- package/lib/duet/{p-c03920c0.entry.js → p-a89e81b7.entry.js} +1 -1
- package/lib/duet/{p-0f35fce0.system.entry.js → p-a917c2ae.system.entry.js} +1 -1
- package/lib/duet/{p-3ac0c888.system.entry.js → p-aa08b72e.system.entry.js} +1 -1
- package/lib/duet/{p-97cf5b01.system.entry.js → p-aab945c6.system.entry.js} +1 -1
- package/lib/duet/{p-769b7d3c.system.js → p-aabf89fa.system.js} +1 -1
- package/lib/duet/{p-05cfffb1.entry.js → p-aac0b756.entry.js} +1 -1
- package/lib/duet/{p-ba92e7b1.system.entry.js → p-ab005633.system.entry.js} +1 -1
- package/lib/duet/{p-1d91fb5d.entry.js → p-ae0382ff.entry.js} +1 -1
- package/lib/duet/{p-15c9c4cb.entry.js → p-b8cd8aa9.entry.js} +1 -1
- package/lib/duet/{p-b9140794.entry.js → p-b9568179.entry.js} +1 -1
- package/lib/duet/{p-90847ed0.system.entry.js → p-bc522875.system.entry.js} +1 -1
- package/lib/duet/{p-9686aa88.system.entry.js → p-bda222d2.system.entry.js} +1 -1
- package/lib/duet/p-bfd50a6a.entry.js +4 -0
- package/lib/duet/p-bfe237fe.entry.js +4 -0
- package/lib/duet/{p-5c42b7f0.system.entry.js → p-c2973a4e.system.entry.js} +1 -1
- package/lib/duet/{p-fdeb4f7d.entry.js → p-c327db77.entry.js} +1 -1
- package/lib/duet/p-c8ff85f8.entry.js +4 -0
- package/lib/duet/{p-d36935fa.system.entry.js → p-c9cb8ffa.system.entry.js} +1 -1
- package/lib/duet/{p-cea6ffda.entry.js → p-ce746fbf.entry.js} +1 -1
- package/lib/duet/{p-33771b10.system.entry.js → p-d0500cf2.system.entry.js} +1 -1
- package/lib/duet/{p-2f22f4cc.system.entry.js → p-d143df18.system.entry.js} +1 -1
- package/lib/duet/{p-85e98030.entry.js → p-d328f8cc.entry.js} +1 -1
- package/lib/duet/{p-45e26ba0.system.entry.js → p-d4285ed0.system.entry.js} +1 -1
- package/lib/duet/{p-b507f27d.system.entry.js → p-d44d74d3.system.entry.js} +1 -1
- package/lib/duet/p-d5b79ee4.entry.js +4 -0
- package/lib/duet/{p-27485e15.system.entry.js → p-d5d63283.system.entry.js} +1 -1
- package/lib/duet/{p-4ca1be7a.system.entry.js → p-d6c18967.system.entry.js} +1 -1
- package/lib/duet/p-d9400840.entry.js +4 -0
- package/lib/duet/{p-e27a4bf4.system.entry.js → p-d9887cdb.system.entry.js} +1 -1
- package/lib/duet/{p-604aab16.system.entry.js → p-db688714.system.entry.js} +1 -1
- package/lib/duet/p-dbedcced.entry.js +4 -0
- package/lib/duet/{p-65dcf9ed.entry.js → p-dc3e35c7.entry.js} +1 -1
- package/lib/duet/{p-b263e985.js → p-dccd9c7c.js} +1 -1
- package/lib/duet/{p-3ddc5b9d.entry.js → p-dcd8af75.entry.js} +1 -1
- package/lib/duet/{p-ca5cd66a.system.entry.js → p-de2da9fd.system.entry.js} +1 -1
- package/lib/duet/{p-ffdb9d3f.system.entry.js → p-e00c9499.system.entry.js} +1 -1
- package/lib/duet/{p-8726889d.system.entry.js → p-e03b6928.system.entry.js} +1 -1
- package/lib/duet/{p-5add7da0.entry.js → p-e0931ac9.entry.js} +1 -1
- package/lib/duet/{p-91e776e5.entry.js → p-e0d1257a.entry.js} +1 -1
- package/lib/duet/{p-447943eb.entry.js → p-e21cc133.entry.js} +1 -1
- package/lib/duet/{p-9e8772d1.entry.js → p-e24a3978.entry.js} +1 -1
- package/lib/duet/{p-11be6924.system.entry.js → p-e2eb1521.system.entry.js} +1 -1
- package/lib/duet/{p-34b96e8d.system.entry.js → p-e538a8a2.system.entry.js} +1 -1
- package/lib/duet/{p-77b95466.system.entry.js → p-e69813f3.system.entry.js} +1 -1
- package/lib/duet/{p-e7b6657c.system.entry.js → p-e956cd9b.system.entry.js} +1 -1
- package/lib/duet/{p-753d1ca4.system.js → p-ead2a738.system.js} +1 -1
- package/lib/duet/{p-618cc2c7.system.entry.js → p-ec2eb98f.system.entry.js} +1 -1
- package/lib/duet/{p-a9a0f040.system.entry.js → p-eced32c1.system.entry.js} +1 -1
- package/lib/duet/{p-9ba3d633.entry.js → p-ee7738c2.entry.js} +1 -1
- package/lib/duet/{p-d8144268.system.entry.js → p-eedadd50.system.entry.js} +1 -1
- package/lib/duet/p-ef83d9da.system.entry.js +4 -0
- package/lib/duet/{p-82cd0795.entry.js → p-f0419f45.entry.js} +1 -1
- package/lib/duet/{p-2de5d10d.entry.js → p-f121b583.entry.js} +1 -1
- package/lib/duet/{p-2888bff8.system.entry.js → p-f1397f55.system.entry.js} +1 -1
- package/lib/duet/{p-294b9ccf.system.entry.js → p-f15a1679.system.entry.js} +2 -2
- package/lib/duet/p-f273c4de.system.entry.js +4 -0
- package/lib/duet/{p-82bef678.system.entry.js → p-f3c91c9e.system.entry.js} +1 -1
- package/lib/duet/{p-240c3f03.system.entry.js → p-f5c69659.system.entry.js} +1 -1
- package/lib/duet/{p-fe79a10c.system.entry.js → p-f630e363.system.entry.js} +1 -1
- package/lib/duet/{p-e72a7aa6.system.entry.js → p-f7167337.system.entry.js} +1 -1
- package/lib/esm/duet-action-button.entry.js +1 -1
- package/lib/esm/duet-alert.entry.js +1 -1
- package/lib/esm/duet-badge.entry.js +1 -1
- package/lib/esm/duet-banner.entry.js +7 -6
- package/lib/esm/duet-breadcrumb.entry.js +1 -1
- package/lib/esm/duet-breadcrumbs.entry.js +1 -1
- package/lib/esm/duet-button_2.entry.js +2 -2
- package/lib/esm/duet-callout.entry.js +5 -4
- package/lib/esm/duet-caption_4.entry.js +4 -5
- package/lib/esm/duet-card.entry.js +4 -3
- package/lib/esm/duet-checkbox.entry.js +1 -1
- package/lib/esm/duet-checkmark.entry.js +1 -1
- package/lib/esm/duet-chip.entry.js +1 -1
- package/lib/esm/duet-choice_2.entry.js +5 -5
- package/lib/esm/duet-collapsible.entry.js +2 -2
- package/lib/esm/duet-combobox.entry.js +1 -1
- package/lib/esm/duet-contact-card.entry.js +1 -1
- package/lib/esm/duet-cookie-consent.entry.js +1 -1
- package/lib/esm/duet-date-picker.entry.js +5 -4
- package/lib/esm/duet-divider_2.entry.js +1 -1
- package/lib/esm/duet-editable-table_3.entry.js +1 -1
- package/lib/esm/duet-empty-state.entry.js +1 -1
- package/lib/esm/duet-fieldset.entry.js +2 -2
- package/lib/esm/duet-file-chooser.entry.js +1 -1
- package/lib/esm/duet-footer.entry.js +1 -1
- package/lib/esm/duet-grid_2.entry.js +1 -1
- package/lib/esm/duet-header_2.entry.js +1 -1
- package/lib/esm/duet-hero.entry.js +9 -6
- package/lib/esm/duet-icon.entry.js +1 -1
- package/lib/esm/duet-input_2.entry.js +4 -3
- package/lib/esm/duet-layout.entry.js +1 -1
- package/lib/esm/duet-list_2.entry.js +1 -1
- package/lib/esm/duet-menu-bar-button.entry.js +1 -1
- package/lib/esm/duet-menu-bar-dropdown-link.entry.js +1 -1
- package/lib/esm/duet-menu-bar-dropdown.entry.js +1 -1
- package/lib/esm/duet-menu-bar-link.entry.js +1 -1
- package/lib/esm/duet-menu-bar.entry.js +1 -1
- package/lib/esm/duet-modal.entry.js +3 -3
- package/lib/esm/duet-multiselect.entry.js +4 -3
- package/lib/esm/duet-nav.entry.js +1 -1
- package/lib/esm/duet-notification_2.entry.js +1 -1
- package/lib/esm/duet-number-input.entry.js +4 -3
- package/lib/esm/duet-page-heading.entry.js +1 -1
- package/lib/esm/duet-pagination_2.entry.js +1 -1
- package/lib/esm/duet-popup-menu-item.entry.js +1 -1
- package/lib/esm/duet-popup-menu.entry.js +2 -2
- package/lib/esm/duet-progress.entry.js +1 -1
- package/lib/esm/duet-promo-card.entry.js +14 -9
- package/lib/esm/duet-radio_2.entry.js +4 -3
- package/lib/esm/duet-range-slider.entry.js +1 -1
- package/lib/esm/duet-scrollable_3.entry.js +1 -1
- package/lib/esm/duet-section-layout.entry.js +1 -1
- package/lib/esm/duet-select.entry.js +4 -3
- package/lib/esm/duet-shaped-image.entry.js +1 -1
- package/lib/esm/duet-show-more.entry.js +1 -1
- package/lib/esm/duet-slideout-lang.entry.js +1 -1
- package/lib/esm/duet-slideout-link.entry.js +1 -1
- package/lib/esm/duet-slideout-panel-dropdown.entry.js +1 -1
- package/lib/esm/duet-slideout-panel.entry.js +3 -3
- package/lib/esm/duet-slideout.entry.js +3 -3
- package/lib/esm/duet-step_2.entry.js +1 -1
- package/lib/esm/duet-submenu-bar-dropdown-link.entry.js +1 -1
- package/lib/esm/duet-submenu-bar-dropdown.entry.js +1 -1
- package/lib/esm/duet-submenu-bar-link.entry.js +1 -1
- package/lib/esm/duet-submenu-bar.entry.js +1 -1
- package/lib/esm/duet-textarea.entry.js +4 -3
- package/lib/esm/duet-toggle.entry.js +1 -1
- package/lib/esm/duet-toolbar-dropdown-link.entry.js +1 -1
- package/lib/esm/duet-toolbar-dropdown.entry.js +1 -1
- package/lib/esm/duet-toolbar-link.entry.js +1 -1
- package/lib/esm/duet-toolbar.entry.js +1 -1
- package/lib/esm/duet-tooltip-button_2.entry.js +2 -2
- package/lib/esm/duet-tooltip.entry.js +2 -2
- package/lib/esm/duet-tray.entry.js +1 -1
- package/lib/esm/duet-upload-aria-status.entry.js +1 -1
- package/lib/esm/duet-upload-item.entry.js +1 -1
- package/lib/esm/duet-visually-hidden.entry.js +1 -1
- package/lib/esm/duet.js +2 -2
- package/lib/esm/{focus-utils-a9110b59.js → focus-utils-5adec865.js} +1 -1
- package/lib/esm/{index-ad0e5e61.js → index-88bb0f20.js} +1 -1
- package/lib/esm/loader.js +2 -2
- package/lib/esm/slot-utils-3c3ab3d6.js +48 -0
- package/lib/esm-es5/duet-action-button.entry.js +1 -1
- package/lib/esm-es5/duet-alert.entry.js +1 -1
- package/lib/esm-es5/duet-badge.entry.js +1 -1
- package/lib/esm-es5/duet-banner.entry.js +1 -1
- package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
- package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
- package/lib/esm-es5/duet-button_2.entry.js +2 -2
- package/lib/esm-es5/duet-callout.entry.js +1 -1
- package/lib/esm-es5/duet-caption_4.entry.js +1 -1
- package/lib/esm-es5/duet-card.entry.js +1 -1
- package/lib/esm-es5/duet-checkbox.entry.js +1 -1
- package/lib/esm-es5/duet-checkmark.entry.js +1 -1
- package/lib/esm-es5/duet-chip.entry.js +1 -1
- package/lib/esm-es5/duet-choice_2.entry.js +1 -1
- package/lib/esm-es5/duet-collapsible.entry.js +1 -1
- package/lib/esm-es5/duet-combobox.entry.js +1 -1
- package/lib/esm-es5/duet-contact-card.entry.js +1 -1
- package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
- package/lib/esm-es5/duet-date-picker.entry.js +1 -1
- package/lib/esm-es5/duet-divider_2.entry.js +1 -1
- package/lib/esm-es5/duet-editable-table_3.entry.js +1 -1
- package/lib/esm-es5/duet-empty-state.entry.js +1 -1
- package/lib/esm-es5/duet-fieldset.entry.js +1 -1
- package/lib/esm-es5/duet-file-chooser.entry.js +1 -1
- package/lib/esm-es5/duet-footer.entry.js +1 -1
- package/lib/esm-es5/duet-grid_2.entry.js +1 -1
- package/lib/esm-es5/duet-header_2.entry.js +1 -1
- package/lib/esm-es5/duet-hero.entry.js +2 -2
- package/lib/esm-es5/duet-icon.entry.js +1 -1
- package/lib/esm-es5/duet-input_2.entry.js +1 -1
- package/lib/esm-es5/duet-layout.entry.js +1 -1
- package/lib/esm-es5/duet-list_2.entry.js +1 -1
- package/lib/esm-es5/duet-menu-bar-button.entry.js +1 -1
- package/lib/esm-es5/duet-menu-bar-dropdown-link.entry.js +1 -1
- package/lib/esm-es5/duet-menu-bar-dropdown.entry.js +2 -2
- package/lib/esm-es5/duet-menu-bar-link.entry.js +1 -1
- package/lib/esm-es5/duet-menu-bar.entry.js +1 -1
- package/lib/esm-es5/duet-modal.entry.js +1 -1
- package/lib/esm-es5/duet-multiselect.entry.js +1 -1
- package/lib/esm-es5/duet-nav.entry.js +1 -1
- package/lib/esm-es5/duet-notification_2.entry.js +1 -1
- package/lib/esm-es5/duet-number-input.entry.js +1 -1
- package/lib/esm-es5/duet-page-heading.entry.js +1 -1
- package/lib/esm-es5/duet-pagination_2.entry.js +1 -1
- package/lib/esm-es5/duet-popup-menu-item.entry.js +1 -1
- package/lib/esm-es5/duet-popup-menu.entry.js +1 -1
- package/lib/esm-es5/duet-progress.entry.js +1 -1
- package/lib/esm-es5/duet-promo-card.entry.js +2 -2
- package/lib/esm-es5/duet-radio_2.entry.js +1 -1
- package/lib/esm-es5/duet-range-slider.entry.js +1 -1
- package/lib/esm-es5/duet-scrollable_3.entry.js +1 -1
- package/lib/esm-es5/duet-section-layout.entry.js +1 -1
- package/lib/esm-es5/duet-select.entry.js +2 -2
- package/lib/esm-es5/duet-shaped-image.entry.js +1 -1
- package/lib/esm-es5/duet-show-more.entry.js +1 -1
- package/lib/esm-es5/duet-slideout-lang.entry.js +1 -1
- package/lib/esm-es5/duet-slideout-link.entry.js +1 -1
- package/lib/esm-es5/duet-slideout-panel-dropdown.entry.js +1 -1
- package/lib/esm-es5/duet-slideout-panel.entry.js +1 -1
- package/lib/esm-es5/duet-slideout.entry.js +1 -1
- package/lib/esm-es5/duet-step_2.entry.js +1 -1
- package/lib/esm-es5/duet-submenu-bar-dropdown-link.entry.js +1 -1
- package/lib/esm-es5/duet-submenu-bar-dropdown.entry.js +1 -1
- package/lib/esm-es5/duet-submenu-bar-link.entry.js +1 -1
- package/lib/esm-es5/duet-submenu-bar.entry.js +1 -1
- package/lib/esm-es5/duet-textarea.entry.js +1 -1
- package/lib/esm-es5/duet-toggle.entry.js +1 -1
- package/lib/esm-es5/duet-toolbar-dropdown-link.entry.js +1 -1
- package/lib/esm-es5/duet-toolbar-dropdown.entry.js +1 -1
- package/lib/esm-es5/duet-toolbar-link.entry.js +1 -1
- package/lib/esm-es5/duet-toolbar.entry.js +1 -1
- package/lib/esm-es5/duet-tooltip-button_2.entry.js +1 -1
- package/lib/esm-es5/duet-tooltip.entry.js +1 -1
- package/lib/esm-es5/duet-tray.entry.js +1 -1
- package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
- package/lib/esm-es5/duet-upload-item.entry.js +1 -1
- package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
- package/lib/esm-es5/duet.js +1 -1
- package/lib/esm-es5/focus-utils-5adec865.js +4 -0
- package/lib/esm-es5/{index-ad0e5e61.js → index-88bb0f20.js} +1 -1
- package/lib/esm-es5/loader.js +1 -1
- package/lib/esm-es5/slot-utils-3c3ab3d6.js +4 -0
- package/lib/types/common/index.d.ts +0 -1
- package/lib/types/components/duet-card/duet-card.d.ts +3 -2
- package/lib/types/components/duet-promo-card/duet-promo-card.d.ts +3 -1
- package/lib/types/components.d.ts +2 -2
- package/lib/types/utils/slot-utils.d.ts +14 -2
- package/package.json +5 -5
- package/lib/cjs/slot-query-3259af5b.js +0 -10
- package/lib/cjs/slot-utils-6c81bd09.js +0 -20
- package/lib/collection/common/slot-query.js +0 -9
- package/lib/dist-custom-elements/p-11230037.js +0 -8
- package/lib/dist-custom-elements/p-bb24a019.js +0 -18
- package/lib/duet/p-0c2cf3a5.system.entry.js +0 -4
- package/lib/duet/p-11230037.js +0 -4
- package/lib/duet/p-1cb624dd.entry.js +0 -4
- package/lib/duet/p-32f3d9e9.entry.js +0 -4
- package/lib/duet/p-38bab76d.entry.js +0 -4
- package/lib/duet/p-3f9bb231.entry.js +0 -4
- package/lib/duet/p-43ee1368.entry.js +0 -4
- package/lib/duet/p-48f4acef.entry.js +0 -4
- package/lib/duet/p-578de372.entry.js +0 -4
- package/lib/duet/p-634e8787.system.js +0 -4
- package/lib/duet/p-700eb8d9.system.entry.js +0 -4
- package/lib/duet/p-74fef701.system.entry.js +0 -4
- package/lib/duet/p-7cdcc3f9.system.entry.js +0 -4
- package/lib/duet/p-859754bb.entry.js +0 -4
- package/lib/duet/p-8a90810c.system.entry.js +0 -4
- package/lib/duet/p-8b25f04b.system.entry.js +0 -4
- package/lib/duet/p-93037a0a.entry.js +0 -4
- package/lib/duet/p-99269e38.system.js +0 -4
- package/lib/duet/p-a5ebbe3e.entry.js +0 -4
- package/lib/duet/p-abe6350b.system.entry.js +0 -4
- package/lib/duet/p-b3e26504.entry.js +0 -4
- package/lib/duet/p-bb24a019.js +0 -4
- package/lib/duet/p-c16515e0.entry.js +0 -4
- package/lib/duet/p-c28792a8.entry.js +0 -4
- package/lib/duet/p-e19067f1.js +0 -4
- package/lib/duet/p-e7ffb722.entry.js +0 -4
- package/lib/duet/p-f7e13990.entry.js +0 -4
- package/lib/duet/p-fcb84038.entry.js +0 -4
- package/lib/duet/p-fea9215a.entry.js +0 -4
- package/lib/esm/slot-query-022710bb.js +0 -8
- package/lib/esm/slot-utils-07ba4363.js +0 -18
- package/lib/esm-es5/focus-utils-a9110b59.js +0 -4
- package/lib/esm-es5/slot-query-022710bb.js +0 -4
- package/lib/esm-es5/slot-utils-07ba4363.js +0 -4
- package/lib/types/common/slot-query.d.ts +0 -1
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Built with Duet Design System
|
|
3
|
+
*/
|
|
4
|
+
'use strict';
|
|
5
|
+
|
|
6
|
+
const getElementsFromNamedSlot = (element, slotName) => {
|
|
7
|
+
const childElements = Array.from(element.querySelectorAll(":scope > *"));
|
|
8
|
+
return childElements.filter(el => el.matches(`[slot='${slotName}']`));
|
|
9
|
+
};
|
|
10
|
+
const hasSlot = (element, slotName) => {
|
|
11
|
+
return getElementsFromNamedSlot(element, slotName).length > 0;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Check if the slotted element matches the given selector.
|
|
15
|
+
* If not, log a warning, or log a error and remove the element.
|
|
16
|
+
* This function only works with named slots.
|
|
17
|
+
*
|
|
18
|
+
* @param hostElement Host element
|
|
19
|
+
* @param slotName Name of the slot to check.
|
|
20
|
+
* @param selector Css selector the slotted element should match
|
|
21
|
+
* @param maxChildren Maximum number of children allowed in the slot. For no limit use 0. Default is 0.
|
|
22
|
+
* @param remove If true, remove the elements that don't match. Default is false.
|
|
23
|
+
*/
|
|
24
|
+
const checkNamedSlotElement = (hostElement, slotName, selector, maxChildren = 0, remove = false) => {
|
|
25
|
+
const warnOrError = remove ? "error" : "warn";
|
|
26
|
+
const errors = [];
|
|
27
|
+
const slottedElements = getElementsFromNamedSlot(hostElement, slotName);
|
|
28
|
+
const nonRemovedElements = slottedElements.filter(el => {
|
|
29
|
+
if (el.matches(selector)) {
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
errors.push(`Only elements matcing selector "${selector}" may be used in slot ${slotName}, found:\n${el.outerHTML}`);
|
|
33
|
+
if (remove) {
|
|
34
|
+
el.remove();
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
return true;
|
|
38
|
+
});
|
|
39
|
+
if (maxChildren && nonRemovedElements.length > maxChildren) {
|
|
40
|
+
errors.push(`Only ${maxChildren} element${maxChildren > 1 ? "s" : ""} may be used in slot ${slotName}, found ${slottedElements.length}.`);
|
|
41
|
+
if (remove) {
|
|
42
|
+
nonRemovedElements.slice(maxChildren).forEach(el => el.remove());
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
if (errors.length > 0) {
|
|
46
|
+
console[warnOrError](`Duet ${warnOrError} in ${hostElement.tagName.toLowerCase()}:\n${errors.join("\n")}${remove ? `\nElement${errors.length > 1 ? "s" : ""} removed.` : ""}`);
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
exports.checkNamedSlotElement = checkNamedSlotElement;
|
|
51
|
+
exports.hasSlot = hasSlot;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import { h, Host } from "@stencil/core";
|
|
5
5
|
import { inheritGlobalTheme } from "../../common/themeable-component";
|
|
6
6
|
import { DuetPicture } from "../../utils/picture-utils";
|
|
7
|
-
import {
|
|
7
|
+
import { checkNamedSlotElement, hasSlot } from "../../utils/slot-utils";
|
|
8
8
|
import { parsePossibleJSON } from "../../utils/string-utils";
|
|
9
9
|
import { getColorByName } from "../../utils/token-utils";
|
|
10
10
|
/**
|
|
@@ -31,9 +31,10 @@ export class DuetBanner {
|
|
|
31
31
|
*/
|
|
32
32
|
componentWillLoad() {
|
|
33
33
|
inheritGlobalTheme(this);
|
|
34
|
-
this.hasHeadingSlot =
|
|
35
|
-
this.hasDescriptionSlot =
|
|
36
|
-
this.hasActionSlot =
|
|
34
|
+
this.hasHeadingSlot = hasSlot(this.element, "heading");
|
|
35
|
+
this.hasDescriptionSlot = hasSlot(this.element, "description");
|
|
36
|
+
this.hasActionSlot = hasSlot(this.element, "action");
|
|
37
|
+
checkNamedSlotElement(this.element, "heading", "span");
|
|
37
38
|
}
|
|
38
39
|
/**
|
|
39
40
|
* render() function
|
|
@@ -54,7 +55,7 @@ export class DuetBanner {
|
|
|
54
55
|
"duet-banner": true,
|
|
55
56
|
"duet-theme-turva": this.theme === "turva",
|
|
56
57
|
[this.size]: true,
|
|
57
|
-
}, style: bannerStyles }, h("div", { class: "visual" }, h("div", { class: "image-container" }, this.image && h(DuetPicture, Object.assign({}, pictureSource))), this.icon && (h("duet-icon", { theme: this.theme, class: "icon", name: this.icon, shape: "brand", size: "xx-large", color: this.iconColor, background: this.iconBackgroundColor, "background-rotation": "7", "background-opacity": "0.85", margin: "none" }))), h("div", { class: "content" }, this.hasHeadingSlot && (h("div", { class: "heading" }, h("duet-heading", { theme: this.theme, level: this.headingLevel, "visual-level": "h2", margin: "none", color: this.textColor }, h("span", null, h("slot", { name: "heading"
|
|
58
|
+
}, style: bannerStyles }, h("div", { class: "visual" }, h("div", { class: "image-container" }, this.image && h(DuetPicture, Object.assign({}, pictureSource))), this.icon && (h("duet-icon", { theme: this.theme, class: "icon", name: this.icon, shape: "brand", size: "xx-large", color: this.iconColor, background: this.iconBackgroundColor, "background-rotation": "7", "background-opacity": "0.85", margin: "none" }))), h("div", { class: "content" }, this.hasHeadingSlot && (h("div", { class: "heading" }, h("duet-heading", { theme: this.theme, level: this.headingLevel, "visual-level": "h2", margin: "none", color: this.textColor }, h("span", null, h("slot", { name: "heading" }))))), this.hasDescriptionSlot && (h("div", { class: "description", style: { color } }, h("slot", { name: "description" }))), this.hasActionSlot && (h("div", { class: "action" }, h("slot", { name: "action" })))))));
|
|
58
59
|
}
|
|
59
60
|
static get is() { return "duet-banner"; }
|
|
60
61
|
static get encapsulation() { return "shadow"; }
|
|
@@ -149,15 +149,26 @@
|
|
|
149
149
|
font-size: 1rem;
|
|
150
150
|
border-radius: 25px;
|
|
151
151
|
}
|
|
152
|
+
.duet-theme-turva .duet-button.duet-button-size-medium {
|
|
153
|
+
padding-right: 24px;
|
|
154
|
+
padding-left: 24px;
|
|
155
|
+
border-radius: 12.5px;
|
|
156
|
+
}
|
|
152
157
|
.duet-button.duet-button-size-medium.square {
|
|
153
158
|
border-radius: 12.5px;
|
|
154
159
|
}
|
|
155
160
|
.duet-button.duet-button-size-medium.icon-left {
|
|
156
161
|
padding-left: 24px;
|
|
157
162
|
}
|
|
163
|
+
.duet-theme-turva .duet-button.duet-button-size-medium.icon-left {
|
|
164
|
+
padding-left: 18px;
|
|
165
|
+
}
|
|
158
166
|
.duet-button.duet-button-size-medium.icon-right {
|
|
159
167
|
padding-right: 24px;
|
|
160
168
|
}
|
|
169
|
+
.duet-theme-turva .duet-button.duet-button-size-medium.icon-right {
|
|
170
|
+
padding-right: 18px;
|
|
171
|
+
}
|
|
161
172
|
.duet-button.duet-button-size-small {
|
|
162
173
|
height: 40px;
|
|
163
174
|
padding-right: 20px;
|
|
@@ -165,15 +176,26 @@
|
|
|
165
176
|
font-size: 0.875rem;
|
|
166
177
|
border-radius: 20px;
|
|
167
178
|
}
|
|
179
|
+
.duet-theme-turva .duet-button.duet-button-size-small {
|
|
180
|
+
padding-right: 18px;
|
|
181
|
+
padding-left: 18px;
|
|
182
|
+
border-radius: 10px;
|
|
183
|
+
}
|
|
168
184
|
.duet-button.duet-button-size-small.square {
|
|
169
185
|
border-radius: 10px;
|
|
170
186
|
}
|
|
171
187
|
.duet-button.duet-button-size-small.icon-left {
|
|
172
188
|
padding-left: 18px;
|
|
173
189
|
}
|
|
190
|
+
.duet-theme-turva .duet-button.duet-button-size-small.icon-left {
|
|
191
|
+
padding-left: 14px;
|
|
192
|
+
}
|
|
174
193
|
.duet-button.duet-button-size-small.icon-right {
|
|
175
194
|
padding-right: 18px;
|
|
176
195
|
}
|
|
196
|
+
.duet-theme-turva .duet-button.duet-button-size-small.icon-right {
|
|
197
|
+
padding-right: 14px;
|
|
198
|
+
}
|
|
177
199
|
.duet-button.duet-button-size-x-small {
|
|
178
200
|
height: 32px;
|
|
179
201
|
padding-right: 12px;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { h, Host } from "@stencil/core";
|
|
5
5
|
import { inheritGlobalTheme } from "../../common/themeable-component";
|
|
6
|
-
import {
|
|
6
|
+
import { checkNamedSlotElement, hasSlot } from "../../utils/slot-utils";
|
|
7
7
|
/**
|
|
8
8
|
* @slot default - Slot for text.
|
|
9
9
|
* @slot author - Slot for author information. If provided, a dash will be prepended. Only span should be used in this slot.
|
|
@@ -19,7 +19,8 @@ export class DuetCallout {
|
|
|
19
19
|
*/
|
|
20
20
|
componentWillLoad() {
|
|
21
21
|
inheritGlobalTheme(this);
|
|
22
|
-
this.hasAuthorSlot =
|
|
22
|
+
this.hasAuthorSlot = hasSlot(this.element, "author");
|
|
23
|
+
checkNamedSlotElement(this.element, "author", "span");
|
|
23
24
|
}
|
|
24
25
|
/**
|
|
25
26
|
* render() function
|
|
@@ -34,7 +35,7 @@ export class DuetCallout {
|
|
|
34
35
|
"duet-callout": true,
|
|
35
36
|
"duet-theme-turva": this.theme === "turva",
|
|
36
37
|
"duet-m-0": this.margin === "none",
|
|
37
|
-
} }, h("figure", { class: "container" }, h("duet-icon", { class: "callout-icon", shape: "brand-rotated", background: "primary-lighter", "background-opacity": "0.75", "background-rotation": this.theme === "turva" ? "0" : "7", color: "secondary", icon: icon, size: "auto", margin: "none", theme: this.theme }), h("blockquote", null, h("slot", null)), this.hasAuthorSlot && (h("figcaption", { class: "author" }, h("span", null, "\u2014 "), h("slot", { name: "author"
|
|
38
|
+
} }, h("figure", { class: "container" }, h("duet-icon", { class: "callout-icon", shape: "brand-rotated", background: "primary-lighter", "background-opacity": "0.75", "background-rotation": this.theme === "turva" ? "0" : "7", color: "secondary", icon: icon, size: "auto", margin: "none", theme: this.theme }), h("blockquote", null, h("slot", null)), this.hasAuthorSlot && (h("figcaption", { class: "author" }, h("span", null, "\u2014 "), h("slot", { name: "author" })))))));
|
|
38
39
|
}
|
|
39
40
|
static get is() { return "duet-callout"; }
|
|
40
41
|
static get encapsulation() { return "shadow"; }
|
|
@@ -81,8 +81,9 @@ export class DuetCard {
|
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
83
|
/**
|
|
84
|
-
* Sets focus on
|
|
85
|
-
*
|
|
84
|
+
* Sets focus on underlying a element.
|
|
85
|
+
* Available only when url attribute is used.
|
|
86
|
+
* Use this method instead of the native `focus()`.
|
|
86
87
|
*/
|
|
87
88
|
async setFocus(options) {
|
|
88
89
|
if (this.nativeCard) {
|
|
@@ -513,7 +514,7 @@ export class DuetCard {
|
|
|
513
514
|
"return": "Promise<void>"
|
|
514
515
|
},
|
|
515
516
|
"docs": {
|
|
516
|
-
"text": "Sets focus on
|
|
517
|
+
"text": "Sets focus on underlying a element.\nAvailable only when url attribute is used.\nUse this method instead of the native `focus()`.",
|
|
517
518
|
"tags": []
|
|
518
519
|
}
|
|
519
520
|
}
|
|
@@ -3,12 +3,13 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import infoIcon from "@duetds/icons/lib/assets/messaging-info";
|
|
5
5
|
import { Build, h, Host } from "@stencil/core";
|
|
6
|
-
import {
|
|
6
|
+
import { inheritGlobalTheme } from "../../common";
|
|
7
7
|
import { DuetStringsExternalDefaults } from "../../common-strings";
|
|
8
8
|
import { createID } from "../../utils/create-id";
|
|
9
9
|
import { FocusGuard } from "../../utils/focus-utils";
|
|
10
10
|
import { isEscapeKey, isKeyboardClick, isQuestionKey, subscribeTabbingChange, unsubscribeTabbingChange, } from "../../utils/keyboard-utils";
|
|
11
11
|
import { connectLanguageChangeObserver, disconnectLanguageChangeObserver, getLanguage, getLocaleString, } from "../../utils/language-utils";
|
|
12
|
+
import { hasSlot } from "../../utils/slot-utils";
|
|
12
13
|
/**
|
|
13
14
|
* @slot unnamed default slot - The component’s primary content. All child nodes that do not have a slot attribute defined are inserted into this primary slot.
|
|
14
15
|
* @slot label - Label content.
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { Build, h, Host } from "@stencil/core";
|
|
5
5
|
import { inheritGlobalTheme } from "../../common/themeable-component";
|
|
6
|
-
import {
|
|
6
|
+
import { checkNamedSlotElement } from "../../utils/slot-utils";
|
|
7
7
|
/**
|
|
8
8
|
* @slot tooltip - Use to place a tooltip alongside the label.
|
|
9
9
|
*/
|
|
@@ -73,6 +73,7 @@ export class DuetChoiceGroup {
|
|
|
73
73
|
}
|
|
74
74
|
componentWillLoad() {
|
|
75
75
|
inheritGlobalTheme(this);
|
|
76
|
+
checkNamedSlotElement(this.element, "tooltip", "duet-tooltip", 1, true);
|
|
76
77
|
}
|
|
77
78
|
/**
|
|
78
79
|
* Local methods
|
|
@@ -122,7 +123,7 @@ export class DuetChoiceGroup {
|
|
|
122
123
|
"duet-choice-group-breakpoint-medium": this.responsive && this.breakpoint === "medium",
|
|
123
124
|
"duet-choice-group-breakpoint-large": this.responsive && this.breakpoint === "large",
|
|
124
125
|
"duet-choice-group-breakpoint-x-large": this.responsive && this.breakpoint === "x-large",
|
|
125
|
-
} }, h("duet-fieldset", { label: this.label, labelHidden: this.labelHidden, compactLabel: true, caption: this.caption, error: this.error, margin: this.margin, theme: this.theme, "accessible-live-error": this.accessibleLiveError }, this.tooltip && (h("duet-tooltip", { slot: "tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), h("slot", { name: "tooltip"
|
|
126
|
+
} }, h("duet-fieldset", { label: this.label, labelHidden: this.labelHidden, compactLabel: true, caption: this.caption, error: this.error, margin: this.margin, theme: this.theme, "accessible-live-error": this.accessibleLiveError }, this.tooltip && (h("duet-tooltip", { slot: "tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), h("slot", { name: "tooltip" }), h("div", { class: { [this.choiceGroupName]: true, "duet-no-stacking": !this.responsive } }, h("slot", null)))));
|
|
126
127
|
}
|
|
127
128
|
static get is() { return "duet-choice-group"; }
|
|
128
129
|
static get encapsulation() { return "scoped"; }
|
|
@@ -4,9 +4,10 @@
|
|
|
4
4
|
import icon from "@duetds/icons/lib/assets/action-arrow-down-small";
|
|
5
5
|
import * as tokens from "@duetds/tokens/lib/tokens.json";
|
|
6
6
|
import { h, Host } from "@stencil/core";
|
|
7
|
-
import {
|
|
7
|
+
import { inheritGlobalTheme } from "../../common";
|
|
8
8
|
import { createID } from "../../utils/create-id";
|
|
9
9
|
import { isKeyboardClick, subscribeTabbingChange, unsubscribeTabbingChange } from "../../utils/keyboard-utils";
|
|
10
|
+
import { hasSlot } from "../../utils/slot-utils";
|
|
10
11
|
import { sanitizeString } from "../../utils/string-utils";
|
|
11
12
|
/**
|
|
12
13
|
* @part duet-collapsible-heading-content - piercing selector for styling the heading content
|
|
@@ -3,12 +3,11 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import formDateIcon from "@duetds/icons/lib/assets/form-date";
|
|
5
5
|
import { h } from "@stencil/core";
|
|
6
|
-
import { slotElementCheck } from "../../utils/slot-utils";
|
|
7
6
|
import i18n from "./date-i18n";
|
|
8
7
|
export const DatePickerInput = ({ onClick, placeholder, name, inputLabel, value, valueAsDate, formattedValue, language, identifier, theme, disabled, error, role, required, tooltip, tooltipDirection, labelHidden, buttonRef, inputRef, onInput, onBlur, onFocus, accessibleActiveDescendant, accessibleControls, accessibleOwns, accessibleDescribedBy, echoPlaceholder, caption, }) => {
|
|
9
8
|
const { buttonLabel, selected, formatterLong } = i18n[language];
|
|
10
9
|
return (h("div", { class: {
|
|
11
10
|
"duet-theme-turva": theme === "turva",
|
|
12
11
|
"duet-date-input": true,
|
|
13
|
-
} }, h("duet-input", { label: inputLabel, value: formattedValue, placeholder: placeholder, id: identifier, disabled: disabled, theme: theme, error: error, role: role, required: required, tooltip: tooltip, tooltipDirection: tooltipDirection, margin: "none", component: "date", labelHidden: labelHidden, accessibleAutocomplete: "none", onDuetInput: onInput, onDuetFocus: onFocus, onDuetBlur: onBlur, autoComplete: "off", disallowPattern: "[^0-9\\.\\-\\/]", expand: true, ref: inputRef, accessibleActiveDescendant: accessibleActiveDescendant, accessibleControls: accessibleControls, accessibleOwns: accessibleOwns, accessibleDescribedBy: accessibleDescribedBy, echoPlaceholder: echoPlaceholder, caption: caption }, h("slot", { name: "tooltip"
|
|
12
|
+
} }, h("duet-input", { label: inputLabel, value: formattedValue, placeholder: placeholder, id: identifier, disabled: disabled, theme: theme, error: error, role: role, required: required, tooltip: tooltip, tooltipDirection: tooltipDirection, margin: "none", component: "date", labelHidden: labelHidden, accessibleAutocomplete: "none", onDuetInput: onInput, onDuetFocus: onFocus, onDuetBlur: onBlur, autoComplete: "off", disallowPattern: "[^0-9\\.\\-\\/]", expand: true, ref: inputRef, accessibleActiveDescendant: accessibleActiveDescendant, accessibleControls: accessibleControls, accessibleOwns: accessibleOwns, accessibleDescribedBy: accessibleDescribedBy, echoPlaceholder: echoPlaceholder, caption: caption }, h("slot", { name: "tooltip" }), h("button", { class: { "duet-date-button": true, "duet-no-label": labelHidden }, onClick: onClick, disabled: disabled, ref: buttonRef, type: "button" }, h("duet-icon", { icon: formDateIcon.svg, margin: "none", size: "small", color: "currentColor" }), h("duet-visually-hidden", null, buttonLabel, valueAsDate && (h("span", null, ", ", selected, " ", formatterLong.format(valueAsDate)))))), h("input", { type: "hidden", name: name, value: value })));
|
|
14
13
|
};
|
|
@@ -6,6 +6,7 @@ import { inheritGlobalTheme } from "../../common/themeable-component";
|
|
|
6
6
|
import { createID } from "../../utils/create-id";
|
|
7
7
|
import { FocusGuard } from "../../utils/focus-utils";
|
|
8
8
|
import { connectLanguageChangeObserver, disconnectLanguageChangeObserver, getLanguage, getLocaleString, } from "../../utils/language-utils";
|
|
9
|
+
import { checkNamedSlotElement } from "../../utils/slot-utils";
|
|
9
10
|
import i18n from "./date-i18n";
|
|
10
11
|
import { DatePickerInput } from "./date-picker-input";
|
|
11
12
|
import { DatePickerMonth } from "./date-picker-month";
|
|
@@ -178,6 +179,7 @@ export class DuetDatePicker {
|
|
|
178
179
|
inheritGlobalTheme(this);
|
|
179
180
|
this.determineValidity(parseISODate(this.value));
|
|
180
181
|
this.updateInternalValue();
|
|
182
|
+
checkNamedSlotElement(this.element, "tooltip", "duet-tooltip", 1, true);
|
|
181
183
|
}
|
|
182
184
|
componentDidUpdate() {
|
|
183
185
|
// we want to run this code _after_ render
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* Built with Duet Design System
|
|
3
3
|
*/
|
|
4
4
|
import { h, Host } from "@stencil/core";
|
|
5
|
-
import { hasSlot } from "../../common";
|
|
6
5
|
import { inheritGlobalTheme } from "../../common/themeable-component";
|
|
7
6
|
import { createID } from "../../utils/create-id";
|
|
7
|
+
import { hasSlot } from "../../utils/slot-utils";
|
|
8
8
|
/**
|
|
9
9
|
* @slot unnamed default slot - The component’s primary content. All child nodes that do not have a slot attribute defined are inserted into this primary slot.
|
|
10
10
|
* @slot tooltip - Use to place a tooltip alongside the fieldset label.
|
|
@@ -12,7 +12,7 @@ describe("[a11y] duet-hero", () => {
|
|
|
12
12
|
button-label="Vaihda e-laskutukseen"
|
|
13
13
|
button-url="#"
|
|
14
14
|
>
|
|
15
|
-
<
|
|
15
|
+
<span slot="heading">Laskut</span>
|
|
16
16
|
</duet-hero>
|
|
17
17
|
|
|
18
18
|
<script>
|
|
@@ -36,8 +36,8 @@ describe("[a11y] duet-hero", () => {
|
|
|
36
36
|
image="https://www.duetds.com/assets/img/example-bg1.jpg"
|
|
37
37
|
variation="campaign"
|
|
38
38
|
>
|
|
39
|
-
<
|
|
40
|
-
<
|
|
39
|
+
<span slot="heading">Terveys ensin</span>
|
|
40
|
+
<span slot="subheading">Varmista oma ja perheesi toimeentulo vahingon varalta</span>
|
|
41
41
|
<duet-button variation="primary" margin="none">Tutustu terveysvakuutuksiin</duet-button>
|
|
42
42
|
</duet-hero>
|
|
43
43
|
`, axeRunOptions);
|
|
@@ -60,7 +60,7 @@ describe("[a11y] duet-hero", () => {
|
|
|
60
60
|
></span>
|
|
61
61
|
21.3.2023
|
|
62
62
|
</span>
|
|
63
|
-
<
|
|
63
|
+
<span slot="heading">Lorem ipsum dolor sit</span>
|
|
64
64
|
<duet-button variation="plain" icon="action-arrow-right" icon-right margin="none">Link to service</duet-button>
|
|
65
65
|
</duet-hero>
|
|
66
66
|
`, axeRunOptions);
|
|
@@ -6,7 +6,7 @@ import { h } from "@stencil/core";
|
|
|
6
6
|
import { DuetStringsExternalDefaults } from "../../common-strings";
|
|
7
7
|
import { inheritGlobalTheme } from "../../common/themeable-component";
|
|
8
8
|
import { connectLanguageChangeObserver, disconnectLanguageChangeObserver, getLanguage, getLocaleString, } from "../../utils/language-utils";
|
|
9
|
-
import {
|
|
9
|
+
import { checkNamedSlotElement, hasSlot } from "../../utils/slot-utils";
|
|
10
10
|
import { parsePossibleJSON } from "../../utils/string-utils";
|
|
11
11
|
/**
|
|
12
12
|
* @part duet-hero - piercing selector for styling the hero container
|
|
@@ -69,9 +69,12 @@ export class DuetHero {
|
|
|
69
69
|
*/
|
|
70
70
|
componentWillLoad() {
|
|
71
71
|
inheritGlobalTheme(this);
|
|
72
|
-
this.hasPreHeadingSlot =
|
|
73
|
-
this.hasHeadingSlot =
|
|
74
|
-
this.hasSubHeadingSlot =
|
|
72
|
+
this.hasPreHeadingSlot = hasSlot(this.element, "pre-heading");
|
|
73
|
+
this.hasHeadingSlot = hasSlot(this.element, "heading");
|
|
74
|
+
this.hasSubHeadingSlot = hasSlot(this.element, "subheading");
|
|
75
|
+
checkNamedSlotElement(this.element, "pre-heading", "span");
|
|
76
|
+
checkNamedSlotElement(this.element, "heading", "span");
|
|
77
|
+
checkNamedSlotElement(this.element, "subheading", "span");
|
|
75
78
|
this.refresh();
|
|
76
79
|
}
|
|
77
80
|
connectedCallback() {
|
|
@@ -179,7 +182,7 @@ export class DuetHero {
|
|
|
179
182
|
href: this.processedBack.href,
|
|
180
183
|
id: this.processedBack.id,
|
|
181
184
|
analyticsId: this.processedBack.analyticsId,
|
|
182
|
-
}) }, this.processedBack.label))), (this.variation === "gray" || this.variation === "minimal") && this.categoryIcon && (h("duet-icon", { class: { "duet-hero-icon": true, "duet-hero-icon-has-heading": this.preHeading !== "" }, size: "x-large", background: this.categoryIconColor, name: this.categoryIcon })), h("div", { class: { "duet-hero-text": true }, part: "duet-hero-text" }, (this.preHeading || this.hasPreHeadingSlot) && (h("duet-paragraph", { margin: "none", class: "duet-hero-pre", size: this.variation === "content" ? "small" : "medium" }, this.preHeading ? (this.preHeading) : (h("span", null, h("slot", { name: "pre-heading"
|
|
185
|
+
}) }, this.processedBack.label))), (this.variation === "gray" || this.variation === "minimal") && this.categoryIcon && (h("duet-icon", { class: { "duet-hero-icon": true, "duet-hero-icon-has-heading": this.preHeading !== "" }, size: "x-large", background: this.categoryIconColor, name: this.categoryIcon })), h("div", { class: { "duet-hero-text": true }, part: "duet-hero-text" }, (this.preHeading || this.hasPreHeadingSlot) && (h("duet-paragraph", { margin: "none", class: "duet-hero-pre", size: this.variation === "content" ? "small" : "medium" }, this.preHeading ? (this.preHeading) : (h("span", null, h("slot", { name: "pre-heading" }))))), h("slot", { name: "badge" }), (this.heading || this.hasHeadingSlot) && (h("duet-heading", { theme: this.theme, level: this.level, class: { "duet-hero-heading": true, "duet-hero-heading-has-pre": this.preHeading !== "" }, color: headingColor, visualLevel: headingVisualLevel, margin: campaignOrSection ? "none" : "auto" }, this.heading ? (this.heading) : (h("span", null, h("slot", { name: "heading" }))))), campaignOrSection && this.hasSubHeadingSlot && (h("duet-heading", { theme: this.theme, level: this.subHeadingLevel, class: { "duet-hero-subheading": true }, color: this.theme === "turva" ? "secondary-turva" : "secondary", visualLevel: "h2" }, h("span", null, h("slot", { name: "subheading" })))), this.description && (h("duet-paragraph", { theme: this.theme, color: textColor, variation: "intro" }, this.description)), (this.variation === "gray" || this.variation === "minimal") && this.processedListItems && (h("duet-list", { theme: this.theme, "label-width": "30", breakpoint: "large", mobile: this.leftAlign ? undefined : "center" }, this.processedListItems.map(item => (h("duet-list-item", null, h("span", { slot: "label" }, item.label), h("span", { slot: "value" }, item.value)))))), this.buttonLabel && (h("duet-button", { url: this.buttonUrl, icon: this.icon, iconRight: this.iconRight, iconSize: this.iconSize, variation: buttonVariation, theme: this.theme, identifier: this.buttonId, onClick: event => this.handleClick(event, this.buttonData), fixed: true }, this.buttonLabel)), h("div", { class: "duet-hero-slot-unnamed" }, h("slot", null))), (this.variation === "gray" || this.variation === "minimal") && this.processedActions && (h("div", { class: "duet-hero-links" }, this.processedActions.map(item => (h("a", { class: "duet-hero-link", href: item.href, id: item.id, target: item.external ? "_blank" : "_self", onClick: event => this.handleClick(event, item) }, h("div", { class: "duet-hero-action-icon" }, h("duet-icon", { size: "small", margin: "none", name: item.icon, color: "currentColor", outline: outlineColor })), h("span", null, item.label), item.external && h("duet-visually-hidden", null, ", ", this.accessibleLabelExternal), item.external && (h("div", { class: "duet-hero-action-arrow" }, h("duet-icon", { icon: newWindowIcon.svg, size: "xx-small", margin: "none", color: "currentColor" })))))))), this.image &&
|
|
183
186
|
this.variation !== "image" &&
|
|
184
187
|
!campaignOrSection &&
|
|
185
188
|
this.variation !== "product" &&
|
|
@@ -9,7 +9,7 @@ import { createID } from "../../utils/create-id";
|
|
|
9
9
|
import { cleanValue, resetCursor } from "../../utils/input-utils";
|
|
10
10
|
import { isEnterKey, isEscapeKey } from "../../utils/keyboard-utils";
|
|
11
11
|
import { connectLanguageChangeObserver, disconnectLanguageChangeObserver, getLanguage, } from "../../utils/language-utils";
|
|
12
|
-
import {
|
|
12
|
+
import { checkNamedSlotElement } from "../../utils/slot-utils";
|
|
13
13
|
const icons = {
|
|
14
14
|
search: searchIcon,
|
|
15
15
|
email: emailIcon,
|
|
@@ -225,6 +225,7 @@ export class DuetInput {
|
|
|
225
225
|
inheritGlobalTheme(this);
|
|
226
226
|
this.disallowedPatternChange();
|
|
227
227
|
this.isCaptionVisible = !!this.caption;
|
|
228
|
+
checkNamedSlotElement(this.element, "tooltip", "duet-tooltip", 1, true);
|
|
228
229
|
}
|
|
229
230
|
componentDidLoad() {
|
|
230
231
|
if (this.variation === "revealable" && this.nativeInput.form) {
|
|
@@ -319,7 +320,7 @@ export class DuetInput {
|
|
|
319
320
|
"has-clear": this.clear,
|
|
320
321
|
"has-focus": this.isFocused,
|
|
321
322
|
disabled: this.disabled,
|
|
322
|
-
} }, h("div", { class: "duet-input-label-container" }, h("duet-label", { theme: this.theme === "turva" ? "turva" : "default", margin: this.isCaptionVisible ? "small" : "auto", color: this.labelColor, weight: this.labelWeight, id: this.labelId, for: identifier }, this.label), this.tooltip && (h("duet-tooltip", { class: "duet-input-tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label, theme: this.theme === "turva" ? "turva" : "default" }, this.tooltip)), h("slot", { name: "tooltip"
|
|
323
|
+
} }, h("div", { class: "duet-input-label-container" }, h("duet-label", { theme: this.theme === "turva" ? "turva" : "default", margin: this.isCaptionVisible ? "small" : "auto", color: this.labelColor, weight: this.labelWeight, id: this.labelId, for: identifier }, this.label), this.tooltip && (h("duet-tooltip", { class: "duet-input-tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label, theme: this.theme === "turva" ? "turva" : "default" }, this.tooltip)), h("slot", { name: "tooltip" })), this.caption && (h("duet-caption", { id: this.topCaptionId, size: "medium" }, this.caption)), h("div", { class: "duet-input-relative" }, this.placeholder && this.echoPlaceholder && (this.value || this.type === "time") && (h("duet-caption", { id: this.topCaptionPlaceholderId, class: "duet-input-placeholder", margin: "none", size: "small" }, this.placeholder)), h("input", Object.assign({ ref: input => (this.nativeInput = input), onInput: this.onInput, onBlur: this.onBlur, onFocus: this.onFocus, type: this.getInputType(), class: {
|
|
323
324
|
"duet-input": true,
|
|
324
325
|
disabled: this.disabled,
|
|
325
326
|
"is-number": this.component === "number",
|
|
@@ -77,11 +77,10 @@ export class DuetLink {
|
|
|
77
77
|
if (this.accessibleLabel) {
|
|
78
78
|
return this.accessibleLabel;
|
|
79
79
|
}
|
|
80
|
-
if (
|
|
81
|
-
return
|
|
80
|
+
if (this.external && this.element.textContent) {
|
|
81
|
+
return `${this.element.textContent}. ${this.accessibleLabelExternal}.`;
|
|
82
82
|
}
|
|
83
|
-
|
|
84
|
-
return `${capitalized}. ${this.external ? `${this.accessibleLabelExternal}.` : ""}`;
|
|
83
|
+
return null;
|
|
85
84
|
}
|
|
86
85
|
renderContent() {
|
|
87
86
|
return (h(Fragment, null, h("span", { class: "duet-link-content", part: "duet-link-content" }, h("slot", null)), Build.isBrowser && this.external && (h(Fragment, null, h("span", { class: "duet-link-external" }, "\u00A0", h("duet-icon", { icon: newWindowIcon.svg, size: "xx-small", margin: "none", color: "currentColor" }))))));
|
|
@@ -3,11 +3,12 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { h } from "@stencil/core";
|
|
5
5
|
import { disableBodyScroll, enableBodyScroll } from "body-scroll-lock/lib/bodyScrollLock.es6.js";
|
|
6
|
-
import {
|
|
6
|
+
import { inheritGlobalTheme } from "../../common";
|
|
7
7
|
import { createID } from "../../utils/create-id";
|
|
8
8
|
import { focusElement, FocusGuard } from "../../utils/focus-utils";
|
|
9
9
|
import { isEscapeKey } from "../../utils/keyboard-utils";
|
|
10
10
|
import { connectLanguageChangeObserver, disconnectLanguageChangeObserver, getLanguage, getLocaleString, } from "../../utils/language-utils";
|
|
11
|
+
import { hasSlot } from "../../utils/slot-utils";
|
|
11
12
|
import { Teleport } from "../../utils/teleport";
|
|
12
13
|
// The transition below is slightly higher than the actual CSS transition as VoiceOver on
|
|
13
14
|
// iOS has otherwise problems moving the focus from modal back to the original element.
|
|
@@ -6,7 +6,7 @@ import { inheritGlobalTheme } from "../../common/themeable-component";
|
|
|
6
6
|
import { createID } from "../../utils/create-id";
|
|
7
7
|
import { isArrowDownKey, isArrowLeftKey, isArrowRightKey, isArrowUpKey, isEnterKey, isEscapeKey, isTabKey, } from "../../utils/keyboard-utils";
|
|
8
8
|
import { connectLanguageChangeObserver, disconnectLanguageChangeObserver, getLanguage, } from "../../utils/language-utils";
|
|
9
|
-
import {
|
|
9
|
+
import { checkNamedSlotElement } from "../../utils/slot-utils";
|
|
10
10
|
import { parsePossibleJSON } from "../../utils/string-utils";
|
|
11
11
|
function toggleInArray(arr, item) {
|
|
12
12
|
return arr.includes(item) ? arr.filter(i => i !== item) : [...arr, item];
|
|
@@ -170,6 +170,7 @@ export class DuetMultiselect {
|
|
|
170
170
|
componentWillLoad() {
|
|
171
171
|
inheritGlobalTheme(this);
|
|
172
172
|
this.isCaptionVisible = !!this.caption;
|
|
173
|
+
checkNamedSlotElement(this.element, "tooltip", "duet-tooltip", 1, true);
|
|
173
174
|
this.refresh();
|
|
174
175
|
}
|
|
175
176
|
connectedCallback() {
|
|
@@ -207,7 +208,7 @@ export class DuetMultiselect {
|
|
|
207
208
|
"duet-theme-turva": this.theme === "turva",
|
|
208
209
|
"duet-input-top-caption-shown": this.isCaptionVisible,
|
|
209
210
|
"has-error": !!this.error,
|
|
210
|
-
}, onKeyDown: (e) => this.onMultiselectKeyDown(e) }, h("duet-label", { theme: this.theme === "turva" ? "turva" : "default", class: { "duet-has-tooltip": !!this.tooltip }, color: this.labelColor, weight: this.labelWeight, id: this.labelId, for: this.identifier }, this.label), this.tooltip && (h("duet-tooltip", { class: "duet-multiselect-tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), h("slot", { name: "tooltip"
|
|
211
|
+
}, onKeyDown: (e) => this.onMultiselectKeyDown(e) }, h("duet-label", { theme: this.theme === "turva" ? "turva" : "default", class: { "duet-has-tooltip": !!this.tooltip }, color: this.labelColor, weight: this.labelWeight, id: this.labelId, for: this.identifier }, this.label), this.tooltip && (h("duet-tooltip", { class: "duet-multiselect-tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), h("slot", { name: "tooltip" }), this.caption && (h("duet-caption", { id: this.topCaptionId, size: "medium" }, this.caption)), h("div", { class: "duet-multiselect-wrapper" }, h("button", { id: this.identifier, ref: el => (this.multiselectElement = el), class: { "duet-multiselect": true, "duet-multiselect-active": this.checkboxesVisible }, tabindex: "0", onClick: () => this.toggleCheckboxes(), onFocus: e => this.onFocus(e), onBlur: e => this.onBlur(e), role: "combobox", "aria-expanded": this.checkboxesVisible ? "true" : "false", "aria-haspopup": "listbox", "aria-labelledby": this.labelId, "aria-describedby": this.getDescribedBy(), "aria-owns": `${this.identifier}-checkboxes`, onKeyDown: (e) => this.onMultiselectInputKeyDown(e), disabled: this.disabled }, h("span", { role: "textbox", "aria-readonly": "true", "aria-multiline": "false", "aria-autocomplete": "none", "aria-controls": `${this.identifier}-checkboxes`, "aria-label": this.placeholderLabel[this.language], class: "duet-multiselect-label" }, this.placeholder), this.value && this.value.length > 0 && (h("span", { class: "duet-multiselect-badge" }, this.value.length, h("duet-visually-hidden", null, this.selectedLangObject[this.language], ", ", this.value.map(item => item.label).join(", ")))), h("svg", { class: { "duet-multiselect-icon": true, "duet-multiselect-icon--rotate": this.checkboxesVisible }, fill: "currentColor", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" }, h("path", { d: "m12 18.999c-.4 0-.776-.156-1.059-.438l-10.721-10.72c-.142-.142-.22-.33-.22-.531 0-.2.078-.389.22-.53.142-.142.33-.22.53-.22s.389.078.53.22l10.72 10.719 10.72-10.719c.142-.142.33-.22.53-.22s.389.078.53.22c.142.142.22.33.22.53s-.078.389-.22.53l-10.72 10.72c-.282.283-.659.439-1.06.439z" }))), h("div", { id: `${this.identifier}-checkboxes`, role: "listbox", class: {
|
|
211
212
|
"duet-multiselect-checkboxes": true,
|
|
212
213
|
"duet-multiselect-checkboxes-active": this.checkboxesVisible,
|
|
213
214
|
}, "aria-activedescendant": this.activeDescendant, "aria-multiselectable": "true" }, this.processedItems && this.allControls && (h("div", { class: "duet-multiselect-all-control-buttons" }, h("button", { class: "duet-multiselect-select-all", onClick: this.handleSelectAllClick, id: this.getOptionIdentifier(-2), onKeyDown: (e) => this.onCheckboxKeyDown(e, -2) }, this.selectAllLabel[this.language]), h("button", { class: "duet-multiselect-clear-all", onClick: this.handleClearAllClick, id: this.getOptionIdentifier(-1), onKeyDown: (e) => this.onCheckboxKeyDown(e, -1) }, this.clearAllLabel[this.language]))), this.processedItems &&
|
|
@@ -9,7 +9,7 @@ import { createID } from "../../utils/create-id";
|
|
|
9
9
|
import { isArrowDownKey, isArrowLeftKey, isArrowRightKey, isArrowUpKey, isBackspaceKey, subscribeTabbingChange, unsubscribeTabbingChange, } from "../../utils/keyboard-utils";
|
|
10
10
|
import { connectLanguageChangeObserver, disconnectLanguageChangeObserver, getLanguage, getLocale, getLocaleString, } from "../../utils/language-utils";
|
|
11
11
|
import { clamp, roundTo, SafeParseFloat } from "../../utils/math.utils";
|
|
12
|
-
import {
|
|
12
|
+
import { checkNamedSlotElement } from "../../utils/slot-utils";
|
|
13
13
|
/**
|
|
14
14
|
* @slot tooltip - Use to place a tooltip alongside the label.
|
|
15
15
|
*/
|
|
@@ -237,6 +237,7 @@ export class DuetNumberInput {
|
|
|
237
237
|
if (this.value) {
|
|
238
238
|
this.value = this.localizeValue(SafeParseFloat(this.value, this.locale));
|
|
239
239
|
}
|
|
240
|
+
checkNamedSlotElement(this.element, "tooltip", "duet-tooltip", 1, true);
|
|
240
241
|
}
|
|
241
242
|
connectedCallback() {
|
|
242
243
|
connectLanguageChangeObserver(this, [
|
|
@@ -291,7 +292,7 @@ export class DuetNumberInput {
|
|
|
291
292
|
"duet-theme-turva": this.theme === "turva",
|
|
292
293
|
"duet-expand": this.expand,
|
|
293
294
|
"duet-m-0": this.margin === "none",
|
|
294
|
-
} }, h("div", { class: "duet-number-container" }, h("duet-input", { ref: input => (this.duetInputElement = input), onDuetChange: event => this.handleChange(event), onDuetFocus: this.handleFocus, onDuetBlur: event => this.handleBlur(event), onKeyDown: event => this.handleKeyDown(event), label: this.label, value: this.value ? `${this.value} ${this.unit}` : "", error: this.error, "aria-valuemin": this.min, "aria-valuemax": this.max, "aria-valuenow": cleanedValue != null ? cleanedValue : "", maxlength: maxlength, name: this.name, component: "number", required: this.required, disabled: this.disabled, role: this.role, labelHidden: this.labelHidden, tooltip: this.tooltip, identifier: identifier, theme: this.theme, margin: "none", expand: true, numericKeyboard: true, autoComplete: "off", type: "text", accessibleActiveDescendant: this.accessibleActiveDescendant, accessibleLabelledBy: this.accessibleLabelledBy, accessibleDescription: this.accessibleDescription, accessibleDetails: this.accessibleDetails, accessibleControls: this.accessibleControls, accessibleOwns: this.accessibleOwns, accessibleDescribedBy: this.accessibleDescribedBy }, h("slot", { name: "tooltip"
|
|
295
|
+
} }, h("div", { class: "duet-number-container" }, h("duet-input", { ref: input => (this.duetInputElement = input), onDuetChange: event => this.handleChange(event), onDuetFocus: this.handleFocus, onDuetBlur: event => this.handleBlur(event), onKeyDown: event => this.handleKeyDown(event), label: this.label, value: this.value ? `${this.value} ${this.unit}` : "", error: this.error, "aria-valuemin": this.min, "aria-valuemax": this.max, "aria-valuenow": cleanedValue != null ? cleanedValue : "", maxlength: maxlength, name: this.name, component: "number", required: this.required, disabled: this.disabled, role: this.role, labelHidden: this.labelHidden, tooltip: this.tooltip, identifier: identifier, theme: this.theme, margin: "none", expand: true, numericKeyboard: true, autoComplete: "off", type: "text", accessibleActiveDescendant: this.accessibleActiveDescendant, accessibleLabelledBy: this.accessibleLabelledBy, accessibleDescription: this.accessibleDescription, accessibleDetails: this.accessibleDetails, accessibleControls: this.accessibleControls, accessibleOwns: this.accessibleOwns, accessibleDescribedBy: this.accessibleDescribedBy }, h("slot", { name: "tooltip" }), h("div", { class: { "duet-number-buttons": true, "duet-no-label": this.labelHidden } }, h("button", { "aria-controls": identifier, disabled: this.disabled, "aria-disabled": cleanedValue == null || cleanedValue === this.min ? "true" : "false", class: "duet-number-button duet-number-button-subtract", onClick: this.subtract, type: "button" }, h("duet-visually-hidden", null, this.accessibleSubtract, " ", this.step), h("duet-icon", { icon: subtractIcon.svg, size: "small", margin: "none", color: this.theme === "turva" ? "secondary-turva" : "secondary" })), h("button", { "aria-controls": identifier, disabled: this.disabled, "aria-disabled": cleanedValue === this.max ? "true" : "false", class: "duet-number-button duet-number-button-add", onClick: this.add, type: "button" }, h("duet-visually-hidden", null, this.accessibleAdd, " ", this.step), h("duet-icon", { icon: addIcon.svg, size: "small", margin: "none", color: this.theme === "turva" ? "secondary-turva" : "secondary" })))), this.accessibleLiveEnabled && (h("duet-visually-hidden", { "aria-live": "polite", "aria-atomic": "true", "aria-relevant": "all" }, this.formatAnnouncement())))));
|
|
295
296
|
}
|
|
296
297
|
static get is() { return "duet-number-input"; }
|
|
297
298
|
static get encapsulation() { return "scoped"; }
|
|
@@ -99,4 +99,14 @@
|
|
|
99
99
|
}
|
|
100
100
|
.duet-promo-card.duet-theme-turva .content-wrapper:focus {
|
|
101
101
|
box-shadow: 0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.duet-promo-card-link {
|
|
105
|
+
transition: box-shadow 300ms ease;
|
|
106
|
+
}
|
|
107
|
+
.duet-promo-card-link:hover {
|
|
108
|
+
box-shadow: 0 2px 6px 0 rgba(0, 41, 77, 0.07), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07), 0 2px 10px 0 rgba(0, 41, 77, 0.1);
|
|
109
|
+
}
|
|
110
|
+
.duet-promo-card-link:hover.duet-theme-turva {
|
|
111
|
+
box-shadow: 0 2px 6px 0 rgba(117, 117, 117, 0.13), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07), 0 2px 10px 0 rgba(117, 117, 117, 0.15);
|
|
102
112
|
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { h, Host } from "@stencil/core";
|
|
5
5
|
import { inheritGlobalTheme } from "../../common/themeable-component";
|
|
6
|
-
import {
|
|
6
|
+
import { checkNamedSlotElement, hasSlot } from "../../utils/slot-utils";
|
|
7
7
|
import { getColorByName } from "../../utils/token-utils";
|
|
8
8
|
/**
|
|
9
9
|
* @slot pre-heading - Slot for pre-heading content.
|
|
@@ -26,13 +26,17 @@ export class DuetPromoCard {
|
|
|
26
26
|
*/
|
|
27
27
|
componentWillLoad() {
|
|
28
28
|
inheritGlobalTheme(this);
|
|
29
|
-
this.hasPreHeadingSlot =
|
|
30
|
-
this.hasHeadingSlot =
|
|
31
|
-
this.hasDescriptionSlot =
|
|
32
|
-
this.hasActionSlot =
|
|
29
|
+
this.hasPreHeadingSlot = hasSlot(this.element, "pre-heading");
|
|
30
|
+
this.hasHeadingSlot = hasSlot(this.element, "heading");
|
|
31
|
+
this.hasDescriptionSlot = hasSlot(this.element, "description");
|
|
32
|
+
this.hasActionSlot = hasSlot(this.element, "action");
|
|
33
|
+
checkNamedSlotElement(this.element, "heading", "span");
|
|
34
|
+
checkNamedSlotElement(this.element, "description", "span");
|
|
33
35
|
}
|
|
34
36
|
/**
|
|
35
|
-
* Sets focus on underlying a element
|
|
37
|
+
* Sets focus on underlying a element.
|
|
38
|
+
* Available only when url attribute is used.
|
|
39
|
+
* Use this method instead of the native `focus()`.
|
|
36
40
|
*/
|
|
37
41
|
async setFocus(options) {
|
|
38
42
|
if (this.url && this.aOrDivElement) {
|
|
@@ -53,7 +57,8 @@ export class DuetPromoCard {
|
|
|
53
57
|
"duet-promo-card": true,
|
|
54
58
|
"duet-theme-turva": this.theme === "turva",
|
|
55
59
|
"no-bg-color": !this.backgroundColor,
|
|
56
|
-
|
|
60
|
+
"duet-promo-card-link": !!this.url,
|
|
61
|
+
}, style: bannerStyles }, h(TagName, { href: this.url, class: "content-wrapper", ref: element => (this.aOrDivElement = element) }, h("img", { class: "image", src: this.image, alt: "", role: "presentation" }), h("div", { class: "content" }, this.hasPreHeadingSlot && (h("div", { class: "pre-heading" }, h("slot", { name: "pre-heading" }))), this.hasHeadingSlot && (h("div", { class: "heading" }, h("duet-heading", { theme: this.theme, level: this.headingLevel, "visual-level": "h3", margin: "none", color: this.textColor }, h("span", null, h("slot", { name: "heading" }))))), this.hasDescriptionSlot && (h("div", { class: "description" }, h("duet-paragraph", { theme: this.theme, margin: "none", color: this.textColor }, h("span", null, h("slot", { name: "description" }))))), this.hasActionSlot && (h("div", { class: "action" }, h("slot", { name: "action" }))))))));
|
|
57
62
|
}
|
|
58
63
|
static get is() { return "duet-promo-card"; }
|
|
59
64
|
static get encapsulation() { return "shadow"; }
|
|
@@ -249,7 +254,7 @@ export class DuetPromoCard {
|
|
|
249
254
|
"return": "Promise<void>"
|
|
250
255
|
},
|
|
251
256
|
"docs": {
|
|
252
|
-
"text": "Sets focus on underlying a element when url attribute is used
|
|
257
|
+
"text": "Sets focus on underlying a element.\nAvailable only when url attribute is used.\nUse this method instead of the native `focus()`.",
|
|
253
258
|
"tags": []
|
|
254
259
|
}
|
|
255
260
|
}
|