q2-tecton-elements 1.50.1 → 1.51.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/cjs/click-elsewhere_2.cjs.entry.js +21 -12
- package/dist/cjs/click-elsewhere_2.cjs.entry.js.map +1 -1
- package/dist/cjs/index-9aa4a776.js +235 -0
- package/dist/cjs/index-9aa4a776.js.map +1 -0
- package/dist/cjs/{index-43010ce4.js → index-f69742cf.js} +1 -1
- package/dist/cjs/{index-43010ce4.js.map → index-f69742cf.js.map} +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/q2-action-group.cjs.entry.js +50 -0
- package/dist/cjs/q2-action-group.cjs.entry.js.map +1 -0
- package/dist/cjs/q2-action-sheet.cjs.entry.js +1364 -3
- package/dist/cjs/q2-action-sheet.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-avatar.cjs.entry.js +1 -1
- package/dist/cjs/q2-badge_7.cjs.entry.js +23 -13
- package/dist/cjs/q2-badge_7.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-calendar.cjs.entry.js +2 -2
- 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 +1 -1
- package/dist/cjs/q2-chart-area.cjs.entry.js +2 -2
- package/dist/cjs/q2-chart-area.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-chart-bar.cjs.entry.js +2 -2
- package/dist/cjs/q2-chart-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-chart-donut.cjs.entry.js +16 -16
- package/dist/cjs/q2-chart-donut.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-checkbox-group.cjs.entry.js +2 -2
- package/dist/cjs/q2-checkbox-group.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/q2-currency.cjs.entry.js +1 -1
- package/dist/cjs/q2-data-table.cjs.entry.js +62 -62
- package/dist/cjs/q2-data-table.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-detail.cjs.entry.js +2 -2
- package/dist/cjs/q2-dropdown-item.cjs.entry.js +2 -2
- package/dist/cjs/q2-dropdown-item.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-dropdown.cjs.entry.js +77 -5
- package/dist/cjs/q2-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-editable-field.cjs.entry.js +1 -1
- package/dist/cjs/q2-formatted-text.cjs.entry.js +72 -0
- package/dist/cjs/q2-formatted-text.cjs.entry.js.map +1 -0
- package/dist/cjs/q2-item.cjs.entry.js +2 -2
- package/dist/cjs/q2-legend.cjs.entry.js +2 -2
- package/dist/cjs/q2-legend.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-link.cjs.entry.js +64 -0
- package/dist/cjs/q2-link.cjs.entry.js.map +1 -0
- package/dist/cjs/q2-list.cjs.entry.js +2 -2
- package/dist/cjs/q2-loc.cjs.entry.js +2 -2
- package/dist/cjs/q2-message.cjs.entry.js +2 -2
- package/dist/cjs/q2-month-picker.cjs.entry.js +3 -3
- package/dist/cjs/q2-optgroup.cjs.entry.js +2 -2
- package/dist/cjs/q2-option-list.cjs.entry.js +9 -4
- package/dist/cjs/q2-option-list.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-option.cjs.entry.js +1 -1
- package/dist/cjs/q2-pagination.cjs.entry.js +90 -9
- package/dist/cjs/q2-pagination.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-pill.cjs.entry.js +26 -5
- package/dist/cjs/q2-pill.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-radio-group.cjs.entry.js +2 -2
- package/dist/cjs/q2-radio-group.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-radio.cjs.entry.js +1 -1
- package/dist/cjs/q2-relative-time.cjs.entry.js +3 -3
- package/dist/cjs/q2-resize-observer.cjs.entry.js +96 -0
- package/dist/cjs/q2-resize-observer.cjs.entry.js.map +1 -0
- package/dist/cjs/q2-section.cjs.entry.js +27 -3
- package/dist/cjs/q2-section.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-select.cjs.entry.js +7 -6
- package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-stepper-pane.cjs.entry.js +1 -1
- package/dist/cjs/q2-stepper-vertical.cjs.entry.js +2 -2
- package/dist/cjs/q2-stepper.cjs.entry.js +39 -3
- package/dist/cjs/q2-stepper.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-tag.cjs.entry.js +3 -2
- package/dist/cjs/q2-tag.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
- package/dist/cjs/q2-textarea.cjs.entry.js +46 -11
- package/dist/cjs/q2-textarea.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-tooltip.cjs.entry.js +2 -2
- package/dist/cjs/q2-tooltip.cjs.entry.js.map +1 -1
- package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
- package/dist/collection/collection-manifest.json +4 -0
- package/dist/collection/components/q2-action-group/q2-action-group.css +99 -0
- package/dist/collection/components/q2-action-group/q2-action-group.js +120 -0
- package/dist/collection/components/q2-action-group/q2-action-group.js.map +1 -0
- package/dist/collection/components/q2-action-group/test/q2-action-group.e2e.js +30 -0
- package/dist/collection/components/q2-action-group/test/q2-action-group.e2e.js.map +1 -0
- package/dist/collection/components/q2-action-group/test/q2-action-group.spec.js +156 -0
- package/dist/collection/components/q2-action-group/test/q2-action-group.spec.js.map +1 -0
- package/dist/collection/components/q2-action-sheet/q2-action-sheet.js +3 -2
- package/dist/collection/components/q2-action-sheet/q2-action-sheet.js.map +1 -1
- package/dist/collection/components/q2-avatar/q2-avatar.js +1 -1
- package/dist/collection/components/q2-avatar/test/q2-avatar-test.e2e.js +14 -9
- package/dist/collection/components/q2-avatar/test/q2-avatar-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-badge/test/q2-badge-test.e2e.js +14 -9
- package/dist/collection/components/q2-badge/test/q2-badge-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-btn/test/q2-btn-test.e2e.js +14 -9
- package/dist/collection/components/q2-btn/test/q2-btn-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-calendar/q2-month-picker.js +2 -2
- package/dist/collection/components/q2-calendar/test/q2-calendar-test.e2e.js +227 -223
- package/dist/collection/components/q2-calendar/test/q2-calendar-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-card/test/q2-card-test.e2e.js +12 -7
- package/dist/collection/components/q2-card/test/q2-card-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-carousel/test/q2-carousel-test.e2e.js +49 -45
- package/dist/collection/components/q2-carousel/test/q2-carousel-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js +2 -2
- package/dist/collection/components/q2-chart-area/q2-chart-area.js +2 -2
- package/dist/collection/components/q2-chart-area/q2-chart-area.js.map +1 -1
- package/dist/collection/components/q2-chart-area/test/q2-chart-area-test.e2e.js +12 -7
- package/dist/collection/components/q2-chart-area/test/q2-chart-area-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-chart-bar/q2-chart-bar.js +2 -2
- package/dist/collection/components/q2-chart-bar/q2-chart-bar.js.map +1 -1
- package/dist/collection/components/q2-chart-bar/test/q2-chart-bar-test.e2e.js +16 -11
- package/dist/collection/components/q2-chart-bar/test/q2-chart-bar-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +15 -15
- package/dist/collection/components/q2-chart-donut/q2-chart-donut.js.map +1 -1
- package/dist/collection/components/q2-chart-donut/test/q2-chart-donut-test.e2e.js +32 -26
- package/dist/collection/components/q2-chart-donut/test/q2-chart-donut-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-checkbox/test/q2-checkbox-test.e2e.js +12 -7
- package/dist/collection/components/q2-checkbox/test/q2-checkbox-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js +2 -2
- package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js.map +1 -1
- package/dist/collection/components/q2-checkbox-group/test/q2-checkbox-group-test.e2e.js +22 -17
- package/dist/collection/components/q2-checkbox-group/test/q2-checkbox-group-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-currency/q2-currency.js +1 -1
- package/dist/collection/components/q2-currency/test/q2-currency-test.e2e.js +12 -7
- package/dist/collection/components/q2-currency/test/q2-currency-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-data-table/q2-data-table.js +104 -104
- package/dist/collection/components/q2-data-table/q2-data-table.js.map +1 -1
- package/dist/collection/components/q2-data-table/test/q2-data-table-test.e2e.js +42 -24
- package/dist/collection/components/q2-data-table/test/q2-data-table-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-detail/q2-detail.js +1 -1
- package/dist/collection/components/q2-detail/test/q2-detail-test.e2e.js +12 -7
- package/dist/collection/components/q2-detail/test/q2-detail-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-dropdown/q2-dropdown.js +201 -4
- package/dist/collection/components/q2-dropdown/q2-dropdown.js.map +1 -1
- package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js +305 -124
- package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js +1 -1
- package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js.map +1 -1
- package/dist/collection/components/q2-dropdown-item/test/q2-dropdown-item-test.e2e.js +18 -13
- package/dist/collection/components/q2-dropdown-item/test/q2-dropdown-item-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-editable-field/test/q2-editable-field-test.e2e.js +14 -18
- package/dist/collection/components/q2-editable-field/test/q2-editable-field-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-formatted-text/q2-formatted-text.css +94 -0
- package/dist/collection/components/q2-formatted-text/q2-formatted-text.js +230 -0
- package/dist/collection/components/q2-formatted-text/q2-formatted-text.js.map +1 -0
- package/dist/collection/components/q2-formatted-text/test/q2-formatted-text-test.e2e.js +430 -0
- package/dist/collection/components/q2-formatted-text/test/q2-formatted-text-test.e2e.js.map +1 -0
- package/dist/collection/components/q2-icon/test/q2-icon-test.e2e.js +14 -9
- package/dist/collection/components/q2-icon/test/q2-icon-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-input/q2-input.css +9 -0
- package/dist/collection/components/q2-input/q2-input.js +7 -8
- package/dist/collection/components/q2-input/q2-input.js.map +1 -1
- package/dist/collection/components/q2-input/test/q2-input-test.e2e.js +50 -33
- package/dist/collection/components/q2-input/test/q2-input-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-item/q2-item.js +1 -1
- package/dist/collection/components/q2-item/test/q2-item-test.e2e.js +32 -7
- package/dist/collection/components/q2-item/test/q2-item-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-legend/q2-legend.css +1 -1
- package/dist/collection/components/q2-legend/q2-legend.js +1 -1
- package/dist/collection/components/q2-legend/test/q2-legend-test.e2e.js +13 -8
- package/dist/collection/components/q2-legend/test/q2-legend-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-link/q2-link.css +146 -0
- package/dist/collection/components/q2-link/q2-link.js +242 -0
- package/dist/collection/components/q2-link/q2-link.js.map +1 -0
- package/dist/collection/components/q2-link/test/q2-link-test.e2e.js +145 -0
- package/dist/collection/components/q2-link/test/q2-link-test.e2e.js.map +1 -0
- package/dist/collection/components/q2-list/q2-list.js +1 -1
- package/dist/collection/components/q2-list/test/q2-list-test.e2e.js +12 -7
- package/dist/collection/components/q2-list/test/q2-list-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-loading/test/q2-loading-element-test.e2e.js +14 -9
- package/dist/collection/components/q2-loading/test/q2-loading-element-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-loading/test/q2-loading-test.e2e.js +14 -9
- package/dist/collection/components/q2-loading/test/q2-loading-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-loc/q2-loc.js +1 -1
- package/dist/collection/components/q2-loc/test/q2-loc-test.e2e.js +16 -11
- package/dist/collection/components/q2-loc/test/q2-loc-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-message/q2-message.js +1 -1
- package/dist/collection/components/q2-message/test/q2-message-test.e2e.js +14 -9
- package/dist/collection/components/q2-message/test/q2-message-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-optgroup/q2-optgroup.js +1 -1
- package/dist/collection/components/q2-optgroup/test/q2-optgroup-test.e2e.js +20 -13
- package/dist/collection/components/q2-optgroup/test/q2-optgroup-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-option/q2-option.js +1 -1
- package/dist/collection/components/q2-option/test/q2-option-test.e2e.js +28 -12
- package/dist/collection/components/q2-option/test/q2-option-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-option-list/q2-option-list.js +7 -5
- package/dist/collection/components/q2-option-list/q2-option-list.js.map +1 -1
- package/dist/collection/components/q2-option-list/test/q2-option-list-test.e2e.js +415 -405
- package/dist/collection/components/q2-option-list/test/q2-option-list-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-pagination/q2-pagination.js +230 -14
- package/dist/collection/components/q2-pagination/q2-pagination.js.map +1 -1
- package/dist/collection/components/q2-pagination/test/q2-pagination-test.e2e.js +138 -15
- package/dist/collection/components/q2-pagination/test/q2-pagination-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-pill/q2-pill.css +12 -0
- package/dist/collection/components/q2-pill/q2-pill.js +43 -3
- package/dist/collection/components/q2-pill/q2-pill.js.map +1 -1
- package/dist/collection/components/q2-pill/test/q2-pill-test.e2e.js +412 -212
- package/dist/collection/components/q2-pill/test/q2-pill-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-popover/q2-popover.js +37 -11
- package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
- package/dist/collection/components/q2-popover/test/q2-popover-test.e2e.js +296 -236
- package/dist/collection/components/q2-popover/test/q2-popover-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-popover/test/q2-popover-test.spec.js +3 -3
- package/dist/collection/components/q2-popover/test/q2-popover-test.spec.js.map +1 -1
- package/dist/collection/components/q2-radio/test/q2-radio-test.e2e.js +21 -7
- package/dist/collection/components/q2-radio/test/q2-radio-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-radio-group/q2-radio-group.js +2 -2
- package/dist/collection/components/q2-radio-group/q2-radio-group.js.map +1 -1
- package/dist/collection/components/q2-radio-group/test/q2-radio-group-test.e2e.js +32 -26
- package/dist/collection/components/q2-radio-group/test/q2-radio-group-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
- package/dist/collection/components/q2-relative-time/test/q2-relative-time-test.e2e.js +12 -7
- package/dist/collection/components/q2-relative-time/test/q2-relative-time-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-resize-observer/q2-resize-observer.css +71 -0
- package/dist/collection/components/q2-resize-observer/q2-resize-observer.js +166 -0
- package/dist/collection/components/q2-resize-observer/q2-resize-observer.js.map +1 -0
- package/dist/collection/components/q2-resize-observer/test/q2-resize-observer.e2e.js +83 -0
- package/dist/collection/components/q2-resize-observer/test/q2-resize-observer.e2e.js.map +1 -0
- package/dist/collection/components/q2-resize-observer/test/q2-resize-observer.spec.js +66 -0
- package/dist/collection/components/q2-resize-observer/test/q2-resize-observer.spec.js.map +1 -0
- package/dist/collection/components/q2-section/q2-section.js +78 -2
- package/dist/collection/components/q2-section/q2-section.js.map +1 -1
- package/dist/collection/components/q2-section/test/q2-section-test.e2e.js +39 -9
- package/dist/collection/components/q2-section/test/q2-section-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-select/q2-select.js +23 -5
- package/dist/collection/components/q2-select/q2-select.js.map +1 -1
- package/dist/collection/components/q2-select/test/q2-select-test.e2e.js +695 -676
- package/dist/collection/components/q2-select/test/q2-select-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-stepper/q2-stepper.js +76 -2
- package/dist/collection/components/q2-stepper/q2-stepper.js.map +1 -1
- package/dist/collection/components/q2-stepper/test/q2-stepper-test.e2e.js +183 -87
- package/dist/collection/components/q2-stepper/test/q2-stepper-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js +2 -2
- package/dist/collection/components/q2-stepper-pane/test/q2-stepper-pane-test.e2e.js +20 -9
- package/dist/collection/components/q2-stepper-pane/test/q2-stepper-pane-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +1 -1
- package/dist/collection/components/q2-stepper-vertical/test/q2-stepper-vertical-test.e2e.js +71 -67
- package/dist/collection/components/q2-stepper-vertical/test/q2-stepper-vertical-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-tab-container/q2-tab-container.js +50 -7
- package/dist/collection/components/q2-tab-container/q2-tab-container.js.map +1 -1
- package/dist/collection/components/q2-tab-container/test/q2-tab-container-test.e2e.js +89 -65
- package/dist/collection/components/q2-tab-container/test/q2-tab-container-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
- package/dist/collection/components/q2-tab-pane/test/q2-tab-pane-test.e2e.js +14 -9
- package/dist/collection/components/q2-tab-pane/test/q2-tab-pane-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-tag/q2-tag.js +19 -1
- package/dist/collection/components/q2-tag/q2-tag.js.map +1 -1
- package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js +47 -28
- package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-textarea/q2-textarea.js +51 -13
- package/dist/collection/components/q2-textarea/q2-textarea.js.map +1 -1
- package/dist/collection/components/q2-textarea/test/q2-textarea-test.e2e.js +31 -10
- package/dist/collection/components/q2-textarea/test/q2-textarea-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-tooltip/q2-tooltip.css +5 -2
- package/dist/collection/components/q2-tooltip/test/q2-tooltip-test.e2e.js +51 -13
- package/dist/collection/components/q2-tooltip/test/q2-tooltip-test.e2e.js.map +1 -1
- package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
- package/dist/collection/components/tecton-tab-pane/test/tecton-tab-pane-test.e2e.js +18 -13
- package/dist/collection/components/tecton-tab-pane/test/tecton-tab-pane-test.e2e.js.map +1 -1
- package/dist/collection/utils/helpers.js +65 -0
- package/dist/collection/utils/helpers.js.map +1 -1
- package/dist/collection/utils/index.js +11 -11
- package/dist/collection/utils/index.js.map +1 -1
- package/dist/collection/utils/sanitize-html-string.js +10 -0
- package/dist/collection/utils/sanitize-html-string.js.map +1 -0
- package/dist/collection/utils/sanitize-regex-string.js +4 -0
- package/dist/collection/utils/sanitize-regex-string.js.map +1 -0
- package/dist/components/index.js +8 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/index2.js +11 -1356
- package/dist/components/index2.js.map +1 -1
- package/dist/components/q2-action-group.d.ts +11 -0
- package/dist/components/q2-action-group.js +75 -0
- package/dist/components/q2-action-group.js.map +1 -0
- package/dist/components/q2-action-sheet.js +1363 -2
- package/dist/components/q2-action-sheet.js.map +1 -1
- package/dist/components/q2-avatar2.js +1 -1
- package/dist/components/q2-btn2.js +1 -1
- package/dist/components/q2-carousel-pane.js +2 -2
- package/dist/components/q2-chart-area.js +1 -1
- package/dist/components/q2-chart-area.js.map +1 -1
- package/dist/components/q2-chart-bar.js +1 -1
- package/dist/components/q2-chart-bar.js.map +1 -1
- package/dist/components/q2-chart-donut.js +15 -15
- package/dist/components/q2-chart-donut.js.map +1 -1
- package/dist/components/q2-checkbox-group.js +2 -2
- package/dist/components/q2-checkbox-group.js.map +1 -1
- package/dist/components/q2-currency.js +1 -1
- package/dist/components/q2-data-table.js +64 -64
- package/dist/components/q2-data-table.js.map +1 -1
- package/dist/components/q2-detail.js +1 -1
- package/dist/components/q2-dropdown-item2.js +1 -1
- package/dist/components/q2-dropdown-item2.js.map +1 -1
- package/dist/components/q2-dropdown.js +82 -5
- package/dist/components/q2-dropdown.js.map +1 -1
- package/dist/components/q2-formatted-text.d.ts +11 -0
- package/dist/components/q2-formatted-text.js +101 -0
- package/dist/components/q2-formatted-text.js.map +1 -0
- package/dist/components/q2-input2.js +4 -5
- package/dist/components/q2-input2.js.map +1 -1
- package/dist/components/q2-item.js +1 -1
- package/dist/components/q2-legend2.js +2 -2
- package/dist/components/q2-legend2.js.map +1 -1
- package/dist/components/q2-link.d.ts +11 -0
- package/dist/components/q2-link.js +93 -0
- package/dist/components/q2-link.js.map +1 -0
- package/dist/components/q2-list.js +1 -1
- package/dist/components/q2-loc.js +1 -1
- package/dist/components/q2-message2.js +1 -1
- package/dist/components/q2-month-picker.js +2 -2
- package/dist/components/q2-optgroup2.js +1 -1
- package/dist/components/q2-option-list2.js +8 -3
- package/dist/components/q2-option-list2.js.map +1 -1
- package/dist/components/q2-option2.js +1 -1
- package/dist/components/q2-pagination.js +97 -10
- package/dist/components/q2-pagination.js.map +1 -1
- package/dist/components/q2-pill.js +29 -5
- package/dist/components/q2-pill.js.map +1 -1
- package/dist/components/q2-popover2.js +22 -12
- package/dist/components/q2-popover2.js.map +1 -1
- package/dist/components/q2-radio-group.js +2 -2
- package/dist/components/q2-radio-group.js.map +1 -1
- package/dist/components/q2-relative-time.js +1 -1
- package/dist/components/q2-resize-observer.d.ts +11 -0
- package/dist/components/q2-resize-observer.js +8 -0
- package/dist/components/q2-resize-observer.js.map +1 -0
- package/dist/components/q2-resize-observer2.js +112 -0
- package/dist/components/q2-resize-observer2.js.map +1 -0
- package/dist/components/q2-section.js +30 -4
- package/dist/components/q2-section.js.map +1 -1
- package/dist/components/q2-select2.js +7 -5
- package/dist/components/q2-select2.js.map +1 -1
- package/dist/components/q2-stepper-vertical.js +1 -1
- package/dist/components/q2-stepper.js +40 -3
- package/dist/components/q2-stepper.js.map +1 -1
- package/dist/components/q2-tab-container.js +20 -8
- package/dist/components/q2-tab-container.js.map +1 -1
- package/dist/components/q2-tab-pane.js +1 -1
- package/dist/components/q2-tag.js +3 -1
- package/dist/components/q2-tag.js.map +1 -1
- package/dist/components/q2-textarea.js +49 -12
- package/dist/components/q2-textarea.js.map +1 -1
- package/dist/components/q2-tooltip.js +1 -1
- package/dist/components/q2-tooltip.js.map +1 -1
- package/dist/components/tecton-tab-pane.js +2 -2
- package/dist/esm/click-elsewhere_2.entry.js +21 -12
- package/dist/esm/click-elsewhere_2.entry.js.map +1 -1
- package/dist/esm/{index-c6d74f10.js → index-3184c760.js} +1 -1
- package/dist/esm/{index-c6d74f10.js.map → index-3184c760.js.map} +1 -1
- package/dist/esm/index-844fc010.js +211 -0
- package/dist/esm/index-844fc010.js.map +1 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/q2-action-group.entry.js +46 -0
- package/dist/esm/q2-action-group.entry.js.map +1 -0
- package/dist/esm/q2-action-sheet.entry.js +1363 -2
- package/dist/esm/q2-action-sheet.entry.js.map +1 -1
- package/dist/esm/q2-avatar.entry.js +1 -1
- package/dist/esm/q2-badge_7.entry.js +23 -13
- package/dist/esm/q2-badge_7.entry.js.map +1 -1
- package/dist/esm/q2-calendar.entry.js +2 -2
- 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 +1 -1
- package/dist/esm/q2-chart-area.entry.js +2 -2
- package/dist/esm/q2-chart-area.entry.js.map +1 -1
- package/dist/esm/q2-chart-bar.entry.js +2 -2
- package/dist/esm/q2-chart-bar.entry.js.map +1 -1
- package/dist/esm/q2-chart-donut.entry.js +16 -16
- package/dist/esm/q2-chart-donut.entry.js.map +1 -1
- package/dist/esm/q2-checkbox-group.entry.js +2 -2
- package/dist/esm/q2-checkbox-group.entry.js.map +1 -1
- package/dist/esm/q2-checkbox.entry.js +1 -1
- package/dist/esm/q2-currency.entry.js +1 -1
- package/dist/esm/q2-data-table.entry.js +62 -62
- package/dist/esm/q2-data-table.entry.js.map +1 -1
- package/dist/esm/q2-detail.entry.js +2 -2
- package/dist/esm/q2-dropdown-item.entry.js +2 -2
- package/dist/esm/q2-dropdown-item.entry.js.map +1 -1
- package/dist/esm/q2-dropdown.entry.js +77 -5
- package/dist/esm/q2-dropdown.entry.js.map +1 -1
- package/dist/esm/q2-editable-field.entry.js +1 -1
- package/dist/esm/q2-formatted-text.entry.js +68 -0
- package/dist/esm/q2-formatted-text.entry.js.map +1 -0
- package/dist/esm/q2-item.entry.js +2 -2
- package/dist/esm/q2-legend.entry.js +2 -2
- package/dist/esm/q2-legend.entry.js.map +1 -1
- package/dist/esm/q2-link.entry.js +60 -0
- package/dist/esm/q2-link.entry.js.map +1 -0
- package/dist/esm/q2-list.entry.js +2 -2
- package/dist/esm/q2-loc.entry.js +2 -2
- package/dist/esm/q2-message.entry.js +2 -2
- package/dist/esm/q2-month-picker.entry.js +3 -3
- package/dist/esm/q2-optgroup.entry.js +2 -2
- package/dist/esm/q2-option-list.entry.js +9 -4
- package/dist/esm/q2-option-list.entry.js.map +1 -1
- package/dist/esm/q2-option.entry.js +1 -1
- package/dist/esm/q2-pagination.entry.js +90 -9
- package/dist/esm/q2-pagination.entry.js.map +1 -1
- package/dist/esm/q2-pill.entry.js +26 -5
- package/dist/esm/q2-pill.entry.js.map +1 -1
- package/dist/esm/q2-radio-group.entry.js +2 -2
- package/dist/esm/q2-radio-group.entry.js.map +1 -1
- package/dist/esm/q2-radio.entry.js +1 -1
- package/dist/esm/q2-relative-time.entry.js +3 -3
- package/dist/esm/q2-resize-observer.entry.js +92 -0
- package/dist/esm/q2-resize-observer.entry.js.map +1 -0
- package/dist/esm/q2-section.entry.js +27 -3
- package/dist/esm/q2-section.entry.js.map +1 -1
- package/dist/esm/q2-select.entry.js +7 -6
- package/dist/esm/q2-select.entry.js.map +1 -1
- package/dist/esm/q2-stepper-pane.entry.js +1 -1
- package/dist/esm/q2-stepper-vertical.entry.js +2 -2
- package/dist/esm/q2-stepper.entry.js +39 -3
- package/dist/esm/q2-stepper.entry.js.map +1 -1
- package/dist/esm/q2-tag.entry.js +3 -2
- package/dist/esm/q2-tag.entry.js.map +1 -1
- package/dist/esm/q2-tecton-elements.js +1 -1
- package/dist/esm/q2-textarea.entry.js +47 -12
- package/dist/esm/q2-textarea.entry.js.map +1 -1
- package/dist/esm/q2-tooltip.entry.js +2 -2
- package/dist/esm/q2-tooltip.entry.js.map +1 -1
- package/dist/esm/tecton-tab-pane.entry.js +2 -2
- package/dist/q2-tecton-elements/{p-0a3a804a.entry.js → p-06701928.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-0a3a804a.entry.js.map → p-06701928.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/{p-5d936af5.entry.js → p-07d1c3ae.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-15ac45d6.js +2 -0
- package/dist/q2-tecton-elements/p-15ac45d6.js.map +1 -0
- package/dist/q2-tecton-elements/{p-ce4e6b41.entry.js → p-16910682.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-16910682.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-188eb162.entry.js +3 -0
- package/dist/q2-tecton-elements/p-188eb162.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-58cafc0d.entry.js → p-1c760a89.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-074ae80c.entry.js → p-1c88d057.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-3b0d3cd4.entry.js → p-20a3d6ed.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-20a3d6ed.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-77a0cc0c.entry.js → p-2733583e.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-4116579f.entry.js → p-3e428290.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-3e428290.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-072c5877.entry.js → p-4774e5b3.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-77272c4c.entry.js → p-490ef8e5.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-0a1dff75.entry.js → p-4e10550d.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-4e10550d.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-2ca6d44f.entry.js → p-50f7328f.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-5637c486.entry.js +2 -0
- package/dist/q2-tecton-elements/p-5637c486.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-56df21b0.entry.js +2 -0
- package/dist/q2-tecton-elements/p-56df21b0.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-34856c71.entry.js → p-5a834214.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-34856c71.entry.js.map → p-5a834214.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/p-5f99a4a8.entry.js +2 -0
- package/dist/q2-tecton-elements/p-5f99a4a8.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-72d948b4.entry.js +2 -0
- package/dist/q2-tecton-elements/p-72d948b4.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-3c7be0bb.entry.js → p-7903cd15.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-7903cd15.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-d2e1631a.entry.js → p-7906f49e.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-d2e1631a.entry.js.map → p-7906f49e.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/{p-2fcaf2d6.entry.js → p-7aef0c08.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-8a4b106d.entry.js → p-7c9a0122.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-7c9f8b62.entry.js +2 -0
- package/dist/q2-tecton-elements/p-7c9f8b62.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-cf32b5db.entry.js → p-81fbe718.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-81fbe718.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-6237c775.entry.js → p-896c7008.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-395904b4.entry.js → p-8d07cf91.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-fffb54e9.entry.js → p-8d2b02e1.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-6e6d9793.entry.js → p-95a7c042.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-45407ecc.entry.js → p-96b1406c.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-cb3f48de.entry.js → p-a47597dd.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-a47597dd.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-a5d0e252.entry.js +2 -0
- package/dist/q2-tecton-elements/p-a5d0e252.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-2c26295e.entry.js → p-ac6aa392.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-376a0589.entry.js → p-ad057d10.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-ad798287.entry.js +2 -0
- package/dist/q2-tecton-elements/p-ad798287.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-ad998f71.entry.js → p-b0e5e9dc.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-b0e5e9dc.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-34696e3f.entry.js → p-b1784be3.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-259b728a.entry.js → p-b7de110e.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-8111547c.entry.js → p-c235ab3f.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-c5667d5d.entry.js +2 -0
- package/dist/q2-tecton-elements/p-c5667d5d.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-c81d299a.entry.js → p-e216ef3f.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-e2c800ef.entry.js +2 -0
- package/dist/q2-tecton-elements/p-e2c800ef.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-f135b265.entry.js +2 -0
- package/dist/q2-tecton-elements/p-f135b265.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-721365be.js → p-f1e887f5.js} +1 -1
- package/dist/q2-tecton-elements/{p-6b7c53a8.entry.js → p-f5f23659.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-f7867f21.entry.js +2 -0
- package/dist/q2-tecton-elements/p-f7867f21.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-ff8f1a32.entry.js +2 -0
- package/dist/q2-tecton-elements/p-ff8f1a32.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-fff01dc1.entry.js +2 -0
- package/dist/q2-tecton-elements/p-fff01dc1.entry.js.map +1 -0
- package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
- package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
- package/dist/types/components/q2-action-group/q2-action-group.d.ts +30 -0
- package/dist/types/components/q2-chart-area/q2-chart-area.d.ts +1 -1
- package/dist/types/components/q2-chart-bar/q2-chart-bar.d.ts +1 -1
- package/dist/types/components/q2-chart-donut/q2-chart-donut.d.ts +2 -0
- package/dist/types/components/q2-data-table/q2-data-table.d.ts +15 -13
- package/dist/types/components/q2-dropdown/q2-dropdown.d.ts +36 -0
- package/dist/types/components/q2-formatted-text/q2-formatted-text.d.ts +34 -0
- package/dist/types/components/q2-input/q2-input.d.ts +10 -9
- package/dist/types/components/q2-legend/q2-legend.d.ts +1 -0
- package/dist/types/components/q2-link/q2-link.d.ts +36 -0
- package/dist/types/components/q2-pagination/q2-pagination.d.ts +60 -3
- package/dist/types/components/q2-pill/q2-pill.d.ts +11 -0
- package/dist/types/components/q2-popover/q2-popover.d.ts +7 -1
- package/dist/types/components/q2-resize-observer/q2-resize-observer.d.ts +28 -0
- package/dist/types/components/q2-section/q2-section.d.ts +12 -0
- package/dist/types/components/q2-select/q2-select.d.ts +5 -0
- package/dist/types/components/q2-stepper/q2-stepper.d.ts +10 -1
- package/dist/types/components/q2-tab-container/q2-tab-container.d.ts +8 -2
- package/dist/types/components/q2-tag/q2-tag.d.ts +5 -0
- package/dist/types/components/q2-textarea/q2-textarea.d.ts +8 -3
- package/dist/types/components.d.ts +394 -18
- package/dist/types/utils/helpers.d.ts +28 -0
- package/dist/types/utils/index.d.ts +3 -3
- package/dist/types/utils/sanitize-html-string.d.ts +1 -0
- package/dist/types/utils/sanitize-regex-string.d.ts +1 -0
- package/package.json +4 -4
- package/dist/cjs/index-64d8b839.js +0 -1580
- package/dist/cjs/index-64d8b839.js.map +0 -1
- package/dist/esm/index-4a80972c.js +0 -1556
- package/dist/esm/index-4a80972c.js.map +0 -1
- package/dist/q2-tecton-elements/p-0a1dff75.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-3b0d3cd4.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-3c7be0bb.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-403bf3d4.entry.js +0 -2
- package/dist/q2-tecton-elements/p-403bf3d4.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-4116579f.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-661ed976.entry.js +0 -2
- package/dist/q2-tecton-elements/p-661ed976.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-9a1a4bc0.js +0 -3
- package/dist/q2-tecton-elements/p-9a1a4bc0.js.map +0 -1
- package/dist/q2-tecton-elements/p-a7a0b8aa.entry.js +0 -2
- package/dist/q2-tecton-elements/p-a7a0b8aa.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-aa57b657.entry.js +0 -2
- package/dist/q2-tecton-elements/p-aa57b657.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-ad998f71.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-adec9275.entry.js +0 -2
- package/dist/q2-tecton-elements/p-adec9275.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-adf0a7c9.entry.js +0 -2
- package/dist/q2-tecton-elements/p-adf0a7c9.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-b72fd065.entry.js +0 -2
- package/dist/q2-tecton-elements/p-b72fd065.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-c0c658d1.entry.js +0 -2
- package/dist/q2-tecton-elements/p-c0c658d1.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-cb3f48de.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-ce4e6b41.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-cf32b5db.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-cf966a0f.entry.js +0 -2
- package/dist/q2-tecton-elements/p-cf966a0f.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-dc77bf66.entry.js +0 -2
- package/dist/q2-tecton-elements/p-dc77bf66.entry.js.map +0 -1
- /package/dist/q2-tecton-elements/{p-5d936af5.entry.js.map → p-07d1c3ae.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-58cafc0d.entry.js.map → p-1c760a89.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-074ae80c.entry.js.map → p-1c88d057.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-77a0cc0c.entry.js.map → p-2733583e.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-072c5877.entry.js.map → p-4774e5b3.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-77272c4c.entry.js.map → p-490ef8e5.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-2ca6d44f.entry.js.map → p-50f7328f.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-2fcaf2d6.entry.js.map → p-7aef0c08.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-8a4b106d.entry.js.map → p-7c9a0122.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-6237c775.entry.js.map → p-896c7008.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-395904b4.entry.js.map → p-8d07cf91.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-fffb54e9.entry.js.map → p-8d2b02e1.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-6e6d9793.entry.js.map → p-95a7c042.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-45407ecc.entry.js.map → p-96b1406c.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-2c26295e.entry.js.map → p-ac6aa392.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-376a0589.entry.js.map → p-ad057d10.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-34696e3f.entry.js.map → p-b1784be3.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-259b728a.entry.js.map → p-b7de110e.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-8111547c.entry.js.map → p-c235ab3f.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-c81d299a.entry.js.map → p-e216ef3f.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-721365be.js.map → p-f1e887f5.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-6b7c53a8.entry.js.map → p-f5f23659.entry.js.map} +0 -0
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
* {
|
|
2
|
+
box-sizing: border-box;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
*:active {
|
|
6
|
+
outline: none;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
*:focus {
|
|
10
|
+
outline: none;
|
|
11
|
+
box-shadow: var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #0066cc);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
:host {
|
|
15
|
+
box-shadow: none !important;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
::-moz-focus-inner {
|
|
19
|
+
border: none;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
input,
|
|
23
|
+
textarea,
|
|
24
|
+
button {
|
|
25
|
+
font-family: inherit;
|
|
26
|
+
font-size: inherit;
|
|
27
|
+
font-stretch: inherit;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
:host(.sr),
|
|
31
|
+
:host(.sr) button {
|
|
32
|
+
border: 0;
|
|
33
|
+
clip: rect(0 0 0 0);
|
|
34
|
+
height: 1px;
|
|
35
|
+
margin: -1px;
|
|
36
|
+
overflow: hidden;
|
|
37
|
+
padding: 0;
|
|
38
|
+
position: absolute;
|
|
39
|
+
width: 1px;
|
|
40
|
+
white-space: nowrap;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.sr,
|
|
44
|
+
.sr button {
|
|
45
|
+
border: 0;
|
|
46
|
+
clip: rect(0 0 0 0);
|
|
47
|
+
height: 1px;
|
|
48
|
+
margin: -1px;
|
|
49
|
+
overflow: hidden;
|
|
50
|
+
padding: 0;
|
|
51
|
+
position: absolute;
|
|
52
|
+
width: 1px;
|
|
53
|
+
white-space: nowrap;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.hidden {
|
|
57
|
+
display: none;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
:host([hidden]) {
|
|
61
|
+
display: none;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.invisible {
|
|
65
|
+
visibility: hidden;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
:host(:not([hidden])) {
|
|
69
|
+
display: block;
|
|
70
|
+
width: 100%;
|
|
71
|
+
--comp-default-btn-group-margin: var(--app-scale-5x, 25px) 0;
|
|
72
|
+
margin: var(--tct-btn-group-margin, var(--comp-default-btn-group-margin));
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.container {
|
|
76
|
+
width: 100%;
|
|
77
|
+
display: flex;
|
|
78
|
+
gap: var(--tct-btn-group-gap, var(--app-scale-2x, 10px));
|
|
79
|
+
}
|
|
80
|
+
.container.vertical {
|
|
81
|
+
flex-direction: var(--tct-btn-group-vertical-flex-direction, column);
|
|
82
|
+
}
|
|
83
|
+
.container.vertical ::slotted(q2-btn) {
|
|
84
|
+
display: block;
|
|
85
|
+
width: 100%;
|
|
86
|
+
}
|
|
87
|
+
.container.horizontal {
|
|
88
|
+
justify-content: var(--tct-btn-group-horizontal-justify-content, flex-start);
|
|
89
|
+
flex-direction: var(--tct-btn-group-horizontal-flex-direction, row-reverse);
|
|
90
|
+
align-items: var(--tct-btn-group-horizontal-align-items, center);
|
|
91
|
+
flex-wrap: var(--tct-btn-group-horizontal-flex-wrap, wrap);
|
|
92
|
+
}
|
|
93
|
+
.container.horizontal.full-width {
|
|
94
|
+
flex-wrap: nowrap;
|
|
95
|
+
}
|
|
96
|
+
.container.vertical ::slotted(q2-btn), .container.horizontal.full-width ::slotted(q2-btn) {
|
|
97
|
+
display: block;
|
|
98
|
+
width: 100%;
|
|
99
|
+
}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { h } from "@stencil/core";
|
|
2
|
+
export class Q2BtnGroup {
|
|
3
|
+
constructor() {
|
|
4
|
+
// #endregion
|
|
5
|
+
// #region Events
|
|
6
|
+
// #endregion
|
|
7
|
+
// #region Component Lifecycle Events
|
|
8
|
+
// #endregion
|
|
9
|
+
// #region Listeners
|
|
10
|
+
// #endregion
|
|
11
|
+
// #region Public Methods API
|
|
12
|
+
// #endregion
|
|
13
|
+
// #region Watchers
|
|
14
|
+
// #endregion
|
|
15
|
+
// #region Local Methods
|
|
16
|
+
this.handleResize = (event) => {
|
|
17
|
+
const width = event.detail.entries[0].contentRect.width;
|
|
18
|
+
const shouldBeVertical = this.orientationThreshold > width;
|
|
19
|
+
this.autoOrientation = shouldBeVertical ? 'vertical' : 'horizontal';
|
|
20
|
+
};
|
|
21
|
+
this.autoOrientation = 'vertical';
|
|
22
|
+
this.orientationThreshold = 440;
|
|
23
|
+
this.orientation = 'auto';
|
|
24
|
+
this.fullWidth = undefined;
|
|
25
|
+
}
|
|
26
|
+
// #endregion
|
|
27
|
+
// #region Render Methods
|
|
28
|
+
render() {
|
|
29
|
+
const { orientation, autoOrientation, fullWidth } = this;
|
|
30
|
+
const containerClassNames = ['container'];
|
|
31
|
+
if (fullWidth)
|
|
32
|
+
containerClassNames.push('full-width');
|
|
33
|
+
containerClassNames.push(orientation === 'auto' ? autoOrientation : orientation);
|
|
34
|
+
return (h("q2-resize-observer", { key: 'c54581213b0dd9ec12bcf95f779c816b551a92ef', onTctResize: this.handleResize, disabled: this.orientation !== 'auto' }, h("div", { key: 'ea09d4fba28775bf9f503e69daa4e0e93b0a7723', class: containerClassNames.join(' '), role: "group" }, h("slot", { key: '0ffaa62bee644b270fecba1c97ef7119e718d376' }))));
|
|
35
|
+
}
|
|
36
|
+
static get is() { return "q2-action-group"; }
|
|
37
|
+
static get encapsulation() { return "shadow"; }
|
|
38
|
+
static get originalStyleUrls() {
|
|
39
|
+
return {
|
|
40
|
+
"$": ["q2-action-group.scss"]
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
static get styleUrls() {
|
|
44
|
+
return {
|
|
45
|
+
"$": ["q2-action-group.css"]
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
static get properties() {
|
|
49
|
+
return {
|
|
50
|
+
"orientationThreshold": {
|
|
51
|
+
"type": "number",
|
|
52
|
+
"mutable": false,
|
|
53
|
+
"complexType": {
|
|
54
|
+
"original": "number",
|
|
55
|
+
"resolved": "number",
|
|
56
|
+
"references": {}
|
|
57
|
+
},
|
|
58
|
+
"required": false,
|
|
59
|
+
"optional": false,
|
|
60
|
+
"docs": {
|
|
61
|
+
"tags": [{
|
|
62
|
+
"name": "info",
|
|
63
|
+
"text": "The component determines this based on the width of the element itself, not the browser window."
|
|
64
|
+
}],
|
|
65
|
+
"text": "The width, in pixels, that determines whether to display the buttons in vertical or horizontal orientation"
|
|
66
|
+
},
|
|
67
|
+
"attribute": "orientation-threshold",
|
|
68
|
+
"reflect": false,
|
|
69
|
+
"defaultValue": "440"
|
|
70
|
+
},
|
|
71
|
+
"orientation": {
|
|
72
|
+
"type": "string",
|
|
73
|
+
"mutable": false,
|
|
74
|
+
"complexType": {
|
|
75
|
+
"original": "'auto' | 'vertical' | 'horizontal'",
|
|
76
|
+
"resolved": "\"auto\" | \"horizontal\" | \"vertical\"",
|
|
77
|
+
"references": {}
|
|
78
|
+
},
|
|
79
|
+
"required": false,
|
|
80
|
+
"optional": false,
|
|
81
|
+
"docs": {
|
|
82
|
+
"tags": [{
|
|
83
|
+
"name": "info",
|
|
84
|
+
"text": "This will override and disable the auto determination of the orientation."
|
|
85
|
+
}],
|
|
86
|
+
"text": "The orientation of the buttons, which will override the auto orientation."
|
|
87
|
+
},
|
|
88
|
+
"attribute": "orientation",
|
|
89
|
+
"reflect": true,
|
|
90
|
+
"defaultValue": "'auto'"
|
|
91
|
+
},
|
|
92
|
+
"fullWidth": {
|
|
93
|
+
"type": "boolean",
|
|
94
|
+
"mutable": false,
|
|
95
|
+
"complexType": {
|
|
96
|
+
"original": "boolean",
|
|
97
|
+
"resolved": "boolean",
|
|
98
|
+
"references": {}
|
|
99
|
+
},
|
|
100
|
+
"required": false,
|
|
101
|
+
"optional": false,
|
|
102
|
+
"docs": {
|
|
103
|
+
"tags": [{
|
|
104
|
+
"name": "warning",
|
|
105
|
+
"text": "This will prevent the buttons from wrapping when the container is too small to fit all buttons."
|
|
106
|
+
}],
|
|
107
|
+
"text": "Whether the buttons should take up the full width of the container when in horizontal orientation."
|
|
108
|
+
},
|
|
109
|
+
"attribute": "full-width",
|
|
110
|
+
"reflect": true
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
static get states() {
|
|
115
|
+
return {
|
|
116
|
+
"autoOrientation": {}
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=q2-action-group.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"q2-action-group.js","sourceRoot":"","sources":["../../../src/components/q2-action-group/q2-action-group.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAsB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAO9E,MAAM,OAAO,UAAU;;QA0CnB,aAAa;QACb,iBAAiB;QAEjB,aAAa;QACb,qCAAqC;QAErC,aAAa;QACb,oBAAoB;QAEpB,aAAa;QACb,6BAA6B;QAE7B,aAAa;QACb,mBAAmB;QAEnB,aAAa;QACb,wBAAwB;QAExB,iBAAY,GAAG,CACX,KAEE,EACJ,EAAE;YACA,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC;YACxD,MAAM,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;YAC3D,IAAI,CAAC,eAAe,GAAG,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC;QACxE,CAAC,CAAC;+BA1D2C,UAAU;oCAYxB,GAAG;2BASgB,MAAM;;;IAuCxD,aAAa;IACb,yBAAyB;IAEzB,MAAM;QACF,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QACzD,MAAM,mBAAmB,GAAG,CAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,SAAS;YAAE,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACtD,mBAAmB,CAAC,IAAI,CAAC,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAEjF,OAAO,CACH,2EACI,WAAW,EAAE,IAAI,CAAC,YAAY,EAC9B,QAAQ,EAAE,IAAI,CAAC,WAAW,KAAK,MAAM;YAErC,4DACI,KAAK,EAAE,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,EACpC,IAAI,EAAC,OAAO;gBAEZ,8DAAQ,CACN,CACW,CACxB,CAAC;IACN,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGJ","sourcesContent":["import { Q2ResizeObserverCustomEvent } from '@/components';\nimport { Component, ComponentInterface, h, Prop, State } from '@stencil/core';\n\n@Component({\n tag: 'q2-action-group',\n styleUrl: 'q2-action-group.scss',\n shadow: true,\n})\nexport class Q2BtnGroup implements ComponentInterface {\n // #region Own Properties\n\n // #endregion\n // #region Host HTML Element\n\n // #endregion\n // #region State Properties\n\n @State()\n autoOrientation: 'vertical' | 'horizontal' = 'vertical';\n\n // #endregion\n // #region Public Property API\n\n /**\n * The width, in pixels, that determines whether to display the buttons in vertical or horizontal orientation\n *\n * @info\n * The component determines this based on the width of the element itself, not the browser window.\n */\n @Prop({ reflect: false })\n orientationThreshold: number = 440;\n\n /**\n * The orientation of the buttons, which will override the auto orientation.\n *\n * @info\n * This will override and disable the auto determination of the orientation.\n */\n @Prop({ reflect: true })\n orientation: 'auto' | 'vertical' | 'horizontal' = 'auto';\n\n /**\n * Whether the buttons should take up the full width of the container when in horizontal orientation.\n *\n * @warning\n * This will prevent the buttons from wrapping when the container is too small to fit all buttons.\n */\n @Prop({ reflect: true })\n fullWidth: boolean;\n\n // #endregion\n // #region Events\n\n // #endregion\n // #region Component Lifecycle Events\n\n // #endregion\n // #region Listeners\n\n // #endregion\n // #region Public Methods API\n\n // #endregion\n // #region Watchers\n\n // #endregion\n // #region Local Methods\n\n handleResize = (\n event: Q2ResizeObserverCustomEvent<{\n entries: ResizeObserverEntry[];\n }>\n ) => {\n const width = event.detail.entries[0].contentRect.width;\n const shouldBeVertical = this.orientationThreshold > width;\n this.autoOrientation = shouldBeVertical ? 'vertical' : 'horizontal';\n };\n\n // #endregion\n // #region Render Methods\n\n render() {\n const { orientation, autoOrientation, fullWidth } = this;\n const containerClassNames = ['container'];\n if (fullWidth) containerClassNames.push('full-width');\n containerClassNames.push(orientation === 'auto' ? autoOrientation : orientation);\n\n return (\n <q2-resize-observer\n onTctResize={this.handleResize}\n disabled={this.orientation !== 'auto'}\n >\n <div\n class={containerClassNames.join(' ')}\n role=\"group\"\n >\n <slot />\n </div>\n </q2-resize-observer>\n );\n }\n\n // #endregion\n}\n"]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { setup } from "../../../utils/helpers";
|
|
2
|
+
describe('q2-action-group', () => {
|
|
3
|
+
let page;
|
|
4
|
+
let resizeEventSpy;
|
|
5
|
+
describe('Resizing', () => {
|
|
6
|
+
it('updates the autoOrientation when resized', async () => {
|
|
7
|
+
page = await setup({
|
|
8
|
+
html: `
|
|
9
|
+
<q2-action-group>
|
|
10
|
+
<q2-btn intent="workflow-primary">Primary</q2-btn>
|
|
11
|
+
<q2-btn intent="workflow-secondary">Secondary</q2-btn>
|
|
12
|
+
</q2-action-group>
|
|
13
|
+
`,
|
|
14
|
+
});
|
|
15
|
+
const q2BtnGroup = await page.find('q2-action-group');
|
|
16
|
+
const btnGroupContainer = await page.find('q2-action-group >>> .container');
|
|
17
|
+
resizeEventSpy = await q2BtnGroup.spyOnEvent('tctResize');
|
|
18
|
+
expect(btnGroupContainer).toHaveClass('horizontal');
|
|
19
|
+
await page.setViewport({ width: 400, height: 800 });
|
|
20
|
+
await page.waitForChanges();
|
|
21
|
+
expect(resizeEventSpy).toHaveReceivedEvent();
|
|
22
|
+
expect(btnGroupContainer).toHaveClass('vertical');
|
|
23
|
+
await page.setViewport({ width: 600, height: 800 });
|
|
24
|
+
await page.waitForChanges();
|
|
25
|
+
expect(resizeEventSpy).toHaveReceivedEvent();
|
|
26
|
+
expect(btnGroupContainer).toHaveClass('horizontal');
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
//# sourceMappingURL=q2-action-group.e2e.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"q2-action-group.e2e.js","sourceRoot":"","sources":["../../../../src/components/q2-action-group/test/q2-action-group.e2e.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAExC,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC7B,IAAI,IAAa,CAAC;IAClB,IAAI,cAAwB,CAAC;IAE7B,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACtB,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;YACtD,IAAI,GAAG,MAAM,KAAK,CAAC;gBACf,IAAI,EAAE;;;;;iBAKL;aACJ,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACtD,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;YAC5E,cAAc,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAE1D,MAAM,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;YAEpD,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACpD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAE5B,MAAM,CAAC,cAAc,CAAC,CAAC,mBAAmB,EAAE,CAAC;YAC7C,MAAM,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YAElD,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACpD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAE5B,MAAM,CAAC,cAAc,CAAC,CAAC,mBAAmB,EAAE,CAAC;YAC7C,MAAM,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC","sourcesContent":["import { E2EPage, EventSpy } from '@stencil/core/testing';\nimport { setup } from '@/utils/helpers';\n\ndescribe('q2-action-group', () => {\n let page: E2EPage;\n let resizeEventSpy: EventSpy;\n\n describe('Resizing', () => {\n it('updates the autoOrientation when resized', async () => {\n page = await setup({\n html: `\n <q2-action-group>\n <q2-btn intent=\"workflow-primary\">Primary</q2-btn>\n <q2-btn intent=\"workflow-secondary\">Secondary</q2-btn>\n </q2-action-group>\n `,\n });\n\n const q2BtnGroup = await page.find('q2-action-group');\n const btnGroupContainer = await page.find('q2-action-group >>> .container');\n resizeEventSpy = await q2BtnGroup.spyOnEvent('tctResize');\n\n expect(btnGroupContainer).toHaveClass('horizontal');\n\n await page.setViewport({ width: 400, height: 800 });\n await page.waitForChanges();\n\n expect(resizeEventSpy).toHaveReceivedEvent();\n expect(btnGroupContainer).toHaveClass('vertical');\n\n await page.setViewport({ width: 600, height: 800 });\n await page.waitForChanges();\n\n expect(resizeEventSpy).toHaveReceivedEvent();\n expect(btnGroupContainer).toHaveClass('horizontal');\n });\n });\n});\n"]}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { newSpecPage } from "@stencil/core/testing";
|
|
2
|
+
import { Q2BtnGroup } from "../q2-action-group";
|
|
3
|
+
describe('q2-action-group', () => {
|
|
4
|
+
let specPage;
|
|
5
|
+
const generateResizeEvent = (width) => {
|
|
6
|
+
return new CustomEvent('tctResize', {
|
|
7
|
+
detail: {
|
|
8
|
+
entries: [{ contentRect: { width } }],
|
|
9
|
+
},
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
describe('Props', () => {
|
|
13
|
+
describe('orientationThreshold', () => {
|
|
14
|
+
beforeEach(async () => {
|
|
15
|
+
specPage = await newSpecPage({
|
|
16
|
+
components: [Q2BtnGroup],
|
|
17
|
+
html: `<q2-action-group></q2-action-group>`,
|
|
18
|
+
});
|
|
19
|
+
await specPage.waitForChanges();
|
|
20
|
+
});
|
|
21
|
+
describe('when using the default value (440)', () => {
|
|
22
|
+
it('sets autoOrientation to "horizontal" when a resize event reports a width of 441', async () => {
|
|
23
|
+
specPage.rootInstance.handleResize(generateResizeEvent(441));
|
|
24
|
+
await specPage.waitForChanges();
|
|
25
|
+
expect(specPage.rootInstance.autoOrientation).toEqual('horizontal');
|
|
26
|
+
expect(specPage.root.shadowRoot).toEqualHtml(`
|
|
27
|
+
<q2-resize-observer>
|
|
28
|
+
<div class="container horizontal" role="group">
|
|
29
|
+
<slot></slot>
|
|
30
|
+
</div>
|
|
31
|
+
</q2-resize-observer>
|
|
32
|
+
`);
|
|
33
|
+
});
|
|
34
|
+
it('sets autoOrientation to "vertical" when a resize event reports a width of 439', async () => {
|
|
35
|
+
specPage.rootInstance.handleResize(generateResizeEvent(439));
|
|
36
|
+
await specPage.waitForChanges();
|
|
37
|
+
expect(specPage.rootInstance.autoOrientation).toEqual('vertical');
|
|
38
|
+
expect(specPage.root.shadowRoot).toEqualHtml(`
|
|
39
|
+
<q2-resize-observer>
|
|
40
|
+
<div class="container vertical" role="group">
|
|
41
|
+
<slot></slot>
|
|
42
|
+
</div>
|
|
43
|
+
</q2-resize-observer>
|
|
44
|
+
`);
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
describe('when using a custom value (400)', () => {
|
|
48
|
+
beforeEach(async () => {
|
|
49
|
+
specPage.rootInstance.orientationThreshold = 400;
|
|
50
|
+
await specPage.waitForChanges();
|
|
51
|
+
});
|
|
52
|
+
it('sets autoOrientation to "horizontal" when a resize event reports a width of 401', async () => {
|
|
53
|
+
specPage.rootInstance.handleResize(generateResizeEvent(401));
|
|
54
|
+
await specPage.waitForChanges();
|
|
55
|
+
expect(specPage.rootInstance.autoOrientation).toEqual('horizontal');
|
|
56
|
+
expect(specPage.root.shadowRoot).toEqualHtml(`
|
|
57
|
+
<q2-resize-observer>
|
|
58
|
+
<div class="container horizontal" role="group">
|
|
59
|
+
<slot></slot>
|
|
60
|
+
</div>
|
|
61
|
+
</q2-resize-observer>
|
|
62
|
+
`);
|
|
63
|
+
});
|
|
64
|
+
it('sets autoOrientation to "vertical" when a resize event reports a width of 399', async () => {
|
|
65
|
+
specPage.rootInstance.handleResize(generateResizeEvent(399));
|
|
66
|
+
await specPage.waitForChanges();
|
|
67
|
+
expect(specPage.rootInstance.autoOrientation).toEqual('vertical');
|
|
68
|
+
expect(specPage.root.shadowRoot).toEqualHtml(`
|
|
69
|
+
<q2-resize-observer>
|
|
70
|
+
<div class="container vertical" role="group">
|
|
71
|
+
<slot></slot>
|
|
72
|
+
</div>
|
|
73
|
+
</q2-resize-observer>
|
|
74
|
+
`);
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
describe('orientation', () => {
|
|
79
|
+
it('is set to "vertical" when the prop is passed in', async () => {
|
|
80
|
+
specPage = await newSpecPage({
|
|
81
|
+
components: [Q2BtnGroup],
|
|
82
|
+
html: `<q2-action-group orientation="vertical"></q2-action-group>`,
|
|
83
|
+
});
|
|
84
|
+
await specPage.waitForChanges();
|
|
85
|
+
expect(specPage.root.shadowRoot).toEqualHtml(`
|
|
86
|
+
<q2-resize-observer disabled="">
|
|
87
|
+
<div class="container vertical" role="group">
|
|
88
|
+
<slot></slot>
|
|
89
|
+
</div>
|
|
90
|
+
</q2-resize-observer>
|
|
91
|
+
`);
|
|
92
|
+
});
|
|
93
|
+
it('is set to "horizontal" when the prop is passed in', async () => {
|
|
94
|
+
specPage = await newSpecPage({
|
|
95
|
+
components: [Q2BtnGroup],
|
|
96
|
+
html: `<q2-action-group orientation="horizontal"></q2-action-group>`,
|
|
97
|
+
});
|
|
98
|
+
await specPage.waitForChanges();
|
|
99
|
+
expect(specPage.root.shadowRoot).toEqualHtml(`
|
|
100
|
+
<q2-resize-observer disabled="">
|
|
101
|
+
<div class="container horizontal" role="group">
|
|
102
|
+
<slot></slot>
|
|
103
|
+
</div>
|
|
104
|
+
</q2-resize-observer>
|
|
105
|
+
`);
|
|
106
|
+
});
|
|
107
|
+
it('takes priority over the autoOrientation', async () => {
|
|
108
|
+
specPage = await newSpecPage({
|
|
109
|
+
components: [Q2BtnGroup],
|
|
110
|
+
html: `<q2-action-group orientation="horizontal"></q2-action-group>`,
|
|
111
|
+
});
|
|
112
|
+
await specPage.waitForChanges();
|
|
113
|
+
expect(specPage.rootInstance.autoOrientation).toEqual('vertical');
|
|
114
|
+
expect(specPage.root.shadowRoot).toEqualHtml(`
|
|
115
|
+
<q2-resize-observer disabled="">
|
|
116
|
+
<div class="container horizontal" role="group">
|
|
117
|
+
<slot></slot>
|
|
118
|
+
</div>
|
|
119
|
+
</q2-resize-observer>
|
|
120
|
+
`);
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
describe('fullWidth', () => {
|
|
124
|
+
it('does not add the full-width class to the container when false (Default)', async () => {
|
|
125
|
+
specPage = await newSpecPage({
|
|
126
|
+
components: [Q2BtnGroup],
|
|
127
|
+
html: `<q2-action-group></q2-action-group>`,
|
|
128
|
+
});
|
|
129
|
+
await specPage.waitForChanges();
|
|
130
|
+
expect(specPage.root.shadowRoot).toEqualHtml(`
|
|
131
|
+
<q2-resize-observer>
|
|
132
|
+
<div class="container vertical" role="group">
|
|
133
|
+
<slot></slot>
|
|
134
|
+
</div>
|
|
135
|
+
</q2-resize-observer>
|
|
136
|
+
`);
|
|
137
|
+
});
|
|
138
|
+
it('renders with full width styles when true', async () => {
|
|
139
|
+
specPage = await newSpecPage({
|
|
140
|
+
components: [Q2BtnGroup],
|
|
141
|
+
html: `<q2-action-group full-width></q2-action-group>`,
|
|
142
|
+
});
|
|
143
|
+
await specPage.waitForChanges();
|
|
144
|
+
expect(specPage.root.shadowRoot).toEqualHtml(`
|
|
145
|
+
<q2-resize-observer>
|
|
146
|
+
<div class="container full-width vertical" role="group">
|
|
147
|
+
<slot></slot>
|
|
148
|
+
</div>
|
|
149
|
+
</q2-resize-observer>
|
|
150
|
+
`);
|
|
151
|
+
});
|
|
152
|
+
});
|
|
153
|
+
});
|
|
154
|
+
describe('Public Methods', () => { });
|
|
155
|
+
});
|
|
156
|
+
//# sourceMappingURL=q2-action-group.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"q2-action-group.spec.js","sourceRoot":"","sources":["../../../../src/components/q2-action-group/test/q2-action-group.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { SpecPage, newSpecPage } from '@stencil/core/testing';\nimport { Q2BtnGroup } from '../q2-action-group';\n\ndescribe('q2-action-group', () => {\n let specPage: SpecPage;\n\n const generateResizeEvent = (width: number) => {\n return new CustomEvent('tctResize', {\n detail: {\n entries: [{ contentRect: { width } }],\n },\n });\n };\n\n describe('Props', () => {\n describe('orientationThreshold', () => {\n beforeEach(async () => {\n specPage = await newSpecPage({\n components: [Q2BtnGroup],\n html: `<q2-action-group></q2-action-group>`,\n });\n await specPage.waitForChanges();\n });\n\n describe('when using the default value (440)', () => {\n it('sets autoOrientation to \"horizontal\" when a resize event reports a width of 441', async () => {\n specPage.rootInstance.handleResize(generateResizeEvent(441));\n await specPage.waitForChanges();\n expect(specPage.rootInstance.autoOrientation).toEqual('horizontal');\n expect(specPage.root.shadowRoot).toEqualHtml(`\n <q2-resize-observer>\n <div class=\"container horizontal\" role=\"group\">\n <slot></slot>\n </div>\n </q2-resize-observer>\n `);\n });\n\n it('sets autoOrientation to \"vertical\" when a resize event reports a width of 439', async () => {\n specPage.rootInstance.handleResize(generateResizeEvent(439));\n await specPage.waitForChanges();\n expect(specPage.rootInstance.autoOrientation).toEqual('vertical');\n expect(specPage.root.shadowRoot).toEqualHtml(`\n <q2-resize-observer>\n <div class=\"container vertical\" role=\"group\">\n <slot></slot>\n </div>\n </q2-resize-observer>\n `);\n });\n });\n\n describe('when using a custom value (400)', () => {\n beforeEach(async () => {\n specPage.rootInstance.orientationThreshold = 400;\n await specPage.waitForChanges();\n });\n\n it('sets autoOrientation to \"horizontal\" when a resize event reports a width of 401', async () => {\n specPage.rootInstance.handleResize(generateResizeEvent(401));\n await specPage.waitForChanges();\n expect(specPage.rootInstance.autoOrientation).toEqual('horizontal');\n expect(specPage.root.shadowRoot).toEqualHtml(`\n <q2-resize-observer>\n <div class=\"container horizontal\" role=\"group\">\n <slot></slot>\n </div>\n </q2-resize-observer>\n `);\n });\n\n it('sets autoOrientation to \"vertical\" when a resize event reports a width of 399', async () => {\n specPage.rootInstance.handleResize(generateResizeEvent(399));\n await specPage.waitForChanges();\n expect(specPage.rootInstance.autoOrientation).toEqual('vertical');\n expect(specPage.root.shadowRoot).toEqualHtml(`\n <q2-resize-observer>\n <div class=\"container vertical\" role=\"group\">\n <slot></slot>\n </div>\n </q2-resize-observer>\n `);\n });\n });\n });\n\n describe('orientation', () => {\n it('is set to \"vertical\" when the prop is passed in', async () => {\n specPage = await newSpecPage({\n components: [Q2BtnGroup],\n html: `<q2-action-group orientation=\"vertical\"></q2-action-group>`,\n });\n await specPage.waitForChanges();\n\n expect(specPage.root.shadowRoot).toEqualHtml(`\n <q2-resize-observer disabled=\"\">\n <div class=\"container vertical\" role=\"group\">\n <slot></slot>\n </div>\n </q2-resize-observer>\n `);\n });\n\n it('is set to \"horizontal\" when the prop is passed in', async () => {\n specPage = await newSpecPage({\n components: [Q2BtnGroup],\n html: `<q2-action-group orientation=\"horizontal\"></q2-action-group>`,\n });\n await specPage.waitForChanges();\n\n expect(specPage.root.shadowRoot).toEqualHtml(`\n <q2-resize-observer disabled=\"\">\n <div class=\"container horizontal\" role=\"group\">\n <slot></slot>\n </div>\n </q2-resize-observer>\n `);\n });\n\n it('takes priority over the autoOrientation', async () => {\n specPage = await newSpecPage({\n components: [Q2BtnGroup],\n html: `<q2-action-group orientation=\"horizontal\"></q2-action-group>`,\n });\n await specPage.waitForChanges();\n\n expect(specPage.rootInstance.autoOrientation).toEqual('vertical');\n expect(specPage.root.shadowRoot).toEqualHtml(`\n <q2-resize-observer disabled=\"\">\n <div class=\"container horizontal\" role=\"group\">\n <slot></slot>\n </div>\n </q2-resize-observer>\n `);\n });\n });\n\n describe('fullWidth', () => {\n it('does not add the full-width class to the container when false (Default)', async () => {\n specPage = await newSpecPage({\n components: [Q2BtnGroup],\n html: `<q2-action-group></q2-action-group>`,\n });\n await specPage.waitForChanges();\n\n expect(specPage.root.shadowRoot).toEqualHtml(`\n <q2-resize-observer>\n <div class=\"container vertical\" role=\"group\">\n <slot></slot>\n </div>\n </q2-resize-observer>\n `);\n });\n\n it('renders with full width styles when true', async () => {\n specPage = await newSpecPage({\n components: [Q2BtnGroup],\n html: `<q2-action-group full-width></q2-action-group>`,\n });\n await specPage.waitForChanges();\n\n expect(specPage.root.shadowRoot).toEqualHtml(`\n <q2-resize-observer>\n <div class=\"container full-width vertical\" role=\"group\">\n <slot></slot>\n </div>\n </q2-resize-observer>\n `);\n });\n });\n });\n\n describe('Public Methods', () => {});\n});\n"]}
|
|
@@ -11,7 +11,8 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
11
11
|
return t;
|
|
12
12
|
};
|
|
13
13
|
import { h, Fragment, } from "@stencil/core";
|
|
14
|
-
import { loc,
|
|
14
|
+
import { loc, waitForNextPaint } from "../../utils/index";
|
|
15
|
+
import sanitizeHTMLString from "../../utils/sanitize-html-string";
|
|
15
16
|
export class Q2ActionSheet {
|
|
16
17
|
constructor() {
|
|
17
18
|
this.initialSelectedOptions = [];
|
|
@@ -207,7 +208,7 @@ export class Q2ActionSheet {
|
|
|
207
208
|
}
|
|
208
209
|
const appearance = (data === null || data === void 0 ? void 0 : data.appearance) || 'slot';
|
|
209
210
|
const interiorClasses = `interior is-${appearance}`;
|
|
210
|
-
return (h("dialog", { key: '
|
|
211
|
+
return (h("dialog", { key: '180f1e7bfe1230ae340fdd883fb6d9860992c034', ref: el => (this.dialogElement = el), class: renderStatus, onClick: this.onClick }, h("div", { key: 'a0e4825c839ab21c8e61747e96b2323711fd74f9', class: interiorClasses }, showHeader && (h("header", { key: '48b6b57131e5141a17eb64ce8201490690932fa0' }, h("div", { key: '780791a3a29360f68313e9f27bae3fb4ac2a500d', class: "title" }, (data === null || data === void 0 ? void 0 : data.title) || this.title), !this.hideClose && (h("q2-btn", { key: '31fcbeb189b43175a665786cc2e484787e4eb189', class: "btn-close", "test-id": "btnClose", onClick: this.onCancel, label: "tecton.element.actionSheet.close", "hide-label": true }, h("q2-icon", { key: 'e964e15fdf8f96ca0712455fd611318896d035cc', type: "close" }))))), ((_a = this.data) === null || _a === void 0 ? void 0 : _a.description) && h("p", { key: '869ef0bdb2118fe24ae920905fa24e708927ac53' }, data.description), RenderContent && h(RenderContent, { key: 'b0ae13c7b3114f62c4caf820bc2f9780eb1cdfbd', data: this.data }))));
|
|
211
212
|
}
|
|
212
213
|
static get is() { return "q2-action-sheet"; }
|
|
213
214
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"q2-action-sheet.js","sourceRoot":"","sources":["../../../src/components/q2-action-sheet/q2-action-sheet.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n ComponentInterface,\n Prop,\n Method,\n h,\n State,\n Event,\n EventEmitter,\n Fragment,\n Element,\n} from '@stencil/core';\nimport { Q2OptionListCustomEvent } from 'src/components';\nimport {\n ActionSheetListCloseData,\n ActionSheetData,\n ActionSheetListData,\n ActionSheetMessageData,\n ActionSheetSelectedOption,\n ActionSheetListOption,\n ActionSheetListOptgroup,\n} from 'q2-tecton-common/lib/utility/action-sheet';\nimport { loc, sanitizeHTMLString, waitForNextPaint } from 'src/utils';\n\n@Component({ tag: 'q2-action-sheet', shadow: true, styleUrl: 'q2-action-sheet.scss' })\nexport class Q2ActionSheet implements ComponentInterface {\n // #region Own Properties\n\n contentElement: HTMLDivElement;\n dialogElement: HTMLDialogElement;\n initialSelectedOptions: ActionSheetSelectedOption[] = [];\n maxHeight: number = 0.75;\n minHeight: number = 0.2;\n optionListElement: HTMLQ2OptionListElement;\n selectedOptions: { values: ActionSheetSelectedOption[]; value: string } = { values: [], value: '' };\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region State Properties\n\n @State()\n isScrollable: boolean = false;\n\n @State()\n renderStatus: 'is-open' | 'is-closing' | 'is-opening' = 'is-closing';\n\n // #endregion\n // #region Public Property API\n\n @Prop({ mutable: true })\n data: ActionSheetData;\n\n @Prop()\n hideClose: boolean;\n\n @Prop()\n title: string;\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when the action sheet is closed.\n */\n @Event()\n close: EventEmitter<ActionSheetListCloseData>;\n\n /**\n * Emitted when the component has finished rendering.\n * @private\n */\n @Event({ bubbles: false })\n ready: EventEmitter;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback() {\n this.dialogElement.removeEventListener('cancel', this.onCancel);\n }\n\n componentDidLoad() {\n this.dialogElement.addEventListener('cancel', this.onCancel);\n this.ready.emit();\n }\n\n // #endregion\n // #region Public Methods API\n\n @Method()\n async hide(data: ActionSheetListCloseData = { value: '', values: [], type: 'confirm' }) {\n this.close.emit(data);\n this.renderStatus = 'is-closing';\n this.dialogElement.addEventListener(\n 'transitionend',\n () => {\n if (this.renderStatus !== 'is-closing') return;\n this.dialogElement.close();\n this.renderStatus = null;\n this.data = undefined;\n this.initialSelectedOptions = [];\n this.selectedOptions = { values: [], value: '' };\n this.hidePostHook();\n },\n { once: true }\n );\n }\n\n @Method()\n async show() {\n this.showPreHook();\n await waitForNextPaint();\n this.updateDialogMinMaxHeight();\n this.storeInitialValues();\n\n if (this.dialogElement.open) return;\n\n this.dialogElement.showModal();\n this.renderStatus = 'is-opening';\n this.dialogElement.addEventListener(\n 'transitionend',\n () => {\n if (this.renderStatus !== 'is-opening') return;\n this.renderStatus = 'is-open';\n this.focusContent();\n },\n { once: true }\n );\n }\n\n // #endregion\n // #region Local Methods\n\n focusContent() {\n const { data } = this;\n if (!data) return;\n if (data.appearance === 'list') {\n const { event } = data;\n if (event instanceof KeyboardEvent) {\n this.optionListElement.handleExternalKeydown(event);\n } else {\n this.optionListElement.focus();\n }\n }\n }\n\n generateOptgroup = (option: ActionSheetListOptgroup) => {\n const optgroupElement = document.createElement('q2-optgroup');\n if (option.label) optgroupElement.setAttribute('label', option.label);\n if (option.disabled) optgroupElement.setAttribute('disabled', '');\n if (!!option.options.length)\n option.options.forEach(opt => optgroupElement.appendChild(this.generateOption(opt)));\n return optgroupElement;\n };\n\n generateOption = (option: ActionSheetListOption) => {\n const optionElement = document.createElement('q2-option');\n const { innerHTML, ...attributes } = option;\n if (innerHTML) optionElement.innerHTML = sanitizeHTMLString(innerHTML);\n Object.entries(attributes).forEach(([key, value]) => {\n if (value === undefined) return;\n if (typeof value === 'boolean') {\n if (value) optionElement.setAttribute(key, '');\n } else {\n optionElement.setAttribute(key, value);\n }\n });\n return optionElement;\n };\n\n hidePostHook() {\n const { data } = this;\n if (!data) return;\n if (data.appearance === 'list') {\n this.hostElement.innerHTML = null;\n }\n }\n\n onCancel = (event: Event) => {\n event.preventDefault();\n const { initialSelectedOptions } = this;\n this.hide({\n value: initialSelectedOptions?.[0]?.value ?? '',\n values: initialSelectedOptions,\n type: 'cancel',\n });\n };\n\n onClick = (event: MouseEvent) => {\n const eventTarget = event.target as HTMLElement;\n if (!(eventTarget instanceof HTMLElement)) return;\n\n const isInContent = !!eventTarget.closest('.interior, q2-action-sheet');\n if (isInContent) return;\n this.onCancel(event);\n };\n\n onListChange = (event: Q2OptionListCustomEvent<{ value: string; values: ActionSheetSelectedOption[] }>) => {\n this.selectedOptions = event.detail;\n };\n\n onListDone = () => {\n this.hide({\n ...this.selectedOptions,\n type: 'confirm',\n });\n };\n\n onListPopoverStateChange = (\n event: Q2OptionListCustomEvent<{ open: boolean; action: 'close' | 'select' | 'open' }>\n ) => {\n if (event.detail.open) return;\n\n if (event.detail.action === 'close') {\n this.onCancel(event);\n } else {\n this.onListDone();\n }\n };\n\n showPreHook() {\n const { data } = this;\n if (!data) return;\n if (data.appearance === 'list') {\n this.hostElement.innerHTML = null;\n data.options.forEach(option => {\n this.hostElement.appendChild(\n 'options' in option ? this.generateOptgroup(option) : this.generateOption(option)\n );\n });\n }\n }\n\n storeInitialValues() {\n const { data } = this;\n if (!data) return;\n if (data.appearance === 'list') {\n this.initialSelectedOptions = data.listProps.selectedOptions;\n }\n }\n\n updateDialogMinMaxHeight() {\n const windowHeight = window.innerHeight;\n this.dialogElement.style.setProperty(\n '--comp-action-sheet-computed-min-height',\n `${Math.floor(windowHeight * this.minHeight)}px`\n );\n this.dialogElement.style.setProperty(\n '--comp-action-sheet-computed-max-height',\n `${Math.floor(windowHeight * this.maxHeight)}px`\n );\n }\n\n // #endregion\n // #region Render Methods\n\n renderList = ({ data }: { data: ActionSheetListData }) => {\n const { listProps } = data;\n\n return (\n <Fragment>\n <div\n class=\"content\"\n ref={el => (this.contentElement = el)}\n >\n <q2-option-list\n ref={el => (this.optionListElement = el)}\n multiple={listProps.multiple}\n noSelect={listProps.noSelect}\n onChange={this.onListChange}\n onPopoverState={this.onListPopoverStateChange}\n selectedOptions={listProps.selectedOptions}\n >\n <slot />\n </q2-option-list>\n </div>\n <footer>\n {listProps.multiple && (\n <q2-btn\n test-id=\"btnDone\"\n intent=\"workflow-primary\"\n onClick={this.onListDone}\n >\n {loc('tecton.element.actionSheet.done')}\n </q2-btn>\n )}\n </footer>\n </Fragment>\n );\n };\n\n renderMessage = ({ data }: { data: ActionSheetMessageData }) => {\n return (\n <q2-message type={data.type}>\n {data.title && <h2>{data.title}</h2>}\n {data.description && <p>{data.description}</p>}\n </q2-message>\n );\n };\n\n renderSlot = () => {\n return (\n <div\n class=\"content\"\n ref={el => (this.contentElement = el)}\n >\n <slot />\n </div>\n );\n };\n\n render() {\n const { data } = this;\n const showHeader = data?.title || this.title || !this.hideClose;\n const renderStatus = this.renderStatus || '';\n\n let RenderContent = null;\n switch (data?.appearance) {\n case 'message':\n RenderContent = this.renderMessage;\n break;\n\n case 'list':\n RenderContent = this.renderList;\n break;\n\n default:\n RenderContent = this.renderSlot;\n break;\n }\n const appearance = data?.appearance || 'slot';\n const interiorClasses = `interior is-${appearance}`;\n\n return (\n <dialog\n ref={el => (this.dialogElement = el)}\n class={renderStatus}\n onClick={this.onClick}\n >\n <div class={interiorClasses}>\n {showHeader && (\n <header>\n <div class=\"title\">{data?.title || this.title}</div>\n {!this.hideClose && (\n <q2-btn\n class=\"btn-close\"\n test-id=\"btnClose\"\n onClick={this.onCancel}\n label=\"tecton.element.actionSheet.close\"\n hide-label\n >\n <q2-icon type=\"close\" />\n </q2-btn>\n )}\n </header>\n )}\n {this.data?.description && <p>{data.description}</p>}\n {RenderContent && <RenderContent data={this.data} />}\n </div>\n </dialog>\n );\n }\n\n // #endregion\n}\n"]}
|
|
1
|
+
{"version":3,"file":"q2-action-sheet.js","sourceRoot":"","sources":["../../../src/components/q2-action-sheet/q2-action-sheet.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n ComponentInterface,\n Prop,\n Method,\n h,\n State,\n Event,\n EventEmitter,\n Fragment,\n Element,\n} from '@stencil/core';\nimport { Q2OptionListCustomEvent } from 'src/components';\nimport {\n ActionSheetListCloseData,\n ActionSheetData,\n ActionSheetListData,\n ActionSheetMessageData,\n ActionSheetSelectedOption,\n ActionSheetListOption,\n ActionSheetListOptgroup,\n} from 'q2-tecton-common/lib/utility/action-sheet';\nimport { loc, waitForNextPaint } from 'src/utils';\nimport sanitizeHTMLString from 'src/utils/sanitize-html-string';\n\n@Component({ tag: 'q2-action-sheet', shadow: true, styleUrl: 'q2-action-sheet.scss' })\nexport class Q2ActionSheet implements ComponentInterface {\n // #region Own Properties\n\n contentElement: HTMLDivElement;\n dialogElement: HTMLDialogElement;\n initialSelectedOptions: ActionSheetSelectedOption[] = [];\n maxHeight: number = 0.75;\n minHeight: number = 0.2;\n optionListElement: HTMLQ2OptionListElement;\n selectedOptions: { values: ActionSheetSelectedOption[]; value: string } = { values: [], value: '' };\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region State Properties\n\n @State()\n isScrollable: boolean = false;\n\n @State()\n renderStatus: 'is-open' | 'is-closing' | 'is-opening' = 'is-closing';\n\n // #endregion\n // #region Public Property API\n\n @Prop({ mutable: true })\n data: ActionSheetData;\n\n @Prop()\n hideClose: boolean;\n\n @Prop()\n title: string;\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when the action sheet is closed.\n */\n @Event()\n close: EventEmitter<ActionSheetListCloseData>;\n\n /**\n * Emitted when the component has finished rendering.\n * @private\n */\n @Event({ bubbles: false })\n ready: EventEmitter;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback() {\n this.dialogElement.removeEventListener('cancel', this.onCancel);\n }\n\n componentDidLoad() {\n this.dialogElement.addEventListener('cancel', this.onCancel);\n this.ready.emit();\n }\n\n // #endregion\n // #region Public Methods API\n\n @Method()\n async hide(data: ActionSheetListCloseData = { value: '', values: [], type: 'confirm' }) {\n this.close.emit(data);\n this.renderStatus = 'is-closing';\n this.dialogElement.addEventListener(\n 'transitionend',\n () => {\n if (this.renderStatus !== 'is-closing') return;\n this.dialogElement.close();\n this.renderStatus = null;\n this.data = undefined;\n this.initialSelectedOptions = [];\n this.selectedOptions = { values: [], value: '' };\n this.hidePostHook();\n },\n { once: true }\n );\n }\n\n @Method()\n async show() {\n this.showPreHook();\n await waitForNextPaint();\n this.updateDialogMinMaxHeight();\n this.storeInitialValues();\n\n if (this.dialogElement.open) return;\n\n this.dialogElement.showModal();\n this.renderStatus = 'is-opening';\n this.dialogElement.addEventListener(\n 'transitionend',\n () => {\n if (this.renderStatus !== 'is-opening') return;\n this.renderStatus = 'is-open';\n this.focusContent();\n },\n { once: true }\n );\n }\n\n // #endregion\n // #region Local Methods\n\n focusContent() {\n const { data } = this;\n if (!data) return;\n if (data.appearance === 'list') {\n const { event } = data;\n if (event instanceof KeyboardEvent) {\n this.optionListElement.handleExternalKeydown(event);\n } else {\n this.optionListElement.focus();\n }\n }\n }\n\n generateOptgroup = (option: ActionSheetListOptgroup) => {\n const optgroupElement = document.createElement('q2-optgroup');\n if (option.label) optgroupElement.setAttribute('label', option.label);\n if (option.disabled) optgroupElement.setAttribute('disabled', '');\n if (!!option.options.length)\n option.options.forEach(opt => optgroupElement.appendChild(this.generateOption(opt)));\n return optgroupElement;\n };\n\n generateOption = (option: ActionSheetListOption) => {\n const optionElement = document.createElement('q2-option');\n const { innerHTML, ...attributes } = option;\n if (innerHTML) optionElement.innerHTML = sanitizeHTMLString(innerHTML);\n Object.entries(attributes).forEach(([key, value]) => {\n if (value === undefined) return;\n if (typeof value === 'boolean') {\n if (value) optionElement.setAttribute(key, '');\n } else {\n optionElement.setAttribute(key, value);\n }\n });\n return optionElement;\n };\n\n hidePostHook() {\n const { data } = this;\n if (!data) return;\n if (data.appearance === 'list') {\n this.hostElement.innerHTML = null;\n }\n }\n\n onCancel = (event: Event) => {\n event.preventDefault();\n const { initialSelectedOptions } = this;\n this.hide({\n value: initialSelectedOptions?.[0]?.value ?? '',\n values: initialSelectedOptions,\n type: 'cancel',\n });\n };\n\n onClick = (event: MouseEvent) => {\n const eventTarget = event.target as HTMLElement;\n if (!(eventTarget instanceof HTMLElement)) return;\n\n const isInContent = !!eventTarget.closest('.interior, q2-action-sheet');\n if (isInContent) return;\n this.onCancel(event);\n };\n\n onListChange = (event: Q2OptionListCustomEvent<{ value: string; values: ActionSheetSelectedOption[] }>) => {\n this.selectedOptions = event.detail;\n };\n\n onListDone = () => {\n this.hide({\n ...this.selectedOptions,\n type: 'confirm',\n });\n };\n\n onListPopoverStateChange = (\n event: Q2OptionListCustomEvent<{ open: boolean; action: 'close' | 'select' | 'open' }>\n ) => {\n if (event.detail.open) return;\n\n if (event.detail.action === 'close') {\n this.onCancel(event);\n } else {\n this.onListDone();\n }\n };\n\n showPreHook() {\n const { data } = this;\n if (!data) return;\n if (data.appearance === 'list') {\n this.hostElement.innerHTML = null;\n data.options.forEach(option => {\n this.hostElement.appendChild(\n 'options' in option ? this.generateOptgroup(option) : this.generateOption(option)\n );\n });\n }\n }\n\n storeInitialValues() {\n const { data } = this;\n if (!data) return;\n if (data.appearance === 'list') {\n this.initialSelectedOptions = data.listProps.selectedOptions;\n }\n }\n\n updateDialogMinMaxHeight() {\n const windowHeight = window.innerHeight;\n this.dialogElement.style.setProperty(\n '--comp-action-sheet-computed-min-height',\n `${Math.floor(windowHeight * this.minHeight)}px`\n );\n this.dialogElement.style.setProperty(\n '--comp-action-sheet-computed-max-height',\n `${Math.floor(windowHeight * this.maxHeight)}px`\n );\n }\n\n // #endregion\n // #region Render Methods\n\n renderList = ({ data }: { data: ActionSheetListData }) => {\n const { listProps } = data;\n\n return (\n <Fragment>\n <div\n class=\"content\"\n ref={el => (this.contentElement = el)}\n >\n <q2-option-list\n ref={el => (this.optionListElement = el)}\n multiple={listProps.multiple}\n noSelect={listProps.noSelect}\n onChange={this.onListChange}\n onPopoverState={this.onListPopoverStateChange}\n selectedOptions={listProps.selectedOptions}\n >\n <slot />\n </q2-option-list>\n </div>\n <footer>\n {listProps.multiple && (\n <q2-btn\n test-id=\"btnDone\"\n intent=\"workflow-primary\"\n onClick={this.onListDone}\n >\n {loc('tecton.element.actionSheet.done')}\n </q2-btn>\n )}\n </footer>\n </Fragment>\n );\n };\n\n renderMessage = ({ data }: { data: ActionSheetMessageData }) => {\n return (\n <q2-message type={data.type}>\n {data.title && <h2>{data.title}</h2>}\n {data.description && <p>{data.description}</p>}\n </q2-message>\n );\n };\n\n renderSlot = () => {\n return (\n <div\n class=\"content\"\n ref={el => (this.contentElement = el)}\n >\n <slot />\n </div>\n );\n };\n\n render() {\n const { data } = this;\n const showHeader = data?.title || this.title || !this.hideClose;\n const renderStatus = this.renderStatus || '';\n\n let RenderContent = null;\n switch (data?.appearance) {\n case 'message':\n RenderContent = this.renderMessage;\n break;\n\n case 'list':\n RenderContent = this.renderList;\n break;\n\n default:\n RenderContent = this.renderSlot;\n break;\n }\n const appearance = data?.appearance || 'slot';\n const interiorClasses = `interior is-${appearance}`;\n\n return (\n <dialog\n ref={el => (this.dialogElement = el)}\n class={renderStatus}\n onClick={this.onClick}\n >\n <div class={interiorClasses}>\n {showHeader && (\n <header>\n <div class=\"title\">{data?.title || this.title}</div>\n {!this.hideClose && (\n <q2-btn\n class=\"btn-close\"\n test-id=\"btnClose\"\n onClick={this.onCancel}\n label=\"tecton.element.actionSheet.close\"\n hide-label\n >\n <q2-icon type=\"close\" />\n </q2-btn>\n )}\n </header>\n )}\n {this.data?.description && <p>{data.description}</p>}\n {RenderContent && <RenderContent data={this.data} />}\n </div>\n </dialog>\n );\n }\n\n // #endregion\n}\n"]}
|
|
@@ -48,7 +48,7 @@ export class Q2Avatar {
|
|
|
48
48
|
const isLoaded = this.isLoaded;
|
|
49
49
|
const showInitials = (this.name || this.initials) && (!this.src || this.badSrc);
|
|
50
50
|
const showFallback = !this.name && !this.initials && (!this.src || this.badSrc);
|
|
51
|
-
return (h("div", { key: '
|
|
51
|
+
return (h("div", { key: '7ecd9ef9eefb818f07ecf991af2eb5ad0f495497' }, showImg && (h("img", { key: '11c948c15f4b848457866f0a898368d1e609944c', class: isLoaded ? 'avatar-img' : 'avatar-img-default', "test-id": "userImage", src: this.src, onError: this.onError, onLoad: this.onLoad, alt: this.name || '' })), showInitials && (h("svg", { key: '22bea8e763c06733d7d999b2784d0bcfe503c432', viewBox: "0 0 100 100", preserveAspectRatio: "xMidYMid meet", "test-id": "userInitials", class: `avatar-initials size-${computedInitials.length}`, "aria-label": this.name, "aria-hidden": !this.name && 'true' }, h("text", { key: 'aa9a1512d5ae2f204e0d369b1209f7f3f33d2fcc', x: "50", y: "50", "dominant-baseline": "central", "text-anchor": "middle", "aria-hidden": "true" }, computedInitials))), showFallback && (h("div", { key: 'f897f840dbc1c453e2a9f83801a68e17aadca240', "test-id": "fallbackIcon", class: "fallback" }, h("q2-icon", { key: '5c880be18f7b8fe4f9b844ad66e5d9caf2959313', type: this.icon })))));
|
|
52
52
|
}
|
|
53
53
|
static get is() { return "q2-avatar"; }
|
|
54
54
|
static get encapsulation() { return "shadow"; }
|
|
@@ -5,15 +5,6 @@ describe('q2-avatar', () => {
|
|
|
5
5
|
const page = await setup({ html: `<q2-avatar></q2-avatar>` });
|
|
6
6
|
expect(await getListOfStyleCompilationIssues(page, 'q2-avatar')).toHaveLength(0);
|
|
7
7
|
});
|
|
8
|
-
describe('[A11y] guideline compliance', () => {
|
|
9
|
-
it('Does not have accessibility violations', async () => {
|
|
10
|
-
const page = await setup({
|
|
11
|
-
html: `<q2-avatar src="${base64Image}"></q2-avatar>`,
|
|
12
|
-
});
|
|
13
|
-
const hasViolations = await evaluateA11y(page);
|
|
14
|
-
expect(hasViolations).toBe(false);
|
|
15
|
-
});
|
|
16
|
-
});
|
|
17
8
|
describe('@Props', () => {
|
|
18
9
|
describe('src', () => {
|
|
19
10
|
describe('when provided', () => {
|
|
@@ -168,5 +159,19 @@ describe('q2-avatar', () => {
|
|
|
168
159
|
const userInitials = await page.find('q2-avatar >>> [test-id="userInitials"]');
|
|
169
160
|
expect(userInitials.innerText).toEqual('SM');
|
|
170
161
|
});
|
|
162
|
+
describe('Accessibility', () => {
|
|
163
|
+
describe('aXe DevTools', () => {
|
|
164
|
+
it('does not have accessibility violations', async () => {
|
|
165
|
+
const page = await setup({
|
|
166
|
+
html: `<q2-avatar src="${base64Image}"></q2-avatar>`,
|
|
167
|
+
});
|
|
168
|
+
const hasViolations = await evaluateA11y(page);
|
|
169
|
+
expect(hasViolations).toBe(false);
|
|
170
|
+
});
|
|
171
|
+
});
|
|
172
|
+
describe('Accessibility Tree', () => { });
|
|
173
|
+
describe('Keyboard Controls', () => { });
|
|
174
|
+
describe('Other', () => { });
|
|
175
|
+
});
|
|
171
176
|
});
|
|
172
177
|
//# sourceMappingURL=q2-avatar-test.e2e.js.map
|