@duetds/components 5.4.2 → 6.0.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 +41 -13
- package/lib/cjs/duet-action-button.cjs.entry.js +1 -1
- package/lib/cjs/duet-alert.cjs.entry.js +5 -3
- 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 +1 -1
- package/lib/cjs/duet-caption_4.cjs.entry.js +4 -3
- package/lib/cjs/duet-card.cjs.entry.js +1 -1
- package/lib/cjs/duet-checkbox.cjs.entry.js +1 -1
- package/lib/cjs/duet-choice_2.cjs.entry.js +17 -8
- package/lib/cjs/duet-collapsible.cjs.entry.js +1 -1
- 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 +1 -1
- 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 +10 -2
- package/lib/cjs/duet-grid_2.cjs.entry.js +1 -1
- package/lib/cjs/duet-header_2.cjs.entry.js +13 -5
- package/lib/cjs/duet-hero.cjs.entry.js +3 -2
- package/lib/cjs/duet-icon.cjs.entry.js +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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-9226aef7.js → focus-utils-fd9066aa.js} +1 -1
- package/lib/cjs/{index-60a8ec8a.js → index-782371bf.js} +1 -1
- package/lib/cjs/loader.cjs.js +1 -1
- package/lib/collection/components/duet-alert/duet-alert.js +5 -3
- package/lib/collection/components/duet-choice/duet-choice.css +5 -0
- package/lib/collection/components/duet-choice/duet-choice.js +8 -3
- package/lib/collection/components/duet-choice-group/duet-choice-group.js +11 -4
- package/lib/collection/components/duet-footer/duet-footer.js +28 -2
- package/lib/collection/components/duet-header/duet-header.js +30 -4
- package/lib/collection/components/duet-heading/duet-heading.css +4 -0
- package/lib/collection/components/duet-heading/duet-heading.js +4 -3
- package/lib/collection/components/duet-hero/duet-hero.js +4 -2
- package/lib/custom-elements-bundle/index.js +45 -17
- package/lib/duet/duet.esm.js +1 -1
- package/lib/duet/duet.js +1 -1
- package/lib/duet/{p-6e3f764f.system.entry.js → p-00326a18.system.entry.js} +1 -1
- package/lib/duet/{p-6f1d6649.entry.js → p-01e852b6.entry.js} +1 -1
- package/lib/duet/{p-5f528fa2.entry.js → p-02b954d7.entry.js} +1 -1
- package/lib/duet/{p-e3017ffc.entry.js → p-03826c8b.entry.js} +1 -1
- package/lib/duet/{p-62303524.system.entry.js → p-044f081d.system.entry.js} +1 -1
- package/lib/duet/{p-838ef01e.system.entry.js → p-06384a91.system.entry.js} +1 -1
- package/lib/duet/{p-84310e48.system.entry.js → p-0674bacc.system.entry.js} +1 -1
- package/lib/duet/{p-f6f30fb7.system.entry.js → p-06fb0807.system.entry.js} +2 -2
- package/lib/duet/{p-b2ac632f.system.entry.js → p-07ff2572.system.entry.js} +1 -1
- package/lib/duet/p-0992ac3c.system.entry.js +4 -0
- package/lib/duet/{p-67ed94fa.system.entry.js → p-0d2f32c1.system.entry.js} +1 -1
- package/lib/duet/{p-b004cbd3.entry.js → p-1230cbde.entry.js} +1 -1
- package/lib/duet/{p-c694e7fb.system.entry.js → p-136d7507.system.entry.js} +1 -1
- package/lib/duet/{p-fdb0277c.system.entry.js → p-1371eb11.system.entry.js} +1 -1
- package/lib/duet/{p-46d9a853.entry.js → p-163eb1ef.entry.js} +1 -1
- package/lib/duet/{p-dfd9a9ff.entry.js → p-185593ce.entry.js} +1 -1
- package/lib/duet/{p-ea12c081.system.entry.js → p-19065f78.system.entry.js} +1 -1
- package/lib/duet/{p-aefb80e3.entry.js → p-1b2cbc9a.entry.js} +1 -1
- package/lib/duet/{p-6ab6ce4f.system.entry.js → p-1ea75629.system.entry.js} +1 -1
- package/lib/duet/{p-2ac07ac9.entry.js → p-22422d69.entry.js} +1 -1
- package/lib/duet/{p-70e567e9.entry.js → p-28dbd53d.entry.js} +1 -1
- package/lib/duet/{p-e358c599.entry.js → p-294c5ef8.entry.js} +1 -1
- package/lib/duet/{p-817ef07d.system.entry.js → p-2bbd194f.system.entry.js} +1 -1
- package/lib/duet/{p-bf8f3b14.entry.js → p-32cbeb94.entry.js} +1 -1
- package/lib/duet/{p-65821960.entry.js → p-345abbb7.entry.js} +1 -1
- package/lib/duet/{p-f661ebf9.system.entry.js → p-34b39449.system.entry.js} +1 -1
- package/lib/duet/p-3630c99b.entry.js +4 -0
- package/lib/duet/{p-309e3417.system.js → p-369257a1.system.js} +1 -1
- package/lib/duet/p-41c9677e.entry.js +4 -0
- package/lib/duet/{p-a91bb73d.entry.js → p-443ec645.entry.js} +1 -1
- package/lib/duet/{p-526e6d8e.system.entry.js → p-47ddb203.system.entry.js} +1 -1
- package/lib/duet/{p-675d713b.entry.js → p-4828a9d7.entry.js} +1 -1
- package/lib/duet/{p-99bf8545.js → p-4b71d359.js} +1 -1
- package/lib/duet/{p-98ca5a08.system.entry.js → p-4d5428f3.system.entry.js} +2 -2
- package/lib/duet/{p-8e1cf2fb.system.entry.js → p-4f39beb8.system.entry.js} +1 -1
- package/lib/duet/p-50068109.entry.js +4 -0
- package/lib/duet/{p-64cbe9b7.system.entry.js → p-52ccd386.system.entry.js} +1 -1
- package/lib/duet/{p-451adbf4.entry.js → p-56ab2e17.entry.js} +1 -1
- package/lib/duet/{p-bc24eeda.entry.js → p-56e5aa53.entry.js} +1 -1
- package/lib/duet/{p-56a80c32.system.entry.js → p-5836fb8d.system.entry.js} +1 -1
- package/lib/duet/{p-9205c79a.system.entry.js → p-59018c03.system.entry.js} +1 -1
- package/lib/duet/{p-8bf92f1e.system.entry.js → p-5964b2cf.system.entry.js} +1 -1
- package/lib/duet/{p-bec4d094.system.entry.js → p-5a5a3749.system.entry.js} +1 -1
- package/lib/duet/{p-77e3591e.entry.js → p-5bbda980.entry.js} +1 -1
- package/lib/duet/{p-97631cdc.entry.js → p-629cca4a.entry.js} +1 -1
- package/lib/duet/{p-faf6cfe8.entry.js → p-631db09b.entry.js} +1 -1
- package/lib/duet/{p-48a036c1.system.entry.js → p-6635203a.system.entry.js} +1 -1
- package/lib/duet/{p-590e8508.entry.js → p-6a405a01.entry.js} +1 -1
- package/lib/duet/{p-12606a4b.entry.js → p-6b6b356f.entry.js} +1 -1
- package/lib/duet/{p-79948b47.system.entry.js → p-6dafe588.system.entry.js} +1 -1
- package/lib/duet/{p-4dd79e38.system.entry.js → p-6e111c28.system.entry.js} +1 -1
- package/lib/duet/p-77d5e6c4.entry.js +4 -0
- package/lib/duet/p-79742e5d.system.entry.js +4 -0
- package/lib/duet/{p-f2dce86d.entry.js → p-7bb54705.entry.js} +1 -1
- package/lib/duet/{p-5a5117d4.entry.js → p-7d825baf.entry.js} +1 -1
- package/lib/duet/{p-ffadc9ea.system.entry.js → p-7fbecc7e.system.entry.js} +1 -1
- package/lib/duet/{p-97130a4c.entry.js → p-85c0701c.entry.js} +1 -1
- package/lib/duet/{p-6e64cd02.js → p-8b5df7ef.js} +1 -1
- package/lib/duet/{p-ac86999f.system.entry.js → p-90aed783.system.entry.js} +1 -1
- package/lib/duet/{p-89f50fd8.system.js → p-925664c5.system.js} +1 -1
- package/lib/duet/{p-30fc343d.system.entry.js → p-92dda555.system.entry.js} +1 -1
- package/lib/duet/{p-0dbd00e1.system.entry.js → p-9b024702.system.entry.js} +1 -1
- package/lib/duet/{p-b70f2ae2.system.entry.js → p-9caa1e99.system.entry.js} +1 -1
- package/lib/duet/{p-56f17656.entry.js → p-9e3dffb7.entry.js} +1 -1
- package/lib/duet/{p-80d16341.system.entry.js → p-9e9b9a1b.system.entry.js} +1 -1
- package/lib/duet/{p-ef2f6881.entry.js → p-9ff7b903.entry.js} +1 -1
- package/lib/duet/{p-5ea398eb.entry.js → p-a122e9c2.entry.js} +1 -1
- package/lib/duet/p-a31bbc70.entry.js +4 -0
- package/lib/duet/p-a7a7f9ee.system.entry.js +4 -0
- package/lib/duet/{p-322676e3.system.entry.js → p-aa484907.system.entry.js} +1 -1
- package/lib/duet/{p-fe03f359.system.js → p-ad0774b5.system.js} +1 -1
- package/lib/duet/{p-2b155bd9.entry.js → p-ad1f9106.entry.js} +1 -1
- package/lib/duet/p-b55ed703.entry.js +4 -0
- package/lib/duet/p-bce94596.entry.js +4 -0
- package/lib/duet/{p-6255147e.system.entry.js → p-bfbd1c92.system.entry.js} +1 -1
- package/lib/duet/p-c81dbdd8.system.entry.js +4 -0
- package/lib/duet/{p-440e2c47.entry.js → p-c82b473c.entry.js} +1 -1
- package/lib/duet/{p-9c9fbda5.system.entry.js → p-c9ae37b1.system.entry.js} +1 -1
- package/lib/duet/{p-a03485f8.entry.js → p-d0f47541.entry.js} +1 -1
- package/lib/duet/{p-28f87990.entry.js → p-d0f85a74.entry.js} +1 -1
- package/lib/duet/{p-67734fad.entry.js → p-d1386178.entry.js} +1 -1
- package/lib/duet/{p-c383ceb4.system.entry.js → p-d21f3363.system.entry.js} +1 -1
- package/lib/duet/{p-d3d6e75d.entry.js → p-d4474dfa.entry.js} +1 -1
- package/lib/duet/{p-9df52009.system.entry.js → p-db3206cb.system.entry.js} +1 -1
- package/lib/duet/{p-63aea0dc.system.entry.js → p-db9acbac.system.entry.js} +1 -1
- package/lib/duet/{p-f2831cda.system.entry.js → p-ea4225cf.system.entry.js} +1 -1
- package/lib/duet/{p-7d0051ea.entry.js → p-fa0f88a4.entry.js} +1 -1
- package/lib/duet/{p-e5b22358.entry.js → p-fb0b9a3d.entry.js} +1 -1
- package/lib/duet/{p-46b83696.system.entry.js → p-fffc2efd.system.entry.js} +1 -1
- package/lib/esm/duet-action-button.entry.js +1 -1
- package/lib/esm/duet-alert.entry.js +5 -3
- 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 +1 -1
- package/lib/esm/duet-caption_4.entry.js +4 -3
- package/lib/esm/duet-card.entry.js +1 -1
- package/lib/esm/duet-checkbox.entry.js +1 -1
- package/lib/esm/duet-choice_2.entry.js +17 -8
- package/lib/esm/duet-collapsible.entry.js +1 -1
- 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 +1 -1
- 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 +10 -2
- package/lib/esm/duet-grid_2.entry.js +1 -1
- package/lib/esm/duet-header_2.entry.js +13 -5
- package/lib/esm/duet-hero.entry.js +3 -2
- package/lib/esm/duet-icon.entry.js +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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-8dc04c1c.js → focus-utils-f19397eb.js} +1 -1
- package/lib/esm/{index-e1964887.js → index-5b851882.js} +1 -1
- package/lib/esm/loader.js +1 -1
- 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 +1 -1
- 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-f19397eb.js +4 -0
- package/lib/esm-es5/{index-e1964887.js → index-5b851882.js} +1 -1
- package/lib/esm-es5/loader.js +1 -1
- package/lib/types/components/duet-alert/duet-alert.d.ts +1 -0
- package/lib/types/components/duet-choice/duet-choice.d.ts +4 -0
- package/lib/types/components/duet-choice-group/duet-choice-group.d.ts +1 -0
- package/lib/types/components/duet-footer/duet-footer.d.ts +11 -0
- package/lib/types/components/duet-header/duet-header.d.ts +11 -0
- package/lib/types/components/duet-heading/duet-heading.d.ts +2 -2
- package/lib/types/components/duet-hero/duet-hero.d.ts +2 -0
- package/lib/types/components.d.ts +10 -2
- package/package.json +6 -6
- package/lib/duet/p-07a2ad03.entry.js +0 -4
- package/lib/duet/p-21321528.system.entry.js +0 -4
- package/lib/duet/p-33a0c070.system.entry.js +0 -4
- package/lib/duet/p-5c1646f2.entry.js +0 -4
- package/lib/duet/p-6c5d3def.entry.js +0 -4
- package/lib/duet/p-7dfc475d.entry.js +0 -4
- package/lib/duet/p-a806d616.entry.js +0 -4
- package/lib/duet/p-b28e6872.system.entry.js +0 -4
- package/lib/duet/p-c918ce45.system.entry.js +0 -4
- package/lib/duet/p-c9f244f6.entry.js +0 -4
- package/lib/duet/p-f30eb0fd.entry.js +0 -4
- package/lib/esm-es5/focus-utils-8dc04c1c.js +0 -4
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
7
7
|
|
|
8
|
-
const index = require('./index-
|
|
8
|
+
const index = require('./index-782371bf.js');
|
|
9
9
|
const tokens_module = require('./tokens.module-ef598645.js');
|
|
10
10
|
const themeableComponent = require('./themeable-component-fdeaef9f.js');
|
|
11
11
|
const createId = require('./create-id-c3b984b1.js');
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
7
7
|
|
|
8
|
-
const index = require('./index-
|
|
8
|
+
const index = require('./index-782371bf.js');
|
|
9
9
|
|
|
10
10
|
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}";
|
|
11
11
|
|
package/lib/cjs/duet.cjs.js
CHANGED
|
@@ -24,7 +24,7 @@ function _interopNamespace(e) {
|
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
const NAMESPACE = 'duet';
|
|
27
|
-
const Env = /* duet */ {"cdnURILocal":"http://0.0.0.0:3334","cdnURIProd":"https://cdn.duetds.com/api","duetIconVersion":"
|
|
27
|
+
const Env = /* duet */ {"cdnURILocal":"http://0.0.0.0:3334","cdnURIProd":"https://cdn.duetds.com/api","duetIconVersion":"3.0.1"};
|
|
28
28
|
|
|
29
29
|
let scopeId;
|
|
30
30
|
let contentRef;
|
package/lib/cjs/loader.cjs.js
CHANGED
|
@@ -3,9 +3,11 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { Component, Event, h, Host, Prop, State } from "@stencil/core";
|
|
5
5
|
import { inheritGlobalTheme } from "../../common/themeable-component";
|
|
6
|
+
import { createID } from "../../utils/create-id";
|
|
6
7
|
import { getLocaleString } from "../../utils/language-utils";
|
|
7
8
|
export class DuetAlert {
|
|
8
9
|
constructor() {
|
|
10
|
+
this.descriptiveId = createID("DuetAlert");
|
|
9
11
|
/**
|
|
10
12
|
* Theme of the card.
|
|
11
13
|
*/
|
|
@@ -85,7 +87,7 @@ export class DuetAlert {
|
|
|
85
87
|
render() {
|
|
86
88
|
const closeColor = this.theme === "turva" ? "secondary-turva" : "secondary";
|
|
87
89
|
const role = this.variation === "danger" || this.variation === "warning" ? "alert" : "status";
|
|
88
|
-
return (h(Host, {
|
|
90
|
+
return (h(Host, { class: { "duet-theme-turva": this.theme === "turva", "duet-alert-is-dismissed": this.isDismissed }, role: this.announcements ? role : undefined },
|
|
89
91
|
h("div", { class: {
|
|
90
92
|
"duet-alert": true,
|
|
91
93
|
"duet-alert-has-icon": !!this.icon,
|
|
@@ -98,10 +100,10 @@ export class DuetAlert {
|
|
|
98
100
|
h("div", { class: "duet-alert-container" },
|
|
99
101
|
this.icon && (h("div", { class: "duet-alert-icon" },
|
|
100
102
|
h("duet-icon", { size: "auto", name: this.icon, color: "currentColor" }))),
|
|
101
|
-
h("span",
|
|
103
|
+
h("span", { id: this.descriptiveId },
|
|
102
104
|
h("slot", null))),
|
|
103
105
|
this.dismissible && (h("div", { class: "duet-alert-dismiss" },
|
|
104
|
-
h("duet-button", { variation: "plain", accessibleLabel: this.accessibleLabel, color: closeColor, iconSize: "medium", icon: "navigation-close", iconOnly: true, margin: "none", theme: this.theme, onClick: this.handleDismiss, fixed: true }))))));
|
|
106
|
+
h("duet-button", { variation: "plain", accessibleLabel: this.accessibleLabel, accessibleDescribedBy: this.descriptiveId, color: closeColor, iconSize: "medium", icon: "navigation-close", iconOnly: true, margin: "none", theme: this.theme, onClick: this.handleDismiss, fixed: true }))))));
|
|
105
107
|
}
|
|
106
108
|
static get is() { return "duet-alert"; }
|
|
107
109
|
static get encapsulation() { return "shadow"; }
|
|
@@ -124,6 +124,11 @@
|
|
|
124
124
|
border-radius: 4px;
|
|
125
125
|
transition: background-color 150ms ease;
|
|
126
126
|
}
|
|
127
|
+
.duet-choice-label.has-before-text .duet-choice-card-icon,
|
|
128
|
+
.duet-choice-label.has-before-text .duet-choice-card-text {
|
|
129
|
+
align-self: flex-start;
|
|
130
|
+
margin-top: 0.25rem;
|
|
131
|
+
}
|
|
127
132
|
.duet-choice-label > div:last-child {
|
|
128
133
|
flex: 1;
|
|
129
134
|
align-self: flex-start;
|
|
@@ -11,6 +11,8 @@ import { isEscapeKey, isKeyboardClick, isQuestionKey } from "../../utils/keyboar
|
|
|
11
11
|
import { getLanguage, getLocaleString } from "../../utils/language-utils";
|
|
12
12
|
/**
|
|
13
13
|
* @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
|
+
* @slot label - Label content.
|
|
15
|
+
* @slot before-text - Content before text can be for example icons or images.
|
|
14
16
|
* @slot info - Info content. Anything inserted into this slot is displayed in a collapsible info box.
|
|
15
17
|
* @slot collapsible_header - header that is only added to collapsible element, this header should be used when the components collapsible area contains additional interactive elements (such as form items) and should be user for a short description of the content below it, it is mandatory for good accessibility to use this - and aria-decribe-by will point to it. If you use the collapsible area with simple text - describe-by will point to this area
|
|
16
18
|
* @slot additional - Additional content. Anything inserted into this slot is displayed as additional content under the label and caption
|
|
@@ -205,6 +207,8 @@ export class DuetChoice {
|
|
|
205
207
|
this.hasInfo = !!this.element.querySelector("[slot='info']");
|
|
206
208
|
this.hasHeader = !!this.element.querySelector('[slot="header"]');
|
|
207
209
|
this.hasAdditional = !!this.element.querySelector("[slot='additional']");
|
|
210
|
+
this.hasLabel = !!this.element.querySelector("[slot='label']");
|
|
211
|
+
this.hasBeforeText = !!this.element.querySelector("[slot='before-text']");
|
|
208
212
|
}
|
|
209
213
|
/**
|
|
210
214
|
* Component event handling.
|
|
@@ -300,11 +304,12 @@ export class DuetChoice {
|
|
|
300
304
|
"duet-p-0": this.padding === "none",
|
|
301
305
|
} },
|
|
302
306
|
h("input", { class: "duet-choice-input", type: this.type, onFocus: this.onFocus, onBlur: this.onBlur, onChange: this.onChange, disabled: this.disabled || this.groupDisabled, required: this.required, id: identifier, name: this.name, value: this.value, checked: this.checked, "aria-controls": this.accessibleControls, "aria-activedescendant": this.accessibleActiveDescendant, "aria-labelledby": this.accessibleLabelledBy, "aria-details": this.accessibleDetails, "aria-description": this.accessibleDescription, "aria-owns": this.accessibleOwns, "aria-describedby": this.getAriaDescribedby(), onKeyDown: this.handleKeyDown, ref: input => (this.nativeInput = input) }),
|
|
303
|
-
h("label", { htmlFor: identifier, class: { "duet-choice-label": true, "no-hover": this.isHovering }, onClick: this.onClick },
|
|
307
|
+
h("label", { htmlFor: identifier, class: { "duet-choice-label": true, "no-hover": this.isHovering, "has-before-text": this.hasBeforeText }, onClick: this.onClick },
|
|
308
|
+
this.hasBeforeText && h("slot", { name: "before-text" }),
|
|
304
309
|
this.icon && (h("div", { class: "duet-choice-card-icon" },
|
|
305
310
|
h("duet-icon", { margin: "none", size: "small", name: this.icon, color: "currentColor" }))),
|
|
306
|
-
h("div",
|
|
307
|
-
h("div", null, this.label),
|
|
311
|
+
h("div", { class: "duet-choice-card-text" },
|
|
312
|
+
h("div", null, this.hasLabel ? h("slot", { name: "label" }) : this.label),
|
|
308
313
|
this.caption && (h("div", null,
|
|
309
314
|
h("duet-spacer", { size: "xx-small" }),
|
|
310
315
|
h("duet-caption", { margin: "none", selected: this.checked }, this.caption))),
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import { Build, Component, Element, h, Host, Prop, Watch } from "@stencil/core";
|
|
5
5
|
import { inheritGlobalTheme } from "../../common/themeable-component";
|
|
6
6
|
import { findCheckedOption, watchForOptions } from "../../utils/watch-options";
|
|
7
|
+
const duetChoiceSelector = ":scope duet-choice:not(:scope duet-choice duet-choice-group duet-choice)";
|
|
7
8
|
export class DuetChoiceGroup {
|
|
8
9
|
constructor() {
|
|
9
10
|
/**
|
|
@@ -49,6 +50,9 @@ export class DuetChoiceGroup {
|
|
|
49
50
|
* makes sure that contents are stacked vertically on mobile.
|
|
50
51
|
*/
|
|
51
52
|
this.responsive = false;
|
|
53
|
+
this.getChoices = () => {
|
|
54
|
+
return Array.from(this.element.querySelectorAll(duetChoiceSelector));
|
|
55
|
+
};
|
|
52
56
|
/**
|
|
53
57
|
* Component event handling.
|
|
54
58
|
*/
|
|
@@ -74,7 +78,7 @@ export class DuetChoiceGroup {
|
|
|
74
78
|
}
|
|
75
79
|
const el = this.element;
|
|
76
80
|
if (this.value === undefined) {
|
|
77
|
-
const choice = findCheckedOption(el,
|
|
81
|
+
const choice = findCheckedOption(el, duetChoiceSelector);
|
|
78
82
|
if (choice !== undefined) {
|
|
79
83
|
await choice.componentOnReady();
|
|
80
84
|
if (this.value === undefined) {
|
|
@@ -82,10 +86,13 @@ export class DuetChoiceGroup {
|
|
|
82
86
|
}
|
|
83
87
|
}
|
|
84
88
|
}
|
|
85
|
-
this.mutationO = watchForOptions(el,
|
|
89
|
+
this.mutationO = watchForOptions(el, duetChoiceSelector, newOption => {
|
|
86
90
|
if (newOption !== undefined) {
|
|
87
91
|
newOption.componentOnReady().then(() => {
|
|
88
|
-
|
|
92
|
+
const choices = this.getChoices();
|
|
93
|
+
if (choices.includes(newOption)) {
|
|
94
|
+
this.value = newOption.value;
|
|
95
|
+
}
|
|
89
96
|
});
|
|
90
97
|
}
|
|
91
98
|
else {
|
|
@@ -114,7 +121,7 @@ export class DuetChoiceGroup {
|
|
|
114
121
|
* Make sure we get all choices first so values are up to date prior
|
|
115
122
|
* to caching the choice group value
|
|
116
123
|
*/
|
|
117
|
-
const choices =
|
|
124
|
+
const choices = this.getChoices();
|
|
118
125
|
const { value } = this;
|
|
119
126
|
let hasChecked = false;
|
|
120
127
|
// Walk the DOM in reverse order, since the last selected one wins
|
|
@@ -94,6 +94,13 @@ export class DuetFooter {
|
|
|
94
94
|
this.handleClick(e);
|
|
95
95
|
this.duetItemClick.emit(e);
|
|
96
96
|
};
|
|
97
|
+
this.emitDuetEvent = (ev, data) => {
|
|
98
|
+
this.duetEvent.emit({
|
|
99
|
+
component: "duet-footer",
|
|
100
|
+
data,
|
|
101
|
+
originalEvent: ev,
|
|
102
|
+
});
|
|
103
|
+
};
|
|
97
104
|
}
|
|
98
105
|
/**
|
|
99
106
|
* Component lifecycle events.
|
|
@@ -127,7 +134,7 @@ export class DuetFooter {
|
|
|
127
134
|
this.variation !== "simple" && (h("duet-logo", { href: this.logoHref, onClick: this.handleLogoClick, size: "large", inverse: true, language: this.language, theme: this.theme })),
|
|
128
135
|
this.processedItems &&
|
|
129
136
|
this.variation !== "simple" &&
|
|
130
|
-
this.processedItems.map(item => (h("a", { class: "duet-footer-link", href: item.href, id: item.id, target: item.external ? "_blank" : "_self", onClick: event => this.handleItemClick(event, item) },
|
|
137
|
+
this.processedItems.map(item => (h("a", { class: "duet-footer-link", href: item.href, id: item.id, target: item.external ? "_blank" : "_self", onClick: event => this.handleItemClick(event, item), onMouseEnter: event => this.emitDuetEvent(event, item), onTouchStart: event => this.emitDuetEvent(event, item) },
|
|
131
138
|
h("div", { class: "duet-footer-icon" },
|
|
132
139
|
h("duet-icon", { size: "medium", margin: "none", name: item.icon, color: "currentColor" })),
|
|
133
140
|
h("span", null, item.label),
|
|
@@ -138,7 +145,7 @@ export class DuetFooter {
|
|
|
138
145
|
h("slot", { name: "extra" }),
|
|
139
146
|
h("p", { class: "duet-footer-menu", part: "menu" },
|
|
140
147
|
h("span", { class: "duet-footer-copyright" }, `${copyrightLabel} ${new Date().getFullYear()}`),
|
|
141
|
-
h("div", { class: "duet-footer-menu-links" }, this.processedMenu && (h(Fragment, null, this.processedMenu.map(item => (h("a", { href: item.href, id: item.id, target: item.external ? "_blank" : "_self", onClick: event => this.handleMenuClick(event, item) },
|
|
148
|
+
h("div", { class: "duet-footer-menu-links" }, this.processedMenu && (h(Fragment, null, this.processedMenu.map(item => (h("a", { href: item.href, id: item.id, target: item.external ? "_blank" : "_self", onClick: event => this.handleMenuClick(event, item), onMouseEnter: event => this.emitDuetEvent(event, item), onTouchStart: event => this.emitDuetEvent(event, item) },
|
|
142
149
|
item.label,
|
|
143
150
|
item.external && (h(Fragment, null,
|
|
144
151
|
h("duet-visually-hidden", null,
|
|
@@ -458,6 +465,25 @@ export class DuetFooter {
|
|
|
458
465
|
}
|
|
459
466
|
}
|
|
460
467
|
}
|
|
468
|
+
}, {
|
|
469
|
+
"method": "duetEvent",
|
|
470
|
+
"name": "duetEvent",
|
|
471
|
+
"bubbles": true,
|
|
472
|
+
"cancelable": true,
|
|
473
|
+
"composed": true,
|
|
474
|
+
"docs": {
|
|
475
|
+
"tags": [],
|
|
476
|
+
"text": "General event stream for the following events:\nitem: onMouseEnter, onTouchDown;\nmenuItem: onMouseEnter, onTouchDown;.\nYou can prevent\nthe default browser functionality by calling **event.detail.originalEvent.preventDefault()**\ninside your listener. Additionally, the passed data is available via\n**event.detail.data**."
|
|
477
|
+
},
|
|
478
|
+
"complexType": {
|
|
479
|
+
"original": "DuetFooterChangeEvent",
|
|
480
|
+
"resolved": "{ component: \"duet-footer\"; data: DuetFooterItem | DuetFooterIconItem; originalEvent: Event; }",
|
|
481
|
+
"references": {
|
|
482
|
+
"DuetFooterChangeEvent": {
|
|
483
|
+
"location": "local"
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
}
|
|
461
487
|
}]; }
|
|
462
488
|
static get elementRef() { return "element"; }
|
|
463
489
|
static get watchers() { return [{
|
|
@@ -330,6 +330,13 @@ export class DuetHeader {
|
|
|
330
330
|
}, 300);
|
|
331
331
|
}
|
|
332
332
|
};
|
|
333
|
+
this.emitDuetEvent = (ev, data) => {
|
|
334
|
+
this.duetEvent.emit({
|
|
335
|
+
component: "duet-header",
|
|
336
|
+
data,
|
|
337
|
+
originalEvent: ev,
|
|
338
|
+
});
|
|
339
|
+
};
|
|
333
340
|
}
|
|
334
341
|
/**
|
|
335
342
|
* Component lifecycle events.
|
|
@@ -589,7 +596,7 @@ export class DuetHeader {
|
|
|
589
596
|
!this.openMenu &&
|
|
590
597
|
item.items &&
|
|
591
598
|
!item.items.some(s => s.active === true)),
|
|
592
|
-
}, href: item.href || "#", id: item.id || `header-item-${itemIndex}`, onClick: event => this.handleItemClick(event, item) },
|
|
599
|
+
}, href: item.href || "#", id: item.id || `header-item-${itemIndex}`, onClick: event => this.handleItemClick(event, item), onMouseEnter: event => this.emitDuetEvent(event, item), onTouchStart: event => this.emitDuetEvent(event, item) },
|
|
593
600
|
item.label,
|
|
594
601
|
item.badge && h("div", { class: "duet-header-badge" })),
|
|
595
602
|
item.items &&
|
|
@@ -607,7 +614,7 @@ export class DuetHeader {
|
|
|
607
614
|
secondLevelItem.items.map(thirdLevelItem => (h("a", { class: {
|
|
608
615
|
"duet-header-item": true,
|
|
609
616
|
active: thirdLevelItem.active === true,
|
|
610
|
-
}, role: "menuitem", href: thirdLevelItem.href || "#", id: thirdLevelItem.id, onClick: event => this.handleItemClick(event, thirdLevelItem), onKeyDown: ev => this.handleArrowKeys(ev), target: thirdLevelItem.external ? "_blank" : "_self" },
|
|
617
|
+
}, role: "menuitem", href: thirdLevelItem.href || "#", id: thirdLevelItem.id, onClick: event => this.handleItemClick(event, thirdLevelItem), onKeyDown: ev => this.handleArrowKeys(ev), onMouseEnter: event => this.emitDuetEvent(event, thirdLevelItem), onTouchStart: event => this.emitDuetEvent(event, thirdLevelItem), target: thirdLevelItem.external ? "_blank" : "_self" },
|
|
611
618
|
thirdLevelItem.icon && (h("div", { class: "duet-header-icon" },
|
|
612
619
|
h("duet-icon", { margin: "none", size: "medium", name: thirdLevelItem.icon, color: "currentColor" }))),
|
|
613
620
|
h("span", null, thirdLevelItem.label),
|
|
@@ -644,7 +651,7 @@ export class DuetHeader {
|
|
|
644
651
|
skipToLabel(),
|
|
645
652
|
h("div", { class: "logo-and-segment" },
|
|
646
653
|
h("div", null, largeLogo()),
|
|
647
|
-
this.processedItems && (h(DuetHeaderDropdown, { id: segmentId, label: activeSegment.label, active: this.isSegmentOpen, isOpen: this.isSegmentOpen, badge: false, toggleRef: el => (this.segmentItemsButtonEl = el), itemsRef: el => (this.segmentItemsEl = el), onToggle: event => this.toggleMenu(event, "segment") }, this.processedItems.map(item => (h("a", { class: { active: activeSegment === item }, role: "menuitem", href: item.href || "#", id: item.id, onClick: event => this.handleItemClick(event, item), onKeyDown: ev => this.handleArrowKeys(ev), target: item.external ? "_blank" : "_self" },
|
|
654
|
+
this.processedItems && (h(DuetHeaderDropdown, { id: segmentId, label: activeSegment.label, active: this.isSegmentOpen, isOpen: this.isSegmentOpen, badge: false, toggleRef: el => (this.segmentItemsButtonEl = el), itemsRef: el => (this.segmentItemsEl = el), onToggle: event => this.toggleMenu(event, "segment") }, this.processedItems.map(item => (h("a", { class: { active: activeSegment === item }, role: "menuitem", href: item.href || "#", id: item.id, onClick: event => this.handleItemClick(event, item), onKeyDown: ev => this.handleArrowKeys(ev), onMouseEnter: event => this.emitDuetEvent(event, item), onTouchStart: event => this.emitDuetEvent(event, item), target: item.external ? "_blank" : "_self" },
|
|
648
655
|
item.icon && (h("div", { class: "duet-header-icon" },
|
|
649
656
|
h("duet-icon", { margin: "none", size: "x-small", name: item.icon, color: "currentColor" }))),
|
|
650
657
|
h("span", null, item.label),
|
|
@@ -655,7 +662,7 @@ export class DuetHeader {
|
|
|
655
662
|
.map((secondLevelItem, secondLevelItemIndex) => {
|
|
656
663
|
const id = secondLevelItem.id || `segment-item-${secondLevelItemIndex}`;
|
|
657
664
|
return (h(DuetHeaderDropdown, { id: id, label: secondLevelItem.label, active: (!this.openMenu && secondLevelItem.active === true) || this.openMenu === id, isOpen: this.openMenu === id, badge: secondLevelItem.badge, toggleRef: el => (this.subMenuButtonRefs[id] = el), itemsRef: el => (this.subMenuItemRefs[id] = el), onToggle: event => this.toggleMenu(event, "sub", id) }, secondLevelItem.items &&
|
|
658
|
-
secondLevelItem.items.map(thirdLevelItem => (h("a", { class: { active: thirdLevelItem.active }, role: "menuitem", href: thirdLevelItem.href || "#", id: thirdLevelItem.id, onClick: event => this.handleItemClick(event, thirdLevelItem), onKeyDown: ev => this.handleArrowKeys(ev), target: thirdLevelItem.external ? "_blank" : "_self" },
|
|
665
|
+
secondLevelItem.items.map(thirdLevelItem => (h("a", { class: { active: thirdLevelItem.active }, role: "menuitem", href: thirdLevelItem.href || "#", id: thirdLevelItem.id, onClick: event => this.handleItemClick(event, thirdLevelItem), onKeyDown: ev => this.handleArrowKeys(ev), onMouseEnter: event => this.emitDuetEvent(event, thirdLevelItem), onTouchStart: event => this.emitDuetEvent(event, thirdLevelItem), target: thirdLevelItem.external ? "_blank" : "_self" },
|
|
659
666
|
thirdLevelItem.icon && (h("div", { class: "duet-header-icon" },
|
|
660
667
|
h("duet-icon", { margin: "none", size: "medium", name: thirdLevelItem.icon, color: "currentColor" }))),
|
|
661
668
|
h("span", null, thirdLevelItem.label),
|
|
@@ -1338,6 +1345,25 @@ export class DuetHeader {
|
|
|
1338
1345
|
}
|
|
1339
1346
|
}
|
|
1340
1347
|
}
|
|
1348
|
+
}, {
|
|
1349
|
+
"method": "duetEvent",
|
|
1350
|
+
"name": "duetEvent",
|
|
1351
|
+
"bubbles": true,
|
|
1352
|
+
"cancelable": true,
|
|
1353
|
+
"composed": true,
|
|
1354
|
+
"docs": {
|
|
1355
|
+
"tags": [],
|
|
1356
|
+
"text": "General event stream for the following events:\nitem: onMouseEnter, onTouchDown;\nmenuItem: onMouseEnter, onTouchDown;.\nYou can prevent\nthe default browser functionality by calling **event.detail.originalEvent.preventDefault()**\ninside your listener. Additionally, the passed data is available via\n**event.detail.data**."
|
|
1357
|
+
},
|
|
1358
|
+
"complexType": {
|
|
1359
|
+
"original": "DuetHeaderChangeEvent",
|
|
1360
|
+
"resolved": "{ originalEvent: Event; data: DuetHeaderItem | DuetHeaderLanguageItem | DuetHeaderSession; component: \"duet-header\"; }",
|
|
1361
|
+
"references": {
|
|
1362
|
+
"DuetHeaderChangeEvent": {
|
|
1363
|
+
"location": "local"
|
|
1364
|
+
}
|
|
1365
|
+
}
|
|
1366
|
+
}
|
|
1341
1367
|
}]; }
|
|
1342
1368
|
static get methods() { return {
|
|
1343
1369
|
"closeMenus": {
|
|
@@ -237,6 +237,10 @@
|
|
|
237
237
|
.duet-heading.h6.duet-heading-border {
|
|
238
238
|
padding-bottom: 16px;
|
|
239
239
|
}
|
|
240
|
+
.duet-heading.duet-normal, .duet-heading.duet-theme-turva.duet-normal {
|
|
241
|
+
font-style: normal !important;
|
|
242
|
+
font-weight: 400 !important;
|
|
243
|
+
}
|
|
240
244
|
.duet-heading.duet-semibold, .duet-heading.duet-theme-turva.duet-semibold {
|
|
241
245
|
font-style: normal !important;
|
|
242
246
|
font-weight: 600 !important;
|
|
@@ -20,7 +20,7 @@ export class DuetHeading {
|
|
|
20
20
|
*/
|
|
21
21
|
this.border = false;
|
|
22
22
|
/**
|
|
23
|
-
* This property allows you to set semibold font weight for all sizes
|
|
23
|
+
* This property allows you to set normal or semibold font weight for all sizes
|
|
24
24
|
* when needed.
|
|
25
25
|
*/
|
|
26
26
|
this.weight = "auto";
|
|
@@ -55,6 +55,7 @@ export class DuetHeading {
|
|
|
55
55
|
"duet-heading": true,
|
|
56
56
|
"duet-heading-border": this.border !== false,
|
|
57
57
|
"duet-heading-border-solid": this.border === "solid",
|
|
58
|
+
"duet-normal": this.weight === "normal",
|
|
58
59
|
"duet-semibold": this.weight === "semibold",
|
|
59
60
|
"duet-heading-hyphenate": this.hyphenate,
|
|
60
61
|
"duet-m-0": this.margin === "none",
|
|
@@ -163,7 +164,7 @@ export class DuetHeading {
|
|
|
163
164
|
"mutable": false,
|
|
164
165
|
"complexType": {
|
|
165
166
|
"original": "DuetHeadingWeight",
|
|
166
|
-
"resolved": "\"auto\" | \"semibold\"",
|
|
167
|
+
"resolved": "\"auto\" | \"normal\" | \"semibold\"",
|
|
167
168
|
"references": {
|
|
168
169
|
"DuetHeadingWeight": {
|
|
169
170
|
"location": "local"
|
|
@@ -174,7 +175,7 @@ export class DuetHeading {
|
|
|
174
175
|
"optional": false,
|
|
175
176
|
"docs": {
|
|
176
177
|
"tags": [],
|
|
177
|
-
"text": "This property allows you to set semibold font weight for all sizes\nwhen needed."
|
|
178
|
+
"text": "This property allows you to set normal or semibold font weight for all sizes\nwhen needed."
|
|
178
179
|
},
|
|
179
180
|
"attribute": "weight",
|
|
180
181
|
"reflect": false,
|
|
@@ -9,6 +9,7 @@ import { getLanguage, getLocaleString } from "../../utils/language-utils";
|
|
|
9
9
|
import { parsePossibleJSON } from "../../utils/string-utils";
|
|
10
10
|
/**
|
|
11
11
|
* @part duet-hero - piercing selector for styling the hero container
|
|
12
|
+
* @part duet-hero-text - piercing selector for styling the hero text container
|
|
12
13
|
* @slot default - This is an unamed slot for a text or extra button that is placed after any buttons (or list item)
|
|
13
14
|
* @slot badge - This is a slot for a status badge that sits next to pre-heading inside the hero component.
|
|
14
15
|
* @slot bottom - This is a slot for content under the main hero content.
|
|
@@ -136,6 +137,7 @@ export class DuetHero {
|
|
|
136
137
|
*/
|
|
137
138
|
componentWillLoad() {
|
|
138
139
|
inheritGlobalTheme(this);
|
|
140
|
+
this.hasHeadingSlot = !!this.element.querySelector('[slot="heading"]');
|
|
139
141
|
this.refresh();
|
|
140
142
|
}
|
|
141
143
|
/**
|
|
@@ -214,10 +216,10 @@ export class DuetHero {
|
|
|
214
216
|
analyticsId: this.processedBack.analyticsId,
|
|
215
217
|
}) }, this.processedBack.label))),
|
|
216
218
|
(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 })),
|
|
217
|
-
h("div", { class: "duet-hero-text" },
|
|
219
|
+
h("div", { class: "duet-hero-text", part: "duet-hero-text" },
|
|
218
220
|
this.preHeading && (h("duet-paragraph", { margin: "none", class: "duet-hero-pre" }, this.preHeading)),
|
|
219
221
|
h("slot", { name: "badge" }),
|
|
220
|
-
h("duet-heading", { theme: this.theme, level: this.level, class: { "duet-hero-heading": true, "duet-hero-heading-has-pre": this.preHeading !== "" }, color: this.variation === "default" ? "gray-lightest" : "", visualLevel: this.variation === "gray" || this.variation === "minimal" ? "h2" : "h1" }, this.heading ? this.heading : h("slot", { name: "heading" })),
|
|
222
|
+
(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: this.variation === "default" ? "gray-lightest" : "", visualLevel: this.variation === "gray" || this.variation === "minimal" ? "h2" : "h1" }, this.heading ? this.heading : h("slot", { name: "heading" }))),
|
|
221
223
|
this.description && (h("duet-paragraph", { theme: this.theme, color: textColor, variation: "intro" }, this.description)),
|
|
222
224
|
(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,
|
|
223
225
|
h("span", { slot: "label" }, item.label),
|