@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,528 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* SPDX-FileCopyrightText: © 2026 Schneider Electric
|
|
3
|
+
*
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
'use strict';
|
|
7
|
+
|
|
8
|
+
var index = require('./index-DIY7gpXM.js');
|
|
9
|
+
var helpers = require('./helpers-D6srVOLt.js');
|
|
10
|
+
|
|
11
|
+
const tabbarCss = ":host([hidden]){display:none!important}:host{display:block}.qds-tabbar,.qds-tabs,.qds-vertical,.qds-vertical-divider{display:flex}.qds-tabbar,.qds-vertical-divider{width:inherit}.qds-arrow-start{transform:scaleX(var(--qds-direction-factor,1)) rotate(180deg)}.qds-align-center{align-content:center}.qds-hidden{display:none}.qds-centered{justify-content:center}.qds-tabs{flex:1;margin-block:0;overflow:auto;padding-inline-start:0;scroll-behavior:smooth;scrollbar-width:none}.qds-vertical{flex-direction:column}.qds-vertical-divider{flex-direction:row}[data-size=small]{gap:var(--qds-control-small-gap-siblings-related)}[data-size=standard]{gap:var(--qds-control-standard-gap-siblings-related)}[data-layer=main][data-level=root] .qds-tabs,[data-size=large]{gap:var(--qds-control-large-gap-siblings-related)}[data-layer=main][data-level=section] .qds-tabs{gap:var(--qds-control-standard-gap-siblings-related)}[data-layer=main][data-level=subsection] .qds-tabs{gap:var(--qds-control-small-gap-siblings-related)}[data-layer=popup][data-level=root] .qds-tabs{gap:var(--qds-control-standard-gap-siblings-related)}[data-layer=popup][data-level=section] .qds-tabs{gap:var(--qds-control-small-gap-siblings-related)}:is([data-layer=panel],[data-layer=accessory])[data-level=root] .qds-tabs{gap:var(--qds-control-small-gap-siblings-related)}.qds-sr-only{clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}";
|
|
12
|
+
|
|
13
|
+
// SPDX-FileCopyrightText: © 2024 Schneider Electric
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
16
|
+
var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
17
|
+
if (kind === "a" && !f)
|
|
18
|
+
throw new TypeError("Private accessor was defined without a getter");
|
|
19
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
|
|
20
|
+
throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
21
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
22
|
+
};
|
|
23
|
+
var __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
24
|
+
if (kind === "m")
|
|
25
|
+
throw new TypeError("Private method is not writable");
|
|
26
|
+
if (kind === "a" && !f)
|
|
27
|
+
throw new TypeError("Private accessor was defined without a setter");
|
|
28
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
|
|
29
|
+
throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
30
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
31
|
+
};
|
|
32
|
+
var _Tabbar_instances, _Tabbar_tabs, _Tabbar_ro, _Tabbar_mutationObserver, _Tabbar_tabbar, _Tabbar_toggleAnnouncement, _Tabbar_scrollStartButton, _Tabbar_scrollEndButton, _Tabbar_pendingArrowFocus, _Tabbar_isInternallySettingActive, _Tabbar_computedImportance_get, _Tabbar_computedSize_get, _Tabbar_computedPlacement_get, _Tabbar_computeDividerVisible_get, _Tabbar_computedAriaOrientation_get, _Tabbar_getTabItems, _Tabbar_announceScroll, _Tabbar_scrollToStart, _Tabbar_scrollToEnd, _Tabbar_setActiveTab, _Tabbar_handleTabMutation, _Tabbar_activateTab, _Tabbar_switchTabPanel, _Tabbar_getCurrentTab, _Tabbar_setCurrentTab, _Tabbar_isVerticalPlacement, _Tabbar_isHorizontalPlacement, _Tabbar_isEndOrBottomPlacement, _Tabbar_onClick, _Tabbar_onKeyDown, _Tabbar_onMouseDown, _Tabbar_onScroll, _Tabbar_onViewportCrop, _Tabbar_syncInternalsAccessibility, _Tabbar_updateTabsCache, _Tabbar_setTabSettings, _Tabbar_onSlotchange, _Tabbar_scrollEndButtonRef, _Tabbar_scrollStartButtonRef;
|
|
33
|
+
const TAB_ITEM_SELECTOR = 'qds-icon-tab, qds-tab';
|
|
34
|
+
const TAB_SETTINGS = {
|
|
35
|
+
'main-root': {
|
|
36
|
+
importance: 'standard',
|
|
37
|
+
size: 'large',
|
|
38
|
+
indicatorPosition: 'block-end',
|
|
39
|
+
},
|
|
40
|
+
'main-section': {
|
|
41
|
+
importance: 'standard',
|
|
42
|
+
size: 'standard',
|
|
43
|
+
indicatorPosition: 'block-end',
|
|
44
|
+
},
|
|
45
|
+
'popup-root': {
|
|
46
|
+
importance: 'standard',
|
|
47
|
+
size: 'standard',
|
|
48
|
+
indicatorPosition: 'block-end',
|
|
49
|
+
},
|
|
50
|
+
'main-subsection': {
|
|
51
|
+
importance: 'subdued',
|
|
52
|
+
size: 'small',
|
|
53
|
+
indicatorPosition: 'block-start',
|
|
54
|
+
},
|
|
55
|
+
'popup-section': {
|
|
56
|
+
importance: 'subdued',
|
|
57
|
+
size: 'small',
|
|
58
|
+
indicatorPosition: 'inline-start',
|
|
59
|
+
},
|
|
60
|
+
'panel-root': {
|
|
61
|
+
importance: 'standard',
|
|
62
|
+
size: 'small',
|
|
63
|
+
indicatorPosition: 'block-start',
|
|
64
|
+
},
|
|
65
|
+
'accessory-root': {
|
|
66
|
+
importance: 'subdued',
|
|
67
|
+
size: 'small',
|
|
68
|
+
indicatorPosition: 'block-end',
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
const isTabItem = (item) => {
|
|
72
|
+
if (!(item instanceof HTMLElement))
|
|
73
|
+
return false;
|
|
74
|
+
const tagName = item.tagName.toLowerCase();
|
|
75
|
+
return tagName === 'qds-tab' || tagName === 'qds-icon-tab';
|
|
76
|
+
};
|
|
77
|
+
const isEnabledTabItem = (item) => isTabItem(item) && !item.inert && item.disabled !== true;
|
|
78
|
+
const isTabActive = (tab) => tab.selected;
|
|
79
|
+
const getTabTrigger = (tab) => tab.tab;
|
|
80
|
+
const getPanelId = (tab) => {
|
|
81
|
+
const panelElement = helpers.resolvePanelElement(tab);
|
|
82
|
+
return panelElement?.id ?? '';
|
|
83
|
+
};
|
|
84
|
+
const Tabbar = class {
|
|
85
|
+
constructor(hostRef) {
|
|
86
|
+
index.registerInstance(this, hostRef);
|
|
87
|
+
this.showEmitter = index.createEvent(this, "qdsTabShow", 6);
|
|
88
|
+
this.hideEmitter = index.createEvent(this, "qdsTabHide", 6);
|
|
89
|
+
if (hostRef.$hostElement$["s-ei"]) {
|
|
90
|
+
this.internals = hostRef.$hostElement$["s-ei"];
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
this.internals = hostRef.$hostElement$.attachInternals();
|
|
94
|
+
hostRef.$hostElement$["s-ei"] = this.internals;
|
|
95
|
+
}
|
|
96
|
+
_Tabbar_instances.add(this);
|
|
97
|
+
/**
|
|
98
|
+
* The tabbar's layer.
|
|
99
|
+
*
|
|
100
|
+
* @deprecated The property layer is deprecated. Please use `size` property instead.
|
|
101
|
+
* Please do not use `layer` and `size` at the same time.
|
|
102
|
+
*/
|
|
103
|
+
this.layer = 'main';
|
|
104
|
+
/**
|
|
105
|
+
* The tabbar's level.
|
|
106
|
+
*
|
|
107
|
+
* @deprecated The property level is deprecated. Please use `size` property instead.
|
|
108
|
+
* Please do not use `level` and `size` at the same time.
|
|
109
|
+
*/
|
|
110
|
+
this.level = 'root';
|
|
111
|
+
/**
|
|
112
|
+
* The tabbar's size. This controls the size of the tabs within the tabbar.
|
|
113
|
+
*/
|
|
114
|
+
this.size = 'standard';
|
|
115
|
+
/**
|
|
116
|
+
* The tabbar's orientation.
|
|
117
|
+
*
|
|
118
|
+
* @deprecated Please use the `placement` property instead. Do not use
|
|
119
|
+
* `orientation` and `placement` at the same time.
|
|
120
|
+
*/
|
|
121
|
+
this.orientation = 'horizontal';
|
|
122
|
+
/**
|
|
123
|
+
* The tabbar's placement.
|
|
124
|
+
*/
|
|
125
|
+
this.placement = 'top';
|
|
126
|
+
/**
|
|
127
|
+
* Displays a divider line.
|
|
128
|
+
*/
|
|
129
|
+
this.showDivider = false;
|
|
130
|
+
/**
|
|
131
|
+
* The alignment of tabs. Only applicable for horizontal orientation.
|
|
132
|
+
*/
|
|
133
|
+
this.alignment = 'start';
|
|
134
|
+
this.disableEndArrow = false;
|
|
135
|
+
this.disableStartArrow = false;
|
|
136
|
+
this.scrollAnnouncement = '';
|
|
137
|
+
_Tabbar_tabs.set(this, []);
|
|
138
|
+
_Tabbar_ro.set(this, void 0);
|
|
139
|
+
_Tabbar_mutationObserver.set(this, void 0);
|
|
140
|
+
_Tabbar_tabbar.set(this, void 0);
|
|
141
|
+
_Tabbar_toggleAnnouncement.set(this, false);
|
|
142
|
+
_Tabbar_scrollStartButton.set(this, void 0);
|
|
143
|
+
_Tabbar_scrollEndButton.set(this, void 0);
|
|
144
|
+
_Tabbar_pendingArrowFocus.set(this, void 0);
|
|
145
|
+
_Tabbar_isInternallySettingActive.set(this, false);
|
|
146
|
+
_Tabbar_scrollToStart.set(this, () => {
|
|
147
|
+
helpers.invariant(__classPrivateFieldGet(this, _Tabbar_tabbar, "f"));
|
|
148
|
+
const isRTL = globalThis.getComputedStyle(this.host).direction === 'rtl';
|
|
149
|
+
__classPrivateFieldSet(this, _Tabbar_pendingArrowFocus, 'end', "f");
|
|
150
|
+
__classPrivateFieldGet(this, _Tabbar_tabbar, "f").scroll({
|
|
151
|
+
left: isRTL
|
|
152
|
+
? __classPrivateFieldGet(this, _Tabbar_tabbar, "f").scrollLeft + __classPrivateFieldGet(this, _Tabbar_tabbar, "f").clientWidth
|
|
153
|
+
: __classPrivateFieldGet(this, _Tabbar_tabbar, "f").scrollLeft - __classPrivateFieldGet(this, _Tabbar_tabbar, "f").clientWidth,
|
|
154
|
+
});
|
|
155
|
+
__classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_announceScroll).call(this, 'previous');
|
|
156
|
+
});
|
|
157
|
+
_Tabbar_scrollToEnd.set(this, () => {
|
|
158
|
+
helpers.invariant(__classPrivateFieldGet(this, _Tabbar_tabbar, "f"));
|
|
159
|
+
const isRTL = globalThis.getComputedStyle(this.host).direction === 'rtl';
|
|
160
|
+
__classPrivateFieldSet(this, _Tabbar_pendingArrowFocus, 'start', "f");
|
|
161
|
+
__classPrivateFieldGet(this, _Tabbar_tabbar, "f").scroll({
|
|
162
|
+
left: isRTL
|
|
163
|
+
? __classPrivateFieldGet(this, _Tabbar_tabbar, "f").scrollLeft - __classPrivateFieldGet(this, _Tabbar_tabbar, "f").clientWidth
|
|
164
|
+
: __classPrivateFieldGet(this, _Tabbar_tabbar, "f").scrollLeft + __classPrivateFieldGet(this, _Tabbar_tabbar, "f").clientWidth,
|
|
165
|
+
});
|
|
166
|
+
__classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_announceScroll).call(this, 'next');
|
|
167
|
+
});
|
|
168
|
+
_Tabbar_isVerticalPlacement.set(this, () => this.placement === 'start' || this.placement === 'end');
|
|
169
|
+
_Tabbar_isHorizontalPlacement.set(this, () => this.placement === 'top' || this.placement === 'bottom');
|
|
170
|
+
_Tabbar_isEndOrBottomPlacement.set(this, () => this.placement === 'end' || this.placement === 'bottom');
|
|
171
|
+
_Tabbar_onClick.set(this, (event) => {
|
|
172
|
+
const { target } = event;
|
|
173
|
+
if (!(target instanceof HTMLElement))
|
|
174
|
+
return;
|
|
175
|
+
const tab = target.closest(TAB_ITEM_SELECTOR);
|
|
176
|
+
if (!isEnabledTabItem(tab))
|
|
177
|
+
return;
|
|
178
|
+
__classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_activateTab).call(this, tab);
|
|
179
|
+
});
|
|
180
|
+
_Tabbar_onKeyDown.set(this, (event) => {
|
|
181
|
+
const isVertical = this.orientation === 'vertical' || __classPrivateFieldGet(this, _Tabbar_isVerticalPlacement, "f").call(this);
|
|
182
|
+
const MOVE_SELECTION_KEYS = isVertical
|
|
183
|
+
? helpers.VERTICAL_MOVE_KEYS
|
|
184
|
+
: helpers.HORIZONTAL_MOVE_KEYS;
|
|
185
|
+
if (!MOVE_SELECTION_KEYS.has(event.key))
|
|
186
|
+
return;
|
|
187
|
+
const tabs = __classPrivateFieldGet(this, _Tabbar_tabs, "f");
|
|
188
|
+
if (tabs.length === 0)
|
|
189
|
+
return;
|
|
190
|
+
event.preventDefault();
|
|
191
|
+
event.stopPropagation();
|
|
192
|
+
const activeTab = __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_getCurrentTab).call(this);
|
|
193
|
+
let index = activeTab ? tabs.indexOf(activeTab) : 0;
|
|
194
|
+
const isRTL = globalThis.getComputedStyle(this.host).direction === 'rtl';
|
|
195
|
+
let nextTab;
|
|
196
|
+
do {
|
|
197
|
+
switch (event.key) {
|
|
198
|
+
case 'ArrowLeft':
|
|
199
|
+
case 'ArrowUp': {
|
|
200
|
+
index = (isRTL ? index < tabs.length - 1 : index > 0)
|
|
201
|
+
? index - (isRTL ? -1 : 1)
|
|
202
|
+
: isRTL
|
|
203
|
+
? 0
|
|
204
|
+
: tabs.length - 1;
|
|
205
|
+
break;
|
|
206
|
+
}
|
|
207
|
+
case 'ArrowRight':
|
|
208
|
+
case 'ArrowDown': {
|
|
209
|
+
index = (isRTL ? index > 0 : index < tabs.length - 1)
|
|
210
|
+
? index + (isRTL ? -1 : 1)
|
|
211
|
+
: isRTL
|
|
212
|
+
? tabs.length - 1
|
|
213
|
+
: 0;
|
|
214
|
+
break;
|
|
215
|
+
}
|
|
216
|
+
case 'Home': {
|
|
217
|
+
index = isRTL ? tabs.length - 1 : 0;
|
|
218
|
+
break;
|
|
219
|
+
}
|
|
220
|
+
case 'End': {
|
|
221
|
+
index = isRTL ? 0 : tabs.length - 1;
|
|
222
|
+
break;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
nextTab = tabs[index];
|
|
226
|
+
} while (nextTab.disabled === true);
|
|
227
|
+
__classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_setCurrentTab).call(this, nextTab);
|
|
228
|
+
const target = getTabTrigger(nextTab);
|
|
229
|
+
target.focus({ preventScroll: true });
|
|
230
|
+
if (!isVertical)
|
|
231
|
+
target.scrollIntoView();
|
|
232
|
+
__classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_activateTab).call(this, nextTab);
|
|
233
|
+
});
|
|
234
|
+
_Tabbar_onMouseDown.set(this, (event) => {
|
|
235
|
+
const { target } = event;
|
|
236
|
+
if (!(target instanceof HTMLElement))
|
|
237
|
+
return;
|
|
238
|
+
const tab = target.closest(TAB_ITEM_SELECTOR);
|
|
239
|
+
if (isEnabledTabItem(tab))
|
|
240
|
+
__classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_setCurrentTab).call(this, tab);
|
|
241
|
+
});
|
|
242
|
+
_Tabbar_onScroll.set(this, () => {
|
|
243
|
+
if (!__classPrivateFieldGet(this, _Tabbar_tabbar, "f"))
|
|
244
|
+
return;
|
|
245
|
+
const { clientWidth, scrollWidth, scrollLeft } = __classPrivateFieldGet(this, _Tabbar_tabbar, "f");
|
|
246
|
+
const isRTL = globalThis.getComputedStyle(this.host).direction === 'rtl';
|
|
247
|
+
this.disableStartArrow = scrollLeft === 0;
|
|
248
|
+
this.disableEndArrow = isRTL
|
|
249
|
+
? scrollWidth + scrollLeft <= clientWidth
|
|
250
|
+
: scrollWidth - clientWidth - scrollLeft <= 1;
|
|
251
|
+
});
|
|
252
|
+
_Tabbar_onViewportCrop.set(this, () => {
|
|
253
|
+
if (!__classPrivateFieldGet(this, _Tabbar_tabbar, "f"))
|
|
254
|
+
return;
|
|
255
|
+
const { scrollWidth, clientWidth } = __classPrivateFieldGet(this, _Tabbar_tabbar, "f");
|
|
256
|
+
if (scrollWidth > clientWidth) {
|
|
257
|
+
__classPrivateFieldGet(this, _Tabbar_onScroll, "f").call(this);
|
|
258
|
+
}
|
|
259
|
+
});
|
|
260
|
+
_Tabbar_onSlotchange.set(this, () => {
|
|
261
|
+
__classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_updateTabsCache).call(this);
|
|
262
|
+
if (__classPrivateFieldGet(this, _Tabbar_tabs, "f").length > 0)
|
|
263
|
+
__classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_setCurrentTab).call(this, __classPrivateFieldGet(this, _Tabbar_tabs, "f")[0]);
|
|
264
|
+
__classPrivateFieldGet(this, _Tabbar_onViewportCrop, "f").call(this);
|
|
265
|
+
});
|
|
266
|
+
_Tabbar_scrollEndButtonRef.set(this, (button) => {
|
|
267
|
+
__classPrivateFieldSet(this, _Tabbar_scrollEndButton, button, "f");
|
|
268
|
+
});
|
|
269
|
+
_Tabbar_scrollStartButtonRef.set(this, (button) => {
|
|
270
|
+
__classPrivateFieldSet(this, _Tabbar_scrollStartButton, button, "f");
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
settingChanged() {
|
|
274
|
+
__classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_setTabSettings).call(this);
|
|
275
|
+
}
|
|
276
|
+
accessibilityChanged() {
|
|
277
|
+
__classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_syncInternalsAccessibility).call(this);
|
|
278
|
+
}
|
|
279
|
+
windowResize() {
|
|
280
|
+
__classPrivateFieldGet(this, _Tabbar_onViewportCrop, "f").call(this);
|
|
281
|
+
}
|
|
282
|
+
activeChanged() {
|
|
283
|
+
if (__classPrivateFieldGet(this, _Tabbar_isInternallySettingActive, "f"))
|
|
284
|
+
return;
|
|
285
|
+
if (this.active === undefined || this.active === '')
|
|
286
|
+
return;
|
|
287
|
+
const tabs = __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_getTabItems).call(this);
|
|
288
|
+
const nextTab = tabs.find((tab) => {
|
|
289
|
+
const panelId = getPanelId(tab);
|
|
290
|
+
return panelId === this.active;
|
|
291
|
+
});
|
|
292
|
+
if (!nextTab || nextTab.disabled === true)
|
|
293
|
+
return;
|
|
294
|
+
const previousTab = this.activeTab;
|
|
295
|
+
if (previousTab === nextTab && this.active === getPanelId(nextTab))
|
|
296
|
+
return;
|
|
297
|
+
this.activeTab = nextTab;
|
|
298
|
+
if (previousTab && previousTab !== nextTab) {
|
|
299
|
+
this.hideEmitter.emit(previousTab);
|
|
300
|
+
}
|
|
301
|
+
if (previousTab !== nextTab) {
|
|
302
|
+
this.showEmitter.emit(nextTab);
|
|
303
|
+
}
|
|
304
|
+
// Update tab states without triggering mutation observer
|
|
305
|
+
__classPrivateFieldSet(this, _Tabbar_isInternallySettingActive, true, "f");
|
|
306
|
+
for (const t of tabs) {
|
|
307
|
+
const target = getTabTrigger(t);
|
|
308
|
+
const isSelected = t === nextTab;
|
|
309
|
+
t.selected = isSelected;
|
|
310
|
+
if (target instanceof globalThis.Element)
|
|
311
|
+
target.ariaSelected = isSelected.toString();
|
|
312
|
+
}
|
|
313
|
+
__classPrivateFieldSet(this, _Tabbar_isInternallySettingActive, false, "f");
|
|
314
|
+
__classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_switchTabPanel).call(this, nextTab);
|
|
315
|
+
}
|
|
316
|
+
componentWillLoad() {
|
|
317
|
+
this.settingChanged();
|
|
318
|
+
this.internals.role = 'tablist';
|
|
319
|
+
__classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_syncInternalsAccessibility).call(this);
|
|
320
|
+
const tabs = __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_getTabItems).call(this);
|
|
321
|
+
const preselectedTab = tabs.find((tab) => isTabActive(tab));
|
|
322
|
+
if (preselectedTab)
|
|
323
|
+
__classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_setActiveTab).call(this, preselectedTab);
|
|
324
|
+
else if (tabs.length > 0)
|
|
325
|
+
__classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_setActiveTab).call(this, tabs[0]);
|
|
326
|
+
}
|
|
327
|
+
componentDidRender() {
|
|
328
|
+
if (this.activeTab)
|
|
329
|
+
__classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_switchTabPanel).call(this, this.activeTab);
|
|
330
|
+
if (__classPrivateFieldGet(this, _Tabbar_pendingArrowFocus, "f") === 'start' && this.disableEndArrow) {
|
|
331
|
+
__classPrivateFieldSet(this, _Tabbar_pendingArrowFocus, undefined, "f");
|
|
332
|
+
__classPrivateFieldGet(this, _Tabbar_scrollStartButton, "f")?.focus();
|
|
333
|
+
}
|
|
334
|
+
else if (__classPrivateFieldGet(this, _Tabbar_pendingArrowFocus, "f") === 'end' && this.disableStartArrow) {
|
|
335
|
+
__classPrivateFieldSet(this, _Tabbar_pendingArrowFocus, undefined, "f");
|
|
336
|
+
__classPrivateFieldGet(this, _Tabbar_scrollEndButton, "f")?.focus();
|
|
337
|
+
}
|
|
338
|
+
this.settingChanged();
|
|
339
|
+
}
|
|
340
|
+
componentDidLoad() {
|
|
341
|
+
helpers.invariant(__classPrivateFieldGet(this, _Tabbar_tabbar, "f"));
|
|
342
|
+
__classPrivateFieldSet(this, _Tabbar_ro, new ResizeObserver(__classPrivateFieldGet(this, _Tabbar_onScroll, "f")), "f");
|
|
343
|
+
__classPrivateFieldGet(this, _Tabbar_ro, "f").observe(__classPrivateFieldGet(this, _Tabbar_tabbar, "f"));
|
|
344
|
+
__classPrivateFieldSet(this, _Tabbar_mutationObserver, new MutationObserver((mutations) => {
|
|
345
|
+
__classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_handleTabMutation).call(this, mutations);
|
|
346
|
+
}), "f");
|
|
347
|
+
__classPrivateFieldGet(this, _Tabbar_mutationObserver, "f").observe(this.host, {
|
|
348
|
+
attributes: true,
|
|
349
|
+
attributeFilter: ['active'],
|
|
350
|
+
childList: true,
|
|
351
|
+
subtree: true,
|
|
352
|
+
});
|
|
353
|
+
}
|
|
354
|
+
disconnectedCallback() {
|
|
355
|
+
__classPrivateFieldGet(this, _Tabbar_ro, "f")?.disconnect();
|
|
356
|
+
__classPrivateFieldGet(this, _Tabbar_mutationObserver, "f")?.disconnect();
|
|
357
|
+
}
|
|
358
|
+
render() {
|
|
359
|
+
return (index.h("div", { key: '43a1bae6bd980854ec8cbc786be30d3c4dae4ae9', class: {
|
|
360
|
+
'qds-vertical-divider': this.orientation === 'vertical' || __classPrivateFieldGet(this, _Tabbar_isVerticalPlacement, "f").call(this),
|
|
361
|
+
}, "data-layer": this.layer, "data-level": this.level, "data-importance": __classPrivateFieldGet(this, _Tabbar_instances, "a", _Tabbar_computedImportance_get) }, index.h("span", { key: '6c81132bbb30f3c5813186bd9a2e6c4715b208c5', class: "qds-sr-only", "aria-live": "polite" }, this.scrollAnnouncement), __classPrivateFieldGet(this, _Tabbar_instances, "a", _Tabbar_computeDividerVisible_get) && __classPrivateFieldGet(this, _Tabbar_isEndOrBottomPlacement, "f").call(this) && (index.h("qds-divider", { key: '147475632fc9fd2d8f859240dfa71e45058c4d78', vertical: this.orientation === 'vertical' || __classPrivateFieldGet(this, _Tabbar_isVerticalPlacement, "f").call(this) })), index.h("div", { key: '51a0179675663618453b54d25bda6054e3f91321', class: "qds-tabbar" }, index.h("div", { key: '44f0167da0d5b5d682f86c57a0a7b347e51e0fca', class: {
|
|
362
|
+
'qds-align-center': true,
|
|
363
|
+
'qds-hidden': (this.disableEndArrow && this.disableStartArrow) ||
|
|
364
|
+
this.orientation === 'vertical' ||
|
|
365
|
+
__classPrivateFieldGet(this, _Tabbar_isVerticalPlacement, "f").call(this),
|
|
366
|
+
} }, index.h("qds-icon-button", { key: '22a512257855b48e1b50f9b48d06017c756a58ea', "aria-label": "show previous tab", importance: "subdued", iconName: "next", iconLibrary: "core", class: "qds-arrow-start", onClick: __classPrivateFieldGet(this, _Tabbar_scrollToStart, "f"), disabled: this.disableStartArrow, ref: __classPrivateFieldGet(this, _Tabbar_scrollStartButtonRef, "f") })), index.h("div", { key: '4e1a36aaf66917a57bf64618fa675e91db34e555', class: {
|
|
367
|
+
'qds-tabs': true,
|
|
368
|
+
'qds-vertical': this.orientation === 'vertical' || __classPrivateFieldGet(this, _Tabbar_isVerticalPlacement, "f").call(this),
|
|
369
|
+
'qds-centered': this.alignment === 'center' &&
|
|
370
|
+
(this.orientation === 'horizontal' ||
|
|
371
|
+
__classPrivateFieldGet(this, _Tabbar_isHorizontalPlacement, "f").call(this)) &&
|
|
372
|
+
this.disableEndArrow &&
|
|
373
|
+
this.disableStartArrow,
|
|
374
|
+
}, ref: (element) => {
|
|
375
|
+
__classPrivateFieldSet(this, _Tabbar_tabbar, element, "f");
|
|
376
|
+
}, onClick: __classPrivateFieldGet(this, _Tabbar_onClick, "f"), onKeyDown: __classPrivateFieldGet(this, _Tabbar_onKeyDown, "f"), onMouseDown: __classPrivateFieldGet(this, _Tabbar_onMouseDown, "f"), onScroll: __classPrivateFieldGet(this, _Tabbar_onScroll, "f") }, index.h("slot", { key: '0ae4c49fd815426bd78962526f5fce946d0688a1', onSlotchange: __classPrivateFieldGet(this, _Tabbar_onSlotchange, "f") })), index.h("div", { key: 'c4fc6997f1430efe4975c8ed1ad723fa6d906d79', class: {
|
|
377
|
+
'qds-align-center': true,
|
|
378
|
+
'qds-hidden': (this.disableEndArrow && this.disableStartArrow) ||
|
|
379
|
+
this.orientation === 'vertical' ||
|
|
380
|
+
__classPrivateFieldGet(this, _Tabbar_isVerticalPlacement, "f").call(this),
|
|
381
|
+
} }, index.h("qds-icon-button", { key: '87973e92e8ad9e40a2ba6a2a7ade1040c6e46fde', "aria-label": "show next tab", iconName: "next", iconLibrary: "core", importance: "subdued", onClick: __classPrivateFieldGet(this, _Tabbar_scrollToEnd, "f"), disabled: this.disableEndArrow, ref: __classPrivateFieldGet(this, _Tabbar_scrollEndButtonRef, "f") }))), __classPrivateFieldGet(this, _Tabbar_instances, "a", _Tabbar_computeDividerVisible_get) && !__classPrivateFieldGet(this, _Tabbar_isEndOrBottomPlacement, "f").call(this) && (index.h("qds-divider", { key: '9c7748c515f2f86c4065b90929dbe7d8f19b377b', vertical: this.orientation === 'vertical' || __classPrivateFieldGet(this, _Tabbar_isVerticalPlacement, "f").call(this) }))));
|
|
382
|
+
}
|
|
383
|
+
static get delegatesFocus() { return true; }
|
|
384
|
+
get host() { return index.getElement(this); }
|
|
385
|
+
static get watchers() { return {
|
|
386
|
+
"importance": ["settingChanged"],
|
|
387
|
+
"orientation": ["accessibilityChanged"],
|
|
388
|
+
"placement": ["accessibilityChanged"],
|
|
389
|
+
"tablistDescription": ["accessibilityChanged"],
|
|
390
|
+
"active": ["activeChanged"]
|
|
391
|
+
}; }
|
|
392
|
+
};
|
|
393
|
+
_Tabbar_tabs = new WeakMap(), _Tabbar_ro = new WeakMap(), _Tabbar_mutationObserver = new WeakMap(), _Tabbar_tabbar = new WeakMap(), _Tabbar_toggleAnnouncement = new WeakMap(), _Tabbar_scrollStartButton = new WeakMap(), _Tabbar_scrollEndButton = new WeakMap(), _Tabbar_pendingArrowFocus = new WeakMap(), _Tabbar_isInternallySettingActive = new WeakMap(), _Tabbar_scrollToStart = new WeakMap(), _Tabbar_scrollToEnd = new WeakMap(), _Tabbar_isVerticalPlacement = new WeakMap(), _Tabbar_isHorizontalPlacement = new WeakMap(), _Tabbar_isEndOrBottomPlacement = new WeakMap(), _Tabbar_onClick = new WeakMap(), _Tabbar_onKeyDown = new WeakMap(), _Tabbar_onMouseDown = new WeakMap(), _Tabbar_onScroll = new WeakMap(), _Tabbar_onViewportCrop = new WeakMap(), _Tabbar_onSlotchange = new WeakMap(), _Tabbar_scrollEndButtonRef = new WeakMap(), _Tabbar_scrollStartButtonRef = new WeakMap(), _Tabbar_instances = new WeakSet(), _Tabbar_computedImportance_get = function _Tabbar_computedImportance_get() {
|
|
394
|
+
return this.importance;
|
|
395
|
+
}, _Tabbar_computedSize_get = function _Tabbar_computedSize_get() {
|
|
396
|
+
return this.size ?? undefined;
|
|
397
|
+
}, _Tabbar_computedPlacement_get = function _Tabbar_computedPlacement_get() {
|
|
398
|
+
switch (this.placement) {
|
|
399
|
+
case 'top': {
|
|
400
|
+
return 'block-end';
|
|
401
|
+
}
|
|
402
|
+
case 'end': {
|
|
403
|
+
return 'inline-start';
|
|
404
|
+
}
|
|
405
|
+
case 'bottom': {
|
|
406
|
+
return 'block-start';
|
|
407
|
+
}
|
|
408
|
+
case 'start': {
|
|
409
|
+
return 'inline-end';
|
|
410
|
+
}
|
|
411
|
+
default: {
|
|
412
|
+
return undefined;
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
}, _Tabbar_computeDividerVisible_get = function _Tabbar_computeDividerVisible_get() {
|
|
416
|
+
if (this.layer === 'panel')
|
|
417
|
+
return false;
|
|
418
|
+
if (this.layer === 'main' &&
|
|
419
|
+
this.level === 'subsection' &&
|
|
420
|
+
(this.orientation === 'horizontal' || __classPrivateFieldGet(this, _Tabbar_isVerticalPlacement, "f").call(this)))
|
|
421
|
+
return false;
|
|
422
|
+
return this.showDivider === true;
|
|
423
|
+
}, _Tabbar_computedAriaOrientation_get = function _Tabbar_computedAriaOrientation_get() {
|
|
424
|
+
return this.orientation === 'vertical' || __classPrivateFieldGet(this, _Tabbar_isVerticalPlacement, "f").call(this)
|
|
425
|
+
? 'vertical'
|
|
426
|
+
: 'horizontal';
|
|
427
|
+
}, _Tabbar_getTabItems = function _Tabbar_getTabItems() {
|
|
428
|
+
return [
|
|
429
|
+
...this.host.querySelectorAll(TAB_ITEM_SELECTOR),
|
|
430
|
+
].filter((element) => isTabItem(element));
|
|
431
|
+
}, _Tabbar_announceScroll = function _Tabbar_announceScroll(direction) {
|
|
432
|
+
const text = direction === 'next' ? 'Next tabs showed' : 'Previous tabs showed';
|
|
433
|
+
__classPrivateFieldSet(this, _Tabbar_toggleAnnouncement, !__classPrivateFieldGet(this, _Tabbar_toggleAnnouncement, "f"), "f");
|
|
434
|
+
this.scrollAnnouncement = text + (__classPrivateFieldGet(this, _Tabbar_toggleAnnouncement, "f") ? '' : '.');
|
|
435
|
+
}, _Tabbar_setActiveTab = function _Tabbar_setActiveTab(tab) {
|
|
436
|
+
this.activeTab = tab;
|
|
437
|
+
const panelId = getPanelId(tab);
|
|
438
|
+
__classPrivateFieldSet(this, _Tabbar_isInternallySettingActive, true, "f");
|
|
439
|
+
this.active = panelId;
|
|
440
|
+
for (const t of __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_getTabItems).call(this)) {
|
|
441
|
+
const target = getTabTrigger(t);
|
|
442
|
+
const isSelected = t === tab;
|
|
443
|
+
t.selected = isSelected;
|
|
444
|
+
if (target instanceof globalThis.Element)
|
|
445
|
+
target.ariaSelected = isSelected.toString();
|
|
446
|
+
}
|
|
447
|
+
__classPrivateFieldSet(this, _Tabbar_isInternallySettingActive, false, "f");
|
|
448
|
+
}, _Tabbar_handleTabMutation = function _Tabbar_handleTabMutation(mutations) {
|
|
449
|
+
if (__classPrivateFieldGet(this, _Tabbar_isInternallySettingActive, "f"))
|
|
450
|
+
return;
|
|
451
|
+
const activeTab = mutations
|
|
452
|
+
.map((m) => m.target)
|
|
453
|
+
.find((target) => target instanceof HTMLElement && isTabItem(target) && target.selected);
|
|
454
|
+
if (activeTab) {
|
|
455
|
+
__classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_setActiveTab).call(this, activeTab);
|
|
456
|
+
}
|
|
457
|
+
}, _Tabbar_activateTab = function _Tabbar_activateTab(tab) {
|
|
458
|
+
const previousTab = this.activeTab;
|
|
459
|
+
if (previousTab === tab)
|
|
460
|
+
return;
|
|
461
|
+
this.activeTab = tab;
|
|
462
|
+
const panelId = getPanelId(tab);
|
|
463
|
+
if (previousTab) {
|
|
464
|
+
this.hideEmitter.emit(previousTab);
|
|
465
|
+
}
|
|
466
|
+
this.showEmitter.emit(tab);
|
|
467
|
+
__classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_setCurrentTab).call(this, tab);
|
|
468
|
+
__classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_switchTabPanel).call(this, tab);
|
|
469
|
+
// Set active property without triggering watcher events again
|
|
470
|
+
__classPrivateFieldSet(this, _Tabbar_isInternallySettingActive, true, "f");
|
|
471
|
+
this.active = panelId;
|
|
472
|
+
__classPrivateFieldSet(this, _Tabbar_isInternallySettingActive, false, "f");
|
|
473
|
+
for (const t of __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_getTabItems).call(this)) {
|
|
474
|
+
const target = getTabTrigger(t);
|
|
475
|
+
const isSelected = t === tab;
|
|
476
|
+
t.selected = isSelected;
|
|
477
|
+
if (target instanceof globalThis.Element)
|
|
478
|
+
target.ariaSelected = isSelected.toString();
|
|
479
|
+
}
|
|
480
|
+
}, _Tabbar_switchTabPanel = function _Tabbar_switchTabPanel(activeTab) {
|
|
481
|
+
for (const tab of __classPrivateFieldGet(this, _Tabbar_tabs, "f")) {
|
|
482
|
+
const panel = helpers.resolvePanelElement(tab);
|
|
483
|
+
if (panel) {
|
|
484
|
+
panel.hidden = tab !== activeTab;
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
}, _Tabbar_getCurrentTab = function _Tabbar_getCurrentTab() {
|
|
488
|
+
return __classPrivateFieldGet(this, _Tabbar_tabs, "f").find((tab) => getTabTrigger(tab).getAttribute('tabindex') === '0');
|
|
489
|
+
}, _Tabbar_setCurrentTab = function _Tabbar_setCurrentTab(tab) {
|
|
490
|
+
for (const t of __classPrivateFieldGet(this, _Tabbar_tabs, "f")) {
|
|
491
|
+
const isCurrent = t === tab;
|
|
492
|
+
helpers.componentOnReady(t, (element) => {
|
|
493
|
+
const target = element ? getTabTrigger(element) : undefined;
|
|
494
|
+
if (target === undefined)
|
|
495
|
+
return;
|
|
496
|
+
const isDisabled = target.getAttribute('aria-disabled') === 'true';
|
|
497
|
+
const shouldActivateTab = isCurrent && !isDisabled;
|
|
498
|
+
const tabindex = shouldActivateTab ? '0' : '-1';
|
|
499
|
+
target.setAttribute('tabindex', tabindex);
|
|
500
|
+
if (shouldActivateTab)
|
|
501
|
+
__classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_activateTab).call(this, t);
|
|
502
|
+
});
|
|
503
|
+
}
|
|
504
|
+
}, _Tabbar_syncInternalsAccessibility = function _Tabbar_syncInternalsAccessibility() {
|
|
505
|
+
this.internals.ariaOrientation = __classPrivateFieldGet(this, _Tabbar_instances, "a", _Tabbar_computedAriaOrientation_get);
|
|
506
|
+
this.internals.ariaLabel = this.tablistDescription ?? '';
|
|
507
|
+
}, _Tabbar_updateTabsCache = function _Tabbar_updateTabsCache() {
|
|
508
|
+
const slot = this.host.shadowRoot?.querySelector('slot');
|
|
509
|
+
__classPrivateFieldSet(this, _Tabbar_tabs, slot
|
|
510
|
+
? [...slot.assignedElements({ flatten: true })].filter((element) => isEnabledTabItem(element))
|
|
511
|
+
: [], "f");
|
|
512
|
+
}, _Tabbar_setTabSettings = function _Tabbar_setTabSettings() {
|
|
513
|
+
const settings = TAB_SETTINGS[`${this.layer}-${this.level}`];
|
|
514
|
+
if (!settings)
|
|
515
|
+
return;
|
|
516
|
+
for (const tab of __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_getTabItems).call(this)) {
|
|
517
|
+
tab.importance = __classPrivateFieldGet(this, _Tabbar_instances, "a", _Tabbar_computedImportance_get) ?? settings.importance;
|
|
518
|
+
tab.size = __classPrivateFieldGet(this, _Tabbar_instances, "a", _Tabbar_computedSize_get) ?? settings.size;
|
|
519
|
+
tab.indicatorPosition =
|
|
520
|
+
this.orientation === 'vertical'
|
|
521
|
+
? 'inline-end'
|
|
522
|
+
: (__classPrivateFieldGet(this, _Tabbar_instances, "a", _Tabbar_computedPlacement_get) ?? settings.indicatorPosition);
|
|
523
|
+
}
|
|
524
|
+
};
|
|
525
|
+
Tabbar.style = tabbarCss;
|
|
526
|
+
|
|
527
|
+
exports.qds_tabbar = Tabbar;
|
|
528
|
+
//# sourceMappingURL=qds-tabbar.entry.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qds-tabbar.entry.cjs.js","sources":["src/components/tabbar/tabbar.css?tag=qds-tabbar&encapsulation=shadow","src/components/tabbar/tabbar.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 display: block;\n}\n\n.qds-vertical,\n.qds-vertical-divider,\n.qds-tabbar,\n.qds-tabs {\n display: flex;\n}\n\n.qds-vertical-divider,\n.qds-tabbar {\n width: inherit;\n}\n\n.qds-arrow-start {\n transform: scaleX(var(--qds-direction-factor, 1)) rotate(180deg);\n}\n\n.qds-align-center {\n align-content: center;\n}\n\n.qds-hidden {\n display: none;\n}\n\n.qds-centered {\n justify-content: center;\n}\n\n.qds-tabs {\n flex: 1;\n margin-block: 0;\n overflow: auto;\n padding-inline-start: 0;\n scroll-behavior: smooth;\n scrollbar-width: none;\n}\n\n.qds-vertical {\n flex-direction: column;\n}\n\n.qds-vertical-divider {\n flex-direction: row;\n}\n\n[data-size='small'] {\n gap: var(--qds-control-small-gap-siblings-related);\n}\n\n[data-size='standard'] {\n gap: var(--qds-control-standard-gap-siblings-related);\n}\n\n[data-size='large'] {\n gap: var(--qds-control-large-gap-siblings-related);\n}\n\n[data-layer='main'] {\n &[data-level='root'] .qds-tabs {\n gap: var(--qds-control-large-gap-siblings-related);\n }\n\n &[data-level='section'] .qds-tabs {\n gap: var(--qds-control-standard-gap-siblings-related);\n }\n\n &[data-level='subsection'] .qds-tabs {\n gap: var(--qds-control-small-gap-siblings-related);\n }\n}\n\n[data-layer='popup'] {\n &[data-level='root'] .qds-tabs {\n gap: var(--qds-control-standard-gap-siblings-related);\n }\n\n &[data-level='section'] .qds-tabs {\n gap: var(--qds-control-small-gap-siblings-related);\n }\n}\n\n:is([data-layer='panel'], [data-layer='accessory'])[data-level='root']\n .qds-tabs {\n gap: var(--qds-control-small-gap-siblings-related);\n}\n\n.qds-sr-only {\n clip: rect(0 0 0 0);\n height: 1px;\n width: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n}\n","// SPDX-FileCopyrightText: © 2024 Schneider Electric\n//\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ComponentInterface, EventEmitter } from '@stencil/core'\nimport {\n AttachInternals,\n Component,\n Element,\n Event,\n h,\n Listen,\n Prop,\n State,\n Watch,\n} from '@stencil/core'\n\nimport {\n componentOnReady,\n HORIZONTAL_MOVE_KEYS,\n invariant,\n resolvePanelElement,\n VERTICAL_MOVE_KEYS,\n} from '../../helpers'\nimport type { IndicatorPosition } from '../icon-tab/icon-tab'\nimport type { Importance, Size } from '../shared'\nimport type { Tab } from '../tab/tab'\n\nexport type Layer = 'accessory' | 'main' | 'panel' | 'popup'\nexport type Level = 'root' | 'section' | 'subsection'\nexport type TabbarSize = Size | undefined\nexport type TabbarImportance = Exclude<Importance, 'emphasized'> | undefined\nexport type Orientation = 'horizontal' | 'vertical'\nexport type Placement = 'bottom' | 'end' | 'start' | 'top'\nexport type Alignment = 'center' | 'start'\n\ntype TabItemElement = HTMLQdsIconTabElement | HTMLQdsTabElement\n\nconst TAB_ITEM_SELECTOR = 'qds-icon-tab, qds-tab'\n\nconst TAB_SETTINGS: Record<\n string,\n Pick<Tab, 'importance' | 'indicatorPosition' | 'size'> | undefined\n> = {\n 'main-root': {\n importance: 'standard',\n size: 'large',\n indicatorPosition: 'block-end',\n },\n 'main-section': {\n importance: 'standard',\n size: 'standard',\n indicatorPosition: 'block-end',\n },\n 'popup-root': {\n importance: 'standard',\n size: 'standard',\n indicatorPosition: 'block-end',\n },\n 'main-subsection': {\n importance: 'subdued',\n size: 'small',\n indicatorPosition: 'block-start',\n },\n 'popup-section': {\n importance: 'subdued',\n size: 'small',\n indicatorPosition: 'inline-start',\n },\n 'panel-root': {\n importance: 'standard',\n size: 'small',\n indicatorPosition: 'block-start',\n },\n 'accessory-root': {\n importance: 'subdued',\n size: 'small',\n indicatorPosition: 'block-end',\n },\n}\n\nconst isTabItem = (item: unknown): item is TabItemElement => {\n if (!(item instanceof HTMLElement)) return false\n\n const tagName = item.tagName.toLowerCase()\n return tagName === 'qds-tab' || tagName === 'qds-icon-tab'\n}\n\nconst isEnabledTabItem = (item: unknown): item is TabItemElement =>\n isTabItem(item) && !item.inert && item.disabled !== true\n\nconst isTabActive = (tab: TabItemElement): boolean => tab.selected\n\nconst getTabTrigger = (tab: TabItemElement): HTMLElement =>\n (tab as TabItemElement & { tab: HTMLElement }).tab\n\nconst getPanelId = (tab: TabItemElement): string => {\n const panelElement = resolvePanelElement(tab)\n return panelElement?.id ?? ''\n}\n\n/**\n * `<qds-tabbar>` is the component that facilitates navigation between the groups\n * of related content within the page.\n * It allows users to switch between groups by clicking on Tabs without going to another page.\n */\n@Component({\n tag: 'qds-tabbar',\n shadow: { delegatesFocus: true },\n styleUrl: 'tabbar.css',\n})\nexport class Tabbar implements ComponentInterface {\n /**\n * The tabbar's layer.\n *\n * @deprecated The property layer is deprecated. Please use `size` property instead.\n * Please do not use `layer` and `size` at the same time.\n */\n @Prop() public layer?: Layer = 'main'\n\n /**\n * The tabbar's level.\n *\n * @deprecated The property level is deprecated. Please use `size` property instead.\n * Please do not use `level` and `size` at the same time.\n */\n @Prop() public level?: Level = 'root'\n\n /**\n * The tabbar's size. This controls the size of the tabs within the tabbar.\n */\n @Prop() public size?: Size = 'standard'\n\n /**\n * The tabbar's orientation.\n *\n * @deprecated Please use the `placement` property instead. Do not use\n * `orientation` and `placement` at the same time.\n */\n @Prop() public orientation?: Orientation = 'horizontal'\n\n /**\n * The tabbar's placement.\n */\n @Prop() public placement?: Placement = 'top'\n\n /**\n * the tablist Description\n */\n @Prop() public readonly tablistDescription?: string\n\n /**\n * Displays a divider line.\n */\n @Prop() public showDivider?: boolean = false\n\n /**\n * The alignment of tabs. Only applicable for horizontal orientation.\n */\n @Prop() public readonly alignment?: Alignment = 'start'\n\n /**\n * The importance of the tabbar. This controls the visual emphasis of the tabs within the tabbar.\n */\n @Prop() public importance?: TabbarImportance\n\n /**\n * Sets the active tab by panel identifier.\n * When set, navigates to the tab with the matching panel.\n */\n @Prop() public active?: string\n\n /**\n * Emitted when the user selects the tab.\n */\n @Event({ eventName: 'qdsTabShow', cancelable: false })\n private readonly showEmitter!: EventEmitter<HTMLElement>\n\n /**\n * Emitted when the user selects the tab.\n */\n @Event({ eventName: 'qdsTabHide', cancelable: false })\n private readonly hideEmitter!: EventEmitter<HTMLElement>\n\n @Element() private readonly host!: HTMLElement\n\n @AttachInternals() private readonly internals!: ElementInternals\n\n @State() private disableEndArrow = false\n\n @State() private disableStartArrow = false\n\n @State() private activeTab?: TabItemElement\n\n @State() private scrollAnnouncement = ''\n\n #tabs: TabItemElement[] = []\n\n #ro: ResizeObserver | undefined\n\n #mutationObserver?: MutationObserver\n\n #tabbar?: HTMLElement\n\n #toggleAnnouncement = false\n\n #scrollStartButton?: HTMLElement\n\n #scrollEndButton?: HTMLElement\n\n #pendingArrowFocus?: 'end' | 'start'\n\n #isInternallySettingActive = false\n\n get #computedImportance(): TabbarImportance {\n return this.importance\n }\n\n get #computedSize(): Size | undefined {\n return this.size ?? undefined\n }\n\n get #computedPlacement(): IndicatorPosition | undefined {\n switch (this.placement) {\n case 'top': {\n return 'block-end'\n }\n case 'end': {\n return 'inline-start'\n }\n case 'bottom': {\n return 'block-start'\n }\n case 'start': {\n return 'inline-end'\n }\n default: {\n return undefined\n }\n }\n }\n\n get #computeDividerVisible(): boolean {\n if (this.layer === 'panel') return false\n if (\n this.layer === 'main' &&\n this.level === 'subsection' &&\n (this.orientation === 'horizontal' || this.#isVerticalPlacement())\n )\n return false\n return this.showDivider === true\n }\n\n get #computedAriaOrientation(): Orientation {\n return this.orientation === 'vertical' || this.#isVerticalPlacement()\n ? 'vertical'\n : 'horizontal'\n }\n\n @Watch('importance')\n protected settingChanged(): void {\n this.#setTabSettings()\n }\n\n @Watch('orientation')\n @Watch('placement')\n @Watch('tablistDescription')\n protected accessibilityChanged(): void {\n this.#syncInternalsAccessibility()\n }\n\n @Listen('resize', { target: 'window' })\n protected windowResize(): void {\n this.#onViewportCrop()\n }\n\n @Watch('active')\n protected activeChanged(): void {\n if (this.#isInternallySettingActive) return\n if (this.active === undefined || this.active === '') return\n\n const tabs = this.#getTabItems()\n const nextTab = tabs.find((tab) => {\n const panelId = getPanelId(tab)\n return panelId === this.active\n })\n\n if (!nextTab || nextTab.disabled === true) return\n\n const previousTab = this.activeTab\n if (previousTab === nextTab && this.active === getPanelId(nextTab)) return\n\n this.activeTab = nextTab\n\n if (previousTab && previousTab !== nextTab) {\n this.hideEmitter.emit(previousTab)\n }\n if (previousTab !== nextTab) {\n this.showEmitter.emit(nextTab)\n }\n\n // Update tab states without triggering mutation observer\n this.#isInternallySettingActive = true\n for (const t of tabs) {\n const target = getTabTrigger(t)\n const isSelected = t === nextTab\n t.selected = isSelected\n if (target instanceof globalThis.Element)\n target.ariaSelected = isSelected.toString()\n }\n this.#isInternallySettingActive = false\n\n this.#switchTabPanel(nextTab)\n }\n\n public componentWillLoad(): void {\n this.settingChanged()\n this.internals.role = 'tablist'\n this.#syncInternalsAccessibility()\n const tabs = this.#getTabItems()\n const preselectedTab = tabs.find((tab) => isTabActive(tab))\n if (preselectedTab) this.#setActiveTab(preselectedTab)\n else if (tabs.length > 0) this.#setActiveTab(tabs[0])\n }\n\n public componentDidRender(): void {\n if (this.activeTab) this.#switchTabPanel(this.activeTab)\n if (this.#pendingArrowFocus === 'start' && this.disableEndArrow) {\n this.#pendingArrowFocus = undefined\n this.#scrollStartButton?.focus()\n } else if (this.#pendingArrowFocus === 'end' && this.disableStartArrow) {\n this.#pendingArrowFocus = undefined\n this.#scrollEndButton?.focus()\n }\n this.settingChanged()\n }\n\n public componentDidLoad(): void {\n invariant(this.#tabbar)\n\n this.#ro = new ResizeObserver(this.#onScroll)\n this.#ro.observe(this.#tabbar)\n\n this.#mutationObserver = new MutationObserver((mutations) => {\n this.#handleTabMutation(mutations)\n })\n this.#mutationObserver.observe(this.host, {\n attributes: true,\n attributeFilter: ['active'],\n childList: true,\n subtree: true,\n })\n }\n\n public disconnectedCallback(): void {\n this.#ro?.disconnect()\n this.#mutationObserver?.disconnect()\n }\n\n public render() {\n return (\n <div\n class={{\n 'qds-vertical-divider':\n this.orientation === 'vertical' || this.#isVerticalPlacement(),\n }}\n data-layer={this.layer}\n data-level={this.level}\n data-importance={this.#computedImportance}\n >\n <span class=\"qds-sr-only\" aria-live=\"polite\">\n {this.scrollAnnouncement}\n </span>\n {this.#computeDividerVisible && this.#isEndOrBottomPlacement() && (\n <qds-divider\n vertical={\n this.orientation === 'vertical' || this.#isVerticalPlacement()\n }\n />\n )}\n <div class=\"qds-tabbar\">\n <div\n class={{\n 'qds-align-center': true,\n 'qds-hidden':\n (this.disableEndArrow && this.disableStartArrow) ||\n this.orientation === 'vertical' ||\n this.#isVerticalPlacement(),\n }}\n >\n <qds-icon-button\n aria-label=\"show previous tab\"\n importance=\"subdued\"\n iconName=\"next\"\n iconLibrary=\"core\"\n class=\"qds-arrow-start\"\n onClick={this.#scrollToStart}\n disabled={this.disableStartArrow}\n ref={this.#scrollStartButtonRef}\n />\n </div>\n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions */}\n <div\n class={{\n 'qds-tabs': true,\n 'qds-vertical':\n this.orientation === 'vertical' || this.#isVerticalPlacement(),\n 'qds-centered':\n this.alignment === 'center' &&\n (this.orientation === 'horizontal' ||\n this.#isHorizontalPlacement()) &&\n this.disableEndArrow &&\n this.disableStartArrow,\n }}\n ref={(element) => {\n this.#tabbar = element\n }}\n onClick={this.#onClick}\n onKeyDown={this.#onKeyDown}\n onMouseDown={this.#onMouseDown}\n onScroll={this.#onScroll}\n >\n <slot onSlotchange={this.#onSlotchange} />\n </div>\n <div\n class={{\n 'qds-align-center': true,\n 'qds-hidden':\n (this.disableEndArrow && this.disableStartArrow) ||\n this.orientation === 'vertical' ||\n this.#isVerticalPlacement(),\n }}\n >\n <qds-icon-button\n aria-label=\"show next tab\"\n iconName=\"next\"\n iconLibrary=\"core\"\n importance=\"subdued\"\n onClick={this.#scrollToEnd}\n disabled={this.disableEndArrow}\n ref={this.#scrollEndButtonRef}\n />\n </div>\n </div>\n {this.#computeDividerVisible && !this.#isEndOrBottomPlacement() && (\n <qds-divider\n vertical={\n this.orientation === 'vertical' || this.#isVerticalPlacement()\n }\n />\n )}\n </div>\n )\n }\n\n #getTabItems(): TabItemElement[] {\n return [\n ...this.host.querySelectorAll<HTMLElement>(TAB_ITEM_SELECTOR),\n ].filter((element): element is TabItemElement => isTabItem(element))\n }\n\n #announceScroll(direction: 'next' | 'previous'): void {\n const text =\n direction === 'next' ? 'Next tabs showed' : 'Previous tabs showed'\n this.#toggleAnnouncement = !this.#toggleAnnouncement\n this.scrollAnnouncement = text + (this.#toggleAnnouncement ? '' : '.')\n }\n\n readonly #scrollToStart = (): void => {\n invariant(this.#tabbar)\n\n const isRTL = globalThis.getComputedStyle(this.host).direction === 'rtl'\n this.#pendingArrowFocus = 'end'\n this.#tabbar.scroll({\n left: isRTL\n ? this.#tabbar.scrollLeft + this.#tabbar.clientWidth\n : this.#tabbar.scrollLeft - this.#tabbar.clientWidth,\n })\n this.#announceScroll('previous')\n }\n\n readonly #scrollToEnd = (): void => {\n invariant(this.#tabbar)\n\n const isRTL = globalThis.getComputedStyle(this.host).direction === 'rtl'\n this.#pendingArrowFocus = 'start'\n this.#tabbar.scroll({\n left: isRTL\n ? this.#tabbar.scrollLeft - this.#tabbar.clientWidth\n : this.#tabbar.scrollLeft + this.#tabbar.clientWidth,\n })\n this.#announceScroll('next')\n }\n\n #setActiveTab(tab: TabItemElement): void {\n this.activeTab = tab\n const panelId = getPanelId(tab)\n\n this.#isInternallySettingActive = true\n this.active = panelId\n for (const t of this.#getTabItems()) {\n const target = getTabTrigger(t)\n const isSelected = t === tab\n t.selected = isSelected\n if (target instanceof globalThis.Element)\n target.ariaSelected = isSelected.toString()\n }\n this.#isInternallySettingActive = false\n }\n\n #handleTabMutation(mutations: MutationRecord[]): void {\n if (this.#isInternallySettingActive) return\n\n const activeTab = mutations\n .map((m) => m.target)\n .find(\n (target): target is TabItemElement =>\n target instanceof HTMLElement && isTabItem(target) && target.selected,\n )\n\n if (activeTab) {\n this.#setActiveTab(activeTab)\n }\n }\n\n #activateTab(tab: TabItemElement): void {\n const previousTab = this.activeTab\n if (previousTab === tab) return\n\n this.activeTab = tab\n const panelId = getPanelId(tab)\n\n if (previousTab) {\n this.hideEmitter.emit(previousTab)\n }\n this.showEmitter.emit(tab)\n this.#setCurrentTab(tab)\n this.#switchTabPanel(tab)\n\n // Set active property without triggering watcher events again\n this.#isInternallySettingActive = true\n this.active = panelId\n this.#isInternallySettingActive = false\n\n for (const t of this.#getTabItems()) {\n const target = getTabTrigger(t)\n const isSelected = t === tab\n t.selected = isSelected\n if (target instanceof globalThis.Element)\n target.ariaSelected = isSelected.toString()\n }\n }\n\n #switchTabPanel(activeTab: TabItemElement): void {\n for (const tab of this.#tabs) {\n const panel = resolvePanelElement(tab)\n if (panel) {\n panel.hidden = tab !== activeTab\n }\n }\n }\n\n #getCurrentTab(): TabItemElement | undefined {\n return this.#tabs.find(\n (tab) => getTabTrigger(tab).getAttribute('tabindex') === '0',\n )\n }\n\n #setCurrentTab(tab: TabItemElement): void {\n for (const t of this.#tabs) {\n const isCurrent = t === tab\n\n componentOnReady(t, (element: TabItemElement | undefined) => {\n const target = element ? getTabTrigger(element) : undefined\n if (target === undefined) return\n const isDisabled = target.getAttribute('aria-disabled') === 'true'\n const shouldActivateTab = isCurrent && !isDisabled\n const tabindex = shouldActivateTab ? '0' : '-1'\n target.setAttribute('tabindex', tabindex)\n if (shouldActivateTab) this.#activateTab(t)\n })\n }\n }\n\n readonly #isVerticalPlacement = (): boolean =>\n this.placement === 'start' || this.placement === 'end'\n\n readonly #isHorizontalPlacement = (): boolean =>\n this.placement === 'top' || this.placement === 'bottom'\n\n readonly #isEndOrBottomPlacement = (): boolean =>\n this.placement === 'end' || this.placement === 'bottom'\n\n readonly #onClick = (event: MouseEvent): void => {\n const { target } = event\n if (!(target instanceof HTMLElement)) return\n const tab = target.closest(TAB_ITEM_SELECTOR)\n if (!isEnabledTabItem(tab)) return\n\n this.#activateTab(tab)\n }\n\n readonly #onKeyDown = (event: KeyboardEvent): void => {\n const isVertical =\n this.orientation === 'vertical' || this.#isVerticalPlacement()\n const MOVE_SELECTION_KEYS = isVertical\n ? VERTICAL_MOVE_KEYS\n : HORIZONTAL_MOVE_KEYS\n if (!MOVE_SELECTION_KEYS.has(event.key)) return\n\n const tabs = this.#tabs\n if (tabs.length === 0) return\n\n event.preventDefault()\n event.stopPropagation()\n\n const activeTab = this.#getCurrentTab()\n let index = activeTab ? tabs.indexOf(activeTab) : 0\n\n const isRTL = globalThis.getComputedStyle(this.host).direction === 'rtl'\n\n let nextTab: TabItemElement | undefined\n do {\n switch (event.key) {\n case 'ArrowLeft':\n case 'ArrowUp': {\n index = (isRTL ? index < tabs.length - 1 : index > 0)\n ? index - (isRTL ? -1 : 1)\n : isRTL\n ? 0\n : tabs.length - 1\n break\n }\n case 'ArrowRight':\n case 'ArrowDown': {\n index = (isRTL ? index > 0 : index < tabs.length - 1)\n ? index + (isRTL ? -1 : 1)\n : isRTL\n ? tabs.length - 1\n : 0\n break\n }\n case 'Home': {\n index = isRTL ? tabs.length - 1 : 0\n break\n }\n case 'End': {\n index = isRTL ? 0 : tabs.length - 1\n break\n }\n default:\n }\n nextTab = tabs[index]\n } while (nextTab.disabled === true)\n\n this.#setCurrentTab(nextTab)\n\n const target = getTabTrigger(nextTab)\n target.focus({ preventScroll: true })\n if (!isVertical) target.scrollIntoView()\n this.#activateTab(nextTab)\n }\n\n readonly #onMouseDown = (event: MouseEvent): void => {\n const { target } = event\n if (!(target instanceof HTMLElement)) return\n\n const tab = target.closest(TAB_ITEM_SELECTOR)\n if (isEnabledTabItem(tab)) this.#setCurrentTab(tab)\n }\n\n readonly #onScroll = (): void => {\n if (!this.#tabbar) return\n\n const { clientWidth, scrollWidth, scrollLeft } = this.#tabbar\n\n const isRTL = globalThis.getComputedStyle(this.host).direction === 'rtl'\n this.disableStartArrow = scrollLeft === 0\n this.disableEndArrow = isRTL\n ? scrollWidth + scrollLeft <= clientWidth\n : scrollWidth - clientWidth - scrollLeft <= 1\n }\n\n readonly #onViewportCrop = (): void => {\n if (!this.#tabbar) return\n\n const { scrollWidth, clientWidth } = this.#tabbar\n\n if (scrollWidth > clientWidth) {\n this.#onScroll()\n }\n }\n\n #syncInternalsAccessibility(): void {\n this.internals.ariaOrientation = this.#computedAriaOrientation\n this.internals.ariaLabel = this.tablistDescription ?? ''\n }\n\n #updateTabsCache(): void {\n const slot = this.host.shadowRoot?.querySelector('slot')\n this.#tabs = slot\n ? [...slot.assignedElements({ flatten: true })].filter(\n (element): element is TabItemElement => isEnabledTabItem(element),\n )\n : []\n }\n\n #setTabSettings(): void {\n const settings = TAB_SETTINGS[`${this.layer}-${this.level}`]\n if (!settings) return\n\n for (const tab of this.#getTabItems()) {\n tab.importance = this.#computedImportance ?? settings.importance\n tab.size = this.#computedSize ?? settings.size\n\n tab.indicatorPosition =\n this.orientation === 'vertical'\n ? 'inline-end'\n : (this.#computedPlacement ?? settings.indicatorPosition)\n }\n }\n\n readonly #onSlotchange = (): void => {\n this.#updateTabsCache()\n\n if (this.#tabs.length > 0) this.#setCurrentTab(this.#tabs[0])\n\n this.#onViewportCrop()\n }\n\n readonly #scrollEndButtonRef = (button?: HTMLElement): void => {\n this.#scrollEndButton = button\n }\n\n readonly #scrollStartButtonRef = (button?: HTMLElement): void => {\n this.#scrollStartButton = button\n }\n}\n"],"names":["resolvePanelElement","invariant","VERTICAL_MOVE_KEYS","HORIZONTAL_MOVE_KEYS","h","componentOnReady"],"mappings":"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"}
|