@duetds/components 4.34.2 → 4.35.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 +386 -25
- package/lib/cjs/duet-alert.cjs.entry.js +1 -1
- package/lib/cjs/duet-badge.cjs.entry.js +2 -2
- package/lib/cjs/duet-breadcrumb.cjs.entry.js +48 -0
- package/lib/cjs/duet-breadcrumbs.cjs.entry.js +68 -0
- package/lib/cjs/duet-button_2.cjs.entry.js +4 -3
- package/lib/cjs/duet-caption_4.cjs.entry.js +2 -2
- 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 +2 -2
- package/lib/cjs/duet-collapsible.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-button.cjs.entry.js +1 -1
- package/lib/cjs/duet-editable-table_4.cjs.entry.js +12 -3
- 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 +1 -1
- package/lib/cjs/duet-header_2.cjs.entry.js +1 -1
- package/lib/cjs/duet-hero.cjs.entry.js +1 -1
- 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 +15 -3
- 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-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 +414 -0
- 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 +2 -2
- package/lib/cjs/{focus-utils-b57facfe.js → focus-utils-e1efc65c.js} +1 -1
- package/lib/cjs/{index-e2021bf7.js → index-6128deac.js} +1 -1
- package/lib/cjs/loader.cjs.js +2 -2
- package/lib/collection/collection-manifest.json +10 -6
- package/lib/collection/components/duet-badge/duet-badge.js +1 -1
- package/lib/collection/components/duet-breadcrumbs/duet-breadcrumb.css +57 -0
- package/lib/collection/components/duet-breadcrumbs/duet-breadcrumb.js +131 -0
- package/lib/collection/components/duet-breadcrumbs/duet-breadcrumbs.css +63 -0
- package/lib/collection/components/duet-breadcrumbs/duet-breadcrumbs.js +104 -0
- package/lib/collection/components/duet-button/duet-button.css +22 -4
- package/lib/collection/components/duet-button/duet-button.js +6 -2
- package/lib/collection/components/duet-link/duet-link.js +1 -1
- package/lib/collection/components/duet-modal/duet-modal.js +33 -3
- package/lib/collection/components/duet-scrollable/duet-scrollable.css +83 -0
- package/lib/collection/components/duet-scrollable/duet-scrollable.js +240 -0
- package/lib/collection/components/duet-tab/duet-tab.js +63 -1
- package/lib/collection/components/duet-tab-group/duet-tab-group.css +12 -13
- package/lib/collection/components/duet-tab-group/duet-tab-group.js +101 -16
- package/lib/collection/components/duet-upload/duet-upload.js +32 -4
- package/lib/custom-elements-bundle/index.d.ts +18 -0
- package/lib/custom-elements-bundle/index.js +356 -29
- package/lib/duet/duet.esm.js +1 -1
- package/lib/duet/duet.js +1 -1
- package/lib/duet/p-00b447fe.entry.js +4 -0
- package/lib/duet/{p-69133107.system.entry.js → p-02f369f0.system.entry.js} +1 -1
- package/lib/duet/{p-d3b5d2ef.system.entry.js → p-03bb1f47.system.entry.js} +1 -1
- package/lib/duet/{p-c67a63cc.system.entry.js → p-0569a7ac.system.entry.js} +1 -1
- package/lib/duet/{p-f7f4f98a.system.entry.js → p-08e5b6ec.system.entry.js} +1 -1
- package/lib/duet/{p-75261615.system.entry.js → p-096c0b9e.system.entry.js} +1 -1
- package/lib/duet/{p-7a0a375e.system.entry.js → p-09ba1ab9.system.entry.js} +2 -2
- package/lib/duet/{p-ddbdac54.entry.js → p-0d9989c5.entry.js} +1 -1
- package/lib/duet/{p-8b01f978.system.entry.js → p-0f20c5c4.system.entry.js} +1 -1
- package/lib/duet/{p-a900d55b.entry.js → p-1229b08d.entry.js} +1 -1
- package/lib/duet/{p-2524481a.system.entry.js → p-1b0b462f.system.entry.js} +1 -1
- package/lib/duet/{p-f01494f9.system.entry.js → p-1b134dc3.system.entry.js} +1 -1
- package/lib/duet/p-1fbcd741.entry.js +4 -0
- package/lib/duet/{p-8d42cb7c.entry.js → p-26ab4386.entry.js} +1 -1
- package/lib/duet/{p-08d1abc7.entry.js → p-29d1e8dc.entry.js} +1 -1
- package/lib/duet/{p-4a742d83.entry.js → p-2c8d7bbb.entry.js} +1 -1
- package/lib/duet/{p-5c67bb73.system.entry.js → p-2cc5934d.system.entry.js} +1 -1
- package/lib/duet/{p-8e16057d.system.entry.js → p-2dcc9779.system.entry.js} +1 -1
- package/lib/duet/{p-e1c6f74b.entry.js → p-30cde172.entry.js} +1 -1
- package/lib/duet/{p-e0038277.system.entry.js → p-34381bd0.system.entry.js} +1 -1
- package/lib/duet/{p-baef2241.entry.js → p-39d4e2d4.entry.js} +1 -1
- package/lib/duet/{p-488addbc.entry.js → p-3cc68d7d.entry.js} +1 -1
- package/lib/duet/{p-e242bf98.entry.js → p-3e67d7a2.entry.js} +1 -1
- package/lib/duet/{p-354bf924.entry.js → p-3ea21701.entry.js} +1 -1
- package/lib/duet/{p-c50bbff5.entry.js → p-3f2ac2e1.entry.js} +1 -1
- package/lib/duet/{p-5f2fb5db.entry.js → p-3f954a67.entry.js} +1 -1
- package/lib/duet/{p-a52d436c.entry.js → p-41019921.entry.js} +1 -1
- package/lib/duet/{p-c6ba80c6.entry.js → p-47986fa6.entry.js} +1 -1
- package/lib/duet/{p-ee74ff67.entry.js → p-482f91b0.entry.js} +1 -1
- package/lib/duet/p-4ac19266.entry.js +4 -0
- package/lib/duet/{p-ae8401c9.system.entry.js → p-4cdfa148.system.entry.js} +1 -1
- package/lib/duet/{p-939bf739.system.entry.js → p-4e0cca44.system.entry.js} +1 -1
- package/lib/duet/{p-f6e1fb0f.system.entry.js → p-4e588759.system.entry.js} +1 -1
- package/lib/duet/{p-5f866721.entry.js → p-4eda81b6.entry.js} +1 -1
- package/lib/duet/{p-ae46a7d2.system.entry.js → p-4f77c165.system.entry.js} +1 -1
- package/lib/duet/{p-4d5531be.entry.js → p-58832650.entry.js} +1 -1
- package/lib/duet/p-638ec570.system.entry.js +4 -0
- package/lib/duet/{p-f3c258d8.system.entry.js → p-65d61e92.system.entry.js} +1 -1
- package/lib/duet/p-66ada8c2.system.entry.js +4 -0
- package/lib/duet/{p-ec5d0cda.entry.js → p-6994cca1.entry.js} +1 -1
- package/lib/duet/p-6bbe6707.entry.js +4 -0
- package/lib/duet/{p-62de4645.system.entry.js → p-6bc17eac.system.entry.js} +1 -1
- package/lib/duet/{p-9849a4ab.system.entry.js → p-73cd52c3.system.entry.js} +1 -1
- package/lib/duet/{p-db87c4b1.system.entry.js → p-75d53642.system.entry.js} +1 -1
- package/lib/duet/{p-1fff32a9.system.entry.js → p-796becd9.system.entry.js} +1 -1
- package/lib/duet/{p-e3973f41.system.js → p-7d3a5621.system.js} +1 -1
- package/lib/duet/{p-3998eed6.entry.js → p-8040cc39.entry.js} +1 -1
- package/lib/duet/{p-45a6838d.system.entry.js → p-821da899.system.entry.js} +1 -1
- package/lib/duet/{p-b70f164d.entry.js → p-85170cb2.entry.js} +1 -1
- package/lib/duet/{p-90e7e876.entry.js → p-8a4a55a9.entry.js} +1 -1
- package/lib/duet/{p-3e0a774d.entry.js → p-905e62f0.entry.js} +1 -1
- package/lib/duet/{p-2862054c.entry.js → p-93bd2040.entry.js} +1 -1
- package/lib/duet/{p-13d5fe80.system.entry.js → p-9b56c174.system.entry.js} +1 -1
- package/lib/duet/{p-cdaa629d.system.entry.js → p-9b7a869e.system.entry.js} +1 -1
- package/lib/duet/{p-9793f3d8.entry.js → p-9d1ac81f.entry.js} +1 -1
- package/lib/duet/p-9ee29b96.js +4 -0
- package/lib/duet/{p-a58f0665.system.entry.js → p-9f53bfcc.system.entry.js} +1 -1
- package/lib/duet/{p-0dc01111.system.entry.js → p-a13cceae.system.entry.js} +1 -1
- package/lib/duet/p-a28308b5.entry.js +4 -0
- package/lib/duet/{p-de23ae41.entry.js → p-a5082840.entry.js} +1 -1
- package/lib/duet/{p-5f813e15.entry.js → p-a5d1c883.entry.js} +1 -1
- package/lib/duet/{p-58d7f2d1.entry.js → p-a5f67f2f.entry.js} +1 -1
- package/lib/duet/{p-5e03b63f.system.entry.js → p-ac525a17.system.entry.js} +1 -1
- package/lib/duet/p-ae5596da.js +4 -0
- package/lib/duet/{p-b8dde0c8.system.entry.js → p-af38d5b2.system.entry.js} +1 -1
- package/lib/duet/{p-0e742087.system.entry.js → p-b4fd3539.system.entry.js} +1 -1
- package/lib/duet/{p-f9a096a9.system.entry.js → p-b63dad81.system.entry.js} +1 -1
- package/lib/duet/p-b9bb03cb.system.js +4 -0
- package/lib/duet/{p-eed6f9cc.system.entry.js → p-bae3ae1d.system.entry.js} +1 -1
- package/lib/duet/{p-6a8b3cf0.system.entry.js → p-bf35379f.system.entry.js} +1 -1
- package/lib/duet/{p-72ad7798.entry.js → p-cc916a11.entry.js} +1 -1
- package/lib/duet/{p-4db07868.entry.js → p-d09f2dd8.entry.js} +1 -1
- package/lib/duet/{p-00bf3bbb.system.entry.js → p-d87aa545.system.entry.js} +1 -1
- package/lib/duet/{p-3e47c910.entry.js → p-da6aa538.entry.js} +1 -1
- package/lib/duet/p-ddda5f80.system.js +4 -0
- package/lib/duet/{p-760d2226.entry.js → p-e14ab836.entry.js} +1 -1
- package/lib/duet/{p-582f9135.system.entry.js → p-e193d6f7.system.entry.js} +1 -1
- package/lib/duet/{p-3e273d8d.entry.js → p-e4ebd229.entry.js} +1 -1
- package/lib/duet/{p-ffd449ef.system.entry.js → p-e5224000.system.entry.js} +1 -1
- package/lib/duet/{p-66c35cd2.entry.js → p-ec3cf4d1.entry.js} +1 -1
- package/lib/duet/{p-12941c46.system.entry.js → p-edcd137c.system.entry.js} +1 -1
- package/lib/duet/p-ee13c2e9.system.entry.js +4 -0
- package/lib/duet/{p-4836f66d.entry.js → p-f1013864.entry.js} +1 -1
- package/lib/duet/{p-5a5e7977.entry.js → p-f10d3f3d.entry.js} +1 -1
- package/lib/duet/p-f863e4f8.system.entry.js +4 -0
- package/lib/esm/duet-alert.entry.js +1 -1
- package/lib/esm/duet-badge.entry.js +2 -2
- package/lib/esm/duet-breadcrumb.entry.js +44 -0
- package/lib/esm/duet-breadcrumbs.entry.js +64 -0
- package/lib/esm/duet-button_2.entry.js +4 -3
- package/lib/esm/duet-caption_4.entry.js +2 -2
- 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 +2 -2
- package/lib/esm/duet-collapsible.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-button.entry.js +1 -1
- package/lib/esm/duet-editable-table_4.entry.js +12 -3
- 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 +1 -1
- package/lib/esm/duet-header_2.entry.js +1 -1
- package/lib/esm/duet-hero.entry.js +1 -1
- 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 +15 -3
- package/lib/esm/duet-notification_2.entry.js +1 -1
- package/lib/esm/duet-number-input.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 +408 -0
- 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 +2 -2
- package/lib/esm/{focus-utils-fc14cf36.js → focus-utils-5b40a8be.js} +1 -1
- package/lib/esm/{index-9ef5d3bc.js → index-795979f3.js} +1 -1
- package/lib/esm/loader.js +2 -2
- 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 +4 -0
- package/lib/esm-es5/duet-breadcrumbs.entry.js +4 -0
- 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-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-button.entry.js +1 -1
- package/lib/esm-es5/duet-editable-table_4.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-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 +4 -0
- 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-5b40a8be.js +4 -0
- package/lib/esm-es5/index-795979f3.js +4 -0
- package/lib/esm-es5/loader.js +1 -1
- package/lib/types/components/duet-badge/duet-badge.d.ts +1 -1
- package/lib/types/components/duet-breadcrumbs/duet-breadcrumb.d.ts +31 -0
- package/lib/types/components/duet-breadcrumbs/duet-breadcrumbs.d.ts +23 -0
- package/lib/types/components/duet-button/duet-button.d.ts +2 -1
- package/lib/types/components/duet-modal/duet-modal.d.ts +5 -1
- package/lib/types/components/duet-scrollable/duet-scrollable.d.ts +51 -0
- package/lib/types/components/duet-tab/duet-tab.d.ts +11 -0
- package/lib/types/components/duet-tab-group/duet-tab-group.d.ts +15 -0
- package/lib/types/components/duet-upload/duet-upload.d.ts +9 -0
- package/lib/types/components.d.ts +162 -1
- package/package.json +6 -5
- package/lib/cjs/duet-tab_2.cjs.entry.js +0 -213
- package/lib/duet/p-13bc14a6.system.js +0 -4
- package/lib/duet/p-30d13a27.system.js +0 -4
- package/lib/duet/p-60aa83c0.js +0 -4
- package/lib/duet/p-746b3bee.entry.js +0 -4
- package/lib/duet/p-9d487a0d.entry.js +0 -4
- package/lib/duet/p-c92b1af1.system.entry.js +0 -4
- package/lib/duet/p-ce566b2b.js +0 -4
- package/lib/duet/p-d1adeb76.entry.js +0 -4
- package/lib/duet/p-f2c402a9.system.entry.js +0 -4
- package/lib/esm/duet-tab_2.entry.js +0 -208
- package/lib/esm-es5/duet-tab_2.entry.js +0 -4
- package/lib/esm-es5/focus-utils-fc14cf36.js +0 -4
- package/lib/esm-es5/index-9ef5d3bc.js +0 -4
- package/lib/html.html-data.json +0 -4925
|
@@ -2,14 +2,29 @@
|
|
|
2
2
|
* Built with Duet Design System
|
|
3
3
|
*/
|
|
4
4
|
import { Build, Component, h, Prop } from "@stencil/core";
|
|
5
|
+
import { getLocaleString } from "../../utils/language-utils";
|
|
5
6
|
export class DuetTab {
|
|
7
|
+
constructor() {
|
|
8
|
+
/**
|
|
9
|
+
* Defaults for AccessibleLabel
|
|
10
|
+
* @default null
|
|
11
|
+
*/
|
|
12
|
+
this.accessibleDescriptionDefault = null;
|
|
13
|
+
/**
|
|
14
|
+
* String for AccessibleLabel
|
|
15
|
+
* @default null
|
|
16
|
+
*/
|
|
17
|
+
this.accessibleDescription = this.accessibleDescriptionDefault
|
|
18
|
+
? getLocaleString(this.accessibleDescriptionDefault)
|
|
19
|
+
: null;
|
|
20
|
+
}
|
|
6
21
|
/**
|
|
7
22
|
* render() function
|
|
8
23
|
* Always the last one in the class.
|
|
9
24
|
*/
|
|
10
25
|
render() {
|
|
11
26
|
if (Build.isBrowser) {
|
|
12
|
-
return (h("div", { role: "tabpanel", class: { "duet-tab": true, selected: this.selected } },
|
|
27
|
+
return (h("div", { role: "tabpanel", class: { "duet-tab": true, selected: this.selected }, "aria-description": this.accessibleDescription },
|
|
13
28
|
h("slot", null)));
|
|
14
29
|
}
|
|
15
30
|
}
|
|
@@ -55,6 +70,53 @@ export class DuetTab {
|
|
|
55
70
|
},
|
|
56
71
|
"attribute": "selected",
|
|
57
72
|
"reflect": true
|
|
73
|
+
},
|
|
74
|
+
"accessibleDescriptionDefault": {
|
|
75
|
+
"type": "string",
|
|
76
|
+
"mutable": false,
|
|
77
|
+
"complexType": {
|
|
78
|
+
"original": "DuetLangObject | string",
|
|
79
|
+
"resolved": "DuetLangObject | string",
|
|
80
|
+
"references": {
|
|
81
|
+
"DuetLangObject": {
|
|
82
|
+
"location": "import",
|
|
83
|
+
"path": "../../utils/language-utils"
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
"required": false,
|
|
88
|
+
"optional": false,
|
|
89
|
+
"docs": {
|
|
90
|
+
"tags": [{
|
|
91
|
+
"name": "default",
|
|
92
|
+
"text": "null"
|
|
93
|
+
}],
|
|
94
|
+
"text": "Defaults for AccessibleLabel"
|
|
95
|
+
},
|
|
96
|
+
"attribute": "accessible-description-defaults",
|
|
97
|
+
"reflect": false,
|
|
98
|
+
"defaultValue": "null"
|
|
99
|
+
},
|
|
100
|
+
"accessibleDescription": {
|
|
101
|
+
"type": "string",
|
|
102
|
+
"mutable": false,
|
|
103
|
+
"complexType": {
|
|
104
|
+
"original": "string",
|
|
105
|
+
"resolved": "string",
|
|
106
|
+
"references": {}
|
|
107
|
+
},
|
|
108
|
+
"required": false,
|
|
109
|
+
"optional": false,
|
|
110
|
+
"docs": {
|
|
111
|
+
"tags": [{
|
|
112
|
+
"name": "default",
|
|
113
|
+
"text": "null"
|
|
114
|
+
}],
|
|
115
|
+
"text": "String for AccessibleLabel"
|
|
116
|
+
},
|
|
117
|
+
"attribute": "accessible-description",
|
|
118
|
+
"reflect": false,
|
|
119
|
+
"defaultValue": "this.accessibleDescriptionDefault\n ? getLocaleString(this.accessibleDescriptionDefault)\n : null"
|
|
58
120
|
}
|
|
59
121
|
}; }
|
|
60
122
|
}
|
|
@@ -36,11 +36,11 @@
|
|
|
36
36
|
.duet-tab-group-tabs.duet-m-0 {
|
|
37
37
|
margin: 0 !important;
|
|
38
38
|
}
|
|
39
|
-
.duet-tab-group-tabs.duet-tab-group-hidden {
|
|
39
|
+
.duet-tab-group-tabs.duet-tab-group-collapses.duet-tab-group-hidden {
|
|
40
40
|
display: none;
|
|
41
41
|
}
|
|
42
42
|
@media (min-width: 36em) {
|
|
43
|
-
.duet-tab-group-tabs.duet-tab-group-hidden {
|
|
43
|
+
.duet-tab-group-tabs.duet-tab-group-collapses.duet-tab-group-hidden {
|
|
44
44
|
display: block;
|
|
45
45
|
}
|
|
46
46
|
}
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
border-bottom: 1px solid #e1e3e6;
|
|
49
49
|
}
|
|
50
50
|
.duet-theme-turva.duet-tab-variation-plain .duet-tab-group-tabs {
|
|
51
|
-
border-bottom-color: #e4e4e6
|
|
51
|
+
border-bottom-color: #e4e4e6;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
@media (min-width: 36em) {
|
|
@@ -70,13 +70,12 @@
|
|
|
70
70
|
font-size: 1rem;
|
|
71
71
|
font-weight: 600;
|
|
72
72
|
line-height: 1.1;
|
|
73
|
-
color: #00294d
|
|
73
|
+
color: #00294d;
|
|
74
74
|
text-align: left;
|
|
75
75
|
text-decoration: none;
|
|
76
76
|
cursor: pointer;
|
|
77
77
|
background: white;
|
|
78
78
|
border: 2px solid #e1e3e6;
|
|
79
|
-
border-style: solid;
|
|
80
79
|
border-radius: 0;
|
|
81
80
|
transition: 150ms ease;
|
|
82
81
|
}
|
|
@@ -88,7 +87,7 @@
|
|
|
88
87
|
}
|
|
89
88
|
.duet-theme-turva .duet-tab-button {
|
|
90
89
|
font-family: "turva-sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
|
91
|
-
color: #171c3a
|
|
90
|
+
color: #171c3a;
|
|
92
91
|
border-color: #e4e4e6;
|
|
93
92
|
}
|
|
94
93
|
.duet-tab-button.duet-p-0 {
|
|
@@ -108,7 +107,7 @@
|
|
|
108
107
|
border-color: #909599;
|
|
109
108
|
}
|
|
110
109
|
.duet-theme-turva .duet-tab-button:hover {
|
|
111
|
-
border-color: #747475
|
|
110
|
+
border-color: #747475;
|
|
112
111
|
}
|
|
113
112
|
.duet-tab-button:active {
|
|
114
113
|
opacity: 0.75;
|
|
@@ -116,16 +115,16 @@
|
|
|
116
115
|
}
|
|
117
116
|
.duet-tab-button.selected {
|
|
118
117
|
z-index: 201;
|
|
119
|
-
color: white
|
|
118
|
+
color: white;
|
|
120
119
|
background: #00294d;
|
|
121
120
|
border-color: #00294d;
|
|
122
121
|
outline: 0;
|
|
123
122
|
box-shadow: none !important;
|
|
124
123
|
}
|
|
125
124
|
.duet-theme-turva .duet-tab-button.selected {
|
|
126
|
-
color: white
|
|
125
|
+
color: white;
|
|
127
126
|
background-color: #171c3a;
|
|
128
|
-
border-color: #171c3a
|
|
127
|
+
border-color: #171c3a;
|
|
129
128
|
}
|
|
130
129
|
.duet-tab-button:focus {
|
|
131
130
|
z-index: 200;
|
|
@@ -171,13 +170,13 @@
|
|
|
171
170
|
margin-left: 36px;
|
|
172
171
|
}
|
|
173
172
|
.duet-tab-variation-plain .duet-tab-button.selected {
|
|
174
|
-
color: #0077b3
|
|
173
|
+
color: #0077b3;
|
|
175
174
|
background: white;
|
|
176
175
|
border-bottom: 3px solid #0077b3;
|
|
177
176
|
}
|
|
178
177
|
.duet-theme-turva.duet-tab-variation-plain .duet-tab-button.selected {
|
|
179
|
-
color: #c60c30
|
|
180
|
-
border-bottom-color: #c60c30
|
|
178
|
+
color: #c60c30;
|
|
179
|
+
border-bottom-color: #c60c30;
|
|
181
180
|
}
|
|
182
181
|
|
|
183
182
|
.duet-tab-group-content {
|
|
@@ -19,6 +19,15 @@ export class DuetTabGroup {
|
|
|
19
19
|
* Theme of the component.
|
|
20
20
|
*/
|
|
21
21
|
this.theme = "";
|
|
22
|
+
/**
|
|
23
|
+
* Controls whether the tab-group should scroll (by inflection this will disable collapsing to select box on small screens),
|
|
24
|
+
* if this is a number instead of true it will be used as "amount of items to scroll"
|
|
25
|
+
*/
|
|
26
|
+
this.scrolls = false;
|
|
27
|
+
/**
|
|
28
|
+
* Whether the tab-group collapses to a select dropwdown in minor breakpoints
|
|
29
|
+
*/
|
|
30
|
+
this.collapses = true;
|
|
22
31
|
/**
|
|
23
32
|
* Style variation of the tab group.
|
|
24
33
|
*/
|
|
@@ -48,6 +57,10 @@ export class DuetTabGroup {
|
|
|
48
57
|
* Determines whether the label for the select element shown on mobile is visually hidden.
|
|
49
58
|
*/
|
|
50
59
|
this.labelHidden = true;
|
|
60
|
+
/**
|
|
61
|
+
* Optional identifier to add to buttons in the tab group
|
|
62
|
+
*/
|
|
63
|
+
this.identifier = this.id;
|
|
51
64
|
/**
|
|
52
65
|
* Controls the margin of the component.
|
|
53
66
|
*/
|
|
@@ -73,12 +86,18 @@ export class DuetTabGroup {
|
|
|
73
86
|
button.focus();
|
|
74
87
|
}
|
|
75
88
|
};
|
|
76
|
-
this.renderTab = (
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
89
|
+
this.renderTab = () => {
|
|
90
|
+
const renderedTabs = this.tabs.map((element, index) => {
|
|
91
|
+
return (h("button", { role: "tab", id: this.getButtonId(index), "aria-controls": this.getTabId(index), "aria-selected": element.selected ? "true" : "false", "aria-description": this.getAccessibleDescription(index), part: `${this.identifier}-button`, type: "button", class: {
|
|
92
|
+
"duet-p-0": this.padding === "none",
|
|
93
|
+
"duet-tab-button": true,
|
|
94
|
+
selected: element.selected,
|
|
95
|
+
}, onClick: () => this.openTab(index), onKeyDown: ev => this.handleKeyDown(ev) }, element.label));
|
|
96
|
+
});
|
|
97
|
+
if (this.scrolls) {
|
|
98
|
+
return (h("duet-scrollable", { selected: this.selected, identifier: this.identifier }, renderedTabs));
|
|
99
|
+
}
|
|
100
|
+
return renderedTabs;
|
|
82
101
|
};
|
|
83
102
|
}
|
|
84
103
|
/**
|
|
@@ -97,7 +116,7 @@ export class DuetTabGroup {
|
|
|
97
116
|
subtree: true,
|
|
98
117
|
});
|
|
99
118
|
}
|
|
100
|
-
this.updateTabs();
|
|
119
|
+
await this.updateTabs();
|
|
101
120
|
}
|
|
102
121
|
disconnectedCallback() {
|
|
103
122
|
if (this.mutationO) {
|
|
@@ -138,19 +157,27 @@ export class DuetTabGroup {
|
|
|
138
157
|
/**
|
|
139
158
|
* Local methods.
|
|
140
159
|
*/
|
|
160
|
+
getTabs() {
|
|
161
|
+
const allTabs = Array.from(this.element.querySelectorAll("duet-tab"));
|
|
162
|
+
const localTabs = allTabs.filter(tab => tab.closest("duet-tab-group") === this.element);
|
|
163
|
+
if (localTabs.length === 0) {
|
|
164
|
+
throw new Error("[duet-tabs] Must have at least one tab");
|
|
165
|
+
}
|
|
166
|
+
// filter out any nested tabs
|
|
167
|
+
return localTabs;
|
|
168
|
+
}
|
|
141
169
|
getButtonId(index) {
|
|
142
170
|
return `${this.id}-button-${index}`;
|
|
143
171
|
}
|
|
144
172
|
getTabId(index) {
|
|
145
173
|
return `${this.id}-tab-${index}`;
|
|
146
174
|
}
|
|
175
|
+
getAccessibleDescription(index) {
|
|
176
|
+
const description = this.tabs[index].getAttribute("accessible-description") || null;
|
|
177
|
+
return description;
|
|
178
|
+
}
|
|
147
179
|
async updateTabs() {
|
|
148
|
-
|
|
149
|
-
// filter out any nested tabs
|
|
150
|
-
this.tabs = allTabs.filter(tab => tab.closest("duet-tab-group") === this.element);
|
|
151
|
-
if (this.tabs.length === 0) {
|
|
152
|
-
throw new Error("[duet-tabs] Must have at least one tab");
|
|
153
|
-
}
|
|
180
|
+
this.tabs = this.getTabs();
|
|
154
181
|
this.tabs.forEach((tab, index) => {
|
|
155
182
|
tab.id = this.getTabId(index);
|
|
156
183
|
tab.setAttribute("aria-labelledby", this.getButtonId(index));
|
|
@@ -158,6 +185,7 @@ export class DuetTabGroup {
|
|
|
158
185
|
this.selected = index;
|
|
159
186
|
}
|
|
160
187
|
});
|
|
188
|
+
return;
|
|
161
189
|
}
|
|
162
190
|
/**
|
|
163
191
|
* render() function
|
|
@@ -168,20 +196,23 @@ export class DuetTabGroup {
|
|
|
168
196
|
"duet-tab-group": true,
|
|
169
197
|
"duet-theme-turva": this.theme === "turva",
|
|
170
198
|
[`duet-tab-variation-${this.variation}`]: true,
|
|
199
|
+
"duet-tab-group-scrolls": this.scrolls,
|
|
200
|
+
"duet-tab-group-collapses": this.collapses,
|
|
171
201
|
} },
|
|
172
|
-
this.tabs.length > 3 && (h("duet-select", { value: this.selected.toString(), expand: true, label: this.label, labelHidden: this.labelHidden, theme: this.theme, onDuetChange: event => this.openTab(Number(event.detail.value)), items: this.tabs.map((tab, index) => {
|
|
202
|
+
this.tabs.length > 3 && this.collapses && (h("duet-select", { value: this.selected.toString(), expand: true, label: this.label, labelHidden: this.labelHidden, theme: this.theme, onDuetChange: event => this.openTab(Number(event.detail.value)), items: this.tabs.map((tab, index) => {
|
|
173
203
|
return { label: tab.label, value: index.toString() };
|
|
174
204
|
}) })),
|
|
175
205
|
h("div", { role: "tablist", class: {
|
|
176
206
|
"duet-m-0": this.margin === "none",
|
|
177
207
|
"duet-tab-group-tabs": true,
|
|
178
208
|
"duet-tab-group-hidden": this.tabs.length > 3,
|
|
179
|
-
|
|
209
|
+
"duet-tab-group-collapses": this.collapses,
|
|
210
|
+
} }, this.renderTab()),
|
|
180
211
|
h("div", { class: { "duet-tab-group-content": true, "duet-m-0": this.margin === "none" } },
|
|
181
212
|
h("slot", null))));
|
|
182
213
|
}
|
|
183
214
|
static get is() { return "duet-tab-group"; }
|
|
184
|
-
static get encapsulation() { return "
|
|
215
|
+
static get encapsulation() { return "shadow"; }
|
|
185
216
|
static get originalStyleUrls() { return {
|
|
186
217
|
"$": ["duet-tab-group.scss"]
|
|
187
218
|
}; }
|
|
@@ -212,6 +243,42 @@ export class DuetTabGroup {
|
|
|
212
243
|
"reflect": false,
|
|
213
244
|
"defaultValue": "\"\""
|
|
214
245
|
},
|
|
246
|
+
"scrolls": {
|
|
247
|
+
"type": "boolean",
|
|
248
|
+
"mutable": false,
|
|
249
|
+
"complexType": {
|
|
250
|
+
"original": "boolean",
|
|
251
|
+
"resolved": "boolean",
|
|
252
|
+
"references": {}
|
|
253
|
+
},
|
|
254
|
+
"required": false,
|
|
255
|
+
"optional": false,
|
|
256
|
+
"docs": {
|
|
257
|
+
"tags": [],
|
|
258
|
+
"text": "Controls whether the tab-group should scroll (by inflection this will disable collapsing to select box on small screens),\nif this is a number instead of true it will be used as \"amount of items to scroll\""
|
|
259
|
+
},
|
|
260
|
+
"attribute": "scrolls",
|
|
261
|
+
"reflect": false,
|
|
262
|
+
"defaultValue": "false"
|
|
263
|
+
},
|
|
264
|
+
"collapses": {
|
|
265
|
+
"type": "boolean",
|
|
266
|
+
"mutable": false,
|
|
267
|
+
"complexType": {
|
|
268
|
+
"original": "boolean",
|
|
269
|
+
"resolved": "boolean",
|
|
270
|
+
"references": {}
|
|
271
|
+
},
|
|
272
|
+
"required": false,
|
|
273
|
+
"optional": false,
|
|
274
|
+
"docs": {
|
|
275
|
+
"tags": [],
|
|
276
|
+
"text": "Whether the tab-group collapses to a select dropwdown in minor breakpoints"
|
|
277
|
+
},
|
|
278
|
+
"attribute": "collapses",
|
|
279
|
+
"reflect": false,
|
|
280
|
+
"defaultValue": "true"
|
|
281
|
+
},
|
|
215
282
|
"variation": {
|
|
216
283
|
"type": "string",
|
|
217
284
|
"mutable": false,
|
|
@@ -328,6 +395,24 @@ export class DuetTabGroup {
|
|
|
328
395
|
"reflect": false,
|
|
329
396
|
"defaultValue": "true"
|
|
330
397
|
},
|
|
398
|
+
"identifier": {
|
|
399
|
+
"type": "string",
|
|
400
|
+
"mutable": false,
|
|
401
|
+
"complexType": {
|
|
402
|
+
"original": "string",
|
|
403
|
+
"resolved": "string",
|
|
404
|
+
"references": {}
|
|
405
|
+
},
|
|
406
|
+
"required": false,
|
|
407
|
+
"optional": false,
|
|
408
|
+
"docs": {
|
|
409
|
+
"tags": [],
|
|
410
|
+
"text": "Optional identifier to add to buttons in the tab group"
|
|
411
|
+
},
|
|
412
|
+
"attribute": "identifier",
|
|
413
|
+
"reflect": false,
|
|
414
|
+
"defaultValue": "this.id"
|
|
415
|
+
},
|
|
331
416
|
"margin": {
|
|
332
417
|
"type": "string",
|
|
333
418
|
"mutable": false,
|
|
@@ -16,6 +16,9 @@ import { makeXhrRequest } from "./xhr.helpers";
|
|
|
16
16
|
* @slot header - named slot - to place content after description / caption
|
|
17
17
|
* @slot fileheader - named slot - to place content above "filelist" (only displayed when "filelist" contains items)
|
|
18
18
|
* @slot filefooter - named slot - to place content below "filelist" (only displayed when "filelist" contains items)
|
|
19
|
+
* @part ${this.identifier}-empty-state : duet-upload-empty-state - named part - can be used to style the empty notification area or hide it completely
|
|
20
|
+
* @part ${this.identifier}-editable-table : duet-upload-editable-table - named part - can be used to style the editable-table
|
|
21
|
+
* @part ${this.identifier}-error-notification : duet-upload-error-notification - named part - can be used to style any error notifications occurring internally
|
|
19
22
|
*/
|
|
20
23
|
export class DuetUpload {
|
|
21
24
|
constructor() {
|
|
@@ -739,6 +742,15 @@ export class DuetUpload {
|
|
|
739
742
|
this.nativeInput.click();
|
|
740
743
|
return;
|
|
741
744
|
}
|
|
745
|
+
/**
|
|
746
|
+
* Method for forcing a render of the upload list, element.files can be changed externally
|
|
747
|
+
* But it will only rerender on a new Map or a top Level change - this can be used to update
|
|
748
|
+
* the tabular data if the automatic re-render is no sufficient
|
|
749
|
+
*/
|
|
750
|
+
async refresh() {
|
|
751
|
+
this.kick();
|
|
752
|
+
await this.setFocus();
|
|
753
|
+
}
|
|
742
754
|
/**
|
|
743
755
|
* Get list of files, divided in errors and valid sections
|
|
744
756
|
*/
|
|
@@ -766,19 +778,19 @@ export class DuetUpload {
|
|
|
766
778
|
return (h(Host, { class: { "duet-m-0": this.margin === "none" } },
|
|
767
779
|
h("duet-fieldset", { label: this.label, caption: caption },
|
|
768
780
|
h("slot", { name: "header" }),
|
|
769
|
-
!this.files.size && (h("duet-label", { theme: this.theme === "turva" ? "turva" : "default", size: "small", class: {
|
|
781
|
+
!this.files.size && (h("duet-label", { part: this.identifier ? `${this.identifier}-empty-state` : "duet-upload-empty-state", theme: this.theme === "turva" ? "turva" : "default", size: "small", class: {
|
|
770
782
|
"duet-upload-filelist-empty": !this.files.size,
|
|
771
783
|
"duet-upload-filelist": true,
|
|
772
784
|
"duet-upload-filelist-filled": this.files.size,
|
|
773
785
|
}, id: this.labelId, for: identifier }, this.fileListEmpty)),
|
|
774
786
|
!!this.files.size && h("slot", { name: "fileheader" }),
|
|
775
787
|
!!this.files.size && (h("duet-upload-aria-status", { invalid: this.getFilesAsArray().invalid.length, valid: this.getFilesAsArray().valid.length, inprogress: this.filesInProgress.size, total: this.files.size, statusMessageLabel: this.internalStatusMessageLabel })),
|
|
776
|
-
!!this.files.size && (h("duet-editable-table", { "aria-live": "polite", "aria-relevant": "removals", accessibleRole: "log", id: this.editableTableId, groups: this.groups, actions: this.actions, hideGroups: this.hideGroups, alignment: this.alignment, items: this.convertToDuetEditableTableItems() })),
|
|
788
|
+
!!this.files.size && (h("duet-editable-table", { part: this.identifier ? `${this.identifier}-editable-table` : "duet-upload-editable-table", "aria-live": "polite", "aria-relevant": "removals", accessibleRole: "log", id: this.editableTableId, groups: this.groups, actions: this.actions, hideGroups: this.hideGroups, alignment: this.alignment, items: this.convertToDuetEditableTableItems() })),
|
|
777
789
|
!!this.files.size && h("slot", { name: "filefooter" }),
|
|
778
790
|
h("duet-spacer", { size: "large" }),
|
|
779
|
-
!this.hideButton && (h("duet-button", { id: this.buttonId, onClick: this.startUpload, "accessible-controls": identifier, disabled: this.fileMaxReached, "accessible-label": this.accessibleButtonLabel, "accessible-owns": identifier, size: "small", variation: "secondary", fixed: true, icon: "action-add-circle" }, this.buttonLabel)),
|
|
791
|
+
!this.hideButton && (h("duet-button", { id: this.buttonId, onClick: this.startUpload, "accessible-controls": identifier, disabled: this.fileMaxReached, "accessible-label": this.accessibleButtonLabel, "accessible-owns": identifier, size: "small", variation: "secondary", fixed: true, icon: "action-add-circle", part: this.identifier ? `${this.identifier}-button-upload` : "duet-upload-button-upload" }, this.buttonLabel)),
|
|
780
792
|
h("duet-spacer", { size: "medium" }),
|
|
781
|
-
(this.fileMaxReached || this.bytesMaxReached) && (h("duet-alert",
|
|
793
|
+
(this.fileMaxReached || this.bytesMaxReached) && (h("duet-alert", { part: this.identifier ? `${this.identifier}-error-notification` : "duet-upload-error-notification" },
|
|
782
794
|
this.fileMaxReached && getI18nError("duet-upload-301"),
|
|
783
795
|
this.bytesMaxReached && getI18nError("duet-upload-202"))),
|
|
784
796
|
h("duet-spacer", { size: "medium" }),
|
|
@@ -1835,6 +1847,22 @@ export class DuetUpload {
|
|
|
1835
1847
|
"tags": []
|
|
1836
1848
|
}
|
|
1837
1849
|
},
|
|
1850
|
+
"refresh": {
|
|
1851
|
+
"complexType": {
|
|
1852
|
+
"signature": "() => Promise<void>",
|
|
1853
|
+
"parameters": [],
|
|
1854
|
+
"references": {
|
|
1855
|
+
"Promise": {
|
|
1856
|
+
"location": "global"
|
|
1857
|
+
}
|
|
1858
|
+
},
|
|
1859
|
+
"return": "Promise<void>"
|
|
1860
|
+
},
|
|
1861
|
+
"docs": {
|
|
1862
|
+
"text": "Method for forcing a render of the upload list, element.files can be changed externally\nBut it will only rerender on a new Map or a top Level change - this can be used to update\nthe tabular data if the automatic re-render is no sufficient",
|
|
1863
|
+
"tags": []
|
|
1864
|
+
}
|
|
1865
|
+
},
|
|
1838
1866
|
"getFiles": {
|
|
1839
1867
|
"complexType": {
|
|
1840
1868
|
"signature": "() => Promise<false | { valid: any[]; invalid: any[]; }>",
|
|
@@ -14,6 +14,18 @@ export const DuetBadge: {
|
|
|
14
14
|
new (): DuetBadge;
|
|
15
15
|
};
|
|
16
16
|
|
|
17
|
+
interface DuetBreadcrumb extends Components.DuetBreadcrumb, HTMLElement {}
|
|
18
|
+
export const DuetBreadcrumb: {
|
|
19
|
+
prototype: DuetBreadcrumb;
|
|
20
|
+
new (): DuetBreadcrumb;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
interface DuetBreadcrumbs extends Components.DuetBreadcrumbs, HTMLElement {}
|
|
24
|
+
export const DuetBreadcrumbs: {
|
|
25
|
+
prototype: DuetBreadcrumbs;
|
|
26
|
+
new (): DuetBreadcrumbs;
|
|
27
|
+
};
|
|
28
|
+
|
|
17
29
|
interface DuetButton extends Components.DuetButton, HTMLElement {}
|
|
18
30
|
export const DuetButton: {
|
|
19
31
|
prototype: DuetButton;
|
|
@@ -242,6 +254,12 @@ export const DuetRangeSlider: {
|
|
|
242
254
|
new (): DuetRangeSlider;
|
|
243
255
|
};
|
|
244
256
|
|
|
257
|
+
interface DuetScrollable extends Components.DuetScrollable, HTMLElement {}
|
|
258
|
+
export const DuetScrollable: {
|
|
259
|
+
prototype: DuetScrollable;
|
|
260
|
+
new (): DuetScrollable;
|
|
261
|
+
};
|
|
262
|
+
|
|
245
263
|
interface DuetSelect extends Components.DuetSelect, HTMLElement {}
|
|
246
264
|
export const DuetSelect: {
|
|
247
265
|
prototype: DuetSelect;
|