q2-tecton-elements 1.71.4 → 1.73.0
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/dist/bundle-report.json +32564 -26687
- package/dist/cjs/{charting-ClN1ldqv.js → charting-CdNTrVBe.js} +80 -0
- package/dist/cjs/click-elsewhere_3.cjs.entry.js +85 -20
- package/dist/cjs/{dataSample-BYR-wrOn.js → dataSample-B4blhlH4.js} +1 -1
- package/dist/cjs/date-picker-helpers-UYvPn98R.js +257 -0
- package/dist/cjs/{index-SpDCZABA.js → index-BqyWHpNu.js} +2 -2
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{q2-action-group_2.cjs.entry.js → q2-action-group.cjs.entry.js} +1 -89
- package/dist/cjs/q2-action-sheet.cjs.entry.js +98 -18
- package/dist/cjs/q2-avatar.cjs.entry.js +1 -1
- package/dist/cjs/q2-badge_2.cjs.entry.js +113 -12
- package/dist/cjs/q2-btn_2.cjs.entry.js +2 -2
- package/dist/cjs/q2-calendar.cjs.entry.js +14 -7
- package/dist/cjs/q2-card-image.cjs.entry.js +4 -4
- package/dist/cjs/q2-card.cjs.entry.js +1 -1
- package/dist/cjs/q2-carousel-pane.cjs.entry.js +3 -3
- package/dist/cjs/q2-carousel.cjs.entry.js +20 -6
- package/dist/cjs/q2-chart-area.cjs.entry.js +38 -7
- package/dist/cjs/q2-chart-bar.cjs.entry.js +39 -8
- package/dist/cjs/q2-chart-donut.cjs.entry.js +31 -13
- package/dist/cjs/q2-checkbox-group.cjs.entry.js +3 -3
- package/dist/cjs/q2-checkbox_2.cjs.entry.js +9 -6
- package/dist/cjs/q2-context.cjs.entry.js +6 -5
- package/dist/cjs/q2-currency.cjs.entry.js +1 -1
- package/dist/cjs/q2-data-table.cjs.entry.js +7 -7
- package/dist/cjs/q2-date-calendar.cjs.entry.js +452 -0
- package/dist/cjs/q2-date-picker_2.cjs.entry.js +968 -0
- package/dist/cjs/q2-detail.cjs.entry.js +2 -2
- package/dist/cjs/q2-dropdown-item.cjs.entry.js +1 -1
- package/dist/cjs/q2-dropdown.cjs.entry.js +4 -4
- package/dist/cjs/q2-editable-field.cjs.entry.js +51 -37
- package/dist/cjs/q2-example.cjs.entry.js +1 -1
- package/dist/cjs/q2-file-picker.cjs.entry.js +60 -4
- package/dist/cjs/q2-form.cjs.entry.js +1 -1
- package/dist/cjs/q2-formatted-text.cjs.entry.js +1 -1
- package/dist/cjs/q2-icon.cjs.entry.js +1 -1
- package/dist/cjs/q2-item.cjs.entry.js +21 -3
- package/dist/cjs/q2-legend.cjs.entry.js +1 -1
- package/dist/cjs/q2-link_2.cjs.entry.js +2 -2
- package/dist/cjs/q2-loc.cjs.entry.js +1 -1
- package/dist/cjs/q2-message.cjs.entry.js +3 -3
- package/dist/cjs/q2-meter.cjs.entry.js +2 -2
- package/dist/cjs/q2-modal.cjs.entry.js +59 -17
- package/dist/cjs/q2-month-picker.cjs.entry.js +3 -3
- package/dist/cjs/q2-mutation-observer.cjs.entry.js +1 -1
- package/dist/cjs/q2-option.cjs.entry.js +1 -1
- package/dist/cjs/q2-otp.cjs.entry.js +5 -5
- package/dist/cjs/q2-pagination.cjs.entry.js +4 -4
- package/dist/cjs/q2-pill.cjs.entry.js +8 -5
- package/dist/cjs/q2-radio-group.cjs.entry.js +22 -4
- package/dist/cjs/q2-radio.cjs.entry.js +3 -3
- package/dist/cjs/q2-relative-time.cjs.entry.js +3 -3
- package/dist/cjs/q2-resize-observer.cjs.entry.js +92 -0
- package/dist/cjs/q2-search.cjs.entry.js +4 -4
- package/dist/cjs/q2-section.cjs.entry.js +7 -7
- package/dist/cjs/q2-select.cjs.entry.js +41 -21
- package/dist/cjs/q2-stepper-pane.cjs.entry.js +2 -2
- package/dist/cjs/q2-stepper-vertical.cjs.entry.js +2 -2
- package/dist/cjs/q2-stepper.cjs.entry.js +2 -2
- package/dist/cjs/q2-surface.cjs.entry.js +1 -1
- package/dist/cjs/q2-tab-container.cjs.entry.js +2 -2
- package/dist/cjs/q2-tab-pane.cjs.entry.js +1 -1
- package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
- package/dist/cjs/q2-textarea.cjs.entry.js +2 -2
- package/dist/cjs/q2-toast.cjs.entry.js +1 -1
- package/dist/cjs/q2-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/{sectorHelper-9TWL-3dw.js → sectorHelper-CxhDl5ql.js} +1 -1
- package/dist/cjs/tecton-tab-pane.cjs.entry.js +5 -3
- package/dist/collection/collection-manifest.json +2 -0
- package/dist/collection/components/q2-action-sheet/q2-action-sheet.css +52 -0
- package/dist/collection/components/q2-action-sheet/q2-action-sheet.js +98 -18
- package/dist/collection/components/q2-action-sheet/test/q2-action-sheet-test.vr.js +124 -0
- package/dist/collection/components/q2-avatar/q2-avatar.js +1 -1
- package/dist/collection/components/q2-btn/q2-btn.css +152 -146
- package/dist/collection/components/q2-btn/q2-btn.js +10 -4
- package/dist/collection/components/q2-btn/test/q2-btn-test.vr.js +229 -20
- package/dist/collection/components/q2-calendar/q2-calendar.css +3 -0
- package/dist/collection/components/q2-calendar/q2-calendar.js +20 -7
- package/dist/collection/components/q2-calendar/q2-month-picker.js +2 -2
- package/dist/collection/components/q2-calendar/test/q2-calendar-test.vr.js +26 -15
- package/dist/collection/components/q2-card/test/q2-card-test.vr.js +4 -0
- package/dist/collection/components/q2-card-image/q2-card-image.css +89 -134
- package/dist/collection/components/q2-card-image/q2-card-image.js +4 -4
- package/dist/collection/components/q2-card-image/test/q2-card-image-test.vr.js +4 -0
- package/dist/collection/components/q2-carousel/q2-carousel.js +19 -5
- package/dist/collection/components/q2-carousel/test/q2-carousel-test.vr.js +45 -0
- package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js +2 -2
- package/dist/collection/components/q2-chart-area/q2-chart-area.css +11 -0
- package/dist/collection/components/q2-chart-area/q2-chart-area.js +53 -7
- package/dist/collection/components/q2-chart-area/test/q2-chart-area-test.vr.js +14 -0
- package/dist/collection/components/q2-chart-bar/q2-chart-bar.css +11 -0
- package/dist/collection/components/q2-chart-bar/q2-chart-bar.js +50 -4
- package/dist/collection/components/q2-chart-bar/test/q2-chart-bar-test.vr.js +14 -0
- package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +30 -10
- package/dist/collection/components/q2-chart-donut/test/q2-chart-donut-test.vr.js +25 -0
- package/dist/collection/components/q2-checkbox/q2-checkbox.css +2 -2
- package/dist/collection/components/q2-checkbox/q2-checkbox.js +6 -3
- package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.css +2 -0
- package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js +6 -3
- package/dist/collection/components/q2-context/q2-context.css +5 -0
- package/dist/collection/components/q2-context/q2-context.js +4 -3
- package/dist/collection/components/q2-context/test/q2-context-test.vr.js +14 -4
- package/dist/collection/components/q2-currency/q2-currency.js +1 -1
- package/dist/collection/components/q2-data-table/q2-data-table.css +6 -0
- package/dist/collection/components/q2-data-table/q2-data-table.js +5 -5
- package/dist/collection/components/q2-data-table/test/q2-data-table-test.vr.js +52 -0
- package/dist/collection/components/q2-date-calendar/q2-date-calendar.css +393 -0
- package/dist/collection/components/q2-date-calendar/q2-date-calendar.js +1022 -0
- package/dist/collection/components/q2-date-calendar/test/q2-date-calendar-test.vr.js +111 -0
- package/dist/collection/components/q2-date-picker/q2-date-picker.css +138 -0
- package/dist/collection/components/q2-date-picker/q2-date-picker.js +2010 -0
- package/dist/collection/components/q2-date-picker/test/q2-date-picker-test.vr.js +179 -0
- package/dist/collection/components/q2-detail/q2-detail.js +1 -1
- package/dist/collection/components/q2-dropdown/q2-dropdown.css +2 -0
- package/dist/collection/components/q2-dropdown/q2-dropdown.js +5 -5
- package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.vr.js +30 -0
- package/dist/collection/components/q2-editable-field/q2-editable-field.css +2 -0
- package/dist/collection/components/q2-editable-field/q2-editable-field.js +59 -45
- package/dist/collection/components/q2-example/q2-example.js +1 -1
- package/dist/collection/components/q2-file-picker/q2-file-picker.css +27 -0
- package/dist/collection/components/q2-file-picker/q2-file-picker.js +98 -2
- package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.vr.js +22 -0
- package/dist/collection/components/q2-form/q2-form.js +1 -1
- package/dist/collection/components/q2-formatted-text/q2-formatted-text.js +1 -1
- package/dist/collection/components/q2-input/q2-input.css +67 -1
- package/dist/collection/components/q2-input/q2-input.js +160 -15
- package/dist/collection/components/q2-input/test/q2-input-test.vr.js +35 -0
- package/dist/collection/components/q2-item/q2-item.css +3 -1
- package/dist/collection/components/q2-item/q2-item.js +19 -1
- package/dist/collection/components/q2-item/test/q2-item-test.vr.js +8 -2
- package/dist/collection/components/q2-legend/q2-legend.js +1 -1
- package/dist/collection/components/q2-list/q2-list.js +1 -1
- package/dist/collection/components/q2-message/q2-message.css +5 -5
- package/dist/collection/components/q2-message/q2-message.js +1 -1
- package/dist/collection/components/q2-meter/q2-meter.js +1 -1
- package/dist/collection/components/q2-modal/q2-modal.css +40 -3
- package/dist/collection/components/q2-modal/q2-modal.js +100 -16
- package/dist/collection/components/q2-modal/test/q2-modal-test.vr.js +32 -7
- package/dist/collection/components/q2-mutation-observer/q2-mutation-observer.js +1 -1
- package/dist/collection/components/q2-optgroup/q2-optgroup.js +1 -1
- package/dist/collection/components/q2-option-list/q2-option-list.js +33 -4
- package/dist/collection/components/q2-otp/q2-otp.js +4 -4
- package/dist/collection/components/q2-pagination/q2-pagination.js +3 -3
- package/dist/collection/components/q2-pill/q2-pill.css +2 -2
- package/dist/collection/components/q2-pill/q2-pill.js +6 -3
- package/dist/collection/components/q2-popover/q2-popover.css +4 -2
- package/dist/collection/components/q2-popover/q2-popover.js +50 -14
- package/dist/collection/components/q2-radio/q2-radio.css +158 -104
- package/dist/collection/components/q2-radio/q2-radio.js +5 -2
- package/dist/collection/components/q2-radio/test/q2-radio-test.vr.js +25 -2
- package/dist/collection/components/q2-radio-group/q2-radio-group.css +39 -2
- package/dist/collection/components/q2-radio-group/q2-radio-group.js +73 -4
- package/dist/collection/components/q2-radio-group/test/q2-radio-group-test.vr.js +43 -1
- package/dist/collection/components/q2-relative-time/q2-relative-time.js +2 -2
- package/dist/collection/components/q2-resize-observer/q2-resize-observer.js +1 -1
- package/dist/collection/components/q2-search/q2-search.css +2 -0
- package/dist/collection/components/q2-search/q2-search.js +6 -3
- package/dist/collection/components/q2-section/q2-section.css +2 -0
- package/dist/collection/components/q2-section/q2-section.js +6 -6
- package/dist/collection/components/q2-select/q2-select.css +3 -0
- package/dist/collection/components/q2-select/q2-select.js +48 -22
- package/dist/collection/components/q2-select/test/q2-select-test.vr.js +13 -0
- package/dist/collection/components/q2-stepper/q2-stepper.js +1 -1
- package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js +1 -1
- package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +1 -1
- package/dist/collection/components/q2-surface/q2-surface.js +1 -1
- package/dist/collection/components/q2-surface/test/q2-surface-test.vr.js +2 -2
- package/dist/collection/components/q2-tab-container/q2-tab-container.js +1 -1
- package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
- package/dist/collection/components/q2-tag/q2-tag.js +6 -3
- package/dist/collection/components/q2-textarea/q2-textarea.js +6 -3
- package/dist/collection/components/q2-tooltip/test/q2-tooltip-test.vr.js +1 -1
- package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +5 -3
- package/dist/collection/utils/chart-keyboard.js +76 -0
- package/dist/collection/utils/date-picker/date-picker-helpers.js +239 -0
- package/dist/collection/utils/date-picker/date-picker-types.js +1 -0
- package/dist/collection/utils/index.js +2 -2
- package/dist/collection/utils/test/vr-helpers.js +16 -2
- package/dist/components/charting.js +1603 -1532
- package/dist/components/dataSample.js +7 -7
- package/dist/components/index.js +57 -53
- package/dist/components/index2.js +3 -3
- package/dist/components/q2-action-sheet.js +224 -103
- package/dist/components/q2-avatar2.js +8 -8
- package/dist/components/q2-btn2.js +2 -2
- package/dist/components/q2-calendar.js +15 -10
- package/dist/components/q2-card-image.js +24 -24
- package/dist/components/q2-carousel-pane2.js +3 -3
- package/dist/components/q2-carousel.js +37 -24
- package/dist/components/q2-chart-area.js +415 -369
- package/dist/components/q2-chart-bar.js +193 -148
- package/dist/components/q2-chart-donut.js +185 -158
- package/dist/components/q2-checkbox-group.js +12 -12
- package/dist/components/q2-checkbox2.js +12 -12
- package/dist/components/q2-context.js +30 -29
- package/dist/components/q2-currency.js +9 -9
- package/dist/components/q2-data-table.js +111 -111
- package/dist/components/q2-date-calendar.d.ts +11 -0
- package/dist/components/q2-date-calendar.js +5 -0
- package/dist/components/q2-date-calendar2.js +678 -0
- package/dist/components/q2-date-picker.d.ts +11 -0
- package/dist/components/q2-date-picker.js +5 -0
- package/dist/components/q2-date-picker2.js +875 -0
- package/dist/components/q2-detail.js +3 -3
- package/dist/components/q2-dropdown.js +13 -13
- package/dist/components/q2-editable-field.js +45 -36
- package/dist/components/q2-example.js +11 -11
- package/dist/components/q2-file-picker.js +71 -11
- package/dist/components/q2-form.js +6 -6
- package/dist/components/q2-formatted-text.js +2 -2
- package/dist/components/q2-input2.js +268 -163
- package/dist/components/q2-item2.js +33 -23
- package/dist/components/q2-legend2.js +7 -7
- package/dist/components/q2-list2.js +6 -6
- package/dist/components/q2-message2.js +29 -29
- package/dist/components/q2-meter.js +7 -7
- package/dist/components/q2-modal.js +94 -76
- package/dist/components/q2-month-picker.js +17 -17
- package/dist/components/q2-mutation-observer.js +1 -1
- package/dist/components/q2-optgroup2.js +7 -7
- package/dist/components/q2-option-list2.js +52 -32
- package/dist/components/q2-otp.js +8 -8
- package/dist/components/q2-pagination.js +67 -67
- package/dist/components/q2-pill.js +17 -15
- package/dist/components/q2-popover2.js +77 -53
- package/dist/components/q2-radio-group.js +70 -40
- package/dist/components/q2-radio.js +40 -55
- package/dist/components/q2-relative-time.js +5 -5
- package/dist/components/q2-resize-observer2.js +23 -23
- package/dist/components/q2-search.js +6 -6
- package/dist/components/q2-section.js +33 -33
- package/dist/components/q2-select2.js +47 -40
- package/dist/components/q2-stepper-pane.js +17 -13
- package/dist/components/q2-stepper-vertical.js +4 -4
- package/dist/components/q2-stepper.js +57 -57
- package/dist/components/q2-surface.js +3 -3
- package/dist/components/q2-tab-container.js +18 -18
- package/dist/components/q2-tab-pane.js +2 -2
- package/dist/components/q2-tag2.js +8 -6
- package/dist/components/q2-textarea.js +3 -3
- package/dist/components/sectorHelper.js +78 -78
- package/dist/components/tecton-tab-pane.js +12 -11
- package/dist/esm/{charting-DOZct-UB.js → charting-DFXJklqs.js} +79 -1
- package/dist/esm/click-elsewhere_3.entry.js +85 -20
- package/dist/esm/{dataSample-Dm1zpQNi.js → dataSample-CP_VKNqt.js} +1 -1
- package/dist/esm/date-picker-helpers-D8QnN_AS.js +242 -0
- package/dist/esm/{index-Cps4jSQM.js → index-CP8pXJ-l.js} +2 -2
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{q2-action-group_2.entry.js → q2-action-group.entry.js} +3 -90
- package/dist/esm/q2-action-sheet.entry.js +99 -19
- package/dist/esm/q2-avatar.entry.js +1 -1
- package/dist/esm/q2-badge_2.entry.js +113 -12
- package/dist/esm/q2-btn_2.entry.js +2 -2
- package/dist/esm/q2-calendar.entry.js +14 -7
- package/dist/esm/q2-card-image.entry.js +4 -4
- package/dist/esm/q2-card.entry.js +1 -1
- package/dist/esm/q2-carousel-pane.entry.js +3 -3
- package/dist/esm/q2-carousel.entry.js +20 -6
- package/dist/esm/q2-chart-area.entry.js +38 -7
- package/dist/esm/q2-chart-bar.entry.js +39 -8
- package/dist/esm/q2-chart-donut.entry.js +31 -13
- package/dist/esm/q2-checkbox-group.entry.js +3 -3
- package/dist/esm/q2-checkbox_2.entry.js +9 -6
- package/dist/esm/q2-context.entry.js +6 -5
- package/dist/esm/q2-currency.entry.js +1 -1
- package/dist/esm/q2-data-table.entry.js +7 -7
- package/dist/esm/q2-date-calendar.entry.js +450 -0
- package/dist/esm/q2-date-picker_2.entry.js +965 -0
- package/dist/esm/q2-detail.entry.js +2 -2
- package/dist/esm/q2-dropdown-item.entry.js +1 -1
- package/dist/esm/q2-dropdown.entry.js +4 -4
- package/dist/esm/q2-editable-field.entry.js +51 -37
- package/dist/esm/q2-example.entry.js +1 -1
- package/dist/esm/q2-file-picker.entry.js +60 -4
- package/dist/esm/q2-form.entry.js +1 -1
- package/dist/esm/q2-formatted-text.entry.js +1 -1
- package/dist/esm/q2-icon.entry.js +1 -1
- package/dist/esm/q2-item.entry.js +21 -3
- package/dist/esm/q2-legend.entry.js +1 -1
- package/dist/esm/q2-link_2.entry.js +2 -2
- package/dist/esm/q2-loc.entry.js +1 -1
- package/dist/esm/q2-message.entry.js +3 -3
- package/dist/esm/q2-meter.entry.js +2 -2
- package/dist/esm/q2-modal.entry.js +59 -17
- package/dist/esm/q2-month-picker.entry.js +3 -3
- package/dist/esm/q2-mutation-observer.entry.js +1 -1
- package/dist/esm/q2-option.entry.js +1 -1
- package/dist/esm/q2-otp.entry.js +5 -5
- package/dist/esm/q2-pagination.entry.js +4 -4
- package/dist/esm/q2-pill.entry.js +8 -5
- package/dist/esm/q2-radio-group.entry.js +22 -4
- package/dist/esm/q2-radio.entry.js +3 -3
- package/dist/esm/q2-relative-time.entry.js +3 -3
- package/dist/esm/q2-resize-observer.entry.js +90 -0
- package/dist/esm/q2-search.entry.js +4 -4
- package/dist/esm/q2-section.entry.js +7 -7
- package/dist/esm/q2-select.entry.js +41 -21
- package/dist/esm/q2-stepper-pane.entry.js +2 -2
- package/dist/esm/q2-stepper-vertical.entry.js +2 -2
- package/dist/esm/q2-stepper.entry.js +2 -2
- package/dist/esm/q2-surface.entry.js +1 -1
- package/dist/esm/q2-tab-container.entry.js +2 -2
- package/dist/esm/q2-tab-pane.entry.js +1 -1
- package/dist/esm/q2-tecton-elements.js +1 -1
- package/dist/esm/q2-textarea.entry.js +2 -2
- package/dist/esm/q2-toast.entry.js +1 -1
- package/dist/esm/q2-tooltip.entry.js +1 -1
- package/dist/esm/{sectorHelper--RMGWGAy.js → sectorHelper-DBtkWtpl.js} +1 -1
- package/dist/esm/tecton-tab-pane.entry.js +5 -3
- package/dist/q2-tecton-elements/{charting-DOZct-UB.js → charting-DFXJklqs.js} +1625 -1554
- package/dist/q2-tecton-elements/click-elsewhere_3.entry.js +98 -54
- package/dist/q2-tecton-elements/{dataSample-Dm1zpQNi.js → dataSample-CP_VKNqt.js} +33 -33
- package/dist/q2-tecton-elements/date-picker-helpers-D8QnN_AS.js +153 -0
- package/dist/q2-tecton-elements/{index-Cps4jSQM.js → index-CP8pXJ-l.js} +2 -2
- package/dist/q2-tecton-elements/{q2-action-group_2.entry.js → q2-action-group.entry.js} +35 -113
- package/dist/q2-tecton-elements/q2-action-sheet.entry.js +169 -84
- package/dist/q2-tecton-elements/q2-avatar.entry.js +8 -8
- package/dist/q2-tecton-elements/q2-badge_2.entry.js +240 -140
- package/dist/q2-tecton-elements/q2-btn_2.entry.js +23 -23
- package/dist/q2-tecton-elements/q2-calendar.entry.js +18 -13
- package/dist/q2-tecton-elements/q2-card-image.entry.js +9 -9
- package/dist/q2-tecton-elements/q2-card.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-carousel-pane.entry.js +4 -4
- package/dist/q2-tecton-elements/q2-carousel.entry.js +24 -11
- package/dist/q2-tecton-elements/q2-chart-area.entry.js +190 -144
- package/dist/q2-tecton-elements/q2-chart-bar.entry.js +382 -338
- package/dist/q2-tecton-elements/q2-chart-donut.entry.js +186 -160
- package/dist/q2-tecton-elements/q2-checkbox-group.entry.js +8 -8
- package/dist/q2-tecton-elements/q2-checkbox_2.entry.js +21 -19
- package/dist/q2-tecton-elements/q2-context.entry.js +18 -17
- package/dist/q2-tecton-elements/q2-currency.entry.js +9 -9
- package/dist/q2-tecton-elements/q2-data-table.entry.js +38 -38
- package/dist/q2-tecton-elements/q2-date-calendar.entry.js +438 -0
- package/dist/q2-tecton-elements/q2-date-picker_2.entry.js +792 -0
- package/dist/q2-tecton-elements/q2-detail.entry.js +4 -4
- package/dist/q2-tecton-elements/q2-dropdown-item.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-dropdown.entry.js +10 -10
- package/dist/q2-tecton-elements/q2-editable-field.entry.js +50 -41
- package/dist/q2-tecton-elements/q2-example.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-file-picker.entry.js +62 -7
- package/dist/q2-tecton-elements/q2-form.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-formatted-text.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-icon.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-item.entry.js +27 -17
- package/dist/q2-tecton-elements/q2-legend.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-link_2.entry.js +7 -7
- package/dist/q2-tecton-elements/q2-loc.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-message.entry.js +30 -30
- package/dist/q2-tecton-elements/q2-meter.entry.js +8 -8
- package/dist/q2-tecton-elements/q2-modal.entry.js +61 -45
- package/dist/q2-tecton-elements/q2-month-picker.entry.js +14 -14
- package/dist/q2-tecton-elements/q2-mutation-observer.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-option.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-otp.entry.js +9 -9
- package/dist/q2-tecton-elements/q2-pagination.entry.js +20 -20
- package/dist/q2-tecton-elements/q2-pill.entry.js +43 -41
- package/dist/q2-tecton-elements/q2-radio-group.entry.js +55 -34
- package/dist/q2-tecton-elements/q2-radio.entry.js +38 -53
- package/dist/q2-tecton-elements/q2-relative-time.entry.js +11 -11
- package/dist/q2-tecton-elements/q2-resize-observer.entry.js +81 -0
- package/dist/q2-tecton-elements/q2-search.entry.js +7 -7
- package/dist/q2-tecton-elements/q2-section.entry.js +25 -25
- package/dist/q2-tecton-elements/q2-select.entry.js +28 -21
- package/dist/q2-tecton-elements/q2-stepper-pane.entry.js +19 -15
- package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js +9 -9
- package/dist/q2-tecton-elements/q2-stepper.entry.js +45 -45
- package/dist/q2-tecton-elements/q2-surface.entry.js +3 -3
- package/dist/q2-tecton-elements/q2-tab-container.entry.js +15 -15
- package/dist/q2-tecton-elements/q2-tab-pane.entry.js +9 -9
- package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
- package/dist/q2-tecton-elements/q2-textarea.entry.js +3 -3
- package/dist/q2-tecton-elements/q2-toast.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-tooltip.entry.js +1 -1
- package/dist/q2-tecton-elements/{sectorHelper--RMGWGAy.js → sectorHelper-DBtkWtpl.js} +56 -56
- package/dist/q2-tecton-elements/tecton-tab-pane.entry.js +8 -7
- package/dist/types/components/q2-action-sheet/q2-action-sheet.d.ts +21 -1
- package/dist/types/components/q2-action-sheet/test/q2-action-sheet-test.vr.d.ts +1 -0
- package/dist/types/components/q2-btn/q2-btn.d.ts +7 -3
- package/dist/types/components/q2-calendar/q2-calendar.d.ts +10 -2
- package/dist/types/components/q2-card-image/q2-card-image.d.ts +1 -1
- package/dist/types/components/q2-carousel/q2-carousel.d.ts +5 -0
- package/dist/types/components/q2-chart-area/q2-chart-area.d.ts +11 -2
- package/dist/types/components/q2-chart-bar/q2-chart-bar.d.ts +9 -0
- package/dist/types/components/q2-chart-donut/q2-chart-donut.d.ts +1 -0
- package/dist/types/components/q2-checkbox/q2-checkbox.d.ts +4 -3
- package/dist/types/components/q2-checkbox-group/q2-checkbox-group.d.ts +4 -2
- package/dist/types/components/q2-date-calendar/q2-date-calendar.d.ts +122 -0
- package/dist/types/components/q2-date-calendar/test/q2-date-calendar-test.vr.d.ts +1 -0
- package/dist/types/components/q2-date-picker/q2-date-picker.d.ts +304 -0
- package/dist/types/components/q2-date-picker/test/q2-date-picker-test.vr.d.ts +1 -0
- package/dist/types/components/q2-dropdown/q2-dropdown.d.ts +3 -3
- package/dist/types/components/q2-dropdown/test/q2-dropdown-test.vr.d.ts +1 -0
- package/dist/types/components/q2-editable-field/q2-editable-field.d.ts +20 -2
- package/dist/types/components/q2-file-picker/q2-file-picker.d.ts +20 -0
- package/dist/types/components/q2-input/q2-input.d.ts +32 -4
- package/dist/types/components/q2-item/q2-item.d.ts +3 -0
- package/dist/types/components/q2-modal/q2-modal.d.ts +10 -1
- package/dist/types/components/q2-option-list/q2-option-list.d.ts +1 -0
- package/dist/types/components/q2-popover/q2-popover.d.ts +4 -0
- package/dist/types/components/q2-radio/q2-radio.d.ts +3 -2
- package/dist/types/components/q2-radio-group/q2-radio-group.d.ts +18 -2
- package/dist/types/components/q2-search/q2-search.d.ts +3 -1
- package/dist/types/components/q2-select/q2-select.d.ts +12 -4
- package/dist/types/components/q2-textarea/q2-textarea.d.ts +4 -2
- package/dist/types/components.d.ts +1112 -195
- package/dist/types/global.d.ts +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/utils/chart-keyboard.d.ts +16 -0
- package/dist/types/utils/date-picker/date-picker-helpers.d.ts +47 -0
- package/dist/types/utils/date-picker/date-picker-types.d.ts +42 -0
- package/dist/types/utils/test/vr-helpers.d.ts +2 -0
- package/package.json +3 -3
- package/dist/cjs/q2-optgroup.cjs.entry.js +0 -70
- package/dist/esm/q2-optgroup.entry.js +0 -68
- package/dist/q2-tecton-elements/q2-optgroup.entry.js +0 -88
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { h } from "@stencil/core";
|
|
1
|
+
import { h, } from "@stencil/core";
|
|
2
2
|
import * as echarts from "echarts/core";
|
|
3
3
|
import { TitleComponent, AriaComponent, GridComponent, } from "echarts/components";
|
|
4
4
|
import { LineChart } from "echarts/charts";
|
|
5
5
|
import { UniversalTransition } from "echarts/features";
|
|
6
6
|
import { CanvasRenderer } from "echarts/renderers";
|
|
7
|
-
import { loc, overrideFocus } from "../../utils/index";
|
|
7
|
+
import { loc, overrideFocus, isEventFromElement } from "../../utils/index";
|
|
8
|
+
import { chartPointDescription, createChartKeyboardNavigation } from "../../utils/chart-keyboard";
|
|
8
9
|
import mirrorEmit from "../../utils/mirror-emit";
|
|
9
10
|
import { getCSSProperty, isValidColor, formatValue } from "../../utils/charting";
|
|
10
11
|
echarts.use([AriaComponent, LineChart, CanvasRenderer, UniversalTransition, GridComponent, TitleComponent]);
|
|
@@ -15,6 +16,18 @@ echarts.use([AriaComponent, LineChart, CanvasRenderer, UniversalTransition, Grid
|
|
|
15
16
|
*/
|
|
16
17
|
export class Q2ChartArea {
|
|
17
18
|
constructor() {
|
|
19
|
+
this.keyboard = createChartKeyboardNavigation({
|
|
20
|
+
getChart: () => this.chart,
|
|
21
|
+
getData: () => this.data,
|
|
22
|
+
onChange: index => {
|
|
23
|
+
this.keyboardIndex = index;
|
|
24
|
+
if (index !== null)
|
|
25
|
+
mirrorEmit(this, ['change', 'tctChange'], { index, data: this.data[index] });
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
// #endregion
|
|
29
|
+
// #region State Properties
|
|
30
|
+
this.keyboardIndex = null;
|
|
18
31
|
/** An array of objects that contain the data to be displayed. */
|
|
19
32
|
this.data = [];
|
|
20
33
|
/** Controls visibility of labels on the name axis. */
|
|
@@ -44,6 +57,7 @@ export class Q2ChartArea {
|
|
|
44
57
|
// #endregion
|
|
45
58
|
// #region Component Lifecycle Events
|
|
46
59
|
disconnectedCallback() {
|
|
60
|
+
this.keyboard.onBlur();
|
|
47
61
|
// CRITICAL: Dispose eCharts instance to prevent memory leaks
|
|
48
62
|
// eCharts holds references to canvas, event listeners, and animation frames
|
|
49
63
|
if (this.chart) {
|
|
@@ -70,6 +84,13 @@ export class Q2ChartArea {
|
|
|
70
84
|
overrideFocus(this.hostElement);
|
|
71
85
|
}
|
|
72
86
|
// #endregion
|
|
87
|
+
// #region Listeners
|
|
88
|
+
delegateFocus(event) {
|
|
89
|
+
var _a;
|
|
90
|
+
if (isEventFromElement(event, this.hostElement) && this.data.length)
|
|
91
|
+
(_a = this.chartContainer) === null || _a === void 0 ? void 0 : _a.focus();
|
|
92
|
+
}
|
|
93
|
+
// #endregion
|
|
73
94
|
// #region Public Methods API
|
|
74
95
|
/**
|
|
75
96
|
* A method to fire change event on hover on a point.
|
|
@@ -88,9 +109,18 @@ export class Q2ChartArea {
|
|
|
88
109
|
if (!this.chart)
|
|
89
110
|
return;
|
|
90
111
|
this.updateChart(this.chart);
|
|
112
|
+
this.keyboard.refresh();
|
|
91
113
|
}
|
|
92
114
|
// #endregion
|
|
93
115
|
// #region Local Methods
|
|
116
|
+
get keyboardDescription() {
|
|
117
|
+
var _a;
|
|
118
|
+
const datum = this.data[this.keyboardIndex];
|
|
119
|
+
if (this.keyboardIndex === null || !datum)
|
|
120
|
+
return '';
|
|
121
|
+
const decimals = ((_a = this.formatModifier) === null || _a === void 0 ? void 0 : _a.includes('dec')) ? this.formatModifier.replace('dec', '') : 0;
|
|
122
|
+
return chartPointDescription(datum.name, formatValue(datum.value || 0, { type: this.format, decimals }), this.keyboardIndex, this.data.length);
|
|
123
|
+
}
|
|
94
124
|
cacheComputedStyles() {
|
|
95
125
|
this.chartContainerStyles = getComputedStyle(this.chartContainer);
|
|
96
126
|
this.hostElementStyles = getComputedStyle(this.hostElement);
|
|
@@ -140,7 +170,7 @@ export class Q2ChartArea {
|
|
|
140
170
|
});
|
|
141
171
|
}
|
|
142
172
|
updateChart(chart) {
|
|
143
|
-
var _a;
|
|
173
|
+
var _a, _b;
|
|
144
174
|
const decimals = ((_a = this.formatModifier) === null || _a === void 0 ? void 0 : _a.includes('dec')) ? this.formatModifier.replace('dec', '') : 0;
|
|
145
175
|
const valueAxis = {
|
|
146
176
|
type: 'value',
|
|
@@ -203,7 +233,7 @@ export class Q2ChartArea {
|
|
|
203
233
|
min: this.xMin,
|
|
204
234
|
max: this.xMax,
|
|
205
235
|
};
|
|
206
|
-
|
|
236
|
+
chart.setOption({
|
|
207
237
|
aria: {
|
|
208
238
|
enabled: true,
|
|
209
239
|
},
|
|
@@ -248,11 +278,13 @@ export class Q2ChartArea {
|
|
|
248
278
|
},
|
|
249
279
|
],
|
|
250
280
|
});
|
|
281
|
+
// ECharts ARIA sets role="img" when options change; retain the keyboard interaction role.
|
|
282
|
+
(_b = this.chartContainer) === null || _b === void 0 ? void 0 : _b.setAttribute('role', 'application');
|
|
251
283
|
}
|
|
252
284
|
// #endregion
|
|
253
285
|
// #region Render Methods
|
|
254
286
|
render() {
|
|
255
|
-
return (h("div", { key: '
|
|
287
|
+
return (h("div", { key: 'de38ac1c05ff6c85091069a691c5e2d51ba360ed', class: "container" }, h("div", { key: 'e45310470e9429714bd15100d01692b102963545', ref: el => (this.chartContainer = el), class: "chart-container", role: "application", tabIndex: this.data.length ? 0 : -1, "aria-describedby": "chart-keyboard-instructions", onFocus: this.keyboard.onFocus, onBlur: this.keyboard.onBlur, onKeyDown: this.keyboard.onKeyDown, "test-id": "areaChartContainer" }), h("div", { key: '45493b2498b17ab331fdff4487bd05874732c75e', id: "chart-keyboard-instructions", class: "sr" }, loc('tecton.element.chart.keyboardInstructions')), h("div", { key: '9d0a71f228271efde15c7ff4e0bae2a1144a8c9c', class: this.keyboardIndex === null ? 'sr' : 'chart-keyboard-value', role: "status", "aria-atomic": "true" }, this.keyboardDescription)));
|
|
256
288
|
}
|
|
257
289
|
static get is() { return "q2-chart-area"; }
|
|
258
290
|
static get encapsulation() { return "shadow"; }
|
|
@@ -771,6 +803,11 @@ export class Q2ChartArea {
|
|
|
771
803
|
}
|
|
772
804
|
};
|
|
773
805
|
}
|
|
806
|
+
static get states() {
|
|
807
|
+
return {
|
|
808
|
+
"keyboardIndex": {}
|
|
809
|
+
};
|
|
810
|
+
}
|
|
774
811
|
static get events() {
|
|
775
812
|
return [{
|
|
776
813
|
"method": "change",
|
|
@@ -783,7 +820,7 @@ export class Q2ChartArea {
|
|
|
783
820
|
"name": "deprecated",
|
|
784
821
|
"text": "Use 'tctChange' instead"
|
|
785
822
|
}],
|
|
786
|
-
"text": "Emitted when a data point is
|
|
823
|
+
"text": "Emitted when a data point is explored using the chart pointer or keyboard."
|
|
787
824
|
},
|
|
788
825
|
"complexType": {
|
|
789
826
|
"original": "{\n index: number;\n data: ChartData;\n }",
|
|
@@ -805,7 +842,7 @@ export class Q2ChartArea {
|
|
|
805
842
|
"composed": true,
|
|
806
843
|
"docs": {
|
|
807
844
|
"tags": [],
|
|
808
|
-
"text": "Emitted when a data point is
|
|
845
|
+
"text": "Emitted when a data point is explored using the chart pointer or keyboard."
|
|
809
846
|
},
|
|
810
847
|
"complexType": {
|
|
811
848
|
"original": "{\n index: number;\n data: ChartData;\n }",
|
|
@@ -916,4 +953,13 @@ export class Q2ChartArea {
|
|
|
916
953
|
"methodName": "propsUpdates"
|
|
917
954
|
}];
|
|
918
955
|
}
|
|
956
|
+
static get listeners() {
|
|
957
|
+
return [{
|
|
958
|
+
"name": "focus",
|
|
959
|
+
"method": "delegateFocus",
|
|
960
|
+
"target": undefined,
|
|
961
|
+
"capture": false,
|
|
962
|
+
"passive": false
|
|
963
|
+
}];
|
|
964
|
+
}
|
|
919
965
|
}
|
|
@@ -117,6 +117,20 @@ const restingCase = (variant, theme) => {
|
|
|
117
117
|
});
|
|
118
118
|
};
|
|
119
119
|
test.describe('q2-chart-area — variants × themes', () => {
|
|
120
|
+
for (const theme of THEMES) {
|
|
121
|
+
test(`q2-chart-area--keyboard--focus — ${theme}`, async ({ page }) => {
|
|
122
|
+
await setupPage(page, '<q2-chart-area style="width: 560px; height: 360px" chart-name="Weekly Spending" format="currency"></q2-chart-area>', { theme, setupLoc: true });
|
|
123
|
+
await setChartData(page, SHORT_DATA);
|
|
124
|
+
await expect(page.locator('q2-chart-area .chart-container')).toHaveAttribute('tabindex', '0');
|
|
125
|
+
await expect(page.locator('q2-chart-area .chart-container')).toHaveAttribute('role', 'application');
|
|
126
|
+
await page.keyboard.press('Tab');
|
|
127
|
+
await page.keyboard.press('ArrowRight');
|
|
128
|
+
const chart = page.locator('q2-chart-area');
|
|
129
|
+
await expect(chart.locator('.chart-container')).toBeFocused();
|
|
130
|
+
await expect(chart.getByRole('status')).toContainText('Mon, $36, point 2 of 7');
|
|
131
|
+
await expect(page).toHaveScreenshot(`q2-chart-area--keyboard--focus--${theme}.png`);
|
|
132
|
+
});
|
|
133
|
+
}
|
|
120
134
|
for (const variant of VARIANTS) {
|
|
121
135
|
for (const theme of THEMES) {
|
|
122
136
|
restingCase(variant, theme);
|
|
@@ -98,10 +98,21 @@ button {
|
|
|
98
98
|
}
|
|
99
99
|
|
|
100
100
|
.container {
|
|
101
|
+
position: relative;
|
|
101
102
|
width: 100%;
|
|
102
103
|
height: 100%;
|
|
103
104
|
}
|
|
104
105
|
|
|
106
|
+
.chart-keyboard-value {
|
|
107
|
+
position: absolute;
|
|
108
|
+
top: 0;
|
|
109
|
+
right: 0;
|
|
110
|
+
padding: var(--app-scale-1x);
|
|
111
|
+
background: var(--t-base);
|
|
112
|
+
color: var(--t-text);
|
|
113
|
+
pointer-events: none;
|
|
114
|
+
}
|
|
115
|
+
|
|
105
116
|
.chart-container {
|
|
106
117
|
width: 100%;
|
|
107
118
|
height: 100%;
|
|
@@ -4,7 +4,8 @@ import { TitleComponent, AriaComponent, GridComponent, } from "echarts/component
|
|
|
4
4
|
import { BarChart } from "echarts/charts";
|
|
5
5
|
import { LabelLayout } from "echarts/features";
|
|
6
6
|
import { CanvasRenderer } from "echarts/renderers";
|
|
7
|
-
import { loc, overrideFocus } from "../../utils/index";
|
|
7
|
+
import { loc, overrideFocus, isEventFromElement } from "../../utils/index";
|
|
8
|
+
import { chartPointDescription, createChartKeyboardNavigation } from "../../utils/chart-keyboard";
|
|
8
9
|
import { getCSSProperty, isValidColor, formatValue } from "../../utils/charting";
|
|
9
10
|
echarts.use([AriaComponent, BarChart, CanvasRenderer, LabelLayout, GridComponent, TitleComponent]);
|
|
10
11
|
/**
|
|
@@ -14,6 +15,18 @@ echarts.use([AriaComponent, BarChart, CanvasRenderer, LabelLayout, GridComponent
|
|
|
14
15
|
*/
|
|
15
16
|
export class Q2ChartBar {
|
|
16
17
|
constructor() {
|
|
18
|
+
this.keyboard = createChartKeyboardNavigation({
|
|
19
|
+
getChart: () => this.chart,
|
|
20
|
+
getData: () => this.data,
|
|
21
|
+
onChange: index => (this.keyboardIndex = index),
|
|
22
|
+
getOrder: () => {
|
|
23
|
+
const indices = this.data.map((_, index) => index);
|
|
24
|
+
return this.sort ? indices.sort((a, b) => this.data[b].value - this.data[a].value) : indices;
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
// #endregion
|
|
28
|
+
// #region State Properties
|
|
29
|
+
this.keyboardIndex = null;
|
|
17
30
|
/** An array of objects that contain the data to be displayed. */
|
|
18
31
|
this.data = [];
|
|
19
32
|
/** Controls visibility of labels on the name axis. */
|
|
@@ -41,6 +54,7 @@ export class Q2ChartBar {
|
|
|
41
54
|
// #endregion
|
|
42
55
|
// #region Component Lifecycle Events
|
|
43
56
|
disconnectedCallback() {
|
|
57
|
+
this.keyboard.onBlur();
|
|
44
58
|
// Remove event listeners
|
|
45
59
|
window.removeEventListener('resize', this.resizeEventListener);
|
|
46
60
|
// Clean up chart instance
|
|
@@ -70,14 +84,30 @@ export class Q2ChartBar {
|
|
|
70
84
|
overrideFocus(this.hostElement);
|
|
71
85
|
}
|
|
72
86
|
// #endregion
|
|
87
|
+
// #region Listeners
|
|
88
|
+
delegateFocus(event) {
|
|
89
|
+
var _a;
|
|
90
|
+
if (isEventFromElement(event, this.hostElement) && this.data.length)
|
|
91
|
+
(_a = this.chartContainer) === null || _a === void 0 ? void 0 : _a.focus();
|
|
92
|
+
}
|
|
93
|
+
// #endregion
|
|
73
94
|
// #region Watchers
|
|
74
95
|
propsUpdates() {
|
|
75
96
|
if (!this.chart)
|
|
76
97
|
return;
|
|
77
98
|
this.updateChart(this.chart);
|
|
99
|
+
this.keyboard.refresh();
|
|
78
100
|
}
|
|
79
101
|
// #endregion
|
|
80
102
|
// #region Local Methods
|
|
103
|
+
get keyboardDescription() {
|
|
104
|
+
var _a;
|
|
105
|
+
const datum = this.data[this.keyboardIndex];
|
|
106
|
+
if (this.keyboardIndex === null || !datum)
|
|
107
|
+
return '';
|
|
108
|
+
const decimals = ((_a = this.formatModifier) === null || _a === void 0 ? void 0 : _a.includes('dec')) ? this.formatModifier.replace('dec', '') : 0;
|
|
109
|
+
return chartPointDescription(datum.name, formatValue(datum.value || 0, { type: this.format, decimals }), this.sort ? [...this.data].sort((a, b) => b.value - a.value).indexOf(datum) : this.keyboardIndex, this.data.length);
|
|
110
|
+
}
|
|
81
111
|
cacheComputedStyles() {
|
|
82
112
|
this.chartContainerStyles = getComputedStyle(this.chartContainer);
|
|
83
113
|
this.hostElementStyles = getComputedStyle(this.hostElement);
|
|
@@ -120,7 +150,7 @@ export class Q2ChartBar {
|
|
|
120
150
|
chart.on('finished', this.chartFinishedListener);
|
|
121
151
|
}
|
|
122
152
|
updateChart(chart) {
|
|
123
|
-
var _a;
|
|
153
|
+
var _a, _b;
|
|
124
154
|
const decimals = ((_a = this.formatModifier) === null || _a === void 0 ? void 0 : _a.includes('dec')) ? this.formatModifier.replace('dec', '') : 0;
|
|
125
155
|
const valueAxis = {
|
|
126
156
|
type: 'value',
|
|
@@ -149,7 +179,7 @@ export class Q2ChartBar {
|
|
|
149
179
|
alignWithLabel: this.offsetDataNames,
|
|
150
180
|
},
|
|
151
181
|
};
|
|
152
|
-
|
|
182
|
+
chart.setOption({
|
|
153
183
|
aria: {
|
|
154
184
|
enabled: true,
|
|
155
185
|
},
|
|
@@ -185,11 +215,13 @@ export class Q2ChartBar {
|
|
|
185
215
|
},
|
|
186
216
|
],
|
|
187
217
|
});
|
|
218
|
+
// ECharts ARIA sets role="img" when options change; retain the keyboard interaction role.
|
|
219
|
+
(_b = this.chartContainer) === null || _b === void 0 ? void 0 : _b.setAttribute('role', 'application');
|
|
188
220
|
}
|
|
189
221
|
// #endregion
|
|
190
222
|
// #region Render Methods
|
|
191
223
|
render() {
|
|
192
|
-
return (h("div", { key: '
|
|
224
|
+
return (h("div", { key: '2764d138c5aee7d65df3361a7d4720e00ba13368', class: "container" }, h("div", { key: '864b3f1d5987a101ab008e37e99c874cc411c143', ref: el => (this.chartContainer = el), class: "chart-container", role: "application", tabIndex: this.data.length ? 0 : -1, "aria-describedby": "chart-keyboard-instructions", onFocus: this.keyboard.onFocus, onBlur: this.keyboard.onBlur, onKeyDown: this.keyboard.onKeyDown, "test-id": "barChartContainer" }), h("div", { key: '3b6aa42b27e86f75cd4d1fc3d2efe823b950864c', id: "chart-keyboard-instructions", class: "sr" }, loc('tecton.element.chart.keyboardInstructions')), h("div", { key: '5d216b8ccce18ea77f136fd43ab81db335b38d89', class: this.keyboardIndex === null ? 'sr' : 'chart-keyboard-value', role: "status", "aria-atomic": "true" }, this.keyboardDescription)));
|
|
193
225
|
}
|
|
194
226
|
static get is() { return "q2-chart-bar"; }
|
|
195
227
|
static get encapsulation() { return "shadow"; }
|
|
@@ -549,6 +581,11 @@ export class Q2ChartBar {
|
|
|
549
581
|
}
|
|
550
582
|
};
|
|
551
583
|
}
|
|
584
|
+
static get states() {
|
|
585
|
+
return {
|
|
586
|
+
"keyboardIndex": {}
|
|
587
|
+
};
|
|
588
|
+
}
|
|
552
589
|
static get elementRef() { return "hostElement"; }
|
|
553
590
|
static get watchers() {
|
|
554
591
|
return [{
|
|
@@ -598,4 +635,13 @@ export class Q2ChartBar {
|
|
|
598
635
|
"methodName": "propsUpdates"
|
|
599
636
|
}];
|
|
600
637
|
}
|
|
638
|
+
static get listeners() {
|
|
639
|
+
return [{
|
|
640
|
+
"name": "focus",
|
|
641
|
+
"method": "delegateFocus",
|
|
642
|
+
"target": undefined,
|
|
643
|
+
"capture": false,
|
|
644
|
+
"passive": false
|
|
645
|
+
}];
|
|
646
|
+
}
|
|
601
647
|
}
|
|
@@ -96,6 +96,20 @@ const restingCase = (variant, theme) => {
|
|
|
96
96
|
});
|
|
97
97
|
};
|
|
98
98
|
test.describe('q2-chart-bar — variants × themes', () => {
|
|
99
|
+
for (const theme of THEMES) {
|
|
100
|
+
test(`q2-chart-bar--keyboard--focus — ${theme}`, async ({ page }) => {
|
|
101
|
+
await setupPage(page, '<q2-chart-bar style="width: 560px; height: 360px" chart-name="Weekly Spending" format="currency"></q2-chart-bar>', { theme, setupLoc: true });
|
|
102
|
+
await setChartData(page, SHORT_DATA);
|
|
103
|
+
await expect(page.locator('q2-chart-bar .chart-container')).toHaveAttribute('tabindex', '0');
|
|
104
|
+
await expect(page.locator('q2-chart-bar .chart-container')).toHaveAttribute('role', 'application');
|
|
105
|
+
await page.keyboard.press('Tab');
|
|
106
|
+
await page.keyboard.press('ArrowRight');
|
|
107
|
+
const chart = page.locator('q2-chart-bar');
|
|
108
|
+
await expect(chart.locator('.chart-container')).toBeFocused();
|
|
109
|
+
await expect(chart.getByRole('status')).toContainText('Mon, $36, point 2 of 7');
|
|
110
|
+
await expect(page).toHaveScreenshot(`q2-chart-bar--keyboard--focus--${theme}.png`);
|
|
111
|
+
});
|
|
112
|
+
}
|
|
99
113
|
for (const variant of VARIANTS) {
|
|
100
114
|
for (const theme of THEMES) {
|
|
101
115
|
restingCase(variant, theme);
|
|
@@ -7,6 +7,7 @@ import { CanvasRenderer } from "echarts/renderers";
|
|
|
7
7
|
import { isEventFromElement, isMobile, loc, overrideFocus } from "../../utils/index";
|
|
8
8
|
import mirrorEmit from "../../utils/mirror-emit";
|
|
9
9
|
import { getCSSProperty } from "../../utils/charting";
|
|
10
|
+
import { chartPointDescription } from "../../utils/chart-keyboard";
|
|
10
11
|
echarts.use([TooltipComponent, LegendComponent, PieChart, CanvasRenderer, AriaComponent, LabelLayout]);
|
|
11
12
|
/**
|
|
12
13
|
* @name Donut Chart
|
|
@@ -16,6 +17,7 @@ echarts.use([TooltipComponent, LegendComponent, PieChart, CanvasRenderer, AriaCo
|
|
|
16
17
|
export class Q2ChartDonut {
|
|
17
18
|
constructor() {
|
|
18
19
|
this.defaultRecord = { id: null, value: null, name: null };
|
|
20
|
+
this.keyboardAnnouncement = '';
|
|
19
21
|
/** An array of objects that contain the data to be displayed. */
|
|
20
22
|
this.data = [];
|
|
21
23
|
/** The amount which the slice will scale when hovered. */
|
|
@@ -55,6 +57,8 @@ export class Q2ChartDonut {
|
|
|
55
57
|
};
|
|
56
58
|
this.onButtonKeyDown = (event) => {
|
|
57
59
|
const { selectedId, data } = this;
|
|
60
|
+
if (!data.length || event.altKey || event.ctrlKey || event.metaKey || event.shiftKey)
|
|
61
|
+
return;
|
|
58
62
|
let selectedIndex = this.getIndexById(selectedId) || 0;
|
|
59
63
|
switch (event.key) {
|
|
60
64
|
case 'ArrowUp':
|
|
@@ -84,14 +88,23 @@ export class Q2ChartDonut {
|
|
|
84
88
|
});
|
|
85
89
|
break;
|
|
86
90
|
case 'Escape':
|
|
91
|
+
event.preventDefault();
|
|
87
92
|
this.clearSelection();
|
|
88
|
-
|
|
89
|
-
|
|
93
|
+
this.keyboardAnnouncement = loc(this.summaryName || 'tecton.element.chartDonut.button.summaryName');
|
|
94
|
+
return;
|
|
95
|
+
case 'Home':
|
|
96
|
+
case 'End':
|
|
90
97
|
event.preventDefault();
|
|
98
|
+
selectedIndex = event.key === 'Home' ? 0 : data.length - 1;
|
|
99
|
+
this.chart.dispatchAction({ type: 'select', seriesId: 'pie', dataIndex: selectedIndex });
|
|
91
100
|
break;
|
|
92
101
|
default:
|
|
93
102
|
return;
|
|
94
103
|
}
|
|
104
|
+
if (['ArrowLeft', 'ArrowRight', 'Home', 'End'].includes(event.key)) {
|
|
105
|
+
const datum = data[selectedIndex];
|
|
106
|
+
this.keyboardAnnouncement = chartPointDescription(datum.name, this.displayValue(datum.value), selectedIndex, data.length);
|
|
107
|
+
}
|
|
95
108
|
};
|
|
96
109
|
this.onClickElsewhere = (event) => {
|
|
97
110
|
event.stopPropagation();
|
|
@@ -191,12 +204,13 @@ export class Q2ChartDonut {
|
|
|
191
204
|
// #endregion
|
|
192
205
|
// #region Listeners
|
|
193
206
|
delegateFocus(event) {
|
|
194
|
-
var _a;
|
|
207
|
+
var _a, _b;
|
|
195
208
|
if (!isEventFromElement(event, this.hostElement))
|
|
196
209
|
return;
|
|
197
|
-
if (
|
|
198
|
-
|
|
199
|
-
|
|
210
|
+
if (this.isClickable)
|
|
211
|
+
(_a = this.centerButtonElement) === null || _a === void 0 ? void 0 : _a.focus();
|
|
212
|
+
else if (this.data.length)
|
|
213
|
+
(_b = this.chartContainer) === null || _b === void 0 ? void 0 : _b.focus();
|
|
200
214
|
}
|
|
201
215
|
// #endregion
|
|
202
216
|
// #region Public Methods API
|
|
@@ -267,6 +281,7 @@ export class Q2ChartDonut {
|
|
|
267
281
|
this.updateChart(this.chart);
|
|
268
282
|
}
|
|
269
283
|
dataUpdated() {
|
|
284
|
+
this.keyboardAnnouncement = '';
|
|
270
285
|
if (!this.chart)
|
|
271
286
|
return;
|
|
272
287
|
this.colors = this.getColors();
|
|
@@ -442,8 +457,9 @@ export class Q2ChartDonut {
|
|
|
442
457
|
});
|
|
443
458
|
}
|
|
444
459
|
updateChart(chart) {
|
|
460
|
+
var _a;
|
|
445
461
|
this.validateColor();
|
|
446
|
-
|
|
462
|
+
chart.setOption({
|
|
447
463
|
tooltip: {
|
|
448
464
|
show: false,
|
|
449
465
|
},
|
|
@@ -485,6 +501,8 @@ export class Q2ChartDonut {
|
|
|
485
501
|
},
|
|
486
502
|
],
|
|
487
503
|
});
|
|
504
|
+
// The clickable variant handles keyboard interaction on its native center button.
|
|
505
|
+
(_a = this.chartContainer) === null || _a === void 0 ? void 0 : _a.setAttribute('role', this.isClickable ? 'img' : 'application');
|
|
488
506
|
}
|
|
489
507
|
validateColor() {
|
|
490
508
|
// check if there is name duplicated, then custom style using `itemStyle` object will be used.
|
|
@@ -508,20 +526,21 @@ export class Q2ChartDonut {
|
|
|
508
526
|
const props = isClickable
|
|
509
527
|
? {
|
|
510
528
|
onKeyDown: this.onButtonKeyDown,
|
|
529
|
+
onBlur: () => (this.keyboardAnnouncement = ''),
|
|
511
530
|
onClick: this.onButtonClick,
|
|
512
531
|
ref: el => (this.centerButtonElement = el),
|
|
513
|
-
'aria-describedby': 'center-card-description',
|
|
532
|
+
'aria-describedby': 'center-card-description chart-keyboard-instructions',
|
|
514
533
|
'aria-roledescription': loc('tecton.element.chartDonut.button.roleDescription'),
|
|
515
534
|
}
|
|
516
535
|
: null;
|
|
517
|
-
return (h("div", { class: "center-card-container", style: { width: `calc(${this.innerRadius})`, height: `calc(${this.innerRadius})` } }, h("div", { id: "center-card-description", class: "sr" }, loc('tecton.element.chartDonut.button.description')), h(TagName, { class: "center-card", "test-id": "centerCard", ...props }, !!icon && (h("q2-icon", { type: icon, style: color && {
|
|
536
|
+
return (h("div", { class: "center-card-container", style: { width: `calc(${this.innerRadius})`, height: `calc(${this.innerRadius})` } }, h("div", { id: "center-card-description", class: "sr" }, loc('tecton.element.chartDonut.button.description')), h("div", { id: "chart-keyboard-instructions", class: "sr" }, loc('tecton.element.chart.keyboardInstructions')), h(TagName, { class: "center-card", "test-id": "centerCard", ...props }, !!icon && (h("q2-icon", { type: icon, style: color && {
|
|
518
537
|
'--tct-icon-stroke-primary': color,
|
|
519
538
|
'--tct-icon-stroke-secondary': color,
|
|
520
539
|
color,
|
|
521
540
|
} })), !!name && h("div", { class: "name" }, name), !isNaN(value) && h("div", { class: "value" }, displayValue))));
|
|
522
541
|
}
|
|
523
542
|
render() {
|
|
524
|
-
return (h("click-elsewhere", { key: '
|
|
543
|
+
return (h("click-elsewhere", { key: '54e5d16621ac527fec69834b2c1cc1e7d2c6540b', onChange: this.onClickElsewhere }, h("figure", { key: '61e0c1e30fed4e89816d228c1c190b5bd38991a3' }, h("div", { key: '0685b804780ebdf17d7bfe5956306a027c3c9dba', class: "container" }, h("div", { key: '458dfa5c6ad8d704de66d4d51461e2d7b28ba13c', ref: el => (this.chartContainer = el), "aria-describedby": !this.isClickable ? 'center-card-description chart-keyboard-instructions' : undefined, class: "chart-container", role: this.isClickable ? 'img' : 'application', "test-id": "chartContainer", onClick: this.onContainerClick, tabIndex: !this.isClickable && this.data.length ? 0 : undefined, onKeyDown: !this.isClickable ? this.onButtonKeyDown : undefined, onBlur: () => (this.keyboardAnnouncement = '') }), this.renderCenterBlock(), h("div", { key: '105396c05b8aa162b1c0515cb4b96dadafcca911', class: "sr", role: "status", "aria-atomic": "true" }, this.keyboardAnnouncement)), this.showLegend && (h("figcaption", { key: 'c6462ae033852ff7fa09d752e4fc8860608448c6' }, h("q2-legend", { key: 'd8f1ceb9b46392264b306d316d1fb6066b2f5b4d', class: "legend", data: this.legendData, format: this.format, currencyRound: this.currencyRound, hoveredItemId: this.legendHoveredId, onClick: this.onLegendClick, onMouseleave: this.onLegendMouseleave, onMouseenter: this.onLegendMouseenter, selectedItemId: this.selectedId }))))));
|
|
525
544
|
}
|
|
526
545
|
static get is() { return "q2-chart-donut"; }
|
|
527
546
|
static get encapsulation() { return "shadow"; }
|
|
@@ -838,6 +857,7 @@ export class Q2ChartDonut {
|
|
|
838
857
|
static get states() {
|
|
839
858
|
return {
|
|
840
859
|
"hoveredId": {},
|
|
860
|
+
"keyboardAnnouncement": {},
|
|
841
861
|
"legendData": {}
|
|
842
862
|
};
|
|
843
863
|
}
|
|
@@ -46,6 +46,14 @@ const setChartData = async (page, data) => {
|
|
|
46
46
|
await page.locator('q2-chart-donut').evaluate((el, payload) => {
|
|
47
47
|
el.data = payload;
|
|
48
48
|
}, data);
|
|
49
|
+
// Icon sprites load independently of chart rendering and component hydration.
|
|
50
|
+
const chart = page.locator('q2-chart-donut');
|
|
51
|
+
const summaryIcon = await chart.getAttribute('summary-icon');
|
|
52
|
+
if (summaryIcon) {
|
|
53
|
+
const icon = chart.locator('q2-icon').first();
|
|
54
|
+
await expect(icon.locator('svg use')).toHaveAttribute('href', /#.+/);
|
|
55
|
+
await expect(icon.locator('svg g symbol')).toHaveCount(1);
|
|
56
|
+
}
|
|
49
57
|
// echarts marks the canvas with aria-hidden="true" once the 'finished' event has fired.
|
|
50
58
|
// Waiting on that attribute keeps the snapshot from racing the canvas paint.
|
|
51
59
|
await page.locator('q2-chart-donut').evaluate(async (el) => {
|
|
@@ -131,6 +139,23 @@ const legendClickCase = (variant, theme) => {
|
|
|
131
139
|
});
|
|
132
140
|
};
|
|
133
141
|
test.describe('q2-chart-donut — variants × themes', () => {
|
|
142
|
+
for (const theme of THEMES) {
|
|
143
|
+
test(`q2-chart-donut--keyboard--focus — ${theme}`, async ({ page }) => {
|
|
144
|
+
await setupPage(page, '<q2-chart-donut style="width: 400px" chart-name="Spending"></q2-chart-donut>', {
|
|
145
|
+
theme,
|
|
146
|
+
setupLoc: true,
|
|
147
|
+
});
|
|
148
|
+
await setChartData(page, SHORT_DATA);
|
|
149
|
+
await expect(page.locator('q2-chart-donut .chart-container')).toHaveAttribute('tabindex', '0');
|
|
150
|
+
await expect(page.locator('q2-chart-donut .chart-container')).toHaveAttribute('role', 'application');
|
|
151
|
+
await page.keyboard.press('Tab');
|
|
152
|
+
await page.keyboard.press('End');
|
|
153
|
+
await page.keyboard.press('Home');
|
|
154
|
+
await expect(page.locator('q2-chart-donut .chart-container')).toBeFocused();
|
|
155
|
+
await expect(page.locator('q2-chart-donut [role="status"]')).toContainText(SHORT_DATA[0].name);
|
|
156
|
+
await expect(page).toHaveScreenshot(`q2-chart-donut--keyboard--focus--${theme}.png`);
|
|
157
|
+
});
|
|
158
|
+
}
|
|
134
159
|
for (const variant of VARIANTS) {
|
|
135
160
|
for (const theme of THEMES) {
|
|
136
161
|
restingCase(variant, theme);
|
|
@@ -405,7 +405,7 @@ label {
|
|
|
405
405
|
transition: fill var(--tct-checkbox-tween, var(--app-tween-2, 0.4s ease));
|
|
406
406
|
}
|
|
407
407
|
:host([checked]:not([checked=false]):not([type=favorite])) .checkbox-icon {
|
|
408
|
-
stroke: var(--
|
|
408
|
+
stroke: var(--tct-checkbox-checked-outer-stroke-color, var(--t-checkbox-checked-outer-stroke-color, var(--comp-checkbox-checked-fill-color, var(--comp-checkbox-outer-stroke-color))));
|
|
409
409
|
}
|
|
410
410
|
:host([checked]:not([checked=false]):not([type=favorite])) .checkbox-icon rect {
|
|
411
411
|
fill: var(--comp-checkbox-checked-fill-color);
|
|
@@ -421,7 +421,7 @@ label {
|
|
|
421
421
|
fill: var(--tct-checkbox-error-checked-outer-fill-color);
|
|
422
422
|
}
|
|
423
423
|
:host([indeterminate]:not([indeterminate=false]):not([type=favorite])) .checkbox-icon {
|
|
424
|
-
stroke: var(--
|
|
424
|
+
stroke: var(--tct-checkbox-checked-outer-stroke-color, var(--t-checkbox-checked-outer-stroke-color, var(--comp-checkbox-checked-fill-color, var(--comp-checkbox-outer-stroke-color))));
|
|
425
425
|
}
|
|
426
426
|
:host([indeterminate]:not([indeterminate=false]):not([type=favorite])) .checkbox-icon rect {
|
|
427
427
|
fill: var(--comp-checkbox-checked-fill-color);
|
|
@@ -180,7 +180,7 @@ export class Q2Checkbox {
|
|
|
180
180
|
containerClasses.push('has-multiline-label');
|
|
181
181
|
if (this.hideLabel)
|
|
182
182
|
textLabelClasses.push('sr');
|
|
183
|
-
return (h("div", { key: '
|
|
183
|
+
return (h("div", { key: '95ac828b1e5991bd66dfd7e83dcdc75bc152e18f', class: containerClasses.join(' ') }, h("input", { key: '36f4d3c2aa33464cfb62e66a8e3fa75933d65344', ref: el => (this.inputElement = el), "aria-describedby": this.hasDescription ? 'description' : undefined, "aria-invalid": this.hasError === undefined ? undefined : `${this.hasError}`, "aria-labelledby": this.ariaLabelledBy, checked: this.indeterminate || this.checked || false, class: "sr", disabled: !!this.disabled || !!this.groupDisabled, id: this._id, name: this.name || this._id, onClick: this.onInputClick, "test-id": "q2CheckboxInnerCheckBox", type: "checkbox", value: this.value }), h("label", { key: 'b64445b937b72c81c2266dd9512ac810e780ee54', htmlFor: this._id, class: "label-control", "test-id": "checkboxButton", "aria-hidden": "true" }, this.renderCheckboxSVG()), h("div", { key: 'ff43e0c59e23b9cd0c61339e275c45ed5ae082aa', class: textLabelClasses.join(' '), ref: el => (this.labelTextElement = el) }, h("label", { key: '808c972d8808da7a4e7f907176466a72edcd2c48', "test-id": "checkboxLabel", htmlFor: this._id, id: this.labelId }, h("div", { key: 'fe386612e683c6e7be2db8a3404f34b6f53391b6', class: "label-content" }, loc(this.label), h("slot", { key: '38b16db321f096aa05e8062a7a02e01d3e3feb3e', onSlotchange: this.queueLabelLayoutUpdate }), h("slot", { key: '327afa820650c9d769a6566c7bc7d79b607492c0', name: "label", onSlotchange: this.queueLabelLayoutUpdate })))), this._tooltip && (h("span", { key: 'ab9ac6546e1e0e7021115c67056155bd00387aac', id: this.tooltipId, class: "sr", "test-id": "checkboxTooltipText" }, this._tooltip)), this.hasDescription && (h("div", { key: 'acef71e4ff4d85e16f80bce4ff8b68e52a252fd2', class: "description-text", "test-id": "checkboxDescription", id: "description" }, loc(this.description), h("slot", { key: '11e62328019bc7f3fe8be7ec74300e727c2dc98e', name: "description" })))));
|
|
184
184
|
}
|
|
185
185
|
static get is() { return "q2-checkbox"; }
|
|
186
186
|
static get encapsulation() { return "shadow"; }
|
|
@@ -397,9 +397,9 @@ export class Q2Checkbox {
|
|
|
397
397
|
"docs": {
|
|
398
398
|
"tags": [{
|
|
399
399
|
"name": "warning",
|
|
400
|
-
"text": "
|
|
400
|
+
"text": "Hides the label visually. `label` text is still required for screenreader compliance."
|
|
401
401
|
}],
|
|
402
|
-
"text": "
|
|
402
|
+
"text": "Hides the field's `<label>` element from view."
|
|
403
403
|
},
|
|
404
404
|
"getter": false,
|
|
405
405
|
"setter": false,
|
|
@@ -437,6 +437,9 @@ export class Q2Checkbox {
|
|
|
437
437
|
"optional": false,
|
|
438
438
|
"docs": {
|
|
439
439
|
"tags": [{
|
|
440
|
+
"name": "warning",
|
|
441
|
+
"text": "Required for screen reader compliance even when `hideLabel` is `true`."
|
|
442
|
+
}, {
|
|
440
443
|
"name": "localizable",
|
|
441
444
|
"text": undefined
|
|
442
445
|
}],
|
|
@@ -102,6 +102,7 @@ button {
|
|
|
102
102
|
* @prop --tct-checkbox-group-label-font-size?: (<length-percentage>) Controls the optional font size of the checkbox-group label.
|
|
103
103
|
* @prop --tct-checkbox-group-label-font-weight: (<number>) Controls the font weight of the checkbox-group label.
|
|
104
104
|
* @prop --tct-checkbox-group-label-letter-spacing?: (<length>) Controls the optional letter spacing of the checkbox-group label.
|
|
105
|
+
* @prop --tct-checkbox-group-label-line-height?: (<length-percentage>) Controls the optional line height of the checkbox-group label.
|
|
105
106
|
* @prop --tct-checkbox-group-label-text-transform?: (<custom-ident>) Controls the optional text transform of the checkbox-group label.
|
|
106
107
|
* @prop --tct-checkbox-group-label-optional-color: (<color>) Controls the text color of the "(optional)" indicator next to the label.
|
|
107
108
|
* @prop --tct-checkbox-group-label-optional-font-size: (<length-percentage>) Controls the font size of the "(optional)" indicator next to the label.
|
|
@@ -131,6 +132,7 @@ fieldset {
|
|
|
131
132
|
font-weight: var(--tct-checkbox-group-label-font-weight, 600);
|
|
132
133
|
text-transform: var(--tct-checkbox-group-label-text-transform, none);
|
|
133
134
|
letter-spacing: var(--tct-checkbox-group-label-letter-spacing, inherit);
|
|
135
|
+
line-height: var(--tct-checkbox-group-label-line-height, inherit);
|
|
134
136
|
}
|
|
135
137
|
.label-row q2-icon {
|
|
136
138
|
grid-area: icon;
|
|
@@ -120,7 +120,7 @@ export class Q2CheckboxGroup {
|
|
|
120
120
|
render() {
|
|
121
121
|
const showLabel = this.label || this.optional || this.readonly;
|
|
122
122
|
const showLabelRow = (showLabel && !this.hideLabel) || this.hasError;
|
|
123
|
-
return (h(Fragment, { key: '
|
|
123
|
+
return (h(Fragment, { key: 'ed664b9829dbea3e8e6fe3809dd2528a2a37b011' }, showLabelRow && (h("div", { key: '101b950b7aacfbc6dab450ad2c13a7a86af40936', class: "label-row" }, showLabel && !this.hideLabel && h("div", { key: '70330c12aefedf7f7b7f7cbe4e0a745cca667181', class: "group-legend" }, renderLabel(this)), this.hasError && (h("q2-icon", { key: '31eb9fac43cbf80696276c7d96945a3f267610d3', type: "error", "test-id": "iconError" })))), h("fieldset", { key: '200264b3fb882445dc5610155e28b137e2334ad2', onChange: this.onInnerCheckboxChange, "aria-invalid": this.hasError ? `${this.hasError}` : undefined }, showLabel && h("legend", { key: 'ef85eb7ca6ef53496a5fc7d0198f03d3a8fb129e', class: "sr-only" }, renderLabel(this)), this.inputDom())));
|
|
124
124
|
}
|
|
125
125
|
static get is() { return "q2-checkbox-group"; }
|
|
126
126
|
static get encapsulation() { return "shadow"; }
|
|
@@ -187,9 +187,9 @@ export class Q2CheckboxGroup {
|
|
|
187
187
|
"docs": {
|
|
188
188
|
"tags": [{
|
|
189
189
|
"name": "warning",
|
|
190
|
-
"text": "
|
|
190
|
+
"text": "Hides the label visually. `label` text is still required for screenreader compliance."
|
|
191
191
|
}],
|
|
192
|
-
"text": "
|
|
192
|
+
"text": "Hides the group's `<label>` element from view."
|
|
193
193
|
},
|
|
194
194
|
"getter": false,
|
|
195
195
|
"setter": false,
|
|
@@ -208,6 +208,9 @@ export class Q2CheckboxGroup {
|
|
|
208
208
|
"optional": false,
|
|
209
209
|
"docs": {
|
|
210
210
|
"tags": [{
|
|
211
|
+
"name": "warning",
|
|
212
|
+
"text": "Required for screen reader compliance even when `hideLabel` is `true`."
|
|
213
|
+
}, {
|
|
211
214
|
"name": "localizable",
|
|
212
215
|
"text": undefined
|
|
213
216
|
}],
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
+
* @prop --tct-context-close-icon-size: (<length>) Controls the size of the close icon in the affordance slot.
|
|
2
3
|
* @prop --tct-context-background: (<color>) Controls the background color of the context container.
|
|
3
4
|
* @prop --tct-context-color: (<color>) Controls the text color propagated to context items.
|
|
4
5
|
* @prop --tct-context-backdrop-filter?: (*) Controls the optional backdrop-filter applied to the context container.
|
|
@@ -71,6 +72,10 @@
|
|
|
71
72
|
--tct-btn-icon-border-radius: var(--app-border-radius-1, 4px);
|
|
72
73
|
}
|
|
73
74
|
|
|
75
|
+
::slotted(q2-btn[data-context-close-affordance]) {
|
|
76
|
+
--tct-icon-size: var(--tct-context-close-icon-size, var(--const-px-18, 18px));
|
|
77
|
+
}
|
|
78
|
+
|
|
74
79
|
::slotted(q2-link) {
|
|
75
80
|
--tct-link-border-radius: var(--app-border-radius-1, 4px);
|
|
76
81
|
--tct-icon-stroke-primary: var(--t-primary, #6a4a9e);
|