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
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
import { addDays, format as formatDate, formatISO, isAfter, isBefore, isSameDay, isValid as isValidDate, } from "date-fns";
|
|
2
|
+
import { loc } from "../index";
|
|
3
|
+
const defaultDisplayFormat = 'MM/DD/YYYY';
|
|
4
|
+
const supportedDisplayFormats = [
|
|
5
|
+
defaultDisplayFormat,
|
|
6
|
+
'DD/MM/YYYY',
|
|
7
|
+
'MM-DD-YYYY',
|
|
8
|
+
'DD-MM-YYYY',
|
|
9
|
+
'YYYY-MM-DD',
|
|
10
|
+
];
|
|
11
|
+
const defaultDatePickerStringKeys = {
|
|
12
|
+
'Choose a date': 'tecton.element.datePicker.calendarLabel',
|
|
13
|
+
'Dates are shown in your local time zone.': 'tecton.element.datePicker.disclaimer.localTimeZone',
|
|
14
|
+
};
|
|
15
|
+
const isoDatePattern = /^\d{4}-\d{2}-\d{2}$/;
|
|
16
|
+
const isoLikeDatePattern = /^(\d{4})-(\d{1,2})-(\d{1,2})(?:T.*)?$/;
|
|
17
|
+
const slashDatePattern = /^(\d{1,2})\/(\d{1,2})\/(\d{2}|\d{4})$/;
|
|
18
|
+
/** Determines a year for a month and day when typeable input omits the year. */
|
|
19
|
+
export function buildInputDate(input, assume) {
|
|
20
|
+
const [month, day, year] = input.split('/');
|
|
21
|
+
if (!month)
|
|
22
|
+
return;
|
|
23
|
+
if (!day)
|
|
24
|
+
return new Date(new Date().getFullYear(), Number(month) - 1, 1);
|
|
25
|
+
if (Number(day) <= 0)
|
|
26
|
+
return;
|
|
27
|
+
const selectedYear = (year === null || year === void 0 ? void 0 : year.length) === 4 ? Number(year) : Number(assumeYear(month, day, assume));
|
|
28
|
+
const date = new Date(selectedYear, Number(month) - 1, Number(day));
|
|
29
|
+
return isValidDate(date) ? date : undefined;
|
|
30
|
+
}
|
|
31
|
+
/** Formats a valid date as an ISO calendar date. */
|
|
32
|
+
export function formatDateISO(value) {
|
|
33
|
+
if (!isValidDate(value))
|
|
34
|
+
return;
|
|
35
|
+
return formatISO(value, { representation: 'date' });
|
|
36
|
+
}
|
|
37
|
+
/** Formats a date for an accessible day label. */
|
|
38
|
+
export function formatDateFull(value) {
|
|
39
|
+
if (!isValidDate(value))
|
|
40
|
+
return;
|
|
41
|
+
return new Intl.DateTimeFormat('en-US', {
|
|
42
|
+
month: 'long',
|
|
43
|
+
day: 'numeric',
|
|
44
|
+
year: 'numeric',
|
|
45
|
+
weekday: 'long',
|
|
46
|
+
timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,
|
|
47
|
+
}).format(value);
|
|
48
|
+
}
|
|
49
|
+
/** Returns localized abbreviated day names beginning with Sunday. */
|
|
50
|
+
export function getDays() {
|
|
51
|
+
return [
|
|
52
|
+
loc('tecton.element.calendar.days.short.Sunday'),
|
|
53
|
+
loc('tecton.element.calendar.days.short.Monday'),
|
|
54
|
+
loc('tecton.element.calendar.days.short.Tuesday'),
|
|
55
|
+
loc('tecton.element.calendar.days.short.Wednesday'),
|
|
56
|
+
loc('tecton.element.calendar.days.short.Thursday'),
|
|
57
|
+
loc('tecton.element.calendar.days.short.Friday'),
|
|
58
|
+
loc('tecton.element.calendar.days.short.Saturday'),
|
|
59
|
+
];
|
|
60
|
+
}
|
|
61
|
+
/** Returns localized full day names beginning with Sunday. */
|
|
62
|
+
export function getDaysOfWeek() {
|
|
63
|
+
return [
|
|
64
|
+
loc('tecton.element.calendar.days.Sunday'),
|
|
65
|
+
loc('tecton.element.calendar.days.Monday'),
|
|
66
|
+
loc('tecton.element.calendar.days.Tuesday'),
|
|
67
|
+
loc('tecton.element.calendar.days.Wednesday'),
|
|
68
|
+
loc('tecton.element.calendar.days.Thursday'),
|
|
69
|
+
loc('tecton.element.calendar.days.Friday'),
|
|
70
|
+
loc('tecton.element.calendar.days.Saturday'),
|
|
71
|
+
];
|
|
72
|
+
}
|
|
73
|
+
/** Parses the date picker's public ISO-only value contract. */
|
|
74
|
+
export function parseDatePickerValue(value) {
|
|
75
|
+
if (!value || !isoDatePattern.test(value))
|
|
76
|
+
return;
|
|
77
|
+
const [year, month, day] = value.split('-').map(Number);
|
|
78
|
+
return dateFromParts(year, month, day);
|
|
79
|
+
}
|
|
80
|
+
/** Normalizes a legacy string or Moment-like value for the date picker's ISO-only calendar. */
|
|
81
|
+
export function normalizeDatePickerValue(value) {
|
|
82
|
+
if (!value)
|
|
83
|
+
return;
|
|
84
|
+
let date;
|
|
85
|
+
if (value instanceof Date) {
|
|
86
|
+
date = value;
|
|
87
|
+
}
|
|
88
|
+
else if (isMomentLike(value)) {
|
|
89
|
+
try {
|
|
90
|
+
date = value.toDate();
|
|
91
|
+
}
|
|
92
|
+
catch (_a) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
const input = value.trim();
|
|
98
|
+
if (!input)
|
|
99
|
+
return;
|
|
100
|
+
date = parseDatePickerValue(input);
|
|
101
|
+
if (!date) {
|
|
102
|
+
const isoLikeParts = input.match(isoLikeDatePattern);
|
|
103
|
+
const slashParts = input.match(slashDatePattern);
|
|
104
|
+
if (isoLikeParts) {
|
|
105
|
+
date = dateFromParts(Number(isoLikeParts[1]), Number(isoLikeParts[2]), Number(isoLikeParts[3]));
|
|
106
|
+
}
|
|
107
|
+
else if (slashParts) {
|
|
108
|
+
const parsedYear = Number(slashParts[3]);
|
|
109
|
+
const year = parsedYear < 100 ? (parsedYear >= 69 ? 1900 : 2000) + parsedYear : parsedYear;
|
|
110
|
+
date = dateFromParts(year, Number(slashParts[1]), Number(slashParts[2]));
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
const parsedDate = new Date(input);
|
|
114
|
+
date = isValidDate(parsedDate)
|
|
115
|
+
? dateFromParts(parsedDate.getFullYear(), parsedDate.getMonth() + 1, parsedDate.getDate())
|
|
116
|
+
: undefined;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return formatDateISO(date);
|
|
121
|
+
}
|
|
122
|
+
/** Returns the month and year used to initialize the date picker grid. */
|
|
123
|
+
export function setupMonthYear(value = new Date()) {
|
|
124
|
+
return {
|
|
125
|
+
monthIndex: value.getMonth(),
|
|
126
|
+
selectedYear: value.getFullYear(),
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
/** Returns the enabled day indexes represented by a calendar checksum. */
|
|
130
|
+
export function getValidDaysOfWeek(checksum = 127) {
|
|
131
|
+
const validDays = [];
|
|
132
|
+
for (let day = 0; day < 7; day++) {
|
|
133
|
+
if (checksum & (1 << day))
|
|
134
|
+
validDays.push(day);
|
|
135
|
+
}
|
|
136
|
+
return checksum > 0 ? validDays : [];
|
|
137
|
+
}
|
|
138
|
+
/** Determines whether a date satisfies the configured bounds and cutoff. */
|
|
139
|
+
export function baseValidation(dateValidators, now, newDate) {
|
|
140
|
+
const isNewDateBeforeStartDate = isAfter(dateValidators === null || dateValidators === void 0 ? void 0 : dateValidators.startDate, newDate);
|
|
141
|
+
const isNewDateAfterEndDate = isBefore(dateValidators === null || dateValidators === void 0 ? void 0 : dateValidators.endDate, newDate);
|
|
142
|
+
const isNowAfterCutoffTime = isSameDay(now, newDate) && isAfter(now, dateValidators === null || dateValidators === void 0 ? void 0 : dateValidators.cutOffTime);
|
|
143
|
+
return !(isNewDateBeforeStartDate || isNowAfterCutoffTime || isNewDateAfterEndDate);
|
|
144
|
+
}
|
|
145
|
+
/** Determines whether a date's weekday is enabled. */
|
|
146
|
+
export function validateAgainstChecksum(validDaysOfWeek, date) {
|
|
147
|
+
return validDaysOfWeek.includes(date.getDay());
|
|
148
|
+
}
|
|
149
|
+
/** Determines whether a date is absent from a blacklist. */
|
|
150
|
+
export function validateAgainstBlacklist(invalidDates, date) {
|
|
151
|
+
return !validateAgainstWhitelist(invalidDates, date);
|
|
152
|
+
}
|
|
153
|
+
/** Determines whether a date is present in a whitelist. */
|
|
154
|
+
export function validateAgainstWhitelist(validDates, date) {
|
|
155
|
+
return validDates.some(validDate => isSameDay(validDate, date));
|
|
156
|
+
}
|
|
157
|
+
function assumeYear(month, day, assume) {
|
|
158
|
+
const monthDay = `${month.padStart(2, '0')}/${day.padStart(2, '0')}`;
|
|
159
|
+
const now = new Date();
|
|
160
|
+
const currentMonthDay = `${now.getMonth() + 1}`.padStart(2, '0') + `/${now.getDate()}`.padStart(2, '0');
|
|
161
|
+
let year = now.getFullYear();
|
|
162
|
+
if (assume === 'future' && currentMonthDay > monthDay)
|
|
163
|
+
year++;
|
|
164
|
+
if (assume === 'past' && currentMonthDay < monthDay)
|
|
165
|
+
year--;
|
|
166
|
+
return `${year}`;
|
|
167
|
+
}
|
|
168
|
+
function parseDatePickerValues(values) {
|
|
169
|
+
return (values || []).map(parseDatePickerValue).filter((date) => !!date);
|
|
170
|
+
}
|
|
171
|
+
function dateFromParts(year, month, day) {
|
|
172
|
+
const date = new Date(0);
|
|
173
|
+
date.setFullYear(year, month - 1, day);
|
|
174
|
+
date.setHours(0, 0, 0, 0);
|
|
175
|
+
if (date.getFullYear() !== year || date.getMonth() !== month - 1 || date.getDate() !== day)
|
|
176
|
+
return;
|
|
177
|
+
return date;
|
|
178
|
+
}
|
|
179
|
+
function isMomentLike(value) {
|
|
180
|
+
return typeof value !== 'string' && typeof (value === null || value === void 0 ? void 0 : value.toDate) === 'function';
|
|
181
|
+
}
|
|
182
|
+
/** Formats a date using one of the date picker's supported numeric display formats. */
|
|
183
|
+
export function formatDisplayDate(date, displayFormat) {
|
|
184
|
+
const separator = displayFormat.includes('-') ? '-' : '/';
|
|
185
|
+
const month = `${date.getMonth() + 1}`.padStart(2, '0');
|
|
186
|
+
const day = `${date.getDate()}`.padStart(2, '0');
|
|
187
|
+
const year = `${date.getFullYear()}`;
|
|
188
|
+
const dateParts = displayFormat.startsWith('YYYY')
|
|
189
|
+
? [year, month, day]
|
|
190
|
+
: displayFormat.startsWith('DD')
|
|
191
|
+
? [day, month, year]
|
|
192
|
+
: [month, day, year];
|
|
193
|
+
return dateParts.join(separator);
|
|
194
|
+
}
|
|
195
|
+
/** Formats a date using the legacy Moment-style tokens accepted by q2-calendar. */
|
|
196
|
+
export function formatLegacyDisplayDate(date, displayFormat) {
|
|
197
|
+
const dateFnsFormat = displayFormat
|
|
198
|
+
.replace(/[d]/g, 'E')
|
|
199
|
+
.replace(/[D]/g, 'd')
|
|
200
|
+
.replace(/[Y]/g, 'y')
|
|
201
|
+
.replace(/[l]/g, 'P')
|
|
202
|
+
.replace(/[W]/g, 'I');
|
|
203
|
+
return formatDate(date, dateFnsFormat);
|
|
204
|
+
}
|
|
205
|
+
/** Determines whether a date satisfies every configured selection constraint. */
|
|
206
|
+
export function isDateSelectable(date, constraints) {
|
|
207
|
+
const cutoffTime = new Date(constraints.cutoffTime || '');
|
|
208
|
+
const withinBounds = baseValidation({
|
|
209
|
+
startDate: parseDatePickerValue(constraints.startDate),
|
|
210
|
+
endDate: parseDatePickerValue(constraints.endDate),
|
|
211
|
+
cutOffTime: isValidDate(cutoffTime) ? cutoffTime : undefined,
|
|
212
|
+
}, new Date(), date);
|
|
213
|
+
const validDates = parseDatePickerValues(constraints.validDates);
|
|
214
|
+
const matchesAllowedDates = (validDates === null || validDates === void 0 ? void 0 : validDates.length)
|
|
215
|
+
? validateAgainstWhitelist(validDates, date)
|
|
216
|
+
: validateAgainstChecksum(getValidDaysOfWeek(constraints.daysOfWeekChecksum), date);
|
|
217
|
+
return (withinBounds &&
|
|
218
|
+
matchesAllowedDates &&
|
|
219
|
+
validateAgainstBlacklist(parseDatePickerValues(constraints.invalidDates), date));
|
|
220
|
+
}
|
|
221
|
+
/** Determines whether every date in an inclusive range is selectable. */
|
|
222
|
+
export function isRangeSelectable(start, end, constraints) {
|
|
223
|
+
for (let date = start; date.getTime() <= end.getTime(); date = addDays(date, 1)) {
|
|
224
|
+
if (!isDateSelectable(date, constraints))
|
|
225
|
+
return false;
|
|
226
|
+
}
|
|
227
|
+
return true;
|
|
228
|
+
}
|
|
229
|
+
/** Resolves a date-picker localization key or mapped default string. */
|
|
230
|
+
export function localizeDatePickerString(value, substitutions = {}) {
|
|
231
|
+
if (!value)
|
|
232
|
+
return '';
|
|
233
|
+
return loc(defaultDatePickerStringKeys[value] || value, substitutions);
|
|
234
|
+
}
|
|
235
|
+
/** Returns a supported display format, falling back to the date-picker default. */
|
|
236
|
+
export function normalizeDisplayFormat(displayFormat) {
|
|
237
|
+
const normalizedFormat = displayFormat === null || displayFormat === void 0 ? void 0 : displayFormat.toUpperCase();
|
|
238
|
+
return supportedDisplayFormats.includes(normalizedFormat) ? normalizedFormat : defaultDisplayFormat;
|
|
239
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -244,7 +244,7 @@ export function renderLabel(target) {
|
|
|
244
244
|
return (h("label", { htmlFor: target.inputId, class: labelClasses.join(' ') }, h("slot", { name: "label" }, label ? loc(label) : undefined, helpText)));
|
|
245
245
|
}
|
|
246
246
|
export function hasSlotContent(target, slotName) {
|
|
247
|
-
return target.
|
|
247
|
+
return Array.from(target.children).some(child => child.getAttribute('slot') === slotName);
|
|
248
248
|
}
|
|
249
249
|
export function handleAriaLabel(target) {
|
|
250
250
|
const { ariaLabel } = target;
|
|
@@ -336,7 +336,7 @@ export const resizeIframe = () => {
|
|
|
336
336
|
// Handling color attribute (deprecated)
|
|
337
337
|
export const handleColor = (target) => {
|
|
338
338
|
if (!target.intent && ['primary', 'secondary'].includes(target.color)) {
|
|
339
|
-
target.intent =
|
|
339
|
+
target.intent = target.color;
|
|
340
340
|
target.color = undefined;
|
|
341
341
|
}
|
|
342
342
|
};
|
|
@@ -40,6 +40,7 @@ const getDefaultEnStrings = () => {
|
|
|
40
40
|
const BASE_THEME_CSS_CONTENT = readFileSync(join(__dirname, '../../../', BASE_THEME_CSS), 'utf8');
|
|
41
41
|
const UTILITIES_CSS_CONTENT = readFileSync(join(__dirname, '../../../', UTILITIES_CSS), 'utf8');
|
|
42
42
|
export const setupPage = async (page, content, options = {}) => {
|
|
43
|
+
var _a;
|
|
43
44
|
// Bootstrap localization BEFORE setContent so that any Stencil class-field initializers
|
|
44
45
|
// that call loc() (e.g., q2-select's `listLabel: string = loc('tecton.element.select.listLabel')`)
|
|
45
46
|
// see the shim during hydration. addInitScript runs on every new document before any page script.
|
|
@@ -92,15 +93,24 @@ export const setupPage = async (page, content, options = {}) => {
|
|
|
92
93
|
};
|
|
93
94
|
}, mergedStrings);
|
|
94
95
|
}
|
|
95
|
-
|
|
96
|
+
// Inject --t-prefers-motion before any element is parsed so the @container style()
|
|
97
|
+
// query in host.scss matches from the very first component render, preventing the
|
|
98
|
+
// race where Stencil's microtask-scheduled render fires before the CSS variable is
|
|
99
|
+
// set and 0.4s transitions start at full speed.
|
|
100
|
+
const motion = (_a = options.motion) !== null && _a !== void 0 ? _a : 'reduced';
|
|
101
|
+
await page.setContent(`<style>body{--t-prefers-motion:"${motion}"!important}</style>${content}`);
|
|
96
102
|
// `data-tecton-module` gates the rules in q2-tecton-utilities.css (focus rings,
|
|
97
103
|
// normalize, etc.). Match the preview page's <body data-tecton-module>.
|
|
98
|
-
await page.evaluate(() =>
|
|
104
|
+
await page.evaluate(() => {
|
|
105
|
+
document.body.setAttribute('data-tecton-module', '');
|
|
106
|
+
});
|
|
99
107
|
// Mirror q2-tecton-sdk's insertDefaultThemeTag: prepend theme + utilities to
|
|
100
108
|
// <head> so they sit BEFORE the component-injected <style> tags Stencil emits.
|
|
101
109
|
// addStyleTag would append, placing utilities last in the cascade — its
|
|
102
110
|
// [data-tecton-module] *:focus-visible rule ties on specificity with component
|
|
103
111
|
// focus rules, so document order decides, and appending makes utilities win.
|
|
112
|
+
// These arrive after Stencil's first render (evaluate runs in a new browser task),
|
|
113
|
+
// but the re-render is fast and the cascade position is what matters.
|
|
104
114
|
await page.evaluate(({ baseTheme, utilities }) => {
|
|
105
115
|
const head = document.head;
|
|
106
116
|
const firstChild = head.firstChild;
|
|
@@ -121,4 +131,8 @@ export const setupPage = async (page, content, options = {}) => {
|
|
|
121
131
|
});
|
|
122
132
|
}
|
|
123
133
|
await page.locator('[stencil-hydrated]').first().waitFor();
|
|
134
|
+
// Two rAFs after hydration: frame 1 lets microtask-batched nested renders finish
|
|
135
|
+
// (q2-btn inside q2-input/q2-calendar, q2-pill inside q2-list); frame 2 ensures
|
|
136
|
+
// the layout from those nested renders is committed before the screenshot.
|
|
137
|
+
await page.evaluate(() => new Promise(r => requestAnimationFrame(() => requestAnimationFrame(() => r()))));
|
|
124
138
|
};
|