q2-tecton-elements 1.67.2 → 1.68.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 +22598 -10670
- package/dist/cjs/click-elsewhere.q2-option-list.q2-popover.entry.cjs.js.map +1 -1
- package/dist/cjs/click-elsewhere_3.cjs.entry.js +46 -32
- package/dist/cjs/click-elsewhere_3.cjs.entry.js.map +1 -1
- package/dist/cjs/{component-DRAntnCA.js → component-iASoq6gx.js} +9 -3
- package/dist/cjs/component-iASoq6gx.js.map +1 -0
- package/dist/cjs/{index-YvKoRT-t.js → index-DmGkqdX2.js} +3 -3
- package/dist/cjs/index-DmGkqdX2.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/q2-action-group.q2-resize-observer.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-action-group_2.cjs.entry.js +2 -2
- package/dist/cjs/q2-action-group_2.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-action-sheet.cjs.entry.js +109 -4
- package/dist/cjs/q2-action-sheet.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-action-sheet.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-avatar.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-avatar.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-badge.cjs.entry.js +1 -1
- package/dist/cjs/q2-badge.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-badge.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-btn.q2-loading.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-btn_2.cjs.entry.js +1 -1
- package/dist/cjs/q2-btn_2.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-calendar.cjs.entry.js +6 -3
- package/dist/cjs/q2-calendar.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-calendar.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-card-image.cjs.entry.js +2 -2
- package/dist/cjs/q2-card-image.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-card-image.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-card.cjs.entry.js +1 -1
- package/dist/cjs/q2-card.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-card.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-carousel-pane.cjs.entry.js +3 -3
- package/dist/cjs/q2-carousel-pane.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-carousel-pane.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-carousel.cjs.entry.js +162 -29
- package/dist/cjs/q2-carousel.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-carousel.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-chart-area.cjs.entry.js +1 -1
- package/dist/cjs/q2-chart-bar.cjs.entry.js +1 -1
- package/dist/cjs/q2-chart-donut.cjs.entry.js +3 -2
- package/dist/cjs/q2-chart-donut.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-chart-donut.entry.cjs.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-group.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-checkbox.q2-tag.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-checkbox_2.cjs.entry.js +3 -3
- package/dist/cjs/q2-checkbox_2.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-context.cjs.entry.js +2 -2
- package/dist/cjs/q2-context.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-context.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-currency.cjs.entry.js +2 -3
- package/dist/cjs/q2-currency.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-currency.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-data-table.cjs.entry.js +2 -2
- package/dist/cjs/q2-data-table.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-data-table.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-detail.cjs.entry.js +2 -2
- package/dist/cjs/q2-detail.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-detail.entry.cjs.js.map +1 -1
- 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-item.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-dropdown.cjs.entry.js +3 -5
- package/dist/cjs/q2-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-dropdown.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-editable-field.cjs.entry.js +1 -1
- package/dist/cjs/q2-editable-field.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-editable-field.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-example.cjs.entry.js +1 -1
- package/dist/cjs/q2-file-picker.cjs.entry.js +1 -1
- package/dist/cjs/q2-file-picker.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-file-picker.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-form.cjs.entry.js +2 -2
- package/dist/cjs/q2-form.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-form.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-formatted-text.cjs.entry.js +1 -1
- package/dist/cjs/q2-formatted-text.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-formatted-text.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-grid-area.cjs.entry.js +1 -1
- package/dist/cjs/q2-grid.cjs.entry.js +32 -8
- package/dist/cjs/q2-grid.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-grid.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-icon.cjs.entry.js +1 -1
- package/dist/cjs/q2-icon.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-icon.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-input.cjs.entry.js +8 -5
- package/dist/cjs/q2-input.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-input.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-item.cjs.entry.js +2 -2
- package/dist/cjs/q2-item.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-item.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-legend.cjs.entry.js +2 -3
- package/dist/cjs/q2-legend.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-legend.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-link.q2-list.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-link_2.cjs.entry.js +2 -2
- package/dist/cjs/q2-link_2.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-loc.cjs.entry.js +1 -1
- package/dist/cjs/q2-message.cjs.entry.js +3 -3
- package/dist/cjs/q2-message.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-message.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-meter.cjs.entry.js +2 -2
- package/dist/cjs/q2-meter.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-meter.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-modal.cjs.entry.js +3 -3
- package/dist/cjs/q2-modal.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-modal.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-month-picker.cjs.entry.js +1 -1
- package/dist/cjs/q2-mutation-observer.cjs.entry.js +1 -1
- package/dist/cjs/q2-optgroup.cjs.entry.js +3 -3
- package/dist/cjs/q2-optgroup.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-optgroup.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-option.cjs.entry.js +3 -3
- package/dist/cjs/q2-option.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-option.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-otp.cjs.entry.js +373 -0
- package/dist/cjs/q2-otp.cjs.entry.js.map +1 -0
- package/dist/cjs/q2-otp.entry.cjs.js.map +1 -0
- package/dist/cjs/q2-pagination.cjs.entry.js +4 -4
- package/dist/cjs/q2-pagination.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-pagination.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-pill.cjs.entry.js +24 -15
- package/dist/cjs/q2-pill.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-pill.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-radio-group.cjs.entry.js +1 -1
- package/dist/cjs/q2-radio-group.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-radio-group.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-radio.cjs.entry.js +3 -3
- package/dist/cjs/q2-radio.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-radio.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-relative-time.cjs.entry.js +2 -2
- package/dist/cjs/q2-section-container.cjs.entry.js +1 -1
- package/dist/cjs/q2-section.cjs.entry.js +3 -3
- package/dist/cjs/q2-section.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-section.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-select.cjs.entry.js +1 -1
- package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-select.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-stepper-pane.cjs.entry.js +3 -3
- package/dist/cjs/q2-stepper-vertical.cjs.entry.js +2 -2
- package/dist/cjs/q2-stepper-vertical.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-stepper-vertical.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-stepper.cjs.entry.js +2 -2
- package/dist/cjs/q2-stepper.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-stepper.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-tab-container.cjs.entry.js +3 -3
- package/dist/cjs/q2-tab-container.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-tab-container.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-tab-pane.cjs.entry.js +2 -2
- package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
- package/dist/cjs/q2-textarea.cjs.entry.js +1 -1
- package/dist/cjs/q2-textarea.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-textarea.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-toast.cjs.entry.js +1 -1
- package/dist/cjs/q2-toast.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-toast.entry.cjs.js.map +1 -1
- package/dist/cjs/q2-tooltip.cjs.entry.js +124 -5
- package/dist/cjs/q2-tooltip.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-tooltip.entry.cjs.js.map +1 -1
- package/dist/cjs/{sanitize-html-string-CW6y5624.js → sanitize-html-string-D17Pr7-c.js} +21 -4
- package/dist/cjs/{sanitize-html-string-CW6y5624.js.map → sanitize-html-string-D17Pr7-c.js.map} +1 -1
- package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/click-elsewhere/click-elsewhere.js +2 -0
- package/dist/collection/components/click-elsewhere/click-elsewhere.js.map +1 -1
- package/dist/collection/components/q2-action-group/q2-action-group.css +14 -0
- package/dist/collection/components/q2-action-sheet/q2-action-sheet.css +16 -0
- package/dist/collection/components/q2-action-sheet/q2-action-sheet.js +107 -2
- package/dist/collection/components/q2-action-sheet/q2-action-sheet.js.map +1 -1
- package/dist/collection/components/q2-avatar/q2-avatar.css +24 -0
- package/dist/collection/components/q2-avatar/test/q2-avatar-test.vr.js +61 -0
- package/dist/collection/components/q2-avatar/test/q2-avatar-test.vr.js.map +1 -0
- package/dist/collection/components/q2-badge/q2-badge.css +30 -0
- package/dist/collection/components/q2-badge/test/q2-badge-test.vr.js +34 -0
- package/dist/collection/components/q2-badge/test/q2-badge-test.vr.js.map +1 -0
- package/dist/collection/components/q2-btn/q2-btn.css +279 -0
- package/dist/collection/components/q2-btn/test/q2-btn-test.vr.js +80 -0
- package/dist/collection/components/q2-btn/test/q2-btn-test.vr.js.map +1 -0
- package/dist/collection/components/q2-calendar/q2-calendar.css +36 -0
- package/dist/collection/components/q2-calendar/q2-calendar.js +5 -2
- package/dist/collection/components/q2-calendar/q2-calendar.js.map +1 -1
- package/dist/collection/components/q2-calendar/test/q2-calendar-test.vr.js +170 -0
- package/dist/collection/components/q2-calendar/test/q2-calendar-test.vr.js.map +1 -0
- package/dist/collection/components/q2-card/q2-card.css +62 -0
- package/dist/collection/components/q2-card/test/q2-card-test.vr.js +72 -0
- package/dist/collection/components/q2-card/test/q2-card-test.vr.js.map +1 -0
- package/dist/collection/components/q2-card-image/q2-card-image.css +74 -13
- package/dist/collection/components/q2-card-image/test/q2-card-image-test.vr.js +152 -0
- package/dist/collection/components/q2-card-image/test/q2-card-image-test.vr.js.map +1 -0
- package/dist/collection/components/q2-carousel/q2-carousel.css +78 -13
- package/dist/collection/components/q2-carousel/q2-carousel.js +241 -27
- package/dist/collection/components/q2-carousel/q2-carousel.js.map +1 -1
- package/dist/collection/components/q2-carousel/test/q2-carousel-test.vr.js +104 -0
- package/dist/collection/components/q2-carousel/test/q2-carousel-test.vr.js.map +1 -0
- package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.css +26 -1
- package/dist/collection/components/q2-chart-area/test/q2-chart-area-test.vr.js +126 -0
- package/dist/collection/components/q2-chart-area/test/q2-chart-area-test.vr.js.map +1 -0
- package/dist/collection/components/q2-chart-bar/test/q2-chart-bar-test.vr.js +105 -0
- package/dist/collection/components/q2-chart-bar/test/q2-chart-bar-test.vr.js.map +1 -0
- package/dist/collection/components/q2-chart-donut/q2-chart-donut.css +29 -0
- package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +21 -1
- 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.vr.js +151 -0
- package/dist/collection/components/q2-chart-donut/test/q2-chart-donut-test.vr.js.map +1 -0
- package/dist/collection/components/q2-checkbox/q2-checkbox.css +128 -0
- package/dist/collection/components/q2-checkbox/test/q2-checkbox-test.vr.js +69 -0
- package/dist/collection/components/q2-checkbox/test/q2-checkbox-test.vr.js.map +1 -0
- package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.css +21 -0
- package/dist/collection/components/q2-checkbox-group/test/q2-checkbox-group-test.vr.js +61 -0
- package/dist/collection/components/q2-checkbox-group/test/q2-checkbox-group-test.vr.js.map +1 -0
- package/dist/collection/components/q2-context/q2-context.css +16 -0
- package/dist/collection/components/q2-context/test/q2-context-test.vr.js +95 -0
- package/dist/collection/components/q2-context/test/q2-context-test.vr.js.map +1 -0
- package/dist/collection/components/q2-currency/q2-currency.css +31 -0
- package/dist/collection/components/q2-currency/q2-currency.js +3 -4
- package/dist/collection/components/q2-currency/q2-currency.js.map +1 -1
- package/dist/collection/components/q2-currency/test/q2-currency-test.vr.js +79 -0
- package/dist/collection/components/q2-currency/test/q2-currency-test.vr.js.map +1 -0
- package/dist/collection/components/q2-data-table/q2-data-table.css +51 -0
- package/dist/collection/components/q2-data-table/q2-data-table.js +1 -1
- package/dist/collection/components/q2-data-table/test/q2-data-table-test.vr.js +79 -0
- package/dist/collection/components/q2-data-table/test/q2-data-table-test.vr.js.map +1 -0
- package/dist/collection/components/q2-detail/q2-detail.css +42 -0
- package/dist/collection/components/q2-detail/q2-detail.js +1 -1
- package/dist/collection/components/q2-dropdown/q2-dropdown.css +8 -0
- package/dist/collection/components/q2-dropdown/q2-dropdown.js +2 -4
- package/dist/collection/components/q2-dropdown/q2-dropdown.js.map +1 -1
- package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.css +11 -0
- package/dist/collection/components/q2-editable-field/q2-editable-field.css +5 -0
- package/dist/collection/components/q2-editable-field/test/q2-editable-field-test.vr.js +89 -0
- package/dist/collection/components/q2-editable-field/test/q2-editable-field-test.vr.js.map +1 -0
- package/dist/collection/components/q2-example/q2-example.js +1 -1
- package/dist/collection/components/q2-file-picker/q2-file-picker.css +64 -0
- package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.vr.js +92 -0
- package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.vr.js.map +1 -0
- package/dist/collection/components/q2-form/q2-form.css +34 -20
- package/dist/collection/components/q2-form/q2-form.js +1 -1
- package/dist/collection/components/q2-formatted-text/q2-formatted-text.css +14 -0
- package/dist/collection/components/q2-formatted-text/q2-formatted-text.js +1 -1
- package/dist/collection/components/q2-formatted-text/test/q2-formatted-text-test.vr.js +55 -0
- package/dist/collection/components/q2-formatted-text/test/q2-formatted-text-test.vr.js.map +1 -0
- package/dist/collection/components/q2-grid/q2-grid.css +13 -0
- package/dist/collection/components/q2-grid/q2-grid.js +31 -7
- package/dist/collection/components/q2-grid/q2-grid.js.map +1 -1
- package/dist/collection/components/q2-icon/assets/standard.symbol.svg +1 -1
- package/dist/collection/components/q2-icon/q2-icon.css +15 -0
- package/dist/collection/components/q2-icon/test/q2-icon-test.vr.js +55 -0
- package/dist/collection/components/q2-icon/test/q2-icon-test.vr.js.map +1 -0
- package/dist/collection/components/q2-input/q2-input.css +104 -0
- package/dist/collection/components/q2-input/q2-input.js +6 -3
- package/dist/collection/components/q2-input/q2-input.js.map +1 -1
- package/dist/collection/components/q2-input/test/q2-input-test.vr.js +97 -0
- package/dist/collection/components/q2-input/test/q2-input-test.vr.js.map +1 -0
- package/dist/collection/components/q2-item/q2-item.css +28 -0
- package/dist/collection/components/q2-item/q2-item.js +1 -1
- package/dist/collection/components/q2-legend/q2-legend.css +16 -0
- package/dist/collection/components/q2-legend/q2-legend.js +21 -3
- package/dist/collection/components/q2-legend/q2-legend.js.map +1 -1
- package/dist/collection/components/q2-link/q2-link.css +20 -0
- package/dist/collection/components/q2-link/test/q2-link-test.vr.js +70 -0
- package/dist/collection/components/q2-link/test/q2-link-test.vr.js.map +1 -0
- package/dist/collection/components/q2-list/q2-list.css +14 -0
- package/dist/collection/components/q2-list/q2-list.js +1 -1
- package/dist/collection/components/q2-list/test/q2-list-test.vr.js +58 -0
- package/dist/collection/components/q2-list/test/q2-list-test.vr.js.map +1 -0
- package/dist/collection/components/q2-loading/q2-loading.css +9 -0
- package/dist/collection/components/q2-message/q2-message.css +29 -1
- package/dist/collection/components/q2-message/q2-message.js +1 -1
- package/dist/collection/components/q2-message/test/q2-message-test.vr.js +57 -0
- package/dist/collection/components/q2-message/test/q2-message-test.vr.js.map +1 -0
- package/dist/collection/components/q2-meter/q2-meter.css +40 -0
- package/dist/collection/components/q2-meter/q2-meter.js +1 -1
- package/dist/collection/components/q2-meter/test/q2-meter-test.vr.js +78 -0
- package/dist/collection/components/q2-meter/test/q2-meter-test.vr.js.map +1 -0
- package/dist/collection/components/q2-modal/q2-modal.css +21 -0
- package/dist/collection/components/q2-modal/q2-modal.js +1 -1
- package/dist/collection/components/q2-modal/test/q2-modal-test.vr.js +107 -0
- package/dist/collection/components/q2-modal/test/q2-modal-test.vr.js.map +1 -0
- package/dist/collection/components/q2-mutation-observer/q2-mutation-observer.js +1 -1
- package/dist/collection/components/q2-optgroup/q2-optgroup.css +11 -0
- package/dist/collection/components/q2-optgroup/q2-optgroup.js +1 -1
- package/dist/collection/components/q2-option/q2-option.css +9 -0
- package/dist/collection/components/q2-option/q2-option.js +1 -1
- package/dist/collection/components/q2-option/q2-option.js.map +1 -1
- package/dist/collection/components/q2-option-list/q2-option-list.css +3 -0
- package/dist/collection/components/q2-option-list/q2-option-list.js +37 -28
- package/dist/collection/components/q2-option-list/q2-option-list.js.map +1 -1
- package/dist/collection/components/q2-otp/q2-otp.css +312 -0
- package/dist/collection/components/q2-otp/q2-otp.js +873 -0
- package/dist/collection/components/q2-otp/q2-otp.js.map +1 -0
- package/dist/collection/components/q2-pagination/q2-pagination.css +22 -0
- package/dist/collection/components/q2-pagination/q2-pagination.js +3 -3
- package/dist/collection/components/q2-pagination/test/q2-pagination-test.vr.js +145 -0
- package/dist/collection/components/q2-pagination/test/q2-pagination-test.vr.js.map +1 -0
- package/dist/collection/components/q2-pill/q2-pill.css +53 -0
- package/dist/collection/components/q2-pill/q2-pill.js +23 -14
- package/dist/collection/components/q2-pill/q2-pill.js.map +1 -1
- package/dist/collection/components/q2-pill/test/q2-pill-test.vr.js +110 -0
- package/dist/collection/components/q2-pill/test/q2-pill-test.vr.js.map +1 -0
- package/dist/collection/components/q2-popover/q2-popover.css +20 -0
- package/dist/collection/components/q2-popover/q2-popover.js +5 -2
- package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
- package/dist/collection/components/q2-radio/q2-radio.css +52 -1
- package/dist/collection/components/q2-radio/q2-radio.js +2 -2
- package/dist/collection/components/q2-radio/q2-radio.js.map +1 -1
- package/dist/collection/components/q2-radio/test/q2-radio-test.vr.js +73 -0
- package/dist/collection/components/q2-radio/test/q2-radio-test.vr.js.map +1 -0
- package/dist/collection/components/q2-radio-group/q2-radio-group.css +22 -0
- package/dist/collection/components/q2-radio-group/test/q2-radio-group-test.vr.js +99 -0
- package/dist/collection/components/q2-radio-group/test/q2-radio-group-test.vr.js.map +1 -0
- package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
- package/dist/collection/components/q2-resize-observer/q2-resize-observer.js +1 -1
- package/dist/collection/components/q2-section/q2-section.css +26 -0
- package/dist/collection/components/q2-section/q2-section.js +2 -2
- package/dist/collection/components/q2-section/test/q2-section-test.vr.js +68 -0
- package/dist/collection/components/q2-section/test/q2-section-test.vr.js.map +1 -0
- package/dist/collection/components/q2-select/q2-select.css +17 -0
- package/dist/collection/components/q2-select/test/q2-select-test.vr.js +107 -0
- package/dist/collection/components/q2-select/test/q2-select-test.vr.js.map +1 -0
- package/dist/collection/components/q2-stepper/q2-stepper.css +36 -0
- package/dist/collection/components/q2-stepper/q2-stepper.js +1 -1
- package/dist/collection/components/q2-stepper/test/q2-stepper-test.vr.js +86 -0
- package/dist/collection/components/q2-stepper/test/q2-stepper-test.vr.js.map +1 -0
- package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js +1 -1
- package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.css +31 -0
- 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.vr.js +97 -0
- package/dist/collection/components/q2-stepper-vertical/test/q2-stepper-vertical-test.vr.js.map +1 -0
- package/dist/collection/components/q2-tab-container/q2-tab-container.css +38 -0
- package/dist/collection/components/q2-tab-container/q2-tab-container.js +1 -1
- package/dist/collection/components/q2-tab-container/test/q2-tab-container-test.vr.js +78 -0
- package/dist/collection/components/q2-tab-container/test/q2-tab-container-test.vr.js.map +1 -0
- package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
- package/dist/collection/components/q2-tag/q2-tag.css +30 -1
- package/dist/collection/components/q2-tag/q2-tag.js +1 -1
- package/dist/collection/components/q2-tag/test/q2-tag-test.vr.js +83 -0
- package/dist/collection/components/q2-tag/test/q2-tag-test.vr.js.map +1 -0
- package/dist/collection/components/q2-textarea/q2-textarea.css +80 -0
- package/dist/collection/components/q2-textarea/test/q2-textarea-test.vr.js +102 -0
- package/dist/collection/components/q2-textarea/test/q2-textarea-test.vr.js.map +1 -0
- package/dist/collection/components/q2-toast/q2-toast.css +15 -0
- package/dist/collection/components/q2-tooltip/q2-tooltip.css +31 -0
- package/dist/collection/components/q2-tooltip/q2-tooltip.js +135 -4
- package/dist/collection/components/q2-tooltip/q2-tooltip.js.map +1 -1
- package/dist/collection/components/q2-tooltip/test/q2-tooltip-test.vr.js +76 -0
- package/dist/collection/components/q2-tooltip/test/q2-tooltip-test.vr.js.map +1 -0
- package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
- package/dist/collection/utils/component.js +7 -1
- package/dist/collection/utils/component.js.map +1 -1
- package/dist/collection/utils/index.js +1 -1
- package/dist/collection/utils/index.js.map +1 -1
- package/dist/collection/utils/sanitize-html-string.js +19 -2
- package/dist/collection/utils/sanitize-html-string.js.map +1 -1
- package/dist/collection/utils/test/vr-helpers.js +98 -0
- package/dist/collection/utils/test/vr-helpers.js.map +1 -0
- package/dist/components/click-elsewhere2.js +2 -0
- package/dist/components/click-elsewhere2.js.map +1 -1
- package/dist/components/component.js +7 -1
- package/dist/components/component.js.map +1 -1
- package/dist/components/index.js +2 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/index2.js +1 -1
- package/dist/components/index2.js.map +1 -1
- package/dist/components/q2-action-group2.js.map +1 -1
- package/dist/components/q2-action-sheet.js +107 -2
- package/dist/components/q2-action-sheet.js.map +1 -1
- package/dist/components/q2-avatar2.js.map +1 -1
- package/dist/components/q2-badge2.js.map +1 -1
- package/dist/components/q2-btn2.js.map +1 -1
- package/dist/components/q2-calendar.js +5 -2
- package/dist/components/q2-calendar.js.map +1 -1
- package/dist/components/q2-card-image.js +1 -1
- package/dist/components/q2-card-image.js.map +1 -1
- package/dist/components/q2-card.js.map +1 -1
- package/dist/components/q2-carousel-pane.js +1 -135
- package/dist/components/q2-carousel-pane.js.map +1 -1
- package/dist/components/q2-carousel-pane2.js +140 -0
- package/dist/components/q2-carousel-pane2.js.map +1 -0
- package/dist/components/q2-carousel.js +173 -29
- package/dist/components/q2-carousel.js.map +1 -1
- package/dist/components/q2-chart-donut.js +3 -1
- package/dist/components/q2-chart-donut.js.map +1 -1
- package/dist/components/q2-checkbox-group.js.map +1 -1
- package/dist/components/q2-checkbox2.js.map +1 -1
- package/dist/components/q2-context.js +1 -1
- package/dist/components/q2-context.js.map +1 -1
- package/dist/components/q2-currency.js +3 -4
- package/dist/components/q2-currency.js.map +1 -1
- package/dist/components/q2-data-table.js +1 -1
- package/dist/components/q2-data-table.js.map +1 -1
- package/dist/components/q2-detail.js +1 -1
- package/dist/components/q2-detail.js.map +1 -1
- package/dist/components/q2-dropdown-item2.js.map +1 -1
- package/dist/components/q2-dropdown.js +2 -4
- package/dist/components/q2-dropdown.js.map +1 -1
- package/dist/components/q2-editable-field.js.map +1 -1
- package/dist/components/q2-example.js +1 -1
- package/dist/components/q2-file-picker.js.map +1 -1
- package/dist/components/q2-form.js +2 -2
- package/dist/components/q2-form.js.map +1 -1
- package/dist/components/q2-formatted-text.js +1 -1
- package/dist/components/q2-formatted-text.js.map +1 -1
- package/dist/components/q2-grid.js +32 -8
- package/dist/components/q2-grid.js.map +1 -1
- package/dist/components/q2-icon2.js.map +1 -1
- package/dist/components/q2-input2.js +7 -4
- package/dist/components/q2-input2.js.map +1 -1
- package/dist/components/q2-item2.js +1 -1
- package/dist/components/q2-item2.js.map +1 -1
- package/dist/components/q2-legend2.js +3 -3
- package/dist/components/q2-legend2.js.map +1 -1
- package/dist/components/q2-link2.js.map +1 -1
- package/dist/components/q2-list2.js +1 -1
- package/dist/components/q2-list2.js.map +1 -1
- package/dist/components/q2-loading2.js.map +1 -1
- package/dist/components/q2-message2.js +2 -2
- package/dist/components/q2-message2.js.map +1 -1
- package/dist/components/q2-meter.js +1 -1
- package/dist/components/q2-meter.js.map +1 -1
- package/dist/components/q2-modal.js +1 -1
- package/dist/components/q2-modal.js.map +1 -1
- package/dist/components/q2-mutation-observer.js +1 -1
- package/dist/components/q2-optgroup2.js +1 -1
- package/dist/components/q2-optgroup2.js.map +1 -1
- package/dist/components/q2-option-list2.js +37 -28
- package/dist/components/q2-option-list2.js.map +1 -1
- package/dist/components/q2-option2.js +1 -1
- package/dist/components/q2-option2.js.map +1 -1
- package/dist/components/q2-otp.d.ts +11 -0
- package/dist/components/q2-otp.js +439 -0
- package/dist/components/q2-otp.js.map +1 -0
- package/dist/components/q2-pagination.js +3 -3
- package/dist/components/q2-pagination.js.map +1 -1
- package/dist/components/q2-pill.js +23 -14
- package/dist/components/q2-pill.js.map +1 -1
- package/dist/components/q2-popover2.js +5 -2
- package/dist/components/q2-popover2.js.map +1 -1
- package/dist/components/q2-radio-group.js.map +1 -1
- package/dist/components/q2-radio.js +2 -2
- package/dist/components/q2-radio.js.map +1 -1
- package/dist/components/q2-relative-time.js +1 -1
- package/dist/components/q2-resize-observer2.js +1 -1
- package/dist/components/q2-section.js +2 -2
- package/dist/components/q2-section.js.map +1 -1
- package/dist/components/q2-select2.js.map +1 -1
- package/dist/components/q2-stepper-pane.js +1 -1
- package/dist/components/q2-stepper-vertical.js +1 -1
- package/dist/components/q2-stepper-vertical.js.map +1 -1
- package/dist/components/q2-stepper.js +1 -1
- package/dist/components/q2-stepper.js.map +1 -1
- package/dist/components/q2-tab-container.js +1 -1
- package/dist/components/q2-tab-container.js.map +1 -1
- package/dist/components/q2-tab-pane.js +1 -1
- package/dist/components/q2-tag2.js +2 -2
- package/dist/components/q2-tag2.js.map +1 -1
- package/dist/components/q2-textarea.js.map +1 -1
- package/dist/components/q2-toast.js.map +1 -1
- package/dist/components/q2-tooltip2.js +124 -5
- package/dist/components/q2-tooltip2.js.map +1 -1
- package/dist/components/sanitize-html-string.js +19 -2
- package/dist/components/sanitize-html-string.js.map +1 -1
- package/dist/components/tecton-tab-pane.js +2 -2
- package/dist/esm/click-elsewhere.q2-option-list.q2-popover.entry.js.map +1 -1
- package/dist/esm/click-elsewhere_3.entry.js +46 -32
- package/dist/esm/click-elsewhere_3.entry.js.map +1 -1
- package/dist/esm/{component-DVxzK3WH.js → component-DaQM9u3s.js} +9 -3
- package/dist/esm/component-DaQM9u3s.js.map +1 -0
- package/dist/esm/{index-C4PILj1_.js → index-C5gj0T_3.js} +4 -4
- package/dist/esm/index-C5gj0T_3.js.map +1 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/q2-action-group.q2-resize-observer.entry.js.map +1 -1
- package/dist/esm/q2-action-group_2.entry.js +2 -2
- package/dist/esm/q2-action-group_2.entry.js.map +1 -1
- package/dist/esm/q2-action-sheet.entry.js +109 -4
- package/dist/esm/q2-action-sheet.entry.js.map +1 -1
- package/dist/esm/q2-avatar.entry.js.map +1 -1
- package/dist/esm/q2-badge.entry.js +1 -1
- package/dist/esm/q2-badge.entry.js.map +1 -1
- package/dist/esm/q2-btn.q2-loading.entry.js.map +1 -1
- package/dist/esm/q2-btn_2.entry.js +1 -1
- package/dist/esm/q2-btn_2.entry.js.map +1 -1
- package/dist/esm/q2-calendar.entry.js +6 -3
- package/dist/esm/q2-calendar.entry.js.map +1 -1
- package/dist/esm/q2-card-image.entry.js +2 -2
- package/dist/esm/q2-card-image.entry.js.map +1 -1
- package/dist/esm/q2-card.entry.js +1 -1
- package/dist/esm/q2-card.entry.js.map +1 -1
- package/dist/esm/q2-carousel-pane.entry.js +3 -3
- package/dist/esm/q2-carousel-pane.entry.js.map +1 -1
- package/dist/esm/q2-carousel.entry.js +162 -29
- package/dist/esm/q2-carousel.entry.js.map +1 -1
- package/dist/esm/q2-chart-area.entry.js +1 -1
- package/dist/esm/q2-chart-bar.entry.js +1 -1
- package/dist/esm/q2-chart-donut.entry.js +3 -2
- 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.q2-tag.entry.js.map +1 -1
- package/dist/esm/q2-checkbox_2.entry.js +3 -3
- package/dist/esm/q2-checkbox_2.entry.js.map +1 -1
- package/dist/esm/q2-context.entry.js +2 -2
- package/dist/esm/q2-context.entry.js.map +1 -1
- package/dist/esm/q2-currency.entry.js +3 -4
- package/dist/esm/q2-currency.entry.js.map +1 -1
- package/dist/esm/q2-data-table.entry.js +2 -2
- package/dist/esm/q2-data-table.entry.js.map +1 -1
- package/dist/esm/q2-detail.entry.js +2 -2
- package/dist/esm/q2-detail.entry.js.map +1 -1
- 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 +3 -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-editable-field.entry.js.map +1 -1
- package/dist/esm/q2-example.entry.js +1 -1
- package/dist/esm/q2-file-picker.entry.js +1 -1
- package/dist/esm/q2-file-picker.entry.js.map +1 -1
- package/dist/esm/q2-form.entry.js +2 -2
- package/dist/esm/q2-form.entry.js.map +1 -1
- package/dist/esm/q2-formatted-text.entry.js +1 -1
- package/dist/esm/q2-formatted-text.entry.js.map +1 -1
- package/dist/esm/q2-grid-area.entry.js +1 -1
- package/dist/esm/q2-grid.entry.js +33 -9
- package/dist/esm/q2-grid.entry.js.map +1 -1
- package/dist/esm/q2-icon.entry.js +1 -1
- package/dist/esm/q2-icon.entry.js.map +1 -1
- package/dist/esm/q2-input.entry.js +8 -5
- package/dist/esm/q2-input.entry.js.map +1 -1
- package/dist/esm/q2-item.entry.js +2 -2
- package/dist/esm/q2-item.entry.js.map +1 -1
- package/dist/esm/q2-legend.entry.js +2 -3
- package/dist/esm/q2-legend.entry.js.map +1 -1
- package/dist/esm/q2-link.q2-list.entry.js.map +1 -1
- package/dist/esm/q2-link_2.entry.js +2 -2
- package/dist/esm/q2-link_2.entry.js.map +1 -1
- package/dist/esm/q2-loc.entry.js +1 -1
- package/dist/esm/q2-message.entry.js +3 -3
- package/dist/esm/q2-message.entry.js.map +1 -1
- package/dist/esm/q2-meter.entry.js +2 -2
- package/dist/esm/q2-meter.entry.js.map +1 -1
- package/dist/esm/q2-modal.entry.js +3 -3
- package/dist/esm/q2-modal.entry.js.map +1 -1
- package/dist/esm/q2-month-picker.entry.js +1 -1
- package/dist/esm/q2-mutation-observer.entry.js +1 -1
- package/dist/esm/q2-optgroup.entry.js +3 -3
- package/dist/esm/q2-optgroup.entry.js.map +1 -1
- package/dist/esm/q2-option.entry.js +3 -3
- package/dist/esm/q2-option.entry.js.map +1 -1
- package/dist/esm/q2-otp.entry.js +371 -0
- package/dist/esm/q2-otp.entry.js.map +1 -0
- package/dist/esm/q2-pagination.entry.js +4 -4
- package/dist/esm/q2-pagination.entry.js.map +1 -1
- package/dist/esm/q2-pill.entry.js +24 -15
- package/dist/esm/q2-pill.entry.js.map +1 -1
- package/dist/esm/q2-radio-group.entry.js +1 -1
- package/dist/esm/q2-radio-group.entry.js.map +1 -1
- package/dist/esm/q2-radio.entry.js +3 -3
- package/dist/esm/q2-radio.entry.js.map +1 -1
- package/dist/esm/q2-relative-time.entry.js +2 -2
- package/dist/esm/q2-section-container.entry.js +1 -1
- package/dist/esm/q2-section.entry.js +3 -3
- package/dist/esm/q2-section.entry.js.map +1 -1
- package/dist/esm/q2-select.entry.js +1 -1
- package/dist/esm/q2-select.entry.js.map +1 -1
- package/dist/esm/q2-stepper-pane.entry.js +3 -3
- package/dist/esm/q2-stepper-vertical.entry.js +2 -2
- package/dist/esm/q2-stepper-vertical.entry.js.map +1 -1
- package/dist/esm/q2-stepper.entry.js +2 -2
- package/dist/esm/q2-stepper.entry.js.map +1 -1
- package/dist/esm/q2-tab-container.entry.js +3 -3
- package/dist/esm/q2-tab-container.entry.js.map +1 -1
- package/dist/esm/q2-tab-pane.entry.js +2 -2
- package/dist/esm/q2-tecton-elements.js +1 -1
- package/dist/esm/q2-textarea.entry.js +1 -1
- package/dist/esm/q2-textarea.entry.js.map +1 -1
- package/dist/esm/q2-toast.entry.js +1 -1
- package/dist/esm/q2-toast.entry.js.map +1 -1
- package/dist/esm/q2-tooltip.entry.js +124 -5
- package/dist/esm/q2-tooltip.entry.js.map +1 -1
- package/dist/esm/{sanitize-html-string-B35VmRc9.js → sanitize-html-string-DPHNpMWE.js} +21 -4
- package/dist/{q2-tecton-elements/sanitize-html-string-B35VmRc9.js.map → esm/sanitize-html-string-DPHNpMWE.js.map} +1 -1
- package/dist/esm/tecton-tab-pane.entry.js +2 -2
- package/dist/playwright.config.js +12 -0
- package/dist/playwright.config.js.map +1 -0
- package/dist/q2-tecton-elements/assets/standard.symbol.svg +1 -1
- package/dist/q2-tecton-elements/click-elsewhere.q2-option-list.q2-popover.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/click-elsewhere_3.entry.js +44 -35
- package/dist/q2-tecton-elements/click-elsewhere_3.entry.js.map +1 -1
- package/dist/q2-tecton-elements/component-DaQM9u3s.js +46 -0
- package/dist/q2-tecton-elements/component-DaQM9u3s.js.map +1 -0
- package/dist/q2-tecton-elements/{index-C4PILj1_.js → index-C5gj0T_3.js} +4 -4
- package/dist/q2-tecton-elements/index-C5gj0T_3.js.map +1 -0
- package/dist/q2-tecton-elements/q2-action-group.q2-resize-observer.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-action-group_2.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-action-group_2.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-action-sheet.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-action-sheet.entry.js +166 -70
- package/dist/q2-tecton-elements/q2-action-sheet.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-avatar.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-avatar.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-badge.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-badge.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-badge.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-btn.q2-loading.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-btn_2.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-btn_2.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-calendar.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-calendar.entry.js +4 -4
- package/dist/q2-tecton-elements/q2-calendar.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-card-image.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-card-image.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-card-image.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-card.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-card.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-card.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-carousel-pane.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-carousel-pane.entry.js +6 -6
- package/dist/q2-tecton-elements/q2-carousel-pane.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-carousel.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-carousel.entry.js +402 -271
- package/dist/q2-tecton-elements/q2-carousel.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-chart-area.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-chart-bar.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-chart-donut.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-chart-donut.entry.js +18 -16
- package/dist/q2-tecton-elements/q2-chart-donut.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-checkbox-group.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-checkbox-group.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-checkbox-group.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-checkbox.q2-tag.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-checkbox_2.entry.js +7 -7
- package/dist/q2-tecton-elements/q2-checkbox_2.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-context.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-context.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-context.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-currency.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-currency.entry.js +34 -33
- package/dist/q2-tecton-elements/q2-currency.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-data-table.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-data-table.entry.js +4 -4
- package/dist/q2-tecton-elements/q2-data-table.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-detail.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-detail.entry.js +4 -4
- package/dist/q2-tecton-elements/q2-detail.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-dropdown-item.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-dropdown-item.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-dropdown-item.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-dropdown.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-dropdown.entry.js +18 -19
- package/dist/q2-tecton-elements/q2-dropdown.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-editable-field.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-editable-field.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-editable-field.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-example.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-file-picker.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-file-picker.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-file-picker.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-form.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-form.entry.js +9 -9
- package/dist/q2-tecton-elements/q2-form.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-formatted-text.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-formatted-text.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-formatted-text.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-grid-area.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-grid.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-grid.entry.js +39 -14
- package/dist/q2-tecton-elements/q2-grid.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-icon.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-icon.entry.js +52 -52
- package/dist/q2-tecton-elements/q2-icon.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-input.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-input.entry.js +10 -6
- package/dist/q2-tecton-elements/q2-input.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-item.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-item.entry.js +14 -14
- package/dist/q2-tecton-elements/q2-item.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-legend.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-legend.entry.js +4 -5
- package/dist/q2-tecton-elements/q2-legend.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-link.q2-list.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-link_2.entry.js +7 -7
- package/dist/q2-tecton-elements/q2-link_2.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-loc.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-message.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-message.entry.js +28 -28
- package/dist/q2-tecton-elements/q2-message.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-meter.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-meter.entry.js +8 -8
- package/dist/q2-tecton-elements/q2-meter.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-modal.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-modal.entry.js +53 -53
- package/dist/q2-tecton-elements/q2-modal.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-month-picker.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-mutation-observer.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-optgroup.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-optgroup.entry.js +6 -6
- package/dist/q2-tecton-elements/q2-optgroup.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-option.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-option.entry.js +3 -3
- package/dist/q2-tecton-elements/q2-option.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-otp.entry.esm.js.map +1 -0
- package/dist/q2-tecton-elements/q2-otp.entry.js +453 -0
- package/dist/q2-tecton-elements/q2-otp.entry.js.map +1 -0
- package/dist/q2-tecton-elements/q2-pagination.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-pagination.entry.js +29 -29
- package/dist/q2-tecton-elements/q2-pagination.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-pill.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-pill.entry.js +43 -28
- package/dist/q2-tecton-elements/q2-pill.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-radio-group.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-radio-group.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-radio-group.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-radio.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-radio.entry.js +10 -10
- package/dist/q2-tecton-elements/q2-radio.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-relative-time.entry.js +2 -2
- package/dist/q2-tecton-elements/q2-section-container.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-section.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-section.entry.js +21 -21
- package/dist/q2-tecton-elements/q2-section.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-select.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-select.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-select.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-stepper-pane.entry.js +10 -10
- package/dist/q2-tecton-elements/q2-stepper-vertical.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js +5 -5
- package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-stepper.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-stepper.entry.js +33 -33
- package/dist/q2-tecton-elements/q2-stepper.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-tab-container.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-tab-container.entry.js +14 -14
- package/dist/q2-tecton-elements/q2-tab-container.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-tab-pane.entry.js +6 -6
- package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
- package/dist/q2-tecton-elements/q2-textarea.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-textarea.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-textarea.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-toast.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-toast.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-toast.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-tooltip.entry.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-tooltip.entry.js +136 -20
- package/dist/q2-tecton-elements/q2-tooltip.entry.js.map +1 -1
- package/dist/q2-tecton-elements/{sanitize-html-string-B35VmRc9.js → sanitize-html-string-DPHNpMWE.js} +147 -142
- package/dist/{esm/sanitize-html-string-B35VmRc9.js.map → q2-tecton-elements/sanitize-html-string-DPHNpMWE.js.map} +1 -1
- package/dist/q2-tecton-elements/tecton-tab-pane.entry.js +6 -6
- package/dist/types/builds/q2e/development/tecton/tecton/packages/q2-tecton-elements/.stencil/playwright.config.d.ts +2 -0
- package/dist/types/components/q2-action-sheet/q2-action-sheet.d.ts +22 -0
- package/dist/types/components/q2-avatar/test/q2-avatar-test.vr.d.ts +1 -0
- package/dist/types/components/q2-badge/test/q2-badge-test.vr.d.ts +1 -0
- package/dist/types/components/q2-btn/test/q2-btn-test.vr.d.ts +1 -0
- package/dist/types/components/q2-calendar/test/q2-calendar-test.vr.d.ts +1 -0
- package/dist/types/components/q2-card/test/q2-card-test.vr.d.ts +1 -0
- package/dist/types/components/q2-card-image/test/q2-card-image-test.vr.d.ts +1 -0
- package/dist/types/components/q2-carousel/q2-carousel.d.ts +29 -0
- package/dist/types/components/q2-carousel/test/q2-carousel-test.vr.d.ts +1 -0
- package/dist/types/components/q2-chart-area/test/q2-chart-area-test.vr.d.ts +1 -0
- package/dist/types/components/q2-chart-bar/test/q2-chart-bar-test.vr.d.ts +1 -0
- package/dist/types/components/q2-chart-donut/q2-chart-donut.d.ts +2 -0
- package/dist/types/components/q2-chart-donut/test/q2-chart-donut-test.vr.d.ts +1 -0
- package/dist/types/components/q2-checkbox/test/q2-checkbox-test.vr.d.ts +1 -0
- package/dist/types/components/q2-checkbox-group/test/q2-checkbox-group-test.vr.d.ts +1 -0
- package/dist/types/components/q2-context/test/q2-context-test.vr.d.ts +1 -0
- package/dist/types/components/q2-currency/test/q2-currency-test.vr.d.ts +1 -0
- package/dist/types/components/q2-data-table/test/q2-data-table-test.vr.d.ts +1 -0
- package/dist/types/components/q2-editable-field/test/q2-editable-field-test.vr.d.ts +1 -0
- package/dist/types/components/q2-file-picker/test/q2-file-picker-test.vr.d.ts +1 -0
- package/dist/types/components/q2-formatted-text/test/q2-formatted-text-test.vr.d.ts +1 -0
- package/dist/types/components/q2-grid/q2-grid.d.ts +10 -0
- package/dist/types/components/q2-icon/test/q2-icon-test.vr.d.ts +1 -0
- package/dist/types/components/q2-input/test/q2-input-test.vr.d.ts +1 -0
- package/dist/types/components/q2-legend/q2-legend.d.ts +2 -0
- package/dist/types/components/q2-link/test/q2-link-test.vr.d.ts +1 -0
- package/dist/types/components/q2-list/test/q2-list-test.vr.d.ts +1 -0
- package/dist/types/components/q2-message/test/q2-message-test.vr.d.ts +1 -0
- package/dist/types/components/q2-meter/test/q2-meter-test.vr.d.ts +1 -0
- package/dist/types/components/q2-modal/test/q2-modal-test.vr.d.ts +1 -0
- package/dist/types/components/q2-otp/q2-otp.d.ts +159 -0
- package/dist/types/components/q2-pagination/test/q2-pagination-test.vr.d.ts +1 -0
- package/dist/types/components/q2-pill/q2-pill.d.ts +5 -2
- package/dist/types/components/q2-pill/test/q2-pill-test.vr.d.ts +1 -0
- package/dist/types/components/q2-radio/q2-radio.d.ts +1 -1
- package/dist/types/components/q2-radio/test/q2-radio-test.vr.d.ts +1 -0
- package/dist/types/components/q2-radio-group/test/q2-radio-group-test.vr.d.ts +1 -0
- package/dist/types/components/q2-section/test/q2-section-test.vr.d.ts +1 -0
- package/dist/types/components/q2-select/test/q2-select-test.vr.d.ts +1 -0
- package/dist/types/components/q2-stepper/test/q2-stepper-test.vr.d.ts +1 -0
- package/dist/types/components/q2-stepper-vertical/test/q2-stepper-vertical-test.vr.d.ts +1 -0
- package/dist/types/components/q2-tab-container/test/q2-tab-container-test.vr.d.ts +1 -0
- package/dist/types/components/q2-tag/test/q2-tag-test.vr.d.ts +1 -0
- package/dist/types/components/q2-textarea/test/q2-textarea-test.vr.d.ts +1 -0
- package/dist/types/components/q2-tooltip/q2-tooltip.d.ts +4 -0
- package/dist/types/components/q2-tooltip/test/q2-tooltip-test.vr.d.ts +1 -0
- package/dist/types/components.d.ts +306 -2
- package/dist/types/utils/component.d.ts +1 -1
- package/dist/types/utils/test/vr-helpers.d.ts +14 -0
- package/package.json +12 -3
- package/dist/cjs/component-DRAntnCA.js.map +0 -1
- package/dist/cjs/index-YvKoRT-t.js.map +0 -1
- package/dist/esm/component-DVxzK3WH.js.map +0 -1
- package/dist/esm/index-C4PILj1_.js.map +0 -1
- package/dist/q2-tecton-elements/component-DVxzK3WH.js +0 -40
- package/dist/q2-tecton-elements/component-DVxzK3WH.js.map +0 -1
- package/dist/q2-tecton-elements/index-C4PILj1_.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["q2CheckboxCss","Q2Checkbox","constructor","hostRef","this","_id","createGuid","hasDescription","checked","hasError","onInputClick","event","stopPropagation","preventDefault","isNotInteractive","disabled","readonly","slotReadonly","target","HTMLInputElement","value","mirrorEmit","inputElement","focus","disconnectedCallback","_a","descriptionObserver","disconnect","componentWillLoad","handleAriaLabel","checkForDescription","componentDidLoad","overrideFocus","hostElement","click","setupDescriptionObserver","defaultChangeHandler","setTimeout","handleChangeEvent","delegateFocus","isEventFromElement","shadowRoot","querySelector","ariaLabelObserver","ariaLabelledBy","hasLabel","loc","label","Array","from","childNodes","some","node","HTMLElement","getAttribute","textContent","trim","_tooltip","undefined","ids","push","labelId","tooltipId","join","description","onchange","defaultPrevented","detail","MutationObserver","observe","childList","subtree","renderCheckboxSVG","type","h","class","renderToggleSVG","width","height","viewBox","focusable","x","y","rx","indeterminate","renderCheckBoxSVGFill","x1","y1","x2","y2","points","key","id","maskUnits","fill","stroke","cx","cy","r","mask","render","textLabelClasses","hideLabel","ref","el","groupDisabled","name","onClick","htmlFor","q2TagCss","Q2Tag","hoist","window","Tecton","useActionSheets","optionListLabel","popoverAlignment","determineOptionCount","numberOfOptions","querySelectorAll","length","optionCount","filterSlottedElements","slot","assignedElements","approvedElements","forEach","element","index","includes","tagName","remove","handleButtonFocusout","async","relatedTarget","popoverElement","contains","open","handleChange","handleClick","controlElement","dropdownBtn","shouldShowActionSheet","showActionSheetList","toggle","handleKeydown","isTabMetaOrCtrl","metaKey","ctrlKey","optionList","handleExternalKeydown","handleWrapperClick","initMutationObserver","observer","onMutationObserved","attributes","mutationObserver","onClickElsewhere","localName","popoverStateHandler","setActiveElement","closePopover","_togglePopover","openPopover","selectOption","waitForNextPaint","allOptions","getOptions","desiredOption","find","option","dispatchEvent","FocusEvent","renderHiddenElement","wrapperClassNames","shouldShowOptions","Host","onChange","Fragment","role","onKeyDown","onFocusout","e","maxHeight","popoverMaxHeight","minHeight","popoverMinHeight","direction","popoverDirection","align"],"sources":["src/components/q2-checkbox/q2-checkbox.scss?tag=q2-checkbox&encapsulation=shadow","src/components/q2-checkbox/q2-checkbox.tsx","src/components/q2-tag/q2-tag.scss?tag=q2-tag&encapsulation=shadow","src/components/q2-tag/q2-tag.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n --comp-checkbox-padding: #{var-list(\n --tct-checkbox-padding,\n unquote('#{var-list(var-prefixer(checkbox-vertical-padding), 8px)} 0')\n )};\n\n display: block;\n position: relative;\n padding: var(--comp-checkbox-padding);\n --comp-default-checkbox-margin: #{var-list(var-prefixer(checkbox-margin-top), 0px) 0\n var-list(var-prefixer(checkbox-margin-bottom), 0px)};\n margin: var-list(--tct-checkbox-margin, --comp-default-checkbox-margin);\n}\n\n.container {\n --comp-checkbox-size: #{var-list(var-prefixer(checkbox-size), 24px)};\n --comp-checkbox-default-column-gap: var(--app-scale-2x, 10px);\n --comp-checkbox-default-row-gap: 0;\n --comp-checkbox-default-gap: #{var(--comp-checkbox-default-row-gap) var(--comp-checkbox-default-column-gap)};\n --comp-checkbox-tween: #{var-list(--tct-tween-1, --app-tween-1, unquote('0.2s ease'))};\n --comp-checkbox-toggle-width: #{var-list(var-prefixer(checkbox-toggle-width), 38px)};\n\n --comp-checkbox-toggle-track-fill: #{var-list(\n --tct-checkbox-toggle-track-fill,\n --tct-checkbox-toggle-track-color,\n transparent\n )};\n --comp-checkbox-toggle-track-fill-active: #{var-list(\n --tct-checkbox-toggle-active-track-fill,\n --tct-checkbox-toggle-active-track-color,\n --tct-checkbox-toggle-active-color,\n --t-primary-l1,\n #7755af\n )};\n --comp-checkbox-toggle-track-fill-hover: #{var-list(\n --tct-checkbox-toggle-hover-track-fill,\n --tct-checkbox-toggle-hover-track-color,\n --comp-checkbox-toggle-track-fill\n )};\n --comp-checkbox-toggle-track-fill-error: #{var-list(\n --tct-checkbox-toggle-error-track-fill,\n --tct-checkbox-toggle-error-track-color,\n --comp-checkbox-toggle-track-fill\n )};\n --comp-checkbox-toggle-track-fill-error-hover: #{var-list(\n --tct-checkbox-toggle-error-hover-track-fill,\n --tct-checkbox-toggle-error-hover-track-color,\n --comp-checkbox-toggle-track-fill-error\n )};\n --comp-checkbox-toggle-track-fill-error-active: #{var-list(\n --tct-checkbox-toggle-error-active-track-fill,\n --tct-checkbox-toggle-error-active-track-color,\n --comp-checkbox-toggle-track-fill-error\n )};\n\n --comp-checkbox-toggle-error-color: #{var-list(--tct-checkbox-toggle-error-color, --comp-checkbox-error-color)};\n --comp-checkbox-toggle-color: #{var-list(--tct-checkbox-toggle-color, --t-gray-8, #808080)};\n --comp-checkbox-gap: #{var-list(var-prefixer(checkbox-gap), --comp-checkbox-default-gap)};\n --comp-checkbox-outer-stroke-color: #{var-list(\n var-prefixer(checkbox-outer-stroke-color),\n --t-a11y-gray-color-AA,\n #949494\n )};\n --comp-checkbox-outer-fill-color: #{var-list(\n var-prefixer(checkbox-outer-fill-color),\n --tct-white,\n --app-white,\n #ffffff\n )};\n --comp-checkbox-checked-fill-color: #{var-list(\n --tct-checkbox-checked-fill-color,\n --t-primary,\n #040404\n )};\n --comp-checkbox-checked-color: #{var-list(\n --tct-checkbox-checked-stroke-color,\n --tct-white,\n --app-white,\n #FFFFFF\n )};\n --comp-control-width: var(--comp-checkbox-size);\n --comp-checkbox-error-color: #{var-list(--tct-stoplight-error, --const-stoplight-alert, #d20a0a)};\n\n --comp-checkbox-bold-fallback-stroke-width: #{var-list(--tct-checkbox-bold-fallback-stroke-width, 0.7px)};\n --comp-checkbox-stroke-width: #{var-list(--tct-checkbox-stroke-width, unset)};\n --comp-checkbox-checked-stroke-width: #{var-list(\n --tct-checkbox-checked-stroke-width,\n --comp-checkbox-bold-fallback-stroke-width\n )};\n --comp-checkbox-hover-stroke-width: #{var-list(--tct-checkbox-hover-stroke-width, unset)};\n --comp-checkbox-focused-stroke-width: #{var-list(--tct-checkbox-focused-stroke-width, unset)};\n --comp-checkbox-checked-hover-stroke-width: #{var-list(\n --tct-checkbox-checked-hover-stroke-width,\n --comp-checkbox-bold-fallback-stroke-width\n )};\n --comp-checkbox-checked-focused-stroke-width: #{var-list(\n --tct-checkbox-checked-focused-stroke-width,\n --comp-checkbox-bold-fallback-stroke-width\n )};\n --comp-checkbox-description-stroke-width: #{var-list(\n --tct-checkbox-description-stroke-width,\n --comp-checkbox-bold-fallback-stroke-width\n )};\n --comp-checkbox-description-focused-stroke-width: #{var-list(\n --tct-checkbox-description-focused-stroke-width,\n --comp-checkbox-bold-fallback-stroke-width\n )};\n --comp-checkbox-description-hover-stroke-width: #{var-list(\n --tct-checkbox-description-hover-stroke-width,\n --comp-checkbox-bold-fallback-stroke-width\n )};\n\n --comp-checkbox-toggle-circle-fill-active: #{var-list(\n --tct-checkbox-toggle-active-fill,\n --tct-checkbox-toggle-active-color,\n --comp-checkbox-toggle-color\n )};\n\n :host([type='favorite']) & {\n --comp-checkbox-favorite-stroke-color: #{var-list(\n var-prefixer(checkbox-favorite-stroke-color),\n --t-a11y-gray-color-AA,\n #949494\n )};\n --comp-checkbox-favorite-fill-color: #{var-list(var-prefixer(checkbox-favorite-fill-color), #db7d24)};\n }\n\n display: grid;\n grid-template-areas:\n 'svg label'\n 'svg description';\n align-items: start;\n gap: var(--comp-checkbox-gap);\n grid-template-columns: var(--comp-control-width) calc(\n 100% - var(--comp-control-width) - var(--comp-checkbox-default-column-gap)\n );\n\n :host([hide-label]:not([hide-label='false'])) & {\n grid-template-areas: 'svg';\n grid-template-columns: var(--comp-control-width);\n }\n\n :host([type='toggle']) & {\n --comp-control-width: var(--comp-checkbox-toggle-width);\n }\n\n :host([alignment='right']) &,\n :host([type='toggle']:not([alignment])) & {\n grid-template-areas:\n 'label svg'\n 'description svg';\n grid-template-columns: calc(100% - var(--comp-control-width) - var(--comp-checkbox-default-column-gap)) var(\n --comp-control-width\n );\n }\n}\n\n.label-control {\n align-items: center;\n display: flex;\n}\n\n.label-text {\n grid-area: label;\n\n :host([description]) & {\n -webkit-text-stroke-width: var(--comp-checkbox-description-stroke-width);\n text-stroke-width: var(--comp-checkbox-description-stroke-width);\n }\n :host([checked]:not([checked='false'])) & {\n -webkit-text-stroke-width: var(--comp-checkbox-checked-stroke-width);\n text-stroke-width: var(--comp-checkbox-checked-stroke-width);\n }\n :host(:hover) & {\n -webkit-text-stroke-width: var(--comp-checkbox-hover-stroke-width);\n text-stroke-width: var(--comp-checkbox-hover-stroke-width);\n }\n :host(:focus-within) & {\n -webkit-text-stroke-width: var(--comp-checkbox-focused-stroke-width);\n text-stroke-width: var(--comp-checkbox-focused-stroke-width);\n }\n :host([description]:hover) & {\n -webkit-text-stroke-width: var(--comp-checkbox-description-hover-stroke-width);\n text-stroke-width: var(--comp-checkbox-description-hover-stroke-width);\n }\n :host([checked]:not([checked='false']):hover) & {\n -webkit-text-stroke-width: var(--comp-checkbox-checked-hover-stroke-width);\n text-stroke-width: var(--comp-checkbox-checked-hover-stroke-width);\n }\n :host([description]:focus-within) & {\n -webkit-text-stroke-width: var(--comp-checkbox-description-focused-stroke-width);\n text-stroke-width: var(--comp-checkbox-description-focused-stroke-width);\n }\n :host([checked]:not([checked='false']):focus-within) & {\n -webkit-text-stroke-width: var(--comp-checkbox-checked-focused-stroke-width);\n text-stroke-width: var(--comp-checkbox-checked-focused-stroke-width);\n }\n :host(:active) & {\n -webkit-text-stroke-width: var(--tct-checkbox-active-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-active-stroke-width, unset);\n }\n :host([checked]:not([checked='false']):active) & {\n -webkit-text-stroke-width: var(--tct-checkbox-checked-active-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-checked-active-stroke-width, unset);\n }\n :host([has-error]:not([has-error='false']):hover) & {\n -webkit-text-stroke-width: var(--tct-checkbox-error-hover-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-error-hover-stroke-width, unset);\n }\n :host([has-error]:not([has-error='false']):focus-within) & {\n -webkit-text-stroke-width: var(--tct-checkbox-error-focused-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-error-focused-stroke-width, unset);\n }\n :host([has-error]:not([has-error='false']):active) & {\n -webkit-text-stroke-width: var(--tct-checkbox-error-active-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-error-active-stroke-width, unset);\n }\n :host([checked]:not([checked='false'])[has-error]:not([has-error='false']):hover) & {\n -webkit-text-stroke-width: var(--tct-checkbox-checked-error-hover-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-checked-error-hover-stroke-width, unset);\n }\n :host([checked]:not([checked='false'])[has-error]:not([has-error='false']):focus-within) & {\n -webkit-text-stroke-width: var(--tct-checkbox-checked-error-focused-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-checked-error-focused-stroke-width, unset);\n }\n :host([checked]:not([checked='false'])[has-error]:not([has-error='false']):active) & {\n -webkit-text-stroke-width: var(--tct-checkbox-checked-error-active-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-checked-error-active-stroke-width, unset);\n }\n\n label {\n line-height: var-list(--tct-checkbox-label-line-height, 24px);\n .label-content {\n display: inline;\n font-size: var(--tct-checkbox-label-font-size, inherit);\n }\n }\n}\n\n.description-text {\n grid-area: description;\n font-weight: var-list(var-prefixer(checkbox-description-font-weight), 400);\n\n :host(:hover) & {\n font-weight: var-list(\n --tct-checkbox-hover-description-font-weight,\n var-prefixer(checkbox-description-font-weight),\n 400\n );\n }\n}\n\nlabel {\n color: var-list(--tct-checkbox-label-color);\n cursor: pointer;\n hyphens: var-list(--tct-checkbox-label-hyphens, auto);\n word-break: var-list(--tct-checkbox-label-word-break, break-word);\n word-wrap: var-list(--tct-checkbox-label-word-wrap, break-word);\n}\n\n.checkbox-icon {\n width: var(--comp-checkbox-size);\n height: var(--comp-checkbox-size);\n border-radius: var-list(\n var-prefixer(checkbox-outer-border-radius),\n --tct-border-radius-1,\n --app-border-radius-1,\n 4px\n );\n stroke: var(--comp-checkbox-outer-stroke-color);\n fill: var(--comp-checkbox-outer-fill-color);\n stroke-width: var-list(var-prefixer(checkbox-outer-stroke-width), 2);\n flex-shrink: 0;\n box-shadow: var(--tct-checkbox-box-shadow);\n\n rect {\n transition: fill var-list(--tct-checkbox-tween, --app-tween-2, unquote('0.4s ease'));\n }\n\n :host([checked]:not([checked='false']):not([type='favorite'])) & {\n stroke: var-list(\n --comp-checkbox-checked-fill-color,\n var-prefixer(checkbox-checked-outer-stroke-color),\n --comp-checkbox-outer-stroke-color\n );\n\n rect {\n fill: var(--comp-checkbox-checked-fill-color);\n }\n }\n\n :host([has-error]:not([has-error='false']):not([type='favorite'])) & {\n stroke: var-list(--tct-checkbox-error-outer-stroke-color, --comp-checkbox-error-color);\n box-shadow: var-list(--tct-checkbox-error-box-shadow, --tct-checkbox-box-shadow);\n\n rect {\n fill: var-list(--tct-checkbox-error-outer-fill-color, --comp-checkbox-outer-fill-color);\n }\n }\n\n :host([has-error]:not([has-error='false']):not([type='favorite'])[checked]:not([checked='false'])) & {\n rect {\n fill: var-list(--tct-checkbox-error-checked-outer-fill-color);\n }\n }\n\n :host([indeterminate]:not([indeterminate='false']):not([type='favorite'])) & {\n stroke: var-list(\n --comp-checkbox-checked-fill-color,\n var-prefixer(checkbox-checked-outer-stroke-color),\n --comp-checkbox-outer-stroke-color\n );\n\n rect {\n fill: var(--comp-checkbox-checked-fill-color);\n }\n }\n\n :host(:hover:not([type='favorite'])) & {\n stroke: var-list(--tct-checkbox-hover-outer-stroke-color, --comp-checkbox-outer-stroke-color);\n box-shadow: var-list(--tct-checkbox-hover-box-shadow, --tct-checkbox-box-shadow);\n rect {\n fill: var-list(--tct-checkbox-hover-outer-fill-color, --comp-checkbox-outer-fill-color);\n }\n }\n :host(:hover[has-error]:not([has-error='false']):not([type='favorite'])) & {\n stroke: var-list(\n --tct-checkbox-error-hover-outer-stroke-color,\n --tct-checkbox-error-outer-stroke-color,\n --comp-checkbox-error-color\n );\n box-shadow: var-list(\n --tct-checkbox-error-hover-box-shadow,\n --tct-checkbox-error-box-shadow,\n --tct-checkbox-hover-box-shadow,\n --tct-checkbox-box-shadow\n );\n rect {\n fill: var-list(\n --tct-checkbox-error-hover-outer-fill-color,\n --tct-checkbox-error-outer-fill-color,\n --comp-checkbox-outer-fill-color\n );\n }\n }\n\n :host(:focus-within:not([type='favorite'])) & {\n --comp-checkbox-focused-box-shadow: #{var(--const-double-focus-ring),\n var-list(--tct-global-focus, unquote('0 0 0 2px #33b4ff'))};\n\n stroke: var-list(var-prefixer(checkbox-focused-outer-stroke-color), --comp-checkbox-outer-stroke-color);\n fill: var-list(--tct-checkbox-focused-outer-fill-color, --comp-checkbox-outer-fill-color);\n box-shadow: var-list(\n --tct-checkbox-focused-box-shadow,\n --tct-checkbox-box-shadow,\n --comp-checkbox-focused-box-shadow\n );\n }\n :host(:focus-within[has-error]:not([has-error='false']):not([type='favorite'])) & {\n stroke: var-list(\n --tct-checkbox-error-focused-outer-stroke-color,\n --tct-checkbox-error-outer-stroke-color,\n --comp-checkbox-error-color\n );\n fill: var-list(\n --tct-checkbox-error-focused-outer-fill-color,\n --tct-checkbox-error-outer-fill-color,\n --comp-checkbox-outer-fill-color\n );\n box-shadow: var-list(\n --tct-checkbox-error-focused-box-shadow,\n --tct-checkbox-error-box-shadow,\n --tct-checkbox-box-shadow,\n --comp-checkbox-focused-box-shadow\n );\n }\n\n // Favorite\n :host([type='favorite']) & {\n --tct-icon-stroke-width: #{var-list(var-prefixer(checkbox-favorite-stroke-width), 1)};\n --tct-icon-stroke-primary: var(--comp-checkbox-favorite-stroke-color);\n transition:\n fill var(--comp-checkbox-tween),\n color var(--comp-checkbox-tween),\n stroke var(--comp-checkbox-tween);\n }\n\n :host(:hover[type='favorite']) & {\n --tct-icon-stroke-primary: #{var-list(\n --tct-checkbox-favorite-hover-stroke-color,\n --comp-checkbox-favorite-fill-color\n )};\n --tct-icon-stroke-width: #{var-list(var-prefixer(checkbox-favorite-hover-stroke-width), 2)};\n }\n\n :host([type='favorite']:focus-within) & {\n --tct-icon-stroke-primary: #{var-list(\n --tct-checkbox-favorite-focused-stroke-color,\n --comp-checkbox-favorite-fill-color\n )};\n --tct-icon-stroke-width: #{var-list(var-prefixer(checkbox-favorite-hover-stroke-width), 2)};\n }\n\n // Checked favorite\n :host([checked]:not([checked='false'])[type='favorite']) & {\n --tct-icon-stroke-primary: #{var-list(\n --tct-checkbox-favorite-checked-stroke-color,\n --tct-checkbox-favorite-stroke-color,\n --comp-checkbox-favorite-fill-color\n )};\n fill: var-list(--tct-checkbox-favorite-checked-fill-color, --comp-checkbox-favorite-fill-color);\n transition:\n fill var(--comp-checkbox-tween),\n color var(--comp-checkbox-tween),\n stroke var(--comp-checkbox-tween);\n }\n\n :host([checked]:not([checked='false'])[type='favorite']:hover) & {\n --tct-icon-stroke-primary: #{var-list(\n --tct-checkbox-favorite-checked-hover-stroke-color,\n --tct-checkbox-favorite-hover-stroke-color,\n --comp-checkbox-favorite-stroke-color\n )};\n --tct-icon-fill-primary: #{var-list(\n --tct-checkbox-favorite-checked-fill-color,\n --comp-checkbox-favorite-fill-color\n )};\n --tct-icon-stroke-width: #{var-list(var-prefixer(checkbox-favorite-hover-stroke-width), 2)};\n }\n\n :host([checked]:not([checked='false'])[type='favorite']:focus-within) & {\n --tct-icon-stroke-primary: #{var-list(\n --tct-checkbox-favorite-checked-focused-stroke-color,\n --tct-checkbox-favorite-focused-stroke-color,\n --comp-checkbox-favorite-stroke-color\n )};\n --tct-icon-stroke-width: #{var-list(var-prefixer(checkbox-favorite-hover-stroke-width), 2)};\n }\n\n :host([has-error]:not([has-error='false'])[type='favorite']) & {\n --tct-icon-stroke-primary: #{var-list(--tct-checkbox-favorite-error-stroke-color, --comp-checkbox-error-color)};\n }\n :host([has-error]:not([has-error='false'])[type='favorite'][checked]:not([checked='false'])) & {\n --tct-icon-stroke-primary: #{var-list(--tct-checkbox-favorite-error-stroke-color, --comp-checkbox-error-color)};\n }\n}\n\n.checkbox-fill {\n fill: none;\n stroke: var-list(--comp-checkbox-checked-color);\n stroke-width: var-list(var-prefixer(checkbox-check-stroke-width), 2.5);\n stroke-linecap: round;\n stroke-linejoin: round;\n\n :host([has-error]:not([has-error='false']):not([type='favorite'])) & {\n stroke: var(--tct-checkbox-error-checkmark-stroke-color, #d20a0a);\n stroke-width: var(--tct-checkbox-error-checkmark-stroke-width, 2.5);\n }\n}\n\n.checked-fill {\n stroke-dasharray: 16;\n stroke-dashoffset: 16;\n animation-name: draw-checkmark;\n animation-duration: var-list(--tct-checkbox-animation-duration, --t-tween-time-in-4, 300ms);\n animation-timing-function: var-list(--tct-checkbox-animation-timing-function, ease-out);\n animation-fill-mode: var-list(--tct-checkbox-animation-fill-mode, forwards);\n}\n\n@keyframes draw-checkmark {\n to {\n stroke-dashoffset: 0;\n }\n}\n\n.indeterminate-fill {\n stroke-width: var-list(var-prefixer(checkbox-indeterminate-stroke-width), 3.5);\n}\n\n.toggle-svg-container {\n height: 30px;\n width: var(--comp-checkbox-toggle-width);\n position: relative;\n text-align: initial;\n}\n\n.toggle-indicator,\n.toggle-track {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n}\n.toggle-indicator {\n transition:\n left var(--comp-checkbox-tween),\n height var(--comp-checkbox-tween),\n width var(--comp-checkbox-tween);\n height: 16px;\n width: 16px;\n left: 4px;\n border-radius: 50%;\n}\n\n.toggle-track {\n --comp-default-track-box-shadow: inset 0 0 0 1px var(--comp-checkbox-toggle-color);\n height: 24px;\n width: 38px;\n fill: var(--comp-checkbox-toggle-track-fill);\n border-radius: var(--app-border-radius-3, 12px);\n box-shadow: var-list(--tct-checkbox-toggle-track-box-shadow, --comp-default-track-box-shadow);\n transition:\n fill var(--comp-checkbox-tween),\n box-shadow var(--comp-checkbox-tween);\n}\n\n.toggle-circle {\n mask: url(#xMask);\n fill: var(--comp-checkbox-toggle-color);\n transition: fill var(--comp-checkbox-tween);\n}\n\n.toggle-icon {\n stroke-linecap: round;\n stroke-linejoin: round;\n stroke-width: var(--tct-checkbox-toggle-icon-stroke-width, 2);\n stroke: black;\n}\n\n:host(:is(:not([checked]), [checked='false'])) {\n &:host(:is(:not([disabled]), [disabled='false']):is(:not([group-disabled]), [group-disabled='false'])) {\n :hover,\n :focus-within {\n .toggle-track {\n --comp-default-hover-track-box-shadow: inset 0 0 0 2px var(--comp-checkbox-toggle-color);\n box-shadow: var-list(\n --tct-checkbox-toggle-hover-track-box-shadow,\n --comp-default-hover-track-box-shadow\n );\n fill: var(--comp-checkbox-toggle-track-fill-hover);\n }\n .toggle-indicator {\n height: 18px;\n width: 18px;\n }\n .toggle-circle {\n fill: var-list(--tct-checkbox-toggle-hover-circle-color, --t-primary-d1, --t-gray-6, #4d4d4d);\n }\n .label-text {\n color: var(--tct-checkbox-label-hover-color, inherit);\n }\n .description-text {\n color: var(--tct-checkbox-description-hover-color, inherit);\n -webkit-text-stroke-width: var(--tct-checkbox-description-hover-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-description-hover-stroke-width, unset);\n }\n }\n :active {\n .toggle-circle {\n fill: var(--comp-checkbox-toggle-track-fill-active);\n }\n .label-text {\n color: var(--tct-checkbox-label-active-color, inherit);\n }\n .description-text {\n color: var(--tct-checkbox-description-active-color, inherit);\n -webkit-text-stroke-width: var(--tct-checkbox-description-active-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-description-active-stroke-width, unset);\n }\n .toggle-circle {\n fill: var(--comp-checkbox-toggle-circle-fill-active);\n }\n }\n }\n\n &:host([has-error]:not([has-error='false'])) {\n .toggle-track {\n box-shadow: inset 0 0 0 1px var(--comp-checkbox-toggle-error-color);\n fill: var(--comp-checkbox-toggle-track-fill-error);\n }\n .toggle-circle {\n fill: var(--comp-checkbox-toggle-error-color);\n }\n\n &:host(:is(:not([disabled]), [disabled='false']):is(:not([group-disabled]), [group-disabled='false'])) {\n :hover,\n :focus-within {\n .toggle-track {\n box-shadow: inset 0 0 0 2px var(--comp-checkbox-toggle-error-color);\n fill: var(--comp-checkbox-toggle-track-fill-error-hover);\n }\n .toggle-circle {\n fill: var-list(--tct-checkbox-toggle-error-hover-color, --comp-checkbox-toggle-error-color);\n }\n .label-text {\n color: var(--tct-checkbox-label-hover-color, inherit);\n }\n .description-text {\n color: var(--tct-checkbox-description-hover-color, inherit);\n -webkit-text-stroke-width: var(--tct-checkbox-description-hover-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-description-hover-stroke-width, unset);\n }\n }\n :active {\n .toggle-track {\n fill: var(--comp-checkbox-toggle-track-fill-error-active);\n }\n .toggle-circle {\n fill: var-list(--tct-checkbox-toggle-error-active-color, --comp-checkbox-toggle-error-color);\n }\n .label-text {\n color: var(--tct-checkbox-error-label-active-color, inherit);\n }\n .description-text {\n color: var(--tct-checkbox-error-description-active-color, inherit);\n -webkit-text-stroke-width: var(--tct-checkbox-error-description-active-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-error-description-active-stroke-width, unset);\n }\n }\n }\n }\n}\n\n:host([checked]:not([checked='false'])) {\n .toggle-indicator {\n left: 18px;\n }\n\n .toggle-track {\n fill: var-list(--tct-checkbox-toggle-checked-track-color, --t-primary, #6a4a9e);\n border: none;\n }\n .toggle-circle {\n mask: url(#checkMask);\n fill: var-list(--tct-checkbox-toggle-checked-circle-color, --t-base, #ffffff);\n }\n\n &:host(:is(:not([disabled]), [disabled='false']):is(:not([group-disabled]), [group-disabled='false'])) {\n :hover,\n :focus-within {\n .toggle-track {\n fill: var-list(--tct-checkbox-toggle-checked-hover-track-color, --t-primary-d1, #5f438e);\n }\n .toggle-indicator {\n height: 18px;\n width: 18px;\n }\n .label-text {\n color: var(--tct-checkbox-checked-label-hover-color, inherit);\n }\n .description-text {\n color: var(--tct-checkbox-checked-description-hover-color, inherit);\n -webkit-text-stroke-width: var(--tct-checkbox-checked-description-hover-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-checked-description-hover-stroke-width, unset);\n }\n }\n\n :active {\n .toggle-track {\n fill: var-list(--tct-checkbox-toggle-checked-active-track-color, --t-primary-l1, #7755af);\n }\n .toggle-indicator {\n height: 18px;\n width: 18px;\n }\n .label-text {\n color: var(--tct-checkbox-checked-label-active-color, inherit);\n }\n .description-text {\n color: var(--tct-checkbox-checked-description-active-color, inherit);\n -webkit-text-stroke-width: var(--tct-checkbox-checked-description-active-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-checked-description-active-stroke-width, unset);\n }\n }\n }\n\n &:host([has-error]:not([has-error='false'])) {\n .toggle-track {\n fill: var-list(--tct-checkbox-toggle-checked-error-track-color, --comp-checkbox-toggle-error-color);\n }\n &:host(:is(:not([disabled]), [disabled='false']):is(:not([group-disabled]), [group-disabled='false'])) {\n :hover,\n :focus-within {\n .toggle-track {\n fill: var-list(\n --tct-checkbox-toggle-checked-error-hover-track-color,\n --comp-checkbox-toggle-error-color\n );\n }\n .label-text {\n color: var(--tct-checkbox-checked-error-label-hover-color, inherit);\n }\n .description-text {\n color: var(--tct-checkbox-checked-error-description-hover-color, inherit);\n -webkit-text-stroke-width: var(--tct-checkbox-checked-error-description-hover-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-checked-error-description-hover-stroke-width, unset);\n }\n }\n\n :active {\n .toggle-track {\n fill: var-list(\n --tct-checkbox-toggle-checked-error-active-track-color,\n --comp-checkbox-toggle-error-color\n );\n }\n .label-text {\n color: var(--tct-checkbox-checked-error-label-active-color, inherit);\n }\n .description-text {\n color: var(--tct-checkbox-checked-error-description-active-color, inherit);\n -webkit-text-stroke-width: var(--tct-checkbox-checked-error-description-active-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-checked-error-description-active-stroke-width, unset);\n }\n }\n }\n }\n}\n\n:host(:is([disabled]:not([disabled='false']), [group-disabled]:not([group-disabled='false']))) {\n cursor: not-allowed;\n opacity: var-list(var-prefixer(checkbox-disabled-opacity), --tct-disabled-opacity, --app-disabled-opacity, 0.4);\n label {\n cursor: not-allowed;\n }\n}\n","import {\n Component,\n ComponentInterface,\n Element,\n Event,\n EventEmitter,\n h,\n Listen,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport { createGuid, handleAriaLabel, isEventFromElement, loc, overrideFocus } from 'src/utils';\nimport mirrorEmit from '@/utils/mirror-emit';\n\n/**\n * @name Checkbox\n * @category Forms\n * @summary Use as a single binary choice; nest within a Checkbox Group for grouped selection.\n */\n@Component({ tag: 'q2-checkbox', shadow: true, styleUrl: 'q2-checkbox.scss' })\nexport class Q2Checkbox implements ComponentInterface {\n // #region Own Properties\n\n _id: string = `checkbox-${createGuid()}`;\n descriptionObserver: MutationObserver;\n inputElement: HTMLInputElement;\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 hasDescription: boolean = false;\n\n // #endregion\n // #region Public Property API\n\n /**\n * @private\n * Tooltip text set by a parent q2-tooltip component for accessibility.\n */\n @Prop()\n _tooltip: string;\n\n /** Determine which side of the label the checkbox will render on. */\n @Prop({ reflect: true })\n alignment: string;\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true })\n ariaLabel: string;\n\n /** The state of the checkbox. This modifies the visual appearance of the element. */\n @Prop({ reflect: true, mutable: true })\n checked: boolean = false;\n\n /**\n * Populates a description that is displayed beneath the label.\n * @localizable\n */\n @Prop({ reflect: true })\n description: string;\n\n /** Disables the checkbox and prevents interaction. */\n @Prop({ reflect: true })\n disabled: boolean;\n\n /**\n * Used by q2-checkbox-group to disable all checkboxes in the group\n * @private\n */\n @Prop({ reflect: true })\n groupDisabled: boolean;\n\n /** Determines if the component should display in an errant state. */\n @Prop({ reflect: true })\n hasError: boolean = false;\n\n /**\n * Hide's the field's `<label>` element from view.\n *\n * @warning\n * Only use when a visible label is impractical.\n */\n @Prop({ reflect: true, mutable: true })\n hideLabel: boolean;\n\n /**\n * Used on a parent checkbox in a checkbox group (e.g. \"Select All\") to indicate that some, but not all, checkboxes in a group are checked.\n *\n * When `true`, the \"indeterminate\" selection style is applied.\n * To apply the standard \"checked\" selection style, `checked` must be true, and `indeterminate` must be `false`.\n */\n @Prop({ reflect: true })\n indeterminate: boolean;\n\n /**\n * The visible label text for the checkbox. Appears to the right of the box for 'default' and 'favorite' checkboxes, and to the left for 'toggle' checkboxes.\n * Yielded content will be adjacent to this text.\n * @localizable\n */\n @Prop({ reflect: true, mutable: true })\n label: string;\n\n /** A static string used to establish a symbolic relationship between checkboxes. */\n @Prop({ reflect: true })\n name: string;\n\n /** The field is not interactive, but remains focusable. */\n @Prop({ reflect: true })\n readonly: boolean;\n\n /** The field is not interactive, but remains focusable. */\n @Prop({ reflect: true })\n slotReadonly: boolean;\n\n /** The visual style of the checkbox. This does not need to be defined for a standard checkbox. */\n @Prop({ reflect: true })\n type: 'favorite' | 'toggle';\n\n /** A static reference value for the checkbox. */\n @Prop({ reflect: true })\n value: string;\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when the checkbox is toggled.\n * @deprecated Use 'tctChange' instead\n * @legacyEvent\n */\n @Event()\n change: EventEmitter<{ value: string; checked: boolean }>;\n\n /**\n * Emitted when the checkbox is toggled.\n * @legacyEvent\n */\n @Event()\n tctChange: EventEmitter<{ value: string; checked: boolean }>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback(): void {\n this.descriptionObserver?.disconnect();\n }\n\n componentWillLoad() {\n handleAriaLabel(this);\n this.checkForDescription();\n }\n\n componentDidLoad(): void {\n overrideFocus(this.hostElement);\n this.hostElement.click = () => this.inputElement.click();\n this.setupDescriptionObserver();\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('change')\n defaultChangeHandler(event: CustomEvent) {\n // We use setTimeout to give an opportunity to call preventDefault\n setTimeout(() => this.handleChangeEvent(event), 0);\n }\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.hostElement.shadowRoot.querySelector('input').focus();\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('ariaLabel')\n ariaLabelObserver() {\n handleAriaLabel(this);\n }\n\n // #endregion\n // #region Local Methods\n\n get ariaLabelledBy(): string | undefined {\n const hasLabel =\n !!loc(this.label) ||\n !!this.hostElement.querySelector('[slot=\"label\"]') ||\n Array.from(this.hostElement.childNodes).some(\n node => !(node instanceof HTMLElement && node.getAttribute('slot')) && !!node.textContent?.trim()\n );\n if (!hasLabel && !this._tooltip) return undefined;\n const ids = [];\n if (hasLabel) ids.push(this.labelId);\n if (this._tooltip) ids.push(this.tooltipId);\n return ids.join(' ');\n }\n\n get labelId(): string {\n return `label-${this._id}`;\n }\n\n get tooltipId(): string {\n return `tooltip-${this._id}`;\n }\n\n checkForDescription() {\n this.hasDescription = !!this.description || !!this.hostElement.querySelector('[slot=\"description\"]');\n }\n\n handleChangeEvent(event: CustomEvent<{ checked: boolean; value: string }>) {\n if (\n this.readonly ||\n this.disabled ||\n this.hostElement.onchange ||\n event.defaultPrevented ||\n event.target !== this.hostElement ||\n !event.detail\n ) {\n return;\n }\n this.checked = event.detail.checked;\n }\n\n onInputClick = (event: Event) => {\n event.stopPropagation();\n event.preventDefault();\n\n const isNotInteractive = this.disabled || this.readonly || this.slotReadonly;\n if (isNotInteractive) return;\n if (!(event.target instanceof HTMLInputElement)) return;\n const { value, checked } = event.target;\n\n mirrorEmit(this, ['change', 'tctChange'], {\n value,\n checked,\n });\n this.inputElement.focus();\n };\n\n setupDescriptionObserver() {\n this.descriptionObserver = new MutationObserver(() => {\n this.checkForDescription();\n });\n\n this.descriptionObserver.observe(this.hostElement, {\n childList: true,\n subtree: true,\n });\n }\n\n // #endregion\n // #region Render Methods\n\n renderCheckboxSVG() {\n if (this.type === 'favorite') {\n return (\n <q2-icon\n type=\"star\"\n class=\"checkbox-icon\"\n />\n );\n }\n\n if (this.type === 'toggle') {\n return this.renderToggleSVG();\n }\n\n return (\n <svg\n aria-hidden=\"true\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n class=\"checkbox-icon\"\n focusable=\"false\"\n >\n <rect\n x=\"1\"\n y=\"1\"\n width=\"18\"\n height=\"18\"\n rx=\"3\"\n />\n {(this.checked || this.indeterminate) && this.renderCheckBoxSVGFill()}\n </svg>\n );\n }\n\n renderCheckBoxSVGFill() {\n if (this.indeterminate) {\n return (\n <line\n class=\"checkbox-fill indeterminate-fill\"\n x1=\"4\"\n y1=\"10\"\n x2=\"16\"\n y2=\"10\"\n />\n );\n }\n return (\n <polyline\n class=\"checkbox-fill checked-fill\"\n points=\"5 11 8.5 14.5 15 6\"\n key={`checkmark-${this.checked}`}\n />\n );\n }\n\n renderToggleSVG() {\n return (\n <div class=\"toggle-svg-container\">\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n viewBox=\"0 0 38 24\"\n class=\"toggle-track\"\n test-id=\"toggleTrack\"\n >\n <rect\n width=\"38\"\n height=\"24\"\n rx=\"12\"\n ></rect>\n </svg>\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n viewBox=\"0 0 18 18\"\n class=\"toggle-indicator\"\n test-id=\"toggleIndicator\"\n >\n <defs>\n {/* Mask for the X icon */}\n <mask\n id=\"xMask\"\n maskUnits=\"userSpaceOnUse\"\n >\n <rect\n width=\"18\"\n height=\"18\"\n fill=\"white\"\n ></rect>\n <line\n class=\"toggle-icon\"\n x1=\"6.5\"\n y1=\"6.5\"\n x2=\"11.5\"\n y2=\"11.5\"\n stroke=\"black\"\n stroke-width=\"2\"\n ></line>\n <line\n class=\"toggle-icon\"\n x1=\"6.5\"\n y1=\"11.5\"\n x2=\"11.5\"\n y2=\"6.5\"\n stroke=\"black\"\n stroke-width=\"2\"\n ></line>\n </mask>\n {/* Mask for the checkmark icon */}\n <mask id=\"checkMask\">\n <rect\n width=\"18\"\n height=\"18\"\n fill=\"white\"\n />\n <polyline\n class=\"toggle-icon\"\n points=\"6,8.5 8.5,11 12.5,6.5\"\n fill=\"none\"\n />\n </mask>\n </defs>\n <circle\n class=\"toggle-circle\"\n cx=\"9\"\n cy=\"9\"\n r=\"9\"\n mask=\"url(#xMask)\"\n ></circle>\n </svg>\n </div>\n );\n }\n\n render() {\n const textLabelClasses = ['label-text'];\n if (this.hideLabel) textLabelClasses.push('sr');\n return (\n <div class=\"container\">\n <input\n ref={el => (this.inputElement = el)}\n aria-describedby={this.hasDescription ? 'description' : undefined}\n aria-invalid={this.hasError === undefined ? undefined : `${this.hasError}`}\n aria-labelledby={this.ariaLabelledBy}\n checked={this.indeterminate || this.checked || false}\n class=\"sr\"\n disabled={!!this.disabled || !!this.groupDisabled}\n id={this._id}\n name={this.name || this._id}\n onClick={this.onInputClick}\n test-id=\"q2CheckboxInnerCheckBox\"\n type=\"checkbox\"\n value={this.value}\n />\n <label\n htmlFor={this._id}\n class=\"label-control\"\n test-id=\"checkboxButton\"\n aria-hidden=\"true\"\n >\n {this.renderCheckboxSVG()}\n </label>\n <div class={textLabelClasses.join(' ')}>\n <label\n test-id=\"checkboxLabel\"\n htmlFor={this._id}\n id={this.labelId}\n >\n <div class=\"label-content\">\n {loc(this.label)}\n <slot />\n <slot name=\"label\" />\n </div>\n </label>\n </div>\n {this._tooltip && (\n <span\n id={this.tooltipId}\n class=\"sr\"\n test-id=\"checkboxTooltipText\"\n >\n {this._tooltip}\n </span>\n )}\n {this.hasDescription && (\n <div\n class=\"description-text\"\n test-id=\"checkboxDescription\"\n id=\"description\"\n >\n {loc(this.description)}\n <slot name=\"description\" />\n </div>\n )}\n </div>\n );\n }\n\n // #endregion\n}\n","@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n display: inline-block;\n position: relative;\n line-height: 0;\n}\n\n:host(:not(:last-child)) {\n margin-inline-end: var-list(var-prefixer(tag-margin), --app-scale-2x, 10px);\n}\n\n.tag-wrapper {\n --comp-tag-btn-size: #{var-list(var-prefixer(tag-btn-size), --app-scale-6x, 30px)};\n --comp-tag-background: #{var-list(var-prefixer(tag-background), --t-gray-13, #e6e6e6)};\n --comp-tag-color: #{var-list(var-prefixer(tag-color), --t-gray-3, #262626)};\n --comp-tag-border-color: #{var-list(--tct-tag-border-color, transparent)};\n background: var(--comp-tag-background);\n color: var(--comp-tag-color);\n border-radius: var-list(var-prefixer(tag-border-radius), --app-border-radius-1, 4px);\n border-width: var-list(--tct-tag-border-width, 0);\n border-style: var-list(--tct-tag-border-style, 0);\n border-color: var(--comp-tag-border-color);\n font-size: var(--tct-tag-font-size, inherit);\n font-weight: var(--tct-tag-font-weight, inherit);\n position: relative;\n\n :host([theme='primary']) & {\n --comp-tag-background: #{var-list(--tct-tag-primary-background, --t-primary, #0079c1)};\n --comp-tag-color: #{var-list(--tct-tag-primary-font-color, --t-primary-text, #ffffff)};\n --comp-tag-border-color: #{var-list(--tct-tag-primary-border-color, --t-primary, #0079c1)};\n }\n\n :host([theme='secondary']) & {\n --comp-tag-background: #{var-list(--tct-tag-secondary-background, --t-secondary, #b3c2cc)};\n --comp-tag-color: #{var-list(--tct-tag-secondary-font-color, --t-secondary-text, #141414)};\n --comp-tag-border-color: #{var-list(--tct-tag-secondary-border-color, --t-secondary, #b3c2cc)};\n }\n\n :host([theme='tertiary']) & {\n --comp-tag-background: #{var-list(--tct-tag-tertiary-background, --t-tertiary, #e8f5fc)};\n --comp-tag-color: #{var-list(--tct-tag-tertiary-font-color, --t-tertiary-text, #141414)};\n --comp-tag-border-color: #{var-list(--tct-tag-tertiary-border-color, --t-tertiary, #e8f5fc)};\n }\n\n &:focus-visible {\n box-shadow: var-list(--tct-tag-focus-visible-box-shadow, --const-double-focus-ring);\n }\n}\n\n.tag {\n display: flex;\n align-items: center;\n width: max-content;\n gap: 6px;\n height: var-list(var-prefixer(tag-height), --app-scale-6x, 30px);\n line-height: var-list(var-prefixer(tag-height), --app-scale-6x, 30px);\n padding-inline: var-list(var-prefixer(tag-padding-inline), --app-scale-3x, 15px);\n\n ::slotted(q2-icon[slot='decorator']) {\n --tct-icon-size: 1em;\n --tct-icon-stroke-primary: var(--tct-tag-decorator-icon-primary-stroke);\n --tct-icon-stroke-secondary: var(--tct-tag-decorator-icon-secondary-stroke);\n }\n\n :host([theme=\"primary\"]) & ::slotted(q2-icon[slot='decorator']) {\n --tct-icon-stroke-primary: var(--tct-tag-primary-decorator-icon-primary-stroke);\n --tct-icon-stroke-secondary: var(--tct-tag-primary-decorator-icon-secondary-stroke);\n }\n\n ::slotted(q2-badge[slot='decorator']) {\n --tct-badge-height: 1em;\n --tct-badge-line-height: 30px;\n }\n}\n\n.tag.has-options {\n padding-right: 6px;\n}\n\n.btn-wrapper {\n --comp-tag-clickable-size: #{var-list(var-prefixer(tag-clickable-size), 44px)};\n --comp-tag-btn-offset: calc(calc(calc(var(--comp-tag-clickable-size) - var(--comp-tag-btn-size)) / 2) * -1);\n --comp-tag-background: #{var-list(var-prefixer(tag-background), --t-gray-13, #e6e6e6)};\n height: var(--comp-tag-clickable-size);\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n right: var(--comp-tag-btn-offset);\n top: var(--comp-tag-btn-offset);\n cursor: pointer;\n}\n\nbutton {\n height: var(--comp-tag-btn-size);\n stroke: var(--comp-tag-color);\n --tct-icon-stroke-primary: var(--comp-tag-color);\n cursor: pointer;\n border: 0;\n background: transparent;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n padding-right: 6px;\n --tct-icon-size: 18px;\n}\n","import {\n Component,\n State,\n Prop,\n h,\n ComponentInterface,\n Host,\n Listen,\n Method,\n Element,\n EventEmitter,\n Event,\n Fragment,\n} from '@stencil/core';\nimport { isEventFromElement, loc, overrideFocus, waitForNextPaint } from 'src/utils';\nimport mirrorEmit from '@/utils/mirror-emit';\nimport { shouldShowActionSheet, showActionSheetList } from 'src/utils/action-sheet';\n\n/**\n * @name Tag\n * @category Display\n * @summary Use for displaying metadata labels or categories on content.\n * @slot decorator - An optional slot that supports either an [Icon](https://tecton.q2developer.com/design-system/q2-icon) or [Badge](https://tecton.q2developer.com/design-system/q2-badge) to be displayed with the tag content.\n * This is **not** available when using [Multiple Options](https://tecton.q2developer.com/design-system/q2-tag#multiple-options).\n */\n@Component({ tag: 'q2-tag', shadow: true, styleUrl: 'q2-tag.scss' })\nexport class Q2Tag implements ComponentInterface {\n // #region Own Properties\n\n dropdownBtn: HTMLButtonElement;\n mutationObserver: MutationObserver;\n optionList: HTMLQ2OptionListElement;\n popoverElement: HTMLQ2PopoverElement;\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 optionCount: number;\n\n // #endregion\n // #region Public Property API\n\n /**\n * Instructs the component to use the action sheet workflow for displaying its options.\n *\n * For more information, see [Action Sheets](https://tecton.q2developer.com/guides/action-sheets/).\n */\n @Prop()\n hoist: boolean = !!window.Tecton?.useActionSheets;\n\n /**\n * The text that populates the label.\n * @localizable\n */\n @Prop({ reflect: true })\n label: string;\n\n /**\n * Determine whether the popover is open or closed.\n *\n * @readonly\n */\n @Prop({ reflect: true, mutable: true })\n open: boolean;\n\n /** Determines the label that is applied to the option list for accessibility purposes. */\n @Prop()\n optionListLabel: string = 'options';\n\n /** Aligns the popover dropdown to the left or right side of the input field. */\n @Prop({ mutable: true })\n popoverAlignment: 'left' | 'right' = 'right';\n\n /**\n * Force the direction of the popover dropdown when it opens.\n * If no value is passed, the component will auto-detect the direction based on available space.\n */\n @Prop()\n popoverDirection: 'up' | 'down';\n\n /**\n * Force the maximum height of the popover. This value will be interpreted as pixels.\n * If no value is passed, or the value exceeds available space, the component will auto-detect the maximum height based on available space.\n */\n @Prop()\n popoverMaxHeight: number;\n\n /** @deprecated */\n @Prop()\n popoverMinHeight: number;\n\n /** The color of the element. */\n @Prop({ reflect: true })\n theme: 'primary' | 'secondary' | 'tertiary';\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when a provided option is clicked.\n *\n * Requires at least one option to be provided.\n * @deprecated Use 'tctClick' instead\n */\n @Event()\n click: EventEmitter<{ value: string }>;\n\n /**\n * Emitted when a provided option is clicked.\n *\n * Requires at least one option to be provided.\n */\n @Event()\n tctClick: EventEmitter<{ value: string }>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback() {\n this.mutationObserver?.disconnect();\n this.mutationObserver = null;\n }\n\n componentWillLoad() {\n this.initMutationObserver();\n this.determineOptionCount();\n }\n\n componentDidLoad(): void {\n overrideFocus(this.hostElement);\n this.filterSlottedElements();\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n if (!this.optionCount) return;\n this.dropdownBtn.focus();\n }\n\n @Listen('popoverStateChanged')\n popoverStateHandler({ detail: { open } }: CustomEvent<{ open: boolean }>) {\n if (this.open !== open) this.open = open;\n if (open) return;\n this.optionList.setActiveElement(null);\n }\n\n // #endregion\n // #region Public Methods API\n\n /**\n * Emulates clicking the tag to close the popover when options are provided and the popover is open.\n * @testonly\n */\n @Method()\n async closePopover() {\n if (!this.optionCount || !this.open) return;\n this._togglePopover();\n }\n\n /**\n * Emulates clicking the tag to open the popover when options are provided and the popover is closed.\n * @testonly\n */\n @Method()\n async openPopover() {\n if (!this.optionCount || this.open) return;\n this._togglePopover();\n }\n\n /**\n * Emulates selecting an option matching the passed value.\n *\n * If the popover is closed, this will open it before selecting the option.\n *\n * If there are not options, or the passed value does not match any option's value, this method does nothing.\n * @testonly\n */\n @Method()\n async selectOption(value) {\n if (!this.optionCount) return;\n await this.openPopover();\n await waitForNextPaint();\n const allOptions = await this.optionList.getOptions();\n const desiredOption = allOptions.find(option => option.value === value);\n desiredOption?.click();\n }\n\n // #endregion\n // #region Local Methods\n\n _togglePopover() {\n const { dropdownBtn } = this;\n dropdownBtn?.click();\n dropdownBtn?.focus();\n dropdownBtn.dispatchEvent(new FocusEvent('focus'));\n }\n\n determineOptionCount = () => {\n const numberOfOptions = this.hostElement.querySelectorAll('q2-option').length;\n this.optionCount = numberOfOptions;\n };\n\n filterSlottedElements = () => {\n if (!('HTMLSlotElement' in window)) return;\n const slot: HTMLSlotElement = this.hostElement.shadowRoot.querySelector('slot[name=\"decorator\"]');\n const assignedElements = Array.from(slot?.assignedElements() || []);\n if (!assignedElements.length) return;\n\n const approvedElements = ['Q2-ICON', 'Q2-BADGE'];\n assignedElements.forEach((element, index) => {\n if (!approvedElements.includes(element.tagName) || index > 0) {\n element.remove();\n }\n });\n };\n\n handleButtonFocusout = async (event: FocusEvent) => {\n const relatedTarget = event.relatedTarget as HTMLElement;\n if (this.popoverElement?.contains(relatedTarget)) return;\n if (this.hostElement.contains(relatedTarget)) return;\n this.open = false;\n };\n\n handleChange = event => {\n event.stopPropagation();\n if (!this.optionCount) return;\n const { value } = event.detail;\n\n mirrorEmit(this, ['click', 'tctClick'], { value });\n };\n\n handleClick = async (event: MouseEvent) => {\n event.stopPropagation();\n this.popoverElement.controlElement = this.dropdownBtn;\n if (shouldShowActionSheet(this)) {\n const { value } = await showActionSheetList(this, event);\n this.dropdownBtn.focus();\n mirrorEmit(this, ['click', 'tctClick'], { value });\n } else {\n await this.popoverElement.toggle();\n }\n };\n\n handleKeydown = async (event: KeyboardEvent) => {\n const isTabMetaOrCtrl = event.metaKey || event.ctrlKey || event.key === 'Tab';\n if (isTabMetaOrCtrl) return;\n\n event.preventDefault();\n this.popoverElement.controlElement = this.dropdownBtn;\n if (shouldShowActionSheet(this, event)) {\n const { value } = await showActionSheetList(this, event);\n this.dropdownBtn.focus();\n mirrorEmit(this, ['click', 'tctClick'], { value });\n } else {\n this.optionList.handleExternalKeydown(event);\n }\n };\n\n handleWrapperClick = () => {\n this.dropdownBtn.focus();\n this.dropdownBtn.click();\n };\n\n initMutationObserver = () => {\n if (!('MutationObserver' in window)) return;\n const observer = new MutationObserver(this.onMutationObserved);\n observer.observe(this.hostElement, { childList: true, attributes: true });\n this.mutationObserver = observer;\n };\n\n onClickElsewhere = (event: CustomEvent) => {\n const target = event.target as HTMLClickElsewhereElement;\n if (target.localName === 'click-elsewhere') {\n event.stopPropagation();\n const { popoverElement } = this;\n if (!popoverElement) return;\n popoverElement.open = false;\n }\n };\n\n onMutationObserved = () => {\n this.determineOptionCount();\n this.filterSlottedElements();\n };\n\n // #endregion\n // #region Render Methods\n\n renderHiddenElement() {\n return (\n <div\n id=\"option-description\"\n class=\"sr\"\n aria-hidden=\"true\"\n >\n {loc('tecton.element.optionList.optionCount', [this.optionCount])}\n </div>\n );\n }\n\n render() {\n const { open } = this;\n const wrapperClassNames = ['tag'];\n if (this.optionCount) wrapperClassNames.push('has-options');\n const shouldShowOptions = this.optionCount > 0;\n\n return (\n <Host>\n <click-elsewhere onChange={this.onClickElsewhere}>\n {shouldShowOptions ? (\n <Fragment>\n <div\n class=\"btn-wrapper\"\n onClick={this.handleWrapperClick}\n >\n <button\n class=\"tag-wrapper\"\n ref={el => (this.dropdownBtn = el)}\n test-id=\"btn-control\"\n type=\"button\"\n role=\"combobox\"\n onClick={this.handleClick}\n onKeyDown={this.handleKeydown}\n onFocusout={this.handleButtonFocusout}\n aria-controls=\"option-list\"\n aria-expanded={open ? 'true' : 'false'}\n aria-describedby=\"option-description\"\n aria-label={loc(this.label)}\n >\n <div class={wrapperClassNames.join(' ')}>{loc(this.label)}</div>\n <q2-icon type=\"options\"></q2-icon>\n </button>\n </div>\n {this.renderHiddenElement()}\n </Fragment>\n ) : (\n <div\n class=\"tag-wrapper\"\n onClick={e => e.stopPropagation()}\n >\n <div class={wrapperClassNames.join(' ')}>\n <slot name=\"decorator\" />\n {loc(this.label)}\n </div>\n </div>\n )}\n\n {shouldShowOptions && (\n <q2-popover\n ref={el => (this.popoverElement = el)}\n controlElement={this.dropdownBtn}\n open={this.open}\n maxHeight={this.popoverMaxHeight}\n minHeight={this.popoverMinHeight}\n direction={this.popoverDirection}\n align={this.popoverAlignment}\n >\n <q2-option-list\n id=\"option-list\"\n ref={el => (this.optionList = el)}\n onChange={this.handleChange}\n type=\"menu\"\n align=\"right\"\n label={loc('tecton.element.optionList.label', [this.optionListLabel])}\n no-select\n >\n <slot />\n </q2-option-list>\n </q2-popover>\n )}\n </click-elsewhere>\n </Host>\n );\n }\n\n // #endregion\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["q2CheckboxCss","Q2Checkbox","constructor","hostRef","this","_id","createGuid","hasDescription","checked","hasError","onInputClick","event","stopPropagation","preventDefault","isNotInteractive","disabled","readonly","slotReadonly","target","HTMLInputElement","value","mirrorEmit","inputElement","focus","disconnectedCallback","_a","descriptionObserver","disconnect","componentWillLoad","handleAriaLabel","checkForDescription","componentDidLoad","overrideFocus","hostElement","click","setupDescriptionObserver","defaultChangeHandler","setTimeout","handleChangeEvent","delegateFocus","isEventFromElement","shadowRoot","querySelector","ariaLabelObserver","ariaLabelledBy","hasLabel","loc","label","Array","from","childNodes","some","node","HTMLElement","getAttribute","textContent","trim","_tooltip","undefined","ids","push","labelId","tooltipId","join","description","onchange","defaultPrevented","detail","MutationObserver","observe","childList","subtree","renderCheckboxSVG","type","h","class","renderToggleSVG","width","height","viewBox","focusable","x","y","rx","indeterminate","renderCheckBoxSVGFill","x1","y1","x2","y2","points","key","id","maskUnits","fill","stroke","cx","cy","r","mask","render","textLabelClasses","hideLabel","ref","el","groupDisabled","name","onClick","htmlFor","q2TagCss","Q2Tag","hoist","window","Tecton","useActionSheets","optionListLabel","popoverAlignment","determineOptionCount","numberOfOptions","querySelectorAll","length","optionCount","filterSlottedElements","slot","assignedElements","approvedElements","forEach","element","index","includes","tagName","remove","handleButtonFocusout","async","relatedTarget","popoverElement","contains","open","handleChange","handleClick","controlElement","dropdownBtn","shouldShowActionSheet","showActionSheetList","toggle","handleKeydown","isTabMetaOrCtrl","metaKey","ctrlKey","optionList","handleExternalKeydown","handleWrapperClick","initMutationObserver","observer","onMutationObserved","attributes","mutationObserver","onClickElsewhere","localName","popoverStateHandler","setActiveElement","closePopover","_togglePopover","openPopover","selectOption","waitForNextPaint","allOptions","getOptions","desiredOption","find","option","dispatchEvent","FocusEvent","renderHiddenElement","wrapperClassNames","shouldShowOptions","Host","onChange","Fragment","role","onKeyDown","onFocusout","e","maxHeight","popoverMaxHeight","minHeight","popoverMinHeight","direction","popoverDirection","align"],"sources":["src/components/q2-checkbox/q2-checkbox.scss?tag=q2-checkbox&encapsulation=shadow","src/components/q2-checkbox/q2-checkbox.tsx","src/components/q2-tag/q2-tag.scss?tag=q2-tag&encapsulation=shadow","src/components/q2-tag/q2-tag.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n@import './variables';\n\n:host {\n --comp-checkbox-padding: #{var-list(\n --tct-checkbox-padding,\n unquote('#{var-list(var-prefixer(checkbox-vertical-padding), 8px)} 0')\n )};\n\n display: block;\n position: relative;\n padding: var(--comp-checkbox-padding);\n --comp-default-checkbox-margin: #{var-list(var-prefixer(checkbox-margin-top), 0px) 0\n var-list(var-prefixer(checkbox-margin-bottom), 0px)};\n margin: var-list(--tct-checkbox-margin, --comp-default-checkbox-margin);\n}\n\n.container {\n --comp-checkbox-size: #{var-list(var-prefixer(checkbox-size), 24px)};\n --comp-checkbox-default-column-gap: var(--app-scale-2x, 10px);\n --comp-checkbox-default-row-gap: 0;\n --comp-checkbox-default-gap: #{var(--comp-checkbox-default-row-gap) var(--comp-checkbox-default-column-gap)};\n --comp-checkbox-tween: #{var-list(--tct-tween-1, --app-tween-1, unquote('0.2s ease'))};\n --comp-checkbox-toggle-width: #{var-list(var-prefixer(checkbox-toggle-width), 38px)};\n\n --comp-checkbox-toggle-track-fill: #{var-list(\n --tct-checkbox-toggle-track-fill,\n --tct-checkbox-toggle-track-color,\n transparent\n )};\n --comp-checkbox-toggle-track-fill-active: #{var-list(\n --tct-checkbox-toggle-active-track-fill,\n --tct-checkbox-toggle-active-track-color,\n --tct-checkbox-toggle-active-color,\n --t-primary-l1,\n #7755af\n )};\n --comp-checkbox-toggle-track-fill-hover: #{var-list(\n --tct-checkbox-toggle-hover-track-fill,\n --tct-checkbox-toggle-hover-track-color,\n --comp-checkbox-toggle-track-fill\n )};\n --comp-checkbox-toggle-track-fill-error: #{var-list(\n --tct-checkbox-toggle-error-track-fill,\n --tct-checkbox-toggle-error-track-color,\n --comp-checkbox-toggle-track-fill\n )};\n --comp-checkbox-toggle-track-fill-error-hover: #{var-list(\n --tct-checkbox-toggle-error-hover-track-fill,\n --tct-checkbox-toggle-error-hover-track-color,\n --comp-checkbox-toggle-track-fill-error\n )};\n --comp-checkbox-toggle-track-fill-error-active: #{var-list(\n --tct-checkbox-toggle-error-active-track-fill,\n --tct-checkbox-toggle-error-active-track-color,\n --comp-checkbox-toggle-track-fill-error\n )};\n\n --comp-checkbox-toggle-error-color: #{var-list(--tct-checkbox-toggle-error-color, --comp-checkbox-error-color)};\n --comp-checkbox-toggle-color: #{var-list(--tct-checkbox-toggle-color, --t-gray-8, #808080)};\n --comp-checkbox-gap: #{var-list(var-prefixer(checkbox-gap), --comp-checkbox-default-gap)};\n --comp-checkbox-outer-stroke-color: #{var-list(\n var-prefixer(checkbox-outer-stroke-color),\n --t-a11y-gray-color-AA,\n #949494\n )};\n --comp-checkbox-outer-fill-color: #{var-list(\n var-prefixer(checkbox-outer-fill-color),\n --tct-white,\n --app-white,\n #ffffff\n )};\n --comp-checkbox-checked-fill-color: #{var-list(\n --tct-checkbox-checked-fill-color,\n --t-primary,\n #040404\n )};\n --comp-checkbox-checked-color: #{var-list(\n --tct-checkbox-checked-stroke-color,\n --tct-white,\n --app-white,\n #FFFFFF\n )};\n --comp-control-width: var(--comp-checkbox-size);\n --comp-checkbox-error-color: #{var-list(--tct-stoplight-error, --const-stoplight-alert, #d20a0a)};\n\n --comp-checkbox-bold-fallback-stroke-width: #{var-list(--tct-checkbox-bold-fallback-stroke-width, 0.7px)};\n --comp-checkbox-stroke-width: #{var-list(--tct-checkbox-stroke-width, unset)};\n --comp-checkbox-checked-stroke-width: #{var-list(\n --tct-checkbox-checked-stroke-width,\n --comp-checkbox-bold-fallback-stroke-width\n )};\n --comp-checkbox-hover-stroke-width: #{var-list(--tct-checkbox-hover-stroke-width, unset)};\n --comp-checkbox-focused-stroke-width: #{var-list(--tct-checkbox-focused-stroke-width, unset)};\n --comp-checkbox-checked-hover-stroke-width: #{var-list(\n --tct-checkbox-checked-hover-stroke-width,\n --comp-checkbox-bold-fallback-stroke-width\n )};\n --comp-checkbox-checked-focused-stroke-width: #{var-list(\n --tct-checkbox-checked-focused-stroke-width,\n --comp-checkbox-bold-fallback-stroke-width\n )};\n --comp-checkbox-description-stroke-width: #{var-list(\n --tct-checkbox-description-stroke-width,\n --comp-checkbox-bold-fallback-stroke-width\n )};\n --comp-checkbox-description-focused-stroke-width: #{var-list(\n --tct-checkbox-description-focused-stroke-width,\n --comp-checkbox-bold-fallback-stroke-width\n )};\n --comp-checkbox-description-hover-stroke-width: #{var-list(\n --tct-checkbox-description-hover-stroke-width,\n --comp-checkbox-bold-fallback-stroke-width\n )};\n\n --comp-checkbox-toggle-circle-fill-active: #{var-list(\n --tct-checkbox-toggle-active-fill,\n --tct-checkbox-toggle-active-color,\n --comp-checkbox-toggle-color\n )};\n\n :host([type='favorite']) & {\n --comp-checkbox-favorite-stroke-color: #{var-list(\n var-prefixer(checkbox-favorite-stroke-color),\n --t-a11y-gray-color-AA,\n #949494\n )};\n --comp-checkbox-favorite-fill-color: #{var-list(var-prefixer(checkbox-favorite-fill-color), #db7d24)};\n }\n\n display: grid;\n grid-template-areas:\n 'svg label'\n 'svg description';\n align-items: start;\n gap: var(--comp-checkbox-gap);\n grid-template-columns: var(--comp-control-width) calc(\n 100% - var(--comp-control-width) - var(--comp-checkbox-default-column-gap)\n );\n\n :host([hide-label]:not([hide-label='false'])) & {\n grid-template-areas: 'svg';\n grid-template-columns: var(--comp-control-width);\n }\n\n :host([type='toggle']) & {\n --comp-control-width: var(--comp-checkbox-toggle-width);\n }\n\n :host([alignment='right']) &,\n :host([type='toggle']:not([alignment])) & {\n grid-template-areas:\n 'label svg'\n 'description svg';\n grid-template-columns: calc(100% - var(--comp-control-width) - var(--comp-checkbox-default-column-gap)) var(\n --comp-control-width\n );\n }\n}\n\n.label-control {\n align-items: center;\n display: flex;\n}\n\n.label-text {\n grid-area: label;\n\n :host([description]) & {\n -webkit-text-stroke-width: var(--comp-checkbox-description-stroke-width);\n text-stroke-width: var(--comp-checkbox-description-stroke-width);\n }\n :host([checked]:not([checked='false'])) & {\n -webkit-text-stroke-width: var(--comp-checkbox-checked-stroke-width);\n text-stroke-width: var(--comp-checkbox-checked-stroke-width);\n }\n :host(:hover) & {\n -webkit-text-stroke-width: var(--comp-checkbox-hover-stroke-width);\n text-stroke-width: var(--comp-checkbox-hover-stroke-width);\n }\n :host(:focus-within) & {\n -webkit-text-stroke-width: var(--comp-checkbox-focused-stroke-width);\n text-stroke-width: var(--comp-checkbox-focused-stroke-width);\n }\n :host([description]:hover) & {\n -webkit-text-stroke-width: var(--comp-checkbox-description-hover-stroke-width);\n text-stroke-width: var(--comp-checkbox-description-hover-stroke-width);\n }\n :host([checked]:not([checked='false']):hover) & {\n -webkit-text-stroke-width: var(--comp-checkbox-checked-hover-stroke-width);\n text-stroke-width: var(--comp-checkbox-checked-hover-stroke-width);\n }\n :host([description]:focus-within) & {\n -webkit-text-stroke-width: var(--comp-checkbox-description-focused-stroke-width);\n text-stroke-width: var(--comp-checkbox-description-focused-stroke-width);\n }\n :host([checked]:not([checked='false']):focus-within) & {\n -webkit-text-stroke-width: var(--comp-checkbox-checked-focused-stroke-width);\n text-stroke-width: var(--comp-checkbox-checked-focused-stroke-width);\n }\n :host(:active) & {\n -webkit-text-stroke-width: var(--tct-checkbox-active-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-active-stroke-width, unset);\n }\n :host([checked]:not([checked='false']):active) & {\n -webkit-text-stroke-width: var(--tct-checkbox-checked-active-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-checked-active-stroke-width, unset);\n }\n :host([has-error]:not([has-error='false']):hover) & {\n -webkit-text-stroke-width: var(--tct-checkbox-error-hover-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-error-hover-stroke-width, unset);\n }\n :host([has-error]:not([has-error='false']):focus-within) & {\n -webkit-text-stroke-width: var(--tct-checkbox-error-focused-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-error-focused-stroke-width, unset);\n }\n :host([has-error]:not([has-error='false']):active) & {\n -webkit-text-stroke-width: var(--tct-checkbox-error-active-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-error-active-stroke-width, unset);\n }\n :host([checked]:not([checked='false'])[has-error]:not([has-error='false']):hover) & {\n -webkit-text-stroke-width: var(--tct-checkbox-checked-error-hover-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-checked-error-hover-stroke-width, unset);\n }\n :host([checked]:not([checked='false'])[has-error]:not([has-error='false']):focus-within) & {\n -webkit-text-stroke-width: var(--tct-checkbox-checked-error-focused-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-checked-error-focused-stroke-width, unset);\n }\n :host([checked]:not([checked='false'])[has-error]:not([has-error='false']):active) & {\n -webkit-text-stroke-width: var(--tct-checkbox-checked-error-active-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-checked-error-active-stroke-width, unset);\n }\n\n label {\n line-height: var-list(--tct-checkbox-label-line-height, 24px);\n .label-content {\n display: inline;\n font-size: var(--tct-checkbox-label-font-size, inherit);\n }\n }\n}\n\n.description-text {\n grid-area: description;\n font-weight: var-list(var-prefixer(checkbox-description-font-weight), 400);\n\n :host(:hover) & {\n font-weight: var-list(\n --tct-checkbox-hover-description-font-weight,\n var-prefixer(checkbox-description-font-weight),\n 400\n );\n }\n}\n\nlabel {\n color: var-list(--tct-checkbox-label-color);\n cursor: pointer;\n hyphens: var-list(--tct-checkbox-label-hyphens, auto);\n word-break: var-list(--tct-checkbox-label-word-break, break-word);\n word-wrap: var-list(--tct-checkbox-label-word-wrap, break-word);\n}\n\n.checkbox-icon {\n width: var(--comp-checkbox-size);\n height: var(--comp-checkbox-size);\n border-radius: var-list(\n var-prefixer(checkbox-outer-border-radius),\n --tct-border-radius-1,\n --app-border-radius-1,\n 4px\n );\n stroke: var(--comp-checkbox-outer-stroke-color);\n fill: var(--comp-checkbox-outer-fill-color);\n stroke-width: var-list(var-prefixer(checkbox-outer-stroke-width), 2);\n flex-shrink: 0;\n box-shadow: var(--tct-checkbox-box-shadow);\n\n rect {\n transition: fill var-list(--tct-checkbox-tween, --app-tween-2, unquote('0.4s ease'));\n }\n\n :host([checked]:not([checked='false']):not([type='favorite'])) & {\n stroke: var-list(\n --comp-checkbox-checked-fill-color,\n var-prefixer(checkbox-checked-outer-stroke-color),\n --comp-checkbox-outer-stroke-color\n );\n\n rect {\n fill: var(--comp-checkbox-checked-fill-color);\n }\n }\n\n :host([has-error]:not([has-error='false']):not([type='favorite'])) & {\n stroke: var-list(--tct-checkbox-error-outer-stroke-color, --comp-checkbox-error-color);\n box-shadow: var-list(--tct-checkbox-error-box-shadow, --tct-checkbox-box-shadow);\n\n rect {\n fill: var-list(--tct-checkbox-error-outer-fill-color, --comp-checkbox-outer-fill-color);\n }\n }\n\n :host([has-error]:not([has-error='false']):not([type='favorite'])[checked]:not([checked='false'])) & {\n rect {\n fill: var-list(--tct-checkbox-error-checked-outer-fill-color);\n }\n }\n\n :host([indeterminate]:not([indeterminate='false']):not([type='favorite'])) & {\n stroke: var-list(\n --comp-checkbox-checked-fill-color,\n var-prefixer(checkbox-checked-outer-stroke-color),\n --comp-checkbox-outer-stroke-color\n );\n\n rect {\n fill: var(--comp-checkbox-checked-fill-color);\n }\n }\n\n :host(:hover:not([type='favorite'])) & {\n stroke: var-list(--tct-checkbox-hover-outer-stroke-color, --comp-checkbox-outer-stroke-color);\n box-shadow: var-list(--tct-checkbox-hover-box-shadow, --tct-checkbox-box-shadow);\n rect {\n fill: var-list(--tct-checkbox-hover-outer-fill-color, --comp-checkbox-outer-fill-color);\n }\n }\n :host(:hover[has-error]:not([has-error='false']):not([type='favorite'])) & {\n stroke: var-list(\n --tct-checkbox-error-hover-outer-stroke-color,\n --tct-checkbox-error-outer-stroke-color,\n --comp-checkbox-error-color\n );\n box-shadow: var-list(\n --tct-checkbox-error-hover-box-shadow,\n --tct-checkbox-error-box-shadow,\n --tct-checkbox-hover-box-shadow,\n --tct-checkbox-box-shadow\n );\n rect {\n fill: var-list(\n --tct-checkbox-error-hover-outer-fill-color,\n --tct-checkbox-error-outer-fill-color,\n --comp-checkbox-outer-fill-color\n );\n }\n }\n\n :host(:focus-within:not([type='favorite'])) & {\n --comp-checkbox-focused-box-shadow: #{var(--const-double-focus-ring),\n var-list(--tct-global-focus, unquote('0 0 0 2px #33b4ff'))};\n\n stroke: var-list(var-prefixer(checkbox-focused-outer-stroke-color), --comp-checkbox-outer-stroke-color);\n fill: var-list(--tct-checkbox-focused-outer-fill-color, --comp-checkbox-outer-fill-color);\n box-shadow: var-list(\n --tct-checkbox-focused-box-shadow,\n --tct-checkbox-box-shadow,\n --comp-checkbox-focused-box-shadow\n );\n }\n :host(:focus-within[has-error]:not([has-error='false']):not([type='favorite'])) & {\n stroke: var-list(\n --tct-checkbox-error-focused-outer-stroke-color,\n --tct-checkbox-error-outer-stroke-color,\n --comp-checkbox-error-color\n );\n fill: var-list(\n --tct-checkbox-error-focused-outer-fill-color,\n --tct-checkbox-error-outer-fill-color,\n --comp-checkbox-outer-fill-color\n );\n box-shadow: var-list(\n --tct-checkbox-error-focused-box-shadow,\n --tct-checkbox-error-box-shadow,\n --tct-checkbox-box-shadow,\n --comp-checkbox-focused-box-shadow\n );\n }\n\n // Favorite\n :host([type='favorite']) & {\n --tct-icon-stroke-width: #{var-list(var-prefixer(checkbox-favorite-stroke-width), 1)};\n --tct-icon-stroke-primary: var(--comp-checkbox-favorite-stroke-color);\n transition:\n fill var(--comp-checkbox-tween),\n color var(--comp-checkbox-tween),\n stroke var(--comp-checkbox-tween);\n }\n\n :host(:hover[type='favorite']) & {\n --tct-icon-stroke-primary: #{var-list(\n --tct-checkbox-favorite-hover-stroke-color,\n --comp-checkbox-favorite-fill-color\n )};\n --tct-icon-stroke-width: #{var-list(var-prefixer(checkbox-favorite-hover-stroke-width), 2)};\n }\n\n :host([type='favorite']:focus-within) & {\n --tct-icon-stroke-primary: #{var-list(\n --tct-checkbox-favorite-focused-stroke-color,\n --comp-checkbox-favorite-fill-color\n )};\n --tct-icon-stroke-width: #{var-list(var-prefixer(checkbox-favorite-hover-stroke-width), 2)};\n }\n\n // Checked favorite\n :host([checked]:not([checked='false'])[type='favorite']) & {\n --tct-icon-stroke-primary: #{var-list(\n --tct-checkbox-favorite-checked-stroke-color,\n --tct-checkbox-favorite-stroke-color,\n --comp-checkbox-favorite-fill-color\n )};\n fill: var-list(--tct-checkbox-favorite-checked-fill-color, --comp-checkbox-favorite-fill-color);\n transition:\n fill var(--comp-checkbox-tween),\n color var(--comp-checkbox-tween),\n stroke var(--comp-checkbox-tween);\n }\n\n :host([checked]:not([checked='false'])[type='favorite']:hover) & {\n --tct-icon-stroke-primary: #{var-list(\n --tct-checkbox-favorite-checked-hover-stroke-color,\n --tct-checkbox-favorite-hover-stroke-color,\n --comp-checkbox-favorite-stroke-color\n )};\n --tct-icon-fill-primary: #{var-list(\n --tct-checkbox-favorite-checked-fill-color,\n --comp-checkbox-favorite-fill-color\n )};\n --tct-icon-stroke-width: #{var-list(var-prefixer(checkbox-favorite-hover-stroke-width), 2)};\n }\n\n :host([checked]:not([checked='false'])[type='favorite']:focus-within) & {\n --tct-icon-stroke-primary: #{var-list(\n --tct-checkbox-favorite-checked-focused-stroke-color,\n --tct-checkbox-favorite-focused-stroke-color,\n --comp-checkbox-favorite-stroke-color\n )};\n --tct-icon-stroke-width: #{var-list(var-prefixer(checkbox-favorite-hover-stroke-width), 2)};\n }\n\n :host([has-error]:not([has-error='false'])[type='favorite']) & {\n --tct-icon-stroke-primary: #{var-list(--tct-checkbox-favorite-error-stroke-color, --comp-checkbox-error-color)};\n }\n :host([has-error]:not([has-error='false'])[type='favorite'][checked]:not([checked='false'])) & {\n --tct-icon-stroke-primary: #{var-list(--tct-checkbox-favorite-error-stroke-color, --comp-checkbox-error-color)};\n }\n}\n\n.checkbox-fill {\n fill: none;\n stroke: var-list(--comp-checkbox-checked-color);\n stroke-width: var-list(var-prefixer(checkbox-check-stroke-width), 2.5);\n stroke-linecap: round;\n stroke-linejoin: round;\n\n :host([has-error]:not([has-error='false']):not([type='favorite'])) & {\n stroke: var(--tct-checkbox-error-checkmark-stroke-color, #d20a0a);\n stroke-width: var(--tct-checkbox-error-checkmark-stroke-width, 2.5);\n }\n}\n\n.checked-fill {\n stroke-dasharray: 16;\n stroke-dashoffset: 16;\n animation-name: draw-checkmark;\n animation-duration: var-list(--tct-checkbox-animation-duration, --t-tween-time-in-4, 300ms);\n animation-timing-function: var-list(--tct-checkbox-animation-timing-function, ease-out);\n animation-fill-mode: var-list(--tct-checkbox-animation-fill-mode, forwards);\n}\n\n@keyframes draw-checkmark {\n to {\n stroke-dashoffset: 0;\n }\n}\n\n.indeterminate-fill {\n stroke-width: var-list(var-prefixer(checkbox-indeterminate-stroke-width), 3.5);\n}\n\n.toggle-svg-container {\n height: 30px;\n width: var(--comp-checkbox-toggle-width);\n position: relative;\n text-align: initial;\n}\n\n.toggle-indicator,\n.toggle-track {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n}\n.toggle-indicator {\n transition:\n left var(--comp-checkbox-tween),\n height var(--comp-checkbox-tween),\n width var(--comp-checkbox-tween);\n height: 16px;\n width: 16px;\n left: 4px;\n border-radius: 50%;\n}\n\n.toggle-track {\n --comp-default-track-box-shadow: inset 0 0 0 1px var(--comp-checkbox-toggle-color);\n height: 24px;\n width: 38px;\n fill: var(--comp-checkbox-toggle-track-fill);\n border-radius: var(--app-border-radius-3, 12px);\n box-shadow: var-list(--tct-checkbox-toggle-track-box-shadow, --comp-default-track-box-shadow);\n transition:\n fill var(--comp-checkbox-tween),\n box-shadow var(--comp-checkbox-tween);\n}\n\n.toggle-circle {\n mask: url(#xMask);\n fill: var(--comp-checkbox-toggle-color);\n transition: fill var(--comp-checkbox-tween);\n}\n\n.toggle-icon {\n stroke-linecap: round;\n stroke-linejoin: round;\n stroke-width: var(--tct-checkbox-toggle-icon-stroke-width, 2);\n stroke: black;\n}\n\n:host(:is(:not([checked]), [checked='false'])) {\n &:host(:is(:not([disabled]), [disabled='false']):is(:not([group-disabled]), [group-disabled='false'])) {\n :hover,\n :focus-within {\n .toggle-track {\n --comp-default-hover-track-box-shadow: inset 0 0 0 2px var(--comp-checkbox-toggle-color);\n box-shadow: var-list(\n --tct-checkbox-toggle-hover-track-box-shadow,\n --comp-default-hover-track-box-shadow\n );\n fill: var(--comp-checkbox-toggle-track-fill-hover);\n }\n .toggle-indicator {\n height: 18px;\n width: 18px;\n }\n .toggle-circle {\n fill: var-list(--tct-checkbox-toggle-hover-circle-color, --t-primary-d1, --t-gray-6, #4d4d4d);\n }\n .label-text {\n color: var(--tct-checkbox-label-hover-color, inherit);\n }\n .description-text {\n color: var(--tct-checkbox-description-hover-color, inherit);\n -webkit-text-stroke-width: var(--tct-checkbox-description-hover-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-description-hover-stroke-width, unset);\n }\n }\n :active {\n .toggle-circle {\n fill: var(--comp-checkbox-toggle-track-fill-active);\n }\n .label-text {\n color: var(--tct-checkbox-label-active-color, inherit);\n }\n .description-text {\n color: var(--tct-checkbox-description-active-color, inherit);\n -webkit-text-stroke-width: var(--tct-checkbox-description-active-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-description-active-stroke-width, unset);\n }\n .toggle-circle {\n fill: var(--comp-checkbox-toggle-circle-fill-active);\n }\n }\n }\n\n &:host([has-error]:not([has-error='false'])) {\n .toggle-track {\n box-shadow: inset 0 0 0 1px var(--comp-checkbox-toggle-error-color);\n fill: var(--comp-checkbox-toggle-track-fill-error);\n }\n .toggle-circle {\n fill: var(--comp-checkbox-toggle-error-color);\n }\n\n &:host(:is(:not([disabled]), [disabled='false']):is(:not([group-disabled]), [group-disabled='false'])) {\n :hover,\n :focus-within {\n .toggle-track {\n box-shadow: inset 0 0 0 2px var(--comp-checkbox-toggle-error-color);\n fill: var(--comp-checkbox-toggle-track-fill-error-hover);\n }\n .toggle-circle {\n fill: var-list(--tct-checkbox-toggle-error-hover-color, --comp-checkbox-toggle-error-color);\n }\n .label-text {\n color: var(--tct-checkbox-label-hover-color, inherit);\n }\n .description-text {\n color: var(--tct-checkbox-description-hover-color, inherit);\n -webkit-text-stroke-width: var(--tct-checkbox-description-hover-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-description-hover-stroke-width, unset);\n }\n }\n :active {\n .toggle-track {\n fill: var(--comp-checkbox-toggle-track-fill-error-active);\n }\n .toggle-circle {\n fill: var-list(--tct-checkbox-toggle-error-active-color, --comp-checkbox-toggle-error-color);\n }\n .label-text {\n color: var(--tct-checkbox-error-label-active-color, inherit);\n }\n .description-text {\n color: var(--tct-checkbox-error-description-active-color, inherit);\n -webkit-text-stroke-width: var(--tct-checkbox-error-description-active-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-error-description-active-stroke-width, unset);\n }\n }\n }\n }\n}\n\n:host([checked]:not([checked='false'])) {\n .toggle-indicator {\n left: 18px;\n }\n\n .toggle-track {\n fill: var-list(--tct-checkbox-toggle-checked-track-color, --t-primary, #6a4a9e);\n border: none;\n }\n .toggle-circle {\n mask: url(#checkMask);\n fill: var-list(--tct-checkbox-toggle-checked-circle-color, --t-base, #ffffff);\n }\n\n &:host(:is(:not([disabled]), [disabled='false']):is(:not([group-disabled]), [group-disabled='false'])) {\n :hover,\n :focus-within {\n .toggle-track {\n fill: var-list(--tct-checkbox-toggle-checked-hover-track-color, --t-primary-d1, #5f438e);\n }\n .toggle-indicator {\n height: 18px;\n width: 18px;\n }\n .label-text {\n color: var(--tct-checkbox-checked-label-hover-color, inherit);\n }\n .description-text {\n color: var(--tct-checkbox-checked-description-hover-color, inherit);\n -webkit-text-stroke-width: var(--tct-checkbox-checked-description-hover-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-checked-description-hover-stroke-width, unset);\n }\n }\n\n :active {\n .toggle-track {\n fill: var-list(--tct-checkbox-toggle-checked-active-track-color, --t-primary-l1, #7755af);\n }\n .toggle-indicator {\n height: 18px;\n width: 18px;\n }\n .label-text {\n color: var(--tct-checkbox-checked-label-active-color, inherit);\n }\n .description-text {\n color: var(--tct-checkbox-checked-description-active-color, inherit);\n -webkit-text-stroke-width: var(--tct-checkbox-checked-description-active-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-checked-description-active-stroke-width, unset);\n }\n }\n }\n\n &:host([has-error]:not([has-error='false'])) {\n .toggle-track {\n fill: var-list(--tct-checkbox-toggle-checked-error-track-color, --comp-checkbox-toggle-error-color);\n }\n &:host(:is(:not([disabled]), [disabled='false']):is(:not([group-disabled]), [group-disabled='false'])) {\n :hover,\n :focus-within {\n .toggle-track {\n fill: var-list(\n --tct-checkbox-toggle-checked-error-hover-track-color,\n --comp-checkbox-toggle-error-color\n );\n }\n .label-text {\n color: var(--tct-checkbox-checked-error-label-hover-color, inherit);\n }\n .description-text {\n color: var(--tct-checkbox-checked-error-description-hover-color, inherit);\n -webkit-text-stroke-width: var(--tct-checkbox-checked-error-description-hover-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-checked-error-description-hover-stroke-width, unset);\n }\n }\n\n :active {\n .toggle-track {\n fill: var-list(\n --tct-checkbox-toggle-checked-error-active-track-color,\n --comp-checkbox-toggle-error-color\n );\n }\n .label-text {\n color: var(--tct-checkbox-checked-error-label-active-color, inherit);\n }\n .description-text {\n color: var(--tct-checkbox-checked-error-description-active-color, inherit);\n -webkit-text-stroke-width: var(--tct-checkbox-checked-error-description-active-stroke-width, unset);\n text-stroke-width: var(--tct-checkbox-checked-error-description-active-stroke-width, unset);\n }\n }\n }\n }\n}\n\n:host(:is([disabled]:not([disabled='false']), [group-disabled]:not([group-disabled='false']))) {\n cursor: not-allowed;\n opacity: var-list(var-prefixer(checkbox-disabled-opacity), --tct-disabled-opacity, --app-disabled-opacity, 0.4);\n label {\n cursor: not-allowed;\n }\n}\n","import {\n Component,\n ComponentInterface,\n Element,\n Event,\n EventEmitter,\n h,\n Listen,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport { createGuid, handleAriaLabel, isEventFromElement, loc, overrideFocus } from 'src/utils';\nimport mirrorEmit from '@/utils/mirror-emit';\n\n/**\n * @name Checkbox\n * @category Forms\n * @summary Use as a single binary choice; nest within a Checkbox Group for grouped selection.\n */\n@Component({ tag: 'q2-checkbox', shadow: true, styleUrl: 'q2-checkbox.scss' })\nexport class Q2Checkbox implements ComponentInterface {\n // #region Own Properties\n\n _id: string = `checkbox-${createGuid()}`;\n descriptionObserver: MutationObserver;\n inputElement: HTMLInputElement;\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 hasDescription: boolean = false;\n\n // #endregion\n // #region Public Property API\n\n /**\n * @private\n * Tooltip text set by a parent q2-tooltip component for accessibility.\n */\n @Prop()\n _tooltip: string;\n\n /** Determine which side of the label the checkbox will render on. */\n @Prop({ reflect: true })\n alignment: string;\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true })\n ariaLabel: string;\n\n /** The state of the checkbox. This modifies the visual appearance of the element. */\n @Prop({ reflect: true, mutable: true })\n checked: boolean = false;\n\n /**\n * Populates a description that is displayed beneath the label.\n * @localizable\n */\n @Prop({ reflect: true })\n description: string;\n\n /** Disables the checkbox and prevents interaction. */\n @Prop({ reflect: true })\n disabled: boolean;\n\n /**\n * Used by q2-checkbox-group to disable all checkboxes in the group\n * @private\n */\n @Prop({ reflect: true })\n groupDisabled: boolean;\n\n /** Determines if the component should display in an errant state. */\n @Prop({ reflect: true })\n hasError: boolean = false;\n\n /**\n * Hide's the field's `<label>` element from view.\n *\n * @warning\n * Only use when a visible label is impractical.\n */\n @Prop({ reflect: true, mutable: true })\n hideLabel: boolean;\n\n /**\n * Used on a parent checkbox in a checkbox group (e.g. \"Select All\") to indicate that some, but not all, checkboxes in a group are checked.\n *\n * When `true`, the \"indeterminate\" selection style is applied.\n * To apply the standard \"checked\" selection style, `checked` must be true, and `indeterminate` must be `false`.\n */\n @Prop({ reflect: true })\n indeterminate: boolean;\n\n /**\n * The visible label text for the checkbox. Appears to the right of the box for 'default' and 'favorite' checkboxes, and to the left for 'toggle' checkboxes.\n * Yielded content will be adjacent to this text.\n * @localizable\n */\n @Prop({ reflect: true, mutable: true })\n label: string;\n\n /** A static string used to establish a symbolic relationship between checkboxes. */\n @Prop({ reflect: true })\n name: string;\n\n /** The field is not interactive, but remains focusable. */\n @Prop({ reflect: true })\n readonly: boolean;\n\n /** The field is not interactive, but remains focusable. */\n @Prop({ reflect: true })\n slotReadonly: boolean;\n\n /** The visual style of the checkbox. This does not need to be defined for a standard checkbox. */\n @Prop({ reflect: true })\n type: 'favorite' | 'toggle';\n\n /** A static reference value for the checkbox. */\n @Prop({ reflect: true })\n value: string;\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when the checkbox is toggled.\n * @deprecated Use 'tctChange' instead\n * @legacyEvent\n */\n @Event()\n change: EventEmitter<{ value: string; checked: boolean }>;\n\n /**\n * Emitted when the checkbox is toggled.\n * @legacyEvent\n */\n @Event()\n tctChange: EventEmitter<{ value: string; checked: boolean }>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback(): void {\n this.descriptionObserver?.disconnect();\n }\n\n componentWillLoad() {\n handleAriaLabel(this);\n this.checkForDescription();\n }\n\n componentDidLoad(): void {\n overrideFocus(this.hostElement);\n this.hostElement.click = () => this.inputElement.click();\n this.setupDescriptionObserver();\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('change')\n defaultChangeHandler(event: CustomEvent) {\n // We use setTimeout to give an opportunity to call preventDefault\n setTimeout(() => this.handleChangeEvent(event), 0);\n }\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.hostElement.shadowRoot.querySelector('input').focus();\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('ariaLabel')\n ariaLabelObserver() {\n handleAriaLabel(this);\n }\n\n // #endregion\n // #region Local Methods\n\n get ariaLabelledBy(): string | undefined {\n const hasLabel =\n !!loc(this.label) ||\n !!this.hostElement.querySelector('[slot=\"label\"]') ||\n Array.from(this.hostElement.childNodes).some(\n node => !(node instanceof HTMLElement && node.getAttribute('slot')) && !!node.textContent?.trim()\n );\n if (!hasLabel && !this._tooltip) return undefined;\n const ids = [];\n if (hasLabel) ids.push(this.labelId);\n if (this._tooltip) ids.push(this.tooltipId);\n return ids.join(' ');\n }\n\n get labelId(): string {\n return `label-${this._id}`;\n }\n\n get tooltipId(): string {\n return `tooltip-${this._id}`;\n }\n\n checkForDescription() {\n this.hasDescription = !!this.description || !!this.hostElement.querySelector('[slot=\"description\"]');\n }\n\n handleChangeEvent(event: CustomEvent<{ checked: boolean; value: string }>) {\n if (\n this.readonly ||\n this.disabled ||\n this.hostElement.onchange ||\n event.defaultPrevented ||\n event.target !== this.hostElement ||\n !event.detail\n ) {\n return;\n }\n this.checked = event.detail.checked;\n }\n\n onInputClick = (event: Event) => {\n event.stopPropagation();\n event.preventDefault();\n\n const isNotInteractive = this.disabled || this.readonly || this.slotReadonly;\n if (isNotInteractive) return;\n if (!(event.target instanceof HTMLInputElement)) return;\n const { value, checked } = event.target;\n\n mirrorEmit(this, ['change', 'tctChange'], {\n value,\n checked,\n });\n this.inputElement.focus();\n };\n\n setupDescriptionObserver() {\n this.descriptionObserver = new MutationObserver(() => {\n this.checkForDescription();\n });\n\n this.descriptionObserver.observe(this.hostElement, {\n childList: true,\n subtree: true,\n });\n }\n\n // #endregion\n // #region Render Methods\n\n renderCheckboxSVG() {\n if (this.type === 'favorite') {\n return (\n <q2-icon\n type=\"star\"\n class=\"checkbox-icon\"\n />\n );\n }\n\n if (this.type === 'toggle') {\n return this.renderToggleSVG();\n }\n\n return (\n <svg\n aria-hidden=\"true\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n class=\"checkbox-icon\"\n focusable=\"false\"\n >\n <rect\n x=\"1\"\n y=\"1\"\n width=\"18\"\n height=\"18\"\n rx=\"3\"\n />\n {(this.checked || this.indeterminate) && this.renderCheckBoxSVGFill()}\n </svg>\n );\n }\n\n renderCheckBoxSVGFill() {\n if (this.indeterminate) {\n return (\n <line\n class=\"checkbox-fill indeterminate-fill\"\n x1=\"4\"\n y1=\"10\"\n x2=\"16\"\n y2=\"10\"\n />\n );\n }\n return (\n <polyline\n class=\"checkbox-fill checked-fill\"\n points=\"5 11 8.5 14.5 15 6\"\n key={`checkmark-${this.checked}`}\n />\n );\n }\n\n renderToggleSVG() {\n return (\n <div class=\"toggle-svg-container\">\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n viewBox=\"0 0 38 24\"\n class=\"toggle-track\"\n test-id=\"toggleTrack\"\n >\n <rect\n width=\"38\"\n height=\"24\"\n rx=\"12\"\n ></rect>\n </svg>\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n viewBox=\"0 0 18 18\"\n class=\"toggle-indicator\"\n test-id=\"toggleIndicator\"\n >\n <defs>\n {/* Mask for the X icon */}\n <mask\n id=\"xMask\"\n maskUnits=\"userSpaceOnUse\"\n >\n <rect\n width=\"18\"\n height=\"18\"\n fill=\"white\"\n ></rect>\n <line\n class=\"toggle-icon\"\n x1=\"6.5\"\n y1=\"6.5\"\n x2=\"11.5\"\n y2=\"11.5\"\n stroke=\"black\"\n stroke-width=\"2\"\n ></line>\n <line\n class=\"toggle-icon\"\n x1=\"6.5\"\n y1=\"11.5\"\n x2=\"11.5\"\n y2=\"6.5\"\n stroke=\"black\"\n stroke-width=\"2\"\n ></line>\n </mask>\n {/* Mask for the checkmark icon */}\n <mask id=\"checkMask\">\n <rect\n width=\"18\"\n height=\"18\"\n fill=\"white\"\n />\n <polyline\n class=\"toggle-icon\"\n points=\"6,8.5 8.5,11 12.5,6.5\"\n fill=\"none\"\n />\n </mask>\n </defs>\n <circle\n class=\"toggle-circle\"\n cx=\"9\"\n cy=\"9\"\n r=\"9\"\n mask=\"url(#xMask)\"\n ></circle>\n </svg>\n </div>\n );\n }\n\n render() {\n const textLabelClasses = ['label-text'];\n if (this.hideLabel) textLabelClasses.push('sr');\n return (\n <div class=\"container\">\n <input\n ref={el => (this.inputElement = el)}\n aria-describedby={this.hasDescription ? 'description' : undefined}\n aria-invalid={this.hasError === undefined ? undefined : `${this.hasError}`}\n aria-labelledby={this.ariaLabelledBy}\n checked={this.indeterminate || this.checked || false}\n class=\"sr\"\n disabled={!!this.disabled || !!this.groupDisabled}\n id={this._id}\n name={this.name || this._id}\n onClick={this.onInputClick}\n test-id=\"q2CheckboxInnerCheckBox\"\n type=\"checkbox\"\n value={this.value}\n />\n <label\n htmlFor={this._id}\n class=\"label-control\"\n test-id=\"checkboxButton\"\n aria-hidden=\"true\"\n >\n {this.renderCheckboxSVG()}\n </label>\n <div class={textLabelClasses.join(' ')}>\n <label\n test-id=\"checkboxLabel\"\n htmlFor={this._id}\n id={this.labelId}\n >\n <div class=\"label-content\">\n {loc(this.label)}\n <slot />\n <slot name=\"label\" />\n </div>\n </label>\n </div>\n {this._tooltip && (\n <span\n id={this.tooltipId}\n class=\"sr\"\n test-id=\"checkboxTooltipText\"\n >\n {this._tooltip}\n </span>\n )}\n {this.hasDescription && (\n <div\n class=\"description-text\"\n test-id=\"checkboxDescription\"\n id=\"description\"\n >\n {loc(this.description)}\n <slot name=\"description\" />\n </div>\n )}\n </div>\n );\n }\n\n // #endregion\n}\n","@import '../../styles/host.scss';\n@import '../../styles/functions';\n@import './variables';\n\n:host {\n display: inline-block;\n position: relative;\n line-height: 0;\n}\n\n:host(:not(:last-child)) {\n margin-inline-end: var-list(var-prefixer(tag-margin), --app-scale-2x, 10px);\n}\n\n.tag-wrapper {\n --comp-tag-btn-size: #{var-list(var-prefixer(tag-btn-size), --app-scale-6x, 30px)};\n --comp-tag-background: #{var-list(var-prefixer(tag-background), --t-gray-13, #e6e6e6)};\n --comp-tag-color: #{var-list(var-prefixer(tag-color), --t-gray-3, #262626)};\n --comp-tag-border-color: #{var-list(--tct-tag-border-color, transparent)};\n background: var(--comp-tag-background);\n color: var(--comp-tag-color);\n border-radius: var-list(var-prefixer(tag-border-radius), --app-border-radius-1, 4px);\n border-width: var-list(--tct-tag-border-width, 0);\n border-style: var-list(--tct-tag-border-style, none);\n border-color: var(--comp-tag-border-color);\n font-size: var(--tct-tag-font-size, inherit);\n font-weight: var(--tct-tag-font-weight, inherit);\n position: relative;\n\n :host([theme='primary']) & {\n --comp-tag-background: #{var-list(--tct-tag-primary-background, --t-primary, #0079c1)};\n --comp-tag-color: #{var-list(--tct-tag-primary-font-color, --t-primary-text, #ffffff)};\n --comp-tag-border-color: #{var-list(--tct-tag-primary-border-color, --t-primary, #0079c1)};\n }\n\n :host([theme='secondary']) & {\n --comp-tag-background: #{var-list(--tct-tag-secondary-background, --t-secondary, #b3c2cc)};\n --comp-tag-color: #{var-list(--tct-tag-secondary-font-color, --t-secondary-text, #141414)};\n --comp-tag-border-color: #{var-list(--tct-tag-secondary-border-color, --t-secondary, #b3c2cc)};\n }\n\n :host([theme='tertiary']) & {\n --comp-tag-background: #{var-list(--tct-tag-tertiary-background, --t-tertiary, #e8f5fc)};\n --comp-tag-color: #{var-list(--tct-tag-tertiary-font-color, --t-tertiary-text, #141414)};\n --comp-tag-border-color: #{var-list(--tct-tag-tertiary-border-color, --t-tertiary, #e8f5fc)};\n }\n\n &:focus-visible {\n box-shadow: var-list(--tct-tag-focus-visible-box-shadow, --const-double-focus-ring);\n }\n}\n\n.tag {\n display: flex;\n align-items: center;\n width: max-content;\n gap: 6px;\n height: var-list(var-prefixer(tag-height), --app-scale-6x, 30px);\n line-height: var-list(var-prefixer(tag-height), --app-scale-6x, 30px);\n padding-inline: var-list(var-prefixer(tag-padding-inline), --app-scale-3x, 15px);\n\n ::slotted(q2-icon[slot='decorator']) {\n --tct-icon-size: 1em;\n --tct-icon-stroke-primary: var(--tct-tag-decorator-icon-primary-stroke);\n --tct-icon-stroke-secondary: var(--tct-tag-decorator-icon-secondary-stroke);\n }\n\n :host([theme=\"primary\"]) & ::slotted(q2-icon[slot='decorator']) {\n --tct-icon-stroke-primary: var(--tct-tag-primary-decorator-icon-primary-stroke);\n --tct-icon-stroke-secondary: var(--tct-tag-primary-decorator-icon-secondary-stroke);\n }\n\n ::slotted(q2-badge[slot='decorator']) {\n --tct-badge-height: 1em;\n --tct-badge-line-height: 30px;\n }\n}\n\n.tag.has-options {\n padding-right: 6px;\n}\n\n.btn-wrapper {\n --comp-tag-clickable-size: #{var-list(var-prefixer(tag-clickable-size), 44px)};\n --comp-tag-btn-offset: calc(calc(calc(var(--comp-tag-clickable-size) - var(--comp-tag-btn-size)) / 2) * -1);\n --comp-tag-background: #{var-list(var-prefixer(tag-background), --t-gray-13, #e6e6e6)};\n height: var(--comp-tag-clickable-size);\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n right: var(--comp-tag-btn-offset);\n top: var(--comp-tag-btn-offset);\n cursor: pointer;\n}\n\nbutton {\n height: var(--comp-tag-btn-size);\n stroke: var(--comp-tag-color);\n --tct-icon-stroke-primary: var(--comp-tag-color);\n cursor: pointer;\n border: 0;\n background: transparent;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n padding-right: 6px;\n --tct-icon-size: 18px;\n}\n","import {\n Component,\n State,\n Prop,\n h,\n ComponentInterface,\n Host,\n Listen,\n Method,\n Element,\n EventEmitter,\n Event,\n Fragment,\n} from '@stencil/core';\nimport { isEventFromElement, loc, overrideFocus, waitForNextPaint } from 'src/utils';\nimport mirrorEmit from '@/utils/mirror-emit';\nimport { shouldShowActionSheet, showActionSheetList } from 'src/utils/action-sheet';\n\n/**\n * @name Tag\n * @category Display\n * @summary Use for displaying metadata labels or categories on content.\n * @slot decorator - An optional slot that supports either an [Icon](https://tecton.q2developer.com/design-system/q2-icon) or [Badge](https://tecton.q2developer.com/design-system/q2-badge) to be displayed with the tag content.\n * This is **not** available when using [Multiple Options](https://tecton.q2developer.com/design-system/q2-tag#multiple-options).\n */\n@Component({ tag: 'q2-tag', shadow: true, styleUrl: 'q2-tag.scss' })\nexport class Q2Tag implements ComponentInterface {\n // #region Own Properties\n\n dropdownBtn: HTMLButtonElement;\n mutationObserver: MutationObserver;\n optionList: HTMLQ2OptionListElement;\n popoverElement: HTMLQ2PopoverElement;\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 optionCount: number;\n\n // #endregion\n // #region Public Property API\n\n /**\n * Instructs the component to use the action sheet workflow for displaying its options.\n *\n * For more information, see [Action Sheets](https://tecton.q2developer.com/guides/action-sheets/).\n */\n @Prop()\n hoist: boolean = !!window.Tecton?.useActionSheets;\n\n /**\n * The text that populates the label.\n * @localizable\n */\n @Prop({ reflect: true })\n label: string;\n\n /**\n * Determine whether the popover is open or closed.\n *\n * @readonly\n */\n @Prop({ reflect: true, mutable: true })\n open: boolean;\n\n /** Determines the label that is applied to the option list for accessibility purposes. */\n @Prop()\n optionListLabel: string = 'options';\n\n /** Aligns the popover dropdown to the left or right side of the input field. */\n @Prop({ mutable: true })\n popoverAlignment: 'left' | 'right' = 'right';\n\n /**\n * Force the direction of the popover dropdown when it opens.\n * If no value is passed, the component will auto-detect the direction based on available space.\n */\n @Prop()\n popoverDirection: 'up' | 'down';\n\n /**\n * Force the maximum height of the popover. This value will be interpreted as pixels.\n * If no value is passed, or the value exceeds available space, the component will auto-detect the maximum height based on available space.\n */\n @Prop()\n popoverMaxHeight: number;\n\n /** @deprecated */\n @Prop()\n popoverMinHeight: number;\n\n /** The color of the element. */\n @Prop({ reflect: true })\n theme: 'primary' | 'secondary' | 'tertiary';\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when a provided option is clicked.\n *\n * Requires at least one option to be provided.\n * @deprecated Use 'tctClick' instead\n */\n @Event()\n click: EventEmitter<{ value: string }>;\n\n /**\n * Emitted when a provided option is clicked.\n *\n * Requires at least one option to be provided.\n */\n @Event()\n tctClick: EventEmitter<{ value: string }>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback() {\n this.mutationObserver?.disconnect();\n this.mutationObserver = null;\n }\n\n componentWillLoad() {\n this.initMutationObserver();\n this.determineOptionCount();\n }\n\n componentDidLoad(): void {\n overrideFocus(this.hostElement);\n this.filterSlottedElements();\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n if (!this.optionCount) return;\n this.dropdownBtn.focus();\n }\n\n @Listen('popoverStateChanged')\n popoverStateHandler({ detail: { open } }: CustomEvent<{ open: boolean }>) {\n if (this.open !== open) this.open = open;\n if (open) return;\n this.optionList.setActiveElement(null);\n }\n\n // #endregion\n // #region Public Methods API\n\n /**\n * Emulates clicking the tag to close the popover when options are provided and the popover is open.\n * @testonly\n */\n @Method()\n async closePopover() {\n if (!this.optionCount || !this.open) return;\n this._togglePopover();\n }\n\n /**\n * Emulates clicking the tag to open the popover when options are provided and the popover is closed.\n * @testonly\n */\n @Method()\n async openPopover() {\n if (!this.optionCount || this.open) return;\n this._togglePopover();\n }\n\n /**\n * Emulates selecting an option matching the passed value.\n *\n * If the popover is closed, this will open it before selecting the option.\n *\n * If there are not options, or the passed value does not match any option's value, this method does nothing.\n * @testonly\n */\n @Method()\n async selectOption(value) {\n if (!this.optionCount) return;\n await this.openPopover();\n await waitForNextPaint();\n const allOptions = await this.optionList.getOptions();\n const desiredOption = allOptions.find(option => option.value === value);\n desiredOption?.click();\n }\n\n // #endregion\n // #region Local Methods\n\n _togglePopover() {\n const { dropdownBtn } = this;\n dropdownBtn?.click();\n dropdownBtn?.focus();\n dropdownBtn.dispatchEvent(new FocusEvent('focus'));\n }\n\n determineOptionCount = () => {\n const numberOfOptions = this.hostElement.querySelectorAll('q2-option').length;\n this.optionCount = numberOfOptions;\n };\n\n filterSlottedElements = () => {\n if (!('HTMLSlotElement' in window)) return;\n const slot: HTMLSlotElement = this.hostElement.shadowRoot.querySelector('slot[name=\"decorator\"]');\n const assignedElements = Array.from(slot?.assignedElements() || []);\n if (!assignedElements.length) return;\n\n const approvedElements = ['Q2-ICON', 'Q2-BADGE'];\n assignedElements.forEach((element, index) => {\n if (!approvedElements.includes(element.tagName) || index > 0) {\n element.remove();\n }\n });\n };\n\n handleButtonFocusout = async (event: FocusEvent) => {\n const relatedTarget = event.relatedTarget as HTMLElement;\n if (this.popoverElement?.contains(relatedTarget)) return;\n if (this.hostElement.contains(relatedTarget)) return;\n this.open = false;\n };\n\n handleChange = event => {\n event.stopPropagation();\n if (!this.optionCount) return;\n const { value } = event.detail;\n\n mirrorEmit(this, ['click', 'tctClick'], { value });\n };\n\n handleClick = async (event: MouseEvent) => {\n event.stopPropagation();\n this.popoverElement.controlElement = this.dropdownBtn;\n if (shouldShowActionSheet(this)) {\n const { value } = await showActionSheetList(this, event);\n this.dropdownBtn.focus();\n mirrorEmit(this, ['click', 'tctClick'], { value });\n } else {\n await this.popoverElement.toggle();\n }\n };\n\n handleKeydown = async (event: KeyboardEvent) => {\n const isTabMetaOrCtrl = event.metaKey || event.ctrlKey || event.key === 'Tab';\n if (isTabMetaOrCtrl) return;\n\n event.preventDefault();\n this.popoverElement.controlElement = this.dropdownBtn;\n if (shouldShowActionSheet(this, event)) {\n const { value } = await showActionSheetList(this, event);\n this.dropdownBtn.focus();\n mirrorEmit(this, ['click', 'tctClick'], { value });\n } else {\n this.optionList.handleExternalKeydown(event);\n }\n };\n\n handleWrapperClick = () => {\n this.dropdownBtn.focus();\n this.dropdownBtn.click();\n };\n\n initMutationObserver = () => {\n if (!('MutationObserver' in window)) return;\n const observer = new MutationObserver(this.onMutationObserved);\n observer.observe(this.hostElement, { childList: true, attributes: true });\n this.mutationObserver = observer;\n };\n\n onClickElsewhere = (event: CustomEvent) => {\n const target = event.target as HTMLClickElsewhereElement;\n if (target.localName === 'click-elsewhere') {\n event.stopPropagation();\n const { popoverElement } = this;\n if (!popoverElement) return;\n popoverElement.open = false;\n }\n };\n\n onMutationObserved = () => {\n this.determineOptionCount();\n this.filterSlottedElements();\n };\n\n // #endregion\n // #region Render Methods\n\n renderHiddenElement() {\n return (\n <div\n id=\"option-description\"\n class=\"sr\"\n aria-hidden=\"true\"\n >\n {loc('tecton.element.optionList.optionCount', [this.optionCount])}\n </div>\n );\n }\n\n render() {\n const { open } = this;\n const wrapperClassNames = ['tag'];\n if (this.optionCount) wrapperClassNames.push('has-options');\n const shouldShowOptions = this.optionCount > 0;\n\n return (\n <Host>\n <click-elsewhere onChange={this.onClickElsewhere}>\n {shouldShowOptions ? (\n <Fragment>\n <div\n class=\"btn-wrapper\"\n onClick={this.handleWrapperClick}\n >\n <button\n class=\"tag-wrapper\"\n ref={el => (this.dropdownBtn = el)}\n test-id=\"btn-control\"\n type=\"button\"\n role=\"combobox\"\n onClick={this.handleClick}\n onKeyDown={this.handleKeydown}\n onFocusout={this.handleButtonFocusout}\n aria-controls=\"option-list\"\n aria-expanded={open ? 'true' : 'false'}\n aria-describedby=\"option-description\"\n aria-label={loc(this.label)}\n >\n <div class={wrapperClassNames.join(' ')}>{loc(this.label)}</div>\n <q2-icon type=\"options\"></q2-icon>\n </button>\n </div>\n {this.renderHiddenElement()}\n </Fragment>\n ) : (\n <div\n class=\"tag-wrapper\"\n onClick={e => e.stopPropagation()}\n >\n <div class={wrapperClassNames.join(' ')}>\n <slot name=\"decorator\" />\n {loc(this.label)}\n </div>\n </div>\n )}\n\n {shouldShowOptions && (\n <q2-popover\n ref={el => (this.popoverElement = el)}\n controlElement={this.dropdownBtn}\n open={this.open}\n maxHeight={this.popoverMaxHeight}\n minHeight={this.popoverMinHeight}\n direction={this.popoverDirection}\n align={this.popoverAlignment}\n >\n <q2-option-list\n id=\"option-list\"\n ref={el => (this.optionList = el)}\n onChange={this.handleChange}\n type=\"menu\"\n align=\"right\"\n label={loc('tecton.element.optionList.label', [this.optionListLabel])}\n no-select\n >\n <slot />\n </q2-option-list>\n </q2-popover>\n )}\n </click-elsewhere>\n </Host>\n );\n }\n\n // #endregion\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"q2-context.entry.esm.js","sources":["src/components/q2-context/q2-context.scss?tag=q2-context&encapsulation=shadow","src/components/q2-context/q2-context.tsx"],"sourcesContent":["@import '../../styles/functions';\n\n* {\n box-sizing: border-box;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n:host {\n display: block;\n background: var-list(--tct-context-background, --t-tertiary, #e8f5fc);\n box-shadow: var-list(--tct-context-box-shadow, none);\n backdrop-filter: var-list(--tct-context-backdrop-filter, none);\n border-radius: var-list(--tct-context-border-radius, --app-border-radius-2, 8px);\n padding: var(--tct-context-padding, 10px);\n width: var(--tct-context-width);\n border-width: var-list(--tct-context-border-width, 0px);\n border-style: var-list(--tct-context-border-style, solid);\n border-color: var-list(--tct-context-border-color, transparent);\n}\n\n.context-wrapper {\n display: flex;\n flex-direction: column;\n gap: var(--tct-context-gap, 10px);\n}\n\n.context-item {\n --tct-item-bullet-padding-top: 0;\n --tct-item-action-align-items: start;\n --tct-item-action-icon-height: 24px;\n --tct-item-action-icon-width: 24px;\n --tct-item-action-icon-size: 24px;\n --tct-item-avatar-height: 44px;\n --tct-item-avatar-width: 44px;\n}\n\n.context-body {\n slot:not(:first-child)::before {\n content: ' ';\n }\n\n ::slotted(*) {\n display: inline;\n }\n}\n\n.separator {\n margin: var(--tct-context-separator-margin, 0);\n border-bottom: 1px solid var-list(--tct-context-separator-color, --t-gray-12, #d9d9d9);\n}\n\n.action-group {\n --tct-action-group-margin: 0;\n}\n\n::slotted(q2-dropdown) {\n // slotted affordance dropdown\n --tct-btn-icon-border-radius: var(--app-border-radius-1, 4px);\n}\n\n::slotted(q2-link) {\n // slotted action-group links\n --tct-link-border-radius: var(--app-border-radius-1, 4px);\n --tct-icon-stroke-primary: var(--t-primary, #6a4a9e);\n --tct-icon-stroke-secondary: var(--t-primary, #6a4a9e);\n}\n","import { hasSlotContent } from '@/utils';\nimport { Component, h, ComponentInterface, Element, Prop } from '@stencil/core';\n\n/**\n * @name Context\n * @category Display\n * @summary Use for displaying supplementary information or hints alongside content.\n * @slot decorator - An optional slot that supports either [Icon](https://tecton.q2developer.com/design-system/q2-icon/) or [Avatar](https://tecton.q2developer.com/design-system/q2-avatar/).\n * Use this as a visual aid for the context being provided.\n *\n * @slot header - A **required** slot that must be a single `<h4>` element. Use this to indicate the purpose or subject of the context being provided.\n *\n * @slot description - A **required** slot. Use this to provide the bulk of the context you wish to convey to the user.\n *\n * @slot affordance - An optional slot that supports either a [Button](https://tecton.q2developer.com/design-system/q2-btn/) or a [Dropdown](https://tecton.q2developer.com/design-system/q2-dropdown/).\n * Use this to provide an affordance such as a dismiss button, or a dropdown kebab menu for the user.\n *\n * @slot action-group - An optional slot that supports up to two elements compatible with [Action Group](https://tecton.q2developer.com/design-system/q2-action-group/).\n * Use this to provide the user with actions related to the context description.\n *\n * @slot footer - An optional slot to display additional HTML content.\n */\n@Component({ tag: 'q2-context', shadow: true, styleUrl: 'q2-context.scss' })\nexport class Q2Context implements ComponentInterface {\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region Public Property API\n\n /** Renders a horizontal line between the description and the action-group/footer slots. */\n @Prop({ reflect: true })\n separator: boolean;\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentDidRender(): void {\n this.handleActionGroupElements();\n this.handleAffordanceElement();\n this.handleDecoratorElement();\n this.handleHeaderElement();\n }\n\n // #endregion\n // #region Local Methods\n\n get hasActionGroupSlotContent() {\n return hasSlotContent(this.hostElement, 'action-group');\n }\n\n get hasAffordanceSlotContent() {\n return hasSlotContent(this.hostElement, 'affordance');\n }\n\n get hasDecoratorSlotContent() {\n return hasSlotContent(this.hostElement, 'decorator');\n }\n\n get hasFooterSlotContent() {\n return hasSlotContent(this.hostElement, 'footer');\n }\n\n handleActionGroupElements() {\n if (!('HTMLSlotElement' in window)) return;\n const actionGroupSlot: HTMLSlotElement = this.hostElement.shadowRoot.querySelector('slot[name=\"action-group\"]');\n const actionGroupElements = actionGroupSlot?.assignedElements({ flatten: true }) || [];\n actionGroupElements.forEach((el: HTMLElement, index) => {\n if (index > 1) {\n el.remove();\n console.warn('Q2-CONTEXT: Only two elements allowed in the action-group slot.');\n return;\n }\n\n if (el.tagName === 'Q2-BTN') {\n if (el.getAttribute('size') !== 'small') {\n el.setAttribute('size', 'small');\n console.warn('Q2-CONTEXT: action-group slot buttons must be size=\"small\".');\n }\n if (!['neutral', 'workflow-escape'].includes(el.getAttribute('intent'))) {\n el.setAttribute('intent', 'neutral');\n console.warn(\n 'Q2-CONTEXT: action-group slot buttons must have intent=\"neutral\" or intent=\"workflow-escape\".'\n );\n }\n }\n });\n }\n\n handleAffordanceElement() {\n if (!('HTMLSlotElement' in window)) return;\n const affordanceSlot: HTMLSlotElement = this.hostElement.shadowRoot.querySelector('slot[name=\"affordance\"]');\n const affordanceElements = affordanceSlot?.assignedElements({ flatten: true }) || [];\n affordanceElements.forEach((el: HTMLElement, index) => {\n if (!['Q2-BTN', 'Q2-DROPDOWN'].includes(el.tagName) || index > 0) {\n el.remove();\n console.warn('Q2-CONTEXT: Only one supported element is allowed in the affordance slot.');\n return;\n }\n\n if (el.tagName === 'Q2-BTN') {\n if (!el.getAttribute('label')) el.setAttribute('label', 'Dismiss');\n if (!el.getAttribute('hide-label')) el.setAttribute('hide-label', 'true');\n }\n\n if (el.tagName === 'Q2-DROPDOWN') {\n if (el.getAttribute('type') !== 'icon') el.setAttribute('type', 'icon');\n if (el.getAttribute('icon') !== 'options') el.setAttribute('icon', 'options');\n if (el.getAttribute('popover-alignment') !== 'right') el.setAttribute('popover-alignment', 'right');\n }\n });\n }\n\n handleDecoratorElement() {\n if (!('HTMLSlotElement' in window)) return;\n const decoratorSlot: HTMLSlotElement = this.hostElement.shadowRoot.querySelector('slot[name=\"decorator\"]');\n const decoratorElements = decoratorSlot?.assignedElements({ flatten: true }) || [];\n decoratorElements.forEach((el: HTMLElement, index) => {\n if (index > 0) {\n el.remove();\n console.warn('Q2-CONTEXT: Only one element is allowed in the decorator slot.');\n return;\n }\n\n if (!['Q2-ICON', 'Q2-AVATAR'].includes(el.tagName)) {\n el.remove();\n console.warn('Q2-CONTEXT: Only Q2-ICON or Q2-AVATAR are allowed in the decorator slot.');\n return;\n }\n });\n }\n\n handleHeaderElement() {\n if (!('HTMLSlotElement' in window)) return;\n const headerSlot: HTMLSlotElement = this.hostElement.shadowRoot.querySelector('slot[name=\"header\"]');\n const headerElements = headerSlot?.assignedElements({ flatten: true }) || [];\n headerElements.forEach((el: HTMLElement, index) => {\n if (index > 0) {\n el.remove();\n console.warn('Q2-CONTEXT: Only one element allowed in the header slot.');\n }\n\n if (el.tagName !== 'H4') {\n el.remove();\n console.warn('Q2-CONTEXT: Only H4 elements are allowed in the header slot.');\n }\n });\n }\n\n // #endregion\n // #region Render Methods\n\n render() {\n return (\n <div class=\"context-wrapper\">\n <q2-item class=\"context-item\">\n {this.hasDecoratorSlotContent && (\n <slot\n name=\"decorator\"\n slot=\"decorator\"\n />\n )}\n <div\n class=\"context-body\"\n slot=\"body\"\n >\n <slot name=\"header\" />\n <slot name=\"description\" />\n </div>\n {this.hasAffordanceSlotContent && (\n <slot\n name=\"affordance\"\n slot=\"action\"\n />\n )}\n </q2-item>\n {this.separator && (\n <div\n class=\"separator\"\n role=\"separator\"\n />\n )}\n {this.hasActionGroupSlotContent && (\n <q2-action-group\n class=\"action-group\"\n orientation=\"horizontal\"\n >\n <slot name=\"action-group\" />\n </q2-action-group>\n )}\n {this.hasFooterSlotContent && <slot name=\"footer\" />}\n </div>\n );\n }\n\n // #endregion\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"q2-context.entry.esm.js","sources":["src/components/q2-context/q2-context.scss?tag=q2-context&encapsulation=shadow","src/components/q2-context/q2-context.tsx"],"sourcesContent":["@import '../../styles/functions';\n@import './variables';\n\n* {\n box-sizing: border-box;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n:host {\n\n --tct-item-body-color: #{var-list(--tct-context-color, --tct-text)};\n\n display: block;\n background: var-list(--tct-context-background, --t-tertiary, #e8f5fc);\n box-shadow: var-list(--tct-context-box-shadow, none);\n backdrop-filter: var-list(--tct-context-backdrop-filter, none);\n border-radius: var-list(--tct-context-border-radius, --app-border-radius-2, 8px);\n padding: var(--tct-context-padding, 10px);\n width: var(--tct-context-width);\n border-width: var-list(--tct-context-border-width, 0px);\n border-style: var-list(--tct-context-border-style, solid);\n border-color: var-list(--tct-context-border-color, transparent);\n}\n\n.context-wrapper {\n display: flex;\n flex-direction: column;\n gap: var(--tct-context-gap, 10px);\n}\n\n.context-item {\n --tct-item-bullet-padding-top: 0;\n --tct-item-action-align-items: start;\n --tct-item-action-icon-height: 24px;\n --tct-item-action-icon-width: 24px;\n --tct-item-action-icon-size: 24px;\n --tct-item-avatar-height: 44px;\n --tct-item-avatar-width: 44px;\n}\n\n.context-body {\n slot:not(:first-child)::before {\n content: ' ';\n }\n\n ::slotted(*) {\n display: inline;\n }\n}\n\n.separator {\n margin: var(--tct-context-separator-margin, 0);\n border-bottom: 1px solid var-list(--tct-context-separator-color, --t-gray-12, #d9d9d9);\n}\n\n.action-group {\n --tct-action-group-margin: 0;\n}\n\n::slotted(q2-dropdown) {\n // slotted affordance dropdown\n --tct-btn-icon-border-radius: var(--app-border-radius-1, 4px);\n}\n\n::slotted(q2-link) {\n // slotted action-group links\n --tct-link-border-radius: var(--app-border-radius-1, 4px);\n --tct-icon-stroke-primary: var(--t-primary, #6a4a9e);\n --tct-icon-stroke-secondary: var(--t-primary, #6a4a9e);\n}\n","import { hasSlotContent } from '@/utils';\nimport { Component, h, ComponentInterface, Element, Prop } from '@stencil/core';\n\n/**\n * @name Context\n * @category Display\n * @summary Use for displaying supplementary information or hints alongside content.\n * @slot decorator - An optional slot that supports either [Icon](https://tecton.q2developer.com/design-system/q2-icon/) or [Avatar](https://tecton.q2developer.com/design-system/q2-avatar/).\n * Use this as a visual aid for the context being provided.\n *\n * @slot header - A **required** slot that must be a single `<h4>` element. Use this to indicate the purpose or subject of the context being provided.\n *\n * @slot description - A **required** slot. Use this to provide the bulk of the context you wish to convey to the user.\n *\n * @slot affordance - An optional slot that supports either a [Button](https://tecton.q2developer.com/design-system/q2-btn/) or a [Dropdown](https://tecton.q2developer.com/design-system/q2-dropdown/).\n * Use this to provide an affordance such as a dismiss button, or a dropdown kebab menu for the user.\n *\n * @slot action-group - An optional slot that supports up to two elements compatible with [Action Group](https://tecton.q2developer.com/design-system/q2-action-group/).\n * Use this to provide the user with actions related to the context description.\n *\n * @slot footer - An optional slot to display additional HTML content.\n */\n@Component({ tag: 'q2-context', shadow: true, styleUrl: 'q2-context.scss' })\nexport class Q2Context implements ComponentInterface {\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region Public Property API\n\n /** Renders a horizontal line between the description and the action-group/footer slots. */\n @Prop({ reflect: true })\n separator: boolean;\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentDidRender(): void {\n this.handleActionGroupElements();\n this.handleAffordanceElement();\n this.handleDecoratorElement();\n this.handleHeaderElement();\n }\n\n // #endregion\n // #region Local Methods\n\n get hasActionGroupSlotContent() {\n return hasSlotContent(this.hostElement, 'action-group');\n }\n\n get hasAffordanceSlotContent() {\n return hasSlotContent(this.hostElement, 'affordance');\n }\n\n get hasDecoratorSlotContent() {\n return hasSlotContent(this.hostElement, 'decorator');\n }\n\n get hasFooterSlotContent() {\n return hasSlotContent(this.hostElement, 'footer');\n }\n\n handleActionGroupElements() {\n if (!('HTMLSlotElement' in window)) return;\n const actionGroupSlot: HTMLSlotElement = this.hostElement.shadowRoot.querySelector('slot[name=\"action-group\"]');\n const actionGroupElements = actionGroupSlot?.assignedElements({ flatten: true }) || [];\n actionGroupElements.forEach((el: HTMLElement, index) => {\n if (index > 1) {\n el.remove();\n console.warn('Q2-CONTEXT: Only two elements allowed in the action-group slot.');\n return;\n }\n\n if (el.tagName === 'Q2-BTN') {\n if (el.getAttribute('size') !== 'small') {\n el.setAttribute('size', 'small');\n console.warn('Q2-CONTEXT: action-group slot buttons must be size=\"small\".');\n }\n if (!['neutral', 'workflow-escape'].includes(el.getAttribute('intent'))) {\n el.setAttribute('intent', 'neutral');\n console.warn(\n 'Q2-CONTEXT: action-group slot buttons must have intent=\"neutral\" or intent=\"workflow-escape\".'\n );\n }\n }\n });\n }\n\n handleAffordanceElement() {\n if (!('HTMLSlotElement' in window)) return;\n const affordanceSlot: HTMLSlotElement = this.hostElement.shadowRoot.querySelector('slot[name=\"affordance\"]');\n const affordanceElements = affordanceSlot?.assignedElements({ flatten: true }) || [];\n affordanceElements.forEach((el: HTMLElement, index) => {\n if (!['Q2-BTN', 'Q2-DROPDOWN'].includes(el.tagName) || index > 0) {\n el.remove();\n console.warn('Q2-CONTEXT: Only one supported element is allowed in the affordance slot.');\n return;\n }\n\n if (el.tagName === 'Q2-BTN') {\n if (!el.getAttribute('label')) el.setAttribute('label', 'Dismiss');\n if (!el.getAttribute('hide-label')) el.setAttribute('hide-label', 'true');\n }\n\n if (el.tagName === 'Q2-DROPDOWN') {\n if (el.getAttribute('type') !== 'icon') el.setAttribute('type', 'icon');\n if (el.getAttribute('icon') !== 'options') el.setAttribute('icon', 'options');\n if (el.getAttribute('popover-alignment') !== 'right') el.setAttribute('popover-alignment', 'right');\n }\n });\n }\n\n handleDecoratorElement() {\n if (!('HTMLSlotElement' in window)) return;\n const decoratorSlot: HTMLSlotElement = this.hostElement.shadowRoot.querySelector('slot[name=\"decorator\"]');\n const decoratorElements = decoratorSlot?.assignedElements({ flatten: true }) || [];\n decoratorElements.forEach((el: HTMLElement, index) => {\n if (index > 0) {\n el.remove();\n console.warn('Q2-CONTEXT: Only one element is allowed in the decorator slot.');\n return;\n }\n\n if (!['Q2-ICON', 'Q2-AVATAR'].includes(el.tagName)) {\n el.remove();\n console.warn('Q2-CONTEXT: Only Q2-ICON or Q2-AVATAR are allowed in the decorator slot.');\n return;\n }\n });\n }\n\n handleHeaderElement() {\n if (!('HTMLSlotElement' in window)) return;\n const headerSlot: HTMLSlotElement = this.hostElement.shadowRoot.querySelector('slot[name=\"header\"]');\n const headerElements = headerSlot?.assignedElements({ flatten: true }) || [];\n headerElements.forEach((el: HTMLElement, index) => {\n if (index > 0) {\n el.remove();\n console.warn('Q2-CONTEXT: Only one element allowed in the header slot.');\n }\n\n if (el.tagName !== 'H4') {\n el.remove();\n console.warn('Q2-CONTEXT: Only H4 elements are allowed in the header slot.');\n }\n });\n }\n\n // #endregion\n // #region Render Methods\n\n render() {\n return (\n <div class=\"context-wrapper\">\n <q2-item class=\"context-item\">\n {this.hasDecoratorSlotContent && (\n <slot\n name=\"decorator\"\n slot=\"decorator\"\n />\n )}\n <div\n class=\"context-body\"\n slot=\"body\"\n >\n <slot name=\"header\" />\n <slot name=\"description\" />\n </div>\n {this.hasAffordanceSlotContent && (\n <slot\n name=\"affordance\"\n slot=\"action\"\n />\n )}\n </q2-item>\n {this.separator && (\n <div\n class=\"separator\"\n role=\"separator\"\n />\n )}\n {this.hasActionGroupSlotContent && (\n <q2-action-group\n class=\"action-group\"\n orientation=\"horizontal\"\n >\n <slot name=\"action-group\" />\n </q2-action-group>\n )}\n {this.hasFooterSlotContent && <slot name=\"footer\" />}\n </div>\n );\n }\n\n // #endregion\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { r as t, h as e, g as o } from "./index-CGkHOjh1.js";
|
|
2
2
|
|
|
3
|
-
import { h as n } from "./index-
|
|
3
|
+
import { h as n } from "./index-C5gj0T_3.js";
|
|
4
4
|
|
|
5
|
-
const r = '*{box-sizing:border-box}:host([hidden]){display:none}:host{display:block;background:var(--tct-context-background, var(--t-tertiary, #e8f5fc));box-shadow:var(--tct-context-box-shadow, none);backdrop-filter:var(--tct-context-backdrop-filter, none);border-radius:var(--tct-context-border-radius, var(--app-border-radius-2, 8px));padding:var(--tct-context-padding, 10px);width:var(--tct-context-width);border-width:var(--tct-context-border-width, 0px);border-style:var(--tct-context-border-style, solid);border-color:var(--tct-context-border-color, transparent)}.context-wrapper{display:flex;flex-direction:column;gap:var(--tct-context-gap, 10px)}.context-item{--tct-item-bullet-padding-top:0;--tct-item-action-align-items:start;--tct-item-action-icon-height:24px;--tct-item-action-icon-width:24px;--tct-item-action-icon-size:24px;--tct-item-avatar-height:44px;--tct-item-avatar-width:44px}.context-body slot:not(:first-child)::before{content:" "}.context-body ::slotted(*){display:inline}.separator{margin:var(--tct-context-separator-margin, 0);border-bottom:1px solid var(--tct-context-separator-color, var(--t-gray-12, #d9d9d9))}.action-group{--tct-action-group-margin:0}::slotted(q2-dropdown){--tct-btn-icon-border-radius:var(--app-border-radius-1, 4px)}::slotted(q2-link){--tct-link-border-radius:var(--app-border-radius-1, 4px);--tct-icon-stroke-primary:var(--t-primary, #6a4a9e);--tct-icon-stroke-secondary:var(--t-primary, #6a4a9e)}';
|
|
5
|
+
const r = '*{box-sizing:border-box}:host([hidden]){display:none}:host{--tct-item-body-color:var(--tct-context-color, var(--tct-text));display:block;background:var(--tct-context-background, var(--t-tertiary, #e8f5fc));box-shadow:var(--tct-context-box-shadow, none);backdrop-filter:var(--tct-context-backdrop-filter, none);border-radius:var(--tct-context-border-radius, var(--app-border-radius-2, 8px));padding:var(--tct-context-padding, 10px);width:var(--tct-context-width);border-width:var(--tct-context-border-width, 0px);border-style:var(--tct-context-border-style, solid);border-color:var(--tct-context-border-color, transparent)}.context-wrapper{display:flex;flex-direction:column;gap:var(--tct-context-gap, 10px)}.context-item{--tct-item-bullet-padding-top:0;--tct-item-action-align-items:start;--tct-item-action-icon-height:24px;--tct-item-action-icon-width:24px;--tct-item-action-icon-size:24px;--tct-item-avatar-height:44px;--tct-item-avatar-width:44px}.context-body slot:not(:first-child)::before{content:" "}.context-body ::slotted(*){display:inline}.separator{margin:var(--tct-context-separator-margin, 0);border-bottom:1px solid var(--tct-context-separator-color, var(--t-gray-12, #d9d9d9))}.action-group{--tct-action-group-margin:0}::slotted(q2-dropdown){--tct-btn-icon-border-radius:var(--app-border-radius-1, 4px)}::slotted(q2-link){--tct-link-border-radius:var(--app-border-radius-1, 4px);--tct-icon-stroke-primary:var(--t-primary, #6a4a9e);--tct-icon-stroke-secondary:var(--t-primary, #6a4a9e)}';
|
|
6
6
|
|
|
7
7
|
const a = class {
|
|
8
8
|
constructor(e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["q2ContextCss","Q2Context","componentDidRender","this","handleActionGroupElements","handleAffordanceElement","handleDecoratorElement","handleHeaderElement","hasActionGroupSlotContent","hasSlotContent","hostElement","hasAffordanceSlotContent","hasDecoratorSlotContent","hasFooterSlotContent","window","actionGroupSlot","shadowRoot","querySelector","actionGroupElements","assignedElements","flatten","forEach","el","index","remove","console","warn","tagName","getAttribute","setAttribute","includes","affordanceSlot","affordanceElements","decoratorSlot","decoratorElements","headerSlot","headerElements","render","h","key","class","name","slot","separator","role","orientation"],"sources":["src/components/q2-context/q2-context.scss?tag=q2-context&encapsulation=shadow","src/components/q2-context/q2-context.tsx"],"sourcesContent":["@import '../../styles/functions';\n\n* {\n box-sizing: border-box;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n:host {\n display: block;\n background: var-list(--tct-context-background, --t-tertiary, #e8f5fc);\n box-shadow: var-list(--tct-context-box-shadow, none);\n backdrop-filter: var-list(--tct-context-backdrop-filter, none);\n border-radius: var-list(--tct-context-border-radius, --app-border-radius-2, 8px);\n padding: var(--tct-context-padding, 10px);\n width: var(--tct-context-width);\n border-width: var-list(--tct-context-border-width, 0px);\n border-style: var-list(--tct-context-border-style, solid);\n border-color: var-list(--tct-context-border-color, transparent);\n}\n\n.context-wrapper {\n display: flex;\n flex-direction: column;\n gap: var(--tct-context-gap, 10px);\n}\n\n.context-item {\n --tct-item-bullet-padding-top: 0;\n --tct-item-action-align-items: start;\n --tct-item-action-icon-height: 24px;\n --tct-item-action-icon-width: 24px;\n --tct-item-action-icon-size: 24px;\n --tct-item-avatar-height: 44px;\n --tct-item-avatar-width: 44px;\n}\n\n.context-body {\n slot:not(:first-child)::before {\n content: ' ';\n }\n\n ::slotted(*) {\n display: inline;\n }\n}\n\n.separator {\n margin: var(--tct-context-separator-margin, 0);\n border-bottom: 1px solid var-list(--tct-context-separator-color, --t-gray-12, #d9d9d9);\n}\n\n.action-group {\n --tct-action-group-margin: 0;\n}\n\n::slotted(q2-dropdown) {\n // slotted affordance dropdown\n --tct-btn-icon-border-radius: var(--app-border-radius-1, 4px);\n}\n\n::slotted(q2-link) {\n // slotted action-group links\n --tct-link-border-radius: var(--app-border-radius-1, 4px);\n --tct-icon-stroke-primary: var(--t-primary, #6a4a9e);\n --tct-icon-stroke-secondary: var(--t-primary, #6a4a9e);\n}\n","import { hasSlotContent } from '@/utils';\nimport { Component, h, ComponentInterface, Element, Prop } from '@stencil/core';\n\n/**\n * @name Context\n * @category Display\n * @summary Use for displaying supplementary information or hints alongside content.\n * @slot decorator - An optional slot that supports either [Icon](https://tecton.q2developer.com/design-system/q2-icon/) or [Avatar](https://tecton.q2developer.com/design-system/q2-avatar/).\n * Use this as a visual aid for the context being provided.\n *\n * @slot header - A **required** slot that must be a single `<h4>` element. Use this to indicate the purpose or subject of the context being provided.\n *\n * @slot description - A **required** slot. Use this to provide the bulk of the context you wish to convey to the user.\n *\n * @slot affordance - An optional slot that supports either a [Button](https://tecton.q2developer.com/design-system/q2-btn/) or a [Dropdown](https://tecton.q2developer.com/design-system/q2-dropdown/).\n * Use this to provide an affordance such as a dismiss button, or a dropdown kebab menu for the user.\n *\n * @slot action-group - An optional slot that supports up to two elements compatible with [Action Group](https://tecton.q2developer.com/design-system/q2-action-group/).\n * Use this to provide the user with actions related to the context description.\n *\n * @slot footer - An optional slot to display additional HTML content.\n */\n@Component({ tag: 'q2-context', shadow: true, styleUrl: 'q2-context.scss' })\nexport class Q2Context implements ComponentInterface {\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region Public Property API\n\n /** Renders a horizontal line between the description and the action-group/footer slots. */\n @Prop({ reflect: true })\n separator: boolean;\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentDidRender(): void {\n this.handleActionGroupElements();\n this.handleAffordanceElement();\n this.handleDecoratorElement();\n this.handleHeaderElement();\n }\n\n // #endregion\n // #region Local Methods\n\n get hasActionGroupSlotContent() {\n return hasSlotContent(this.hostElement, 'action-group');\n }\n\n get hasAffordanceSlotContent() {\n return hasSlotContent(this.hostElement, 'affordance');\n }\n\n get hasDecoratorSlotContent() {\n return hasSlotContent(this.hostElement, 'decorator');\n }\n\n get hasFooterSlotContent() {\n return hasSlotContent(this.hostElement, 'footer');\n }\n\n handleActionGroupElements() {\n if (!('HTMLSlotElement' in window)) return;\n const actionGroupSlot: HTMLSlotElement = this.hostElement.shadowRoot.querySelector('slot[name=\"action-group\"]');\n const actionGroupElements = actionGroupSlot?.assignedElements({ flatten: true }) || [];\n actionGroupElements.forEach((el: HTMLElement, index) => {\n if (index > 1) {\n el.remove();\n console.warn('Q2-CONTEXT: Only two elements allowed in the action-group slot.');\n return;\n }\n\n if (el.tagName === 'Q2-BTN') {\n if (el.getAttribute('size') !== 'small') {\n el.setAttribute('size', 'small');\n console.warn('Q2-CONTEXT: action-group slot buttons must be size=\"small\".');\n }\n if (!['neutral', 'workflow-escape'].includes(el.getAttribute('intent'))) {\n el.setAttribute('intent', 'neutral');\n console.warn(\n 'Q2-CONTEXT: action-group slot buttons must have intent=\"neutral\" or intent=\"workflow-escape\".'\n );\n }\n }\n });\n }\n\n handleAffordanceElement() {\n if (!('HTMLSlotElement' in window)) return;\n const affordanceSlot: HTMLSlotElement = this.hostElement.shadowRoot.querySelector('slot[name=\"affordance\"]');\n const affordanceElements = affordanceSlot?.assignedElements({ flatten: true }) || [];\n affordanceElements.forEach((el: HTMLElement, index) => {\n if (!['Q2-BTN', 'Q2-DROPDOWN'].includes(el.tagName) || index > 0) {\n el.remove();\n console.warn('Q2-CONTEXT: Only one supported element is allowed in the affordance slot.');\n return;\n }\n\n if (el.tagName === 'Q2-BTN') {\n if (!el.getAttribute('label')) el.setAttribute('label', 'Dismiss');\n if (!el.getAttribute('hide-label')) el.setAttribute('hide-label', 'true');\n }\n\n if (el.tagName === 'Q2-DROPDOWN') {\n if (el.getAttribute('type') !== 'icon') el.setAttribute('type', 'icon');\n if (el.getAttribute('icon') !== 'options') el.setAttribute('icon', 'options');\n if (el.getAttribute('popover-alignment') !== 'right') el.setAttribute('popover-alignment', 'right');\n }\n });\n }\n\n handleDecoratorElement() {\n if (!('HTMLSlotElement' in window)) return;\n const decoratorSlot: HTMLSlotElement = this.hostElement.shadowRoot.querySelector('slot[name=\"decorator\"]');\n const decoratorElements = decoratorSlot?.assignedElements({ flatten: true }) || [];\n decoratorElements.forEach((el: HTMLElement, index) => {\n if (index > 0) {\n el.remove();\n console.warn('Q2-CONTEXT: Only one element is allowed in the decorator slot.');\n return;\n }\n\n if (!['Q2-ICON', 'Q2-AVATAR'].includes(el.tagName)) {\n el.remove();\n console.warn('Q2-CONTEXT: Only Q2-ICON or Q2-AVATAR are allowed in the decorator slot.');\n return;\n }\n });\n }\n\n handleHeaderElement() {\n if (!('HTMLSlotElement' in window)) return;\n const headerSlot: HTMLSlotElement = this.hostElement.shadowRoot.querySelector('slot[name=\"header\"]');\n const headerElements = headerSlot?.assignedElements({ flatten: true }) || [];\n headerElements.forEach((el: HTMLElement, index) => {\n if (index > 0) {\n el.remove();\n console.warn('Q2-CONTEXT: Only one element allowed in the header slot.');\n }\n\n if (el.tagName !== 'H4') {\n el.remove();\n console.warn('Q2-CONTEXT: Only H4 elements are allowed in the header slot.');\n }\n });\n }\n\n // #endregion\n // #region Render Methods\n\n render() {\n return (\n <div class=\"context-wrapper\">\n <q2-item class=\"context-item\">\n {this.hasDecoratorSlotContent && (\n <slot\n name=\"decorator\"\n slot=\"decorator\"\n />\n )}\n <div\n class=\"context-body\"\n slot=\"body\"\n >\n <slot name=\"header\" />\n <slot name=\"description\" />\n </div>\n {this.hasAffordanceSlotContent && (\n <slot\n name=\"affordance\"\n slot=\"action\"\n />\n )}\n </q2-item>\n {this.separator && (\n <div\n class=\"separator\"\n role=\"separator\"\n />\n )}\n {this.hasActionGroupSlotContent && (\n <q2-action-group\n class=\"action-group\"\n orientation=\"horizontal\"\n >\n <slot name=\"action-group\" />\n </q2-action-group>\n )}\n {this.hasFooterSlotContent && <slot name=\"footer\" />}\n </div>\n );\n }\n\n // #endregion\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["q2ContextCss","Q2Context","componentDidRender","this","handleActionGroupElements","handleAffordanceElement","handleDecoratorElement","handleHeaderElement","hasActionGroupSlotContent","hasSlotContent","hostElement","hasAffordanceSlotContent","hasDecoratorSlotContent","hasFooterSlotContent","window","actionGroupSlot","shadowRoot","querySelector","actionGroupElements","assignedElements","flatten","forEach","el","index","remove","console","warn","tagName","getAttribute","setAttribute","includes","affordanceSlot","affordanceElements","decoratorSlot","decoratorElements","headerSlot","headerElements","render","h","key","class","name","slot","separator","role","orientation"],"sources":["src/components/q2-context/q2-context.scss?tag=q2-context&encapsulation=shadow","src/components/q2-context/q2-context.tsx"],"sourcesContent":["@import '../../styles/functions';\n@import './variables';\n\n* {\n box-sizing: border-box;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n:host {\n\n --tct-item-body-color: #{var-list(--tct-context-color, --tct-text)};\n\n display: block;\n background: var-list(--tct-context-background, --t-tertiary, #e8f5fc);\n box-shadow: var-list(--tct-context-box-shadow, none);\n backdrop-filter: var-list(--tct-context-backdrop-filter, none);\n border-radius: var-list(--tct-context-border-radius, --app-border-radius-2, 8px);\n padding: var(--tct-context-padding, 10px);\n width: var(--tct-context-width);\n border-width: var-list(--tct-context-border-width, 0px);\n border-style: var-list(--tct-context-border-style, solid);\n border-color: var-list(--tct-context-border-color, transparent);\n}\n\n.context-wrapper {\n display: flex;\n flex-direction: column;\n gap: var(--tct-context-gap, 10px);\n}\n\n.context-item {\n --tct-item-bullet-padding-top: 0;\n --tct-item-action-align-items: start;\n --tct-item-action-icon-height: 24px;\n --tct-item-action-icon-width: 24px;\n --tct-item-action-icon-size: 24px;\n --tct-item-avatar-height: 44px;\n --tct-item-avatar-width: 44px;\n}\n\n.context-body {\n slot:not(:first-child)::before {\n content: ' ';\n }\n\n ::slotted(*) {\n display: inline;\n }\n}\n\n.separator {\n margin: var(--tct-context-separator-margin, 0);\n border-bottom: 1px solid var-list(--tct-context-separator-color, --t-gray-12, #d9d9d9);\n}\n\n.action-group {\n --tct-action-group-margin: 0;\n}\n\n::slotted(q2-dropdown) {\n // slotted affordance dropdown\n --tct-btn-icon-border-radius: var(--app-border-radius-1, 4px);\n}\n\n::slotted(q2-link) {\n // slotted action-group links\n --tct-link-border-radius: var(--app-border-radius-1, 4px);\n --tct-icon-stroke-primary: var(--t-primary, #6a4a9e);\n --tct-icon-stroke-secondary: var(--t-primary, #6a4a9e);\n}\n","import { hasSlotContent } from '@/utils';\nimport { Component, h, ComponentInterface, Element, Prop } from '@stencil/core';\n\n/**\n * @name Context\n * @category Display\n * @summary Use for displaying supplementary information or hints alongside content.\n * @slot decorator - An optional slot that supports either [Icon](https://tecton.q2developer.com/design-system/q2-icon/) or [Avatar](https://tecton.q2developer.com/design-system/q2-avatar/).\n * Use this as a visual aid for the context being provided.\n *\n * @slot header - A **required** slot that must be a single `<h4>` element. Use this to indicate the purpose or subject of the context being provided.\n *\n * @slot description - A **required** slot. Use this to provide the bulk of the context you wish to convey to the user.\n *\n * @slot affordance - An optional slot that supports either a [Button](https://tecton.q2developer.com/design-system/q2-btn/) or a [Dropdown](https://tecton.q2developer.com/design-system/q2-dropdown/).\n * Use this to provide an affordance such as a dismiss button, or a dropdown kebab menu for the user.\n *\n * @slot action-group - An optional slot that supports up to two elements compatible with [Action Group](https://tecton.q2developer.com/design-system/q2-action-group/).\n * Use this to provide the user with actions related to the context description.\n *\n * @slot footer - An optional slot to display additional HTML content.\n */\n@Component({ tag: 'q2-context', shadow: true, styleUrl: 'q2-context.scss' })\nexport class Q2Context implements ComponentInterface {\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region Public Property API\n\n /** Renders a horizontal line between the description and the action-group/footer slots. */\n @Prop({ reflect: true })\n separator: boolean;\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentDidRender(): void {\n this.handleActionGroupElements();\n this.handleAffordanceElement();\n this.handleDecoratorElement();\n this.handleHeaderElement();\n }\n\n // #endregion\n // #region Local Methods\n\n get hasActionGroupSlotContent() {\n return hasSlotContent(this.hostElement, 'action-group');\n }\n\n get hasAffordanceSlotContent() {\n return hasSlotContent(this.hostElement, 'affordance');\n }\n\n get hasDecoratorSlotContent() {\n return hasSlotContent(this.hostElement, 'decorator');\n }\n\n get hasFooterSlotContent() {\n return hasSlotContent(this.hostElement, 'footer');\n }\n\n handleActionGroupElements() {\n if (!('HTMLSlotElement' in window)) return;\n const actionGroupSlot: HTMLSlotElement = this.hostElement.shadowRoot.querySelector('slot[name=\"action-group\"]');\n const actionGroupElements = actionGroupSlot?.assignedElements({ flatten: true }) || [];\n actionGroupElements.forEach((el: HTMLElement, index) => {\n if (index > 1) {\n el.remove();\n console.warn('Q2-CONTEXT: Only two elements allowed in the action-group slot.');\n return;\n }\n\n if (el.tagName === 'Q2-BTN') {\n if (el.getAttribute('size') !== 'small') {\n el.setAttribute('size', 'small');\n console.warn('Q2-CONTEXT: action-group slot buttons must be size=\"small\".');\n }\n if (!['neutral', 'workflow-escape'].includes(el.getAttribute('intent'))) {\n el.setAttribute('intent', 'neutral');\n console.warn(\n 'Q2-CONTEXT: action-group slot buttons must have intent=\"neutral\" or intent=\"workflow-escape\".'\n );\n }\n }\n });\n }\n\n handleAffordanceElement() {\n if (!('HTMLSlotElement' in window)) return;\n const affordanceSlot: HTMLSlotElement = this.hostElement.shadowRoot.querySelector('slot[name=\"affordance\"]');\n const affordanceElements = affordanceSlot?.assignedElements({ flatten: true }) || [];\n affordanceElements.forEach((el: HTMLElement, index) => {\n if (!['Q2-BTN', 'Q2-DROPDOWN'].includes(el.tagName) || index > 0) {\n el.remove();\n console.warn('Q2-CONTEXT: Only one supported element is allowed in the affordance slot.');\n return;\n }\n\n if (el.tagName === 'Q2-BTN') {\n if (!el.getAttribute('label')) el.setAttribute('label', 'Dismiss');\n if (!el.getAttribute('hide-label')) el.setAttribute('hide-label', 'true');\n }\n\n if (el.tagName === 'Q2-DROPDOWN') {\n if (el.getAttribute('type') !== 'icon') el.setAttribute('type', 'icon');\n if (el.getAttribute('icon') !== 'options') el.setAttribute('icon', 'options');\n if (el.getAttribute('popover-alignment') !== 'right') el.setAttribute('popover-alignment', 'right');\n }\n });\n }\n\n handleDecoratorElement() {\n if (!('HTMLSlotElement' in window)) return;\n const decoratorSlot: HTMLSlotElement = this.hostElement.shadowRoot.querySelector('slot[name=\"decorator\"]');\n const decoratorElements = decoratorSlot?.assignedElements({ flatten: true }) || [];\n decoratorElements.forEach((el: HTMLElement, index) => {\n if (index > 0) {\n el.remove();\n console.warn('Q2-CONTEXT: Only one element is allowed in the decorator slot.');\n return;\n }\n\n if (!['Q2-ICON', 'Q2-AVATAR'].includes(el.tagName)) {\n el.remove();\n console.warn('Q2-CONTEXT: Only Q2-ICON or Q2-AVATAR are allowed in the decorator slot.');\n return;\n }\n });\n }\n\n handleHeaderElement() {\n if (!('HTMLSlotElement' in window)) return;\n const headerSlot: HTMLSlotElement = this.hostElement.shadowRoot.querySelector('slot[name=\"header\"]');\n const headerElements = headerSlot?.assignedElements({ flatten: true }) || [];\n headerElements.forEach((el: HTMLElement, index) => {\n if (index > 0) {\n el.remove();\n console.warn('Q2-CONTEXT: Only one element allowed in the header slot.');\n }\n\n if (el.tagName !== 'H4') {\n el.remove();\n console.warn('Q2-CONTEXT: Only H4 elements are allowed in the header slot.');\n }\n });\n }\n\n // #endregion\n // #region Render Methods\n\n render() {\n return (\n <div class=\"context-wrapper\">\n <q2-item class=\"context-item\">\n {this.hasDecoratorSlotContent && (\n <slot\n name=\"decorator\"\n slot=\"decorator\"\n />\n )}\n <div\n class=\"context-body\"\n slot=\"body\"\n >\n <slot name=\"header\" />\n <slot name=\"description\" />\n </div>\n {this.hasAffordanceSlotContent && (\n <slot\n name=\"affordance\"\n slot=\"action\"\n />\n )}\n </q2-item>\n {this.separator && (\n <div\n class=\"separator\"\n role=\"separator\"\n />\n )}\n {this.hasActionGroupSlotContent && (\n <q2-action-group\n class=\"action-group\"\n orientation=\"horizontal\"\n >\n <slot name=\"action-group\" />\n </q2-action-group>\n )}\n {this.hasFooterSlotContent && <slot name=\"footer\" />}\n </div>\n );\n }\n\n // #endregion\n}\n"],"mappings":"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","ignoreList":[]}
|