@duetds/components 6.0.3 → 6.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/hydrate/index.js +77 -70
- package/lib/cjs/duet-action-button.cjs.entry.js +3 -3
- package/lib/cjs/duet-alert.cjs.entry.js +1 -1
- package/lib/cjs/duet-badge.cjs.entry.js +1 -1
- 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 +3 -3
- package/lib/cjs/duet-caption_4.cjs.entry.js +3 -3
- package/lib/cjs/duet-card.cjs.entry.js +3 -3
- package/lib/cjs/duet-checkbox.cjs.entry.js +1 -1
- package/lib/cjs/duet-choice_2.cjs.entry.js +10 -9
- package/lib/cjs/duet-collapsible.cjs.entry.js +2 -2
- package/lib/cjs/duet-combobox.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 +2 -2
- package/lib/cjs/duet-divider_2.cjs.entry.js +1 -1
- package/lib/cjs/duet-editable-table_3.cjs.entry.js +17 -14
- package/lib/cjs/duet-empty-state.cjs.entry.js +1 -1
- package/lib/cjs/duet-fieldset.cjs.entry.js +1 -1
- package/lib/cjs/duet-footer.cjs.entry.js +1 -1
- package/lib/cjs/duet-grid_2.cjs.entry.js +2 -2
- package/lib/cjs/duet-header_2.cjs.entry.js +3 -3
- package/lib/cjs/duet-hero.cjs.entry.js +1 -1
- package/lib/cjs/duet-icon.cjs.entry.js +3 -3
- package/lib/cjs/duet-input_2.cjs.entry.js +1 -1
- 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-modal.cjs.entry.js +2 -2
- package/lib/cjs/duet-notification_2.cjs.entry.js +1 -1
- package/lib/cjs/duet-number-input.cjs.entry.js +1 -1
- package/lib/cjs/duet-pagination_2.cjs.entry.js +25 -27
- package/lib/cjs/duet-progress.cjs.entry.js +1 -1
- package/lib/cjs/duet-radio_2.cjs.entry.js +1 -1
- package/lib/cjs/duet-range-slider.cjs.entry.js +2 -2
- package/lib/cjs/duet-scrollable_3.cjs.entry.js +1 -1
- package/lib/cjs/duet-select.cjs.entry.js +1 -1
- package/lib/cjs/duet-step_2.cjs.entry.js +1 -1
- package/lib/cjs/duet-textarea.cjs.entry.js +1 -1
- package/lib/cjs/duet-toggle.cjs.entry.js +1 -1
- package/lib/cjs/duet-tooltip.cjs.entry.js +1 -1
- package/lib/cjs/duet-tray.cjs.entry.js +2 -2
- package/lib/cjs/duet-upload-aria-status.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-15207057.js → focus-utils-bbba1f98.js} +1 -1
- package/lib/cjs/{index-28a9133b.js → index-af927d29.js} +1 -1
- package/lib/cjs/loader.cjs.js +1 -1
- package/lib/cjs/{token-utils-fef5b4eb.js → token-utils-f6e2f4ef.js} +1 -1
- package/lib/cjs/{tokens-29450bcb.js → tokens-4c69b122.js} +18 -15
- package/lib/cjs/{tokens.module-ef598645.js → tokens.module-1bb2d45e.js} +12 -10
- package/lib/collection/components/duet-choice/duet-choice.js +4 -4
- package/lib/collection/components/duet-choice-group/duet-choice-group.js +4 -3
- package/lib/collection/components/duet-range-stepper/duet-range-stepper.js +25 -27
- package/lib/collection/components/duet-upload/duet-upload.js +18 -15
- package/lib/dist-custom-elements/duet-action-button.d.ts +11 -0
- package/lib/dist-custom-elements/duet-action-button.js +9 -0
- package/lib/dist-custom-elements/duet-alert.d.ts +11 -0
- package/lib/dist-custom-elements/duet-alert.js +9 -0
- package/lib/dist-custom-elements/duet-badge.d.ts +11 -0
- package/lib/dist-custom-elements/duet-badge.js +9 -0
- package/lib/dist-custom-elements/duet-breadcrumb.d.ts +11 -0
- package/lib/dist-custom-elements/duet-breadcrumb.js +73 -0
- package/lib/dist-custom-elements/duet-breadcrumbs.d.ts +11 -0
- package/lib/dist-custom-elements/duet-breadcrumbs.js +90 -0
- package/lib/dist-custom-elements/duet-button.d.ts +11 -0
- package/lib/dist-custom-elements/duet-button.js +9 -0
- package/lib/dist-custom-elements/duet-caption.d.ts +11 -0
- package/lib/dist-custom-elements/duet-caption.js +9 -0
- package/lib/dist-custom-elements/duet-card.d.ts +11 -0
- package/lib/dist-custom-elements/duet-card.js +190 -0
- package/lib/dist-custom-elements/duet-checkbox.d.ts +11 -0
- package/lib/dist-custom-elements/duet-checkbox.js +163 -0
- package/lib/dist-custom-elements/duet-choice-group.d.ts +11 -0
- package/lib/dist-custom-elements/duet-choice-group.js +227 -0
- package/lib/dist-custom-elements/duet-choice.d.ts +11 -0
- package/lib/dist-custom-elements/duet-choice.js +390 -0
- package/lib/dist-custom-elements/duet-collapsible.d.ts +11 -0
- package/lib/dist-custom-elements/duet-collapsible.js +170 -0
- package/lib/dist-custom-elements/duet-combobox.d.ts +11 -0
- package/lib/dist-custom-elements/duet-combobox.js +432 -0
- package/lib/dist-custom-elements/duet-cookie-consent.d.ts +11 -0
- package/lib/dist-custom-elements/duet-cookie-consent.js +94 -0
- package/lib/dist-custom-elements/duet-date-picker.d.ts +11 -0
- package/lib/dist-custom-elements/duet-date-picker.js +906 -0
- package/lib/dist-custom-elements/duet-divider.d.ts +11 -0
- package/lib/dist-custom-elements/duet-divider.js +9 -0
- package/lib/dist-custom-elements/duet-editable-table.d.ts +11 -0
- package/lib/dist-custom-elements/duet-editable-table.js +9 -0
- package/lib/dist-custom-elements/duet-empty-state.d.ts +11 -0
- package/lib/dist-custom-elements/duet-empty-state.js +9 -0
- package/lib/dist-custom-elements/duet-fieldset.d.ts +11 -0
- package/lib/dist-custom-elements/duet-fieldset.js +9 -0
- package/lib/dist-custom-elements/duet-footer.d.ts +11 -0
- package/lib/dist-custom-elements/duet-footer.js +199 -0
- package/lib/dist-custom-elements/duet-grid-item.d.ts +11 -0
- package/lib/dist-custom-elements/duet-grid-item.js +9 -0
- package/lib/dist-custom-elements/duet-grid.d.ts +11 -0
- package/lib/dist-custom-elements/duet-grid.js +9 -0
- package/lib/dist-custom-elements/duet-header.d.ts +11 -0
- package/lib/dist-custom-elements/duet-header.js +764 -0
- package/lib/dist-custom-elements/duet-heading.d.ts +11 -0
- package/lib/dist-custom-elements/duet-heading.js +9 -0
- package/lib/dist-custom-elements/duet-hero.d.ts +11 -0
- package/lib/dist-custom-elements/duet-hero.js +314 -0
- package/lib/dist-custom-elements/duet-icon.d.ts +11 -0
- package/lib/dist-custom-elements/duet-icon.js +9 -0
- package/lib/dist-custom-elements/duet-input.d.ts +11 -0
- package/lib/dist-custom-elements/duet-input.js +9 -0
- package/lib/dist-custom-elements/duet-label.d.ts +11 -0
- package/lib/dist-custom-elements/duet-label.js +9 -0
- package/lib/dist-custom-elements/duet-layout.d.ts +11 -0
- package/lib/dist-custom-elements/duet-layout.js +107 -0
- package/lib/dist-custom-elements/duet-link.d.ts +11 -0
- package/lib/dist-custom-elements/duet-link.js +9 -0
- package/lib/dist-custom-elements/duet-list-item.d.ts +11 -0
- package/lib/dist-custom-elements/duet-list-item.js +9 -0
- package/lib/dist-custom-elements/duet-list.d.ts +11 -0
- package/lib/dist-custom-elements/duet-list.js +9 -0
- package/lib/dist-custom-elements/duet-logo.d.ts +11 -0
- package/lib/dist-custom-elements/duet-logo.js +9 -0
- package/lib/dist-custom-elements/duet-modal.d.ts +11 -0
- package/lib/dist-custom-elements/duet-modal.js +331 -0
- package/lib/dist-custom-elements/duet-notification-drawer.d.ts +11 -0
- package/lib/dist-custom-elements/duet-notification-drawer.js +194 -0
- package/lib/dist-custom-elements/duet-notification.d.ts +11 -0
- package/lib/dist-custom-elements/duet-notification.js +114 -0
- package/lib/dist-custom-elements/duet-number-input.d.ts +11 -0
- package/lib/dist-custom-elements/duet-number-input.js +516 -0
- package/lib/dist-custom-elements/duet-pagination.d.ts +11 -0
- package/lib/dist-custom-elements/duet-pagination.js +396 -0
- package/lib/dist-custom-elements/duet-paragraph.d.ts +11 -0
- package/lib/dist-custom-elements/duet-paragraph.js +9 -0
- package/lib/dist-custom-elements/duet-progress.d.ts +11 -0
- package/lib/dist-custom-elements/duet-progress.js +9 -0
- package/lib/dist-custom-elements/duet-radio-group.d.ts +11 -0
- package/lib/dist-custom-elements/duet-radio-group.js +216 -0
- package/lib/dist-custom-elements/duet-radio.d.ts +11 -0
- package/lib/dist-custom-elements/duet-radio.js +167 -0
- package/lib/dist-custom-elements/duet-range-slider.d.ts +11 -0
- package/lib/dist-custom-elements/duet-range-slider.js +209 -0
- package/lib/dist-custom-elements/duet-range-stepper.d.ts +11 -0
- package/lib/dist-custom-elements/duet-range-stepper.js +223 -0
- package/lib/dist-custom-elements/duet-scrollable.d.ts +11 -0
- package/lib/dist-custom-elements/duet-scrollable.js +9 -0
- package/lib/dist-custom-elements/duet-select.d.ts +11 -0
- package/lib/dist-custom-elements/duet-select.js +9 -0
- package/lib/dist-custom-elements/duet-spacer.d.ts +11 -0
- package/lib/dist-custom-elements/duet-spacer.js +9 -0
- package/lib/dist-custom-elements/duet-spinner.d.ts +11 -0
- package/lib/dist-custom-elements/duet-spinner.js +9 -0
- package/lib/dist-custom-elements/duet-step.d.ts +11 -0
- package/lib/dist-custom-elements/duet-step.js +150 -0
- package/lib/dist-custom-elements/duet-stepper.d.ts +11 -0
- package/lib/dist-custom-elements/duet-stepper.js +164 -0
- package/lib/dist-custom-elements/duet-tab-group.d.ts +11 -0
- package/lib/dist-custom-elements/duet-tab-group.js +301 -0
- package/lib/dist-custom-elements/duet-tab.d.ts +11 -0
- package/lib/dist-custom-elements/duet-tab.js +59 -0
- package/lib/dist-custom-elements/duet-table.d.ts +11 -0
- package/lib/dist-custom-elements/duet-table.js +9 -0
- package/lib/dist-custom-elements/duet-textarea.d.ts +11 -0
- package/lib/dist-custom-elements/duet-textarea.js +297 -0
- package/lib/dist-custom-elements/duet-toggle.d.ts +11 -0
- package/lib/dist-custom-elements/duet-toggle.js +150 -0
- package/lib/dist-custom-elements/duet-tooltip.d.ts +11 -0
- package/lib/dist-custom-elements/duet-tooltip.js +9 -0
- package/lib/dist-custom-elements/duet-tray.d.ts +11 -0
- package/lib/dist-custom-elements/duet-tray.js +175 -0
- package/lib/dist-custom-elements/duet-upload-aria-status.d.ts +11 -0
- package/lib/dist-custom-elements/duet-upload-aria-status.js +9 -0
- package/lib/dist-custom-elements/duet-upload.d.ts +11 -0
- package/lib/dist-custom-elements/duet-upload.js +1514 -0
- package/lib/dist-custom-elements/duet-visually-hidden.d.ts +11 -0
- package/lib/dist-custom-elements/duet-visually-hidden.js +9 -0
- package/lib/dist-custom-elements/index.d.ts +26 -0
- package/lib/dist-custom-elements/index.js +37 -0
- package/lib/{esm/tokens-8ff8c570.js → dist-custom-elements/p-02305a1e.js} +18 -15
- package/lib/dist-custom-elements/p-0b3f675e.js +47 -0
- package/lib/{esm/focus-utils-559691b3.js → dist-custom-elements/p-0b8f16f1.js} +1 -1
- package/lib/dist-custom-elements/p-0ce83b83.js +154 -0
- package/lib/dist-custom-elements/p-0f5b2dfe.js +287 -0
- package/lib/dist-custom-elements/p-115c79b6.js +6 -0
- package/lib/dist-custom-elements/p-12721178.js +57 -0
- package/lib/dist-custom-elements/p-166d7b9c.js +199 -0
- package/lib/dist-custom-elements/p-1ad6b04e.js +1666 -0
- package/lib/dist-custom-elements/p-21887c28.js +275 -0
- package/lib/dist-custom-elements/p-24c2ac51.js +114 -0
- package/lib/dist-custom-elements/p-266411cf.js +307 -0
- package/lib/dist-custom-elements/p-2bb345c0.js +193 -0
- package/lib/dist-custom-elements/p-32a67b55.js +87 -0
- package/lib/dist-custom-elements/p-4c52333e.js +341 -0
- package/lib/dist-custom-elements/p-4ebf1618.js +13 -0
- package/lib/dist-custom-elements/p-4f516732.js +214 -0
- package/lib/dist-custom-elements/p-53a0c93d.js +37 -0
- package/lib/dist-custom-elements/p-544d933d.js +61 -0
- package/lib/dist-custom-elements/p-56118313.js +53 -0
- package/lib/dist-custom-elements/p-56b5945f.js +160 -0
- package/lib/dist-custom-elements/p-5a9d75e1.js +55 -0
- package/lib/dist-custom-elements/p-692cc270.js +125 -0
- package/lib/dist-custom-elements/p-6cae0682.js +75 -0
- package/lib/dist-custom-elements/p-704245ef.js +9 -0
- package/lib/dist-custom-elements/p-76f00bd5.js +10 -0
- package/lib/dist-custom-elements/p-7a003d73.js +37 -0
- package/lib/dist-custom-elements/p-7f5ad01d.js +64 -0
- package/lib/{esm/token-utils-df78f4d8.js → dist-custom-elements/p-86faf728.js} +1 -1
- package/lib/dist-custom-elements/p-8f69f7ca.js +428 -0
- package/lib/dist-custom-elements/p-92012dcc.js +71 -0
- package/lib/dist-custom-elements/p-9af8e9da.js +70 -0
- package/lib/dist-custom-elements/p-a087e30a.js +86 -0
- package/lib/dist-custom-elements/p-b9058029.js +138 -0
- package/lib/dist-custom-elements/p-bd779757.js +184 -0
- package/lib/dist-custom-elements/p-c0469b33.js +133 -0
- package/lib/dist-custom-elements/p-c1325e35.js +11 -0
- package/lib/dist-custom-elements/p-c8d44e6d.js +87 -0
- package/lib/dist-custom-elements/p-cfab50b5.js +110 -0
- package/lib/dist-custom-elements/p-d004da5f.js +6 -0
- package/lib/dist-custom-elements/p-d11287e1.js +129 -0
- package/lib/dist-custom-elements/p-d4c234ed.js +390 -0
- package/lib/dist-custom-elements/p-d8549efe.js +20 -0
- package/lib/dist-custom-elements/p-db91a981.js +98 -0
- package/lib/dist-custom-elements/p-e121eb6d.js +241 -0
- package/lib/dist-custom-elements/p-ede854e1.js +92 -0
- package/lib/dist-custom-elements/p-ee9a63c3.js +65 -0
- package/lib/dist-custom-elements/p-f11208c3.js +6 -0
- package/lib/dist-custom-elements/p-f1d0dca7.js +275 -0
- package/lib/dist-custom-elements/p-fb6be4e4.js +66 -0
- package/lib/duet/duet.esm.js +1 -1
- package/lib/duet/duet.js +1 -1
- package/lib/duet/{p-4c93a18e.system.entry.js → p-01ec746a.system.entry.js} +1 -1
- package/lib/duet/p-02305a1e.js +4 -0
- package/lib/duet/{p-674e546f.system.entry.js → p-02a0c4f6.system.entry.js} +1 -1
- package/lib/duet/{p-b01e2523.entry.js → p-02fec3bd.entry.js} +1 -1
- package/lib/duet/{p-300147ad.entry.js → p-032a5071.entry.js} +1 -1
- package/lib/duet/{p-0626271f.entry.js → p-08fe21b1.entry.js} +1 -1
- package/lib/duet/{p-d0cee171.entry.js → p-0b0c7f09.entry.js} +1 -1
- package/lib/duet/{p-1931d33f.system.js → p-100c6ed7.system.js} +1 -1
- package/lib/duet/{p-dab594cf.system.entry.js → p-168a22df.system.entry.js} +1 -1
- package/lib/duet/p-1fc60a60.system.js +4 -0
- package/lib/duet/{p-bb9624c3.entry.js → p-24dafa59.entry.js} +1 -1
- package/lib/duet/{p-d444107c.system.entry.js → p-28fcab59.system.entry.js} +1 -1
- package/lib/duet/{p-db15d420.system.entry.js → p-292ab686.system.entry.js} +1 -1
- package/lib/duet/{p-de986d77.system.entry.js → p-293b8c58.system.entry.js} +1 -1
- package/lib/duet/{p-9308c1e6.entry.js → p-2c698aec.entry.js} +1 -1
- package/lib/duet/p-32f7178a.system.js +4 -0
- package/lib/duet/{p-92d95bde.system.entry.js → p-3967595b.system.entry.js} +1 -1
- package/lib/duet/{p-72443e94.system.entry.js → p-414b1ba7.system.entry.js} +1 -1
- package/lib/duet/{p-ae515c54.entry.js → p-422d7157.entry.js} +1 -1
- package/lib/duet/{p-9fcac068.system.entry.js → p-4df190b5.system.entry.js} +1 -1
- package/lib/duet/{p-c41b07d7.entry.js → p-50eb1959.entry.js} +1 -1
- package/lib/duet/{p-de3c0f4d.js → p-532e9db7.js} +1 -1
- package/lib/duet/{p-16521f2d.entry.js → p-552ce747.entry.js} +1 -1
- package/lib/duet/{p-398a79a0.js → p-588be556.js} +1 -1
- package/lib/duet/{p-b008fe25.entry.js → p-58c58219.entry.js} +1 -1
- package/lib/duet/{p-2bd79d6b.entry.js → p-5b7db3d5.entry.js} +1 -1
- package/lib/duet/{p-5d967d15.entry.js → p-5bb6f856.entry.js} +1 -1
- package/lib/duet/{p-20271117.entry.js → p-62ff683a.entry.js} +1 -1
- package/lib/duet/{p-e1654a8b.system.entry.js → p-65206bf2.system.entry.js} +1 -1
- package/lib/duet/{p-2bba6489.entry.js → p-66bb00c2.entry.js} +1 -1
- package/lib/duet/{p-49db53a1.system.entry.js → p-6cc35a71.system.entry.js} +1 -1
- package/lib/duet/{p-63dbd5af.system.entry.js → p-7431ad27.system.entry.js} +1 -1
- package/lib/duet/{p-df11c241.system.entry.js → p-74bcd39f.system.entry.js} +1 -1
- package/lib/duet/{p-e2ac0727.system.entry.js → p-76fd11ff.system.entry.js} +1 -1
- package/lib/duet/{p-339e5901.system.js → p-7871ef0a.system.js} +1 -1
- package/lib/duet/{p-1aca544d.entry.js → p-79160b90.entry.js} +1 -1
- package/lib/duet/{p-23ad5f8a.entry.js → p-7d71fd3b.entry.js} +1 -1
- package/lib/duet/{p-946aa901.system.entry.js → p-7d866e2a.system.entry.js} +1 -1
- package/lib/duet/{p-9e54127f.system.entry.js → p-83120829.system.entry.js} +1 -1
- package/lib/duet/{p-d0f72f22.js → p-85c3f82e.js} +1 -1
- package/lib/duet/{p-06ab2787.system.entry.js → p-85df6ff1.system.entry.js} +1 -1
- package/lib/duet/{p-68c3b19f.entry.js → p-86567f28.entry.js} +1 -1
- package/lib/duet/{p-104bf1b5.entry.js → p-8669b09e.entry.js} +1 -1
- package/lib/duet/{p-9f18afd6.entry.js → p-88819152.entry.js} +1 -1
- package/lib/duet/{p-5d1787cb.entry.js → p-89dc739e.entry.js} +1 -1
- package/lib/duet/{p-6c875cfa.system.entry.js → p-8a4d7ae9.system.entry.js} +1 -1
- package/lib/duet/{p-571440c7.system.entry.js → p-8edd208a.system.entry.js} +1 -1
- package/lib/duet/{p-691f609b.entry.js → p-8efd9495.entry.js} +1 -1
- package/lib/duet/{p-c5499bc3.entry.js → p-8f222a1b.entry.js} +1 -1
- package/lib/duet/{p-6b0a4b3b.entry.js → p-98ba3424.entry.js} +1 -1
- package/lib/duet/{p-31004a7b.system.entry.js → p-996ba330.system.entry.js} +1 -1
- package/lib/duet/{p-de815460.system.entry.js → p-9999e5fa.system.entry.js} +1 -1
- package/lib/duet/{p-de146ffa.system.entry.js → p-9bae46c2.system.entry.js} +1 -1
- package/lib/duet/{p-ab2f08b3.system.entry.js → p-9cb366b1.system.entry.js} +1 -1
- package/lib/duet/{p-8c409ffe.system.entry.js → p-a3de163c.system.entry.js} +1 -1
- package/lib/duet/{p-064dd5fd.entry.js → p-a40a7074.entry.js} +1 -1
- package/lib/duet/{p-1010fb94.entry.js → p-a463d7ba.entry.js} +1 -1
- package/lib/duet/{p-087d72dd.system.entry.js → p-a755f378.system.entry.js} +1 -1
- package/lib/duet/{p-b066a6b7.entry.js → p-a78c751d.entry.js} +1 -1
- package/lib/duet/{p-c8d9da51.entry.js → p-aae486b1.entry.js} +1 -1
- package/lib/duet/{p-0f7f7e7d.system.entry.js → p-ade95c1a.system.entry.js} +1 -1
- package/lib/duet/{p-9f8a51b4.system.entry.js → p-ae270d5c.system.entry.js} +1 -1
- package/lib/duet/{p-94c07a46.system.entry.js → p-afd48ab5.system.entry.js} +1 -1
- package/lib/duet/{p-f2eaad1e.js → p-b1931fae.js} +1 -1
- package/lib/duet/{p-e3983bfe.entry.js → p-b1b6bfaf.entry.js} +1 -1
- package/lib/duet/{p-6eecfced.system.entry.js → p-bcaa46bc.system.entry.js} +1 -1
- package/lib/duet/{p-eb54474f.system.entry.js → p-bd95bbac.system.entry.js} +1 -1
- package/lib/duet/{p-09364233.entry.js → p-c14e364f.entry.js} +1 -1
- package/lib/duet/{p-074bfd45.entry.js → p-cd24ed34.entry.js} +1 -1
- package/lib/duet/{p-8157e5bb.system.entry.js → p-ceaefc71.system.entry.js} +1 -1
- package/lib/duet/{p-18cc5627.system.js → p-d209191d.system.js} +1 -1
- package/lib/duet/{p-5658ac20.system.entry.js → p-d33ad700.system.entry.js} +1 -1
- package/lib/duet/{p-41cb95cb.entry.js → p-d5700477.entry.js} +1 -1
- package/lib/duet/{p-b3dc55a6.system.entry.js → p-d8c1e717.system.entry.js} +1 -1
- package/lib/duet/{p-cca9c605.system.entry.js → p-d8e4683f.system.entry.js} +1 -1
- package/lib/duet/{p-0ae59d7c.entry.js → p-db5582e2.entry.js} +1 -1
- package/lib/duet/{p-f7ac05dd.system.entry.js → p-dc3379cf.system.entry.js} +1 -1
- package/lib/duet/{p-cfa50753.system.js → p-ddc42b65.system.js} +1 -1
- package/lib/duet/{p-3cc55c8a.system.entry.js → p-e1c35023.system.entry.js} +1 -1
- package/lib/duet/p-e6d75fab.entry.js +4 -0
- package/lib/duet/{p-89048c6f.entry.js → p-e99cfa9a.entry.js} +1 -1
- package/lib/duet/{p-4034b322.system.entry.js → p-ec08089e.system.entry.js} +1 -1
- package/lib/duet/{p-bec24271.system.entry.js → p-ec45b5c6.system.entry.js} +1 -1
- package/lib/duet/{p-5beb69ac.entry.js → p-ed41265b.entry.js} +1 -1
- package/lib/duet/{p-744ce6ce.entry.js → p-ed985877.entry.js} +1 -1
- package/lib/duet/p-f5cac1af.entry.js +4 -0
- package/lib/duet/{p-e0f6ebf4.system.entry.js → p-f6725c7b.system.entry.js} +1 -1
- package/lib/duet/{p-c2e37fb4.entry.js → p-f7012b1f.entry.js} +1 -1
- package/lib/duet/{p-23ba48a5.system.entry.js → p-f7856429.system.entry.js} +1 -1
- package/lib/duet/{p-97a369d6.entry.js → p-f9d05a5c.entry.js} +1 -1
- package/lib/duet/{p-ef4b4f35.entry.js → p-fb798cb8.entry.js} +1 -1
- package/lib/duet/{p-47ed8218.entry.js → p-fcbf70a6.entry.js} +1 -1
- package/lib/duet/{p-3d029dce.system.entry.js → p-fcc58f66.system.entry.js} +1 -1
- package/lib/duet/{p-db115036.entry.js → p-fdd0a7df.entry.js} +1 -1
- package/lib/duet/{p-6841adb8.system.entry.js → p-feae179e.system.entry.js} +1 -1
- package/lib/esm/duet-action-button.entry.js +3 -3
- package/lib/esm/duet-alert.entry.js +1 -1
- package/lib/esm/duet-badge.entry.js +1 -1
- 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 +3 -3
- package/lib/esm/duet-caption_4.entry.js +3 -3
- package/lib/esm/duet-card.entry.js +3 -3
- package/lib/esm/duet-checkbox.entry.js +1 -1
- package/lib/esm/duet-choice_2.entry.js +10 -9
- package/lib/esm/duet-collapsible.entry.js +2 -2
- package/lib/esm/duet-combobox.entry.js +1 -1
- package/lib/esm/duet-cookie-consent.entry.js +1 -1
- package/lib/esm/duet-date-picker.entry.js +2 -2
- package/lib/esm/duet-divider_2.entry.js +1 -1
- package/lib/esm/duet-editable-table_3.entry.js +17 -14
- package/lib/esm/duet-empty-state.entry.js +1 -1
- package/lib/esm/duet-fieldset.entry.js +1 -1
- package/lib/esm/duet-footer.entry.js +1 -1
- package/lib/esm/duet-grid_2.entry.js +2 -2
- package/lib/esm/duet-header_2.entry.js +3 -3
- package/lib/esm/duet-hero.entry.js +1 -1
- package/lib/esm/duet-icon.entry.js +3 -3
- package/lib/esm/duet-input_2.entry.js +1 -1
- package/lib/esm/duet-layout.entry.js +1 -1
- package/lib/esm/duet-list_2.entry.js +1 -1
- package/lib/esm/duet-modal.entry.js +2 -2
- package/lib/esm/duet-notification_2.entry.js +1 -1
- package/lib/esm/duet-number-input.entry.js +1 -1
- package/lib/esm/duet-pagination_2.entry.js +25 -27
- package/lib/esm/duet-progress.entry.js +1 -1
- package/lib/esm/duet-radio_2.entry.js +1 -1
- package/lib/esm/duet-range-slider.entry.js +2 -2
- package/lib/esm/duet-scrollable_3.entry.js +1 -1
- package/lib/esm/duet-select.entry.js +1 -1
- package/lib/esm/duet-step_2.entry.js +1 -1
- package/lib/esm/duet-textarea.entry.js +1 -1
- package/lib/esm/duet-toggle.entry.js +1 -1
- package/lib/esm/duet-tooltip.entry.js +1 -1
- package/lib/esm/duet-tray.entry.js +2 -2
- package/lib/esm/duet-upload-aria-status.entry.js +1 -1
- package/lib/esm/duet-visually-hidden.entry.js +1 -1
- package/lib/esm/duet.js +1 -1
- package/lib/esm/focus-utils-b515b88b.js +18 -0
- package/lib/esm/{index-f600b8dc.js → index-d8c3ba71.js} +1 -1
- package/lib/esm/loader.js +1 -1
- package/lib/esm/token-utils-ebf797ab.js +92 -0
- package/lib/esm/tokens-b9d87fda.js +459 -0
- package/lib/esm/{tokens.module-f4572ed7.js → tokens.module-385c4cf8.js} +12 -10
- 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-breadcrumb.entry.js +1 -1
- package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
- package/lib/esm-es5/duet-button_2.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-choice_2.entry.js +1 -1
- package/lib/esm-es5/duet-collapsible.entry.js +2 -2
- package/lib/esm-es5/duet-combobox.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-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 +1 -1
- 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-modal.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-pagination_2.entry.js +1 -1
- package/lib/esm-es5/duet-progress.entry.js +1 -1
- 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-select.entry.js +1 -1
- package/lib/esm-es5/duet-step_2.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-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-visually-hidden.entry.js +1 -1
- package/lib/esm-es5/duet.js +1 -1
- package/lib/esm-es5/{focus-utils-559691b3.js → focus-utils-b515b88b.js} +1 -1
- package/lib/esm-es5/{index-f600b8dc.js → index-d8c3ba71.js} +1 -1
- package/lib/esm-es5/loader.js +1 -1
- package/lib/esm-es5/{token-utils-df78f4d8.js → token-utils-ebf797ab.js} +1 -1
- package/lib/esm-es5/tokens-b9d87fda.js +4 -0
- package/lib/esm-es5/{tokens.module-f4572ed7.js → tokens.module-385c4cf8.js} +1 -1
- package/lib/types/components/duet-choice-group/duet-choice-group.d.ts +1 -0
- package/lib/types/components/duet-range-stepper/duet-range-stepper.d.ts +2 -2
- package/lib/types/components/duet-upload/duet-upload.d.ts +8 -8
- package/lib/types/components.d.ts +6 -6
- package/package.json +5 -5
- package/lib/custom-elements-bundle/index.d.ts +0 -399
- package/lib/custom-elements-bundle/index.js +0 -14110
- package/lib/duet/p-6002f3d2.system.js +0 -4
- package/lib/duet/p-7c198c75.entry.js +0 -4
- package/lib/duet/p-a93a04b9.system.js +0 -4
- package/lib/duet/p-d1746325.js +0 -4
- package/lib/duet/p-f2ab3e5c.entry.js +0 -4
- package/lib/esm-es5/tokens-8ff8c570.js +0 -4
|
@@ -0,0 +1,341 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Built with Duet Design System
|
|
3
|
+
*/
|
|
4
|
+
import { p as proxyCustomElement, H, c as createEvent, h, b as Host } from './p-1ad6b04e.js';
|
|
5
|
+
import { i as inheritGlobalTheme } from './p-4ebf1618.js';
|
|
6
|
+
import { D as DuetStringsExternalDefaults } from './p-76f00bd5.js';
|
|
7
|
+
import { a as getLanguage, g as getLocaleString } from './p-ede854e1.js';
|
|
8
|
+
import { g as getColorByName } from './p-86faf728.js';
|
|
9
|
+
import { d as defineCustomElement$3 } from './p-4f516732.js';
|
|
10
|
+
import { d as defineCustomElement$2 } from './p-6cae0682.js';
|
|
11
|
+
import { d as defineCustomElement$1 } from './p-53a0c93d.js';
|
|
12
|
+
|
|
13
|
+
const duetButtonCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:8px !important;margin-bottom:12px !important;position:relative;z-index:1;display:inline-flex;width:auto;max-width:100%;vertical-align:bottom;-webkit-tap-highlight-color:transparent}:host:last-child,:host:last-of-type{margin-right:0 !important}@media (max-width: 35.9375em){:host{width:100%}}:host(.input-button){z-index:250}:host(.duet-small){margin-right:2px !important;margin-bottom:8px !important}:host(.duet-small):last-child,:host(.duet-small):last-of-type{margin-right:0 !important}@media (max-width: 35.9375em){:host(.duet-small){width:auto}}:host(.duet-expand){width:100% !important}:host(.duet-m-0){margin:0 !important}:host(.duet-fixed){width:auto !important}:host(:last-child){margin-right:0 !important}.duet-button-container{position:relative;width:100%}.duet-button{padding:14px 27px 15px !important;-webkit-user-select:none;user-select:none;position:relative;z-index:100;display:block;width:100%;min-width:8rem;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600;-webkit-hyphens:auto;hyphens:auto;line-height:1.1;color:#0077b3 !important;text-align:center;text-decoration:none;cursor:pointer;background:transparent;border-style:solid;border-width:2px;border-radius:20rem;transition:background-color 300ms ease, color 300ms ease, border 300ms ease, box-shadow 300ms ease}.duet-button.duet-p-0{padding:0 !important}.duet-button.duet-m-0{margin:0 !important}.duet-button:not(.input-button-primary,.input-button-secondary){font-variant-numeric:tabular-nums}.duet-button.duet-button-text-center{text-align:center !important}.duet-button.duet-button-is-small:not(.duet-button-icon-only){padding:9px 19px 10px !important;min-width:5.3333333333rem;font-size:0.875rem}.duet-button.duet-button-is-small:not(.duet-button-icon-only).icon{padding-left:48px !important}.duet-button.duet-button-is-small:not(.duet-button-icon-only).icon-right{padding-right:48px !important;padding-left:20px !important}.duet-theme-turva .duet-button{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#c60c30 !important}.duet-button .duet-button-contents{position:relative;display:inline-block;margin:0 auto;pointer-events:none}.duet-button.duet-no-wrap{white-space:nowrap}.duet-button.icon{padding-left:52px !important}.duet-button.icon-right{padding-right:52px !important;padding-left:28px !important}.duet-button svg{width:100%;min-width:100%;fill:currentColor}.duet-button .duet-button-icon{position:absolute;top:50%;left:-28px;display:flex;align-items:center;justify-content:center;width:16px;height:16px;margin:0 !important;transform:translateY(-50%)}.duet-button .duet-button-icon duet-icon{width:16px;height:16px}.duet-button .duet-button-icon.right{right:-28px;left:auto}.duet-button .duet-button-icon.large{left:-32px;width:20px;height:20px}.duet-button .duet-button-icon.large duet-icon{width:20px;height:20px}.duet-button .duet-button-icon.large.right{right:-32px;left:auto}.duet-button .duet-button-icon.medium-small{left:-16px;width:10px;height:10px;padding-top:1px}.duet-button .duet-button-icon.medium-small duet-icon{width:10px;height:10px}.duet-button .duet-button-icon.medium-small.right{right:-16px;left:auto}.duet-button .duet-button-icon.small{left:-16px;width:7px;height:7px}.duet-button .duet-button-icon.small duet-icon{width:7px;height:7px}.duet-button .duet-button-icon.small.right{right:-16px;left:auto}.duet-button:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}.duet-theme-turva .duet-button:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-button:active{opacity:0.75;transition:none}.duet-button.default{border-color:#e1e3e6}.duet-theme-turva .duet-button.default{color:#c60c30 !important;border-color:#e4e4e6}.duet-button.default:hover{border-color:#0077b3}.duet-theme-turva .duet-button.default:hover{border-color:#c60c30}.duet-button.default.duet-button-negative{background-color:white}.duet-theme-turva .duet-button.default.duet-button-negative{background-color:#e4e4e6 !important}.duet-button.default.duet-button-negative:hover{color:#0077b3 !important;border-color:#0077b3}.duet-theme-turva .duet-button.default.duet-button-negative:hover{color:#c60c30 !important;border-color:#c60c30}.duet-button.primary,.duet-button.input-button-primary{color:white !important;background:#0077b3;border-color:#0077b3}.duet-theme-turva .duet-button.primary,.duet-theme-turva .duet-button.input-button-primary{color:white !important;background:#c60c30;border-color:#c60c30}.duet-button.primary:hover,.duet-button.input-button-primary:hover{background:#005f8f;border-color:#005f8f;box-shadow:0 4px 20px rgba(34, 34, 34, 0.1)}.duet-theme-turva .duet-button.primary:hover,.duet-theme-turva .duet-button.input-button-primary:hover{background:#940925;border-color:#940925}.duet-button.primary:focus,.duet-button.input-button-primary:focus{outline:0;box-shadow:0 0 0 1px white, 0 0 0 4px rgba(0, 119, 179, 0.75)}.duet-theme-turva .duet-button.primary:focus,.duet-theme-turva .duet-button.input-button-primary:focus{box-shadow:0 0 0 1px white, 0 0 0 4px rgba(23, 28, 58, 0.7)}.duet-button.secondary,.duet-button.input-button-secondary{color:#00294d !important;background:transparent;border-color:#00294d}.duet-theme-turva .duet-button.secondary,.duet-theme-turva .duet-button.input-button-secondary{color:#171c3a !important;border-color:#171c3a}.duet-button.secondary:hover,.duet-button.input-button-secondary:hover{color:#0077b3 !important;border-color:#0077b3}.duet-theme-turva .duet-button.secondary:hover,.duet-theme-turva .duet-button.input-button-secondary:hover{color:#c60c30 !important;border-color:#c60c30}.duet-button.secondary.duet-button-negative,.duet-button.input-button-secondary.duet-button-negative{color:#e1e3e6 !important;border-color:white}.duet-theme-turva .duet-button.secondary.duet-button-negative,.duet-theme-turva .duet-button.input-button-secondary.duet-button-negative{color:#e4e4e6 !important}.duet-button.secondary.duet-button-negative:hover,.duet-button.input-button-secondary.duet-button-negative:hover{color:#0077b3 !important;border-color:#0077b3}.duet-theme-turva .duet-button.secondary.duet-button-negative:hover,.duet-theme-turva .duet-button.input-button-secondary.duet-button-negative:hover{color:#c60c30 !important;border-color:#c60c30}.duet-button.negative{color:#00294d !important;background:white;border-color:white}.duet-theme-turva .duet-button.negative{color:#171c3a !important}.duet-button.negative:hover{color:white !important;background:transparent;border-color:white}.duet-button.negative:focus{outline:0;box-shadow:0 0 0 1px #00294d, 0 0 0 4px rgba(255, 255, 255, 0.7)}.duet-theme-turva .duet-button.negative:focus{box-shadow:0 0 0 1px #171c3a, 0 0 0 4px rgba(255, 255, 255, 0.7)}.duet-button.destructive-primary{color:white !important;background:#de2362;border-color:#de2362}.duet-theme-turva .duet-button.destructive-primary{color:white !important;background:#e02a0d;border-color:#e02a0d}.duet-button.destructive-primary:hover{background:#b21c4e;border-color:#b21c4e;box-shadow:0 4px 20px rgba(34, 34, 34, 0.1)}.duet-theme-turva .duet-button.destructive-primary:hover{background:#b3220a}.duet-button.destructive,.duet-button.destructive-secondary{color:#de2362 !important;background:white;border-color:#de2362}.duet-theme-turva .duet-button.destructive,.duet-theme-turva .duet-button.destructive-secondary{color:#e02a0d !important;background:white;border-color:#e02a0d}.duet-button.destructive:hover,.duet-button.destructive-secondary:hover{color:white !important;background:#b21c4e;border-color:#b21c4e}.duet-theme-turva .duet-button.destructive:hover,.duet-theme-turva .duet-button.destructive-secondary:hover{color:white !important;background:#b3220a;border-color:#b3220a}.duet-button.plain{min-width:48px;padding-right:0 !important;padding-left:0 !important;line-height:1.5;text-align:left;background:transparent;border:0;border-color:transparent;border-radius:4px}.duet-theme-turva .duet-button.plain{color:#c60c30 !important;background:transparent;border-color:transparent}.duet-button.plain.icon{padding-left:20px !important}.duet-button.plain.icon.icon-right{padding-right:20px !important;padding-left:0 !important}.duet-button.plain.icon.medium{padding-left:24px !important}.duet-button.plain.icon.medium.icon-right{padding-right:24px !important;padding-left:0 !important}.duet-button.plain.icon.large{padding-left:30px !important}.duet-button.plain.icon.large.icon-right{padding-right:30px !important;padding-left:0 !important}.duet-button.plain .duet-button-icon.left{left:-16.6666666667px !important}.duet-button.plain .duet-button-icon.left.medium{left:-24px !important}.duet-button.plain .duet-button-icon.left.large{left:-30px !important}.duet-button.plain .duet-button-icon.right{right:-16.6666666667px !important}.duet-button.plain .duet-button-icon.right.medium{right:-24px !important}.duet-button.plain .duet-button-icon.right.large{right:-30px !important}.duet-button.plain[disabled]{color:#657787 !important;background:transparent !important;border-color:transparent !important}.duet-theme-turva .duet-button.plain[disabled]{color:transparent !important;background:transparent !important;border-color:#e4e4e6 !important}.duet-button.plain:hover{color:#004d80 !important;background:transparent !important}.duet-theme-turva .duet-button.plain:hover{color:#940925 !important}.duet-button.plain.duet-button-negative{color:white !important}.duet-theme-turva .duet-button.plain.duet-button-negative{color:#e4e4e6 !important}.duet-button.plain.duet-button-negative:hover{color:#0077b3 !important}.duet-theme-turva .duet-button.plain.duet-button-negative:hover{color:#c60c30 !important}.duet-button.duet-button-icon-only{min-width:48px;min-height:48px;padding:0 !important}.duet-button.duet-button-icon-only .duet-button-contents{position:static}.duet-button.duet-button-icon-only .duet-button-icon.left.large,.duet-button.duet-button-icon-only .duet-button-icon.left.medium,.duet-button.duet-button-icon-only .duet-button-icon.left.small{position:absolute;top:50% !important;left:50% !important;padding:0;margin:0;transform:translateX(-50%) translateY(-50%)}.duet-button.duet-button.input-button-primary,.duet-button.duet-button.input-button-secondary{box-sizing:content-box;min-width:48px;min-height:48px;padding:0 !important;border-width:1px;border-top-left-radius:0;border-top-right-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:0}.duet-button.duet-button.input-button-primary .duet-button-contents,.duet-button.duet-button.input-button-secondary .duet-button-contents{position:static}.duet-button.duet-button.input-button-primary .duet-button-icon.left.large,.duet-button.duet-button.input-button-primary .duet-button-icon.left.medium,.duet-button.duet-button.input-button-primary .duet-button-icon.left.small,.duet-button.duet-button.input-button-secondary .duet-button-icon.left.large,.duet-button.duet-button.input-button-secondary .duet-button-icon.left.medium,.duet-button.duet-button.input-button-secondary .duet-button-icon.left.small{position:absolute;top:50% !important;left:50% !important;padding:0;margin:0;transform:translateX(-50%) translateY(-50%)}.duet-button[disabled],.duet-button[disabled]:hover,.duet-button.duet-button-negative[disabled],.duet-button.duet-button-negative[disabled]:hover{color:#657787 !important;background:#e1e3e6 !important;border-color:#e1e3e6 !important;box-shadow:none !important}.duet-theme-turva .duet-button[disabled],.duet-theme-turva .duet-button[disabled]:hover,.duet-theme-turva .duet-button.duet-button-negative [disabled],.duet-theme-turva .duet-button.duet-button-negative [disabled]:hover{color:#747475 !important;background:#e4e4e6 !important;border-color:#e4e4e6 !important}.duet-button-is-loading.primary,.duet-button-is-loading.input-button-primary{color:white}.duet-button-is-loading.default{color:#0077b3}.duet-button-is-loading.default.duet-theme-turva{color:#c60c30}.duet-button-is-loading .duet-button-contents{visibility:hidden;opacity:0}";
|
|
14
|
+
|
|
15
|
+
const DuetButton = /*@__PURE__*/ proxyCustomElement(class extends H {
|
|
16
|
+
constructor() {
|
|
17
|
+
super();
|
|
18
|
+
this.__registerHost();
|
|
19
|
+
this.__attachShadow();
|
|
20
|
+
this.duetFocus = createEvent(this, "duetFocus", 7);
|
|
21
|
+
this.duetBlur = createEvent(this, "duetBlur", 7);
|
|
22
|
+
/**
|
|
23
|
+
* Use this property to add an aria-haspopup attribute to a button, if you are using it as a menu button.
|
|
24
|
+
*/
|
|
25
|
+
this.accessiblePopup = "false";
|
|
26
|
+
/**
|
|
27
|
+
* Details of the component
|
|
28
|
+
*/
|
|
29
|
+
this.accessibleDetails = undefined;
|
|
30
|
+
/**
|
|
31
|
+
* String of id's that indicate alternative labels elements
|
|
32
|
+
*/
|
|
33
|
+
this.accessibleLabelledBy = undefined;
|
|
34
|
+
/**
|
|
35
|
+
* Aria description the button
|
|
36
|
+
*/
|
|
37
|
+
this.accessibleDescription = undefined;
|
|
38
|
+
/**
|
|
39
|
+
* Loading state of the button
|
|
40
|
+
*/
|
|
41
|
+
this.loading = false;
|
|
42
|
+
/**
|
|
43
|
+
* Style variation of the button.
|
|
44
|
+
* @negative - value is deprecated and should be used in combination with negative prop in the future
|
|
45
|
+
* @destructive - value is deprecated and should be replace with destructive-secondary
|
|
46
|
+
*/
|
|
47
|
+
this.variation = "default";
|
|
48
|
+
/**
|
|
49
|
+
* Negative variation, can be combined with Variation to produce negative versions
|
|
50
|
+
*/
|
|
51
|
+
this.negative = false;
|
|
52
|
+
/**
|
|
53
|
+
* Theme of the button.
|
|
54
|
+
*/
|
|
55
|
+
this.theme = "";
|
|
56
|
+
/**
|
|
57
|
+
* Controls the margin of the component.
|
|
58
|
+
*/
|
|
59
|
+
this.margin = "auto";
|
|
60
|
+
/**
|
|
61
|
+
* Controls the padding of the component.
|
|
62
|
+
*/
|
|
63
|
+
this.padding = "auto";
|
|
64
|
+
/**
|
|
65
|
+
* Centers the text of a button
|
|
66
|
+
*/
|
|
67
|
+
this.centerText = false;
|
|
68
|
+
/**
|
|
69
|
+
* Controls the text wrapping.
|
|
70
|
+
*/
|
|
71
|
+
this.wrapping = "auto";
|
|
72
|
+
/**
|
|
73
|
+
* Expands the button to fill 100% of the container width.
|
|
74
|
+
*/
|
|
75
|
+
this.expand = false;
|
|
76
|
+
/**
|
|
77
|
+
* Keep the button fixed width even on mobile viewports.
|
|
78
|
+
*/
|
|
79
|
+
this.fixed = false;
|
|
80
|
+
/**
|
|
81
|
+
* Makes the button component disabled. This prevents users from being able to
|
|
82
|
+
* interact with the button, and conveys its inactive state to assistive technologies.
|
|
83
|
+
*/
|
|
84
|
+
this.disabled = false;
|
|
85
|
+
/**
|
|
86
|
+
* Allows the button to submit a form.
|
|
87
|
+
*/
|
|
88
|
+
this.submit = false;
|
|
89
|
+
/**
|
|
90
|
+
* Forces URL to open in a new browser tab. Used together with URL prop.
|
|
91
|
+
*/
|
|
92
|
+
this.external = false;
|
|
93
|
+
/**
|
|
94
|
+
* @deprecated this is now handled via the html lang tag, and is no longer used - kept to avoid breaking changes and ease unit testing
|
|
95
|
+
* @default "fi"
|
|
96
|
+
*/
|
|
97
|
+
this.language = getLanguage();
|
|
98
|
+
/**
|
|
99
|
+
* Property to change accessibleLabelExternal defaults on the component.
|
|
100
|
+
* normally you would handle these strings on an application level and override @accessibleLabelExternal when needed
|
|
101
|
+
* @default {fi: "Avautuu uuteen ikkunaan",sv: "Öppnas i nytt fönster",en: "Opens in a new window"}
|
|
102
|
+
*/
|
|
103
|
+
this.accessibleLabelExternalDefaults = DuetStringsExternalDefaults;
|
|
104
|
+
/**
|
|
105
|
+
* Adds accessible label for tooltip that is shown in external link (url & external have both been set)
|
|
106
|
+
* @default {fi: "Avautuu uuteen ikkunaan",sv: "Öppnas i nytt fönster",en: "Opens in a new window"}
|
|
107
|
+
*/
|
|
108
|
+
this.accessibleLabelExternal = getLocaleString(this.accessibleLabelExternalDefaults);
|
|
109
|
+
/**
|
|
110
|
+
* Icon to display to the left of the button content.
|
|
111
|
+
* This is ignored/overridden when button is used as an external link.
|
|
112
|
+
*/
|
|
113
|
+
this.icon = "";
|
|
114
|
+
/**
|
|
115
|
+
* Custom color to be used for text, as a design token entered in camelCase or
|
|
116
|
+
* kebab-case. Example: "color-primary".
|
|
117
|
+
*/
|
|
118
|
+
this.color = "";
|
|
119
|
+
/**
|
|
120
|
+
* Show icon on the right side of the button content.
|
|
121
|
+
*/
|
|
122
|
+
this.iconRight = false;
|
|
123
|
+
/**
|
|
124
|
+
* Icon size.
|
|
125
|
+
*/
|
|
126
|
+
this.iconSize = "medium";
|
|
127
|
+
/**
|
|
128
|
+
* Button’s size.
|
|
129
|
+
*/
|
|
130
|
+
this.size = "medium";
|
|
131
|
+
/**
|
|
132
|
+
* Whether this button should use styles meant for displaying just an icon.
|
|
133
|
+
*/
|
|
134
|
+
this.iconOnly = false;
|
|
135
|
+
/**
|
|
136
|
+
* Component event handling.
|
|
137
|
+
*/
|
|
138
|
+
this.handleClick = (ev) => {
|
|
139
|
+
// If this button wants to specifically submit a form
|
|
140
|
+
// climb up the dom to see if we're in a <form>
|
|
141
|
+
// and if so, then use JS to submit it.
|
|
142
|
+
// To understand better, see: https://www.hjorthhansen.dev/shadow-dom-form-participation/
|
|
143
|
+
if (!this.url && this.element.closest("form")) {
|
|
144
|
+
ev.preventDefault();
|
|
145
|
+
this.proxyButton.click();
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
this.onFocus = () => {
|
|
149
|
+
this.duetFocus.emit();
|
|
150
|
+
};
|
|
151
|
+
this.onBlur = () => {
|
|
152
|
+
this.duetBlur.emit();
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Component lifecycle events.
|
|
157
|
+
*/
|
|
158
|
+
componentWillLoad() {
|
|
159
|
+
inheritGlobalTheme(this);
|
|
160
|
+
if (this.url && this.external && this.icon) {
|
|
161
|
+
console.warn("[DUET]: Button used as an external link will override any icon that is set");
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
connectedCallback() {
|
|
165
|
+
this.proxyButton = document.createElement("button");
|
|
166
|
+
this.proxyButton.style.display = "none";
|
|
167
|
+
this.syncToProxyButton();
|
|
168
|
+
if (!this.url && this.element.closest("form")) {
|
|
169
|
+
this.element.insertAdjacentElement("beforebegin", this.proxyButton);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
disconnectedCallback() {
|
|
173
|
+
this.proxyButton.remove();
|
|
174
|
+
this.proxyButton = null;
|
|
175
|
+
}
|
|
176
|
+
syncToProxyButton() {
|
|
177
|
+
this.proxyButton.type = this.getButtonType();
|
|
178
|
+
this.proxyButton.disabled = this.disabled;
|
|
179
|
+
// attributes should be removed in cases where name/value is not set
|
|
180
|
+
if (this.name != null) {
|
|
181
|
+
this.proxyButton.name = this.name;
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
this.proxyButton.removeAttribute("name");
|
|
185
|
+
}
|
|
186
|
+
if (this.value != null) {
|
|
187
|
+
this.proxyButton.value = this.value;
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
this.proxyButton.removeAttribute("value");
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
getButtonType() {
|
|
194
|
+
return this.submit ? "submit" : "button";
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Sets focus on the specified `duet-button`. Use this method instead of the global
|
|
198
|
+
* `button.focus()`.
|
|
199
|
+
*/
|
|
200
|
+
async setFocus(options) {
|
|
201
|
+
if (this.nativeButton) {
|
|
202
|
+
this.nativeButton.focus(options);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* render() function.
|
|
207
|
+
* Always the last one in the class.
|
|
208
|
+
*/
|
|
209
|
+
render() {
|
|
210
|
+
const isExternalLink = this.external && this.url;
|
|
211
|
+
// enforce consistency for external links
|
|
212
|
+
const icon = isExternalLink ? "action-new-window" : this.icon;
|
|
213
|
+
const iconRight = isExternalLink ? true : this.iconRight;
|
|
214
|
+
const commonChildren = (h("span", { class: "duet-button-contents", style: { color: getColorByName(this.color) } }, icon && (h("div", { "aria-hidden": "true", class: {
|
|
215
|
+
"duet-button-icon": true,
|
|
216
|
+
left: !iconRight,
|
|
217
|
+
right: iconRight,
|
|
218
|
+
[this.iconSize]: true,
|
|
219
|
+
} }, h("duet-icon", { size: "auto", margin: "none", name: icon, color: "currentColor" }))), h("slot", null)));
|
|
220
|
+
const commonProps = {
|
|
221
|
+
onFocus: this.onFocus,
|
|
222
|
+
onBlur: this.onBlur,
|
|
223
|
+
ref: button => (this.nativeButton = button),
|
|
224
|
+
id: this.identifier,
|
|
225
|
+
class: {
|
|
226
|
+
"duet-m-0": this.margin === "none",
|
|
227
|
+
"duet-p-0": this.padding === "none",
|
|
228
|
+
"duet-no-wrap": this.wrapping === "none",
|
|
229
|
+
"duet-button": true,
|
|
230
|
+
"duet-button-is-small": this.size === "small",
|
|
231
|
+
"duet-button-icon-only": this.iconOnly,
|
|
232
|
+
"duet-button-text-center": this.centerText,
|
|
233
|
+
"duet-button-negative": this.negative || this.variation === "negative",
|
|
234
|
+
[this.variation]: true,
|
|
235
|
+
disabled: this.disabled,
|
|
236
|
+
icon: !!icon,
|
|
237
|
+
"icon-right": iconRight,
|
|
238
|
+
[this.iconSize]: true,
|
|
239
|
+
},
|
|
240
|
+
"aria-controls": this.accessibleControls,
|
|
241
|
+
"aria-label": this.accessibleLabel,
|
|
242
|
+
"aria-expanded": this.accessibleExpanded != null ? this.accessibleExpanded.toString() : undefined,
|
|
243
|
+
"aria-activedescendant": this.accessibleActiveDescendant,
|
|
244
|
+
"aria-owns": this.accessibleOwns,
|
|
245
|
+
"aria-describedby": this.accessibleDescribedBy,
|
|
246
|
+
"aria-labelledby": this.accessibleLabelledBy,
|
|
247
|
+
"aria-details": this.accessibleDetails,
|
|
248
|
+
"aria-description": this.accessibleDescription,
|
|
249
|
+
};
|
|
250
|
+
return (h(Host, { onClick: this.handleClick, class: {
|
|
251
|
+
"duet-m-0": this.margin === "none",
|
|
252
|
+
"duet-small": this.size === "small",
|
|
253
|
+
"duet-fixed": this.fixed,
|
|
254
|
+
"duet-expand": this.expand,
|
|
255
|
+
"input-button": this.variation === "input-button-primary" || this.variation === "input-button-secondary",
|
|
256
|
+
} }, h("div", { class: {
|
|
257
|
+
"duet-button-container": true,
|
|
258
|
+
"duet-button-is-loading": this.loading,
|
|
259
|
+
"duet-theme-turva": this.theme === "turva",
|
|
260
|
+
"duet-button-negative": this.negative || this.variation === "negative",
|
|
261
|
+
[this.variation]: true,
|
|
262
|
+
} }, this.url ? (h("a", Object.assign({}, commonProps, { href: this.url, target: this.external ? "_blank" : "_self", rel: this.external ? "noopener" : undefined }), commonChildren, this.external && h("duet-visually-hidden", null, ", ", this.accessibleLabelExternal))) : (h("button", Object.assign({}, commonProps, { type: this.getButtonType(), disabled: this.disabled, name: this.name, value: this.value, "aria-pressed": this.accessiblePressed != null ? this.accessiblePressed.toString() : undefined, "aria-haspopup": this.accessiblePopup != null ? this.accessiblePopup.toString() : undefined }), commonChildren)), this.loading && h("duet-spinner", { color: "currentColor" }))));
|
|
263
|
+
}
|
|
264
|
+
get element() { return this; }
|
|
265
|
+
static get watchers() { return {
|
|
266
|
+
"disabled": ["syncToProxyButton"],
|
|
267
|
+
"submit": ["syncToProxyButton"],
|
|
268
|
+
"value": ["syncToProxyButton"],
|
|
269
|
+
"name": ["syncToProxyButton"]
|
|
270
|
+
}; }
|
|
271
|
+
static get style() { return duetButtonCss; }
|
|
272
|
+
}, [1, "duet-button", {
|
|
273
|
+
"accessibleLabel": [1, "accessible-label"],
|
|
274
|
+
"accessibleControls": [1, "accessible-controls"],
|
|
275
|
+
"accessiblePopup": [1, "accessible-popup"],
|
|
276
|
+
"accessibleActiveDescendant": [1, "accessible-active-descendant"],
|
|
277
|
+
"accessibleOwns": [1, "accessible-owns"],
|
|
278
|
+
"accessibleDescribedBy": [1, "accessible-described-by"],
|
|
279
|
+
"accessibleDetails": [1, "accessible-details"],
|
|
280
|
+
"accessibleLabelledBy": [1, "accessible-labelled-by"],
|
|
281
|
+
"accessibleDescription": [1, "accessible-description"],
|
|
282
|
+
"accessibleExpanded": [4, "accessible-expanded"],
|
|
283
|
+
"accessiblePressed": [4, "accessible-pressed"],
|
|
284
|
+
"loading": [4],
|
|
285
|
+
"variation": [1],
|
|
286
|
+
"negative": [4],
|
|
287
|
+
"theme": [1025],
|
|
288
|
+
"margin": [1],
|
|
289
|
+
"padding": [1],
|
|
290
|
+
"centerText": [4, "center-text"],
|
|
291
|
+
"wrapping": [1],
|
|
292
|
+
"expand": [4],
|
|
293
|
+
"fixed": [4],
|
|
294
|
+
"disabled": [516],
|
|
295
|
+
"name": [1],
|
|
296
|
+
"value": [1],
|
|
297
|
+
"identifier": [1],
|
|
298
|
+
"submit": [516],
|
|
299
|
+
"external": [4],
|
|
300
|
+
"language": [1],
|
|
301
|
+
"accessibleLabelExternalDefaults": [1, "accessible-label-external-default"],
|
|
302
|
+
"accessibleLabelExternal": [1, "accessible-label-external"],
|
|
303
|
+
"icon": [1],
|
|
304
|
+
"color": [1],
|
|
305
|
+
"iconRight": [4, "icon-right"],
|
|
306
|
+
"iconSize": [1, "icon-size"],
|
|
307
|
+
"size": [1],
|
|
308
|
+
"iconOnly": [4, "icon-only"],
|
|
309
|
+
"url": [513],
|
|
310
|
+
"setFocus": [64]
|
|
311
|
+
}]);
|
|
312
|
+
function defineCustomElement() {
|
|
313
|
+
if (typeof customElements === "undefined") {
|
|
314
|
+
return;
|
|
315
|
+
}
|
|
316
|
+
const components = ["duet-button", "duet-icon", "duet-spinner", "duet-visually-hidden"];
|
|
317
|
+
components.forEach(tagName => { switch (tagName) {
|
|
318
|
+
case "duet-button":
|
|
319
|
+
if (!customElements.get(tagName)) {
|
|
320
|
+
customElements.define(tagName, DuetButton);
|
|
321
|
+
}
|
|
322
|
+
break;
|
|
323
|
+
case "duet-icon":
|
|
324
|
+
if (!customElements.get(tagName)) {
|
|
325
|
+
defineCustomElement$3();
|
|
326
|
+
}
|
|
327
|
+
break;
|
|
328
|
+
case "duet-spinner":
|
|
329
|
+
if (!customElements.get(tagName)) {
|
|
330
|
+
defineCustomElement$2();
|
|
331
|
+
}
|
|
332
|
+
break;
|
|
333
|
+
case "duet-visually-hidden":
|
|
334
|
+
if (!customElements.get(tagName)) {
|
|
335
|
+
defineCustomElement$1();
|
|
336
|
+
}
|
|
337
|
+
break;
|
|
338
|
+
} });
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
export { DuetButton as D, defineCustomElement as d };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Built with Duet Design System
|
|
3
|
+
*/
|
|
4
|
+
const inheritGlobalTheme = (component) => {
|
|
5
|
+
// this minor change enables duet-theme-XXXXX instead of just duet-theme-turva
|
|
6
|
+
const classList = Array.from(document.documentElement.classList).join(" ") || "";
|
|
7
|
+
const theme = /(duet-theme-)([a-z]*)/gis.exec(classList);
|
|
8
|
+
if (theme && theme[1] === "duet-theme-") {
|
|
9
|
+
component.theme = theme[2] === "default" ? "" : theme[2];
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export { inheritGlobalTheme as i };
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Built with Duet Design System
|
|
3
|
+
*/
|
|
4
|
+
import { E as Env, p as proxyCustomElement, H, h, b as Host } from './p-1ad6b04e.js';
|
|
5
|
+
import { i as inheritGlobalTheme } from './p-4ebf1618.js';
|
|
6
|
+
import { g as getColorByName } from './p-86faf728.js';
|
|
7
|
+
|
|
8
|
+
const cleanupSvg = (svgContent) => {
|
|
9
|
+
if (typeof document === "undefined" || !svgContent) {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
const div = document.createElement("div");
|
|
13
|
+
div.innerHTML = svgContent;
|
|
14
|
+
// setup this way to ensure it works on our buddy IE
|
|
15
|
+
for (let i = div.childNodes.length - 1; i >= 0; i--) {
|
|
16
|
+
const child = div.childNodes[i];
|
|
17
|
+
if (child.nodeName.toLowerCase() !== "svg") {
|
|
18
|
+
div.removeChild(div.childNodes[i]);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return div.firstElementChild;
|
|
22
|
+
};
|
|
23
|
+
const isValid = (elm) => {
|
|
24
|
+
if (elm.nodeName.toLowerCase() === "script") {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
for (let i = 0; i < elm.attributes.length; i++) {
|
|
28
|
+
const attribute = elm.attributes[i];
|
|
29
|
+
if (attribute.name.toLowerCase().indexOf("on") === 0) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
if (elm.children) {
|
|
34
|
+
for (let i = 0; i < elm.children.length; i++) {
|
|
35
|
+
if (!isValid(elm.children[i])) {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return true;
|
|
41
|
+
};
|
|
42
|
+
const buildIconUrl = (iconName) => {
|
|
43
|
+
// under normal operations the Icons should always be loaded from the CDN
|
|
44
|
+
{
|
|
45
|
+
return `${Env.cdnURIProd}/icons/${Env.duetIconVersion}/lib/assets/${iconName}.svg`;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
const iconCache = {};
|
|
49
|
+
function fetchIconByUrl(url) {
|
|
50
|
+
if (iconCache[url]) {
|
|
51
|
+
return iconCache[url];
|
|
52
|
+
}
|
|
53
|
+
// we create a function that covers all the fetching, cleanup, validation etc,
|
|
54
|
+
// this way we can perform that work just once, and then return the same promise in future.
|
|
55
|
+
async function doFetch() {
|
|
56
|
+
const res = await fetch(url);
|
|
57
|
+
if (!res.ok) {
|
|
58
|
+
throw new Error(`SVG request failed: ${res.status} ${res.statusText}`);
|
|
59
|
+
}
|
|
60
|
+
const responseText = await res.text();
|
|
61
|
+
const svgElement = cleanupSvg(responseText);
|
|
62
|
+
if (!isValid(svgElement)) {
|
|
63
|
+
throw new Error("SVG validation failed");
|
|
64
|
+
}
|
|
65
|
+
// OuterHTML does not unfortunately work here with IE11
|
|
66
|
+
// was previously: resolve(svgElement.outerHTML)
|
|
67
|
+
const div = document.createElement("div");
|
|
68
|
+
div.appendChild(svgElement);
|
|
69
|
+
return div.innerHTML;
|
|
70
|
+
}
|
|
71
|
+
// we do not `await` the fetch, as we only care about initiating the work,
|
|
72
|
+
// it's the responsibility of the calling code to wait for the response.
|
|
73
|
+
const req = doFetch();
|
|
74
|
+
// cache for the repeat requests
|
|
75
|
+
return (iconCache[url] = req);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
const duetIconCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-bottom:16px !important;display:inline-block;width:auto;max-width:100%;color:inherit;-webkit-tap-highlight-color:transparent}@media (max-width: 35.9375em){:host(.duet-icon-has-outline){margin-bottom:0 !important}}@media (max-width: 35.9375em){:host(.duet-icon-has-background){margin-bottom:0 !important}}:host(.duet-m-0){margin:0 !important}@media (max-width: 35.9375em){:host(.duet-m-0){margin:0 !important}}.duet-icon{-webkit-user-select:none;user-select:none;width:100%;height:100%;transform-origin:top center}.duet-icon.duet-icon-has-outline{padding:12px;border-style:solid;border-width:1px;border-radius:50%}@media (max-width: 35.9375em){.duet-icon.duet-icon-has-outline{outline:1px solid transparent;transform:scale(0.8)}}.duet-icon.duet-icon-has-background{padding:16px;color:white;border-radius:50%}@media (max-width: 35.9375em){.duet-icon.duet-icon-has-background{outline:1px solid transparent;transform:scale(0.8)}}.duet-icon.duet-icon-has-background.duet-theme-turva,.duet-icon.duet-icon-has-background.duet-theme-default{color:white}.duet-icon.duet-icon-has-background.xxx-small .duet-icon-svg,.duet-icon.duet-icon-has-outline.xxx-small .duet-icon-svg{width:10px;height:10px}.duet-icon.duet-icon-has-background.xx-small .duet-icon-svg,.duet-icon.duet-icon-has-outline.xx-small .duet-icon-svg{width:16px;height:16px}@media (max-width: 35.9375em){.duet-icon.duet-icon-not-responsive{transform:scale(1) !important}}.duet-icon.duet-theme-default{color:#0077b3}.duet-icon.duet-theme-turva{color:#c60c30}.duet-icon.auto .duet-icon-svg{width:100%;height:100%}.duet-icon.xxx-small .duet-icon-svg{width:7px;height:7px}.duet-icon.duet-icon-has-background.xxx-small{padding:6px}.duet-icon.duet-icon-has-outline.xxx-small{padding:4px}.duet-icon.xx-small .duet-icon-svg{width:10px;height:10px}.duet-icon.duet-icon-has-background.xx-small{padding:8px}.duet-icon.duet-icon-has-outline.xx-small{padding:7px}.duet-icon.x-small .duet-icon-svg{width:16px;height:16px}.duet-icon.duet-icon-has-outline.x-small{padding:10px}.duet-icon.duet-icon-has-background.x-small{padding:12px}.duet-icon.small .duet-icon-svg{width:20px;height:20px}.duet-icon.duet-icon-has-background.small{padding:14px}.duet-icon.large .duet-icon-svg{width:30px;height:30px}.duet-icon.x-large .duet-icon-svg{width:36px;height:36px}.duet-icon.xx-large .duet-icon-svg{width:48px;height:48px}.duet-icon.xxx-large .duet-icon-svg{width:48px;height:48px}@media (min-width: 48em){.duet-icon.xxx-large .duet-icon-svg{width:72px;height:72px}}.duet-icon .duet-icon-svg{display:block;width:24px;min-width:100%;height:24px;font-size:0}.duet-icon svg{width:100%;min-width:100%;fill:currentColor}";
|
|
79
|
+
|
|
80
|
+
const DuetIcon = /*@__PURE__*/ proxyCustomElement(class extends H {
|
|
81
|
+
constructor() {
|
|
82
|
+
super();
|
|
83
|
+
this.__registerHost();
|
|
84
|
+
this.__attachShadow();
|
|
85
|
+
/**
|
|
86
|
+
* Theme of the icon. This setting will be overridden when you set the color
|
|
87
|
+
* property
|
|
88
|
+
*/
|
|
89
|
+
this.theme = "";
|
|
90
|
+
/**
|
|
91
|
+
* Icon name from Duet to display.
|
|
92
|
+
*/
|
|
93
|
+
this.name = "action-add";
|
|
94
|
+
/**
|
|
95
|
+
* Controls the margin of the component.
|
|
96
|
+
*/
|
|
97
|
+
this.margin = "auto";
|
|
98
|
+
/**
|
|
99
|
+
* Whether the icon changes its size responsively or not.
|
|
100
|
+
*/
|
|
101
|
+
this.responsive = true;
|
|
102
|
+
/**
|
|
103
|
+
* Custom color to be used for the icon, as a design token entered in camelCase
|
|
104
|
+
* or kebab-case. Example: "color-primary". This property can also be set to
|
|
105
|
+
* "currentColor" which forces the icon to use the CSS text color of parent
|
|
106
|
+
* element instead. Useful when you want to control the color in stylesheet
|
|
107
|
+
* instead.
|
|
108
|
+
*/
|
|
109
|
+
this.color = "";
|
|
110
|
+
/**
|
|
111
|
+
* Custom color to be used for a circular background, as a design token entered
|
|
112
|
+
* in camelCase or kebab-case. Using this option the icon will always be resized
|
|
113
|
+
* to $size-icon-medium on mobile viewports. Example: "color-primary".
|
|
114
|
+
*/
|
|
115
|
+
this.background = "";
|
|
116
|
+
/**
|
|
117
|
+
* Icon size. Entered as one of the icon size design tokens.
|
|
118
|
+
*/
|
|
119
|
+
this.size = "medium";
|
|
120
|
+
/**
|
|
121
|
+
* Custom color to be used for a circular border and icon outline, as a design
|
|
122
|
+
* token entered in camelCase or kebab-case. Using this option the icon will
|
|
123
|
+
* always be resized to $size-icon-medium on mobile viewports.
|
|
124
|
+
* Example: "color-primary".
|
|
125
|
+
*/
|
|
126
|
+
this.outline = "";
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Component lifecycle events.
|
|
130
|
+
*/
|
|
131
|
+
componentWillLoad() {
|
|
132
|
+
inheritGlobalTheme(this);
|
|
133
|
+
if (this.src && this.icon) {
|
|
134
|
+
console.warn("[DUET COMPONENTS]: <duet-icon> should have either have src or icon attributes, but not both. icon attribute will take precedence", "icon:", this.icon, "src:", this.src);
|
|
135
|
+
}
|
|
136
|
+
this.loadIcon();
|
|
137
|
+
}
|
|
138
|
+
async loadIcon() {
|
|
139
|
+
// static icon known at build-time, so we can set it synchronously
|
|
140
|
+
if (this.icon) {
|
|
141
|
+
this.svgContent = this.icon;
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
// dynamically load icon from url
|
|
145
|
+
const src = this.src ? this.src : buildIconUrl(this.name);
|
|
146
|
+
try {
|
|
147
|
+
this.svgContent = await fetchIconByUrl(src);
|
|
148
|
+
}
|
|
149
|
+
catch (e) {
|
|
150
|
+
console.warn(`[DUET COMPONENTS]: <duet-icon> could not load SVG from URL: ${src}.`, e);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* render() function.
|
|
155
|
+
* Always the last one in the class.
|
|
156
|
+
*/
|
|
157
|
+
render() {
|
|
158
|
+
const color = this.color === "currentColor"
|
|
159
|
+
? "currentColor"
|
|
160
|
+
: getColorByName(this.color, this.theme) || getColorByName(this.outline, this.theme);
|
|
161
|
+
const styles = {
|
|
162
|
+
color,
|
|
163
|
+
background: getColorByName(this.background, this.theme),
|
|
164
|
+
"border-color": getColorByName(this.outline, this.theme),
|
|
165
|
+
};
|
|
166
|
+
return (h(Host, { class: {
|
|
167
|
+
"duet-m-0": this.margin === "none",
|
|
168
|
+
"duet-icon-has-outline": !!this.outline,
|
|
169
|
+
"duet-icon-has-background": !!this.background,
|
|
170
|
+
} }, h("div", { "aria-hidden": "true", style: styles, class: {
|
|
171
|
+
"duet-icon": true,
|
|
172
|
+
[this.size]: true,
|
|
173
|
+
"duet-theme-turva": this.theme === "turva",
|
|
174
|
+
"duet-theme-default": this.theme === "default",
|
|
175
|
+
"duet-icon-has-outline": !!this.outline,
|
|
176
|
+
"duet-icon-has-background": !!this.background,
|
|
177
|
+
"duet-icon-not-responsive": !this.responsive,
|
|
178
|
+
} }, h("span", { "aria-hidden": "true", class: "duet-icon-svg", innerHTML: this.svgContent }))));
|
|
179
|
+
}
|
|
180
|
+
get element() { return this; }
|
|
181
|
+
static get watchers() { return {
|
|
182
|
+
"src": ["loadIcon"],
|
|
183
|
+
"icon": ["loadIcon"],
|
|
184
|
+
"name": ["loadIcon"]
|
|
185
|
+
}; }
|
|
186
|
+
static get style() { return duetIconCss; }
|
|
187
|
+
}, [1, "duet-icon", {
|
|
188
|
+
"theme": [1025],
|
|
189
|
+
"icon": [1],
|
|
190
|
+
"src": [1],
|
|
191
|
+
"name": [1],
|
|
192
|
+
"margin": [1],
|
|
193
|
+
"responsive": [4],
|
|
194
|
+
"color": [513],
|
|
195
|
+
"background": [1],
|
|
196
|
+
"size": [1],
|
|
197
|
+
"outline": [1],
|
|
198
|
+
"svgContent": [32]
|
|
199
|
+
}]);
|
|
200
|
+
function defineCustomElement() {
|
|
201
|
+
if (typeof customElements === "undefined") {
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
const components = ["duet-icon"];
|
|
205
|
+
components.forEach(tagName => { switch (tagName) {
|
|
206
|
+
case "duet-icon":
|
|
207
|
+
if (!customElements.get(tagName)) {
|
|
208
|
+
customElements.define(tagName, DuetIcon);
|
|
209
|
+
}
|
|
210
|
+
break;
|
|
211
|
+
} });
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
export { DuetIcon as D, defineCustomElement as d };
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Built with Duet Design System
|
|
3
|
+
*/
|
|
4
|
+
import { p as proxyCustomElement, H, h, b as Host } from './p-1ad6b04e.js';
|
|
5
|
+
|
|
6
|
+
const duetVisuallyHiddenCss = ":host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;position:absolute !important;top:0;width:1px !important;height:1px !important;padding:0 !important;overflow:hidden !important;clip:rect(1px, 1px, 1px, 1px) !important;border:0 !important}";
|
|
7
|
+
|
|
8
|
+
const DuetVisuallyHidden = /*@__PURE__*/ proxyCustomElement(class extends H {
|
|
9
|
+
constructor() {
|
|
10
|
+
super();
|
|
11
|
+
this.__registerHost();
|
|
12
|
+
this.__attachShadow();
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* render() function
|
|
16
|
+
* Always the last one in the class.
|
|
17
|
+
*/
|
|
18
|
+
render() {
|
|
19
|
+
return (h(Host, { class: "duet-visually-hidden" }, h("slot", null)));
|
|
20
|
+
}
|
|
21
|
+
static get style() { return duetVisuallyHiddenCss; }
|
|
22
|
+
}, [1, "duet-visually-hidden"]);
|
|
23
|
+
function defineCustomElement() {
|
|
24
|
+
if (typeof customElements === "undefined") {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const components = ["duet-visually-hidden"];
|
|
28
|
+
components.forEach(tagName => { switch (tagName) {
|
|
29
|
+
case "duet-visually-hidden":
|
|
30
|
+
if (!customElements.get(tagName)) {
|
|
31
|
+
customElements.define(tagName, DuetVisuallyHidden);
|
|
32
|
+
}
|
|
33
|
+
break;
|
|
34
|
+
} });
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export { DuetVisuallyHidden as D, defineCustomElement as d };
|