@quartzds/core 1.0.0-beta.13 → 1.0.0-beta.130
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/CHANGELOG.md +2145 -0
- package/README.md +23 -23
- package/components/index.d.ts +52 -0
- package/components/index.js +63 -28
- package/components/index.js.map +1 -1
- package/components/p-B9xuNEzc.js +438 -0
- package/components/p-B9xuNEzc.js.map +1 -0
- package/components/p-BHBodFuD.js +200 -0
- package/components/p-BHBodFuD.js.map +1 -0
- package/components/p-BLA62eFO.js +513 -0
- package/components/p-BLA62eFO.js.map +1 -0
- package/components/p-Bn9o5Um2.js +91 -0
- package/components/p-Bn9o5Um2.js.map +1 -0
- package/components/{floating-ui.dom.esm.js → p-Bv2vPjgL.js} +557 -345
- package/components/p-Bv2vPjgL.js.map +1 -0
- package/components/p-C-pZcrGt.js +357 -0
- package/components/p-C-pZcrGt.js.map +1 -0
- package/components/p-CZRW1LV_.js +28 -0
- package/components/p-CZRW1LV_.js.map +1 -0
- package/components/p-Cb4tcewD.js +281 -0
- package/components/p-Cb4tcewD.js.map +1 -0
- package/components/p-Cb5Tgh-o.js +102 -0
- package/components/p-Cb5Tgh-o.js.map +1 -0
- package/components/p-D2489VzR.js +2133 -0
- package/components/p-D2489VzR.js.map +1 -0
- package/components/p-D2BuSQre.js +160 -0
- package/components/p-D2BuSQre.js.map +1 -0
- package/components/p-DL21f4D7.js +149 -0
- package/components/p-DL21f4D7.js.map +1 -0
- package/components/p-DOqfdgQA.js +124 -0
- package/components/p-DOqfdgQA.js.map +1 -0
- package/components/p-Do46q_Gd.js +135 -0
- package/components/p-Do46q_Gd.js.map +1 -0
- package/components/p-XP2CY_fo.js +105 -0
- package/components/p-XP2CY_fo.js.map +1 -0
- package/components/p-eUDNu0SE.js +3561 -0
- package/components/p-eUDNu0SE.js.map +1 -0
- package/components/p-fKK7EmM2.js +256 -0
- package/components/p-fKK7EmM2.js.map +1 -0
- package/components/qds-action-item.d.ts +11 -0
- package/components/qds-action-item.js +204 -0
- package/components/qds-action-item.js.map +1 -0
- package/components/qds-avatar-media.d.ts +11 -0
- package/components/qds-avatar-media.js +14 -0
- package/components/qds-avatar-media.js.map +1 -0
- package/components/qds-avatar.d.ts +11 -0
- package/components/qds-avatar.js +120 -0
- package/components/qds-avatar.js.map +1 -0
- package/components/qds-badge-counter.d.ts +11 -0
- package/components/qds-badge-counter.js +14 -0
- package/components/qds-badge-counter.js.map +1 -0
- package/components/qds-badge-indicator.d.ts +11 -0
- package/components/qds-badge-indicator.js +14 -0
- package/components/qds-badge-indicator.js.map +1 -0
- package/components/qds-breadcrumb-item.d.ts +11 -0
- package/components/qds-breadcrumb-item.js +174 -0
- package/components/qds-breadcrumb-item.js.map +1 -0
- package/components/qds-button.d.ts +2 -2
- package/components/qds-button.js +475 -129
- package/components/qds-button.js.map +1 -1
- package/components/qds-checkbox.d.ts +2 -2
- package/components/qds-checkbox.js +4 -146
- package/components/qds-checkbox.js.map +1 -1
- package/components/qds-chip.d.ts +11 -0
- package/components/qds-chip.js +337 -0
- package/components/qds-chip.js.map +1 -0
- package/components/qds-dialog.d.ts +2 -2
- package/components/qds-dialog.js +179 -93
- package/components/qds-dialog.js.map +1 -1
- package/components/qds-divider.d.ts +2 -2
- package/components/qds-divider.js +4 -39
- package/components/qds-divider.js.map +1 -1
- package/components/qds-dropdown.d.ts +2 -2
- package/components/qds-dropdown.js +4 -249
- package/components/qds-dropdown.js.map +1 -1
- package/components/qds-form-message.d.ts +2 -2
- package/components/qds-form-message.js +106 -50
- package/components/qds-form-message.js.map +1 -1
- package/components/qds-icon-button.d.ts +11 -0
- package/components/qds-icon-button.js +14 -0
- package/components/qds-icon-button.js.map +1 -0
- package/components/qds-icon-tab.d.ts +11 -0
- package/components/qds-icon-tab.js +312 -0
- package/components/qds-icon-tab.js.map +1 -0
- package/components/qds-icon.d.ts +2 -2
- package/components/qds-icon.js +4 -3
- package/components/qds-inline-link.d.ts +2 -2
- package/components/qds-inline-link.js +173 -74
- package/components/qds-inline-link.js.map +1 -1
- package/components/qds-input.d.ts +2 -2
- package/components/qds-input.js +579 -230
- package/components/qds-input.js.map +1 -1
- package/components/qds-label.d.ts +2 -2
- package/components/qds-label.js +156 -3
- package/components/qds-label.js.map +1 -1
- package/components/qds-list-item.d.ts +11 -0
- package/components/qds-list-item.js +430 -0
- package/components/qds-list-item.js.map +1 -0
- package/components/qds-loader.d.ts +11 -0
- package/components/qds-loader.js +152 -0
- package/components/qds-loader.js.map +1 -0
- package/components/qds-menu-item.d.ts +11 -0
- package/components/qds-menu-item.js +263 -0
- package/components/qds-menu-item.js.map +1 -0
- package/components/qds-mini-button.d.ts +11 -0
- package/components/qds-mini-button.js +14 -0
- package/components/qds-mini-button.js.map +1 -0
- package/components/qds-progress-bar.d.ts +11 -0
- package/components/qds-progress-bar.js +155 -0
- package/components/qds-progress-bar.js.map +1 -0
- package/components/qds-radio.d.ts +2 -2
- package/components/qds-radio.js +4 -99
- package/components/qds-radio.js.map +1 -1
- package/components/qds-select.d.ts +11 -0
- package/components/qds-select.js +377 -0
- package/components/qds-select.js.map +1 -0
- package/components/qds-standalone-link.d.ts +11 -0
- package/components/qds-standalone-link.js +210 -0
- package/components/qds-standalone-link.js.map +1 -0
- package/components/qds-switch.d.ts +2 -2
- package/components/qds-switch.js +257 -105
- package/components/qds-switch.js.map +1 -1
- package/components/qds-tab.d.ts +11 -0
- package/components/qds-tab.js +354 -0
- package/components/qds-tab.js.map +1 -0
- package/components/qds-tabbar.d.ts +11 -0
- package/components/qds-tabbar.js +599 -0
- package/components/qds-tabbar.js.map +1 -0
- package/components/qds-table-cell.d.ts +11 -0
- package/components/qds-table-cell.js +109 -0
- package/components/qds-table-cell.js.map +1 -0
- package/components/qds-table-head-cell.d.ts +11 -0
- package/components/qds-table-head-cell.js +115 -0
- package/components/qds-table-head-cell.js.map +1 -0
- package/components/qds-table-row.d.ts +11 -0
- package/components/qds-table-row.js +48 -0
- package/components/qds-table-row.js.map +1 -0
- package/components/qds-table.d.ts +11 -0
- package/components/qds-table.js +48 -0
- package/components/qds-table.js.map +1 -0
- package/components/qds-tag.d.ts +11 -0
- package/components/qds-tag.js +14 -0
- package/components/qds-tag.js.map +1 -0
- package/components/qds-textarea.d.ts +2 -2
- package/components/qds-textarea.js +352 -193
- package/components/qds-textarea.js.map +1 -1
- package/components/qds-title.d.ts +2 -2
- package/components/qds-title.js +4 -84
- package/components/qds-title.js.map +1 -1
- package/components/qds-tooltip.d.ts +2 -2
- package/components/qds-tooltip.js +4 -315
- package/components/qds-tooltip.js.map +1 -1
- package/dist/cjs/app-globals-CLoao1by.js +13 -0
- package/dist/cjs/app-globals-CLoao1by.js.map +1 -0
- package/dist/cjs/controls-DKGeNyr5.js +32 -0
- package/dist/cjs/controls-DKGeNyr5.js.map +1 -0
- package/dist/cjs/{floating-ui.dom.esm-7f1cac3e.js → floating-ui.dom-Bvzubd50.js} +557 -345
- package/dist/cjs/floating-ui.dom-Bvzubd50.js.map +1 -0
- package/dist/cjs/helpers-D6srVOLt.js +3584 -0
- package/dist/cjs/helpers-D6srVOLt.js.map +1 -0
- package/dist/cjs/index-DIY7gpXM.js +2376 -0
- package/dist/cjs/index-DIY7gpXM.js.map +1 -0
- package/dist/cjs/index.cjs.js +40 -31
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/library-CeKRI2f2.js +142 -0
- package/dist/cjs/library-CeKRI2f2.js.map +1 -0
- package/dist/cjs/loader.cjs.js +9 -10
- package/dist/cjs/loader.cjs.js.map +1 -1
- package/dist/cjs/qds-action-item.cjs.entry.js +165 -0
- package/dist/cjs/qds-action-item.entry.cjs.js.map +1 -0
- package/dist/cjs/qds-avatar-media.cjs.entry.js +105 -0
- package/dist/cjs/qds-avatar-media.entry.cjs.js.map +1 -0
- package/dist/cjs/qds-avatar.cjs.entry.js +70 -0
- package/dist/cjs/qds-avatar.entry.cjs.js.map +1 -0
- package/dist/cjs/qds-badge-counter.qds-badge-indicator.entry.cjs.js.map +1 -0
- package/dist/cjs/qds-badge-counter_2.cjs.entry.js +168 -0
- package/dist/cjs/qds-breadcrumb-item.cjs.entry.js +134 -0
- package/dist/cjs/qds-breadcrumb-item.entry.cjs.js.map +1 -0
- package/dist/cjs/qds-button.cjs.entry.js +402 -93
- package/dist/cjs/qds-button.entry.cjs.js.map +1 -0
- package/dist/cjs/qds-checkbox.qds-radio.entry.cjs.js.map +1 -0
- package/dist/cjs/qds-checkbox_2.cjs.entry.js +456 -0
- package/dist/cjs/qds-chip.cjs.entry.js +285 -0
- package/dist/cjs/qds-chip.entry.cjs.js.map +1 -0
- package/dist/cjs/qds-dialog.cjs.entry.js +124 -77
- package/dist/cjs/qds-dialog.entry.cjs.js.map +1 -0
- package/dist/cjs/qds-divider.qds-icon-button.entry.cjs.js.map +1 -0
- package/dist/cjs/qds-divider_2.cjs.entry.js +291 -0
- package/dist/cjs/qds-dropdown.cjs.entry.js +461 -213
- package/dist/cjs/qds-dropdown.entry.cjs.js.map +1 -0
- package/dist/cjs/qds-form-message.cjs.entry.js +80 -27
- package/dist/cjs/qds-form-message.entry.cjs.js.map +1 -0
- package/dist/cjs/qds-icon-tab.cjs.entry.js +244 -0
- package/dist/cjs/qds-icon-tab.entry.cjs.js.map +1 -0
- package/dist/cjs/qds-icon.cjs.entry.js +92 -93
- package/dist/cjs/qds-icon.entry.cjs.js.map +1 -0
- package/dist/cjs/qds-inline-link.cjs.entry.js +139 -49
- package/dist/cjs/qds-inline-link.entry.cjs.js.map +1 -0
- package/dist/cjs/qds-input.cjs.entry.js +503 -188
- package/dist/cjs/qds-input.entry.cjs.js.map +1 -0
- package/dist/cjs/qds-label.cjs.entry.js +118 -27
- package/dist/cjs/qds-label.entry.cjs.js.map +1 -0
- package/dist/cjs/qds-list-item.cjs.entry.js +328 -0
- package/dist/cjs/qds-list-item.entry.cjs.js.map +1 -0
- package/dist/cjs/qds-loader.cjs.entry.js +126 -0
- package/dist/cjs/qds-loader.entry.cjs.js.map +1 -0
- package/dist/cjs/qds-menu-item.cjs.entry.js +214 -0
- package/dist/cjs/qds-menu-item.entry.cjs.js.map +1 -0
- package/dist/cjs/qds-mini-button.cjs.entry.js +130 -0
- package/dist/cjs/qds-mini-button.entry.cjs.js.map +1 -0
- package/dist/cjs/qds-progress-bar.cjs.entry.js +131 -0
- package/dist/cjs/qds-progress-bar.entry.cjs.js.map +1 -0
- package/dist/cjs/qds-select.cjs.entry.js +331 -0
- package/dist/cjs/qds-select.entry.cjs.js.map +1 -0
- package/dist/cjs/qds-standalone-link.cjs.entry.js +171 -0
- package/dist/cjs/qds-standalone-link.entry.cjs.js.map +1 -0
- package/dist/cjs/qds-switch.cjs.entry.js +221 -67
- package/dist/cjs/qds-switch.entry.cjs.js.map +1 -0
- package/dist/cjs/qds-tab.cjs.entry.js +280 -0
- package/dist/cjs/qds-tab.entry.cjs.js.map +1 -0
- package/dist/cjs/qds-tabbar.cjs.entry.js +528 -0
- package/dist/cjs/qds-tabbar.entry.cjs.js.map +1 -0
- package/dist/cjs/qds-table-cell.cjs.entry.js +88 -0
- package/dist/cjs/qds-table-cell.entry.cjs.js.map +1 -0
- package/dist/cjs/qds-table-head-cell.cjs.entry.js +92 -0
- package/dist/cjs/qds-table-head-cell.entry.cjs.js.map +1 -0
- package/dist/cjs/qds-table-row.cjs.entry.js +34 -0
- package/dist/cjs/qds-table-row.entry.cjs.js.map +1 -0
- package/dist/cjs/qds-table.cjs.entry.js +34 -0
- package/dist/cjs/qds-table.entry.cjs.js.map +1 -0
- package/dist/cjs/qds-tag.cjs.entry.js +110 -0
- package/dist/cjs/qds-tag.entry.cjs.js.map +1 -0
- package/dist/cjs/qds-textarea.cjs.entry.js +303 -156
- package/dist/cjs/qds-textarea.entry.cjs.js.map +1 -0
- package/dist/cjs/qds-title.cjs.entry.js +61 -52
- package/dist/cjs/qds-title.entry.cjs.js.map +1 -0
- package/dist/cjs/qds-tooltip.cjs.entry.js +380 -264
- package/dist/cjs/qds-tooltip.entry.cjs.js.map +1 -0
- package/dist/cjs/qds.cjs.js +18 -17
- package/dist/cjs/qds.cjs.js.map +1 -1
- package/dist/custom-elements.json +13254 -2143
- package/dist/docs.d.ts +344 -240
- package/dist/docs.json +13958 -3308
- package/dist/esm/app-globals-WylVyaRG.js +11 -0
- package/dist/esm/app-globals-WylVyaRG.js.map +1 -0
- package/dist/esm/controls-CZRW1LV_.js +28 -0
- package/dist/esm/controls-CZRW1LV_.js.map +1 -0
- package/dist/esm/{floating-ui.dom.esm-c2f3e549.js → floating-ui.dom-Bv2vPjgL.js} +557 -345
- package/dist/esm/floating-ui.dom-Bv2vPjgL.js.map +1 -0
- package/dist/esm/helpers-BIo9VDPx.js +3561 -0
- package/dist/esm/helpers-BIo9VDPx.js.map +1 -0
- package/dist/esm/index-Hg1Liloy.js +2364 -0
- package/dist/esm/index-Hg1Liloy.js.map +1 -0
- package/dist/esm/index.js +40 -30
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/library-CBfntPWH.js +138 -0
- package/dist/esm/library-CBfntPWH.js.map +1 -0
- package/dist/esm/loader.js +10 -9
- package/dist/esm/loader.js.map +1 -1
- package/dist/esm/qds-action-item.entry.js +163 -0
- package/dist/esm/qds-action-item.entry.js.map +1 -0
- package/dist/esm/qds-avatar-media.entry.js +103 -0
- package/dist/esm/qds-avatar-media.entry.js.map +1 -0
- package/dist/esm/qds-avatar.entry.js +68 -0
- package/dist/esm/qds-avatar.entry.js.map +1 -0
- package/dist/esm/qds-badge-counter.qds-badge-indicator.entry.js.map +1 -0
- package/dist/esm/qds-badge-counter_2.entry.js +165 -0
- package/dist/esm/qds-breadcrumb-item.entry.js +132 -0
- package/dist/esm/qds-breadcrumb-item.entry.js.map +1 -0
- package/dist/esm/qds-button.entry.js +402 -91
- package/dist/esm/qds-button.entry.js.map +1 -1
- package/dist/esm/qds-checkbox.qds-radio.entry.js.map +1 -0
- package/dist/esm/qds-checkbox_2.entry.js +453 -0
- package/dist/esm/qds-chip.entry.js +283 -0
- package/dist/esm/qds-chip.entry.js.map +1 -0
- package/dist/esm/qds-dialog.entry.js +124 -75
- package/dist/esm/qds-dialog.entry.js.map +1 -1
- package/dist/esm/qds-divider.qds-icon-button.entry.js.map +1 -0
- package/dist/esm/qds-divider_2.entry.js +288 -0
- package/dist/esm/qds-dropdown.entry.js +461 -211
- package/dist/esm/qds-dropdown.entry.js.map +1 -1
- package/dist/esm/qds-form-message.entry.js +80 -25
- package/dist/esm/qds-form-message.entry.js.map +1 -1
- package/dist/esm/qds-icon-tab.entry.js +242 -0
- package/dist/esm/qds-icon-tab.entry.js.map +1 -0
- package/dist/esm/qds-icon.entry.js +92 -91
- package/dist/esm/qds-icon.entry.js.map +1 -1
- package/dist/esm/qds-inline-link.entry.js +139 -47
- package/dist/esm/qds-inline-link.entry.js.map +1 -1
- package/dist/esm/qds-input.entry.js +503 -186
- package/dist/esm/qds-input.entry.js.map +1 -1
- package/dist/esm/qds-label.entry.js +118 -25
- package/dist/esm/qds-label.entry.js.map +1 -1
- package/dist/esm/qds-list-item.entry.js +326 -0
- package/dist/esm/qds-list-item.entry.js.map +1 -0
- package/dist/esm/qds-loader.entry.js +124 -0
- package/dist/esm/qds-loader.entry.js.map +1 -0
- package/dist/esm/qds-menu-item.entry.js +212 -0
- package/dist/esm/qds-menu-item.entry.js.map +1 -0
- package/dist/esm/qds-mini-button.entry.js +128 -0
- package/dist/esm/qds-mini-button.entry.js.map +1 -0
- package/dist/esm/qds-progress-bar.entry.js +129 -0
- package/dist/esm/qds-progress-bar.entry.js.map +1 -0
- package/dist/esm/qds-select.entry.js +329 -0
- package/dist/esm/qds-select.entry.js.map +1 -0
- package/dist/esm/qds-standalone-link.entry.js +169 -0
- package/dist/esm/qds-standalone-link.entry.js.map +1 -0
- package/dist/esm/qds-switch.entry.js +221 -65
- package/dist/esm/qds-switch.entry.js.map +1 -1
- package/dist/esm/qds-tab.entry.js +278 -0
- package/dist/esm/qds-tab.entry.js.map +1 -0
- package/dist/esm/qds-tabbar.entry.js +526 -0
- package/dist/esm/qds-tabbar.entry.js.map +1 -0
- package/dist/esm/qds-table-cell.entry.js +86 -0
- package/dist/esm/qds-table-cell.entry.js.map +1 -0
- package/dist/esm/qds-table-head-cell.entry.js +90 -0
- package/dist/esm/qds-table-head-cell.entry.js.map +1 -0
- package/dist/esm/qds-table-row.entry.js +32 -0
- package/dist/esm/qds-table-row.entry.js.map +1 -0
- package/dist/esm/qds-table.entry.js +32 -0
- package/dist/esm/qds-table.entry.js.map +1 -0
- package/dist/esm/qds-tag.entry.js +108 -0
- package/dist/esm/qds-tag.entry.js.map +1 -0
- package/dist/esm/qds-textarea.entry.js +303 -154
- package/dist/esm/qds-textarea.entry.js.map +1 -1
- package/dist/esm/qds-title.entry.js +61 -50
- package/dist/esm/qds-title.entry.js.map +1 -1
- package/dist/esm/qds-tooltip.entry.js +380 -262
- package/dist/esm/qds-tooltip.entry.js.map +1 -1
- package/dist/esm/qds.js +18 -16
- package/dist/esm/qds.js.map +1 -1
- package/dist/types/components/action-item/action-item.d.ts +70 -0
- package/dist/types/components/avatar/avatar.d.ts +61 -0
- package/dist/types/components/avatar-media/avatar-media.d.ts +47 -0
- package/dist/types/components/badge-counter/badge-counter.d.ts +40 -0
- package/dist/types/components/badge-indicator/badge-indicator.d.ts +36 -0
- package/dist/types/components/breadcrumb-item/breadcrumb-item.d.ts +178 -0
- package/dist/types/components/button/button.d.ts +283 -198
- package/dist/types/components/checkbox/checkbox.d.ts +142 -124
- package/dist/types/components/chip/chip.d.ts +111 -0
- package/dist/types/components/controls.d.ts +4 -1
- package/dist/types/components/dialog/dialog.d.ts +32 -41
- package/dist/types/components/divider/divider.d.ts +14 -9
- package/dist/types/components/dropdown/dropdown.d.ts +117 -125
- package/dist/types/components/form-message/form-message.d.ts +35 -25
- package/dist/types/components/icon/icon.d.ts +23 -24
- package/dist/types/components/icon/library.d.ts +3 -3
- package/dist/types/components/icon/request.d.ts +5 -9
- package/dist/types/components/icon-button/icon-button.d.ts +122 -0
- package/dist/types/components/icon-tab/icon-tab.d.ts +112 -0
- package/dist/types/components/inline-link/inline-link.d.ts +209 -191
- package/dist/types/components/input/input.d.ts +441 -368
- package/dist/types/components/label/label.d.ts +37 -24
- package/dist/types/components/list-item/list-item.d.ts +122 -0
- package/dist/types/components/loader/loader.d.ts +32 -0
- package/dist/types/components/menu-item/menu-item.d.ts +75 -0
- package/dist/types/components/mini-button/mini-button.d.ts +82 -0
- package/dist/types/components/progress-bar/progress-bar.d.ts +60 -0
- package/dist/types/components/radio/radio.d.ts +94 -95
- package/dist/types/components/select/select.d.ts +209 -0
- package/dist/types/components/shared.d.ts +6 -0
- package/dist/types/components/standalone-link/standalone-link.d.ts +234 -0
- package/dist/types/components/switch/switch.d.ts +122 -107
- package/dist/types/components/tab/tab.d.ts +157 -0
- package/dist/types/components/tabbar/tabbar.d.ts +91 -0
- package/dist/types/components/table/table.d.ts +14 -0
- package/dist/types/components/table-cell/table-cell.d.ts +39 -0
- package/dist/types/components/table-head-cell/table-head-cell.d.ts +56 -0
- package/dist/types/components/table-row/table-row.d.ts +14 -0
- package/dist/types/components/tag/tag.d.ts +55 -0
- package/dist/types/components/textarea/textarea.d.ts +295 -300
- package/dist/types/components/title/title.d.ts +39 -32
- package/dist/types/components/tooltip/tooltip.d.ts +111 -136
- package/dist/types/components.d.ts +4590 -929
- package/dist/types/helpers.d.ts +46 -19
- package/dist/types/index.d.ts +2 -1
- package/dist/types/interface-overrides.d.ts +215 -0
- package/dist/types/qds-test.d.ts +22 -11
- package/dist/types/stencil-public-runtime.d.ts +109 -17
- package/dist/types/utils.d.ts +11 -4
- package/dist/vscode.html-custom-data.json +2543 -426
- package/hydrate/index.d.ts +73 -18
- package/hydrate/index.js +32000 -9062
- package/hydrate/index.mjs +33081 -0
- package/hydrate/package.json +7 -1
- package/loader/cdn.js +3 -4
- package/loader/index.cjs.js +3 -4
- package/loader/index.d.ts +4 -1
- package/loader/index.es2017.js +3 -4
- package/loader/index.js +3 -4
- package/package.json +23 -180
- package/styles/core.css +156 -38
- package/components/floating-ui.dom.esm.js.map +0 -1
- package/components/helpers.js +0 -175
- package/components/helpers.js.map +0 -1
- package/components/icon.js +0 -185
- package/components/icon.js.map +0 -1
- package/components/label.js +0 -55
- package/components/label.js.map +0 -1
- package/dist/cjs/floating-ui.dom.esm-7f1cac3e.js.map +0 -1
- package/dist/cjs/helpers-452256e8.js +0 -185
- package/dist/cjs/helpers-452256e8.js.map +0 -1
- package/dist/cjs/index-d181f952.js +0 -2039
- package/dist/cjs/index-d181f952.js.map +0 -1
- package/dist/cjs/library-ad8d9466.js +0 -72
- package/dist/cjs/library-ad8d9466.js.map +0 -1
- package/dist/cjs/qds-button.cjs.entry.js.map +0 -1
- package/dist/cjs/qds-checkbox.cjs.entry.js +0 -116
- package/dist/cjs/qds-checkbox.cjs.entry.js.map +0 -1
- package/dist/cjs/qds-dialog.cjs.entry.js.map +0 -1
- package/dist/cjs/qds-divider.cjs.entry.js +0 -33
- package/dist/cjs/qds-divider.cjs.entry.js.map +0 -1
- package/dist/cjs/qds-dropdown.cjs.entry.js.map +0 -1
- package/dist/cjs/qds-form-message.cjs.entry.js.map +0 -1
- package/dist/cjs/qds-icon.cjs.entry.js.map +0 -1
- package/dist/cjs/qds-inline-link.cjs.entry.js.map +0 -1
- package/dist/cjs/qds-input.cjs.entry.js.map +0 -1
- package/dist/cjs/qds-label.cjs.entry.js.map +0 -1
- package/dist/cjs/qds-radio.cjs.entry.js +0 -74
- package/dist/cjs/qds-radio.cjs.entry.js.map +0 -1
- package/dist/cjs/qds-switch.cjs.entry.js.map +0 -1
- package/dist/cjs/qds-textarea.cjs.entry.js.map +0 -1
- package/dist/cjs/qds-title.cjs.entry.js.map +0 -1
- package/dist/cjs/qds-tooltip.cjs.entry.js.map +0 -1
- package/dist/esm/floating-ui.dom.esm-c2f3e549.js.map +0 -1
- package/dist/esm/helpers-76b84f45.js +0 -175
- package/dist/esm/helpers-76b84f45.js.map +0 -1
- package/dist/esm/index-d7183092.js +0 -2009
- package/dist/esm/index-d7183092.js.map +0 -1
- package/dist/esm/library-f36d7d09.js +0 -68
- package/dist/esm/library-f36d7d09.js.map +0 -1
- package/dist/esm/polyfills/core-js.js +0 -11
- package/dist/esm/polyfills/dom.js +0 -79
- package/dist/esm/polyfills/es5-html-element.js +0 -1
- package/dist/esm/polyfills/index.js +0 -34
- package/dist/esm/polyfills/system.js +0 -6
- package/dist/esm/qds-checkbox.entry.js +0 -112
- package/dist/esm/qds-checkbox.entry.js.map +0 -1
- package/dist/esm/qds-divider.entry.js +0 -29
- package/dist/esm/qds-divider.entry.js.map +0 -1
- package/dist/esm/qds-radio.entry.js +0 -70
- package/dist/esm/qds-radio.entry.js.map +0 -1
- package/dist/types/components/create-story.d.ts +0 -5
- package/loader/package.json +0 -11
|
@@ -0,0 +1,513 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* SPDX-FileCopyrightText: © 2026 Schneider Electric
|
|
3
|
+
*
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { p as proxyCustomElement, H, c as createEvent, h, e as Host } from './p-D2489VzR.js';
|
|
7
|
+
import { o as offset, f as flip, s as shift, c as computePosition, a as autoUpdate, l as limitShift } from './p-Bv2vPjgL.js';
|
|
8
|
+
import { m as closestElement, n as getSubmenuCloseKey, V as VERTICAL_MOVE_KEYS, i as ignorePromise, o as propertyToPx, r as resolveTarget } from './p-eUDNu0SE.js';
|
|
9
|
+
|
|
10
|
+
const dropdownCss = ":host([hidden]){display:none!important}:host{background-color:var(--qds-theme-popup-background);border:none;border-radius:var(--qds-popup-border-radius);box-shadow:var(--qds-popup-elevation);box-sizing:border-box;display:inline-block;inset:unset;margin:0;overflow:initial;padding:0}";
|
|
11
|
+
|
|
12
|
+
// SPDX-FileCopyrightText: © 2024 Schneider Electric
|
|
13
|
+
//
|
|
14
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
15
|
+
var __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
16
|
+
if (kind === "m")
|
|
17
|
+
throw new TypeError("Private method is not writable");
|
|
18
|
+
if (kind === "a" && !f)
|
|
19
|
+
throw new TypeError("Private accessor was defined without a setter");
|
|
20
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
|
|
21
|
+
throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
22
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
23
|
+
};
|
|
24
|
+
var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
25
|
+
if (kind === "a" && !f)
|
|
26
|
+
throw new TypeError("Private accessor was defined without a getter");
|
|
27
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
|
|
28
|
+
throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
29
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
30
|
+
};
|
|
31
|
+
var _Dropdown_instances, _Dropdown_cleanup, _Dropdown_Items, _Dropdown_instanceId, _Dropdown_gap, _Dropdown_middleware, _Dropdown_referenceElement, _Dropdown_open, _Dropdown_opened, _Dropdown_onFocusout, _Dropdown_focusOnTrigger, _Dropdown_onKeydown, _Dropdown_onReferenceClick, _Dropdown_focusFirstItem, _Dropdown_initializeFirstItem, _Dropdown_setFirstItemTabindex, _Dropdown_findFirstFocusableDescendant, _Dropdown_focusWithin, _Dropdown_disconnectReferenceElement, _Dropdown_boundOnFocusout, _Dropdown_boundOnKeydown, _Dropdown_boundOnReferenceClick, _Dropdown_onSlotchange, _Dropdown_isReferenceOrDescendant;
|
|
32
|
+
let autoIncrementingId = 1;
|
|
33
|
+
const getDropdownInstanceId = () => {
|
|
34
|
+
const instanceId = autoIncrementingId;
|
|
35
|
+
autoIncrementingId += 1;
|
|
36
|
+
return instanceId;
|
|
37
|
+
};
|
|
38
|
+
const isQdsButton = (element) => element.tagName.toLowerCase() === 'qds-button';
|
|
39
|
+
const ALLOWED_TAGS = new Set([
|
|
40
|
+
'qds-action-item',
|
|
41
|
+
'qds-menu-item',
|
|
42
|
+
'qds-list-item',
|
|
43
|
+
]);
|
|
44
|
+
const isEnabledItem = (element) => element instanceof H &&
|
|
45
|
+
ALLOWED_TAGS.has(element.tagName.toLowerCase()) &&
|
|
46
|
+
!element.hasAttribute('disabled') &&
|
|
47
|
+
!element.inert &&
|
|
48
|
+
element.getAttribute('list-action') !== 'none';
|
|
49
|
+
const Dropdown = /*@__PURE__*/ proxyCustomElement(class Dropdown extends H {
|
|
50
|
+
constructor(registerHost) {
|
|
51
|
+
super();
|
|
52
|
+
if (registerHost !== false) {
|
|
53
|
+
this.__registerHost();
|
|
54
|
+
}
|
|
55
|
+
this.__attachShadow();
|
|
56
|
+
this.cancelEmitter = createEvent(this, "qdsCancel", 3);
|
|
57
|
+
this.closeEmitter = createEvent(this, "qdsClose", 2);
|
|
58
|
+
this.internals = this.attachInternals();
|
|
59
|
+
_Dropdown_instances.add(this);
|
|
60
|
+
/**
|
|
61
|
+
* Prevents the dropdown from being shown by user interaction. The dropdown
|
|
62
|
+
* can still be displayed by calling the `show()` method.
|
|
63
|
+
*/
|
|
64
|
+
this.disabled = false;
|
|
65
|
+
/**
|
|
66
|
+
* Disable Floating UI's
|
|
67
|
+
* [`flip` middleware](https://floating-ui.com/docs/flip).
|
|
68
|
+
*/
|
|
69
|
+
this.noFlip = false;
|
|
70
|
+
/**
|
|
71
|
+
* Disable Floating UI's
|
|
72
|
+
* [`shift` middleware](https://floating-ui.com/docs/shift).
|
|
73
|
+
*/
|
|
74
|
+
this.noShift = false;
|
|
75
|
+
/**
|
|
76
|
+
* Where to place the dropdown relative to the `target`.
|
|
77
|
+
*
|
|
78
|
+
* @see https://floating-ui.com/docs/tutorial#placements
|
|
79
|
+
*/
|
|
80
|
+
this.placement = 'bottom-start';
|
|
81
|
+
/**
|
|
82
|
+
* By default, the dropdown is closed when an item is selected. This attribute will keep it open instead. Useful for
|
|
83
|
+
* dropdowns that allow for multiple interactions.
|
|
84
|
+
*/
|
|
85
|
+
this.keepOpenOnSelect = false;
|
|
86
|
+
_Dropdown_cleanup.set(this, void 0);
|
|
87
|
+
_Dropdown_Items.set(this, []);
|
|
88
|
+
_Dropdown_instanceId.set(this, getDropdownInstanceId());
|
|
89
|
+
_Dropdown_gap.set(this, 0);
|
|
90
|
+
_Dropdown_middleware.set(this, void 0);
|
|
91
|
+
_Dropdown_referenceElement.set(this, void 0);
|
|
92
|
+
_Dropdown_open.set(this, false
|
|
93
|
+
/**
|
|
94
|
+
* Whether the dropdown has been opened at least once.
|
|
95
|
+
* This is used to determine whether the dropdown should update its position, gap
|
|
96
|
+
* and middleware when it is opened.
|
|
97
|
+
*/
|
|
98
|
+
);
|
|
99
|
+
/**
|
|
100
|
+
* Whether the dropdown has been opened at least once.
|
|
101
|
+
* This is used to determine whether the dropdown should update its position, gap
|
|
102
|
+
* and middleware when it is opened.
|
|
103
|
+
*/
|
|
104
|
+
_Dropdown_opened.set(this, false
|
|
105
|
+
/**
|
|
106
|
+
* Updates the gap between the dropdown and its target element.
|
|
107
|
+
*/
|
|
108
|
+
);
|
|
109
|
+
_Dropdown_onFocusout.set(this, async (event) => {
|
|
110
|
+
if (!(event instanceof FocusEvent))
|
|
111
|
+
return;
|
|
112
|
+
const { relatedTarget } = event;
|
|
113
|
+
const dropdownItem = __classPrivateFieldGet(this, _Dropdown_Items, "f").find((item) => item === relatedTarget);
|
|
114
|
+
if (relatedTarget instanceof globalThis.Element &&
|
|
115
|
+
!this.host.contains(relatedTarget) &&
|
|
116
|
+
!dropdownItem &&
|
|
117
|
+
!__classPrivateFieldGet(this, _Dropdown_instances, "m", _Dropdown_isReferenceOrDescendant).call(this, relatedTarget))
|
|
118
|
+
await this.close();
|
|
119
|
+
});
|
|
120
|
+
_Dropdown_onKeydown.set(this, async (event) => {
|
|
121
|
+
if (!(event instanceof KeyboardEvent))
|
|
122
|
+
return;
|
|
123
|
+
const { key, target } = event;
|
|
124
|
+
const keydownOnReference = __classPrivateFieldGet(this, _Dropdown_instances, "m", _Dropdown_isReferenceOrDescendant).call(this, target);
|
|
125
|
+
if (key === 'Enter' && !this.keepOpenOnSelect && isEnabledItem(target)) {
|
|
126
|
+
// Keep parent open when Enter is used on an item with a nested submenu.
|
|
127
|
+
if (target instanceof H &&
|
|
128
|
+
target.shadowRoot?.querySelector('qds-dropdown'))
|
|
129
|
+
return;
|
|
130
|
+
await this.close();
|
|
131
|
+
__classPrivateFieldGet(this, _Dropdown_instances, "m", _Dropdown_focusOnTrigger).call(this);
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
if (key === 'Escape' &&
|
|
135
|
+
(target === __classPrivateFieldGet(this, _Dropdown_referenceElement, "f") ||
|
|
136
|
+
(target instanceof globalThis.Element &&
|
|
137
|
+
closestElement('qds-dropdown', target) === this.host))) {
|
|
138
|
+
const cancelEvent = this.cancelEmitter.emit();
|
|
139
|
+
if (cancelEvent.defaultPrevented)
|
|
140
|
+
return;
|
|
141
|
+
await this.close();
|
|
142
|
+
__classPrivateFieldGet(this, _Dropdown_instances, "m", _Dropdown_focusOnTrigger).call(this);
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
if (keydownOnReference && (key === 'ArrowDown' || key === 'ArrowUp')) {
|
|
146
|
+
event.preventDefault();
|
|
147
|
+
event.stopPropagation();
|
|
148
|
+
if (!__classPrivateFieldGet(this, _Dropdown_open, "f"))
|
|
149
|
+
await this.show();
|
|
150
|
+
__classPrivateFieldGet(this, _Dropdown_instances, "m", _Dropdown_focusFirstItem).call(this);
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
// Prevent space key from scrolling the page when focused on an item
|
|
154
|
+
if (key === ' ' || key === 'Enter') {
|
|
155
|
+
event.preventDefault();
|
|
156
|
+
event.stopPropagation();
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
if (key === getSubmenuCloseKey(this.host) && __classPrivateFieldGet(this, _Dropdown_open, "f")) {
|
|
160
|
+
event.preventDefault();
|
|
161
|
+
event.stopPropagation();
|
|
162
|
+
await this.close();
|
|
163
|
+
__classPrivateFieldGet(this, _Dropdown_instances, "m", _Dropdown_focusOnTrigger).call(this);
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
if (!VERTICAL_MOVE_KEYS.has(key))
|
|
167
|
+
return;
|
|
168
|
+
const Items = __classPrivateFieldGet(this, _Dropdown_Items, "f").filter((item) => isEnabledItem(item) &&
|
|
169
|
+
closestElement('qds-dropdown', item) === this.host);
|
|
170
|
+
if (Items.length === 0)
|
|
171
|
+
return;
|
|
172
|
+
event.preventDefault();
|
|
173
|
+
event.stopPropagation();
|
|
174
|
+
const currentIndex = Items.findIndex((item) => item.getAttribute('tabindex') === '0');
|
|
175
|
+
let nextIndex = currentIndex;
|
|
176
|
+
switch (key) {
|
|
177
|
+
case 'ArrowUp': {
|
|
178
|
+
nextIndex = currentIndex > 0 ? currentIndex - 1 : Items.length - 1;
|
|
179
|
+
break;
|
|
180
|
+
}
|
|
181
|
+
case 'ArrowDown': {
|
|
182
|
+
nextIndex = currentIndex < Items.length - 1 ? currentIndex + 1 : 0;
|
|
183
|
+
break;
|
|
184
|
+
}
|
|
185
|
+
case 'Home': {
|
|
186
|
+
nextIndex = 0;
|
|
187
|
+
break;
|
|
188
|
+
}
|
|
189
|
+
case 'End': {
|
|
190
|
+
nextIndex = Items.length - 1;
|
|
191
|
+
break;
|
|
192
|
+
}
|
|
193
|
+
default: {
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
const nextItem = Items[nextIndex];
|
|
198
|
+
for (const [index, item] of Items.entries()) {
|
|
199
|
+
item.setAttribute('tabindex', index === nextIndex ? '0' : '-1');
|
|
200
|
+
}
|
|
201
|
+
nextItem.focus();
|
|
202
|
+
event.preventDefault();
|
|
203
|
+
});
|
|
204
|
+
_Dropdown_onReferenceClick.set(this, async () => {
|
|
205
|
+
if (this.disabled)
|
|
206
|
+
return;
|
|
207
|
+
if (__classPrivateFieldGet(this, _Dropdown_open, "f")) {
|
|
208
|
+
await this.close();
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
await this.show();
|
|
212
|
+
__classPrivateFieldGet(this, _Dropdown_instances, "m", _Dropdown_initializeFirstItem).call(this);
|
|
213
|
+
__classPrivateFieldGet(this, _Dropdown_instances, "m", _Dropdown_focusFirstItem).call(this);
|
|
214
|
+
});
|
|
215
|
+
_Dropdown_boundOnFocusout.set(this, (event) => {
|
|
216
|
+
ignorePromise(__classPrivateFieldGet(this, _Dropdown_onFocusout, "f").call(this, event));
|
|
217
|
+
});
|
|
218
|
+
_Dropdown_boundOnKeydown.set(this, (event) => {
|
|
219
|
+
ignorePromise(__classPrivateFieldGet(this, _Dropdown_onKeydown, "f").call(this, event));
|
|
220
|
+
});
|
|
221
|
+
_Dropdown_boundOnReferenceClick.set(this, () => {
|
|
222
|
+
ignorePromise(__classPrivateFieldGet(this, _Dropdown_onReferenceClick, "f").call(this));
|
|
223
|
+
});
|
|
224
|
+
_Dropdown_onSlotchange.set(this, (event) => {
|
|
225
|
+
const slot = event.target;
|
|
226
|
+
const assignedElements = slot.assignedElements({ flatten: true });
|
|
227
|
+
__classPrivateFieldSet(this, _Dropdown_Items, assignedElements.filter((element) => isEnabledItem(element)), "f");
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Updates the gap between the dropdown and its target element.
|
|
232
|
+
*/
|
|
233
|
+
async updateGap() {
|
|
234
|
+
__classPrivateFieldSet(this, _Dropdown_gap, propertyToPx(this.host, '--qds-accessory-gap-floating') ?? 0, "f");
|
|
235
|
+
await this.updateMiddleware();
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Shows the dropdown.
|
|
239
|
+
*/
|
|
240
|
+
async show() {
|
|
241
|
+
if (__classPrivateFieldGet(this, _Dropdown_open, "f"))
|
|
242
|
+
return;
|
|
243
|
+
const reference = __classPrivateFieldGet(this, _Dropdown_referenceElement, "f");
|
|
244
|
+
const { host } = this;
|
|
245
|
+
if (reference instanceof globalThis.Element) {
|
|
246
|
+
reference.setAttribute('aria-expanded', 'true');
|
|
247
|
+
host.setAttribute('aria-labelledby', reference.id);
|
|
248
|
+
if (isQdsButton(reference) && reference.action === 'dropdown')
|
|
249
|
+
reference.action = 'dropdown-close';
|
|
250
|
+
}
|
|
251
|
+
if (!__classPrivateFieldGet(this, _Dropdown_opened, "f")) {
|
|
252
|
+
await this.updateGap();
|
|
253
|
+
__classPrivateFieldSet(this, _Dropdown_opened, true, "f");
|
|
254
|
+
}
|
|
255
|
+
this.startAutoUpdate();
|
|
256
|
+
__classPrivateFieldSet(this, _Dropdown_open, true, "f");
|
|
257
|
+
host.hidden = false;
|
|
258
|
+
host.showPopover();
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Closes the dropdown.
|
|
262
|
+
*/
|
|
263
|
+
async close() {
|
|
264
|
+
if (!__classPrivateFieldGet(this, _Dropdown_open, "f"))
|
|
265
|
+
return;
|
|
266
|
+
if (__classPrivateFieldGet(this, _Dropdown_referenceElement, "f") instanceof globalThis.Element) {
|
|
267
|
+
__classPrivateFieldGet(this, _Dropdown_referenceElement, "f").setAttribute('aria-expanded', 'false');
|
|
268
|
+
if (isQdsButton(__classPrivateFieldGet(this, _Dropdown_referenceElement, "f")) &&
|
|
269
|
+
__classPrivateFieldGet(this, _Dropdown_referenceElement, "f").action === 'dropdown-close')
|
|
270
|
+
__classPrivateFieldGet(this, _Dropdown_referenceElement, "f").action = 'dropdown';
|
|
271
|
+
}
|
|
272
|
+
if (__classPrivateFieldGet(this, _Dropdown_cleanup, "f"))
|
|
273
|
+
__classPrivateFieldGet(this, _Dropdown_cleanup, "f").call(this);
|
|
274
|
+
__classPrivateFieldSet(this, _Dropdown_open, false, "f");
|
|
275
|
+
this.host.hidden = true;
|
|
276
|
+
this.host.hidePopover();
|
|
277
|
+
this.closeEmitter.emit();
|
|
278
|
+
}
|
|
279
|
+
async focusFirstItem() {
|
|
280
|
+
__classPrivateFieldGet(this, _Dropdown_instances, "m", _Dropdown_focusFirstItem).call(this);
|
|
281
|
+
}
|
|
282
|
+
async handleMouseDown(event) {
|
|
283
|
+
if (!__classPrivateFieldGet(this, _Dropdown_open, "f"))
|
|
284
|
+
return;
|
|
285
|
+
const composedPath = event.composedPath();
|
|
286
|
+
const withinBounds = composedPath.includes(this.host) ||
|
|
287
|
+
(__classPrivateFieldGet(this, _Dropdown_referenceElement, "f") instanceof globalThis.Element &&
|
|
288
|
+
composedPath.includes(__classPrivateFieldGet(this, _Dropdown_referenceElement, "f")));
|
|
289
|
+
if (!withinBounds)
|
|
290
|
+
await this.close();
|
|
291
|
+
}
|
|
292
|
+
async onItemClick(event) {
|
|
293
|
+
if (!this.keepOpenOnSelect && isEnabledItem(event.target)) {
|
|
294
|
+
await this.close();
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
async updateReferenceElement() {
|
|
298
|
+
var _a;
|
|
299
|
+
__classPrivateFieldGet(this, _Dropdown_instances, "m", _Dropdown_disconnectReferenceElement).call(this);
|
|
300
|
+
__classPrivateFieldSet(this, _Dropdown_referenceElement, resolveTarget(this.target, 'qds-dropdown'), "f");
|
|
301
|
+
if (!(__classPrivateFieldGet(this, _Dropdown_referenceElement, "f") instanceof globalThis.Element))
|
|
302
|
+
return;
|
|
303
|
+
__classPrivateFieldGet(this, _Dropdown_referenceElement, "f").setAttribute('aria-expanded', 'false');
|
|
304
|
+
__classPrivateFieldGet(this, _Dropdown_referenceElement, "f").setAttribute('aria-haspopup', 'true');
|
|
305
|
+
__classPrivateFieldGet(this, _Dropdown_referenceElement, "f").setAttribute('aria-controls', this.host.id);
|
|
306
|
+
__classPrivateFieldGet(this, _Dropdown_referenceElement, "f").addEventListener('click', __classPrivateFieldGet(this, _Dropdown_boundOnReferenceClick, "f"));
|
|
307
|
+
__classPrivateFieldGet(this, _Dropdown_referenceElement, "f").addEventListener('focusout', __classPrivateFieldGet(this, _Dropdown_boundOnFocusout, "f"));
|
|
308
|
+
__classPrivateFieldGet(this, _Dropdown_referenceElement, "f").addEventListener('keydown', __classPrivateFieldGet(this, _Dropdown_boundOnKeydown, "f"));
|
|
309
|
+
if (this.internals.role === 'menu') {
|
|
310
|
+
(_a = __classPrivateFieldGet(this, _Dropdown_referenceElement, "f")).id || (_a.id = `qds-dropdown-trigger-${__classPrivateFieldGet(this, _Dropdown_instanceId, "f")}`);
|
|
311
|
+
this.host.setAttribute('aria-labelledby', __classPrivateFieldGet(this, _Dropdown_referenceElement, "f").id);
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
async updateMiddleware() {
|
|
315
|
+
__classPrivateFieldSet(this, _Dropdown_middleware, [
|
|
316
|
+
offset({
|
|
317
|
+
...this.offsetOptions,
|
|
318
|
+
mainAxis: __classPrivateFieldGet(this, _Dropdown_gap, "f"),
|
|
319
|
+
}),
|
|
320
|
+
!this.noFlip &&
|
|
321
|
+
flip({
|
|
322
|
+
crossAxis: this.noShift,
|
|
323
|
+
...this.flipOptions,
|
|
324
|
+
}),
|
|
325
|
+
!this.noShift &&
|
|
326
|
+
shift({
|
|
327
|
+
limiter: limitShift(),
|
|
328
|
+
...this.shiftOptions,
|
|
329
|
+
}),
|
|
330
|
+
], "f");
|
|
331
|
+
}
|
|
332
|
+
async updatePosition() {
|
|
333
|
+
if (!__classPrivateFieldGet(this, _Dropdown_referenceElement, "f"))
|
|
334
|
+
return;
|
|
335
|
+
const { x, y, strategy } = await computePosition(__classPrivateFieldGet(this, _Dropdown_referenceElement, "f"), this.host, {
|
|
336
|
+
middleware: __classPrivateFieldGet(this, _Dropdown_middleware, "f"),
|
|
337
|
+
placement: this.placement,
|
|
338
|
+
strategy: this.strategy,
|
|
339
|
+
});
|
|
340
|
+
Object.assign(this.host.style, {
|
|
341
|
+
position: strategy,
|
|
342
|
+
left: `${x}px`,
|
|
343
|
+
top: `${y}px`,
|
|
344
|
+
});
|
|
345
|
+
}
|
|
346
|
+
startAutoUpdate() {
|
|
347
|
+
if (!__classPrivateFieldGet(this, _Dropdown_referenceElement, "f"))
|
|
348
|
+
return;
|
|
349
|
+
if (__classPrivateFieldGet(this, _Dropdown_cleanup, "f"))
|
|
350
|
+
__classPrivateFieldGet(this, _Dropdown_cleanup, "f").call(this);
|
|
351
|
+
__classPrivateFieldSet(this, _Dropdown_cleanup, autoUpdate(__classPrivateFieldGet(this, _Dropdown_referenceElement, "f"), this.host, () => {
|
|
352
|
+
ignorePromise(this.updatePosition());
|
|
353
|
+
}, this.autoUpdateOptions), "f");
|
|
354
|
+
}
|
|
355
|
+
async componentWillLoad() {
|
|
356
|
+
var _a;
|
|
357
|
+
this.host.hidden = true;
|
|
358
|
+
this.host.popover = 'manual';
|
|
359
|
+
this.internals.role = 'menu';
|
|
360
|
+
(_a = this.host).id || (_a.id = `qds-dropdown-${__classPrivateFieldGet(this, _Dropdown_instanceId, "f")}`);
|
|
361
|
+
await this.updateReferenceElement();
|
|
362
|
+
}
|
|
363
|
+
disconnectedCallback() {
|
|
364
|
+
__classPrivateFieldGet(this, _Dropdown_instances, "m", _Dropdown_disconnectReferenceElement).call(this);
|
|
365
|
+
}
|
|
366
|
+
render() {
|
|
367
|
+
return (h(Host, { key: '09855258aee08fb275151fd43d6bc88cdfd9444b', onKeyDown: __classPrivateFieldGet(this, _Dropdown_onKeydown, "f"), onFocusout: __classPrivateFieldGet(this, _Dropdown_onFocusout, "f") }, h("slot", { key: 'ed9fbc08022595ed716943a705d82a080661d37e', onSlotchange: __classPrivateFieldGet(this, _Dropdown_onSlotchange, "f") })));
|
|
368
|
+
}
|
|
369
|
+
static get delegatesFocus() { return true; }
|
|
370
|
+
get host() { return this; }
|
|
371
|
+
static get watchers() { return {
|
|
372
|
+
"target": ["updateReferenceElement"],
|
|
373
|
+
"flipOptions": ["updateMiddleware"],
|
|
374
|
+
"noFlip": ["updateMiddleware"],
|
|
375
|
+
"noShift": ["updateMiddleware"],
|
|
376
|
+
"offsetOptions": ["updateMiddleware"],
|
|
377
|
+
"shiftOptions": ["updateMiddleware"],
|
|
378
|
+
"middleware": ["updatePosition"],
|
|
379
|
+
"placement": ["updatePosition"],
|
|
380
|
+
"strategy": ["updatePosition"],
|
|
381
|
+
"autoUpdateOptions": ["startAutoUpdate"]
|
|
382
|
+
}; }
|
|
383
|
+
static get style() { return dropdownCss; }
|
|
384
|
+
}, [273, "qds-dropdown", {
|
|
385
|
+
"autoUpdateOptions": [16, "auto-update-options"],
|
|
386
|
+
"disabled": [4],
|
|
387
|
+
"flipOptions": [16, "flip-options"],
|
|
388
|
+
"noFlip": [4, "no-flip"],
|
|
389
|
+
"noShift": [4, "no-shift"],
|
|
390
|
+
"offsetOptions": [16, "offset-options"],
|
|
391
|
+
"placement": [1],
|
|
392
|
+
"shiftOptions": [16, "shift-options"],
|
|
393
|
+
"strategy": [1],
|
|
394
|
+
"target": [1],
|
|
395
|
+
"keepOpenOnSelect": [4, "keep-open-on-select"],
|
|
396
|
+
"updateGap": [64],
|
|
397
|
+
"show": [64],
|
|
398
|
+
"close": [64],
|
|
399
|
+
"focusFirstItem": [64]
|
|
400
|
+
}, [[4, "click", "handleMouseDown"], [0, "click", "onItemClick"]], {
|
|
401
|
+
"target": ["updateReferenceElement"],
|
|
402
|
+
"flipOptions": ["updateMiddleware"],
|
|
403
|
+
"noFlip": ["updateMiddleware"],
|
|
404
|
+
"noShift": ["updateMiddleware"],
|
|
405
|
+
"offsetOptions": ["updateMiddleware"],
|
|
406
|
+
"shiftOptions": ["updateMiddleware"],
|
|
407
|
+
"middleware": ["updatePosition"],
|
|
408
|
+
"placement": ["updatePosition"],
|
|
409
|
+
"strategy": ["updatePosition"],
|
|
410
|
+
"autoUpdateOptions": ["startAutoUpdate"]
|
|
411
|
+
}]);
|
|
412
|
+
_Dropdown_cleanup = new WeakMap(), _Dropdown_Items = new WeakMap(), _Dropdown_instanceId = new WeakMap(), _Dropdown_gap = new WeakMap(), _Dropdown_middleware = new WeakMap(), _Dropdown_referenceElement = new WeakMap(), _Dropdown_open = new WeakMap(), _Dropdown_opened = new WeakMap(), _Dropdown_onFocusout = new WeakMap(), _Dropdown_onKeydown = new WeakMap(), _Dropdown_onReferenceClick = new WeakMap(), _Dropdown_boundOnFocusout = new WeakMap(), _Dropdown_boundOnKeydown = new WeakMap(), _Dropdown_boundOnReferenceClick = new WeakMap(), _Dropdown_onSlotchange = new WeakMap(), _Dropdown_instances = new WeakSet(), _Dropdown_focusOnTrigger = function _Dropdown_focusOnTrigger() {
|
|
413
|
+
if (!(__classPrivateFieldGet(this, _Dropdown_referenceElement, "f") instanceof globalThis.HTMLElement) &&
|
|
414
|
+
!(__classPrivateFieldGet(this, _Dropdown_referenceElement, "f") instanceof globalThis.SVGElement))
|
|
415
|
+
return;
|
|
416
|
+
const root = __classPrivateFieldGet(this, _Dropdown_referenceElement, "f").getRootNode();
|
|
417
|
+
const isCustomElement = __classPrivateFieldGet(this, _Dropdown_referenceElement, "f") instanceof globalThis.HTMLElement &&
|
|
418
|
+
__classPrivateFieldGet(this, _Dropdown_referenceElement, "f").tagName.includes('-');
|
|
419
|
+
const target = root instanceof globalThis.ShadowRoot && !isCustomElement
|
|
420
|
+
? root.host
|
|
421
|
+
: __classPrivateFieldGet(this, _Dropdown_referenceElement, "f");
|
|
422
|
+
target.focus();
|
|
423
|
+
}, _Dropdown_focusFirstItem = function _Dropdown_focusFirstItem() {
|
|
424
|
+
requestAnimationFrame(() => {
|
|
425
|
+
const firstItem = __classPrivateFieldGet(this, _Dropdown_instances, "m", _Dropdown_setFirstItemTabindex).call(this);
|
|
426
|
+
if (firstItem) {
|
|
427
|
+
firstItem.focus();
|
|
428
|
+
return;
|
|
429
|
+
}
|
|
430
|
+
const focusable = __classPrivateFieldGet(this, _Dropdown_instances, "m", _Dropdown_findFirstFocusableDescendant).call(this);
|
|
431
|
+
if (focusable)
|
|
432
|
+
focusable.focus();
|
|
433
|
+
});
|
|
434
|
+
}, _Dropdown_initializeFirstItem = function _Dropdown_initializeFirstItem() {
|
|
435
|
+
requestAnimationFrame(() => {
|
|
436
|
+
__classPrivateFieldGet(this, _Dropdown_instances, "m", _Dropdown_setFirstItemTabindex).call(this);
|
|
437
|
+
});
|
|
438
|
+
}, _Dropdown_setFirstItemTabindex = function _Dropdown_setFirstItemTabindex() {
|
|
439
|
+
const firstItem = __classPrivateFieldGet(this, _Dropdown_Items, "f").find((item) => item instanceof H &&
|
|
440
|
+
isEnabledItem(item) &&
|
|
441
|
+
closestElement('qds-dropdown', item) === this.host);
|
|
442
|
+
if (!firstItem)
|
|
443
|
+
return undefined;
|
|
444
|
+
for (const item of __classPrivateFieldGet(this, _Dropdown_Items, "f"))
|
|
445
|
+
item.setAttribute('tabindex', '-1');
|
|
446
|
+
firstItem.setAttribute('tabindex', '0');
|
|
447
|
+
return firstItem;
|
|
448
|
+
}, _Dropdown_findFirstFocusableDescendant = function _Dropdown_findFirstFocusableDescendant() {
|
|
449
|
+
for (const child of this.host.children) {
|
|
450
|
+
if (child instanceof H && !child.inert) {
|
|
451
|
+
const focusable = __classPrivateFieldGet(this, _Dropdown_instances, "m", _Dropdown_focusWithin).call(this, child);
|
|
452
|
+
if (focusable)
|
|
453
|
+
return focusable;
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
return undefined;
|
|
457
|
+
}, _Dropdown_focusWithin = function _Dropdown_focusWithin(target) {
|
|
458
|
+
target.focus();
|
|
459
|
+
if (target.matches(':focus'))
|
|
460
|
+
return target;
|
|
461
|
+
if (target.shadowRoot) {
|
|
462
|
+
for (const child of target.shadowRoot.querySelectorAll('*')) {
|
|
463
|
+
if (child instanceof H && !child.inert) {
|
|
464
|
+
const focusable = __classPrivateFieldGet(this, _Dropdown_instances, "m", _Dropdown_focusWithin).call(this, child);
|
|
465
|
+
if (focusable)
|
|
466
|
+
return focusable;
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
return undefined;
|
|
471
|
+
}, _Dropdown_disconnectReferenceElement = function _Dropdown_disconnectReferenceElement() {
|
|
472
|
+
this.host.removeAttribute('aria-labelledby');
|
|
473
|
+
if (!(__classPrivateFieldGet(this, _Dropdown_referenceElement, "f") instanceof globalThis.Element))
|
|
474
|
+
return;
|
|
475
|
+
__classPrivateFieldGet(this, _Dropdown_referenceElement, "f").removeEventListener('click', __classPrivateFieldGet(this, _Dropdown_boundOnReferenceClick, "f"));
|
|
476
|
+
__classPrivateFieldGet(this, _Dropdown_referenceElement, "f").removeEventListener('focusout', __classPrivateFieldGet(this, _Dropdown_boundOnFocusout, "f"));
|
|
477
|
+
__classPrivateFieldGet(this, _Dropdown_referenceElement, "f").removeEventListener('keydown', __classPrivateFieldGet(this, _Dropdown_boundOnKeydown, "f"));
|
|
478
|
+
__classPrivateFieldGet(this, _Dropdown_referenceElement, "f").removeAttribute('aria-expanded');
|
|
479
|
+
__classPrivateFieldGet(this, _Dropdown_referenceElement, "f").removeAttribute('aria-controls');
|
|
480
|
+
}, _Dropdown_isReferenceOrDescendant = function _Dropdown_isReferenceOrDescendant(target) {
|
|
481
|
+
if (target === __classPrivateFieldGet(this, _Dropdown_referenceElement, "f"))
|
|
482
|
+
return true;
|
|
483
|
+
if (!(__classPrivateFieldGet(this, _Dropdown_referenceElement, "f") instanceof globalThis.Element))
|
|
484
|
+
return false;
|
|
485
|
+
if (target instanceof globalThis.Element &&
|
|
486
|
+
__classPrivateFieldGet(this, _Dropdown_referenceElement, "f").contains(target))
|
|
487
|
+
return true;
|
|
488
|
+
if (target instanceof globalThis.Node) {
|
|
489
|
+
const rootNode = target.getRootNode();
|
|
490
|
+
if (rootNode instanceof globalThis.ShadowRoot &&
|
|
491
|
+
rootNode.host === __classPrivateFieldGet(this, _Dropdown_referenceElement, "f"))
|
|
492
|
+
return true;
|
|
493
|
+
}
|
|
494
|
+
return false;
|
|
495
|
+
};
|
|
496
|
+
function defineCustomElement() {
|
|
497
|
+
if (typeof customElements === "undefined") {
|
|
498
|
+
return;
|
|
499
|
+
}
|
|
500
|
+
const components = ["qds-dropdown"];
|
|
501
|
+
components.forEach(tagName => { switch (tagName) {
|
|
502
|
+
case "qds-dropdown":
|
|
503
|
+
if (!customElements.get(tagName)) {
|
|
504
|
+
customElements.define(tagName, Dropdown);
|
|
505
|
+
}
|
|
506
|
+
break;
|
|
507
|
+
} });
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
export { Dropdown as D, defineCustomElement as d };
|
|
511
|
+
//# sourceMappingURL=p-BLA62eFO.js.map
|
|
512
|
+
|
|
513
|
+
//# sourceMappingURL=p-BLA62eFO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"p-BLA62eFO.js","mappings":"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","names":["HTMLElement","__stencil_proxyCustomElement"],"sources":["src/components/dropdown/dropdown.css?tag=qds-dropdown&encapsulation=shadow","src/components/dropdown/dropdown.tsx"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: © 2024 Schneider Electric\n *\n * SPDX-License-Identifier: Apache-2.0\n */\n\n@import url('../shared.css');\n\n:host {\n background-color: var(--qds-theme-popup-background);\n border-radius: var(--qds-popup-border-radius);\n border: none;\n box-shadow: var(--qds-popup-elevation);\n box-sizing: border-box;\n display: inline-block;\n inset: unset;\n margin: 0;\n overflow: initial;\n padding: 0;\n}\n","// SPDX-FileCopyrightText: © 2024 Schneider Electric\n//\n// SPDX-License-Identifier: Apache-2.0\n\nimport type {\n AutoUpdateOptions,\n DetectOverflowOptions,\n FlipOptions,\n Middleware,\n Placement,\n ReferenceElement,\n ShiftOptions,\n Strategy,\n} from '@floating-ui/dom'\nimport {\n autoUpdate,\n computePosition,\n flip,\n limitShift,\n offset,\n shift,\n} from '@floating-ui/dom'\nimport type { ComponentInterface, EventEmitter } from '@stencil/core'\nimport {\n AttachInternals,\n Component,\n Element,\n Event,\n h,\n Host,\n Listen,\n Method,\n Prop,\n Watch,\n} from '@stencil/core'\n\nimport type { OffsetOptions } from '../../helpers'\nimport {\n closestElement,\n getSubmenuCloseKey,\n ignorePromise,\n propertyToPx,\n resolveTarget,\n VERTICAL_MOVE_KEYS,\n} from '../../helpers'\n\nlet autoIncrementingId = 1\n\nconst getDropdownInstanceId = (): number => {\n const instanceId = autoIncrementingId\n autoIncrementingId += 1\n return instanceId\n}\n\nconst isQdsButton = (\n element: globalThis.Element,\n): element is HTMLQdsButtonElement =>\n element.tagName.toLowerCase() === 'qds-button'\n\nconst ALLOWED_TAGS: ReadonlySet<string> = new Set([\n 'qds-action-item',\n 'qds-menu-item',\n 'qds-list-item',\n])\n\nconst isEnabledItem = (element: unknown): element is HTMLElement =>\n element instanceof HTMLElement &&\n ALLOWED_TAGS.has(element.tagName.toLowerCase()) &&\n !element.hasAttribute('disabled') &&\n !element.inert &&\n element.getAttribute('list-action') !== 'none'\n\n/**\n * @slot Content to display in the dropdown.\n * @see https://quartz.se.com/build/components/dropdown\n */\n@Component({\n tag: 'qds-dropdown',\n shadow: { delegatesFocus: true },\n styleUrl: 'dropdown.css',\n})\nexport class Dropdown implements ComponentInterface {\n /**\n * Options to pass to Floating UI's\n * [`autoUpdate()` function](https://floating-ui.com/docs/autoUpdate).\n *\n * @see https://floating-ui.com/docs/autoupdate#options\n */\n @Prop() public readonly autoUpdateOptions?: AutoUpdateOptions\n\n /**\n * Prevents the dropdown from being shown by user interaction. The dropdown\n * can still be displayed by calling the `show()` method.\n */\n @Prop() public readonly disabled: boolean = false\n\n /**\n * Options to pass to Floating UI's\n * [`flip` middleware](https://floating-ui.com/docs/flip).\n *\n * The [`crossAxis` option](https://floating-ui.com/docs/flip#crossaxis) is\n * set to the value of the `noShift` property by default for interoperability\n * with the [`shift` middleware](https://floating-ui.com/docs/shift).\n *\n * @see https://floating-ui.com/docs/flip#options\n */\n @Prop() public readonly flipOptions?: Partial<\n DetectOverflowOptions & FlipOptions\n >\n\n /**\n * Disable Floating UI's\n * [`flip` middleware](https://floating-ui.com/docs/flip).\n */\n @Prop() public readonly noFlip: boolean = false\n\n /**\n * Disable Floating UI's\n * [`shift` middleware](https://floating-ui.com/docs/shift).\n */\n @Prop() public readonly noShift: boolean = false\n\n /**\n * Options to pass to Floating UI's\n * [`offset` middleware](https://floating-ui.com/docs/offset).\n *\n * The [`mainAxis` option](https://floating-ui.com/docs/offset#mainaxis) is\n * not supported.\n *\n * @see https://floating-ui.com/docs/offset#options\n */\n @Prop() public readonly offsetOptions?: OffsetOptions\n\n /**\n * Where to place the dropdown relative to the `target`.\n *\n * @see https://floating-ui.com/docs/tutorial#placements\n */\n @Prop() public readonly placement: Placement = 'bottom-start'\n\n /**\n * Options to pass to Floating UI's\n * [`shift` middleware](https://floating-ui.com/docs/shift).\n *\n * @see https://floating-ui.com/docs/shift#options\n */\n @Prop() public readonly shiftOptions?: Partial<\n DetectOverflowOptions & ShiftOptions\n >\n\n /**\n * The CSS position strategy to use.\n *\n * @see https://floating-ui.com/docs/computeposition#strategy\n */\n @Prop() public readonly strategy?: Strategy\n\n /**\n * The trigger element that will trigger the dropdown. The target specified\n * can be any of the following:\n *\n * - A CSS selector string\n * - A reference to an [`Element`][] or [Virtual Element][]\n * - A function returning a reference to an [`Element`][],\n * [Virtual Element][], or a CSS selector string\n *\n * [`Element`]: https://developer.mozilla.org/docs/Web/API/Element\n * [Virtual Element]: https://floating-ui.com/docs/virtual-elements\n */\n @Prop() public readonly target!:\n | ReferenceElement\n | string\n | (() => ReferenceElement | string)\n\n /**\n * By default, the dropdown is closed when an item is selected. This attribute will keep it open instead. Useful for\n * dropdowns that allow for multiple interactions.\n */\n @Prop() public readonly keepOpenOnSelect: boolean = false\n\n /**\n * Emitted when the user instructs the browser that they wish to dismiss the\n * current open dropdown by pressing the `Esc` key.\n *\n * When a dropdown is dismissed with the `Esc` key, both the `qdsCancel` and\n * `qdsClose` events are emitted.\n */\n @Event({ eventName: 'qdsCancel', bubbles: false })\n private readonly cancelEmitter!: EventEmitter<void>\n\n /**\n * Emitted when the dropdown is closed.\n */\n @Event({ eventName: 'qdsClose', bubbles: false, cancelable: false })\n private readonly closeEmitter!: EventEmitter<void>\n\n @Element() private readonly host!: HTMLElement\n\n @AttachInternals() private readonly internals!: ElementInternals\n\n #cleanup?: () => void\n\n #Items: HTMLElement[] = []\n\n readonly #instanceId = getDropdownInstanceId()\n\n #gap = 0\n\n #middleware?: (Middleware | false)[]\n\n #referenceElement?: ReferenceElement\n\n #open = false\n\n /**\n * Whether the dropdown has been opened at least once.\n * This is used to determine whether the dropdown should update its position, gap\n * and middleware when it is opened.\n */\n #opened = false\n\n /**\n * Updates the gap between the dropdown and its target element.\n */\n @Method()\n public async updateGap(): Promise<void> {\n this.#gap = propertyToPx(this.host, '--qds-accessory-gap-floating') ?? 0\n\n await this.updateMiddleware()\n }\n\n /**\n * Shows the dropdown.\n */\n @Method()\n public async show(): Promise<void> {\n if (this.#open) return\n\n const reference = this.#referenceElement\n const { host } = this\n\n if (reference instanceof globalThis.Element) {\n reference.setAttribute('aria-expanded', 'true')\n host.setAttribute('aria-labelledby', reference.id)\n\n if (isQdsButton(reference) && reference.action === 'dropdown')\n reference.action = 'dropdown-close'\n }\n\n if (!this.#opened) {\n await this.updateGap()\n this.#opened = true\n }\n this.startAutoUpdate()\n this.#open = true\n host.hidden = false\n host.showPopover()\n }\n\n /**\n * Closes the dropdown.\n */\n @Method()\n public async close(): Promise<void> {\n if (!this.#open) return\n\n if (this.#referenceElement instanceof globalThis.Element) {\n this.#referenceElement.setAttribute('aria-expanded', 'false')\n\n if (\n isQdsButton(this.#referenceElement) &&\n this.#referenceElement.action === 'dropdown-close'\n )\n this.#referenceElement.action = 'dropdown'\n }\n\n if (this.#cleanup) this.#cleanup()\n this.#open = false\n this.host.hidden = true\n this.host.hidePopover()\n\n this.closeEmitter.emit()\n }\n\n @Method()\n public async focusFirstItem(): Promise<void> {\n this.#focusFirstItem()\n }\n\n @Listen('click', { target: 'document' })\n protected async handleMouseDown(event: MouseEvent): Promise<void> {\n if (!this.#open) return\n\n const composedPath = event.composedPath()\n const withinBounds =\n composedPath.includes(this.host) ||\n (this.#referenceElement instanceof globalThis.Element &&\n composedPath.includes(this.#referenceElement))\n if (!withinBounds) await this.close()\n }\n\n @Listen('click')\n protected async onItemClick(event: MouseEvent): Promise<void> {\n if (!this.keepOpenOnSelect && isEnabledItem(event.target)) {\n await this.close()\n }\n }\n\n @Watch('target')\n private async updateReferenceElement(): Promise<void> {\n this.#disconnectReferenceElement()\n\n this.#referenceElement = resolveTarget(this.target, 'qds-dropdown')\n\n if (!(this.#referenceElement instanceof globalThis.Element)) return\n\n this.#referenceElement.setAttribute('aria-expanded', 'false')\n this.#referenceElement.setAttribute('aria-haspopup', 'true')\n this.#referenceElement.setAttribute('aria-controls', this.host.id)\n this.#referenceElement.addEventListener(\n 'click',\n this.#boundOnReferenceClick,\n )\n this.#referenceElement.addEventListener('focusout', this.#boundOnFocusout)\n this.#referenceElement.addEventListener('keydown', this.#boundOnKeydown)\n\n if (this.internals.role === 'menu') {\n this.#referenceElement.id ||= `qds-dropdown-trigger-${this.#instanceId}`\n this.host.setAttribute('aria-labelledby', this.#referenceElement.id)\n }\n }\n\n @Watch('flipOptions')\n @Watch('noFlip')\n @Watch('noShift')\n @Watch('offsetOptions')\n @Watch('shiftOptions')\n private async updateMiddleware(): Promise<void> {\n this.#middleware = [\n offset({\n ...this.offsetOptions,\n mainAxis: this.#gap,\n }),\n !this.noFlip &&\n flip({\n crossAxis: this.noShift,\n ...this.flipOptions,\n }),\n !this.noShift &&\n shift({\n limiter: limitShift(),\n ...this.shiftOptions,\n }),\n ]\n }\n\n @Watch('middleware')\n @Watch('placement')\n @Watch('strategy')\n private async updatePosition(): Promise<void> {\n if (!this.#referenceElement) return\n\n const { x, y, strategy } = await computePosition(\n this.#referenceElement,\n this.host,\n {\n middleware: this.#middleware,\n placement: this.placement,\n strategy: this.strategy,\n },\n )\n Object.assign(this.host.style, {\n position: strategy,\n left: `${x}px`,\n top: `${y}px`,\n })\n }\n\n @Watch('autoUpdateOptions')\n private startAutoUpdate(): void {\n if (!this.#referenceElement) return\n\n if (this.#cleanup) this.#cleanup()\n this.#cleanup = autoUpdate(\n this.#referenceElement,\n this.host,\n () => {\n ignorePromise(this.updatePosition())\n },\n this.autoUpdateOptions,\n )\n }\n\n public async componentWillLoad(): Promise<void> {\n this.host.hidden = true\n this.host.popover = 'manual'\n this.internals.role = 'menu'\n this.host.id ||= `qds-dropdown-${this.#instanceId}`\n await this.updateReferenceElement()\n }\n\n public disconnectedCallback(): void {\n this.#disconnectReferenceElement()\n }\n\n public render() {\n return (\n <Host onKeyDown={this.#onKeydown} onFocusout={this.#onFocusout}>\n <slot onSlotchange={this.#onSlotchange} />\n </Host>\n )\n }\n\n readonly #onFocusout = async (event: Event): Promise<void> => {\n if (!(event instanceof FocusEvent)) return\n const { relatedTarget } = event\n\n const dropdownItem = this.#Items.find((item) => item === relatedTarget)\n if (\n relatedTarget instanceof globalThis.Element &&\n !this.host.contains(relatedTarget) &&\n !dropdownItem &&\n !this.#isReferenceOrDescendant(relatedTarget)\n )\n await this.close()\n }\n\n #focusOnTrigger(): void {\n if (\n !(this.#referenceElement instanceof globalThis.HTMLElement) &&\n !(this.#referenceElement instanceof globalThis.SVGElement)\n )\n return\n\n const root = this.#referenceElement.getRootNode()\n const isCustomElement =\n this.#referenceElement instanceof globalThis.HTMLElement &&\n this.#referenceElement.tagName.includes('-')\n\n const target =\n root instanceof globalThis.ShadowRoot && !isCustomElement\n ? (root.host as HTMLElement)\n : this.#referenceElement\n\n target.focus()\n }\n\n readonly #onKeydown = async (event: Event): Promise<void> => {\n if (!(event instanceof KeyboardEvent)) return\n\n const { key, target } = event\n const keydownOnReference = this.#isReferenceOrDescendant(target)\n\n if (key === 'Enter' && !this.keepOpenOnSelect && isEnabledItem(target)) {\n // Keep parent open when Enter is used on an item with a nested submenu.\n if (\n target instanceof HTMLElement &&\n target.shadowRoot?.querySelector('qds-dropdown')\n )\n return\n\n await this.close()\n this.#focusOnTrigger()\n return\n }\n\n if (\n key === 'Escape' &&\n (target === this.#referenceElement ||\n (target instanceof globalThis.Element &&\n closestElement('qds-dropdown', target) === this.host))\n ) {\n const cancelEvent = this.cancelEmitter.emit()\n if (cancelEvent.defaultPrevented) return\n\n await this.close()\n this.#focusOnTrigger()\n\n return\n }\n\n if (keydownOnReference && (key === 'ArrowDown' || key === 'ArrowUp')) {\n event.preventDefault()\n event.stopPropagation()\n if (!this.#open) await this.show()\n this.#focusFirstItem()\n return\n }\n // Prevent space key from scrolling the page when focused on an item\n if (key === ' ' || key === 'Enter') {\n event.preventDefault()\n event.stopPropagation()\n return\n }\n\n if (key === getSubmenuCloseKey(this.host) && this.#open) {\n event.preventDefault()\n event.stopPropagation()\n await this.close()\n this.#focusOnTrigger()\n return\n }\n\n if (!VERTICAL_MOVE_KEYS.has(key)) return\n\n const Items = this.#Items.filter(\n (item: HTMLElement) =>\n isEnabledItem(item) &&\n closestElement('qds-dropdown', item) === this.host,\n )\n\n if (Items.length === 0) return\n\n event.preventDefault()\n event.stopPropagation()\n\n const currentIndex = Items.findIndex(\n (item: HTMLElement) => item.getAttribute('tabindex') === '0',\n )\n\n let nextIndex = currentIndex\n\n switch (key) {\n case 'ArrowUp': {\n nextIndex = currentIndex > 0 ? currentIndex - 1 : Items.length - 1\n break\n }\n case 'ArrowDown': {\n nextIndex = currentIndex < Items.length - 1 ? currentIndex + 1 : 0\n break\n }\n case 'Home': {\n nextIndex = 0\n break\n }\n case 'End': {\n nextIndex = Items.length - 1\n break\n }\n default: {\n return\n }\n }\n const nextItem = Items[nextIndex]\n for (const [index, item] of Items.entries()) {\n ;(item as HTMLElement).setAttribute(\n 'tabindex',\n index === nextIndex ? '0' : '-1',\n )\n }\n\n nextItem.focus()\n event.preventDefault()\n }\n\n readonly #onReferenceClick = async (): Promise<void> => {\n if (this.disabled) return\n\n if (this.#open) {\n await this.close()\n return\n }\n\n await this.show()\n this.#initializeFirstItem()\n this.#focusFirstItem()\n }\n\n #focusFirstItem(): void {\n requestAnimationFrame(() => {\n const firstItem = this.#setFirstItemTabindex()\n if (firstItem) {\n firstItem.focus()\n return\n }\n\n const focusable = this.#findFirstFocusableDescendant()\n if (focusable) focusable.focus()\n })\n }\n\n #initializeFirstItem(): void {\n requestAnimationFrame(() => {\n this.#setFirstItemTabindex()\n })\n }\n\n #setFirstItemTabindex(): HTMLElement | undefined {\n const firstItem = this.#Items.find(\n (item) =>\n item instanceof HTMLElement &&\n isEnabledItem(item) &&\n closestElement('qds-dropdown', item) === this.host,\n )\n if (!firstItem) return undefined\n for (const item of this.#Items) item.setAttribute('tabindex', '-1')\n firstItem.setAttribute('tabindex', '0')\n return firstItem\n }\n\n #findFirstFocusableDescendant(): HTMLElement | undefined {\n for (const child of this.host.children) {\n if (child instanceof HTMLElement && !child.inert) {\n const focusable = this.#focusWithin(child)\n if (focusable) return focusable\n }\n }\n\n return undefined\n }\n\n #focusWithin(target: HTMLElement): HTMLElement | undefined {\n target.focus()\n if (target.matches(':focus')) return target\n\n if (target.shadowRoot) {\n for (const child of target.shadowRoot.querySelectorAll('*')) {\n if (child instanceof HTMLElement && !child.inert) {\n const focusable = this.#focusWithin(child)\n if (focusable) return focusable\n }\n }\n }\n\n return undefined\n }\n\n #disconnectReferenceElement(): void {\n this.host.removeAttribute('aria-labelledby')\n\n if (!(this.#referenceElement instanceof globalThis.Element)) return\n\n this.#referenceElement.removeEventListener(\n 'click',\n this.#boundOnReferenceClick,\n )\n this.#referenceElement.removeEventListener(\n 'focusout',\n this.#boundOnFocusout,\n )\n this.#referenceElement.removeEventListener('keydown', this.#boundOnKeydown)\n this.#referenceElement.removeAttribute('aria-expanded')\n this.#referenceElement.removeAttribute('aria-controls')\n }\n\n readonly #boundOnFocusout = (event: Event): void => {\n ignorePromise(this.#onFocusout(event))\n }\n\n readonly #boundOnKeydown = (event: Event): void => {\n ignorePromise(this.#onKeydown(event))\n }\n\n readonly #boundOnReferenceClick = (): void => {\n ignorePromise(this.#onReferenceClick())\n }\n\n readonly #onSlotchange = (event: Event): void => {\n const slot = event.target as HTMLSlotElement\n const assignedElements = slot.assignedElements({ flatten: true })\n\n this.#Items = assignedElements.filter((element): element is HTMLElement =>\n isEnabledItem(element),\n )\n }\n\n #isReferenceOrDescendant(target: EventTarget | null): boolean {\n if (target === this.#referenceElement) return true\n\n if (!(this.#referenceElement instanceof globalThis.Element)) return false\n\n if (\n target instanceof globalThis.Element &&\n this.#referenceElement.contains(target)\n )\n return true\n\n if (target instanceof globalThis.Node) {\n const rootNode = target.getRootNode()\n if (\n rootNode instanceof globalThis.ShadowRoot &&\n rootNode.host === this.#referenceElement\n )\n return true\n }\n\n return false\n }\n}\n"],"version":3}
|