@gov-design-system-ce/components 0.0.49 → 0.0.51
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/core.cjs.js +6 -2
- package/dist/cjs/core.cjs.js.map +1 -1
- package/dist/cjs/gov-accordion-item.cjs.entry.js +1 -1
- package/dist/cjs/gov-accordion.cjs.entry.js +1 -1
- package/dist/cjs/gov-alert.cjs.entry.js +1 -1
- package/dist/cjs/gov-app.cjs.entry.js +1 -1
- package/dist/cjs/gov-app.cjs.entry.js.map +1 -1
- package/dist/cjs/gov-attachments_3.cjs.entry.js +1 -1
- package/dist/cjs/gov-backdrop.cjs.entry.js +1 -1
- package/dist/cjs/gov-badge.cjs.entry.js +1 -1
- package/dist/cjs/gov-breadcrumbs.cjs.entry.js +1 -1
- package/dist/cjs/gov-button.cjs.entry.js +1 -1
- package/dist/cjs/gov-card.cjs.entry.js +1 -1
- package/dist/cjs/gov-container.cjs.entry.js +1 -1
- package/dist/cjs/gov-control-group.cjs.entry.js +1 -1
- package/dist/cjs/gov-cookiebar.cjs.entry.js +1 -1
- package/dist/cjs/gov-dropdown.cjs.entry.js +1 -1
- package/dist/cjs/gov-empty.cjs.entry.js +1 -1
- package/dist/cjs/gov-error-code.cjs.entry.js +1 -1
- package/dist/cjs/gov-form-autocomplete.cjs.entry.js +1 -1
- package/dist/cjs/gov-form-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/gov-form-control.cjs.entry.js +1 -1
- package/dist/cjs/gov-form-file.cjs.entry.js +1 -1
- package/dist/cjs/gov-form-group.cjs.entry.js +1 -1
- package/dist/cjs/gov-form-input.cjs.entry.js +1 -1
- package/dist/cjs/gov-form-label.cjs.entry.js +1 -1
- package/dist/cjs/gov-form-multi-select.cjs.entry.js +1 -1
- package/dist/cjs/gov-form-password-power.cjs.entry.js +1 -1
- package/dist/cjs/gov-form-radio.cjs.entry.js +1 -1
- package/dist/cjs/gov-form-search.cjs.entry.js +1 -1
- package/dist/cjs/gov-form-select.cjs.entry.js +1 -1
- package/dist/cjs/gov-form-switch.cjs.entry.js +1 -1
- package/dist/cjs/gov-grid-item.cjs.entry.js +1 -1
- package/dist/cjs/gov-grid.cjs.entry.js +1 -1
- package/dist/cjs/gov-icon.cjs.entry.js +2 -2
- package/dist/cjs/gov-layout-column.cjs.entry.js +1 -1
- package/dist/cjs/gov-layout.cjs.entry.js +1 -1
- package/dist/cjs/gov-loading.cjs.entry.js +1 -1
- package/dist/cjs/gov-message.cjs.entry.js +1 -1
- package/dist/cjs/gov-modal.cjs.entry.js +1 -1
- package/dist/cjs/gov-nav-item.cjs.entry.js +1 -1
- package/dist/cjs/gov-nav.cjs.entry.js +1 -1
- package/dist/cjs/gov-pagination.cjs.entry.js +1 -1
- package/dist/cjs/gov-prompt.cjs.entry.js +1 -1
- package/dist/cjs/gov-side-nav-item.cjs.entry.js +1 -1
- package/dist/cjs/gov-side-nav.cjs.entry.js +1 -1
- package/dist/cjs/gov-skeleton.cjs.entry.js +1 -1
- package/dist/cjs/gov-spacer.cjs.entry.js +1 -1
- package/dist/cjs/gov-statsbar-item.cjs.entry.js +1 -1
- package/dist/cjs/gov-statsbar.cjs.entry.js +1 -1
- package/dist/cjs/gov-stepper-item.cjs.entry.js +1 -1
- package/dist/cjs/gov-stepper.cjs.entry.js +1 -1
- package/dist/cjs/gov-tabs-item.cjs.entry.js +1 -1
- package/dist/cjs/gov-tabs.cjs.entry.js +1 -1
- package/dist/cjs/gov-tabs.cjs.entry.js.map +1 -1
- package/dist/cjs/gov-tile.cjs.entry.js +1 -1
- package/dist/cjs/gov-tiles.cjs.entry.js +1 -1
- package/dist/cjs/gov-toast.cjs.entry.js +1 -1
- package/dist/cjs/gov-tooltip-content.cjs.entry.js +1 -1
- package/dist/cjs/gov-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/gov-wizzard-item.cjs.entry.js +1 -1
- package/dist/cjs/gov-wizzard.cjs.entry.js +1 -1
- package/dist/cjs/{index-7ba43a19.js → index-83edd4fe.js} +305 -52
- package/dist/cjs/index-83edd4fe.js.map +1 -0
- package/dist/cjs/loader.cjs.js +3 -11
- package/dist/cjs/loader.cjs.js.map +1 -1
- package/dist/collection/collection-manifest.json +62 -62
- package/dist/collection/components/gov-accordion/constants.js +3 -3
- package/dist/collection/components/gov-accordion/gov-accordion-item.js +14 -7
- package/dist/collection/components/gov-accordion/gov-accordion-item.js.map +1 -1
- package/dist/collection/components/gov-accordion/gov-accordion.js +16 -12
- package/dist/collection/components/gov-accordion/gov-accordion.js.map +1 -1
- package/dist/collection/components/gov-alert/constants.js +2 -2
- package/dist/collection/components/gov-alert/gov-alert.js +6 -3
- package/dist/collection/components/gov-alert/gov-alert.js.map +1 -1
- package/dist/collection/components/gov-app/gov-app.js +37 -37
- package/dist/collection/components/gov-app/gov-app.js.map +1 -1
- package/dist/collection/components/gov-attachments/gov-attachments-item.js +10 -8
- package/dist/collection/components/gov-attachments/gov-attachments-item.js.map +1 -1
- package/dist/collection/components/gov-attachments/gov-attachments.js +8 -7
- package/dist/collection/components/gov-attachments/gov-attachments.js.map +1 -1
- package/dist/collection/components/gov-backdrop/gov-backdrop.js +10 -8
- package/dist/collection/components/gov-backdrop/gov-backdrop.js.map +1 -1
- package/dist/collection/components/gov-badge/gov-badge.js +18 -9
- package/dist/collection/components/gov-badge/gov-badge.js.map +1 -1
- package/dist/collection/components/gov-breadcrumbs/gov-breadcrumbs.js +10 -8
- package/dist/collection/components/gov-breadcrumbs/gov-breadcrumbs.js.map +1 -1
- package/dist/collection/components/gov-button/default/constants.js +3 -3
- package/dist/collection/components/gov-button/default/gov-button.js +26 -13
- package/dist/collection/components/gov-button/default/gov-button.js.map +1 -1
- package/dist/collection/components/gov-button/dropdown/gov-dropdown.js +8 -4
- package/dist/collection/components/gov-button/dropdown/gov-dropdown.js.map +1 -1
- package/dist/collection/components/gov-card/gov-card.js +16 -12
- package/dist/collection/components/gov-card/gov-card.js.map +1 -1
- package/dist/collection/components/gov-container/gov-container.js +7 -5
- package/dist/collection/components/gov-container/gov-container.js.map +1 -1
- package/dist/collection/components/gov-control-group/constants.js +2 -2
- package/dist/collection/components/gov-control-group/gov-control-group.js +2 -1
- package/dist/collection/components/gov-control-group/gov-control-group.js.map +1 -1
- package/dist/collection/components/gov-cookiebar/gov-cookiebar.js +3 -3
- package/dist/collection/components/gov-empty/gov-empty.js +3 -3
- package/dist/collection/components/gov-error-code/gov-error-code.js +3 -3
- package/dist/collection/components/gov-form/autocomplete/constants.js +3 -3
- package/dist/collection/components/gov-form/autocomplete/gov-form-autocomplete.js +30 -15
- package/dist/collection/components/gov-form/autocomplete/gov-form-autocomplete.js.map +1 -1
- package/dist/collection/components/gov-form/checkbox/constants.js +2 -2
- package/dist/collection/components/gov-form/checkbox/gov-form-checkbox.js +14 -7
- package/dist/collection/components/gov-form/checkbox/gov-form-checkbox.js.map +1 -1
- package/dist/collection/components/gov-form/control/constants.js +2 -2
- package/dist/collection/components/gov-form/control/gov-form-control.js +4 -2
- package/dist/collection/components/gov-form/control/gov-form-control.js.map +1 -1
- package/dist/collection/components/gov-form/file/gov-form-file.js +20 -10
- package/dist/collection/components/gov-form/file/gov-form-file.js.map +1 -1
- package/dist/collection/components/gov-form/group/gov-form-group.js +2 -1
- package/dist/collection/components/gov-form/group/gov-form-group.js.map +1 -1
- package/dist/collection/components/gov-form/input/constants.js +3 -3
- package/dist/collection/components/gov-form/input/gov-form-input.js +40 -24
- package/dist/collection/components/gov-form/input/gov-form-input.js.map +1 -1
- package/dist/collection/components/gov-form/label/gov-form-label.js +6 -4
- package/dist/collection/components/gov-form/label/gov-form-label.js.map +1 -1
- package/dist/collection/components/gov-form/message/constants.js +2 -2
- package/dist/collection/components/gov-form/message/gov-form-message.js +9 -7
- package/dist/collection/components/gov-form/message/gov-form-message.js.map +1 -1
- package/dist/collection/components/gov-form/multiselect/constants.js +3 -3
- package/dist/collection/components/gov-form/multiselect/gov-form-multi-select.js +22 -11
- package/dist/collection/components/gov-form/multiselect/gov-form-multi-select.js.map +1 -1
- package/dist/collection/components/gov-form/password-power/gov-form-password-power.js +2 -2
- package/dist/collection/components/gov-form/radio/constants.js +2 -2
- package/dist/collection/components/gov-form/radio/gov-form-radio.js +14 -7
- package/dist/collection/components/gov-form/radio/gov-form-radio.js.map +1 -1
- package/dist/collection/components/gov-form/search/constants.js +2 -2
- package/dist/collection/components/gov-form/search/gov-form-search.js +4 -3
- package/dist/collection/components/gov-form/search/gov-form-search.js.map +1 -1
- package/dist/collection/components/gov-form/select/constants.js +3 -3
- package/dist/collection/components/gov-form/select/gov-form-select.js +22 -11
- package/dist/collection/components/gov-form/select/gov-form-select.js.map +1 -1
- package/dist/collection/components/gov-form/switch/constants.js +2 -2
- package/dist/collection/components/gov-form/switch/gov-form-switch.js +14 -7
- package/dist/collection/components/gov-form/switch/gov-form-switch.js.map +1 -1
- package/dist/collection/components/gov-grid/gov-grid-item.css +0 -44
- package/dist/collection/components/gov-grid/gov-grid-item.js +3 -3
- package/dist/collection/components/gov-grid/gov-grid.js +3 -3
- package/dist/collection/components/gov-icon/gov-icon.js +6 -5
- package/dist/collection/components/gov-icon/gov-icon.js.map +1 -1
- package/dist/collection/components/gov-layout/gov-layout-column.js +3 -3
- package/dist/collection/components/gov-layout/gov-layout.js +7 -5
- package/dist/collection/components/gov-layout/gov-layout.js.map +1 -1
- package/dist/collection/components/gov-loading/loading/gov-loading.js +3 -3
- package/dist/collection/components/gov-loading/skeleton/gov-skeleton.js +8 -4
- package/dist/collection/components/gov-loading/skeleton/gov-skeleton.js.map +1 -1
- package/dist/collection/components/gov-message/constants.js +2 -2
- package/dist/collection/components/gov-message/gov-message.js +7 -6
- package/dist/collection/components/gov-message/gov-message.js.map +1 -1
- package/dist/collection/components/gov-modal/gov-modal.js +8 -4
- package/dist/collection/components/gov-modal/gov-modal.js.map +1 -1
- package/dist/collection/components/gov-nav/gov-nav-item.js +3 -3
- package/dist/collection/components/gov-nav/gov-nav.js +7 -6
- package/dist/collection/components/gov-nav/gov-nav.js.map +1 -1
- package/dist/collection/components/gov-pagination/constants.js +3 -3
- package/dist/collection/components/gov-pagination/gov-pagination.js +10 -5
- package/dist/collection/components/gov-pagination/gov-pagination.js.map +1 -1
- package/dist/collection/components/gov-promp/gov-prompt.js +8 -4
- package/dist/collection/components/gov-promp/gov-prompt.js.map +1 -1
- package/dist/collection/components/gov-side-nav/gov-side-nav-item.js +15 -10
- package/dist/collection/components/gov-side-nav/gov-side-nav-item.js.map +1 -1
- package/dist/collection/components/gov-side-nav/gov-side-nav.js +10 -8
- package/dist/collection/components/gov-side-nav/gov-side-nav.js.map +1 -1
- package/dist/collection/components/gov-spacer/constants.js +2 -2
- package/dist/collection/components/gov-spacer/gov-spacer.js +8 -6
- package/dist/collection/components/gov-spacer/gov-spacer.js.map +1 -1
- package/dist/collection/components/gov-statsbar/constants.js +2 -2
- package/dist/collection/components/gov-statsbar/gov-statsbar-item.js +6 -5
- package/dist/collection/components/gov-statsbar/gov-statsbar-item.js.map +1 -1
- package/dist/collection/components/gov-statsbar/gov-statsbar.js +8 -6
- package/dist/collection/components/gov-statsbar/gov-statsbar.js.map +1 -1
- package/dist/collection/components/gov-stepper/constants.js +3 -3
- package/dist/collection/components/gov-stepper/gov-stepper-item.js +14 -10
- package/dist/collection/components/gov-stepper/gov-stepper-item.js.map +1 -1
- package/dist/collection/components/gov-stepper/gov-stepper.js +8 -6
- package/dist/collection/components/gov-stepper/gov-stepper.js.map +1 -1
- package/dist/collection/components/gov-tabs/constants.js +2 -2
- package/dist/collection/components/gov-tabs/gov-tabs-item.js +10 -7
- package/dist/collection/components/gov-tabs/gov-tabs-item.js.map +1 -1
- package/dist/collection/components/gov-tabs/gov-tabs.js +29 -19
- package/dist/collection/components/gov-tabs/gov-tabs.js.map +1 -1
- package/dist/collection/components/gov-tile/container/gov-tiles.js +4 -4
- package/dist/collection/components/gov-tile/gov-tile.js +6 -3
- package/dist/collection/components/gov-tile/gov-tile.js.map +1 -1
- package/dist/collection/components/gov-toast/constants.js +2 -2
- package/dist/collection/components/gov-toast/gov-toast.js +11 -8
- package/dist/collection/components/gov-toast/gov-toast.js.map +1 -1
- package/dist/collection/components/gov-tooltip/constants.js +3 -3
- package/dist/collection/components/gov-tooltip/gov-tooltip-content.js +3 -3
- package/dist/collection/components/gov-tooltip/gov-tooltip.js +15 -10
- package/dist/collection/components/gov-tooltip/gov-tooltip.js.map +1 -1
- package/dist/collection/components/gov-wizzard/constants.js +3 -3
- package/dist/collection/components/gov-wizzard/gov-wizzard-item.js +14 -7
- package/dist/collection/components/gov-wizzard/gov-wizzard-item.js.map +1 -1
- package/dist/collection/components/gov-wizzard/gov-wizzard.js +6 -3
- package/dist/collection/components/gov-wizzard/gov-wizzard.js.map +1 -1
- package/dist/collection/helpers/Dom/form.js +9 -9
- package/dist/collection/helpers/Dom/win.js +1 -1
- package/dist/collection/helpers/StorybookDocsTemplate.js +3 -3
- package/dist/collection/helpers/Validate/props.js +1 -1
- package/dist/collection/helpers/Validate/wcag.js +3 -3
- package/dist/collection/utils/ds.utils.js +1 -1
- package/dist/collection/utils/icon.utils.js +3 -3
- package/dist/components/gov-accordion-item.js +1 -156
- package/dist/components/gov-accordion-item.js.map +1 -1
- package/dist/components/gov-accordion.js +1 -94
- package/dist/components/gov-accordion.js.map +1 -1
- package/dist/components/gov-alert.js +1 -122
- package/dist/components/gov-alert.js.map +1 -1
- package/dist/components/gov-app.js +1 -8924
- package/dist/components/gov-app.js.map +1 -1
- package/dist/components/gov-attachments-item.js +1 -7
- package/dist/components/gov-attachments-item.js.map +1 -1
- package/dist/components/gov-attachments.js +1 -7
- package/dist/components/gov-attachments.js.map +1 -1
- package/dist/components/gov-backdrop.js +1 -7
- package/dist/components/gov-backdrop.js.map +1 -1
- package/dist/components/gov-badge.js +1 -7
- package/dist/components/gov-badge.js.map +1 -1
- package/dist/components/gov-breadcrumbs.js +1 -67
- package/dist/components/gov-breadcrumbs.js.map +1 -1
- package/dist/components/gov-button.js +1 -7
- package/dist/components/gov-button.js.map +1 -1
- package/dist/components/gov-card.js +1 -143
- package/dist/components/gov-card.js.map +1 -1
- package/dist/components/gov-container.js +1 -51
- package/dist/components/gov-container.js.map +1 -1
- package/dist/components/gov-control-group.js +1 -57
- package/dist/components/gov-control-group.js.map +1 -1
- package/dist/components/gov-cookiebar.js +1 -46
- package/dist/components/gov-cookiebar.js.map +1 -1
- package/dist/components/gov-dropdown.js +1 -150
- package/dist/components/gov-dropdown.js.map +1 -1
- package/dist/components/gov-empty.js +1 -44
- package/dist/components/gov-empty.js.map +1 -1
- package/dist/components/gov-error-code.js +1 -44
- package/dist/components/gov-error-code.js.map +1 -1
- package/dist/components/gov-form-autocomplete.js +1 -7
- package/dist/components/gov-form-autocomplete.js.map +1 -1
- package/dist/components/gov-form-checkbox.js +1 -159
- package/dist/components/gov-form-checkbox.js.map +1 -1
- package/dist/components/gov-form-control.js +1 -139
- package/dist/components/gov-form-control.js.map +1 -1
- package/dist/components/gov-form-file.js +1 -288
- package/dist/components/gov-form-file.js.map +1 -1
- package/dist/components/gov-form-group.js +1 -57
- package/dist/components/gov-form-group.js.map +1 -1
- package/dist/components/gov-form-input.js +1 -7
- package/dist/components/gov-form-input.js.map +1 -1
- package/dist/components/gov-form-label.js +1 -46
- package/dist/components/gov-form-label.js.map +1 -1
- package/dist/components/gov-form-message.js +1 -7
- package/dist/components/gov-form-message.js.map +1 -1
- package/dist/components/gov-form-multi-select.js +1 -270
- package/dist/components/gov-form-multi-select.js.map +1 -1
- package/dist/components/gov-form-password-power.js +1 -43
- package/dist/components/gov-form-password-power.js.map +1 -1
- package/dist/components/gov-form-radio.js +1 -153
- package/dist/components/gov-form-radio.js.map +1 -1
- package/dist/components/gov-form-search.js +1 -47
- package/dist/components/gov-form-search.js.map +1 -1
- package/dist/components/gov-form-select.js +1 -7
- package/dist/components/gov-form-select.js.map +1 -1
- package/dist/components/gov-form-switch.js +1 -153
- package/dist/components/gov-form-switch.js.map +1 -1
- package/dist/components/gov-grid-item.js +1 -49
- package/dist/components/gov-grid-item.js.map +1 -1
- package/dist/components/gov-grid.js +1 -44
- package/dist/components/gov-grid.js.map +1 -1
- package/dist/components/gov-icon.js +1 -7
- package/dist/components/gov-icon.js.map +1 -1
- package/dist/components/gov-layout-column.js +1 -38
- package/dist/components/gov-layout-column.js.map +1 -1
- package/dist/components/gov-layout.js +1 -51
- package/dist/components/gov-layout.js.map +1 -1
- package/dist/components/gov-loading.js +1 -58
- package/dist/components/gov-loading.js.map +1 -1
- package/dist/components/gov-message.js +1 -57
- package/dist/components/gov-message.js.map +1 -1
- package/dist/components/gov-modal.js +1 -146
- package/dist/components/gov-modal.js.map +1 -1
- package/dist/components/gov-nav-item.js +1 -53
- package/dist/components/gov-nav-item.js.map +1 -1
- package/dist/components/gov-nav.js +1 -57
- package/dist/components/gov-nav.js.map +1 -1
- package/dist/components/gov-pagination.js +1 -270
- package/dist/components/gov-pagination.js.map +1 -1
- package/dist/components/gov-prompt.js +1 -146
- package/dist/components/gov-prompt.js.map +1 -1
- package/dist/components/gov-side-nav-item.js +1 -124
- package/dist/components/gov-side-nav-item.js.map +1 -1
- package/dist/components/gov-side-nav.js +1 -73
- package/dist/components/gov-side-nav.js.map +1 -1
- package/dist/components/gov-skeleton.js +1 -137
- package/dist/components/gov-skeleton.js.map +1 -1
- package/dist/components/gov-spacer.js +1 -72
- package/dist/components/gov-spacer.js.map +1 -1
- package/dist/components/gov-statsbar-item.js +1 -51
- package/dist/components/gov-statsbar-item.js.map +1 -1
- package/dist/components/gov-statsbar.js +1 -65
- package/dist/components/gov-statsbar.js.map +1 -1
- package/dist/components/gov-stepper-item.js +1 -96
- package/dist/components/gov-stepper-item.js.map +1 -1
- package/dist/components/gov-stepper.js +1 -61
- package/dist/components/gov-stepper.js.map +1 -1
- package/dist/components/gov-tabs-item.js +1 -73
- package/dist/components/gov-tabs-item.js.map +1 -1
- package/dist/components/gov-tabs.js +1 -232
- package/dist/components/gov-tabs.js.map +1 -1
- package/dist/components/gov-tile.js +1 -80
- package/dist/components/gov-tile.js.map +1 -1
- package/dist/components/gov-tiles.js +1 -49
- package/dist/components/gov-tiles.js.map +1 -1
- package/dist/components/gov-toast.js +1 -136
- package/dist/components/gov-toast.js.map +1 -1
- package/dist/components/gov-tooltip-content.js +1 -54
- package/dist/components/gov-tooltip-content.js.map +1 -1
- package/dist/components/gov-tooltip.js +1 -176
- package/dist/components/gov-tooltip.js.map +1 -1
- package/dist/components/gov-wizzard-item.js +1 -144
- package/dist/components/gov-wizzard-item.js.map +1 -1
- package/dist/components/gov-wizzard.js +1 -83
- package/dist/components/gov-wizzard.js.map +1 -1
- package/dist/components/index.d.ts +14 -62
- package/dist/components/index.js +1 -62
- package/dist/components/index.js.map +1 -1
- package/dist/components/p-03990da5.js +2 -0
- package/dist/components/p-03990da5.js.map +1 -0
- package/dist/components/p-0f5e2b0a.js +2 -0
- package/dist/components/p-0f5e2b0a.js.map +1 -0
- package/dist/components/p-1020a160.js +2 -0
- package/dist/components/p-1020a160.js.map +1 -0
- package/dist/components/p-1026d931.js +2 -0
- package/dist/components/p-1026d931.js.map +1 -0
- package/dist/components/p-17c1ffc1.js +2 -0
- package/dist/components/p-17c1ffc1.js.map +1 -0
- package/dist/components/p-1b4f2520.js +2 -0
- package/dist/components/p-1b4f2520.js.map +1 -0
- package/dist/components/p-1c1d0bbe.js +2 -0
- package/dist/components/p-1c1d0bbe.js.map +1 -0
- package/dist/components/p-24636c53.js +2 -0
- package/dist/components/p-24636c53.js.map +1 -0
- package/dist/components/p-26acf964.js +2 -0
- package/dist/components/p-26acf964.js.map +1 -0
- package/dist/components/p-34152b51.js +2 -0
- package/dist/components/p-34152b51.js.map +1 -0
- package/dist/components/p-3464136c.js +2 -0
- package/dist/components/p-3464136c.js.map +1 -0
- package/dist/components/p-36be8f6e.js +2 -0
- package/dist/components/p-36be8f6e.js.map +1 -0
- package/dist/components/p-386409dc.js +2 -0
- package/dist/components/p-386409dc.js.map +1 -0
- package/dist/components/p-3dbf7f49.js +2 -0
- package/dist/components/p-3dbf7f49.js.map +1 -0
- package/dist/components/p-3f37ddb6.js +2 -0
- package/dist/components/p-3f37ddb6.js.map +1 -0
- package/dist/components/p-404f469e.js +2 -0
- package/dist/components/p-404f469e.js.map +1 -0
- package/dist/components/p-55500e5a.js +2 -0
- package/dist/components/p-55500e5a.js.map +1 -0
- package/dist/components/p-561fa17b.js +2 -0
- package/dist/components/p-561fa17b.js.map +1 -0
- package/dist/components/p-5bf5a42e.js +2 -0
- package/dist/components/p-5bf5a42e.js.map +1 -0
- package/dist/components/p-5defdc5e.js +2 -0
- package/dist/components/p-5defdc5e.js.map +1 -0
- package/dist/components/p-6278531b.js +2 -0
- package/dist/components/p-6278531b.js.map +1 -0
- package/dist/components/p-64ced668.js +2 -0
- package/dist/components/p-64ced668.js.map +1 -0
- package/dist/components/p-80b2c231.js +2 -0
- package/dist/components/{gov-form-select2.js.map → p-80b2c231.js.map} +1 -1
- package/dist/components/p-80c0109d.js +2 -0
- package/dist/components/p-80c0109d.js.map +1 -0
- package/dist/components/p-80e30702.js +2 -0
- package/dist/components/{constants13.js.map → p-80e30702.js.map} +1 -1
- package/dist/components/p-9144dde1.js +2 -0
- package/dist/components/p-9144dde1.js.map +1 -0
- package/dist/components/p-9da782bf.js +2 -0
- package/dist/components/p-9da782bf.js.map +1 -0
- package/dist/components/p-a5d69694.js +2 -0
- package/dist/components/p-a5d69694.js.map +1 -0
- package/dist/components/p-a6d14a47.js +2 -0
- package/dist/components/p-a6d14a47.js.map +1 -0
- package/dist/components/p-b72a7bed.js +2 -0
- package/dist/components/p-b72a7bed.js.map +1 -0
- package/dist/components/p-be4aab0e.js +2 -0
- package/dist/components/p-be4aab0e.js.map +1 -0
- package/dist/components/p-ccc44ac1.js +2 -0
- package/dist/components/p-ccc44ac1.js.map +1 -0
- package/dist/components/p-cd440c95.js +2 -0
- package/dist/components/p-cd440c95.js.map +1 -0
- package/dist/components/p-d305407a.js +2 -0
- package/dist/components/p-d305407a.js.map +1 -0
- package/dist/components/p-ec26407a.js +2 -0
- package/dist/components/p-ec26407a.js.map +1 -0
- package/dist/components/p-ff7365ae.js +2 -0
- package/dist/components/p-ff7365ae.js.map +1 -0
- package/dist/components/p-ffb7495c.js +2 -0
- package/dist/components/p-ffb7495c.js.map +1 -0
- package/dist/core/core.esm.js +1 -1
- package/dist/core/core.esm.js.map +1 -1
- package/dist/core/index.esm.js.map +1 -1
- package/dist/core/{p-f2d22b62.entry.js → p-02c3a3fd.entry.js} +2 -2
- package/dist/core/p-02c3a3fd.entry.js.map +1 -0
- package/dist/core/p-03990da5.js.map +1 -1
- package/dist/core/{p-24ba5c7b.entry.js → p-041d30b1.entry.js} +2 -2
- package/dist/core/p-041d30b1.entry.js.map +1 -0
- package/dist/core/{p-818bb0f5.entry.js → p-0eadfb3e.entry.js} +2 -2
- package/dist/core/p-0eadfb3e.entry.js.map +1 -0
- package/dist/core/{p-88c10472.entry.js → p-0eb11cfc.entry.js} +2 -2
- package/dist/core/p-0eb11cfc.entry.js.map +1 -0
- package/dist/core/p-0f5e2b0a.js.map +1 -1
- package/dist/core/p-1020a160.js.map +1 -1
- package/dist/core/p-10cbc3fe.js +3 -0
- package/dist/core/p-10cbc3fe.js.map +1 -0
- package/dist/core/{p-c0c9b349.entry.js → p-11be550d.entry.js} +2 -2
- package/dist/core/p-11be550d.entry.js.map +1 -0
- package/dist/core/{p-024fa230.entry.js → p-1ae47d62.entry.js} +2 -2
- package/dist/core/p-1ae47d62.entry.js.map +1 -0
- package/dist/core/p-1c1d0bbe.js.map +1 -1
- package/dist/core/{p-2713b83e.entry.js → p-1c62f175.entry.js} +2 -2
- package/dist/core/p-1c62f175.entry.js.map +1 -0
- package/dist/core/{p-7d7dab2e.entry.js → p-1da9f871.entry.js} +2 -2
- package/dist/core/p-1da9f871.entry.js.map +1 -0
- package/dist/core/{p-21375e02.entry.js → p-1e3cad4b.entry.js} +2 -2
- package/dist/core/p-1e3cad4b.entry.js.map +1 -0
- package/dist/core/{p-34508063.entry.js → p-228da18e.entry.js} +2 -2
- package/dist/core/p-228da18e.entry.js.map +1 -0
- package/dist/core/p-24636c53.js.map +1 -1
- package/dist/core/p-26acf964.js.map +1 -1
- package/dist/core/{p-439340f9.entry.js → p-2790d89e.entry.js} +2 -2
- package/dist/core/p-2790d89e.entry.js.map +1 -0
- package/dist/core/{p-a008979f.entry.js → p-2fe9d3ea.entry.js} +2 -2
- package/dist/core/p-2fe9d3ea.entry.js.map +1 -0
- package/dist/core/{p-1f883c31.entry.js → p-33895061.entry.js} +2 -2
- package/dist/core/p-33895061.entry.js.map +1 -0
- package/dist/core/p-34152b51.js.map +1 -1
- package/dist/core/p-3464136c.js.map +1 -1
- package/dist/core/p-34ed07f6.js.map +1 -1
- package/dist/core/p-36be8f6e.js.map +1 -1
- package/dist/core/{p-fd62778e.entry.js → p-3858e2c8.entry.js} +2 -2
- package/dist/core/p-3858e2c8.entry.js.map +1 -0
- package/dist/core/p-3b9df792.entry.js +2 -0
- package/dist/core/p-3b9df792.entry.js.map +1 -0
- package/dist/core/{p-b1ca32cc.entry.js → p-3d720d54.entry.js} +2 -2
- package/dist/core/p-3d720d54.entry.js.map +1 -0
- package/dist/core/p-3dbf7f49.js.map +1 -1
- package/dist/core/{p-40df0e89.entry.js → p-3e5432d7.entry.js} +2 -2
- package/dist/core/p-3e5432d7.entry.js.map +1 -0
- package/dist/core/p-3f37ddb6.js.map +1 -1
- package/dist/core/p-404f469e.js.map +1 -1
- package/dist/core/{p-00e21d46.entry.js → p-42cd2cc4.entry.js} +2 -2
- package/dist/core/p-42cd2cc4.entry.js.map +1 -0
- package/dist/core/{p-3b6d6f6f.entry.js → p-48349167.entry.js} +2 -2
- package/dist/core/p-48349167.entry.js.map +1 -0
- package/dist/core/{p-d9747cca.entry.js → p-49926f53.entry.js} +2 -2
- package/dist/core/p-49926f53.entry.js.map +1 -0
- package/dist/core/{p-2b0af68c.entry.js → p-5150efee.entry.js} +2 -2
- package/dist/core/p-5150efee.entry.js.map +1 -0
- package/dist/core/{p-1c20657a.entry.js → p-5316e768.entry.js} +2 -2
- package/dist/core/p-5316e768.entry.js.map +1 -0
- package/dist/core/p-55500e5a.js.map +1 -1
- package/dist/core/p-561fa17b.js.map +1 -1
- package/dist/core/{p-c134863d.entry.js → p-5a855a15.entry.js} +2 -2
- package/dist/core/p-5a855a15.entry.js.map +1 -0
- package/dist/core/p-5defdc5e.js.map +1 -1
- package/dist/core/{p-424fdf22.entry.js → p-5e23a6ba.entry.js} +2 -2
- package/dist/core/p-5e23a6ba.entry.js.map +1 -0
- package/dist/core/p-6278531b.js.map +1 -1
- package/dist/core/p-64ced668.js.map +1 -1
- package/dist/core/{p-1e1bd302.entry.js → p-6dacb8d3.entry.js} +2 -2
- package/dist/core/p-6dacb8d3.entry.js.map +1 -0
- package/dist/core/{p-174d3df0.entry.js → p-6f43bd00.entry.js} +2 -2
- package/dist/core/p-6f43bd00.entry.js.map +1 -0
- package/dist/core/{p-034c5c8f.entry.js → p-722218fd.entry.js} +2 -2
- package/dist/core/p-722218fd.entry.js.map +1 -0
- package/dist/core/{p-9a1d5c77.entry.js → p-739dd451.entry.js} +2 -2
- package/dist/core/p-739dd451.entry.js.map +1 -0
- package/dist/core/{p-51582b94.entry.js → p-7ab82a55.entry.js} +2 -2
- package/dist/core/p-7ab82a55.entry.js.map +1 -0
- package/dist/core/p-80e30702.js.map +1 -1
- package/dist/core/{p-ddffa85e.entry.js → p-88a78167.entry.js} +2 -2
- package/dist/core/p-88a78167.entry.js.map +1 -0
- package/dist/core/{p-ec8e7f8f.entry.js → p-89921159.entry.js} +2 -2
- package/dist/core/p-89921159.entry.js.map +1 -0
- package/dist/core/p-9144dde1.js.map +1 -1
- package/dist/core/{p-1bfe6f33.entry.js → p-93042b25.entry.js} +2 -2
- package/dist/core/p-93042b25.entry.js.map +1 -0
- package/dist/core/{p-b2c6a185.entry.js → p-9633e7b5.entry.js} +2 -2
- package/dist/core/p-9633e7b5.entry.js.map +1 -0
- package/dist/core/{p-82af6719.entry.js → p-9751af2e.entry.js} +2 -2
- package/dist/core/p-9751af2e.entry.js.map +1 -0
- package/dist/core/{p-6e6a44f0.entry.js → p-9a3e3ace.entry.js} +2 -2
- package/dist/core/p-9a3e3ace.entry.js.map +1 -0
- package/dist/core/{p-5f23b01d.entry.js → p-9ad54c30.entry.js} +2 -2
- package/dist/core/p-9ad54c30.entry.js.map +1 -0
- package/dist/core/p-9dab01be.js.map +1 -1
- package/dist/core/{p-b9bfca0a.entry.js → p-9e208f40.entry.js} +2 -2
- package/dist/core/p-9e208f40.entry.js.map +1 -0
- package/dist/core/p-9f541022.entry.js +2 -0
- package/dist/core/p-9f541022.entry.js.map +1 -0
- package/dist/core/p-a5d69694.js.map +1 -1
- package/dist/core/{p-8ee11310.entry.js → p-a68547b1.entry.js} +2 -2
- package/dist/core/p-a68547b1.entry.js.map +1 -0
- package/dist/core/p-a6d14a47.js.map +1 -1
- package/dist/core/{p-d7ee8f40.entry.js → p-a857915f.entry.js} +2 -2
- package/dist/core/{p-d7ee8f40.entry.js.map → p-a857915f.entry.js.map} +1 -1
- package/dist/core/{p-cbfe47ee.entry.js → p-aa4e716e.entry.js} +2 -2
- package/dist/core/p-aa4e716e.entry.js.map +1 -0
- package/dist/core/{p-dbd6c9b5.entry.js → p-abfa0beb.entry.js} +2 -2
- package/dist/core/p-abfa0beb.entry.js.map +1 -0
- package/dist/core/p-ac94d242.entry.js +2 -0
- package/dist/core/p-ac94d242.entry.js.map +1 -0
- package/dist/core/{p-32c8b7a4.entry.js → p-ae04e58f.entry.js} +2 -2
- package/dist/core/p-ae04e58f.entry.js.map +1 -0
- package/dist/core/{p-dae9dc31.entry.js → p-af7a89bc.entry.js} +2 -2
- package/dist/core/p-af7a89bc.entry.js.map +1 -0
- package/dist/core/{p-0b9eed8b.entry.js → p-b5a560d2.entry.js} +2 -2
- package/dist/core/p-b5a560d2.entry.js.map +1 -0
- package/dist/core/{p-b547d31a.entry.js → p-bbcbe1cc.entry.js} +2 -2
- package/dist/core/p-bbcbe1cc.entry.js.map +1 -0
- package/dist/core/p-be4aab0e.js.map +1 -1
- package/dist/core/{p-902ff1a5.entry.js → p-d2729599.entry.js} +2 -2
- package/dist/core/p-d2729599.entry.js.map +1 -0
- package/dist/core/{p-52373a5b.entry.js → p-d921bd4b.entry.js} +2 -2
- package/dist/core/p-d921bd4b.entry.js.map +1 -0
- package/dist/core/{p-8694e397.entry.js → p-da762184.entry.js} +2 -2
- package/dist/core/p-da762184.entry.js.map +1 -0
- package/dist/core/p-de3dc437.entry.js +2 -0
- package/dist/core/p-de3dc437.entry.js.map +1 -0
- package/dist/core/p-e0c04c5f.entry.js +2 -0
- package/dist/core/p-e0c04c5f.entry.js.map +1 -0
- package/dist/core/{p-c862ac0d.entry.js → p-e1b3c361.entry.js} +2 -2
- package/dist/core/p-e1b3c361.entry.js.map +1 -0
- package/dist/core/{p-2c821d36.entry.js → p-e86db39c.entry.js} +2 -2
- package/dist/core/p-e86db39c.entry.js.map +1 -0
- package/dist/core/{p-dfe0cb6d.entry.js → p-eda868dc.entry.js} +2 -2
- package/dist/core/p-eda868dc.entry.js.map +1 -0
- package/dist/core/{p-37599a2d.entry.js → p-f95bca5f.entry.js} +2 -2
- package/dist/core/p-f95bca5f.entry.js.map +1 -0
- package/dist/core/{p-1a4cb97e.entry.js → p-f969eec7.entry.js} +2 -2
- package/dist/core/p-f969eec7.entry.js.map +1 -0
- package/dist/core/{p-4b8bf83d.entry.js → p-fa71fb92.entry.js} +2 -2
- package/dist/core/p-fa71fb92.entry.js.map +1 -0
- package/dist/core/p-ff7365ae.js.map +1 -1
- package/dist/core/p-ffb7495c.js.map +1 -1
- package/dist/esm/core.js +3 -2
- package/dist/esm/core.js.map +1 -1
- package/dist/esm/gov-accordion-item.entry.js +1 -1
- package/dist/esm/gov-accordion.entry.js +1 -1
- package/dist/esm/gov-alert.entry.js +1 -1
- package/dist/esm/gov-app.entry.js +1 -1
- package/dist/esm/gov-app.entry.js.map +1 -1
- package/dist/esm/gov-attachments_3.entry.js +1 -1
- package/dist/esm/gov-backdrop.entry.js +1 -1
- package/dist/esm/gov-badge.entry.js +1 -1
- package/dist/esm/gov-breadcrumbs.entry.js +1 -1
- package/dist/esm/gov-button.entry.js +1 -1
- package/dist/esm/gov-card.entry.js +1 -1
- package/dist/esm/gov-container.entry.js +1 -1
- package/dist/esm/gov-control-group.entry.js +1 -1
- package/dist/esm/gov-cookiebar.entry.js +1 -1
- package/dist/esm/gov-dropdown.entry.js +1 -1
- package/dist/esm/gov-empty.entry.js +1 -1
- package/dist/esm/gov-error-code.entry.js +1 -1
- package/dist/esm/gov-form-autocomplete.entry.js +1 -1
- package/dist/esm/gov-form-checkbox.entry.js +1 -1
- package/dist/esm/gov-form-control.entry.js +1 -1
- package/dist/esm/gov-form-file.entry.js +1 -1
- package/dist/esm/gov-form-group.entry.js +1 -1
- package/dist/esm/gov-form-input.entry.js +1 -1
- package/dist/esm/gov-form-label.entry.js +1 -1
- package/dist/esm/gov-form-multi-select.entry.js +1 -1
- package/dist/esm/gov-form-password-power.entry.js +1 -1
- package/dist/esm/gov-form-radio.entry.js +1 -1
- package/dist/esm/gov-form-search.entry.js +1 -1
- package/dist/esm/gov-form-select.entry.js +1 -1
- package/dist/esm/gov-form-switch.entry.js +1 -1
- package/dist/esm/gov-grid-item.entry.js +1 -1
- package/dist/esm/gov-grid.entry.js +1 -1
- package/dist/esm/gov-icon.entry.js +2 -2
- package/dist/esm/gov-layout-column.entry.js +1 -1
- package/dist/esm/gov-layout.entry.js +1 -1
- package/dist/esm/gov-loading.entry.js +1 -1
- package/dist/esm/gov-message.entry.js +1 -1
- package/dist/esm/gov-modal.entry.js +1 -1
- package/dist/esm/gov-nav-item.entry.js +1 -1
- package/dist/esm/gov-nav.entry.js +1 -1
- package/dist/esm/gov-pagination.entry.js +1 -1
- package/dist/esm/gov-prompt.entry.js +1 -1
- package/dist/esm/gov-side-nav-item.entry.js +1 -1
- package/dist/esm/gov-side-nav.entry.js +1 -1
- package/dist/esm/gov-skeleton.entry.js +1 -1
- package/dist/esm/gov-spacer.entry.js +1 -1
- package/dist/esm/gov-statsbar-item.entry.js +1 -1
- package/dist/esm/gov-statsbar.entry.js +1 -1
- package/dist/esm/gov-stepper-item.entry.js +1 -1
- package/dist/esm/gov-stepper.entry.js +1 -1
- package/dist/esm/gov-tabs-item.entry.js +1 -1
- package/dist/esm/gov-tabs.entry.js +1 -1
- package/dist/esm/gov-tabs.entry.js.map +1 -1
- package/dist/esm/gov-tile.entry.js +1 -1
- package/dist/esm/gov-tiles.entry.js +1 -1
- package/dist/esm/gov-toast.entry.js +1 -1
- package/dist/esm/gov-tooltip-content.entry.js +1 -1
- package/dist/esm/gov-tooltip.entry.js +1 -1
- package/dist/esm/gov-wizzard-item.entry.js +1 -1
- package/dist/esm/gov-wizzard.entry.js +1 -1
- package/dist/esm/{index-12c94daf.js → index-ae3c50f1.js} +305 -53
- package/dist/esm/index-ae3c50f1.js.map +1 -0
- package/dist/esm/loader.js +3 -11
- package/dist/esm/loader.js.map +1 -1
- package/dist/hydrate/index.d.ts +17 -16
- package/dist/hydrate/index.js +199 -166
- package/dist/stencil.config.js +14 -11
- package/dist/stencil.config.js.map +1 -1
- package/dist/types/components/gov-accordion/constants.d.ts +2 -2
- package/dist/types/components/gov-alert/constants.d.ts +1 -1
- package/dist/types/components/gov-app/gov-app.d.ts +34 -34
- package/dist/types/components/gov-badge/constants.d.ts +1 -1
- package/dist/types/components/gov-button/default/constants.d.ts +5 -5
- package/dist/types/components/gov-button/dropdown/constants.d.ts +1 -1
- package/dist/types/components/gov-control-group/constants.d.ts +1 -1
- package/dist/types/components/gov-form/autocomplete/constants.d.ts +2 -2
- package/dist/types/components/gov-form/checkbox/constants.d.ts +1 -1
- package/dist/types/components/gov-form/control/constants.d.ts +1 -1
- package/dist/types/components/gov-form/group/constants.d.ts +1 -1
- package/dist/types/components/gov-form/input/constants.d.ts +4 -4
- package/dist/types/components/gov-form/label/constants.d.ts +1 -1
- package/dist/types/components/gov-form/message/constants.d.ts +1 -1
- package/dist/types/components/gov-form/multiselect/constants.d.ts +2 -2
- package/dist/types/components/gov-form/radio/constants.d.ts +1 -1
- package/dist/types/components/gov-form/search/constants.d.ts +1 -1
- package/dist/types/components/gov-form/select/constants.d.ts +2 -2
- package/dist/types/components/gov-form/switch/constants.d.ts +1 -1
- package/dist/types/components/gov-icon/constants.d.ts +1 -1
- package/dist/types/components/gov-layout/constants.d.ts +2 -2
- package/dist/types/components/gov-loading/skeleton/constants.d.ts +3 -3
- package/dist/types/components/gov-message/constants.d.ts +1 -1
- package/dist/types/components/gov-pagination/constants.d.ts +3 -3
- package/dist/types/components/gov-spacer/constants.d.ts +2 -2
- package/dist/types/components/gov-statsbar/constants.d.ts +2 -2
- package/dist/types/components/gov-stepper/constants.d.ts +2 -2
- package/dist/types/components/gov-tabs/constants.d.ts +3 -3
- package/dist/types/components/gov-toast/constants.d.ts +2 -2
- package/dist/types/components/gov-tooltip/constants.d.ts +3 -3
- package/dist/types/components/gov-wizzard/constants.d.ts +2 -2
- package/dist/types/components.d.ts +50 -0
- package/dist/types/stencil-public-runtime.d.ts +88 -17
- package/dist/types/types/interfaces.d.ts +2 -2
- package/dist/types/utils/utils.d.ts +1 -1
- package/loader/index.d.ts +10 -1
- package/package.json +26 -21
- package/dist/cjs/index-7ba43a19.js.map +0 -1
- package/dist/components/Fragment.js +0 -5
- package/dist/components/Fragment.js.map +0 -1
- package/dist/components/constants.js +0 -25
- package/dist/components/constants.js.map +0 -1
- package/dist/components/constants10.js +0 -19
- package/dist/components/constants10.js.map +0 -1
- package/dist/components/constants11.js +0 -22
- package/dist/components/constants11.js.map +0 -1
- package/dist/components/constants12.js +0 -25
- package/dist/components/constants12.js.map +0 -1
- package/dist/components/constants13.js +0 -29
- package/dist/components/constants14.js +0 -23
- package/dist/components/constants14.js.map +0 -1
- package/dist/components/constants15.js +0 -24
- package/dist/components/constants15.js.map +0 -1
- package/dist/components/constants2.js +0 -15
- package/dist/components/constants2.js.map +0 -1
- package/dist/components/constants3.js +0 -33
- package/dist/components/constants3.js.map +0 -1
- package/dist/components/constants4.js +0 -12
- package/dist/components/constants4.js.map +0 -1
- package/dist/components/constants5.js +0 -13
- package/dist/components/constants5.js.map +0 -1
- package/dist/components/constants6.js +0 -10
- package/dist/components/constants6.js.map +0 -1
- package/dist/components/constants7.js +0 -22
- package/dist/components/constants7.js.map +0 -1
- package/dist/components/constants8.js +0 -18
- package/dist/components/constants8.js.map +0 -1
- package/dist/components/constants9.js +0 -12
- package/dist/components/constants9.js.map +0 -1
- package/dist/components/form.js +0 -152
- package/dist/components/form.js.map +0 -1
- package/dist/components/gov-attachments-item2.js +0 -70
- package/dist/components/gov-attachments-item2.js.map +0 -1
- package/dist/components/gov-attachments2.js +0 -57
- package/dist/components/gov-attachments2.js.map +0 -1
- package/dist/components/gov-backdrop2.js +0 -64
- package/dist/components/gov-backdrop2.js.map +0 -1
- package/dist/components/gov-badge2.js +0 -108
- package/dist/components/gov-badge2.js.map +0 -1
- package/dist/components/gov-button2.js +0 -223
- package/dist/components/gov-button2.js.map +0 -1
- package/dist/components/gov-form-autocomplete2.js +0 -294
- package/dist/components/gov-form-autocomplete2.js.map +0 -1
- package/dist/components/gov-form-input2.js +0 -235
- package/dist/components/gov-form-input2.js.map +0 -1
- package/dist/components/gov-form-message2.js +0 -58
- package/dist/components/gov-form-message2.js.map +0 -1
- package/dist/components/gov-form-select2.js +0 -186
- package/dist/components/gov-icon2.js +0 -142
- package/dist/components/gov-icon2.js.map +0 -1
- package/dist/components/gov.log.js +0 -17
- package/dist/components/gov.log.js.map +0 -1
- package/dist/components/props.js +0 -14
- package/dist/components/props.js.map +0 -1
- package/dist/components/sizes.js +0 -18
- package/dist/components/sizes.js.map +0 -1
- package/dist/components/string.utils.js +0 -20
- package/dist/components/string.utils.js.map +0 -1
- package/dist/components/template.js +0 -113
- package/dist/components/template.js.map +0 -1
- package/dist/components/utils.js +0 -35
- package/dist/components/utils.js.map +0 -1
- package/dist/components/variants.js +0 -18
- package/dist/components/variants.js.map +0 -1
- package/dist/components/wcag.js +0 -62
- package/dist/components/wcag.js.map +0 -1
- package/dist/components/win.js +0 -23
- package/dist/components/win.js.map +0 -1
- package/dist/core/critical.css +0 -1
- package/dist/core/p-00e21d46.entry.js.map +0 -1
- package/dist/core/p-024fa230.entry.js.map +0 -1
- package/dist/core/p-034c5c8f.entry.js.map +0 -1
- package/dist/core/p-0b9eed8b.entry.js.map +0 -1
- package/dist/core/p-174d3df0.entry.js.map +0 -1
- package/dist/core/p-1a4cb97e.entry.js.map +0 -1
- package/dist/core/p-1bfe6f33.entry.js.map +0 -1
- package/dist/core/p-1c20657a.entry.js.map +0 -1
- package/dist/core/p-1d20b5af.entry.js +0 -2
- package/dist/core/p-1d20b5af.entry.js.map +0 -1
- package/dist/core/p-1e1bd302.entry.js.map +0 -1
- package/dist/core/p-1ea41454.entry.js +0 -2
- package/dist/core/p-1ea41454.entry.js.map +0 -1
- package/dist/core/p-1f883c31.entry.js.map +0 -1
- package/dist/core/p-21375e02.entry.js.map +0 -1
- package/dist/core/p-24ba5c7b.entry.js.map +0 -1
- package/dist/core/p-2713b83e.entry.js.map +0 -1
- package/dist/core/p-2b0af68c.entry.js.map +0 -1
- package/dist/core/p-2c0e96dd.entry.js +0 -2
- package/dist/core/p-2c0e96dd.entry.js.map +0 -1
- package/dist/core/p-2c821d36.entry.js.map +0 -1
- package/dist/core/p-32c8b7a4.entry.js.map +0 -1
- package/dist/core/p-34508063.entry.js.map +0 -1
- package/dist/core/p-37599a2d.entry.js.map +0 -1
- package/dist/core/p-397b0e73.entry.js +0 -2
- package/dist/core/p-397b0e73.entry.js.map +0 -1
- package/dist/core/p-3b6d6f6f.entry.js.map +0 -1
- package/dist/core/p-40df0e89.entry.js.map +0 -1
- package/dist/core/p-424fdf22.entry.js.map +0 -1
- package/dist/core/p-439340f9.entry.js.map +0 -1
- package/dist/core/p-4b8bf83d.entry.js.map +0 -1
- package/dist/core/p-51582b94.entry.js.map +0 -1
- package/dist/core/p-52373a5b.entry.js.map +0 -1
- package/dist/core/p-5f23b01d.entry.js.map +0 -1
- package/dist/core/p-6e6a44f0.entry.js.map +0 -1
- package/dist/core/p-7d7dab2e.entry.js.map +0 -1
- package/dist/core/p-818bb0f5.entry.js.map +0 -1
- package/dist/core/p-82af6719.entry.js.map +0 -1
- package/dist/core/p-8694e397.entry.js.map +0 -1
- package/dist/core/p-88c10472.entry.js.map +0 -1
- package/dist/core/p-8ee11310.entry.js.map +0 -1
- package/dist/core/p-902ff1a5.entry.js.map +0 -1
- package/dist/core/p-9a1d5c77.entry.js.map +0 -1
- package/dist/core/p-a008979f.entry.js.map +0 -1
- package/dist/core/p-b1ca32cc.entry.js.map +0 -1
- package/dist/core/p-b2c6a185.entry.js.map +0 -1
- package/dist/core/p-b547d31a.entry.js.map +0 -1
- package/dist/core/p-b9bfca0a.entry.js.map +0 -1
- package/dist/core/p-c0c9b349.entry.js.map +0 -1
- package/dist/core/p-c134863d.entry.js.map +0 -1
- package/dist/core/p-c862ac0d.entry.js.map +0 -1
- package/dist/core/p-cbfe47ee.entry.js.map +0 -1
- package/dist/core/p-d9747cca.entry.js.map +0 -1
- package/dist/core/p-dae9dc31.entry.js.map +0 -1
- package/dist/core/p-dbd6c9b5.entry.js.map +0 -1
- package/dist/core/p-dd6d9f6d.js +0 -3
- package/dist/core/p-dd6d9f6d.js.map +0 -1
- package/dist/core/p-ddffa85e.entry.js.map +0 -1
- package/dist/core/p-dfe0cb6d.entry.js.map +0 -1
- package/dist/core/p-e866befd.entry.js +0 -2
- package/dist/core/p-e866befd.entry.js.map +0 -1
- package/dist/core/p-ec8e7f8f.entry.js.map +0 -1
- package/dist/core/p-f2d22b62.entry.js.map +0 -1
- package/dist/core/p-fd62778e.entry.js.map +0 -1
- package/dist/custom-elements/index.d.ts +0 -399
- package/dist/custom-elements/index.js +0 -2
- package/dist/custom-elements/index.js.map +0 -1
- package/dist/esm/index-12c94daf.js.map +0 -1
- package/dist/esm/polyfills/css-shim.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["@stencil/core/internal/app-data","../../../node_modules/@stencil/core/internal/client/index.js","../../../packages/core/src/helpers/Log/gov.log.ts","../../../packages/core/src/helpers/Validate/props.ts","../../../packages/core/src/core/constants/sizes.ts","../../../packages/core/src/core/constants/variants.ts","../../../packages/core/src/utils/utils.ts","../../../packages/core/src/components/gov-accordion/constants.ts","../../../packages/core/src/utils/string.utils.ts","../../../packages/core/src/helpers/Dom/win.ts","../../../packages/core/src/helpers/Validate/wcag.ts","../../../packages/core/src/helpers/Dom/template.ts","../../../packages/core/src/components/gov-accordion/gov-accordion.scss?tag=gov-accordion","../../../packages/core/src/components/gov-accordion/gov-accordion.tsx","../../../packages/core/src/components/gov-accordion/gov-accordion-item.scss?tag=gov-accordion-item","../../../packages/core/src/components/gov-accordion/gov-accordion-item.tsx","../../../packages/core/src/components/gov-alert/constants.ts","../../../packages/core/src/helpers/Fragment.tsx","../../../packages/core/src/components/gov-alert/gov-alert.scss?tag=gov-alert","../../../packages/core/src/components/gov-alert/gov-alert.tsx","../../../node_modules/@vaadin/router/dist/vaadin-router.js","../../../packages/core/src/pages/Accordion.ts","../../../packages/core/src/pages/Alert.ts","../../../packages/core/src/pages/Badge.ts","../../../packages/core/src/pages/Breadcrumbs.ts","../../../packages/core/src/pages/Button.ts","../../../packages/core/src/pages/Card.ts","../../../packages/core/src/pages/Container.ts","../../../packages/core/src/pages/ControlGroup.ts","../../../packages/core/src/pages/Cookiebar.ts","../../../packages/core/src/pages/Empty.ts","../../../packages/core/src/pages/Error.ts","../../../packages/core/src/pages/FormLabel.ts","../../../packages/core/src/pages/FormMessage.ts","../../../packages/core/src/pages/Forms.ts","../../../packages/core/src/pages/FormsRestructure.ts","../../../packages/core/src/pages/Grid.ts","../../../packages/core/src/pages/Home.ts","../../../packages/core/src/pages/Layout.ts","../../../packages/core/src/pages/Loading.ts","../../../packages/core/src/pages/Message.ts","../../../packages/core/src/pages/Modal.ts","../../../packages/core/src/pages/Nav.ts","../../../packages/core/src/pages/Pagination.ts","../../../packages/core/src/pages/Prompt.ts","../../../packages/core/src/pages/SideNav.ts","../../../packages/core/src/pages/Spacer.ts","../../../packages/core/src/pages/Statsbar.ts","../../../packages/core/src/pages/Stepper.ts","../../../packages/core/src/pages/Tabs.ts","../../../packages/core/src/pages/Tiles.ts","../../../packages/core/src/pages/ToastMessage.ts","../../../packages/core/src/pages/ToastMessageCountdown.ts","../../../packages/core/src/pages/Tooltip.ts","../../../packages/core/src/pages/Typography.ts","../../../packages/core/src/pages/Wizzard.ts","../../../packages/core/src/components/gov-app/gov-app.scss?tag=gov-app","../../../packages/core/src/components/gov-app/gov-app.tsx","../../../packages/core/src/components/gov-attachments/constants.ts","../../../packages/core/src/components/gov-attachments/gov-attachments.scss?tag=gov-attachments","../../../packages/core/src/components/gov-attachments/gov-attachments.tsx","../../../packages/core/src/components/gov-attachments/gov-attachments-item.scss?tag=gov-attachments-item","../../../packages/core/src/components/gov-attachments/gov-attachments-item.tsx","../../../packages/core/src/components/gov-backdrop/constants.ts","../../../packages/core/src/components/gov-backdrop/gov-backdrop.scss?tag=gov-backdrop","../../../packages/core/src/components/gov-backdrop/gov-backdrop.tsx","../../../packages/core/src/components/gov-badge/constants.ts","../../../packages/core/src/components/gov-button/default/constants.ts","../../../packages/core/src/components/gov-badge/gov-badge.scss?tag=gov-badge","../../../packages/core/src/components/gov-badge/gov-badge.tsx","../../../packages/core/src/components/gov-breadcrumbs/constants.ts","../../../packages/core/src/components/gov-breadcrumbs/gov-breadcrumbs.scss?tag=gov-breadcrumbs","../../../packages/core/src/components/gov-breadcrumbs/gov-breadcrumbs.tsx","../../../packages/core/src/utils/bool.utils.ts","../../../packages/core/src/components/gov-button/default/gov-button.scss?tag=gov-button","../../../packages/core/src/components/gov-button/default/gov-button.tsx","../../../packages/core/src/components/gov-card/constants.ts","../../../packages/core/src/components/gov-card/gov-card.scss?tag=gov-card","../../../packages/core/src/components/gov-card/gov-card.tsx","../../../packages/core/src/components/gov-container/constants.tsx","../../../packages/core/src/components/gov-container/gov-container.scss?tag=gov-container","../../../packages/core/src/components/gov-container/gov-container.tsx","../../../packages/core/src/components/gov-control-group/constants.ts","../../../packages/core/src/components/gov-control-group/gov-control-group.scss?tag=gov-control-group","../../../packages/core/src/components/gov-control-group/gov-control-group.tsx","../../../packages/core/src/components/gov-cookiebar/constants.tsx","../../../packages/core/src/components/gov-cookiebar/gov-cookiebar.scss?tag=gov-cookiebar","../../../packages/core/src/components/gov-cookiebar/gov-cookiebar.tsx","../../../node_modules/@stencil/core/internal/client/index.js?app-data=conditional","../../../node_modules/stencil-click-outside/dist/esm/index.js","../../../packages/core/src/components/gov-button/dropdown/constants.ts","../../../packages/core/src/components/gov-button/dropdown/gov-dropdown.scss?tag=gov-dropdown","../../../packages/core/src/components/gov-button/dropdown/gov-dropdown.tsx","../../../packages/core/src/components/gov-empty/constants.ts","../../../packages/core/src/components/gov-empty/gov-empty.scss?tag=gov-empty","../../../packages/core/src/components/gov-empty/gov-empty.tsx","../../../packages/core/src/components/gov-error-code/constants.ts","../../../packages/core/src/components/gov-error-code/gov-error-code.scss?tag=gov-error-code","../../../packages/core/src/components/gov-error-code/gov-error-code.tsx","../../../packages/core/src/components/gov-form/autocomplete/constants.ts","../../../packages/core/src/components/gov-form/autocomplete/gov-form-autocomplete.scss?tag=gov-form-autocomplete","../../../packages/core/src/components/gov-form/autocomplete/gov-form-autocomplete.tsx","../../../packages/core/src/components/gov-form/checkbox/constants.ts","../../../packages/core/src/components/gov-form/control/constants.ts","../../../packages/core/src/components/gov-form/input/constants.ts","../../../packages/core/src/components/gov-form/select/constants.ts","../../../packages/core/src/components/gov-form/multiselect/constants.ts","../../../packages/core/src/components/gov-form/switch/constants.ts","../../../packages/core/src/components/gov-form/radio/constants.ts","../../../packages/core/src/components/gov-form/message/constants.ts","../../../packages/core/src/components/gov-form/label/constants.ts","../../../packages/core/src/helpers/Dom/form.ts","../../../packages/core/src/components/gov-form/checkbox/gov-form-checkbox.scss?tag=gov-form-checkbox","../../../packages/core/src/components/gov-form/checkbox/gov-form-checkbox.tsx","../../../packages/core/src/components/gov-form/control/gov-form-control.scss?tag=gov-form-control","../../../packages/core/src/components/gov-form/control/gov-form-control.tsx","../../../packages/core/src/components/gov-form/file/constants.ts","../../../packages/core/src/utils/file.utils.ts","../../../packages/core/src/components/gov-form/file/gov-form-file.scss?tag=gov-form-file","../../../packages/core/src/components/gov-form/file/gov-form-file.tsx","../../../packages/core/src/components/gov-form/group/constants.ts","../../../packages/core/src/components/gov-form/group/gov-form-group.scss?tag=gov-form-group","../../../packages/core/src/components/gov-form/group/gov-form-group.tsx","../../../packages/core/src/components/gov-form/input/gov-form-input.scss?tag=gov-form-input","../../../packages/core/src/components/gov-form/input/gov-form-input.tsx","../../../packages/core/src/components/gov-form/label/gov-form-label.scss?tag=gov-form-label","../../../packages/core/src/components/gov-form/label/gov-form-label.tsx","../../../packages/core/src/components/gov-form/message/gov-form-message.scss?tag=gov-form-message","../../../packages/core/src/components/gov-form/message/gov-form-message.tsx","../../../packages/core/src/components/gov-form/multiselect/gov-form-multi-select.scss?tag=gov-form-multi-select","../../../packages/core/src/components/gov-form/multiselect/gov-form-multi-select.tsx","../../../packages/core/src/components/gov-form/password-power/constants.ts","../../../packages/core/src/components/gov-form/password-power/gov-form-password-power.scss?tag=gov-form-password-power","../../../packages/core/src/components/gov-form/password-power/gov-form-password-power.tsx","../../../packages/core/src/components/gov-form/radio/gov-form-radio.scss?tag=gov-form-radio","../../../packages/core/src/components/gov-form/radio/gov-form-radio.tsx","../../../packages/core/src/components/gov-form/search/constants.ts","../../../packages/core/src/components/gov-form/search/gov-form-search.scss?tag=gov-form-search","../../../packages/core/src/components/gov-form/search/gov-form-search.tsx","../../../packages/core/src/components/gov-form/select/gov-form-select.scss?tag=gov-form-select","../../../packages/core/src/components/gov-form/select/gov-form-select.tsx","../../../packages/core/src/components/gov-form/switch/gov-form-switch.scss?tag=gov-form-switch","../../../packages/core/src/components/gov-form/switch/gov-form-switch.tsx","../../../packages/core/src/components/gov-grid/constants.ts","../../../packages/core/src/components/gov-grid/gov-grid.scss?tag=gov-grid","../../../packages/core/src/components/gov-grid/gov-grid.tsx","../../../packages/core/src/components/gov-grid/gov-grid-item.scss?tag=gov-grid-item","../../../packages/core/src/components/gov-grid/gov-grid-item.tsx","../../../packages/core/src/components/gov-icon/constants.ts","../../../packages/core/src/utils/ds.utils.ts","../../../packages/core/src/utils/icon.utils.ts","../../../packages/core/src/components/gov-icon/gov-icon.scss?tag=gov-icon","../../../packages/core/src/components/gov-icon/gov-icon.tsx","../../../packages/core/src/components/gov-layout/constants.ts","../../../packages/core/src/components/gov-layout/gov-layout.scss?tag=gov-layout","../../../packages/core/src/components/gov-layout/gov-layout.tsx","../../../packages/core/src/components/gov-layout/gov-layout-column.scss?tag=gov-layout-column","../../../packages/core/src/components/gov-layout/gov-layout-column.tsx","../../../packages/core/src/components/gov-loading/loading/constants.ts","../../../packages/core/src/components/gov-loading/loading/gov-loading.scss?tag=gov-loading","../../../packages/core/src/components/gov-loading/loading/gov-loading.tsx","../../../packages/core/src/components/gov-message/constants.ts","../../../packages/core/src/components/gov-message/gov-message.scss?tag=gov-message","../../../packages/core/src/components/gov-message/gov-message.tsx","../../../packages/core/src/components/gov-modal/constants.ts","../../../packages/core/src/components/gov-modal/gov-modal.scss?tag=gov-modal","../../../packages/core/src/components/gov-modal/gov-modal.tsx","../../../packages/core/src/components/gov-nav/constants.ts","../../../packages/core/src/components/gov-nav/gov-nav.scss?tag=gov-nav","../../../packages/core/src/components/gov-nav/gov-nav.tsx","../../../packages/core/src/components/gov-nav/gov-nav-item.scss?tag=gov-nav-item","../../../packages/core/src/components/gov-nav/gov-nav-item.tsx","../../../packages/core/src/components/gov-pagination/constants.ts","../../../packages/core/src/components/gov-pagination/pagination.ts","../../../packages/core/src/utils/array.utils.ts","../../../packages/core/src/components/gov-pagination/gov-pagination.scss?tag=gov-pagination","../../../packages/core/src/components/gov-pagination/gov-pagination.tsx","../../../packages/core/src/components/gov-promp/gov-prompt.scss?tag=gov-prompt","../../../packages/core/src/components/gov-promp/gov-prompt.tsx","../../../packages/core/src/components/gov-side-nav/constants.ts","../../../packages/core/src/components/gov-side-nav/gov-side-nav.scss?tag=gov-side-nav","../../../packages/core/src/components/gov-side-nav/gov-side-nav.tsx","../../../packages/core/src/components/gov-side-nav/gov-side-nav-item.scss?tag=gov-side-nav-item","../../../packages/core/src/components/gov-side-nav/gov-side-nav-item.tsx","../../../packages/core/src/components/gov-loading/skeleton/constants.ts","../../../packages/core/src/components/gov-loading/skeleton/gov-skeleton.scss?tag=gov-skeleton","../../../packages/core/src/components/gov-loading/skeleton/gov-skeleton.tsx","../../../packages/core/src/components/gov-spacer/constants.tsx","../../../packages/core/src/components/gov-spacer/gov-spacer.scss?tag=gov-spacer","../../../packages/core/src/components/gov-spacer/gov-spacer.tsx","../../../packages/core/src/components/gov-statsbar/constants.tsx","../../../packages/core/src/components/gov-statsbar/gov-statsbar.scss?tag=gov-statsbar","../../../packages/core/src/components/gov-statsbar/gov-statsbar.tsx","../../../packages/core/src/components/gov-statsbar/gov-statsbar-item.scss?tag=gov-statsbar-item","../../../packages/core/src/components/gov-statsbar/gov-statsbar-item.tsx","../../../packages/core/src/components/gov-stepper/constants.ts","../../../packages/core/src/components/gov-stepper/gov-stepper.scss?tag=gov-stepper","../../../packages/core/src/components/gov-stepper/gov-stepper.tsx","../../../packages/core/src/components/gov-stepper/gov-stepper-item.scss?tag=gov-stepper-item","../../../packages/core/src/components/gov-stepper/gov-stepper-item.tsx","../../../packages/core/src/components/gov-tabs/constants.ts","../../../packages/core/src/components/gov-tabs/gov-tabs.scss?tag=gov-tabs","../../../packages/core/src/components/gov-tabs/gov-tabs.tsx","../../../packages/core/src/components/gov-tabs/gov-tabs-item.scss?tag=gov-tabs-item","../../../packages/core/src/components/gov-tabs/gov-tabs-item.tsx","../../../packages/core/src/components/gov-tile/constants.ts","../../../packages/core/src/components/gov-tile/gov-tile.scss?tag=gov-tile","../../../packages/core/src/components/gov-tile/gov-tile.tsx","../../../packages/core/src/components/gov-tile/container/constants.ts","../../../packages/core/src/components/gov-tile/container/gov-tiles.scss?tag=gov-tiles","../../../packages/core/src/components/gov-tile/container/gov-tiles.tsx","../../../packages/core/src/components/gov-toast/constants.ts","../../../packages/core/src/components/gov-toast/gov-toast.scss?tag=gov-toast","../../../packages/core/src/components/gov-toast/gov-toast.tsx","../../../packages/core/src/components/gov-tooltip/constants.tsx","../../../packages/core/src/components/gov-tooltip/gov-tooltip.scss?tag=gov-tooltip","../../../packages/core/src/components/gov-tooltip/gov-tooltip.tsx","../../../packages/core/src/components/gov-tooltip/gov-tooltip-content.scss?tag=gov-tooltip-content","../../../packages/core/src/components/gov-tooltip/gov-tooltip-content.tsx","../../../packages/core/src/components/gov-wizzard/constants.ts","../../../packages/core/src/components/gov-wizzard/gov-wizzard.scss?tag=gov-wizzard","../../../packages/core/src/components/gov-wizzard/gov-wizzard.tsx","../../../packages/core/src/components/gov-wizzard/gov-wizzard-item.scss?tag=gov-wizzard-item","../../../packages/core/src/components/gov-wizzard/gov-wizzard-item.tsx"],"names":["NAMESPACE","contentRef","hostTagName","useNativeShadowDom","checkSlotFallbackVisibility","checkSlotRelocate","isSvgMode","queuePending","setAssetPath","path","plt","$resourcesUrl$","createTime","fnName","tagName","EMPTY_OBJ","isComplexType","o","h","nodeName","vnodeData","children","child","key","slotName","simple","lastSimple","vNodeChildren","walk","c","i","length","Array","isArray","String","$text$","push","newVNode","name","classData","className","class","Object","keys","filter","k","join","vdomFnUtils","vnode","$attrs$","$children$","$key$","$name$","tag","text","m","u","p","l","Host","isHost","node","$tag$","forEach","cb","map","convertToPublic","convertToPrivate","vattrs","vchildren","vkey","vname","vtag","vtext","assign","parsePropertyValue","propValue","propType","parseFloat","getElement","ref","createEvent","flags","elm","emit","detail","emitEvent","bubbles","composed","cancelable","opts","ev","ce","dispatchEvent","rootAppliedStyles","WeakMap","registerStyle","scopeId","cssText","allowCS","style","styles","get","supportsConstructableStylesheets","CSSStyleSheet","replaceSync","set","addStyle","styleContainerNode","cmpMeta","mode","hostElm","getScopeId","nodeType","doc","head","appliedStyles","styleElm","Set","has","createElement","innerHTML","insertBefore","querySelector","add","adoptedStyleSheets","includes","attachStyles","hostRef","$cmpMeta$","$hostElement$","endAttachStyles","$tagName$","getRootNode","cmp","setAccessor","memberName","oldValue","newValue","isSvg","isProp","isMemberInElement","ln","toLowerCase","classList","oldClasses","parseClassList","newClasses","remove","prop","removeProperty","setProperty","__lookupSetter__","slice","win","rel","ael","isComplex","n","e","getAttribute","removeAttribute","setAttribute","parseClassListRegex","value","split","updateElement","oldVnode","newVnode","$elm$","host","oldVnodeAttrs","newVnodeAttrs","undefined","$flags$","createElm","oldParentVNode","newParentVNode","childIndex","parentElm","childNode","oldVNode","createTextNode","appendChild","putBackInOriginalLocation","recursive","oldSlotChildNodes","childNodes","parentReferenceNode","referenceNode","addVnodes","before","parentVNode","vnodes","startIdx","endIdx","containerElm","parentNode","removeVnodes","callNodeRefs","updateChildren","oldCh","newCh","oldStartIdx","newStartIdx","idxInOld","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","elmToMove","isSameVnode","patch","nextSibling","leftVNode","rightVNode","oldChildren","newChildren","defaultHolder","textContent","data","updateFallbackSlotVisibility","ilen","j","slotNameAttr","hidden","trim","relocateNodes","relocateSlotContent","hostContentNodes","relocateNodeData","isNodeLocatedInSlot","find","r","$nodeToRelocate$","$slotRefNode$","S","L","relocateNode","some","nodeToRelocate","vNode","renderVdom","renderFnResults","$vnode$","rootVnode","$attrsToReflect$","propName","attribute","relocateData","orgLocationNode","parentNodeRef","insertBeforeNode","refNode","previousSibling","attachToAncestor","ancestorComponent","$onRenderResolve$","Promise","scheduleUpdate","isInitialLoad","$ancestorComponent$","dispatch","dispatchHooks","writeTask","endSchedule","instance","promise","safeCall","then","updateComponent","async","endUpdate","rc","endRender","callRender","childrenPromises","postUpdate","postUpdateComponent","all","render","consoleError","endPostUpdate","addHydratedFlag","$onReadyResolve$","appDidLoad","nextTick","who","documentElement","namespace","method","arg","thenFn","getValue","getHostRef","$instanceValues$","setValue","newVal","oldVal","$members$","areBothNaN","Number","isNaN","didValueChange","$watchers$","watchMethods","watchMethodName","proxyComponent","Cstr","watchers","members","entries","prototype","memberFlags","defineProperty","[object Object]","this","configurable","enumerable","attrNameToPropName","Map","attributeChangedCallback","attrName","_oldValue","jmp","hasOwnProperty","observedAttributes","_","initializeComponent","hmrVersionId","constructor","customElements","whenDefined","endRegisterStyles","schedule","connectedCallback","endConnected","setContentReference","contentRefElm","createComment","firstChild","disconnectedCallback","proxyCustomElement","compactMeta","P","originalConnectedCallback","originalDisconnectedCallback","registerHost","call","attachShadow","is","setPlatformOptions","hostRefs","C","$onReadyPromise$","el","console","error","window","document","H","HTMLElement","t","raf","requestAnimationFrame","eventName","listener","addEventListener","removeEventListener","CustomEvent","promiseResolve","v","resolve","queueDomReads","queueDomWrites","queueTask","queue","write","flush","consume","performance","now","WARNING_COLORS","bg","INFO_COLORS","ERROR_COLORS","govLog","message","colors","log","govWarningLog","govErrorLog","validateProp","valueEnum","component","values","isValid","indexOf","Sizes","Variants","Types","delay","miliseconds","setTimeout","throttle","f","timer","args","clearTimeout","apply","obj","property","object","pick","fromEntries","AccordionSizes","AccordionVariants","AccordionClass","root","AccordionItemClass","header","arrow","icon","suffix","title","label","annot","content","chr4","Math","random","toString","createID","prefix","removeDiacritics","string","normalize","replace","splitByWhitespace","isWindow","getWindowProperty","config","defaultConfig","canValidateWcagOnRender","iconsPath","documentNode","windowProperty","validateWcagProp","validateWcagRef","referenceId","strings","referenceIds","getElementById","validateWcagLabelFor","inputId","labelledBy","labelEl","labelledByEl","validateWcagLabel","prepareClasses","classes","classname","slottedChildren","slotted","assignedNodes","booleanString","govHost","hostElement","getSlot","element","closest","selector","querySelectorAll","shadowRoot","clearClasses","toBoolAttr","toOnOffAttr","toBoolAttrIfDefined","toOnOffAttrIfDefined","govAccordionCss","GovAccordion","validateSize","size","validateVariant","variant","stopPropagation","govChange","open","validateWcag","role","arial-label","wcagLabel","arial-labelledby","wcagLabelledBy","govAccordionItemCss","GovAccordionItem","triggerId","contentId","validTags","isExpandedState","isExpanded","getPropsFromParents","validateLabel","validateTriggerTag","triggerTag","accordion","getParent","identifier","TriggerTag","no-border","noBorder","id","aria-expanded","aria-controls","disabled","type","aria-disabled","onClick","toggle","finally","hasSlot","annotation","aria-hidden","aria-labelledby","emmitChange","AlertVariants","AlertClass","section","headline","close","Fragment","govAlertCss","GovAlert","inverse","closeButton","aria-label","wcagCloseLabel","on-gov-click","onCloseHandler","bind","wcagToggleLabel","toggleContent","closable","govClose","originalEvent","toArray","objectOrArray","msg","logValue","stringType","match","JSON","stringify","MODULE","NOMODULE","bundleKeys","ensureBundle","src","Error","ensureRoute","route","isString","bundle","stringKeys","isFunction","action","isObject","redirect","overriddenProp","warn","ensureRoutes","routes","loadScript","script","reject","onreadystatechange","onload","__dynamicImportLoaded","onerror","removeChild","loadBundle","race","fireRouterEvent","s","getNotFoundError","context","pathname","code","notFoundResult","NotFoundResult","getAnchorOrigin","anchor","port","protocol","defaultHttp","defaultHttps","hostname","vaadinRouterGlobalClickHandler","event","defaultPrevented","button","shiftKey","ctrlKey","altKey","metaKey","target","composedPath","hasAttribute","location","hash","origin","search","preventDefault","scrollTo","CLICK","isIE","test","navigator","userAgent","PopStateEvent","inType","params","initEvent","Boolean","state","Event","vaadinRouterGlobalPopstateHandler","POPSTATE","pathToRegexp_1","pathToRegexp","parse_1","parse","compile_1","compile","tokensToFunction_1","tokensToFunction","tokensToRegExp_1","tokensToRegExp","DEFAULT_DELIMITER","DEFAULT_DELIMITERS","PATH_REGEXP","RegExp","str","options","tokens","index","defaultDelimiter","delimiter","delimiters","pathEscaped","res","exec","escaped","offset","prev","next","capture","group","modifier","partial","repeat","optional","pattern","escapeGroup","escapeString","substr","matches","encode","encodeURIComponent","token","segment","TypeError","sensitive","regexpToRegexp","groups","source","arrayToRegexp","parts","stringToRegexp","strict","start","end","endsWith","concat","isEndDelimited","cache","decodeParam","val","decodeURIComponent","err","matchPath","routepath","exact","parentKeys","parentParams","cacheKey","regexp","matchRoute","ignoreLeadingSlash","childMatches","charAt","routeToSkip","done","__children","childRoute","parent","matchedLength","childMatch","resolveRoute","isChildRoute","parentRoute","generateErrorMessage","currentContext","errorMessage","routePath","updateChainForRoute","__synthetic","item","chain","pop","Resolver","baseUrl","errorHandler","resolver","newRoutes","getRoutes","setRoutes","pathnameOrContext","__normalizePathname","nextMatches","resume","prevResult","resolution","result","catch","DOMException","url","base","URL","__effectiveBaseUrl","__createUrl","baseURI","href","normalizedUrl","pathToRegexp$1","cache$1","cacheRoutes","routesByName","getRouteByName","routeName","getRoutePath","generateUrls","router","clear","fullPath","rt","toPath","create","stringifyQueryParams","queryParams","query","triggers","setNavigationTriggers","newTriggers","trigger","inactivate","activate","willAnimate","elem","getComputedStyle","getPropertyValue","waitForAnimation","animate","rect","getBoundingClientRect","bottom","top","right","left","MAX_REDIRECT_COUNT","isResultNotEmpty","copyContextWithoutNext","copy","createLocation","redirectFrom","getUrl","userParams","getPathnameForRouter","Router","getMatchedPath","createRedirect","from","renderElement","runCallbackIfPossible","callback","thisArg","amend","amendmentFunction","amendmentResult","cancel","processNewChildren","childRoutes","removeDomNodes","nodes","reduce","a","b","outlet","baseElement","baseHref","super","__resolveRoute","NavigationTrigger","setTriggers","ready","__lastStartedRenderId","__navigationEventHandler","__onNavigationEvent","setOutlet","subscribe","__createdByRouter","__addedByRouter","callbacks","commands","__isLatestRender","__ensureOutlet","__outlet","skipRender","__previousContext","__urlForName","shouldUpdateHistory","renderId","__renderId","__fullyResolveChain","previousContext","__updateBrowserHistory","__skipAttach","__copyUnchangedElements","__addAppearingContent","animationDone","__animateIfNeeded","__runOnAfterEnterCallbacks","__runOnAfterLeaveCallbacks","__removeDisappearingContent","topOfTheChainContextBeforeRedirects","contextBeforeRedirects","__findComponentContextAfterAllRedirects","contextAfterRedirects","redirectsHappened","topOfTheChainContextAfterRedirects","matchedPath","isFound","findNextContextIfAny","nextContext","__amendWithOnBeforeCallbacks","__redirect","__redirectCount","contextWithFullChain","__runOnBeforeCallbacks","amendedContext","newContext","previousChain","newChain","prevent","__divergedChainIndex","min","__isReusableElement","__runOnBeforeLeaveCallbacks","__runOnBeforeEnterCallbacks","chainElement","afterLeaveFunction","beforeEnterFunction","otherElement","localName","redirectData","counter","urlForPath","Node","changeState","history","deepestCommonParent","unchangedElement","__removeAppearingContent","__appearingContent","__disappearingContent","parentElement","elementToAdd","targetContext","currentComponent","onAfterLeave","onAfterEnter","to","promises","leave","enter","DEV_MODE_CODE_REGEXP","FlowClients","Vaadin","Flow","clients","isMinified","uncommentAndRun","isDevelopmentMode","isForcedDevelopmentMode","isLocalhost","isFlowProductionMode","localStorage","getItem","productionModeApps","client","productionMode","Function","runIfDevelopmentMode","developmentMode","maybeGatherAndSendStats","usageStatistics","registrations","version","AccordionPage","define","AlertPage","BadgePage","BreadcrumbsPage","ButtonPage","CardPage","ContainerPage","ControlGroupPage","Cookiebar","EmptyPage","ErrorPage","FormLabelPage","FormMessagePage","randomNumber","max","floor","FormsPage","da","po","ba","na","setSearchCallback","FormsRestructurePage","GridPage","HomePage","LayoutPage","LoadingPage","MessagePage","ModalPage","NavPage","PaginationPage","bagr","PromptPage","SideNavPage","SpacerPage","StatsbarPage","StepperPage","TabsPage","TilesPage","ToastMessagePage","ToastMessageCountdownPage","TooltipPage","TypographyPage","WizzardPage","govAppCss","GovApp","AttachmentsClass","list","AttachmentsItemClass","file","messages","govAttachmentsCss","GovAttachments","govAttachmentsItemCss","GovAttachmentsItem","wcag-label","wcagRemoveLabel","wcag-labelled-by","wcagRemoveLabelledBy","govRemove","slot","BackdropClass","govBackdropCss","GovBackdrop","govClick","NativeType","BadgeClass","inner","hasRight","hasLeft","ButtonSizes","ButtonVariants","Type","ButtonTarget","ButtonClass","rootWithIcon","govBadgeCss","GovBadge","validateType","Tag","A","nativeType","BUTTON","hoverable","triggerRef","onClickHandler","BreadcrumbsClass","govBreadcrumbsCss","GovBreadcrumbs","toBool","govButtonCss","Tags","GovButton","validateNativeType","classNames","onFocus","onFocusHandler","onBlur","onBlurHandler","onMouseDown","isPressed","onMouseUp","download","hreflang","tabindex","focusable","aria-activedescendant","wcagActiveDescendant","aria-describedby","aria-description","wcagDescription","wcagControls","aria-details","wcagDetails","wcagExpanded","aria-owns","wcagOwns","aria-haspopup","wcagHasPopup","aria-pressed","aria-current","wcagCurrent","loading","govFocus","govBlur","focus","CardClass","img","main","btns","footer","govCardCss","GovCard","headlineId","expanded","validateHeadlineTag","headlineTag","govToggle","HeadlineTag","is-expanded","collapsible","promotion","wcagTriggerLabel","wcagTriggerLabelledBy","ContainerClass","govContainerCss","GovContainer","ControlGroupClass","govControlGroupCss","GovControlGroup","PRIMARY","CookiebarClass","holder","actions","actionsPrimary","actionsSecondary","govCookiebarCss","GovCookiebar","getAssetPath","assetUrl","ClickOutsideOptionsDefaults","triggerEvents","exclude","registerClickOutside","opt","excludedNodes","getExcludedNodes","getTriggerEvents","triggerEvent","initClickOutside","contains","isExcluded","excudedNodes","excludedNode","Position","DropdownClass","govDropdownCss","GovDropdown","LEFT","listId","controlId","position","EmptyClass","container","govEmptyCss","GovEmpty","ErrorCodeClass","govErrorCodeCss","GovErrorCode","FormAutocompleteSizes","FormAutocompleteVariants","FormAutocompleteClass","empty","govFormAutocompleteCss","GovFormAutocomplete","templateResolver","nameKey","listBoxId","arrowCounter","moveToView","heightOfList","listRef","offsetHeight","selected","offsetTop","behavior","isInteger","minlength","isValueAccepted","processing","searchCallback","response","placeholder","readonly","autocomplete","required","invalid","maxlength","on-gov-input","onInputHandler","on-gov-keyup","onKeyUpHandler","on-gov-keydown","onKeyDownHandler","on-gov-focus","on-gov-blur","wcagAutocomplete","wcagDescribedBy","focused","inputRef","messageEmpty","messageLoading","isSelected","aria-posinset","aria-setsize","onSelectHandler","aria-selected","doSearch","govInput","govSelect","keyCode","onArrowUp","onArrowDown","clearValue","status","FormCheckboxSizes","FormCheckboxClass","check","FormControlClass","FormInputSizes","FormInputVariants","InputTypes","FormInputClass","FormSelectSizes","FormSelectVariants","FormSelectClass","FormMultiselectSizes","FormMultiselectVariants","FormMultiSelectClass","wrap","FormSwitchSizes","FormSwitchClass","input","indicator","FormRadioSizes","FormRadioClass","FormMessageVariants","FormMessageClass","FormLabelClass","govForm","control","hasGroupChildren","innerLabel","mainElementsInControl","formElements","elements","messageElements","govFormCheckboxCss","GovFormCheckbox","checkboxId","passControlAttrs","passAttrToControl","passAttrToLabel","wrapCheckbox","noLabel","checked","onChange","onChangeHandler","aria-checked","aria-required","aria-invalid","govFormControlCss","GovFormControl","passChildAttrs","invalidChildAttrs","disabledChildAttrs","syncControlMessages","formElementDescriptionControl","_a","observer","disconnect","passChildAttr","success","bottomSlot","MutationObserver","observe","childList","ids","currentValue","fieldset","FormFileClass","area","attachments","formatBytes","bytes","units","parseInt","toFixed","fileAcceptValidation","accept","fileSizeValidation","maxSize","fileSize","round","govFormFileCss","GovFormFile","fileId","highlight","areaRef","unhighlight","files","validateFiles","events","inEvents","outEvents","preventDefaults","handleDrop","dataTransfer","isFile","isSizeValid","maxFileSize","isAcceptValid","newFile","acceptValid","sizeValid","govAddFile","govFiles","watchDisabled","registerListeners","multiple","displayAttachments","wcagAttachmentsLabel","wcag-remove-labelled-by","on-gov-remove","onRemoveFileHandler","errorAccept","errorSize","findIndex","removeFile","splice","govRemoveFile","FormGroupSizes","FormGroupClass","govFormGroupCss","GovFormGroup","validateGap","gap","govFormInputCss","GovFormInput","multiline","TEXTAREA","INPUT","inputType","onInput","onKeyUp","onKeyDown","autocorrect","rows","cols","aria-autocomplete","govKeyUp","govKeyDown","govFormLabelCss","GovFormLabel","legend","htmlFor","govFormMessageCss","GovFormMessage","messageId","govFormMultiSelectCss","GovFormMultiSelect","selectId","selectRef","option","autocompleteRef","getAvailableOptions","selectedOptions","newOption","getOptionIndex","getOptionElement","removeOption","initAutocomplete","selectOption","onTagRemove","FormPasswordPowerClass","bar","govFormPasswordPowerCss","GovFormPasswordPower","govFormRadioCss","GovFormRadio","radioId","FormSearchClass","govFormSearchCss","GovFormSearch","govFormSelectCss","GovFormSelect","markSelectedValue","govFormSwitchCss","GovFormSwitch","GridClass","GridItemClass","govGridCss","GovGrid","align-x","alignX","align-y","alignY","govGridItemCss","GovGridItem","size-sm","sizeSm","size-md","sizeMd","size-lg","sizeLg","size-xl","sizeXl","IconClass","dsVersion","iconCache","requestCache","isExternalUrl","startsWith","iconUrl","fetchIcon","fetch","resp","govIconCss","GovIcon","visible","iconData","waitUntilVisible","loadIconPathData","intersectionObserver","IntersectionObserver","entry","isIntersecting","rootMargin","LayoutClass","LayoutTypes","LayoutVariant","LayoutColumnClass","govLayoutCss","GovLayout","originalClass","isType","isVariant","isInverse","typeClass","govLayoutColumnCss","GovLayoutColumn","LoadingClass","govLoadingCss","GovLoading","MessageClass","govMessageCss","GovMessage","ModalClass","rootPrompt","dialog","bodyFix","govModalCss","GovModal","labelId","body","showModal","hideModal","LabelTag","labelTag","aria-modal","wcagCloseLabelledBy","NavClass","nav","NavItemClass","link","govNavCss","GovNav","govNavItemCss","GovNavItem","validateHref","PaginationSizes","PaginationVariants","PaginationTypes","PaginationClass","itemArrow","itemMore","itemSelect","paginate","totalItems","currentPage","pageSize","maxPages","totalPages","ceil","startPage","endPage","maxPagesBeforeCurrentPage","maxPagesAfterCurrentPage","startIndex","endIndex","pages","createArrayRange","govPaginationCss","GovPagination","pageSelectId","recalculatePagination","current","pagination","total","page","spreadSelectRef","getRef","pageResolver","isDisabled","ariaCurrent","prepareLinkUrl","wcagPageLabel","wcag-current","wcagSelectLabel","on-gov-change","isActivePageClass","govPage","resetSelectValue","govPromptCss","GovPrompt","SideNavClass","aside","SideNavItemClass","badge","govSideNavCss","GovSideNav","compact","govSideNavItemCss","GovSideNavItem","hasChilds","count","SkeletonVariants","SkeletonShapes","SkeletonAnimation","SkeletonClass","loader","govSkeletonCss","GovSkeleton","items","validateShape","shape","validateAnimation","animation","init","fill","dimenssionsStyles","width","height","circle","progress","pulse","aria-busy","aria-valuemin","aria-valuemax","aria-valuetext","SpacerSize","SpacerBreakpoints","SpacerClass","govSpacerCss","GovSpacer","NONE","validateBreakpoint","breakpoint","StatsBarIconPosition","StatsBarVariants","StatsBarClass","StatsBarItemClass","number","govStatsbarCss","GovStatsbar","validateIconPosition","iconPosition","govStatsbarItemCss","GovStatsbarItem","StepperVariants","StepperSizes","StepperClass","StepperItemClass","rootWithAnnot","govStepperCss","GovStepper","govStepperItemCss","GovStepperItem","TabVariants","TabTypes","TabOrientation","TabsClass","tabs","btn","TabsItemClass","govTabsCss","GovTabs","triggerRefs","formSelectId","prepareDataSource","resizeObserver","controller","tab","controlItem","getIdentifier","getTriggerIdentifier","triggerIdentifier","isDefault","contentIdentifier","active","default","controllers","defaultTab","focusIndex","reRender","temp","setActiveStatus","ResizeObserver","tabsRef","onKeydownHandler","compactControls","onGov-change","setActiveByIdentifier","getCurrentTab","govTabsItemCss","GovTabsItem","triggeId","isActive","TileClass","heading","govTileCss","GovTile","validateName","TilesClass","govTilesCss","GovTiles","columns","ToastVariants","ToastClass","govToastCss","GovToast","toastId","runTimer","existedToasts","gravity","toast","destroy","timeout","isSolid","isTimer","time","data-toast-id","--toast-duration","aria-live","closeLabel","TooltipVariant","TooltipSize","TooltipPosition","TooltipClass","TooltipContentClass","govTooltipCss","GovTooltip","tooltipId","validatePosition","createContentWrapper","hasContentInside","showTooltip","hideTooltip","windowWidth","innerWidth","trgWidth","offsetWidth","triggerPos","scrollLeft","scrollTop","tltWidth","TOP","transform","RIGHT","verifyPositionSpace","govTooltipContentCss","GovTooltipContent","visibility","isVisible","is-visible","WizardVariants","WizardSizes","WizzardClass","WizzardItemClass","govWizzardCss","GovWizzard","govWizzardItemCss","GovWizzardItem","DIV","prefixSlot"],"mappings":"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","sourcesContent":["export const NAMESPACE = 'core';\nexport const BUILD = /* core */ { allRenderFn: true, appendChildSlotFix: false, asyncLoading: true, asyncQueue: false, attachStyles: true, cloneNodeFix: false, cmpDidLoad: true, cmpDidRender: true, cmpDidUnload: false, cmpDidUpdate: false, cmpShouldUpdate: false, cmpWillLoad: true, cmpWillRender: true, cmpWillUpdate: true, connectedCallback: true, constructableCSS: true, cssAnnotations: true, devTools: false, disconnectedCallback: true, dynamicImportShim: false, element: false, event: true, hasRenderFn: true, hostListener: false, hostListenerTarget: false, hostListenerTargetBody: false, hostListenerTargetDocument: false, hostListenerTargetParent: false, hostListenerTargetWindow: false, hotModuleReplacement: false, hydrateClientSide: false, hydrateServerSide: false, hydratedAttribute: false, hydratedClass: true, invisiblePrehydration: false, isDebug: false, isDev: false, isTesting: false, lazyLoad: false, lifecycle: true, lifecycleDOMEvents: false, member: true, method: true, mode: false, observeAttribute: true, profile: false, prop: true, propBoolean: true, propMutable: true, propNumber: true, propString: true, reflect: true, safari10: false, scoped: false, scopedSlotTextContentFix: false, scriptDataOpts: false, shadowDelegatesFocus: false, shadowDom: false, shadowDomShim: false, slot: true, slotChildNodesFix: false, slotRelocation: true, state: true, style: true, svg: false, taskQueue: true, updatable: true, vdomAttribute: true, vdomClass: true, vdomFunctional: true, vdomKey: true, vdomListener: true, vdomPropOrAttr: true, vdomRef: true, vdomRender: true, vdomStyle: true, vdomText: true, vdomXlink: false, watchCallback: true };\nexport const Env = /* core */ {};\n","/**\n * Virtual DOM patching algorithm based on Snabbdom by\n * Simon Friis Vindum (@paldepind)\n * Licensed under the MIT License\n * https://github.com/snabbdom/snabbdom/blob/master/LICENSE\n *\n * Modified for Stencil's renderer and slot projection\n */\nlet scopeId;\nlet contentRef;\nlet hostTagName;\nlet customError;\nlet i = 0;\nlet useNativeShadowDom = false;\nlet checkSlotFallbackVisibility = false;\nlet checkSlotRelocate = false;\nlet isSvgMode = false;\nlet renderingRef = null;\nlet queueCongestion = 0;\nlet queuePending = false;\n/*\n Stencil Client Platform v2.20.0 | MIT Licensed | https://stenciljs.com\n */\nimport { BUILD, NAMESPACE } from '@stencil/core/internal/app-data';\nconst Build = {\n isDev: BUILD.isDev ? true : false,\n isBrowser: true,\n isServer: false,\n isTesting: BUILD.isTesting ? true : false,\n};\nconst Context = {};\nconst getAssetPath = (path) => {\n const assetUrl = new URL(path, plt.$resourcesUrl$);\n return assetUrl.origin !== win.location.origin ? assetUrl.href : assetUrl.pathname;\n};\nconst setAssetPath = (path) => (plt.$resourcesUrl$ = path);\nconst createTime = (fnName, tagName = '') => {\n if (BUILD.profile && performance.mark) {\n const key = `st:${fnName}:${tagName}:${i++}`;\n // Start\n performance.mark(key);\n // End\n return () => performance.measure(`[Stencil] ${fnName}() <${tagName}>`, key);\n }\n else {\n return () => {\n return;\n };\n }\n};\nconst uniqueTime = (key, measureText) => {\n if (BUILD.profile && performance.mark) {\n if (performance.getEntriesByName(key).length === 0) {\n performance.mark(key);\n }\n return () => {\n if (performance.getEntriesByName(measureText).length === 0) {\n performance.measure(measureText, key);\n }\n };\n }\n else {\n return () => {\n return;\n };\n }\n};\nconst inspect = (ref) => {\n const hostRef = getHostRef(ref);\n if (!hostRef) {\n return undefined;\n }\n const flags = hostRef.$flags$;\n const hostElement = hostRef.$hostElement$;\n return {\n renderCount: hostRef.$renderCount$,\n flags: {\n hasRendered: !!(flags & 2 /* HOST_FLAGS.hasRendered */),\n hasConnected: !!(flags & 1 /* HOST_FLAGS.hasConnected */),\n isWaitingForChildren: !!(flags & 4 /* HOST_FLAGS.isWaitingForChildren */),\n isConstructingInstance: !!(flags & 8 /* HOST_FLAGS.isConstructingInstance */),\n isQueuedForUpdate: !!(flags & 16 /* HOST_FLAGS.isQueuedForUpdate */),\n hasInitializedComponent: !!(flags & 32 /* HOST_FLAGS.hasInitializedComponent */),\n hasLoadedComponent: !!(flags & 64 /* HOST_FLAGS.hasLoadedComponent */),\n isWatchReady: !!(flags & 128 /* HOST_FLAGS.isWatchReady */),\n isListenReady: !!(flags & 256 /* HOST_FLAGS.isListenReady */),\n needsRerender: !!(flags & 512 /* HOST_FLAGS.needsRerender */),\n },\n instanceValues: hostRef.$instanceValues$,\n ancestorComponent: hostRef.$ancestorComponent$,\n hostElement,\n lazyInstance: hostRef.$lazyInstance$,\n vnode: hostRef.$vnode$,\n modeName: hostRef.$modeName$,\n onReadyPromise: hostRef.$onReadyPromise$,\n onReadyResolve: hostRef.$onReadyResolve$,\n onInstancePromise: hostRef.$onInstancePromise$,\n onInstanceResolve: hostRef.$onInstanceResolve$,\n onRenderResolve: hostRef.$onRenderResolve$,\n queuedListeners: hostRef.$queuedListeners$,\n rmListeners: hostRef.$rmListeners$,\n ['s-id']: hostElement['s-id'],\n ['s-cr']: hostElement['s-cr'],\n ['s-lr']: hostElement['s-lr'],\n ['s-p']: hostElement['s-p'],\n ['s-rc']: hostElement['s-rc'],\n ['s-sc']: hostElement['s-sc'],\n };\n};\nconst installDevTools = () => {\n if (BUILD.devTools) {\n const stencil = (win.stencil = win.stencil || {});\n const originalInspect = stencil.inspect;\n stencil.inspect = (ref) => {\n let result = inspect(ref);\n if (!result && typeof originalInspect === 'function') {\n result = originalInspect(ref);\n }\n return result;\n };\n }\n};\nconst CONTENT_REF_ID = 'r';\nconst ORG_LOCATION_ID = 'o';\nconst SLOT_NODE_ID = 's';\nconst TEXT_NODE_ID = 't';\nconst HYDRATE_ID = 's-id';\nconst HYDRATED_STYLE_ID = 'sty-id';\nconst HYDRATE_CHILD_ID = 'c-id';\nconst HYDRATED_CSS = '{visibility:hidden}.hydrated{visibility:inherit}';\nconst XLINK_NS = 'http://www.w3.org/1999/xlink';\n/**\n * Default style mode id\n */\n/**\n * Reusable empty obj/array\n * Don't add values to these!!\n */\nconst EMPTY_OBJ = {};\n/**\n * Namespaces\n */\nconst SVG_NS = 'http://www.w3.org/2000/svg';\nconst HTML_NS = 'http://www.w3.org/1999/xhtml';\nconst isDef = (v) => v != null;\nconst isComplexType = (o) => {\n // https://jsperf.com/typeof-fn-object/5\n o = typeof o;\n return o === 'object' || o === 'function';\n};\n/**\n * Production h() function based on Preact by\n * Jason Miller (@developit)\n * Licensed under the MIT License\n * https://github.com/developit/preact/blob/master/LICENSE\n *\n * Modified for Stencil's compiler and vdom\n */\n// const stack: any[] = [];\n// export function h(nodeName: string | d.FunctionalComponent, vnodeData: d.PropsType, child?: d.ChildType): d.VNode;\n// export function h(nodeName: string | d.FunctionalComponent, vnodeData: d.PropsType, ...children: d.ChildType[]): d.VNode;\nconst h = (nodeName, vnodeData, ...children) => {\n let child = null;\n let key = null;\n let slotName = null;\n let simple = false;\n let lastSimple = false;\n const vNodeChildren = [];\n const walk = (c) => {\n for (let i = 0; i < c.length; i++) {\n child = c[i];\n if (Array.isArray(child)) {\n walk(child);\n }\n else if (child != null && typeof child !== 'boolean') {\n if ((simple = typeof nodeName !== 'function' && !isComplexType(child))) {\n child = String(child);\n }\n else if (BUILD.isDev && typeof nodeName !== 'function' && child.$flags$ === undefined) {\n consoleDevError(`vNode passed as children has unexpected type.\nMake sure it's using the correct h() function.\nEmpty objects can also be the cause, look for JSX comments that became objects.`);\n }\n if (simple && lastSimple) {\n // If the previous child was simple (string), we merge both\n vNodeChildren[vNodeChildren.length - 1].$text$ += child;\n }\n else {\n // Append a new vNode, if it's text, we create a text vNode\n vNodeChildren.push(simple ? newVNode(null, child) : child);\n }\n lastSimple = simple;\n }\n }\n };\n walk(children);\n if (vnodeData) {\n if (BUILD.isDev && nodeName === 'input') {\n validateInputProperties(vnodeData);\n }\n // normalize class / classname attributes\n if (BUILD.vdomKey && vnodeData.key) {\n key = vnodeData.key;\n }\n if (BUILD.slotRelocation && vnodeData.name) {\n slotName = vnodeData.name;\n }\n if (BUILD.vdomClass) {\n const classData = vnodeData.className || vnodeData.class;\n if (classData) {\n vnodeData.class =\n typeof classData !== 'object'\n ? classData\n : Object.keys(classData)\n .filter((k) => classData[k])\n .join(' ');\n }\n }\n }\n if (BUILD.isDev && vNodeChildren.some(isHost)) {\n consoleDevError(`The <Host> must be the single root component. Make sure:\n- You are NOT using hostData() and <Host> in the same component.\n- <Host> is used once, and it's the single root component of the render() function.`);\n }\n if (BUILD.vdomFunctional && typeof nodeName === 'function') {\n // nodeName is a functional component\n return nodeName(vnodeData === null ? {} : vnodeData, vNodeChildren, vdomFnUtils);\n }\n const vnode = newVNode(nodeName, null);\n vnode.$attrs$ = vnodeData;\n if (vNodeChildren.length > 0) {\n vnode.$children$ = vNodeChildren;\n }\n if (BUILD.vdomKey) {\n vnode.$key$ = key;\n }\n if (BUILD.slotRelocation) {\n vnode.$name$ = slotName;\n }\n return vnode;\n};\nconst newVNode = (tag, text) => {\n const vnode = {\n $flags$: 0,\n $tag$: tag,\n $text$: text,\n $elm$: null,\n $children$: null,\n };\n if (BUILD.vdomAttribute) {\n vnode.$attrs$ = null;\n }\n if (BUILD.vdomKey) {\n vnode.$key$ = null;\n }\n if (BUILD.slotRelocation) {\n vnode.$name$ = null;\n }\n return vnode;\n};\nconst Host = {};\nconst isHost = (node) => node && node.$tag$ === Host;\nconst vdomFnUtils = {\n forEach: (children, cb) => children.map(convertToPublic).forEach(cb),\n map: (children, cb) => children.map(convertToPublic).map(cb).map(convertToPrivate),\n};\nconst convertToPublic = (node) => ({\n vattrs: node.$attrs$,\n vchildren: node.$children$,\n vkey: node.$key$,\n vname: node.$name$,\n vtag: node.$tag$,\n vtext: node.$text$,\n});\nconst convertToPrivate = (node) => {\n if (typeof node.vtag === 'function') {\n const vnodeData = Object.assign({}, node.vattrs);\n if (node.vkey) {\n vnodeData.key = node.vkey;\n }\n if (node.vname) {\n vnodeData.name = node.vname;\n }\n return h(node.vtag, vnodeData, ...(node.vchildren || []));\n }\n const vnode = newVNode(node.vtag, node.vtext);\n vnode.$attrs$ = node.vattrs;\n vnode.$children$ = node.vchildren;\n vnode.$key$ = node.vkey;\n vnode.$name$ = node.vname;\n return vnode;\n};\n/**\n * Validates the ordering of attributes on an input element\n * @param inputElm the element to validate\n */\nconst validateInputProperties = (inputElm) => {\n const props = Object.keys(inputElm);\n const value = props.indexOf('value');\n if (value === -1) {\n return;\n }\n const typeIndex = props.indexOf('type');\n const minIndex = props.indexOf('min');\n const maxIndex = props.indexOf('max');\n const stepIndex = props.indexOf('step');\n if (value < typeIndex || value < minIndex || value < maxIndex || value < stepIndex) {\n consoleDevWarn(`The \"value\" prop of <input> should be set after \"min\", \"max\", \"type\" and \"step\"`);\n }\n};\nconst initializeClientHydrate = (hostElm, tagName, hostId, hostRef) => {\n const endHydrate = createTime('hydrateClient', tagName);\n const shadowRoot = hostElm.shadowRoot;\n const childRenderNodes = [];\n const slotNodes = [];\n const shadowRootNodes = BUILD.shadowDom && shadowRoot ? [] : null;\n const vnode = (hostRef.$vnode$ = newVNode(tagName, null));\n if (!plt.$orgLocNodes$) {\n initializeDocumentHydrate(doc.body, (plt.$orgLocNodes$ = new Map()));\n }\n hostElm[HYDRATE_ID] = hostId;\n hostElm.removeAttribute(HYDRATE_ID);\n clientHydrate(vnode, childRenderNodes, slotNodes, shadowRootNodes, hostElm, hostElm, hostId);\n childRenderNodes.map((c) => {\n const orgLocationId = c.$hostId$ + '.' + c.$nodeId$;\n const orgLocationNode = plt.$orgLocNodes$.get(orgLocationId);\n const node = c.$elm$;\n if (orgLocationNode && supportsShadow && orgLocationNode['s-en'] === '') {\n orgLocationNode.parentNode.insertBefore(node, orgLocationNode.nextSibling);\n }\n if (!shadowRoot) {\n node['s-hn'] = tagName;\n if (orgLocationNode) {\n node['s-ol'] = orgLocationNode;\n node['s-ol']['s-nr'] = node;\n }\n }\n plt.$orgLocNodes$.delete(orgLocationId);\n });\n if (BUILD.shadowDom && shadowRoot) {\n shadowRootNodes.map((shadowRootNode) => {\n if (shadowRootNode) {\n shadowRoot.appendChild(shadowRootNode);\n }\n });\n }\n endHydrate();\n};\nconst clientHydrate = (parentVNode, childRenderNodes, slotNodes, shadowRootNodes, hostElm, node, hostId) => {\n let childNodeType;\n let childIdSplt;\n let childVNode;\n let i;\n if (node.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n childNodeType = node.getAttribute(HYDRATE_CHILD_ID);\n if (childNodeType) {\n // got the node data from the element's attribute\n // `${hostId}.${nodeId}.${depth}.${index}`\n childIdSplt = childNodeType.split('.');\n if (childIdSplt[0] === hostId || childIdSplt[0] === '0') {\n childVNode = {\n $flags$: 0,\n $hostId$: childIdSplt[0],\n $nodeId$: childIdSplt[1],\n $depth$: childIdSplt[2],\n $index$: childIdSplt[3],\n $tag$: node.tagName.toLowerCase(),\n $elm$: node,\n $attrs$: null,\n $children$: null,\n $key$: null,\n $name$: null,\n $text$: null,\n };\n childRenderNodes.push(childVNode);\n node.removeAttribute(HYDRATE_CHILD_ID);\n // this is a new child vnode\n // so ensure its parent vnode has the vchildren array\n if (!parentVNode.$children$) {\n parentVNode.$children$ = [];\n }\n // add our child vnode to a specific index of the vnode's children\n parentVNode.$children$[childVNode.$index$] = childVNode;\n // this is now the new parent vnode for all the next child checks\n parentVNode = childVNode;\n if (shadowRootNodes && childVNode.$depth$ === '0') {\n shadowRootNodes[childVNode.$index$] = childVNode.$elm$;\n }\n }\n }\n // recursively drill down, end to start so we can remove nodes\n for (i = node.childNodes.length - 1; i >= 0; i--) {\n clientHydrate(parentVNode, childRenderNodes, slotNodes, shadowRootNodes, hostElm, node.childNodes[i], hostId);\n }\n if (node.shadowRoot) {\n // keep drilling down through the shadow root nodes\n for (i = node.shadowRoot.childNodes.length - 1; i >= 0; i--) {\n clientHydrate(parentVNode, childRenderNodes, slotNodes, shadowRootNodes, hostElm, node.shadowRoot.childNodes[i], hostId);\n }\n }\n }\n else if (node.nodeType === 8 /* NODE_TYPE.CommentNode */) {\n // `${COMMENT_TYPE}.${hostId}.${nodeId}.${depth}.${index}`\n childIdSplt = node.nodeValue.split('.');\n if (childIdSplt[1] === hostId || childIdSplt[1] === '0') {\n // comment node for either the host id or a 0 host id\n childNodeType = childIdSplt[0];\n childVNode = {\n $flags$: 0,\n $hostId$: childIdSplt[1],\n $nodeId$: childIdSplt[2],\n $depth$: childIdSplt[3],\n $index$: childIdSplt[4],\n $elm$: node,\n $attrs$: null,\n $children$: null,\n $key$: null,\n $name$: null,\n $tag$: null,\n $text$: null,\n };\n if (childNodeType === TEXT_NODE_ID) {\n childVNode.$elm$ = node.nextSibling;\n if (childVNode.$elm$ && childVNode.$elm$.nodeType === 3 /* NODE_TYPE.TextNode */) {\n childVNode.$text$ = childVNode.$elm$.textContent;\n childRenderNodes.push(childVNode);\n // remove the text comment since it's no longer needed\n node.remove();\n if (!parentVNode.$children$) {\n parentVNode.$children$ = [];\n }\n parentVNode.$children$[childVNode.$index$] = childVNode;\n if (shadowRootNodes && childVNode.$depth$ === '0') {\n shadowRootNodes[childVNode.$index$] = childVNode.$elm$;\n }\n }\n }\n else if (childVNode.$hostId$ === hostId) {\n // this comment node is specifcally for this host id\n if (childNodeType === SLOT_NODE_ID) {\n // `${SLOT_NODE_ID}.${hostId}.${nodeId}.${depth}.${index}.${slotName}`;\n childVNode.$tag$ = 'slot';\n if (childIdSplt[5]) {\n node['s-sn'] = childVNode.$name$ = childIdSplt[5];\n }\n else {\n node['s-sn'] = '';\n }\n node['s-sr'] = true;\n if (BUILD.shadowDom && shadowRootNodes) {\n // browser support shadowRoot and this is a shadow dom component\n // create an actual slot element\n childVNode.$elm$ = doc.createElement(childVNode.$tag$);\n if (childVNode.$name$) {\n // add the slot name attribute\n childVNode.$elm$.setAttribute('name', childVNode.$name$);\n }\n // insert the new slot element before the slot comment\n node.parentNode.insertBefore(childVNode.$elm$, node);\n // remove the slot comment since it's not needed for shadow\n node.remove();\n if (childVNode.$depth$ === '0') {\n shadowRootNodes[childVNode.$index$] = childVNode.$elm$;\n }\n }\n slotNodes.push(childVNode);\n if (!parentVNode.$children$) {\n parentVNode.$children$ = [];\n }\n parentVNode.$children$[childVNode.$index$] = childVNode;\n }\n else if (childNodeType === CONTENT_REF_ID) {\n // `${CONTENT_REF_ID}.${hostId}`;\n if (BUILD.shadowDom && shadowRootNodes) {\n // remove the content ref comment since it's not needed for shadow\n node.remove();\n }\n else if (BUILD.slotRelocation) {\n hostElm['s-cr'] = node;\n node['s-cn'] = true;\n }\n }\n }\n }\n }\n else if (parentVNode && parentVNode.$tag$ === 'style') {\n const vnode = newVNode(null, node.textContent);\n vnode.$elm$ = node;\n vnode.$index$ = '0';\n parentVNode.$children$ = [vnode];\n }\n};\nconst initializeDocumentHydrate = (node, orgLocNodes) => {\n if (node.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n let i = 0;\n for (; i < node.childNodes.length; i++) {\n initializeDocumentHydrate(node.childNodes[i], orgLocNodes);\n }\n if (node.shadowRoot) {\n for (i = 0; i < node.shadowRoot.childNodes.length; i++) {\n initializeDocumentHydrate(node.shadowRoot.childNodes[i], orgLocNodes);\n }\n }\n }\n else if (node.nodeType === 8 /* NODE_TYPE.CommentNode */) {\n const childIdSplt = node.nodeValue.split('.');\n if (childIdSplt[0] === ORG_LOCATION_ID) {\n orgLocNodes.set(childIdSplt[1] + '.' + childIdSplt[2], node);\n node.nodeValue = '';\n // useful to know if the original location is\n // the root light-dom of a shadow dom component\n node['s-en'] = childIdSplt[3];\n }\n }\n};\n// Private\nconst computeMode = (elm) => modeResolutionChain.map((h) => h(elm)).find((m) => !!m);\n// Public\nconst setMode = (handler) => modeResolutionChain.push(handler);\nconst getMode = (ref) => getHostRef(ref).$modeName$;\n/**\n * Parse a new property value for a given property type.\n *\n * While the prop value can reasonably be expected to be of `any` type as far as TypeScript's type checker is concerned,\n * it is not safe to assume that the string returned by evaluating `typeof propValue` matches:\n * 1. `any`, the type given to `propValue` in the function signature\n * 2. the type stored from `propType`.\n *\n * This function provides the capability to parse/coerce a property's value to potentially any other JavaScript type.\n *\n * Property values represented in TSX preserve their type information. In the example below, the number 0 is passed to\n * a component. This `propValue` will preserve its type information (`typeof propValue === 'number'`). Note that is\n * based on the type of the value being passed in, not the type declared of the class member decorated with `@Prop`.\n * ```tsx\n * <my-cmp prop-val={0}></my-cmp>\n * ```\n *\n * HTML prop values on the other hand, will always a string\n *\n * @param propValue the new value to coerce to some type\n * @param propType the type of the prop, expressed as a binary number\n * @returns the parsed/coerced value\n */\nconst parsePropertyValue = (propValue, propType) => {\n // ensure this value is of the correct prop type\n if (propValue != null && !isComplexType(propValue)) {\n if (BUILD.propBoolean && propType & 4 /* MEMBER_FLAGS.Boolean */) {\n // per the HTML spec, any string value means it is a boolean true value\n // but we'll cheat here and say that the string \"false\" is the boolean false\n return propValue === 'false' ? false : propValue === '' || !!propValue;\n }\n if (BUILD.propNumber && propType & 2 /* MEMBER_FLAGS.Number */) {\n // force it to be a number\n return parseFloat(propValue);\n }\n if (BUILD.propString && propType & 1 /* MEMBER_FLAGS.String */) {\n // could have been passed as a number or boolean\n // but we still want it as a string\n return String(propValue);\n }\n // redundant return here for better minification\n return propValue;\n }\n // not sure exactly what type we want\n // so no need to change to a different type\n return propValue;\n};\nconst getElement = (ref) => (BUILD.lazyLoad ? getHostRef(ref).$hostElement$ : ref);\nconst createEvent = (ref, name, flags) => {\n const elm = getElement(ref);\n return {\n emit: (detail) => {\n if (BUILD.isDev && !elm.isConnected) {\n consoleDevWarn(`The \"${name}\" event was emitted, but the dispatcher node is no longer connected to the dom.`);\n }\n return emitEvent(elm, name, {\n bubbles: !!(flags & 4 /* EVENT_FLAGS.Bubbles */),\n composed: !!(flags & 2 /* EVENT_FLAGS.Composed */),\n cancelable: !!(flags & 1 /* EVENT_FLAGS.Cancellable */),\n detail,\n });\n },\n };\n};\n/**\n * Helper function to create & dispatch a custom Event on a provided target\n * @param elm the target of the Event\n * @param name the name to give the custom Event\n * @param opts options for configuring a custom Event\n * @returns the custom Event\n */\nconst emitEvent = (elm, name, opts) => {\n const ev = plt.ce(name, opts);\n elm.dispatchEvent(ev);\n return ev;\n};\nconst rootAppliedStyles = /*@__PURE__*/ new WeakMap();\nconst registerStyle = (scopeId, cssText, allowCS) => {\n let style = styles.get(scopeId);\n if (supportsConstructableStylesheets && allowCS) {\n style = (style || new CSSStyleSheet());\n if (typeof style === 'string') {\n style = cssText;\n }\n else {\n style.replaceSync(cssText);\n }\n }\n else {\n style = cssText;\n }\n styles.set(scopeId, style);\n};\nconst addStyle = (styleContainerNode, cmpMeta, mode, hostElm) => {\n let scopeId = getScopeId(cmpMeta, mode);\n const style = styles.get(scopeId);\n if (!BUILD.attachStyles) {\n return scopeId;\n }\n // if an element is NOT connected then getRootNode() will return the wrong root node\n // so the fallback is to always use the document for the root node in those cases\n styleContainerNode = styleContainerNode.nodeType === 11 /* NODE_TYPE.DocumentFragment */ ? styleContainerNode : doc;\n if (style) {\n if (typeof style === 'string') {\n styleContainerNode = styleContainerNode.head || styleContainerNode;\n let appliedStyles = rootAppliedStyles.get(styleContainerNode);\n let styleElm;\n if (!appliedStyles) {\n rootAppliedStyles.set(styleContainerNode, (appliedStyles = new Set()));\n }\n if (!appliedStyles.has(scopeId)) {\n if (BUILD.hydrateClientSide &&\n styleContainerNode.host &&\n (styleElm = styleContainerNode.querySelector(`[${HYDRATED_STYLE_ID}=\"${scopeId}\"]`))) {\n // This is only happening on native shadow-dom, do not needs CSS var shim\n styleElm.innerHTML = style;\n }\n else {\n if (BUILD.cssVarShim && plt.$cssShim$) {\n styleElm = plt.$cssShim$.createHostStyle(hostElm, scopeId, style, !!(cmpMeta.$flags$ & 10 /* CMP_FLAGS.needsScopedEncapsulation */));\n const newScopeId = styleElm['s-sc'];\n if (newScopeId) {\n scopeId = newScopeId;\n // we don't want to add this styleID to the appliedStyles Set\n // since the cssVarShim might need to apply several different\n // stylesheets for the same component\n appliedStyles = null;\n }\n }\n else {\n styleElm = doc.createElement('style');\n styleElm.innerHTML = style;\n }\n if (BUILD.hydrateServerSide || BUILD.hotModuleReplacement) {\n styleElm.setAttribute(HYDRATED_STYLE_ID, scopeId);\n }\n styleContainerNode.insertBefore(styleElm, styleContainerNode.querySelector('link'));\n }\n if (appliedStyles) {\n appliedStyles.add(scopeId);\n }\n }\n }\n else if (BUILD.constructableCSS && !styleContainerNode.adoptedStyleSheets.includes(style)) {\n styleContainerNode.adoptedStyleSheets = [...styleContainerNode.adoptedStyleSheets, style];\n }\n }\n return scopeId;\n};\nconst attachStyles = (hostRef) => {\n const cmpMeta = hostRef.$cmpMeta$;\n const elm = hostRef.$hostElement$;\n const flags = cmpMeta.$flags$;\n const endAttachStyles = createTime('attachStyles', cmpMeta.$tagName$);\n const scopeId = addStyle(BUILD.shadowDom && supportsShadow && elm.shadowRoot ? elm.shadowRoot : elm.getRootNode(), cmpMeta, hostRef.$modeName$, elm);\n if ((BUILD.shadowDom || BUILD.scoped) && BUILD.cssAnnotations && flags & 10 /* CMP_FLAGS.needsScopedEncapsulation */) {\n // only required when we're NOT using native shadow dom (slot)\n // or this browser doesn't support native shadow dom\n // and this host element was NOT created with SSR\n // let's pick out the inner content for slot projection\n // create a node to represent where the original\n // content was first placed, which is useful later on\n // DOM WRITE!!\n elm['s-sc'] = scopeId;\n elm.classList.add(scopeId + '-h');\n if (BUILD.scoped && flags & 2 /* CMP_FLAGS.scopedCssEncapsulation */) {\n elm.classList.add(scopeId + '-s');\n }\n }\n endAttachStyles();\n};\nconst getScopeId = (cmp, mode) => 'sc-' + (BUILD.mode && mode && cmp.$flags$ & 32 /* CMP_FLAGS.hasMode */ ? cmp.$tagName$ + '-' + mode : cmp.$tagName$);\nconst convertScopedToShadow = (css) => css.replace(/\\/\\*!@([^\\/]+)\\*\\/[^\\{]+\\{/g, '$1{');\n/**\n * Production setAccessor() function based on Preact by\n * Jason Miller (@developit)\n * Licensed under the MIT License\n * https://github.com/developit/preact/blob/master/LICENSE\n *\n * Modified for Stencil's compiler and vdom\n */\nconst setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {\n if (oldValue !== newValue) {\n let isProp = isMemberInElement(elm, memberName);\n let ln = memberName.toLowerCase();\n if (BUILD.vdomClass && memberName === 'class') {\n const classList = elm.classList;\n const oldClasses = parseClassList(oldValue);\n const newClasses = parseClassList(newValue);\n classList.remove(...oldClasses.filter((c) => c && !newClasses.includes(c)));\n classList.add(...newClasses.filter((c) => c && !oldClasses.includes(c)));\n }\n else if (BUILD.vdomStyle && memberName === 'style') {\n // update style attribute, css properties and values\n if (BUILD.updatable) {\n for (const prop in oldValue) {\n if (!newValue || newValue[prop] == null) {\n if (!BUILD.hydrateServerSide && prop.includes('-')) {\n elm.style.removeProperty(prop);\n }\n else {\n elm.style[prop] = '';\n }\n }\n }\n }\n for (const prop in newValue) {\n if (!oldValue || newValue[prop] !== oldValue[prop]) {\n if (!BUILD.hydrateServerSide && prop.includes('-')) {\n elm.style.setProperty(prop, newValue[prop]);\n }\n else {\n elm.style[prop] = newValue[prop];\n }\n }\n }\n }\n else if (BUILD.vdomKey && memberName === 'key')\n ;\n else if (BUILD.vdomRef && memberName === 'ref') {\n // minifier will clean this up\n if (newValue) {\n newValue(elm);\n }\n }\n else if (BUILD.vdomListener &&\n (BUILD.lazyLoad ? !isProp : !elm.__lookupSetter__(memberName)) &&\n memberName[0] === 'o' &&\n memberName[1] === 'n') {\n // Event Handlers\n // so if the member name starts with \"on\" and the 3rd characters is\n // a capital letter, and it's not already a member on the element,\n // then we're assuming it's an event listener\n if (memberName[2] === '-') {\n // on- prefixed events\n // allows to be explicit about the dom event to listen without any magic\n // under the hood:\n // <my-cmp on-click> // listens for \"click\"\n // <my-cmp on-Click> // listens for \"Click\"\n // <my-cmp on-ionChange> // listens for \"ionChange\"\n // <my-cmp on-EVENTS> // listens for \"EVENTS\"\n memberName = memberName.slice(3);\n }\n else if (isMemberInElement(win, ln)) {\n // standard event\n // the JSX attribute could have been \"onMouseOver\" and the\n // member name \"onmouseover\" is on the window's prototype\n // so let's add the listener \"mouseover\", which is all lowercased\n memberName = ln.slice(2);\n }\n else {\n // custom event\n // the JSX attribute could have been \"onMyCustomEvent\"\n // so let's trim off the \"on\" prefix and lowercase the first character\n // and add the listener \"myCustomEvent\"\n // except for the first character, we keep the event name case\n memberName = ln[2] + memberName.slice(3);\n }\n if (oldValue) {\n plt.rel(elm, memberName, oldValue, false);\n }\n if (newValue) {\n plt.ael(elm, memberName, newValue, false);\n }\n }\n else if (BUILD.vdomPropOrAttr) {\n // Set property if it exists and it's not a SVG\n const isComplex = isComplexType(newValue);\n if ((isProp || (isComplex && newValue !== null)) && !isSvg) {\n try {\n if (!elm.tagName.includes('-')) {\n const n = newValue == null ? '' : newValue;\n // Workaround for Safari, moving the <input> caret when re-assigning the same valued\n if (memberName === 'list') {\n isProp = false;\n }\n else if (oldValue == null || elm[memberName] != n) {\n elm[memberName] = n;\n }\n }\n else {\n elm[memberName] = newValue;\n }\n }\n catch (e) { }\n }\n /**\n * Need to manually update attribute if:\n * - memberName is not an attribute\n * - if we are rendering the host element in order to reflect attribute\n * - if it's a SVG, since properties might not work in <svg>\n * - if the newValue is null/undefined or 'false'.\n */\n let xlink = false;\n if (BUILD.vdomXlink) {\n if (ln !== (ln = ln.replace(/^xlink\\:?/, ''))) {\n memberName = ln;\n xlink = true;\n }\n }\n if (newValue == null || newValue === false) {\n if (newValue !== false || elm.getAttribute(memberName) === '') {\n if (BUILD.vdomXlink && xlink) {\n elm.removeAttributeNS(XLINK_NS, memberName);\n }\n else {\n elm.removeAttribute(memberName);\n }\n }\n }\n else if ((!isProp || flags & 4 /* VNODE_FLAGS.isHost */ || isSvg) && !isComplex) {\n newValue = newValue === true ? '' : newValue;\n if (BUILD.vdomXlink && xlink) {\n elm.setAttributeNS(XLINK_NS, memberName, newValue);\n }\n else {\n elm.setAttribute(memberName, newValue);\n }\n }\n }\n }\n};\nconst parseClassListRegex = /\\s/;\nconst parseClassList = (value) => (!value ? [] : value.split(parseClassListRegex));\nconst updateElement = (oldVnode, newVnode, isSvgMode, memberName) => {\n // if the element passed in is a shadow root, which is a document fragment\n // then we want to be adding attrs/props to the shadow root's \"host\" element\n // if it's not a shadow root, then we add attrs/props to the same element\n const elm = newVnode.$elm$.nodeType === 11 /* NODE_TYPE.DocumentFragment */ && newVnode.$elm$.host\n ? newVnode.$elm$.host\n : newVnode.$elm$;\n const oldVnodeAttrs = (oldVnode && oldVnode.$attrs$) || EMPTY_OBJ;\n const newVnodeAttrs = newVnode.$attrs$ || EMPTY_OBJ;\n if (BUILD.updatable) {\n // remove attributes no longer present on the vnode by setting them to undefined\n for (memberName in oldVnodeAttrs) {\n if (!(memberName in newVnodeAttrs)) {\n setAccessor(elm, memberName, oldVnodeAttrs[memberName], undefined, isSvgMode, newVnode.$flags$);\n }\n }\n }\n // add new & update changed attributes\n for (memberName in newVnodeAttrs) {\n setAccessor(elm, memberName, oldVnodeAttrs[memberName], newVnodeAttrs[memberName], isSvgMode, newVnode.$flags$);\n }\n};\n/**\n * Create a DOM Node corresponding to one of the children of a given VNode.\n *\n * @param oldParentVNode the parent VNode from the previous render\n * @param newParentVNode the parent VNode from the current render\n * @param childIndex the index of the VNode, in the _new_ parent node's\n * children, for which we will create a new DOM node\n * @param parentElm the parent DOM node which our new node will be a child of\n * @returns the newly created node\n */\nconst createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {\n // tslint:disable-next-line: prefer-const\n const newVNode = newParentVNode.$children$[childIndex];\n let i = 0;\n let elm;\n let childNode;\n let oldVNode;\n if (BUILD.slotRelocation && !useNativeShadowDom) {\n // remember for later we need to check to relocate nodes\n checkSlotRelocate = true;\n if (newVNode.$tag$ === 'slot') {\n if (scopeId) {\n // scoped css needs to add its scoped id to the parent element\n parentElm.classList.add(scopeId + '-s');\n }\n newVNode.$flags$ |= newVNode.$children$\n ? // slot element has fallback content\n 2 /* VNODE_FLAGS.isSlotFallback */\n : // slot element does not have fallback content\n 1 /* VNODE_FLAGS.isSlotReference */;\n }\n }\n if (BUILD.isDev && newVNode.$elm$) {\n consoleDevError(`The JSX ${newVNode.$text$ !== null ? `\"${newVNode.$text$}\" text` : `\"${newVNode.$tag$}\" element`} node should not be shared within the same renderer. The renderer caches element lookups in order to improve performance. However, a side effect from this is that the exact same JSX node should not be reused. For more information please see https://stenciljs.com/docs/templating-jsx#avoid-shared-jsx-nodes`);\n }\n if (BUILD.vdomText && newVNode.$text$ !== null) {\n // create text node\n elm = newVNode.$elm$ = doc.createTextNode(newVNode.$text$);\n }\n else if (BUILD.slotRelocation && newVNode.$flags$ & 1 /* VNODE_FLAGS.isSlotReference */) {\n // create a slot reference node\n elm = newVNode.$elm$ =\n BUILD.isDebug || BUILD.hydrateServerSide ? slotReferenceDebugNode(newVNode) : doc.createTextNode('');\n }\n else {\n if (BUILD.svg && !isSvgMode) {\n isSvgMode = newVNode.$tag$ === 'svg';\n }\n // create element\n elm = newVNode.$elm$ = (BUILD.svg\n ? doc.createElementNS(isSvgMode ? SVG_NS : HTML_NS, BUILD.slotRelocation && newVNode.$flags$ & 2 /* VNODE_FLAGS.isSlotFallback */\n ? 'slot-fb'\n : newVNode.$tag$)\n : doc.createElement(BUILD.slotRelocation && newVNode.$flags$ & 2 /* VNODE_FLAGS.isSlotFallback */\n ? 'slot-fb'\n : newVNode.$tag$));\n if (BUILD.svg && isSvgMode && newVNode.$tag$ === 'foreignObject') {\n isSvgMode = false;\n }\n // add css classes, attrs, props, listeners, etc.\n if (BUILD.vdomAttribute) {\n updateElement(null, newVNode, isSvgMode);\n }\n if ((BUILD.shadowDom || BUILD.scoped) && isDef(scopeId) && elm['s-si'] !== scopeId) {\n // if there is a scopeId and this is the initial render\n // then let's add the scopeId as a css class\n elm.classList.add((elm['s-si'] = scopeId));\n }\n if (newVNode.$children$) {\n for (i = 0; i < newVNode.$children$.length; ++i) {\n // create the node\n childNode = createElm(oldParentVNode, newVNode, i, elm);\n // return node could have been null\n if (childNode) {\n // append our new node\n elm.appendChild(childNode);\n }\n }\n }\n if (BUILD.svg) {\n if (newVNode.$tag$ === 'svg') {\n // Only reset the SVG context when we're exiting <svg> element\n isSvgMode = false;\n }\n else if (elm.tagName === 'foreignObject') {\n // Reenter SVG context when we're exiting <foreignObject> element\n isSvgMode = true;\n }\n }\n }\n if (BUILD.slotRelocation) {\n elm['s-hn'] = hostTagName;\n if (newVNode.$flags$ & (2 /* VNODE_FLAGS.isSlotFallback */ | 1 /* VNODE_FLAGS.isSlotReference */)) {\n // remember the content reference comment\n elm['s-sr'] = true;\n // remember the content reference comment\n elm['s-cr'] = contentRef;\n // remember the slot name, or empty string for default slot\n elm['s-sn'] = newVNode.$name$ || '';\n // check if we've got an old vnode for this slot\n oldVNode = oldParentVNode && oldParentVNode.$children$ && oldParentVNode.$children$[childIndex];\n if (oldVNode && oldVNode.$tag$ === newVNode.$tag$ && oldParentVNode.$elm$) {\n // we've got an old slot vnode and the wrapper is being replaced\n // so let's move the old slot content back to it's original location\n putBackInOriginalLocation(oldParentVNode.$elm$, false);\n }\n }\n }\n return elm;\n};\nconst putBackInOriginalLocation = (parentElm, recursive) => {\n plt.$flags$ |= 1 /* PLATFORM_FLAGS.isTmpDisconnected */;\n const oldSlotChildNodes = parentElm.childNodes;\n for (let i = oldSlotChildNodes.length - 1; i >= 0; i--) {\n const childNode = oldSlotChildNodes[i];\n if (childNode['s-hn'] !== hostTagName && childNode['s-ol']) {\n // // this child node in the old element is from another component\n // // remove this node from the old slot's parent\n // childNode.remove();\n // and relocate it back to it's original location\n parentReferenceNode(childNode).insertBefore(childNode, referenceNode(childNode));\n // remove the old original location comment entirely\n // later on the patch function will know what to do\n // and move this to the correct spot in need be\n childNode['s-ol'].remove();\n childNode['s-ol'] = undefined;\n checkSlotRelocate = true;\n }\n if (recursive) {\n putBackInOriginalLocation(childNode, recursive);\n }\n }\n plt.$flags$ &= ~1 /* PLATFORM_FLAGS.isTmpDisconnected */;\n};\nconst addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => {\n let containerElm = ((BUILD.slotRelocation && parentElm['s-cr'] && parentElm['s-cr'].parentNode) || parentElm);\n let childNode;\n if (BUILD.shadowDom && containerElm.shadowRoot && containerElm.tagName === hostTagName) {\n containerElm = containerElm.shadowRoot;\n }\n for (; startIdx <= endIdx; ++startIdx) {\n if (vnodes[startIdx]) {\n childNode = createElm(null, parentVNode, startIdx, parentElm);\n if (childNode) {\n vnodes[startIdx].$elm$ = childNode;\n containerElm.insertBefore(childNode, BUILD.slotRelocation ? referenceNode(before) : before);\n }\n }\n }\n};\nconst removeVnodes = (vnodes, startIdx, endIdx, vnode, elm) => {\n for (; startIdx <= endIdx; ++startIdx) {\n if ((vnode = vnodes[startIdx])) {\n elm = vnode.$elm$;\n callNodeRefs(vnode);\n if (BUILD.slotRelocation) {\n // we're removing this element\n // so it's possible we need to show slot fallback content now\n checkSlotFallbackVisibility = true;\n if (elm['s-ol']) {\n // remove the original location comment\n elm['s-ol'].remove();\n }\n else {\n // it's possible that child nodes of the node\n // that's being removed are slot nodes\n putBackInOriginalLocation(elm, true);\n }\n }\n // remove the vnode's element from the dom\n elm.remove();\n }\n }\n};\n/**\n * Reconcile the children of a new VNode with the children of an old VNode by\n * traversing the two collections of children, identifying nodes that are\n * conserved or changed, calling out to `patch` to make any necessary\n * updates to the DOM, and rearranging DOM nodes as needed.\n *\n * The algorithm for reconciling children works by analyzing two 'windows' onto\n * the two arrays of children (`oldCh` and `newCh`). We keep track of the\n * 'windows' by storing start and end indices and references to the\n * corresponding array entries. Initially the two 'windows' are basically equal\n * to the entire array, but we progressively narrow the windows until there are\n * no children left to update by doing the following:\n *\n * 1. Skip any `null` entries at the beginning or end of the two arrays, so\n * that if we have an initial array like the following we'll end up dealing\n * only with a window bounded by the highlighted elements:\n *\n * [null, null, VNode1 , ... , VNode2, null, null]\n * ^^^^^^ ^^^^^^\n *\n * 2. Check to see if the elements at the head and tail positions are equal\n * across the windows. This will basically detect elements which haven't\n * been added, removed, or changed position, i.e. if you had the following\n * VNode elements (represented as HTML):\n *\n * oldVNode: `<div><p><span>HEY</span></p></div>`\n * newVNode: `<div><p><span>THERE</span></p></div>`\n *\n * Then when comparing the children of the `<div>` tag we check the equality\n * of the VNodes corresponding to the `<p>` tags and, since they are the\n * same tag in the same position, we'd be able to avoid completely\n * re-rendering the subtree under them with a new DOM element and would just\n * call out to `patch` to handle reconciling their children and so on.\n *\n * 3. Check, for both windows, to see if the element at the beginning of the\n * window corresponds to the element at the end of the other window. This is\n * a heuristic which will let us identify _some_ situations in which\n * elements have changed position, for instance it _should_ detect that the\n * children nodes themselves have not changed but merely moved in the\n * following example:\n *\n * oldVNode: `<div><element-one /><element-two /></div>`\n * newVNode: `<div><element-two /><element-one /></div>`\n *\n * If we find cases like this then we also need to move the concrete DOM\n * elements corresponding to the moved children to write the re-order to the\n * DOM.\n *\n * 4. Finally, if VNodes have the `key` attribute set on them we check for any\n * nodes in the old children which have the same key as the first element in\n * our window on the new children. If we find such a node we handle calling\n * out to `patch`, moving relevant DOM nodes, and so on, in accordance with\n * what we find.\n *\n * Finally, once we've narrowed our 'windows' to the point that either of them\n * collapse (i.e. they have length 0) we then handle any remaining VNode\n * insertion or deletion that needs to happen to get a DOM state that correctly\n * reflects the new child VNodes. If, for instance, after our window on the old\n * children has collapsed we still have more nodes on the new children that\n * we haven't dealt with yet then we need to add them, or if the new children\n * collapse but we still have unhandled _old_ children then we need to make\n * sure the corresponding DOM nodes are removed.\n *\n * @param parentElm the node into which the parent VNode is rendered\n * @param oldCh the old children of the parent node\n * @param newVNode the new VNode which will replace the parent\n * @param newCh the new children of the parent node\n */\nconst updateChildren = (parentElm, oldCh, newVNode, newCh) => {\n let oldStartIdx = 0;\n let newStartIdx = 0;\n let idxInOld = 0;\n let i = 0;\n let oldEndIdx = oldCh.length - 1;\n let oldStartVnode = oldCh[0];\n let oldEndVnode = oldCh[oldEndIdx];\n let newEndIdx = newCh.length - 1;\n let newStartVnode = newCh[0];\n let newEndVnode = newCh[newEndIdx];\n let node;\n let elmToMove;\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (oldStartVnode == null) {\n // VNode might have been moved left\n oldStartVnode = oldCh[++oldStartIdx];\n }\n else if (oldEndVnode == null) {\n oldEndVnode = oldCh[--oldEndIdx];\n }\n else if (newStartVnode == null) {\n newStartVnode = newCh[++newStartIdx];\n }\n else if (newEndVnode == null) {\n newEndVnode = newCh[--newEndIdx];\n }\n else if (isSameVnode(oldStartVnode, newStartVnode)) {\n // if the start nodes are the same then we should patch the new VNode\n // onto the old one, and increment our `newStartIdx` and `oldStartIdx`\n // indices to reflect that. We don't need to move any DOM Nodes around\n // since things are matched up in order.\n patch(oldStartVnode, newStartVnode);\n oldStartVnode = oldCh[++oldStartIdx];\n newStartVnode = newCh[++newStartIdx];\n }\n else if (isSameVnode(oldEndVnode, newEndVnode)) {\n // likewise, if the end nodes are the same we patch new onto old and\n // decrement our end indices, and also likewise in this case we don't\n // need to move any DOM Nodes.\n patch(oldEndVnode, newEndVnode);\n oldEndVnode = oldCh[--oldEndIdx];\n newEndVnode = newCh[--newEndIdx];\n }\n else if (isSameVnode(oldStartVnode, newEndVnode)) {\n // case: \"Vnode moved right\"\n //\n // We've found that the last node in our window on the new children is\n // the same VNode as the _first_ node in our window on the old children\n // we're dealing with now. Visually, this is the layout of these two\n // nodes:\n //\n // newCh: [..., newStartVnode , ... , newEndVnode , ...]\n // ^^^^^^^^^^^\n // oldCh: [..., oldStartVnode , ... , oldEndVnode , ...]\n // ^^^^^^^^^^^^^\n //\n // In this situation we need to patch `newEndVnode` onto `oldStartVnode`\n // and move the DOM element for `oldStartVnode`.\n if (BUILD.slotRelocation && (oldStartVnode.$tag$ === 'slot' || newEndVnode.$tag$ === 'slot')) {\n putBackInOriginalLocation(oldStartVnode.$elm$.parentNode, false);\n }\n patch(oldStartVnode, newEndVnode);\n // We need to move the element for `oldStartVnode` into a position which\n // will be appropriate for `newEndVnode`. For this we can use\n // `.insertBefore` and `oldEndVnode.$elm$.nextSibling`. If there is a\n // sibling for `oldEndVnode.$elm$` then we want to move the DOM node for\n // `oldStartVnode` between `oldEndVnode` and it's sibling, like so:\n //\n // <old-start-node />\n // <some-intervening-node />\n // <old-end-node />\n // <!-- -> <-- `oldStartVnode.$elm$` should be inserted here\n // <next-sibling />\n //\n // If instead `oldEndVnode.$elm$` has no sibling then we just want to put\n // the node for `oldStartVnode` at the end of the children of\n // `parentElm`. Luckily, `Node.nextSibling` will return `null` if there\n // aren't any siblings, and passing `null` to `Node.insertBefore` will\n // append it to the children of the parent element.\n parentElm.insertBefore(oldStartVnode.$elm$, oldEndVnode.$elm$.nextSibling);\n oldStartVnode = oldCh[++oldStartIdx];\n newEndVnode = newCh[--newEndIdx];\n }\n else if (isSameVnode(oldEndVnode, newStartVnode)) {\n // case: \"Vnode moved left\"\n //\n // We've found that the first node in our window on the new children is\n // the same VNode as the _last_ node in our window on the old children.\n // Visually, this is the layout of these two nodes:\n //\n // newCh: [..., newStartVnode , ... , newEndVnode , ...]\n // ^^^^^^^^^^^^^\n // oldCh: [..., oldStartVnode , ... , oldEndVnode , ...]\n // ^^^^^^^^^^^\n //\n // In this situation we need to patch `newStartVnode` onto `oldEndVnode`\n // (which will handle updating any changed attributes, reconciling their\n // children etc) but we also need to move the DOM node to which\n // `oldEndVnode` corresponds.\n if (BUILD.slotRelocation && (oldStartVnode.$tag$ === 'slot' || newEndVnode.$tag$ === 'slot')) {\n putBackInOriginalLocation(oldEndVnode.$elm$.parentNode, false);\n }\n patch(oldEndVnode, newStartVnode);\n // We've already checked above if `oldStartVnode` and `newStartVnode` are\n // the same node, so since we're here we know that they are not. Thus we\n // can move the element for `oldEndVnode` _before_ the element for\n // `oldStartVnode`, leaving `oldStartVnode` to be reconciled in the\n // future.\n parentElm.insertBefore(oldEndVnode.$elm$, oldStartVnode.$elm$);\n oldEndVnode = oldCh[--oldEndIdx];\n newStartVnode = newCh[++newStartIdx];\n }\n else {\n // Here we do some checks to match up old and new nodes based on the\n // `$key$` attribute, which is set by putting a `key=\"my-key\"` attribute\n // in the JSX for a DOM element in the implementation of a Stencil\n // component.\n //\n // First we check to see if there are any nodes in the array of old\n // children which have the same key as the first node in the new\n // children.\n idxInOld = -1;\n if (BUILD.vdomKey) {\n for (i = oldStartIdx; i <= oldEndIdx; ++i) {\n if (oldCh[i] && oldCh[i].$key$ !== null && oldCh[i].$key$ === newStartVnode.$key$) {\n idxInOld = i;\n break;\n }\n }\n }\n if (BUILD.vdomKey && idxInOld >= 0) {\n // We found a node in the old children which matches up with the first\n // node in the new children! So let's deal with that\n elmToMove = oldCh[idxInOld];\n if (elmToMove.$tag$ !== newStartVnode.$tag$) {\n // the tag doesn't match so we'll need a new DOM element\n node = createElm(oldCh && oldCh[newStartIdx], newVNode, idxInOld, parentElm);\n }\n else {\n patch(elmToMove, newStartVnode);\n // invalidate the matching old node so that we won't try to update it\n // again later on\n oldCh[idxInOld] = undefined;\n node = elmToMove.$elm$;\n }\n newStartVnode = newCh[++newStartIdx];\n }\n else {\n // We either didn't find an element in the old children that matches\n // the key of the first new child OR the build is not using `key`\n // attributes at all. In either case we need to create a new element\n // for the new node.\n node = createElm(oldCh && oldCh[newStartIdx], newVNode, newStartIdx, parentElm);\n newStartVnode = newCh[++newStartIdx];\n }\n if (node) {\n // if we created a new node then handle inserting it to the DOM\n if (BUILD.slotRelocation) {\n parentReferenceNode(oldStartVnode.$elm$).insertBefore(node, referenceNode(oldStartVnode.$elm$));\n }\n else {\n oldStartVnode.$elm$.parentNode.insertBefore(node, oldStartVnode.$elm$);\n }\n }\n }\n }\n if (oldStartIdx > oldEndIdx) {\n // we have some more new nodes to add which don't match up with old nodes\n addVnodes(parentElm, newCh[newEndIdx + 1] == null ? null : newCh[newEndIdx + 1].$elm$, newVNode, newCh, newStartIdx, newEndIdx);\n }\n else if (BUILD.updatable && newStartIdx > newEndIdx) {\n // there are nodes in the `oldCh` array which no longer correspond to nodes\n // in the new array, so lets remove them (which entails cleaning up the\n // relevant DOM nodes)\n removeVnodes(oldCh, oldStartIdx, oldEndIdx);\n }\n};\n/**\n * Compare two VNodes to determine if they are the same\n *\n * **NB**: This function is an equality _heuristic_ based on the available\n * information set on the two VNodes and can be misleading under certain\n * circumstances. In particular, if the two nodes do not have `key` attrs\n * (available under `$key$` on VNodes) then the function falls back on merely\n * checking that they have the same tag.\n *\n * So, in other words, if `key` attrs are not set on VNodes which may be\n * changing order within a `children` array or something along those lines then\n * we could obtain a false positive and then have to do needless re-rendering.\n *\n * @param leftVNode the first VNode to check\n * @param rightVNode the second VNode to check\n * @returns whether they're equal or not\n */\nconst isSameVnode = (leftVNode, rightVNode) => {\n // compare if two vnode to see if they're \"technically\" the same\n // need to have the same element tag, and same key to be the same\n if (leftVNode.$tag$ === rightVNode.$tag$) {\n if (BUILD.slotRelocation && leftVNode.$tag$ === 'slot') {\n return leftVNode.$name$ === rightVNode.$name$;\n }\n // this will be set if components in the build have `key` attrs set on them\n if (BUILD.vdomKey) {\n return leftVNode.$key$ === rightVNode.$key$;\n }\n return true;\n }\n return false;\n};\nconst referenceNode = (node) => {\n // this node was relocated to a new location in the dom\n // because of some other component's slot\n // but we still have an html comment in place of where\n // it's original location was according to it's original vdom\n return (node && node['s-ol']) || node;\n};\nconst parentReferenceNode = (node) => (node['s-ol'] ? node['s-ol'] : node).parentNode;\n/**\n * Handle reconciling an outdated VNode with a new one which corresponds to\n * it. This function handles flushing updates to the DOM and reconciling the\n * children of the two nodes (if any).\n *\n * @param oldVNode an old VNode whose DOM element and children we want to update\n * @param newVNode a new VNode representing an updated version of the old one\n */\nconst patch = (oldVNode, newVNode) => {\n const elm = (newVNode.$elm$ = oldVNode.$elm$);\n const oldChildren = oldVNode.$children$;\n const newChildren = newVNode.$children$;\n const tag = newVNode.$tag$;\n const text = newVNode.$text$;\n let defaultHolder;\n if (!BUILD.vdomText || text === null) {\n if (BUILD.svg) {\n // test if we're rendering an svg element, or still rendering nodes inside of one\n // only add this to the when the compiler sees we're using an svg somewhere\n isSvgMode = tag === 'svg' ? true : tag === 'foreignObject' ? false : isSvgMode;\n }\n if (BUILD.vdomAttribute || BUILD.reflect) {\n if (BUILD.slot && tag === 'slot')\n ;\n else {\n // either this is the first render of an element OR it's an update\n // AND we already know it's possible it could have changed\n // this updates the element's css classes, attrs, props, listeners, etc.\n updateElement(oldVNode, newVNode, isSvgMode);\n }\n }\n if (BUILD.updatable && oldChildren !== null && newChildren !== null) {\n // looks like there's child vnodes for both the old and new vnodes\n // so we need to call `updateChildren` to reconcile them\n updateChildren(elm, oldChildren, newVNode, newChildren);\n }\n else if (newChildren !== null) {\n // no old child vnodes, but there are new child vnodes to add\n if (BUILD.updatable && BUILD.vdomText && oldVNode.$text$ !== null) {\n // the old vnode was text, so be sure to clear it out\n elm.textContent = '';\n }\n // add the new vnode children\n addVnodes(elm, null, newVNode, newChildren, 0, newChildren.length - 1);\n }\n else if (BUILD.updatable && oldChildren !== null) {\n // no new child vnodes, but there are old child vnodes to remove\n removeVnodes(oldChildren, 0, oldChildren.length - 1);\n }\n if (BUILD.svg && isSvgMode && tag === 'svg') {\n isSvgMode = false;\n }\n }\n else if (BUILD.vdomText && BUILD.slotRelocation && (defaultHolder = elm['s-cr'])) {\n // this element has slotted content\n defaultHolder.parentNode.textContent = text;\n }\n else if (BUILD.vdomText && oldVNode.$text$ !== text) {\n // update the text content for the text only vnode\n // and also only if the text is different than before\n elm.data = text;\n }\n};\nconst updateFallbackSlotVisibility = (elm) => {\n // tslint:disable-next-line: prefer-const\n const childNodes = elm.childNodes;\n let childNode;\n let i;\n let ilen;\n let j;\n let slotNameAttr;\n let nodeType;\n for (i = 0, ilen = childNodes.length; i < ilen; i++) {\n childNode = childNodes[i];\n if (childNode.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n if (childNode['s-sr']) {\n // this is a slot fallback node\n // get the slot name for this slot reference node\n slotNameAttr = childNode['s-sn'];\n // by default always show a fallback slot node\n // then hide it if there are other slots in the light dom\n childNode.hidden = false;\n for (j = 0; j < ilen; j++) {\n nodeType = childNodes[j].nodeType;\n if (childNodes[j]['s-hn'] !== childNode['s-hn'] || slotNameAttr !== '') {\n // this sibling node is from a different component OR is a named fallback slot node\n if (nodeType === 1 /* NODE_TYPE.ElementNode */ && slotNameAttr === childNodes[j].getAttribute('slot')) {\n childNode.hidden = true;\n break;\n }\n }\n else {\n // this is a default fallback slot node\n // any element or text node (with content)\n // should hide the default fallback slot node\n if (nodeType === 1 /* NODE_TYPE.ElementNode */ ||\n (nodeType === 3 /* NODE_TYPE.TextNode */ && childNodes[j].textContent.trim() !== '')) {\n childNode.hidden = true;\n break;\n }\n }\n }\n }\n // keep drilling down\n updateFallbackSlotVisibility(childNode);\n }\n }\n};\nconst relocateNodes = [];\nconst relocateSlotContent = (elm) => {\n // tslint:disable-next-line: prefer-const\n let childNode;\n let node;\n let hostContentNodes;\n let slotNameAttr;\n let relocateNodeData;\n let j;\n let i = 0;\n const childNodes = elm.childNodes;\n const ilen = childNodes.length;\n for (; i < ilen; i++) {\n childNode = childNodes[i];\n if (childNode['s-sr'] && (node = childNode['s-cr']) && node.parentNode) {\n // first got the content reference comment node\n // then we got it's parent, which is where all the host content is in now\n hostContentNodes = node.parentNode.childNodes;\n slotNameAttr = childNode['s-sn'];\n for (j = hostContentNodes.length - 1; j >= 0; j--) {\n node = hostContentNodes[j];\n if (!node['s-cn'] && !node['s-nr'] && node['s-hn'] !== childNode['s-hn']) {\n // let's do some relocating to its new home\n // but never relocate a content reference node\n // that is suppose to always represent the original content location\n if (isNodeLocatedInSlot(node, slotNameAttr)) {\n // it's possible we've already decided to relocate this node\n relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);\n // made some changes to slots\n // let's make sure we also double check\n // fallbacks are correctly hidden or shown\n checkSlotFallbackVisibility = true;\n node['s-sn'] = node['s-sn'] || slotNameAttr;\n if (relocateNodeData) {\n // previously we never found a slot home for this node\n // but turns out we did, so let's remember it now\n relocateNodeData.$slotRefNode$ = childNode;\n }\n else {\n // add to our list of nodes to relocate\n relocateNodes.push({\n $slotRefNode$: childNode,\n $nodeToRelocate$: node,\n });\n }\n if (node['s-sr']) {\n relocateNodes.map((relocateNode) => {\n if (isNodeLocatedInSlot(relocateNode.$nodeToRelocate$, node['s-sn'])) {\n relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);\n if (relocateNodeData && !relocateNode.$slotRefNode$) {\n relocateNode.$slotRefNode$ = relocateNodeData.$slotRefNode$;\n }\n }\n });\n }\n }\n else if (!relocateNodes.some((r) => r.$nodeToRelocate$ === node)) {\n // so far this element does not have a slot home, not setting slotRefNode on purpose\n // if we never find a home for this element then we'll need to hide it\n relocateNodes.push({\n $nodeToRelocate$: node,\n });\n }\n }\n }\n }\n if (childNode.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n relocateSlotContent(childNode);\n }\n }\n};\nconst isNodeLocatedInSlot = (nodeToRelocate, slotNameAttr) => {\n if (nodeToRelocate.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n if (nodeToRelocate.getAttribute('slot') === null && slotNameAttr === '') {\n return true;\n }\n if (nodeToRelocate.getAttribute('slot') === slotNameAttr) {\n return true;\n }\n return false;\n }\n if (nodeToRelocate['s-sn'] === slotNameAttr) {\n return true;\n }\n return slotNameAttr === '';\n};\nconst callNodeRefs = (vNode) => {\n if (BUILD.vdomRef) {\n vNode.$attrs$ && vNode.$attrs$.ref && vNode.$attrs$.ref(null);\n vNode.$children$ && vNode.$children$.map(callNodeRefs);\n }\n};\nconst renderVdom = (hostRef, renderFnResults) => {\n const hostElm = hostRef.$hostElement$;\n const cmpMeta = hostRef.$cmpMeta$;\n const oldVNode = hostRef.$vnode$ || newVNode(null, null);\n const rootVnode = isHost(renderFnResults) ? renderFnResults : h(null, null, renderFnResults);\n hostTagName = hostElm.tagName;\n // <Host> runtime check\n if (BUILD.isDev && Array.isArray(renderFnResults) && renderFnResults.some(isHost)) {\n throw new Error(`The <Host> must be the single root component.\nLooks like the render() function of \"${hostTagName.toLowerCase()}\" is returning an array that contains the <Host>.\n\nThe render() function should look like this instead:\n\nrender() {\n // Do not return an array\n return (\n <Host>{content}</Host>\n );\n}\n `);\n }\n if (BUILD.reflect && cmpMeta.$attrsToReflect$) {\n rootVnode.$attrs$ = rootVnode.$attrs$ || {};\n cmpMeta.$attrsToReflect$.map(([propName, attribute]) => (rootVnode.$attrs$[attribute] = hostElm[propName]));\n }\n rootVnode.$tag$ = null;\n rootVnode.$flags$ |= 4 /* VNODE_FLAGS.isHost */;\n hostRef.$vnode$ = rootVnode;\n rootVnode.$elm$ = oldVNode.$elm$ = (BUILD.shadowDom ? hostElm.shadowRoot || hostElm : hostElm);\n if (BUILD.scoped || BUILD.shadowDom) {\n scopeId = hostElm['s-sc'];\n }\n if (BUILD.slotRelocation) {\n contentRef = hostElm['s-cr'];\n useNativeShadowDom = supportsShadow && (cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) !== 0;\n // always reset\n checkSlotFallbackVisibility = false;\n }\n // synchronous patch\n patch(oldVNode, rootVnode);\n if (BUILD.slotRelocation) {\n // while we're moving nodes around existing nodes, temporarily disable\n // the disconnectCallback from working\n plt.$flags$ |= 1 /* PLATFORM_FLAGS.isTmpDisconnected */;\n if (checkSlotRelocate) {\n relocateSlotContent(rootVnode.$elm$);\n let relocateData;\n let nodeToRelocate;\n let orgLocationNode;\n let parentNodeRef;\n let insertBeforeNode;\n let refNode;\n let i = 0;\n for (; i < relocateNodes.length; i++) {\n relocateData = relocateNodes[i];\n nodeToRelocate = relocateData.$nodeToRelocate$;\n if (!nodeToRelocate['s-ol']) {\n // add a reference node marking this node's original location\n // keep a reference to this node for later lookups\n orgLocationNode =\n BUILD.isDebug || BUILD.hydrateServerSide\n ? originalLocationDebugNode(nodeToRelocate)\n : doc.createTextNode('');\n orgLocationNode['s-nr'] = nodeToRelocate;\n nodeToRelocate.parentNode.insertBefore((nodeToRelocate['s-ol'] = orgLocationNode), nodeToRelocate);\n }\n }\n for (i = 0; i < relocateNodes.length; i++) {\n relocateData = relocateNodes[i];\n nodeToRelocate = relocateData.$nodeToRelocate$;\n if (relocateData.$slotRefNode$) {\n // by default we're just going to insert it directly\n // after the slot reference node\n parentNodeRef = relocateData.$slotRefNode$.parentNode;\n insertBeforeNode = relocateData.$slotRefNode$.nextSibling;\n orgLocationNode = nodeToRelocate['s-ol'];\n while ((orgLocationNode = orgLocationNode.previousSibling)) {\n refNode = orgLocationNode['s-nr'];\n if (refNode && refNode['s-sn'] === nodeToRelocate['s-sn'] && parentNodeRef === refNode.parentNode) {\n refNode = refNode.nextSibling;\n if (!refNode || !refNode['s-nr']) {\n insertBeforeNode = refNode;\n break;\n }\n }\n }\n if ((!insertBeforeNode && parentNodeRef !== nodeToRelocate.parentNode) ||\n nodeToRelocate.nextSibling !== insertBeforeNode) {\n // we've checked that it's worth while to relocate\n // since that the node to relocate\n // has a different next sibling or parent relocated\n if (nodeToRelocate !== insertBeforeNode) {\n if (!nodeToRelocate['s-hn'] && nodeToRelocate['s-ol']) {\n // probably a component in the index.html that doesn't have it's hostname set\n nodeToRelocate['s-hn'] = nodeToRelocate['s-ol'].parentNode.nodeName;\n }\n // add it back to the dom but in its new home\n parentNodeRef.insertBefore(nodeToRelocate, insertBeforeNode);\n }\n }\n }\n else {\n // this node doesn't have a slot home to go to, so let's hide it\n if (nodeToRelocate.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n nodeToRelocate.hidden = true;\n }\n }\n }\n }\n if (checkSlotFallbackVisibility) {\n updateFallbackSlotVisibility(rootVnode.$elm$);\n }\n // done moving nodes around\n // allow the disconnect callback to work again\n plt.$flags$ &= ~1 /* PLATFORM_FLAGS.isTmpDisconnected */;\n // always reset\n relocateNodes.length = 0;\n }\n};\n// slot comment debug nodes only created with the `--debug` flag\n// otherwise these nodes are text nodes w/out content\nconst slotReferenceDebugNode = (slotVNode) => doc.createComment(`<slot${slotVNode.$name$ ? ' name=\"' + slotVNode.$name$ + '\"' : ''}> (host=${hostTagName.toLowerCase()})`);\nconst originalLocationDebugNode = (nodeToRelocate) => doc.createComment(`org-location for ` +\n (nodeToRelocate.localName\n ? `<${nodeToRelocate.localName}> (host=${nodeToRelocate['s-hn']})`\n : `[${nodeToRelocate.textContent}]`));\nconst attachToAncestor = (hostRef, ancestorComponent) => {\n if (BUILD.asyncLoading && ancestorComponent && !hostRef.$onRenderResolve$ && ancestorComponent['s-p']) {\n ancestorComponent['s-p'].push(new Promise((r) => (hostRef.$onRenderResolve$ = r)));\n }\n};\nconst scheduleUpdate = (hostRef, isInitialLoad) => {\n if (BUILD.taskQueue && BUILD.updatable) {\n hostRef.$flags$ |= 16 /* HOST_FLAGS.isQueuedForUpdate */;\n }\n if (BUILD.asyncLoading && hostRef.$flags$ & 4 /* HOST_FLAGS.isWaitingForChildren */) {\n hostRef.$flags$ |= 512 /* HOST_FLAGS.needsRerender */;\n return;\n }\n attachToAncestor(hostRef, hostRef.$ancestorComponent$);\n // there is no ancestor component or the ancestor component\n // has already fired off its lifecycle update then\n // fire off the initial update\n const dispatch = () => dispatchHooks(hostRef, isInitialLoad);\n return BUILD.taskQueue ? writeTask(dispatch) : dispatch();\n};\nconst dispatchHooks = (hostRef, isInitialLoad) => {\n const elm = hostRef.$hostElement$;\n const endSchedule = createTime('scheduleUpdate', hostRef.$cmpMeta$.$tagName$);\n const instance = BUILD.lazyLoad ? hostRef.$lazyInstance$ : elm;\n let promise;\n if (isInitialLoad) {\n if (BUILD.lazyLoad && BUILD.hostListener) {\n hostRef.$flags$ |= 256 /* HOST_FLAGS.isListenReady */;\n if (hostRef.$queuedListeners$) {\n hostRef.$queuedListeners$.map(([methodName, event]) => safeCall(instance, methodName, event));\n hostRef.$queuedListeners$ = null;\n }\n }\n emitLifecycleEvent(elm, 'componentWillLoad');\n if (BUILD.cmpWillLoad) {\n promise = safeCall(instance, 'componentWillLoad');\n }\n }\n else {\n emitLifecycleEvent(elm, 'componentWillUpdate');\n if (BUILD.cmpWillUpdate) {\n promise = safeCall(instance, 'componentWillUpdate');\n }\n }\n emitLifecycleEvent(elm, 'componentWillRender');\n if (BUILD.cmpWillRender) {\n promise = then(promise, () => safeCall(instance, 'componentWillRender'));\n }\n endSchedule();\n return then(promise, () => updateComponent(hostRef, instance, isInitialLoad));\n};\nconst updateComponent = async (hostRef, instance, isInitialLoad) => {\n // updateComponent\n const elm = hostRef.$hostElement$;\n const endUpdate = createTime('update', hostRef.$cmpMeta$.$tagName$);\n const rc = elm['s-rc'];\n if (BUILD.style && isInitialLoad) {\n // DOM WRITE!\n attachStyles(hostRef);\n }\n const endRender = createTime('render', hostRef.$cmpMeta$.$tagName$);\n if (BUILD.isDev) {\n hostRef.$flags$ |= 1024 /* HOST_FLAGS.devOnRender */;\n }\n if (BUILD.hydrateServerSide) {\n await callRender(hostRef, instance, elm);\n }\n else {\n callRender(hostRef, instance, elm);\n }\n if (BUILD.cssVarShim && plt.$cssShim$) {\n plt.$cssShim$.updateHost(elm);\n }\n if (BUILD.isDev) {\n hostRef.$renderCount$++;\n hostRef.$flags$ &= ~1024 /* HOST_FLAGS.devOnRender */;\n }\n if (BUILD.hydrateServerSide) {\n try {\n // manually connected child components during server-side hydrate\n serverSideConnected(elm);\n if (isInitialLoad) {\n // using only during server-side hydrate\n if (hostRef.$cmpMeta$.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) {\n elm['s-en'] = '';\n }\n else if (hostRef.$cmpMeta$.$flags$ & 2 /* CMP_FLAGS.scopedCssEncapsulation */) {\n elm['s-en'] = 'c';\n }\n }\n }\n catch (e) {\n consoleError(e, elm);\n }\n }\n if (BUILD.asyncLoading && rc) {\n // ok, so turns out there are some child host elements\n // waiting on this parent element to load\n // let's fire off all update callbacks waiting\n rc.map((cb) => cb());\n elm['s-rc'] = undefined;\n }\n endRender();\n endUpdate();\n if (BUILD.asyncLoading) {\n const childrenPromises = elm['s-p'];\n const postUpdate = () => postUpdateComponent(hostRef);\n if (childrenPromises.length === 0) {\n postUpdate();\n }\n else {\n Promise.all(childrenPromises).then(postUpdate);\n hostRef.$flags$ |= 4 /* HOST_FLAGS.isWaitingForChildren */;\n childrenPromises.length = 0;\n }\n }\n else {\n postUpdateComponent(hostRef);\n }\n};\nconst callRender = (hostRef, instance, elm) => {\n // in order for bundlers to correctly treeshake the BUILD object\n // we need to ensure BUILD is not deoptimized within a try/catch\n // https://rollupjs.org/guide/en/#treeshake tryCatchDeoptimization\n const allRenderFn = BUILD.allRenderFn ? true : false;\n const lazyLoad = BUILD.lazyLoad ? true : false;\n const taskQueue = BUILD.taskQueue ? true : false;\n const updatable = BUILD.updatable ? true : false;\n try {\n renderingRef = instance;\n instance = allRenderFn ? instance.render() : instance.render && instance.render();\n if (updatable && taskQueue) {\n hostRef.$flags$ &= ~16 /* HOST_FLAGS.isQueuedForUpdate */;\n }\n if (updatable || lazyLoad) {\n hostRef.$flags$ |= 2 /* HOST_FLAGS.hasRendered */;\n }\n if (BUILD.hasRenderFn || BUILD.reflect) {\n if (BUILD.vdomRender || BUILD.reflect) {\n // looks like we've got child nodes to render into this host element\n // or we need to update the css class/attrs on the host element\n // DOM WRITE!\n if (BUILD.hydrateServerSide) {\n return Promise.resolve(instance).then((value) => renderVdom(hostRef, value));\n }\n else {\n renderVdom(hostRef, instance);\n }\n }\n else {\n elm.textContent = instance;\n }\n }\n }\n catch (e) {\n consoleError(e, hostRef.$hostElement$);\n }\n renderingRef = null;\n return null;\n};\nconst getRenderingRef = () => renderingRef;\nconst postUpdateComponent = (hostRef) => {\n const tagName = hostRef.$cmpMeta$.$tagName$;\n const elm = hostRef.$hostElement$;\n const endPostUpdate = createTime('postUpdate', tagName);\n const instance = BUILD.lazyLoad ? hostRef.$lazyInstance$ : elm;\n const ancestorComponent = hostRef.$ancestorComponent$;\n if (BUILD.cmpDidRender) {\n if (BUILD.isDev) {\n hostRef.$flags$ |= 1024 /* HOST_FLAGS.devOnRender */;\n }\n safeCall(instance, 'componentDidRender');\n if (BUILD.isDev) {\n hostRef.$flags$ &= ~1024 /* HOST_FLAGS.devOnRender */;\n }\n }\n emitLifecycleEvent(elm, 'componentDidRender');\n if (!(hostRef.$flags$ & 64 /* HOST_FLAGS.hasLoadedComponent */)) {\n hostRef.$flags$ |= 64 /* HOST_FLAGS.hasLoadedComponent */;\n if (BUILD.asyncLoading && BUILD.cssAnnotations) {\n // DOM WRITE!\n addHydratedFlag(elm);\n }\n if (BUILD.cmpDidLoad) {\n if (BUILD.isDev) {\n hostRef.$flags$ |= 2048 /* HOST_FLAGS.devOnDidLoad */;\n }\n safeCall(instance, 'componentDidLoad');\n if (BUILD.isDev) {\n hostRef.$flags$ &= ~2048 /* HOST_FLAGS.devOnDidLoad */;\n }\n }\n emitLifecycleEvent(elm, 'componentDidLoad');\n endPostUpdate();\n if (BUILD.asyncLoading) {\n hostRef.$onReadyResolve$(elm);\n if (!ancestorComponent) {\n appDidLoad(tagName);\n }\n }\n }\n else {\n if (BUILD.cmpDidUpdate) {\n // we've already loaded this component\n // fire off the user's componentDidUpdate method (if one was provided)\n // componentDidUpdate runs AFTER render() has been called\n // and all child components have finished updating\n if (BUILD.isDev) {\n hostRef.$flags$ |= 1024 /* HOST_FLAGS.devOnRender */;\n }\n safeCall(instance, 'componentDidUpdate');\n if (BUILD.isDev) {\n hostRef.$flags$ &= ~1024 /* HOST_FLAGS.devOnRender */;\n }\n }\n emitLifecycleEvent(elm, 'componentDidUpdate');\n endPostUpdate();\n }\n if (BUILD.hotModuleReplacement) {\n elm['s-hmr-load'] && elm['s-hmr-load']();\n }\n if (BUILD.method && BUILD.lazyLoad) {\n hostRef.$onInstanceResolve$(elm);\n }\n // load events fire from bottom to top\n // the deepest elements load first then bubbles up\n if (BUILD.asyncLoading) {\n if (hostRef.$onRenderResolve$) {\n hostRef.$onRenderResolve$();\n hostRef.$onRenderResolve$ = undefined;\n }\n if (hostRef.$flags$ & 512 /* HOST_FLAGS.needsRerender */) {\n nextTick(() => scheduleUpdate(hostRef, false));\n }\n hostRef.$flags$ &= ~(4 /* HOST_FLAGS.isWaitingForChildren */ | 512 /* HOST_FLAGS.needsRerender */);\n }\n // ( •_•)\n // ( •_•)>⌐■-■\n // (⌐■_■)\n};\nconst forceUpdate = (ref) => {\n if (BUILD.updatable) {\n const hostRef = getHostRef(ref);\n const isConnected = hostRef.$hostElement$.isConnected;\n if (isConnected &&\n (hostRef.$flags$ & (2 /* HOST_FLAGS.hasRendered */ | 16 /* HOST_FLAGS.isQueuedForUpdate */)) === 2 /* HOST_FLAGS.hasRendered */) {\n scheduleUpdate(hostRef, false);\n }\n // Returns \"true\" when the forced update was successfully scheduled\n return isConnected;\n }\n return false;\n};\nconst appDidLoad = (who) => {\n // on appload\n // we have finish the first big initial render\n if (BUILD.cssAnnotations) {\n addHydratedFlag(doc.documentElement);\n }\n if (BUILD.asyncQueue) {\n plt.$flags$ |= 2 /* PLATFORM_FLAGS.appLoaded */;\n }\n nextTick(() => emitEvent(win, 'appload', { detail: { namespace: NAMESPACE } }));\n if (BUILD.profile && performance.measure) {\n performance.measure(`[Stencil] ${NAMESPACE} initial load (by ${who})`, 'st:app:start');\n }\n};\nconst safeCall = (instance, method, arg) => {\n if (instance && instance[method]) {\n try {\n return instance[method](arg);\n }\n catch (e) {\n consoleError(e);\n }\n }\n return undefined;\n};\nconst then = (promise, thenFn) => {\n return promise && promise.then ? promise.then(thenFn) : thenFn();\n};\nconst emitLifecycleEvent = (elm, lifecycleName) => {\n if (BUILD.lifecycleDOMEvents) {\n emitEvent(elm, 'stencil_' + lifecycleName, {\n bubbles: true,\n composed: true,\n detail: {\n namespace: NAMESPACE,\n },\n });\n }\n};\nconst addHydratedFlag = (elm) => BUILD.hydratedClass\n ? elm.classList.add('hydrated')\n : BUILD.hydratedAttribute\n ? elm.setAttribute('hydrated', '')\n : undefined;\nconst serverSideConnected = (elm) => {\n const children = elm.children;\n if (children != null) {\n for (let i = 0, ii = children.length; i < ii; i++) {\n const childElm = children[i];\n if (typeof childElm.connectedCallback === 'function') {\n childElm.connectedCallback();\n }\n serverSideConnected(childElm);\n }\n }\n};\nconst getValue = (ref, propName) => getHostRef(ref).$instanceValues$.get(propName);\nconst setValue = (ref, propName, newVal, cmpMeta) => {\n // check our new property value against our internal value\n const hostRef = getHostRef(ref);\n const elm = BUILD.lazyLoad ? hostRef.$hostElement$ : ref;\n const oldVal = hostRef.$instanceValues$.get(propName);\n const flags = hostRef.$flags$;\n const instance = BUILD.lazyLoad ? hostRef.$lazyInstance$ : elm;\n newVal = parsePropertyValue(newVal, cmpMeta.$members$[propName][0]);\n // explicitly check for NaN on both sides, as `NaN === NaN` is always false\n const areBothNaN = Number.isNaN(oldVal) && Number.isNaN(newVal);\n const didValueChange = newVal !== oldVal && !areBothNaN;\n if ((!BUILD.lazyLoad || !(flags & 8 /* HOST_FLAGS.isConstructingInstance */) || oldVal === undefined) && didValueChange) {\n // gadzooks! the property's value has changed!!\n // set our new value!\n hostRef.$instanceValues$.set(propName, newVal);\n if (BUILD.isDev) {\n if (hostRef.$flags$ & 1024 /* HOST_FLAGS.devOnRender */) {\n consoleDevWarn(`The state/prop \"${propName}\" changed during rendering. This can potentially lead to infinite-loops and other bugs.`, '\\nElement', elm, '\\nNew value', newVal, '\\nOld value', oldVal);\n }\n else if (hostRef.$flags$ & 2048 /* HOST_FLAGS.devOnDidLoad */) {\n consoleDevWarn(`The state/prop \"${propName}\" changed during \"componentDidLoad()\", this triggers extra re-renders, try to setup on \"componentWillLoad()\"`, '\\nElement', elm, '\\nNew value', newVal, '\\nOld value', oldVal);\n }\n }\n if (!BUILD.lazyLoad || instance) {\n // get an array of method names of watch functions to call\n if (BUILD.watchCallback && cmpMeta.$watchers$ && flags & 128 /* HOST_FLAGS.isWatchReady */) {\n const watchMethods = cmpMeta.$watchers$[propName];\n if (watchMethods) {\n // this instance is watching for when this property changed\n watchMethods.map((watchMethodName) => {\n try {\n // fire off each of the watch methods that are watching this property\n instance[watchMethodName](newVal, oldVal, propName);\n }\n catch (e) {\n consoleError(e, elm);\n }\n });\n }\n }\n if (BUILD.updatable &&\n (flags & (2 /* HOST_FLAGS.hasRendered */ | 16 /* HOST_FLAGS.isQueuedForUpdate */)) === 2 /* HOST_FLAGS.hasRendered */) {\n if (BUILD.cmpShouldUpdate && instance.componentShouldUpdate) {\n if (instance.componentShouldUpdate(newVal, oldVal, propName) === false) {\n return;\n }\n }\n // looks like this value actually changed, so we've got work to do!\n // but only if we've already rendered, otherwise just chill out\n // queue that we need to do an update, but don't worry about queuing\n // up millions cuz this function ensures it only runs once\n scheduleUpdate(hostRef, false);\n }\n }\n }\n};\n/**\n * Attach a series of runtime constructs to a compiled Stencil component\n * constructor, including getters and setters for the `@Prop` and `@State`\n * decorators, callbacks for when attributes change, and so on.\n *\n * @param Cstr the constructor for a component that we need to process\n * @param cmpMeta metadata collected previously about the component\n * @param flags a number used to store a series of bit flags\n * @returns a reference to the same constructor passed in (but now mutated)\n */\nconst proxyComponent = (Cstr, cmpMeta, flags) => {\n if (BUILD.member && cmpMeta.$members$) {\n if (BUILD.watchCallback && Cstr.watchers) {\n cmpMeta.$watchers$ = Cstr.watchers;\n }\n // It's better to have a const than two Object.entries()\n const members = Object.entries(cmpMeta.$members$);\n const prototype = Cstr.prototype;\n members.map(([memberName, [memberFlags]]) => {\n if ((BUILD.prop || BUILD.state) &&\n (memberFlags & 31 /* MEMBER_FLAGS.Prop */ ||\n ((!BUILD.lazyLoad || flags & 2 /* PROXY_FLAGS.proxyState */) && memberFlags & 32 /* MEMBER_FLAGS.State */))) {\n // proxyComponent - prop\n Object.defineProperty(prototype, memberName, {\n get() {\n // proxyComponent, get value\n return getValue(this, memberName);\n },\n set(newValue) {\n // only during dev time\n if (BUILD.isDev) {\n const ref = getHostRef(this);\n if (\n // we are proxying the instance (not element)\n (flags & 1 /* PROXY_FLAGS.isElementConstructor */) === 0 &&\n // the element is not constructing\n (ref.$flags$ & 8 /* HOST_FLAGS.isConstructingInstance */) === 0 &&\n // the member is a prop\n (memberFlags & 31 /* MEMBER_FLAGS.Prop */) !== 0 &&\n // the member is not mutable\n (memberFlags & 1024 /* MEMBER_FLAGS.Mutable */) === 0) {\n consoleDevWarn(`@Prop() \"${memberName}\" on <${cmpMeta.$tagName$}> is immutable but was modified from within the component.\\nMore information: https://stenciljs.com/docs/properties#prop-mutability`);\n }\n }\n // proxyComponent, set value\n setValue(this, memberName, newValue, cmpMeta);\n },\n configurable: true,\n enumerable: true,\n });\n }\n else if (BUILD.lazyLoad &&\n BUILD.method &&\n flags & 1 /* PROXY_FLAGS.isElementConstructor */ &&\n memberFlags & 64 /* MEMBER_FLAGS.Method */) {\n // proxyComponent - method\n Object.defineProperty(prototype, memberName, {\n value(...args) {\n const ref = getHostRef(this);\n return ref.$onInstancePromise$.then(() => ref.$lazyInstance$[memberName](...args));\n },\n });\n }\n });\n if (BUILD.observeAttribute && (!BUILD.lazyLoad || flags & 1 /* PROXY_FLAGS.isElementConstructor */)) {\n const attrNameToPropName = new Map();\n prototype.attributeChangedCallback = function (attrName, _oldValue, newValue) {\n plt.jmp(() => {\n const propName = attrNameToPropName.get(attrName);\n // In a web component lifecycle the attributeChangedCallback runs prior to connectedCallback\n // in the case where an attribute was set inline.\n // ```html\n // <my-component some-attribute=\"some-value\"></my-component>\n // ```\n //\n // There is an edge case where a developer sets the attribute inline on a custom element and then\n // programmatically changes it before it has been upgraded as shown below:\n //\n // ```html\n // <!-- this component has _not_ been upgraded yet -->\n // <my-component id=\"test\" some-attribute=\"some-value\"></my-component>\n // <script>\n // // grab non-upgraded component\n // el = document.querySelector(\"#test\");\n // el.someAttribute = \"another-value\";\n // // upgrade component\n // customElements.define('my-component', MyComponent);\n // </script>\n // ```\n // In this case if we do not unshadow here and use the value of the shadowing property, attributeChangedCallback\n // will be called with `newValue = \"some-value\"` and will set the shadowed property (this.someAttribute = \"another-value\")\n // to the value that was set inline i.e. \"some-value\" from above example. When\n // the connectedCallback attempts to unshadow it will use \"some-value\" as the initial value rather than \"another-value\"\n //\n // The case where the attribute was NOT set inline but was not set programmatically shall be handled/unshadowed\n // by connectedCallback as this attributeChangedCallback will not fire.\n //\n // https://developers.google.com/web/fundamentals/web-components/best-practices#lazy-properties\n //\n // TODO(STENCIL-16) we should think about whether or not we actually want to be reflecting the attributes to\n // properties here given that this goes against best practices outlined here\n // https://developers.google.com/web/fundamentals/web-components/best-practices#avoid-reentrancy\n if (this.hasOwnProperty(propName)) {\n newValue = this[propName];\n delete this[propName];\n }\n else if (prototype.hasOwnProperty(propName) &&\n typeof this[propName] === 'number' &&\n this[propName] == newValue) {\n // if the propName exists on the prototype of `Cstr`, this update may be a result of Stencil using native\n // APIs to reflect props as attributes. Calls to `setAttribute(someElement, propName)` will result in\n // `propName` to be converted to a `DOMString`, which may not be what we want for other primitive props.\n return;\n }\n this[propName] = newValue === null && typeof this[propName] === 'boolean' ? false : newValue;\n });\n };\n // create an array of attributes to observe\n // and also create a map of html attribute name to js property name\n Cstr.observedAttributes = members\n .filter(([_, m]) => m[0] & 15 /* MEMBER_FLAGS.HasAttribute */) // filter to only keep props that should match attributes\n .map(([propName, m]) => {\n const attrName = m[1] || propName;\n attrNameToPropName.set(attrName, propName);\n if (BUILD.reflect && m[0] & 512 /* MEMBER_FLAGS.ReflectAttr */) {\n cmpMeta.$attrsToReflect$.push([propName, attrName]);\n }\n return attrName;\n });\n }\n }\n return Cstr;\n};\nconst initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId, Cstr) => {\n // initializeComponent\n if ((BUILD.lazyLoad || BUILD.hydrateServerSide || BUILD.style) &&\n (hostRef.$flags$ & 32 /* HOST_FLAGS.hasInitializedComponent */) === 0) {\n if (BUILD.lazyLoad || BUILD.hydrateClientSide) {\n // we haven't initialized this element yet\n hostRef.$flags$ |= 32 /* HOST_FLAGS.hasInitializedComponent */;\n // lazy loaded components\n // request the component's implementation to be\n // wired up with the host element\n Cstr = loadModule(cmpMeta, hostRef, hmrVersionId);\n if (Cstr.then) {\n // Await creates a micro-task avoid if possible\n const endLoad = uniqueTime(`st:load:${cmpMeta.$tagName$}:${hostRef.$modeName$}`, `[Stencil] Load module for <${cmpMeta.$tagName$}>`);\n Cstr = await Cstr;\n endLoad();\n }\n if ((BUILD.isDev || BUILD.isDebug) && !Cstr) {\n throw new Error(`Constructor for \"${cmpMeta.$tagName$}#${hostRef.$modeName$}\" was not found`);\n }\n if (BUILD.member && !Cstr.isProxied) {\n // we've never proxied this Constructor before\n // let's add the getters/setters to its prototype before\n // the first time we create an instance of the implementation\n if (BUILD.watchCallback) {\n cmpMeta.$watchers$ = Cstr.watchers;\n }\n proxyComponent(Cstr, cmpMeta, 2 /* PROXY_FLAGS.proxyState */);\n Cstr.isProxied = true;\n }\n const endNewInstance = createTime('createInstance', cmpMeta.$tagName$);\n // ok, time to construct the instance\n // but let's keep track of when we start and stop\n // so that the getters/setters don't incorrectly step on data\n if (BUILD.member) {\n hostRef.$flags$ |= 8 /* HOST_FLAGS.isConstructingInstance */;\n }\n // construct the lazy-loaded component implementation\n // passing the hostRef is very important during\n // construction in order to directly wire together the\n // host element and the lazy-loaded instance\n try {\n new Cstr(hostRef);\n }\n catch (e) {\n consoleError(e);\n }\n if (BUILD.member) {\n hostRef.$flags$ &= ~8 /* HOST_FLAGS.isConstructingInstance */;\n }\n if (BUILD.watchCallback) {\n hostRef.$flags$ |= 128 /* HOST_FLAGS.isWatchReady */;\n }\n endNewInstance();\n fireConnectedCallback(hostRef.$lazyInstance$);\n }\n else {\n // sync constructor component\n Cstr = elm.constructor;\n hostRef.$flags$ |= 32 /* HOST_FLAGS.hasInitializedComponent */;\n // wait for the CustomElementRegistry to mark the component as ready before setting `isWatchReady`. Otherwise,\n // watchers may fire prematurely if `customElements.get()`/`customElements.whenDefined()` resolves _before_\n // Stencil has completed instantiating the component.\n customElements.whenDefined(cmpMeta.$tagName$).then(() => (hostRef.$flags$ |= 128 /* HOST_FLAGS.isWatchReady */));\n }\n if (BUILD.style && Cstr.style) {\n // this component has styles but we haven't registered them yet\n let style = Cstr.style;\n if (BUILD.mode && typeof style !== 'string') {\n style = style[(hostRef.$modeName$ = computeMode(elm))];\n if (BUILD.hydrateServerSide && hostRef.$modeName$) {\n elm.setAttribute('s-mode', hostRef.$modeName$);\n }\n }\n const scopeId = getScopeId(cmpMeta, hostRef.$modeName$);\n if (!styles.has(scopeId)) {\n const endRegisterStyles = createTime('registerStyles', cmpMeta.$tagName$);\n if (!BUILD.hydrateServerSide &&\n BUILD.shadowDom &&\n BUILD.shadowDomShim &&\n cmpMeta.$flags$ & 8 /* CMP_FLAGS.needsShadowDomShim */) {\n style = await import('./shadow-css.js').then((m) => m.scopeCss(style, scopeId, false));\n }\n registerStyle(scopeId, style, !!(cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */));\n endRegisterStyles();\n }\n }\n }\n // we've successfully created a lazy instance\n const ancestorComponent = hostRef.$ancestorComponent$;\n const schedule = () => scheduleUpdate(hostRef, true);\n if (BUILD.asyncLoading && ancestorComponent && ancestorComponent['s-rc']) {\n // this is the initial load and this component it has an ancestor component\n // but the ancestor component has NOT fired its will update lifecycle yet\n // so let's just cool our jets and wait for the ancestor to continue first\n // this will get fired off when the ancestor component\n // finally gets around to rendering its lazy self\n // fire off the initial update\n ancestorComponent['s-rc'].push(schedule);\n }\n else {\n schedule();\n }\n};\nconst fireConnectedCallback = (instance) => {\n if (BUILD.lazyLoad && BUILD.connectedCallback) {\n safeCall(instance, 'connectedCallback');\n }\n};\nconst connectedCallback = (elm) => {\n if ((plt.$flags$ & 1 /* PLATFORM_FLAGS.isTmpDisconnected */) === 0) {\n const hostRef = getHostRef(elm);\n const cmpMeta = hostRef.$cmpMeta$;\n const endConnected = createTime('connectedCallback', cmpMeta.$tagName$);\n if (BUILD.hostListenerTargetParent) {\n // only run if we have listeners being attached to a parent\n addHostEventListeners(elm, hostRef, cmpMeta.$listeners$, true);\n }\n if (!(hostRef.$flags$ & 1 /* HOST_FLAGS.hasConnected */)) {\n // first time this component has connected\n hostRef.$flags$ |= 1 /* HOST_FLAGS.hasConnected */;\n let hostId;\n if (BUILD.hydrateClientSide) {\n hostId = elm.getAttribute(HYDRATE_ID);\n if (hostId) {\n if (BUILD.shadowDom && supportsShadow && cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) {\n const scopeId = BUILD.mode\n ? addStyle(elm.shadowRoot, cmpMeta, elm.getAttribute('s-mode'))\n : addStyle(elm.shadowRoot, cmpMeta);\n elm.classList.remove(scopeId + '-h', scopeId + '-s');\n }\n initializeClientHydrate(elm, cmpMeta.$tagName$, hostId, hostRef);\n }\n }\n if (BUILD.slotRelocation && !hostId) {\n // initUpdate\n // if the slot polyfill is required we'll need to put some nodes\n // in here to act as original content anchors as we move nodes around\n // host element has been connected to the DOM\n if (BUILD.hydrateServerSide ||\n ((BUILD.slot || BUILD.shadowDom) &&\n cmpMeta.$flags$ & (4 /* CMP_FLAGS.hasSlotRelocation */ | 8 /* CMP_FLAGS.needsShadowDomShim */))) {\n setContentReference(elm);\n }\n }\n if (BUILD.asyncLoading) {\n // find the first ancestor component (if there is one) and register\n // this component as one of the actively loading child components for its ancestor\n let ancestorComponent = elm;\n while ((ancestorComponent = ancestorComponent.parentNode || ancestorComponent.host)) {\n // climb up the ancestors looking for the first\n // component that hasn't finished its lifecycle update yet\n if ((BUILD.hydrateClientSide &&\n ancestorComponent.nodeType === 1 /* NODE_TYPE.ElementNode */ &&\n ancestorComponent.hasAttribute('s-id') &&\n ancestorComponent['s-p']) ||\n ancestorComponent['s-p']) {\n // we found this components first ancestor component\n // keep a reference to this component's ancestor component\n attachToAncestor(hostRef, (hostRef.$ancestorComponent$ = ancestorComponent));\n break;\n }\n }\n }\n // Lazy properties\n // https://developers.google.com/web/fundamentals/web-components/best-practices#lazy-properties\n if (BUILD.prop && !BUILD.hydrateServerSide && cmpMeta.$members$) {\n Object.entries(cmpMeta.$members$).map(([memberName, [memberFlags]]) => {\n if (memberFlags & 31 /* MEMBER_FLAGS.Prop */ && elm.hasOwnProperty(memberName)) {\n const value = elm[memberName];\n delete elm[memberName];\n elm[memberName] = value;\n }\n });\n }\n if (BUILD.initializeNextTick) {\n // connectedCallback, taskQueue, initialLoad\n // angular sets attribute AFTER connectCallback\n // https://github.com/angular/angular/issues/18909\n // https://github.com/angular/angular/issues/19940\n nextTick(() => initializeComponent(elm, hostRef, cmpMeta));\n }\n else {\n initializeComponent(elm, hostRef, cmpMeta);\n }\n }\n else {\n // not the first time this has connected\n // reattach any event listeners to the host\n // since they would have been removed when disconnected\n addHostEventListeners(elm, hostRef, cmpMeta.$listeners$, false);\n // fire off connectedCallback() on component instance\n fireConnectedCallback(hostRef.$lazyInstance$);\n }\n endConnected();\n }\n};\nconst setContentReference = (elm) => {\n // only required when we're NOT using native shadow dom (slot)\n // or this browser doesn't support native shadow dom\n // and this host element was NOT created with SSR\n // let's pick out the inner content for slot projection\n // create a node to represent where the original\n // content was first placed, which is useful later on\n const contentRefElm = (elm['s-cr'] = doc.createComment(BUILD.isDebug ? `content-ref (host=${elm.localName})` : ''));\n contentRefElm['s-cn'] = true;\n elm.insertBefore(contentRefElm, elm.firstChild);\n};\nconst disconnectedCallback = (elm) => {\n if ((plt.$flags$ & 1 /* PLATFORM_FLAGS.isTmpDisconnected */) === 0) {\n const hostRef = getHostRef(elm);\n const instance = BUILD.lazyLoad ? hostRef.$lazyInstance$ : elm;\n if (BUILD.hostListener) {\n if (hostRef.$rmListeners$) {\n hostRef.$rmListeners$.map((rmListener) => rmListener());\n hostRef.$rmListeners$ = undefined;\n }\n }\n // clear CSS var-shim tracking\n if (BUILD.cssVarShim && plt.$cssShim$) {\n plt.$cssShim$.removeHost(elm);\n }\n if (BUILD.lazyLoad && BUILD.disconnectedCallback) {\n safeCall(instance, 'disconnectedCallback');\n }\n if (BUILD.cmpDidUnload) {\n safeCall(instance, 'componentDidUnload');\n }\n }\n};\nconst defineCustomElement = (Cstr, compactMeta) => {\n customElements.define(compactMeta[1], proxyCustomElement(Cstr, compactMeta));\n};\nconst proxyCustomElement = (Cstr, compactMeta) => {\n const cmpMeta = {\n $flags$: compactMeta[0],\n $tagName$: compactMeta[1],\n };\n if (BUILD.member) {\n cmpMeta.$members$ = compactMeta[2];\n }\n if (BUILD.hostListener) {\n cmpMeta.$listeners$ = compactMeta[3];\n }\n if (BUILD.watchCallback) {\n cmpMeta.$watchers$ = Cstr.$watchers$;\n }\n if (BUILD.reflect) {\n cmpMeta.$attrsToReflect$ = [];\n }\n if (BUILD.shadowDom && !supportsShadow && cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) {\n cmpMeta.$flags$ |= 8 /* CMP_FLAGS.needsShadowDomShim */;\n }\n const originalConnectedCallback = Cstr.prototype.connectedCallback;\n const originalDisconnectedCallback = Cstr.prototype.disconnectedCallback;\n Object.assign(Cstr.prototype, {\n __registerHost() {\n registerHost(this, cmpMeta);\n },\n connectedCallback() {\n connectedCallback(this);\n if (BUILD.connectedCallback && originalConnectedCallback) {\n originalConnectedCallback.call(this);\n }\n },\n disconnectedCallback() {\n disconnectedCallback(this);\n if (BUILD.disconnectedCallback && originalDisconnectedCallback) {\n originalDisconnectedCallback.call(this);\n }\n },\n __attachShadow() {\n if (supportsShadow) {\n if (BUILD.shadowDelegatesFocus) {\n this.attachShadow({\n mode: 'open',\n delegatesFocus: !!(cmpMeta.$flags$ & 16 /* CMP_FLAGS.shadowDelegatesFocus */),\n });\n }\n else {\n this.attachShadow({ mode: 'open' });\n }\n }\n else {\n this.shadowRoot = this;\n }\n },\n });\n Cstr.is = cmpMeta.$tagName$;\n return proxyComponent(Cstr, cmpMeta, 1 /* PROXY_FLAGS.isElementConstructor */ | 2 /* PROXY_FLAGS.proxyState */);\n};\nconst forceModeUpdate = (elm) => {\n if (BUILD.style && BUILD.mode && !BUILD.lazyLoad) {\n const mode = computeMode(elm);\n const hostRef = getHostRef(elm);\n if (hostRef.$modeName$ !== mode) {\n const cmpMeta = hostRef.$cmpMeta$;\n const oldScopeId = elm['s-sc'];\n const scopeId = getScopeId(cmpMeta, mode);\n const style = elm.constructor.style[mode];\n const flags = cmpMeta.$flags$;\n if (style) {\n if (!styles.has(scopeId)) {\n registerStyle(scopeId, style, !!(flags & 1 /* CMP_FLAGS.shadowDomEncapsulation */));\n }\n hostRef.$modeName$ = mode;\n elm.classList.remove(oldScopeId + '-h', oldScopeId + '-s');\n attachStyles(hostRef);\n forceUpdate(elm);\n }\n }\n }\n};\nconst patchCloneNode = (HostElementPrototype) => {\n const orgCloneNode = HostElementPrototype.cloneNode;\n HostElementPrototype.cloneNode = function (deep) {\n const srcNode = this;\n const isShadowDom = BUILD.shadowDom ? srcNode.shadowRoot && supportsShadow : false;\n const clonedNode = orgCloneNode.call(srcNode, isShadowDom ? deep : false);\n if (BUILD.slot && !isShadowDom && deep) {\n let i = 0;\n let slotted, nonStencilNode;\n const stencilPrivates = [\n 's-id',\n 's-cr',\n 's-lr',\n 's-rc',\n 's-sc',\n 's-p',\n 's-cn',\n 's-sr',\n 's-sn',\n 's-hn',\n 's-ol',\n 's-nr',\n 's-si',\n ];\n for (; i < srcNode.childNodes.length; i++) {\n slotted = srcNode.childNodes[i]['s-nr'];\n nonStencilNode = stencilPrivates.every((privateField) => !srcNode.childNodes[i][privateField]);\n if (slotted) {\n if (BUILD.appendChildSlotFix && clonedNode.__appendChild) {\n clonedNode.__appendChild(slotted.cloneNode(true));\n }\n else {\n clonedNode.appendChild(slotted.cloneNode(true));\n }\n }\n if (nonStencilNode) {\n clonedNode.appendChild(srcNode.childNodes[i].cloneNode(true));\n }\n }\n }\n return clonedNode;\n };\n};\nconst patchSlotAppendChild = (HostElementPrototype) => {\n HostElementPrototype.__appendChild = HostElementPrototype.appendChild;\n HostElementPrototype.appendChild = function (newChild) {\n const slotName = (newChild['s-sn'] = getSlotName(newChild));\n const slotNode = getHostSlotNode(this.childNodes, slotName);\n if (slotNode) {\n const slotChildNodes = getHostSlotChildNodes(slotNode, slotName);\n const appendAfter = slotChildNodes[slotChildNodes.length - 1];\n return appendAfter.parentNode.insertBefore(newChild, appendAfter.nextSibling);\n }\n return this.__appendChild(newChild);\n };\n};\n/**\n * Patches the text content of an unnamed slotted node inside a scoped component\n * @param hostElementPrototype the `Element` to be patched\n * @param cmpMeta component runtime metadata used to determine if the component should be patched or not\n */\nconst patchTextContent = (hostElementPrototype, cmpMeta) => {\n if (BUILD.scoped && cmpMeta.$flags$ & 2 /* CMP_FLAGS.scopedCssEncapsulation */) {\n const descriptor = Object.getOwnPropertyDescriptor(Node.prototype, 'textContent');\n Object.defineProperty(hostElementPrototype, '__textContent', descriptor);\n Object.defineProperty(hostElementPrototype, 'textContent', {\n get() {\n var _a;\n // get the 'default slot', which would be the first slot in a shadow tree (if we were using one), whose name is\n // the empty string\n const slotNode = getHostSlotNode(this.childNodes, '');\n // when a slot node is found, the textContent _may_ be found in the next sibling (text) node, depending on how\n // nodes were reordered during the vdom render. first try to get the text content from the sibling.\n if (((_a = slotNode === null || slotNode === void 0 ? void 0 : slotNode.nextSibling) === null || _a === void 0 ? void 0 : _a.nodeType) === 3 /* NODE_TYPES.TEXT_NODE */) {\n return slotNode.nextSibling.textContent;\n }\n else if (slotNode) {\n return slotNode.textContent;\n }\n else {\n // fallback to the original implementation\n return this.__textContent;\n }\n },\n set(value) {\n var _a;\n // get the 'default slot', which would be the first slot in a shadow tree (if we were using one), whose name is\n // the empty string\n const slotNode = getHostSlotNode(this.childNodes, '');\n // when a slot node is found, the textContent _may_ need to be placed in the next sibling (text) node,\n // depending on how nodes were reordered during the vdom render. first try to set the text content on the\n // sibling.\n if (((_a = slotNode === null || slotNode === void 0 ? void 0 : slotNode.nextSibling) === null || _a === void 0 ? void 0 : _a.nodeType) === 3 /* NODE_TYPES.TEXT_NODE */) {\n slotNode.nextSibling.textContent = value;\n }\n else if (slotNode) {\n slotNode.textContent = value;\n }\n else {\n // we couldn't find a slot, but that doesn't mean that there isn't one. if this check ran before the DOM\n // loaded, we could have missed it. check for a content reference element on the scoped component and insert\n // it there\n this.__textContent = value;\n const contentRefElm = this['s-cr'];\n if (contentRefElm) {\n this.insertBefore(contentRefElm, this.firstChild);\n }\n }\n },\n });\n }\n};\nconst patchChildSlotNodes = (elm, cmpMeta) => {\n class FakeNodeList extends Array {\n item(n) {\n return this[n];\n }\n }\n if (cmpMeta.$flags$ & 8 /* CMP_FLAGS.needsShadowDomShim */) {\n const childNodesFn = elm.__lookupGetter__('childNodes');\n Object.defineProperty(elm, 'children', {\n get() {\n return this.childNodes.map((n) => n.nodeType === 1);\n },\n });\n Object.defineProperty(elm, 'childElementCount', {\n get() {\n return elm.children.length;\n },\n });\n Object.defineProperty(elm, 'childNodes', {\n get() {\n const childNodes = childNodesFn.call(this);\n if ((plt.$flags$ & 1 /* PLATFORM_FLAGS.isTmpDisconnected */) === 0 &&\n getHostRef(this).$flags$ & 2 /* HOST_FLAGS.hasRendered */) {\n const result = new FakeNodeList();\n for (let i = 0; i < childNodes.length; i++) {\n const slot = childNodes[i]['s-nr'];\n if (slot) {\n result.push(slot);\n }\n }\n return result;\n }\n return FakeNodeList.from(childNodes);\n },\n });\n }\n};\nconst getSlotName = (node) => node['s-sn'] || (node.nodeType === 1 && node.getAttribute('slot')) || '';\n/**\n * Recursively searches a series of child nodes for a slot with the provided name.\n * @param childNodes the nodes to search for a slot with a specific name.\n * @param slotName the name of the slot to match on.\n * @returns a reference to the slot node that matches the provided name, `null` otherwise\n */\nconst getHostSlotNode = (childNodes, slotName) => {\n let i = 0;\n let childNode;\n for (; i < childNodes.length; i++) {\n childNode = childNodes[i];\n if (childNode['s-sr'] && childNode['s-sn'] === slotName) {\n return childNode;\n }\n childNode = getHostSlotNode(childNode.childNodes, slotName);\n if (childNode) {\n return childNode;\n }\n }\n return null;\n};\nconst getHostSlotChildNodes = (n, slotName) => {\n const childNodes = [n];\n while ((n = n.nextSibling) && n['s-sn'] === slotName) {\n childNodes.push(n);\n }\n return childNodes;\n};\nconst hmrStart = (elm, cmpMeta, hmrVersionId) => {\n // ¯\\_(ツ)_/¯\n const hostRef = getHostRef(elm);\n // reset state flags to only have been connected\n hostRef.$flags$ = 1 /* HOST_FLAGS.hasConnected */;\n // TODO\n // detatch any event listeners that may have been added\n // because we're not passing an exact event name it'll\n // remove all of this element's event, which is good\n // create a callback for when this component finishes hmr\n elm['s-hmr-load'] = () => {\n // finished hmr for this element\n delete elm['s-hmr-load'];\n };\n // re-initialize the component\n initializeComponent(elm, hostRef, cmpMeta, hmrVersionId);\n};\nconst bootstrapLazy = (lazyBundles, options = {}) => {\n if (BUILD.profile && performance.mark) {\n performance.mark('st:app:start');\n }\n installDevTools();\n const endBootstrap = createTime('bootstrapLazy');\n const cmpTags = [];\n const exclude = options.exclude || [];\n const customElements = win.customElements;\n const head = doc.head;\n const metaCharset = /*@__PURE__*/ head.querySelector('meta[charset]');\n const visibilityStyle = /*@__PURE__*/ doc.createElement('style');\n const deferredConnectedCallbacks = [];\n const styles = /*@__PURE__*/ doc.querySelectorAll(`[${HYDRATED_STYLE_ID}]`);\n let appLoadFallback;\n let isBootstrapping = true;\n let i = 0;\n Object.assign(plt, options);\n plt.$resourcesUrl$ = new URL(options.resourcesUrl || './', doc.baseURI).href;\n if (BUILD.asyncQueue) {\n if (options.syncQueue) {\n plt.$flags$ |= 4 /* PLATFORM_FLAGS.queueSync */;\n }\n }\n if (BUILD.hydrateClientSide) {\n // If the app is already hydrated there is not point to disable the\n // async queue. This will improve the first input delay\n plt.$flags$ |= 2 /* PLATFORM_FLAGS.appLoaded */;\n }\n if (BUILD.hydrateClientSide && BUILD.shadowDom) {\n for (; i < styles.length; i++) {\n registerStyle(styles[i].getAttribute(HYDRATED_STYLE_ID), convertScopedToShadow(styles[i].innerHTML), true);\n }\n }\n lazyBundles.map((lazyBundle) => {\n lazyBundle[1].map((compactMeta) => {\n const cmpMeta = {\n $flags$: compactMeta[0],\n $tagName$: compactMeta[1],\n $members$: compactMeta[2],\n $listeners$: compactMeta[3],\n };\n if (BUILD.member) {\n cmpMeta.$members$ = compactMeta[2];\n }\n if (BUILD.hostListener) {\n cmpMeta.$listeners$ = compactMeta[3];\n }\n if (BUILD.reflect) {\n cmpMeta.$attrsToReflect$ = [];\n }\n if (BUILD.watchCallback) {\n cmpMeta.$watchers$ = {};\n }\n if (BUILD.shadowDom && !supportsShadow && cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) {\n cmpMeta.$flags$ |= 8 /* CMP_FLAGS.needsShadowDomShim */;\n }\n const tagName = BUILD.transformTagName && options.transformTagName\n ? options.transformTagName(cmpMeta.$tagName$)\n : cmpMeta.$tagName$;\n const HostElement = class extends HTMLElement {\n // StencilLazyHost\n constructor(self) {\n // @ts-ignore\n super(self);\n self = this;\n registerHost(self, cmpMeta);\n if (BUILD.shadowDom && cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) {\n // this component is using shadow dom\n // and this browser supports shadow dom\n // add the read-only property \"shadowRoot\" to the host element\n // adding the shadow root build conditionals to minimize runtime\n if (supportsShadow) {\n if (BUILD.shadowDelegatesFocus) {\n self.attachShadow({\n mode: 'open',\n delegatesFocus: !!(cmpMeta.$flags$ & 16 /* CMP_FLAGS.shadowDelegatesFocus */),\n });\n }\n else {\n self.attachShadow({ mode: 'open' });\n }\n }\n else if (!BUILD.hydrateServerSide && !('shadowRoot' in self)) {\n self.shadowRoot = self;\n }\n }\n if (BUILD.slotChildNodesFix) {\n patchChildSlotNodes(self, cmpMeta);\n }\n }\n connectedCallback() {\n if (appLoadFallback) {\n clearTimeout(appLoadFallback);\n appLoadFallback = null;\n }\n if (isBootstrapping) {\n // connectedCallback will be processed once all components have been registered\n deferredConnectedCallbacks.push(this);\n }\n else {\n plt.jmp(() => connectedCallback(this));\n }\n }\n disconnectedCallback() {\n plt.jmp(() => disconnectedCallback(this));\n }\n componentOnReady() {\n return getHostRef(this).$onReadyPromise$;\n }\n };\n if (BUILD.cloneNodeFix) {\n patchCloneNode(HostElement.prototype);\n }\n if (BUILD.appendChildSlotFix) {\n patchSlotAppendChild(HostElement.prototype);\n }\n if (BUILD.hotModuleReplacement) {\n HostElement.prototype['s-hmr'] = function (hmrVersionId) {\n hmrStart(this, cmpMeta, hmrVersionId);\n };\n }\n if (BUILD.scopedSlotTextContentFix) {\n patchTextContent(HostElement.prototype, cmpMeta);\n }\n cmpMeta.$lazyBundleId$ = lazyBundle[0];\n if (!exclude.includes(tagName) && !customElements.get(tagName)) {\n cmpTags.push(tagName);\n customElements.define(tagName, proxyComponent(HostElement, cmpMeta, 1 /* PROXY_FLAGS.isElementConstructor */));\n }\n });\n });\n if (BUILD.invisiblePrehydration && (BUILD.hydratedClass || BUILD.hydratedAttribute)) {\n visibilityStyle.innerHTML = cmpTags + HYDRATED_CSS;\n visibilityStyle.setAttribute('data-styles', '');\n head.insertBefore(visibilityStyle, metaCharset ? metaCharset.nextSibling : head.firstChild);\n }\n // Process deferred connectedCallbacks now all components have been registered\n isBootstrapping = false;\n if (deferredConnectedCallbacks.length) {\n deferredConnectedCallbacks.map((host) => host.connectedCallback());\n }\n else {\n if (BUILD.profile) {\n plt.jmp(() => (appLoadFallback = setTimeout(appDidLoad, 30, 'timeout')));\n }\n else {\n plt.jmp(() => (appLoadFallback = setTimeout(appDidLoad, 30)));\n }\n }\n // Fallback appLoad event\n endBootstrap();\n};\nconst getConnect = (_ref, tagName) => {\n const componentOnReady = () => {\n let elm = doc.querySelector(tagName);\n if (!elm) {\n elm = doc.createElement(tagName);\n doc.body.appendChild(elm);\n }\n return typeof elm.componentOnReady === 'function' ? elm.componentOnReady() : Promise.resolve(elm);\n };\n const create = (...args) => {\n return componentOnReady().then((el) => el.create(...args));\n };\n return {\n create,\n componentOnReady,\n };\n};\nconst getContext = (_elm, context) => {\n if (context in Context) {\n return Context[context];\n }\n else if (context === 'window') {\n return win;\n }\n else if (context === 'document') {\n return doc;\n }\n else if (context === 'isServer' || context === 'isPrerender') {\n return BUILD.hydrateServerSide ? true : false;\n }\n else if (context === 'isClient') {\n return BUILD.hydrateServerSide ? false : true;\n }\n else if (context === 'resourcesUrl' || context === 'publicPath') {\n return getAssetPath('.');\n }\n else if (context === 'queue') {\n return {\n write: writeTask,\n read: readTask,\n tick: {\n then(cb) {\n return nextTick(cb);\n },\n },\n };\n }\n return undefined;\n};\nconst Fragment = (_, children) => children;\nconst addHostEventListeners = (elm, hostRef, listeners, attachParentListeners) => {\n if (BUILD.hostListener && listeners) {\n // this is called immediately within the element's constructor\n // initialize our event listeners on the host element\n // we do this now so that we can listen to events that may\n // have fired even before the instance is ready\n if (BUILD.hostListenerTargetParent) {\n // this component may have event listeners that should be attached to the parent\n if (attachParentListeners) {\n // this is being ran from within the connectedCallback\n // which is important so that we know the host element actually has a parent element\n // filter out the listeners to only have the ones that ARE being attached to the parent\n listeners = listeners.filter(([flags]) => flags & 32 /* LISTENER_FLAGS.TargetParent */);\n }\n else {\n // this is being ran from within the component constructor\n // everything BUT the parent element listeners should be attached at this time\n // filter out the listeners that are NOT being attached to the parent\n listeners = listeners.filter(([flags]) => !(flags & 32 /* LISTENER_FLAGS.TargetParent */));\n }\n }\n listeners.map(([flags, name, method]) => {\n const target = BUILD.hostListenerTarget ? getHostListenerTarget(elm, flags) : elm;\n const handler = hostListenerProxy(hostRef, method);\n const opts = hostListenerOpts(flags);\n plt.ael(target, name, handler, opts);\n (hostRef.$rmListeners$ = hostRef.$rmListeners$ || []).push(() => plt.rel(target, name, handler, opts));\n });\n }\n};\nconst hostListenerProxy = (hostRef, methodName) => (ev) => {\n try {\n if (BUILD.lazyLoad) {\n if (hostRef.$flags$ & 256 /* HOST_FLAGS.isListenReady */) {\n // instance is ready, let's call it's member method for this event\n hostRef.$lazyInstance$[methodName](ev);\n }\n else {\n (hostRef.$queuedListeners$ = hostRef.$queuedListeners$ || []).push([methodName, ev]);\n }\n }\n else {\n hostRef.$hostElement$[methodName](ev);\n }\n }\n catch (e) {\n consoleError(e);\n }\n};\nconst getHostListenerTarget = (elm, flags) => {\n if (BUILD.hostListenerTargetDocument && flags & 4 /* LISTENER_FLAGS.TargetDocument */)\n return doc;\n if (BUILD.hostListenerTargetWindow && flags & 8 /* LISTENER_FLAGS.TargetWindow */)\n return win;\n if (BUILD.hostListenerTargetBody && flags & 16 /* LISTENER_FLAGS.TargetBody */)\n return doc.body;\n if (BUILD.hostListenerTargetParent && flags & 32 /* LISTENER_FLAGS.TargetParent */)\n return elm.parentElement;\n return elm;\n};\n// prettier-ignore\nconst hostListenerOpts = (flags) => supportsListenerOptions\n ? ({\n passive: (flags & 1 /* LISTENER_FLAGS.Passive */) !== 0,\n capture: (flags & 2 /* LISTENER_FLAGS.Capture */) !== 0,\n })\n : (flags & 2 /* LISTENER_FLAGS.Capture */) !== 0;\nconst setPlatformOptions = (opts) => Object.assign(plt, opts);\nconst insertVdomAnnotations = (doc, staticComponents) => {\n if (doc != null) {\n const docData = {\n hostIds: 0,\n rootLevelIds: 0,\n staticComponents: new Set(staticComponents),\n };\n const orgLocationNodes = [];\n parseVNodeAnnotations(doc, doc.body, docData, orgLocationNodes);\n orgLocationNodes.forEach((orgLocationNode) => {\n if (orgLocationNode != null) {\n const nodeRef = orgLocationNode['s-nr'];\n let hostId = nodeRef['s-host-id'];\n let nodeId = nodeRef['s-node-id'];\n let childId = `${hostId}.${nodeId}`;\n if (hostId == null) {\n hostId = 0;\n docData.rootLevelIds++;\n nodeId = docData.rootLevelIds;\n childId = `${hostId}.${nodeId}`;\n if (nodeRef.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n nodeRef.setAttribute(HYDRATE_CHILD_ID, childId);\n }\n else if (nodeRef.nodeType === 3 /* NODE_TYPE.TextNode */) {\n if (hostId === 0) {\n const textContent = nodeRef.nodeValue.trim();\n if (textContent === '') {\n // useless whitespace node at the document root\n orgLocationNode.remove();\n return;\n }\n }\n const commentBeforeTextNode = doc.createComment(childId);\n commentBeforeTextNode.nodeValue = `${TEXT_NODE_ID}.${childId}`;\n nodeRef.parentNode.insertBefore(commentBeforeTextNode, nodeRef);\n }\n }\n let orgLocationNodeId = `${ORG_LOCATION_ID}.${childId}`;\n const orgLocationParentNode = orgLocationNode.parentElement;\n if (orgLocationParentNode) {\n if (orgLocationParentNode['s-en'] === '') {\n // ending with a \".\" means that the parent element\n // of this node's original location is a SHADOW dom element\n // and this node is apart of the root level light dom\n orgLocationNodeId += `.`;\n }\n else if (orgLocationParentNode['s-en'] === 'c') {\n // ending with a \".c\" means that the parent element\n // of this node's original location is a SCOPED element\n // and this node is apart of the root level light dom\n orgLocationNodeId += `.c`;\n }\n }\n orgLocationNode.nodeValue = orgLocationNodeId;\n }\n });\n }\n};\nconst parseVNodeAnnotations = (doc, node, docData, orgLocationNodes) => {\n if (node == null) {\n return;\n }\n if (node['s-nr'] != null) {\n orgLocationNodes.push(node);\n }\n if (node.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n node.childNodes.forEach((childNode) => {\n const hostRef = getHostRef(childNode);\n if (hostRef != null && !docData.staticComponents.has(childNode.nodeName.toLowerCase())) {\n const cmpData = {\n nodeIds: 0,\n };\n insertVNodeAnnotations(doc, childNode, hostRef.$vnode$, docData, cmpData);\n }\n parseVNodeAnnotations(doc, childNode, docData, orgLocationNodes);\n });\n }\n};\nconst insertVNodeAnnotations = (doc, hostElm, vnode, docData, cmpData) => {\n if (vnode != null) {\n const hostId = ++docData.hostIds;\n hostElm.setAttribute(HYDRATE_ID, hostId);\n if (hostElm['s-cr'] != null) {\n hostElm['s-cr'].nodeValue = `${CONTENT_REF_ID}.${hostId}`;\n }\n if (vnode.$children$ != null) {\n const depth = 0;\n vnode.$children$.forEach((vnodeChild, index) => {\n insertChildVNodeAnnotations(doc, vnodeChild, cmpData, hostId, depth, index);\n });\n }\n if (hostElm && vnode && vnode.$elm$ && !hostElm.hasAttribute('c-id')) {\n const parent = hostElm.parentElement;\n if (parent && parent.childNodes) {\n const parentChildNodes = Array.from(parent.childNodes);\n const comment = parentChildNodes.find((node) => node.nodeType === 8 /* NODE_TYPE.CommentNode */ && node['s-sr']);\n if (comment) {\n const index = parentChildNodes.indexOf(hostElm) - 1;\n vnode.$elm$.setAttribute(HYDRATE_CHILD_ID, `${comment['s-host-id']}.${comment['s-node-id']}.0.${index}`);\n }\n }\n }\n }\n};\nconst insertChildVNodeAnnotations = (doc, vnodeChild, cmpData, hostId, depth, index) => {\n const childElm = vnodeChild.$elm$;\n if (childElm == null) {\n return;\n }\n const nodeId = cmpData.nodeIds++;\n const childId = `${hostId}.${nodeId}.${depth}.${index}`;\n childElm['s-host-id'] = hostId;\n childElm['s-node-id'] = nodeId;\n if (childElm.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n childElm.setAttribute(HYDRATE_CHILD_ID, childId);\n }\n else if (childElm.nodeType === 3 /* NODE_TYPE.TextNode */) {\n const parentNode = childElm.parentNode;\n const nodeName = parentNode.nodeName;\n if (nodeName !== 'STYLE' && nodeName !== 'SCRIPT') {\n const textNodeId = `${TEXT_NODE_ID}.${childId}`;\n const commentBeforeTextNode = doc.createComment(textNodeId);\n parentNode.insertBefore(commentBeforeTextNode, childElm);\n }\n }\n else if (childElm.nodeType === 8 /* NODE_TYPE.CommentNode */) {\n if (childElm['s-sr']) {\n const slotName = childElm['s-sn'] || '';\n const slotNodeId = `${SLOT_NODE_ID}.${childId}.${slotName}`;\n childElm.nodeValue = slotNodeId;\n }\n }\n if (vnodeChild.$children$ != null) {\n const childDepth = depth + 1;\n vnodeChild.$children$.forEach((vnode, index) => {\n insertChildVNodeAnnotations(doc, vnode, cmpData, hostId, childDepth, index);\n });\n }\n};\nconst hostRefs = /*@__PURE__*/ new WeakMap();\nconst getHostRef = (ref) => hostRefs.get(ref);\nconst registerInstance = (lazyInstance, hostRef) => hostRefs.set((hostRef.$lazyInstance$ = lazyInstance), hostRef);\nconst registerHost = (elm, cmpMeta) => {\n const hostRef = {\n $flags$: 0,\n $hostElement$: elm,\n $cmpMeta$: cmpMeta,\n $instanceValues$: new Map(),\n };\n if (BUILD.isDev) {\n hostRef.$renderCount$ = 0;\n }\n if (BUILD.method && BUILD.lazyLoad) {\n hostRef.$onInstancePromise$ = new Promise((r) => (hostRef.$onInstanceResolve$ = r));\n }\n if (BUILD.asyncLoading) {\n hostRef.$onReadyPromise$ = new Promise((r) => (hostRef.$onReadyResolve$ = r));\n elm['s-p'] = [];\n elm['s-rc'] = [];\n }\n addHostEventListeners(elm, hostRef, cmpMeta.$listeners$, false);\n return hostRefs.set(elm, hostRef);\n};\nconst isMemberInElement = (elm, memberName) => memberName in elm;\nconst consoleError = (e, el) => (customError || console.error)(e, el);\nconst STENCIL_DEV_MODE = BUILD.isTesting\n ? ['STENCIL:'] // E2E testing\n : [\n '%cstencil',\n 'color: white;background:#4c47ff;font-weight: bold; font-size:10px; padding:2px 6px; border-radius: 5px',\n ];\nconst consoleDevError = (...m) => console.error(...STENCIL_DEV_MODE, ...m);\nconst consoleDevWarn = (...m) => console.warn(...STENCIL_DEV_MODE, ...m);\nconst consoleDevInfo = (...m) => console.info(...STENCIL_DEV_MODE, ...m);\nconst setErrorHandler = (handler) => (customError = handler);\nconst cmpModules = /*@__PURE__*/ new Map();\nconst loadModule = (cmpMeta, hostRef, hmrVersionId) => {\n // loadModuleImport\n const exportName = cmpMeta.$tagName$.replace(/-/g, '_');\n const bundleId = cmpMeta.$lazyBundleId$;\n if (BUILD.isDev && typeof bundleId !== 'string') {\n consoleDevError(`Trying to lazily load component <${cmpMeta.$tagName$}> with style mode \"${hostRef.$modeName$}\", but it does not exist.`);\n return undefined;\n }\n const module = !BUILD.hotModuleReplacement ? cmpModules.get(bundleId) : false;\n if (module) {\n return module[exportName];\n }\n /*!__STENCIL_STATIC_IMPORT_SWITCH__*/\n return import(\n /* @vite-ignore */\n /* webpackInclude: /\\.entry\\.js$/ */\n /* webpackExclude: /\\.system\\.entry\\.js$/ */\n /* webpackMode: \"lazy\" */\n `./${bundleId}.entry.js${BUILD.hotModuleReplacement && hmrVersionId ? '?s-hmr=' + hmrVersionId : ''}`).then((importedModule) => {\n if (!BUILD.hotModuleReplacement) {\n cmpModules.set(bundleId, importedModule);\n }\n return importedModule[exportName];\n }, consoleError);\n};\nconst styles = /*@__PURE__*/ new Map();\nconst modeResolutionChain = [];\nconst win = typeof window !== 'undefined' ? window : {};\nconst CSS = BUILD.cssVarShim ? win.CSS : null;\nconst doc = win.document || { head: {} };\nconst H = (win.HTMLElement || class {\n});\nconst plt = {\n $flags$: 0,\n $resourcesUrl$: '',\n jmp: (h) => h(),\n raf: (h) => requestAnimationFrame(h),\n ael: (el, eventName, listener, opts) => el.addEventListener(eventName, listener, opts),\n rel: (el, eventName, listener, opts) => el.removeEventListener(eventName, listener, opts),\n ce: (eventName, opts) => new CustomEvent(eventName, opts),\n};\nconst setPlatformHelpers = (helpers) => {\n Object.assign(plt, helpers);\n};\nconst supportsShadow = BUILD.shadowDomShim && BUILD.shadowDom\n ? /*@__PURE__*/ (() => (doc.head.attachShadow + '').indexOf('[native') > -1)()\n : true;\nconst supportsListenerOptions = /*@__PURE__*/ (() => {\n let supportsListenerOptions = false;\n try {\n doc.addEventListener('e', null, Object.defineProperty({}, 'passive', {\n get() {\n supportsListenerOptions = true;\n },\n }));\n }\n catch (e) { }\n return supportsListenerOptions;\n})();\nconst promiseResolve = (v) => Promise.resolve(v);\nconst supportsConstructableStylesheets = BUILD.constructableCSS\n ? /*@__PURE__*/ (() => {\n try {\n new CSSStyleSheet();\n return typeof new CSSStyleSheet().replaceSync === 'function';\n }\n catch (e) { }\n return false;\n })()\n : false;\nconst queueDomReads = [];\nconst queueDomWrites = [];\nconst queueDomWritesLow = [];\nconst queueTask = (queue, write) => (cb) => {\n queue.push(cb);\n if (!queuePending) {\n queuePending = true;\n if (write && plt.$flags$ & 4 /* PLATFORM_FLAGS.queueSync */) {\n nextTick(flush);\n }\n else {\n plt.raf(flush);\n }\n }\n};\nconst consume = (queue) => {\n for (let i = 0; i < queue.length; i++) {\n try {\n queue[i](performance.now());\n }\n catch (e) {\n consoleError(e);\n }\n }\n queue.length = 0;\n};\nconst consumeTimeout = (queue, timeout) => {\n let i = 0;\n let ts = 0;\n while (i < queue.length && (ts = performance.now()) < timeout) {\n try {\n queue[i++](ts);\n }\n catch (e) {\n consoleError(e);\n }\n }\n if (i === queue.length) {\n queue.length = 0;\n }\n else if (i !== 0) {\n queue.splice(0, i);\n }\n};\nconst flush = () => {\n if (BUILD.asyncQueue) {\n queueCongestion++;\n }\n // always force a bunch of medium callbacks to run, but still have\n // a throttle on how many can run in a certain time\n // DOM READS!!!\n consume(queueDomReads);\n // DOM WRITES!!!\n if (BUILD.asyncQueue) {\n const timeout = (plt.$flags$ & 6 /* PLATFORM_FLAGS.queueMask */) === 2 /* PLATFORM_FLAGS.appLoaded */\n ? performance.now() + 14 * Math.ceil(queueCongestion * (1.0 / 10.0))\n : Infinity;\n consumeTimeout(queueDomWrites, timeout);\n consumeTimeout(queueDomWritesLow, timeout);\n if (queueDomWrites.length > 0) {\n queueDomWritesLow.push(...queueDomWrites);\n queueDomWrites.length = 0;\n }\n if ((queuePending = queueDomReads.length + queueDomWrites.length + queueDomWritesLow.length > 0)) {\n // still more to do yet, but we've run out of time\n // let's let this thing cool off and try again in the next tick\n plt.raf(flush);\n }\n else {\n queueCongestion = 0;\n }\n }\n else {\n consume(queueDomWrites);\n if ((queuePending = queueDomReads.length > 0)) {\n // still more to do yet, but we've run out of time\n // let's let this thing cool off and try again in the next tick\n plt.raf(flush);\n }\n }\n};\nconst nextTick = /*@__PURE__*/ (cb) => promiseResolve().then(cb);\nconst readTask = /*@__PURE__*/ queueTask(queueDomReads, false);\nconst writeTask = /*@__PURE__*/ queueTask(queueDomWrites, true);\nexport { BUILD, Env, NAMESPACE } from '@stencil/core/internal/app-data';\nexport { Build, CSS, Context, Fragment, H, H as HTMLElement, Host, STENCIL_DEV_MODE, addHostEventListeners, bootstrapLazy, cmpModules, connectedCallback, consoleDevError, consoleDevInfo, consoleDevWarn, consoleError, createEvent, defineCustomElement, disconnectedCallback, doc, forceModeUpdate, forceUpdate, getAssetPath, getConnect, getContext, getElement, getHostRef, getMode, getRenderingRef, getValue, h, insertVdomAnnotations, isMemberInElement, loadModule, modeResolutionChain, nextTick, parsePropertyValue, plt, postUpdateComponent, promiseResolve, proxyComponent, proxyCustomElement, readTask, registerHost, registerInstance, renderVdom, setAssetPath, setErrorHandler, setMode, setPlatformHelpers, setPlatformOptions, setValue, styles, supportsConstructableStylesheets, supportsListenerOptions, supportsShadow, win, writeTask };\n","interface ColorConfig {\n\tbg: string\n\ttext: string\n}\n\nconst WARNING_COLORS: ColorConfig = { bg: '#ecae1a', text: '#3b3b3b' }\nconst INFO_COLORS: ColorConfig = { bg: '#2362a2', text: '#fff' }\nconst ERROR_COLORS: ColorConfig = { bg: '#c52a3a', text: '#fff' }\n\nexport const govLog = (message: string, colors: ColorConfig = INFO_COLORS): void => {\n\tconst styles = ['color: ' + colors.text, 'background: ' + colors.bg, 'font-size: 11px', 'padding: 2px 4px', 'border-radius: 3px', 'font-weight: 600'].join(\n\t\t';'\n\t)\n\n\tconsole.log('%cgov', styles, message)\n}\n\nexport const govWarningLog = (message: string): void => {\n\tgovLog(message, WARNING_COLORS)\n}\n\nexport const govErrorLog = (message: string): void => {\n\tgovLog(message, ERROR_COLORS)\n}\n","import { govWarningLog } from '../Log/gov.log'\n\n// @TODO: deal with optional values\nexport const validateProp = <T extends Record<string, string>>(valueEnum: T, value: string, component: string): void => {\n\tconst values = Object.values(valueEnum)\n\tconst isValid = values.indexOf(value) > -1\n\tif (!isValid) {\n\t\tgovWarningLog(`[${component}]: Bad parameter with value (${value}). Available parameters are (${values.join(', ')}).`)\n\t}\n}\n","export enum Sizes {\n\t_2XS = '2xs',\n\t_XS = 'xs',\n\t_S = 's',\n\t_M = 'm',\n\t_L = 'l',\n\t_XL = 'xl',\n\t_2XL = '2xl',\n\t_3XL = '3xl',\n\t_4XL = '4xl',\n\t_5XL = '6xl',\n\t_6XL = '6xl',\n}\n","export enum Variants {\n\tPRIMARY = 'primary',\n\tSECONDARY = 'secondary',\n\tSUCCESS = 'success',\n\tERROR = 'error',\n\tWARNING = 'warning',\n\tCUSTOM = 'custom',\n}\n\nexport enum Types {\n\tCLASSIC = 'classic',\n\tSOLID = 'solid',\n}\n","export function format(first: string, middle: string, last: string): string {\n\treturn (first || '') + (middle ? ` ${middle}` : '') + (last ? ` ${last}` : '')\n}\n\nexport async function delay(miliseconds: number): Promise<void> {\n\treturn new Promise(resolve => setTimeout(resolve, miliseconds))\n}\n\nexport function throttle(f: (entries) => void, delay: number) {\n\tlet timer: any = 0\n\treturn function (...args) {\n\t\tclearTimeout(timer)\n\t\ttimer = setTimeout(() => f.apply(this, args), delay)\n\t}\n}\n\n/**\n * Checks if object has that property\n *\n * @param {K} prop\n * @param {T} obj\n * @return {obj is T & Record<K, V>}\n */\nexport const has = <T extends object, K extends PropertyKey, V>(prop: K, obj: T): obj is T & Record<K, V> => {\n\treturn Object.prototype.hasOwnProperty.call(obj, prop)\n}\n\n/**\n * Returns property of given Object\n *\n * @param {K} name\n * @param {T} object\n * @return {(T & Record<K, unknown>)[K]}\n */\nexport const property = <T extends object, K extends keyof T>(name: K, object: T) => {\n\treturn has(name, object) ? object[name] : undefined\n}\n\nexport const pick = <T extends Record<string, unknown>, K extends keyof T>(obj: T, keys: readonly K[]): Pick<T, K> =>\n\tObject.fromEntries(Object.entries(obj).filter(([key]) => (keys as readonly string[]).includes(key))) as Pick<T, K>\n","import { Sizes } from '../../core/constants/sizes'\nimport { Variants } from '../../core/constants/variants'\nimport { pick } from '../../utils/utils'\nimport { ValueOf } from '../../types/interfaces'\n\nexport const AccordionSizes = pick(Sizes, ['_XS', '_S', '_M', '_L'])\nexport type AccordionSizeType = `${ValueOf<typeof AccordionSizes>}`\n\nexport const AccordionVariants = pick(Variants, ['PRIMARY', 'SECONDARY', 'CUSTOM'])\nexport type AccordionVariantType = `${ValueOf<typeof AccordionVariants>}`\n\nexport const AccordionClass = {\n\troot: 'gov-accordion',\n}\n\nexport const AccordionItemClass = {\n\troot: 'gov-accordion-item',\n\theader: 'gov-accordion-item__header',\n\tarrow: 'gov-accordion-item__arrow',\n\ticon: 'gov-accordion-item__icon',\n\tsuffix: 'gov-accordion-item__suffix',\n\ttitle: 'gov-accordion-item__title',\n\tlabel: 'gov-accordion-item__label',\n\tname: 'gov-accordion-item__name',\n\tannot: 'gov-accordion-item__annot',\n\tcontent: 'gov-accordion-item__content',\n}\n","function chr4(): string {\n\treturn Math.random().toString(16).slice(-4)\n}\n\nexport function createID(prefix: string): string {\n\treturn `${prefix}-${chr4()}${chr4()}-${chr4()}-${chr4()}-${chr4()}-${chr4()}${chr4()}${chr4()}`\n}\n\nexport function removeDiacritics(string: any): string | any {\n\tif (typeof string !== 'string') return string\n\treturn string.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '')\n}\n\nexport function splitByWhitespace(string: any): string | any {\n\tif (typeof string !== 'string') return string\n\treturn string.split(/(\\s+)/)\n}\n","import { property } from '../../utils/utils'\n\ninterface IConfig {\n\tcanValidateWcagOnRender: boolean\n\ticonsPath: string\n\tdocumentNode: Document\n}\n\nexport const isWindow = typeof window !== \"undefined\"\n\nconst getWindowProperty = <T>(name: string): Partial<T> | undefined => isWindow && window && property(name as keyof typeof window, window)\n\nconst config = (): IConfig => {\n\tconst defaultConfig: IConfig = {\n\t\tcanValidateWcagOnRender: false,\n\t\ticonsPath: './assets/icons',\n\t\tdocumentNode: document ? document : null,\n\t}\n\n\tconst windowProperty = getWindowProperty<IConfig>('GOV_DS_CONFIG')\n\tif (windowProperty) {\n\t\treturn { ...defaultConfig, ...windowProperty }\n\t}\n\n\treturn defaultConfig\n}\n\nexport const canValidateWcagOnRender = (): IConfig['canValidateWcagOnRender'] => config().canValidateWcagOnRender\nexport const iconsPath = (): IConfig['iconsPath'] => config().iconsPath\nexport const documentNode = (): IConfig['documentNode'] => config().documentNode\n","import { govWarningLog } from '../Log/gov.log'\nimport { splitByWhitespace } from '../../utils/string.utils'\nimport { documentNode } from '../Dom/win'\n\nexport const validateWcagProp = (value: string | undefined, propName: string, component: string): void => {\n\tif (value === undefined || String(value).length === 0) {\n\t\tgovWarningLog(`[${component}]: The (${propName}) attribute is important for correct accessibility.`)\n\t}\n}\n\nexport const validateWcagRef = (referenceId: string, name: string, component: string): boolean => {\n\tif (typeof referenceId === 'undefined' || referenceId === undefined) {\n\t\treturn true\n\t}\n\tif (String(referenceId).length === 0) {\n\t\tgovWarningLog(`[${component}]: Attribute (${name}) is defined with an empty value.`)\n\t\treturn false\n\t}\n\tlet strings = []\n\tconst referenceIds = splitByWhitespace(referenceId)\n\tif (Array.isArray(referenceIds)) {\n\t\tstrings = referenceIds.filter(function (e) {\n\t\t\treturn e.trim().length > 0\n\t\t})\n\t}\n\n\treturn !!strings.filter(referenceId => {\n\t\tif (documentNode().getElementById(referenceId) === null) {\n\t\t\t//govWarningLog(`[${component}][${name}]: Reference to element with id (${referenceId}) does not exist.`)\n\t\t\treturn false\n\t\t} else {\n\t\t\treturn true\n\t\t}\n\t}).length\n}\n\nexport const validateWcagLabelFor = (inputId: string, labelledBy: string | undefined, component: string): boolean => {\n\tconst labelEl = documentNode().querySelector(`[for=${inputId}]`)\n\tif (labelEl === null) {\n\t\tconst labelledByEl = documentNode().getElementById(labelledBy)\n\t\tif (labelledByEl === null) {\n\t\t\tgovWarningLog(`[${component}]: The form element has no defined wcag-label or wcag-labelled-by attribute.`)\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nexport const validateWcagLabel = (label: string | undefined, labelledBy: string | undefined, component: string): boolean => {\n\tif (typeof label === 'string' && label.length > 0) {\n\t\treturn true\n\t}\n\tif (typeof labelledBy === 'string' && labelledBy.length > 0) {\n\t\tconst labelledByEl = documentNode().getElementById(labelledBy)\n\t\tif (labelledByEl) {\n\t\t\treturn true\n\t\t}\n\t}\n\tgovWarningLog(`[${component}]: The element has no defined wcag-label or wcag-labelled-by attribute.`)\n\treturn false\n}\n","import { HTMLStencilElement } from '@stencil/core/internal'\nimport { GovHost } from './template.types'\nimport { Nullable } from '../../types/interfaces'\n\nexport const prepareClasses = (classes: string[]): string => {\n\tif (Array.isArray(classes) === false) return\n\treturn classes\n\t\t.filter(classname => !!classname)\n\t\t.join(' ')\n\t\t.trim()\n}\n\nexport const slottedChildren = (host: HTMLStencilElement): Node[] => {\n\tconst slotted = host.querySelector('slot') as HTMLSlotElement\n\tif (slotted) {\n\t\treturn slotted.assignedNodes().filter(node => {\n\t\t\treturn node.nodeName !== '#text'\n\t\t})\n\t}\n\treturn []\n}\n\nexport const booleanString = (value: boolean): string => {\n\treturn value ? 'true' : 'false'\n}\n\nexport const govHost = (host: HTMLStencilElement): GovHost => {\n\treturn {\n\t\tget hostElement(): HTMLStencilElement {\n\t\t\treturn host\n\t\t},\n\t\tget name(): string {\n\t\t\treturn this.hostElement.nodeName.toLowerCase()\n\t\t},\n\t\thasSlot(name: string): boolean {\n\t\t\treturn !!this.getSlot(name)\n\t\t},\n\t\tgetSlot(name: string): HTMLElement {\n\t\t\treturn this.hostElement.querySelector('[slot=\"' + name + '\"]')\n\t\t},\n\t\tgetParent(element): Nullable<HTMLElement> {\n\t\t\treturn this.hostElement.closest(element)\n\t\t},\n\t\tpassChildAttr(selector: string | string[], name: string, value: any): void {\n\t\t\tif (Array.isArray(selector)) {\n\t\t\t\tselector.forEach(selector => {\n\t\t\t\t\tthis.hostElement.querySelectorAll(selector).forEach(child => child.setAttribute(name, value))\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\tthis.hostElement.querySelectorAll(selector).forEach(child => child.setAttribute(name, value))\n\t\t\t}\n\t\t},\n\t\tremoveChildAttr(selector: string | string[], name: string): void {\n\t\t\tif (Array.isArray(selector)) {\n\t\t\t\tselector.forEach(selector => {\n\t\t\t\t\tthis.hostElement.querySelectorAll(selector).forEach(child => child.removeAttribute(name))\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\tthis.hostElement.querySelectorAll(selector).forEach(child => child.removeAttribute(name))\n\t\t\t}\n\t\t},\n\t\tget slottedChildren(): Node[] {\n\t\t\tconst slotted = this.hostElement.shadowRoot.querySelector('slot') as HTMLSlotElement\n\t\t\tif (slotted) {\n\t\t\t\treturn slotted.assignedNodes().filter(node => {\n\t\t\t\t\treturn node.nodeName !== '#text'\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn []\n\t\t},\n\t\tclasses(classes: string | string[]): string {\n\t\t\tconst clearClasses = Array.isArray(classes) ? classes.join(' ') : classes\n\t\t\tif (this.hostElement) {\n\t\t\t\treturn this.hostElement.classList.toString() + ' ' + clearClasses\n\t\t\t}\n\t\t\treturn clearClasses\n\t\t},\n\t}\n}\n\nexport const toBoolAttr = (value: boolean | string | number): string => {\n\tif (typeof value === 'string') {\n\t\treturn ['true', 'True', 'TRUE', '1'].indexOf(value) !== -1 ? 'true' : 'false'\n\t} else if (typeof value === 'number') {\n\t\treturn value > 0 ? 'true' : 'false'\n\t} else if (typeof value === 'boolean') {\n\t\treturn value ? 'true' : 'false'\n\t} else {\n\t\treturn value ? 'true' : 'false'\n\t}\n}\n\nexport const toOnOffAttr = (value: boolean | string | number): string => {\n\tif (typeof value === 'string') {\n\t\treturn ['true', 'True', 'TRUE', '1', 'On', 'on', 'ON'].indexOf(value) !== -1 ? 'on' : 'off'\n\t} else if (typeof value === 'number') {\n\t\treturn value > 0 ? 'on' : 'off'\n\t} else if (typeof value === 'boolean') {\n\t\treturn value ? 'on' : 'off'\n\t} else {\n\t\treturn value ? 'on' : 'off'\n\t}\n}\n\nexport const toBoolAttrIfDefined = (value: boolean | string | number | undefined | null): undefined | string => {\n\treturn typeof value === 'undefined' ? undefined : toBoolAttr(value)\n}\n\nexport const toOnOffAttrIfDefined = (value: boolean | string | number | undefined | null): undefined | string => {\n\treturn typeof value === 'undefined' ? undefined : toOnOffAttr(value)\n}\n","/*\n * Accordion\n */\n\n$class: \".gov-accordion\";\n\n#{$class} {\n\t@include base();\n\n\t&[no-border] {\n\t\t.gov-accordion-item__header::before {\n\t\t\tbackground-color: transparent !important;\n\t\t}\n\t}\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, Watch } from '@stencil/core'\nimport { validateProp } from '../../helpers/Validate/props'\nimport { AccordionClass, AccordionSizes, AccordionSizeType, AccordionItemClass, AccordionVariantType } from './constants'\nimport { Variants } from '../../core/constants/variants'\nimport { validateWcagLabel } from '../../helpers/Validate/wcag'\nimport { canValidateWcagOnRender } from '../../helpers/Dom/win'\nimport { delay } from '../../utils/utils'\nimport { govHost } from '../../helpers/Dom/template'\nimport { GovHost } from '../../helpers/Dom/template.types'\nimport { AccordionEvent, AccordionItemEvent } from \"./gov-accordion.types\"\n\n@Component({\n\ttag: 'gov-accordion',\n\tstyleUrl: 'gov-accordion.scss',\n})\nexport class GovAccordion {\n\tprivate h: GovHost\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t}\n\n\t@Element() readonly host: HTMLGovAccordionElement\n\t/**\n\t * Accordion’s size.\n\t */\n\t@Prop() readonly size?: AccordionSizeType = 'm'\n\t/**\n\t * Style variation of the button.\n\t */\n\t@Prop() readonly variant?: AccordionVariantType = 'primary'\n\t/**\n\t * Accordion item underline\n\t */\n\t@Prop({ attribute: 'no-border' }) readonly noBorder: boolean = false\n\t/**\n\t * Adds accessible label for the accordion that is only shown for screen readers.\n\t */\n\t@Prop({ attribute: 'wcag-label' }) readonly wcagLabel: string\n\t/**\n\t * String of id's that indicate alternative labels elements\n\t */\n\t@Prop({ attribute: 'wcag-labelled-by' }) readonly wcagLabelledBy: string\n\t/**\n\t * Called when the accordion state changes\n\t */\n\t@Event({ eventName: 'gov-change' }) govChange: EventEmitter<AccordionEvent>\n\n\t@Watch('size')\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(AccordionSizes, newValue, AccordionClass.root)\n\t}\n\n\t@Watch('variant')\n\tvalidateVariant(newValue: string): void {\n\t\tvalidateProp(Variants, newValue, AccordionClass.root)\n\t}\n\n\tcomponentWillLoad(): void {\n\t\tthis.validateSize(this.size)\n\t\tthis.validateVariant(this.variant)\n\t}\n\n\tcomponentDidLoad() {\n\t\tthis.host.querySelectorAll(AccordionItemClass.root).forEach((child: HTMLGovAccordionItemElement) => {\n\t\t\tchild.addEventListener('gov-change', (e: CustomEvent<AccordionItemEvent>) => {\n\t\t\t\te.stopPropagation()\n\t\t\t\tthis.govChange.emit({\n\t\t\t\t\tcomponent: AccordionClass.root,\n\t\t\t\t\topen: e.detail.open,\n\t\t\t\t\tref: e.detail.ref\n\t\t\t\t})\n\t\t\t})\n\t\t})\n\t}\n\n\tasync componentDidRender() {\n\t\tif (canValidateWcagOnRender()) {\n\t\t\tawait delay(500)\n\t\t\tawait this.validateWcag()\n\t\t}\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={this.h.classes(AccordionClass.root)} size={this.size} variant={this.variant}>\n\t\t\t\t<div role={'list'} arial-label={this.wcagLabel} arial-labelledby={this.wcagLabelledBy}>\n\t\t\t\t\t<slot />\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\t/**\n\t * Validate the WCAG attributes of the component\n\t */\n\t@Method()\n\tasync validateWcag(): Promise<void> {\n\t\tvalidateWcagLabel(this.wcagLabel, this.wcagLabelledBy, AccordionClass.root)\n\t}\n}\n","/*\n * Accordion - Item\n */\n\n$class: \".gov-accordion-item\";\n\n#{$class} {\n\t@include base();\n\t&__header {\n\t\t@include button-core();\n\t\t@include focus-outline();\n\t\tposition: relative;\n\t\tdisplay: flex;\n\t\tjustify-content: space-between;\n\t\talign-items: center;\n\t\twidth: 100%;\n\t\tborder-radius: 0;\n\t\ttext-align: left;\n\t\ttext-transform: none;\n\t\ttransition: background-color $t ease-in-out;\n\t\t&::before {\n\t\t\t@include pseudo();\n\t\t\tright: 0;\n\t\t\tbottom: -1px;\n\t\t\tleft: 0;\n\t\t\theight: 1px;\n\t\t}\n\n\t\t// STATES\n\t\t&:focus-visible {\n\t\t\t&::before {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t\t@include parameter(\"aria-expanded\") {\n\t\t\t#{$class} {\n\t\t\t\t&__arrow {\n\t\t\t\t\ttransform: scale(-1);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t&__arrow {\n\t\tflex: 0 0 auto;\n\t\talign-self: center;\n\t}\n\t&__icon {\n\t\tdisplay: inline-flex;\n\t\tvertical-align: middle;\n\t\tflex: 0 0 auto;\n\t}\n\t&__suffix {\n\t\tdisplay: inline-flex;\n\t\tvertical-align: middle;\n\t\tflex: 0 0 auto;\n\t\talign-self: start;\n\t\tmargin-left: auto;\n\t\tline-height: initial;\n\t}\n\t&__title {\n\t\t@include general;\n\t\tdisplay: flex;\n\t\tflex: 1 1 auto;\n\t\talign-items: flex-start;\n\t}\n\t&__name {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t}\n\t&__annot {\n\t\tcolor: color(\"secondary\");\n\t}\n\t&__content {\n\t\t@include reset-last-margin();\n\t}\n\n\t// VARIANTS\n\t@each $size, $definitions in $accordion-sizes {\n\t\t&[size=\"#{$size}\"],\n\t\t& #{$class}[size=\"#{$size}\"] {\n\t\t\t#{$class} {\n\t\t\t\t&__header {\n\t\t\t\t\tgap: get(\"headline-gap\", $definitions);\n\t\t\t\t\tmin-height: get(\"min-height\", $definitions);\n\t\t\t\t\tpadding: get(\"padding-y\", $definitions) get(\"padding-x\", $definitions);\n\t\t\t\t}\n\t\t\t\t&__arrow {\n\t\t\t\t\twidth: get(\"icon-size\", $definitions);\n\t\t\t\t\theight: get(\"icon-size\", $definitions);\n\t\t\t\t}\n\t\t\t\t&__icon {\n\t\t\t\t\twidth: calc(get-font-size(get(\"font\", $definitions)) * 1.2);\n\t\t\t\t\theight: calc(get-font-size(get(\"font\", $definitions)) * 1.2);\n\t\t\t\t\ttransform: translateY(get(\"icon-position\", $definitions));\n\t\t\t\t}\n\t\t\t\t&__title {\n\t\t\t\t\t@include typography(get(\"font\", $definitions));\n\t\t\t\t\tgap: get(\"headline-gap\", $definitions);\n\t\t\t\t}\n\t\t\t\t&__annot {\n\t\t\t\t\t@include typography(get(\"font-annot\", $definitions));\n\t\t\t\t}\n\t\t\t\t&__content {\n\t\t\t\t\tpadding: get(\"padding-inner\", $definitions);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t@each $variant, $definitions in $accordion-variants {\n\t\t&[variant=\"#{$variant}\"] {\n\t\t\t#{$class} {\n\t\t\t\t&__header {\n\t\t\t\t\tbackground-color: get(\"background\", $definitions);\n\t\t\t\t\tcolor: get(\"color\", $definitions);\n\t\t\t\t\t&::before {\n\t\t\t\t\t\tbackground-color: get(\"separator\", $definitions);\n\t\t\t\t\t}\n\t\t\t\t\t@include hover() {\n\t\t\t\t\t\tbackground-color: get(\"background-hover\", $definitions);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// STATES\n\t\t\t@include parameter(\"disabled\") {\n\t\t\t\t#{$class} {\n\t\t\t\t\t&__header {\n\t\t\t\t\t\tcolor: get(\"disabled-color\", $definitions);\n\t\t\t\t\t\t@include hover() {\n\t\t\t\t\t\t\tbackground: transparent;\n\t\t\t\t\t\t\tcursor: not-allowed;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// MQ\n\t@include mq($until: md) {\n\t\t&__title {\n\t\t\tflex-wrap: wrap;\n\t\t}\n\t\t&__label {\n\t\t\tflex: 0 0 auto;\n\t\t}\n\t}\n}\n","import { Component, Element, h, Prop, State, Watch, Host, Method, Event, EventEmitter } from \"@stencil/core\"\nimport { govErrorLog } from \"../../helpers/Log/gov.log\"\nimport { validateProp } from \"../../helpers/Validate/props\"\nimport {\n\tAccordionSizeType,\n\tAccordionSizes,\n\tAccordionItemClass,\n\tAccordionVariantType,\n\tAccordionVariants, AccordionClass,\n} from \"./constants\"\nimport { createID } from \"../../utils/string.utils\"\nimport { booleanString, toBoolAttrIfDefined } from \"../../helpers/Dom/template\"\nimport { AccordionItemEvent } from \"./gov-accordion.types\"\nimport { govHost } from \"../../helpers/Dom/template\"\nimport { GovHost } from \"../../helpers/Dom/template.types\"\n\n@Component({\n\ttag: \"gov-accordion-item\",\n\tstyleUrl: \"gov-accordion-item.scss\",\n})\nexport class GovAccordionItem {\n\tprivate readonly triggerId: string\n\tprivate readonly contentId: string\n\tprivate h: GovHost\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t\tthis.triggerId = createID(\"GovAccordionItem\")\n\t\tthis.contentId = createID(\"GovAccordionContent\")\n\t}\n\n\t@Element() readonly host: HTMLGovAccordionItemElement\n\t@State() isExpandedState: boolean\n\n\t/**\n\t * Style variation of the button.\n\t */\n\t@Prop({mutable: true}) variant?: AccordionVariantType = \"primary\"\n\t/**\n\t * Custom accordion item identifier. Otherwise, it will be generated\n\t */\n\t@Prop() readonly identifier: string\n\t/**\n\t * Accordion’s size.\n\t */\n\t@Prop({mutable: true}) size?: AccordionSizeType\n\t/**\n\t * Item name of the accordion\n\t */\n\t@Prop() readonly label: string\n\t/**\n\t * Item annotation of the accordion\n\t */\n\t@Prop() readonly annotation: string\n\t/**\n\t * Makes the button component disabled.\n\t * This prevents users from being able to interact with the button, and conveys its inactive state to assistive technologies.\n\t */\n\t@Prop() readonly disabled: boolean = false\n\t/**\n\t * Defines whether the accordion is open or closed by default\n\t */\n\t@Prop({ attribute: \"is-expanded\" }) readonly isExpanded: boolean = false\n\t/**\n\t * Used to change the HTML tag in the accordion trigger for correct semantic structure\n\t */\n\t@Prop({ attribute: \"trigger-tag\" }) readonly triggerTag: string = \"h3\"\n\t/**\n\t * To remove the main underline of an item\n\t */\n\t@Prop({ attribute: \"no-border\" }) readonly noBorder: boolean = false\n\t/**\n\t * Called when the accordion state changes\n\t */\n\t@Event({ eventName: \"gov-change\" }) govChange: EventEmitter<AccordionItemEvent>\n\n\t@Watch(\"label\")\n\tvalidateLabel(newValue: string): void {\n\t\tif (!newValue) {\n\t\t\tgovErrorLog(`[${AccordionItemClass.root}]: Parameter label is required.`)\n\t\t}\n\t}\n\n\t@Watch(\"triggerTag\")\n\tvalidateTriggerTag(newValue: string): void {\n\t\tconst validTags = [\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"span\"]\n\t\tif (newValue) {\n\t\t\tif (!validTags.includes(newValue)) {\n\t\t\t\tgovErrorLog(`[${AccordionItemClass.root}]: Tag ${newValue} is not allowed.`)\n\t\t\t}\n\t\t}\n\t}\n\n\t@Watch(\"size\")\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(AccordionSizes, newValue, AccordionItemClass.root)\n\t}\n\n\t@Watch(\"variant\")\n\tvalidateVariant(newValue: string): void {\n\t\tvalidateProp(AccordionVariants, newValue, AccordionItemClass.root)\n\t}\n\n\tprivate emmitChange(): void {\n\t\tthis.govChange.emit({\n\t\t\topen: this.isExpandedState,\n\t\t\tcomponent: AccordionItemClass.root,\n\t\t\tref: this.host,\n\t\t})\n\t}\n\n\tcomponentWillLoad(): void {\n\t\tthis.isExpandedState = this.isExpanded\n\t\tthis.getPropsFromParents()\n\n\t\tthis.validateLabel(this.label)\n\t\tthis.validateTriggerTag(this.triggerTag)\n\t\tthis.validateSize(this.size)\n\t\tthis.validateVariant(this.variant)\n\n\t}\n\n\tgetPropsFromParents() {\n\t\tconst accordion = this.h.getParent(AccordionClass.root)\n\t\tif(accordion) {\n\t\t\tthis.size = accordion.getAttribute('size') as AccordionSizeType\n\t\t\tthis.variant = accordion.getAttribute('variant') as AccordionVariantType\n\t\t}\n\t}\n\n\trender() {\n\t\tconst triggerId = this.identifier || this.triggerId\n\t\tconst contentId = this.contentId\n\t\tconst { isExpandedState, label } = this\n\t\tconst TriggerTag = this.triggerTag\n\n\t\treturn (\n\t\t\t<Host class={this.h.classes(AccordionItemClass.root)} no-border={this.noBorder} size={this.size} variant={this.variant} role=\"listitem\">\n\t\t\t\t<button\n\t\t\t\t\tid={triggerId}\n\t\t\t\t\tclass={AccordionItemClass.header}\n\t\t\t\t\taria-expanded={booleanString(isExpandedState)}\n\t\t\t\t\taria-controls={contentId}\n\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\ttype={'button'}\n\t\t\t\t\taria-disabled={toBoolAttrIfDefined(this.disabled)}\n\t\t\t\t\tonClick={(e: Event) => {\n\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\tthis.toggle().finally()\n\t\t\t\t\t}}>\n\t\t\t\t\t<TriggerTag class={AccordionItemClass.title}>\n\t\t\t\t\t\t{this.h.hasSlot(\"icon\") && (\n\t\t\t\t\t\t\t<span class={AccordionItemClass.icon}>\n\t\t\t\t\t\t\t\t<slot name=\"icon\" />\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t<span class={AccordionItemClass.name}>\n\t\t\t\t\t\t\t<span class={AccordionItemClass.label}>{label}</span>\n\t\t\t\t\t\t\t{this.annotation && <span class={AccordionItemClass.annot}>{this.annotation}</span>}\n\t\t\t\t\t\t</span>\n\n\t\t\t\t\t\t{this.h.hasSlot(\"suffix\") && (\n\t\t\t\t\t\t\t<span class={AccordionItemClass.suffix}>\n\t\t\t\t\t\t\t\t<slot name=\"suffix\" />\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</TriggerTag>\n\n\t\t\t\t\t<gov-icon class={AccordionItemClass.arrow} name=\"chevron-down\"></gov-icon>\n\t\t\t\t</button>\n\t\t\t\t<div\n\t\t\t\t\tclass={AccordionItemClass.content}\n\t\t\t\t\tid={contentId}\n\t\t\t\t\taria-hidden={booleanString(!isExpandedState)}\n\t\t\t\t\thidden={!isExpandedState}\n\t\t\t\t\taria-labelledby={triggerId}>\n\t\t\t\t\t<slot />\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\t/**\n\t * Opening the accordion\n\t */\n\t@Method()\n\tasync open(): Promise<void> {\n\t\tthis.isExpandedState = true\n\t\tthis.emmitChange()\n\t}\n\n\t/**\n\t * Closing the accordion\n\t */\n\t@Method()\n\tasync close(): Promise<void> {\n\t\tthis.isExpandedState = false\n\t\tthis.emmitChange()\n\t}\n\n\t/**\n\t * Accordion switch\n\t */\n\t@Method()\n\tasync toggle(): Promise<void> {\n\t\tthis.isExpandedState = !this.isExpandedState\n\t\tthis.emmitChange()\n\t}\n\n\t/**\n\t * Returns the current state of the component\n\t */\n\t@Method()\n\tasync currentState(): Promise<boolean> {\n\t\treturn this.isExpandedState\n\t}\n}\n","import { Variants } from '../../core/constants/variants'\nimport { pick } from '../../utils/utils'\nimport { ValueOf } from '../../types/interfaces'\n\nexport const AlertVariants = pick(Variants, ['PRIMARY', 'SECONDARY', 'WARNING', 'ERROR', 'SUCCESS'])\nexport type VariantType = `${ValueOf<typeof AlertVariants>}`\n\nexport const AlertClass = {\n\troot: 'gov-alert',\n\tsection: 'gov-alert__section',\n\ticon: 'gov-alert__icon',\n\tcontent: 'gov-alert__content',\n\theadline: 'gov-alert__headline',\n\tclose: 'gov-alert__close',\n}\n","export default (_, children) => [...children]\n","/*\n * Alert\n */\n\n$class: \".gov-alert\";\n\n#{$class} {\n\t@include base();\n\t&__section {\n\t\t@include container();\n\t\tdisplay: flex;\n\t\tgap: rem-calc(16);\n\t\tpadding-top: rem-calc(16);\n\t\tpadding-bottom: rem-calc(16);\n\t}\n\t&__icon {\n\t\tflex: 0 0 auto;\n\t\t& > * {\n\t\t\twidth: rem-calc(20);\n\t\t\theight: rem-calc(20);\n\t\t}\n\t}\n\t&__headline {\n\t\tdisplay: flex;\n\t\tgap: rem-calc(16);\n\n\t\t+ div {\n\t\t\tmargin-top: rem-calc(8);\n\t\t}\n\n\t\tp {\n\t\t\tmargin-bottom: 0;\n\t\t}\n\n\t\tgov-button {\n\t\t\tmargin-top: rem-calc(-4);\n\t\t}\n\t}\n\t&__content {\n\t\t@include reset-last-margin();\n\t\tpadding-right: rem-calc(52);\n\t\tp {\n\t\t\t@include typography($font-size-m);\n\t\t}\n\t\ta {\n\t\t\tcolor: inherit;\n\t\t\t@include hover() {\n\t\t\t\tcolor: inherit;\n\t\t\t}\n\t\t}\n\t}\n\t&__close {\n\t\tposition: absolute;\n\t\ttop: rem-calc(10);\n\t\tright: rem-calc(16);\n\t}\n\n\t// VARIANTS\n\t@each $variant, $definitions in $alert-variants {\n\t\t&[variant=\"#{$variant}\"] {\n\t\t\tbackground-color: get(\"bg-color\", $definitions);\n\t\t\t#{$class} {\n\t\t\t\t&__icon {\n\t\t\t\t\tcolor: get(\"icon-color\", $definitions);\n\t\t\t\t}\n\t\t\t\t&__content {\n\t\t\t\t\tcolor: get(\"text-color\", $definitions);\n\t\t\t\t}\n\t\t\t}\n\t\t\t@if deep-map-check($definitions, \"border\") {\n\t\t\t\tborder-bottom: $alert-border;\n\t\t\t}\n\n\t\t\t// STATES\n\t\t\t@include parameter(\"inverse\") {\n\t\t\t\tborder-bottom: $alert-border;\n\t\t\t\tbackground-color: $alert-inverse-bg;\n\t\t\t\t#{$class} {\n\t\t\t\t\t&__icon {\n\t\t\t\t\t\tcolor: get(\"bg-color\", $definitions);\n\t\t\t\t\t}\n\t\t\t\t\t&__content {\n\t\t\t\t\t\tcolor: $alert-inverse-color;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// MQ\n\t@include mq($from: xl) {\n\t\t&__content {\n\t\t\tpadding-right: rem-calc(32);\n\t\t}\n\t}\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State, Watch } from \"@stencil/core\"\nimport { validateProp } from \"../../helpers/Validate/props\"\nimport { AlertClass, AlertVariants, VariantType } from \"./constants\"\nimport { govHost, toBoolAttr } from \"../../helpers/Dom/template\"\nimport { GovHost } from \"../../helpers/Dom/template.types\"\nimport { AlertEvent } from \"./gov-alert.types\"\nimport { ButtonEvent } from \"../gov-button/default/gov-button.types\"\nimport Fragment from \"../../helpers/Fragment\"\nimport { validateWcagProp } from \"../../helpers/Validate/wcag\"\nimport { canValidateWcagOnRender } from \"../../helpers/Dom/win\"\nimport { delay } from \"../../utils/utils\"\n\n@Component({\n\ttag: \"gov-alert\",\n\tstyleUrl: \"gov-alert.scss\",\n})\nexport class GovAlert {\n\tprivate h: GovHost\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t}\n\n\t@Element() host: HTMLGovAlertElement\n\n\t/**\n\t * Style variation of the button.\n\t */\n\t@Prop() readonly headline: string\n\t/**\n\t * Style variation of the button.\n\t */\n\t@Prop() readonly variant: VariantType = \"primary\"\n\t/**\n\t * Determine if component should have inverse colors to be used on dark background\n\t */\n\t@Prop() readonly inverse: boolean = false\n\t/**\n\t * Aria label for the closing button. It is mandatory if the alert is closable\n\t */\n\t@Prop({ attribute: \"wcag-close-label\" }) readonly wcagCloseLabel: string\n\t/**\n\t * Aria label for the toggle button. It is mandatory if the alert has headline\n\t */\n\t@Prop({ attribute: \"wcag-toggle-label\" }) readonly wcagToggleLabel: string\n\t/**\n\t * Called when the close button is clicked\n\t */\n\t@Event({ eventName: \"gov-close\" }) govClose: EventEmitter<AlertEvent>\n\t/**\n\t * Displays the option to close the alert\n\t */\n\t@Prop() readonly closable?: boolean = false\n\n\t@State() toggleContent = false\n\n\t@Watch(\"variant\")\n\tvalidateVariant(newValue: string): void {\n\t\tvalidateProp(AlertVariants, newValue, AlertClass.root)\n\t}\n\n\tcomponentWillLoad(): void {\n\t\tthis.validateVariant(this.variant)\n\t}\n\n\tasync componentDidRender() {\n\t\tif (canValidateWcagOnRender()) {\n\t\t\tawait delay(500)\n\t\t\tawait this.validateWcag()\n\t\t}\n\t}\n\n\trender() {\n\t\tlet inverse = !this.inverse\n\t\tlet variant = this.inverse ? \"secondary\" : this.variant\n\n\t\tif (this.variant == \"warning\") {\n\t\t\tinverse = false\n\t\t\tvariant = \"secondary\"\n\t\t}\n\n\t\tconst closeButton = (\n\t\t\t<div class={AlertClass.close}>\n\t\t\t\t<gov-button\n\t\t\t\t\tsize=\"s\"\n\t\t\t\t\taria-label={this.wcagCloseLabel}\n\t\t\t\t\ttype=\"base\"\n\t\t\t\t\tvariant={variant}\n\t\t\t\t\tinverse={inverse}\n\t\t\t\t\ton-gov-click={this.onCloseHandler.bind(this)}\n\t\t\t\t>\n\t\t\t\t\t<gov-icon name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t</div>\n\t\t)\n\n\t\treturn (\n\t\t\t<Host class={this.h.classes(AlertClass.root)} variant={this.variant}>\n\t\t\t\t<section class={AlertClass.section} role=\"alert\">\n\t\t\t\t\t{this.h.hasSlot(\"icon\") && (\n\t\t\t\t\t\t<div class={AlertClass.icon}>\n\t\t\t\t\t\t\t<slot name=\"icon\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t<div class={AlertClass.content}>\n\t\t\t\t\t\t{this.headline ? (\n\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t<div class={AlertClass.headline}>\n\t\t\t\t\t\t\t\t\t<p>{this.headline}</p>\n\t\t\t\t\t\t\t\t\t<gov-button\n\t\t\t\t\t\t\t\t\t\tsize=\"s\"\n\t\t\t\t\t\t\t\t\t\taria-label={this.wcagToggleLabel}\n\t\t\t\t\t\t\t\t\t\ttype=\"base\"\n\t\t\t\t\t\t\t\t\t\tvariant={variant}\n\t\t\t\t\t\t\t\t\t\tinverse={inverse}\n\t\t\t\t\t\t\t\t\t\ton-gov-click={() => this.toggleContent = !this.toggleContent}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<gov-icon name={this.toggleContent ? 'chevron-up' : 'chevron-down'}></gov-icon>\n\t\t\t\t\t\t\t\t\t</gov-button>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div hidden={!this.toggleContent} aria-hidden={toBoolAttr(this.toggleContent)}>\n\t\t\t\t\t\t\t\t\t<slot />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<slot />\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</section>\n\t\t\t\t{this.closable && closeButton}\n\t\t\t</Host>\n\t\t)\n\t}\n\n\tonCloseHandler(e: CustomEvent<ButtonEvent>) {\n\t\tthis.govClose.emit({\n\t\t\tcomponent: AlertClass.root,\n\t\t\tref: this.host,\n\t\t\toriginalEvent: e,\n\t\t})\n\t}\n\n\t/**\n\t * Validate the WCAG attributes of the component\n\t */\n\t@Method()\n\tasync validateWcag(): Promise<void> {\n\t\tif (this.closable) {\n\t\t\tvalidateWcagProp(this.wcagCloseLabel, 'wcag-close-label', AlertClass.root)\n\t\t}\n\t\tif (this.headline) {\n\t\t\tvalidateWcagProp(this.wcagToggleLabel, 'wcag-toggle-label', AlertClass.root)\n\t\t}\n\t}\n}\n","function toArray(objectOrArray) {\n objectOrArray = objectOrArray || [];\n return Array.isArray(objectOrArray) ? objectOrArray : [objectOrArray];\n}\n\nfunction log(msg) {\n return `[Vaadin.Router] ${msg}`;\n}\n\nfunction logValue(value) {\n if (typeof value !== 'object') {\n return String(value);\n }\n\n const stringType = Object.prototype.toString.call(value).match(/ (.*)\\]$/)[1];\n if (stringType === 'Object' || stringType === 'Array') {\n return `${stringType} ${JSON.stringify(value)}`;\n } else {\n return stringType;\n }\n}\n\nconst MODULE = 'module';\nconst NOMODULE = 'nomodule';\nconst bundleKeys = [MODULE, NOMODULE];\n\nfunction ensureBundle(src) {\n if (!src.match(/.+\\.[m]?js$/)) {\n throw new Error(\n log(`Unsupported type for bundle \"${src}\": .js or .mjs expected.`)\n );\n }\n}\n\nfunction ensureRoute(route) {\n if (!route || !isString(route.path)) {\n throw new Error(\n log(`Expected route config to be an object with a \"path\" string property, or an array of such objects`)\n );\n }\n\n const bundle = route.bundle;\n\n const stringKeys = ['component', 'redirect', 'bundle'];\n if (\n !isFunction(route.action) &&\n !Array.isArray(route.children) &&\n !isFunction(route.children) &&\n !isObject(bundle) &&\n !stringKeys.some(key => isString(route[key]))\n ) {\n throw new Error(\n log(\n `Expected route config \"${route.path}\" to include either \"${stringKeys.join('\", \"')}\" ` +\n `or \"action\" function but none found.`\n )\n );\n }\n\n if (bundle) {\n if (isString(bundle)) {\n ensureBundle(bundle);\n } else if (!bundleKeys.some(key => key in bundle)) {\n throw new Error(\n log('Expected route bundle to include either \"' + NOMODULE + '\" or \"' + MODULE + '\" keys, or both')\n );\n } else {\n bundleKeys.forEach(key => key in bundle && ensureBundle(bundle[key]));\n }\n }\n\n if (route.redirect) {\n ['bundle', 'component'].forEach(overriddenProp => {\n if (overriddenProp in route) {\n console.warn(\n log(\n `Route config \"${route.path}\" has both \"redirect\" and \"${overriddenProp}\" properties, ` +\n `and \"redirect\" will always override the latter. Did you mean to only use \"${overriddenProp}\"?`\n )\n );\n }\n });\n }\n}\n\nfunction ensureRoutes(routes) {\n toArray(routes).forEach(route => ensureRoute(route));\n}\n\nfunction loadScript(src, key) {\n let script = document.head.querySelector('script[src=\"' + src + '\"][async]');\n if (!script) {\n script = document.createElement('script');\n script.setAttribute('src', src);\n if (key === MODULE) {\n script.setAttribute('type', MODULE);\n } else if (key === NOMODULE) {\n script.setAttribute(NOMODULE, '');\n }\n script.async = true;\n }\n return new Promise((resolve, reject) => {\n script.onreadystatechange = script.onload = e => {\n script.__dynamicImportLoaded = true;\n resolve(e);\n };\n script.onerror = e => {\n if (script.parentNode) {\n script.parentNode.removeChild(script);\n }\n reject(e);\n };\n if (script.parentNode === null) {\n document.head.appendChild(script);\n } else if (script.__dynamicImportLoaded) {\n resolve();\n }\n });\n}\n\nfunction loadBundle(bundle) {\n if (isString(bundle)) {\n return loadScript(bundle);\n } else {\n return Promise.race(\n bundleKeys\n .filter(key => key in bundle)\n .map(key => loadScript(bundle[key], key))\n );\n }\n}\n\nfunction fireRouterEvent(type, detail) {\n return !window.dispatchEvent(new CustomEvent(\n `vaadin-router-${type}`,\n {cancelable: type === 'go', detail}\n ));\n}\n\nfunction isObject(o) {\n // guard against null passing the typeof check\n return typeof o === 'object' && !!o;\n}\n\nfunction isFunction(f) {\n return typeof f === 'function';\n}\n\nfunction isString(s) {\n return typeof s === 'string';\n}\n\nfunction getNotFoundError(context) {\n const error = new Error(log(`Page not found (${context.pathname})`));\n error.context = context;\n error.code = 404;\n return error;\n}\n\nconst notFoundResult = new (class NotFoundResult {})();\n\n/* istanbul ignore next: coverage is calculated in Chrome, this code is for IE */\nfunction getAnchorOrigin(anchor) {\n // IE11: on HTTP and HTTPS the default port is not included into\n // window.location.origin, so won't include it here either.\n const port = anchor.port;\n const protocol = anchor.protocol;\n const defaultHttp = protocol === 'http:' && port === '80';\n const defaultHttps = protocol === 'https:' && port === '443';\n const host = (defaultHttp || defaultHttps)\n ? anchor.hostname // does not include the port number (e.g. www.example.org)\n : anchor.host; // does include the port number (e.g. www.example.org:80)\n return `${protocol}//${host}`;\n}\n\n// The list of checks is not complete:\n// - SVG support is missing\n// - the 'rel' attribute is not considered\nfunction vaadinRouterGlobalClickHandler(event) {\n // ignore the click if the default action is prevented\n if (event.defaultPrevented) {\n return;\n }\n\n // ignore the click if not with the primary mouse button\n if (event.button !== 0) {\n return;\n }\n\n // ignore the click if a modifier key is pressed\n if (event.shiftKey || event.ctrlKey || event.altKey || event.metaKey) {\n return;\n }\n\n // find the <a> element that the click is at (or within)\n let anchor = event.target;\n const path = event.composedPath\n ? event.composedPath()\n : (event.path || []);\n\n // FIXME(web-padawan): `Symbol.iterator` used by webcomponentsjs is broken for arrays\n // example to check: `for...of` loop here throws the \"Not yet implemented\" error\n for (let i = 0; i < path.length; i++) {\n const target = path[i];\n if (target.nodeName && target.nodeName.toLowerCase() === 'a') {\n anchor = target;\n break;\n }\n }\n\n while (anchor && anchor.nodeName.toLowerCase() !== 'a') {\n anchor = anchor.parentNode;\n }\n\n // ignore the click if not at an <a> element\n if (!anchor || anchor.nodeName.toLowerCase() !== 'a') {\n return;\n }\n\n // ignore the click if the <a> element has a non-default target\n if (anchor.target && anchor.target.toLowerCase() !== '_self') {\n return;\n }\n\n // ignore the click if the <a> element has the 'download' attribute\n if (anchor.hasAttribute('download')) {\n return;\n }\n\n // ignore the click if the <a> element has the 'router-ignore' attribute\n if (anchor.hasAttribute('router-ignore')) {\n return;\n }\n\n // ignore the click if the target URL is a fragment on the current page\n if (anchor.pathname === window.location.pathname && anchor.hash !== '') {\n return;\n }\n\n // ignore the click if the target is external to the app\n // In IE11 HTMLAnchorElement does not have the `origin` property\n const origin = anchor.origin || getAnchorOrigin(anchor);\n if (origin !== window.location.origin) {\n return;\n }\n\n // if none of the above, convert the click into a navigation event\n const {pathname, search, hash} = anchor;\n if (fireRouterEvent('go', {pathname, search, hash})) {\n event.preventDefault();\n // for a click event, the scroll is reset to the top position.\n if (event && event.type === 'click') {\n window.scrollTo(0, 0);\n }\n }\n}\n\n/**\n * A navigation trigger for Vaadin Router that translated clicks on `<a>` links\n * into Vaadin Router navigation events.\n *\n * Only regular clicks on in-app links are translated (primary mouse button, no\n * modifier keys, the target href is within the app's URL space).\n *\n * @memberOf Router.NavigationTrigger\n * @type {NavigationTrigger}\n */\nconst CLICK = {\n activate() {\n window.document.addEventListener('click', vaadinRouterGlobalClickHandler);\n },\n\n inactivate() {\n window.document.removeEventListener('click', vaadinRouterGlobalClickHandler);\n }\n};\n\n// PopStateEvent constructor shim\nconst isIE = /Trident/.test(navigator.userAgent);\n\n/* istanbul ignore next: coverage is calculated in Chrome, this code is for IE */\nif (isIE && !isFunction(window.PopStateEvent)) {\n window.PopStateEvent = function(inType, params) {\n params = params || {};\n var e = document.createEvent('Event');\n e.initEvent(inType, Boolean(params.bubbles), Boolean(params.cancelable));\n e.state = params.state || null;\n return e;\n };\n window.PopStateEvent.prototype = window.Event.prototype;\n}\n\nfunction vaadinRouterGlobalPopstateHandler(event) {\n if (event.state === 'vaadin-router-ignore') {\n return;\n }\n const {pathname, search, hash} = window.location;\n fireRouterEvent('go', {pathname, search, hash});\n}\n\n/**\n * A navigation trigger for Vaadin Router that translates popstate events into\n * Vaadin Router navigation events.\n *\n * @memberOf Router.NavigationTrigger\n * @type {NavigationTrigger}\n */\nconst POPSTATE = {\n activate() {\n window.addEventListener('popstate', vaadinRouterGlobalPopstateHandler);\n },\n\n inactivate() {\n window.removeEventListener('popstate', vaadinRouterGlobalPopstateHandler);\n }\n};\n\n/**\n * Expose `pathToRegexp`.\n */\nvar pathToRegexp_1 = pathToRegexp;\nvar parse_1 = parse;\nvar compile_1 = compile;\nvar tokensToFunction_1 = tokensToFunction;\nvar tokensToRegExp_1 = tokensToRegExp;\n\n/**\n * Default configs.\n */\nvar DEFAULT_DELIMITER = '/';\nvar DEFAULT_DELIMITERS = './';\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \":test(\\\\d+)?\" => [\"test\", \"\\d+\", undefined, \"?\"]\n // \"(\\\\d+)\" => [undefined, undefined, \"\\d+\", undefined]\n '(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?'\n].join('|'), 'g');\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = [];\n var key = 0;\n var index = 0;\n var path = '';\n var defaultDelimiter = (options && options.delimiter) || DEFAULT_DELIMITER;\n var delimiters = (options && options.delimiters) || DEFAULT_DELIMITERS;\n var pathEscaped = false;\n var res;\n\n while ((res = PATH_REGEXP.exec(str)) !== null) {\n var m = res[0];\n var escaped = res[1];\n var offset = res.index;\n path += str.slice(index, offset);\n index = offset + m.length;\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1];\n pathEscaped = true;\n continue\n }\n\n var prev = '';\n var next = str[index];\n var name = res[2];\n var capture = res[3];\n var group = res[4];\n var modifier = res[5];\n\n if (!pathEscaped && path.length) {\n var k = path.length - 1;\n\n if (delimiters.indexOf(path[k]) > -1) {\n prev = path[k];\n path = path.slice(0, k);\n }\n }\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path);\n path = '';\n pathEscaped = false;\n }\n\n var partial = prev !== '' && next !== undefined && next !== prev;\n var repeat = modifier === '+' || modifier === '*';\n var optional = modifier === '?' || modifier === '*';\n var delimiter = prev || defaultDelimiter;\n var pattern = capture || group;\n\n tokens.push({\n name: name || key++,\n prefix: prev,\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n pattern: pattern ? escapeGroup(pattern) : '[^' + escapeString(delimiter) + ']+?'\n });\n }\n\n // Push any remaining characters.\n if (path || index < str.length) {\n tokens.push(path + str.substr(index));\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options))\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length);\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$');\n }\n }\n\n return function (data, options) {\n var path = '';\n var encode = (options && options.encode) || encodeURIComponent;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n path += token;\n continue\n }\n\n var value = data ? data[token.name] : undefined;\n var segment;\n\n if (Array.isArray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but got array')\n }\n\n if (value.length === 0) {\n if (token.optional) continue\n\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j], token);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\"')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment;\n }\n\n continue\n }\n\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n segment = encode(String(value), token);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but got \"' + segment + '\"')\n }\n\n path += token.prefix + segment;\n continue\n }\n\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) path += token.prefix;\n\n continue\n }\n\n throw new TypeError('Expected \"' + token.name + '\" to be ' + (token.repeat ? 'an array' : 'a string'))\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$/()])/g, '\\\\$1')\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {Array=} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n if (!keys) return path\n\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n pattern: null\n });\n }\n }\n\n return path\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = [];\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source);\n }\n\n return new RegExp('(?:' + parts.join('|') + ')', flags(options))\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n options = options || {};\n\n var strict = options.strict;\n var start = options.start !== false;\n var end = options.end !== false;\n var delimiter = escapeString(options.delimiter || DEFAULT_DELIMITER);\n var delimiters = options.delimiters || DEFAULT_DELIMITERS;\n var endsWith = [].concat(options.endsWith || []).map(escapeString).concat('$').join('|');\n var route = start ? '^' : '';\n var isEndDelimited = tokens.length === 0;\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n route += escapeString(token);\n isEndDelimited = i === tokens.length - 1 && delimiters.indexOf(token[token.length - 1]) > -1;\n } else {\n var capture = token.repeat\n ? '(?:' + token.pattern + ')(?:' + escapeString(token.delimiter) + '(?:' + token.pattern + '))*'\n : token.pattern;\n\n if (keys) keys.push(token);\n\n if (token.optional) {\n if (token.partial) {\n route += escapeString(token.prefix) + '(' + capture + ')?';\n } else {\n route += '(?:' + escapeString(token.prefix) + '(' + capture + '))?';\n }\n } else {\n route += escapeString(token.prefix) + '(' + capture + ')';\n }\n }\n }\n\n if (end) {\n if (!strict) route += '(?:' + delimiter + ')?';\n\n route += endsWith === '$' ? '$' : '(?=' + endsWith + ')';\n } else {\n if (!strict) route += '(?:' + delimiter + '(?=' + endsWith + '))?';\n if (!isEndDelimited) route += '(?=' + delimiter + '|' + endsWith + ')';\n }\n\n return new RegExp(route, flags(options))\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (path instanceof RegExp) {\n return regexpToRegexp(path, keys)\n }\n\n if (Array.isArray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), keys, options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), keys, options)\n}\npathToRegexp_1.parse = parse_1;\npathToRegexp_1.compile = compile_1;\npathToRegexp_1.tokensToFunction = tokensToFunction_1;\npathToRegexp_1.tokensToRegExp = tokensToRegExp_1;\n\n/**\n * Universal Router (https://www.kriasoft.com/universal-router/)\n *\n * Copyright (c) 2015-present Kriasoft.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.txt file in the root directory of this source tree.\n */\n\nconst {hasOwnProperty} = Object.prototype;\nconst cache = new Map();\n// see https://github.com/pillarjs/path-to-regexp/issues/148\ncache.set('|false', {\n keys: [],\n pattern: /(?:)/\n});\n\nfunction decodeParam(val) {\n try {\n return decodeURIComponent(val);\n } catch (err) {\n return val;\n }\n}\n\nfunction matchPath(routepath, path, exact, parentKeys, parentParams) {\n exact = !!exact;\n const cacheKey = `${routepath}|${exact}`;\n let regexp = cache.get(cacheKey);\n\n if (!regexp) {\n const keys = [];\n regexp = {\n keys,\n pattern: pathToRegexp_1(routepath, keys, {\n end: exact,\n strict: routepath === ''\n }),\n };\n cache.set(cacheKey, regexp);\n }\n\n const m = regexp.pattern.exec(path);\n if (!m) {\n return null;\n }\n\n const params = Object.assign({}, parentParams);\n\n for (let i = 1; i < m.length; i++) {\n const key = regexp.keys[i - 1];\n const prop = key.name;\n const value = m[i];\n if (value !== undefined || !hasOwnProperty.call(params, prop)) {\n if (key.repeat) {\n params[prop] = value ? value.split(key.delimiter).map(decodeParam) : [];\n } else {\n params[prop] = value ? decodeParam(value) : value;\n }\n }\n }\n\n return {\n path: m[0],\n keys: (parentKeys || []).concat(regexp.keys),\n params,\n };\n}\n\n/**\n * Universal Router (https://www.kriasoft.com/universal-router/)\n *\n * Copyright (c) 2015-present Kriasoft.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.txt file in the root directory of this source tree.\n */\n\n/**\n * Traverses the routes tree and matches its nodes to the given pathname from\n * the root down to the leaves. Each match consumes a part of the pathname and\n * the matching process continues for as long as there is a matching child\n * route for the remaining part of the pathname.\n *\n * The returned value is a lazily evaluated iterator.\n *\n * The leading \"/\" in a route path matters only for the root of the routes\n * tree (or if all parent routes are \"\"). In all other cases a leading \"/\" in\n * a child route path has no significance.\n *\n * The trailing \"/\" in a _route path_ matters only for the leaves of the\n * routes tree. A leaf route with a trailing \"/\" matches only a pathname that\n * also has a trailing \"/\".\n *\n * The trailing \"/\" in a route path does not affect matching of child routes\n * in any way.\n *\n * The trailing \"/\" in a _pathname_ generally does not matter (except for\n * the case of leaf nodes described above).\n *\n * The \"\" and \"/\" routes have special treatment:\n * 1. as a single route\n * the \"\" and \"/\" routes match only the \"\" and \"/\" pathnames respectively\n * 2. as a parent in the routes tree\n * the \"\" route matches any pathname without consuming any part of it\n * the \"/\" route matches any absolute pathname consuming its leading \"/\"\n * 3. as a leaf in the routes tree\n * the \"\" and \"/\" routes match only if the entire pathname is consumed by\n * the parent routes chain. In this case \"\" and \"/\" are equivalent.\n * 4. several directly nested \"\" or \"/\" routes\n * - directly nested \"\" or \"/\" routes are 'squashed' (i.e. nesting two\n * \"/\" routes does not require a double \"/\" in the pathname to match)\n * - if there are only \"\" in the parent routes chain, no part of the\n * pathname is consumed, and the leading \"/\" in the child routes' paths\n * remains significant\n *\n * Side effect:\n * - the routes tree { path: '' } matches only the '' pathname\n * - the routes tree { path: '', children: [ { path: '' } ] } matches any\n * pathname (for the tree root)\n *\n * Prefix matching can be enabled also by `children: true`.\n */\nfunction matchRoute(route, pathname, ignoreLeadingSlash, parentKeys, parentParams) {\n let match;\n let childMatches;\n let childIndex = 0;\n let routepath = route.path || '';\n if (routepath.charAt(0) === '/') {\n if (ignoreLeadingSlash) {\n routepath = routepath.substr(1);\n }\n ignoreLeadingSlash = true;\n }\n\n return {\n next(routeToSkip) {\n if (route === routeToSkip) {\n return {done: true};\n }\n\n const children = route.__children = route.__children || route.children;\n\n if (!match) {\n match = matchPath(routepath, pathname, !children, parentKeys, parentParams);\n\n if (match) {\n return {\n done: false,\n value: {\n route,\n keys: match.keys,\n params: match.params,\n path: match.path\n },\n };\n }\n }\n\n if (match && children) {\n while (childIndex < children.length) {\n if (!childMatches) {\n const childRoute = children[childIndex];\n childRoute.parent = route;\n\n let matchedLength = match.path.length;\n if (matchedLength > 0 && pathname.charAt(matchedLength) === '/') {\n matchedLength += 1;\n }\n\n childMatches = matchRoute(\n childRoute,\n pathname.substr(matchedLength),\n ignoreLeadingSlash,\n match.keys,\n match.params\n );\n }\n\n const childMatch = childMatches.next(routeToSkip);\n if (!childMatch.done) {\n return {\n done: false,\n value: childMatch.value,\n };\n }\n\n childMatches = null;\n childIndex++;\n }\n }\n\n return {done: true};\n },\n };\n}\n\n/**\n * Universal Router (https://www.kriasoft.com/universal-router/)\n *\n * Copyright (c) 2015-present Kriasoft.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.txt file in the root directory of this source tree.\n */\n\nfunction resolveRoute(context) {\n if (isFunction(context.route.action)) {\n return context.route.action(context);\n }\n return undefined;\n}\n\n/**\n * Universal Router (https://www.kriasoft.com/universal-router/)\n *\n * Copyright (c) 2015-present Kriasoft.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.txt file in the root directory of this source tree.\n */\n\nfunction isChildRoute(parentRoute, childRoute) {\n let route = childRoute;\n while (route) {\n route = route.parent;\n if (route === parentRoute) {\n return true;\n }\n }\n return false;\n}\n\nfunction generateErrorMessage(currentContext) {\n let errorMessage = `Path '${currentContext.pathname}' is not properly resolved due to an error.`;\n const routePath = (currentContext.route || {}).path;\n if (routePath) {\n errorMessage += ` Resolution had failed on route: '${routePath}'`;\n }\n return errorMessage;\n}\n\nfunction updateChainForRoute(context, match) {\n const {route, path} = match;\n\n if (route && !route.__synthetic) {\n const item = {path, route};\n if (!context.chain) {\n context.chain = [];\n } else {\n // Discard old items\n if (route.parent) {\n let i = context.chain.length;\n while (i-- && context.chain[i].route && context.chain[i].route !== route.parent) {\n context.chain.pop();\n }\n }\n }\n context.chain.push(item);\n }\n}\n\n/**\n */\nclass Resolver {\n constructor(routes, options = {}) {\n if (Object(routes) !== routes) {\n throw new TypeError('Invalid routes');\n }\n\n this.baseUrl = options.baseUrl || '';\n this.errorHandler = options.errorHandler;\n this.resolveRoute = options.resolveRoute || resolveRoute;\n this.context = Object.assign({resolver: this}, options.context);\n this.root = Array.isArray(routes) ? {path: '', __children: routes, parent: null, __synthetic: true} : routes;\n this.root.parent = null;\n }\n\n /**\n * Returns the current list of routes (as a shallow copy). Adding / removing\n * routes to / from the returned array does not affect the routing config,\n * but modifying the route objects does.\n *\n * @return {!Array<!Router.Route>}\n */\n getRoutes() {\n return [...this.root.__children];\n }\n\n /**\n * Sets the routing config (replacing the existing one).\n *\n * @param {!Array<!Router.Route>|!Router.Route} routes a single route or an array of those\n * (the array is shallow copied)\n */\n setRoutes(routes) {\n ensureRoutes(routes);\n const newRoutes = [...toArray(routes)];\n this.root.__children = newRoutes;\n }\n\n /**\n * Appends one or several routes to the routing config and returns the\n * effective routing config after the operation.\n *\n * @param {!Array<!Router.Route>|!Router.Route} routes a single route or an array of those\n * (the array is shallow copied)\n * @return {!Array<!Router.Route>}\n * @protected\n */\n addRoutes(routes) {\n ensureRoutes(routes);\n this.root.__children.push(...toArray(routes));\n return this.getRoutes();\n }\n\n /**\n * Removes all existing routes from the routing config.\n */\n removeRoutes() {\n this.setRoutes([]);\n }\n\n /**\n * Asynchronously resolves the given pathname, i.e. finds all routes matching\n * the pathname and tries resolving them one after another in the order they\n * are listed in the routes config until the first non-null result.\n *\n * Returns a promise that is fulfilled with the return value of an object that consists of the first\n * route handler result that returns something other than `null` or `undefined` and context used to get this result.\n *\n * If no route handlers return a non-null result, or if no route matches the\n * given pathname the returned promise is rejected with a 'page not found'\n * `Error`.\n *\n * @param {!string|!{pathname: !string}} pathnameOrContext the pathname to\n * resolve or a context object with a `pathname` property and other\n * properties to pass to the route resolver functions.\n * @return {!Promise<any>}\n */\n resolve(pathnameOrContext) {\n const context = Object.assign(\n {},\n this.context,\n isString(pathnameOrContext) ? {pathname: pathnameOrContext} : pathnameOrContext\n );\n const match = matchRoute(\n this.root,\n this.__normalizePathname(context.pathname),\n this.baseUrl\n );\n const resolve = this.resolveRoute;\n let matches = null;\n let nextMatches = null;\n let currentContext = context;\n\n function next(resume, parent = matches.value.route, prevResult) {\n const routeToSkip = prevResult === null && matches.value.route;\n matches = nextMatches || match.next(routeToSkip);\n nextMatches = null;\n\n if (!resume) {\n if (matches.done || !isChildRoute(parent, matches.value.route)) {\n nextMatches = matches;\n return Promise.resolve(notFoundResult);\n }\n }\n\n if (matches.done) {\n return Promise.reject(getNotFoundError(context));\n }\n\n currentContext = Object.assign(\n currentContext\n ? {chain: (currentContext.chain ? currentContext.chain.slice(0) : [])}\n : {},\n context,\n matches.value\n );\n updateChainForRoute(currentContext, matches.value);\n\n return Promise.resolve(resolve(currentContext)).then(resolution => {\n if (resolution !== null && resolution !== undefined && resolution !== notFoundResult) {\n currentContext.result = resolution.result || resolution;\n return currentContext;\n }\n return next(resume, parent, resolution);\n });\n }\n\n context.next = next;\n\n return Promise.resolve()\n .then(() => next(true, this.root))\n .catch((error) => {\n const errorMessage = generateErrorMessage(currentContext);\n if (!error) {\n error = new Error(errorMessage);\n } else {\n console.warn(errorMessage);\n }\n error.context = error.context || currentContext;\n // DOMException has its own code which is read-only\n if (!(error instanceof DOMException)) {\n error.code = error.code || 500;\n }\n if (this.errorHandler) {\n currentContext.result = this.errorHandler(error);\n return currentContext;\n }\n throw error;\n });\n }\n\n /**\n * URL constructor polyfill hook. Creates and returns an URL instance.\n */\n static __createUrl(url, base) {\n return new URL(url, base);\n }\n\n /**\n * If the baseUrl property is set, transforms the baseUrl and returns the full\n * actual `base` string for using in the `new URL(path, base);` and for\n * prepernding the paths with. The returned base ends with a trailing slash.\n *\n * Otherwise, returns empty string.\n */\n get __effectiveBaseUrl() {\n return this.baseUrl\n ? this.constructor.__createUrl(\n this.baseUrl,\n document.baseURI || document.URL\n ).href.replace(/[^\\/]*$/, '')\n : '';\n }\n\n /**\n * If the baseUrl is set, matches the pathname with the router’s baseUrl,\n * and returns the local pathname with the baseUrl stripped out.\n *\n * If the pathname does not match the baseUrl, returns undefined.\n *\n * If the `baseUrl` is not set, returns the unmodified pathname argument.\n */\n __normalizePathname(pathname) {\n if (!this.baseUrl) {\n // No base URL, no need to transform the pathname.\n return pathname;\n }\n\n const base = this.__effectiveBaseUrl;\n const normalizedUrl = this.constructor.__createUrl(pathname, base).href;\n if (normalizedUrl.slice(0, base.length) === base) {\n return normalizedUrl.slice(base.length);\n }\n }\n}\n\nResolver.pathToRegexp = pathToRegexp_1;\n\n/**\n * Universal Router (https://www.kriasoft.com/universal-router/)\n *\n * Copyright (c) 2015-present Kriasoft.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.txt file in the root directory of this source tree.\n */\n\nconst {pathToRegexp: pathToRegexp$1} = Resolver;\nconst cache$1 = new Map();\n\nfunction cacheRoutes(routesByName, route, routes) {\n const name = route.name || route.component;\n if (name) {\n if (routesByName.has(name)) {\n routesByName.get(name).push(route);\n } else {\n routesByName.set(name, [route]);\n }\n }\n\n if (Array.isArray(routes)) {\n for (let i = 0; i < routes.length; i++) {\n const childRoute = routes[i];\n childRoute.parent = route;\n cacheRoutes(routesByName, childRoute, childRoute.__children || childRoute.children);\n }\n }\n}\n\nfunction getRouteByName(routesByName, routeName) {\n const routes = routesByName.get(routeName);\n if (routes && routes.length > 1) {\n throw new Error(\n `Duplicate route with name \"${routeName}\".`\n + ` Try seting unique 'name' route properties.`\n );\n }\n return routes && routes[0];\n}\n\nfunction getRoutePath(route) {\n let path = route.path;\n path = Array.isArray(path) ? path[0] : path;\n return path !== undefined ? path : '';\n}\n\nfunction generateUrls(router, options = {}) {\n if (!(router instanceof Resolver)) {\n throw new TypeError('An instance of Resolver is expected');\n }\n\n const routesByName = new Map();\n\n return (routeName, params) => {\n let route = getRouteByName(routesByName, routeName);\n if (!route) {\n routesByName.clear(); // clear cache\n cacheRoutes(routesByName, router.root, router.root.__children);\n\n route = getRouteByName(routesByName, routeName);\n if (!route) {\n throw new Error(`Route \"${routeName}\" not found`);\n }\n }\n\n let regexp = cache$1.get(route.fullPath);\n if (!regexp) {\n let fullPath = getRoutePath(route);\n let rt = route.parent;\n while (rt) {\n const path = getRoutePath(rt);\n if (path) {\n fullPath = path.replace(/\\/$/, '') + '/' + fullPath.replace(/^\\//, '');\n }\n rt = rt.parent;\n }\n const tokens = pathToRegexp$1.parse(fullPath);\n const toPath = pathToRegexp$1.tokensToFunction(tokens);\n const keys = Object.create(null);\n for (let i = 0; i < tokens.length; i++) {\n if (!isString(tokens[i])) {\n keys[tokens[i].name] = true;\n }\n }\n regexp = {toPath, keys};\n cache$1.set(fullPath, regexp);\n route.fullPath = fullPath;\n }\n\n let url = regexp.toPath(params, options) || '/';\n\n if (options.stringifyQueryParams && params) {\n const queryParams = {};\n const keys = Object.keys(params);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (!regexp.keys[key]) {\n queryParams[key] = params[key];\n }\n }\n const query = options.stringifyQueryParams(queryParams);\n if (query) {\n url += query.charAt(0) === '?' ? query : `?${query}`;\n }\n }\n\n return url;\n };\n}\n\n/**\n * @typedef NavigationTrigger\n * @type {object}\n * @property {function()} activate\n * @property {function()} inactivate\n */\n\n/** @type {Array<NavigationTrigger>} */\nlet triggers = [];\n\nfunction setNavigationTriggers(newTriggers) {\n triggers.forEach(trigger => trigger.inactivate());\n\n newTriggers.forEach(trigger => trigger.activate());\n\n triggers = newTriggers;\n}\n\nconst willAnimate = elem => {\n const name = getComputedStyle(elem).getPropertyValue('animation-name');\n return name && name !== 'none';\n};\n\nconst waitForAnimation = (elem, cb) => {\n const listener = () => {\n elem.removeEventListener('animationend', listener);\n cb();\n };\n elem.addEventListener('animationend', listener);\n};\n\nfunction animate(elem, className) {\n elem.classList.add(className);\n\n return new Promise(resolve => {\n if (willAnimate(elem)) {\n const rect = elem.getBoundingClientRect();\n const size = `height: ${rect.bottom - rect.top}px; width: ${rect.right - rect.left}px`;\n elem.setAttribute('style', `position: absolute; ${size}`);\n waitForAnimation(elem, () => {\n elem.classList.remove(className);\n elem.removeAttribute('style');\n resolve();\n });\n } else {\n elem.classList.remove(className);\n resolve();\n }\n });\n}\n\nconst MAX_REDIRECT_COUNT = 256;\n\nfunction isResultNotEmpty(result) {\n return result !== null && result !== undefined;\n}\n\nfunction copyContextWithoutNext(context) {\n const copy = Object.assign({}, context);\n delete copy.next;\n return copy;\n}\n\nfunction createLocation({pathname = '', search = '', hash = '', chain = [], params = {}, redirectFrom, resolver}, route) {\n const routes = chain.map(item => item.route);\n return {\n baseUrl: resolver && resolver.baseUrl || '',\n pathname,\n search,\n hash,\n routes,\n route: route || routes.length && routes[routes.length - 1] || null,\n params,\n redirectFrom,\n getUrl: (userParams = {}) => getPathnameForRouter(\n Router.pathToRegexp.compile(\n getMatchedPath(routes)\n )(Object.assign({}, params, userParams)),\n resolver\n )\n };\n}\n\nfunction createRedirect(context, pathname) {\n const params = Object.assign({}, context.params);\n return {\n redirect: {\n pathname,\n from: context.pathname,\n params\n }\n };\n}\n\nfunction renderElement(context, element) {\n element.location = createLocation(context);\n const index = context.chain.map(item => item.route).indexOf(context.route);\n context.chain[index].element = element;\n return element;\n}\n\nfunction runCallbackIfPossible(callback, args, thisArg) {\n if (isFunction(callback)) {\n return callback.apply(thisArg, args);\n }\n}\n\nfunction amend(amendmentFunction, args, element) {\n return amendmentResult => {\n if (amendmentResult && (amendmentResult.cancel || amendmentResult.redirect)) {\n return amendmentResult;\n }\n\n if (element) {\n return runCallbackIfPossible(element[amendmentFunction], args, element);\n }\n };\n}\n\nfunction processNewChildren(newChildren, route) {\n if (!Array.isArray(newChildren) && !isObject(newChildren)) {\n throw new Error(\n log(\n `Incorrect \"children\" value for the route ${route.path}: expected array or object, but got ${newChildren}`\n )\n );\n }\n\n route.__children = [];\n const childRoutes = toArray(newChildren);\n for (let i = 0; i < childRoutes.length; i++) {\n ensureRoute(childRoutes[i]);\n route.__children.push(childRoutes[i]);\n }\n}\n\nfunction removeDomNodes(nodes) {\n if (nodes && nodes.length) {\n const parent = nodes[0].parentNode;\n for (let i = 0; i < nodes.length; i++) {\n parent.removeChild(nodes[i]);\n }\n }\n}\n\nfunction getPathnameForRouter(pathname, router) {\n const base = router.__effectiveBaseUrl;\n return base\n ? router.constructor.__createUrl(pathname.replace(/^\\//, ''), base).pathname\n : pathname;\n}\n\nfunction getMatchedPath(chain) {\n return chain.map(item => item.path).reduce((a, b) => {\n if (b.length) {\n return a.replace(/\\/$/, '') + '/' + b.replace(/^\\//, '');\n }\n return a;\n }, '');\n}\n\n/**\n * A simple client-side router for single-page applications. It uses\n * express-style middleware and has a first-class support for Web Components and\n * lazy-loading. Works great in Polymer and non-Polymer apps.\n *\n * Use `new Router(outlet, options)` to create a new Router instance.\n *\n * * The `outlet` parameter is a reference to the DOM node to render\n * the content into.\n *\n * * The `options` parameter is an optional object with options. The following\n * keys are supported:\n * * `baseUrl` — the initial value for [\n * the `baseUrl` property\n * ](#/classes/Router#property-baseUrl)\n *\n * The Router instance is automatically subscribed to navigation events\n * on `window`.\n *\n * See [Live Examples](#/classes/Router/demos/demo/index.html) for the detailed usage demo and code snippets.\n *\n * See also detailed API docs for the following methods, for the advanced usage:\n *\n * * [setOutlet](#/classes/Router#method-setOutlet) – should be used to configure the outlet.\n * * [setTriggers](#/classes/Router#method-setTriggers) – should be used to configure the navigation events.\n * * [setRoutes](#/classes/Router#method-setRoutes) – should be used to configure the routes.\n *\n * Only `setRoutes` has to be called manually, others are automatically invoked when creating a new instance.\n *\n * @extends Resolver\n * @demo demo/index.html\n * @summary JavaScript class that renders different DOM content depending on\n * a given path. It can re-render when triggered or automatically on\n * 'popstate' and / or 'click' events.\n */\nclass Router extends Resolver {\n\n /**\n * Creates a new Router instance with a given outlet, and\n * automatically subscribes it to navigation events on the `window`.\n * Using a constructor argument or a setter for outlet is equivalent:\n *\n * ```\n * const router = new Router();\n * router.setOutlet(outlet);\n * ```\n * @param {?Node=} outlet\n * @param {?RouterOptions=} options\n */\n constructor(outlet, options) {\n const baseElement = document.head.querySelector('base');\n const baseHref = baseElement && baseElement.getAttribute('href');\n super([], Object.assign({\n // Default options\n baseUrl: baseHref && Resolver.__createUrl(baseHref, document.URL).pathname.replace(/[^\\/]*$/, '')\n }, options));\n\n this.resolveRoute = context => this.__resolveRoute(context);\n\n const triggers = Router.NavigationTrigger;\n Router.setTriggers.apply(Router, Object.keys(triggers).map(key => triggers[key]));\n\n /**\n * The base URL for all routes in the router instance. By default,\n * if the base element exists in the `<head>`, vaadin-router\n * takes the `<base href>` attribute value, resolves against current `document.URL`\n * and gets the `pathname` from the result.\n *\n * @public\n * @type {string}\n */\n this.baseUrl;\n\n /**\n * A promise that is settled after the current render cycle completes. If\n * there is no render cycle in progress the promise is immediately settled\n * with the last render cycle result.\n *\n * @public\n * @type {!Promise<!RouterLocation>}\n */\n this.ready;\n this.ready = Promise.resolve(outlet);\n\n /**\n * Contains read-only information about the current router location:\n * pathname, active routes, parameters. See the\n * [Location type declaration](#/classes/RouterLocation)\n * for more details.\n *\n * @public\n * @type {!RouterLocation}\n */\n this.location;\n this.location = createLocation({resolver: this});\n\n this.__lastStartedRenderId = 0;\n this.__navigationEventHandler = this.__onNavigationEvent.bind(this);\n this.setOutlet(outlet);\n this.subscribe();\n // Using WeakMap instead of WeakSet because WeakSet is not supported by IE11\n this.__createdByRouter = new WeakMap();\n this.__addedByRouter = new WeakMap();\n }\n\n __resolveRoute(context) {\n const route = context.route;\n\n let callbacks = Promise.resolve();\n\n if (isFunction(route.children)) {\n callbacks = callbacks\n .then(() => route.children(copyContextWithoutNext(context)))\n .then(children => {\n // The route.children() callback might have re-written the\n // route.children property instead of returning a value\n if (!isResultNotEmpty(children) && !isFunction(route.children)) {\n children = route.children;\n }\n processNewChildren(children, route);\n });\n }\n\n const commands = {\n redirect: path => createRedirect(context, path),\n component: (component) => {\n const element = document.createElement(component);\n this.__createdByRouter.set(element, true);\n return element;\n }\n };\n\n return callbacks\n .then(() => {\n if (this.__isLatestRender(context)) {\n return runCallbackIfPossible(route.action, [context, commands], route);\n }\n })\n .then(result => {\n if (isResultNotEmpty(result)) {\n // Actions like `() => import('my-view.js')` are not expected to\n // end the resolution, despite the result is not empty. Checking\n // the result with a whitelist of values that end the resolution.\n if (result instanceof HTMLElement ||\n result.redirect ||\n result === notFoundResult) {\n return result;\n }\n }\n\n if (isString(route.redirect)) {\n return commands.redirect(route.redirect);\n }\n\n if (route.bundle) {\n return loadBundle(route.bundle)\n .then(() => {}, () => {\n throw new Error(log(`Bundle not found: ${route.bundle}. Check if the file name is correct`));\n });\n }\n })\n .then(result => {\n if (isResultNotEmpty(result)) {\n return result;\n }\n if (isString(route.component)) {\n return commands.component(route.component);\n }\n });\n }\n\n /**\n * Sets the router outlet (the DOM node where the content for the current\n * route is inserted). Any content pre-existing in the router outlet is\n * removed at the end of each render pass.\n *\n * NOTE: this method is automatically invoked first time when creating a new Router instance.\n *\n * @param {?Node} outlet the DOM node where the content for the current route\n * is inserted.\n */\n setOutlet(outlet) {\n if (outlet) {\n this.__ensureOutlet(outlet);\n }\n this.__outlet = outlet;\n }\n\n /**\n * Returns the current router outlet. The initial value is `undefined`.\n *\n * @return {?Node} the current router outlet (or `undefined`)\n */\n getOutlet() {\n return this.__outlet;\n }\n\n /**\n * Sets the routing config (replacing the existing one) and triggers a\n * navigation event so that the router outlet is refreshed according to the\n * current `window.location` and the new routing config.\n *\n * Each route object may have the following properties, listed here in the processing order:\n * * `path` – the route path (relative to the parent route if any) in the\n * [express.js syntax](https://expressjs.com/en/guide/routing.html#route-paths\").\n *\n * * `children` – an array of nested routes or a function that provides this\n * array at the render time. The function can be synchronous or asynchronous:\n * in the latter case the render is delayed until the returned promise is\n * resolved. The `children` function is executed every time when this route is\n * being rendered. This allows for dynamic route structures (e.g. backend-defined),\n * but it might have a performance impact as well. In order to avoid calling\n * the function on subsequent renders, you can override the `children` property\n * of the route object and save the calculated array there\n * (via `context.route.children = [ route1, route2, ...];`).\n * Parent routes are fully resolved before resolving the children. Children\n * 'path' values are relative to the parent ones.\n *\n * * `action` – the action that is executed before the route is resolved.\n * The value for this property should be a function, accepting `context`\n * and `commands` parameters described below. If present, this function is\n * always invoked first, disregarding of the other properties' presence.\n * The action can return a result directly or within a `Promise`, which\n * resolves to the result. If the action result is an `HTMLElement` instance,\n * a `commands.component(name)` result, a `commands.redirect(path)` result,\n * or a `context.next()` result, the current route resolution is finished,\n * and other route config properties are ignored.\n * See also **Route Actions** section in [Live Examples](#/classes/Router/demos/demo/index.html).\n *\n * * `redirect` – other route's path to redirect to. Passes all route parameters to the redirect target.\n * The target route should also be defined.\n * See also **Redirects** section in [Live Examples](#/classes/Router/demos/demo/index.html).\n *\n * * `bundle` – string containing the path to `.js` or `.mjs` bundle to load before resolving the route,\n * or the object with \"module\" and \"nomodule\" keys referring to different bundles.\n * Each bundle is only loaded once. If \"module\" and \"nomodule\" are set, only one bundle is loaded,\n * depending on whether the browser supports ES modules or not.\n * The property is ignored when either an `action` returns the result or `redirect` property is present.\n * Any error, e.g. 404 while loading bundle will cause route resolution to throw.\n * See also **Code Splitting** section in [Live Examples](#/classes/Router/demos/demo/index.html).\n *\n * * `component` – the tag name of the Web Component to resolve the route to.\n * The property is ignored when either an `action` returns the result or `redirect` property is present.\n * If route contains the `component` property (or an action that return a component)\n * and its child route also contains the `component` property, child route's component\n * will be rendered as a light dom child of a parent component.\n *\n * * `name` – the string name of the route to use in the\n * [`router.urlForName(name, params)`](#/classes/Router#method-urlForName)\n * navigation helper method.\n *\n * For any route function (`action`, `children`) defined, the corresponding `route` object is available inside the callback\n * through the `this` reference. If you need to access it, make sure you define the callback as a non-arrow function\n * because arrow functions do not have their own `this` reference.\n *\n * `context` object that is passed to `action` function holds the following properties:\n * * `context.pathname` – string with the pathname being resolved\n *\n * * `context.search` – search query string\n *\n * * `context.hash` – hash string\n *\n * * `context.params` – object with route parameters\n *\n * * `context.route` – object that holds the route that is currently being rendered.\n *\n * * `context.next()` – function for asynchronously getting the next route\n * contents from the resolution chain (if any)\n *\n * `commands` object that is passed to `action` function has\n * the following methods:\n *\n * * `commands.redirect(path)` – function that creates a redirect data\n * for the path specified.\n *\n * * `commands.component(component)` – function that creates a new HTMLElement\n * with current context. Note: the component created by this function is reused if visiting the same path twice in row.\n *\n *\n * @param {!Array<!Route>|!Route} routes a single route or an array of those\n * @param {?boolean} skipRender configure the router but skip rendering the\n * route corresponding to the current `window.location` values\n *\n * @return {!Promise<!Node>}\n */\n setRoutes(routes, skipRender = false) {\n this.__previousContext = undefined;\n this.__urlForName = undefined;\n super.setRoutes(routes);\n if (!skipRender) {\n this.__onNavigationEvent();\n }\n return this.ready;\n }\n\n /**\n * Asynchronously resolves the given pathname and renders the resolved route\n * component into the router outlet. If no router outlet is set at the time of\n * calling this method, or at the time when the route resolution is completed,\n * a `TypeError` is thrown.\n *\n * Returns a promise that is fulfilled with the router outlet DOM Node after\n * the route component is created and inserted into the router outlet, or\n * rejected if no route matches the given path.\n *\n * If another render pass is started before the previous one is completed, the\n * result of the previous render pass is ignored.\n *\n * @param {!string|!{pathname: !string, search: ?string, hash: ?string}} pathnameOrContext\n * the pathname to render or a context object with a `pathname` property,\n * optional `search` and `hash` properties, and other properties\n * to pass to the resolver.\n * @param {boolean=} shouldUpdateHistory\n * update browser history with the rendered location\n * @return {!Promise<!Node>}\n */\n render(pathnameOrContext, shouldUpdateHistory) {\n const renderId = ++this.__lastStartedRenderId;\n const context = Object.assign(\n {\n search: '',\n hash: ''\n },\n isString(pathnameOrContext)\n ? {pathname: pathnameOrContext}\n : pathnameOrContext,\n {\n __renderId: renderId\n }\n );\n\n // Find the first route that resolves to a non-empty result\n this.ready = this.resolve(context)\n\n // Process the result of this.resolve() and handle all special commands:\n // (redirect / prevent / component). If the result is a 'component',\n // then go deeper and build the entire chain of nested components matching\n // the pathname. Also call all 'on before' callbacks along the way.\n .then(context => this.__fullyResolveChain(context))\n\n .then(context => {\n if (this.__isLatestRender(context)) {\n const previousContext = this.__previousContext;\n\n // Check if the render was prevented and make an early return in that case\n if (context === previousContext) {\n // Replace the history with the previous context\n // to make sure the URL stays the same.\n this.__updateBrowserHistory(previousContext, true);\n return this.location;\n }\n\n this.location = createLocation(context);\n\n if (shouldUpdateHistory) {\n // Replace only if first render redirects, so that we don’t leave\n // the redirecting record in the history\n this.__updateBrowserHistory(context, renderId === 1);\n }\n\n fireRouterEvent('location-changed', {router: this, location: this.location});\n\n // Skip detaching/re-attaching there are no render changes\n if (context.__skipAttach) {\n this.__copyUnchangedElements(context, previousContext);\n this.__previousContext = context;\n return this.location;\n }\n\n this.__addAppearingContent(context, previousContext);\n const animationDone = this.__animateIfNeeded(context);\n\n this.__runOnAfterEnterCallbacks(context);\n this.__runOnAfterLeaveCallbacks(context, previousContext);\n\n return animationDone.then(() => {\n if (this.__isLatestRender(context)) {\n // If there is another render pass started after this one,\n // the 'disappearing content' would be removed when the other\n // render pass calls `this.__addAppearingContent()`\n this.__removeDisappearingContent();\n\n this.__previousContext = context;\n return this.location;\n }\n });\n }\n })\n .catch(error => {\n if (renderId === this.__lastStartedRenderId) {\n if (shouldUpdateHistory) {\n this.__updateBrowserHistory(context);\n }\n removeDomNodes(this.__outlet && this.__outlet.children);\n this.location = createLocation(Object.assign(context, {resolver: this}));\n fireRouterEvent('error', Object.assign({router: this, error}, context));\n throw error;\n }\n });\n return this.ready;\n }\n\n // `topOfTheChainContextBeforeRedirects` is a context coming from Resolver.resolve().\n // It would contain a 'redirect' route or the first 'component' route that\n // matched the pathname. There might be more child 'component' routes to be\n // resolved and added into the chain. This method would find and add them.\n // `contextBeforeRedirects` is the context containing such a child component\n // route. It's only necessary when this method is called recursively (otherwise\n // it's the same as the 'top of the chain' context).\n //\n // Apart from building the chain of child components, this method would also\n // handle 'redirect' routes, call 'onBefore' callbacks and handle 'prevent'\n // and 'redirect' callback results.\n __fullyResolveChain(topOfTheChainContextBeforeRedirects,\n contextBeforeRedirects = topOfTheChainContextBeforeRedirects) {\n return this.__findComponentContextAfterAllRedirects(contextBeforeRedirects)\n // `contextAfterRedirects` is always a context with an `HTMLElement` result\n // In other cases the promise gets rejected and .then() is not called\n .then(contextAfterRedirects => {\n const redirectsHappened = contextAfterRedirects !== contextBeforeRedirects;\n const topOfTheChainContextAfterRedirects =\n redirectsHappened ? contextAfterRedirects : topOfTheChainContextBeforeRedirects;\n\n const matchedPath = getPathnameForRouter(\n getMatchedPath(contextAfterRedirects.chain),\n contextAfterRedirects.resolver\n );\n const isFound = (matchedPath === contextAfterRedirects.pathname);\n\n // Recursive method to try matching more child and sibling routes\n const findNextContextIfAny = (context, parent = context.route, prevResult) => {\n return context.next(undefined, parent, prevResult).then(nextContext => {\n if (nextContext === null || nextContext === notFoundResult) {\n // Next context is not found in children, ...\n if (isFound) {\n // ...but original context is already fully matching - use it\n return context;\n } else if (parent.parent !== null) {\n // ...and there is no full match yet - step up to check siblings\n return findNextContextIfAny(context, parent.parent, nextContext);\n } else {\n return nextContext;\n }\n }\n\n return nextContext;\n });\n };\n\n return findNextContextIfAny(contextAfterRedirects).then(nextContext => {\n if (nextContext === null || nextContext === notFoundResult) {\n throw getNotFoundError(topOfTheChainContextAfterRedirects);\n }\n\n return nextContext\n && nextContext !== notFoundResult\n && nextContext !== contextAfterRedirects\n ? this.__fullyResolveChain(topOfTheChainContextAfterRedirects, nextContext)\n : this.__amendWithOnBeforeCallbacks(contextAfterRedirects);\n });\n });\n }\n\n __findComponentContextAfterAllRedirects(context) {\n const result = context.result;\n if (result instanceof HTMLElement) {\n renderElement(context, result);\n return Promise.resolve(context);\n } else if (result.redirect) {\n return this.__redirect(result.redirect, context.__redirectCount, context.__renderId)\n .then(context => this.__findComponentContextAfterAllRedirects(context));\n } else if (result instanceof Error) {\n return Promise.reject(result);\n } else {\n return Promise.reject(\n new Error(\n log(\n `Invalid route resolution result for path \"${context.pathname}\". ` +\n `Expected redirect object or HTML element, but got: \"${logValue(result)}\". ` +\n `Double check the action return value for the route.`\n )\n ));\n }\n }\n\n __amendWithOnBeforeCallbacks(contextWithFullChain) {\n return this.__runOnBeforeCallbacks(contextWithFullChain).then(amendedContext => {\n if (amendedContext === this.__previousContext || amendedContext === contextWithFullChain) {\n return amendedContext;\n }\n return this.__fullyResolveChain(amendedContext);\n });\n }\n\n __runOnBeforeCallbacks(newContext) {\n const previousContext = this.__previousContext || {};\n const previousChain = previousContext.chain || [];\n const newChain = newContext.chain;\n\n let callbacks = Promise.resolve();\n const prevent = () => ({cancel: true});\n const redirect = (pathname) => createRedirect(newContext, pathname);\n\n newContext.__divergedChainIndex = 0;\n newContext.__skipAttach = false;\n if (previousChain.length) {\n for (let i = 0; i < Math.min(previousChain.length, newChain.length); i = ++newContext.__divergedChainIndex) {\n if (previousChain[i].route !== newChain[i].route\n || previousChain[i].path !== newChain[i].path && previousChain[i].element !== newChain[i].element\n || !this.__isReusableElement(previousChain[i].element, newChain[i].element)) {\n break;\n }\n }\n\n // Skip re-attaching and notifications if element and chain do not change\n newContext.__skipAttach =\n // Same route chain\n newChain.length === previousChain.length && newContext.__divergedChainIndex == newChain.length &&\n // Same element\n this.__isReusableElement(newContext.result, previousContext.result);\n\n if (newContext.__skipAttach) {\n // execute onBeforeLeave for changed segment element when skipping attach\n for (let i = newChain.length - 1; i >= 0; i--) {\n callbacks = this.__runOnBeforeLeaveCallbacks(callbacks, newContext, {prevent}, previousChain[i]);\n }\n // execute onBeforeEnter for changed segment element when skipping attach\n for (let i = 0; i < newChain.length; i++) {\n callbacks = this.__runOnBeforeEnterCallbacks(callbacks, newContext, {prevent, redirect}, newChain[i]);\n previousChain[i].element.location = createLocation(newContext, previousChain[i].route);\n }\n\n } else {\n // execute onBeforeLeave when NOT skipping attach\n for (let i = previousChain.length - 1; i >= newContext.__divergedChainIndex; i--) {\n callbacks = this.__runOnBeforeLeaveCallbacks(callbacks, newContext, {prevent}, previousChain[i]);\n }\n }\n }\n // execute onBeforeEnter when NOT skipping attach\n if (!newContext.__skipAttach) {\n for (let i = 0; i < newChain.length; i++) {\n if (i < newContext.__divergedChainIndex) {\n if (i < previousChain.length && previousChain[i].element) {\n previousChain[i].element.location = createLocation(newContext, previousChain[i].route);\n }\n } else {\n callbacks = this.__runOnBeforeEnterCallbacks(callbacks, newContext, {prevent, redirect}, newChain[i]);\n if (newChain[i].element) {\n newChain[i].element.location = createLocation(newContext, newChain[i].route);\n }\n }\n }\n }\n return callbacks.then(amendmentResult => {\n if (amendmentResult) {\n if (amendmentResult.cancel) {\n this.__previousContext.__renderId = newContext.__renderId;\n return this.__previousContext;\n }\n if (amendmentResult.redirect) {\n return this.__redirect(amendmentResult.redirect, newContext.__redirectCount, newContext.__renderId);\n }\n }\n return newContext;\n });\n }\n\n __runOnBeforeLeaveCallbacks(callbacks, newContext, commands, chainElement) {\n const location = createLocation(newContext);\n return callbacks.then(result => {\n if (this.__isLatestRender(newContext)) {\n const afterLeaveFunction = amend('onBeforeLeave', [location, commands, this], chainElement.element);\n return afterLeaveFunction(result);\n }\n }).then(result => {\n if (!(result || {}).redirect) {\n return result;\n }\n });\n }\n\n __runOnBeforeEnterCallbacks(callbacks, newContext, commands, chainElement) {\n const location = createLocation(newContext, chainElement.route);\n return callbacks.then(result => {\n if (this.__isLatestRender(newContext)) {\n const beforeEnterFunction = amend('onBeforeEnter', [location, commands, this], chainElement.element);\n return beforeEnterFunction(result);\n }\n });\n }\n\n __isReusableElement(element, otherElement) {\n if (element && otherElement) {\n return this.__createdByRouter.get(element) && this.__createdByRouter.get(otherElement)\n ? element.localName === otherElement.localName\n : element === otherElement;\n }\n return false;\n }\n\n __isLatestRender(context) {\n return context.__renderId === this.__lastStartedRenderId;\n }\n\n __redirect(redirectData, counter, renderId) {\n if (counter > MAX_REDIRECT_COUNT) {\n throw new Error(log(`Too many redirects when rendering ${redirectData.from}`));\n }\n\n return this.resolve({\n pathname: this.urlForPath(\n redirectData.pathname,\n redirectData.params\n ),\n redirectFrom: redirectData.from,\n __redirectCount: (counter || 0) + 1,\n __renderId: renderId\n });\n }\n\n __ensureOutlet(outlet = this.__outlet) {\n if (!(outlet instanceof Node)) {\n throw new TypeError(log(`Expected router outlet to be a valid DOM Node (but got ${outlet})`));\n }\n }\n\n __updateBrowserHistory({pathname, search = '', hash = ''}, replace) {\n if (window.location.pathname !== pathname\n || window.location.search !== search\n || window.location.hash !== hash\n ) {\n const changeState = replace ? 'replaceState' : 'pushState';\n window.history[changeState](null, document.title, pathname + search + hash);\n window.dispatchEvent(new PopStateEvent('popstate', {state: 'vaadin-router-ignore'}));\n }\n }\n\n __copyUnchangedElements(context, previousContext) {\n // Find the deepest common parent between the last and the new component\n // chains. Update references for the unchanged elements in the new chain\n let deepestCommonParent = this.__outlet;\n for (let i = 0; i < context.__divergedChainIndex; i++) {\n const unchangedElement = previousContext && previousContext.chain[i].element;\n if (unchangedElement) {\n if (unchangedElement.parentNode === deepestCommonParent) {\n context.chain[i].element = unchangedElement;\n deepestCommonParent = unchangedElement;\n } else {\n break;\n }\n }\n }\n return deepestCommonParent;\n }\n\n __addAppearingContent(context, previousContext) {\n this.__ensureOutlet();\n\n // If the previous 'entering' animation has not completed yet,\n // stop it and remove that content from the DOM before adding new one.\n this.__removeAppearingContent();\n\n // Copy reusable elements from the previousContext to current\n const deepestCommonParent = this.__copyUnchangedElements(context, previousContext);\n\n // Keep two lists of DOM elements:\n // - those that should be removed once the transition animation is over\n // - and those that should remain\n this.__appearingContent = [];\n this.__disappearingContent = Array\n .from(deepestCommonParent.children)\n .filter(\n // Only remove layout content that was added by router\n e => this.__addedByRouter.get(e) &&\n // Do not remove the result element to avoid flickering\n e !== context.result);\n\n // Add new elements (starting after the deepest common parent) to the DOM.\n // That way only the components that are actually different between the two\n // locations are added to the DOM (and those that are common remain in the\n // DOM without first removing and then adding them again).\n let parentElement = deepestCommonParent;\n for (let i = context.__divergedChainIndex; i < context.chain.length; i++) {\n const elementToAdd = context.chain[i].element;\n if (elementToAdd) {\n parentElement.appendChild(elementToAdd);\n this.__addedByRouter.set(elementToAdd, true);\n if (parentElement === deepestCommonParent) {\n this.__appearingContent.push(elementToAdd);\n }\n parentElement = elementToAdd;\n }\n }\n }\n\n __removeDisappearingContent() {\n if (this.__disappearingContent) {\n removeDomNodes(this.__disappearingContent);\n }\n this.__disappearingContent = null;\n this.__appearingContent = null;\n }\n\n __removeAppearingContent() {\n if (this.__disappearingContent && this.__appearingContent) {\n removeDomNodes(this.__appearingContent);\n this.__disappearingContent = null;\n this.__appearingContent = null;\n }\n }\n\n __runOnAfterLeaveCallbacks(currentContext, targetContext) {\n if (!targetContext) {\n return;\n }\n\n // REVERSE iteration: from Z to A\n for (let i = targetContext.chain.length - 1; i >= currentContext.__divergedChainIndex; i--) {\n if (!this.__isLatestRender(currentContext)) {\n break;\n }\n const currentComponent = targetContext.chain[i].element;\n if (!currentComponent) {\n continue;\n }\n try {\n const location = createLocation(currentContext);\n runCallbackIfPossible(\n currentComponent.onAfterLeave,\n [location, {}, targetContext.resolver],\n currentComponent);\n } finally {\n if (this.__disappearingContent.indexOf(currentComponent) > -1) {\n removeDomNodes(currentComponent.children);\n }\n }\n }\n }\n\n __runOnAfterEnterCallbacks(currentContext) {\n // forward iteration: from A to Z\n for (let i = currentContext.__divergedChainIndex; i < currentContext.chain.length; i++) {\n if (!this.__isLatestRender(currentContext)) {\n break;\n }\n const currentComponent = currentContext.chain[i].element || {};\n const location = createLocation(currentContext, currentContext.chain[i].route);\n runCallbackIfPossible(\n currentComponent.onAfterEnter,\n [location, {}, currentContext.resolver],\n currentComponent);\n }\n }\n\n __animateIfNeeded(context) {\n const from = (this.__disappearingContent || [])[0];\n const to = (this.__appearingContent || [])[0];\n const promises = [];\n\n const chain = context.chain;\n let config;\n for (let i = chain.length; i > 0; i--) {\n if (chain[i - 1].route.animate) {\n config = chain[i - 1].route.animate;\n break;\n }\n }\n\n if (from && to && config) {\n const leave = isObject(config) && config.leave || 'leaving';\n const enter = isObject(config) && config.enter || 'entering';\n promises.push(animate(from, leave));\n promises.push(animate(to, enter));\n }\n\n return Promise.all(promises).then(() => context);\n }\n\n /**\n * Subscribes this instance to navigation events on the `window`.\n *\n * NOTE: beware of resource leaks. For as long as a router instance is\n * subscribed to navigation events, it won't be garbage collected.\n */\n subscribe() {\n window.addEventListener('vaadin-router-go', this.__navigationEventHandler);\n }\n\n /**\n * Removes the subscription to navigation events created in the `subscribe()`\n * method.\n */\n unsubscribe() {\n window.removeEventListener('vaadin-router-go', this.__navigationEventHandler);\n }\n\n __onNavigationEvent(event) {\n const {pathname, search, hash} = event ? event.detail : window.location;\n if (isString(this.__normalizePathname(pathname))) {\n if (event && event.preventDefault) {\n event.preventDefault();\n }\n this.render({pathname, search, hash}, true);\n }\n }\n\n /**\n * Configures what triggers Router navigation events:\n * - `POPSTATE`: popstate events on the current `window`\n * - `CLICK`: click events on `<a>` links leading to the current page\n *\n * This method is invoked with the pre-configured values when creating a new Router instance.\n * By default, both `POPSTATE` and `CLICK` are enabled. This setup is expected to cover most of the use cases.\n *\n * See the `router-config.js` for the default navigation triggers config. Based on it, you can\n * create the own one and only import the triggers you need, instead of pulling in all the code,\n * e.g. if you want to handle `click` differently.\n *\n * See also **Navigation Triggers** section in [Live Examples](#/classes/Router/demos/demo/index.html).\n *\n * @param {...NavigationTrigger} triggers\n */\n static setTriggers(...triggers) {\n setNavigationTriggers(triggers);\n }\n\n /**\n * Generates a URL for the route with the given name, optionally performing\n * substitution of parameters.\n *\n * The route is searched in all the Router instances subscribed to\n * navigation events.\n *\n * **Note:** For child route names, only array children are considered.\n * It is not possible to generate URLs using a name for routes set with\n * a children function.\n *\n * @function urlForName\n * @param {!string} name the route name or the route’s `component` name.\n * @param {Params=} params Optional object with route path parameters.\n * Named parameters are passed by name (`params[name] = value`), unnamed\n * parameters are passed by index (`params[index] = value`).\n *\n * @return {string}\n */\n urlForName(name, params) {\n if (!this.__urlForName) {\n this.__urlForName = generateUrls(this);\n }\n return getPathnameForRouter(\n this.__urlForName(name, params),\n this\n );\n }\n\n /**\n * Generates a URL for the given route path, optionally performing\n * substitution of parameters.\n *\n * @param {!string} path string route path declared in [express.js syntax](https://expressjs.com/en/guide/routing.html#route-paths\").\n * @param {Params=} params Optional object with route path parameters.\n * Named parameters are passed by name (`params[name] = value`), unnamed\n * parameters are passed by index (`params[index] = value`).\n *\n * @return {string}\n */\n urlForPath(path, params) {\n return getPathnameForRouter(\n Router.pathToRegexp.compile(path)(params),\n this\n );\n }\n\n /**\n * Triggers navigation to a new path. Returns a boolean without waiting until\n * the navigation is complete. Returns `true` if at least one `Router`\n * has handled the navigation (was subscribed and had `baseUrl` matching\n * the `path` argument), otherwise returns `false`.\n *\n * @param {!string|!{pathname: !string, search: (string|undefined), hash: (string|undefined)}} path\n * a new in-app path string, or an URL-like object with `pathname`\n * string property, and optional `search` and `hash` string properties.\n * @return {boolean}\n */\n static go(path) {\n const {pathname, search, hash} = isString(path)\n ? this.__createUrl(path, 'http://a') // some base to omit origin\n : path;\n return fireRouterEvent('go', {pathname, search, hash});\n }\n}\n\nconst DEV_MODE_CODE_REGEXP =\n /\\/\\*\\*\\s+vaadin-dev-mode:start([\\s\\S]*)vaadin-dev-mode:end\\s+\\*\\*\\//i;\n\nconst FlowClients = window.Vaadin && window.Vaadin.Flow && window.Vaadin.Flow.clients;\n\nfunction isMinified() {\n function test() {\n /** vaadin-dev-mode:start\n return false;\n vaadin-dev-mode:end **/\n return true;\n }\n return uncommentAndRun(test);\n}\n\nfunction isDevelopmentMode() {\n try {\n if (isForcedDevelopmentMode()) {\n return true;\n }\n\n if (!isLocalhost()) {\n return false;\n }\n\n if (FlowClients) {\n return !isFlowProductionMode();\n }\n\n return !isMinified();\n } catch (e) {\n // Some error in this code, assume production so no further actions will be taken\n return false;\n }\n}\n\nfunction isForcedDevelopmentMode() {\n return localStorage.getItem(\"vaadin.developmentmode.force\");\n}\n\nfunction isLocalhost() {\n return ([\"localhost\",\"127.0.0.1\"].indexOf(window.location.hostname) >= 0);\n}\n\nfunction isFlowProductionMode() {\n if (FlowClients) {\n const productionModeApps = Object.keys(FlowClients)\n .map(key => FlowClients[key])\n .filter(client => client.productionMode);\n if (productionModeApps.length > 0) {\n return true;\n }\n }\n return false;\n}\n\nfunction uncommentAndRun(callback, args) {\n if (typeof callback !== 'function') {\n return;\n }\n\n const match = DEV_MODE_CODE_REGEXP.exec(callback.toString());\n if (match) {\n try {\n // requires CSP: script-src 'unsafe-eval'\n callback = new Function(match[1]);\n } catch (e) {\n // eat the exception\n console.log('vaadin-development-mode-detector: uncommentAndRun() failed', e);\n }\n }\n\n return callback(args);\n}\n\n// A guard against polymer-modulizer removing the window.Vaadin\n// initialization above.\nwindow['Vaadin'] = window['Vaadin'] || {};\n\n/**\n * Inspects the source code of the given `callback` function for\n * specially-marked _commented_ code. If such commented code is found in the\n * callback source, uncomments and runs that code instead of the callback\n * itself. Otherwise runs the callback as is.\n *\n * The optional arguments are passed into the callback / uncommented code,\n * the result is returned.\n *\n * See the `isMinified()` function source code in this file for an example.\n *\n */\nconst runIfDevelopmentMode = function(callback, args) {\n if (window.Vaadin.developmentMode) {\n return uncommentAndRun(callback, args);\n }\n};\n\nif (window.Vaadin.developmentMode === undefined) {\n window.Vaadin.developmentMode = isDevelopmentMode();\n}\n\n/* This file is autogenerated from src/vaadin-usage-statistics.tpl.html */\n\nfunction maybeGatherAndSendStats() {\n /** vaadin-dev-mode:start\n (function () {\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar getPolymerVersion = function getPolymerVersion() {\n return window.Polymer && window.Polymer.version;\n};\n\nvar StatisticsGatherer = function () {\n function StatisticsGatherer(logger) {\n classCallCheck(this, StatisticsGatherer);\n\n this.now = new Date().getTime();\n this.logger = logger;\n }\n\n createClass(StatisticsGatherer, [{\n key: 'frameworkVersionDetectors',\n value: function frameworkVersionDetectors() {\n return {\n 'Flow': function Flow() {\n if (window.Vaadin && window.Vaadin.Flow && window.Vaadin.Flow.clients) {\n var flowVersions = Object.keys(window.Vaadin.Flow.clients).map(function (key) {\n return window.Vaadin.Flow.clients[key];\n }).filter(function (client) {\n return client.getVersionInfo;\n }).map(function (client) {\n return client.getVersionInfo().flow;\n });\n if (flowVersions.length > 0) {\n return flowVersions[0];\n }\n }\n },\n 'Vaadin Framework': function VaadinFramework() {\n if (window.vaadin && window.vaadin.clients) {\n var frameworkVersions = Object.values(window.vaadin.clients).filter(function (client) {\n return client.getVersionInfo;\n }).map(function (client) {\n return client.getVersionInfo().vaadinVersion;\n });\n if (frameworkVersions.length > 0) {\n return frameworkVersions[0];\n }\n }\n },\n 'AngularJs': function AngularJs() {\n if (window.angular && window.angular.version && window.angular.version) {\n return window.angular.version.full;\n }\n },\n 'Angular': function Angular() {\n if (window.ng) {\n var tags = document.querySelectorAll(\"[ng-version]\");\n if (tags.length > 0) {\n return tags[0].getAttribute(\"ng-version\");\n }\n return \"Unknown\";\n }\n },\n 'Backbone.js': function BackboneJs() {\n if (window.Backbone) {\n return window.Backbone.VERSION;\n }\n },\n 'React': function React() {\n var reactSelector = '[data-reactroot], [data-reactid]';\n if (!!document.querySelector(reactSelector)) {\n // React does not publish the version by default\n return \"unknown\";\n }\n },\n 'Ember': function Ember() {\n if (window.Em && window.Em.VERSION) {\n return window.Em.VERSION;\n } else if (window.Ember && window.Ember.VERSION) {\n return window.Ember.VERSION;\n }\n },\n 'jQuery': function (_jQuery) {\n function jQuery() {\n return _jQuery.apply(this, arguments);\n }\n\n jQuery.toString = function () {\n return _jQuery.toString();\n };\n\n return jQuery;\n }(function () {\n if (typeof jQuery === 'function' && jQuery.prototype.jquery !== undefined) {\n return jQuery.prototype.jquery;\n }\n }),\n 'Polymer': function Polymer() {\n var version = getPolymerVersion();\n if (version) {\n return version;\n }\n },\n 'LitElement': function LitElement() {\n var version = window.litElementVersions && window.litElementVersions[0];\n if (version) {\n return version;\n }\n },\n 'LitHtml': function LitHtml() {\n var version = window.litHtmlVersions && window.litHtmlVersions[0];\n if (version) {\n return version;\n }\n },\n 'Vue.js': function VueJs() {\n if (window.Vue) {\n return window.Vue.version;\n }\n }\n };\n }\n }, {\n key: 'getUsedVaadinElements',\n value: function getUsedVaadinElements(elements) {\n var version = getPolymerVersion();\n var elementClasses = void 0;\n // NOTE: In case you edit the code here, YOU MUST UPDATE any statistics reporting code in Flow.\n // Check all locations calling the method getEntries() in\n // https://github.com/vaadin/flow/blob/master/flow-server/src/main/java/com/vaadin/flow/internal/UsageStatistics.java#L106\n // Currently it is only used by BootstrapHandler.\n if (version && version.indexOf('2') === 0) {\n // Polymer 2: components classes are stored in window.Vaadin\n elementClasses = Object.keys(window.Vaadin).map(function (c) {\n return window.Vaadin[c];\n }).filter(function (c) {\n return c.is;\n });\n } else {\n // Polymer 3: components classes are stored in window.Vaadin.registrations\n elementClasses = window.Vaadin.registrations || [];\n }\n elementClasses.forEach(function (klass) {\n var version = klass.version ? klass.version : \"0.0.0\";\n elements[klass.is] = { version: version };\n });\n }\n }, {\n key: 'getUsedVaadinThemes',\n value: function getUsedVaadinThemes(themes) {\n ['Lumo', 'Material'].forEach(function (themeName) {\n var theme;\n var version = getPolymerVersion();\n if (version && version.indexOf('2') === 0) {\n // Polymer 2: themes are stored in window.Vaadin\n theme = window.Vaadin[themeName];\n } else {\n // Polymer 3: themes are stored in custom element registry\n theme = customElements.get('vaadin-' + themeName.toLowerCase() + '-styles');\n }\n if (theme && theme.version) {\n themes[themeName] = { version: theme.version };\n }\n });\n }\n }, {\n key: 'getFrameworks',\n value: function getFrameworks(frameworks) {\n var detectors = this.frameworkVersionDetectors();\n Object.keys(detectors).forEach(function (framework) {\n var detector = detectors[framework];\n try {\n var version = detector();\n if (version) {\n frameworks[framework] = { version: version };\n }\n } catch (e) {}\n });\n }\n }, {\n key: 'gather',\n value: function gather(storage) {\n var storedStats = storage.read();\n var gatheredStats = {};\n var types = [\"elements\", \"frameworks\", \"themes\"];\n\n types.forEach(function (type) {\n gatheredStats[type] = {};\n if (!storedStats[type]) {\n storedStats[type] = {};\n }\n });\n\n var previousStats = JSON.stringify(storedStats);\n\n this.getUsedVaadinElements(gatheredStats.elements);\n this.getFrameworks(gatheredStats.frameworks);\n this.getUsedVaadinThemes(gatheredStats.themes);\n\n var now = this.now;\n types.forEach(function (type) {\n var keys = Object.keys(gatheredStats[type]);\n keys.forEach(function (key) {\n if (!storedStats[type][key] || _typeof(storedStats[type][key]) != _typeof({})) {\n storedStats[type][key] = { firstUsed: now };\n }\n // Discards any previously logged version number\n storedStats[type][key].version = gatheredStats[type][key].version;\n storedStats[type][key].lastUsed = now;\n });\n });\n\n var newStats = JSON.stringify(storedStats);\n storage.write(newStats);\n if (newStats != previousStats && Object.keys(storedStats).length > 0) {\n this.logger.debug(\"New stats: \" + newStats);\n }\n }\n }]);\n return StatisticsGatherer;\n}();\n\nvar StatisticsStorage = function () {\n function StatisticsStorage(key) {\n classCallCheck(this, StatisticsStorage);\n\n this.key = key;\n }\n\n createClass(StatisticsStorage, [{\n key: 'read',\n value: function read() {\n var localStorageStatsString = localStorage.getItem(this.key);\n try {\n return JSON.parse(localStorageStatsString ? localStorageStatsString : '{}');\n } catch (e) {\n return {};\n }\n }\n }, {\n key: 'write',\n value: function write(data) {\n localStorage.setItem(this.key, data);\n }\n }, {\n key: 'clear',\n value: function clear() {\n localStorage.removeItem(this.key);\n }\n }, {\n key: 'isEmpty',\n value: function isEmpty() {\n var storedStats = this.read();\n var empty = true;\n Object.keys(storedStats).forEach(function (key) {\n if (Object.keys(storedStats[key]).length > 0) {\n empty = false;\n }\n });\n\n return empty;\n }\n }]);\n return StatisticsStorage;\n}();\n\nvar StatisticsSender = function () {\n function StatisticsSender(url, logger) {\n classCallCheck(this, StatisticsSender);\n\n this.url = url;\n this.logger = logger;\n }\n\n createClass(StatisticsSender, [{\n key: 'send',\n value: function send(data, errorHandler) {\n var logger = this.logger;\n\n if (navigator.onLine === false) {\n logger.debug(\"Offline, can't send\");\n errorHandler();\n return;\n }\n logger.debug(\"Sending data to \" + this.url);\n\n var req = new XMLHttpRequest();\n req.withCredentials = true;\n req.addEventListener(\"load\", function () {\n // Stats sent, nothing more to do\n logger.debug(\"Response: \" + req.responseText);\n });\n req.addEventListener(\"error\", function () {\n logger.debug(\"Send failed\");\n errorHandler();\n });\n req.addEventListener(\"abort\", function () {\n logger.debug(\"Send aborted\");\n errorHandler();\n });\n req.open(\"POST\", this.url);\n req.setRequestHeader(\"Content-Type\", \"application/json\");\n req.send(data);\n }\n }]);\n return StatisticsSender;\n}();\n\nvar StatisticsLogger = function () {\n function StatisticsLogger(id) {\n classCallCheck(this, StatisticsLogger);\n\n this.id = id;\n }\n\n createClass(StatisticsLogger, [{\n key: '_isDebug',\n value: function _isDebug() {\n return localStorage.getItem(\"vaadin.\" + this.id + \".debug\");\n }\n }, {\n key: 'debug',\n value: function debug(msg) {\n if (this._isDebug()) {\n console.info(this.id + \": \" + msg);\n }\n }\n }]);\n return StatisticsLogger;\n}();\n\nvar UsageStatistics = function () {\n function UsageStatistics() {\n classCallCheck(this, UsageStatistics);\n\n this.now = new Date();\n this.timeNow = this.now.getTime();\n this.gatherDelay = 10; // Delay between loading this file and gathering stats\n this.initialDelay = 24 * 60 * 60;\n\n this.logger = new StatisticsLogger(\"statistics\");\n this.storage = new StatisticsStorage(\"vaadin.statistics.basket\");\n this.gatherer = new StatisticsGatherer(this.logger);\n this.sender = new StatisticsSender(\"https://tools.vaadin.com/usage-stats/submit\", this.logger);\n }\n\n createClass(UsageStatistics, [{\n key: 'maybeGatherAndSend',\n value: function maybeGatherAndSend() {\n var _this = this;\n\n if (localStorage.getItem(UsageStatistics.optOutKey)) {\n return;\n }\n this.gatherer.gather(this.storage);\n setTimeout(function () {\n _this.maybeSend();\n }, this.gatherDelay * 1000);\n }\n }, {\n key: 'lottery',\n value: function lottery() {\n return true;\n }\n }, {\n key: 'currentMonth',\n value: function currentMonth() {\n return this.now.getYear() * 12 + this.now.getMonth();\n }\n }, {\n key: 'maybeSend',\n value: function maybeSend() {\n var firstUse = Number(localStorage.getItem(UsageStatistics.firstUseKey));\n var monthProcessed = Number(localStorage.getItem(UsageStatistics.monthProcessedKey));\n\n if (!firstUse) {\n // Use a grace period to avoid interfering with tests, incognito mode etc\n firstUse = this.timeNow;\n localStorage.setItem(UsageStatistics.firstUseKey, firstUse);\n }\n\n if (this.timeNow < firstUse + this.initialDelay * 1000) {\n this.logger.debug(\"No statistics will be sent until the initial delay of \" + this.initialDelay + \"s has passed\");\n return;\n }\n if (this.currentMonth() <= monthProcessed) {\n this.logger.debug(\"This month has already been processed\");\n return;\n }\n localStorage.setItem(UsageStatistics.monthProcessedKey, this.currentMonth());\n // Use random sampling\n if (this.lottery()) {\n this.logger.debug(\"Congratulations, we have a winner!\");\n } else {\n this.logger.debug(\"Sorry, no stats from you this time\");\n return;\n }\n\n this.send();\n }\n }, {\n key: 'send',\n value: function send() {\n // Ensure we have the latest data\n this.gatherer.gather(this.storage);\n\n // Read, send and clean up\n var data = this.storage.read();\n data[\"firstUse\"] = Number(localStorage.getItem(UsageStatistics.firstUseKey));\n data[\"usageStatisticsVersion\"] = UsageStatistics.version;\n var info = 'This request contains usage statistics gathered from the application running in development mode. \\n\\nStatistics gathering is automatically disabled and excluded from production builds.\\n\\nFor details and to opt-out, see https://github.com/vaadin/vaadin-usage-statistics.\\n\\n\\n\\n';\n var self = this;\n this.sender.send(info + JSON.stringify(data), function () {\n // Revert the 'month processed' flag\n localStorage.setItem(UsageStatistics.monthProcessedKey, self.currentMonth() - 1);\n });\n }\n }], [{\n key: 'version',\n get: function get$1() {\n return '2.1.0';\n }\n }, {\n key: 'firstUseKey',\n get: function get$1() {\n return 'vaadin.statistics.firstuse';\n }\n }, {\n key: 'monthProcessedKey',\n get: function get$1() {\n return 'vaadin.statistics.monthProcessed';\n }\n }, {\n key: 'optOutKey',\n get: function get$1() {\n return 'vaadin.statistics.optout';\n }\n }]);\n return UsageStatistics;\n}();\n\ntry {\n window.Vaadin = window.Vaadin || {};\n window.Vaadin.usageStatsChecker = window.Vaadin.usageStatsChecker || new UsageStatistics();\n window.Vaadin.usageStatsChecker.maybeGatherAndSend();\n} catch (e) {\n // Intentionally ignored as this is not a problem in the app being developed\n}\n\n}());\n\n vaadin-dev-mode:end **/\n}\n\nconst usageStatistics = function() {\n if (typeof runIfDevelopmentMode === 'function') {\n return runIfDevelopmentMode(maybeGatherAndSendStats);\n }\n};\n\nwindow.Vaadin = window.Vaadin || {};\nwindow.Vaadin.registrations = window.Vaadin.registrations || [];\n\nwindow.Vaadin.registrations.push({\n is: '@vaadin/router',\n version: '1.7.4',\n});\n\nusageStatistics();\n\nRouter.NavigationTrigger = {POPSTATE, CLICK};\n\nexport { Resolver, Router };\n//# sourceMappingURL=vaadin-router.js.map\n","class AccordionPage extends HTMLElement {\n\tconnectedCallback() {\n\t\tthis.innerHTML = `\n\n\t\t<h4>Accordion - extra small</h4>\n\t\t<div class=\"container-view\">\n\t\t\t<gov-accordion size=\"xs\">\n\t\t\t\t<gov-accordion-item trigger-tag=\"h1\" label=\"Font Awesome Icon\" annotation=\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus\">\n\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t</gov-accordion-item>\n\t\t\t\t<gov-accordion-item label=\"Kontaktní osoby\" disabled is-expanded>\n\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t</gov-accordion-item>\n\t\t\t\t<gov-accordion-item label=\"Působnost v agendách\">\n\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t</gov-accordion-item>\n\t\t\t\t<gov-accordion-item label=\"Zřizované organizace\">\n\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t</gov-accordion-item>\n\t\t\t</gov-accordion>\n\t\t\t<br>\n\t\t\t<gov-accordion size=\"xs\">\n\t\t\t\t<gov-accordion-item trigger-tag=\"h1\" label=\"Font Awesome Icon\" annotation=\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus\">\n\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t</gov-accordion-item>\n\t\t\t\t<gov-accordion-item label=\"Kontaktní osoby\">\n\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t</gov-accordion-item>\n\t\t\t\t<gov-accordion-item label=\"Působnost v agendách\">\n\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t</gov-accordion-item>\n\t\t\t\t<gov-accordion-item label=\"Zřizované organizace\">\n\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t</gov-accordion-item>\n\t\t\t</gov-accordion>\n\t\t\t<h4>Accordion - small</h4>\n\t\t\t<div class=\"container-view\">\n\t\t\t\t<gov-accordion size=\"s\">\n\t\t\t\t\t<gov-accordion-item trigger-tag=\"h1\" label=\"Font Awesome Icon\" annotation=\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus\">\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Kontaktní osoby\" disabled is-expanded>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Působnost v agendách\">\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Zřizované organizace\">\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t</gov-accordion>\n\t\t\t\t<br>\n\t\t\t\t<gov-accordion size=\"s\">\n\t\t\t\t\t<gov-accordion-item trigger-tag=\"h1\" label=\"Font Awesome Icon\" annotation=\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus\">\n\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t\t<gov-accordion size=\"l\">\n\t\t\t\t\t\t\t<gov-accordion-item trigger-tag=\"h1\" label=\"Font Awesome Icon\" annotation=\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus\">\n\t\t\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t\t\t<gov-accordion-item label=\"Kontaktní osoby\">\n\t\t\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t\t\t<gov-accordion-item label=\"Působnost v agendách\">\n\t\t\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t\t\t<gov-accordion-item label=\"Zřizované organizace\">\n\t\t\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t\t</gov-accordion>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Kontaktní osoby\">\n\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Působnost v agendách\">\n\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Zřizované organizace\">\n\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t</gov-accordion>\n\t\t\t\t<br>\n\t\t\t\t<h4>Without border</h4>\n\t\t\t\t<gov-accordion size=\"s\" no-border>\n\t\t\t\t\t<gov-accordion-item trigger-tag=\"h1\" label=\"Font Awesome Icon\" annotation=\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus\">\n\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Kontaktní osoby\">\n\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Působnost v agendách\">\n\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Zřizované organizace\">\n\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t</gov-accordion>\n\t\t\t</div>\n\n\t\t\t<h4>Accordion - medium (default)</h4>\n\t\t\t<div class=\"container-view\">\n\t\t\t\t<gov-accordion>\n\t\t\t\t\t<gov-accordion-item trigger-tag=\"h1\" label=\"Lorem ipsum dolor sit amet\" disabled annotation=\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus\">\n\t\t\t\t\t\t<gov-badge variant=\"primary\" size=\"s\" slot=\"suffix\">super badge</gov-badge>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Kontaktní osoby\">\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Působnost v agendách\">\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Zřizované organizace\">\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t</gov-accordion>\n\t\t\t\t<br>\n\t\t\t\t<gov-accordion>\n\t\t\t\t\t<gov-accordion-item trigger-tag=\"h1\" label=\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. In imperdiet dictum consectetur. Sed posuere tellus in lobortis aliquam. Pellentesque a porttitor purus.\" is-expanded annotation=\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus\">\n\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t\t<gov-badge variant=\"primary\" size=\"s\" slot=\"suffix\">super badge</gov-badge>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Kontaktní osoby\">\n\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Působnost v agendách\">\n\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Zřizované organizace\">\n\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t</gov-accordion>\n\t\t\t</div>\n\n\t\t\t<h4>Accordion - large</h4>\n\t\t\t<div class=\"container-view\">\n\t\t\t\t<gov-accordion size=\"l\">\n\t\t\t\t\t<gov-accordion-item trigger-tag=\"h1\" label=\"Základní informace\" annotation=\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus\">\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Kontaktní osoby\">\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Působnost v agendách\">\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Zřizované organizace\">\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t</gov-accordion>\n\t\t\t\t<br>\n\t\t\t\t<gov-accordion size=\"l\">\n\t\t\t\t\t<gov-accordion-item trigger-tag=\"h1\" label=\"Základní informace\" annotation=\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus\">\n\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Kontaktní osoby\">\n\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Působnost v agendách\">\n\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Zřizované organizace\">\n\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t</gov-accordion>\n\t\t\t</div>\n\n\n\n\n\t\t\t<h4>Accordion Secondary - extra small</h4>\n\t\t\t<div class=\"container-view\">\n\t\t\t\t<gov-accordion size=\"xs\" variant=\"secondary\">\n\t\t\t\t\t<gov-accordion-item trigger-tag=\"h1\" label=\"Font Awesome Icon\" disabled>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Kontaktní osoby\">\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Působnost v agendách\">\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Zřizované organizace\">\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t</gov-accordion>\n\t\t\t\t<br>\n\t\t\t\t<gov-accordion size=\"xs\" variant=\"secondary\">\n\t\t\t\t\t<gov-accordion-item trigger-tag=\"h1\" label=\"Font Awesome Icon\">\n\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Kontaktní osoby\">\n\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Působnost v agendách\">\n\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Zřizované organizace\">\n\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t</gov-accordion>\n\t\t\t</div>\n\t\t\t<h4>Accordion Secondary - small</h4>\n\t\t\t<div class=\"container-view\">\n\t\t\t\t<gov-accordion size=\"s\" variant=\"secondary\">\n\t\t\t\t\t<gov-accordion-item trigger-tag=\"h1\" label=\"Font Awesome Icon\" disabled>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Kontaktní osoby\">\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Působnost v agendách\">\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Zřizované organizace\">\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t</gov-accordion>\n\t\t\t\t<br>\n\t\t\t\t<gov-accordion size=\"s\" variant=\"secondary\">\n\t\t\t\t\t<gov-accordion-item trigger-tag=\"h1\" label=\"Font Awesome Icon\">\n\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Kontaktní osoby\">\n\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Působnost v agendách\">\n\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Zřizované organizace\">\n\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t</gov-accordion>\n\t\t\t</div>\n\n\t\t\t<h4>Accordion Secondary - medium (default)</h4>\n\t\t\t<div class=\"container-view\">\n\t\t\t\t<gov-accordion variant=\"secondary\">\n\t\t\t\t\t<gov-accordion-item trigger-tag=\"h1\" label=\"Lorem ipsum dolor sit amet\">\n\t\t\t\t\t\t<gov-badge variant=\"primary\" size=\"s\" slot=\"suffix\">super badge</gov-badge>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Kontaktní osoby\">\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Působnost v agendách\">\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Zřizované organizace\">\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t</gov-accordion>\n\t\t\t\t<br>\n\t\t\t\t<gov-accordion variant=\"secondary\">\n\t\t\t\t\t<gov-accordion-item trigger-tag=\"h1\" label=\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. In imperdiet dictum consectetur. Sed posuere tellus in lobortis aliquam. Pellentesque a porttitor purus.\" is-expanded>\n\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t\t<gov-badge variant=\"primary\" size=\"s\" slot=\"suffix\">super badge</gov-badge>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Kontaktní osoby\">\n\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Působnost v agendách\">\n\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Zřizované organizace\">\n\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t</gov-accordion>\n\t\t\t</div>\n\n\t\t\t<h4>Accordion Secondary - large</h4>\n\t\t\t<div class=\"container-view\">\n\t\t\t\t<gov-accordion size=\"l\" variant=\"secondary\">\n\t\t\t\t\t<gov-accordion-item trigger-tag=\"h1\" label=\"Základní informace\">\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Kontaktní osoby\">\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Působnost v agendách\">\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Zřizované organizace\">\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t</gov-accordion>\n\t\t\t\t<br>\n\t\t\t\t<gov-accordion size=\"l\" variant=\"secondary\">\n\t\t\t\t\t<gov-accordion-item trigger-tag=\"h1\" label=\"Základní informace\">\n\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Kontaktní osoby\">\n\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Působnost v agendách\">\n\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t\t<gov-accordion-item label=\"Zřizované organizace\">\n\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-accordion-item>\n\t\t\t\t</gov-accordion>\n\t\t\t</div>\n\n\n\t\t`\n\t}\n}\n\nif (customElements.get('accordion-page') === undefined) {\n\tcustomElements.define('accordion-page', AccordionPage)\n}\n","class AlertPage extends HTMLElement {\n\tconnectedCallback() {\n\t\tthis.innerHTML = `\n\t\t<h2>Alert</h2>\n\n\t\t<gov-alert variant=\"secondary\" headline=\"Tohle bude super nadpis pro všechno\" closable>\n\t\t\t<gov-icon name=\"info\" slot=\"icon\"></gov-icon>\n\t\t\t<p>\n\t\t\t\tSecondary - Od 20. 12. 2020 do 14:00 h do 20. 12. 2020 do 15:00 h bude provedena plánovaná odstávka serverů. V uvedeném termínu bude nedostupné přihlášení k Portálu občana prostřednictvím datové schránky. Více informací <a href=\"#\">zde</a>.\n\t\t\t</p>\n\t\t</gov-alert>\n\t\t<br>\n\t\t<gov-alert variant=\"secondary\" closable>\n\t\t\t<gov-icon name=\"info\" slot=\"icon\"></gov-icon>\n\t\t\t<p>\n\t\t\t\tSecondary - Od 20. 12. 2020 do 14:00 h do 20. 12. 2020 do 15:00 h bude provedena plánovaná odstávka serverů. V uvedeném termínu bude nedostupné přihlášení k Portálu občana prostřednictvím datové schránky. Více informací <a href=\"#\">zde</a>.\n\t\t\t</p>\n\t\t</gov-alert>\n\t\t<br>\n\t\t<gov-alert variant=\"warning\" closable>\n\t\t\t<gov-icon name=\"info\" slot=\"icon\"></gov-icon>\n\t\t\t<p>\n\t\t\t\tWarning - Od 20. 12. 2020 do 14:00 h do 20. 12. 2020 do 15:00 h bude provedena plánovaná odstávka serverů. V uvedeném termínu bude nedostupné přihlášení k Portálu občana prostřednictvím datové schránky. Více informací <a href=\"#\">zde</a>.\n\t\t\t</p>\n\t\t</gov-alert>\n\t\t<br>\n\t\t<gov-alert variant=\"error\" closable>\n\t\t\t<gov-icon name=\"info\" slot=\"icon\"></gov-icon>\n\t\t\t<p>\n\t\t\t\tError - Od 20. 12. 2020 do 14:00 h do 20. 12. 2020 do 15:00 h bude provedena plánovaná odstávka serverů. V uvedeném termínu bude nedostupné přihlášení k Portálu občana prostřednictvím datové schránky. Více informací <a href=\"#\">zde</a>.\n\t\t\t</p>\n\t\t</gov-alert>\n\t\t<br>\n\t\t<gov-alert variant=\"success\" closable>\n\t\t\t<gov-icon name=\"info\" slot=\"icon\"></gov-icon>\n\t\t\t<p>\n\t\t\t\tError - Od 20. 12. 2020 do 14:00 h do 20. 12. 2020 do 15:00 h bude provedena plánovaná odstávka serverů. V uvedeném termínu bude nedostupné přihlášení k Portálu občana prostřednictvím datové schránky. Více informací <a href=\"#\">zde</a>.\n\t\t\t</p>\n\t\t</gov-alert>\n\t\t<br>\n\t\t<gov-alert variant=\"primary\" closable>\n\t\t\t<gov-icon name=\"info\" slot=\"icon\"></gov-icon>\n\t\t\t<p>\n\t\t\t\tError - Od 20. 12. 2020 do 14:00 h do 20. 12. 2020 do 15:00 h bude provedena plánovaná odstávka serverů. V uvedeném termínu bude nedostupné přihlášení k Portálu občana prostřednictvím datové schránky. Více informací <a href=\"#\">zde</a>.\n\t\t\t</p>\n\t\t</gov-alert>\n\n\t\t<h3>Inverse</h3>\n\t\t<br>\n\t\t<gov-alert inverse=\"TRUE\" variant=\"secondary\" closable>\n\t\t\t<gov-icon name=\"info\" slot=\"icon\"></gov-icon>\n\t\t\t<p>\n\t\t\t\tSecondary - Od 20. 12. 2020 do 14:00 h do 20. 12. 2020 do 15:00 h bude provedena plánovaná odstávka serverů. V uvedeném termínu bude nedostupné přihlášení k Portálu občana prostřednictvím datové schránky. Více informací <a href=\"#\">zde</a>.\n\t\t\t</p>\n\t\t</gov-alert>\n\t\t<br>\n\t\t<gov-alert inverse=\"True\" variant=\"warning\" closable>\n\t\t\t<gov-icon name=\"info\" slot=\"icon\"></gov-icon>\n\t\t\t<p>\n\t\t\t\tWarning - Od 20. 12. 2020 do 14:00 h do 20. 12. 2020 do 15:00 h bude provedena plánovaná odstávka serverů. V uvedeném termínu bude nedostupné přihlášení k Portálu občana prostřednictvím datové schránky. Více informací <a href=\"#\">zde</a>.\n\t\t\t</p>\n\t\t</gov-alert>\n\t\t<br>\n\t\t<gov-alert inverse=\"1\" variant=\"error\" closable>\n\t\t\t<gov-icon name=\"info\" slot=\"icon\"></gov-icon>\n\t\t\t<p>\n\t\t\t\tError - Od 20. 12. 2020 do 14:00 h do 20. 12. 2020 do 15:00 h bude provedena plánovaná odstávka serverů. V uvedeném termínu bude nedostupné přihlášení k Portálu občana prostřednictvím datové schránky. Více informací <a href=\"#\">zde</a>.\n\t\t\t</p>\n\t\t</gov-alert>\n\t\t<br>\n\t\t<gov-alert inverse=\"true\" variant=\"success\" closable>\n\t\t\t<gov-icon name=\"info\" slot=\"icon\"></gov-icon>\n\t\t\t<p>\n\t\t\t\tError - Od 20. 12. 2020 do 14:00 h do 20. 12. 2020 do 15:00 h bude provedena plánovaná odstávka serverů. V uvedeném termínu bude nedostupné přihlášení k Portálu občana prostřednictvím datové schránky. Více informací <a href=\"#\">zde</a>.\n\t\t\t</p>\n\t\t</gov-alert>\n\t\t<br>\n\t\t<gov-alert inverse=\"true\" variant=\"primary\" closable>\n\t\t\t<gov-icon name=\"info\" slot=\"icon\"></gov-icon>\n\t\t\t<p>\n\t\t\t\tError - Od 20. 12. 2020 do 14:00 h do 20. 12. 2020 do 15:00 h bude provedena plánovaná odstávka serverů. V uvedeném termínu bude nedostupné přihlášení k Portálu občana prostřednictvím datové schránky. Více informací <a href=\"#\">zde</a>.\n\t\t\t</p>\n\t\t</gov-alert>\n\t\t`\n\t}\n}\n\nif (customElements.get('alert-page') === undefined) {\n\tcustomElements.define('alert-page', AlertPage)\n}\n","class BadgePage extends HTMLElement {\n\tconnectedCallback() {\n\t\tthis.innerHTML = `\n\t\t\t<h1>Badges</h1>\n\t\t\t<h4>Badges close</h4>\n\t\t\t<div class=\"container-view\">\n\t\t\t<gov-badge variant=\"primary\" size=\"s\">\n\t\t\t\tNot clickable S\n\t\t\t\t<gov-button slot=\"right\" variant=\"primary\" type=\"solid\" wcag-label=\"Zavřít vše\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t</gov-badge>\n\t\t\t<gov-badge variant=\"primary\" size=\"m\">\n\t\t\t\tNot clickable M\n\t\t\t\t<gov-button slot=\"right\" variant=\"primary\" type=\"solid\" wcag-label=\"Zavřít vše\" size=\"m\">\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t</gov-badge>\n\t\t\t<gov-badge variant=\"primary\" size=\"l\">\n\t\t\t\tNot clickable L\n\t\t\t\t<gov-button slot=\"right\" variant=\"primary\" type=\"solid\" wcag-label=\"Zavřít vše\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t</gov-badge>\n\t\t\t<gov-badge variant=\"primary\" size=\"xl\">\n\t\t\t\tNot clickable XL\n\t\t\t\t<gov-button slot=\"right\" variant=\"primary\" type=\"solid\" wcag-label=\"Zavřít vše\" size=\"xl\">\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t</gov-badge>\n\t\t\t</div>\n\t\t\t<h4>Badges close (inversed)</h4>\n\t\t\t<div class=\"container-view gov-bg--primary-600\">\n\t\t\t<gov-badge variant=\"primary\" size=\"s\" inverse>\n\t\t\t\tNot clickable S\n\t\t\t\t<gov-button slot=\"right\" variant=\"primary\" type=\"solid\" wcag-label=\"Zavřít vše\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t</gov-badge>\n\t\t\t<gov-badge variant=\"primary\" size=\"m\" inverse>\n\t\t\t\tNot clickable M\n\t\t\t\t<gov-button slot=\"right\" variant=\"primary\" type=\"solid\" wcag-label=\"Zavřít vše\" size=\"m\">\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t</gov-badge>\n\t\t\t<gov-badge variant=\"primary\" size=\"l\" inverse>\n\t\t\t\tNot clickable L\n\t\t\t\t<gov-button slot=\"right\" variant=\"primary\" type=\"solid\" wcag-label=\"Zavřít vše\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t</gov-badge>\n\t\t\t<gov-badge variant=\"primary\" size=\"xl\" inverse>\n\t\t\t\tNot clickable XL\n\t\t\t\t<gov-button slot=\"right\" variant=\"primary\" type=\"solid\" wcag-label=\"Zavřít vše\" size=\"xl\">\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t</gov-badge>\n\t\t\t</div>\n\t\t\t<h4>Badges - primary (default)</h4>\n\t\t\t<div class=\"container-view\">\n\t\t\t\t<gov-badge variant=\"primary\" size=\"xs\">\n\t\t\t\t\tBadge\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"primary\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\tNot clickable\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"primary\" href=\"http://www.example.com/\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\tNormal href\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"primary\" disabled href=\"http://www.example.com/\" target=\"_blank\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\tDisabled with href\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"primary\" size=\"l\" href=\"http://www.example.com/\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\tClickable\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"primary\" size=\"xl\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\tX-Large Primary\n\t\t\t\t</gov-badge>\n\t\t\t</div>\n\t\t\t<h4>Badges - primary (inversed)</h4>\n\t\t\t<div class=\"container-view\">\n\t\t\t\t<gov-badge variant=\"primary\" size=\"xs\" inverse>\n\t\t\t\t\tBadge\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"primary\" size=\"s\" inverse>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\tNot clickable\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"primary\" href=\"http://www.example.com/\" inverse>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\tNormal href\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"primary\" disabled href=\"http://www.example.com/\" target=\"_blank\" inverse>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\tDisabled with href\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"primary\" size=\"l\" href=\"http://www.example.com/\" inverse>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\tClickable\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"primary\" size=\"xl\" disabled inverse>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\tX-Large Primary\n\t\t\t\t</gov-badge>\n\t\t\t</div>\n\t\t\t<h4>Badges - primary (outlined)</h4>\n\t\t\t<div class=\"container-view\">\n\t\t\t\t<gov-badge variant=\"primary\" type=\"outlined\" size=\"xs\">\n\t\t\t\t\tBadge\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"primary\" tag=\"a\" type=\"outlined\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tSmall Primary\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"primary\" tag=\"button\" type=\"outlined\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tNormal Primary\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"primary\" tag=\"a\" type=\"outlined\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tLarge Primary\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"primary\" tag=\"button\" type=\"outlined\" disabled size=\"xl\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tX-Large Primary\n\t\t\t\t</gov-badge>\n\t\t\t</div>\n\t\t\t<hr />\n\n\t\t\t<h4>Badges - secondary (default)</h4>\n\t\t\t<div class=\"container-view\">\n\t\t\t\t<gov-badge variant=\"secondary\" size=\"xs\">\n\t\t\t\t\tBadge\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"secondary\" size=\"xs\" inverse>\n\t\t\t\t\tBadge\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"secondary\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\tNot clickable\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge tag=\"button\" variant=\"secondary\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\tNormal href\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"secondary\" disabled href=\"http://www.example.com/\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\tDisabled with href\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"secondary\" size=\"l\" tag=\"a\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\tClickable\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"secondary\" size=\"xl\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\tX-Large secondary\n\t\t\t\t</gov-badge>\n\t\t\t</div>\n\t\t\t<h4>Badges - secondary (outlined)</h4>\n\t\t\t<div class=\"container-view\">\n\t\t\t\t<gov-badge variant=\"secondary\" tag=\"a\" type=\"outlined\" size=\"xs\">\n\t\t\t\t\tBadge\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"secondary\" tag=\"a\" type=\"outlined\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tSmall secondary\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"secondary\" tag=\"button\" type=\"outlined\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tNormal secondary\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"secondary\" tag=\"a\" type=\"outlined\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tLarge secondary\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"secondary\" tag=\"button\" type=\"outlined\" disabled size=\"xl\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tX-Large secondary\n\t\t\t\t</gov-badge>\n\t\t\t</div>\n\t\t\t<hr />\n\n\t\t\t<h4>Badges - success (default)</h4>\n\t\t\t<div class=\"container-view\">\n\t\t\t\t<gov-badge variant=\"success\" size=\"xs\">\n\t\t\t\t\tBadge\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"success\" size=\"xs\" inverse>\n\t\t\t\t\tBadge\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"success\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\tNot clickable\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge tag=\"button\" variant=\"success\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\tNormal href\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"success\" disabled href=\"http://www.example.com/\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\tDisabled with href\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"success\" size=\"l\" tag=\"a\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\tClickable\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"success\" size=\"xl\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\tX-Large success\n\t\t\t\t</gov-badge>\n\t\t\t</div>\n\t\t\t<h4>Badges - success (outlined)</h4>\n\t\t\t<div class=\"container-view\">\n\t\t\t\t<gov-badge variant=\"success\" tag=\"a\" type=\"outlined\" size=\"xs\">\n\t\t\t\t\tBadge\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"success\" tag=\"a\" type=\"outlined\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tSmall success\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"success\" tag=\"button\" type=\"outlined\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tNormal success\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"success\" tag=\"a\" type=\"outlined\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tLarge success\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"success\" tag=\"button\" type=\"outlined\" disabled size=\"xl\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tX-Large success\n\t\t\t\t</gov-badge>\n\t\t\t</div>\n\t\t\t<hr />\n\n\t\t\t<h4>Badges - warning (default)</h4>\n\t\t\t<div class=\"container-view\">\n\t\t\t\t<gov-badge variant=\"warning\" size=\"xs\">\n\t\t\t\t\tBadge\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"warning\" size=\"xs\" inverse>\n\t\t\t\t\tBadge\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"warning\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\tNot clickable\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge tag=\"button\" variant=\"warning\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\tNormal href\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"warning\" disabled href=\"http://www.example.com/\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\tDisabled with href\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"warning\" size=\"l\" tag=\"a\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\tClickable\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"warning\" size=\"xl\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\tX-Large warning\n\t\t\t\t</gov-badge>\n\t\t\t</div>\n\t\t\t<h4>Badges - warning (outlined)</h4>\n\t\t\t<div class=\"container-view\">\n\t\t\t\t<gov-badge variant=\"warning\" tag=\"a\" type=\"outlined\" size=\"xs\">\n\t\t\t\t\tBadge\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"warning\" tag=\"a\" type=\"outlined\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tSmall warning\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"warning\" tag=\"button\" type=\"outlined\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tNormal warning\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"warning\" tag=\"a\" type=\"outlined\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tLarge warning\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"warning\" tag=\"button\" type=\"outlined\" disabled size=\"xl\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tX-Large warning\n\t\t\t\t</gov-badge>\n\t\t\t</div>\n\t\t\t<hr />\n\n\t\t\t<h4>Badges - error (default)</h4>\n\t\t\t<div class=\"container-view\">\n\t\t\t\t<gov-badge variant=\"error\" size=\"xs\">\n\t\t\t\t\tBadge\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"error\" size=\"xs\" inverse>\n\t\t\t\t\tBadge\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"error\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\tNot clickable\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge tag=\"button\" variant=\"error\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\tNormal href\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"error\" disabled href=\"http://www.example.com/\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\tDisabled with href\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"error\" size=\"l\" href=\"http://www.example.com/\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\tClickable\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"error\" size=\"xl\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\tX-Large error\n\t\t\t\t</gov-badge>\n\t\t\t</div>\n\t\t\t<h4>Badges - error (outlined)</h4>\n\t\t\t<div class=\"container-view\">\n\t\t\t\t<gov-badge variant=\"error\" tag=\"a\" type=\"outlined\" size=\"xs\">\n\t\t\t\t\tBadge\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"error\" tag=\"a\" type=\"outlined\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tSmall error\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"error\" tag=\"button\" type=\"outlined\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tNormal error\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"error\" tag=\"a\" type=\"outlined\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tLarge error\n\t\t\t\t</gov-badge>\n\t\t\t\t<gov-badge variant=\"error\" tag=\"button\" type=\"outlined\" disabled size=\"xl\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tX-Large error\n\t\t\t\t</gov-badge>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\nif (customElements.get('badge-page') === undefined) {\n\tcustomElements.define('badge-page', BadgePage)\n}\n","class BreadcrumbsPage extends HTMLElement {\n\tconnectedCallback() {\n\t\tthis.innerHTML = `\n\t\t<h2>Breadcrumbs</h2>\n\n\t\t<gov-breadcrumbs wcag-label=\"Drobečková navigace pro stránku Czech POINT\">\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<button>\n\t\t\t\t\tDomů\n\t\t\t\t\t</button>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<gov-icon name=\"chevron-right\"></gov-icon>\n\t\t\t\t\t<a href=\"#\">Kam dál</a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<gov-icon name=\"chevron-right\"></gov-icon>\n\t\t\t\t\t<a href=\"#\">\n\t\t\t\t\tČeský eGovernment\n\t\t\t\t\t</a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<gov-icon name=\"chevron-right\"></gov-icon>\n\t\t\t\t\t<strong>Czech POINT</strong>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</gov-breadcrumbs>\n\n\t\t`\n\t}\n}\n\nif (customElements.get(\"breadcrumbs-page\") === undefined) {\n\tcustomElements.define(\"breadcrumbs-page\", BreadcrumbsPage)\n}\n","class ButtonPage extends HTMLElement {\n\tconnectedCallback() {\n\t\tthis.innerHTML = `\n\t\t\t<h1>Buttons</h1>\n\n\t\t\t<h4>Dropdown</h4>\n\n\t\t\t<gov-layout>\n\t\t\t\t<gov-layout-column>\n\t\t\t\t\t<div class=\"container-view\">\n\t\t\t\t\t\t<gov-dropdown>\n\t\t\t\t\t\t\t<gov-button variant=\"primary\" size=\"s\">\n\t\t\t\t\t\t\t\tVíce\n\t\t\t\t\t\t\t</gov-button>\n\t\t\t\t\t\t\t<ul slot=\"list\">\n\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t<gov-button variant=\"primary\" type=\"base\" size=\"s\">\n\t\t\t\t\t\t\t\t\t\tA další nabídka\n\t\t\t\t\t\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t\t\t\t</gov-button>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t<gov-button variant=\"primary\" type=\"base\" size=\"s\">\n\t\t\t\t\t\t\t\t\t\tA další dlouhá nabídka\n\t\t\t\t\t\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t\t\t\t</gov-button>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t<gov-button variant=\"primary\" type=\"base\" size=\"s\">\n\t\t\t\t\t\t\t\t\t\tA další\n\t\t\t\t\t\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t\t\t\t</gov-button>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t</gov-dropdown>\n\t\t\t\t\t</div>\n\t\t\t\t</gov-layout-column>\n\t\t\t\t<gov-layout-column>\n\t\t\t\t\t<div class=\"container-view\">\n\t\t\t\t\t\t<gov-dropdown position=\"right\">\n\t\t\t\t\t\t\t<gov-button variant=\"primary\" size=\"s\">\n\t\t\t\t\t\t\t\tVíce\n\t\t\t\t\t\t\t</gov-button>\n\t\t\t\t\t\t\t<ul slot=\"list\">\n\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t<gov-button variant=\"secondary\" type=\"base\" size=\"s\">\n\t\t\t\t\t\t\t\t\t\tA další nabídka\n\t\t\t\t\t\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t\t\t\t</gov-button>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t<gov-button variant=\"secondary\" type=\"base\" size=\"s\">\n\t\t\t\t\t\t\t\t\t\tA další dlouhá nabídka\n\t\t\t\t\t\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t\t\t\t</gov-button>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t<gov-button variant=\"secondary\" type=\"base\" size=\"s\">\n\t\t\t\t\t\t\t\t\t\tA další\n\t\t\t\t\t\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t\t\t\t</gov-button>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t</gov-dropdown>\n\t\t\t\t\t</div>\n\t\t\t\t</gov-layout-column>\n\t\t\t</gov-layout>\n\n\t\t\t<h4>Buttons - primary (default)</h4>\n\n\t\t\t<div class=\"container-view\">\n\t\t\t\t<gov-button variant=\"primary\" size=\"s\" href=\"http://localhost:3333/button\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tSmall Primary\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"primary\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tNormal Primary\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"primary\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tLarge Primary\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"primary\" size=\"xl\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tX-Large Primary\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<br><br>\n\t\t\t\t<gov-button variant=\"primary\" size=\"s\" href=\"http://localhost:3333/button\" loading=\"false\">\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"primary\" size=\"s\" href=\"http://localhost:3333/button\" loading=\"1\" disabled>\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"primary\" href=\"http://localhost:3333/button\" loading=\"0\">\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"primary\" href=\"http://localhost:3333/button\" loading=\"1\" disabled>\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"primary\" size=\"l\" loading=\"true\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"primary\" size=\"l\" loading=\"true\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"primary\" size=\"xl\" loading=\"false\">\n\t\t\t\t\tOdeslat\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"primary\" size=\"xl\" loading=\"true\" disabled>\n\t\t\t\t\tOdeslat\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<br>\n\t\t\t\t<gov-button variant=\"primary\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"primary\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"primary\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"primary\" size=\"xl\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"primary\" loading=\"false\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"primary\" loading=\"true\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t</div>\n\t\t\t<h4>Buttons - primary (expanded)</h4>\n\t\t\t<div class=\"container-view\">\n\t\t\t\t<gov-button variant=\"primary\" expanded=\"true\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tExpanded\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t</div>\n\t\t\t<h4>Buttons - primary (inversed)</h4>\n\t\t\t<div class=\"container-view gov-bg--primary-600\">\n\t\t\t\t<gov-button inverse variant=\"primary\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"primary\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"primary\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"primary\" size=\"xl\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"primary\" loading=\"false\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"primary\" loading=\"true\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t</div>\n\t\t\t<hr />\n\n\t\t\t<h4>Buttons - primary (outlined)</h4>\n\t\t\t<div class=\"container-view\">\n\t\t\t\t<gov-button variant=\"primary\" type=\"outlined\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tSmall Primary\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"primary\" type=\"outlined\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tNormal Primary\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"primary\" type=\"outlined\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tLarge Primary\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"primary\" type=\"outlined\" disabled size=\"xl\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tX-Large Primary\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<br>\n\t\t\t\t<gov-button variant=\"primary\" type=\"outlined\" href=\"http://localhost:3333/button\" loading=\"false\">\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"primary\" type=\"outlined\" href=\"http://localhost:3333/button\" loading=\"true\" disabled>\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t</div>\n\t\t\t<hr />\n\n\t\t\t<h4>Buttons - primary (outlined inversed)</h4>\n\t\t\t<div class=\"container-view gov-bg--primary-600\">\n\t\t\t\t<gov-button inverse variant=\"primary\" type=\"outlined\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"primary\" type=\"outlined\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"primary\" type=\"outlined\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"primary\" type=\"outlined\" size=\"xl\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"primary\" type=\"outlined\" loading=\"false\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"primary\" type=\"outlined\" loading=\"true\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t</div>\n\n\t\t\t<h4>Buttons - primary (base)</h4>\n\t\t\t<div class=\"container-view\">\n\t\t\t\t<gov-button variant=\"primary\" type=\"base\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tSmall Primary\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"primary\" type=\"base\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tNormal Primary\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"primary\" type=\"base\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tLarge Primary\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"primary\" type=\"base\" disabled size=\"xl\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tX-Large Primary\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<br>\n\t\t\t\t<gov-button variant=\"primary\" type=\"base\" href=\"http://localhost:3333/button\" loading=\"false\">\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"primary\" type=\"base\" href=\"http://localhost:3333/button\" loading=\"true\" disabled>\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t</div>\n\t\t\t<hr />\n\n\t\t\t<h4>Buttons - primary (base inversed)</h4>\n\t\t\t<div class=\"container-view gov-bg--primary-600\">\n\t\t\t\t<gov-button inverse variant=\"primary\" type=\"base\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"primary\" type=\"base\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"primary\" type=\"base\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"primary\" type=\"base\" size=\"xl\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"primary\" type=\"base\" loading=\"false\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"primary\" type=\"base\" loading=\"true\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t</div>\n\t\t\t<hr />\n\n\t\t\t<h4>Buttons - primary (link)</h4>\n\t\t\t<div class=\"container-view\">\n\t\t\t\t<gov-button variant=\"primary\" type=\"link\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tSmall Primary\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"primary\" type=\"link\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tNormal Primary\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"primary\" type=\"link\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tLarge Primary\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"primary\" type=\"link\" disabled size=\"xl\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tX-Large Primary\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<br>\n\t\t\t\t<gov-button variant=\"primary\" type=\"link\" href=\"http://localhost:3333/button\" loading=\"false\">\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"primary\" type=\"link\" href=\"http://localhost:3333/button\" loading=\"true\" disabled>\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t</div>\n\t\t\t<hr />\n\n\t\t\t<h4>Buttons - primary (link inversed)</h4>\n\t\t\t<div class=\"container-view gov-bg--primary-600\">\n\t\t\t\t<gov-button inverse variant=\"primary\" type=\"link\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tSmall Primary\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"primary\" type=\"link\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tNormal Primary\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"primary\" type=\"link\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tLarge Primary\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"primary\" type=\"link\" disabled size=\"xl\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tX-Large Primary\n\t\t\t\t\t<gov-icon inverse slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<br>\n\t\t\t\t<gov-button inverse variant=\"primary\" type=\"link\" href=\"http://localhost:3333/button\" loading=\"false\">\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"primary\" type=\"link\" href=\"http://localhost:3333/button\" loading=\"true\" disabled>\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t</div>\n\t\t\t<hr />\n\n\t\t\t<h4>Buttons - secondary (default)</h4>\n\t\t\t<div class=\"container-view\">\n\t\t\t\t<gov-button variant=\"secondary\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tSmall secondary\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"secondary\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tNormal secondary\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"secondary\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tLarge secondary\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"secondary\" size=\"xl\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tX-Large secondary\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<br>\n\t\t\t\t<gov-button variant=\"secondary\" href=\"http://localhost:3333/button\" loading=\"false\">\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"secondary\" href=\"http://localhost:3333/button\" loading=\"true\" disabled>\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t\t<br>\n\t\t\t\t<gov-button variant=\"secondary\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"secondary\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"secondary\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"secondary\" size=\"xl\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"secondary\" loading=\"false\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"secondary\" loading=\"true\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t</div>\n\t\t\t<hr />\n\n\t\t\t<h4>Buttons - secondary (inversed)</h4>\n\t\t\t<div class=\"container-view gov-bg--secondary-800\">\n\t\t\t\t<gov-button inverse variant=\"secondary\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"secondary\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"secondary\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"secondary\" size=\"xl\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"secondary\" loading=\"false\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"secondary\" loading=\"true\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t</div>\n\t\t\t<hr />\n\n\t\t\t<h4>Buttons - secondary (outlined)</h4>\n\t\t\t<div class=\"container-view\">\n\t\t\t\t<gov-button variant=\"secondary\" type=\"outlined\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tSmall secondary\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"secondary\" type=\"outlined\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tNormal secondary\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"secondary\" type=\"outlined\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tLarge secondary\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"secondary\" type=\"outlined\" disabled size=\"xl\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tX-Large secondary\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<br>\n\t\t\t\t<gov-button variant=\"secondary\" type=\"outlined\" href=\"http://localhost:3333/button\" loading=\"false\">\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"secondary\" type=\"outlined\" href=\"http://localhost:3333/button\" loading=\"true\" disabled>\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t</div>\n\t\t\t<hr />\n\n\t\t\t<h4>Buttons - secondary (outlined inversed)</h4>\n\t\t\t<div class=\"container-view gov-bg--secondary-800\">\n\t\t\t\t<gov-button inverse variant=\"secondary\" type=\"outlined\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"secondary\" type=\"outlined\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"secondary\" type=\"outlined\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"secondary\" type=\"outlined\" size=\"xl\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"secondary\" type=\"outlined\" loading=\"false\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"secondary\" type=\"outlined\" loading=\"true\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t</div>\n\t\t\t<hr />\n\n\t\t\t<h4>Buttons - secondary (base)</h4>\n\t\t\t<div class=\"container-view\">\n\t\t\t\t<gov-button variant=\"secondary\" type=\"base\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tSmall secondary\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"secondary\" type=\"base\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tNormal secondary\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"secondary\" type=\"base\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tLarge secondary\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"secondary\" type=\"base\" disabled size=\"xl\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tX-Large secondary\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<br>\n\t\t\t\t<gov-button variant=\"secondary\" type=\"base\" href=\"http://localhost:3333/button\" loading=\"false\">\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"secondary\" type=\"base\" href=\"http://localhost:3333/button\" loading=\"true\" disabled>\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t</div>\n\t\t\t<hr />\n\n\t\t\t<h4>Buttons - secondary (base inversed)</h4>\n\t\t\t<div class=\"container-view gov-bg--secondary-800\">\n\t\t\t\t<gov-button inverse variant=\"secondary\" type=\"base\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"secondary\" type=\"base\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"secondary\" type=\"base\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"secondary\" type=\"base\" size=\"xl\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"secondary\" type=\"base\" loading=\"false\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"secondary\" type=\"base\" loading=\"true\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t</div>\n\t\t\t<hr />\n\n\t\t\t<h4>Buttons - secondary (link)</h4>\n\t\t\t<div class=\"container-view\">\n\t\t\t\t<gov-button variant=\"secondary\" type=\"link\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tSmall Secondary\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"secondary\" type=\"link\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tNormal Secondary\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"secondary\" type=\"link\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tLarge Secondary\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"secondary\" type=\"link\" disabled size=\"xl\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tX-Large Secondary\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<br>\n\t\t\t\t<gov-button variant=\"secondary\" type=\"link\" href=\"http://localhost:3333/button\" loading=\"false\">\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"secondary\" type=\"link\" href=\"http://localhost:3333/button\" loading=\"true\" disabled>\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t</div>\n\t\t\t<hr />\n\n\t\t\t<h4>Buttons - secondary (link inversed)</h4>\n\t\t\t<div class=\"container-view gov-bg--secondary-800\">\n\t\t\t\t<gov-button inverse variant=\"secondary\" type=\"link\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tSmall Secondary\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"secondary\" type=\"link\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tNormal Secondary\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"secondary\" type=\"link\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tLarge Secondary\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"secondary\" type=\"link\" disabled size=\"xl\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tX-Large Secondary\n\t\t\t\t\t<gov-icon inverse slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<br>\n\t\t\t\t<gov-button inverse variant=\"secondary\" type=\"link\" href=\"http://localhost:3333/button\" loading=\"false\">\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"secondary\" type=\"link\" href=\"http://localhost:3333/button\" loading=\"true\" disabled>\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t</div>\n\t\t\t<hr />\n\n\t\t\t<h4>Buttons - warning (default)</h4>\n\t\t\t<div class=\"container-view\">\n\t\t\t\t<gov-button variant=\"warning\" size=\"s\" class=\"u-mr--medium u-mr-mobile--2xl u-mr-tablet--unset u-mr-portable--medium\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tSmall warning\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"warning\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tNormal warning\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"warning\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tLarge warning\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"warning\" size=\"xl\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tX-Large warning\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<br>\n\t\t\t\t<gov-button variant=\"warning\" href=\"http://localhost:3333/button\" loading=\"false\">\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"warning\" href=\"http://localhost:3333/button\" loading=\"true\" disabled>\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t\t<br>\n\t\t\t\t<gov-button variant=\"warning\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"warning\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"warning\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"warning\" size=\"xl\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"warning\" loading=\"false\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"warning\" loading=\"true\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t</div>\n\t\t\t<hr />\n\n\t\t\t<h4>Buttons - warning (inversed)</h4>\n\t\t\t<div class=\"container-view gov-bg--warning-500\">\n\t\t\t\t<gov-button inverse variant=\"warning\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"warning\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"warning\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"warning\" size=\"xl\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"warning\" loading=\"false\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"warning\" loading=\"true\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t</div>\n\t\t\t<hr />\n\n\t\t\t<h4>Buttons - warning (outlined)</h4>\n\t\t\t<div class=\"container-view\">\n\t\t\t\t<gov-button variant=\"warning\" type=\"outlined\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tSmall warning\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"warning\" type=\"outlined\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tNormal warning\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"warning\" type=\"outlined\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tLarge warning\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"warning\" type=\"outlined\" disabled size=\"xl\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tX-Large warning\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<br>\n\t\t\t\t<gov-button variant=\"warning\" type=\"outlined\" href=\"http://localhost:3333/button\" loading=\"false\">\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"warning\" type=\"outlined\" href=\"http://localhost:3333/button\" loading=\"true\" disabled>\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t</div>\n\t\t\t<hr />\n\n\t\t\t<h4>Buttons - warning (outlined inversed)</h4>\n\t\t\t<div class=\"container-view gov-bg--warning-500\">\n\t\t\t\t<gov-button inverse variant=\"warning\" type=\"outlined\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"warning\" type=\"outlined\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"warning\" type=\"outlined\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"warning\" type=\"outlined\" size=\"xl\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"warning\" type=\"outlined\" loading=\"false\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"warning\" type=\"outlined\" loading=\"true\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t</div>\n\t\t\t<hr />\n\n\t\t\t<h4>Buttons - warning (base)</h4>\n\t\t\t<div class=\"container-view\">\n\t\t\t\t<gov-button variant=\"warning\" type=\"base\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tSmall warning\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"warning\" type=\"base\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tNormal warning\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"warning\" type=\"base\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tLarge warning\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"warning\" type=\"base\" disabled size=\"xl\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tX-Large warning\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<br>\n\t\t\t\t<gov-button variant=\"warning\" type=\"base\" href=\"http://localhost:3333/button\" loading=\"false\">\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"warning\" type=\"base\" href=\"http://localhost:3333/button\" loading=\"true\" disabled>\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t</div>\n\t\t\t<hr />\n\n\t\t\t<h4>Buttons - warning (base inversed)</h4>\n\t\t\t<div class=\"container-view gov-bg--warning-500\">\n\t\t\t\t<gov-button inverse variant=\"warning\" type=\"base\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"warning\" type=\"base\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"warning\" type=\"base\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"warning\" type=\"base\" size=\"xl\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"warning\" type=\"base\" loading=\"false\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"warning\" type=\"base\" loading=\"true\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t</div>\n\t\t\t<hr />\n\n\t\t\t<h4>Buttons - warning (link)</h4>\n\t\t\t<div class=\"container-view\">\n\t\t\t\t<gov-button variant=\"warning\" type=\"link\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tSmall warning\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"warning\" type=\"link\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tNormal warning\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"warning\" type=\"link\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tLarge warning\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"warning\" type=\"link\" disabled size=\"xl\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tX-Large warning\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<br>\n\t\t\t\t<gov-button variant=\"warning\" type=\"link\" href=\"http://localhost:3333/button\" loading=\"false\">\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"warning\" type=\"link\" href=\"http://localhost:3333/button\" loading=\"true\" disabled>\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t</div>\n\t\t\t<hr />\n\n\t\t\t<h4>Buttons - warning (link inversed)</h4>\n\t\t\t<div class=\"container-view gov-bg--warning-500\">\n\t\t\t\t<gov-button inverse variant=\"warning\" type=\"link\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tSmall warning\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"warning\" type=\"link\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tNormal warning\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"warning\" type=\"link\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tLarge warning\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"warning\" type=\"link\" disabled size=\"xl\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tX-Large warning\n\t\t\t\t\t<gov-icon inverse slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<br>\n\t\t\t\t<gov-button inverse variant=\"warning\" type=\"link\" href=\"http://localhost:3333/button\" loading=\"false\">\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"warning\" type=\"link\" href=\"http://localhost:3333/button\" loading=\"true\" disabled>\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t</div>\n\t\t\t<hr />\n\n\t\t\t<h4>Buttons - success (default)</h4>\n\t\t\t<div class=\"container-view\">\n\t\t\t\t<gov-button variant=\"success\" size=\"s\" class=\"u-mr--medium u-mr-mobile--2xl u-mr-tablet--unset u-mr-portable--medium\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tSmall success\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"success\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tNormal success\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"success\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tLarge success\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"success\" size=\"xl\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tX-Large success\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<br>\n\t\t\t\t<gov-button variant=\"success\" href=\"http://localhost:3333/button\" loading=\"false\">\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"success\" href=\"http://localhost:3333/button\" loading=\"true\" disabled>\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t\t<br>\n\t\t\t\t<gov-button variant=\"success\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"success\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"success\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"success\" size=\"xl\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"success\" loading=\"false\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"success\" loading=\"true\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t</div>\n\t\t\t<hr />\n\n\t\t\t<h4>Buttons - success (inversed)</h4>\n\t\t\t<div class=\"container-view gov-bg--success-500\">\n\t\t\t\t<gov-button inverse variant=\"success\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"success\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"success\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"success\" size=\"xl\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"success\" loading=\"false\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"success\" loading=\"true\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t</div>\n\t\t\t<hr />\n\n\t\t\t<h4>Buttons - success (outlined)</h4>\n\t\t\t<div class=\"container-view\">\n\t\t\t\t<gov-button variant=\"success\" type=\"outlined\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tSmall success\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"success\" type=\"outlined\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tNormal success\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"success\" type=\"outlined\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tLarge success\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"success\" type=\"outlined\" disabled size=\"xl\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tX-Large success\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<br>\n\t\t\t\t<gov-button variant=\"success\" type=\"outlined\" href=\"http://localhost:3333/button\" loading=\"false\">\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"success\" type=\"outlined\" href=\"http://localhost:3333/button\" loading=\"true\" disabled>\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t</div>\n\t\t\t<hr />\n\n\t\t\t<h4>Buttons - success (outlined inversed)</h4>\n\t\t\t<div class=\"container-view gov-bg--success-500\">\n\t\t\t\t<gov-button inverse variant=\"success\" type=\"outlined\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"success\" type=\"outlined\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"success\" type=\"outlined\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"success\" type=\"outlined\" size=\"xl\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"success\" type=\"outlined\" loading=\"false\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"success\" type=\"outlined\" loading=\"true\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t</div>\n\t\t\t<hr />\n\n\t\t\t<h4>Buttons - success (base)</h4>\n\t\t\t<div class=\"container-view\">\n\t\t\t\t<gov-button variant=\"success\" type=\"base\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tSmall success\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"success\" type=\"base\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tNormal success\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"success\" type=\"base\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tLarge success\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"success\" type=\"base\" disabled size=\"xl\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tX-Large success\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<br>\n\t\t\t\t<gov-button variant=\"success\" type=\"base\" href=\"http://localhost:3333/button\" loading=\"false\">\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"success\" type=\"base\" href=\"http://localhost:3333/button\" loading=\"true\" disabled>\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t</div>\n\t\t\t<hr />\n\n\t\t\t<h4>Buttons - success (base inversed)</h4>\n\t\t\t<div class=\"container-view gov-bg--success-500\">\n\t\t\t\t<gov-button inverse variant=\"success\" type=\"base\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"success\" type=\"base\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"success\" type=\"base\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"success\" type=\"base\" size=\"xl\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"success\" type=\"base\" loading=\"false\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"success\" type=\"base\" loading=\"true\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t</div>\n\t\t\t<hr />\n\n\t\t\t<h4>Buttons - success (link)</h4>\n\t\t\t<div class=\"container-view\">\n\t\t\t\t<gov-button variant=\"success\" type=\"link\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tSmall success\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"success\" type=\"link\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tNormal success\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"success\" type=\"link\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tLarge success\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"success\" type=\"link\" disabled size=\"xl\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tX-Large success\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<br>\n\t\t\t\t<gov-button variant=\"success\" type=\"link\" href=\"http://localhost:3333/button\" loading=\"false\">\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"success\" type=\"link\" href=\"http://localhost:3333/button\" loading=\"true\" disabled>\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t</div>\n\t\t\t<hr />\n\n\t\t\t<h4>Buttons - success (link inversed)</h4>\n\t\t\t<div class=\"container-view gov-bg--success-500\">\n\t\t\t\t<gov-button inverse variant=\"success\" type=\"link\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tSmall success\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"success\" type=\"link\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tNormal success\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"success\" type=\"link\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tLarge success\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"success\" type=\"link\" disabled size=\"xl\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tX-Large success\n\t\t\t\t\t<gov-icon inverse slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<br>\n\t\t\t\t<gov-button inverse variant=\"success\" type=\"link\" href=\"http://localhost:3333/button\" loading=\"false\">\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"success\" type=\"link\" href=\"http://localhost:3333/button\" loading=\"true\" disabled>\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t</div>\n\t\t\t<hr />\n\n\t\t\t<h4>Buttons - error (default)</h4>\n\t\t\t<div class=\"container-view\">\n\t\t\t\t<gov-button variant=\"error\" size=\"s\" class=\"u-mr--medium u-mr-mobile--2xl u-mr-tablet--unset u-mr-portable--medium\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tSmall error\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"error\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tNormal error\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"error\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tLarge error\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"error\" size=\"xl\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tX-Large error\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<br>\n\t\t\t\t<gov-button variant=\"error\" href=\"http://localhost:3333/button\" loading=\"false\">\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"error\" href=\"http://localhost:3333/button\" loading=\"true\" disabled>\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t\t<br>\n\t\t\t\t<gov-button variant=\"error\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"error\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"error\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"error\" size=\"xl\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"error\" loading=\"false\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"error\" loading=\"true\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t</div>\n\t\t\t<hr />\n\n\t\t\t<h4>Buttons - error (inversed)</h4>\n\t\t\t<div class=\"container-view gov-bg--error-400\">\n\t\t\t\t<gov-button inverse variant=\"error\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"error\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"error\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"error\" size=\"xl\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"error\" loading=\"false\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"error\" loading=\"true\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t</div>\n\t\t\t<hr />\n\n\t\t\t<h4>Buttons - error (outlined)</h4>\n\t\t\t<div class=\"container-view\">\n\t\t\t\t<gov-button variant=\"error\" type=\"outlined\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tSmall error\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"error\" type=\"outlined\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tNormal error\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"error\" type=\"outlined\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tLarge error\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"error\" type=\"outlined\" disabled size=\"xl\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tX-Large error\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<br>\n\t\t\t\t<gov-button variant=\"error\" type=\"outlined\" href=\"http://localhost:3333/button\" loading=\"false\">\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"error\" type=\"outlined\" href=\"http://localhost:3333/button\" loading=\"true\" disabled>\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t</div>\n\t\t\t<hr />\n\n\t\t\t<h4>Buttons - error (outlined inversed)</h4>\n\t\t\t<div class=\"container-view gov-bg--error-400\">\n\t\t\t\t<gov-button inverse variant=\"error\" type=\"outlined\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"error\" type=\"outlined\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"error\" type=\"outlined\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"error\" type=\"outlined\" size=\"xl\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"error\" type=\"outlined\" loading=\"false\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"error\" type=\"outlined\" loading=\"true\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t</div>\n\t\t\t<hr />\n\n\t\t\t<h4>Buttons - error (base)</h4>\n\t\t\t<div class=\"container-view\">\n\t\t\t\t<gov-button variant=\"error\" type=\"base\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tSmall error\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"error\" type=\"base\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tNormal error\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"error\" type=\"base\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tLarge error\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"error\" type=\"base\" disabled size=\"xl\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tX-Large error\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<br>\n\t\t\t\t<gov-button variant=\"error\" type=\"base\" href=\"http://localhost:3333/button\" loading=\"false\">\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"error\" type=\"base\" href=\"http://localhost:3333/button\" loading=\"true\" disabled>\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t</div>\n\t\t\t<hr />\n\n\t\t\t<h4>Buttons - error (base inversed)</h4>\n\t\t\t<div class=\"container-view gov-bg--error-400\">\n\t\t\t\t<gov-button inverse variant=\"error\" type=\"base\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"error\" type=\"base\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"error\" type=\"base\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"error\" type=\"base\" size=\"xl\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"error\" type=\"base\" loading=\"false\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"error\" type=\"base\" loading=\"true\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t</div>\n\t\t\t<hr />\n\n\t\t\t<h4>Buttons - error (link)</h4>\n\t\t\t<div class=\"container-view\">\n\t\t\t\t<gov-button variant=\"error\" type=\"link\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tSmall error\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"error\" type=\"link\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tNormal error\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"error\" type=\"link\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tLarge error\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"error\" type=\"link\" disabled size=\"xl\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tX-Large error\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<br>\n\t\t\t\t<gov-button variant=\"error\" type=\"link\" href=\"http://localhost:3333/button\" loading=\"false\">\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"error\" type=\"link\" href=\"http://localhost:3333/button\" loading=\"true\" disabled>\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t</div>\n\t\t\t<hr />\n\n\t\t\t<h4>Buttons - error (link inversed)</h4>\n\t\t\t<div class=\"container-view gov-bg--error-400\">\n\t\t\t\t<gov-button inverse variant=\"error\" type=\"link\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tSmall error\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"error\" type=\"link\" disabled>\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tNormal error\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"error\" type=\"link\" size=\"l\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tLarge error\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"error\" type=\"link\" disabled size=\"xl\">\n\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\tX-Large error\n\t\t\t\t\t<gov-icon inverse slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t</gov-button>\n\t\t\t\t<br>\n\t\t\t\t<gov-button inverse variant=\"error\" type=\"link\" href=\"http://localhost:3333/button\" loading=\"false\">\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button inverse variant=\"error\" type=\"link\" href=\"http://localhost:3333/button\" loading=\"true\" disabled>\n\t\t\t\t\tOdeslat\n\t\t\t\t</gov-button>\n\t\t\t</div>\n\t\t\t<hr />\n\t\t`\n\t}\n}\n\nif (customElements.get('button-page') === undefined) {\n\tcustomElements.define('button-page', ButtonPage)\n}\n","class CardPage extends HTMLElement {\n\tconnectedCallback() {\n\t\tthis.innerHTML = `\n\n\t\t<div style=\"max-width: 650px\">\n\t\t\t<h2>Card</h2>\n\n\t\t\t<gov-card label=\"Fusce tellus odio, dapibus id fermentum quis\" expanded collapsible class=\"gov-bg--success-100\">\n\t\t\t\t<p class=\"gov-color--secondary-700\">\n\t\t\t\t\tLorem ipsum dolor sit amet, consectetur adipiscing elit. Ipsum vitae etiam dui eget lectus vulputate ornare.\n\t\t\t\t</p>\n\t\t\t</gov-card>\n\n\t\t\t<br>\n\n\t\t\t<div style=\"height: 400px\">\n\t\t\t\t<gov-card label=\"Fusce tellus odio, dapibus id fermentum quis\" expanded collapsible>\n\t\t\t\t\t<p class=\"gov-color--secondary-700\">\n\t\t\t\t\t\tLorem ipsum dolor sit amet, consectetur adipiscing elit. Ipsum vitae etiam dui eget lectus vulputate ornare.\n\t\t\t\t\t</p>\n\t\t\t\t\t<gov-button variant=\"primary\" size=\"s\" href=\"http://localhost:3333/button\">\n\t\t\t\t\t\tButton\n\t\t\t\t\t</gov-button>\n\t\t\t\t\t<p slot=\"footer\" class=\"gov-color--primary-700\">\n\t\t\t\t\t\tLorem ipsum dolor sit amet, consectetur adipiscing elit. Ipsum vitae etiam dui eget lectus vulputate ornare.\n\t\t\t\t\t</p>\n\t\t\t\t</gov-card>\n\t\t\t</div>\n\t\t\t<br>\n\t\t\t<gov-card label=\"Fusce tellus odio, dapibus id fermentum quis\">\n\t\t\t\t<p class=\"gov-color--secondary-700\">\n\t\t\t\t\tLorem ipsum dolor sit amet, consectetur adipiscing elit. Ipsum vitae etiam dui eget lectus vulputate ornare.\n\t\t\t\t</p>\n\t\t\t\t<gov-button variant=\"primary\" size=\"s\" href=\"http://localhost:3333/button\">\n\t\t\t\t\tButton\n\t\t\t\t</gov-button>\n\t\t\t\t<p slot=\"footer\" color=\"gov-color--primary-700\">\n\t\t\t\t\tLorem ipsum dolor sit amet, consectetur adipiscing elit. Ipsum vitae etiam dui eget lectus vulputate ornare.\n\t\t\t\t</p>\n\t\t\t</gov-card>\n\t\t\t<h3>Image slot</h3>\n\t\t\t<gov-card expanded>\n\t\t\t\t<img slot=\"img\" src=\"https://picsum.photos/536/354\" src=\"\" alt=\"Obárzek\" width=\"536\" height=\"354\">\n\t\t\t\t<p class=\"gov-text--l gov-color--secondary-800\">\n\t\t\t\t\t<b>\n\t\t\t\t\t\tCommodo consequat.\n\t\t\t\t\t</b>\n\t\t\t\t</p>\n\t\t\t\t<p class=\"gov-color--secondary-700\">\n\t\t\t\t\tCommodo consequat. Nullam rhoncus aliquam metus.\n\t\t\t\t</p>\n\t\t\t\t<p class=\"gov-color--secondary-700\">\n\t\t\t\t\t<a href=\"#\">Chci vědět více</a>\n\t\t\t\t</p>\n\t\t\t</gov-card>\n\t\t\t<h3>Shadow variant</h3>\n\t\t\t<gov-card expanded class=\"gov-box-shadow--m\">\n\t\t\t\t<img slot=\"img\" src=\"https://picsum.photos/536/354\" src=\"\" alt=\"Obárzek\" width=\"536\" height=\"354\">\n\t\t\t\t<p class=\"gov-text--l gov-color--secondary-800\">\n\t\t\t\t\t<b>\n\t\t\t\t\t\tCommodo consequat.\n\t\t\t\t\t</b>\n\t\t\t\t</p>\n\t\t\t\t<p class=\"gov-color--secondary-700\">\n\t\t\t\t\tCommodo consequat. Nullam rhoncus aliquam metus.\n\t\t\t\t</p>\n\t\t\t\t<gov-button variant=\"primary\" size=\"s\" href=\"http://localhost:3333/button\">\n\t\t\t\t\tJak založit\n\t\t\t\t</gov-button>\n\t\t\t\t<gov-button variant=\"primary\" type=\"outlined\" size=\"s\" href=\"http://localhost:3333/button\">\n\t\t\t\t\tZjistit více\n\t\t\t\t</gov-button>\n\t\t\t</gov-card>\n\t\t\t<h3>With icon</h3>\n\t\t\t<gov-card>\n\t\t\t\t<gov-icon name=\"car\" type=\"complex\"></gov-icon>\n\t\t\t\t<p class=\"gov-color--secondary-700\">\n\t\t\t\t\tLorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras elementum. Fusce tellus odio, dapibus id fermentum quis, suscipit id erat. Fusce tellus.\n\t\t\t\t</p>\n\t\t\t\t<gov-button variant=\"primary\" type=\"outlined\" size=\"s\" href=\"http://localhost:3333/button\">\n\t\t\t\t\tLearn more\n\t\t\t\t</gov-button>\n\t\t\t</gov-card>\n\t\t\t<h3>Horizontal orientation</h3>\n\t\t\t<gov-card promotion>\n\t\t\t\t<gov-icon slot=\"icon\" name=\"car\" type=\"complex\"></gov-icon>\n\t\t\t\t<p class=\"gov-color--secondary-700\">\n\t\t\t\t\tLorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras elementum. Fusce tellus odio, dapibus id fermentum quis, suscipit id erat. Fusce tellus.\n\t\t\t\t</p>\n\t\t\t\t<gov-button slot=\"btn\" variant=\"primary\" type=\"outlined\" size=\"s\" href=\"http://localhost:3333/button\">\n\t\t\t\t\tLearn more\n\t\t\t\t</gov-button>\n\t\t\t</gov-card>\n\t\t</div>\n\n\t\t`\n\t}\n}\n\nif (customElements.get('card-page') === undefined) {\n\tcustomElements.define('card-page', CardPage)\n}\n","class ContainerPage extends HTMLElement {\n\tconnectedCallback() {\n\t\tthis.innerHTML = `\n\t\t<h2>Container</h2>\n\n\t\t<gov-container>\n\t\t\t<p>Ut sollicitudin risus sit amet placerat fermentum. Sed libero mauris, maximus cursus magna tincidunt, efficitur congue enim. Suspendisse potenti. Sed ac eleifend leo. Nullam a sapien in diam semper faucibus sit amet vel nisi. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse eu faucibus mi. Morbi leo ipsum, tempus vel vulputate non, varius et lectus. Donec justo lacus, congue hendrerit felis sit amet, commodo lobortis neque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Nulla vulputate urna sapien. Proin imperdiet rhoncus dictum. Pellentesque tempor ultrices tortor, ac mollis lorem mollis non. Phasellus sit amet maximus ex, id scelerisque nulla. Etiam eu orci a nulla semper maximus et at quam.</p>\n\t\t</gov-container>\n\t\t`\n\t}\n}\n\nif (customElements.get('container-page') === undefined) {\n\tcustomElements.define('container-page', ContainerPage)\n}\n","class ControlGroupPage extends HTMLElement {\n\tconnectedCallback() {\n\t\tthis.innerHTML = `\n\t\t<h2>Control Group</h2>\n\n\t\t<gov-control-group>\n\t\t\t<gov-form-input type=\"number\" id=\"kapr\" name=\"test-me\" placeholder=\"Placeholder\" size=\"s\"></gov-form-input>\n\t\t\t<gov-button variant=\"primary\" type=\"outlined\" size=\"s\">\n\t\t\t\t<gov-icon slot=\"left-icon\" name=\"chevron-up\"></gov-icon>\n\t\t\t</gov-button>\n\t\t\t<gov-button variant=\"primary\" type=\"outlined\" size=\"s\">\n\t\t\t\t<gov-icon slot=\"left-icon\" name=\"chevron-down\"></gov-icon>\n\t\t\t</gov-button>\n\t\t\t<gov-button variant=\"primary\" type=\"outlined\" size=\"s\">\n\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t</gov-button>\n\t\t\t<gov-dropdown position=\"right\">\n\t\t\t\t<gov-button variant=\"primary\" size=\"s\">\n\t\t\t\t\tVíce\n\t\t\t\t</gov-button>\n\t\t\t\t<ul slot=\"list\">\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<gov-button variant=\"primary\" type=\"base\" size=\"s\">\n\t\t\t\t\t\t\tA další nabídka\n\t\t\t\t\t\t</gov-button>\n\t\t\t\t\t</li>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<gov-button variant=\"primary\" type=\"base\" size=\"s\">\n\t\t\t\t\t\t\tA další nabídka\n\t\t\t\t\t\t</gov-button>\n\t\t\t\t\t</li>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<gov-button variant=\"primary\" type=\"base\" size=\"s\">\n\t\t\t\t\t\t\tA další nabídka\n\t\t\t\t\t\t</gov-button>\n\t\t\t\t\t</li>\n\t\t\t\t</ul>\n\t\t\t</gov-dropdown>\n\t\t</gov-control-group>\n\t\t<br />\n\t\t<gov-control-group variant=\"primary\">\n\t\t\t<gov-form-select name=\"test-me\" size=\"m\">\n\t\t\t\t<option value=\"\" selected>Placeholder</option>\n\t\t\t\t<option value=\"b\">Value B</option>\n\t\t\t\t<option value=\"c\">Value C</option>\n\t\t\t\t<option value=\"d\">Value D</option>\n\t\t\t</gov-form-select>\n\t\t\t<gov-button variant=\"primary\" type=\"solid\" size=\"m\">\n\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t</gov-button>\n\t\t</gov-control-group>\n\t\t<br />\n\t\t<gov-control-group>\n\t\t\t<gov-button variant=\"primary\" type=\"outlined\" size=\"l\">\n\t\t\t\t<gov-icon slot=\"left-icon\" name=\"gear\"></gov-icon>\n\t\t\t</gov-button>\n\t\t\t<gov-form-file name=\"test-me-c\" accept=\"image/*\" max-file-size=\"1024\">\n\t\t\t\t<gov-button variant=\"primary\" type=\"outlined\" size=\"l\" tabindex=\"-1\">\n\t\t\t\t\tNahrát soubor ze zařízení\n\t\t\t\t</gov-button>\n\t\t\t</gov-form-file>\n\t\t\t<gov-button variant=\"primary\" type=\"outlined\" size=\"l\">\n\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t</gov-button>\n\t\t</gov-control-group>\n\t\t<br />\n\t\t<gov-control-group variant=\"primary\" no-border>\n\t\t<gov-button variant=\"primary\" type=\"outlined\" size=\"xl\">\n\t\t\t\t<gov-icon slot=\"left-icon\" name=\"chevron-up\"></gov-icon>\n\t\t\t</gov-button>\n\t\t\t<gov-button variant=\"primary\" type=\"outlined\" size=\"xl\">\n\t\t\t\t<gov-icon slot=\"left-icon\" name=\"chevron-down\"></gov-icon>\n\t\t\t</gov-button>\n\t\t\t<gov-form-select name=\"test-me\" size=\"xl\">\n\t\t\t\t<option value=\"\" selected>Placeholder</option>\n\t\t\t\t<option value=\"b\">Value B</option>\n\t\t\t\t<option value=\"c\">Value C</option>\n\t\t\t\t<option value=\"d\">Value D</option>\n\t\t\t</gov-form-select>\n\t\t\t<gov-button variant=\"primary\" type=\"outlined\" size=\"xl\">\n\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t</gov-button>\n\t\t</gov-control-group>\n\t\t<br><br>\n\n\t\t<gov-control-group variant=\"secondary\" no-border>\n\t\t\t<gov-form-input type=\"number\" id=\"kapr\" name=\"test-me\" placeholder=\"Placeholder\" variant=\"primary\" size=\"s\"></gov-form-input>\n\t\t\t<gov-button variant=\"primary\" type=\"outlined\" size=\"s\">\n\t\t\t\t<gov-icon slot=\"left-icon\" name=\"chevron-up\"></gov-icon>\n\t\t\t</gov-button>\n\t\t\t<gov-button variant=\"primary\" type=\"outlined\" size=\"s\">\n\t\t\t\t<gov-icon slot=\"left-icon\" name=\"chevron-down\"></gov-icon>\n\t\t\t</gov-button>\n\t\t\t<gov-button variant=\"primary\" type=\"outlined\" size=\"s\">\n\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t</gov-button>\n\t\t</gov-control-group>\n\t\t<br />\n\t\t<gov-control-group variant=\"secondary\">\n\t\t\t<gov-form-select name=\"test-me\" size=\"m\">\n\t\t\t\t<option value=\"\" selected>Placeholder</option>\n\t\t\t\t<option value=\"b\">Value B</option>\n\t\t\t\t<option value=\"c\">Value C</option>\n\t\t\t\t<option value=\"d\">Value D</option>\n\t\t\t</gov-form-select>\n\t\t\t<gov-button variant=\"primary\" type=\"outlined\" size=\"m\">\n\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t</gov-button>\n\t\t</gov-control-group>\n\t\t<br />\n\t\t<gov-control-group variant=\"secondary\">\n\t\t\t<gov-button variant=\"primary\" type=\"outlined\" size=\"l\">\n\t\t\t\t<gov-icon slot=\"left-icon\" name=\"gear\"></gov-icon>\n\t\t\t</gov-button>\n\t\t\t<gov-form-file name=\"test-me-c\" accept=\"image/*\" max-file-size=\"1024\">\n\t\t\t\t<gov-button variant=\"primary\" type=\"outlined\" size=\"l\" tabindex=\"-1\">\n\t\t\t\t\tNahrát soubor ze zařízení\n\t\t\t\t</gov-button>\n\t\t\t</gov-form-file>\n\t\t\t<gov-button variant=\"primary\" type=\"outlined\" size=\"l\">\n\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t</gov-button>\n\t\t</gov-control-group>\n\t\t<br />\n\t\t<gov-control-group variant=\"secondary\">\n\t\t<gov-button variant=\"primary\" type=\"outlined\" size=\"xl\">\n\t\t\t\t<gov-icon slot=\"left-icon\" name=\"chevron-up\"></gov-icon>\n\t\t\t</gov-button>\n\t\t\t<gov-button variant=\"primary\" type=\"outlined\" size=\"xl\">\n\t\t\t\t<gov-icon slot=\"left-icon\" name=\"chevron-down\"></gov-icon>\n\t\t\t</gov-button>\n\t\t\t<gov-form-select name=\"test-me\" variant=\"primary\" size=\"xl\">\n\t\t\t\t<option value=\"\" selected>Placeholder</option>\n\t\t\t\t<option value=\"b\">Value B</option>\n\t\t\t\t<option value=\"c\">Value C</option>\n\t\t\t\t<option value=\"d\">Value D</option>\n\t\t\t</gov-form-select>\n\t\t\t<gov-button variant=\"primary\" type=\"outlined\" size=\"xl\">\n\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t</gov-button>\n\t\t</gov-control-group>\n\t\t<br><br>\n\n\t\t<gov-control-group variant=\"secondary\">\n\t\t\t<gov-form-input type=\"number\" id=\"kapr\" name=\"test-me\" placeholder=\"Placeholder\" variant=\"secondary\" size=\"s\"></gov-form-input>\n\t\t\t<gov-button variant=\"secondary\" type=\"outlined\" size=\"s\">\n\t\t\t\t<gov-icon slot=\"left-icon\" name=\"chevron-up\"></gov-icon>\n\t\t\t</gov-button>\n\t\t\t<gov-button variant=\"secondary\" type=\"outlined\" size=\"s\">\n\t\t\t\t<gov-icon slot=\"left-icon\" name=\"chevron-down\"></gov-icon>\n\t\t\t</gov-button>\n\t\t\t<gov-button variant=\"secondary\" type=\"outlined\" size=\"s\">\n\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t</gov-button>\n\t\t</gov-control-group>\n\t\t<br />\n\t\t<gov-control-group variant=\"secondary\" no-border>\n\t\t\t<gov-form-select name=\"test-me\" size=\"m\">\n\t\t\t\t<option value=\"\" selected>Placeholder</option>\n\t\t\t\t<option value=\"b\">Value B</option>\n\t\t\t\t<option value=\"c\">Value C</option>\n\t\t\t\t<option value=\"d\">Value D</option>\n\t\t\t</gov-form-select>\n\t\t\t<gov-button variant=\"secondary\" type=\"outlined\" size=\"m\">\n\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t</gov-button>\n\t\t</gov-control-group>\n\t\t<br />\n\t\t<gov-control-group variant=\"secondary\">\n\t\t\t<gov-button variant=\"secondary\" type=\"outlined\" size=\"l\">\n\t\t\t\t<gov-icon slot=\"left-icon\" name=\"gear\"></gov-icon>\n\t\t\t</gov-button>\n\t\t\t<gov-form-file name=\"test-me-c\" accept=\"image/*\" max-file-size=\"1024\">\n\t\t\t\t<gov-button variant=\"secondary\" type=\"outlined\" size=\"l\" tabindex=\"-1\">\n\t\t\t\t\tNahrát soubor ze zařízení\n\t\t\t\t</gov-button>\n\t\t\t</gov-form-file>\n\t\t\t<gov-button variant=\"secondary\" type=\"outlined\" size=\"l\">\n\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t</gov-button>\n\t\t</gov-control-group>\n\t\t<br />\n\t\t<gov-control-group variant=\"secondary\">\n\t\t<gov-button variant=\"secondary\" type=\"outlined\" size=\"xl\">\n\t\t\t\t<gov-icon slot=\"left-icon\" name=\"chevron-up\"></gov-icon>\n\t\t\t</gov-button>\n\t\t\t<gov-button variant=\"secondary\" type=\"outlined\" size=\"xl\">\n\t\t\t\t<gov-icon slot=\"left-icon\" name=\"chevron-down\"></gov-icon>\n\t\t\t</gov-button>\n\t\t\t<gov-form-select name=\"test-me\" variant=\"secondary\" size=\"xl\">\n\t\t\t\t<option value=\"\" selected>Placeholder</option>\n\t\t\t\t<option value=\"b\">Value B</option>\n\t\t\t\t<option value=\"c\">Value C</option>\n\t\t\t\t<option value=\"d\">Value D</option>\n\t\t\t</gov-form-select>\n\t\t\t<gov-button variant=\"secondary\" type=\"outlined\" size=\"xl\">\n\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t</gov-button>\n\t\t</gov-control-group>\n\t\t`\n\t}\n}\n\nif (customElements.get('control-group-page') === undefined) {\n\tcustomElements.define('control-group-page', ControlGroupPage)\n}\n","class Cookiebar extends HTMLElement {\n\tconnectedCallback() {\n\t\tthis.innerHTML = `\n\t\t\t<gov-cookiebar>\n\t\t\t\t<h2 class=\"h4\">Můžeme si u vás uložit cookies?</h2>\n\n\t\t\t\t<p>\n\t\t\t\t\tCo že to znamená? Cookies jsou malé datové soubory, které slouží např. k tomu, aby si web pamatoval vaše nastavení a to, co vás zajímá, nebo abychom jej zlepšovali . Pro ukládání různých typů cookies od vás potřebujeme souhlas. Web bude fungovat i bez souhlasu, s ním ale o něco lépe.\n\t\t\t\t</p>\n\n\t\t\t\t<gov-button variant=\"primary\" slot=\"actions-primary\">\n\t\t\t\t\tSouhlasím se všemi\n\t\t\t\t</gov-button>\n\n\t\t\t\t<gov-button variant=\"primary\" type=\"outlined\" slot=\"actions-primary\">\n\t\t\t\t\tOdmítnout všechny\n\t\t\t\t</gov-button>\n\n\t\t\t\t<gov-button variant=\"primary\" type=\"base\" slot=\"actions-secondary\">\n\t\t\t\t\tPodrobné nastavení\n\t\t\t\t</gov-button>\n\t\t\t</gov-cookiebar>\n\t\t`\n\t}\n}\n\nif (customElements.get('cookiebar-page') === undefined) {\n\tcustomElements.define('cookiebar-page', Cookiebar)\n}\n","class EmptyPage extends HTMLElement {\n\tconnectedCallback() {\n\t\tthis.innerHTML = `\n\t\t<h2>Empty</h2>\n\n\t\t<gov-empty>\n\t\t\t<gov-icon slot=\"icon\" name=\"car\" type=\"complex\"></gov-icon>\n\t\t\t<p class=\"gov-text--2xl\">\n\t\t\t\tLorem ipsum dolor sit amet, consectetur adipiscing elit. Ipsum vitae etiam dui eget lectus vulputate ornare.\n\t\t\t</p>\n\t\t\t<p class=\"gov-text--l gov-color--secondary-700\">\n\t\t\t\tInformace o tom, že je potřeba upřesnit vyhledávání\n\t\t\t</p>\n\t\t\t<gov-spacer size=\"l\"></gov-spacer>\n\t\t\t<gov-button variant=\"primary\">\n\t\t\t\tPřejít na jinou stránku\n\t\t\t</gov-button>\n\t\t</gov-empty>\n\t\t<gov-empty align=\"right\">\n\t\t\t<gov-icon slot=\"icon\" name=\"car\" type=\"complex\"></gov-icon>\n\t\t\t<p class=\"gov-text--2xl\">\n\t\t\t\tLorem ipsum dolor sit amet, consectetur adipiscing elit. Ipsum vitae etiam dui eget lectus vulputate ornare.\n\t\t\t</p>\n\t\t\t<p class=\"gov-text--l gov-color--secondary-700\">\n\t\t\t\tInformace o tom, že je potřeba upřesnit vyhledávání\n\t\t\t</p>\n\t\t</gov-empty>\n\t\t<gov-empty align=\"center\">\n\t\t\t<gov-icon slot=\"icon\" name=\"car\" type=\"complex\"></gov-icon>\n\t\t\t<p class=\"gov-text--2xl\">\n\t\t\t\tLorem ipsum dolor sit amet, consectetur adipiscing elit. Ipsum vitae etiam dui eget lectus vulputate ornare.\n\t\t\t</p>\n\t\t\t<p class=\"gov-text--l gov-color--secondary-700\">\n\t\t\t\tInformace o tom, že je potřeba upřesnit vyhledávání\n\t\t\t</p>\n\t\t</gov-empty>\n\t\t`\n\t}\n}\n\nif (customElements.get('empty-page') === undefined) {\n\tcustomElements.define('empty-page', EmptyPage)\n}\n","class ErrorPage extends HTMLElement {\n\tconnectedCallback() {\n\t\tthis.innerHTML = `\n\t\t<h2>Error</h2>\n\t\t<gov-error-code>\n\t\t\t<gov-icon slot=\"icon\" name=\"card-400\" type=\"complex\"></gov-icon>\n\t\t\t<h2 class=\"gov-text--6xl\">Page Not Found</h2>\n\t\t\t<p class=\"gov-text--l\">Sorry, the page you are looking for does not exist.</p>\n\t\t</gov-error-code>\n\t\t`\n\t}\n}\n\nif (customElements.get('error-page') === undefined) {\n\tcustomElements.define('error-page', ErrorPage)\n}\n","class FormLabelPage extends HTMLElement {\n\tconnectedCallback() {\n\t\tthis.innerHTML = `\n\t\t\t<gov-form-label>\n\t\t\t\tForm Label\n\t\t\t</gov-form-label>\n\t`\n\t}\n}\n\nif (customElements.get('form-label-page') === undefined) {\n\tcustomElements.define('form-label-page', FormLabelPage)\n}\n","class FormMessagePage extends HTMLElement {\n\tconnectedCallback() {\n\t\tthis.innerHTML = `\n\t\t\t<gov-form-message>\n\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t<p>\n\t\t\t\t\tDefault\n\t\t\t\t</p>\n\t\t\t</gov-form-message>\n\t\t\t<gov-form-message>\n\t\t\t\t<p>\n\t\t\t\t\tDefault\n\t\t\t\t</p>\n\t\t\t</gov-form-message>\n\t\t\t<gov-form-message variant=\"secondary\">\n\t\t\t\t<gov-icon name=\"info\" slot=\"icon\"></gov-icon>\n\t\t\t\t<p>\n\t\t\t\t\tSecondary\n\t\t\t\t</p>\n\t\t\t</gov-form-message>\n\t\t\t<gov-form-message variant=\"secondary\">\n\t\t\t\t<p>\n\t\t\t\t\tSecondary\n\t\t\t\t</p>\n\t\t\t</gov-form-message>\n\t\t\t<gov-form-message variant=\"error\">\n\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t<p>\n\t\t\t\t\tError\n\t\t\t\t</p>\n\t\t\t</gov-form-message>\n\t\t\t<gov-form-message variant=\"error\">\n\t\t\t\t<p>\n\t\t\t\t\tError\n\t\t\t\t</p>\n\t\t\t</gov-form-message>\n\t\t\t<gov-form-message variant=\"warning\">\n\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t<p>\n\t\t\t\t\tWarning\n\t\t\t\t</p>\n\t\t\t</gov-form-message>\n\t\t\t<gov-form-message variant=\"warning\">\n\t\t\t\t<p>\n\t\t\t\t\tWarning\n\t\t\t\t</p>\n\t\t\t</gov-form-message>\n\t\t\t<gov-form-message variant=\"success\">\n\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t<p>\n\t\t\t\t\tSuccess\n\t\t\t\t</p>\n\t\t\t</gov-form-message>\n\t\t\t<gov-form-message variant=\"success\">\n\t\t\t\t<p>\n\t\t\t\t\tSuccess\n\t\t\t\t</p>\n\t\t\t</gov-form-message>\n\t\t\t<gov-form-message>\n\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t<p>\n\t\t\t\t\tLorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi vitae dapibus eros, a dapibus metus. Ut a leo lorem. Sed ut fermentum diam. Sed porttitor ligula est, eget lobortis lacus rutrum et. Nunc sapien arcu, faucibus sit amet justo vel, aliquam gravida magna. Pellentesque et tempor risus. \n\t\t\t\t</p>\n\t\t\t\t<p>\n\t\t\t\t\tAliquam suscipit justo dolor, et pellentesque dui venenatis quis. Vestibulum dignissim libero urna, non ultricies neque consequat ut.\n\t\t\t\t</p>\n\t\t\t</gov-form-message>\n\t\t\t<gov-form-message>\n\t\t\t\t<p>\n\t\t\t\t\tLorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi vitae dapibus eros, a dapibus metus. Ut a leo lorem. Sed ut fermentum diam. Sed porttitor ligula est, eget lobortis lacus rutrum et. Nunc sapien arcu, faucibus sit amet justo vel, aliquam gravida magna. Pellentesque et tempor risus. \n\t\t\t\t</p>\n\t\t\t\t<p>\n\t\t\t\t\tAliquam suscipit justo dolor, et pellentesque dui venenatis quis. Vestibulum dignissim libero urna, non ultricies neque consequat ut.\n\t\t\t\t</p>\n\t\t\t</gov-form-message>\n\t`\n\t}\n}\n\nif (customElements.get('form-message-page') === undefined) {\n\tcustomElements.define('form-message-page', FormMessagePage)\n}\n","const removeDiacritics = (string?: string) => {\n\tif (!string) return string\n\treturn string.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '')\n}\n\nconst randomNumber = (min: number, max: number) => {\n\treturn Math.floor(Math.random() * (max - min + 1) + min)\n}\n\nconst data = () => [\n\t{ name: 'Pepa' },\n\t{ name: 'Katak' },\n\t{ name: 'Tomáš' },\n\t{ name: 'Ludvík' },\n\t{ name: 'Anežda' },\n\t{ name: 'Xaviér' },\n\t{ name: 'Ondřej' },\n\t{ name: 'Mirek' },\n\t{ name: 'Zdeněk' },\n\t{ name: 'Monika' },\n\t{ name: 'Jirka' },\n\t{ name: 'Abrahám' },\n\t{ name: 'Lucie' },\n\t{ name: 'Emily' },\n\t{ name: 'Pavel' },\n\t{ name: 'Gustav' },\n\t{ name: 'Amálie' },\n]\n\nclass FormsPage extends HTMLElement {\n\tconnectedCallback() {\n\t\t;(() => {\n\t\t\tsetTimeout(() => {\n\t\t\t\tconst da = document.getElementById('test-me-ujo') as HTMLGovFormFileElement\n\t\t\t\tconst po = document.getElementById('bagr') as HTMLGovFormAutocompleteElement\n\t\t\t\tconst ba = document.getElementById('ba') as HTMLGovFormMultiSelectElement\n\t\t\t\tconst na = document.getElementById('kaprWWWWWW') as HTMLGovFormInputElement\n\t\t\t\tif (ba) {\n\t\t\t\t\tba.addEventListener('gov-change', function (e) {\n\t\t\t\t\t\tconsole.log(e)\n\t\t\t\t\t})\n\t\t\t\t}\tif (na) {\n\t\t\t\t\tna.addEventListener('gov-blur', function (e) {\n\t\t\t\t\t\tconsole.log(e)\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tif(da) {\n\t\t\t\t\tconsole.log(da);\n\t\t\t\t\tda.addEventListener('gov-add-file', function(e: CustomEvent) {\n\t\t\t\t\t\tconsole.log(e.detail);\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tif (po) {\n\n\t\t\t\t\tpo.addEventListener('gov-select', function (e) {\n\t\t\t\t\t\tconsole.log(e)\n\t\t\t\t\t})\n\t\t\t\t\tpo.setSearchCallback(val => {\n\t\t\t\t\t\treturn new Promise(resolve => {\n\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t\tdata().filter(({ name }) => {\n\t\t\t\t\t\t\t\t\t\tif (!name) return false\n\t\t\t\t\t\t\t\t\t\treturn removeDiacritics(name).toLowerCase().indexOf(removeDiacritics(val).toLowerCase()) > -1\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}, randomNumber(100, 1000))\n\t\t\t\t\t\t})\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}, 1000)\n\t\t})()\n\t\tthis.innerHTML = `\n\t\t\t<h2>\n\t\t\t\tSamostatné použití\n\t\t\t</h2>\n\t\t\t<gov-form-input placeholder=\"Co hledáte\" variant=\"primary\">\n\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t</gov-form-input>\n\t\t\t<br>\n\t\t\t<gov-form-select size=\"l\" name=\"test-me\">\n\t\t\t\t<option value=\"\" selected>Placeholder</option>\n\t\t\t\t<option value=\"b\">Value B</option>\n\t\t\t\t<option value=\"c\">Value C</option>\n\t\t\t\t<option value=\"d\">Value D</option>\n\t\t\t</gov-form-select>\n\t\t\t<br>\n\t\t\t<gov-form-multi-select size=\"xl\" id=\"ba\" placeholder=\"Placeholder\" wcag-described-by=\"me-and-you\">\n\t\t\t\t<option value>Placeholder</option>\n\t\t\t\t<option value=\"b\">Value B</option>\n\t\t\t\t<option value=\"c\">Value C</option>\n\t\t\t\t<option value=\"d\" selected>Value D</option>\n\t\t\t\t<option value=\"e\">Value E</option>\n\t\t\t\t<option value=\"f\">Value F</option>\n\t\t\t\t<option value=\"g\">Value G</option>\n\t\t\t\t<option value=\"h\">Value H</option>\n\t\t\t\t<option value=\"i\" selected>Value I</option>\n\t\t\t</gov-form-multi-select>\n\t\t\t<br>\n\t\t\t<gov-form-checkbox name=\"test-me-c\" value=\"me\" checked no-label></gov-form-checkbox>\n\t\t\t<gov-form-radio name=\"superRadio2\" value=\"me1\" no-label></gov-form-radio>\n\t\t\t<br>\n\t\t\t<gov-form-radio name=\"superRadio2\" value=\"me2\" checked no-label></gov-form-radio>\n\t\t\t<gov-form-switch name=\"test-me\" value=\"me2\" checked no-label></gov-form-switch>\n\t\t\t<gov-form-checkbox name=\"test-me-c\" value=\"me\" checked>\n\t\t\t\t<gov-form-label slot=\"label\">Souhlasím</gov-form-label>\n\t\t\t</gov-form-checkbox>\n\t\t\t<gov-form-radio name=\"superRadio\" value=\"me1\">\n\t\t\t\t<gov-form-label slot=\"label\">Souhlasím</gov-form-label>\n\t\t\t</gov-form-radio>\n\t\t\t<gov-form-radio name=\"superRadio\" value=\"me2\" checked>\n\t\t\t\t<gov-form-label slot=\"label\">Souhlasím</gov-form-label>\n\t\t\t</gov-form-radio>\n\t\t\t<gov-form-switch name=\"test-me\" value=\"me2\" checked>\n\t\t\t\t<gov-form-label slot=\"label\">Souhlasím</gov-form-label>\n\t\t\t</gov-form-switch>\n\n\n\t\t\t<!-- ----------------------------------------------------------------------------------------------------------------------------- -->\n\n\n\t\t\t<h2>\n\t\t\t\tDate & Time input (nativní)\n\t\t\t</h2>\n\t\t\t<gov-form-input size=\"m\" placeholder=\"Co hledáte\" input-type=\"datetime-local\"></gov-form-input>\n\t\t\t<br>\n\t\t\t<gov-form-input size=\"l\" placeholder=\"Co hledáte\" input-type=\"date\"></gov-form-input>\n\t\t\t<br>\n\t\t\t<gov-form-input size=\"xl\" placeholder=\"Co hledáte\" input-type=\"time\"></gov-form-input>\n\n\n\t\t\t<!-- ----------------------------------------------------------------------------------------------------------------------------- -->\n\n\n\t\t\t<h2>Search</h2>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-search name=\"test-me-c\" value=\"me\" variant=\"secondary\">\n\t\t\t\t\t\t<gov-form-input slot=\"input\" id=\"kapr\" name=\"test-me\" size=\"m\" placeholder=\"Co hledáte\"></gov-form-input>\n\t\t\t\t\t\t<gov-button slot=\"button\" variant=\"primary\" size=\"s\">\n\t\t\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"search\"></gov-icon>\n\t\t\t\t\t\t</gov-button>\n\t\t\t\t\t</gov-form-search>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<br>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-search name=\"test-me-c\" value=\"me\" variant=\"primary\">\n\t\t\t\t\t\t<gov-form-input slot=\"input\" id=\"kapr\" name=\"test-me\" size=\"l\" placeholder=\"Co hledáte\"></gov-form-input>\n\t\t\t\t\t\t<gov-button slot=\"button\" variant=\"primary\" size=\"m\">\n\t\t\t\t\t\t\tHledat\n\t\t\t\t\t\t</gov-button>\n\t\t\t\t\t</gov-form-search>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<br>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-search name=\"test-me-c\" value=\"me\"checked variant=\"secondary\">\n\t\t\t\t\t\t<gov-form-input slot=\"input\" id=\"kapr\" size=\"xl\" name=\"test-me\" placeholder=\"Co hledáte\"></gov-form-input>\n\t\t\t\t\t\t<gov-button slot=\"button\" variant=\"secondary\" size=\"l\">\n\t\t\t\t\t\t\tHledat\n\t\t\t\t\t\t</gov-button>\n\t\t\t\t\t</gov-form-search>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\n\n\t\t\t<!-- ----------------------------------------------------------------------------------------------------------------------------- -->\n\n\n\t\t\t<h2>File</h2>\n\t\t\t<div class=\"container-view\">\n\t\t\t<h3>Normal 2</h3>\n\t\t\t\t<gov-form-control>\n\t\t\t\t\t<gov-form-label size=\"s\" slot=\"top\">Přidat přílohu *</gov-form-label>\n\t\t\t\t\t<gov-form-group>\n\t\t\t\t\t\t<gov-form-file id=\"test-me-ujo\" multiple accept=\".pdf,.jpg,.png,.jpeg\" max-file-size=\"616448\">\n\t\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t\t<gov-button variant=\"primary\" type=\"outlined\" tabindex=\"-1\">\n\t\t\t\t\t\t\t\t\tNahrát soubor ze zařízení\n\t\t\t\t\t\t\t\t</gov-button>\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t<p class=\"gov-text--s\">\n\t\t\t\t\t\t\t\tPodporované formáty XML, PDF, DOC\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</gov-form-file>\n\t\t\t\t\t</gov-form-group>\n\t\t\t\t</gov-form-control>\n\t\t\t\t<br>\n\t\t\t\t<gov-form-control>\n\t\t\t\t\t<gov-form-label size=\"s\" slot=\"top\">Přidat přílohu *</gov-form-label>\n\t\t\t\t\t<gov-form-group>\n\t\t\t\t\t\t<gov-form-file name=\"test-me-c\">\n\t\t\t\t\t\t\t<p aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t<gov-button variant=\"primary\" type=\"outlined\">\n\t\t\t\t\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"upload\"></gov-icon>\n\t\t\t\t\t\t\t\t\tNahrát soubor ze zařízení\n\t\t\t\t\t\t\t\t</gov-button>\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t<p class=\"gov-text--s\">\n\t\t\t\t\t\t\t\tPodporované formáty XML, PDF, DOC\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</gov-form-file>\n\t\t\t\t\t</gov-form-group>\n\t\t\t\t</gov-form-control>\n\t\t\t\t<br>\n\t\t\t\t<gov-form-control>\n\t\t\t\t\t<gov-form-label size=\"s\" slot=\"top\">Přidat přílohu *</gov-form-label>\n\t\t\t\t\t<gov-form-group>\n\t\t\t\t\t\t<gov-form-file name=\"test-me-c\" invalid>\n\t\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t\t<gov-button variant=\"primary\" type=\"outlined\">\n\t\t\t\t\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"upload\"></gov-icon>\n\t\t\t\t\t\t\t\t\tNahrát soubor ze zařízení\n\t\t\t\t\t\t\t\t</gov-button>\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t<p class=\"gov-text--s\">\n\t\t\t\t\t\t\t\tPodporované formáty XML, PDF, DOC\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</gov-form-file>\n\t\t\t\t\t</gov-form-group>\n\t\t\t\t\t<gov-form-message slot=\"bottom\" variant=\"error\">\n\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"exclamation-triangle-fill\"></gov-icon>\n\t\t\t\t\t\tRequired\n\t\t\t\t\t</gov-form-message>\n\t\t\t\t</gov-form-control>\n\t\t\t\t<br>\n\n\t\t\t\t<h3>Expanded</h3>\n\t\t\t\t<gov-form-control>\n\t\t\t\t\t<gov-form-label size=\"s\" slot=\"top\">Přidat přílohu *</gov-form-label>\n\t\t\t\t\t<gov-form-group>\n\t\t\t\t\t\t<gov-form-file expanded name=\"test-me-c\">\n\t\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t\tPřetáhněte soubor nebo\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t\t<gov-button variant=\"primary\" type=\"outlined\">\n\t\t\t\t\t\t\t\t\tNahrajte ze zařízení\n\t\t\t\t\t\t\t\t</gov-button>\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t<p class=\"gov-text--s\">\n\t\t\t\t\t\t\t\tPodporované formáty XML, PDF, DOC\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</gov-form-file>\n\t\t\t\t\t</gov-form-group>\n\t\t\t\t</gov-form-control>\n\t\t\t\t<br>\n\t\t\t\t<gov-form-control disabled>\n\t\t\t\t\t<gov-form-label size=\"s\" slot=\"top\">Přidat přílohu *</gov-form-label>\n\t\t\t\t\t<gov-form-group>\n\t\t\t\t\t\t<gov-form-file expanded name=\"test-me-c\" disabled>\n\t\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t\tPřetáhněte soubor nebo\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t\t<gov-button disabled variant=\"primary\" type=\"outlined\">\n\t\t\t\t\t\t\t\t\tNahrát ze zařízení\n\t\t\t\t\t\t\t\t</gov-button>\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t<p class=\"gov-text--s\">\n\t\t\t\t\t\t\t\tPodporované formáty XML, PDF, DOC\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</gov-form-file>\n\t\t\t\t\t</gov-form-group>\n\t\t\t\t</gov-form-control>\n\t\t\t\t<br>\n\t\t\t\t<gov-form-control invalid>\n\t\t\t\t\t<gov-form-label size=\"s\" slot=\"top\">Přidat přílohu *</gov-form-label>\n\t\t\t\t\t<gov-form-group>\n\t\t\t\t\t\t<gov-form-file expanded name=\"test-me-c\" invalid>\n\t\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t\tPřetáhněte soubor nebo\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t\t<gov-button variant=\"primary\" type=\"outlined\">\n\t\t\t\t\t\t\t\t\tNahrát ze zařízení\n\t\t\t\t\t\t\t\t</gov-button>\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t<p class=\"gov-text--s\">\n\t\t\t\t\t\t\t\tPodporované formáty XML, PDF, DOC\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</gov-form-file>\n\t\t\t\t\t</gov-form-group>\n\t\t\t\t\t<gov-form-message slot=\"bottom\" variant=\"error\">\n\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"exclamation-triangle-fill\"></gov-icon>\n\t\t\t\t\t\tRequired\n\t\t\t\t\t</gov-form-message>\n\t\t\t\t</gov-form-control>\n\t\t\t\t<br>\n\t\t\t</div>\n\n\n\t\t\t<!-- ----------------------------------------------------------------------------------------------------------------------------- -->\n\n\n\t\t\t<h2>Multiselect</h2>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-label slot=\"top\">Multiselect</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-multi-select id=\"ba\" placeholder=\"Placeholder\" wcag-described-by=\"me-and-you\">\n\t\t\t\t\t\t<option value>Placeholder</option>\n\t\t\t\t\t\t<option value=\"b\">Value B</option>\n\t\t\t\t\t\t<option value=\"c\">Value C</option>\n\t\t\t\t\t\t<option value=\"d\" selected>Value D</option>\n\t\t\t\t\t\t<option value=\"e\">Value E</option>\n\t\t\t\t\t\t<option value=\"f\">Value F</option>\n\t\t\t\t\t\t<option value=\"g\">Value G</option>\n\t\t\t\t\t\t<option value=\"h\">Value H</option>\n\t\t\t\t\t\t<option value=\"i\" selected>Value I</option>\n\t\t\t\t\t</gov-form-multi-select>\n\t\t\t\t</gov-form-group>\n\t\t\t\t<gov-form-message slot=\"bottom\" variant=\"error\">\n\t\t\t\t\t<gov-icon slot=\"icon\" name=\"exclamation-triangle-fill\"></gov-icon>\n\t\t\t\t\tRequired\n\t\t\t\t</gov-form-message>\n\t\t\t</gov-form-control>\n\n\n\t\t\t<!-- ----------------------------------------------------------------------------------------------------------------------------- -->\n\n\n\t\t\t<h2>Autocomplete</h2>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-label slot=\"top\">Label of autocomplete</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-autocomplete placeholder=\"Placeholder autcomplete\" id=\"bagr\">\n\t\t\t\t\t\t<gov-icon name=\"search\" slot=\"right-icon\" />\n\t\t\t\t\t</gov-form-autocomplete>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-label slot=\"top\">Label of autocomplete</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-autocomplete placeholder=\"Placeholder autcomplete\" id=\"bagr\" invalid=\"true\">\n\t\t\t\t\t\t<gov-icon name=\"search\" slot=\"right-icon\" />\n\t\t\t\t\t</gov-form-autocomplete>\n\t\t\t\t</gov-form-group>\n\t\t\t\t<gov-form-message slot=\"bottom\" variant=\"error\">\n\t\t\t\t\t<gov-icon slot=\"icon\" name=\"exclamation-triangle-fill\"></gov-icon>\n\t\t\t\t\tRequired\n\t\t\t\t</gov-form-message>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-label slot=\"top\">Label of autocomplete</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-autocomplete placeholder=\"Placeholder autcomplete\" id=\"bagr\" disabled=\"true\">\n\t\t\t\t\t\t<gov-icon name=\"search\" slot=\"right-icon\" />\n\t\t\t\t\t</gov-form-autocomplete>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\n\n\t\t\t<!-- ----------------------------------------------------------------------------------------------------------------------------- -->\n\n\n\t\t\t<h2>Textarea</h2>\n\t\t\t<h3>\n\t\t\t\tDefault\n\t\t\t</h3>\n\t\t\t<gov-form-control type=\"input\" id=\"metro2\">\n\t\t\t\t<gov-form-label size=\"s\" slot=\"top\">Label of textarea</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-input multiline rows=\"3\" name=\"test-me\" placeholder=\"Placeholder\"></gov-form-input>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\n\t\t\t<h3>\n\t\t\t\tInvalid\n\t\t\t</h3>\n\t\t\t<gov-form-control type=\"input\" id=\"metro2\">\n\t\t\t\t<gov-form-label size=\"s\" slot=\"top\">Label of textarea</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-input required multiline rows=\"3\" name=\"test-me\" value=\"Value of textarea\" invalid=\"TRUE\"></gov-form-input>\n\t\t\t\t</gov-form-group>\n\t\t\t\t<gov-form-message slot=\"bottom\" variant=\"error\">\n\t\t\t\t\t<gov-icon slot=\"icon\" name=\"exclamation-triangle-fill\"></gov-icon>\n\t\t\t\t\tRequired\n\t\t\t\t</gov-form-message>\n\t\t\t</gov-form-control>\n\n\t\t\t<h3>\n\t\t\t\tDisabled\n\t\t\t</h3>\n\t\t\t<gov-form-control id=\"metro2\">\n\t\t\t\t<gov-form-label size=\"s\" slot=\"top\">Label of textarea</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-input multiline rows=\"3\" name=\"test-me\" disabled value=\"Value of textarea\"></gov-form-input>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\n\n\t\t\t<!-- ----------------------------------------------------------------------------------------------------------------------------- -->\n\n\n\t\t\t<h2>Checkbox</h2>\n\t\t\t<h3>\n\t\t\t\tGaps\n\t\t\t</h3>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-label size=\"xs\" slot=\"top\">Label of word</gov-form-label>\n\t\t\t\t<gov-form-group gap=\"2xs\">\n\t\t\t\t\t<gov-form-checkbox name=\"test-me-c\" value=\"me\" size=\"xs\" checked></gov-form-checkbox>\n\t\t\t\t\t<gov-form-checkbox name=\"test-me-c\" value=\"me\" size=\"xs\" checked></gov-form-checkbox>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<br>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-group gap=\"2xs\">\n\t\t\t\t\t<gov-form-checkbox name=\"test-me-c\" value=\"me\" size=\"xs\" required checked>\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Option 1</gov-form-label>\n\t\t\t\t\t</gov-form-checkbox>\n\t\t\t\t\t<gov-form-checkbox name=\"test-me-c\" value=\"me\" size=\"xs\" checked>\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Option 2</gov-form-label>\n\t\t\t\t\t</gov-form-checkbox>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<br>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-group gap=\"xs\">\n\t\t\t\t\t<gov-form-checkbox name=\"test-me-c\" value=\"me\" size=\"s\" checked>\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Option 1</gov-form-label>\n\t\t\t\t\t</gov-form-checkbox>\n\t\t\t\t\t<gov-form-checkbox name=\"test-me-c\" value=\"me\" size=\"s\" checked>\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Option 2</gov-form-label>\n\t\t\t\t\t</gov-form-checkbox>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<br>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-group gap=\"s\">\n\t\t\t\t\t<gov-form-checkbox name=\"test-me-c\" value=\"me\" size=\"m\" checked>\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Option 1</gov-form-label>\n\t\t\t\t\t</gov-form-checkbox>\n\t\t\t\t\t<gov-form-checkbox name=\"test-me-c\" value=\"me\" size=\"m\" checked>\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Option 2</gov-form-label>\n\t\t\t\t\t</gov-form-checkbox>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<br>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-group gap=\"m\">\n\t\t\t\t\t<gov-form-checkbox name=\"test-me-c\" value=\"me\" size=\"l\" checked>\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Option 1</gov-form-label>\n\t\t\t\t\t</gov-form-checkbox>\n\t\t\t\t\t<gov-form-checkbox name=\"test-me-c\" value=\"me\" size=\"l\" checked>\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Option 2</gov-form-label>\n\t\t\t\t\t</gov-form-checkbox>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\n\t\t\t<h3>\n\t\t\t\tDefault\n\t\t\t</h3>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-checkbox name=\"test-me-c\" value=\"me\" size=\"xs\" checked>\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Souhlasím</gov-form-label>\n\t\t\t\t\t</gov-form-checkbox>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-checkbox name=\"test-me-c\" value=\"me\" size=\"s\" checked>\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Souhlasím</gov-form-label>\n\t\t\t\t\t</gov-form-checkbox>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-checkbox name=\"test-me-c\" value=\"me\" size=\"m\" checked>\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Souhlasím</gov-form-label>\n\t\t\t\t\t</gov-form-checkbox>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-checkbox name=\"test-me-c\" value=\"me\" size=\"l\" checked>\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Souhlasím</gov-form-label>\n\t\t\t\t\t</gov-form-checkbox>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\n\t\t\t<h3>\n\t\t\t\tInvalid\n\t\t\t</h3>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-checkbox name=\"test-me-c\" value=\"me\" size=\"xs\" checked invalid=\"true\">\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Souhlasím</gov-form-label>\n\t\t\t\t\t</gov-form-checkbox>\n\t\t\t\t</gov-form-group>\n\t\t\t\t<gov-form-message slot=\"bottom\" variant=\"error\">\n\t\t\t\t\t<gov-icon slot=\"icon\" name=\"exclamation-triangle-fill\"></gov-icon>\n\t\t\t\t\tRequired\n\t\t\t\t</gov-form-message>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-checkbox name=\"test-me-c\" value=\"me\" size=\"s\" checked invalid=\"true\">\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Souhlasím</gov-form-label>\n\t\t\t\t\t</gov-form-checkbox>\n\t\t\t\t</gov-form-group>\n\t\t\t\t<gov-form-message slot=\"bottom\" variant=\"error\">\n\t\t\t\t\t<gov-icon slot=\"icon\" name=\"exclamation-triangle-fill\"></gov-icon>\n\t\t\t\t\tRequired\n\t\t\t\t</gov-form-message>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-checkbox name=\"test-me-c\" value=\"me\" size=\"m\" checked invalid=\"true\">\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Souhlasím</gov-form-label>\n\t\t\t\t\t</gov-form-checkbox>\n\t\t\t\t</gov-form-group>\n\t\t\t\t<gov-form-message slot=\"bottom\" variant=\"error\">\n\t\t\t\t\t<gov-icon slot=\"icon\" name=\"exclamation-triangle-fill\"></gov-icon>\n\t\t\t\t\tRequired\n\t\t\t\t</gov-form-message>\n\t\t\t</gov-form-control>\n\n\t\t\t<h3>\n\t\t\t\tDisabled\n\t\t\t</h3>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-checkbox name=\"test-me-c\" value=\"me\" size=\"xs\" disabled>\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Souhlasím</gov-form-label>\n\t\t\t\t\t</gov-form-checkbox>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-checkbox name=\"test-me-c\" value=\"me\" size=\"s\" disabled=\"True\">\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Souhlasím</gov-form-label>\n\t\t\t\t\t</gov-form-checkbox>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-checkbox name=\"test-me-c\" value=\"me\" size=\"m\" checked disabled=\"TRUE\">\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Souhlasím</gov-form-label>\n\t\t\t\t\t</gov-form-checkbox>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-checkbox name=\"test-me-c\" value=\"me\" size=\"l\" checked disabled=\"1\">\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Souhlasím</gov-form-label>\n\t\t\t\t\t</gov-form-checkbox>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\n\n\t\t\t<!-- ----------------------------------------------------------------------------------------------------------------------------- -->\n\n\n\t\t\t<h2>Radio</h2>\n\t\t\t<h3>\n\t\t\t\tDefault group\n\t\t\t</h3>\n\t\t\t<gov-form-control fieldset>\n\t\t\t\t\t<gov-form-label legend size=\"s\" slot=\"top\">Seznam skupiny</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-radio name=\"test1\" value=\"me\" size=\"xs\">\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Value 1</gov-form-label>\n\t\t\t\t\t</gov-form-radio>\n\t\t\t\t\t<gov-form-radio name=\"test1\" value=\"me2\" size=\"xs\" checked>\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Value 2</gov-form-label>\n\t\t\t\t\t</gov-form-radio>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<br>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-radio name=\"test2\" value=\"me\" size=\"s\">\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Value 1</gov-form-label>\n\t\t\t\t\t</gov-form-radio>\n\t\t\t\t\t<gov-form-radio name=\"test2\" value=\"me2\" size=\"s\" checked>\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Value 2</gov-form-label>\n\t\t\t\t\t</gov-form-radio>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<br>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-radio name=\"test3\" value=\"me\" size=\"m\">\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Value 1</gov-form-label>\n\t\t\t\t\t</gov-form-radio>\n\t\t\t\t\t<gov-form-radio name=\"test3\" value=\"me2\" size=\"m\" checked>\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Value 2</gov-form-label>\n\t\t\t\t\t</gov-form-radio>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<br>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-radio name=\"test4\" value=\"me\" size=\"l\">\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Value 1</gov-form-label>\n\t\t\t\t\t</gov-form-radio>\n\t\t\t\t\t<gov-form-radio name=\"test4\" value=\"me2\" size=\"l\" checked>\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Value 2</gov-form-label>\n\t\t\t\t\t</gov-form-radio>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\n\t\t\t<h3>\n\t\t\t\tInvalid\n\t\t\t</h3>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-radio name=\"test5\" value=\"me\" size=\"xs\" invalid=\"true\">\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Value 1</gov-form-label>\n\t\t\t\t\t</gov-form-radio>\n\t\t\t\t\t<gov-form-radio name=\"test5\" value=\"me2\" size=\"xs\" checked invalid=\"true\">\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Value 2</gov-form-label>\n\t\t\t\t\t</gov-form-radio>\n\t\t\t\t</gov-form-group>\n\t\t\t\t<gov-form-message slot=\"bottom\" variant=\"error\">\n\t\t\t\t\t<gov-icon slot=\"icon\" name=\"exclamation-triangle-fill\"></gov-icon>\n\t\t\t\t\tRequired\n\t\t\t\t</gov-form-message>\n\t\t\t</gov-form-control>\n\t\t\t<br>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-radio name=\"test6\" value=\"me\" size=\"s\" invalid=\"true\">\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Value 1</gov-form-label>\n\t\t\t\t\t</gov-form-radio>\n\t\t\t\t\t<gov-form-radio name=\"test6\" value=\"me2\" size=\"s\" checked invalid=\"true\">\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Value 2</gov-form-label>\n\t\t\t\t\t</gov-form-radio>\n\t\t\t\t</gov-form-group>\n\t\t\t\t<gov-form-message slot=\"bottom\" variant=\"error\">\n\t\t\t\t\t<gov-icon slot=\"icon\" name=\"exclamation-triangle-fill\"></gov-icon>\n\t\t\t\t\tRequired\n\t\t\t\t</gov-form-message>\n\t\t\t</gov-form-control>\n\t\t\t<br>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-radio name=\"test7\" value=\"me\" size=\"m\" invalid=\"true\">\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Value 1</gov-form-label>\n\t\t\t\t\t</gov-form-radio>\n\t\t\t\t\t<gov-form-radio name=\"test7\" value=\"me2\" size=\"m\" checked invalid=\"true\">\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Value 2</gov-form-label>\n\t\t\t\t\t</gov-form-radio>\n\t\t\t\t</gov-form-group>\n\t\t\t\t<gov-form-message slot=\"bottom\" variant=\"error\">\n\t\t\t\t\t<gov-icon slot=\"icon\" name=\"exclamation-triangle-fill\"></gov-icon>\n\t\t\t\t\tRequired\n\t\t\t\t</gov-form-message>\n\t\t\t</gov-form-control>\n\t\t\t<br>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-radio name=\"test8\" value=\"me\" size=\"l\" invalid=\"true\">\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Value 1</gov-form-label>\n\t\t\t\t\t</gov-form-radio>\n\t\t\t\t\t<gov-form-radio name=\"test8\" value=\"me2\" size=\"l\" checked invalid=\"true\">\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Value 2</gov-form-label>\n\t\t\t\t\t</gov-form-radio>\n\t\t\t\t</gov-form-group>\n\t\t\t\t<gov-form-message slot=\"bottom\" variant=\"error\">\n\t\t\t\t\t<gov-icon slot=\"icon\" name=\"exclamation-triangle-fill\"></gov-icon>\n\t\t\t\t\tRequired\n\t\t\t\t</gov-form-message>\n\t\t\t</gov-form-control>\n\n\t\t\t<h3>\n\t\t\t\tDisabled\n\t\t\t</h3>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-radio name=\"test9\" value=\"me\" size=\"xs\" disabled>\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Value 1</gov-form-label>\n\t\t\t\t\t</gov-form-radio>\n\t\t\t\t\t<gov-form-radio name=\"test9\" value=\"me2\" size=\"xs\" checked disabled>\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Value 2</gov-form-label>\n\t\t\t\t\t</gov-form-radio>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<br>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-radio name=\"test10\" value=\"me\" size=\"s\" disabled=\"true\">\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Value 1</gov-form-label>\n\t\t\t\t\t</gov-form-radio>\n\t\t\t\t\t<gov-form-radio name=\"test10\" value=\"me2\" size=\"s\" checked disabled=\"true\">\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Value 2</gov-form-label>\n\t\t\t\t\t</gov-form-radio>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<br>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-radio name=\"test11\" value=\"me\" size=\"m\" disabled=\"true\">\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Value 1</gov-form-label>\n\t\t\t\t\t</gov-form-radio>\n\t\t\t\t\t<gov-form-radio name=\"test11\" value=\"me2\" size=\"m\" checked disabled=\"true\">\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Value 2</gov-form-label>\n\t\t\t\t\t</gov-form-radio>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<br>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-radio name=\"test12\" value=\"me\" size=\"l\" disabled=\"true\">\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Value 1</gov-form-label>\n\t\t\t\t\t</gov-form-radio>\n\t\t\t\t\t<gov-form-radio name=\"test12\" value=\"me2\" size=\"l\" checked disabled=\"true\">\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Value 2</gov-form-label>\n\t\t\t\t\t</gov-form-radio>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\n\n\t\t\t<!-- ----------------------------------------------------------------------------------------------------------------------------- -->\n\n\n\t\t\t<h2>Select</h2>\n\t\t\t<h3>\n\t\t\t\tDefault\n\t\t\t</h3>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-label size=\"s\" slot=\"top\">Souhlasím</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-select name=\"test-me\" size=\"m\">\n\t\t\t\t\t\t<option value=\"\" selected>Placeholder</option>\n\t\t\t\t\t\t<option value=\"b\">Value B</option>\n\t\t\t\t\t\t<option value=\"c\">Value C</option>\n\t\t\t\t\t\t<option value=\"d\">Value D</option>\n\t\t\t\t\t</gov-form-select>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-label size=\"s\" slot=\"top\">Souhlasím</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-select name=\"test-me\" size=\"l\">\n\t\t\t\t\t\t<option value=\"a\" selected>Value A</option>\n\t\t\t\t\t\t<option value=\"b\">Value B</option>\n\t\t\t\t\t\t<option value=\"c\">Value C</option>\n\t\t\t\t\t\t<option value=\"d\">Value D</option>\n\t\t\t\t\t</gov-form-select>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-label size=\"m\" slot=\"top\">Souhlasím</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-select name=\"test-me\" size=\"xl\">\n\t\t\t\t\t\t<option value=\"a\" selected>Value A</option>\n\t\t\t\t\t\t<option value=\"b\">Value B</option>\n\t\t\t\t\t\t<option value=\"c\">Value C</option>\n\t\t\t\t\t\t<option value=\"d\">Value D</option>\n\t\t\t\t\t</gov-form-select>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\n\t\t\t<h3>\n\t\t\t\tPrefix / sufix\n\t\t\t</h3>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-label size=\"s\" slot=\"top\">Souhlasím</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-select name=\"test-me\" size=\"m\">\n\t\t\t\t\t\t<span slot=\"prefix\">$</span>\n\t\t\t\t\t\t<span slot=\"sufix\">Kč</span>\n\t\t\t\t\t\t<option value=\"\" selected>Placeholder</option>\n\t\t\t\t\t\t<option value=\"b\">Value B</option>\n\t\t\t\t\t\t<option value=\"c\">Value C</option>\n\t\t\t\t\t\t<option value=\"d\">Value D</option>\n\t\t\t\t\t</gov-form-select>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-label size=\"s\" slot=\"top\">Souhlasím</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-select name=\"test-me\" size=\"l\">\n\t\t\t\t\t\t<span slot=\"prefix\">$</span>\n\t\t\t\t\t\t<span slot=\"sufix\">Kč</span>\n\t\t\t\t\t\t<option value=\"a\" selected>Value A</option>\n\t\t\t\t\t\t<option value=\"b\">Value B</option>\n\t\t\t\t\t\t<option value=\"c\">Value C</option>\n\t\t\t\t\t\t<option value=\"d\">Value D</option>\n\t\t\t\t\t</gov-form-select>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-label size=\"m\" slot=\"top\">Souhlasím</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-select name=\"test-me\" size=\"l\">\n\t\t\t\t\t\t<span slot=\"prefix\">$</span>\n\t\t\t\t\t\t<span slot=\"sufix\">Kč</span>\n\t\t\t\t\t\t<option value=\"a\" selected>Value A</option>\n\t\t\t\t\t\t<option value=\"b\">Value B</option>\n\t\t\t\t\t\t<option value=\"c\">Value C</option>\n\t\t\t\t\t\t<option value=\"d\">Value D</option>\n\t\t\t\t\t</gov-form-select>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\n\t\t\t<h3>\n\t\t\t\tInvalid\n\t\t\t</h3>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-label size=\"s\" slot=\"top\">Souhlasím</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-select name=\"test-me\" size=\"m\" invalid=\"true\">\n\t\t\t\t\t\t<option value=\"\" selected>Placeholder</option>\n\t\t\t\t\t\t<option value=\"b\">Value B</option>\n\t\t\t\t\t\t<option value=\"c\">Value C</option>\n\t\t\t\t\t\t<option value=\"d\">Value D</option>\n\t\t\t\t\t</gov-form-select>\n\t\t\t\t</gov-form-group>\n\t\t\t\t<gov-form-message slot=\"bottom\" variant=\"error\">\n\t\t\t\t\t<gov-icon slot=\"icon\" name=\"exclamation-triangle-fill\"></gov-icon>\n\t\t\t\t\tRequired\n\t\t\t\t</gov-form-message>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-label size=\"s\" slot=\"top\">Souhlasím</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-select name=\"test-me\" size=\"l\" invalid=\"true\">\n\t\t\t\t\t\t<option value=\"\" selected>Placeholder</option>\n\t\t\t\t\t\t<option value=\"b\">Value B</option>\n\t\t\t\t\t\t<option value=\"c\">Value C</option>\n\t\t\t\t\t\t<option value=\"d\">Value D</option>\n\t\t\t\t\t</gov-form-select>\n\t\t\t\t</gov-form-group>\n\t\t\t\t<gov-form-message slot=\"bottom\" variant=\"error\">\n\t\t\t\t\t<gov-icon slot=\"icon\" name=\"exclamation-triangle-fill\"></gov-icon>\n\t\t\t\t\tRequired\n\t\t\t\t</gov-form-message>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-label size=\"m\" slot=\"top\">Souhlasím</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-select name=\"test-me\" size=\"xl\" invalid=\"true\">\n\t\t\t\t\t\t<option value=\"\" selected>Placeholder</option>\n\t\t\t\t\t\t<option value=\"b\">Value B</option>\n\t\t\t\t\t\t<option value=\"c\">Value C</option>\n\t\t\t\t\t\t<option value=\"d\">Value D</option>\n\t\t\t\t\t</gov-form-select>\n\t\t\t\t</gov-form-group>\n\t\t\t\t<gov-form-message slot=\"bottom\" variant=\"error\">\n\t\t\t\t\t<gov-icon slot=\"icon\" name=\"exclamation-triangle-fill\"></gov-icon>\n\t\t\t\t\tRequired\n\t\t\t\t</gov-form-message>\n\t\t\t</gov-form-control>\n\n\t\t\t<h3>\n\t\t\t\tDisabled\n\t\t\t</h3>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-label size=\"s\" slot=\"top\">Souhlasím</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-select name=\"test-me\" size=\"m\" disabled>\n\t\t\t\t\t\t<option value=\"\" selected>Placeholder</option>\n\t\t\t\t\t\t<option value=\"b\">Value B</option>\n\t\t\t\t\t\t<option value=\"c\">Value C</option>\n\t\t\t\t\t\t<option value=\"d\">Value D</option>\n\t\t\t\t\t</gov-form-select>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-label size=\"s\" slot=\"top\">Souhlasím</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-select name=\"test-me\" size=\"m\" disabled=\"true\">\n\t\t\t\t\t\t<option value=\"\" selected>Placeholder</option>\n\t\t\t\t\t\t<option value=\"b\">Value B</option>\n\t\t\t\t\t\t<option value=\"c\">Value C</option>\n\t\t\t\t\t\t<option value=\"d\">Value D</option>\n\t\t\t\t\t</gov-form-select>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-label size=\"m\" slot=\"top\">Souhlasím</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-select name=\"test-me\" size=\"l\" disabled=\"true\">\n\t\t\t\t\t\t<option value=\"\" selected>Placeholder</option>\n\t\t\t\t\t\t<option value=\"b\">Value B</option>\n\t\t\t\t\t\t<option value=\"c\">Value C</option>\n\t\t\t\t\t\t<option value=\"d\">Value D</option>\n\t\t\t\t\t</gov-form-select>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\n\n\t\t\t<!-- ----------------------------------------------------------------------------------------------------------------------------- -->\n\n\n\t\t\t<h2>Input</h2>\n\t\t\t<h3>\n\t\t\t\tPrimary\n\t\t\t</h3>\n\t\t\t<gov-form-control type=\"input\" id=\"metro2\">\n\t\t\t\t<gov-form-label size=\"s\" slot=\"top\">Label of input</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-input type=\"number\" id=\"kapr\" name=\"test-me\" placeholder=\"Placeholder\" variant=\"primary\" size=\"s\"></gov-form-input>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control type=\"input\" id=\"metro2\">\n\t\t\t\t<gov-form-label size=\"s\" slot=\"top\">Label of input</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-input type=\"number\" id=\"kapr\" name=\"test-me\" placeholder=\"Placeholder\" variant=\"primary\" size=\"m\"></gov-form-input>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control type=\"input\" id=\"metro2\">\n\t\t\t\t<gov-form-label size=\"s\" slot=\"top\">Label of input 3333</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-input id=\"kapr\" name=\"test-me\" value=\"Value of input\" variant=\"primary\" size=\"l\"></gov-form-input>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control type=\"input\" id=\"metro2\">\n\t\t\t\t<gov-form-label size=\"m\" slot=\"top\">Label of input</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-input id=\"kapr\" name=\"test-me\" value=\"Value of input\" variant=\"primary\" size=\"xl\"></gov-form-input>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\n\t\t\t<h3>\n\t\t\t\tSecondary\n\t\t\t</h3>\n\t\t\t<gov-form-control type=\"input\" id=\"metro2\">\n\t\t\t\t<gov-form-label size=\"s\" slot=\"top\">Label of input</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-input type=\"number\" id=\"kapr\" name=\"test-me\" placeholder=\"Placeholder\" variant=\"secondary\" size=\"s\"></gov-form-input>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control type=\"input\" id=\"metro2\">\n\t\t\t\t<gov-form-label size=\"s\" slot=\"top\">Label of input</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-input type=\"number\" id=\"kapr\" name=\"test-me\" placeholder=\"Placeholder\" variant=\"secondary\" size=\"m\"></gov-form-input>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control type=\"input\" id=\"metro2\">\n\t\t\t\t<gov-form-label size=\"s\" slot=\"top\">Label of input 3333</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-input id=\"kapr\" name=\"test-me\" value=\"Value of input\" variant=\"secondary\" size=\"l\"></gov-form-input>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control type=\"input\" id=\"metro2\">\n\t\t\t\t<gov-form-label size=\"m\" slot=\"top\">Label of input</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-input id=\"kapr\" name=\"test-me\" value=\"Value of input\" variant=\"secondary\" size=\"xl\"></gov-form-input>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\n\t\t\t<h3>\n\t\t\t\tPrefix / sufix\n\t\t\t</h3>\n\t\t\t<gov-form-control type=\"input\" id=\"metro2\">\n\t\t\t\t<gov-form-label size=\"s\" slot=\"top\">Label of input</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-input type=\"number\" id=\"kapr\" name=\"test-me\" placeholder=\"Placeholder\" size=\"s\">\n\t\t\t\t\t\t<span slot=\"prefix\">$</span>\n\t\t\t\t\t\t<span slot=\"sufix\">Kč</span>\n\t\t\t\t\t</gov-form-input>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control type=\"input\" id=\"metro2\">\n\t\t\t\t<gov-form-label size=\"s\" slot=\"top\">Label of input</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-input type=\"number\" id=\"kapr\" name=\"test-me\" placeholder=\"Placeholder\" size=\"m\">\n\t\t\t\t\t\t<span slot=\"prefix\">$</span>\n\t\t\t\t\t\t<span slot=\"sufix\">Kč</span>\n\t\t\t\t\t</gov-form-input>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control type=\"input\" id=\"metro2\">\n\t\t\t\t<gov-form-label size=\"s\" slot=\"top\">Label of input</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-input id=\"kapr\" name=\"test-me\" value=\"Value of input\" size=\"l\">\n\t\t\t\t\t\t<span slot=\"prefix\">$</span>\n\t\t\t\t\t\t<span slot=\"sufix\">Kč</span>\n\t\t\t\t\t</gov-form-input>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control type=\"input\" id=\"metro2\">\n\t\t\t\t<gov-form-label size=\"m\" slot=\"top\">Label of input</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-input id=\"kapr\" name=\"test-me\" value=\"Value of input\" size=\"xl\">\n\t\t\t\t\t\t<span slot=\"prefix\">$</span>\n\t\t\t\t\t\t<span slot=\"sufix\">Kč</span>\n\t\t\t\t\t</gov-form-input>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\n\t\t\t<h3>\n\t\t\t\tLeft icon\n\t\t\t</h3>\n\t\t\t<gov-form-control type=\"input\" id=\"metro2\">\n\t\t\t\t<gov-form-label size=\"s\" slot=\"top\">Label of input</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-input id=\"kapr\" name=\"test-me\" placeholder=\"Placeholder\" size=\"s\">\n\t\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t</gov-form-input>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control type=\"input\" id=\"metro2\">\n\t\t\t\t<gov-form-label size=\"s\" slot=\"top\">Label of input</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-input id=\"kapr\" name=\"test-me\" placeholder=\"Placeholder\" size=\"m\">\n\t\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t</gov-form-input>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control type=\"input\" id=\"metro2\">\n\t\t\t\t<gov-form-label size=\"s\" slot=\"top\">Label of input</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-input id=\"kapr\" name=\"test-me\" value=\"Value of input\" size=\"l\">\n\t\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t</gov-form-input>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control type=\"input\" id=\"metro2\">\n\t\t\t\t<gov-form-label size=\"m\" slot=\"top\">Label of input</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-input id=\"kapr\" name=\"test-me\" value=\"Value of input\" size=\"xl\">\n\t\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t</gov-form-input>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\n\t\t\t<h3>\n\t\t\t\tRight icon\n\t\t\t</h3>\n\t\t\t<gov-form-control type=\"input\" id=\"metro2\">\n\t\t\t\t<gov-form-label slot=\"top\">Label of input</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-input id=\"kapr\" name=\"test-me\" placeholder=\"Placeholder\" size=\"s\">\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t</gov-form-input>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control type=\"input\" id=\"metro2\">\n\t\t\t\t<gov-form-label slot=\"top\">Label of input</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-input id=\"kapr\" name=\"test-me\" placeholder=\"Placeholder\" size=\"m\">\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t</gov-form-input>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control type=\"input\" id=\"metro2\">\n\t\t\t\t<gov-form-label size=\"s\" slot=\"top\">Label of input</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-input id=\"kapr\" name=\"test-me\" value=\"Value of input\" size=\"l\">\n\t\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t</gov-form-input>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control type=\"input\" id=\"metro2\">\n\t\t\t\t<gov-form-label size=\"m\" slot=\"top\">Label of input</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-input id=\"kapr\" name=\"test-me\" value=\"Value of input\" size=\"xl\">\n\t\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t</gov-form-input>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\n\t\t\t<h3>\n\t\t\t\tSuccess\n\t\t\t</h3>\n\t\t\t<gov-form-control type=\"input\" id=\"metro2\" success=\"true\">\n\t\t\t\t<gov-form-label size=\"s\" slot=\"top\">Label of input</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-input id=\"kapr\" name=\"test-me\" placeholder=\"Placeholder\" size=\"s\"></gov-form-input>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control type=\"input\" id=\"metro2\" success=\"true\">\n\t\t\t\t<gov-form-label size=\"s\" slot=\"top\">Label of input</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-input id=\"kapr\" name=\"test-me\" placeholder=\"Placeholder\" size=\"m\"></gov-form-input>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control type=\"input\" id=\"metro2\" success=\"True\">\n\t\t\t\t<gov-form-label size=\"s\" slot=\"top\">Label of input</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-input id=\"kapr\" name=\"test-me\" value=\"Value of input\" size=\"l\">\n\t\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t</gov-form-input>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control type=\"input\" id=\"metro2\" success=\"1\">\n\t\t\t\t<gov-form-label size=\"m\" slot=\"top\">Label of input</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-input id=\"kapr\" name=\"test-me\" value=\"Value of input\" size=\"xl\">\n\t\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t</gov-form-input>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\n\t\t\t<h3>\n\t\t\t\tInvalid\n\t\t\t</h3>\n\t\t\t<gov-form-control type=\"input\" id=\"metro2\">\n\t\t\t\t<gov-form-label size=\"s\" slot=\"top\">Label of input</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-input id=\"kapr\" name=\"test-me\" placeholder=\"Placeholder\" size=\"s\" invalid=\"true\"></gov-form-input>\n\t\t\t\t</gov-form-group>\n\t\t\t\t<gov-form-message slot=\"bottom\" variant=\"error\">\n\t\t\t\t\t<gov-icon slot=\"icon\" name=\"exclamation-triangle-fill\"></gov-icon>\n\t\t\t\t\tRequired\n\t\t\t\t</gov-form-message>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control type=\"input\" id=\"metro2\">\n\t\t\t\t<gov-form-label size=\"s\" slot=\"top\">Label of input</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-input id=\"kapr\" name=\"test-me\" placeholder=\"Placeholder\" size=\"m\" invalid=\"true\"></gov-form-input>\n\t\t\t\t</gov-form-group>\n\t\t\t\t<gov-form-message slot=\"bottom\" variant=\"error\">\n\t\t\t\t\t<gov-icon slot=\"icon\" name=\"exclamation-triangle-fill\"></gov-icon>\n\t\t\t\t\tRequired\n\t\t\t\t</gov-form-message>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control type=\"input\" id=\"metro2\">\n\t\t\t\t<gov-form-label size=\"s\" slot=\"top\">Label of input</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-input id=\"kapr\" name=\"test-me\" value=\"Value of input\" size=\"l\" invalid=\"true\">\n\t\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t</gov-form-input>\n\t\t\t\t</gov-form-group>\n\t\t\t\t<gov-form-message slot=\"bottom\" variant=\"error\">\n\t\t\t\t\t<gov-icon slot=\"icon\" name=\"exclamation-triangle-fill\"></gov-icon>\n\t\t\t\t\tRequired\n\t\t\t\t</gov-form-message>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control type=\"input\" id=\"metro2\">\n\t\t\t\t<gov-form-label size=\"m\" slot=\"top\">Label of input</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-input id=\"kapr\" name=\"test-me\" value=\"Value of input\" size=\"xl\" invalid=\"true\">\n\t\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t</gov-form-input>\n\t\t\t\t</gov-form-group>\n\t\t\t\t<gov-form-message slot=\"bottom\" variant=\"error\">\n\t\t\t\t\t<gov-icon slot=\"icon\" name=\"exclamation-triangle-fill\"></gov-icon>\n\t\t\t\t\tRequired\n\t\t\t\t</gov-form-message>\n\t\t\t</gov-form-control>\n\n\t\t\t<h3>\n\t\t\t\tDisabled\n\t\t\t</h3>\n\t\t\t<gov-form-control size=\"m\" type=\"input\" id=\"metro2\">\n\t\t\t\t<gov-form-label size=\"s\" slot=\"top\">Label of input</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-input id=\"kapr\" name=\"test-me\" placeholder=\"Placeholder\" size=\"s\" disabled>\n\t\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t</gov-form-input>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control size=\"m\" type=\"input\" id=\"metro2\">\n\t\t\t\t<gov-form-label size=\"s\" slot=\"top\">Label of input</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-input id=\"kapr\" name=\"test-me\" placeholder=\"Placeholder\" size=\"m\" disabled>\n\t\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t</gov-form-input>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control type=\"input\" id=\"metro2\">\n\t\t\t\t<gov-form-label size=\"s\" slot=\"top\">Label of input</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-input id=\"kapr\" name=\"test-me\" value=\"Value of input\" size=\"l\" disabled=\"True\">\n\t\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t</gov-form-input>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control type=\"input\" id=\"metro2\">\n\t\t\t\t<gov-form-label size=\"m\" slot=\"top\">Label of input</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-input id=\"kapr\" name=\"test-me\" value=\"Value of input\" size=\"xl\" disabled=\"1\">\n\t\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t</gov-form-input>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\n\n\t\t\t<!-- ----------------------------------------------------------------------------------------------------------------------------- -->\n\n\n\t\t\t<h3>\n\t\t\t\tPassword power\n\t\t\t</h3>\n\t\t\t<gov-form-password-power power=\"0\"></gov-form-password-power>\n\t\t\t<gov-form-password-power power=\"1\">slabé</gov-form-password-power>\n\t\t\t<gov-form-password-power power=\"2\">střední</gov-form-password-power>\n\t\t\t<gov-form-password-power power=\"3\">silné</gov-form-password-power>\n\n\n\t\t\t<!-- ----------------------------------------------------------------------------------------------------------------------------- -->\n\n\n\t\t\t<h2>Switch</h2>\n\t\t\t<h3>\n\t\t\t\tDefault\n\t\t\t</h3>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-switch name=\"test-me\" value=\"me\" size=\"xs\" checked>\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Souhlasím</gov-form-label>\n\t\t\t\t\t</gov-form-switch>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-switch name=\"test-me\" value=\"me\" size=\"s\" checked>\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Souhlasím</gov-form-label>\n\t\t\t\t\t</gov-form-switch>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-switch name=\"test-me\" value=\"me\" size=\"m\" checked>\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Souhlasím</gov-form-label>\n\t\t\t\t\t</gov-form-switch>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-switch name=\"test-me\" value=\"me\" size=\"l\" checked>\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Souhlasím</gov-form-label>\n\t\t\t\t\t</gov-form-switch>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\n\t\t\t<h3>\n\t\t\t\tWith message\n\t\t\t</h3>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-switch name=\"test-me\" value=\"me\" size=\"xs\" checked>\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Souhlasím</gov-form-label>\n\t\t\t\t\t</gov-form-switch>\n\t\t\t\t</gov-form-group>\n\t\t\t\t<gov-form-message slot=\"bottom\" variant=\"error\">\n\t\t\t\t\t<gov-icon slot=\"icon\" name=\"exclamation-triangle-fill\"></gov-icon>\n\t\t\t\t\tRequired\n\t\t\t\t</gov-form-message>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-switch name=\"test-me\" value=\"me\" size=\"s\" checked>\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Souhlasím</gov-form-label>\n\t\t\t\t\t</gov-form-switch>\n\t\t\t\t</gov-form-group>\n\t\t\t\t<gov-form-message slot=\"bottom\" variant=\"error\">\n\t\t\t\t\t<gov-icon slot=\"icon\" name=\"exclamation-triangle-fill\"></gov-icon>\n\t\t\t\t\tRequired\n\t\t\t\t</gov-form-message>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-switch name=\"test-me\" value=\"me\" size=\"m\" checked>\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Souhlasím</gov-form-label>\n\t\t\t\t\t</gov-form-switch>\n\t\t\t\t</gov-form-group>\n\t\t\t\t<gov-form-message slot=\"bottom\" variant=\"error\">\n\t\t\t\t\t<gov-icon slot=\"icon\" name=\"exclamation-triangle-fill\"></gov-icon>\n\t\t\t\t\tRequired\n\t\t\t\t</gov-form-message>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-switch name=\"test-me\" value=\"me\" size=\"l\" checked>\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Souhlasím</gov-form-label>\n\t\t\t\t\t</gov-form-switch>\n\t\t\t\t</gov-form-group>\n\t\t\t\t<gov-form-message slot=\"bottom\" variant=\"error\">\n\t\t\t\t\t<gov-icon slot=\"icon\" name=\"exclamation-triangle-fill\"></gov-icon>\n\t\t\t\t\tRequired\n\t\t\t\t</gov-form-message>\n\t\t\t</gov-form-control>\n\n\t\t\t<h3>\n\t\t\t\tWith label\n\t\t\t</h3>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-label size=\"s\" slot=\"top\">Label of toggle</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-switch name=\"test-me\" value=\"me\" size=\"xs\" checked>\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Souhlasím</gov-form-label>\n\t\t\t\t\t</gov-form-switch>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-label size=\"s\" slot=\"top\">Label of toggle</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-switch name=\"test-me\" value=\"me\" size=\"s\" checked>\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Souhlasím</gov-form-label>\n\t\t\t\t\t</gov-form-switch>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-label size=\"m\" slot=\"top\">Label of toggle</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-switch name=\"test-me\" value=\"me\" size=\"m\" checked>\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Souhlasím</gov-form-label>\n\t\t\t\t\t</gov-form-switch>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-label size=\"m\" slot=\"top\">Label of toggle</gov-form-label>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-switch name=\"test-me\" value=\"me\" size=\"l\" checked>\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Souhlasím</gov-form-label>\n\t\t\t\t\t</gov-form-switch>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\n\t\t\t<h3>\n\t\t\t\tDisabled\n\t\t\t</h3>\n\t\t\t<gov-form-control type=\"switch\">\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-switch name=\"test-me\" value=\"me\" size=\"xs\" disabled>\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Souhlasím</gov-form-label>\n\t\t\t\t\t</gov-form-switch>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control type=\"switch\">\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-switch name=\"test-me\" value=\"me\" size=\"s\" disabled=\"true\">\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Souhlasím</gov-form-label>\n\t\t\t\t\t</gov-form-switch>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control type=\"switch\">\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-switch name=\"test-me\" value=\"me\" size=\"m\" checked disabled=\"true\">\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Souhlasím</gov-form-label>\n\t\t\t\t\t</gov-form-switch>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control type=\"switch\">\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-switch name=\"test-me\" value=\"me\" size=\"l\" checked disabled=\"true\">\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Souhlasím</gov-form-label>\n\t\t\t\t\t</gov-form-switch>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\n\t\t\t<h3>\n\t\t\t\tInvalid\n\t\t\t</h3>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-switch invalid name=\"test-me\" value=\"me\" size=\"xs\" invalid=\"True\">\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Souhlasím</gov-form-label>\n\t\t\t\t\t</gov-form-switch>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-switch invalid name=\"test-me\" value=\"me\" size=\"s\" invalid=\"TRUE\">\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Souhlasím</gov-form-label>\n\t\t\t\t\t</gov-form-switch>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-switch invalid name=\"test-me\" value=\"me\" size=\"m\" invalid=\"true\" checked>\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Souhlasím</gov-form-label>\n\t\t\t\t\t</gov-form-switch>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t\t<gov-form-control>\n\t\t\t\t<gov-form-group>\n\t\t\t\t\t<gov-form-switch invalid name=\"test-me\" value=\"me\" size=\"l\" invalid=\"1\" checked>\n\t\t\t\t\t\t<gov-form-label slot=\"label\">Souhlasím</gov-form-label>\n\t\t\t\t\t</gov-form-switch>\n\t\t\t\t</gov-form-group>\n\t\t\t</gov-form-control>\n\t\t`\n\t}\n}\n\nif (customElements.get('forms-page') === undefined) {\n\tcustomElements.define('forms-page', FormsPage)\n}\n","class FormsRestructurePage extends HTMLElement {\n\tconnectedCallback() {\n\t\tthis.innerHTML = `\n\t\t\t<h4>Forms</h4>\n\t\t\t<div class=\"container-view container-view--inline\">\n\t\t\t</div>\n\t\t`\n\t}\n}\n\nif (customElements.get('forms-restructue-page') === undefined) {\n\tcustomElements.define('forms-restructue-page', FormsRestructurePage)\n}\n","class GridPage extends HTMLElement {\n\tconnectedCallback() {\n\t\tthis.innerHTML = `\n\t\t<h2>\n\t\t\tGrid\n\t\t</h2>\n\t\t<style>\n\t\t\t.gov-grid-item span {\n\t\t\t\tdisplay: block;\n\t\t\t\tbackground: lightgray;\n\t\t\t\tpadding: 10px;\n\t\t\t}\n\t\t</style>\n\t\t<gov-grid>\n\t\t\t<gov-grid-item size=\"1/12\"><span>1/12</span></gov-grid-item>\n\t\t\t<gov-grid-item size=\"11/12\"><span>11/12</span></gov-grid-item>\n\t\t</gov-grid>\n\t\t<br>\n\t\t<gov-grid>\n\t\t\t<gov-grid-item size=\"2/12\"><span>2/12</span></gov-grid-item>\n\t\t\t<gov-grid-item size=\"10/12\"><span>10/12</span></gov-grid-item>\n\t\t</gov-grid>\n\t\t<br>\n\t\t<gov-grid>\n\t\t\t<gov-grid-item size=\"3/12\"><span>3/12</span></gov-grid-item>\n\t\t\t<gov-grid-item size=\"9/12\"><span>9/12</span></gov-grid-item>\n\t\t</gov-grid>\n\t\t<br>\n\t\t<gov-grid>\n\t\t\t<gov-grid-item size=\"4/12\"><span>4/12</span></gov-grid-item>\n\t\t\t<gov-grid-item size=\"8/12\"><span>8/12</span></gov-grid-item>\n\t\t</gov-grid>\n\t\t<br>\n\t\t<gov-grid>\n\t\t\t<gov-grid-item size=\"5/12\"><span>5/12</span></gov-grid-item>\n\t\t\t<gov-grid-item size=\"7/12\"><span>7/12</span></gov-grid-item>\n\t\t</gov-grid>\n\t\t<br>\n\t\t<gov-grid>\n\t\t\t<gov-grid-item size=\"6/12\"><span>6/12</span></gov-grid-item>\n\t\t\t<gov-grid-item size=\"6/12\"><span>6/12</span></gov-grid-item>\n\t\t</gov-grid>\n\n\t\t<h2>Responsive grid</h2>\n\t\t<gov-grid>\n\t\t\t<gov-grid-item size-sm=\"6/12\" size-md=\"4/12\" size-lg=\"3/12\" size-xl=\"2/12\"><span>Cell 1</span></gov-grid-item>\n\t\t\t<gov-grid-item size-sm=\"6/12\" size-md=\"4/12\" size-lg=\"3/12\" size-xl=\"2/12\"><span>Cell 2</span></gov-grid-item>\n\t\t\t<gov-grid-item size-sm=\"6/12\" size-md=\"4/12\" size-lg=\"3/12\" size-xl=\"2/12\"><span>Cell 3</span></gov-grid-item>\n\t\t\t<gov-grid-item size-sm=\"6/12\" size-md=\"4/12\" size-lg=\"3/12\" size-xl=\"2/12\"><span>Cell 4</span></gov-grid-item>\n\t\t\t<gov-grid-item size-sm=\"6/12\" size-md=\"4/12\" size-lg=\"3/12\" size-xl=\"2/12\"><span>Cell 5</span></gov-grid-item>\n\t\t\t<gov-grid-item size-sm=\"6/12\" size-md=\"4/12\" size-lg=\"3/12\" size-xl=\"2/12\"><span>Cell 6</span></gov-grid-item>\n\t\t</gov-grid>\n\n\t\t<h2>Horizontal (X) align</h2>\n\t\t<gov-grid>\n\t\t\t<gov-grid-item size=\"4/12\"><span>Curabitur tincidunt leo elit, et accumsan leo vestibulum sit amet. Nulla quis nibh a diam ultricies volutpat. Pellentesque fringilla id diam in placerat. Pellentesque consectetur, nisl tincidunt scelerisque vulputate, diam velit cursus neque, eu posuere urna metus id justo. Ut et tempor risus. In volutpat nec diam semper iaculis. Nam tempus varius nunc, eu congue mauris ornare nec. Sed sodales et nisl vitae volutpat. Duis luctus metus ut justo vestibulum, id suscipit lacus suscipit. Vestibulum at nisi at turpis volutpat fermentum non id erat. Morbi mauris eros, porttitor non tellus sed, iaculis ultrices tellus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae.</span></gov-grid-item>\n\t\t\t<gov-grid-item size=\"4/12\"><span>Curabitur tincidunt leo elit, et accumsan leo vestibulum sit amet. Nulla quis nibh a diam ultricies volutpat. Pellentesque fringilla id diam in placerat. Pellentesque consectetur, nisl tincidunt scelerisque vulputate, diam velit cursus neque, eu posuere urna metus id justo. </span></gov-grid-item>\n\t\t\t<gov-grid-item size=\"4/12\"><span>Curabitur tincidunt leo elit, et accumsan leo vestibulum sit amet. Nulla quis nibh a diam ultricies volutpat. Pellentesque fringilla id diam in placerat. Pellentesque consectetur, nisl tincidunt scelerisque vulputate, diam velit cursus neque, eu posuere urna metus id justo. Ut et tempor risus. In volutpat nec diam semper iaculis. Nam tempus varius nunc, eu congue mauris ornare nec. Sed sodales et nisl vitae volutpat. Duis luctus metus ut justo vestibulum, id suscipit lacus suscipit. Vestibulum at nisi at turpis volutpat fermentum non id erat.</span></gov-grid-item>\n\t\t</gov-grid>\n\t\t<br>\n\t\t<gov-grid align-x=\"middle\">\n\t\t\t<gov-grid-item size=\"4/12\"><span>Curabitur tincidunt leo elit, et accumsan leo vestibulum sit amet. Nulla quis nibh a diam ultricies volutpat. Pellentesque fringilla id diam in placerat. Pellentesque consectetur, nisl tincidunt scelerisque vulputate, diam velit cursus neque, eu posuere urna metus id justo. Ut et tempor risus. In volutpat nec diam semper iaculis. Nam tempus varius nunc, eu congue mauris ornare nec. Sed sodales et nisl vitae volutpat. Duis luctus metus ut justo vestibulum, id suscipit lacus suscipit. Vestibulum at nisi at turpis volutpat fermentum non id erat. Morbi mauris eros, porttitor non tellus sed, iaculis ultrices tellus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae.</span></gov-grid-item>\n\t\t\t<gov-grid-item size=\"4/12\"><span>Curabitur tincidunt leo elit, et accumsan leo vestibulum sit amet. Nulla quis nibh a diam ultricies volutpat. Pellentesque fringilla id diam in placerat. Pellentesque consectetur, nisl tincidunt scelerisque vulputate, diam velit cursus neque, eu posuere urna metus id justo. </span></gov-grid-item>\n\t\t\t<gov-grid-item size=\"4/12\"><span>Curabitur tincidunt leo elit, et accumsan leo vestibulum sit amet. Nulla quis nibh a diam ultricies volutpat. Pellentesque fringilla id diam in placerat. Pellentesque consectetur, nisl tincidunt scelerisque vulputate, diam velit cursus neque, eu posuere urna metus id justo. Ut et tempor risus. In volutpat nec diam semper iaculis. Nam tempus varius nunc, eu congue mauris ornare nec. Sed sodales et nisl vitae volutpat. Duis luctus metus ut justo vestibulum, id suscipit lacus suscipit. Vestibulum at nisi at turpis volutpat fermentum non id erat.</span></gov-grid-item>\n\t\t</gov-grid>\n\t\t<br>\n\t\t<gov-grid align-x=\"bottom\">\n\t\t\t<gov-grid-item size=\"4/12\"><span>Curabitur tincidunt leo elit, et accumsan leo vestibulum sit amet. Nulla quis nibh a diam ultricies volutpat. Pellentesque fringilla id diam in placerat. Pellentesque consectetur, nisl tincidunt scelerisque vulputate, diam velit cursus neque, eu posuere urna metus id justo. Ut et tempor risus. In volutpat nec diam semper iaculis. Nam tempus varius nunc, eu congue mauris ornare nec. Sed sodales et nisl vitae volutpat. Duis luctus metus ut justo vestibulum, id suscipit lacus suscipit. Vestibulum at nisi at turpis volutpat fermentum non id erat. Morbi mauris eros, porttitor non tellus sed, iaculis ultrices tellus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae.</span></gov-grid-item>\n\t\t\t<gov-grid-item size=\"4/12\"><span>Curabitur tincidunt leo elit, et accumsan leo vestibulum sit amet. Nulla quis nibh a diam ultricies volutpat. Pellentesque fringilla id diam in placerat. Pellentesque consectetur, nisl tincidunt scelerisque vulputate, diam velit cursus neque, eu posuere urna metus id justo. </span></gov-grid-item>\n\t\t\t<gov-grid-item size=\"4/12\"><span>Curabitur tincidunt leo elit, et accumsan leo vestibulum sit amet. Nulla quis nibh a diam ultricies volutpat. Pellentesque fringilla id diam in placerat. Pellentesque consectetur, nisl tincidunt scelerisque vulputate, diam velit cursus neque, eu posuere urna metus id justo. Ut et tempor risus. In volutpat nec diam semper iaculis. Nam tempus varius nunc, eu congue mauris ornare nec. Sed sodales et nisl vitae volutpat. Duis luctus metus ut justo vestibulum, id suscipit lacus suscipit. Vestibulum at nisi at turpis volutpat fermentum non id erat.</span></gov-grid-item>\n\t\t</gov-grid>\n\t\t<br>\n\n\t\t<h2>Vertical (Y) align</h2>\n\t\t<gov-grid>\n\t\t\t<gov-grid-item size=\"4/12\"><span>Curabitur tincidunt leo elit, et accumsan leo vestibulum sit amet. Nulla quis nibh a diam ultricies volutpat. Pellentesque fringilla id diam in placerat. Pellentesque consectetur, nisl tincidunt scelerisque vulputate, diam velit cursus neque, eu posuere urna metus id justo. </span></gov-grid-item>\n\t\t</gov-grid>\n\t\t<br>\n\t\t<gov-grid align-y=\"center\">\n\t\t\t<gov-grid-item size=\"4/12\"><span>Curabitur tincidunt leo elit, et accumsan leo vestibulum sit amet. Nulla quis nibh a diam ultricies volutpat. Pellentesque fringilla id diam in placerat. Pellentesque consectetur, nisl tincidunt scelerisque vulputate, diam velit cursus neque, eu posuere urna metus id justo. </span></gov-grid-item>\n\t\t</gov-grid>\n\t\t<br>\n\t\t<gov-grid align-y=\"right\">\n\t\t\t<gov-grid-item size=\"4/12\"><span>Curabitur tincidunt leo elit, et accumsan leo vestibulum sit amet. Nulla quis nibh a diam ultricies volutpat. Pellentesque fringilla id diam in placerat. Pellentesque consectetur, nisl tincidunt scelerisque vulputate, diam velit cursus neque, eu posuere urna metus id justo. </span></gov-grid-item>\n\t\t</gov-grid>\n\t\t\t`\n\t}\n}\n\nif (customElements.get('grid-page') === undefined) {\n\tcustomElements.define('grid-page', GridPage)\n}\n","class HomePage extends HTMLElement {\n\tconnectedCallback() {\n\t\tthis.innerHTML = ``\n\t}\n}\n\nif (customElements.get('home-page') === undefined) {\n\tcustomElements.define('home-page', HomePage)\n}\n","class LayoutPage extends HTMLElement {\n\tconnectedCallback() {\n\t\tthis.innerHTML = `\n\t\t<h2>Layout</h2>\n\n\t\t<gov-container>\n\t\t\t<gov-layout type=\"stretch\">\n\t\t\t\t<gov-layout-column>\n\t\t\t\t\t<p><b>Stretch</b> Ut sollicitudin risus sit amet placerat fermentum. Sed libero mauris, maximus cursus magna tincidunt, efficitur congue enim. Suspendisse potenti. Sed ac eleifend leo. Nullam a sapien in diam semper faucibus sit amet vel nisi. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse eu faucibus mi. Morbi leo ipsum, tempus vel vulputate non, varius et lectus. Donec justo lacus, congue hendrerit felis sit amet, commodo lobortis neque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Nulla vulputate urna sapien. Proin imperdiet rhoncus dictum. Pellentesque tempor ultrices tortor, ac mollis lorem mollis non. Phasellus sit amet maximus ex, id scelerisque nulla. Etiam eu orci a nulla semper maximus et at quam.</p>\n\t\t\t\t</gov-layout-column>\n\t\t\t</gov-layout>\n\t\t\t<br>\n\t\t\t<gov-layout>\n\t\t\t\t<gov-layout-column>\n\t\t\t\t\t<p><b>Stretch</b> Ut sollicitudin risus sit amet placerat fermentum. Sed libero mauris, maximus cursus magna tincidunt, efficitur congue enim. Suspendisse potenti. Sed ac eleifend leo. Nullam a sapien in diam semper faucibus sit amet vel nisi. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse eu faucibus mi. Morbi leo ipsum, tempus vel vulputate non, varius et lectus. Donec justo lacus, congue hendrerit felis sit amet, commodo lobortis neque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Nulla vulputate urna sapien. Proin imperdiet rhoncus dictum. Pellentesque tempor ultrices tortor, ac mollis lorem mollis non. Phasellus sit amet maximus ex, id scelerisque nulla. Etiam eu orci a nulla semper maximus et at quam.</p>\n\t\t\t\t</gov-layout-column>\n\t\t\t\t<gov-layout-column>\n\t\t\t\t\t<p><b>Stretch</b> Ut sollicitudin risus sit amet placerat fermentum. Sed libero mauris, maximus cursus magna tincidunt, efficitur congue enim. Suspendisse potenti. Sed ac eleifend leo. Nullam a sapien in diam semper faucibus sit amet vel nisi. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse eu faucibus mi. Morbi leo ipsum, tempus vel vulputate non, varius et lectus. Donec justo lacus, congue hendrerit felis sit amet, commodo lobortis neque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Nulla vulputate urna sapien. Proin imperdiet rhoncus dictum. Pellentesque tempor ultrices tortor, ac mollis lorem mollis non. Phasellus sit amet maximus ex, id scelerisque nulla. Etiam eu orci a nulla semper maximus et at quam.</p>\n\t\t\t\t</gov-layout-column>\n\t\t\t</gov-layout>\n\t\t\t<br>\n\t\t\t<gov-layout>\n\t\t\t\t<gov-layout-column>\n\t\t\t\t\t<p><b>Stretch</b> Ut sollicitudin risus sit amet placerat fermentum. Sed libero mauris, maximus cursus magna tincidunt, efficitur congue enim. Suspendisse potenti. Sed ac eleifend leo. Nullam a sapien in diam semper faucibus sit amet vel nisi. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse eu faucibus mi. Morbi leo ipsum, tempus vel vulputate non, varius et lectus. Donec justo lacus, congue hendrerit felis sit amet, commodo lobortis neque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Nulla vulputate urna sapien. Proin imperdiet rhoncus dictum. Pellentesque tempor ultrices tortor, ac mollis lorem mollis non. Phasellus sit amet maximus ex, id scelerisque nulla. Etiam eu orci a nulla semper maximus et at quam.</p>\n\t\t\t\t</gov-layout-column>\n\t\t\t\t<gov-layout-column>\n\t\t\t\t\t<p><b>Stretch</b> Ut sollicitudin risus sit amet placerat fermentum. Sed libero mauris, maximus cursus magna tincidunt, efficitur congue enim. Suspendisse potenti. Sed ac eleifend leo. Nullam a sapien in diam semper faucibus sit amet vel nisi. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse eu faucibus mi. Morbi leo ipsum, tempus vel vulputate non, varius et lectus. Donec justo lacus, congue hendrerit felis sit amet, commodo lobortis neque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Nulla vulputate urna sapien. Proin imperdiet rhoncus dictum. Pellentesque tempor ultrices tortor, ac mollis lorem mollis non. Phasellus sit amet maximus ex, id scelerisque nulla. Etiam eu orci a nulla semper maximus et at quam.</p>\n\t\t\t\t</gov-layout-column>\n\t\t\t\t<gov-layout-column>\n\t\t\t\t\t<p><b>Stretch</b> Ut sollicitudin risus sit amet placerat fermentum. Sed libero mauris, maximus cursus magna tincidunt, efficitur congue enim. Suspendisse potenti. Sed ac eleifend leo. Nullam a sapien in diam semper faucibus sit amet vel nisi. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse eu faucibus mi. Morbi leo ipsum, tempus vel vulputate non, varius et lectus. Donec justo lacus, congue hendrerit felis sit amet, commodo lobortis neque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Nulla vulputate urna sapien. Proin imperdiet rhoncus dictum. Pellentesque tempor ultrices tortor, ac mollis lorem mollis non. Phasellus sit amet maximus ex, id scelerisque nulla. Etiam eu orci a nulla semper maximus et at quam.</p>\n\t\t\t\t</gov-layout-column>\n\t\t\t</gov-layout>\n\t\t\t<br>\n\t\t\t<gov-layout type=\"aside\" variant=\"right\">\n\t\t\t\t<gov-layout-column>\n\t\t\t\t\t<p><b>Aside right</b> Ut sollicitudin risus sit amet placerat fermentum. Sed libero mauris, maximus cursus magna tincidunt, efficitur congue enim. Suspendisse potenti. Sed ac eleifend leo. Nullam a sapien in diam semper faucibus sit amet vel nisi. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse eu faucibus mi. Morbi leo ipsum, tempus vel vulputate non, varius et lectus. Donec justo lacus, congue hendrerit felis sit amet, commodo lobortis neque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Nulla vulputate urna sapien. Proin imperdiet rhoncus dictum. Pellentesque tempor ultrices tortor, ac mollis lorem mollis non. Phasellus sit amet maximus ex, id scelerisque nulla. Etiam eu orci a nulla semper maximus et at quam.</p>\n\t\t\t\t</gov-layout-column>\n\t\t\t\t<gov-layout-column>\n\t\t\t\t\t<p><b>Aside right</b> Ut sollicitudin risus sit amet placerat fermentum. Sed libero mauris, maximus cursus magna tincidunt, efficitur congue enim. Suspendisse potenti. Sed ac eleifend leo. Nullam a sapien in diam semper faucibus sit amet vel nisi. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse eu faucibus mi. Morbi leo ipsum, tempus vel vulputate non, varius et lectus.</p>\n\t\t\t\t</gov-layout-column>\n\t\t\t</gov-layout>\n\t\t\t<br>\n\t\t\t<gov-layout type=\"aside\" variant=\"left\">\n\t\t\t\t<gov-layout-column>\n\t\t\t\t\t<p><b>Aside left</b> Ut sollicitudin risus sit amet placerat fermentum. Sed libero mauris, maximus cursus magna tincidunt, efficitur congue enim. Suspendisse potenti. Sed ac eleifend leo. Nullam a sapien in diam semper faucibus sit amet vel nisi. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse eu faucibus mi. Morbi leo ipsum, tempus vel vulputate non, varius et lectus.</p>\n\t\t\t\t</gov-layout-column>\n\t\t\t\t<gov-layout-column>\n\t\t\t\t\t<p><b>Aside left</b> Ut sollicitudin risus sit amet placerat fermentum. Sed libero mauris, maximus cursus magna tincidunt, efficitur congue enim. Suspendisse potenti. Sed ac eleifend leo. Nullam a sapien in diam semper faucibus sit amet vel nisi. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse eu faucibus mi. Morbi leo ipsum, tempus vel vulputate non, varius et lectus. Donec justo lacus, congue hendrerit felis sit amet, commodo lobortis neque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Nulla vulputate urna sapien. Proin imperdiet rhoncus dictum. Pellentesque tempor ultrices tortor, ac mollis lorem mollis non. Phasellus sit amet maximus ex, id scelerisque nulla. Etiam eu orci a nulla semper maximus et at quam.</p>\n\t\t\t\t</gov-layout-column>\n\t\t\t</gov-layout>\n\t\t\t<br>\n\t\t\t<gov-layout type=\"aside\" variant=\"right\" inverse>\n\t\t\t\t<gov-layout-column>\n\t\t\t\t\t<p><b>Aside right inverse</b> Ut sollicitudin risus sit amet placerat fermentum. Sed libero mauris, maximus cursus magna tincidunt, efficitur congue enim. Suspendisse potenti. Sed ac eleifend leo. Nullam a sapien in diam semper faucibus sit amet vel nisi. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse eu faucibus mi. Morbi leo ipsum, tempus vel vulputate non, varius et lectus. Donec justo lacus, congue hendrerit felis sit amet, commodo lobortis neque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Nulla vulputate urna sapien. Proin imperdiet rhoncus dictum. Pellentesque tempor ultrices tortor, ac mollis lorem mollis non. Phasellus sit amet maximus ex, id scelerisque nulla. Etiam eu orci a nulla semper maximus et at quam.</p>\n\t\t\t\t</gov-layout-column>\n\t\t\t\t<gov-layout-column>\n\t\t\t\t\t<p><b>Aside right inverse</b> Ut sollicitudin risus sit amet placerat fermentum. Sed libero mauris, maximus cursus magna tincidunt, efficitur congue enim. Suspendisse potenti. Sed ac eleifend leo. Nullam a sapien in diam semper faucibus sit amet vel nisi. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse eu faucibus mi. Morbi leo ipsum, tempus vel vulputate non, varius et lectus.</p>\n\t\t\t\t</gov-layout-column>\n\t\t\t</gov-layout>\n\t\t\t<br>\n\t\t\t<gov-layout type=\"aside\" variant=\"left\" inverse>\n\t\t\t\t<gov-layout-column>\n\t\t\t\t\t<p><b>Aside left inverse</b> Ut sollicitudin risus sit amet placerat fermentum. Sed libero mauris, maximus cursus magna tincidunt, efficitur congue enim. Suspendisse potenti. Sed ac eleifend leo. Nullam a sapien in diam semper faucibus sit amet vel nisi. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse eu faucibus mi. Morbi leo ipsum, tempus vel vulputate non, varius et lectus.</p>\n\t\t\t\t</gov-layout-column>\n\t\t\t\t<gov-layout-column>\n\t\t\t\t\t<p><b>Aside left inverse</b> Ut sollicitudin risus sit amet placerat fermentum. Sed libero mauris, maximus cursus magna tincidunt, efficitur congue enim. Suspendisse potenti. Sed ac eleifend leo. Nullam a sapien in diam semper faucibus sit amet vel nisi. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse eu faucibus mi. Morbi leo ipsum, tempus vel vulputate non, varius et lectus. Donec justo lacus, congue hendrerit felis sit amet, commodo lobortis neque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Nulla vulputate urna sapien. Proin imperdiet rhoncus dictum. Pellentesque tempor ultrices tortor, ac mollis lorem mollis non. Phasellus sit amet maximus ex, id scelerisque nulla. Etiam eu orci a nulla semper maximus et at quam.</p>\n\t\t\t\t</gov-layout-column>\n\t\t\t</gov-layout>\n\t\t\t<br>\n\t\t\t<gov-layout type=\"text\" variant=\"left\">\n\t\t\t\t<gov-layout-column>\n\t\t\t\t\t<p><b>Text left</b> Ut sollicitudin risus sit amet placerat fermentum. Sed libero mauris, maximus cursus magna tincidunt, efficitur congue enim. Suspendisse potenti. Sed ac eleifend leo. Nullam a sapien in diam semper faucibus sit amet vel nisi. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse eu faucibus mi. Morbi leo ipsum, tempus vel vulputate non, varius et lectus. Donec justo lacus, congue hendrerit felis sit amet, commodo lobortis neque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Nulla vulputate urna sapien. Proin imperdiet rhoncus dictum. Pellentesque tempor ultrices tortor, ac mollis lorem mollis non. Phasellus sit amet maximus ex, id scelerisque nulla. Etiam eu orci a nulla semper maximus et at quam.</p>\n\t\t\t\t</gov-layout-column>\n\t\t\t</gov-layout>\n\t\t\t<br>\n\t\t\t<gov-layout type=\"text\">\n\t\t\t\t<gov-layout-column>\n\t\t\t\t\t<p><b>Text</b> Ut sollicitudin risus sit amet placerat fermentum. Sed libero mauris, maximus cursus magna tincidunt, efficitur congue enim. Suspendisse potenti. Sed ac eleifend leo. Nullam a sapien in diam semper faucibus sit amet vel nisi. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse eu faucibus mi. Morbi leo ipsum, tempus vel vulputate non, varius et lectus. Donec justo lacus, congue hendrerit felis sit amet, commodo lobortis neque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Nulla vulputate urna sapien. Proin imperdiet rhoncus dictum. Pellentesque tempor ultrices tortor, ac mollis lorem mollis non. Phasellus sit amet maximus ex, id scelerisque nulla. Etiam eu orci a nulla semper maximus et at quam.</p>\n\t\t\t\t</gov-layout-column>\n\t\t\t</gov-layout>\n\t\t\t<br>\n\t\t\t<gov-layout type=\"text\" variant=\"right\">\n\t\t\t\t<gov-layout-column>\n\t\t\t\t\t<p><b>Text right</b> Ut sollicitudin risus sit amet placerat fermentum. Sed libero mauris, maximus cursus magna tincidunt, efficitur congue enim. Suspendisse potenti. Sed ac eleifend leo. Nullam a sapien in diam semper faucibus sit amet vel nisi. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse eu faucibus mi. Morbi leo ipsum, tempus vel vulputate non, varius et lectus. Donec justo lacus, congue hendrerit felis sit amet, commodo lobortis neque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Nulla vulputate urna sapien. Proin imperdiet rhoncus dictum. Pellentesque tempor ultrices tortor, ac mollis lorem mollis non. Phasellus sit amet maximus ex, id scelerisque nulla. Etiam eu orci a nulla semper maximus et at quam.</p>\n\t\t\t\t</gov-layout-column>\n\t\t\t</gov-layout>\n\t\t\t<br>\n\t\t</gov-container>\n\t\t<br>\n\n\t\t`\n\t}\n}\n\nif (customElements.get('layout-page') === undefined) {\n\tcustomElements.define('layout-page', LayoutPage)\n}\n","class LoadingPage extends HTMLElement {\n\tconnectedCallback() {\n\t\tsetTimeout(function () {\n\t\t\tdocument.getElementById('btn').addEventListener('gov-click', function () {\n\t\t\t\tdocument.getElementById('loading').setAttribute('loading', 'true')\n\t\t\t})\n\t\t}, 500)\n\t\tthis.innerHTML = `\n\t\t\t<h2>Loading</h2>\n\t\t\t<div class=\"preview-container\">\n <div class=\"skeletons-defaults\">\n <h2>Default</h2>\n <gov-skeleton variant=\"success\"></gov-skeleton> \n </div>\n <div class=\"skeletons-appearance-circle\">\n <h2>Default circle</h2>\n <gov-skeleton shape=\"circle\"> </gov-skeleton>\n </div> \n <div class=\"skeletons-appearance-circle\">\n <h2>Default rect</h2>\n <gov-skeleton shape=\"rect\"> </gov-skeleton>\n </div> \n <div class=\"skeletons-with-count\">\n <h2>Default 4 rows</h2>\n <gov-skeleton count=\"2\"></gov-skeleton>\n </div> \n <div class=\"skeletons-animation-no-animation\">\n <h2>Without animation</h2>\n <gov-skeleton animation=\"false\"></gov-skeleton>\n </div>\n <div class=\"skeletons-animation-pulse\">\n <h2>Pulse animation</h2>\n <gov-skeleton animation=\"pulse\"></gov-skeleton>\n </div>\n <div class=\"skeletons-animation-progress\">\n <h2>Progress animation</h2>\n <gov-skeleton animation=\"progress\"></gov-skeleton>\n </div>\n <div class=\"skeletons-with-theming\">\n <h2>Custom styles</h2>\n <style>\n .custom-skeleton {\n --skeleton-width: 100px;\n --skeleton-height: 100px;\n --skeleton-background: #cccccc;\n --skeleton-border-radius: 20px;\n }\n </style>\n <gov-skeleton></gov-skeleton>\n </div>\n <div>\n <h2>Custom width</h2>\n <gov-skeleton width=\"500px\"></gov-skeleton>\n </div>\n <div>\n <h2>Custom height</h2>\n <gov-skeleton height=\"80px\"></gov-skeleton>\n </div>\n </div>\n\t\t\t\n\t\t\t\n\t\t\t<gov-button variant=\"primary\" id=\"btn\" wcag-label=\"Zobrazit načítání\">Zobrazit načítání</gov-button>\n\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\n\t\t\t<gov-loading id=\"loading\">Načítání</gov-loading>\n\t\t`\n\t}\n}\n\nif (customElements.get('loading-page') === undefined) {\n\tcustomElements.define('loading-page', LoadingPage)\n}\n","class MessagePage extends HTMLElement {\n\tconnectedCallback() {\n\t\tthis.innerHTML = `\n\t\t<h2>\n\t\t\tContent Message\n\t\t</h2>\n\t\t<gov-message variant=\"error\">\n\t\t\t<gov-icon name=\"info\" slot=\"icon\"></gov-icon>\n\t\t\t<p>\n\t\t\t\tFont awesome. Default - Od 20. 12. 2020 do 14:00 h do 20. 12. 2020 do 15:00 h bude provedena plánovaná odstávka serverů. V uvedeném termínu bude nedostupné přihlášení k Portálu občana prostřednictvím datové schránky. Více informací <a href=\"#\">zde</a>.\n\t\t\t</p>\n\t\t</gov-message>\n\t\t<br>\n\t\t<gov-message variant=\"primary\">\n\t\t\t<gov-icon name=\"info\" slot=\"icon\"></gov-icon>\n\t\t\t<p>\n\t\t\t\tFont awesome. Default - Od 20. 12. 2020 do 14:00 h do 20. 12. 2020 do 15:00 h bude provedena plánovaná odstávka serverů. V uvedeném termínu bude nedostupné přihlášení k Portálu občana prostřednictvím datové schránky. Více informací <a href=\"#\">zde</a>.\n\t\t\t</p>\n\t\t</gov-message>\n\t\t<br>\n\t\t<gov-message variant=\"success\">\n\t\t\t<gov-icon name=\"info\" slot=\"icon\"></gov-icon>\n\t\t\t<p>\n\t\t\t\tFont awesome. Default - Od 20. 12. 2020 do 14:00 h do 20. 12. 2020 do 15:00 h bude provedena plánovaná odstávka serverů. V uvedeném termínu bude nedostupné přihlášení k Portálu občana prostřednictvím datové schránky. Více informací <a href=\"#\">zde</a>.\n\t\t\t</p>\n\t\t</gov-message>\n\t\t<br>\n\t\t<gov-message variant=\"warning\">\n\t\t\t<gov-icon name=\"info\" slot=\"icon\"></gov-icon>\n\t\t\t<p>\n\t\t\t\tFont awesome. Default - Od 20. 12. 2020 do 14:00 h do 20. 12. 2020 do 15:00 h bude provedena plánovaná odstávka serverů. V uvedeném termínu bude nedostupné přihlášení k Portálu občana prostřednictvím datové schránky. Více informací <a href=\"#\">zde</a>.\n\t\t\t</p>\n\t\t</gov-message>\n\t\t<br>\n\t\t<gov-message variant=\"secondary\">\n\t\t\t<gov-icon name=\"info\" slot=\"icon\"></gov-icon>\n\t\t\t<p>\n\t\t\t\tFont awesome. Default - Od 20. 12. 2020 do 14:00 h do 20. 12. 2020 do 15:00 h bude provedena plánovaná odstávka serverů. V uvedeném termínu bude nedostupné přihlášení k Portálu občana prostřednictvím datové schránky. Více informací <a href=\"#\">zde</a>.\n\t\t\t</p>\n\t\t</gov-message>\n\t\t<br>\n\n\t\t<div class=\"gov-bg--secondary-300\" style=\"padding: 48px\">\n\t\t\t<h3>Inverse</h3>\n\t\t\t<gov-message inverse variant=\"error\">\n\t\t\t\t<gov-icon name=\"info\" slot=\"icon\"></gov-icon>\n\t\t\t\t<p>\n\t\t\t\t\tFont awesome. Default - Od 20. 12. 2020 do 14:00 h do 20. 12. 2020 do 15:00 h bude provedena plánovaná odstávka serverů. V uvedeném termínu bude nedostupné přihlášení k Portálu občana prostřednictvím datové schránky. Více informací <a href=\"#\">zde</a>.\n\t\t\t\t</p>\n\t\t\t</gov-message>\n\t\t\t<br>\n\t\t\t<gov-message inverse variant=\"primary\">\n\t\t\t\t<gov-icon name=\"info\" slot=\"icon\"></gov-icon>\n\t\t\t\t<p>\n\t\t\t\t\tFont awesome. Default - Od 20. 12. 2020 do 14:00 h do 20. 12. 2020 do 15:00 h bude provedena plánovaná odstávka serverů. V uvedeném termínu bude nedostupné přihlášení k Portálu občana prostřednictvím datové schránky. Více informací <a href=\"#\">zde</a>.\n\t\t\t\t</p>\n\t\t\t</gov-message>\n\t\t\t<br>\n\t\t\t<gov-message inverse variant=\"success\">\n\t\t\t\t<gov-icon name=\"info\" slot=\"icon\"></gov-icon>\n\t\t\t\t<p>\n\t\t\t\t\tFont awesome. Default - Od 20. 12. 2020 do 14:00 h do 20. 12. 2020 do 15:00 h bude provedena plánovaná odstávka serverů. V uvedeném termínu bude nedostupné přihlášení k Portálu občana prostřednictvím datové schránky. Více informací <a href=\"#\">zde</a>.\n\t\t\t\t</p>\n\t\t\t</gov-message>\n\t\t\t<br>\n\t\t\t<gov-message inverse variant=\"warning\">\n\t\t\t\t<gov-icon name=\"info\" slot=\"icon\"></gov-icon>\n\t\t\t\t<p>\n\t\t\t\t\tFont awesome. Default - Od 20. 12. 2020 do 14:00 h do 20. 12. 2020 do 15:00 h bude provedena plánovaná odstávka serverů. V uvedeném termínu bude nedostupné přihlášení k Portálu občana prostřednictvím datové schránky. Více informací <a href=\"#\">zde</a>.\n\t\t\t\t</p>\n\t\t\t</gov-message>\n\t\t\t<br>\n\t\t\t<gov-message inverse variant=\"secondary\">\n\t\t\t\t<gov-icon name=\"info\" slot=\"icon\"></gov-icon>\n\t\t\t\t<p>\n\t\t\t\t\tFont awesome. Default - Od 20. 12. 2020 do 14:00 h do 20. 12. 2020 do 15:00 h bude provedena plánovaná odstávka serverů. V uvedeném termínu bude nedostupné přihlášení k Portálu občana prostřednictvím datové schránky. Více informací <a href=\"#\">zde</a>.\n\t\t\t\t</p>\n\t\t\t</gov-message>\n\t\t</div>\n\n\t\t<h3>Shadow</h3>\n\t\t<gov-message variant=\"secondary\" shadow>\n\t\t\t<gov-icon name=\"info\" slot=\"icon\"></gov-icon>\n\t\t\t<p>\n\t\t\t\tFont awesome. Default - Od 20. 12. 2020 do 14:00 h do 20. 12. 2020 do 15:00 h bude provedena plánovaná odstávka serverů. V uvedeném termínu bude nedostupné přihlášení k Portálu občana prostřednictvím datové schránky. Více informací <a href=\"#\">zde</a>.\n\t\t\t</p>\n\t\t</gov-message>\n\t\t\t`\n\t}\n}\n\nif (customElements.get('message-page') === undefined) {\n\tcustomElements.define('message-page', MessagePage)\n}\n","class ModalPage extends HTMLElement {\n\tconnectedCallback() {\n\t\tsetTimeout(function () {\n\t\t\tdocument.getElementById('btn').addEventListener('gov-click', function () {\n\t\t\t\tdocument.getElementById('modal').setAttribute('open', 'true')\n\t\t\t})\n\t\t}, 500)\n\t\tthis.innerHTML = `\n\t\t\t<h2>Modal</h2>\n\t\t\t<gov-button variant=\"primary\" id=\"btn\" wcag-label=\"Zobrazit formulář o výši dávky\">Vyplnit formulář</gov-button>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\n\t\t\t<gov-modal label=\"Podání daňového přiznání\" id=\"modal\" wcag-close-label=\"Zavřít modal žádosti o dávku\">\n\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t<h3>Obsah modálního okna</h3>\n\t\t\t\t<p>Bude tvořen libovolnými komponentami</p>\n\t\t\t\t<h3>Obsah modálního okna</h3>\n\t\t\t\t<p>\n\t\t\t\t\tLorem ipsum dolor sit amet, consectetur adipiscing elit. Duis eros libero, pulvinar vitae tempor at, laoreet quis mi. Vivamus vitae orci mi. Sed eget nisi convallis, condimentum diam a, fermentum risus. Proin vulputate pretium nisi sit amet commodo. Fusce ac magna velit. Maecenas sit amet sem quis arcu lobortis varius a non urna. Morbi ex neque, tempor bibendum sagittis vitae, vulputate ut nibh. Vestibulum sit amet pretium metus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Ut molestie varius nisi, sed mattis quam mollis vulputate. Morbi semper, purus sed ornare sodales, risus tellus porta massa, et eleifend erat diam vitae ex.\n\t\t\t\t</p>\n\t\t\t\t<p>\n\t\t\t\t\tSuspendisse quis justo nibh. Aenean id purus mattis, posuere urna a, blandit magna. Aenean a ante eleifend, ornare ipsum quis, bibendum mauris. Integer eget posuere sem, in tincidunt quam. Phasellus massa erat, sodales vel hendrerit vitae, ultrices quis dolor. Fusce id vestibulum sem, eu pretium sem. Praesent lacinia, odio non aliquam cursus, arcu ipsum ornare diam, vitae pharetra erat dui non velit. Quisque eu tempus mi. Nam a diam mauris. Quisque sollicitudin risus eu neque accumsan vulputate. Ut tincidunt metus eu nulla sodales, vitae dictum justo ornare. In tincidunt lobortis nunc, ac imperdiet odio condimentum nec. Ut aliquet pulvinar ligula vitae tincidunt. Phasellus egestas ut leo pretium laoreet. Fusce et vestibulum purus. Duis semper sem massa, non dignissim nunc aliquam sit amet.\n\t\t\t\t</p>\n\t\t\t\t<p>\n\t\t\t\t\tPraesent blandit mattis neque varius sagittis. Nulla ac scelerisque justo. Vestibulum aliquet blandit pharetra. Quisque lacus mi, tincidunt ac dui at, lobortis efficitur nisi. Fusce laoreet maximus purus, sit amet pulvinar mauris facilisis in. Integer fermentum elit eu aliquam sodales. Curabitur laoreet pharetra est rutrum posuere. In at eros tempus ex sodales facilisis. Interdum et malesuada fames ac ante ipsum primis in faucibus. Cras placerat dolor ac urna elementum facilisis. Aenean diam nibh, sollicitudin in porta sed, laoreet in nisl. Ut scelerisque tortor augue, vitae fermentum dui ornare non. Nulla fringilla libero non metus venenatis, eu maximus massa placerat. Praesent elementum convallis metus, vel iaculis sem pretium cursus.\n\t\t\t\t</p>\n\t\t\t\t<gov-button slot=\"footer\" variant=\"primary\" wcag-label=\"Vyplnit formulář o výši dávky\">Vyplnit formulář</gov-button>\n\t\t\t</gov-modal>\n\t\t`\n\t}\n}\n\nif (customElements.get('modal-page') === undefined) {\n\tcustomElements.define('modal-page', ModalPage)\n}\n","class NavPage extends HTMLElement {\n\tconnectedCallback() {\n\t\tthis.innerHTML = `\n\n\t\t\t<h4>Nav</h4>\n\n\t\t\t<gov-nav wcag-label=\"Hlavní navigace\">\n\t\t\t\t<gov-nav-item href=\"#\">\n\t\t\t\t\tÚvod\n\t\t\t\t</gov-nav-item>\n\t\t\t\t<gov-nav-item href=\"#\">\n\t\t\t\t\tSlužby veřejná správy\n\t\t\t\t</gov-nav-item>\n\t\t\t\t<gov-nav-item href=\"#\">\n\t\t\t\t\tŽivotní události\n\t\t\t\t</gov-nav-item>\n\t\t\t\t<gov-nav-item href=\"#\">\n\t\t\t\t\tO živote v ČR\n\t\t\t\t</gov-nav-item>\n\t\t\t\t<gov-nav-item href=\"#\">\n\t\t\t\t\tČasté dotazy\n\t\t\t\t</gov-nav-item>\n\t\t\t</gov-nav>\n\t\t`\n\t}\n}\n\nif (customElements.get('nav-page') === undefined) {\n\tcustomElements.define('nav-page', NavPage)\n}\n","class PaginationPage extends HTMLElement {\n\tconnectedCallback() {\n\t\tsetTimeout(() => {\n\t\t\tconst bagr = document.getElementById('bagr')\n\t\t\tif (bagr) {\n\t\t\t\tbagr.addEventListener('gov-page', () => {\n\t\t\t\t\t// console.log(e)\n\t\t\t\t\t// bagr.setAttribute('current', String(e))\n\t\t\t\t})\n\t\t\t}\n\t\t}, 500)\n\t\tthis.innerHTML = `\n\t\t<h2>Pagination</h2>\n\n\t\t<gov-pagination total=\"212\" wcag-label=\"Stránkování pro sekci dokumenty\" wcag-select-label=\"Vybrat stránku\"></gov-pagination>\n\t\t<br>\n\t\t<gov-pagination size=\"s\" total=\"212\" wcag-label=\"Stránkování pro sekci dokumenty\" wcag-select-label=\"Vybrat stránku\"></gov-pagination>\n\t\t<br>\n\t\t<gov-pagination id=\"bagr\" type=\"select\" total=\"212\" wcag-label=\"Stránkování pro sekci dokumenty\" wcag-select-label=\"Vybrat stránku\"></gov-pagination>\n\t\t<br>\n\t\t<gov-pagination type=\"select\" size=\"s\" total=\"212\" wcag-label=\"Stránkování pro sekci dokumenty\" wcag-select-label=\"Vybrat stránku\"></gov-pagination>\n\t\t<br>\n\t\t<br>\n\t\t<gov-pagination variant=\"secondary\" total=\"212\" current=\"2\" wcag-label=\"Stránkování pro sekci dokumenty\" wcag-select-label=\"Vybrat stránku\"></gov-pagination>\n\t\t<br>\n\t\t<gov-pagination size=\"s\" variant=\"secondary\" wcag-label=\"Stránkování pro sekci dokumenty\" wcag-select-label=\"Vybrat stránku\"></gov-pagination>\n\t\t<br>\n\t\t<gov-pagination type=\"select\" variant=\"secondary\" total=\"212\" wcag-label=\"Stránkování pro sekci dokumenty\" wcag-select-label=\"Vybrat stránku\"></gov-pagination>\n\t\t<br>\n\t\t<gov-pagination type=\"select\" variant=\"secondary\" size=\"s\" total=\"212\" wcag-label=\"Stránkování pro sekci dokumenty\" wcag-select-label=\"Vybrat stránku\"></gov-pagination>\n\n\t\t`\n\t}\n}\n\nif (customElements.get('pagination-page') === undefined) {\n\tcustomElements.define('pagination-page', PaginationPage)\n}\n","class PromptPage extends HTMLElement {\n\tconnectedCallback() {\n\t\tsetTimeout(function () {\n\t\t\tdocument.getElementById('btn').addEventListener('gov-click', function () {\n\t\t\t\tdocument.getElementById('modal').setAttribute('open', 'true')\n\t\t\t})\n\t\t}, 500)\n\t\tthis.innerHTML = `\n <h2>Prompt</h2>\n\t\t\t<gov-button variant=\"error\" id=\"btn\">Smazat dokument</gov-button>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\t\t\t<p>aspo idapo diopad siaspo dasipo dsaiopds iaposa ipodsai dpsoa isapdsoai pdso posadd</p>\n\n\t\t\t<gov-prompt label=\"Smazání dokumentu\" id=\"modal\" wcag-close-label=\"Zavřít prompt\">\n\t\t\t\t<gov-icon class=\"gov-color--error-400\" slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t<p class=\"gov-text--l gov-color--secondary-800\">Opravdu chcete tento dokument smazat?</p>\n\t\t\t\t<p>Pokud tak učiníte, tak již nebude cesty zpět a souboru bude nenávratně odstraněn ze serveru. Ujistěte se, že máte dostatečnou zálohu.</p>\n <gov-button slot=\"actions\" size=\"l\" variant=\"primary\" type=\"base\">Zrušit</gov-button>\n <gov-button slot=\"actions\" size=\"l\" variant=\"error\">Smazat dokument</gov-button>\n\t\t\t</gov-prompt>\n\t\t`\n\t}\n}\n\nif (customElements.get('prompt-page') === undefined) {\n\tcustomElements.define('prompt-page', PromptPage)\n}\n","class SideNavPage extends HTMLElement {\n\tconnectedCallback() {\n\t\tthis.innerHTML = `\n\t\t<h2>Side nav</h2>\n\n\t\t<div style=\"max-width: 300px;\">\n\t\t\t<gov-side-nav>\n\t\t\t\t<gov-side-nav-item label=\"Hlavní skupina\" count=\"true\" href=\"#\">\n\t\t\t\t\t<gov-side-nav-item label=\"Vše o našem projektu\">\n\t\t\t\t\t\t<gov-side-nav-item label=\"Hodnocení\">\n\t\t\t\t\t\t</gov-side-nav-item>\n\t\t\t\t\t\t<gov-side-nav-item label=\"Rozpočtová politika\" count=\"true\">\n\t\t\t\t\t\t</gov-side-nav-item>\n\t\t\t\t\t\t<gov-side-nav-item label=\"Partneři\">\n\t\t\t\t\t\t</gov-side-nav-item>\n\t\t\t\t\t</gov-side-nav-item>\n\n\t\t\t\t\t<gov-side-nav-item label=\"O nás\" href=\"#\">\n\t\t\t\t\t</gov-side-nav-item>\n\n\t\t\t\t\t<gov-side-nav-item label=\"O společnosti\" href=\"#\">\n\t\t\t\t\t</gov-side-nav-item>\n\n\t\t\t\t\t<gov-side-nav-item label=\"Kontakt\">\n\t\t\t\t\t</gov-side-nav-item>\n\t\t\t\t</gov-side-nav-item>\n\n\t\t\t\t<gov-side-nav-item label=\"Produkty\" href=\"#\">\n\t\t\t\t</gov-side-nav-item>\n\n\t\t\t\t<gov-side-nav-item label=\"Ocenění\">\n\t\t\t\t</gov-side-nav-item>\n\n\t\t\t\t<gov-side-nav-item label=\"Naši klienti\" href=\"#\">\n\t\t\t\t</gov-side-nav-item>\n\t\t\t</gov-side-nav>\n\t\t\t<h3>Compact</h3>\n\t\t\t<gov-side-nav compact=\"true\">\n\t\t\t\t<gov-side-nav-item label=\"Hlavní skupina\" count=\"true\" href=\"#\">\n\t\t\t\t\t<gov-side-nav-item label=\"Vše o našem projektu\">\n\t\t\t\t\t\t<gov-side-nav-item label=\"Hodnocení\">\n\t\t\t\t\t\t</gov-side-nav-item>\n\t\t\t\t\t\t<gov-side-nav-item label=\"Rozpočtová politika\" count=\"true\">\n\t\t\t\t\t\t</gov-side-nav-item>\n\t\t\t\t\t\t<gov-side-nav-item label=\"Partneři\">\n\t\t\t\t\t\t</gov-side-nav-item>\n\t\t\t\t\t</gov-side-nav-item>\n\n\t\t\t\t\t<gov-side-nav-item label=\"O nás\" href=\"#\">\n\t\t\t\t\t</gov-side-nav-item>\n\n\t\t\t\t\t<gov-side-nav-item label=\"O společnosti\" href=\"#\">\n\t\t\t\t\t</gov-side-nav-item>\n\n\t\t\t\t\t<gov-side-nav-item label=\"Kontakt\">\n\t\t\t\t\t</gov-side-nav-item>\n\t\t\t\t</gov-side-nav-item>\n\n\t\t\t\t<gov-side-nav-item label=\"Produkty\" href=\"#\">\n\t\t\t\t</gov-side-nav-item>\n\n\t\t\t\t<gov-side-nav-item label=\"Ocenění\">\n\t\t\t\t</gov-side-nav-item>\n\n\t\t\t\t<gov-side-nav-item label=\"Naši klienti\" href=\"#\">\n\t\t\t\t</gov-side-nav-item>\n\t\t\t</gov-side-nav>\n\n\t\t\t<h3>Inverse</h3>\n\t\t\t<div class=\"gov-bg--secondary-300\" style=\"padding: 20px;\">\n\t\t\t\t<gov-side-nav inverse=\"true\">\n\t\t\t\t\t<gov-side-nav-item label=\"Hlavní skupina\" count=\"true\" href=\"#\">\n\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t<gov-side-nav-item label=\"Vše o našem projektu\">\n\t\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t\t<gov-side-nav-item label=\"Hodnocení\">\n\t\t\t\t\t\t\t</gov-side-nav-item>\n\t\t\t\t\t\t\t<gov-side-nav-item label=\"Rozpočtová politika\" count=\"true\">\n\t\t\t\t\t\t\t</gov-side-nav-item>\n\t\t\t\t\t\t\t<gov-side-nav-item label=\"Partneři\">\n\t\t\t\t\t\t\t</gov-side-nav-item>\n\t\t\t\t\t\t</gov-side-nav-item>\n\n\t\t\t\t\t\t<gov-side-nav-item label=\"O nás\" href=\"#\">\n\t\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t</gov-side-nav-item>\n\n\t\t\t\t\t\t<gov-side-nav-item label=\"O společnosti\" href=\"#\">\n\t\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t</gov-side-nav-item>\n\n\t\t\t\t\t\t<gov-side-nav-item label=\"Kontakt\">\n\t\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t\t</gov-side-nav-item>\n\t\t\t\t\t</gov-side-nav-item>\n\n\t\t\t\t\t<gov-side-nav-item label=\"Produkty\" href=\"#\">\n\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t</gov-side-nav-item>\n\n\t\t\t\t\t<gov-side-nav-item label=\"Ocenění\">\n\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t</gov-side-nav-item>\n\n\t\t\t\t\t<gov-side-nav-item label=\"Naši klienti\" href=\"#\">\n\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"info\"></gov-icon>\n\t\t\t\t\t</gov-side-nav-item>\n\t\t\t\t</gov-side-nav>\n\t\t\t</div>\n\t\t</div>\n\t\t`\n\t}\n}\n\nif (customElements.get('side-nav-page') === undefined) {\n\tcustomElements.define('side-nav-page', SideNavPage)\n}\n","class SpacerPage extends HTMLElement {\n\tconnectedCallback() {\n\t\tthis.innerHTML = `\n\t\t\t<style>\n\t\t\t gov-spacer {\n\t\t\t\tbackground: lightgray;\n\t\t\t\tmargin-bottom: 10px;\n\t\t\t }\n\t\t\t</style>\n\t\t\t<gov-spacer size=\"2xs\" breakpoint=\"sm\"></gov-spacer>\n\t\t\t<gov-spacer size=\"xs\" breakpoint=\"sm\"></gov-spacer>\n\t\t\t<gov-spacer size=\"s\" breakpoint=\"sm\"></gov-spacer>\n\t\t\t<gov-spacer size=\"m\" breakpoint=\"sm\"></gov-spacer>\n\t\t\t<gov-spacer size=\"l\" breakpoint=\"sm\"></gov-spacer>\n\t\t\t<gov-spacer size=\"xl\" breakpoint=\"sm\"></gov-spacer>\n\t\t\t<gov-spacer size=\"2xl\" breakpoint=\"sm\"></gov-spacer>\n\t\t\t<gov-spacer size=\"3xl\" breakpoint=\"sm\"></gov-spacer>\n\t\t\t<gov-spacer size=\"4xl\" breakpoint=\"sm\"></gov-spacer>\n\t\t`\n\t}\n}\n\nif (customElements.get('spacer-page') === undefined) {\n\tcustomElements.define('spacer-page', SpacerPage)\n}\n","class StatsbarPage extends HTMLElement {\n\tconnectedCallback() {\n\t\tthis.innerHTML = `\n\t\t\t<gov-statsbar>\n\t\t\t\t<gov-statsbar-item>\n\t\t\t\t\t<slot>215 mil</slot>\n\t\t\t\t\t<p slot=\"text\">datových zpráv</p>\n\t\t\t\t</gov-statsbar-item>\n\t\t\t\t<gov-statsbar-item>\n\t\t\t\t\t<slot>1 mil</slot>\n\t\t\t\t\t<p slot=\"text\">datových schránek</p>\n\t\t\t\t</gov-statsbar-item>\n\t\t\t\t<gov-statsbar-item>\n\t\t\t\t\t<slot>967 tis</slot>\n\t\t\t\t\t<p slot=\"text\">hodin ušetřených ve frontách</p>\n\t\t\t\t</gov-statsbar-item>\n\t\t\t\t<gov-statsbar-item>\n\t\t\t\t\t<slot>12 mil</slot>\n\t\t\t\t\t<p slot=\"text\">ušetřených korun</p>\n\t\t\t\t</gov-statsbar-item>\n\t\t\t</gov-statsbar>\n\t\t\t<hr />\n\t\t\t<gov-statsbar>\n\t\t\t\t<gov-statsbar-item>\n\t\t\t\t\t<gov-icon type=\"complex\" name=\"id-card\" slot=\"icon\"></gov-icon>\n\t\t\t\t\t<slot>215 mil</slot>\n\t\t\t\t\t<p slot=\"text\">Font Awesome</p>\n\t\t\t\t</gov-statsbar-item>\n\t\t\t\t<gov-statsbar-item>\n\t\t\t\t\t<gov-icon type=\"complex\" name=\"job-loss\" slot=\"icon\"></gov-icon>\n\t\t\t\t\t<slot>1 mil</slot>\n\t\t\t\t\t<p slot=\"text\">datových schránek</p>\n\t\t\t\t</gov-statsbar-item>\n\t\t\t\t<gov-statsbar-item>\n\t\t\t\t\t<gov-icon type=\"complex\" name=\"globe\" slot=\"icon\"></gov-icon>\n\t\t\t\t\t<slot>967 tis</slot>\n\t\t\t\t\t<p slot=\"text\">hodin ušetřených ve frontách</p>\n\t\t\t\t</gov-statsbar-item>\n\t\t\t\t<gov-statsbar-item>\n\t\t\t\t\t<gov-icon type=\"complex\" name=\"new-comments\" slot=\"icon\"></gov-icon>\n\t\t\t\t\t<slot>12 mil</slot>\n\t\t\t\t\t<p slot=\"text\">ušetřených korun</p>\n\t\t\t\t</gov-statsbar-item>\n\t\t\t</gov-statsbar>\n\t\t\t<hr />\n\t\t\t<gov-statsbar icon-position=\"left\">\n\t\t\t\t<gov-statsbar-item>\n\t\t\t\t\t<gov-icon type=\"complex\" name=\"id-card\" slot=\"icon\"></gov-icon>\n\t\t\t\t\t<slot>215 mil</slot>\n\t\t\t\t\t<p slot=\"text\">datových zpráv</p>\n\t\t\t\t</gov-statsbar-item>\n\t\t\t\t<gov-statsbar-item>\n\t\t\t\t\t<gov-icon type=\"complex\" name=\"job-loss\" slot=\"icon\"></gov-icon>\n\t\t\t\t\t<slot>1 mil</slot>\n\t\t\t\t\t<p slot=\"text\">datových schránek</p>\n\t\t\t\t</gov-statsbar-item>\n\t\t\t\t<gov-statsbar-item>\n\t\t\t\t\t<gov-icon type=\"complex\" name=\"globe\" slot=\"icon\"></gov-icon>\n\t\t\t\t\t<slot>967 tis</slot>\n\t\t\t\t\t<p slot=\"text\">hodin ušetřených ve frontách</p>\n\t\t\t\t</gov-statsbar-item>\n\t\t\t\t<gov-statsbar-item>\n\t\t\t\t\t<gov-icon type=\"complex\" name=\"new-comments\" slot=\"icon\"></gov-icon>\n\t\t\t\t\t<slot>12 mil</slot>\n\t\t\t\t\t<p slot=\"text\">ušetřených korun</p>\n\t\t\t\t</gov-statsbar-item>\n\t\t\t</gov-statsbar>\n\t\t\t<hr />\n\t\t\t<gov-statsbar inverse variant=\"secondary\">\n\t\t\t\t<gov-statsbar-item>\n\t\t\t\t\t<slot>215 mil</slot>\n\t\t\t\t\t<p slot=\"text\">datových zpráv</p>\n\t\t\t\t</gov-statsbar-item>\n\t\t\t\t<gov-statsbar-item>\n\t\t\t\t\t<slot>1 mil</slot>\n\t\t\t\t\t<p slot=\"text\">datových schránek</p>\n\t\t\t\t</gov-statsbar-item>\n\t\t\t\t<gov-statsbar-item>\n\t\t\t\t\t<slot>967 tis</slot>\n\t\t\t\t\t<p slot=\"text\">hodin ušetřených ve frontách</p>\n\t\t\t\t</gov-statsbar-item>\n\t\t\t\t<gov-statsbar-item>\n\t\t\t\t\t<slot>12 mil</slot>\n\t\t\t\t\t<p slot=\"text\">ušetřených korun</p>\n\t\t\t\t</gov-statsbar-item>\n\t\t\t</gov-statsbar>\n\t\t\t<hr />\n\t\t\t<gov-statsbar inverse>\n\t\t\t\t<gov-statsbar-item>\n\t\t\t\t\t<gov-icon type=\"complex\" name=\"id-card\" slot=\"icon\"></gov-icon>\n\t\t\t\t\t<slot>215 mil</slot>\n\t\t\t\t\t<p slot=\"text\">datových zpráv</p>\n\t\t\t\t</gov-statsbar-item>\n\t\t\t\t<gov-statsbar-item>\n\t\t\t\t\t<gov-icon type=\"complex\" name=\"job-loss\" slot=\"icon\"></gov-icon>\n\t\t\t\t\t<slot>1 mil</slot>\n\t\t\t\t\t<p slot=\"text\">datových schránek</p>\n\t\t\t\t</gov-statsbar-item>\n\t\t\t\t<gov-statsbar-item>\n\t\t\t\t\t<gov-icon type=\"complex\" name=\"globe\" slot=\"icon\"></gov-icon>\n\t\t\t\t\t<slot>967 tis</slot>\n\t\t\t\t\t<p slot=\"text\">hodin ušetřených ve frontách</p>\n\t\t\t\t</gov-statsbar-item>\n\t\t\t\t<gov-statsbar-item>\n\t\t\t\t\t<gov-icon type=\"complex\" name=\"new-comments\" slot=\"icon\"></gov-icon>\n\t\t\t\t\t<slot>12 mil</slot>\n\t\t\t\t\t<p slot=\"text\">ušetřených korun</p>\n\t\t\t\t</gov-statsbar-item>\n\t\t\t</gov-statsbar>\n\t\t\t<hr />\n\t\t\t<gov-statsbar inverse variant=\"secondary\" icon-position=\"left\">\n\t\t\t\t<gov-statsbar-item>\n\t\t\t\t\t<gov-icon type=\"complex\" name=\"id-card\" slot=\"icon\"></gov-icon>\n\t\t\t\t\t<slot>215 mil</slot>\n\t\t\t\t\t<p slot=\"text\">datových zpráv</p>\n\t\t\t\t</gov-statsbar-item>\n\t\t\t\t<gov-statsbar-item>\n\t\t\t\t\t<gov-icon type=\"complex\" name=\"job-loss\" slot=\"icon\"></gov-icon>\n\t\t\t\t\t<slot>1 mil</slot>\n\t\t\t\t\t<p slot=\"text\">datových schránek</p>\n\t\t\t\t</gov-statsbar-item>\n\t\t\t\t<gov-statsbar-item>\n\t\t\t\t\t<gov-icon type=\"complex\" name=\"globe\" slot=\"icon\"></gov-icon>\n\t\t\t\t\t<slot>967 tis</slot>\n\t\t\t\t\t<p slot=\"text\">hodin ušetřených ve frontách</p>\n\t\t\t\t</gov-statsbar-item>\n\t\t\t\t<gov-statsbar-item>\n\t\t\t\t\t<gov-icon type=\"complex\" name=\"new-comments\" slot=\"icon\"></gov-icon>\n\t\t\t\t\t<slot>12 mil</slot>\n\t\t\t\t\t<p slot=\"text\">ušetřených korun</p>\n\t\t\t\t</gov-statsbar-item>\n\t\t\t</gov-statsbar>\n\t\t\t<hr />\n\t\t\t<gov-statsbar variant=\"secondary\">\n\t\t\t\t\t<gov-statsbar-item>\n\t\t\t\t\t\t<slot>215 mil</slot>\n\t\t\t\t\t\t<p slot=\"text\">datových zpráv</p>\n\t\t\t\t\t</gov-statsbar-item>\n\t\t\t\t\t<gov-statsbar-item>\n\t\t\t\t\t\t<slot>1 mil</slot>\n\t\t\t\t\t\t<p slot=\"text\">datových schránek</p>\n\t\t\t\t\t</gov-statsbar-item>\n\t\t\t\t\t<gov-statsbar-item>\n\t\t\t\t\t\t<slot>967 tis</slot>\n\t\t\t\t\t\t<p slot=\"text\">hodin ušetřených ve frontách</p>\n\t\t\t\t\t</gov-statsbar-item>\n\t\t\t\t\t<gov-statsbar-item>\n\t\t\t\t\t\t<slot>12 mil</slot>\n\t\t\t\t\t\t<p slot=\"text\">ušetřených korun</p>\n\t\t\t\t\t</gov-statsbar-item>\n\t\t\t</gov-statsbar>\n\t\t\t<gov-statsbar variant=\"secondary\">\n\t\t\t\t<gov-statsbar-item>\n\t\t\t\t\t<gov-icon type=\"complex\" name=\"id-card\" slot=\"icon\"></gov-icon>\n\t\t\t\t\t<slot>215 mil</slot>\n\t\t\t\t\t<p slot=\"text\">datových zpráv</p>\n\t\t\t\t</gov-statsbar-item>\n\t\t\t\t<gov-statsbar-item>\n\t\t\t\t\t<gov-icon type=\"complex\" name=\"job-loss\" slot=\"icon\"></gov-icon>\n\t\t\t\t\t<slot>1 mil</slot>\n\t\t\t\t\t<p slot=\"text\">datových schránek</p>\n\t\t\t\t</gov-statsbar-item>\n\t\t\t\t<gov-statsbar-item>\n\t\t\t\t\t<gov-icon type=\"complex\" name=\"globe\" slot=\"icon\"></gov-icon>\n\t\t\t\t\t<slot>967 tis</slot>\n\t\t\t\t\t<p slot=\"text\">hodin ušetřených ve frontách</p>\n\t\t\t\t</gov-statsbar-item>\n\t\t\t\t<gov-statsbar-item>\n\t\t\t\t\t<gov-icon type=\"complex\" name=\"new-comments\" slot=\"icon\"></gov-icon>\n\t\t\t\t\t<slot>12 mil</slot>\n\t\t\t\t\t<p slot=\"text\">ušetřených korun</p>\n\t\t\t\t</gov-statsbar-item>\n\t\t\t</gov-statsbar>\n\t\t\t<gov-statsbar variant=\"secondary\" icon-position=\"left\">\n\t\t\t\t<gov-statsbar-item>\n\t\t\t\t\t<gov-icon type=\"complex\" name=\"id-card\" slot=\"icon\"></gov-icon>\n\t\t\t\t\t<slot>215 mil</slot>\n\t\t\t\t\t<p slot=\"text\">datových zpráv</p>\n\t\t\t\t</gov-statsbar-item>\n\t\t\t\t<gov-statsbar-item>\n\t\t\t\t\t<gov-icon type=\"complex\" name=\"job-loss\" slot=\"icon\"></gov-icon>\n\t\t\t\t\t<slot>1 mil</slot>\n\t\t\t\t\t<p slot=\"text\">datových schránek</p>\n\t\t\t\t</gov-statsbar-item>\n\t\t\t\t<gov-statsbar-item>\n\t\t\t\t\t<gov-icon type=\"complex\" name=\"globe\" slot=\"icon\"></gov-icon>\n\t\t\t\t\t<slot>967 tis</slot>\n\t\t\t\t\t<p slot=\"text\">hodin ušetřených ve frontách</p>\n\t\t\t\t</gov-statsbar-item>\n\t\t\t\t<gov-statsbar-item>\n\t\t\t\t\t<gov-icon type=\"complex\" name=\"new-comments\" slot=\"icon\"></gov-icon>\n\t\t\t\t\t<slot>12 mil</slot>\n\t\t\t\t\t<p slot=\"text\">ušetřených korun</p>\n\t\t\t\t</gov-statsbar-item>\n\t\t\t</gov-statsbar>\n\t\t`\n\t}\n}\n\nif (customElements.get('statsbar-page') === undefined) {\n\tcustomElements.define('statsbar-page', StatsbarPage)\n}\n","class StepperPage extends HTMLElement {\n\tconnectedCallback() {\n\t\tthis.innerHTML = `\n\t\t\t<h2>Stepper</h2>\n\n\t\t\t<h3>Velikost M</h3>\n\n\t\t\t<gov-stepper>\n\t\t\t\t<gov-stepper-item trigger-tag=\"h1\" label=\"Hotový krok\" variant=\"success\" annotation=\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus Lorem ipsum dolor sit amet, consectetur adipiscing elit.\">\n\t\t\t\t\t<gov-icon slot=\"prefix\" name=\"check-lg\"></gov-icon>\n\t\t\t\t\t<div slot=\"content\">\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus. Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</div>\n\t\t\t\t</gov-stepper-item>\n\t\t\t\t<gov-stepper-item label=\"Chybový krok\" variant=\"error\">\n\t\t\t\t\t<gov-icon slot=\"prefix\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-stepper-item>\n\t\t\t\t<gov-stepper-item collapsible=\"true\" label=\"Krok s textem, obrázkem, tlačítkem\" variant=\"primary\" annotation=\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus\">\n\t\t\t\t\t<span slot=\"prefix\">2</span>\n\t\t\t\t\t<div slot=\"content\">\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus. Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus. Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</div>\n\t\t\t\t</gov-stepper-item>\n\t\t\t\t<gov-stepper-item label=\"Budoucí krok\" variant=\"secondary\">\n\t\t\t\t\t<span slot=\"prefix\">3</span>\n\t\t\t\t</gov-stepper-item>\n\t\t\t\t<gov-stepper-item label=\"Budoucí krok\" variant=\"warning\">\n\t\t\t\t\t<span slot=\"prefix\">4</span>\n\t\t\t\t</gov-stepper-item>\n\t\t\t</gov-stepper>\n\n\t\t\t<br><br>\n\t\t\t<h3>Velikost S</h3>\n\n\t\t\t<gov-stepper size=\"s\">\n\t\t\t\t<gov-stepper-item trigger-tag=\"h1\" label=\"Hotový krok\" variant=\"success\" annotation=\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus\">\n\t\t\t\t\t<gov-icon slot=\"prefix\" name=\"check-lg\"></gov-icon>\n\t\t\t\t</gov-stepper-item>\n\t\t\t\t<gov-stepper-item label=\"Chybový krok\" variant=\"error\">\n\t\t\t\t\t<gov-icon slot=\"prefix\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-stepper-item>\n\t\t\t\t<gov-stepper-item label=\"Krok s textem, obrázkem, tlačítkem\" variant=\"primary\">\n\t\t\t\t\t<span slot=\"prefix\">2</span>\n\t\t\t\t\t<div slot=\"content\">\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</div>\n\t\t\t\t</gov-stepper-item>\n\t\t\t\t<gov-stepper-item label=\"Budoucí krok\" variant=\"secondary\">\n\t\t\t\t\t<span slot=\"prefix\">3</span>\n\t\t\t\t</gov-stepper-item>\n\t\t\t\t<gov-stepper-item label=\"Budoucí krok\" variant=\"warning\">\n\t\t\t\t\t<span slot=\"prefix\">4</span>\n\t\t\t\t</gov-stepper-item>\n\t\t\t</gov-stepper>\n\n\t\t\t<br><br>\n\t\t\t<h3>Velikost XS</h3>\n\n\t\t\t<gov-stepper size=\"xs\">\n\t\t\t\t<gov-stepper-item trigger-tag=\"h1\" label=\"Hotový krok\" variant=\"success\" annotation=\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus\">\n\t\t\t\t\t<gov-icon slot=\"prefix\" name=\"check-lg\"></gov-icon>\n\t\t\t\t</gov-stepper-item>\n\t\t\t\t<gov-stepper-item label=\"Chybový krok\" variant=\"error\">\n\t\t\t\t\t<gov-icon slot=\"prefix\" name=\"x-lg\"></gov-icon>\n\t\t\t\t</gov-stepper-item>\n\t\t\t\t<gov-stepper-item label=\"Krok s textem, obrázkem, tlačítkem\" variant=\"primary\">\n\t\t\t\t\t<span slot=\"prefix\">2</span>\n\t\t\t\t\t<div slot=\"content\">\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</div>\n\t\t\t\t</gov-stepper-item>\n\t\t\t\t<gov-stepper-item label=\"Budoucí krok\" variant=\"secondary\">\n\t\t\t\t\t<span slot=\"prefix\">3</span>\n\t\t\t\t</gov-stepper-item>\n\t\t\t\t<gov-stepper-item label=\"Budoucí krok\" variant=\"warning\">\n\t\t\t\t\t<span slot=\"prefix\">4</span>\n\t\t\t\t</gov-stepper-item>\n\t\t\t</gov-stepper>\n\t\t`\n\t}\n}\n\nif (customElements.get('stepper-page') === undefined) {\n\tcustomElements.define('stepper-page', StepperPage)\n}\n","class TabsPage extends HTMLElement {\n\tconnectedCallback() {\n\t\tthis.innerHTML = `\n\t\t\t<h2>Tabs</h2>\n\t\t\t<gov-tabs id=\"po\" wcag-label=\"Důležitý tabs\" wcag-select-label=\"Výběr možnosti\">\n\t\t\t\t<gov-tabs-item label=\"TAB #1\">\n\t\t\t\t\t<p>Muj super tab - Lorem ipsum (zkráceně lipsum) je označení pro standardní pseudolatinský text užívaný v grafickém\n\t\t\t\t\t\tdesignu a navrhování jako demonstrativní výplňový text při vytváření pracovních ukázek grafických\n\t\t\t\t\t\tnávrhů (např. internetových stránek, rozvržení časopisů či všech druhů reklamních materiálů). Lipsum\n\t\t\t\t\t\ttak pracovně znázorňuje text v ukázkových maketách (tzv. mock-up) předtím, než bude do hotového\n\t\t\t\t\t\tnávrhu vložen smysluplný obsah.</p>\n\t\t\t\t</gov-tabs-item>\n\t\t\t\t<gov-tabs-item label=\"TAB #2\" default>\n\t\t\t\t\t<p>Dalsi suepr tab - Pokud by se pro stejný účel použil smysluplný text, bylo by těžké hodnotit pouze vzhled, aniž by se\n\t\t\t\t\t\tpozorovatel nechal svést ke čtení obsahu. Pokud by byl naopak použit nesmyslný, ale pravidelný text\n\t\t\t\t\t\t(např. opakování „asdf asdf asdf…“), oko by při posuzování vzhledu bylo vyrušováno pravidelnou\n\t\t\t\t\t\tstrukturou textu, která se od běžného textu liší. Text lorem ipsum na první pohled připomíná běžný\n\t\t\t\t\t\ttext, slova jsou různě dlouhá, frekvence písmen je podobná běžné řeči, interpunkce vypadá přirozeně\n\t\t\t\t\t\tatd.</p>\n\t\t\t\t</gov-tabs-item>\n\t\t\t\t<gov-tabs-item label=\"TAB #3\">\n\t\t\t\t\t<p>Dalsi suepr tab - Pokud by se pro stejný účel použil smysluplný text, bylo by těžké hodnotit pouze vzhled, aniž by se\n\t\t\t\t\t\tpozorovatel nechal svést ke čtení obsahu. Pokud by byl naopak použit nesmyslný, ale pravidelný text\n\t\t\t\t\t\t(např. opakování „asdf asdf asdf…“).</p>\n\t\t\t\t</gov-tabs-item>\n\t\t\t</gov-tabs>\n\t\t\t<gov-tabs id=\"po\" variant=\"secondary\" wcag-label=\"Důležitý tabs\" wcag-select-label=\"Výběr možnosti\">\n\t\t\t\t<gov-tabs-item label=\"TAB #1\">\n\t\t\t\t\t<p>Muj super tab - Lorem ipsum (zkráceně lipsum) je označení pro standardní pseudolatinský text užívaný v grafickém\n\t\t\t\t\t\tdesignu a navrhování jako demonstrativní výplňový text při vytváření pracovních ukázek grafických\n\t\t\t\t\t\tnávrhů (např. internetových stránek, rozvržení časopisů či všech druhů reklamních materiálů). Lipsum\n\t\t\t\t\t\ttak pracovně znázorňuje text v ukázkových maketách (tzv. mock-up) předtím, než bude do hotového\n\t\t\t\t\t\tnávrhu vložen smysluplný obsah.</p>\n\t\t\t\t</gov-tabs-item>\n\t\t\t\t<gov-tabs-item label=\"TAB #2\" default>\n\t\t\t\t\t<p>Dalsi suepr tab - Pokud by se pro stejný účel použil smysluplný text, bylo by těžké hodnotit pouze vzhled, aniž by se\n\t\t\t\t\t\tpozorovatel nechal svést ke čtení obsahu. Pokud by byl naopak použit nesmyslný, ale pravidelný text\n\t\t\t\t\t\t(např. opakování „asdf asdf asdf…“), oko by při posuzování vzhledu bylo vyrušováno pravidelnou\n\t\t\t\t\t\tstrukturou textu, která se od běžného textu liší. Text lorem ipsum na první pohled připomíná běžný\n\t\t\t\t\t\ttext, slova jsou různě dlouhá, frekvence písmen je podobná běžné řeči, interpunkce vypadá přirozeně\n\t\t\t\t\t\tatd.</p>\n\t\t\t\t</gov-tabs-item>\n\t\t\t\t<gov-tabs-item label=\"TAB #3\">\n\t\t\t\t\t<p>Dalsi suepr tab - Pokud by se pro stejný účel použil smysluplný text, bylo by těžké hodnotit pouze vzhled, aniž by se\n\t\t\t\t\t\tpozorovatel nechal svést ke čtení obsahu. Pokud by byl naopak použit nesmyslný, ale pravidelný text\n\t\t\t\t\t\t(např. opakování „asdf asdf asdf…“).</p>\n\t\t\t\t</gov-tabs-item>\n\t\t\t</gov-tabs>\n\t\t\t<gov-tabs id=\"po\" variant=\"success\" wcag-label=\"Důležitý tabs\" wcag-select-label=\"Výběr možnosti\">\n\t\t\t\t<gov-tabs-item label=\"TAB #1\">\n\t\t\t\t\t<p>Muj super tab - Lorem ipsum (zkráceně lipsum) je označení pro standardní pseudolatinský text užívaný v grafickém\n\t\t\t\t\t\tdesignu a navrhování jako demonstrativní výplňový text při vytváření pracovních ukázek grafických\n\t\t\t\t\t\tnávrhů (např. internetových stránek, rozvržení časopisů či všech druhů reklamních materiálů). Lipsum\n\t\t\t\t\t\ttak pracovně znázorňuje text v ukázkových maketách (tzv. mock-up) předtím, než bude do hotového\n\t\t\t\t\t\tnávrhu vložen smysluplný obsah.</p>\n\t\t\t\t</gov-tabs-item>\n\t\t\t\t<gov-tabs-item label=\"TAB #2\" default>\n\t\t\t\t\t<p>Dalsi suepr tab - Pokud by se pro stejný účel použil smysluplný text, bylo by těžké hodnotit pouze vzhled, aniž by se\n\t\t\t\t\t\tpozorovatel nechal svést ke čtení obsahu. Pokud by byl naopak použit nesmyslný, ale pravidelný text\n\t\t\t\t\t\t(např. opakování „asdf asdf asdf…“), oko by při posuzování vzhledu bylo vyrušováno pravidelnou\n\t\t\t\t\t\tstrukturou textu, která se od běžného textu liší. Text lorem ipsum na první pohled připomíná běžný\n\t\t\t\t\t\ttext, slova jsou různě dlouhá, frekvence písmen je podobná běžné řeči, interpunkce vypadá přirozeně\n\t\t\t\t\t\tatd.</p>\n\t\t\t\t</gov-tabs-item>\n\t\t\t\t<gov-tabs-item label=\"TAB #3\">\n\t\t\t\t\t<p>Dalsi suepr tab - Pokud by se pro stejný účel použil smysluplný text, bylo by těžké hodnotit pouze vzhled, aniž by se\n\t\t\t\t\t\tpozorovatel nechal svést ke čtení obsahu. Pokud by byl naopak použit nesmyslný, ale pravidelný text\n\t\t\t\t\t\t(např. opakování „asdf asdf asdf…“).</p>\n\t\t\t\t</gov-tabs-item>\n\t\t\t</gov-tabs>\n\t\t\t<gov-tabs id=\"po\" variant=\"warning\" wcag-label=\"Důležitý tabs\" wcag-select-label=\"Výběr možnosti\">\n\t\t\t\t<gov-tabs-item label=\"TAB #1\">\n\t\t\t\t\t<p>Muj super tab - Lorem ipsum (zkráceně lipsum) je označení pro standardní pseudolatinský text užívaný v grafickém\n\t\t\t\t\t\tdesignu a navrhování jako demonstrativní výplňový text při vytváření pracovních ukázek grafických\n\t\t\t\t\t\tnávrhů (např. internetových stránek, rozvržení časopisů či všech druhů reklamních materiálů). Lipsum\n\t\t\t\t\t\ttak pracovně znázorňuje text v ukázkových maketách (tzv. mock-up) předtím, než bude do hotového\n\t\t\t\t\t\tnávrhu vložen smysluplný obsah.</p>\n\t\t\t\t</gov-tabs-item>\n\t\t\t\t<gov-tabs-item label=\"TAB #2\" default>\n\t\t\t\t\t<p>Dalsi suepr tab - Pokud by se pro stejný účel použil smysluplný text, bylo by těžké hodnotit pouze vzhled, aniž by se\n\t\t\t\t\t\tpozorovatel nechal svést ke čtení obsahu. Pokud by byl naopak použit nesmyslný, ale pravidelný text\n\t\t\t\t\t\t(např. opakování „asdf asdf asdf…“), oko by při posuzování vzhledu bylo vyrušováno pravidelnou\n\t\t\t\t\t\tstrukturou textu, která se od běžného textu liší. Text lorem ipsum na první pohled připomíná běžný\n\t\t\t\t\t\ttext, slova jsou různě dlouhá, frekvence písmen je podobná běžné řeči, interpunkce vypadá přirozeně\n\t\t\t\t\t\tatd.</p>\n\t\t\t\t</gov-tabs-item>\n\t\t\t\t<gov-tabs-item label=\"TAB #3\">\n\t\t\t\t\t<p>Dalsi suepr tab - Pokud by se pro stejný účel použil smysluplný text, bylo by těžké hodnotit pouze vzhled, aniž by se\n\t\t\t\t\t\tpozorovatel nechal svést ke čtení obsahu. Pokud by byl naopak použit nesmyslný, ale pravidelný text\n\t\t\t\t\t\t(např. opakování „asdf asdf asdf…“).</p>\n\t\t\t\t</gov-tabs-item>\n\t\t\t</gov-tabs>\n\t\t\t<gov-tabs id=\"po\" variant=\"error\" wcag-label=\"Důležitý tabs\" wcag-select-label=\"Výběr možnosti\">\n\t\t\t\t<gov-tabs-item label=\"TAB #1\">\n\t\t\t\t\t<p>Muj super tab - Lorem ipsum (zkráceně lipsum) je označení pro standardní pseudolatinský text užívaný v grafickém\n\t\t\t\t\t\tdesignu a navrhování jako demonstrativní výplňový text při vytváření pracovních ukázek grafických\n\t\t\t\t\t\tnávrhů (např. internetových stránek, rozvržení časopisů či všech druhů reklamních materiálů). Lipsum\n\t\t\t\t\t\ttak pracovně znázorňuje text v ukázkových maketách (tzv. mock-up) předtím, než bude do hotového\n\t\t\t\t\t\tnávrhu vložen smysluplný obsah.</p>\n\t\t\t\t</gov-tabs-item>\n\t\t\t\t<gov-tabs-item label=\"TAB #2\" default>\n\t\t\t\t\t<p>Dalsi suepr tab - Pokud by se pro stejný účel použil smysluplný text, bylo by těžké hodnotit pouze vzhled, aniž by se\n\t\t\t\t\t\tpozorovatel nechal svést ke čtení obsahu. Pokud by byl naopak použit nesmyslný, ale pravidelný text\n\t\t\t\t\t\t(např. opakování „asdf asdf asdf…“), oko by při posuzování vzhledu bylo vyrušováno pravidelnou\n\t\t\t\t\t\tstrukturou textu, která se od běžného textu liší. Text lorem ipsum na první pohled připomíná běžný\n\t\t\t\t\t\ttext, slova jsou různě dlouhá, frekvence písmen je podobná běžné řeči, interpunkce vypadá přirozeně\n\t\t\t\t\t\tatd.</p>\n\t\t\t\t</gov-tabs-item>\n\t\t\t\t<gov-tabs-item label=\"TAB #3\">\n\t\t\t\t\t<p>Dalsi suepr tab - Pokud by se pro stejný účel použil smysluplný text, bylo by těžké hodnotit pouze vzhled, aniž by se\n\t\t\t\t\t\tpozorovatel nechal svést ke čtení obsahu. Pokud by byl naopak použit nesmyslný, ale pravidelný text\n\t\t\t\t\t\t(např. opakování „asdf asdf asdf…“).</p>\n\t\t\t\t</gov-tabs-item>\n\t\t\t</gov-tabs>\n\n\t\t\t<gov-tabs id=\"po\" type=\"badge\" wcag-label=\"Důležitý tabs\" wcag-select-label=\"Výběr možnosti\">\n\t\t\t\t<gov-tabs-item label=\"TAB #1\">\n\t\t\t\t\t<p>Muj super tab - Lorem ipsum (zkráceně lipsum) je označení pro standardní pseudolatinský text užívaný v grafickém\n\t\t\t\t\t\tdesignu a navrhování jako demonstrativní výplňový text při vytváření pracovních ukázek grafických\n\t\t\t\t\t\tnávrhů (např. internetových stránek, rozvržení časopisů či všech druhů reklamních materiálů). Lipsum\n\t\t\t\t\t\ttak pracovně znázorňuje text v ukázkových maketách (tzv. mock-up) předtím, než bude do hotového\n\t\t\t\t\t\tnávrhu vložen smysluplný obsah.</p>\n\t\t\t\t</gov-tabs-item>\n\t\t\t\t<gov-tabs-item label=\"TAB #2\" default>\n\t\t\t\t\t<p>Dalsi suepr tab - Pokud by se pro stejný účel použil smysluplný text, bylo by těžké hodnotit pouze vzhled, aniž by se\n\t\t\t\t\t\tpozorovatel nechal svést ke čtení obsahu. Pokud by byl naopak použit nesmyslný, ale pravidelný text\n\t\t\t\t\t\t(např. opakování „asdf asdf asdf…“), oko by při posuzování vzhledu bylo vyrušováno pravidelnou\n\t\t\t\t\t\tstrukturou textu, která se od běžného textu liší. Text lorem ipsum na první pohled připomíná běžný\n\t\t\t\t\t\ttext, slova jsou různě dlouhá, frekvence písmen je podobná běžné řeči, interpunkce vypadá přirozeně\n\t\t\t\t\t\tatd.</p>\n\t\t\t\t</gov-tabs-item>\n\t\t\t\t<gov-tabs-item label=\"TAB #3\">\n\t\t\t\t\t<p>Dalsi suepr tab - Pokud by se pro stejný účel použil smysluplný text, bylo by těžké hodnotit pouze vzhled, aniž by se\n\t\t\t\t\t\tpozorovatel nechal svést ke čtení obsahu. Pokud by byl naopak použit nesmyslný, ale pravidelný text\n\t\t\t\t\t\t(např. opakování „asdf asdf asdf…“).</p>\n\t\t\t\t</gov-tabs-item>\n\t\t\t</gov-tabs>\n\n\t\t\t<gov-tabs id=\"po\" variant=\"secondary\" type=\"badge\" wcag-label=\"Důležitý tabs\" wcag-select-label=\"Výběr možnosti\">\n\t\t\t\t<gov-tabs-item label=\"TAB #1\">\n\t\t\t\t\t<p>Muj super tab - Lorem ipsum (zkráceně lipsum) je označení pro standardní pseudolatinský text užívaný v grafickém\n\t\t\t\t\t\tdesignu a navrhování jako demonstrativní výplňový text při vytváření pracovních ukázek grafických\n\t\t\t\t\t\tnávrhů (např. internetových stránek, rozvržení časopisů či všech druhů reklamních materiálů). Lipsum\n\t\t\t\t\t\ttak pracovně znázorňuje text v ukázkových maketách (tzv. mock-up) předtím, než bude do hotového\n\t\t\t\t\t\tnávrhu vložen smysluplný obsah.</p>\n\t\t\t\t</gov-tabs-item>\n\t\t\t\t<gov-tabs-item label=\"TAB #2\" default>\n\t\t\t\t\t<p>Dalsi suepr tab - Pokud by se pro stejný účel použil smysluplný text, bylo by těžké hodnotit pouze vzhled, aniž by se\n\t\t\t\t\t\tpozorovatel nechal svést ke čtení obsahu. Pokud by byl naopak použit nesmyslný, ale pravidelný text\n\t\t\t\t\t\t(např. opakování „asdf asdf asdf…“), oko by při posuzování vzhledu bylo vyrušováno pravidelnou\n\t\t\t\t\t\tstrukturou textu, která se od běžného textu liší. Text lorem ipsum na první pohled připomíná běžný\n\t\t\t\t\t\ttext, slova jsou různě dlouhá, frekvence písmen je podobná běžné řeči, interpunkce vypadá přirozeně\n\t\t\t\t\t\tatd.</p>\n\t\t\t\t</gov-tabs-item>\n\t\t\t\t<gov-tabs-item label=\"TAB #3\">\n\t\t\t\t\t<p>Dalsi suepr tab - Pokud by se pro stejný účel použil smysluplný text, bylo by těžké hodnotit pouze vzhled, aniž by se\n\t\t\t\t\t\tpozorovatel nechal svést ke čtení obsahu. Pokud by byl naopak použit nesmyslný, ale pravidelný text\n\t\t\t\t\t\t(např. opakování „asdf asdf asdf…“).</p>\n\t\t\t\t</gov-tabs-item>\n\t\t\t</gov-tabs>\n\t\t\t<gov-tabs id=\"po\" variant=\"success\" type=\"badge\" wcag-label=\"Důležitý tabs\" wcag-select-label=\"Výběr možnosti\">\n\t\t\t\t<gov-tabs-item label=\"TAB #1\">\n\t\t\t\t\t<p>Muj super tab - Lorem ipsum (zkráceně lipsum) je označení pro standardní pseudolatinský text užívaný v grafickém\n\t\t\t\t\t\tdesignu a navrhování jako demonstrativní výplňový text při vytváření pracovních ukázek grafických\n\t\t\t\t\t\tnávrhů (např. internetových stránek, rozvržení časopisů či všech druhů reklamních materiálů). Lipsum\n\t\t\t\t\t\ttak pracovně znázorňuje text v ukázkových maketách (tzv. mock-up) předtím, než bude do hotového\n\t\t\t\t\t\tnávrhu vložen smysluplný obsah.</p>\n\t\t\t\t</gov-tabs-item>\n\t\t\t\t<gov-tabs-item label=\"TAB #2\" default>\n\t\t\t\t\t<p>Dalsi suepr tab - Pokud by se pro stejný účel použil smysluplný text, bylo by těžké hodnotit pouze vzhled, aniž by se\n\t\t\t\t\t\tpozorovatel nechal svést ke čtení obsahu. Pokud by byl naopak použit nesmyslný, ale pravidelný text\n\t\t\t\t\t\t(např. opakování „asdf asdf asdf…“), oko by při posuzování vzhledu bylo vyrušováno pravidelnou\n\t\t\t\t\t\tstrukturou textu, která se od běžného textu liší. Text lorem ipsum na první pohled připomíná běžný\n\t\t\t\t\t\ttext, slova jsou různě dlouhá, frekvence písmen je podobná běžné řeči, interpunkce vypadá přirozeně\n\t\t\t\t\t\tatd.</p>\n\t\t\t\t</gov-tabs-item>\n\t\t\t\t<gov-tabs-item label=\"TAB #3\">\n\t\t\t\t\t<p>Dalsi suepr tab - Pokud by se pro stejný účel použil smysluplný text, bylo by těžké hodnotit pouze vzhled, aniž by se\n\t\t\t\t\t\tpozorovatel nechal svést ke čtení obsahu. Pokud by byl naopak použit nesmyslný, ale pravidelný text\n\t\t\t\t\t\t(např. opakování „asdf asdf asdf…“).</p>\n\t\t\t\t</gov-tabs-item>\n\t\t\t</gov-tabs>\n\t\t\t<gov-tabs id=\"po\" variant=\"warning\" type=\"badge\" wcag-label=\"Důležitý tabs\" wcag-select-label=\"Výběr možnosti\">\n\t\t\t\t<gov-tabs-item label=\"TAB #1\">\n\t\t\t\t\t<p>Muj super tab - Lorem ipsum (zkráceně lipsum) je označení pro standardní pseudolatinský text užívaný v grafickém\n\t\t\t\t\t\tdesignu a navrhování jako demonstrativní výplňový text při vytváření pracovních ukázek grafických\n\t\t\t\t\t\tnávrhů (např. internetových stránek, rozvržení časopisů či všech druhů reklamních materiálů). Lipsum\n\t\t\t\t\t\ttak pracovně znázorňuje text v ukázkových maketách (tzv. mock-up) předtím, než bude do hotového\n\t\t\t\t\t\tnávrhu vložen smysluplný obsah.</p>\n\t\t\t\t</gov-tabs-item>\n\t\t\t\t<gov-tabs-item label=\"TAB #2\" default>\n\t\t\t\t\t<p>Dalsi suepr tab - Pokud by se pro stejný účel použil smysluplný text, bylo by těžké hodnotit pouze vzhled, aniž by se\n\t\t\t\t\t\tpozorovatel nechal svést ke čtení obsahu. Pokud by byl naopak použit nesmyslný, ale pravidelný text\n\t\t\t\t\t\t(např. opakování „asdf asdf asdf…“), oko by při posuzování vzhledu bylo vyrušováno pravidelnou\n\t\t\t\t\t\tstrukturou textu, která se od běžného textu liší. Text lorem ipsum na první pohled připomíná běžný\n\t\t\t\t\t\ttext, slova jsou různě dlouhá, frekvence písmen je podobná běžné řeči, interpunkce vypadá přirozeně\n\t\t\t\t\t\tatd.</p>\n\t\t\t\t</gov-tabs-item>\n\t\t\t\t<gov-tabs-item label=\"TAB #3\">\n\t\t\t\t\t<p>Dalsi suepr tab - Pokud by se pro stejný účel použil smysluplný text, bylo by těžké hodnotit pouze vzhled, aniž by se\n\t\t\t\t\t\tpozorovatel nechal svést ke čtení obsahu. Pokud by byl naopak použit nesmyslný, ale pravidelný text\n\t\t\t\t\t\t(např. opakování „asdf asdf asdf…“).</p>\n\t\t\t\t</gov-tabs-item>\n\t\t\t</gov-tabs>\n\t\t\t<gov-tabs id=\"po\" variant=\"error\" type=\"badge\" wcag-label=\"Důležitý tabs\" wcag-select-label=\"Výběr možnosti\">\n\t\t\t\t<gov-tabs-item label=\"TAB #1\">\n\t\t\t\t\t<p>Muj super tab - Lorem ipsum (zkráceně lipsum) je označení pro standardní pseudolatinský text užívaný v grafickém\n\t\t\t\t\t\tdesignu a navrhování jako demonstrativní výplňový text při vytváření pracovních ukázek grafických\n\t\t\t\t\t\tnávrhů (např. internetových stránek, rozvržení časopisů či všech druhů reklamních materiálů). Lipsum\n\t\t\t\t\t\ttak pracovně znázorňuje text v ukázkových maketách (tzv. mock-up) předtím, než bude do hotového\n\t\t\t\t\t\tnávrhu vložen smysluplný obsah.</p>\n\t\t\t\t</gov-tabs-item>\n\t\t\t\t<gov-tabs-item label=\"TAB #2\" default>\n\t\t\t\t\t<p>Dalsi suepr tab - Pokud by se pro stejný účel použil smysluplný text, bylo by těžké hodnotit pouze vzhled, aniž by se\n\t\t\t\t\t\tpozorovatel nechal svést ke čtení obsahu. Pokud by byl naopak použit nesmyslný, ale pravidelný text\n\t\t\t\t\t\t(např. opakování „asdf asdf asdf…“), oko by při posuzování vzhledu bylo vyrušováno pravidelnou\n\t\t\t\t\t\tstrukturou textu, která se od běžného textu liší. Text lorem ipsum na první pohled připomíná běžný\n\t\t\t\t\t\ttext, slova jsou různě dlouhá, frekvence písmen je podobná běžné řeči, interpunkce vypadá přirozeně\n\t\t\t\t\t\tatd.</p>\n\t\t\t\t</gov-tabs-item>\n\t\t\t\t<gov-tabs-item label=\"TAB #3\">\n\t\t\t\t\t<p>Dalsi suepr tab - Pokud by se pro stejný účel použil smysluplný text, bylo by těžké hodnotit pouze vzhled, aniž by se\n\t\t\t\t\t\tpozorovatel nechal svést ke čtení obsahu. Pokud by byl naopak použit nesmyslný, ale pravidelný text\n\t\t\t\t\t\t(např. opakování „asdf asdf asdf…“).</p>\n\t\t\t\t</gov-tabs-item>\n\t\t\t</gov-tabs>\n\n\t\t\t<h2>Vertical tabs</h2>\n\t\t\t<gov-tabs id=\"po\" wcag-label=\"Důležitý tabs\" wcag-select-label=\"Výběr možnosti\" orientation=\"vertical\">\n\t\t\t\t<gov-tabs-item label=\"TAB #1\">\n\t\t\t\t\t<p>Muj super tab - Lorem ipsum (zkráceně lipsum) je označení pro standardní pseudolatinský text užívaný v grafickém\n\t\t\t\t\t\tdesignu a navrhování jako demonstrativní výplňový text při vytváření pracovních ukázek grafických\n\t\t\t\t\t\tnávrhů (např. internetových stránek, rozvržení časopisů či všech druhů reklamních materiálů). Lipsum\n\t\t\t\t\t\ttak pracovně znázorňuje text v ukázkových maketách (tzv. mock-up) předtím, než bude do hotového\n\t\t\t\t\t\tnávrhu vložen smysluplný obsah.</p>\n\t\t\t\t</gov-tabs-item>\n\t\t\t\t<gov-tabs-item label=\"TAB #2\" default>\n\t\t\t\t\t<p>Dalsi super tab - Pokud by se pro stejný účel použil smysluplný text, bylo by těžké hodnotit pouze vzhled, aniž by se\n\t\t\t\t\t\tpozorovatel nechal svést ke čtení obsahu. Pokud by byl naopak použit nesmyslný, ale pravidelný text\n\t\t\t\t\t\t(např. opakování „asdf asdf asdf…“), oko by při posuzování vzhledu bylo vyrušováno pravidelnou\n\t\t\t\t\t\tstrukturou textu, která se od běžného textu liší. Text lorem ipsum na první pohled připomíná běžný\n\t\t\t\t\t\ttext, slova jsou různě dlouhá, frekvence písmen je podobná běžné řeči, interpunkce vypadá přirozeně\n\t\t\t\t\t\tatd.</p>\n\t\t\t\t</gov-tabs-item>\n\t\t\t\t<gov-tabs-item label=\"TAB #3\">\n\t\t\t\t\t<p>Dalsi super tab - Pokud by se pro stejný účel použil smysluplný text, bylo by těžké hodnotit pouze vzhled, aniž by se\n\t\t\t\t\t\tpozorovatel nechal svést ke čtení obsahu. Pokud by byl naopak použit nesmyslný, ale pravidelný text\n\t\t\t\t\t\t(např. opakování „asdf asdf asdf…“).</p>\n\t\t\t\t</gov-tabs-item>\n\t\t\t</gov-tabs>\n\t\t\t<gov-tabs id=\"po\" wcag-label=\"Důležitý tabs\" wcag-select-label=\"Výběr možnosti\" orientation=\"vertical\">\n\t\t\t\t<gov-tabs-item label=\"Muj super tab\">\n\t\t\t\t\t<p>Muj super tab - Lorem ipsum (zkráceně lipsum) je označení pro standardní pseudolatinský text užívaný v grafickém\n\t\t\t\t\t\tdesignu a navrhování jako demonstrativní výplňový text při vytváření pracovních ukázek grafických\n\t\t\t\t\t\tnávrhů (např. internetových stránek, rozvržení časopisů či všech druhů reklamních materiálů). Lipsum\n\t\t\t\t\t\ttak pracovně znázorňuje text v ukázkových maketách (tzv. mock-up) předtím, než bude do hotového\n\t\t\t\t\t\tnávrhu vložen smysluplný obsah.</p>\n\t\t\t\t</gov-tabs-item>\n\t\t\t\t<gov-tabs-item label=\"Dalsi super tab s dlouhým popisem\" default>\n\t\t\t\t\t<p>Dalsi suepr tab - Pokud by se pro stejný účel použil smysluplný text, bylo by těžké hodnotit pouze vzhled, aniž by se\n\t\t\t\t\t\tpozorovatel nechal svést ke čtení obsahu. Pokud by byl naopak použit nesmyslný, ale pravidelný text\n\t\t\t\t\t\t(např. opakování „asdf asdf asdf…“), oko by při posuzování vzhledu bylo vyrušováno pravidelnou\n\t\t\t\t\t\tstrukturou textu, která se od běžného textu liší. Text lorem ipsum na první pohled připomíná běžný\n\t\t\t\t\t\ttext, slova jsou různě dlouhá, frekvence písmen je podobná běžné řeči, interpunkce vypadá přirozeně\n\t\t\t\t\t\tatd.</p>\n\t\t\t\t</gov-tabs-item>\n\t\t\t\t<gov-tabs-item label=\"Další super tab s naprosto nesmyslně dlouhým popisem, který se doufám nevyužije\">\n\t\t\t\t\t<p>Dalsi suepr tab - Pokud by se pro stejný účel použil smysluplný text, bylo by těžké hodnotit pouze vzhled, aniž by se\n\t\t\t\t\t\tpozorovatel nechal svést ke čtení obsahu. Pokud by byl naopak použit nesmyslný, ale pravidelný text\n\t\t\t\t\t\t(např. opakování „asdf asdf asdf…“).</p>\n\t\t\t\t</gov-tabs-item>\n\t\t\t</gov-tabs>\n\t\t\t<gov-tabs id=\"po\" type=\"badge\" wcag-label=\"Důležitý tabs\" wcag-select-label=\"Výběr možnosti\" orientation=\"vertical\">\n\t\t\t\t<gov-tabs-item label=\"TAB #1\">\n\t\t\t\t\t<p>Muj super tab - Lorem ipsum (zkráceně lipsum) je označení pro standardní pseudolatinský text užívaný v grafickém\n\t\t\t\t\t\tdesignu a navrhování jako demonstrativní výplňový text při vytváření pracovních ukázek grafických\n\t\t\t\t\t\tnávrhů (např. internetových stránek, rozvržení časopisů či všech druhů reklamních materiálů). Lipsum\n\t\t\t\t\t\ttak pracovně znázorňuje text v ukázkových maketách (tzv. mock-up) předtím, než bude do hotového\n\t\t\t\t\t\tnávrhu vložen smysluplný obsah.</p>\n\t\t\t\t</gov-tabs-item>\n\t\t\t\t<gov-tabs-item label=\"TAB #2\" default>\n\t\t\t\t\t<p>Dalsi suepr tab - Pokud by se pro stejný účel použil smysluplný text, bylo by těžké hodnotit pouze vzhled, aniž by se\n\t\t\t\t\t\tpozorovatel nechal svést ke čtení obsahu. Pokud by byl naopak použit nesmyslný, ale pravidelný text\n\t\t\t\t\t\t(např. opakování „asdf asdf asdf…“), oko by při posuzování vzhledu bylo vyrušováno pravidelnou\n\t\t\t\t\t\tstrukturou textu, která se od běžného textu liší. Text lorem ipsum na první pohled připomíná běžný\n\t\t\t\t\t\ttext, slova jsou různě dlouhá, frekvence písmen je podobná běžné řeči, interpunkce vypadá přirozeně\n\t\t\t\t\t\tatd.</p>\n\t\t\t\t</gov-tabs-item>\n\t\t\t\t<gov-tabs-item label=\"TAB #3\">\n\t\t\t\t\t<p>Dalsi suepr tab - Pokud by se pro stejný účel použil smysluplný text, bylo by těžké hodnotit pouze vzhled, aniž by se\n\t\t\t\t\t\tpozorovatel nechal svést ke čtení obsahu. Pokud by byl naopak použit nesmyslný, ale pravidelný text\n\t\t\t\t\t\t(např. opakování „asdf asdf asdf…“).</p>\n\t\t\t\t</gov-tabs-item>\n\t\t\t</gov-tabs>\n\t\t\t<gov-tabs id=\"po\" type=\"badge\" wcag-label=\"Důležitý tabs\" wcag-select-label=\"Výběr možnosti\" orientation=\"vertical\">\n\t\t\t\t<gov-tabs-item label=\"Muj super tab\">\n\t\t\t\t\t<p>Muj super tab - Lorem ipsum (zkráceně lipsum) je označení pro standardní pseudolatinský text užívaný v grafickém\n\t\t\t\t\t\tdesignu a navrhování jako demonstrativní výplňový text při vytváření pracovních ukázek grafických\n\t\t\t\t\t\tnávrhů (např. internetových stránek, rozvržení časopisů či všech druhů reklamních materiálů). Lipsum\n\t\t\t\t\t\ttak pracovně znázorňuje text v ukázkových maketách (tzv. mock-up) předtím, než bude do hotového\n\t\t\t\t\t\tnávrhu vložen smysluplný obsah.</p>\n\t\t\t\t</gov-tabs-item>\n\t\t\t\t<gov-tabs-item label=\"Dalsi super tab s dlouhým popisem\" default>\n\t\t\t\t\t<p>Dalsi suepr tab - Pokud by se pro stejný účel použil smysluplný text, bylo by těžké hodnotit pouze vzhled, aniž by se\n\t\t\t\t\t\tpozorovatel nechal svést ke čtení obsahu. Pokud by byl naopak použit nesmyslný, ale pravidelný text\n\t\t\t\t\t\t(např. opakování „asdf asdf asdf…“), oko by při posuzování vzhledu bylo vyrušováno pravidelnou\n\t\t\t\t\t\tstrukturou textu, která se od běžného textu liší. Text lorem ipsum na první pohled připomíná běžný\n\t\t\t\t\t\ttext, slova jsou různě dlouhá, frekvence písmen je podobná běžné řeči, interpunkce vypadá přirozeně\n\t\t\t\t\t\tatd.</p>\n\t\t\t\t</gov-tabs-item>\n\t\t\t\t<gov-tabs-item label=\"Další super tab s naprosto nesmyslně dlouhým popisem, který se doufám nevyužije\">\n\t\t\t\t\t<p>Dalsi suepr tab - Pokud by se pro stejný účel použil smysluplný text, bylo by těžké hodnotit pouze vzhled, aniž by se\n\t\t\t\t\t\tpozorovatel nechal svést ke čtení obsahu. Pokud by byl naopak použit nesmyslný, ale pravidelný text\n\t\t\t\t\t\t(např. opakování „asdf asdf asdf…“).</p>\n\t\t\t\t</gov-tabs-item>\n\t\t\t</gov-tabs>\n\t\t`\n\t}\n}\n\nif (customElements.get('tabs-page') === undefined) {\n\tcustomElements.define('tabs-page', TabsPage)\n}\n","class TilesPage extends HTMLElement {\n\tconnectedCallback() {\n\t\tthis.innerHTML = `\n\t\t<h2>Tiles</h2>\n\n\t\t<div class=\"gov-bg--secondary-300\" style=\"padding: 48px;\">\n\t\t\t<div style=\"max-width: 600px;\">\n\t\t\t\t<gov-tile name=\"Zdroje energie, těžba, nerosty, drahé kovy\" href=\"#\">\n\t\t\t\t\t<gov-icon name=\"id-card\" type=\"complex\" slot=\"icon\"></gov-icon>\n\t\t\t\t\t<p>\n\t\t\t\t\t\tSecondary - Od 20. 12. 2020 do 14:00 h do 20. 12. 2020 do 15:00 h bude provedena plánovaná odstávka serverů. V uvedeném termínu bude nedostupné přihlášení k Portálu občana prostřednictvím datové schránky. Více informací <a href=\"#\">zde</a>.\n\t\t\t\t\t</p>\n\t\t\t\t</gov-tile>\n\t\t\t\t<br>\n\t\t\t\t<gov-tile name=\"Zdroje energie, těžba, nerosty, drahé kovy\">\n\t\t\t\t\t<gov-icon name=\"id-card\" type=\"complex\" slot=\"icon\"></gov-icon>\n\t\t\t\t\t<ul class=\"gov-list--plain\">\n\t\t\t\t\t\t<li><a href=\"#\">Občanský život</a></li>\n\t\t\t\t\t\t<li><a href=\"#\">Podnikání v ČR</a></li>\n\t\t\t\t\t\t<li><a href=\"#\">Czech POINT</a></li>\n\t\t\t\t\t</ul>\n\t\t\t\t</gov-tile>\n\t\t\t</div>\n\t\t\t<div style=\"max-width: 800px;\">\n\t\t\t\t<gov-tile name=\"Zdroje energie, těžba, nerosty, drahé kovy\" href=\"#\" promotion>\n\t\t\t\t\t<gov-icon name=\"id-card\" type=\"complex\" slot=\"icon\"></gov-icon>\n\t\t\t\t\t<p>\n\t\t\t\t\t\tSecondary - Od 20. 12. 2020 do 14:00 h do 20. 12. 2020 do 15:00 h bude provedena plánovaná odstávka serverů. V uvedeném termínu bude nedostupné přihlášení k Portálu občana prostřednictvím datové schránky. Více informací <a href=\"#\">zde</a>.\n\t\t\t\t\t</p>\n\t\t\t\t</gov-tile>\n\t\t\t</div>\n\t\t\t<br>\n\n\t\t\t<gov-tiles columns=\"4\">\n\t\t\t\t<gov-tile name=\"Zdroje energie, těžba, nerosty, drahé kovy\" href=\"#\">\n\t\t\t\t\t<gov-icon name=\"id-card\" type=\"complex\" slot=\"icon\"></gov-icon>\n\t\t\t\t\t<p>\n\t\t\t\t\t\tSecondary - Od 20. 12. 2020 do 14:00 h do 20. 12. 2020 do 15:00 h bude provedena plánovaná odstávka serverů. V uvedeném termínu bude nedostupné přihlášení k Portálu občana prostřednictvím datové schránky. Více informací <a href=\"#\">zde</a>.\n\t\t\t\t\t</p>\n\t\t\t\t</gov-tile>\n\t\t\t\t<gov-tile name=\"Zdroje energie, těžba, nerosty, drahé kovy\" href=\"#\">\n\t\t\t\t\t<gov-icon name=\"id-card\" type=\"complex\" slot=\"icon\"></gov-icon>\n\t\t\t\t\t<p>\n\t\t\t\t\t\tSecondary - Od 20. 12. 2020 do 14:00 h do 20. 12. 2020 do 15:00 h bude provedena plánovaná odstávka serverů. V uvedeném termínu bude nedostupné přihlášení k Portálu občana prostřednictvím datové schránky. Více informací <a href=\"#\">zde</a>.\n\t\t\t\t\t</p>\n\t\t\t\t</gov-tile>\n\t\t\t\t<gov-tile name=\"Zdroje energie, těžba, nerosty, drahé kovy\" href=\"#\">\n\t\t\t\t\t<gov-icon name=\"id-card\" type=\"complex\" slot=\"icon\"></gov-icon>\n\t\t\t\t\t<p>\n\t\t\t\t\t\tSecondary - Od 20. 12. 2020 do 14:00 h do 20. 12. 2020 do 15:00 h bude provedena plánovaná odstávka serverů. V uvedeném termínu bude nedostupné přihlášení k Portálu občana prostřednictvím datové schránky. Více informací <a href=\"#\">zde</a>.\n\t\t\t\t\t</p>\n\t\t\t\t</gov-tile>\n\t\t\t\t<gov-tile name=\"Zdroje energie, těžba, nerosty, drahé kovy\" href=\"#\">\n\t\t\t\t\t<gov-icon name=\"id-card\" type=\"complex\" slot=\"icon\"></gov-icon>\n\t\t\t\t\t<p>\n\t\t\t\t\t\tSecondary - Od 20. 12. 2020 do 14:00 h do 20. 12. 2020 do 15:00 h bude provedena plánovaná odstávka serverů. V uvedeném termínu bude nedostupné přihlášení k Portálu občana prostřednictvím datové schránky. Více informací <a href=\"#\">zde</a>.\n\t\t\t\t\t</p>\n\t\t\t\t</gov-tile>\n\t\t\t\t<gov-tile name=\"Zdroje energie, těžba, nerosty, drahé kovy\" href=\"#\">\n\t\t\t\t\t<gov-icon name=\"id-card\" type=\"complex\" slot=\"icon\"></gov-icon>\n\t\t\t\t\t<p>\n\t\t\t\t\t\tSecondary - Od 20. 12. 2020 do 14:00 h do 20. 12. 2020 do 15:00 h bude provedena plánovaná odstávka serverů. V uvedeném termínu bude nedostupné přihlášení k Portálu občana prostřednictvím datové schránky. Více informací <a href=\"#\">zde</a>.\n\t\t\t\t\t</p>\n\t\t\t\t</gov-tile>\n\t\t\t\t<gov-tile name=\"Zdroje energie, těžba, nerosty, drahé kovy\" href=\"#\">\n\t\t\t\t\t<gov-icon name=\"id-card\" type=\"complex\" slot=\"icon\"></gov-icon>\n\t\t\t\t\t<p>\n\t\t\t\t\t\tSecondary - Od 20. 12. 2020 do 14:00 h do 20. 12. 2020 do 15:00 h bude provedena plánovaná odstávka serverů. V uvedeném termínu bude nedostupné přihlášení k Portálu občana prostřednictvím datové schránky. Více informací <a href=\"#\">zde</a>.\n\t\t\t\t\t</p>\n\t\t\t\t</gov-tile>\n\t\t\t</gov-tiles>\n\t\t\t<br>\n\t\t\t<gov-tiles columns=\"3\" no-border>\n\t\t\t\t<gov-tile name=\"Zdroje energie, těžba, nerosty, drahé kovy\" href=\"#\">\n\t\t\t\t\t<gov-icon name=\"id-card\" type=\"complex\" slot=\"icon\"></gov-icon>\n\t\t\t\t\t<p>\n\t\t\t\t\t\tSecondary - Od 20. 12. 2020 do 14:00 h do 20. 12. 2020 do 15:00 h bude provedena plánovaná odstávka serverů. V uvedeném termínu bude nedostupné přihlášení k Portálu občana prostřednictvím datové schránky. Více informací <a href=\"#\">zde</a>.\n\t\t\t\t\t</p>\n\t\t\t\t</gov-tile>\n\t\t\t\t<gov-tile name=\"Zdroje energie, těžba, nerosty, drahé kovy\" href=\"#\">\n\t\t\t\t\t<gov-icon name=\"id-card\" type=\"complex\" slot=\"icon\"></gov-icon>\n\t\t\t\t\t<p>\n\t\t\t\t\t\tSecondary - Od 20. 12. 2020 do 14:00 h do 20. 12. 2020 do 15:00 h bude provedena plánovaná odstávka serverů. V uvedeném termínu bude nedostupné přihlášení k Portálu občana prostřednictvím datové schránky. Více informací <a href=\"#\">zde</a>.\n\t\t\t\t\t</p>\n\t\t\t\t</gov-tile>\n\t\t\t\t<gov-tile name=\"Zdroje energie, těžba, nerosty, drahé kovy\" href=\"#\">\n\t\t\t\t\t<gov-icon name=\"id-card\" type=\"complex\" slot=\"icon\"></gov-icon>\n\t\t\t\t\t<p>\n\t\t\t\t\t\tSecondary - Od 20. 12. 2020 do 14:00 h do 20. 12. 2020 do 15:00 h bude provedena plánovaná odstávka serverů. V uvedeném termínu bude nedostupné přihlášení k Portálu občana prostřednictvím datové schránky. Více informací <a href=\"#\">zde</a>.\n\t\t\t\t\t</p>\n\t\t\t\t</gov-tile>\n\t\t\t\t<gov-tile name=\"Zdroje energie, těžba, nerosty, drahé kovy\" href=\"#\">\n\t\t\t\t\t<gov-icon name=\"id-card\" type=\"complex\" slot=\"icon\"></gov-icon>\n\t\t\t\t\t<p>\n\t\t\t\t\t\tSecondary - Od 20. 12. 2020 do 14:00 h do 20. 12. 2020 do 15:00 h bude provedena plánovaná odstávka serverů. V uvedeném termínu bude nedostupné přihlášení k Portálu občana prostřednictvím datové schránky. Více informací <a href=\"#\">zde</a>.\n\t\t\t\t\t</p>\n\t\t\t\t</gov-tile>\n\t\t\t\t<gov-tile name=\"Zdroje energie, těžba, nerosty, drahé kovy\" href=\"#\">\n\t\t\t\t\t<gov-icon name=\"id-card\" type=\"complex\" slot=\"icon\"></gov-icon>\n\t\t\t\t\t<p>\n\t\t\t\t\t\tSecondary - Od 20. 12. 2020 do 14:00 h do 20. 12. 2020 do 15:00 h bude provedena plánovaná odstávka serverů. V uvedeném termínu bude nedostupné přihlášení k Portálu občana prostřednictvím datové schránky. Více informací <a href=\"#\">zde</a>.\n\t\t\t\t\t</p>\n\t\t\t\t</gov-tile>\n\t\t\t\t<gov-tile name=\"Zdroje energie, těžba, nerosty, drahé kovy\" href=\"#\">\n\t\t\t\t\t<gov-icon name=\"id-card\" type=\"complex\" slot=\"icon\"></gov-icon>\n\t\t\t\t\t<p>\n\t\t\t\t\t\tSecondary - Od 20. 12. 2020 do 14:00 h do 20. 12. 2020 do 15:00 h bude provedena plánovaná odstávka serverů. V uvedeném termínu bude nedostupné přihlášení k Portálu občana prostřednictvím datové schránky. Více informací <a href=\"#\">zde</a>.\n\t\t\t\t\t</p>\n\t\t\t\t</gov-tile>\n\t\t\t</gov-tiles>\n\n\t\t</div>\n\t\t`\n\t}\n}\n\nif (customElements.get('tiles-page') === undefined) {\n\tcustomElements.define('tiles-page', TilesPage)\n}\n","class ToastMessagePage extends HTMLElement {\n\tconnectedCallback() {\n\t\tthis.innerHTML = `\n\t\t<h2>\n\t\t\tToast Message\n\t\t</h2>\n\t\t<gov-toast variant=\"success\">\n\t\t\t<gov-icon name=\"check-lg\" slot=\"icon\"></gov-icon>\n\t\t\t<p>\n\t\t\t\tVaše dokumenty byly úspěšně staženy.\n\t\t\t</p>\n\t\t</gov-toast>\n\t\t<br>\n\t\t<gov-toast variant=\"error\" gravity=\"bottom\" position=\"left\">\n\t\t\t<gov-icon name=\"info\" slot=\"icon\"></gov-icon>\n\t\t\t<p>\n\t\t\t\tNení možné požadavek zpracovat z důvodu chyby serveru.\n\t\t\t</p>\n\t\t</gov-toast>\n\t\t<br>\n\t\t<gov-toast variant=\"warning\" position=\"left\">\n\t\t\t<gov-icon name=\"info\" slot=\"icon\"></gov-icon>\n\t\t\t<p>\n\t\t\t\tŽádost se nepodařilo odeslat, zkontrolujte nastavení.\n\t\t\t</p>\n\t\t</gov-toast>\n\t\t<br>\n\t\t<gov-toast variant=\"primary\" position=\"center\">\n\t\t\t<gov-icon name=\"info\" slot=\"icon\"></gov-icon>\n\t\t\t<p>\n\t\t\t\tSoubory jsou připraveny ke stažení.\n\t\t\t</p>\n\t\t</gov-toast>\n\t\t<br>\n\t\t<gov-toast variant=\"secondary\" gravity=\"bottom\" position=\"right\">\n\t\t\t<gov-icon name=\"info\" slot=\"icon\"></gov-icon>\n\t\t\t<p>\n\t\t\t\tVaše aplikace byla aktualizovaná na novou verzi!\n\t\t\t</p>\n\t\t</gov-toast>\n\t\t\t`\n\t}\n}\n\nif (customElements.get('toast-message-page') === undefined) {\n\tcustomElements.define('toast-message-page', ToastMessagePage)\n}\n","class ToastMessageCountdownPage extends HTMLElement {\n\tconnectedCallback() {\n\t\tthis.innerHTML = `\n\t\t<h2>\n\t\t\tToast Message Countdown\n\t\t</h2>\n\t\t<gov-toast variant=\"success\" type=\"solid\">\n\t\t\t<gov-icon name=\"check-lg\" slot=\"icon\"></gov-icon>\n\t\t\t<p>\n\t\t\t\tVaše dokumenty byly úspěšně staženy.\n\t\t\t</p>\n\t\t</gov-toast>\n\t\t<br>\n\t\t<gov-toast variant=\"error\" type=\"solid\" gravity=\"bottom\" position=\"left\">\n\t\t\t<gov-icon name=\"info\" slot=\"icon\"></gov-icon>\n\t\t\t<p>\n\t\t\t\tNení možné požadavek zpracovat z důvodu chyby serveru.\n\t\t\t</p>\n\t\t</gov-toast>\n\t\t<br>\n\t\t<gov-toast variant=\"warning\" type=\"solid\" position=\"left\">\n\t\t\t<gov-icon name=\"info\" slot=\"icon\"></gov-icon>\n\t\t\t<p>\n\t\t\t\tŽádost se nepodařilo odeslat, zkontrolujte nastavení.\n\t\t\t</p>\n\t\t</gov-toast>\n\t\t<br>\n\t\t<gov-toast variant=\"primary\" type=\"solid\" position=\"center\">\n\t\t\t<gov-icon name=\"info\" slot=\"icon\"></gov-icon>\n\t\t\t<p>\n\t\t\t\tSoubory jsou připraveny ke stažení.\n\t\t\t</p>\n\t\t</gov-toast>\n\t\t<br>\n\t\t<gov-toast variant=\"secondary\" type=\"solid\" gravity=\"bottom\" position=\"right\">\n\t\t\t<gov-icon name=\"info\" slot=\"icon\"></gov-icon>\n\t\t\t<p>\n\t\t\t\tVaše aplikace byla aktualizovaná na novou verzi!\n\t\t\t</p>\n\t\t</gov-toast>\n\t\t\t`\n\t}\n}\n\nif (customElements.get('toast-message-countdown-page') === undefined) {\n\tcustomElements.define('toast-message-countdown-page', ToastMessageCountdownPage)\n}\n","class TooltipPage extends HTMLElement {\n\tconnectedCallback() {\n\t\tthis.innerHTML = `\n\t\t\t<div style=\"width: 500px; overflow: auto; height: 100px\">\n\t\t\t\t<div style=\"width: 800px; display: flex; flex-direction: row; height: 100px; gap: 20px\">\n\t\t\t\t\t<div style=\"width: 100px; border: 1px solid black; height: 100px\"></div>\n\t\t\t\t\t<div style=\"width: 100px; border: 1px solid black; height: 100px\"></div>\n\t\t\t\t\t<div style=\"width: 100px; border: 1px solid black; height: 100px\"></div>\n\t\t\t\t\t<div style=\"width: 100px; border: 1px solid black; height: 100px\"></div>\n\t\t\t\t\t<div style=\"width: 100px; border: 1px solid black; height: 100px\"></div>\n\t\t\t\t\t<div style=\"width: 100px; border: 1px solid black; height: 100px\"></div>\n\t\t\t\t\t<div style=\"width: 100px; border: 1px solid black; height: 100px\"></div>\n\t\t\t\t\t<div style=\"width: 100px; border: 1px solid black; height: 100px\"></div>\n\t\t\t\t\t<div style=\"width: 100px; border: 1px solid black; height: 100px\"></div>\n\t\t\t\t\t<div style=\"width: 100px; border: 1px solid black; height: 100px\">\n\t\t\t\t\t<gov-tooltip position=\"right\" size=\"s\" icon>\n\t\t\t\t\t<gov-icon name=\"info\"></gov-icon>\n\t\t\t\t\t<gov-tooltip-content>\n\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t<li>Toggler div, h1, h2 rozbije celou komponentu. </li>\n\t\t\t\t\t\t\t<li>Můžu použít tagy jako span, anchor, gov-icon - inlinové. Zde je použita ikonka z knihovny font-awesome</li>\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t</gov-tooltip-content>\n\t\t\t\t</gov-tooltip>\n</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<p>\n\t\t\t\tDefault scheme, size Small. Nelze umístit jako toggle element který je blokový - tj. div, h1, h2, atp.\n\t\t\t\t<gov-tooltip position=\"right\" size=\"s\" icon>\n\t\t\t\t\t<gov-icon name=\"info\"></gov-icon>\n\t\t\t\t\t<gov-tooltip-content>\n\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t<li>Toggler div, h1, h2 rozbije celou komponentu. </li>\n\t\t\t\t\t\t\t<li>Můžu použít tagy jako span, anchor, gov-icon - inlinové. Zde je použita ikonka z knihovny font-awesome</li>\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t</gov-tooltip-content>\n\t\t\t\t</gov-tooltip>\n\t\t\t\tza prací do států EU byste měli být vždy pojištěni ve státě, ve kterém pracujete. Pokud pracujete pouze na území jednoho státu, je státem pojištění vždy tento stát.\n\t\t\t</p>\n\t\t\t<p>\n\t\t\t\tV rámci\n\t\t\t\t<gov-tooltip variant=\"secondary\" position=\"top\" size=\"s\" message=\"Znění petice podléhá § 1 odst. 3-4 zákonuč. 85/1990 Sb. Text.\">\n\t\t\t\t\tpřípadě vycestování (top)\n\t\t\t\t</gov-tooltip>\n\t\t\t\tstátů EU platí princip jednoho pojištění. V za prací do států EU byste měli být vždy\n\t\t\t\tpojištěni ve státě, ve kterém pracujete. Pokud pracujete pouze na území jednoho státu, je státem pojištění vždy\n\t\t\t\ttento stát.\n\t\t\t</p>\n\t\t\t<p>V rámci\n\t\t\t\t<gov-tooltip variant=\"secondary\" position=\"bottom\" size=\"s\">\n\t\t\t\t\tpřípadě vycestování (bottom)\n\t\t\t\t\t<gov-tooltip-content>\n\t\t\t\t\t\tZnění petice podléhá § 1 odst. 3-4 zákonuč. 85/1990 Sb. Text.\n\t\t\t\t\t</gov-tooltip-content>\n\t\t\t\t</gov-tooltip>\n\t\t\t\tstátů EU platí princip jednoho pojištění. V za prací do států EU byste měli být vždy\n\t\t\t\tpojištěni ve státě, ve kterém pracujete. Pokud pracujete pouze na území jednoho státu, je státem pojištění vždy\n\t\t\t\ttento stát.\n\t\t\t</p>\n\t\t\t<p>\n\t\t\t\tV rámci států EU platí princip jednoho pojištění. V za prací do států EU byste měli být vždy\n\t\t\t\t<gov-tooltip variant=\"secondary\" position=\"left\" size=\"s\">\n\t\t\t\t\tpřípadě vycestování (left)\n\t\t\t\t\t<gov-tooltip-content>\n\t\t\t\t\t\tZnění petice podléhá § 1 odst. 3-4 zákonuč. 85/1990 Sb. Text.\n\t\t\t\t\t</gov-tooltip-content>\n\t\t\t\t</gov-tooltip>\n\t\t\t\tpojištěni ve státě, ve kterém pracujete. Pokud pracujete pouze na území jednoho státu, je státem pojištění vždy tento stát.\n\t\t\t</p>\n\t\t\t<p>\n\t\t\t\tV rámci států EU platí princip jednoho pojištění. V\n\t\t\t\t<gov-tooltip position=\"right\">\n\t\t\t\t\tpřípadě vycestování postion (right)\n\t\t\t\t\t<gov-tooltip-content>\n\t\t\t\t\t\tZnění petice podléhá § 1 odst. 3-4 zákonuč. 85/1990 Sb. Text.\n\t\t\t\t\t</gov-tooltip-content>\n\t\t\t\t</gov-tooltip>\n\t\t\t\tza prací do států EU byste měli být vždy pojištěni ve státě, ve kterém pracujete. Pokud pracujete pouze na území jednoho státu, je státem pojištění vždy tento stát.\n\t\t\t</p>\n\t\t\t<p>\n\t\t\t\tV rámci\n\t\t\t\t<gov-tooltip position=\"top\">\n\t\t\t\t\tpřípadě vycestování (top)\n\t\t\t\t\t<gov-tooltip-content>\n\t\t\t\t\t\tZnění petice podléhá § 1 odst. 3-4 zákonuč. 85/1990 Sb. Text.\n\t\t\t\t\t</gov-tooltip-content>\n\t\t\t\t</gov-tooltip>\n\t\t\t\tstátů EU platí princip jednoho pojištění. V za prací do států EU byste měli být vždy\n\t\t\t\tpojištěni ve státě, ve kterém pracujete. Pokud pracujete pouze na území jednoho státu, je státem pojištění vždy\n\t\t\t\ttento stát.\n\t\t\t</p>\n\t\t\t<p>\n\t\t\tV rámci\n\t\t\t\t<gov-tooltip position=\"bottom\">\n\t\t\t\t\tpřípadě vycestování (bottom)\n\t\t\t\t\t<gov-tooltip-content>\n\t\t\t\t\t\tZnění petice podléhá § 1 odst. 3-4 zákonuč. 85/1990 Sb. Text.\n\t\t\t\t\t</gov-tooltip-content>\n\t\t\t\t</gov-tooltip> států EU platí princip jednoho pojištění. V za prací do států EU byste měli být vždy\n\t\t\t\tpojištěni ve státě, ve kterém pracujete. Pokud pracujete pouze na území jednoho státu, je státem pojištění vždy\n\t\t\t\ttento stát.\n\t\t\t</p>\n\t\t\t<p>\n\t\t\t\tV rámci států EU platí princip jednoho pojištění. V za prací do států EU byste měli být vždy\n\t\t\t\t<gov-tooltip variant=\"secondary\" position=\"left\">\n\t\t\t\t\tpřípadě vycestování (left)\n\t\t\t\t\t<gov-tooltip-content>\n\t\t\t\t\t\tZnění petice podléhá § 1 odst. 3-4 zákonuč. 85/1990 Sb. Text.\n\t\t\t\t\t</gov-tooltip-content>\n\t\t\t\t</gov-tooltip> pojištěni ve státě, ve kterém pracujete. Pokud pracujete pouze na území jednoho státu, je státem pojištění vždy\n\t\t\t\ttento stát. V rámci států EU platí princip jednoho pojištění. V\n\t\t\t\t<gov-tooltip variant=\"secondary\" position=\"right\" size=\"l\">\n\t\t\t\t\tpřípadě vycestování (right)\n\t\t\t\t\t<gov-tooltip-content>\n\t\t\t\t\t\tZnění petice podléhá § 1 odst. 3-4 zákonuč. 85/1990 Sb. Text.\n\t\t\t\t\t</gov-tooltip-content>\n\t\t\t\t</gov-tooltip>\n\t\t\t\tza prací do států EU byste měli být vždy\n\t\t\t\tpojištěni ve státě, ve kterém pracujete. Pokud pracujete pouze na území jednoho státu, je státem pojištění vždy\n\t\t\t\ttento stát.\n\t\t\t</p>\n\t\t\t<p>V rámci\n\t\t\t\t<gov-tooltip position=\"top\" size=\"l\">\n\t\t\t\t\tpřípadě vycestování (top)\n\t\t\t\t\t<gov-tooltip-content>\n\t\t\t\t\t\tZnění petice podléhá § 1 odst. 3-4 zákonuč. 85/1990 Sb. Text.\n\t\t\t\t\t</gov-tooltip-content>\n\t\t\t\t</gov-tooltip> států EU platí princip jednoho pojištění. V za prací do států EU byste měli být vždy\n\t\t\t\tpojištěni ve státě, ve kterém pracujete. Pokud pracujete pouze na území jednoho státu, je státem pojištění vždy\n\t\t\t\ttento stát.\n\t\t\t</p>\n\t\t\t<p>\n\t\t\t\tV rámci\n\t\t\t\t<gov-tooltip variant=\"secondary\" position=\"bottom\" size=\"l\">\n\t\t\t\t\tpřípadě vycestování (bottom)\n\t\t\t\t\t<gov-tooltip-content>\n\t\t\t\t\t\tZnění petice podléhá § 1 odst. 3-4 zákonuč. 85/1990 Sb. Text.\n\t\t\t\t\t</gov-tooltip-content>\n\t\t\t\t</gov-tooltip> států EU platí princip jednoho pojištění. V za prací do států EU byste měli být vždy\n\t\t\t\tpojištěni ve státě, ve kterém pracujete. Pokud pracujete pouze na území jednoho státu, je státem pojištění vždy\n\t\t\t\ttento stát.\n\t\t\t</p>\n\t\t\t<p>\n\t\t\t\tV rámci států EU platí princip jednoho pojištění. V za prací do států EU byste měli být vždy\n\t\t\t\t<gov-tooltip inverse variant=\"secondary\" position=\"left\" size=\"l\">\n\t\t\t\t\tpřípadě vycestování (left)\n\t\t\t\t\t<gov-tooltip-content>\n\t\t\t\t\t\tZnění petice podléhá § 1 odst. 3-4 zákonuč. 85/1990 Sb. Text.\n\t\t\t\t\t</gov-tooltip-content>\n\t\t\t\t</gov-tooltip> pojištěni ve státě, ve kterém pracujete. Pokud pracujete pouze na území jednoho státu, je státem pojištění vždy\n\t\t\t\ttento stát.\n\t\t\t\t<br /><br /><br /><br /><br />x\n\t\t\t</p>\n\t`\n\t}\n}\n\nif (customElements.get('tooltip-page') === undefined) {\n\tcustomElements.define('tooltip-page', TooltipPage)\n}\n","class TypographyPage extends HTMLElement {\n\tconnectedCallback() {\n\t\tthis.innerHTML = `\n\t\t\t<p>\n\t\t\t\t<a class=\"gov-text--xs\" href=\"#copy\" target=\"_blank\">paragraph with no more than four lines</a><br>\n\t\t\t\t<a class=\"gov-text--s\" href=\"#copy\" target=\"_blank\">paragraph with no more than four lines</a><br>\n\t\t\t\t<a class=\"gov-text--m\" href=\"#copy\" target=\"_blank\">paragraph with no more than four lines</a><br>\n\t\t\t\t<a class=\"gov-text--l\" href=\"#copy\" target=\"_blank\">paragraph with no more than four lines</a><br>\n\t\t\t\t<a class=\"gov-text--xl\" href=\"#copy\" target=\"_blank\">paragraph with no more than four lines</a><br>\n\t\t\t\t<a class=\"gov-text--2xl\" href=\"#copy\" target=\"_blank\">paragraph with no more than four lines</a><br>\n\t\t\t\t<a class=\"gov-text--3xl\" href=\"#copy\" target=\"_blank\">paragraph with no more than four lines</a><br>\n\t\t\t\t<a class=\"gov-text--4xl\" href=\"#copy\" target=\"_blank\">paragraph with no more than four lines</a><br>\n\t\t\t\t<a class=\"gov-text--5xl\" href=\"#copy\" target=\"_blank\">paragraph with no more than four lines</a><br>\n\t\t\t\t<a class=\"gov-text--6xl\" href=\"#copy\" target=\"_blank\">paragraph with no more than four lines</a><br>\n\t\t\t</p>\n\n\t\t\t<ul>\n\t\t\t\t<li>This is commonly used for long paragraphs with more than four lines. This is commonly used for long paragraphs with more than four lines. This is commonly used for long paragraphs with more than four lines</li>\n\t\t\t\t<li>This is commonly used for long paragraphs with more than four lines. This is commonly used for long paragraphs with more than four lines. This is commonly used for long paragraphs with more than four lines</li>\n\t\t\t\t<li>This is commonly used for long paragraphs with more than four lines. This is commonly used for long paragraphs with more than four lines. This is commonly used for long paragraphs with more than four lines</li>\n\t\t\t\t<li>This is commonly used for long paragraphs with more than four lines. This is commonly used for long paragraphs with more than four lines. This is commonly used for long paragraphs with more than four lines</li>\n\t\t\t</ul>\n\t\t\t<ol>\n\t\t\t\t<li>This is commonly used for long paragraphs with more than four lines. This is commonly used for long paragraphs with more than four lines. This is commonly used for long paragraphs with more than four lines</li>\n\t\t\t\t<li>This is commonly used for long paragraphs with more than four lines. This is commonly used for long paragraphs with more than four lines. This is commonly used for long paragraphs with more than four lines</li>\n\t\t\t\t<li>This is commonly used for long paragraphs with more than four lines. This is commonly used for long paragraphs with more than four lines. This is commonly used for long paragraphs with more than four lines</li>\n\t\t\t\t<li>This is commonly used for long paragraphs with more than four lines. This is commonly used for long paragraphs with more than four lines. This is commonly used for long paragraphs with more than four lines</li>\n\t\t\t</ol>\n\n\t\t\t<h6 class=\"gov-text--6xl\">Heading 1 Heading 1 Heading 1</h6>\n\t\t\t<h2>Heading 2 Heading 2 Heading 2</h2>\n\t\t\t<p>\n\t\t\t\tBody 1/400<br />A lead <a href=\"#copy\" target=\"_blank\">paragraph with no more than four lines</a> . Body 1/400 A lead paragraph with no more than four lines. Body 1/400 A lead paragraph with no more than four lines\n\t\t\t</p>\n\t\t\t<h4 class=\"gov-text--l\">Heading 2 Heading 2 Heading 2</h4>\n\t\t\t<h3>Heading 3 Heading 3 Heading 3</h3>\n\t\t\t<p>\n\t\t\t\tBody 2/400<br />This is commonly used for long paragraphs with more than four lines. This is commonly used for long paragraphs with more than four lines. This is commonly used for long paragraphs with more than four lines\n\t\t\t</p>\n\t\t\t<h2>Heading 2 Heading 2 Heading 2</h2>\n\t\t\t<h3>Heading 3 Heading 3 Heading 3</h3>\n\t\t\t<p>\n\t\t\t\tBody 3/400<br />This is for body copy in components such as accordion, structured list or tile. This is for body copy in components such as accordion, structured list or tile.\n\t\t\t</p>\n\t\t\t<h3>Heading 3 Heading 3 Heading 3</h3>\n\t\t\t<h4>Heading 4 Heading 4 Heading 4</h4>\n\t\t\t<p>\n\t\t\t\tBold - Body 1/700<br />A lead paragraph with no more than four lines. Body 1/400 A lead paragraph with no more than four lines. Body 1/400 A lead paragraph with no more than four lines\n\t\t\t</p>\n\t\t\t<h4>Heading 4 Heading 4 Heading 4</h4>\n\t\t\t<h5>Heading 5 Heading 5 Heading 5</h5>\n\t\t\t<p>\n\t\t\t\tBold - Body 2/700<br />This is commonly used for long paragraphs with more than four lines. This is commonly used for long paragraphs with more than four lines. This is commonly used for long paragraphs with more than four lines\n\t\t\t</p>\n\t\t\t<h5>Heading 5 Heading 5 Heading 5</h5>\n\t\t\t<h6>Heading 6 Heading 6 Heading 6</h6>\n\t\t\t<p>\n\t\t\t\tBold - Body 3/700<br />This is for body copy in components such as accordion, structured list or tile. This is for body copy in components such as accordion, structured list or tile.\n\t\t\t</p>\n\t\t\t<h6>Heading 6 Heading 6 Heading 6</h6>\n\t\t\t<p class=\"text-x-small\">\n\t\t\t\tAssistive<br />This is for explanatory helper text that appears below a field\n\t\t\t</p>\n\t\t\t<ul>\n\t\t\t\t<li>seznam položka seznam položka seznam položka<br />seznam položka seznam položka seznam položka</li>\n\t\t\t\t<li>seznam položka seznam položka seznam položka</li>\n\t\t\t\t<li>seznam položka seznam položka seznam položka</li>\n\t\t\t</ul>\n\t\t`\n\t}\n}\n\nif (customElements.get('typography-page') === undefined) {\n\tcustomElements.define('typography-page', TypographyPage)\n}\n","class WizzardPage extends HTMLElement {\n\tconnectedCallback() {\n\t\tthis.innerHTML = `\n <h2>Wizzard</h2>\n\t\t\t<div class=\"gov-bg--secondary-300\" style=\"padding: 48px\">\n\t\t\t\t<gov-wizzard>\n\t\t\t\t\t<gov-wizzard-item label-tag=\"h1\" label=\"Font Awesome Icon\" variant=\"success\" collapsible>\n\t\t\t\t\t\t<span slot=\"prefix\"><gov-icon name=\"check-lg\"></gov-icon></span>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-wizzard-item>\n\t\t\t\t\t<gov-wizzard-item label=\"Kontaktní osoby\" variant=\"primary\" is-expanded>\n\t\t\t\t\t\t<span slot=\"prefix\">2</span>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-wizzard-item>\n\t\t\t\t\t<gov-wizzard-item label=\"Působnost v agendách\" variant=\"secondary\" collapsible=\"false\">\n\t\t\t\t\t\t<span slot=\"prefix\">3</span>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-wizzard-item>\n\t\t\t\t\t<gov-wizzard-item label=\"Zřizované organizace\" variant=\"error\" collapsible annotation=\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus.\">\n\t\t\t\t\t\t<span slot=\"prefix\">4</span>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-wizzard-item>\n\t\t\t\t\t<gov-wizzard-item label=\"Zřizované organizace\" variant=\"warning\" is-expanded>\n\t\t\t\t\t\t<span slot=\"prefix\">5</span>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-wizzard-item>\n\t\t\t\t</gov-wizzard>\n\n\t\t\t\t<br><br>\n\n\t\t\t\t<gov-wizzard size=\"s\">\n\t\t\t\t\t<gov-wizzard-item label-tag=\"h1\" label=\"Font Awesome Icon\" variant=\"success\" annotation=\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus.\" collapsible>\n\t\t\t\t\t\t<gov-icon slot=\"prefix\" name=\"check-lg\"></gov-icon>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-wizzard-item>\n\t\t\t\t\t<gov-wizzard-item label=\"Kontaktní osoby\" variant=\"primary\" is-expanded>\n\t\t\t\t\t\t<span slot=\"prefix\">2</span>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-wizzard-item>\n\t\t\t\t\t<gov-wizzard-item label=\"Působnost v agendách\" variant=\"secondary\">\n\t\t\t\t\t\t<span slot=\"prefix\">3</span>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-wizzard-item>\n\t\t\t\t\t<gov-wizzard-item label=\"Zřizované organizace\" variant=\"error\">\n\t\t\t\t\t\t<span slot=\"prefix\">4</span>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-wizzard-item>\n\t\t\t\t\t<gov-wizzard-item label=\"Zřizované organizace\" variant=\"warning\">\n\t\t\t\t\t\t<span slot=\"prefix\">5</span>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-wizzard-item>\n\t\t\t\t</gov-wizzard>\n\t\t\t\t<br><br>\n\n\t\t\t\t<gov-wizzard size=\"xs\">\n\t\t\t\t\t<gov-wizzard-item label-tag=\"h1\" label=\"Font Awesome Icon\" variant=\"success\" annotation=\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus.\" collapsible>\n\t\t\t\t\t\t<gov-icon slot=\"prefix\" name=\"check-lg\"></gov-icon>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-wizzard-item>\n\t\t\t\t\t<gov-wizzard-item label=\"Kontaktní osoby\" variant=\"primary\" is-expanded>\n\t\t\t\t\t\t<span slot=\"prefix\">2</span>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-wizzard-item>\n\t\t\t\t\t<gov-wizzard-item label=\"Působnost v agendách\" variant=\"secondary\">\n\t\t\t\t\t\t<span slot=\"prefix\">3</span>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-wizzard-item>\n\t\t\t\t\t<gov-wizzard-item label=\"Zřizované organizace\" variant=\"error\">\n\t\t\t\t\t\t<span slot=\"prefix\">4</span>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-wizzard-item>\n\t\t\t\t\t<gov-wizzard-item label=\"Zřizované organizace\" variant=\"warning\">\n\t\t\t\t\t\t<span slot=\"prefix\">5</span>\n\t\t\t\t\t\t<p>Opět věc a stylování obsahu. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vehicula sollicitudin risus, quis tempor metus imperdiet vitae. Duis in blandit lacus.</p>\n\t\t\t\t\t</gov-wizzard-item>\n\t\t\t\t</gov-wizzard>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\nif (customElements.get('wizzard-page') === undefined) {\n\tcustomElements.define('wizzard-page', WizzardPage)\n}\n","html,\nbody {\n\tmargin: 0;\n\tpadding: 0;\n}\n.container-view {\n\tpadding: 12px;\n}\n\nhr {\n\theight: 0;\n\tborder: 0 none;\n\tborder-top: 1px solid gainsboro;\n\tfont-size: 0;\n}\n\nhr.inversed {\n\tborder-top-color: #254e80;\n}\n","import { Component, Host, h } from '@stencil/core'\nimport { Router } from '@vaadin/router'\nimport '../../pages/Accordion.ts'\nimport '../../pages/Alert.ts'\nimport '../../pages/Badge.ts'\nimport '../../pages/Breadcrumbs.ts'\nimport '../../pages/Button.ts'\nimport '../../pages/Card.ts'\nimport '../../pages/Container.ts'\nimport '../../pages/ControlGroup.ts'\nimport '../../pages/Cookiebar.ts'\nimport '../../pages/Empty.ts'\nimport '../../pages/Error.ts'\nimport '../../pages/FormLabel.ts'\nimport '../../pages/FormMessage.ts'\nimport '../../pages/Forms.ts'\nimport '../../pages/FormsRestructure.ts'\nimport '../../pages/Grid.ts'\nimport '../../pages/Home.ts'\nimport '../../pages/Layout.ts'\nimport '../../pages/Loading.ts'\nimport '../../pages/Message.ts'\nimport '../../pages/Modal.ts'\nimport '../../pages/Nav.ts'\nimport '../../pages/Pagination.ts'\nimport '../../pages/Prompt.ts'\nimport '../../pages/SideNav.ts'\nimport '../../pages/Spacer.ts'\nimport '../../pages/Statsbar.ts'\nimport '../../pages/Stepper.ts'\nimport '../../pages/Tabs.ts'\nimport '../../pages/Tiles.js'\nimport '../../pages/ToastMessage.ts'\nimport '../../pages/ToastMessageCountdown.ts'\nimport '../../pages/Tooltip.ts'\nimport '../../pages/Typography.ts'\nimport '../../pages/Wizzard.ts'\n\n@Component({\n\ttag: 'gov-app',\n\tstyleUrl: 'gov-app.scss',\n\tshadow: false,\n})\nexport class GovApp {\n\tcomponentWillLoad() {\n\t\tconst outlet = document.getElementById('outlet')\n\t\toutlet.innerHTML = ''\n\t\tconst router = new Router(outlet)\n\t\trouter.setRoutes([\n\t\t\t{ path: '/', component: 'home-page' },\n\t\t\t{ path: '/alert', component: 'alert-page' },\n\t\t\t{ path: '/accordion', component: 'accordion-page' },\n\t\t\t{ path: '/badge', component: 'badge-page' },\n\t\t\t{ path: '/button', component: 'button-page' },\n\t\t\t{ path: '/breadcrumbs', component: 'breadcrumbs-page' },\n\t\t\t{ path: '/card', component: 'card-page' },\n\t\t\t{ path: '/message', component: 'message-page' },\n\t\t\t{ path: '/cookiebar', component: 'cookiebar-page' },\n\t\t\t{ path: '/container', component: 'container-page' },\n\t\t\t{ path: '/control-group', component: 'control-group-page' },\n\t\t\t{ path: '/empty', component: 'empty-page' },\n\t\t\t{ path: '/error', component: 'error-page' },\n\t\t\t{ path: '/forms', component: 'forms-page' },\n\t\t\t{ path: '/forms-restructue', component: 'forms-restructure-page' },\n\t\t\t{ path: '/form-message', component: 'form-message-page' },\n\t\t\t{ path: '/form-label', component: 'form-label-page' },\n\t\t\t{ path: '/grid', component: 'grid-page' },\n\t\t\t{ path: '/loading', component: 'loading-page' },\n\t\t\t{ path: '/modal', component: 'modal-page' },\n\t\t\t{ path: '/nav', component: 'nav-page' },\n\t\t\t{ path: '/spacer', component: 'spacer-page' },\n\t\t\t{ path: '/statsbar', component: 'statsbar-page' },\n\t\t\t{ path: '/stepper', component: 'stepper-page' },\n\t\t\t{ path: '/tabs', component: 'tabs-page' },\n\t\t\t{ path: '/tooltip', component: 'tooltip-page' },\n\t\t\t{ path: '/tiles', component: 'tiles-page' },\n\t\t\t{ path: '/typography', component: 'typography-page' },\n\t\t\t{ path: '/toast-message', component: 'toast-message-page' },\n\t\t\t{ path: '/toast-message-countdown', component: 'toast-message-countdown-page' },\n\t\t\t{ path: '/pagination', component: 'pagination-page' },\n\t\t\t{ path: '/prompt', component: 'prompt-page' },\n\t\t\t{ path: '/wizzard', component: 'wizzard-page' },\n\t\t\t{ path: '/side-nav', component: 'side-nav-page' },\n\t\t\t{ path: '/grid', component: 'grid-page' },\n\t\t\t{ path: '/layout', component: 'layout-page' },\n\t\t])\n\t}\n\n\trender() {\n\t\treturn <Host />\n\t}\n}\n","export const AttachmentsClass = {\n\troot: 'gov-attachments',\n\tlabel: 'gov-attachments__label',\n\tlist: 'gov-attachments__list',\n}\n\nexport const AttachmentsItemClass = {\n\troot: 'gov-attachments-item',\n\tname: 'gov-attachments-item__name',\n\tfile: 'gov-attachments-item__file',\n\tmessages: 'gov-attachments-item__messages',\n}\n","/*\n * Attachments\n */\n\n$class: \".gov-attachments\";\n\n#{$class} {\n\t@include base();\n\t&__label {\n\t\t@include typography($font-size-s);\n\t\tcolor: $form-label-color;\n\t}\n\t&__list {\n\t\t@include reset-last-margin();\n\t}\n}\n","import { Component, Element, h, Host, Method, Prop } from '@stencil/core'\nimport { AttachmentsClass } from './constants'\nimport { validateWcagProp } from '../../helpers/Validate/wcag'\nimport { canValidateWcagOnRender } from '../../helpers/Dom/win'\nimport { delay } from '../../utils/utils'\nimport { govHost } from '../../helpers/Dom/template'\nimport { GovHost } from '../../helpers/Dom/template.types'\n\n@Component({\n\ttag: 'gov-attachments',\n\tstyleUrl: 'gov-attachments.scss',\n})\nexport class GovAttachments {\n\tprivate h: GovHost\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t}\n\n\t@Element() readonly host: HTMLGovAttachmentsElement\n\t/**\n\t * Label of attachments section\n\t */\n\t@Prop() readonly label: string\n\t/**\n\t * Adds accessible label for the attachment section that is only shown for screen readers.\n\t */\n\t@Prop({ attribute: 'wcag-label' }) readonly wcagLabel: string\n\n\tasync componentDidRender() {\n\t\tif (canValidateWcagOnRender()) {\n\t\t\tawait delay(500)\n\t\t\tawait this.validateWcag()\n\t\t}\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={this.h.classes(AttachmentsClass.root)}>\n\t\t\t\t{this.label ? <p class={AttachmentsClass.label}>{this.label}</p> : null}\n\t\t\t\t<div class={AttachmentsClass.list} role=\"list\" aria-label={this.wcagLabel}>\n\t\t\t\t\t<slot />\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\t/**\n\t * Validate the WCAG attributes of the component\n\t */\n\t@Method()\n\tasync validateWcag(): Promise<void> {\n\t\tvalidateWcagProp(this.wcagLabel, 'wcag-label', AttachmentsClass.root)\n\t}\n}\n","/*\n * Attachments - Item\n */\n\n$class: \".gov-attachments-item\";\n\n#{$class} {\n\t@include base();\n\tmargin: rem-calc(0 0 8);\n\t&__messages {\n\t\t@include reset-last-margin();\n\t}\n\t&__file {\n\t\tdisplay: flex;\n\t\tgap: rem-calc(16);\n\t}\n\t&__name {\n\t\tdisplay: flex;\n\t\tgap: 0 rem-calc(8);\n\t\tflex-wrap: wrap;\n\t\talign-items: center;\n\t\talign-self: center;\n\t\tmargin: 0;\n\t\tcolor: $attachments-name-color;\n\t\tspan {\n\t\t\t@include typography($font-size-xs);\n\t\t\tcolor: $attachments-decor-color;\n\t\t}\n\t}\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop } from '@stencil/core'\nimport { AttachmentsItemClass } from './constants'\nimport { validateWcagLabel } from '../../helpers/Validate/wcag'\nimport { canValidateWcagOnRender } from '../../helpers/Dom/win'\nimport { delay } from '../../utils/utils'\nimport { govHost } from '../../helpers/Dom/template'\nimport { GovHost } from '../../helpers/Dom/template.types'\n\n@Component({\n\ttag: 'gov-attachments-item',\n\tstyleUrl: 'gov-attachments-item.scss',\n})\nexport class GovAttachmentsItem {\n\tprivate h: GovHost\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t}\n\n\t@Element() readonly host: HTMLGovAttachmentsItemElement\n\n\t/**\n\t * Adds accessible label for the remove button that is only shown for screen readers.\n\t */\n\t@Prop({ attribute: 'wcag-remove-label' }) readonly wcagRemoveLabel: string\n\t/**\n\t * Indicates the id of a component that labels the remove button.\n\t */\n\t@Prop({ attribute: 'wcag-remove-labelled-by' }) readonly wcagRemoveLabelledBy: string\n\t/**\n\t * Emitted when the file is removed\n\t */\n\t@Event({ eventName: 'gov-remove' }) govRemove: EventEmitter<PointerEvent>\n\n\tasync componentDidRender() {\n\t\tif (canValidateWcagOnRender()) {\n\t\t\tawait delay(500)\n\t\t\tawait this.validateWcag()\n\t\t}\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={this.h.classes(AttachmentsItemClass.root)} role=\"listitem\">\n\t\t\t\t<div class={AttachmentsItemClass.file}>\n\t\t\t\t\t<p class={AttachmentsItemClass.name}>\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t\t<slot name=\"info\" />\n\t\t\t\t\t</p>\n\t\t\t\t\t<gov-button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\ttype=\"base\"\n\t\t\t\t\t\tsize=\"s\"\n\t\t\t\t\t\twcag-label={this.wcagRemoveLabel}\n\t\t\t\t\t\twcag-labelled-by={this.wcagRemoveLabelledBy}\n\t\t\t\t\t\ton-gov-click={this.govRemove.emit}\n\t\t\t\t\t>\n\t\t\t\t\t\t<gov-icon slot=\"left-icon\" name=\"x-lg\"></gov-icon>\n\t\t\t\t\t</gov-button>\n\t\t\t\t</div>\n\n\t\t\t\t{this.h.hasSlot('message') && (\n\t\t\t\t\t<div class={AttachmentsItemClass.messages}>\n\t\t\t\t\t\t<slot name=\"message\" />\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</Host>\n\t\t)\n\t}\n\n\t/**\n\t * Validate the WCAG attributes of the component\n\t */\n\t@Method()\n\tasync validateWcag(): Promise<void> {\n\t\tvalidateWcagLabel(this.wcagRemoveLabel, this.wcagRemoveLabelledBy, AttachmentsItemClass.root)\n\t}\n}\n","export const BackdropClass = {\n\troot: 'gov-backdrop',\n\tbg: 'gov-backdrop__bg',\n}\n","/*\n * Backdrop\n */\n\n$class: \".gov-backdrop\";\n\n#{$class} {\n\t&__bg {\n\t\t@include z-index(\"modal\", 0);\n\t\tposition: fixed;\n\t\ttop: 0;\n\t\tright: 0;\n\t\tbottom: 0;\n\t\tleft: 0;\n\t\tbackground-color: $backdrop-bg;\n\t\topacity: $backdrop-opacity;\n\t}\n\n\t// VARIANTS\n\t@include parameter(\"inverse\") {\n\t\t#{$class} {\n\t\t\t&__bg {\n\t\t\t\tbackground-color: $backdrop-bg-inverse;\n\t\t\t\topacity: $backdrop-opacity-inverse;\n\t\t\t}\n\t\t}\n\t}\n}\n","import { Component, Event, EventEmitter, h, Method, Prop, Host, Element } from '@stencil/core'\nimport { validateWcagLabel } from '../../helpers/Validate/wcag'\nimport { BackdropClass } from './constants'\nimport { canValidateWcagOnRender } from '../../helpers/Dom/win'\nimport { delay } from '../../utils/utils'\nimport { govHost } from '../../helpers/Dom/template'\nimport { GovHost } from '../../helpers/Dom/template.types'\n\n@Component({\n\ttag: 'gov-backdrop',\n\tstyleUrl: 'gov-backdrop.scss',\n})\nexport class GovBackdrop {\n\tprivate h: GovHost\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t}\n\n\t@Element() host: HTMLGovAlertElement\n\t/**\n\t * Determide if component should have inversed colors to be used on dark background.\n\t */\n\t@Prop() readonly inverse: boolean = false\n\t/**\n\t * Adds accessible label for the backdrop that is only shown for screen readers.\n\t */\n\t@Prop({ attribute: 'wcag-label' }) readonly wcagLabel: string\n\t/**\n\t * String of id's that indicate alternative labels elements\n\t */\n\t@Prop({ attribute: 'wcag-labelled-by' }) readonly wcagLabelledBy: string\n\t/**\n\t * Emitted when button clicks.\n\t */\n\t@Event({ eventName: 'gov-click' }) govClick: EventEmitter<MouseEvent>\n\n\tasync componentDidRender() {\n\t\tif (canValidateWcagOnRender()) {\n\t\t\tawait delay(500)\n\t\t\tawait this.validateWcag()\n\t\t}\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={this.h.classes(BackdropClass.root)}>\n\t\t\t\t<div\n\t\t\t\t\trole={'button'}\n\t\t\t\t\taria-label={this.wcagLabel}\n\t\t\t\t\taria-labelledby={this.wcagLabelledBy}\n\t\t\t\t\tonClick={e => this.govClick.emit(e)}\n\t\t\t\t\tclass={BackdropClass.bg}\n\t\t\t\t></div>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\t/**\n\t * Validate the WCAG attributes of the component\n\t */\n\t@Method()\n\tasync validateWcag(): Promise<void> {\n\t\tvalidateWcagLabel(this.wcagLabel, this.wcagLabelledBy, BackdropClass.root)\n\t}\n}\n","import { ValueOf } from '../../types/interfaces'\n\nexport enum NativeType {\n\tA = 'a',\n\tSPAN = 'span',\n\tBUTTON = 'button',\n}\n\nexport type NativeTypesType = `${ValueOf<typeof NativeType>}`\n\nexport const BadgeClass = {\n\troot: 'gov-badge',\n\tinner: 'gov-badge__inner',\n\thasRight: 'gov-badge--has-right',\n\thasLeft: 'gov-badge--has-left',\n}\n","import { Sizes } from '../../../core/constants/sizes'\nimport { Variants } from '../../../core/constants/variants'\nimport { ValueOf } from '../../../types/interfaces'\nimport { pick } from '../../../utils/utils'\n\nexport const ButtonSizes = pick(Sizes, ['_XS', '_S', '_M', '_L', '_XL'])\nexport type ButtonSizesType = `${ValueOf<typeof ButtonSizes>}`\n\nexport const ButtonVariants = pick(Variants, ['PRIMARY', 'SECONDARY', 'SUCCESS', 'ERROR', 'WARNING'])\nexport type ButtonVariantType = `${ValueOf<typeof ButtonVariants>}`\n\nexport enum Type {\n\tSOLID = 'solid',\n\tOUTLINED = 'outlined',\n\tBASE = 'base',\n\tLINK = 'link',\n}\n\nexport type TypesType = `${ValueOf<typeof Type>}`\n\nexport enum NativeType {\n\tSUBMIT = 'submit',\n\tBUTTON = 'button',\n\tRESET = 'reset',\n}\n\nexport type NativeTypesType = `${ValueOf<typeof NativeType>}`\n\nexport enum ButtonTarget {\n\tBLANK = '_blank',\n\tSELF = '_self',\n\tNEW = '_new',\n}\nexport type ButtonTargetType = `${ValueOf<typeof ButtonTarget>}`\n\nexport const ButtonClass = {\n\troot: 'gov-button',\n\trootWithIcon: 'gov-button--w-icon',\n}\n","/*\n * Badge\n */\n\n// Shared definitions - button & badge\n@import \"../gov-button/default/gov-button-core\";\n\n.gov-badge {\n\t@extend %button-core;\n\tdisplay: inline-flex;\n\ta .gov-icon {\n\t\tmargin: 0;\n\t}\n\t.element {\n\t\tpadding: rem-calc(4 10);\n\t\tfont-family: $font-family-primary;\n\t\tfont-weight: 400;\n\t\tletter-spacing: initial;\n\t}\n\t.gov-button {\n\t\t.element {\n\t\t\tborder: none;\n\t\t}\n\t}\n\n\t// VARIANTS\n\t@each $size, $definitions in $button-sizes {\n\t\t$radius: calc(#{get(\"min-height\", $definitions)} * 0.5);\n\t\t&[size=\"#{$size}\"] {\n\t\t\t.element {\n\t\t\t\tborder-radius: $radius;\n\t\t\t}\n\n\t\t\t// HOVERS\n\t\t\t&[hoverable] .element {\n\t\t\t\t@include focus-outline($radius, $outline-offset);\n\t\t\t}\n\t\t}\n\t}\n\t@each $variant, $types in $badge-inverse-variants {\n\t\t&[type=\"solid\"][variant=\"#{$variant}\"] {\n\t\t\t@include parameter(\"inverse\") {\n\t\t\t\t.element {\n\t\t\t\t\tborder-width: rem-calc(1);\n\t\t\t\t\tborder-color: deep-map-get($badge-inverse-variants, $variant, \"border-color\");\n\t\t\t\t\tbackground-color: deep-map-get($badge-inverse-variants, $variant, \"bg\");\n\t\t\t\t\tcolor: deep-map-get($badge-inverse-variants, $variant, \"color\");\n\t\t\t\t\t@include hover() {\n\t\t\t\t\t\tborder-color: deep-map-get($badge-inverse-variants, $variant, \"border-color-hover\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t&--has-right > .element {\n\t\tpadding-top: 0 !important;\n\t\tpadding-bottom: 0 !important;\n\t\tpadding-right: 0 !important;\n\t}\n\n\t&--has-left > .element {\n\t\tpadding-top: 0 !important;\n\t\tpadding-bottom: 0 !important;\n\t\tpadding-left: 0 !important;\n\t}\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, Watch } from \"@stencil/core\"\nimport { GovHost } from \"../../helpers/Dom/template.types\"\nimport { validateProp } from \"../../helpers/Validate/props\"\nimport { govHost } from \"../../helpers/Dom/template\"\nimport { BadgeClass, NativeType, NativeTypesType } from \"./constants\"\nimport {\n\tButtonSizes,\n\tButtonSizesType,\n\tButtonVariants,\n\tButtonVariantType,\n\tType,\n\tTypesType,\n} from \"../gov-button/default/constants\"\n\n@Component({\n\ttag: \"gov-badge\",\n\tstyleUrl: \"gov-badge.scss\",\n})\nexport class GovBadge {\n\tprivate triggerRef?: HTMLButtonElement | HTMLLinkElement | HTMLSpanElement\n\tprivate h: GovHost\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t}\n\n\t@Element() host: HTMLGovBadgeElement\n\n\t/**\n\t * Determide if component should have inversed colors to be used on dark background\n\t */\n\t@Prop() readonly inverse: boolean = false\n\t/**\n\t * Makes the badge component disabled.\n\t * This prevents users from being able to interact with the button, and conveys its inactive state to assistive technologies.\n\t */\n\t@Prop() readonly disabled: boolean = false\n\t/**\n\t * Same as original parameter\n\t * @link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-href\n\t */\n\t@Prop() readonly href: string\n\t/**\n\t * Same as original parameter\n\t * @link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-target\n\t */\n\t@Prop() readonly target: string\n\t/**\n\t * Badge’s size.\n\t */\n\t@Prop() readonly size: ButtonSizesType = \"m\"\n\t/**\n\t * Badges's type\n\t */\n\t@Prop() readonly type: TypesType = \"solid\"\n\t/**\n\t * Used to change the HMTL tag in the badge\n\t */\n\t@Prop() readonly tag: NativeTypesType = \"span\"\n\t/**\n\t * Style variation of the badge.\n\t */\n\t@Prop() readonly variant: ButtonVariantType = \"primary\"\n\t/**\n\t * Adds accessible label for the button that is only shown for screen readers.\n\t * Typically, this label text replaces the visible text on the button for users who use assistive technology.\n\t */\n\t@Prop({ attribute: \"wcag-label\" }) readonly wcagLabel: string\n\t/**\n\t * Emitted when the button click.\n\t */\n\t@Event({ eventName: \"gov-click\" }) govClick: EventEmitter<PointerEvent>\n\n\t@Watch(\"variant\")\n\tvalidateVariant(newValue: string): void {\n\t\tvalidateProp(ButtonVariants, newValue, BadgeClass.root)\n\t}\n\n\t@Watch(\"size\")\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(ButtonSizes, newValue, BadgeClass.root)\n\t}\n\n\t@Watch(\"type\")\n\tvalidateType(newValue: string): void {\n\t\tvalidateProp(Type, newValue, BadgeClass.root)\n\t}\n\n\tcomponentWillLoad(): void {\n\t\tthis.validateVariant(this.variant)\n\t\tthis.validateSize(this.size)\n\t\tthis.validateType(this.type)\n\t}\n\n\trender() {\n\t\tconst Tag = this.href ? NativeType.A : this.tag\n\t\tconst nativeType = Tag == NativeType.BUTTON ? NativeType.BUTTON : undefined\n\n\t\treturn (\n\t\t\t<Host\n\t\t\t\tclass={this.h.classes([\n\t\t\t\t\tBadgeClass.root,\n\t\t\t\t\tthis.h.hasSlot(\"right\") ? BadgeClass.hasRight : undefined,\n\t\t\t\t\tthis.h.hasSlot(\"left\") ? BadgeClass.hasLeft : undefined,\n\t\t\t\t])}\n\t\t\t\tdisabled={this.disabled}\n\t\t\t\thref={this.href}\n\t\t\t\tvariant={this.variant}\n\t\t\t\tsize={this.size}\n\t\t\t\ttype={this.type}\n\t\t\t\tinverse={this.inverse}\n\t\t\t\thoverable={Tag == NativeType.A || Tag == NativeType.BUTTON}\n\t\t\t>\n\t\t\t\t<Tag\n\t\t\t\t\tclass=\"element\"\n\t\t\t\t\thref={this.href}\n\t\t\t\t\ttarget={this.target}\n\t\t\t\t\taria-label={this.wcagLabel}\n\t\t\t\t\tref={el => (this.triggerRef = el as HTMLLinkElement | HTMLButtonElement | HTMLSpanElement)}\n\t\t\t\t\tonClick={this.onClickHandler.bind(this)}\n\t\t\t\t\ttype={nativeType}>\n\t\t\t\t\t{this.h.hasSlot(\"left\") && <slot name=\"left\"></slot>}\n\t\t\t\t\t{this.h.hasSlot(\"left-icon\") && <slot name=\"left-icon\"></slot>}\n\t\t\t\t\t<slot />\n\t\t\t\t\t{this.h.hasSlot(\"right-icon\") && <slot name=\"right-icon\"></slot>}\n\t\t\t\t\t{this.h.hasSlot(\"right\") && <slot name=\"right\"></slot>}\n\t\t\t\t</Tag>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\tprivate onClickHandler(e: PointerEvent): void {\n\t\te.stopPropagation()\n\t\tif (this.disabled === false && this.tag === NativeType.BUTTON) {\n\t\t\tthis.govClick.emit(e)\n\t\t}\n\t}\n\n\t/**\n\t * Returns a clickable element instance\n\t */\n\t@Method()\n\tasync getTriggerRef() {\n\t\treturn this.triggerRef\n\t}\n}\n","export const BreadcrumbsClass = {\n\troot: 'gov-breadcrumbs',\n}\n","/*\n * Pagination\n */\n\n$class: \".gov-breadcrumbs\";\n\n#{$class} {\n\tul {\n\t\t@extend %reset-ul;\n\t\t@include base(flex);\n\t\tpadding-bottom: rem-calc(5);\n\t\toverflow-x: auto;\n\t}\n\tli {\n\t\t@extend %reset-ul-li;\n\t\tdisplay: flex;\n\t\tjustify-content: flex-start;\n\t\talign-items: center;\n\t\twhite-space: nowrap;\n\t}\n\tbutton {\n\t\t@include typography($font-size-m);\n\t\tpadding: 0;\n\t\tborder: none;\n\t\tbackground: none;\n\t\tcolor: $breadcrumbs-link-color;\n\t\ttext-decoration: underline;\n\t\t&:hover {\n\t\t\ttext-decoration: none;\n\t\t}\n\t}\n\t& .gov-icon {\n\t\twidth: rem-calc(10);\n\t\theight: rem-calc(10);\n\t\tmargin: rem-calc(0 16px);\n\t\tcolor: $breadcrumbs-arrow-color;\n\t}\n}\n","import { Component, Element, h, Host, Method, Prop, Event, EventEmitter } from '@stencil/core'\nimport { BreadcrumbsClass } from './constants'\nimport { validateWcagLabel } from '../../helpers/Validate/wcag'\nimport { canValidateWcagOnRender } from '../../helpers/Dom/win'\nimport { delay } from '../../utils/utils'\nimport { GovBreadcrumbsChangeEvent } from './gov-breadcrumbs.d'\nimport { govHost } from '../../helpers/Dom/template'\nimport { GovHost } from '../../helpers/Dom/template.types'\n\n@Component({\n\ttag: 'gov-breadcrumbs',\n\tstyleUrl: 'gov-breadcrumbs.scss',\n})\nexport class GovBreadcrumbs {\n\tprivate h: GovHost\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t}\n\n\t@Element() readonly host: HTMLGovBreadcrumbsElement\n\t/**\n\t * Defines wether the components can be collapsible when element doesn't fit in one row.\n\t */\n\t@Prop() readonly collapsible: boolean = false\n\t/**\n\t * Defines whether the breadcrumbs are open or closed by default\n\t */\n\t@Prop({ attribute: 'is-expanded' }) readonly isExpanded: boolean = false\n\t/**\n\t * Adds accessible label for the pagination that is only shown for screen readers.\n\t */\n\t@Prop({ attribute: 'wcag-label' }) readonly wcagLabel: string\n\t/**\n\t * Indicates the id of a component that labels the pagination.\n\t */\n\t@Prop({ attribute: 'wcag-labelded-by' }) readonly wcagLabelledBy: string\n\n\t/**\n\t * Called when the Breadrumbs state changes\n\t */\n\t@Event({ eventName: 'gov-change' }) govChange: EventEmitter<GovBreadcrumbsChangeEvent>\n\n\tasync componentDidRender() {\n\t\tif (canValidateWcagOnRender()) {\n\t\t\tawait delay(500)\n\t\t\tawait this.validateWcag()\n\t\t}\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={this.h.classes(BreadcrumbsClass.root)}>\n\t\t\t\t<nav aria-label={this.wcagLabel} aria-labelledby={this.wcagLabelledBy}>\n\t\t\t\t\t<slot/>\n\t\t\t\t</nav>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\n\t/**\n\t * Validate the WCAG attributes of the component\n\t */\n\t@Method()\n\tasync validateWcag(): Promise<void> {\n\t\tvalidateWcagLabel(this.wcagLabel, this.wcagLabelledBy, BreadcrumbsClass.root)\n\t}\n}\n","export function toBool(value: any): boolean {\n\tif (typeof value === 'string') {\n\t\treturn ['true', 'True', 'TRUE', '1'].indexOf(value) !== -1\n\t} else if (typeof value === 'number') {\n\t\treturn value > 0\n\t} else if (typeof value === 'boolean') {\n\t\treturn value\n\t} else {\n\t\treturn value ? true : false\n\t}\n}\n","/*\n * Button\n */\n\n// Shared definitions - BUTTON & badge\n@import \"gov-button-core\";\n\n.gov-button {\n\t@extend %button-core;\n\tdisplay: inline-block;\n\t.element {\n\t\tborder-radius: #{$border-radius};\n\t}\n\n\t&[type=\"link\"] {\n\t\t.element {\n\t\t\tmin-height: inherit;\n\t\t\tpadding: 0 !important;\n\t\t\tline-height: inherit;\n\t\t\ttext-decoration: underline;\n\t\t\t@include hover() {\n\t\t\t\ttext-decoration: none;\n\t\t\t}\n\t\t}\n\t}\n\n\t// STATES\n\t&[loading=\"true\"],\n\t&[loading=\"1\"] {\n\t\t.element {\n\t\t\t> .gov-icon:not(.gov-spin-animation),\n\t\t\t> gov-icon:not(.gov-spin-animation) {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t\t.gov-icon {\n\t\t\t\tmargin: 0;\n\t\t\t}\n\t\t}\n\t}\n\n\t// VARIANTS\n\t@each $size, $definitions in $button-sizes {\n\t\t// Loading state\n\t\t&[loading=\"0\"][size=\"#{$size}\"],\n\t\t&[loading=\"false\"][size=\"#{$size}\"],\n\t\t&[loading=\"\"][size=\"#{$size}\"] {\n\t\t\t.element {\n\t\t\t\tpadding: get(\"padding-y\", $definitions) calc(((get(\"padding-x\", $definitions) * 3) + get(\"icon-size\", $definitions)) / 2);\n\t\t\t}\n\t\t}\n\t\t&[size=\"#{$size}\"] {\n\t\t\t.element {\n\t\t\t\tfont-weight: map-get($definitions, \"font-weight\");\n\t\t\t}\n\t\t}\n\t}\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State, Watch } from \"@stencil/core\"\nimport { validateProp } from \"../../../helpers/Validate/props\"\nimport {\n\tButtonSizesType,\n\tNativeTypesType,\n\tTypesType,\n\tButtonVariants,\n\tButtonVariantType,\n\tButtonClass,\n\tType,\n\tNativeType,\n\tButtonTargetType,\n} from \"./constants\"\nimport { govHost, toBoolAttr, toBoolAttrIfDefined, prepareClasses } from \"../../../helpers/Dom/template\"\nimport { GovHost } from \"../../../helpers/Dom/template.types\"\nimport { toBool } from \"../../../utils/bool.utils\"\nimport { Sizes } from \"../../../core/constants/sizes\"\nimport { validateWcagLabel, validateWcagRef } from \"../../../helpers/Validate/wcag\"\nimport { canValidateWcagOnRender } from \"../../../helpers/Dom/win\"\nimport { delay } from \"../../../utils/utils\"\nimport { ButtonEvent } from \"./gov-button.types\"\n\nenum Tags {\n\tA = \"a\",\n\tBUTTON = \"button\",\n}\n\n@Component({\n\ttag: \"gov-button\",\n\tstyleUrl: \"gov-button.scss\",\n})\nexport class GovButton {\n\tprivate h: GovHost\n\tprivate triggerRef?: HTMLButtonElement | HTMLLinkElement\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t}\n\n\t@Element() host: HTMLGovButtonElement\n\n\t/**\n\t * Style variation of the button\n\t */\n\t@Prop({ reflect: true }) readonly variant?: ButtonVariantType\n\t/**\n\t * Button’s size\n\t */\n\t@Prop({ reflect: true }) readonly size?: ButtonSizesType = \"m\"\n\t/**\n\t * Button's type\n\t */\n\t@Prop({ reflect: true }) readonly type?: TypesType = \"solid\"\n\t/**\n\t * Expands the button to fill 100% of the container width\n\t */\n\t@Prop() readonly expanded: boolean = false\n\t/**\n\t * Determine if component should have inversed colors to be used on dark background\n\t */\n\t@Prop() readonly inverse: boolean = false\n\t/**\n\t * The name of the button, which gets paired with the button's value when submitted as part of a form. Corresponds with the native HTML name attribute\n\t */\n\t@Prop() readonly name: string\n\t/**\n\t * Makes the button component disabled.\n\t * This prevents users from being able to interact with the button, and conveys its inactive state to assistive technologies\n\t */\n\t@Prop({ reflect: true }) readonly disabled: boolean = false\n\t/**\n\t * Same as original parameter\n\t * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-type\n\t */\n\t@Prop() readonly nativeType?: NativeTypesType = \"button\"\n\t/**\n\t * Same as original parameter\n\t * @link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-href\n\t */\n\t@Prop() readonly href: string\n\t/**\n\t * Same as original parameter\n\t * @link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-target\n\t */\n\t@Prop() readonly target?: ButtonTargetType\n\t/**\n\t * Same as original parameter\n\t * @link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-download\n\t */\n\t@Prop() readonly download: boolean\n\t/**\n\t * Same as original parameter\n\t * @link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-hreflang\n\t */\n\t@Prop() readonly hreflang: string\n\t/**\n\t * Same as original parameter\n\t * @link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-referrerpolicy\n\t */\n\t@Prop() readonly referrerpolicy: string\n\t/**\n\t * Same as original parameter\n\t * @link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-rel\n\t */\n\t@Prop() readonly rel: string\n\t/**\n\t * Indicates whether an asynchronous process is running\n\t */\n\t@Prop() readonly loading: string\n\t/**\n\t * Same as original parametr\n\t * @link https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/focusable\n\t */\n\t@Prop() readonly focusable: boolean = true\n\t/**\n\t * Custom button identifier\n\t */\n\t@Prop({ attribute: \"identifier\" }) readonly identifier: string\n\t/**\n\t * Indicates the id of a related component’s visually focused element\n\t */\n\t@Prop({ attribute: \"wcag-active-descendant\" }) readonly wcagActiveDescendant: string\n\t/**\n\t * Use this property to add an aria-controls attribute to the button. Use the attribute to point to the unique id of the content that the button manages\n\t */\n\t@Prop({ attribute: \"wcag-controls\" }) readonly wcagControls: string\n\t/**\n\t * Indicates the id of a component that describes the button\n\t */\n\t@Prop({ attribute: \"wcag-described-by\" }) readonly wcagDescribedBy: string\n\t/**\n\t * Aria description the button\n\t */\n\t@Prop({ attribute: \"wcag-description\" }) readonly wcagDescription: string\n\t/**\n\t * Details of the component\n\t */\n\t@Prop({ attribute: \"wcag-details\" }) readonly wcagDetails: string\n\t/**\n\t * If a button expands or collapses adjacent content, then use the ariaExpanded prop to add the aria-expanded attribute to the button\n\t * Set the value to convey the current expanded (true) or collapsed (false) state of the content\n\t */\n\t@Prop({ attribute: \"wcag-expanded\" }) readonly wcagExpanded: boolean\n\t/**\n\t * Adds accessible label for the button that is only shown for screen readers\n\t * Typically, this label text replaces the visible text on the button for users who use assistive technology\n\t */\n\t@Prop({ attribute: \"wcag-label\" }) readonly wcagLabel: string\n\t/**\n\t * String of id's that indicate alternative labels elements\n\t */\n\t@Prop({ attribute: \"wcag-labelled-by\" }) readonly wcagLabelledBy: string\n\t/**\n\t * Indicates the id of a component owned by the button\n\t */\n\t@Prop({ attribute: \"wcag-owns\" }) readonly wcagOwns: string\n\t/**\n\t * \tUse this property to add an aria-haspopup attribute to a button, if you are using it as a menu button\n\t */\n\t@Prop({ attribute: \"wcag-has-popup\" }) readonly wcagHasPopup: string\n\t/**\n\t * Tells screen reader the element is pressed\n\t */\n\t@Prop({ attribute: \"wcag-pressed\" }) readonly wcagPressed: string\n\t/**\n\t * Indicates the current item within a container or set of related elements\n\t */\n\t@Prop({ attribute: \"wcag-current\" }) readonly wcagCurrent: string\n\t/**\n\t * Emitted when the button click\n\t */\n\t@Event({ eventName: \"gov-click\" }) govClick: EventEmitter<ButtonEvent>\n\t/**\n\t * Emitted when the button has focus\n\t */\n\t@Event({ eventName: \"gov-focus\" }) govFocus: EventEmitter<ButtonEvent>\n\t/**\n\t * Emitted when the button loses focus\n\t */\n\t@Event({ eventName: \"gov-blur\" }) govBlur: EventEmitter<ButtonEvent>\n\n\t@Watch(\"variant\")\n\tvalidateVariant(newValue: string): void {\n\t\tvalidateProp(ButtonVariants, newValue, ButtonClass.root)\n\t}\n\n\t@Watch(\"type\")\n\tvalidateType(newValue: string): void {\n\t\tvalidateProp(Type, newValue, ButtonClass.root)\n\t}\n\n\t@Watch(\"size\")\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(Sizes, newValue, ButtonClass.root)\n\t}\n\n\t@Watch(\"nativeType\")\n\tvalidateNativeType(newValue: string): void {\n\t\tvalidateProp(NativeType, newValue, ButtonClass.root)\n\t}\n\n\t@State() isPressed = false\n\n\tcomponentWillLoad(): void {\n\t\tthis.validateVariant(this.variant)\n\t\tthis.validateType(this.type)\n\t\tthis.validateSize(this.size)\n\t\tthis.validateNativeType(this.nativeType)\n\t}\n\n\tasync componentDidRender() {\n\t\tif (canValidateWcagOnRender()) {\n\t\t\tawait delay(500)\n\t\t\tawait this.validateWcag()\n\t\t}\n\t}\n\n\tget classNames(): string {\n\t\tconst { h } = this\n\n\t\treturn prepareClasses([ButtonClass.root, h.hasSlot(\"left-icon\") && ButtonClass.rootWithIcon, h.hasSlot(\"right-icon\") && ButtonClass.rootWithIcon])\n\t}\n\n\trender() {\n\t\tconst Tag = this.href ? Tags.A : Tags.BUTTON\n\t\tconst nativeType = Tag === Tags.A ? undefined : this.nativeType\n\n\t\treturn (\n\t\t\t<Host hoverable={true} size={this.size} variant={this.variant} class={this.h.classes(this.classNames)} type={this.type} inverse={this.inverse}>\n\t\t\t\t<Tag\n\t\t\t\t\tclass=\"element\"\n\t\t\t\t\tref={el => (this.triggerRef = el as HTMLButtonElement | HTMLLinkElement)}\n\t\t\t\t\tonClick={this.onClickHandler.bind(this)}\n\t\t\t\t\tonFocus={this.onFocusHandler.bind(this)}\n\t\t\t\t\tonBlur={this.onBlurHandler.bind(this)}\n\t\t\t\t\tonMouseDown={() => (this.isPressed = true)}\n\t\t\t\t\tonMouseUp={() => (this.isPressed = false)}\n\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\tid={this.identifier}\n\t\t\t\t\thref={this.href}\n\t\t\t\t\ttarget={this.target}\n\t\t\t\t\tdownload={this.download}\n\t\t\t\t\threflang={this.hreflang}\n\t\t\t\t\trel={this.rel}\n\t\t\t\t\tname={this.name}\n\t\t\t\t\ttype={nativeType}\n\t\t\t\t\ttabindex={this.focusable ? \"0\" : \"-1\"}\n\t\t\t\t\taria-activedescendant={this.wcagActiveDescendant}\n\t\t\t\t\taria-describedby={this.wcagActiveDescendant}\n\t\t\t\t\taria-description={this.wcagDescription}\n\t\t\t\t\taria-controls={this.wcagControls}\n\t\t\t\t\taria-details={this.wcagDetails}\n\t\t\t\t\taria-expanded={toBoolAttrIfDefined(this.wcagExpanded)}\n\t\t\t\t\taria-label={this.wcagLabel}\n\t\t\t\t\taria-labelledby={this.wcagLabelledBy}\n\t\t\t\t\taria-owns={this.wcagOwns}\n\t\t\t\t\taria-haspopup={toBoolAttrIfDefined(this.wcagHasPopup)}\n\t\t\t\t\taria-pressed={toBoolAttr(this.isPressed)}\n\t\t\t\t\taria-disabled={toBoolAttrIfDefined(this.disabled)}\n\t\t\t\t\taria-current={this.wcagCurrent}\n\t\t\t\t>\n\t\t\t\t\t{toBool(this.loading) && !this.h.hasSlot(\"right-icon\") &&\n\t\t\t\t\t\t\t\t\t\t\t<gov-icon name=\"loader\" class=\"gov-spin-animation\"></gov-icon>}\n\t\t\t\t\t{this.h.hasSlot(\"left-icon\") && <slot name=\"left-icon\"></slot>}\n\t\t\t\t\t<slot />\n\t\t\t\t\t{this.h.hasSlot(\"right-icon\") && <slot name=\"right-icon\"></slot>}\n\t\t\t\t\t{toBool(this.loading) && this.h.hasSlot(\"right-icon\") &&\n\t\t\t\t\t\t\t\t\t\t\t<gov-icon name=\"loader\" class=\"gov-spin-animation\"></gov-icon>}\n\t\t\t\t</Tag>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\tprivate onClickHandler(e: PointerEvent): void {\n\t\te.stopPropagation()\n\t\tif (this.disabled === false) {\n\t\t\tthis.govClick.emit({\n\t\t\t\tcomponent: ButtonClass.root,\n\t\t\t\toriginalEvent: e,\n\t\t\t\tref: this.host,\n\t\t\t})\n\t\t}\n\t}\n\n\tprivate onFocusHandler(e: FocusEvent) {\n\t\te.stopPropagation()\n\t\tthis.govFocus.emit({\n\t\t\tcomponent: ButtonClass.root,\n\t\t\toriginalEvent: e,\n\t\t\tref: this.host,\n\t\t})\n\t}\n\n\tprivate onBlurHandler(e: FocusEvent) {\n\t\te.stopPropagation()\n\t\tthis.govBlur.emit({\n\t\t\tcomponent: ButtonClass.root,\n\t\t\toriginalEvent: e,\n\t\t\tref: this.host,\n\t\t})\n\t}\n\n\t/**\n\t * Focus button element\n\t */\n\t@Method()\n\tasync setFocus(): Promise<void> {\n\t\tthis.triggerRef.focus()\n\t}\n\n\t/**\n\t * Returns a clickable element instance\n\t */\n\t@Method()\n\tasync getTriggerRef() {\n\t\treturn this.triggerRef\n\t}\n\n\t/**\n\t * Validate the WCAG attributes of the component\n\t */\n\t@Method()\n\tasync validateWcag(): Promise<void> {\n\t\tif (this.focusable) {\n\t\t\tvalidateWcagRef(this.wcagActiveDescendant, \"aria-activedescendant\", ButtonClass.root)\n\t\t\tvalidateWcagRef(this.wcagControls, \"aria-controls\", ButtonClass.root)\n\t\t\tvalidateWcagRef(this.wcagDetails, \"aria-details\", ButtonClass.root)\n\t\t\tvalidateWcagRef(this.wcagOwns, \"aria-owns\", ButtonClass.root)\n\t\t\tvalidateWcagRef(this.wcagHasPopup, \"aria-haspopup\", ButtonClass.root)\n\t\t\tvalidateWcagLabel(this.wcagLabel, this.wcagLabelledBy, ButtonClass.root)\n\t\t}\n\t}\n}\n","export const CardClass = {\n\troot: 'gov-card',\n\theader: 'gov-card__header',\n\ttitle: 'gov-card__title',\n\tinner: 'gov-card__inner',\n\timg: 'gov-card__img',\n\tmain: 'gov-card__main',\n\tcontent: 'gov-card__content',\n\ticon: 'gov-card__icon',\n\tbtns: 'gov-card__btns',\n\tfooter: 'gov-card__footer',\n\tarrow: 'gov-card__arrow',\n}\n","/*\n * Alert\n */\n\n$class: \".gov-card\";\n\n#{$class} {\n\t@include base(flex);\n\tflex-direction: column;\n\tborder: $card-border;\n\tborder-radius: $border-radius;\n\tbackground: $card-bg;\n\toverflow: hidden;\n\t&__header {\n\t\tgap: rem-calc(28);\n\t\twidth: 100%;\n\t\tpadding: rem-calc(24);\n\t\tborder-bottom: $card-border;\n\t\tborder-radius: 0;\n\t\ttext-align: left;\n\t\ttext-transform: none;\n\t\ttransition: background-color $t ease-in-out;\n\t}\n\t&__arrow {\n\t\tflex: 0 0 auto;\n\t\twidth: rem-calc(16);\n\t\theight: rem-calc(16);\n\t\tcolor: $card-arrow-color;\n\t}\n\t&__title {\n\t\t@include general;\n\t\t@include typography($font-size-xl);\n\t\tcolor: $card-title-color;\n\t\tfont-weight: 700;\n\t}\n\t&__img {\n\t\twidth: 100%;\n\t\tmargin: 0;\n\t\tline-height: 1;\n\t\timg {\n\t\t\twidth: 100%;\n\t\t\theight: auto;\n\t\t}\n\t}\n\t&__inner {\n\t\tdisplay: flex;\n\t\tflex: 1 1 auto;\n\t\tflex-direction: column;\n\t\t@include parameter(\"aria-hidden\") {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\t&__main {\n\t\tdisplay: flex;\n\t\tgap: 16px 24px;\n\t\tflex: 1 1 auto;\n\t\tflex-direction: column;\n\t\tpadding: rem-calc(24);\n\t}\n\t&__icon {\n\t\tflex: 0 0 auto;\n\t\twidth: rem-calc(40);\n\t\theight: rem-calc(40);\n\t\tcolor: $card-icon-color;\n\t}\n\t&__btns {\n\t\tdisplay: flex;\n\t\tgap: rem-calc(16);\n\t\tflex: 0 0 auto;\n\t\tflex-wrap: wrap;\n\t}\n\t&__content {\n\t\t@include reset-last-margin();\n\t}\n\t&__footer {\n\t\t@include reset-last-margin();\n\t\tpadding: rem-calc(16 24);\n\t\tbackground: $card-footer-bg;\n\t\tp {\n\t\t\t@include typography($font-size-s);\n\t\t}\n\t}\n\n\t// STATES\n\t@include parameter(\"is-expanded\") {\n\t\theight: 100%;\n\t}\n\n\t// VARIANTS\n\t@include parameter(\"collapsible\") {\n\t\t#{$class} {\n\t\t\t&__header {\n\t\t\t\t@include button-core();\n\t\t\t\t@include focus-outline($border-radius, rem-calc(-2));\n\t\t\t\tjustify-content: space-between;\n\t\t\t\ttext-align: left;\n\t\t\t\t@include hover() {\n\t\t\t\t\tbackground: $card-header-hover-bg;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// STATES\n\t\t@include parameter(\"is-expanded\") {\n\t\t\t#{$class} {\n\t\t\t\t&__header {\n\t\t\t\t\tborder-bottom: $card-border;\n\t\t\t\t}\n\t\t\t\t&__arrow {\n\t\t\t\t\ttransform: scale(-1);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// MQ\n\t@include mq($from: sm) {\n\t\t// VARIANTS\n\t\t@include parameter(\"promotion\") {\n\t\t\t#{$class} {\n\t\t\t\t&__main {\n\t\t\t\t\tflex-direction: row;\n\t\t\t\t\tpadding: rem-calc(32);\n\t\t\t\t}\n\t\t\t\t&__icon {\n\t\t\t\t\twidth: rem-calc(48);\n\t\t\t\t\theight: rem-calc(48);\n\t\t\t\t}\n\t\t\t\t&__btns {\n\t\t\t\t\tflex-direction: column;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n","import { Component, Element, h, Host, Prop, Watch, State, Method, Event, EventEmitter } from '@stencil/core'\nimport { CardClass } from './constants'\nimport { govHost, booleanString } from '../../helpers/Dom/template'\nimport { GovHost } from '../../helpers/Dom/template.types'\nimport { createID } from '../../utils/string.utils'\nimport { govErrorLog } from '../../helpers/Log/gov.log'\nimport { validateWcagLabel } from '../../helpers/Validate/wcag'\nimport { canValidateWcagOnRender } from '../../helpers/Dom/win'\nimport { delay } from '../../utils/utils'\nimport { GovCardChangeEvent } from './interfaces'\n\n@Component({\n\ttag: 'gov-card',\n\tstyleUrl: 'gov-card.scss',\n})\nexport class GovCard {\n\tprivate h: GovHost\n\tprivate readonly headlineId: string\n\tprivate readonly contentId: string\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t\tthis.headlineId = createID('GovCardHeadline')\n\t\tthis.contentId = createID('GovCardContent')\n\t}\n\n\t@Element() host: HTMLGovCardElement\n\n\t/**\n\t * Style variation of the card.\n\t */\n\t@Prop() readonly promotion: boolean = false\n\t/**\n\t * Item label of the card\n\t */\n\t@Prop() readonly label: string\n\t/**\n\t * Defines wether the card can be collapsible\n\t */\n\t@Prop() readonly collapsible: boolean = false\n\t/**\n\t * Defines whether the card is open or closed by default\n\t */\n\t@Prop() readonly expanded: boolean = false\n\t/**\n\t * Used to change the HMTL tag in the card headline for correct semantic structure\n\t */\n\t@Prop({ attribute: 'headline-tag' }) readonly headlineTag: string = 'h3'\n\t/**\n\t * Adds accessible label for the collapsible button that is only shown for screen readers.\n\t */\n\t@Prop({ attribute: 'wcag-trigger-label' }) wcagTriggerLabel: string\n\t/**\n\t * A string of identifiers that indicate alternative label elements for collapsible card\n\t */\n\t@Prop({ attribute: 'wcag-trigger-labelled-by' }) wcagTriggerLabelledBy: string\n\t/**\n\t * Called when the card toggle state changes\n\t */\n\t@Event({ eventName: 'gov-toggle' }) govToggle: EventEmitter<GovCardChangeEvent>\n\t@State() isExpanded: boolean\n\n\t@Watch('headlineTag')\n\tvalidateHeadlineTag(newValue: string): void {\n\t\tconst validTags = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'span']\n\t\tif (newValue) {\n\t\t\tif (!validTags.includes(newValue)) {\n\t\t\t\tgovErrorLog(`[${CardClass.root}]: Tag ${newValue} is not allowed.`)\n\t\t\t}\n\t\t}\n\t}\n\n\tcomponentWillLoad(): void {\n\t\tthis.isExpanded = this.label ? this.expanded : true\n\t\tthis.validateHeadlineTag(this.headlineTag)\n\t}\n\n\tasync componentDidRender() {\n\t\tif (canValidateWcagOnRender()) {\n\t\t\tawait delay(500)\n\t\t\tawait this.validateWcag()\n\t\t}\n\t}\n\n\tprivate emmitChange(): void {\n\t\tthis.govToggle.emit({ open: this.isExpanded, element: this.host })\n\t}\n\n\trender() {\n\t\tconst HeadlineTag = this.headlineTag\n\n\t\treturn (\n\t\t\t<Host class={this.h.classes(CardClass.root)} is-expanded={this.isExpanded} collapsible={booleanString(this.collapsible)} promotion={this.promotion}>\n\t\t\t\t{this.label && this.collapsible ? (\n\t\t\t\t\t<button\n\t\t\t\t\t\tid={this.headlineId}\n\t\t\t\t\t\tclass={CardClass.header}\n\t\t\t\t\t\taria-label={this.wcagTriggerLabel}\n\t\t\t\t\t\taria-labelledby={this.wcagTriggerLabelledBy}\n\t\t\t\t\t\taria-expanded={booleanString(this.isExpanded)}\n\t\t\t\t\t\taria-controls={this.contentId}\n\t\t\t\t\t\tonClick={this.onClickHandler.bind(this)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<HeadlineTag class={CardClass.title}>{this.label}</HeadlineTag>\n\t\t\t\t\t\t<gov-icon class={CardClass.arrow} name=\"chevron-down\"></gov-icon>\n\t\t\t\t\t</button>\n\t\t\t\t) : null}\n\n\t\t\t\t{this.label && !this.collapsible ? (\n\t\t\t\t\t<div class={CardClass.header}>\n\t\t\t\t\t\t<HeadlineTag class={CardClass.title}>{this.label}</HeadlineTag>\n\t\t\t\t\t</div>\n\t\t\t\t) : null}\n\n\t\t\t\t<div\n\t\t\t\t\tclass={CardClass.inner}\n\t\t\t\t\tid={this.contentId}\n\t\t\t\t\taria-hidden={this.collapsible ? booleanString(!this.isExpanded) : undefined}\n\t\t\t\t\thidden={this.collapsible ? !this.isExpanded : undefined}\n\t\t\t\t\taria-labelledby={this.collapsible ? this.headlineId : undefined}\n\t\t\t\t>\n\t\t\t\t\t{this.h.hasSlot('img') && (\n\t\t\t\t\t\t<p class={CardClass.img}>\n\t\t\t\t\t\t\t<slot name=\"img\" />\n\t\t\t\t\t\t</p>\n\t\t\t\t\t)}\n\n\t\t\t\t\t<div class={CardClass.main}>\n\t\t\t\t\t\t{this.h.hasSlot('icon') && this.promotion && (\n\t\t\t\t\t\t\t<div class={CardClass.icon}>\n\t\t\t\t\t\t\t\t<slot name=\"icon\" />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t<div class={CardClass.content}>\n\t\t\t\t\t\t\t<slot />\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{this.h.hasSlot('btn') && this.promotion && (\n\t\t\t\t\t\t\t<div class={CardClass.btns}>\n\t\t\t\t\t\t\t\t<slot name=\"btn\" />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t{this.h.hasSlot('footer') && (\n\t\t\t\t\t\t<div class={CardClass.footer}>\n\t\t\t\t\t\t\t<slot name=\"footer\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\tprivate onClickHandler(e) {\n\t\te.stopPropagation()\n\t\tif (this.collapsible) {\n\t\t\tthis.isExpanded = !this.isExpanded\n\t\t\tthis.emmitChange()\n\t\t}\n\t}\n\n\t/**\n\t * Open the card if it is collapsible\n\t */\n\t@Method()\n\tasync open(): Promise<void> {\n\t\tif (this.collapsible) {\n\t\t\tthis.isExpanded = true\n\t\t\tthis.emmitChange()\n\t\t}\n\t}\n\n\t/**\n\t * Close the card if it is collapsible\n\t */\n\t@Method()\n\tasync close(): Promise<void> {\n\t\tif (this.collapsible) {\n\t\t\tthis.isExpanded = false\n\t\t\tthis.emmitChange()\n\t\t}\n\t}\n\n\t/**\n\t * Validate the WCAG attributes of the component\n\t */\n\t@Method()\n\tasync validateWcag(): Promise<void> {\n\t\tif (this.collapsible) {\n\t\t\tvalidateWcagLabel(this.wcagTriggerLabel, this.wcagTriggerLabelledBy, CardClass.root)\n\t\t}\n\t}\n}\n","export const ContainerClass = {\n\troot: 'gov-container',\n}\n","/*\n * Container\n */\n\n$class: \".gov-container\";\n\n#{$class} {\n\t@include container();\n}\n","import { Component, Element, h, Host, Method } from '@stencil/core'\nimport { govHost, slottedChildren } from '../../helpers/Dom/template'\nimport { GovHost } from '../../helpers/Dom/template.types'\nimport { ContainerClass } from './constants'\n\n@Component({\n\ttag: 'gov-container',\n\tstyleUrl: 'gov-container.scss',\n})\nexport class GovContainer {\n\tprivate h: GovHost\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t}\n\n\t@Element() host: HTMLGovContainerElement\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={this.h.classes(ContainerClass.root)}>\n\t\t\t\t<slot />\n\t\t\t</Host>\n\t\t)\n\t}\n\n\t/**\n\t * Returns slotted children\n\t *\n\t * @return {Promise<Node[]>}\n\t */\n\t@Method()\n\tasync slottedChildren(): Promise<Node[]> {\n\t\treturn Promise.resolve(slottedChildren(this.host))\n\t}\n}\n","import { Variants } from '../../core/constants/variants'\nimport { ValueOf } from '../../types/interfaces'\nimport { pick } from '../../utils/utils'\n\nexport const ControlGroups = pick(Variants, ['PRIMARY', 'SECONDARY'])\nexport type ControlGroupType = `${ValueOf<typeof ControlGroups>}`\n\nexport const ControlGroupClass = {\n\troot: 'gov-control-group',\n}\n","/*\n * Control group\n */\n\n$class: \".gov-control-group\";\n\n#{$class} {\n\t@include base(flex);\n\talign-items: center;\n\tborder-radius: $control-group-border-radius;\n\t.element *,\n\t.gov-button .element {\n\t\tborder: none !important;\n\t\tborder-radius: 0;\n\t}\n\n\t// VARIANTS\n\t@each $variant, $definitions in $control-group-variants {\n\t\t&[variant=\"#{$variant}\"] {\n\t\t\tborder: get(\"border\", $definitions);\n\t\t\t> * {\n\t\t\t\tborder-right: get(\"border\", $definitions);\n\t\t\t}\n\t\t}\n\t}\n\n\t> * {\n\t\t&:last-child {\n\t\t\tborder-right: none;\n\t\t}\n\t}\n\t&.no-border {\n\t\t> * {\n\t\t\tborder-right: none;\n\t\t}\n\t}\n}\n\n","import { Component, Element, h, Host, Prop, Watch } from \"@stencil/core\"\nimport { Variants } from \"../../core/constants/variants\"\nimport { govHost } from \"../../helpers/Dom/template\"\nimport { GovHost } from \"../../helpers/Dom/template.types\"\nimport { validateProp } from \"../../helpers/Validate/props\"\nimport { ControlGroupClass, ControlGroupType } from \"./constants\"\n\n@Component({\n\ttag: \"gov-control-group\",\n\tstyleUrl: \"gov-control-group.scss\",\n})\nexport class GovControlGroup {\n\tprivate readonly h: GovHost\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t}\n\n\t@Element() host: HTMLGovControlGroupElement\n\t/**\n\t * Style variation of the content message.\n\t */\n\t@Prop() readonly variant: ControlGroupType = Variants.PRIMARY\n\t/**\n\t * Specifies the display of the border between elements\n\t */\n\t@Prop({ attribute: \"no-border\" }) readonly noBorder: boolean = false\n\n\t@Watch(\"variant\")\n\tvalidateVariant(newValue: string): void {\n\t\tvalidateProp(Variants, newValue, ControlGroupClass.root)\n\t}\n\n\trender() {\n\t\tconst noBorder = this.noBorder === true ? \"no-border\" : undefined\n\t\treturn (\n\t\t\t<Host\n\t\t\t\tclass={this.h.classes([ControlGroupClass.root, noBorder])}\n\t\t\t\tvariant={this.variant}>\n\t\t\t\t<slot />\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","export const CookiebarClass = {\n\troot: 'gov-cookiebar',\n\tholder: 'gov-cookiebar__holder',\n\tcontent: 'gov-cookiebar__content',\n\tactions: 'gov-cookiebar__actions',\n\tactionsPrimary: 'gov-cookiebar__actions-primary',\n\tactionsSecondary: 'gov-cookiebar__actions-secondary',\n}\n","/*\n * Cookiebar\n */\n\n$class: \".gov-cookiebar\";\n\n#{$class} {\n\t@include z-index(\"bar\", 1);\n\tposition: fixed;\n\tright: 0;\n\tbottom: 0;\n\tleft: 0;\n\tbackground-color: $cookiebar-bg;\n\tbox-shadow: $cookiebar-box-shadow;\n\t&__holder {\n\t\t@include container();\n\t\t@include space(32);\n\t\tpadding-top: rem-calc(20);\n\t\tpadding-bottom: rem-calc(20);\n\t}\n\t&__content {\n\t\t@include space(12);\n\t\tp {\n\t\t\tcolor: $cookiebar-color;\n\t\t\tletter-spacing: em-calc(0.2);\n\t\t}\n\t}\n\t&__actions {\n\t\t&,\n\t\t&-primary,\n\t\t&-secondary {\n\t\t\tdisplay: flex;\n\t\t\tgap: rem-calc(10);\n\t\t\tflex-wrap: wrap;\n\t\t\tjustify-content: space-between;\n\t\t}\n\t}\n\n\t// MQ\n\t@include mq($from: md) {\n\t\t&__holder {\n\t\t\tpadding-top: rem-calc(32);\n\t\t\tpadding-bottom: rem-calc(32);\n\t\t}\n\t\t&__actions {\n\t\t\t&,\n\t\t\t&-primary,\n\t\t\t&-secondary {\n\t\t\t\tgap: rem-calc(16);\n\t\t\t}\n\t\t}\n\t}\n}\n","import { Component, Element, h, Host } from '@stencil/core'\nimport { govHost } from '../../helpers/Dom/template'\nimport { GovHost } from '../../helpers/Dom/template.types'\nimport { CookiebarClass } from './constants'\n\n@Component({\n\ttag: 'gov-cookiebar',\n\tstyleUrl: 'gov-cookiebar.scss',\n})\nexport class GovCookiebar {\n\th: GovHost\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t}\n\n\t@Element() host: HTMLGovCookiebarElement\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={this.h.classes(CookiebarClass.root)}>\n\t\t\t\t<div class={CookiebarClass.holder}>\n\t\t\t\t\t<div class={CookiebarClass.content}>\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t</div>\n\n\t\t\t\t\t{(this.h.hasSlot('actions-primary') || this.h.hasSlot('actions-secondary')) && (\n\t\t\t\t\t\t<div class={CookiebarClass.actions}>\n\t\t\t\t\t\t\t{this.h.hasSlot('actions-primary') && (\n\t\t\t\t\t\t\t\t<div class={CookiebarClass.actionsPrimary}>\n\t\t\t\t\t\t\t\t\t<slot name=\"actions-primary\" />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t{this.h.hasSlot('actions-secondary') && (\n\t\t\t\t\t\t\t\t<div class={CookiebarClass.actionsSecondary}>\n\t\t\t\t\t\t\t\t\t<slot name=\"actions-secondary\" />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","/**\n * Virtual DOM patching algorithm based on Snabbdom by\n * Simon Friis Vindum (@paldepind)\n * Licensed under the MIT License\n * https://github.com/snabbdom/snabbdom/blob/master/LICENSE\n *\n * Modified for Stencil's renderer and slot projection\n */\nlet scopeId;\nlet contentRef;\nlet hostTagName;\nlet customError;\nlet i = 0;\nlet useNativeShadowDom = false;\nlet checkSlotFallbackVisibility = false;\nlet checkSlotRelocate = false;\nlet isSvgMode = false;\nlet renderingRef = null;\nlet queueCongestion = 0;\nlet queuePending = false;\n/*\n Stencil Client Platform v2.20.0 | MIT Licensed | https://stenciljs.com\n */\nimport { BUILD, NAMESPACE } from '@stencil/core/internal/app-data';\nconst Build = {\n isDev: BUILD.isDev ? true : false,\n isBrowser: true,\n isServer: false,\n isTesting: BUILD.isTesting ? true : false,\n};\nconst Context = {};\nconst getAssetPath = (path) => {\n const assetUrl = new URL(path, plt.$resourcesUrl$);\n return assetUrl.origin !== win.location.origin ? assetUrl.href : assetUrl.pathname;\n};\nconst setAssetPath = (path) => (plt.$resourcesUrl$ = path);\nconst createTime = (fnName, tagName = '') => {\n if (BUILD.profile && performance.mark) {\n const key = `st:${fnName}:${tagName}:${i++}`;\n // Start\n performance.mark(key);\n // End\n return () => performance.measure(`[Stencil] ${fnName}() <${tagName}>`, key);\n }\n else {\n return () => {\n return;\n };\n }\n};\nconst uniqueTime = (key, measureText) => {\n if (BUILD.profile && performance.mark) {\n if (performance.getEntriesByName(key).length === 0) {\n performance.mark(key);\n }\n return () => {\n if (performance.getEntriesByName(measureText).length === 0) {\n performance.measure(measureText, key);\n }\n };\n }\n else {\n return () => {\n return;\n };\n }\n};\nconst inspect = (ref) => {\n const hostRef = getHostRef(ref);\n if (!hostRef) {\n return undefined;\n }\n const flags = hostRef.$flags$;\n const hostElement = hostRef.$hostElement$;\n return {\n renderCount: hostRef.$renderCount$,\n flags: {\n hasRendered: !!(flags & 2 /* HOST_FLAGS.hasRendered */),\n hasConnected: !!(flags & 1 /* HOST_FLAGS.hasConnected */),\n isWaitingForChildren: !!(flags & 4 /* HOST_FLAGS.isWaitingForChildren */),\n isConstructingInstance: !!(flags & 8 /* HOST_FLAGS.isConstructingInstance */),\n isQueuedForUpdate: !!(flags & 16 /* HOST_FLAGS.isQueuedForUpdate */),\n hasInitializedComponent: !!(flags & 32 /* HOST_FLAGS.hasInitializedComponent */),\n hasLoadedComponent: !!(flags & 64 /* HOST_FLAGS.hasLoadedComponent */),\n isWatchReady: !!(flags & 128 /* HOST_FLAGS.isWatchReady */),\n isListenReady: !!(flags & 256 /* HOST_FLAGS.isListenReady */),\n needsRerender: !!(flags & 512 /* HOST_FLAGS.needsRerender */),\n },\n instanceValues: hostRef.$instanceValues$,\n ancestorComponent: hostRef.$ancestorComponent$,\n hostElement,\n lazyInstance: hostRef.$lazyInstance$,\n vnode: hostRef.$vnode$,\n modeName: hostRef.$modeName$,\n onReadyPromise: hostRef.$onReadyPromise$,\n onReadyResolve: hostRef.$onReadyResolve$,\n onInstancePromise: hostRef.$onInstancePromise$,\n onInstanceResolve: hostRef.$onInstanceResolve$,\n onRenderResolve: hostRef.$onRenderResolve$,\n queuedListeners: hostRef.$queuedListeners$,\n rmListeners: hostRef.$rmListeners$,\n ['s-id']: hostElement['s-id'],\n ['s-cr']: hostElement['s-cr'],\n ['s-lr']: hostElement['s-lr'],\n ['s-p']: hostElement['s-p'],\n ['s-rc']: hostElement['s-rc'],\n ['s-sc']: hostElement['s-sc'],\n };\n};\nconst installDevTools = () => {\n if (BUILD.devTools) {\n const stencil = (win.stencil = win.stencil || {});\n const originalInspect = stencil.inspect;\n stencil.inspect = (ref) => {\n let result = inspect(ref);\n if (!result && typeof originalInspect === 'function') {\n result = originalInspect(ref);\n }\n return result;\n };\n }\n};\nconst CONTENT_REF_ID = 'r';\nconst ORG_LOCATION_ID = 'o';\nconst SLOT_NODE_ID = 's';\nconst TEXT_NODE_ID = 't';\nconst HYDRATE_ID = 's-id';\nconst HYDRATED_STYLE_ID = 'sty-id';\nconst HYDRATE_CHILD_ID = 'c-id';\nconst HYDRATED_CSS = '{visibility:hidden}.hydrated{visibility:inherit}';\nconst XLINK_NS = 'http://www.w3.org/1999/xlink';\n/**\n * Default style mode id\n */\n/**\n * Reusable empty obj/array\n * Don't add values to these!!\n */\nconst EMPTY_OBJ = {};\n/**\n * Namespaces\n */\nconst SVG_NS = 'http://www.w3.org/2000/svg';\nconst HTML_NS = 'http://www.w3.org/1999/xhtml';\nconst isDef = (v) => v != null;\nconst isComplexType = (o) => {\n // https://jsperf.com/typeof-fn-object/5\n o = typeof o;\n return o === 'object' || o === 'function';\n};\n/**\n * Production h() function based on Preact by\n * Jason Miller (@developit)\n * Licensed under the MIT License\n * https://github.com/developit/preact/blob/master/LICENSE\n *\n * Modified for Stencil's compiler and vdom\n */\n// const stack: any[] = [];\n// export function h(nodeName: string | d.FunctionalComponent, vnodeData: d.PropsType, child?: d.ChildType): d.VNode;\n// export function h(nodeName: string | d.FunctionalComponent, vnodeData: d.PropsType, ...children: d.ChildType[]): d.VNode;\nconst h = (nodeName, vnodeData, ...children) => {\n let child = null;\n let key = null;\n let slotName = null;\n let simple = false;\n let lastSimple = false;\n const vNodeChildren = [];\n const walk = (c) => {\n for (let i = 0; i < c.length; i++) {\n child = c[i];\n if (Array.isArray(child)) {\n walk(child);\n }\n else if (child != null && typeof child !== 'boolean') {\n if ((simple = typeof nodeName !== 'function' && !isComplexType(child))) {\n child = String(child);\n }\n else if (BUILD.isDev && typeof nodeName !== 'function' && child.$flags$ === undefined) {\n consoleDevError(`vNode passed as children has unexpected type.\nMake sure it's using the correct h() function.\nEmpty objects can also be the cause, look for JSX comments that became objects.`);\n }\n if (simple && lastSimple) {\n // If the previous child was simple (string), we merge both\n vNodeChildren[vNodeChildren.length - 1].$text$ += child;\n }\n else {\n // Append a new vNode, if it's text, we create a text vNode\n vNodeChildren.push(simple ? newVNode(null, child) : child);\n }\n lastSimple = simple;\n }\n }\n };\n walk(children);\n if (vnodeData) {\n if (BUILD.isDev && nodeName === 'input') {\n validateInputProperties(vnodeData);\n }\n // normalize class / classname attributes\n if (BUILD.vdomKey && vnodeData.key) {\n key = vnodeData.key;\n }\n if (BUILD.slotRelocation && vnodeData.name) {\n slotName = vnodeData.name;\n }\n if (BUILD.vdomClass) {\n const classData = vnodeData.className || vnodeData.class;\n if (classData) {\n vnodeData.class =\n typeof classData !== 'object'\n ? classData\n : Object.keys(classData)\n .filter((k) => classData[k])\n .join(' ');\n }\n }\n }\n if (BUILD.isDev && vNodeChildren.some(isHost)) {\n consoleDevError(`The <Host> must be the single root component. Make sure:\n- You are NOT using hostData() and <Host> in the same component.\n- <Host> is used once, and it's the single root component of the render() function.`);\n }\n if (BUILD.vdomFunctional && typeof nodeName === 'function') {\n // nodeName is a functional component\n return nodeName(vnodeData === null ? {} : vnodeData, vNodeChildren, vdomFnUtils);\n }\n const vnode = newVNode(nodeName, null);\n vnode.$attrs$ = vnodeData;\n if (vNodeChildren.length > 0) {\n vnode.$children$ = vNodeChildren;\n }\n if (BUILD.vdomKey) {\n vnode.$key$ = key;\n }\n if (BUILD.slotRelocation) {\n vnode.$name$ = slotName;\n }\n return vnode;\n};\nconst newVNode = (tag, text) => {\n const vnode = {\n $flags$: 0,\n $tag$: tag,\n $text$: text,\n $elm$: null,\n $children$: null,\n };\n if (BUILD.vdomAttribute) {\n vnode.$attrs$ = null;\n }\n if (BUILD.vdomKey) {\n vnode.$key$ = null;\n }\n if (BUILD.slotRelocation) {\n vnode.$name$ = null;\n }\n return vnode;\n};\nconst Host = {};\nconst isHost = (node) => node && node.$tag$ === Host;\nconst vdomFnUtils = {\n forEach: (children, cb) => children.map(convertToPublic).forEach(cb),\n map: (children, cb) => children.map(convertToPublic).map(cb).map(convertToPrivate),\n};\nconst convertToPublic = (node) => ({\n vattrs: node.$attrs$,\n vchildren: node.$children$,\n vkey: node.$key$,\n vname: node.$name$,\n vtag: node.$tag$,\n vtext: node.$text$,\n});\nconst convertToPrivate = (node) => {\n if (typeof node.vtag === 'function') {\n const vnodeData = Object.assign({}, node.vattrs);\n if (node.vkey) {\n vnodeData.key = node.vkey;\n }\n if (node.vname) {\n vnodeData.name = node.vname;\n }\n return h(node.vtag, vnodeData, ...(node.vchildren || []));\n }\n const vnode = newVNode(node.vtag, node.vtext);\n vnode.$attrs$ = node.vattrs;\n vnode.$children$ = node.vchildren;\n vnode.$key$ = node.vkey;\n vnode.$name$ = node.vname;\n return vnode;\n};\n/**\n * Validates the ordering of attributes on an input element\n * @param inputElm the element to validate\n */\nconst validateInputProperties = (inputElm) => {\n const props = Object.keys(inputElm);\n const value = props.indexOf('value');\n if (value === -1) {\n return;\n }\n const typeIndex = props.indexOf('type');\n const minIndex = props.indexOf('min');\n const maxIndex = props.indexOf('max');\n const stepIndex = props.indexOf('step');\n if (value < typeIndex || value < minIndex || value < maxIndex || value < stepIndex) {\n consoleDevWarn(`The \"value\" prop of <input> should be set after \"min\", \"max\", \"type\" and \"step\"`);\n }\n};\nconst initializeClientHydrate = (hostElm, tagName, hostId, hostRef) => {\n const endHydrate = createTime('hydrateClient', tagName);\n const shadowRoot = hostElm.shadowRoot;\n const childRenderNodes = [];\n const slotNodes = [];\n const shadowRootNodes = BUILD.shadowDom && shadowRoot ? [] : null;\n const vnode = (hostRef.$vnode$ = newVNode(tagName, null));\n if (!plt.$orgLocNodes$) {\n initializeDocumentHydrate(doc.body, (plt.$orgLocNodes$ = new Map()));\n }\n hostElm[HYDRATE_ID] = hostId;\n hostElm.removeAttribute(HYDRATE_ID);\n clientHydrate(vnode, childRenderNodes, slotNodes, shadowRootNodes, hostElm, hostElm, hostId);\n childRenderNodes.map((c) => {\n const orgLocationId = c.$hostId$ + '.' + c.$nodeId$;\n const orgLocationNode = plt.$orgLocNodes$.get(orgLocationId);\n const node = c.$elm$;\n if (orgLocationNode && supportsShadow && orgLocationNode['s-en'] === '') {\n orgLocationNode.parentNode.insertBefore(node, orgLocationNode.nextSibling);\n }\n if (!shadowRoot) {\n node['s-hn'] = tagName;\n if (orgLocationNode) {\n node['s-ol'] = orgLocationNode;\n node['s-ol']['s-nr'] = node;\n }\n }\n plt.$orgLocNodes$.delete(orgLocationId);\n });\n if (BUILD.shadowDom && shadowRoot) {\n shadowRootNodes.map((shadowRootNode) => {\n if (shadowRootNode) {\n shadowRoot.appendChild(shadowRootNode);\n }\n });\n }\n endHydrate();\n};\nconst clientHydrate = (parentVNode, childRenderNodes, slotNodes, shadowRootNodes, hostElm, node, hostId) => {\n let childNodeType;\n let childIdSplt;\n let childVNode;\n let i;\n if (node.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n childNodeType = node.getAttribute(HYDRATE_CHILD_ID);\n if (childNodeType) {\n // got the node data from the element's attribute\n // `${hostId}.${nodeId}.${depth}.${index}`\n childIdSplt = childNodeType.split('.');\n if (childIdSplt[0] === hostId || childIdSplt[0] === '0') {\n childVNode = {\n $flags$: 0,\n $hostId$: childIdSplt[0],\n $nodeId$: childIdSplt[1],\n $depth$: childIdSplt[2],\n $index$: childIdSplt[3],\n $tag$: node.tagName.toLowerCase(),\n $elm$: node,\n $attrs$: null,\n $children$: null,\n $key$: null,\n $name$: null,\n $text$: null,\n };\n childRenderNodes.push(childVNode);\n node.removeAttribute(HYDRATE_CHILD_ID);\n // this is a new child vnode\n // so ensure its parent vnode has the vchildren array\n if (!parentVNode.$children$) {\n parentVNode.$children$ = [];\n }\n // add our child vnode to a specific index of the vnode's children\n parentVNode.$children$[childVNode.$index$] = childVNode;\n // this is now the new parent vnode for all the next child checks\n parentVNode = childVNode;\n if (shadowRootNodes && childVNode.$depth$ === '0') {\n shadowRootNodes[childVNode.$index$] = childVNode.$elm$;\n }\n }\n }\n // recursively drill down, end to start so we can remove nodes\n for (i = node.childNodes.length - 1; i >= 0; i--) {\n clientHydrate(parentVNode, childRenderNodes, slotNodes, shadowRootNodes, hostElm, node.childNodes[i], hostId);\n }\n if (node.shadowRoot) {\n // keep drilling down through the shadow root nodes\n for (i = node.shadowRoot.childNodes.length - 1; i >= 0; i--) {\n clientHydrate(parentVNode, childRenderNodes, slotNodes, shadowRootNodes, hostElm, node.shadowRoot.childNodes[i], hostId);\n }\n }\n }\n else if (node.nodeType === 8 /* NODE_TYPE.CommentNode */) {\n // `${COMMENT_TYPE}.${hostId}.${nodeId}.${depth}.${index}`\n childIdSplt = node.nodeValue.split('.');\n if (childIdSplt[1] === hostId || childIdSplt[1] === '0') {\n // comment node for either the host id or a 0 host id\n childNodeType = childIdSplt[0];\n childVNode = {\n $flags$: 0,\n $hostId$: childIdSplt[1],\n $nodeId$: childIdSplt[2],\n $depth$: childIdSplt[3],\n $index$: childIdSplt[4],\n $elm$: node,\n $attrs$: null,\n $children$: null,\n $key$: null,\n $name$: null,\n $tag$: null,\n $text$: null,\n };\n if (childNodeType === TEXT_NODE_ID) {\n childVNode.$elm$ = node.nextSibling;\n if (childVNode.$elm$ && childVNode.$elm$.nodeType === 3 /* NODE_TYPE.TextNode */) {\n childVNode.$text$ = childVNode.$elm$.textContent;\n childRenderNodes.push(childVNode);\n // remove the text comment since it's no longer needed\n node.remove();\n if (!parentVNode.$children$) {\n parentVNode.$children$ = [];\n }\n parentVNode.$children$[childVNode.$index$] = childVNode;\n if (shadowRootNodes && childVNode.$depth$ === '0') {\n shadowRootNodes[childVNode.$index$] = childVNode.$elm$;\n }\n }\n }\n else if (childVNode.$hostId$ === hostId) {\n // this comment node is specifcally for this host id\n if (childNodeType === SLOT_NODE_ID) {\n // `${SLOT_NODE_ID}.${hostId}.${nodeId}.${depth}.${index}.${slotName}`;\n childVNode.$tag$ = 'slot';\n if (childIdSplt[5]) {\n node['s-sn'] = childVNode.$name$ = childIdSplt[5];\n }\n else {\n node['s-sn'] = '';\n }\n node['s-sr'] = true;\n if (BUILD.shadowDom && shadowRootNodes) {\n // browser support shadowRoot and this is a shadow dom component\n // create an actual slot element\n childVNode.$elm$ = doc.createElement(childVNode.$tag$);\n if (childVNode.$name$) {\n // add the slot name attribute\n childVNode.$elm$.setAttribute('name', childVNode.$name$);\n }\n // insert the new slot element before the slot comment\n node.parentNode.insertBefore(childVNode.$elm$, node);\n // remove the slot comment since it's not needed for shadow\n node.remove();\n if (childVNode.$depth$ === '0') {\n shadowRootNodes[childVNode.$index$] = childVNode.$elm$;\n }\n }\n slotNodes.push(childVNode);\n if (!parentVNode.$children$) {\n parentVNode.$children$ = [];\n }\n parentVNode.$children$[childVNode.$index$] = childVNode;\n }\n else if (childNodeType === CONTENT_REF_ID) {\n // `${CONTENT_REF_ID}.${hostId}`;\n if (BUILD.shadowDom && shadowRootNodes) {\n // remove the content ref comment since it's not needed for shadow\n node.remove();\n }\n else if (BUILD.slotRelocation) {\n hostElm['s-cr'] = node;\n node['s-cn'] = true;\n }\n }\n }\n }\n }\n else if (parentVNode && parentVNode.$tag$ === 'style') {\n const vnode = newVNode(null, node.textContent);\n vnode.$elm$ = node;\n vnode.$index$ = '0';\n parentVNode.$children$ = [vnode];\n }\n};\nconst initializeDocumentHydrate = (node, orgLocNodes) => {\n if (node.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n let i = 0;\n for (; i < node.childNodes.length; i++) {\n initializeDocumentHydrate(node.childNodes[i], orgLocNodes);\n }\n if (node.shadowRoot) {\n for (i = 0; i < node.shadowRoot.childNodes.length; i++) {\n initializeDocumentHydrate(node.shadowRoot.childNodes[i], orgLocNodes);\n }\n }\n }\n else if (node.nodeType === 8 /* NODE_TYPE.CommentNode */) {\n const childIdSplt = node.nodeValue.split('.');\n if (childIdSplt[0] === ORG_LOCATION_ID) {\n orgLocNodes.set(childIdSplt[1] + '.' + childIdSplt[2], node);\n node.nodeValue = '';\n // useful to know if the original location is\n // the root light-dom of a shadow dom component\n node['s-en'] = childIdSplt[3];\n }\n }\n};\n// Private\nconst computeMode = (elm) => modeResolutionChain.map((h) => h(elm)).find((m) => !!m);\n// Public\nconst setMode = (handler) => modeResolutionChain.push(handler);\nconst getMode = (ref) => getHostRef(ref).$modeName$;\n/**\n * Parse a new property value for a given property type.\n *\n * While the prop value can reasonably be expected to be of `any` type as far as TypeScript's type checker is concerned,\n * it is not safe to assume that the string returned by evaluating `typeof propValue` matches:\n * 1. `any`, the type given to `propValue` in the function signature\n * 2. the type stored from `propType`.\n *\n * This function provides the capability to parse/coerce a property's value to potentially any other JavaScript type.\n *\n * Property values represented in TSX preserve their type information. In the example below, the number 0 is passed to\n * a component. This `propValue` will preserve its type information (`typeof propValue === 'number'`). Note that is\n * based on the type of the value being passed in, not the type declared of the class member decorated with `@Prop`.\n * ```tsx\n * <my-cmp prop-val={0}></my-cmp>\n * ```\n *\n * HTML prop values on the other hand, will always a string\n *\n * @param propValue the new value to coerce to some type\n * @param propType the type of the prop, expressed as a binary number\n * @returns the parsed/coerced value\n */\nconst parsePropertyValue = (propValue, propType) => {\n // ensure this value is of the correct prop type\n if (propValue != null && !isComplexType(propValue)) {\n if (BUILD.propBoolean && propType & 4 /* MEMBER_FLAGS.Boolean */) {\n // per the HTML spec, any string value means it is a boolean true value\n // but we'll cheat here and say that the string \"false\" is the boolean false\n return propValue === 'false' ? false : propValue === '' || !!propValue;\n }\n if (BUILD.propNumber && propType & 2 /* MEMBER_FLAGS.Number */) {\n // force it to be a number\n return parseFloat(propValue);\n }\n if (BUILD.propString && propType & 1 /* MEMBER_FLAGS.String */) {\n // could have been passed as a number or boolean\n // but we still want it as a string\n return String(propValue);\n }\n // redundant return here for better minification\n return propValue;\n }\n // not sure exactly what type we want\n // so no need to change to a different type\n return propValue;\n};\nconst getElement = (ref) => (BUILD.lazyLoad ? getHostRef(ref).$hostElement$ : ref);\nconst createEvent = (ref, name, flags) => {\n const elm = getElement(ref);\n return {\n emit: (detail) => {\n if (BUILD.isDev && !elm.isConnected) {\n consoleDevWarn(`The \"${name}\" event was emitted, but the dispatcher node is no longer connected to the dom.`);\n }\n return emitEvent(elm, name, {\n bubbles: !!(flags & 4 /* EVENT_FLAGS.Bubbles */),\n composed: !!(flags & 2 /* EVENT_FLAGS.Composed */),\n cancelable: !!(flags & 1 /* EVENT_FLAGS.Cancellable */),\n detail,\n });\n },\n };\n};\n/**\n * Helper function to create & dispatch a custom Event on a provided target\n * @param elm the target of the Event\n * @param name the name to give the custom Event\n * @param opts options for configuring a custom Event\n * @returns the custom Event\n */\nconst emitEvent = (elm, name, opts) => {\n const ev = plt.ce(name, opts);\n elm.dispatchEvent(ev);\n return ev;\n};\nconst rootAppliedStyles = /*@__PURE__*/ new WeakMap();\nconst registerStyle = (scopeId, cssText, allowCS) => {\n let style = styles.get(scopeId);\n if (supportsConstructableStylesheets && allowCS) {\n style = (style || new CSSStyleSheet());\n if (typeof style === 'string') {\n style = cssText;\n }\n else {\n style.replaceSync(cssText);\n }\n }\n else {\n style = cssText;\n }\n styles.set(scopeId, style);\n};\nconst addStyle = (styleContainerNode, cmpMeta, mode, hostElm) => {\n let scopeId = getScopeId(cmpMeta, mode);\n const style = styles.get(scopeId);\n if (!BUILD.attachStyles) {\n return scopeId;\n }\n // if an element is NOT connected then getRootNode() will return the wrong root node\n // so the fallback is to always use the document for the root node in those cases\n styleContainerNode = styleContainerNode.nodeType === 11 /* NODE_TYPE.DocumentFragment */ ? styleContainerNode : doc;\n if (style) {\n if (typeof style === 'string') {\n styleContainerNode = styleContainerNode.head || styleContainerNode;\n let appliedStyles = rootAppliedStyles.get(styleContainerNode);\n let styleElm;\n if (!appliedStyles) {\n rootAppliedStyles.set(styleContainerNode, (appliedStyles = new Set()));\n }\n if (!appliedStyles.has(scopeId)) {\n if (BUILD.hydrateClientSide &&\n styleContainerNode.host &&\n (styleElm = styleContainerNode.querySelector(`[${HYDRATED_STYLE_ID}=\"${scopeId}\"]`))) {\n // This is only happening on native shadow-dom, do not needs CSS var shim\n styleElm.innerHTML = style;\n }\n else {\n if (BUILD.cssVarShim && plt.$cssShim$) {\n styleElm = plt.$cssShim$.createHostStyle(hostElm, scopeId, style, !!(cmpMeta.$flags$ & 10 /* CMP_FLAGS.needsScopedEncapsulation */));\n const newScopeId = styleElm['s-sc'];\n if (newScopeId) {\n scopeId = newScopeId;\n // we don't want to add this styleID to the appliedStyles Set\n // since the cssVarShim might need to apply several different\n // stylesheets for the same component\n appliedStyles = null;\n }\n }\n else {\n styleElm = doc.createElement('style');\n styleElm.innerHTML = style;\n }\n if (BUILD.hydrateServerSide || BUILD.hotModuleReplacement) {\n styleElm.setAttribute(HYDRATED_STYLE_ID, scopeId);\n }\n styleContainerNode.insertBefore(styleElm, styleContainerNode.querySelector('link'));\n }\n if (appliedStyles) {\n appliedStyles.add(scopeId);\n }\n }\n }\n else if (BUILD.constructableCSS && !styleContainerNode.adoptedStyleSheets.includes(style)) {\n styleContainerNode.adoptedStyleSheets = [...styleContainerNode.adoptedStyleSheets, style];\n }\n }\n return scopeId;\n};\nconst attachStyles = (hostRef) => {\n const cmpMeta = hostRef.$cmpMeta$;\n const elm = hostRef.$hostElement$;\n const flags = cmpMeta.$flags$;\n const endAttachStyles = createTime('attachStyles', cmpMeta.$tagName$);\n const scopeId = addStyle(BUILD.shadowDom && supportsShadow && elm.shadowRoot ? elm.shadowRoot : elm.getRootNode(), cmpMeta, hostRef.$modeName$, elm);\n if ((BUILD.shadowDom || BUILD.scoped) && BUILD.cssAnnotations && flags & 10 /* CMP_FLAGS.needsScopedEncapsulation */) {\n // only required when we're NOT using native shadow dom (slot)\n // or this browser doesn't support native shadow dom\n // and this host element was NOT created with SSR\n // let's pick out the inner content for slot projection\n // create a node to represent where the original\n // content was first placed, which is useful later on\n // DOM WRITE!!\n elm['s-sc'] = scopeId;\n elm.classList.add(scopeId + '-h');\n if (BUILD.scoped && flags & 2 /* CMP_FLAGS.scopedCssEncapsulation */) {\n elm.classList.add(scopeId + '-s');\n }\n }\n endAttachStyles();\n};\nconst getScopeId = (cmp, mode) => 'sc-' + (BUILD.mode && mode && cmp.$flags$ & 32 /* CMP_FLAGS.hasMode */ ? cmp.$tagName$ + '-' + mode : cmp.$tagName$);\nconst convertScopedToShadow = (css) => css.replace(/\\/\\*!@([^\\/]+)\\*\\/[^\\{]+\\{/g, '$1{');\n/**\n * Production setAccessor() function based on Preact by\n * Jason Miller (@developit)\n * Licensed under the MIT License\n * https://github.com/developit/preact/blob/master/LICENSE\n *\n * Modified for Stencil's compiler and vdom\n */\nconst setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {\n if (oldValue !== newValue) {\n let isProp = isMemberInElement(elm, memberName);\n let ln = memberName.toLowerCase();\n if (BUILD.vdomClass && memberName === 'class') {\n const classList = elm.classList;\n const oldClasses = parseClassList(oldValue);\n const newClasses = parseClassList(newValue);\n classList.remove(...oldClasses.filter((c) => c && !newClasses.includes(c)));\n classList.add(...newClasses.filter((c) => c && !oldClasses.includes(c)));\n }\n else if (BUILD.vdomStyle && memberName === 'style') {\n // update style attribute, css properties and values\n if (BUILD.updatable) {\n for (const prop in oldValue) {\n if (!newValue || newValue[prop] == null) {\n if (!BUILD.hydrateServerSide && prop.includes('-')) {\n elm.style.removeProperty(prop);\n }\n else {\n elm.style[prop] = '';\n }\n }\n }\n }\n for (const prop in newValue) {\n if (!oldValue || newValue[prop] !== oldValue[prop]) {\n if (!BUILD.hydrateServerSide && prop.includes('-')) {\n elm.style.setProperty(prop, newValue[prop]);\n }\n else {\n elm.style[prop] = newValue[prop];\n }\n }\n }\n }\n else if (BUILD.vdomKey && memberName === 'key')\n ;\n else if (BUILD.vdomRef && memberName === 'ref') {\n // minifier will clean this up\n if (newValue) {\n newValue(elm);\n }\n }\n else if (BUILD.vdomListener &&\n (BUILD.lazyLoad ? !isProp : !elm.__lookupSetter__(memberName)) &&\n memberName[0] === 'o' &&\n memberName[1] === 'n') {\n // Event Handlers\n // so if the member name starts with \"on\" and the 3rd characters is\n // a capital letter, and it's not already a member on the element,\n // then we're assuming it's an event listener\n if (memberName[2] === '-') {\n // on- prefixed events\n // allows to be explicit about the dom event to listen without any magic\n // under the hood:\n // <my-cmp on-click> // listens for \"click\"\n // <my-cmp on-Click> // listens for \"Click\"\n // <my-cmp on-ionChange> // listens for \"ionChange\"\n // <my-cmp on-EVENTS> // listens for \"EVENTS\"\n memberName = memberName.slice(3);\n }\n else if (isMemberInElement(win, ln)) {\n // standard event\n // the JSX attribute could have been \"onMouseOver\" and the\n // member name \"onmouseover\" is on the window's prototype\n // so let's add the listener \"mouseover\", which is all lowercased\n memberName = ln.slice(2);\n }\n else {\n // custom event\n // the JSX attribute could have been \"onMyCustomEvent\"\n // so let's trim off the \"on\" prefix and lowercase the first character\n // and add the listener \"myCustomEvent\"\n // except for the first character, we keep the event name case\n memberName = ln[2] + memberName.slice(3);\n }\n if (oldValue) {\n plt.rel(elm, memberName, oldValue, false);\n }\n if (newValue) {\n plt.ael(elm, memberName, newValue, false);\n }\n }\n else if (BUILD.vdomPropOrAttr) {\n // Set property if it exists and it's not a SVG\n const isComplex = isComplexType(newValue);\n if ((isProp || (isComplex && newValue !== null)) && !isSvg) {\n try {\n if (!elm.tagName.includes('-')) {\n const n = newValue == null ? '' : newValue;\n // Workaround for Safari, moving the <input> caret when re-assigning the same valued\n if (memberName === 'list') {\n isProp = false;\n }\n else if (oldValue == null || elm[memberName] != n) {\n elm[memberName] = n;\n }\n }\n else {\n elm[memberName] = newValue;\n }\n }\n catch (e) { }\n }\n /**\n * Need to manually update attribute if:\n * - memberName is not an attribute\n * - if we are rendering the host element in order to reflect attribute\n * - if it's a SVG, since properties might not work in <svg>\n * - if the newValue is null/undefined or 'false'.\n */\n let xlink = false;\n if (BUILD.vdomXlink) {\n if (ln !== (ln = ln.replace(/^xlink\\:?/, ''))) {\n memberName = ln;\n xlink = true;\n }\n }\n if (newValue == null || newValue === false) {\n if (newValue !== false || elm.getAttribute(memberName) === '') {\n if (BUILD.vdomXlink && xlink) {\n elm.removeAttributeNS(XLINK_NS, memberName);\n }\n else {\n elm.removeAttribute(memberName);\n }\n }\n }\n else if ((!isProp || flags & 4 /* VNODE_FLAGS.isHost */ || isSvg) && !isComplex) {\n newValue = newValue === true ? '' : newValue;\n if (BUILD.vdomXlink && xlink) {\n elm.setAttributeNS(XLINK_NS, memberName, newValue);\n }\n else {\n elm.setAttribute(memberName, newValue);\n }\n }\n }\n }\n};\nconst parseClassListRegex = /\\s/;\nconst parseClassList = (value) => (!value ? [] : value.split(parseClassListRegex));\nconst updateElement = (oldVnode, newVnode, isSvgMode, memberName) => {\n // if the element passed in is a shadow root, which is a document fragment\n // then we want to be adding attrs/props to the shadow root's \"host\" element\n // if it's not a shadow root, then we add attrs/props to the same element\n const elm = newVnode.$elm$.nodeType === 11 /* NODE_TYPE.DocumentFragment */ && newVnode.$elm$.host\n ? newVnode.$elm$.host\n : newVnode.$elm$;\n const oldVnodeAttrs = (oldVnode && oldVnode.$attrs$) || EMPTY_OBJ;\n const newVnodeAttrs = newVnode.$attrs$ || EMPTY_OBJ;\n if (BUILD.updatable) {\n // remove attributes no longer present on the vnode by setting them to undefined\n for (memberName in oldVnodeAttrs) {\n if (!(memberName in newVnodeAttrs)) {\n setAccessor(elm, memberName, oldVnodeAttrs[memberName], undefined, isSvgMode, newVnode.$flags$);\n }\n }\n }\n // add new & update changed attributes\n for (memberName in newVnodeAttrs) {\n setAccessor(elm, memberName, oldVnodeAttrs[memberName], newVnodeAttrs[memberName], isSvgMode, newVnode.$flags$);\n }\n};\n/**\n * Create a DOM Node corresponding to one of the children of a given VNode.\n *\n * @param oldParentVNode the parent VNode from the previous render\n * @param newParentVNode the parent VNode from the current render\n * @param childIndex the index of the VNode, in the _new_ parent node's\n * children, for which we will create a new DOM node\n * @param parentElm the parent DOM node which our new node will be a child of\n * @returns the newly created node\n */\nconst createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {\n // tslint:disable-next-line: prefer-const\n const newVNode = newParentVNode.$children$[childIndex];\n let i = 0;\n let elm;\n let childNode;\n let oldVNode;\n if (BUILD.slotRelocation && !useNativeShadowDom) {\n // remember for later we need to check to relocate nodes\n checkSlotRelocate = true;\n if (newVNode.$tag$ === 'slot') {\n if (scopeId) {\n // scoped css needs to add its scoped id to the parent element\n parentElm.classList.add(scopeId + '-s');\n }\n newVNode.$flags$ |= newVNode.$children$\n ? // slot element has fallback content\n 2 /* VNODE_FLAGS.isSlotFallback */\n : // slot element does not have fallback content\n 1 /* VNODE_FLAGS.isSlotReference */;\n }\n }\n if (BUILD.isDev && newVNode.$elm$) {\n consoleDevError(`The JSX ${newVNode.$text$ !== null ? `\"${newVNode.$text$}\" text` : `\"${newVNode.$tag$}\" element`} node should not be shared within the same renderer. The renderer caches element lookups in order to improve performance. However, a side effect from this is that the exact same JSX node should not be reused. For more information please see https://stenciljs.com/docs/templating-jsx#avoid-shared-jsx-nodes`);\n }\n if (BUILD.vdomText && newVNode.$text$ !== null) {\n // create text node\n elm = newVNode.$elm$ = doc.createTextNode(newVNode.$text$);\n }\n else if (BUILD.slotRelocation && newVNode.$flags$ & 1 /* VNODE_FLAGS.isSlotReference */) {\n // create a slot reference node\n elm = newVNode.$elm$ =\n BUILD.isDebug || BUILD.hydrateServerSide ? slotReferenceDebugNode(newVNode) : doc.createTextNode('');\n }\n else {\n if (BUILD.svg && !isSvgMode) {\n isSvgMode = newVNode.$tag$ === 'svg';\n }\n // create element\n elm = newVNode.$elm$ = (BUILD.svg\n ? doc.createElementNS(isSvgMode ? SVG_NS : HTML_NS, BUILD.slotRelocation && newVNode.$flags$ & 2 /* VNODE_FLAGS.isSlotFallback */\n ? 'slot-fb'\n : newVNode.$tag$)\n : doc.createElement(BUILD.slotRelocation && newVNode.$flags$ & 2 /* VNODE_FLAGS.isSlotFallback */\n ? 'slot-fb'\n : newVNode.$tag$));\n if (BUILD.svg && isSvgMode && newVNode.$tag$ === 'foreignObject') {\n isSvgMode = false;\n }\n // add css classes, attrs, props, listeners, etc.\n if (BUILD.vdomAttribute) {\n updateElement(null, newVNode, isSvgMode);\n }\n if ((BUILD.shadowDom || BUILD.scoped) && isDef(scopeId) && elm['s-si'] !== scopeId) {\n // if there is a scopeId and this is the initial render\n // then let's add the scopeId as a css class\n elm.classList.add((elm['s-si'] = scopeId));\n }\n if (newVNode.$children$) {\n for (i = 0; i < newVNode.$children$.length; ++i) {\n // create the node\n childNode = createElm(oldParentVNode, newVNode, i, elm);\n // return node could have been null\n if (childNode) {\n // append our new node\n elm.appendChild(childNode);\n }\n }\n }\n if (BUILD.svg) {\n if (newVNode.$tag$ === 'svg') {\n // Only reset the SVG context when we're exiting <svg> element\n isSvgMode = false;\n }\n else if (elm.tagName === 'foreignObject') {\n // Reenter SVG context when we're exiting <foreignObject> element\n isSvgMode = true;\n }\n }\n }\n if (BUILD.slotRelocation) {\n elm['s-hn'] = hostTagName;\n if (newVNode.$flags$ & (2 /* VNODE_FLAGS.isSlotFallback */ | 1 /* VNODE_FLAGS.isSlotReference */)) {\n // remember the content reference comment\n elm['s-sr'] = true;\n // remember the content reference comment\n elm['s-cr'] = contentRef;\n // remember the slot name, or empty string for default slot\n elm['s-sn'] = newVNode.$name$ || '';\n // check if we've got an old vnode for this slot\n oldVNode = oldParentVNode && oldParentVNode.$children$ && oldParentVNode.$children$[childIndex];\n if (oldVNode && oldVNode.$tag$ === newVNode.$tag$ && oldParentVNode.$elm$) {\n // we've got an old slot vnode and the wrapper is being replaced\n // so let's move the old slot content back to it's original location\n putBackInOriginalLocation(oldParentVNode.$elm$, false);\n }\n }\n }\n return elm;\n};\nconst putBackInOriginalLocation = (parentElm, recursive) => {\n plt.$flags$ |= 1 /* PLATFORM_FLAGS.isTmpDisconnected */;\n const oldSlotChildNodes = parentElm.childNodes;\n for (let i = oldSlotChildNodes.length - 1; i >= 0; i--) {\n const childNode = oldSlotChildNodes[i];\n if (childNode['s-hn'] !== hostTagName && childNode['s-ol']) {\n // // this child node in the old element is from another component\n // // remove this node from the old slot's parent\n // childNode.remove();\n // and relocate it back to it's original location\n parentReferenceNode(childNode).insertBefore(childNode, referenceNode(childNode));\n // remove the old original location comment entirely\n // later on the patch function will know what to do\n // and move this to the correct spot in need be\n childNode['s-ol'].remove();\n childNode['s-ol'] = undefined;\n checkSlotRelocate = true;\n }\n if (recursive) {\n putBackInOriginalLocation(childNode, recursive);\n }\n }\n plt.$flags$ &= ~1 /* PLATFORM_FLAGS.isTmpDisconnected */;\n};\nconst addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => {\n let containerElm = ((BUILD.slotRelocation && parentElm['s-cr'] && parentElm['s-cr'].parentNode) || parentElm);\n let childNode;\n if (BUILD.shadowDom && containerElm.shadowRoot && containerElm.tagName === hostTagName) {\n containerElm = containerElm.shadowRoot;\n }\n for (; startIdx <= endIdx; ++startIdx) {\n if (vnodes[startIdx]) {\n childNode = createElm(null, parentVNode, startIdx, parentElm);\n if (childNode) {\n vnodes[startIdx].$elm$ = childNode;\n containerElm.insertBefore(childNode, BUILD.slotRelocation ? referenceNode(before) : before);\n }\n }\n }\n};\nconst removeVnodes = (vnodes, startIdx, endIdx, vnode, elm) => {\n for (; startIdx <= endIdx; ++startIdx) {\n if ((vnode = vnodes[startIdx])) {\n elm = vnode.$elm$;\n callNodeRefs(vnode);\n if (BUILD.slotRelocation) {\n // we're removing this element\n // so it's possible we need to show slot fallback content now\n checkSlotFallbackVisibility = true;\n if (elm['s-ol']) {\n // remove the original location comment\n elm['s-ol'].remove();\n }\n else {\n // it's possible that child nodes of the node\n // that's being removed are slot nodes\n putBackInOriginalLocation(elm, true);\n }\n }\n // remove the vnode's element from the dom\n elm.remove();\n }\n }\n};\n/**\n * Reconcile the children of a new VNode with the children of an old VNode by\n * traversing the two collections of children, identifying nodes that are\n * conserved or changed, calling out to `patch` to make any necessary\n * updates to the DOM, and rearranging DOM nodes as needed.\n *\n * The algorithm for reconciling children works by analyzing two 'windows' onto\n * the two arrays of children (`oldCh` and `newCh`). We keep track of the\n * 'windows' by storing start and end indices and references to the\n * corresponding array entries. Initially the two 'windows' are basically equal\n * to the entire array, but we progressively narrow the windows until there are\n * no children left to update by doing the following:\n *\n * 1. Skip any `null` entries at the beginning or end of the two arrays, so\n * that if we have an initial array like the following we'll end up dealing\n * only with a window bounded by the highlighted elements:\n *\n * [null, null, VNode1 , ... , VNode2, null, null]\n * ^^^^^^ ^^^^^^\n *\n * 2. Check to see if the elements at the head and tail positions are equal\n * across the windows. This will basically detect elements which haven't\n * been added, removed, or changed position, i.e. if you had the following\n * VNode elements (represented as HTML):\n *\n * oldVNode: `<div><p><span>HEY</span></p></div>`\n * newVNode: `<div><p><span>THERE</span></p></div>`\n *\n * Then when comparing the children of the `<div>` tag we check the equality\n * of the VNodes corresponding to the `<p>` tags and, since they are the\n * same tag in the same position, we'd be able to avoid completely\n * re-rendering the subtree under them with a new DOM element and would just\n * call out to `patch` to handle reconciling their children and so on.\n *\n * 3. Check, for both windows, to see if the element at the beginning of the\n * window corresponds to the element at the end of the other window. This is\n * a heuristic which will let us identify _some_ situations in which\n * elements have changed position, for instance it _should_ detect that the\n * children nodes themselves have not changed but merely moved in the\n * following example:\n *\n * oldVNode: `<div><element-one /><element-two /></div>`\n * newVNode: `<div><element-two /><element-one /></div>`\n *\n * If we find cases like this then we also need to move the concrete DOM\n * elements corresponding to the moved children to write the re-order to the\n * DOM.\n *\n * 4. Finally, if VNodes have the `key` attribute set on them we check for any\n * nodes in the old children which have the same key as the first element in\n * our window on the new children. If we find such a node we handle calling\n * out to `patch`, moving relevant DOM nodes, and so on, in accordance with\n * what we find.\n *\n * Finally, once we've narrowed our 'windows' to the point that either of them\n * collapse (i.e. they have length 0) we then handle any remaining VNode\n * insertion or deletion that needs to happen to get a DOM state that correctly\n * reflects the new child VNodes. If, for instance, after our window on the old\n * children has collapsed we still have more nodes on the new children that\n * we haven't dealt with yet then we need to add them, or if the new children\n * collapse but we still have unhandled _old_ children then we need to make\n * sure the corresponding DOM nodes are removed.\n *\n * @param parentElm the node into which the parent VNode is rendered\n * @param oldCh the old children of the parent node\n * @param newVNode the new VNode which will replace the parent\n * @param newCh the new children of the parent node\n */\nconst updateChildren = (parentElm, oldCh, newVNode, newCh) => {\n let oldStartIdx = 0;\n let newStartIdx = 0;\n let idxInOld = 0;\n let i = 0;\n let oldEndIdx = oldCh.length - 1;\n let oldStartVnode = oldCh[0];\n let oldEndVnode = oldCh[oldEndIdx];\n let newEndIdx = newCh.length - 1;\n let newStartVnode = newCh[0];\n let newEndVnode = newCh[newEndIdx];\n let node;\n let elmToMove;\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (oldStartVnode == null) {\n // VNode might have been moved left\n oldStartVnode = oldCh[++oldStartIdx];\n }\n else if (oldEndVnode == null) {\n oldEndVnode = oldCh[--oldEndIdx];\n }\n else if (newStartVnode == null) {\n newStartVnode = newCh[++newStartIdx];\n }\n else if (newEndVnode == null) {\n newEndVnode = newCh[--newEndIdx];\n }\n else if (isSameVnode(oldStartVnode, newStartVnode)) {\n // if the start nodes are the same then we should patch the new VNode\n // onto the old one, and increment our `newStartIdx` and `oldStartIdx`\n // indices to reflect that. We don't need to move any DOM Nodes around\n // since things are matched up in order.\n patch(oldStartVnode, newStartVnode);\n oldStartVnode = oldCh[++oldStartIdx];\n newStartVnode = newCh[++newStartIdx];\n }\n else if (isSameVnode(oldEndVnode, newEndVnode)) {\n // likewise, if the end nodes are the same we patch new onto old and\n // decrement our end indices, and also likewise in this case we don't\n // need to move any DOM Nodes.\n patch(oldEndVnode, newEndVnode);\n oldEndVnode = oldCh[--oldEndIdx];\n newEndVnode = newCh[--newEndIdx];\n }\n else if (isSameVnode(oldStartVnode, newEndVnode)) {\n // case: \"Vnode moved right\"\n //\n // We've found that the last node in our window on the new children is\n // the same VNode as the _first_ node in our window on the old children\n // we're dealing with now. Visually, this is the layout of these two\n // nodes:\n //\n // newCh: [..., newStartVnode , ... , newEndVnode , ...]\n // ^^^^^^^^^^^\n // oldCh: [..., oldStartVnode , ... , oldEndVnode , ...]\n // ^^^^^^^^^^^^^\n //\n // In this situation we need to patch `newEndVnode` onto `oldStartVnode`\n // and move the DOM element for `oldStartVnode`.\n if (BUILD.slotRelocation && (oldStartVnode.$tag$ === 'slot' || newEndVnode.$tag$ === 'slot')) {\n putBackInOriginalLocation(oldStartVnode.$elm$.parentNode, false);\n }\n patch(oldStartVnode, newEndVnode);\n // We need to move the element for `oldStartVnode` into a position which\n // will be appropriate for `newEndVnode`. For this we can use\n // `.insertBefore` and `oldEndVnode.$elm$.nextSibling`. If there is a\n // sibling for `oldEndVnode.$elm$` then we want to move the DOM node for\n // `oldStartVnode` between `oldEndVnode` and it's sibling, like so:\n //\n // <old-start-node />\n // <some-intervening-node />\n // <old-end-node />\n // <!-- -> <-- `oldStartVnode.$elm$` should be inserted here\n // <next-sibling />\n //\n // If instead `oldEndVnode.$elm$` has no sibling then we just want to put\n // the node for `oldStartVnode` at the end of the children of\n // `parentElm`. Luckily, `Node.nextSibling` will return `null` if there\n // aren't any siblings, and passing `null` to `Node.insertBefore` will\n // append it to the children of the parent element.\n parentElm.insertBefore(oldStartVnode.$elm$, oldEndVnode.$elm$.nextSibling);\n oldStartVnode = oldCh[++oldStartIdx];\n newEndVnode = newCh[--newEndIdx];\n }\n else if (isSameVnode(oldEndVnode, newStartVnode)) {\n // case: \"Vnode moved left\"\n //\n // We've found that the first node in our window on the new children is\n // the same VNode as the _last_ node in our window on the old children.\n // Visually, this is the layout of these two nodes:\n //\n // newCh: [..., newStartVnode , ... , newEndVnode , ...]\n // ^^^^^^^^^^^^^\n // oldCh: [..., oldStartVnode , ... , oldEndVnode , ...]\n // ^^^^^^^^^^^\n //\n // In this situation we need to patch `newStartVnode` onto `oldEndVnode`\n // (which will handle updating any changed attributes, reconciling their\n // children etc) but we also need to move the DOM node to which\n // `oldEndVnode` corresponds.\n if (BUILD.slotRelocation && (oldStartVnode.$tag$ === 'slot' || newEndVnode.$tag$ === 'slot')) {\n putBackInOriginalLocation(oldEndVnode.$elm$.parentNode, false);\n }\n patch(oldEndVnode, newStartVnode);\n // We've already checked above if `oldStartVnode` and `newStartVnode` are\n // the same node, so since we're here we know that they are not. Thus we\n // can move the element for `oldEndVnode` _before_ the element for\n // `oldStartVnode`, leaving `oldStartVnode` to be reconciled in the\n // future.\n parentElm.insertBefore(oldEndVnode.$elm$, oldStartVnode.$elm$);\n oldEndVnode = oldCh[--oldEndIdx];\n newStartVnode = newCh[++newStartIdx];\n }\n else {\n // Here we do some checks to match up old and new nodes based on the\n // `$key$` attribute, which is set by putting a `key=\"my-key\"` attribute\n // in the JSX for a DOM element in the implementation of a Stencil\n // component.\n //\n // First we check to see if there are any nodes in the array of old\n // children which have the same key as the first node in the new\n // children.\n idxInOld = -1;\n if (BUILD.vdomKey) {\n for (i = oldStartIdx; i <= oldEndIdx; ++i) {\n if (oldCh[i] && oldCh[i].$key$ !== null && oldCh[i].$key$ === newStartVnode.$key$) {\n idxInOld = i;\n break;\n }\n }\n }\n if (BUILD.vdomKey && idxInOld >= 0) {\n // We found a node in the old children which matches up with the first\n // node in the new children! So let's deal with that\n elmToMove = oldCh[idxInOld];\n if (elmToMove.$tag$ !== newStartVnode.$tag$) {\n // the tag doesn't match so we'll need a new DOM element\n node = createElm(oldCh && oldCh[newStartIdx], newVNode, idxInOld, parentElm);\n }\n else {\n patch(elmToMove, newStartVnode);\n // invalidate the matching old node so that we won't try to update it\n // again later on\n oldCh[idxInOld] = undefined;\n node = elmToMove.$elm$;\n }\n newStartVnode = newCh[++newStartIdx];\n }\n else {\n // We either didn't find an element in the old children that matches\n // the key of the first new child OR the build is not using `key`\n // attributes at all. In either case we need to create a new element\n // for the new node.\n node = createElm(oldCh && oldCh[newStartIdx], newVNode, newStartIdx, parentElm);\n newStartVnode = newCh[++newStartIdx];\n }\n if (node) {\n // if we created a new node then handle inserting it to the DOM\n if (BUILD.slotRelocation) {\n parentReferenceNode(oldStartVnode.$elm$).insertBefore(node, referenceNode(oldStartVnode.$elm$));\n }\n else {\n oldStartVnode.$elm$.parentNode.insertBefore(node, oldStartVnode.$elm$);\n }\n }\n }\n }\n if (oldStartIdx > oldEndIdx) {\n // we have some more new nodes to add which don't match up with old nodes\n addVnodes(parentElm, newCh[newEndIdx + 1] == null ? null : newCh[newEndIdx + 1].$elm$, newVNode, newCh, newStartIdx, newEndIdx);\n }\n else if (BUILD.updatable && newStartIdx > newEndIdx) {\n // there are nodes in the `oldCh` array which no longer correspond to nodes\n // in the new array, so lets remove them (which entails cleaning up the\n // relevant DOM nodes)\n removeVnodes(oldCh, oldStartIdx, oldEndIdx);\n }\n};\n/**\n * Compare two VNodes to determine if they are the same\n *\n * **NB**: This function is an equality _heuristic_ based on the available\n * information set on the two VNodes and can be misleading under certain\n * circumstances. In particular, if the two nodes do not have `key` attrs\n * (available under `$key$` on VNodes) then the function falls back on merely\n * checking that they have the same tag.\n *\n * So, in other words, if `key` attrs are not set on VNodes which may be\n * changing order within a `children` array or something along those lines then\n * we could obtain a false positive and then have to do needless re-rendering.\n *\n * @param leftVNode the first VNode to check\n * @param rightVNode the second VNode to check\n * @returns whether they're equal or not\n */\nconst isSameVnode = (leftVNode, rightVNode) => {\n // compare if two vnode to see if they're \"technically\" the same\n // need to have the same element tag, and same key to be the same\n if (leftVNode.$tag$ === rightVNode.$tag$) {\n if (BUILD.slotRelocation && leftVNode.$tag$ === 'slot') {\n return leftVNode.$name$ === rightVNode.$name$;\n }\n // this will be set if components in the build have `key` attrs set on them\n if (BUILD.vdomKey) {\n return leftVNode.$key$ === rightVNode.$key$;\n }\n return true;\n }\n return false;\n};\nconst referenceNode = (node) => {\n // this node was relocated to a new location in the dom\n // because of some other component's slot\n // but we still have an html comment in place of where\n // it's original location was according to it's original vdom\n return (node && node['s-ol']) || node;\n};\nconst parentReferenceNode = (node) => (node['s-ol'] ? node['s-ol'] : node).parentNode;\n/**\n * Handle reconciling an outdated VNode with a new one which corresponds to\n * it. This function handles flushing updates to the DOM and reconciling the\n * children of the two nodes (if any).\n *\n * @param oldVNode an old VNode whose DOM element and children we want to update\n * @param newVNode a new VNode representing an updated version of the old one\n */\nconst patch = (oldVNode, newVNode) => {\n const elm = (newVNode.$elm$ = oldVNode.$elm$);\n const oldChildren = oldVNode.$children$;\n const newChildren = newVNode.$children$;\n const tag = newVNode.$tag$;\n const text = newVNode.$text$;\n let defaultHolder;\n if (!BUILD.vdomText || text === null) {\n if (BUILD.svg) {\n // test if we're rendering an svg element, or still rendering nodes inside of one\n // only add this to the when the compiler sees we're using an svg somewhere\n isSvgMode = tag === 'svg' ? true : tag === 'foreignObject' ? false : isSvgMode;\n }\n if (BUILD.vdomAttribute || BUILD.reflect) {\n if (BUILD.slot && tag === 'slot')\n ;\n else {\n // either this is the first render of an element OR it's an update\n // AND we already know it's possible it could have changed\n // this updates the element's css classes, attrs, props, listeners, etc.\n updateElement(oldVNode, newVNode, isSvgMode);\n }\n }\n if (BUILD.updatable && oldChildren !== null && newChildren !== null) {\n // looks like there's child vnodes for both the old and new vnodes\n // so we need to call `updateChildren` to reconcile them\n updateChildren(elm, oldChildren, newVNode, newChildren);\n }\n else if (newChildren !== null) {\n // no old child vnodes, but there are new child vnodes to add\n if (BUILD.updatable && BUILD.vdomText && oldVNode.$text$ !== null) {\n // the old vnode was text, so be sure to clear it out\n elm.textContent = '';\n }\n // add the new vnode children\n addVnodes(elm, null, newVNode, newChildren, 0, newChildren.length - 1);\n }\n else if (BUILD.updatable && oldChildren !== null) {\n // no new child vnodes, but there are old child vnodes to remove\n removeVnodes(oldChildren, 0, oldChildren.length - 1);\n }\n if (BUILD.svg && isSvgMode && tag === 'svg') {\n isSvgMode = false;\n }\n }\n else if (BUILD.vdomText && BUILD.slotRelocation && (defaultHolder = elm['s-cr'])) {\n // this element has slotted content\n defaultHolder.parentNode.textContent = text;\n }\n else if (BUILD.vdomText && oldVNode.$text$ !== text) {\n // update the text content for the text only vnode\n // and also only if the text is different than before\n elm.data = text;\n }\n};\nconst updateFallbackSlotVisibility = (elm) => {\n // tslint:disable-next-line: prefer-const\n const childNodes = elm.childNodes;\n let childNode;\n let i;\n let ilen;\n let j;\n let slotNameAttr;\n let nodeType;\n for (i = 0, ilen = childNodes.length; i < ilen; i++) {\n childNode = childNodes[i];\n if (childNode.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n if (childNode['s-sr']) {\n // this is a slot fallback node\n // get the slot name for this slot reference node\n slotNameAttr = childNode['s-sn'];\n // by default always show a fallback slot node\n // then hide it if there are other slots in the light dom\n childNode.hidden = false;\n for (j = 0; j < ilen; j++) {\n nodeType = childNodes[j].nodeType;\n if (childNodes[j]['s-hn'] !== childNode['s-hn'] || slotNameAttr !== '') {\n // this sibling node is from a different component OR is a named fallback slot node\n if (nodeType === 1 /* NODE_TYPE.ElementNode */ && slotNameAttr === childNodes[j].getAttribute('slot')) {\n childNode.hidden = true;\n break;\n }\n }\n else {\n // this is a default fallback slot node\n // any element or text node (with content)\n // should hide the default fallback slot node\n if (nodeType === 1 /* NODE_TYPE.ElementNode */ ||\n (nodeType === 3 /* NODE_TYPE.TextNode */ && childNodes[j].textContent.trim() !== '')) {\n childNode.hidden = true;\n break;\n }\n }\n }\n }\n // keep drilling down\n updateFallbackSlotVisibility(childNode);\n }\n }\n};\nconst relocateNodes = [];\nconst relocateSlotContent = (elm) => {\n // tslint:disable-next-line: prefer-const\n let childNode;\n let node;\n let hostContentNodes;\n let slotNameAttr;\n let relocateNodeData;\n let j;\n let i = 0;\n const childNodes = elm.childNodes;\n const ilen = childNodes.length;\n for (; i < ilen; i++) {\n childNode = childNodes[i];\n if (childNode['s-sr'] && (node = childNode['s-cr']) && node.parentNode) {\n // first got the content reference comment node\n // then we got it's parent, which is where all the host content is in now\n hostContentNodes = node.parentNode.childNodes;\n slotNameAttr = childNode['s-sn'];\n for (j = hostContentNodes.length - 1; j >= 0; j--) {\n node = hostContentNodes[j];\n if (!node['s-cn'] && !node['s-nr'] && node['s-hn'] !== childNode['s-hn']) {\n // let's do some relocating to its new home\n // but never relocate a content reference node\n // that is suppose to always represent the original content location\n if (isNodeLocatedInSlot(node, slotNameAttr)) {\n // it's possible we've already decided to relocate this node\n relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);\n // made some changes to slots\n // let's make sure we also double check\n // fallbacks are correctly hidden or shown\n checkSlotFallbackVisibility = true;\n node['s-sn'] = node['s-sn'] || slotNameAttr;\n if (relocateNodeData) {\n // previously we never found a slot home for this node\n // but turns out we did, so let's remember it now\n relocateNodeData.$slotRefNode$ = childNode;\n }\n else {\n // add to our list of nodes to relocate\n relocateNodes.push({\n $slotRefNode$: childNode,\n $nodeToRelocate$: node,\n });\n }\n if (node['s-sr']) {\n relocateNodes.map((relocateNode) => {\n if (isNodeLocatedInSlot(relocateNode.$nodeToRelocate$, node['s-sn'])) {\n relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);\n if (relocateNodeData && !relocateNode.$slotRefNode$) {\n relocateNode.$slotRefNode$ = relocateNodeData.$slotRefNode$;\n }\n }\n });\n }\n }\n else if (!relocateNodes.some((r) => r.$nodeToRelocate$ === node)) {\n // so far this element does not have a slot home, not setting slotRefNode on purpose\n // if we never find a home for this element then we'll need to hide it\n relocateNodes.push({\n $nodeToRelocate$: node,\n });\n }\n }\n }\n }\n if (childNode.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n relocateSlotContent(childNode);\n }\n }\n};\nconst isNodeLocatedInSlot = (nodeToRelocate, slotNameAttr) => {\n if (nodeToRelocate.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n if (nodeToRelocate.getAttribute('slot') === null && slotNameAttr === '') {\n return true;\n }\n if (nodeToRelocate.getAttribute('slot') === slotNameAttr) {\n return true;\n }\n return false;\n }\n if (nodeToRelocate['s-sn'] === slotNameAttr) {\n return true;\n }\n return slotNameAttr === '';\n};\nconst callNodeRefs = (vNode) => {\n if (BUILD.vdomRef) {\n vNode.$attrs$ && vNode.$attrs$.ref && vNode.$attrs$.ref(null);\n vNode.$children$ && vNode.$children$.map(callNodeRefs);\n }\n};\nconst renderVdom = (hostRef, renderFnResults) => {\n const hostElm = hostRef.$hostElement$;\n const cmpMeta = hostRef.$cmpMeta$;\n const oldVNode = hostRef.$vnode$ || newVNode(null, null);\n const rootVnode = isHost(renderFnResults) ? renderFnResults : h(null, null, renderFnResults);\n hostTagName = hostElm.tagName;\n // <Host> runtime check\n if (BUILD.isDev && Array.isArray(renderFnResults) && renderFnResults.some(isHost)) {\n throw new Error(`The <Host> must be the single root component.\nLooks like the render() function of \"${hostTagName.toLowerCase()}\" is returning an array that contains the <Host>.\n\nThe render() function should look like this instead:\n\nrender() {\n // Do not return an array\n return (\n <Host>{content}</Host>\n );\n}\n `);\n }\n if (BUILD.reflect && cmpMeta.$attrsToReflect$) {\n rootVnode.$attrs$ = rootVnode.$attrs$ || {};\n cmpMeta.$attrsToReflect$.map(([propName, attribute]) => (rootVnode.$attrs$[attribute] = hostElm[propName]));\n }\n rootVnode.$tag$ = null;\n rootVnode.$flags$ |= 4 /* VNODE_FLAGS.isHost */;\n hostRef.$vnode$ = rootVnode;\n rootVnode.$elm$ = oldVNode.$elm$ = (BUILD.shadowDom ? hostElm.shadowRoot || hostElm : hostElm);\n if (BUILD.scoped || BUILD.shadowDom) {\n scopeId = hostElm['s-sc'];\n }\n if (BUILD.slotRelocation) {\n contentRef = hostElm['s-cr'];\n useNativeShadowDom = supportsShadow && (cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) !== 0;\n // always reset\n checkSlotFallbackVisibility = false;\n }\n // synchronous patch\n patch(oldVNode, rootVnode);\n if (BUILD.slotRelocation) {\n // while we're moving nodes around existing nodes, temporarily disable\n // the disconnectCallback from working\n plt.$flags$ |= 1 /* PLATFORM_FLAGS.isTmpDisconnected */;\n if (checkSlotRelocate) {\n relocateSlotContent(rootVnode.$elm$);\n let relocateData;\n let nodeToRelocate;\n let orgLocationNode;\n let parentNodeRef;\n let insertBeforeNode;\n let refNode;\n let i = 0;\n for (; i < relocateNodes.length; i++) {\n relocateData = relocateNodes[i];\n nodeToRelocate = relocateData.$nodeToRelocate$;\n if (!nodeToRelocate['s-ol']) {\n // add a reference node marking this node's original location\n // keep a reference to this node for later lookups\n orgLocationNode =\n BUILD.isDebug || BUILD.hydrateServerSide\n ? originalLocationDebugNode(nodeToRelocate)\n : doc.createTextNode('');\n orgLocationNode['s-nr'] = nodeToRelocate;\n nodeToRelocate.parentNode.insertBefore((nodeToRelocate['s-ol'] = orgLocationNode), nodeToRelocate);\n }\n }\n for (i = 0; i < relocateNodes.length; i++) {\n relocateData = relocateNodes[i];\n nodeToRelocate = relocateData.$nodeToRelocate$;\n if (relocateData.$slotRefNode$) {\n // by default we're just going to insert it directly\n // after the slot reference node\n parentNodeRef = relocateData.$slotRefNode$.parentNode;\n insertBeforeNode = relocateData.$slotRefNode$.nextSibling;\n orgLocationNode = nodeToRelocate['s-ol'];\n while ((orgLocationNode = orgLocationNode.previousSibling)) {\n refNode = orgLocationNode['s-nr'];\n if (refNode && refNode['s-sn'] === nodeToRelocate['s-sn'] && parentNodeRef === refNode.parentNode) {\n refNode = refNode.nextSibling;\n if (!refNode || !refNode['s-nr']) {\n insertBeforeNode = refNode;\n break;\n }\n }\n }\n if ((!insertBeforeNode && parentNodeRef !== nodeToRelocate.parentNode) ||\n nodeToRelocate.nextSibling !== insertBeforeNode) {\n // we've checked that it's worth while to relocate\n // since that the node to relocate\n // has a different next sibling or parent relocated\n if (nodeToRelocate !== insertBeforeNode) {\n if (!nodeToRelocate['s-hn'] && nodeToRelocate['s-ol']) {\n // probably a component in the index.html that doesn't have it's hostname set\n nodeToRelocate['s-hn'] = nodeToRelocate['s-ol'].parentNode.nodeName;\n }\n // add it back to the dom but in its new home\n parentNodeRef.insertBefore(nodeToRelocate, insertBeforeNode);\n }\n }\n }\n else {\n // this node doesn't have a slot home to go to, so let's hide it\n if (nodeToRelocate.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n nodeToRelocate.hidden = true;\n }\n }\n }\n }\n if (checkSlotFallbackVisibility) {\n updateFallbackSlotVisibility(rootVnode.$elm$);\n }\n // done moving nodes around\n // allow the disconnect callback to work again\n plt.$flags$ &= ~1 /* PLATFORM_FLAGS.isTmpDisconnected */;\n // always reset\n relocateNodes.length = 0;\n }\n};\n// slot comment debug nodes only created with the `--debug` flag\n// otherwise these nodes are text nodes w/out content\nconst slotReferenceDebugNode = (slotVNode) => doc.createComment(`<slot${slotVNode.$name$ ? ' name=\"' + slotVNode.$name$ + '\"' : ''}> (host=${hostTagName.toLowerCase()})`);\nconst originalLocationDebugNode = (nodeToRelocate) => doc.createComment(`org-location for ` +\n (nodeToRelocate.localName\n ? `<${nodeToRelocate.localName}> (host=${nodeToRelocate['s-hn']})`\n : `[${nodeToRelocate.textContent}]`));\nconst attachToAncestor = (hostRef, ancestorComponent) => {\n if (BUILD.asyncLoading && ancestorComponent && !hostRef.$onRenderResolve$ && ancestorComponent['s-p']) {\n ancestorComponent['s-p'].push(new Promise((r) => (hostRef.$onRenderResolve$ = r)));\n }\n};\nconst scheduleUpdate = (hostRef, isInitialLoad) => {\n if (BUILD.taskQueue && BUILD.updatable) {\n hostRef.$flags$ |= 16 /* HOST_FLAGS.isQueuedForUpdate */;\n }\n if (BUILD.asyncLoading && hostRef.$flags$ & 4 /* HOST_FLAGS.isWaitingForChildren */) {\n hostRef.$flags$ |= 512 /* HOST_FLAGS.needsRerender */;\n return;\n }\n attachToAncestor(hostRef, hostRef.$ancestorComponent$);\n // there is no ancestor component or the ancestor component\n // has already fired off its lifecycle update then\n // fire off the initial update\n const dispatch = () => dispatchHooks(hostRef, isInitialLoad);\n return BUILD.taskQueue ? writeTask(dispatch) : dispatch();\n};\nconst dispatchHooks = (hostRef, isInitialLoad) => {\n const elm = hostRef.$hostElement$;\n const endSchedule = createTime('scheduleUpdate', hostRef.$cmpMeta$.$tagName$);\n const instance = BUILD.lazyLoad ? hostRef.$lazyInstance$ : elm;\n let promise;\n if (isInitialLoad) {\n if (BUILD.lazyLoad && BUILD.hostListener) {\n hostRef.$flags$ |= 256 /* HOST_FLAGS.isListenReady */;\n if (hostRef.$queuedListeners$) {\n hostRef.$queuedListeners$.map(([methodName, event]) => safeCall(instance, methodName, event));\n hostRef.$queuedListeners$ = null;\n }\n }\n emitLifecycleEvent(elm, 'componentWillLoad');\n if (BUILD.cmpWillLoad) {\n promise = safeCall(instance, 'componentWillLoad');\n }\n }\n else {\n emitLifecycleEvent(elm, 'componentWillUpdate');\n if (BUILD.cmpWillUpdate) {\n promise = safeCall(instance, 'componentWillUpdate');\n }\n }\n emitLifecycleEvent(elm, 'componentWillRender');\n if (BUILD.cmpWillRender) {\n promise = then(promise, () => safeCall(instance, 'componentWillRender'));\n }\n endSchedule();\n return then(promise, () => updateComponent(hostRef, instance, isInitialLoad));\n};\nconst updateComponent = async (hostRef, instance, isInitialLoad) => {\n // updateComponent\n const elm = hostRef.$hostElement$;\n const endUpdate = createTime('update', hostRef.$cmpMeta$.$tagName$);\n const rc = elm['s-rc'];\n if (BUILD.style && isInitialLoad) {\n // DOM WRITE!\n attachStyles(hostRef);\n }\n const endRender = createTime('render', hostRef.$cmpMeta$.$tagName$);\n if (BUILD.isDev) {\n hostRef.$flags$ |= 1024 /* HOST_FLAGS.devOnRender */;\n }\n if (BUILD.hydrateServerSide) {\n await callRender(hostRef, instance, elm);\n }\n else {\n callRender(hostRef, instance, elm);\n }\n if (BUILD.cssVarShim && plt.$cssShim$) {\n plt.$cssShim$.updateHost(elm);\n }\n if (BUILD.isDev) {\n hostRef.$renderCount$++;\n hostRef.$flags$ &= ~1024 /* HOST_FLAGS.devOnRender */;\n }\n if (BUILD.hydrateServerSide) {\n try {\n // manually connected child components during server-side hydrate\n serverSideConnected(elm);\n if (isInitialLoad) {\n // using only during server-side hydrate\n if (hostRef.$cmpMeta$.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) {\n elm['s-en'] = '';\n }\n else if (hostRef.$cmpMeta$.$flags$ & 2 /* CMP_FLAGS.scopedCssEncapsulation */) {\n elm['s-en'] = 'c';\n }\n }\n }\n catch (e) {\n consoleError(e, elm);\n }\n }\n if (BUILD.asyncLoading && rc) {\n // ok, so turns out there are some child host elements\n // waiting on this parent element to load\n // let's fire off all update callbacks waiting\n rc.map((cb) => cb());\n elm['s-rc'] = undefined;\n }\n endRender();\n endUpdate();\n if (BUILD.asyncLoading) {\n const childrenPromises = elm['s-p'];\n const postUpdate = () => postUpdateComponent(hostRef);\n if (childrenPromises.length === 0) {\n postUpdate();\n }\n else {\n Promise.all(childrenPromises).then(postUpdate);\n hostRef.$flags$ |= 4 /* HOST_FLAGS.isWaitingForChildren */;\n childrenPromises.length = 0;\n }\n }\n else {\n postUpdateComponent(hostRef);\n }\n};\nconst callRender = (hostRef, instance, elm) => {\n // in order for bundlers to correctly treeshake the BUILD object\n // we need to ensure BUILD is not deoptimized within a try/catch\n // https://rollupjs.org/guide/en/#treeshake tryCatchDeoptimization\n const allRenderFn = BUILD.allRenderFn ? true : false;\n const lazyLoad = BUILD.lazyLoad ? true : false;\n const taskQueue = BUILD.taskQueue ? true : false;\n const updatable = BUILD.updatable ? true : false;\n try {\n renderingRef = instance;\n instance = allRenderFn ? instance.render() : instance.render && instance.render();\n if (updatable && taskQueue) {\n hostRef.$flags$ &= ~16 /* HOST_FLAGS.isQueuedForUpdate */;\n }\n if (updatable || lazyLoad) {\n hostRef.$flags$ |= 2 /* HOST_FLAGS.hasRendered */;\n }\n if (BUILD.hasRenderFn || BUILD.reflect) {\n if (BUILD.vdomRender || BUILD.reflect) {\n // looks like we've got child nodes to render into this host element\n // or we need to update the css class/attrs on the host element\n // DOM WRITE!\n if (BUILD.hydrateServerSide) {\n return Promise.resolve(instance).then((value) => renderVdom(hostRef, value));\n }\n else {\n renderVdom(hostRef, instance);\n }\n }\n else {\n elm.textContent = instance;\n }\n }\n }\n catch (e) {\n consoleError(e, hostRef.$hostElement$);\n }\n renderingRef = null;\n return null;\n};\nconst getRenderingRef = () => renderingRef;\nconst postUpdateComponent = (hostRef) => {\n const tagName = hostRef.$cmpMeta$.$tagName$;\n const elm = hostRef.$hostElement$;\n const endPostUpdate = createTime('postUpdate', tagName);\n const instance = BUILD.lazyLoad ? hostRef.$lazyInstance$ : elm;\n const ancestorComponent = hostRef.$ancestorComponent$;\n if (BUILD.cmpDidRender) {\n if (BUILD.isDev) {\n hostRef.$flags$ |= 1024 /* HOST_FLAGS.devOnRender */;\n }\n safeCall(instance, 'componentDidRender');\n if (BUILD.isDev) {\n hostRef.$flags$ &= ~1024 /* HOST_FLAGS.devOnRender */;\n }\n }\n emitLifecycleEvent(elm, 'componentDidRender');\n if (!(hostRef.$flags$ & 64 /* HOST_FLAGS.hasLoadedComponent */)) {\n hostRef.$flags$ |= 64 /* HOST_FLAGS.hasLoadedComponent */;\n if (BUILD.asyncLoading && BUILD.cssAnnotations) {\n // DOM WRITE!\n addHydratedFlag(elm);\n }\n if (BUILD.cmpDidLoad) {\n if (BUILD.isDev) {\n hostRef.$flags$ |= 2048 /* HOST_FLAGS.devOnDidLoad */;\n }\n safeCall(instance, 'componentDidLoad');\n if (BUILD.isDev) {\n hostRef.$flags$ &= ~2048 /* HOST_FLAGS.devOnDidLoad */;\n }\n }\n emitLifecycleEvent(elm, 'componentDidLoad');\n endPostUpdate();\n if (BUILD.asyncLoading) {\n hostRef.$onReadyResolve$(elm);\n if (!ancestorComponent) {\n appDidLoad(tagName);\n }\n }\n }\n else {\n if (BUILD.cmpDidUpdate) {\n // we've already loaded this component\n // fire off the user's componentDidUpdate method (if one was provided)\n // componentDidUpdate runs AFTER render() has been called\n // and all child components have finished updating\n if (BUILD.isDev) {\n hostRef.$flags$ |= 1024 /* HOST_FLAGS.devOnRender */;\n }\n safeCall(instance, 'componentDidUpdate');\n if (BUILD.isDev) {\n hostRef.$flags$ &= ~1024 /* HOST_FLAGS.devOnRender */;\n }\n }\n emitLifecycleEvent(elm, 'componentDidUpdate');\n endPostUpdate();\n }\n if (BUILD.hotModuleReplacement) {\n elm['s-hmr-load'] && elm['s-hmr-load']();\n }\n if (BUILD.method && BUILD.lazyLoad) {\n hostRef.$onInstanceResolve$(elm);\n }\n // load events fire from bottom to top\n // the deepest elements load first then bubbles up\n if (BUILD.asyncLoading) {\n if (hostRef.$onRenderResolve$) {\n hostRef.$onRenderResolve$();\n hostRef.$onRenderResolve$ = undefined;\n }\n if (hostRef.$flags$ & 512 /* HOST_FLAGS.needsRerender */) {\n nextTick(() => scheduleUpdate(hostRef, false));\n }\n hostRef.$flags$ &= ~(4 /* HOST_FLAGS.isWaitingForChildren */ | 512 /* HOST_FLAGS.needsRerender */);\n }\n // ( •_•)\n // ( •_•)>⌐■-■\n // (⌐■_■)\n};\nconst forceUpdate = (ref) => {\n if (BUILD.updatable) {\n const hostRef = getHostRef(ref);\n const isConnected = hostRef.$hostElement$.isConnected;\n if (isConnected &&\n (hostRef.$flags$ & (2 /* HOST_FLAGS.hasRendered */ | 16 /* HOST_FLAGS.isQueuedForUpdate */)) === 2 /* HOST_FLAGS.hasRendered */) {\n scheduleUpdate(hostRef, false);\n }\n // Returns \"true\" when the forced update was successfully scheduled\n return isConnected;\n }\n return false;\n};\nconst appDidLoad = (who) => {\n // on appload\n // we have finish the first big initial render\n if (BUILD.cssAnnotations) {\n addHydratedFlag(doc.documentElement);\n }\n if (BUILD.asyncQueue) {\n plt.$flags$ |= 2 /* PLATFORM_FLAGS.appLoaded */;\n }\n nextTick(() => emitEvent(win, 'appload', { detail: { namespace: NAMESPACE } }));\n if (BUILD.profile && performance.measure) {\n performance.measure(`[Stencil] ${NAMESPACE} initial load (by ${who})`, 'st:app:start');\n }\n};\nconst safeCall = (instance, method, arg) => {\n if (instance && instance[method]) {\n try {\n return instance[method](arg);\n }\n catch (e) {\n consoleError(e);\n }\n }\n return undefined;\n};\nconst then = (promise, thenFn) => {\n return promise && promise.then ? promise.then(thenFn) : thenFn();\n};\nconst emitLifecycleEvent = (elm, lifecycleName) => {\n if (BUILD.lifecycleDOMEvents) {\n emitEvent(elm, 'stencil_' + lifecycleName, {\n bubbles: true,\n composed: true,\n detail: {\n namespace: NAMESPACE,\n },\n });\n }\n};\nconst addHydratedFlag = (elm) => BUILD.hydratedClass\n ? elm.classList.add('hydrated')\n : BUILD.hydratedAttribute\n ? elm.setAttribute('hydrated', '')\n : undefined;\nconst serverSideConnected = (elm) => {\n const children = elm.children;\n if (children != null) {\n for (let i = 0, ii = children.length; i < ii; i++) {\n const childElm = children[i];\n if (typeof childElm.connectedCallback === 'function') {\n childElm.connectedCallback();\n }\n serverSideConnected(childElm);\n }\n }\n};\nconst getValue = (ref, propName) => getHostRef(ref).$instanceValues$.get(propName);\nconst setValue = (ref, propName, newVal, cmpMeta) => {\n // check our new property value against our internal value\n const hostRef = getHostRef(ref);\n const elm = BUILD.lazyLoad ? hostRef.$hostElement$ : ref;\n const oldVal = hostRef.$instanceValues$.get(propName);\n const flags = hostRef.$flags$;\n const instance = BUILD.lazyLoad ? hostRef.$lazyInstance$ : elm;\n newVal = parsePropertyValue(newVal, cmpMeta.$members$[propName][0]);\n // explicitly check for NaN on both sides, as `NaN === NaN` is always false\n const areBothNaN = Number.isNaN(oldVal) && Number.isNaN(newVal);\n const didValueChange = newVal !== oldVal && !areBothNaN;\n if ((!BUILD.lazyLoad || !(flags & 8 /* HOST_FLAGS.isConstructingInstance */) || oldVal === undefined) && didValueChange) {\n // gadzooks! the property's value has changed!!\n // set our new value!\n hostRef.$instanceValues$.set(propName, newVal);\n if (BUILD.isDev) {\n if (hostRef.$flags$ & 1024 /* HOST_FLAGS.devOnRender */) {\n consoleDevWarn(`The state/prop \"${propName}\" changed during rendering. This can potentially lead to infinite-loops and other bugs.`, '\\nElement', elm, '\\nNew value', newVal, '\\nOld value', oldVal);\n }\n else if (hostRef.$flags$ & 2048 /* HOST_FLAGS.devOnDidLoad */) {\n consoleDevWarn(`The state/prop \"${propName}\" changed during \"componentDidLoad()\", this triggers extra re-renders, try to setup on \"componentWillLoad()\"`, '\\nElement', elm, '\\nNew value', newVal, '\\nOld value', oldVal);\n }\n }\n if (!BUILD.lazyLoad || instance) {\n // get an array of method names of watch functions to call\n if (BUILD.watchCallback && cmpMeta.$watchers$ && flags & 128 /* HOST_FLAGS.isWatchReady */) {\n const watchMethods = cmpMeta.$watchers$[propName];\n if (watchMethods) {\n // this instance is watching for when this property changed\n watchMethods.map((watchMethodName) => {\n try {\n // fire off each of the watch methods that are watching this property\n instance[watchMethodName](newVal, oldVal, propName);\n }\n catch (e) {\n consoleError(e, elm);\n }\n });\n }\n }\n if (BUILD.updatable &&\n (flags & (2 /* HOST_FLAGS.hasRendered */ | 16 /* HOST_FLAGS.isQueuedForUpdate */)) === 2 /* HOST_FLAGS.hasRendered */) {\n if (BUILD.cmpShouldUpdate && instance.componentShouldUpdate) {\n if (instance.componentShouldUpdate(newVal, oldVal, propName) === false) {\n return;\n }\n }\n // looks like this value actually changed, so we've got work to do!\n // but only if we've already rendered, otherwise just chill out\n // queue that we need to do an update, but don't worry about queuing\n // up millions cuz this function ensures it only runs once\n scheduleUpdate(hostRef, false);\n }\n }\n }\n};\n/**\n * Attach a series of runtime constructs to a compiled Stencil component\n * constructor, including getters and setters for the `@Prop` and `@State`\n * decorators, callbacks for when attributes change, and so on.\n *\n * @param Cstr the constructor for a component that we need to process\n * @param cmpMeta metadata collected previously about the component\n * @param flags a number used to store a series of bit flags\n * @returns a reference to the same constructor passed in (but now mutated)\n */\nconst proxyComponent = (Cstr, cmpMeta, flags) => {\n if (BUILD.member && cmpMeta.$members$) {\n if (BUILD.watchCallback && Cstr.watchers) {\n cmpMeta.$watchers$ = Cstr.watchers;\n }\n // It's better to have a const than two Object.entries()\n const members = Object.entries(cmpMeta.$members$);\n const prototype = Cstr.prototype;\n members.map(([memberName, [memberFlags]]) => {\n if ((BUILD.prop || BUILD.state) &&\n (memberFlags & 31 /* MEMBER_FLAGS.Prop */ ||\n ((!BUILD.lazyLoad || flags & 2 /* PROXY_FLAGS.proxyState */) && memberFlags & 32 /* MEMBER_FLAGS.State */))) {\n // proxyComponent - prop\n Object.defineProperty(prototype, memberName, {\n get() {\n // proxyComponent, get value\n return getValue(this, memberName);\n },\n set(newValue) {\n // only during dev time\n if (BUILD.isDev) {\n const ref = getHostRef(this);\n if (\n // we are proxying the instance (not element)\n (flags & 1 /* PROXY_FLAGS.isElementConstructor */) === 0 &&\n // the element is not constructing\n (ref.$flags$ & 8 /* HOST_FLAGS.isConstructingInstance */) === 0 &&\n // the member is a prop\n (memberFlags & 31 /* MEMBER_FLAGS.Prop */) !== 0 &&\n // the member is not mutable\n (memberFlags & 1024 /* MEMBER_FLAGS.Mutable */) === 0) {\n consoleDevWarn(`@Prop() \"${memberName}\" on <${cmpMeta.$tagName$}> is immutable but was modified from within the component.\\nMore information: https://stenciljs.com/docs/properties#prop-mutability`);\n }\n }\n // proxyComponent, set value\n setValue(this, memberName, newValue, cmpMeta);\n },\n configurable: true,\n enumerable: true,\n });\n }\n else if (BUILD.lazyLoad &&\n BUILD.method &&\n flags & 1 /* PROXY_FLAGS.isElementConstructor */ &&\n memberFlags & 64 /* MEMBER_FLAGS.Method */) {\n // proxyComponent - method\n Object.defineProperty(prototype, memberName, {\n value(...args) {\n const ref = getHostRef(this);\n return ref.$onInstancePromise$.then(() => ref.$lazyInstance$[memberName](...args));\n },\n });\n }\n });\n if (BUILD.observeAttribute && (!BUILD.lazyLoad || flags & 1 /* PROXY_FLAGS.isElementConstructor */)) {\n const attrNameToPropName = new Map();\n prototype.attributeChangedCallback = function (attrName, _oldValue, newValue) {\n plt.jmp(() => {\n const propName = attrNameToPropName.get(attrName);\n // In a web component lifecycle the attributeChangedCallback runs prior to connectedCallback\n // in the case where an attribute was set inline.\n // ```html\n // <my-component some-attribute=\"some-value\"></my-component>\n // ```\n //\n // There is an edge case where a developer sets the attribute inline on a custom element and then\n // programmatically changes it before it has been upgraded as shown below:\n //\n // ```html\n // <!-- this component has _not_ been upgraded yet -->\n // <my-component id=\"test\" some-attribute=\"some-value\"></my-component>\n // <script>\n // // grab non-upgraded component\n // el = document.querySelector(\"#test\");\n // el.someAttribute = \"another-value\";\n // // upgrade component\n // customElements.define('my-component', MyComponent);\n // </script>\n // ```\n // In this case if we do not unshadow here and use the value of the shadowing property, attributeChangedCallback\n // will be called with `newValue = \"some-value\"` and will set the shadowed property (this.someAttribute = \"another-value\")\n // to the value that was set inline i.e. \"some-value\" from above example. When\n // the connectedCallback attempts to unshadow it will use \"some-value\" as the initial value rather than \"another-value\"\n //\n // The case where the attribute was NOT set inline but was not set programmatically shall be handled/unshadowed\n // by connectedCallback as this attributeChangedCallback will not fire.\n //\n // https://developers.google.com/web/fundamentals/web-components/best-practices#lazy-properties\n //\n // TODO(STENCIL-16) we should think about whether or not we actually want to be reflecting the attributes to\n // properties here given that this goes against best practices outlined here\n // https://developers.google.com/web/fundamentals/web-components/best-practices#avoid-reentrancy\n if (this.hasOwnProperty(propName)) {\n newValue = this[propName];\n delete this[propName];\n }\n else if (prototype.hasOwnProperty(propName) &&\n typeof this[propName] === 'number' &&\n this[propName] == newValue) {\n // if the propName exists on the prototype of `Cstr`, this update may be a result of Stencil using native\n // APIs to reflect props as attributes. Calls to `setAttribute(someElement, propName)` will result in\n // `propName` to be converted to a `DOMString`, which may not be what we want for other primitive props.\n return;\n }\n this[propName] = newValue === null && typeof this[propName] === 'boolean' ? false : newValue;\n });\n };\n // create an array of attributes to observe\n // and also create a map of html attribute name to js property name\n Cstr.observedAttributes = members\n .filter(([_, m]) => m[0] & 15 /* MEMBER_FLAGS.HasAttribute */) // filter to only keep props that should match attributes\n .map(([propName, m]) => {\n const attrName = m[1] || propName;\n attrNameToPropName.set(attrName, propName);\n if (BUILD.reflect && m[0] & 512 /* MEMBER_FLAGS.ReflectAttr */) {\n cmpMeta.$attrsToReflect$.push([propName, attrName]);\n }\n return attrName;\n });\n }\n }\n return Cstr;\n};\nconst initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId, Cstr) => {\n // initializeComponent\n if ((BUILD.lazyLoad || BUILD.hydrateServerSide || BUILD.style) &&\n (hostRef.$flags$ & 32 /* HOST_FLAGS.hasInitializedComponent */) === 0) {\n if (BUILD.lazyLoad || BUILD.hydrateClientSide) {\n // we haven't initialized this element yet\n hostRef.$flags$ |= 32 /* HOST_FLAGS.hasInitializedComponent */;\n // lazy loaded components\n // request the component's implementation to be\n // wired up with the host element\n Cstr = loadModule(cmpMeta, hostRef, hmrVersionId);\n if (Cstr.then) {\n // Await creates a micro-task avoid if possible\n const endLoad = uniqueTime(`st:load:${cmpMeta.$tagName$}:${hostRef.$modeName$}`, `[Stencil] Load module for <${cmpMeta.$tagName$}>`);\n Cstr = await Cstr;\n endLoad();\n }\n if ((BUILD.isDev || BUILD.isDebug) && !Cstr) {\n throw new Error(`Constructor for \"${cmpMeta.$tagName$}#${hostRef.$modeName$}\" was not found`);\n }\n if (BUILD.member && !Cstr.isProxied) {\n // we've never proxied this Constructor before\n // let's add the getters/setters to its prototype before\n // the first time we create an instance of the implementation\n if (BUILD.watchCallback) {\n cmpMeta.$watchers$ = Cstr.watchers;\n }\n proxyComponent(Cstr, cmpMeta, 2 /* PROXY_FLAGS.proxyState */);\n Cstr.isProxied = true;\n }\n const endNewInstance = createTime('createInstance', cmpMeta.$tagName$);\n // ok, time to construct the instance\n // but let's keep track of when we start and stop\n // so that the getters/setters don't incorrectly step on data\n if (BUILD.member) {\n hostRef.$flags$ |= 8 /* HOST_FLAGS.isConstructingInstance */;\n }\n // construct the lazy-loaded component implementation\n // passing the hostRef is very important during\n // construction in order to directly wire together the\n // host element and the lazy-loaded instance\n try {\n new Cstr(hostRef);\n }\n catch (e) {\n consoleError(e);\n }\n if (BUILD.member) {\n hostRef.$flags$ &= ~8 /* HOST_FLAGS.isConstructingInstance */;\n }\n if (BUILD.watchCallback) {\n hostRef.$flags$ |= 128 /* HOST_FLAGS.isWatchReady */;\n }\n endNewInstance();\n fireConnectedCallback(hostRef.$lazyInstance$);\n }\n else {\n // sync constructor component\n Cstr = elm.constructor;\n hostRef.$flags$ |= 32 /* HOST_FLAGS.hasInitializedComponent */;\n // wait for the CustomElementRegistry to mark the component as ready before setting `isWatchReady`. Otherwise,\n // watchers may fire prematurely if `customElements.get()`/`customElements.whenDefined()` resolves _before_\n // Stencil has completed instantiating the component.\n customElements.whenDefined(cmpMeta.$tagName$).then(() => (hostRef.$flags$ |= 128 /* HOST_FLAGS.isWatchReady */));\n }\n if (BUILD.style && Cstr.style) {\n // this component has styles but we haven't registered them yet\n let style = Cstr.style;\n if (BUILD.mode && typeof style !== 'string') {\n style = style[(hostRef.$modeName$ = computeMode(elm))];\n if (BUILD.hydrateServerSide && hostRef.$modeName$) {\n elm.setAttribute('s-mode', hostRef.$modeName$);\n }\n }\n const scopeId = getScopeId(cmpMeta, hostRef.$modeName$);\n if (!styles.has(scopeId)) {\n const endRegisterStyles = createTime('registerStyles', cmpMeta.$tagName$);\n if (!BUILD.hydrateServerSide &&\n BUILD.shadowDom &&\n BUILD.shadowDomShim &&\n cmpMeta.$flags$ & 8 /* CMP_FLAGS.needsShadowDomShim */) {\n style = await import('./shadow-css.js').then((m) => m.scopeCss(style, scopeId, false));\n }\n registerStyle(scopeId, style, !!(cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */));\n endRegisterStyles();\n }\n }\n }\n // we've successfully created a lazy instance\n const ancestorComponent = hostRef.$ancestorComponent$;\n const schedule = () => scheduleUpdate(hostRef, true);\n if (BUILD.asyncLoading && ancestorComponent && ancestorComponent['s-rc']) {\n // this is the initial load and this component it has an ancestor component\n // but the ancestor component has NOT fired its will update lifecycle yet\n // so let's just cool our jets and wait for the ancestor to continue first\n // this will get fired off when the ancestor component\n // finally gets around to rendering its lazy self\n // fire off the initial update\n ancestorComponent['s-rc'].push(schedule);\n }\n else {\n schedule();\n }\n};\nconst fireConnectedCallback = (instance) => {\n if (BUILD.lazyLoad && BUILD.connectedCallback) {\n safeCall(instance, 'connectedCallback');\n }\n};\nconst connectedCallback = (elm) => {\n if ((plt.$flags$ & 1 /* PLATFORM_FLAGS.isTmpDisconnected */) === 0) {\n const hostRef = getHostRef(elm);\n const cmpMeta = hostRef.$cmpMeta$;\n const endConnected = createTime('connectedCallback', cmpMeta.$tagName$);\n if (BUILD.hostListenerTargetParent) {\n // only run if we have listeners being attached to a parent\n addHostEventListeners(elm, hostRef, cmpMeta.$listeners$, true);\n }\n if (!(hostRef.$flags$ & 1 /* HOST_FLAGS.hasConnected */)) {\n // first time this component has connected\n hostRef.$flags$ |= 1 /* HOST_FLAGS.hasConnected */;\n let hostId;\n if (BUILD.hydrateClientSide) {\n hostId = elm.getAttribute(HYDRATE_ID);\n if (hostId) {\n if (BUILD.shadowDom && supportsShadow && cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) {\n const scopeId = BUILD.mode\n ? addStyle(elm.shadowRoot, cmpMeta, elm.getAttribute('s-mode'))\n : addStyle(elm.shadowRoot, cmpMeta);\n elm.classList.remove(scopeId + '-h', scopeId + '-s');\n }\n initializeClientHydrate(elm, cmpMeta.$tagName$, hostId, hostRef);\n }\n }\n if (BUILD.slotRelocation && !hostId) {\n // initUpdate\n // if the slot polyfill is required we'll need to put some nodes\n // in here to act as original content anchors as we move nodes around\n // host element has been connected to the DOM\n if (BUILD.hydrateServerSide ||\n ((BUILD.slot || BUILD.shadowDom) &&\n cmpMeta.$flags$ & (4 /* CMP_FLAGS.hasSlotRelocation */ | 8 /* CMP_FLAGS.needsShadowDomShim */))) {\n setContentReference(elm);\n }\n }\n if (BUILD.asyncLoading) {\n // find the first ancestor component (if there is one) and register\n // this component as one of the actively loading child components for its ancestor\n let ancestorComponent = elm;\n while ((ancestorComponent = ancestorComponent.parentNode || ancestorComponent.host)) {\n // climb up the ancestors looking for the first\n // component that hasn't finished its lifecycle update yet\n if ((BUILD.hydrateClientSide &&\n ancestorComponent.nodeType === 1 /* NODE_TYPE.ElementNode */ &&\n ancestorComponent.hasAttribute('s-id') &&\n ancestorComponent['s-p']) ||\n ancestorComponent['s-p']) {\n // we found this components first ancestor component\n // keep a reference to this component's ancestor component\n attachToAncestor(hostRef, (hostRef.$ancestorComponent$ = ancestorComponent));\n break;\n }\n }\n }\n // Lazy properties\n // https://developers.google.com/web/fundamentals/web-components/best-practices#lazy-properties\n if (BUILD.prop && !BUILD.hydrateServerSide && cmpMeta.$members$) {\n Object.entries(cmpMeta.$members$).map(([memberName, [memberFlags]]) => {\n if (memberFlags & 31 /* MEMBER_FLAGS.Prop */ && elm.hasOwnProperty(memberName)) {\n const value = elm[memberName];\n delete elm[memberName];\n elm[memberName] = value;\n }\n });\n }\n if (BUILD.initializeNextTick) {\n // connectedCallback, taskQueue, initialLoad\n // angular sets attribute AFTER connectCallback\n // https://github.com/angular/angular/issues/18909\n // https://github.com/angular/angular/issues/19940\n nextTick(() => initializeComponent(elm, hostRef, cmpMeta));\n }\n else {\n initializeComponent(elm, hostRef, cmpMeta);\n }\n }\n else {\n // not the first time this has connected\n // reattach any event listeners to the host\n // since they would have been removed when disconnected\n addHostEventListeners(elm, hostRef, cmpMeta.$listeners$, false);\n // fire off connectedCallback() on component instance\n fireConnectedCallback(hostRef.$lazyInstance$);\n }\n endConnected();\n }\n};\nconst setContentReference = (elm) => {\n // only required when we're NOT using native shadow dom (slot)\n // or this browser doesn't support native shadow dom\n // and this host element was NOT created with SSR\n // let's pick out the inner content for slot projection\n // create a node to represent where the original\n // content was first placed, which is useful later on\n const contentRefElm = (elm['s-cr'] = doc.createComment(BUILD.isDebug ? `content-ref (host=${elm.localName})` : ''));\n contentRefElm['s-cn'] = true;\n elm.insertBefore(contentRefElm, elm.firstChild);\n};\nconst disconnectedCallback = (elm) => {\n if ((plt.$flags$ & 1 /* PLATFORM_FLAGS.isTmpDisconnected */) === 0) {\n const hostRef = getHostRef(elm);\n const instance = BUILD.lazyLoad ? hostRef.$lazyInstance$ : elm;\n if (BUILD.hostListener) {\n if (hostRef.$rmListeners$) {\n hostRef.$rmListeners$.map((rmListener) => rmListener());\n hostRef.$rmListeners$ = undefined;\n }\n }\n // clear CSS var-shim tracking\n if (BUILD.cssVarShim && plt.$cssShim$) {\n plt.$cssShim$.removeHost(elm);\n }\n if (BUILD.lazyLoad && BUILD.disconnectedCallback) {\n safeCall(instance, 'disconnectedCallback');\n }\n if (BUILD.cmpDidUnload) {\n safeCall(instance, 'componentDidUnload');\n }\n }\n};\nconst defineCustomElement = (Cstr, compactMeta) => {\n customElements.define(compactMeta[1], proxyCustomElement(Cstr, compactMeta));\n};\nconst proxyCustomElement = (Cstr, compactMeta) => {\n const cmpMeta = {\n $flags$: compactMeta[0],\n $tagName$: compactMeta[1],\n };\n if (BUILD.member) {\n cmpMeta.$members$ = compactMeta[2];\n }\n if (BUILD.hostListener) {\n cmpMeta.$listeners$ = compactMeta[3];\n }\n if (BUILD.watchCallback) {\n cmpMeta.$watchers$ = Cstr.$watchers$;\n }\n if (BUILD.reflect) {\n cmpMeta.$attrsToReflect$ = [];\n }\n if (BUILD.shadowDom && !supportsShadow && cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) {\n cmpMeta.$flags$ |= 8 /* CMP_FLAGS.needsShadowDomShim */;\n }\n const originalConnectedCallback = Cstr.prototype.connectedCallback;\n const originalDisconnectedCallback = Cstr.prototype.disconnectedCallback;\n Object.assign(Cstr.prototype, {\n __registerHost() {\n registerHost(this, cmpMeta);\n },\n connectedCallback() {\n connectedCallback(this);\n if (BUILD.connectedCallback && originalConnectedCallback) {\n originalConnectedCallback.call(this);\n }\n },\n disconnectedCallback() {\n disconnectedCallback(this);\n if (BUILD.disconnectedCallback && originalDisconnectedCallback) {\n originalDisconnectedCallback.call(this);\n }\n },\n __attachShadow() {\n if (supportsShadow) {\n if (BUILD.shadowDelegatesFocus) {\n this.attachShadow({\n mode: 'open',\n delegatesFocus: !!(cmpMeta.$flags$ & 16 /* CMP_FLAGS.shadowDelegatesFocus */),\n });\n }\n else {\n this.attachShadow({ mode: 'open' });\n }\n }\n else {\n this.shadowRoot = this;\n }\n },\n });\n Cstr.is = cmpMeta.$tagName$;\n return proxyComponent(Cstr, cmpMeta, 1 /* PROXY_FLAGS.isElementConstructor */ | 2 /* PROXY_FLAGS.proxyState */);\n};\nconst forceModeUpdate = (elm) => {\n if (BUILD.style && BUILD.mode && !BUILD.lazyLoad) {\n const mode = computeMode(elm);\n const hostRef = getHostRef(elm);\n if (hostRef.$modeName$ !== mode) {\n const cmpMeta = hostRef.$cmpMeta$;\n const oldScopeId = elm['s-sc'];\n const scopeId = getScopeId(cmpMeta, mode);\n const style = elm.constructor.style[mode];\n const flags = cmpMeta.$flags$;\n if (style) {\n if (!styles.has(scopeId)) {\n registerStyle(scopeId, style, !!(flags & 1 /* CMP_FLAGS.shadowDomEncapsulation */));\n }\n hostRef.$modeName$ = mode;\n elm.classList.remove(oldScopeId + '-h', oldScopeId + '-s');\n attachStyles(hostRef);\n forceUpdate(elm);\n }\n }\n }\n};\nconst patchCloneNode = (HostElementPrototype) => {\n const orgCloneNode = HostElementPrototype.cloneNode;\n HostElementPrototype.cloneNode = function (deep) {\n const srcNode = this;\n const isShadowDom = BUILD.shadowDom ? srcNode.shadowRoot && supportsShadow : false;\n const clonedNode = orgCloneNode.call(srcNode, isShadowDom ? deep : false);\n if (BUILD.slot && !isShadowDom && deep) {\n let i = 0;\n let slotted, nonStencilNode;\n const stencilPrivates = [\n 's-id',\n 's-cr',\n 's-lr',\n 's-rc',\n 's-sc',\n 's-p',\n 's-cn',\n 's-sr',\n 's-sn',\n 's-hn',\n 's-ol',\n 's-nr',\n 's-si',\n ];\n for (; i < srcNode.childNodes.length; i++) {\n slotted = srcNode.childNodes[i]['s-nr'];\n nonStencilNode = stencilPrivates.every((privateField) => !srcNode.childNodes[i][privateField]);\n if (slotted) {\n if (BUILD.appendChildSlotFix && clonedNode.__appendChild) {\n clonedNode.__appendChild(slotted.cloneNode(true));\n }\n else {\n clonedNode.appendChild(slotted.cloneNode(true));\n }\n }\n if (nonStencilNode) {\n clonedNode.appendChild(srcNode.childNodes[i].cloneNode(true));\n }\n }\n }\n return clonedNode;\n };\n};\nconst patchSlotAppendChild = (HostElementPrototype) => {\n HostElementPrototype.__appendChild = HostElementPrototype.appendChild;\n HostElementPrototype.appendChild = function (newChild) {\n const slotName = (newChild['s-sn'] = getSlotName(newChild));\n const slotNode = getHostSlotNode(this.childNodes, slotName);\n if (slotNode) {\n const slotChildNodes = getHostSlotChildNodes(slotNode, slotName);\n const appendAfter = slotChildNodes[slotChildNodes.length - 1];\n return appendAfter.parentNode.insertBefore(newChild, appendAfter.nextSibling);\n }\n return this.__appendChild(newChild);\n };\n};\n/**\n * Patches the text content of an unnamed slotted node inside a scoped component\n * @param hostElementPrototype the `Element` to be patched\n * @param cmpMeta component runtime metadata used to determine if the component should be patched or not\n */\nconst patchTextContent = (hostElementPrototype, cmpMeta) => {\n if (BUILD.scoped && cmpMeta.$flags$ & 2 /* CMP_FLAGS.scopedCssEncapsulation */) {\n const descriptor = Object.getOwnPropertyDescriptor(Node.prototype, 'textContent');\n Object.defineProperty(hostElementPrototype, '__textContent', descriptor);\n Object.defineProperty(hostElementPrototype, 'textContent', {\n get() {\n var _a;\n // get the 'default slot', which would be the first slot in a shadow tree (if we were using one), whose name is\n // the empty string\n const slotNode = getHostSlotNode(this.childNodes, '');\n // when a slot node is found, the textContent _may_ be found in the next sibling (text) node, depending on how\n // nodes were reordered during the vdom render. first try to get the text content from the sibling.\n if (((_a = slotNode === null || slotNode === void 0 ? void 0 : slotNode.nextSibling) === null || _a === void 0 ? void 0 : _a.nodeType) === 3 /* NODE_TYPES.TEXT_NODE */) {\n return slotNode.nextSibling.textContent;\n }\n else if (slotNode) {\n return slotNode.textContent;\n }\n else {\n // fallback to the original implementation\n return this.__textContent;\n }\n },\n set(value) {\n var _a;\n // get the 'default slot', which would be the first slot in a shadow tree (if we were using one), whose name is\n // the empty string\n const slotNode = getHostSlotNode(this.childNodes, '');\n // when a slot node is found, the textContent _may_ need to be placed in the next sibling (text) node,\n // depending on how nodes were reordered during the vdom render. first try to set the text content on the\n // sibling.\n if (((_a = slotNode === null || slotNode === void 0 ? void 0 : slotNode.nextSibling) === null || _a === void 0 ? void 0 : _a.nodeType) === 3 /* NODE_TYPES.TEXT_NODE */) {\n slotNode.nextSibling.textContent = value;\n }\n else if (slotNode) {\n slotNode.textContent = value;\n }\n else {\n // we couldn't find a slot, but that doesn't mean that there isn't one. if this check ran before the DOM\n // loaded, we could have missed it. check for a content reference element on the scoped component and insert\n // it there\n this.__textContent = value;\n const contentRefElm = this['s-cr'];\n if (contentRefElm) {\n this.insertBefore(contentRefElm, this.firstChild);\n }\n }\n },\n });\n }\n};\nconst patchChildSlotNodes = (elm, cmpMeta) => {\n class FakeNodeList extends Array {\n item(n) {\n return this[n];\n }\n }\n if (cmpMeta.$flags$ & 8 /* CMP_FLAGS.needsShadowDomShim */) {\n const childNodesFn = elm.__lookupGetter__('childNodes');\n Object.defineProperty(elm, 'children', {\n get() {\n return this.childNodes.map((n) => n.nodeType === 1);\n },\n });\n Object.defineProperty(elm, 'childElementCount', {\n get() {\n return elm.children.length;\n },\n });\n Object.defineProperty(elm, 'childNodes', {\n get() {\n const childNodes = childNodesFn.call(this);\n if ((plt.$flags$ & 1 /* PLATFORM_FLAGS.isTmpDisconnected */) === 0 &&\n getHostRef(this).$flags$ & 2 /* HOST_FLAGS.hasRendered */) {\n const result = new FakeNodeList();\n for (let i = 0; i < childNodes.length; i++) {\n const slot = childNodes[i]['s-nr'];\n if (slot) {\n result.push(slot);\n }\n }\n return result;\n }\n return FakeNodeList.from(childNodes);\n },\n });\n }\n};\nconst getSlotName = (node) => node['s-sn'] || (node.nodeType === 1 && node.getAttribute('slot')) || '';\n/**\n * Recursively searches a series of child nodes for a slot with the provided name.\n * @param childNodes the nodes to search for a slot with a specific name.\n * @param slotName the name of the slot to match on.\n * @returns a reference to the slot node that matches the provided name, `null` otherwise\n */\nconst getHostSlotNode = (childNodes, slotName) => {\n let i = 0;\n let childNode;\n for (; i < childNodes.length; i++) {\n childNode = childNodes[i];\n if (childNode['s-sr'] && childNode['s-sn'] === slotName) {\n return childNode;\n }\n childNode = getHostSlotNode(childNode.childNodes, slotName);\n if (childNode) {\n return childNode;\n }\n }\n return null;\n};\nconst getHostSlotChildNodes = (n, slotName) => {\n const childNodes = [n];\n while ((n = n.nextSibling) && n['s-sn'] === slotName) {\n childNodes.push(n);\n }\n return childNodes;\n};\nconst hmrStart = (elm, cmpMeta, hmrVersionId) => {\n // ¯\\_(ツ)_/¯\n const hostRef = getHostRef(elm);\n // reset state flags to only have been connected\n hostRef.$flags$ = 1 /* HOST_FLAGS.hasConnected */;\n // TODO\n // detatch any event listeners that may have been added\n // because we're not passing an exact event name it'll\n // remove all of this element's event, which is good\n // create a callback for when this component finishes hmr\n elm['s-hmr-load'] = () => {\n // finished hmr for this element\n delete elm['s-hmr-load'];\n };\n // re-initialize the component\n initializeComponent(elm, hostRef, cmpMeta, hmrVersionId);\n};\nconst bootstrapLazy = (lazyBundles, options = {}) => {\n if (BUILD.profile && performance.mark) {\n performance.mark('st:app:start');\n }\n installDevTools();\n const endBootstrap = createTime('bootstrapLazy');\n const cmpTags = [];\n const exclude = options.exclude || [];\n const customElements = win.customElements;\n const head = doc.head;\n const metaCharset = /*@__PURE__*/ head.querySelector('meta[charset]');\n const visibilityStyle = /*@__PURE__*/ doc.createElement('style');\n const deferredConnectedCallbacks = [];\n const styles = /*@__PURE__*/ doc.querySelectorAll(`[${HYDRATED_STYLE_ID}]`);\n let appLoadFallback;\n let isBootstrapping = true;\n let i = 0;\n Object.assign(plt, options);\n plt.$resourcesUrl$ = new URL(options.resourcesUrl || './', doc.baseURI).href;\n if (BUILD.asyncQueue) {\n if (options.syncQueue) {\n plt.$flags$ |= 4 /* PLATFORM_FLAGS.queueSync */;\n }\n }\n if (BUILD.hydrateClientSide) {\n // If the app is already hydrated there is not point to disable the\n // async queue. This will improve the first input delay\n plt.$flags$ |= 2 /* PLATFORM_FLAGS.appLoaded */;\n }\n if (BUILD.hydrateClientSide && BUILD.shadowDom) {\n for (; i < styles.length; i++) {\n registerStyle(styles[i].getAttribute(HYDRATED_STYLE_ID), convertScopedToShadow(styles[i].innerHTML), true);\n }\n }\n lazyBundles.map((lazyBundle) => {\n lazyBundle[1].map((compactMeta) => {\n const cmpMeta = {\n $flags$: compactMeta[0],\n $tagName$: compactMeta[1],\n $members$: compactMeta[2],\n $listeners$: compactMeta[3],\n };\n if (BUILD.member) {\n cmpMeta.$members$ = compactMeta[2];\n }\n if (BUILD.hostListener) {\n cmpMeta.$listeners$ = compactMeta[3];\n }\n if (BUILD.reflect) {\n cmpMeta.$attrsToReflect$ = [];\n }\n if (BUILD.watchCallback) {\n cmpMeta.$watchers$ = {};\n }\n if (BUILD.shadowDom && !supportsShadow && cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) {\n cmpMeta.$flags$ |= 8 /* CMP_FLAGS.needsShadowDomShim */;\n }\n const tagName = BUILD.transformTagName && options.transformTagName\n ? options.transformTagName(cmpMeta.$tagName$)\n : cmpMeta.$tagName$;\n const HostElement = class extends HTMLElement {\n // StencilLazyHost\n constructor(self) {\n // @ts-ignore\n super(self);\n self = this;\n registerHost(self, cmpMeta);\n if (BUILD.shadowDom && cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) {\n // this component is using shadow dom\n // and this browser supports shadow dom\n // add the read-only property \"shadowRoot\" to the host element\n // adding the shadow root build conditionals to minimize runtime\n if (supportsShadow) {\n if (BUILD.shadowDelegatesFocus) {\n self.attachShadow({\n mode: 'open',\n delegatesFocus: !!(cmpMeta.$flags$ & 16 /* CMP_FLAGS.shadowDelegatesFocus */),\n });\n }\n else {\n self.attachShadow({ mode: 'open' });\n }\n }\n else if (!BUILD.hydrateServerSide && !('shadowRoot' in self)) {\n self.shadowRoot = self;\n }\n }\n if (BUILD.slotChildNodesFix) {\n patchChildSlotNodes(self, cmpMeta);\n }\n }\n connectedCallback() {\n if (appLoadFallback) {\n clearTimeout(appLoadFallback);\n appLoadFallback = null;\n }\n if (isBootstrapping) {\n // connectedCallback will be processed once all components have been registered\n deferredConnectedCallbacks.push(this);\n }\n else {\n plt.jmp(() => connectedCallback(this));\n }\n }\n disconnectedCallback() {\n plt.jmp(() => disconnectedCallback(this));\n }\n componentOnReady() {\n return getHostRef(this).$onReadyPromise$;\n }\n };\n if (BUILD.cloneNodeFix) {\n patchCloneNode(HostElement.prototype);\n }\n if (BUILD.appendChildSlotFix) {\n patchSlotAppendChild(HostElement.prototype);\n }\n if (BUILD.hotModuleReplacement) {\n HostElement.prototype['s-hmr'] = function (hmrVersionId) {\n hmrStart(this, cmpMeta, hmrVersionId);\n };\n }\n if (BUILD.scopedSlotTextContentFix) {\n patchTextContent(HostElement.prototype, cmpMeta);\n }\n cmpMeta.$lazyBundleId$ = lazyBundle[0];\n if (!exclude.includes(tagName) && !customElements.get(tagName)) {\n cmpTags.push(tagName);\n customElements.define(tagName, proxyComponent(HostElement, cmpMeta, 1 /* PROXY_FLAGS.isElementConstructor */));\n }\n });\n });\n if (BUILD.invisiblePrehydration && (BUILD.hydratedClass || BUILD.hydratedAttribute)) {\n visibilityStyle.innerHTML = cmpTags + HYDRATED_CSS;\n visibilityStyle.setAttribute('data-styles', '');\n head.insertBefore(visibilityStyle, metaCharset ? metaCharset.nextSibling : head.firstChild);\n }\n // Process deferred connectedCallbacks now all components have been registered\n isBootstrapping = false;\n if (deferredConnectedCallbacks.length) {\n deferredConnectedCallbacks.map((host) => host.connectedCallback());\n }\n else {\n if (BUILD.profile) {\n plt.jmp(() => (appLoadFallback = setTimeout(appDidLoad, 30, 'timeout')));\n }\n else {\n plt.jmp(() => (appLoadFallback = setTimeout(appDidLoad, 30)));\n }\n }\n // Fallback appLoad event\n endBootstrap();\n};\nconst getConnect = (_ref, tagName) => {\n const componentOnReady = () => {\n let elm = doc.querySelector(tagName);\n if (!elm) {\n elm = doc.createElement(tagName);\n doc.body.appendChild(elm);\n }\n return typeof elm.componentOnReady === 'function' ? elm.componentOnReady() : Promise.resolve(elm);\n };\n const create = (...args) => {\n return componentOnReady().then((el) => el.create(...args));\n };\n return {\n create,\n componentOnReady,\n };\n};\nconst getContext = (_elm, context) => {\n if (context in Context) {\n return Context[context];\n }\n else if (context === 'window') {\n return win;\n }\n else if (context === 'document') {\n return doc;\n }\n else if (context === 'isServer' || context === 'isPrerender') {\n return BUILD.hydrateServerSide ? true : false;\n }\n else if (context === 'isClient') {\n return BUILD.hydrateServerSide ? false : true;\n }\n else if (context === 'resourcesUrl' || context === 'publicPath') {\n return getAssetPath('.');\n }\n else if (context === 'queue') {\n return {\n write: writeTask,\n read: readTask,\n tick: {\n then(cb) {\n return nextTick(cb);\n },\n },\n };\n }\n return undefined;\n};\nconst Fragment = (_, children) => children;\nconst addHostEventListeners = (elm, hostRef, listeners, attachParentListeners) => {\n if (BUILD.hostListener && listeners) {\n // this is called immediately within the element's constructor\n // initialize our event listeners on the host element\n // we do this now so that we can listen to events that may\n // have fired even before the instance is ready\n if (BUILD.hostListenerTargetParent) {\n // this component may have event listeners that should be attached to the parent\n if (attachParentListeners) {\n // this is being ran from within the connectedCallback\n // which is important so that we know the host element actually has a parent element\n // filter out the listeners to only have the ones that ARE being attached to the parent\n listeners = listeners.filter(([flags]) => flags & 32 /* LISTENER_FLAGS.TargetParent */);\n }\n else {\n // this is being ran from within the component constructor\n // everything BUT the parent element listeners should be attached at this time\n // filter out the listeners that are NOT being attached to the parent\n listeners = listeners.filter(([flags]) => !(flags & 32 /* LISTENER_FLAGS.TargetParent */));\n }\n }\n listeners.map(([flags, name, method]) => {\n const target = BUILD.hostListenerTarget ? getHostListenerTarget(elm, flags) : elm;\n const handler = hostListenerProxy(hostRef, method);\n const opts = hostListenerOpts(flags);\n plt.ael(target, name, handler, opts);\n (hostRef.$rmListeners$ = hostRef.$rmListeners$ || []).push(() => plt.rel(target, name, handler, opts));\n });\n }\n};\nconst hostListenerProxy = (hostRef, methodName) => (ev) => {\n try {\n if (BUILD.lazyLoad) {\n if (hostRef.$flags$ & 256 /* HOST_FLAGS.isListenReady */) {\n // instance is ready, let's call it's member method for this event\n hostRef.$lazyInstance$[methodName](ev);\n }\n else {\n (hostRef.$queuedListeners$ = hostRef.$queuedListeners$ || []).push([methodName, ev]);\n }\n }\n else {\n hostRef.$hostElement$[methodName](ev);\n }\n }\n catch (e) {\n consoleError(e);\n }\n};\nconst getHostListenerTarget = (elm, flags) => {\n if (BUILD.hostListenerTargetDocument && flags & 4 /* LISTENER_FLAGS.TargetDocument */)\n return doc;\n if (BUILD.hostListenerTargetWindow && flags & 8 /* LISTENER_FLAGS.TargetWindow */)\n return win;\n if (BUILD.hostListenerTargetBody && flags & 16 /* LISTENER_FLAGS.TargetBody */)\n return doc.body;\n if (BUILD.hostListenerTargetParent && flags & 32 /* LISTENER_FLAGS.TargetParent */)\n return elm.parentElement;\n return elm;\n};\n// prettier-ignore\nconst hostListenerOpts = (flags) => supportsListenerOptions\n ? ({\n passive: (flags & 1 /* LISTENER_FLAGS.Passive */) !== 0,\n capture: (flags & 2 /* LISTENER_FLAGS.Capture */) !== 0,\n })\n : (flags & 2 /* LISTENER_FLAGS.Capture */) !== 0;\nconst setPlatformOptions = (opts) => Object.assign(plt, opts);\nconst insertVdomAnnotations = (doc, staticComponents) => {\n if (doc != null) {\n const docData = {\n hostIds: 0,\n rootLevelIds: 0,\n staticComponents: new Set(staticComponents),\n };\n const orgLocationNodes = [];\n parseVNodeAnnotations(doc, doc.body, docData, orgLocationNodes);\n orgLocationNodes.forEach((orgLocationNode) => {\n if (orgLocationNode != null) {\n const nodeRef = orgLocationNode['s-nr'];\n let hostId = nodeRef['s-host-id'];\n let nodeId = nodeRef['s-node-id'];\n let childId = `${hostId}.${nodeId}`;\n if (hostId == null) {\n hostId = 0;\n docData.rootLevelIds++;\n nodeId = docData.rootLevelIds;\n childId = `${hostId}.${nodeId}`;\n if (nodeRef.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n nodeRef.setAttribute(HYDRATE_CHILD_ID, childId);\n }\n else if (nodeRef.nodeType === 3 /* NODE_TYPE.TextNode */) {\n if (hostId === 0) {\n const textContent = nodeRef.nodeValue.trim();\n if (textContent === '') {\n // useless whitespace node at the document root\n orgLocationNode.remove();\n return;\n }\n }\n const commentBeforeTextNode = doc.createComment(childId);\n commentBeforeTextNode.nodeValue = `${TEXT_NODE_ID}.${childId}`;\n nodeRef.parentNode.insertBefore(commentBeforeTextNode, nodeRef);\n }\n }\n let orgLocationNodeId = `${ORG_LOCATION_ID}.${childId}`;\n const orgLocationParentNode = orgLocationNode.parentElement;\n if (orgLocationParentNode) {\n if (orgLocationParentNode['s-en'] === '') {\n // ending with a \".\" means that the parent element\n // of this node's original location is a SHADOW dom element\n // and this node is apart of the root level light dom\n orgLocationNodeId += `.`;\n }\n else if (orgLocationParentNode['s-en'] === 'c') {\n // ending with a \".c\" means that the parent element\n // of this node's original location is a SCOPED element\n // and this node is apart of the root level light dom\n orgLocationNodeId += `.c`;\n }\n }\n orgLocationNode.nodeValue = orgLocationNodeId;\n }\n });\n }\n};\nconst parseVNodeAnnotations = (doc, node, docData, orgLocationNodes) => {\n if (node == null) {\n return;\n }\n if (node['s-nr'] != null) {\n orgLocationNodes.push(node);\n }\n if (node.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n node.childNodes.forEach((childNode) => {\n const hostRef = getHostRef(childNode);\n if (hostRef != null && !docData.staticComponents.has(childNode.nodeName.toLowerCase())) {\n const cmpData = {\n nodeIds: 0,\n };\n insertVNodeAnnotations(doc, childNode, hostRef.$vnode$, docData, cmpData);\n }\n parseVNodeAnnotations(doc, childNode, docData, orgLocationNodes);\n });\n }\n};\nconst insertVNodeAnnotations = (doc, hostElm, vnode, docData, cmpData) => {\n if (vnode != null) {\n const hostId = ++docData.hostIds;\n hostElm.setAttribute(HYDRATE_ID, hostId);\n if (hostElm['s-cr'] != null) {\n hostElm['s-cr'].nodeValue = `${CONTENT_REF_ID}.${hostId}`;\n }\n if (vnode.$children$ != null) {\n const depth = 0;\n vnode.$children$.forEach((vnodeChild, index) => {\n insertChildVNodeAnnotations(doc, vnodeChild, cmpData, hostId, depth, index);\n });\n }\n if (hostElm && vnode && vnode.$elm$ && !hostElm.hasAttribute('c-id')) {\n const parent = hostElm.parentElement;\n if (parent && parent.childNodes) {\n const parentChildNodes = Array.from(parent.childNodes);\n const comment = parentChildNodes.find((node) => node.nodeType === 8 /* NODE_TYPE.CommentNode */ && node['s-sr']);\n if (comment) {\n const index = parentChildNodes.indexOf(hostElm) - 1;\n vnode.$elm$.setAttribute(HYDRATE_CHILD_ID, `${comment['s-host-id']}.${comment['s-node-id']}.0.${index}`);\n }\n }\n }\n }\n};\nconst insertChildVNodeAnnotations = (doc, vnodeChild, cmpData, hostId, depth, index) => {\n const childElm = vnodeChild.$elm$;\n if (childElm == null) {\n return;\n }\n const nodeId = cmpData.nodeIds++;\n const childId = `${hostId}.${nodeId}.${depth}.${index}`;\n childElm['s-host-id'] = hostId;\n childElm['s-node-id'] = nodeId;\n if (childElm.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n childElm.setAttribute(HYDRATE_CHILD_ID, childId);\n }\n else if (childElm.nodeType === 3 /* NODE_TYPE.TextNode */) {\n const parentNode = childElm.parentNode;\n const nodeName = parentNode.nodeName;\n if (nodeName !== 'STYLE' && nodeName !== 'SCRIPT') {\n const textNodeId = `${TEXT_NODE_ID}.${childId}`;\n const commentBeforeTextNode = doc.createComment(textNodeId);\n parentNode.insertBefore(commentBeforeTextNode, childElm);\n }\n }\n else if (childElm.nodeType === 8 /* NODE_TYPE.CommentNode */) {\n if (childElm['s-sr']) {\n const slotName = childElm['s-sn'] || '';\n const slotNodeId = `${SLOT_NODE_ID}.${childId}.${slotName}`;\n childElm.nodeValue = slotNodeId;\n }\n }\n if (vnodeChild.$children$ != null) {\n const childDepth = depth + 1;\n vnodeChild.$children$.forEach((vnode, index) => {\n insertChildVNodeAnnotations(doc, vnode, cmpData, hostId, childDepth, index);\n });\n }\n};\nconst hostRefs = /*@__PURE__*/ new WeakMap();\nconst getHostRef = (ref) => hostRefs.get(ref);\nconst registerInstance = (lazyInstance, hostRef) => hostRefs.set((hostRef.$lazyInstance$ = lazyInstance), hostRef);\nconst registerHost = (elm, cmpMeta) => {\n const hostRef = {\n $flags$: 0,\n $hostElement$: elm,\n $cmpMeta$: cmpMeta,\n $instanceValues$: new Map(),\n };\n if (BUILD.isDev) {\n hostRef.$renderCount$ = 0;\n }\n if (BUILD.method && BUILD.lazyLoad) {\n hostRef.$onInstancePromise$ = new Promise((r) => (hostRef.$onInstanceResolve$ = r));\n }\n if (BUILD.asyncLoading) {\n hostRef.$onReadyPromise$ = new Promise((r) => (hostRef.$onReadyResolve$ = r));\n elm['s-p'] = [];\n elm['s-rc'] = [];\n }\n addHostEventListeners(elm, hostRef, cmpMeta.$listeners$, false);\n return hostRefs.set(elm, hostRef);\n};\nconst isMemberInElement = (elm, memberName) => memberName in elm;\nconst consoleError = (e, el) => (customError || console.error)(e, el);\nconst STENCIL_DEV_MODE = BUILD.isTesting\n ? ['STENCIL:'] // E2E testing\n : [\n '%cstencil',\n 'color: white;background:#4c47ff;font-weight: bold; font-size:10px; padding:2px 6px; border-radius: 5px',\n ];\nconst consoleDevError = (...m) => console.error(...STENCIL_DEV_MODE, ...m);\nconst consoleDevWarn = (...m) => console.warn(...STENCIL_DEV_MODE, ...m);\nconst consoleDevInfo = (...m) => console.info(...STENCIL_DEV_MODE, ...m);\nconst setErrorHandler = (handler) => (customError = handler);\nconst cmpModules = /*@__PURE__*/ new Map();\nconst loadModule = (cmpMeta, hostRef, hmrVersionId) => {\n // loadModuleImport\n const exportName = cmpMeta.$tagName$.replace(/-/g, '_');\n const bundleId = cmpMeta.$lazyBundleId$;\n if (BUILD.isDev && typeof bundleId !== 'string') {\n consoleDevError(`Trying to lazily load component <${cmpMeta.$tagName$}> with style mode \"${hostRef.$modeName$}\", but it does not exist.`);\n return undefined;\n }\n const module = !BUILD.hotModuleReplacement ? cmpModules.get(bundleId) : false;\n if (module) {\n return module[exportName];\n }\n /*!__STENCIL_STATIC_IMPORT_SWITCH__*/\n return import(\n /* @vite-ignore */\n /* webpackInclude: /\\.entry\\.js$/ */\n /* webpackExclude: /\\.system\\.entry\\.js$/ */\n /* webpackMode: \"lazy\" */\n `./${bundleId}.entry.js${BUILD.hotModuleReplacement && hmrVersionId ? '?s-hmr=' + hmrVersionId : ''}`).then((importedModule) => {\n if (!BUILD.hotModuleReplacement) {\n cmpModules.set(bundleId, importedModule);\n }\n return importedModule[exportName];\n }, consoleError);\n};\nconst styles = /*@__PURE__*/ new Map();\nconst modeResolutionChain = [];\nconst win = typeof window !== 'undefined' ? window : {};\nconst CSS = BUILD.cssVarShim ? win.CSS : null;\nconst doc = win.document || { head: {} };\nconst H = (win.HTMLElement || class {\n});\nconst plt = {\n $flags$: 0,\n $resourcesUrl$: '',\n jmp: (h) => h(),\n raf: (h) => requestAnimationFrame(h),\n ael: (el, eventName, listener, opts) => el.addEventListener(eventName, listener, opts),\n rel: (el, eventName, listener, opts) => el.removeEventListener(eventName, listener, opts),\n ce: (eventName, opts) => new CustomEvent(eventName, opts),\n};\nconst setPlatformHelpers = (helpers) => {\n Object.assign(plt, helpers);\n};\nconst supportsShadow = BUILD.shadowDomShim && BUILD.shadowDom\n ? /*@__PURE__*/ (() => (doc.head.attachShadow + '').indexOf('[native') > -1)()\n : true;\nconst supportsListenerOptions = /*@__PURE__*/ (() => {\n let supportsListenerOptions = false;\n try {\n doc.addEventListener('e', null, Object.defineProperty({}, 'passive', {\n get() {\n supportsListenerOptions = true;\n },\n }));\n }\n catch (e) { }\n return supportsListenerOptions;\n})();\nconst promiseResolve = (v) => Promise.resolve(v);\nconst supportsConstructableStylesheets = BUILD.constructableCSS\n ? /*@__PURE__*/ (() => {\n try {\n new CSSStyleSheet();\n return typeof new CSSStyleSheet().replaceSync === 'function';\n }\n catch (e) { }\n return false;\n })()\n : false;\nconst queueDomReads = [];\nconst queueDomWrites = [];\nconst queueDomWritesLow = [];\nconst queueTask = (queue, write) => (cb) => {\n queue.push(cb);\n if (!queuePending) {\n queuePending = true;\n if (write && plt.$flags$ & 4 /* PLATFORM_FLAGS.queueSync */) {\n nextTick(flush);\n }\n else {\n plt.raf(flush);\n }\n }\n};\nconst consume = (queue) => {\n for (let i = 0; i < queue.length; i++) {\n try {\n queue[i](performance.now());\n }\n catch (e) {\n consoleError(e);\n }\n }\n queue.length = 0;\n};\nconst consumeTimeout = (queue, timeout) => {\n let i = 0;\n let ts = 0;\n while (i < queue.length && (ts = performance.now()) < timeout) {\n try {\n queue[i++](ts);\n }\n catch (e) {\n consoleError(e);\n }\n }\n if (i === queue.length) {\n queue.length = 0;\n }\n else if (i !== 0) {\n queue.splice(0, i);\n }\n};\nconst flush = () => {\n if (BUILD.asyncQueue) {\n queueCongestion++;\n }\n // always force a bunch of medium callbacks to run, but still have\n // a throttle on how many can run in a certain time\n // DOM READS!!!\n consume(queueDomReads);\n // DOM WRITES!!!\n if (BUILD.asyncQueue) {\n const timeout = (plt.$flags$ & 6 /* PLATFORM_FLAGS.queueMask */) === 2 /* PLATFORM_FLAGS.appLoaded */\n ? performance.now() + 14 * Math.ceil(queueCongestion * (1.0 / 10.0))\n : Infinity;\n consumeTimeout(queueDomWrites, timeout);\n consumeTimeout(queueDomWritesLow, timeout);\n if (queueDomWrites.length > 0) {\n queueDomWritesLow.push(...queueDomWrites);\n queueDomWrites.length = 0;\n }\n if ((queuePending = queueDomReads.length + queueDomWrites.length + queueDomWritesLow.length > 0)) {\n // still more to do yet, but we've run out of time\n // let's let this thing cool off and try again in the next tick\n plt.raf(flush);\n }\n else {\n queueCongestion = 0;\n }\n }\n else {\n consume(queueDomWrites);\n if ((queuePending = queueDomReads.length > 0)) {\n // still more to do yet, but we've run out of time\n // let's let this thing cool off and try again in the next tick\n plt.raf(flush);\n }\n }\n};\nconst nextTick = /*@__PURE__*/ (cb) => promiseResolve().then(cb);\nconst readTask = /*@__PURE__*/ queueTask(queueDomReads, false);\nconst writeTask = /*@__PURE__*/ queueTask(queueDomWrites, true);\nexport { BUILD, Env, NAMESPACE } from '@stencil/core/internal/app-data';\nexport { Build, CSS, Context, Fragment, H, H as HTMLElement, Host, STENCIL_DEV_MODE, addHostEventListeners, bootstrapLazy, cmpModules, connectedCallback, consoleDevError, consoleDevInfo, consoleDevWarn, consoleError, createEvent, defineCustomElement, disconnectedCallback, doc, forceModeUpdate, forceUpdate, getAssetPath, getConnect, getContext, getElement, getHostRef, getMode, getRenderingRef, getValue, h, insertVdomAnnotations, isMemberInElement, loadModule, modeResolutionChain, nextTick, parsePropertyValue, plt, postUpdateComponent, promiseResolve, proxyComponent, proxyCustomElement, readTask, registerHost, registerInstance, renderVdom, setAssetPath, setErrorHandler, setMode, setPlatformHelpers, setPlatformOptions, setValue, styles, supportsConstructableStylesheets, supportsListenerOptions, supportsShadow, win, writeTask };\n","import { Build as BUILD, getElement } from '@stencil/core';\nconst ClickOutsideOptionsDefaults = {\n triggerEvents: \"click\",\n exclude: \"\"\n};\n/**\n * Call this function as soon as the click outside of annotated method's host is done.\n * @example\n```\n@ClickOutside()\ncallback() {\n // this will run when click outside of element (host component) is done.\n}\n```\n */\nexport function ClickOutside(opt = ClickOutsideOptionsDefaults) {\n return (proto, methodName) => {\n // this is to resolve the 'compiler optimization issue':\n // lifecycle events not being called when not explicitly declared in at least one of components from bundle\n BUILD.connectedCallback = true;\n BUILD.disconnectedCallback = true;\n const { connectedCallback, disconnectedCallback } = proto;\n proto.connectedCallback = function () {\n const host = getElement(this);\n const method = this[methodName];\n registerClickOutside(this, host, method, opt);\n return connectedCallback && connectedCallback.call(this);\n };\n proto.disconnectedCallback = function () {\n const host = getElement(this);\n const method = this[methodName];\n removeClickOutside(this, host, method, opt);\n return disconnectedCallback && disconnectedCallback.call(this);\n };\n };\n}\n/**\n * Register callback function for HTMLElement to be executed when user clicks outside of element.\n * @example\n```\n<span\n ref={spanEl => registerClickOutside(this, spanEl, () => this.test())}>\n Hello, World!\n</span>;\n```\n */\nexport function registerClickOutside(component, element, callback, opt = ClickOutsideOptionsDefaults) {\n const excludedNodes = getExcludedNodes(opt);\n getTriggerEvents(opt).forEach(triggerEvent => {\n window.addEventListener(triggerEvent, (e) => {\n initClickOutside(e, component, element, callback, excludedNodes);\n }, false);\n });\n}\n/**\n * Remove click outside callback function for HTMLElement.\n */\nexport function removeClickOutside(component, element, callback, opt = ClickOutsideOptionsDefaults) {\n getTriggerEvents(opt).forEach(triggerEvent => {\n window.removeEventListener(triggerEvent, (e) => {\n initClickOutside(e, component, element, callback);\n }, false);\n });\n}\nfunction initClickOutside(event, component, element, callback, excludedNodes) {\n const target = event.target;\n if (!element.contains(target) && !isExcluded(target, excludedNodes)) {\n callback.call(component);\n }\n}\nfunction getTriggerEvents(opt) {\n if (opt.triggerEvents) {\n return opt.triggerEvents.split(\",\").map(e => e.trim());\n }\n return [\"click\"];\n}\nfunction getExcludedNodes(opt) {\n if (opt.exclude) {\n try {\n return Array.from(document.querySelectorAll(opt.exclude));\n }\n catch (err) {\n console.warn(`@ClickOutside: Exclude: '${opt.exclude}' will not be evaluated. Check your exclude selector syntax.`, err);\n }\n }\n return;\n}\nfunction isExcluded(target, excudedNodes) {\n if (target && excudedNodes) {\n for (let excludedNode of excudedNodes) {\n if (excludedNode.contains(target)) {\n return true;\n }\n }\n }\n return false;\n}\n","import { ValueOf } from \"../../../types/interfaces\"\n\nexport enum Position {\n\tLEFT = 'left',\n\tRIGHT = 'right',\n}\n\nexport type PositionType = `${ValueOf<typeof Position>}`\n\nexport const DropdownClass = {\n\troot: 'gov-dropdown',\n\tlist: 'gov-dropdown__list'\n}\n","/*\n * Dropdown\n */\n\n$class: \".gov-dropdown\";\n\n#{$class} {\n\tposition: relative;\n\n\t&__list {\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\tz-index: 100;\n\t}\n\tul {\n\t\tpadding: rem-calc(4);\n\t\tborder-radius: $border-radius;\n\t\tbackground-color: $dropdown-bg-color;\n\t\tbox-shadow: $dropdown-box-shadow;\n\t}\n\tli {\n\t\tmargin: 0;\n\t\twhite-space: nowrap;\n\t\t&::before {\n\t\t\tcontent: none;\n\t\t}\n\t\t> * {\n\t\t\twidth: 100%;\n\t\t}\n\t\t> * .element {\n\t\t\tjustify-content: space-between;\n\t\t\twidth: 100%;\n\t\t\tpadding: rem-calc(8) !important;\n\t\t\tfont-weight: 400 !important;\n\t\t}\n\t}\n\t&[position=\"right\"] {\n\t\t#{$class}__list {\n\t\t\tright: 0;\n\t\t\tleft: initial;\n\t\t}\n\t}\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop } from \"@stencil/core\"\nimport { registerClickOutside } from \"stencil-click-outside\"\nimport { govHost, toBoolAttr } from \"../../../helpers/Dom/template\"\nimport { GovHost } from \"../../../helpers/Dom/template.types\"\nimport { Nullable } from \"../../../types/interfaces\"\nimport { createID } from \"../../../utils/string.utils\"\nimport { ButtonClass } from \"../default/constants\"\nimport { DropdownClass, Position, PositionType } from \"./constants\"\nimport { DropdownEvent } from \"./gov-dropdown.types\"\n\n@Component({\n\ttag: \"gov-dropdown\",\n\tstyleUrl: \"gov-dropdown.scss\",\n})\nexport class GovDropdown {\n\tprivate h: GovHost\n\tprivate readonly listId: string\n\tprivate readonly controlId: string\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t\tthis.listId = createID(\"GovDropdownList\")\n\t\tthis.controlId = createID(\"GovDropdownControl\")\n\t}\n\n\t@Element() host: HTMLGovButtonElement\n\t/**\n\t * Dropdown open state\n\t */\n\t@Prop({ mutable: true }) open = false\n\t/**\n\t * Menu display position\n\t */\n\t@Prop() readonly position: PositionType = Position.LEFT\n\t/**\n\t * Emitted when the dropdown change state\n\t */\n\t@Event({ eventName: \"gov-change\" }) govChange: EventEmitter<DropdownEvent>\n\n\tcomponentWillLoad() {\n\t\tif (this.trigger) {\n\t\t\tthis.trigger.setAttribute(\"wcag-controls\", this.listId)\n\t\t\tthis.trigger.setAttribute(\"wcag-has-popup\", toBoolAttr(!!this.list))\n\t\t\tthis.trigger.setAttribute(\"identifier\", this.controlId)\n\n\t\t\tthis.trigger.addEventListener(\"gov-click\", (e) => {\n\t\t\t\te.preventDefault()\n\t\t\t\te.stopPropagation()\n\t\t\t\tthis.open = !this.open\n\n\t\t\t\tthis.govChange.emit({\n\t\t\t\t\tcomponent: DropdownClass.root,\n\t\t\t\t\toriginalEvent: e,\n\t\t\t\t\topen: this.open,\n\t\t\t\t})\n\t\t\t})\n\t\t}\n\t}\n\n\tget trigger() {\n\t\treturn this.host.querySelector(`* > ${ButtonClass.root}`) as HTMLGovButtonElement\n\t}\n\n\tget list() {\n\t\treturn this.h.getSlot(\"list\") as Nullable<HTMLUListElement>\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={this.h.classes([DropdownClass.root])} open={this.open} position={this.position}>\n\t\t\t\t<slot></slot>\n\t\t\t\t<div\n\t\t\t\t\tref={el => registerClickOutside(this, el, () => this.open = false)}\n\t\t\t\t\tclass={DropdownClass.list}\n\t\t\t\t\tid={this.listId}\n\t\t\t\t\taria-labelledby={this.controlId}\n\t\t\t\t\taria-hidden={toBoolAttr(!this.open)}\n\t\t\t\t\thidden={!this.open}>\n\t\t\t\t\t<slot name=\"list\"></slot>\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\t/**\n\t * Returns the current state of the dropdown\n\t */\n\t@Method()\n\tasync getState() {\n\t\treturn this.open\n\t}\n\n\t/**\n\t * Sets the dropdown state\n\t */\n\t@Method()\n\tasync setOpen(state: boolean) {\n\t\tthis.open = state\n\t}\n}\n","export const EmptyClass = {\n\troot: 'gov-empty',\n\ticon: 'gov-empty__icon',\n\tcontainer: 'gov-empty__container',\n\tcontent: 'gov-empty__content',\n}\n","/*\n * Alert\n */\n\n$class: \".gov-empty\";\n\n#{$class} {\n\t@include base();\n\t&__icon {\n\t\tdisplay: inline-flex;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t\twidth: rem-calc(96);\n\t\theight: rem-calc(96);\n\t\tmargin-bottom: calc(rem-calc(96) / 3);\n\t\tborder-radius: 50%;\n\t\tbackground: $empty-icon-circle-bg;\n\t\tcolor: $empty-icon-color;\n\t\t& > * {\n\t\t\twidth: rem-calc(56);\n\t\t\theight: rem-calc(56);\n\t\t}\n\t}\n\t&__content {\n\t\t@include reset-last-margin();\n\t}\n}\n","import { Component, Element, Host, h } from '@stencil/core'\nimport { EmptyClass } from './constants'\nimport { govHost } from '../../helpers/Dom/template'\nimport { GovHost } from '../../helpers/Dom/template.types'\n\n@Component({\n\ttag: 'gov-empty',\n\tstyleUrl: 'gov-empty.scss',\n})\nexport class GovEmpty {\n\tprivate h: GovHost\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t}\n\n\t@Element() host: HTMLGovEmptyElement\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={this.h.classes(EmptyClass.root)}>\n\t\t\t\t{this.h.hasSlot('icon') && (\n\t\t\t\t\t<div class={EmptyClass.icon}>\n\t\t\t\t\t\t<slot name=\"icon\" />\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t<div class={EmptyClass.content}>\n\t\t\t\t\t<slot />\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","export const ErrorCodeClass = {\n\troot: 'gov-error-code',\n\ticon: 'gov-error-code__icon',\n\tholder: 'gov-error-code__holder',\n\tcontent: 'gov-error-code__content',\n}\n","/*\n * Alert\n */\n\n$class: \".gov-error-code\";\n\n#{$class} {\n\t@include base();\n\t&__holder {\n\t\tmargin: 0 auto;\n\t\ttext-align: center;\n\t}\n\t&__content {\n\t\t@include reset-last-margin();\n\t}\n\t&__icon {\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t\twidth: rem-calc(150);\n\t\theight: rem-calc(150);\n\t\tmargin: 0 auto rem-calc(24);\n\t\tborder-radius: 50%;\n\t\tbackground: $error-icon-circle-bg;\n\t\tcolor: $error-icon-color;\n\t\t& > * {\n\t\t\twidth: rem-calc(114);\n\t\t\theight: rem-calc(114);\n\t\t}\n\t}\n\n\t// MQ\n\t@include mq($from: md) {\n\t\t&__icon {\n\t\t\twidth: rem-calc(200);\n\t\t\theight: rem-calc(200);\n\t\t\tmargin: 0 auto rem-calc(32);\n\t\t\t& > * {\n\t\t\t\twidth: rem-calc(152);\n\t\t\t\theight: rem-calc(152);\n\t\t\t}\n\t\t}\n\t}\n}\n","import { Component, Element, h, Host } from '@stencil/core'\nimport { ErrorCodeClass } from './constants'\nimport { govHost } from '../../helpers/Dom/template'\nimport { GovHost } from '../../helpers/Dom/template.types'\n\n@Component({\n\ttag: 'gov-error-code',\n\tstyleUrl: 'gov-error-code.scss',\n})\nexport class GovErrorCode {\n\tprivate h: GovHost\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t}\n\n\t@Element() host: HTMLGovErrorCodeElement\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={this.h.classes(ErrorCodeClass.root)}>\n\t\t\t\t<div class={ErrorCodeClass.holder}>\n\t\t\t\t\t{this.h.hasSlot('icon') && (\n\t\t\t\t\t\t<div class={ErrorCodeClass.icon}>\n\t\t\t\t\t\t\t<slot name=\"icon\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t<div class={ErrorCodeClass.content}>\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","import { Sizes } from '../../../core/constants/sizes'\nimport { Variants } from '../../../core/constants/variants'\nimport { pick } from '../../../utils/utils'\nimport { ValueOf } from '../../../types/interfaces'\n\nexport const FormAutocompleteSizes = pick(Sizes, ['_M', '_L', '_XL'])\nexport type SizesType = `${ValueOf<typeof FormAutocompleteSizes>}`\n\nexport const FormAutocompleteVariants = pick(Variants, ['PRIMARY', 'SECONDARY'])\nexport type VariantType = `${ValueOf<typeof FormAutocompleteVariants>}`\n\nexport const FormAutocompleteClass = {\n\troot: 'gov-form-autocomplete',\n\tlist: 'gov-form-autocomplete__list',\n\titem: 'gov-form-autocomplete__item',\n\tempty: 'gov-form-autocomplete__item--empty',\n\tloading: 'gov-form-autocomplete__item--loading',\n}\n","$class: \".gov-form-autocomplete\";\n\n#{$class} {\n\t@include base();\n\t&__list {\n\t\t@include typography($font-size-s);\n\t\t@extend %reset-ul;\n\t\tposition: absolute;\n\t\ttop: 100%;\n\t\tright: 0;\n\t\tleft: 0;\n\t\tz-index: 5;\n\t\tmax-height: rem-calc(225);\n\t\tmargin-top: rem-calc(8);\n\t\tborder: $form-autocomplete-border;\n\t\tborder-radius: $border-radius;\n\t\tbackground: $form-autocomplete-bg;\n\t\toverflow-x: hidden;\n\t\toverflow-y: auto;\n\t\toverscroll-behavior: none;\n\t}\n\t&__list > &__item {\n\t\t@extend %reset-ul-li;\n\t\tpadding: rem-calc(12 8);\n\t\tcursor: pointer;\n\t}\n\t&__item {\n\t\t&--empty,\n\t\t&--loading {\n\t\t\tpadding: rem-calc(12 8);\n\t\t\tcolor: $form-autocomplete-item-disable-color;\n\t\t\t& .gov-icon {\n\t\t\t\theight: 12px;\n\t\t\t}\n\t\t}\n\t}\n\n\t// STATES\n\t&__list:empty {\n\t\tdisplay: none;\n\t}\n\n\t// HOVERS\n\t&__item {\n\t\t@include parameter(\"aria-selected\") {\n\t\t\tbackground: $form-autocomplete-item-select-bg;\n\t\t}\n\t\t@include hover() {\n\t\t\tbackground: $form-autocomplete-item-hover-bg;\n\t\t}\n\t}\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State, Watch } from \"@stencil/core\"\nimport { toBoolAttr } from \"../../../helpers/Dom/template\"\nimport { validateProp } from \"../../../helpers/Validate/props\"\nimport { Nullable } from \"../../../types/interfaces\"\nimport { createID } from \"../../../utils/string.utils\"\nimport { delay, has, throttle } from \"../../../utils/utils\"\nimport { FormInputEvent } from \"../input/gov-form-input.types\"\nimport {\n\tFormAutocompleteClass,\n\tFormAutocompleteSizes,\n\tFormAutocompleteVariants,\n\tSizesType,\n\tVariantType,\n} from \"./constants\"\nimport { FormAutocompleteEvent, GovFormAutocompleteItem } from \"./gov-form-autocomplete.types\"\n\n@Component({\n\ttag: \"gov-form-autocomplete\",\n\tstyleUrl: \"gov-form-autocomplete.scss\",\n})\nexport class GovFormAutocomplete {\n\tprivate inputRef?: HTMLGovFormInputElement\n\tprivate listRef?: HTMLUListElement\n\tprivate readonly listBoxId: string\n\tprivate searchCallback: (value: string) => Promise<GovFormAutocompleteItem[]>\n\tprivate templateResolver: (item: GovFormAutocompleteItem, selected: boolean) => string = item => item[this.nameKey]\n\n\tconstructor() {\n\t\tthis.listBoxId = createID(\"GovListBox\")\n\t}\n\n\t@Element() host: HTMLGovFormInputElement\n\t/**\n\t * Value of input\n\t */\n\t@Prop({ reflect: true, mutable: true }) value = \"\"\n\t/**\n\t * Custom input identifier.\n\t */\n\t@Prop({ attribute: \"identifier\" }) readonly identifier: string\n\t/**\n\t * Style variation of the form input.\n\t */\n\t@Prop() readonly variant?: VariantType\n\t/**\n\t * Indicates the entered value of child form element does conform to the format expected by the application.\n\t */\n\t@Prop() readonly success: boolean\n\t/**\n\t * Input’s size.\n\t */\n\t@Prop() readonly size?: SizesType = \"m\"\n\t/**\n\t * Main key name in the object\n\t */\n\t@Prop() readonly nameKey: string = \"name\"\n\t/**\n\t * Name of the input.\n\t */\n\t@Prop() readonly name: string\n\t/**\n\t * Set whether the input is required or not. Please note that this is necessary for accessible inputs when the user is required to fill them.\n\t * When using this property you need to also set “novalidate” attribute to your form element to prevent browser from displaying its own validation errors.\n\t */\n\t@Prop() readonly required: boolean = false\n\t/**\n\t * Makes the input component disabled.\n\t * This prevents users from being able to interact with the select, and conveys its inactive state to assistive technologies.\n\t */\n\t@Prop() readonly disabled: boolean\n\t/**\n\t * Text that appears in the form control when it has no value set\n\t */\n\t@Prop() readonly placeholder: string\n\t/**\n\t * The value is not editable\n\t */\n\t@Prop() readonly readonly: boolean\n\t/**\n\t * Indicates the entered value does not conform to the format expected by the application.\n\t */\n\t@Prop() readonly invalid: boolean\n\t/**\n\t * Minimum length (number of characters) of value\n\t */\n\t@Prop() readonly minlength: number = 3\n\t/**\n\t * Maximum length (number of characters) of value\n\t */\n\t@Prop() readonly maxlength: number\n\t/**\n\t * Custom message for when there is a blank sheet\n\t */\n\t@Prop({ attribute: \"message-empty\" }) readonly messageEmpty: string = \"Nebyly nalezeny žádné výsledky\"\n\t/**\n\t * Custom message for when data is loaded\n\t */\n\t@Prop({ attribute: \"message-loading\" }) readonly messageLoading: string = \"Načítám...\"\n\t/**\n\t * Indicates the id of a component that describes the input.\n\t */\n\t@Prop({ attribute: \"wcag-described-by\" }) readonly wcagDescribedBy: string\n\t/**\n\t * Indicates the id of a component that labels the input.\n\t */\n\t@Prop({ attribute: \"wcag-labelled-by\" }) readonly wcagLabelledBy: string\n\t/**\n\t * Same as original parameter\n\t * https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-owns\n\t */\n\t@Prop({ attribute: \"wcag-owns\" }) readonly wcagOwns: string\n\t/**\n\t * Emitted when the input has focus.\n\t */\n\t@Event({ eventName: \"gov-focus\" }) govFocus: EventEmitter<FormAutocompleteEvent>\n\t/**\n\t * Emitted when the input loses focus.\n\t */\n\t@Event({ eventName: \"gov-blur\" }) govBlur: EventEmitter<FormAutocompleteEvent>\n\t/**\n\t * Emitted when the input change value.\n\t */\n\t@Event({ eventName: \"gov-input\" }) govInput: EventEmitter<FormAutocompleteEvent>\n\t/**\n\t * Emitted when the input change value.\n\t */\n\t@Event({ eventName: \"gov-select\" }) govSelect: EventEmitter<FormAutocompleteEvent>\n\t@State() focused: boolean\n\t@State() processing = false\n\t@State() arrowCounter = -1\n\t@State() list: GovFormAutocompleteItem[] = []\n\n\t@Watch(\"variant\")\n\tvalidateVariant(newValue: string): void {\n\t\tvalidateProp(FormAutocompleteVariants, newValue, FormAutocompleteClass.root)\n\t}\n\n\t@Watch(\"size\")\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(FormAutocompleteSizes, newValue, FormAutocompleteClass.root)\n\t}\n\n\tprivate onArrowUp() {\n\t\tif (this.arrowCounter > 0) {\n\t\t\tthis.arrowCounter = this.arrowCounter - 1\n\t\t\tthis.moveToView().finally()\n\t\t}\n\t}\n\n\tprivate onArrowDown() {\n\t\tif (this.arrowCounter < this.list.length - 1) {\n\t\t\tthis.arrowCounter = this.arrowCounter + 1\n\t\t\tthis.moveToView().finally()\n\t\t}\n\t}\n\n\tprivate async moveToView() {\n\t\tawait delay(200)\n\t\tconst heightOfList = this.listRef.offsetHeight\n\t\tconst selected = this.listRef.querySelector(\"li[aria-selected=\\\"true\\\"]\") as HTMLUListElement\n\t\tif (selected && heightOfList) {\n\t\t\tconst offsetTop = selected.offsetTop\n\t\t\tthis.listRef.scrollTo({ top: offsetTop, behavior: \"smooth\" })\n\t\t}\n\t}\n\n\tprivate doSearch() {\n\t\tif (Number.isInteger(this.minlength) && this.isValueAccepted === false && this.minlength) {\n\t\t\tthis.list = []\n\t\t\tthis.arrowCounter = -1\n\t\t\tthis.processing = false\n\t\t\treturn\n\t\t}\n\t\tif (this.searchCallback) {\n\t\t\tthis.processing = true\n\t\t\tthis.searchCallback(this.value)\n\t\t\t\t.then(response => (this.list = response))\n\t\t\t\t.catch(() => (this.list = []))\n\t\t\t\t.finally(() => {\n\t\t\t\t\tthis.arrowCounter = -1\n\t\t\t\t\tthis.processing = false\n\t\t\t\t})\n\t\t}\n\t}\n\n\tget isValueAccepted() {\n\t\tif (typeof this.value === \"string\") {\n\t\t\treturn this.value.length >= this.minlength\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tcomponentWillLoad() {\n\t\tthis.validateVariant(this.variant)\n\t\tthis.validateSize(this.size)\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={FormAutocompleteClass.root} size={this.size} variant={this.variant}>\n\t\t\t\t<gov-form-input\n\t\t\t\t\tplaceholder={this.placeholder}\n\t\t\t\t\tname={this.name}\n\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\treadonly={this.readonly}\n\t\t\t\t\tautocomplete={false}\n\t\t\t\t\tsize={this.size}\n\t\t\t\t\tvariant={this.variant}\n\t\t\t\t\trequired={this.required}\n\t\t\t\t\tinvalid={this.invalid}\n\t\t\t\t\trole={\"searchbox\"}\n\t\t\t\t\tvalue={this.value}\n\t\t\t\t\tminlength={this.minlength}\n\t\t\t\t\tmaxlength={this.maxlength}\n\t\t\t\t\ton-gov-input={throttle(this.onInputHandler.bind(this), 200)}\n\t\t\t\t\ton-gov-keyup={this.onKeyUpHandler.bind(this)}\n\t\t\t\t\ton-gov-keydown={this.onKeyDownHandler.bind(this)}\n\t\t\t\t\ton-gov-focus={this.onFocusHandler.bind(this)}\n\t\t\t\t\ton-gov-blur={this.onBlurHandler.bind(this)}\n\t\t\t\t\twcagAutocomplete={\"list\"}\n\t\t\t\t\twcagDescribedBy={this.wcagDescribedBy}\n\t\t\t\t\twcagLabelledBy={this.wcagLabelledBy}\n\t\t\t\t\twcagOwns={[this.listBoxId, this.wcagOwns].join(\" \")}\n\t\t\t\t\twcagExpanded={this.list.length && this.focused}\n\t\t\t\t\tref={el => (this.inputRef = el as HTMLGovFormInputElement)}\n\t\t\t\t>\n\t\t\t\t\t<slot slot=\"right-icon\" name=\"right-icon\" />\n\t\t\t\t</gov-form-input>\n\t\t\t\t<ul class={FormAutocompleteClass.list}\n\t\t\t\t role={\"listbox\"}\n\t\t\t\t id={this.listBoxId}\n\t\t\t\t ref={el => (this.listRef = el as HTMLUListElement)}>\n\t\t\t\t\t{this.focused && this.list.length === 0 && this.processing === false && this.isValueAccepted && this.messageEmpty ? (\n\t\t\t\t\t\t<li class={FormAutocompleteClass.empty}>\n\t\t\t\t\t\t\t{this.messageEmpty}\n\t\t\t\t\t\t</li>\n\t\t\t\t\t) : null}\n\t\t\t\t\t{this.focused && this.processing === true && this.isValueAccepted ? (\n\t\t\t\t\t\t<li class={FormAutocompleteClass.loading}>\n\t\t\t\t\t\t\t<gov-icon name=\"loader\" class=\"gov-spin-animation\"></gov-icon>\n\t\t\t\t\t\t\t {this.messageLoading}\n\t\t\t\t\t\t</li>\n\t\t\t\t\t) : null}\n\t\t\t\t\t{this.list.map((item, index) => {\n\t\t\t\t\t\tconst isSelected = this.arrowCounter === index\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\tclass={FormAutocompleteClass.item}\n\t\t\t\t\t\t\t\tinnerHTML={this.templateResolver(item, isSelected)}\n\t\t\t\t\t\t\t\trole={\"option\"}\n\t\t\t\t\t\t\t\taria-posinset={index}\n\t\t\t\t\t\t\t\ttabindex={isSelected ? 0 : -1}\n\t\t\t\t\t\t\t\taria-setsize={this.list.length}\n\t\t\t\t\t\t\t\tonClick={(e: PointerEvent) => this.onSelectHandler(e, index)}\n\t\t\t\t\t\t\t\taria-selected={toBoolAttr(isSelected)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)\n\t\t\t\t\t})}\n\t\t\t\t</ul>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\tprivate onFocusHandler(e: FocusEvent) {\n\t\tthis.focused = true\n\t\tthis.arrowCounter = -1\n\t\tif ((this.value || this.minlength === 0) && this.searchCallback) {\n\t\t\tthis.doSearch()\n\t\t}\n\t\te.stopPropagation()\n\t\tthis.govFocus.emit({\n\t\t\toriginalEvent: e,\n\t\t\tcomponent: FormAutocompleteClass.root,\n\t\t\tvalue: this.value,\n\t\t\tselected: null,\n\t\t})\n\t}\n\n\tprivate onBlurHandler(e: FocusEvent) {\n\t\tthis.focused = false\n\t\tsetTimeout(() => (this.list = []), 200)\n\t\tthis.arrowCounter = -1\n\t\te.stopPropagation()\n\t\tthis.govBlur.emit({\n\t\t\toriginalEvent: e,\n\t\t\tcomponent: FormAutocompleteClass.root,\n\t\t\tvalue: this.value,\n\t\t\tselected: null,\n\t\t})\n\t}\n\n\tprivate onInputHandler(e: InputEvent) {\n\t\tthis.value = (e.target as HTMLGovFormInputElement).value\n\t\te.stopPropagation()\n\t\tthis.govInput.emit({\n\t\t\toriginalEvent: e,\n\t\t\tcomponent: FormAutocompleteClass.root,\n\t\t\tvalue: this.value,\n\t\t\tselected: null,\n\t\t})\n\t\tthis.doSearch()\n\t}\n\n\tprivate onSelectHandler(e: PointerEvent | CustomEvent, index = -1) {\n\t\tlet selected: Nullable<GovFormAutocompleteItem> = null\n\t\tif (index > -1) {\n\t\t\tselected = this.list[index]\n\t\t} else if (has(this.arrowCounter, this.list)) {\n\t\t\tselected = this.list[this.arrowCounter]\n\t\t}\n\t\tif (selected) {\n\t\t\tthis.govSelect.emit({\n\t\t\t\tcomponent: FormAutocompleteClass.root,\n\t\t\t\tvalue: this.value,\n\t\t\t\tselected: selected,\n\t\t\t\toriginalEvent: e,\n\t\t\t})\n\t\t\tthis.list = []\n\t\t\tif (has(this.nameKey, selected) && typeof selected[this.nameKey] === \"string\") {\n\t\t\t\tthis.value = selected[this.nameKey]\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate onKeyUpHandler(e: CustomEvent) {\n\t\tconst event = (e.detail as FormInputEvent).originalEvent as KeyboardEvent\n\t\te.stopPropagation()\n\t\tevent.stopPropagation();\n\t\tif (event.keyCode === 38) this.onArrowUp()\n\t\telse if (event.keyCode === 40) this.onArrowDown()\n\t\telse if (event.keyCode === 13) {\n\t\t\te.preventDefault()\n\t\t\tevent.preventDefault()\n\t\t\tthis.onSelectHandler(e)\n\t\t}\n\t}\n\n\tprivate onKeyDownHandler(e: CustomEvent) {\n\t\tconst event = (e.detail as FormInputEvent).originalEvent as KeyboardEvent\n\t\te.stopPropagation()\n\t\tevent.stopPropagation()\n\t\tif (event.keyCode === 13) {\n\t\t\te.preventDefault()\n\t\t\tevent.preventDefault()\n\t\t}\n\t}\n\n\t/**\n\t * Returns the current state of the component\n\t */\n\t@Method()\n\tasync setFocus(options?: FocusOptions): Promise<void> {\n\t\treturn this.inputRef.focus(options)\n\t}\n\n\t/**\n\t * Set options for list\n\t */\n\t@Method()\n\tasync setOptions(options: GovFormAutocompleteItem[]): Promise<void> {\n\t\tthis.list = Array.isArray(options) ? options : []\n\t\tthis.arrowCounter = -1\n\t}\n\n\t/**\n\t * Clears whisperer value\n\t */\n\t@Method()\n\tasync clearValue(): Promise<void> {\n\t\tthis.value = \"\"\n\t\tthis.inputRef.value = \"\"\n\n\t\tawait this.inputRef.clearValue()\n\t}\n\n\t/**\n\t * Clears whisperer value\n\t */\n\t@Method()\n\tasync setProcessing(status: boolean): Promise<void> {\n\t\tthis.processing = status\n\t}\n\n\t/**\n\t * Set a custom asynchronous function for the whisperer\n\t */\n\t@Method()\n\tasync setSearchCallback(callback: (value: string) => Promise<any>) {\n\t\tthis.searchCallback = callback\n\t}\n\n\t/**\n\t * Setting a custom whisper result template\n\t * @param callback\n\t */\n\t@Method()\n\tasync setTemplateResolver(callback: (item: GovFormAutocompleteItem) => string) {\n\t\tthis.templateResolver = callback\n\t}\n}\n","import { Sizes } from '../../../core/constants/sizes'\nimport { pick } from '../../../utils/utils'\nimport { ValueOf } from '../../../types/interfaces'\n\nexport const FormCheckboxSizes = pick(Sizes, ['_XS', '_S', '_M', '_L'])\nexport type FormCheckboxSizesType = `${ValueOf<typeof FormCheckboxSizes>}`\n\nexport const FormCheckboxClass = {\n\troot: 'gov-form-checkbox',\n\tcheck: 'gov-form-checkbox__check',\n}\n","import { Sizes } from '../../../core/constants/sizes'\nimport { pick } from '../../../utils/utils'\nimport { ValueOf } from '../../../types/interfaces'\n\nexport const FormControlSizes = pick(Sizes, ['_M', '_L', '_XL'])\nexport type FormControlSizesType = `${ValueOf<typeof FormControlSizes>}`\n\nexport const FormControlClass = {\n\troot: 'gov-form-control',\n\tholder: 'gov-form-control__holder',\n\tbottom: 'gov-form-control__bottom',\n}\n","import { Sizes } from '../../../core/constants/sizes'\nimport { Variants } from '../../../core/constants/variants'\nimport { ValueOf } from '../../../types/interfaces'\nimport { pick } from '../../../utils/utils'\n\nexport const FormInputSizes = pick(Sizes, ['_S', '_M', '_L', '_XL'])\nexport type FormInputSizesType = `${ValueOf<typeof FormInputSizes>}`\n\nexport const FormInputVariants = pick(Variants, ['PRIMARY', 'SECONDARY'])\nexport type FormInputVariantType = `${ValueOf<typeof FormInputVariants>}`\n\nexport enum InputTypes {\n\tCOLOR = 'color',\n\tDATE = 'date',\n\tDATETIME_LOCAL = 'datetime-local',\n\tEMAIL = 'email',\n\tMONTH = 'month',\n\tNUMBER = 'number',\n\tPASSWORD = 'password',\n\tSEARCH = 'search',\n\tTEL = 'tel',\n\tTEXT = 'text',\n\tTIME = 'time',\n\tURL = 'url',\n\tWEEK = 'week',\n}\n\nexport type InputType = `${ValueOf<typeof InputTypes>}`\n\nexport enum Type {\n\tRESET = 'reset',\n}\n\nexport type TypesType = `${ValueOf<typeof Type>}`\n\nexport const FormInputClass = {\n\troot: 'gov-form-input',\n}\n","import { Sizes } from '../../../core/constants/sizes'\nimport { Variants } from '../../../core/constants/variants'\nimport { pick } from '../../../utils/utils'\nimport { ValueOf } from '../../../types/interfaces'\n\nexport const FormSelectSizes = pick(Sizes, ['_M', '_L', '_XL'])\nexport type FormSelectSizesType = `${ValueOf<typeof FormSelectSizes>}`\n\nexport const FormSelectVariants = pick(Variants, ['PRIMARY', 'SECONDARY'])\nexport type FormSelectVariantType = `${ValueOf<typeof FormSelectVariants>}`\n\nexport const FormSelectClass = {\n\troot: 'gov-form-select',\n\ticon: 'gov-form-select__icon',\n}\n","import { Sizes } from '../../../core/constants/sizes'\nimport { Variants } from '../../../core/constants/variants'\nimport { pick } from '../../../utils/utils'\nimport { ValueOf } from '../../../types/interfaces'\n\nexport const FormMultiselectSizes = pick(Sizes, ['_M', '_L', '_XL'])\nexport type FormMultiselectSizesType = `${ValueOf<typeof FormMultiselectSizes>}`\n\nexport const FormMultiselectVariants = pick(Variants, ['PRIMARY', 'SECONDARY'])\nexport type FormMultiselectVariantType = `${ValueOf<typeof FormMultiselectVariants>}`\n\nexport const FormMultiSelectClass = {\n\troot: 'gov-form-multi-select',\n\twrap: 'gov-form-multi-select__wrap',\n\tlist: 'gov-form-multi-select__list',\n\titem: 'gov-form-multi-select__item',\n}\n","import { Sizes } from '../../../core/constants/sizes'\nimport { ValueOf } from '../../../types/interfaces'\nimport { pick } from '../../../utils/utils'\n\nexport const FormSwitchSizes = pick(Sizes, ['_XS', '_S', '_M', '_L'])\nexport type FormSwitchSizesType = `${ValueOf<typeof FormSwitchSizes>}`\n\nexport const FormSwitchClass = {\n\troot: 'gov-form-switch',\n\tholder: 'gov-form-switch__holder',\n\tinput: 'gov-form-switch__input',\n\tindicator: 'gov-form-switch__indicator',\n}\n","import { Sizes } from '../../../core/constants/sizes'\nimport { pick } from '../../../utils/utils'\nimport { ValueOf } from '../../../types/interfaces'\n\nexport const FormRadioSizes = pick(Sizes, ['_XS', '_S', '_M', '_L'])\nexport type FormRadioSizesType = `${ValueOf<typeof FormRadioSizes>}`\n\nexport const FormRadioClass = {\n\troot: 'gov-form-radio',\n\tholder: 'gov-form-radio__holder',\n\tinput: 'gov-form-radio__input',\n\tindicator: 'gov-form-radio__indicator',\n}\n","import { Variants } from '../../../core/constants/variants'\nimport { pick } from '../../../utils/utils'\nimport { ValueOf } from '../../../types/interfaces'\n\nexport const FormMessageVariants = pick(Variants, ['SECONDARY', 'SUCCESS', 'ERROR', 'WARNING'])\nexport type FormMessageVariantType = `${ValueOf<typeof FormMessageVariants>}`\n\nexport const FormMessageClass = {\n\troot: 'gov-form-message',\n\tcontent: 'gov-form-message__content',\n\ticon: 'gov-form-message__icon',\n}\n","import { pick } from \"../../../utils/utils\"\nimport { Sizes } from \"../../../core/constants/sizes\"\nimport { ValueOf } from \"../../../types/interfaces\"\n\nexport const FormLabelSizes = pick(Sizes, ['_XS', '_S', '_M', '_L', '_XL'])\nexport type FormLabelSizesTypes = `${ValueOf<typeof FormLabelSizes>}`\n\nexport const FormLabelClass = {\n\troot: 'gov-form-label',\n\tlabel: 'gov-form-label__label',\n}\n","import { GovHost } from './template.types'\nimport { GovForm } from './form.types'\nimport { FormControlClass } from '../../components/gov-form/control/constants'\nimport { FormInputClass } from '../../components/gov-form/input/constants'\nimport { FormSelectClass } from '../../components/gov-form/select/constants'\nimport { FormMultiSelectClass } from '../../components/gov-form/multiselect/constants'\nimport { FormSwitchClass } from '../../components/gov-form/switch/constants'\nimport { FormCheckboxClass } from '../../components/gov-form/checkbox/constants'\nimport { FormRadioClass } from '../../components/gov-form/radio/constants'\nimport { FormMessageClass } from '../../components/gov-form/message/constants'\nimport { FormAutocompleteClass } from '../../components/gov-form/autocomplete/constants'\nimport { Nullable } from '../../types/interfaces'\nimport { FormLabelClass } from \"../../components/gov-form/label/constants\"\n\nexport const govForm = (govHost: GovHost): GovForm => {\n\treturn {\n\t\tget govHost(): GovHost {\n\t\t\treturn govHost\n\t\t},\n\t\tpassAttrToControl(name: string, value: string): void {\n\t\t\tif (this.control) {\n\t\t\t\tthis.control.setAttribute(name, value)\n\t\t\t}\n\t\t},\n\t\tpassAttrToLabel(name: string, value: string): void {\n\t\t\tif (this.label) {\n\t\t\t\tthis.label.setAttribute(name, value)\n\t\t\t}\n\t\t},\n\t\tget hasGroupChildren(): boolean {\n\t\t\tif (this.control) {\n\t\t\t\treturn this.control.querySelectorAll('gov-form-group > *').length > 1\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\t\tget control(): Nullable<HTMLGovFormControlElement> {\n\t\t\tif (this.govHost.name === FormControlClass.root) {\n\t\t\t\treturn this.govHost.hostElement\n\t\t\t}\n\t\t\treturn this.govHost.getParent(FormControlClass.root)\n\t\t},\n\t\tget label(): Nullable<HTMLGovFormLabelElement> {\n\t\t\tconst innerLabel = this.govHost.hostElement.querySelector(`.${FormLabelClass.root}`)\n\t\t\tif(innerLabel) {\n\t\t\t\treturn innerLabel\n\t\t\t}\n\t\t\tif (this.control) {\n\t\t\t\treturn this.control.querySelector(`.${FormLabelClass.root}`)\n\t\t\t}\n\t\t\treturn null\n\t\t},\n\t\tget mainElementsInControl(): Element[] {\n\t\t\tconst formElements = [\n\t\t\t\tFormSelectClass.root,\n\t\t\t\tFormInputClass.root,\n\t\t\t\tFormSwitchClass.root,\n\t\t\t\tFormCheckboxClass.root,\n\t\t\t\tFormRadioClass.root,\n\t\t\t\tFormMultiSelectClass.root,\n\t\t\t\tFormAutocompleteClass.root,\n\t\t\t]\n\t\t\tif (this.control) {\n\t\t\t\tconst elements = formElements.map(el => `${el}:first-of-type`).join(', ')\n\t\t\t\treturn Array.from(this.control.querySelectorAll(elements))\n\t\t\t}\n\t\t\treturn []\n\t\t},\n\t\tget messageElements(): HTMLGovFormMessageElement[] {\n\t\t\tif (this.control) {\n\t\t\t\treturn Array.from(this.control.querySelectorAll(FormMessageClass.root))\n\t\t\t}\n\t\t\treturn []\n\t\t},\n\t}\n}\n","/*\n * Checkbox\n */\n\n@import \"../checkbox/gov-form-checkbox-core.scss\";\n$class: \".gov-form-checkbox\";\n\n#{$class} {\n\t@extend %form-checkbox-core;\n\tinput + span {\n\t\t&::before {\n\t\t\tborder-radius: $border-radius;\n\t\t}\n\t}\n\t&__check {\n\t\tposition: absolute;\n\t\tcolor: $form-checkbox-check-color;\n\t\topacity: 0;\n\t\ttransition: $t linear opacity;\n\t}\n\n\t// STATES\n\tinput:checked + span::before {\n\t\tbackground: $form-checkbox-indicator-bg;\n\t}\n\tinput:checked + span &__check {\n\t\topacity: 1;\n\t}\n\t@include parameter(\"invalid\") {\n\t\tinput:checked + span::before {\n\t\t\tbackground: $form-state-color-error;\n\t\t}\n\t}\n\t@include parameter(\"disabled\") {\n\t\tinput:checked + span::before {\n\t\t\tborder-color: $form-state-bg-disabled;\n\t\t\tbackground-color: $form-state-bg-disabled;\n\t\t}\n\t}\n\n\t// VARIANTS\n\t@each $size, $definitions in $form-checkbox-core-sizes {\n\t\t&[size=\"#{$size}\"] {\n\t\t\t#{$class} {\n\t\t\t\t&__check {\n\t\t\t\t\ttop: calc((get(\"indicator-size\", $definitions) - get(\"check-size\", $definitions)) / 2);\n\t\t\t\t\tleft: calc((get(\"indicator-size\", $definitions) - get(\"check-size\", $definitions)) / 2);\n\t\t\t\t\twidth: get(\"check-size\", $definitions);\n\t\t\t\t\theight: get(\"check-size\", $definitions);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, Watch } from \"@stencil/core\"\nimport { createID } from \"../../../utils/string.utils\"\nimport { validateProp } from \"../../../helpers/Validate/props\"\nimport { FormCheckboxClass, FormCheckboxSizes, FormCheckboxSizesType } from \"./constants\"\nimport { govHost, toBoolAttr, toBoolAttrIfDefined } from \"../../../helpers/Dom/template\"\nimport { validateWcagLabelFor, validateWcagRef } from \"../../../helpers/Validate/wcag\"\nimport { canValidateWcagOnRender } from \"../../../helpers/Dom/win\"\nimport { delay } from \"../../../utils/utils\"\nimport { GovForm } from \"../../../helpers/Dom/form.types\"\nimport { GovHost } from \"../../../helpers/Dom/template.types\"\nimport { govForm } from \"../../../helpers/Dom/form\"\nimport Fragment from \"../../../helpers/Fragment\"\nimport { FormCheckboxEvent } from \"./gov-form-checkbox.types\"\n\n@Component({\n\ttag: \"gov-form-checkbox\",\n\tstyleUrl: \"gov-form-checkbox.scss\",\n})\nexport class GovFormCheckbox {\n\tprivate readonly h: GovHost\n\tprivate f: GovForm\n\tprivate inputRef?: HTMLInputElement\n\n\tprivate readonly checkboxId: string\n\n\tconstructor() {\n\t\tthis.checkboxId = createID(\"GovCheckbox\")\n\n\t\tthis.h = govHost(this.host)\n\t\tthis.f = govForm(this.h)\n\t}\n\n\t@Element() host: HTMLGovFormCheckboxElement\n\t/**\n\t * Value of checkbox\n\t */\n\t@Prop() readonly value: string\n\t/**\n\t * Checkbox default state\n\t */\n\t@Prop({ reflect: true, mutable: true }) checked = false\n\t/**\n\t * Set whether the input is required or not. Please note that this is necessary for accessible inputs when the user is required to fill them.\n\t * When using this property you need to also set “novalidate” attribute to your form element to prevent browser from displaying its own validation errors.\n\t */\n\t@Prop() readonly required: boolean = false\n\t/**\n\t * Makes the checkbox component disabled.\n\t * This prevents users from being able to interact with the checkbox, and conveys its inactive state to assistive technologies.\n\t */\n\t@Prop() readonly disabled: boolean\n\t/**\n\t * Name of the checkbox.\n\t */\n\t@Prop() readonly name: string\n\t/**\n\t * Checkboxes size.\n\t */\n\t@Prop() readonly size?: FormCheckboxSizesType = \"m\"\n\t/**\n\t * Custom checkbox identifier.\n\t */\n\t@Prop({ attribute: \"identifier\" }) readonly identifier: string\n\t/**\n\t * When you can't use the form label.\n\t */\n\t@Prop({ attribute: \"no-label\" }) readonly noLabel: boolean = false\n\t/**\n\t * Indicates the entered value does not conform to the format expected by the application.\n\t */\n\t@Prop() readonly invalid: boolean\n\t/**\n\t * Indicates the id of a component that describes the input.\n\t */\n\t@Prop({ attribute: \"wcag-described-by\" }) readonly wcagDescribedBy: string\n\t/**\n\t * Indicates the id of a component that labels the input.\n\t */\n\t@Prop({ attribute: \"wcag-labelled-by\" }) readonly wcagLabelledBy: string\n\t/**\n\t * Emitted when the checkbox has focus.\n\t */\n\t@Event({ eventName: \"gov-focus\" }) govFocus: EventEmitter<FormCheckboxEvent>\n\t/**\n\t * Emitted when the checkbox loses focus.\n\t */\n\t@Event({ eventName: \"gov-blur\" }) govBlur: EventEmitter<FormCheckboxEvent>\n\t/**\n\t * Emitted when the checkbox change value.\n\t */\n\t@Event({ eventName: \"gov-change\" }) govChange: EventEmitter<FormCheckboxEvent>\n\n\t@Watch(\"size\")\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(FormCheckboxSizes, newValue, FormCheckboxClass.root)\n\t}\n\n\t@Watch(\"disabled\")\n\t@Watch(\"invalid\")\n\t@Watch(\"size\")\n\twatchDisabled(): void {\n\t\tthis.passControlAttrs()\n\t}\n\n\tprivate passControlAttrs() {\n\t\tthis.f.passAttrToControl(\"size\", this.size)\n\t\tthis.f.passAttrToControl(\"disabled\", toBoolAttr(this.disabled))\n\t\tthis.f.passAttrToControl(\"invalid\", toBoolAttr(this.invalid))\n\t}\n\n\tcomponentWillLoad() {\n\t\tthis.f.passAttrToControl(\"type\", \"checkbox\")\n\t\tthis.passControlAttrs()\n\t}\n\n\tasync componentDidRender() {\n\t\tthis.f.passAttrToLabel(\"identifier\", this.identifier || this.checkboxId)\n\t\tthis.f.passAttrToLabel(\"required\", String(this.required))\n\t\tif (canValidateWcagOnRender()) {\n\t\t\tawait delay(500)\n\t\t\tawait this.validateWcag()\n\t\t}\n\t}\n\n\trender() {\n\t\tconst wrapCheckbox = (children) => {\n\t\t\tif (this.noLabel) {\n\t\t\t\treturn (\n\t\t\t\t\t<label>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</label>\n\t\t\t\t)\n\t\t\t}\n\t\t\treturn children\n\t\t}\n\n\t\treturn (\n\t\t\t<Host class={FormCheckboxClass.root} checked={this.checked} size={this.size} invalid={toBoolAttrIfDefined(this.invalid)}>\n\t\t\t\t{wrapCheckbox(\n\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\tid={this.identifier || this.checkboxId}\n\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\tvalue={this.value}\n\t\t\t\t\t\t\tname={this.name}\n\t\t\t\t\t\t\tchecked={this.checked}\n\t\t\t\t\t\t\tonClick={this.onClickHandler.bind(this)}\n\t\t\t\t\t\t\tonChange={this.onChangeHandler.bind(this)}\n\t\t\t\t\t\t\tonFocus={this.onFocusHandler.bind(this)}\n\t\t\t\t\t\t\tonBlur={this.onBlurHandler.bind(this)}\n\t\t\t\t\t\t\trequired={this.required}\n\t\t\t\t\t\t\tref={el => (this.inputRef = el as HTMLInputElement)}\n\t\t\t\t\t\t\taria-checked={toBoolAttr(this.checked)}\n\t\t\t\t\t\t\taria-required={toBoolAttrIfDefined(this.required)}\n\t\t\t\t\t\t\taria-invalid={toBoolAttrIfDefined(this.invalid)}\n\t\t\t\t\t\t\taria-describedby={this.wcagDescribedBy}\n\t\t\t\t\t\t\taria-labelledby={this.wcagLabelledBy}\n\t\t\t\t\t\t\taria-disabled={toBoolAttrIfDefined(this.disabled)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t<slot name=\"label\" />\n\t\t\t\t\t\t\t<gov-icon class={FormCheckboxClass.check} name=\"check-lg\"></gov-icon>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</Fragment>,\n\t\t\t\t)}\n\t\t\t</Host>\n\t\t)\n\t}\n\n\tprivate onFocusHandler(e: FocusEvent) {\n\t\te.stopPropagation()\n\t\tthis.govFocus.emit({\n\t\t\tcomponent: FormCheckboxClass.root,\n\t\t\tvalue: this.value,\n\t\t\tchecked: this.checked,\n\t\t\toriginalEvent: e,\n\t\t})\n\t}\n\n\tprivate onBlurHandler(e: FocusEvent) {\n\t\te.stopPropagation()\n\t\tthis.govBlur.emit({\n\t\t\tcomponent: FormCheckboxClass.root,\n\t\t\tvalue: this.value,\n\t\t\tchecked: this.checked,\n\t\t\toriginalEvent: e,\n\t\t})\n\t}\n\n\tprivate onClickHandler(e: PointerEvent) {\n\t\te.stopPropagation()\n\t}\n\n\tprivate onChangeHandler(e: Event) {\n\t\tthis.checked = (e.target as HTMLInputElement).checked\n\t\te.stopPropagation()\n\t\tthis.govChange.emit({\n\t\t\tcomponent: FormCheckboxClass.root,\n\t\t\tvalue: this.value,\n\t\t\tchecked: this.checked,\n\t\t\toriginalEvent: e,\n\t\t})\n\t}\n\n\t/**\n\t * Returns the reference of the native element\n\t */\n\t@Method()\n\tasync getRef(): Promise<HTMLInputElement> {\n\t\treturn this.inputRef\n\t}\n\n\t/**\n\t * Validate the WCAG attributes of the component\n\t */\n\t@Method()\n\tasync validateWcag(): Promise<void> {\n\t\tvalidateWcagRef(this.wcagDescribedBy, \"wcag-described-by\", FormCheckboxClass.root)\n\t\tvalidateWcagRef(this.wcagLabelledBy, \"wcag-labelled-by\", FormCheckboxClass.root)\n\t\tvalidateWcagLabelFor(this.identifier || this.checkboxId, this.wcagLabelledBy, FormCheckboxClass.root)\n\t}\n}\n","/*\n * Form Control\n */\n\n$class: \".gov-form-control\";\n\n#{$class} {\n\t&__holder {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tpadding: 0;\n\t\tborder: none;\n\t}\n\t&__bottom {\n\t\t@include reset-last-margin();\n\t}\n\n\t// VARIANTS\n\t.gov-form-label .gov-form-label__label {\n\t\tmargin: rem-calc(0 0 4);\n\t}\n\t#{$class} {\n\t\t&__bottom {\n\t\t\tmargin: rem-calc(4 0 0);\n\t\t}\n\t}\n\t&[type=\"file\"] {\n\t\t.gov-form-label[slot=\"top\"] .gov-form-label__label {\n\t\t\tmargin: rem-calc(0 0 8);\n\t\t}\n\t\t#{$class} {\n\t\t\t&__bottom {\n\t\t\t\tmargin: rem-calc(8 0 0);\n\t\t\t}\n\t\t}\n\t}\n\t// Checkbox, radio\n\t@each $size, $definitions in $form-checkbox-core-sizes {\n\t\t&[size=\"#{$size}\"][type=\"checkbox\"],\n\t\t&[size=\"#{$size}\"][type=\"radio\"] {\n\t\t\t#{$class} {\n\t\t\t\t$indicator-width: get(\"indicator-size\", $definitions);\n\t\t\t\t&__bottom {\n\t\t\t\t\tmargin-top: get(\"message-gap\", $definitions);\n\t\t\t\t\tmargin-left: calc($indicator-width + get(\"gap\", $definitions));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Switch\n\t@each $size, $definitions in $form-switch-sizes {\n\t\t&[size=\"#{$size}\"][type=\"switch\"] {\n\t\t\t#{$class} {\n\t\t\t\t$indicator-ratio: calc(5 / 3);\n\t\t\t\t$indicator-width: calc(get(\"indicator-height\", $definitions) * $indicator-ratio);\n\t\t\t\t&__bottom {\n\t\t\t\t\tmargin-top: get(\"message-gap\", $definitions);\n\t\t\t\t\tmargin-left: calc($indicator-width + get(\"gap\", $definitions));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// STATES\n\t@include parameter(\"invalid\") {\n\t\t.gov-form-label[slot=\"top\"] .gov-form-label__label {\n\t\t\tcolor: $form-state-color-error;\n\t\t}\n\t}\n\t@include parameter(\"disabled\") {\n\t\t.gov-form-label__label {\n\t\t\tpointer-events: none;\n\t\t}\n\t}\n}\n","import { Component, Element, h, Host, Prop } from \"@stencil/core\"\nimport { govForm } from \"../../../helpers/Dom/form\"\nimport { GovForm } from \"../../../helpers/Dom/form.types\"\nimport { govHost } from \"../../../helpers/Dom/template\"\nimport { GovHost } from \"../../../helpers/Dom/template.types\"\nimport { createID, splitByWhitespace } from \"../../../utils/string.utils\"\nimport { FormControlClass, FormControlSizesType } from \"./constants\"\n\n@Component({\n\ttag: \"gov-form-control\",\n\tstyleUrl: \"gov-form-control.scss\",\n})\nexport class GovFormControl {\n\tprivate readonly h: GovHost\n\tprivate f: GovForm\n\tprivate readonly controlId: string\n\tprivate observer: MutationObserver\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t\tthis.f = govForm(this.h)\n\t\tthis.controlId = createID(\"GovFormControl\")\n\t}\n\n\t@Element() host: HTMLGovFormControlElement\n\t/**\n\t * Defines the space between nested components.\n\t */\n\t@Prop() readonly gap?: FormControlSizesType\n\t/**\n\t * Form element identifier\n\t */\n\t@Prop({ attribute: \"identifier\" }) readonly identifier: string\n\t/**\n\t * Indicates the entered value of child form element does not conform to the format expected by the application.\n\t */\n\t@Prop() readonly invalid: boolean = false\n\t/**\n\t/**\n\t * Indicates the form element is disabled\n\t */\n\t@Prop() readonly disabled: boolean = false\n\t/**\n\t/**\n\t * Indicates the entered value of child form element does conform to the format expected by the application.\n\t */\n\t@Prop() readonly success: boolean = false\n\t/**\n\t * Use control as a fieldset for better accessibility.\n\t * Note: Don't forget to set the legend attribute of the gov-form-label component\n\t */\n\t@Prop() readonly fieldset: boolean = false\n\t/**\n\t * Form element size.\n\t */\n\t@Prop() readonly size?: FormControlSizesType = \"m\"\n\n\tcomponentDidRender() {\n\t\tthis.passChildAttrs()\n\t\tthis.invalidChildAttrs()\n\t\tthis.disabledChildAttrs()\n\t\tthis.syncControlMessages()\n\t\tthis.formElementDescriptionControl()\n\t}\n\n\tdisconnectedCallback(): void {\n\t\tthis.observer?.disconnect()\n\t}\n\n\tprivate passChildAttrs() {\n\t\tconst formElements = [\n\t\t\t\"gov-form-select\",\n\t\t\t\"gov-form-input\",\n\t\t\t\"gov-form-switch\",\n\t\t\t\"gov-form-checkbox\",\n\t\t\t\"gov-form-radio\",\n\t\t\t\"gov-form-multi-select\",\n\t\t\t\"gov-form-file\",\n\t\t\t\"gov-form-search\",\n\t\t]\n\t\tthis.h.passChildAttr(formElements, \"success\", this.success)\n\n\t\tif (this.f.hasGroupChildren === false) {\n\t\t\tthis.h.passChildAttr([...formElements, \"gov-form-label\"], \"identifier\", this.identifier || this.controlId)\n\t\t}\n\t}\n\n\tprivate invalidChildAttrs() {\n\t\tconst formElements = [\n\t\t\t\"gov-form-select\",\n\t\t\t\"gov-form-input\",\n\t\t\t\"gov-form-switch\",\n\t\t\t\"gov-form-checkbox\",\n\t\t\t\"gov-form-radio\",\n\t\t\t\"gov-form-multi-select\",\n\t\t\t\"gov-form-file\",\n\t\t\t\"gov-form-search\",\n\t\t]\n\t\tthis.h.passChildAttr(formElements, \"invalid\", this.invalid)\n\n\t\tif (this.f.hasGroupChildren === false) {\n\t\t\tthis.h.passChildAttr([...formElements, \"gov-form-label\"], \"identifier\", this.identifier || this.controlId)\n\t\t}\n\t}\n\n\tprivate disabledChildAttrs() {\n\t\tconst formElements = [\n\t\t\t\"gov-form-select\",\n\t\t\t\"gov-form-input\",\n\t\t\t\"gov-form-switch\",\n\t\t\t\"gov-form-checkbox\",\n\t\t\t\"gov-form-radio\",\n\t\t\t\"gov-form-multi-select\",\n\t\t\t\"gov-form-file\",\n\t\t\t\"gov-form-search\",\n\t\t]\n\t\tthis.h.passChildAttr(formElements, \"disabled\", this.disabled)\n\n\t\tif (this.f.hasGroupChildren === false) {\n\t\t\tthis.h.passChildAttr([...formElements, \"gov-form-label\"], \"identifier\", this.identifier || this.controlId)\n\t\t}\n\t}\n\n\tprivate formElementDescriptionControl() {\n\t\tconst bottomSlot = this.host.querySelector(\".\" + FormControlClass.bottom)\n\t\tif (!bottomSlot) return\n\t\tthis.observer = new MutationObserver(\n\t\t\tfunction() {\n\t\t\t\tthis.syncControlMessages()\n\t\t\t}.bind(this),\n\t\t)\n\n\t\tthis.observer.observe(bottomSlot, { childList: true })\n\t}\n\n\tprivate syncControlMessages() {\n\t\tPromise.all(this.f.messageElements.map((message: HTMLGovFormMessageElement) => message.identifier())).then((ids: string[]) => {\n\t\t\tthis.f.mainElementsInControl.forEach((element: Element) => {\n\t\t\t\tconst currentValue = splitByWhitespace(element.getAttribute(\"wcag-described-by\"))\n\t\t\t\telement.removeAttribute(\"wcag-described-by\")\n\t\t\t\tif (Array.isArray(currentValue)) {\n\t\t\t\t\tcurrentValue.forEach(id => (id.indexOf(\"GovFormMessage\") === -1 ? ids.push(id) : null))\n\t\t\t\t}\n\t\t\t\tif (ids.length) {\n\t\t\t\t\telement.setAttribute(\"wcag-described-by\", ids.join(\" \"))\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\t}\n\n\trender() {\n\t\tconst Tag = this.fieldset ? \"fieldset\" : \"div\"\n\t\treturn (\n\t\t\t<Host size={this.size} class={this.h.classes(FormControlClass.root)}>\n\t\t\t\t<Tag class={FormControlClass.holder}>\n\t\t\t\t\t{this.h.hasSlot(\"top\") && <slot name=\"top\"></slot>}\n\t\t\t\t\t<slot></slot>\n\t\t\t\t\t{this.h.hasSlot(\"bottom\") && (\n\t\t\t\t\t\t<div class={FormControlClass.bottom}>\n\t\t\t\t\t\t\t<slot name=\"bottom\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</Tag>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","export const FormFileClass = {\n\troot: 'gov-form-file',\n\tarea: 'gov-form-file__area',\n\tlabel: 'gov-form-file__label',\n\tinput: 'gov-form-file__input',\n\tlist: 'gov-form-file__list',\n\titem: 'gov-form-file__item',\n\tattachments: 'gov-form-file__attachments',\n}\n","export function formatBytes(bytes: any): string {\n\tconst units = ['bytes', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB']\n\tlet l = 0,\n\t\tn = parseInt(bytes, 10) || 0\n\n\twhile (n >= 1024 && ++l) {\n\t\tn = n / 1024\n\t}\n\n\treturn n.toFixed(n < 10 && l > 0 ? 1 : 0) + ' ' + units[l]\n}\n\nexport function fileAcceptValidation(file: File, accept: string): boolean {\n\tif (typeof accept === 'string' && accept.length) {\n\t\treturn (\n\t\t\taccept\n\t\t\t\t.replace(/\\s/g, '')\n\t\t\t\t.split(',')\n\t\t\t\t.filter(accept => {\n\t\t\t\t\treturn new RegExp(accept.replace('*', '.*')).test(file.type)\n\t\t\t\t}).length > 0\n\t\t)\n\t} else {\n\t\treturn true\n\t}\n}\n\nexport function fileSizeValidation(file: File, maxSize: number): boolean {\n\tconst fileSize = Math.round(file.size)\n\treturn fileSize <= maxSize\n}\n","/*\n * File\n */\n\n$class: \".gov-form-file\";\n\n#{$class} {\n\t@include base();\n\t&__label .gov-form-label__label {\n\t\t@include reset-last-margin();\n\t}\n\t&__input {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tright: 0;\n\t\tbottom: 0;\n\t\tleft: 0;\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\topacity: 0.0001;\n\t\tcursor: pointer;\n\t}\n\t&__attachments {\n\t\tmargin-top: rem-calc(16 0 0);\n\t}\n\t&__item {\n\t\tdisplay: flex;\n\t\tgap: rem-calc(16);\n\t\talign-items: center;\n\t}\n\n\t// STATES\n\t@include parameter(\"disabled\") {\n\t\t#{$class} {\n\t\t\t&__label .gov-form-label__label {\n\t\t\t\tpointer-events: none;\n\t\t\t\t* {\n\t\t\t\t\tcolor: $form-file-disabled-color;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// VARIANTS\n\t@include parameter(\"expanded\") {\n\t\t#{$class} {\n\t\t\t&__area {\n\t\t\t\tposition: relative;\n\t\t\t\twidth: 100%;\n\t\t\t\tpadding: rem-calc(32) rem-calc(22) rem-calc(22);\n\t\t\t\tborder: $form-file-border;\n\t\t\t\ttext-align: center;\n\t\t\t\ttransition: background-color $t ease-in-out;\n\t\t\t\twill-change: background-color;\n\t\t\t\t&.highlight {\n\t\t\t\t\tbackground-color: color(\"primary.200\");\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t&__label .gov-form-label__label {\n\t\t\t\twidth: 100%;\n\t\t\t\tpadding: rem-calc(22);\n\t\t\t\tborder: $form-file-border;\n\t\t\t\ttext-align: center;\n\t\t\t}\n\t\t\t&__attachments {\n\t\t\t\tmargin: rem-calc(24 0 0);\n\t\t\t}\n\t\t}\n\n\t\t// STATES\n\t\t@include parameter(\"invalid\") {\n\t\t\t#{$class} {\n\t\t\t\t&__label .gov-form-label__label {\n\t\t\t\t\tborder-color: $form-state-color-error;\n\t\t\t\t}\n\t\t\t\t&__area {\n\t\t\t\t\tborder-color: $form-state-color-error;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t@include parameter(\"disabled\") {\n\t\t\t#{$class} {\n\t\t\t\t&__area {\n\t\t\t\t\tpointer-events: none;\n\t\t\t\t\tcolor: $form-file-disabled-color;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// MQ\n\t@include mq($from: sm) {\n\t\t@include parameter(\"expanded\") {\n\t\t\t#{$class} {\n\t\t\t\t&__label .gov-form-label__label {\n\t\t\t\t\tpadding: rem-calc(32);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State, Watch } from \"@stencil/core\"\nimport { createID } from \"../../../utils/string.utils\"\nimport { FormFileClass } from \"./constants\"\nimport { govHost, toBoolAttr, toBoolAttrIfDefined } from \"../../../helpers/Dom/template\"\nimport { validateWcagLabelFor, validateWcagRef } from \"../../../helpers/Validate/wcag\"\nimport { canValidateWcagOnRender } from \"../../../helpers/Dom/win\"\nimport { fileAcceptValidation, fileSizeValidation, formatBytes } from \"../../../utils/file.utils\"\nimport { delay } from \"../../../utils/utils\"\nimport { GovForm } from \"../../../helpers/Dom/form.types\"\nimport { GovHost } from \"../../../helpers/Dom/template.types\"\nimport { govForm } from \"../../../helpers/Dom/form\"\nimport { GovFormFileEvent, GovFormFileItem } from \"./gov-form-file.types\"\n\n@Component({\n\ttag: \"gov-form-file\",\n\tstyleUrl: \"gov-form-file.scss\",\n})\nexport class GovFormFile {\n\tprivate f: GovForm\n\tprivate readonly h: GovHost\n\n\tprivate areaRef?: HTMLDivElement\n\tprivate inputRef?: HTMLInputElement\n\tprivate readonly fileId: string\n\n\tconstructor() {\n\t\tthis.fileId = createID(\"GovInputFile\")\n\n\t\tthis.h = govHost(this.host)\n\t\tthis.f = govForm(this.h)\n\t}\n\n\t@Element() host: HTMLGovFormFileElement\n\t/**\n\t * Expands the file input to fill 100% of the container width.\n\t */\n\t@Prop() readonly expanded: boolean = false\n\t/**\n\t * Set whether the input is required or not. Please note that this is necessary for accessible inputs when the user is required to fill them.\n\t * When using this property you need to also set “novalidate” attribute to your form element to prevent browser from displaying its own validation errors.\n\t */\n\t@Prop() readonly required: boolean = false\n\t/**\n\t * Makes the File component disabled.\n\t * This prevents users from being able to interact with the File, and conveys its inactive state to assistive technologies.\n\t */\n\t@Prop() readonly disabled: boolean\n\t/**\n\t * Show list of attachments\n\t */\n\t@Prop({ attribute: \"display-attachments\" }) readonly displayAttachments: boolean = true\n\t/**\n\t * Name of the input.\n\t */\n\t@Prop() readonly name: string\n\t/**\n\t * Same as original parameter\n\t * @link https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/accept\n\t */\n\t@Prop() readonly accept: string\n\t/**\n\t * Same as original parameter\n\t * @link https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/multiple\n\t */\n\t@Prop() readonly multiple: boolean = false\n\t/**\n\t * Maximum embedded file size\n\t */\n\t@Prop({ attribute: \"max-file-size\" }) readonly maxFileSize: number = -1\n\t/**\n\t * Custom File identifier.\n\t */\n\t@Prop({ attribute: \"identifier\" }) readonly identifier: string\n\t/**\n\t * Indicates the entered value does not conform to the format expected by the application.\n\t */\n\t@Prop() readonly invalid: boolean\n\t/**\n\t * Error message when the maximum file size is exceeded\n\t */\n\t@Prop({ attribute: \"error-size\" }) readonly errorSize: string = \"Soubor je větší než povolená velikost {FILE_SIZE}\"\n\t/**\n\t * Insert unsupported file error message\n\t */\n\t@Prop({ attribute: \"error-accept\" }) readonly errorAccept: string = \"Soubor tohoto typu není povolen\"\n\t/**\n\t * Description of the list of attachments\n\t */\n\t@Prop({ attribute: \"attachments-label\" }) readonly attachmentsLabel: string = \"Přílohy\"\n\t/**\n\t * Indicates the id of a component that describes the input.\n\t */\n\t@Prop({ attribute: \"wcag-described-by\" }) readonly wcagDescribedBy: string\n\t/**\n\t * Indicates the id of a component that labels the input.\n\t */\n\t@Prop({ attribute: \"wcag-labelled-by\" }) readonly wcagLabelledBy: string\n\t/**\n\t * Adds accessible label for the remove button that is only shown for screen readers.\n\t */\n\t@Prop({ attribute: \"wcag-remove-label\" }) readonly wcagRemoveLabel: string = \"Odebrat soubor {FILE_NAME}\"\n\t/**\n\t * Adds accessible label for the list of attachments.\n\t */\n\t@Prop({ attribute: \"wcag-attachments-label\" }) readonly wcagAttachmentsLabel: string = \"Přílohy\"\n\t/**\n\t * Emitted when the File has focus.\n\t */\n\t@Event({ eventName: \"gov-focus\" }) govFocus: EventEmitter<GovFormFileEvent>\n\t/**\n\t * Emitted when the File loses focus.\n\t */\n\t@Event({ eventName: \"gov-blur\" }) govBlur: EventEmitter<GovFormFileEvent>\n\t/**\n\t * Called when the list of inserted files is changed\n\t */\n\t@Event({ eventName: \"gov-files\" }) govFiles: EventEmitter<GovFormFileEvent>\n\t/**\n\t * Called when a new file is added\n\t */\n\t@Event({ eventName: \"gov-add-file\" }) govAddFile: EventEmitter<GovFormFileEvent>\n\t/**\n\t * Called when a file is removed from the list\n\t */\n\t@Event({ eventName: \"gov-remove-file\" }) govRemoveFile: EventEmitter<GovFormFileEvent>\n\n\t@State() files: GovFormFileItem[] = []\n\n\t@Watch(\"disabled\")\n\t@Watch(\"invalid\")\n\twatchDisabled(): void {\n\t\tthis.passControlAttrs()\n\t}\n\n\tprivate passControlAttrs() {\n\t\tthis.f.passAttrToControl(\"disabled\", toBoolAttr(this.disabled))\n\t\tthis.f.passAttrToControl(\"invalid\", toBoolAttr(this.invalid))\n\t\tthis.f.passAttrToControl(\"type\", \"File\")\n\t}\n\n\n\tprivate registerListeners() {\n\t\tfunction highlight() {\n\t\t\tthis.areaRef.classList.add(\"highlight\")\n\t\t}\n\n\t\tfunction unhighlight() {\n\t\t\tthis.areaRef.classList.remove(\"highlight\")\n\t\t}\n\n\t\tthis.inputRef.addEventListener(\n\t\t\t\"change\",\n\t\t\te => {\n\t\t\t\te.preventDefault()\n\t\t\t\te.stopPropagation()\n\t\t\t\tconst files = (e.target as HTMLInputElement).files\n\t\t\t\tthis.validateFiles(files)\n\t\t\t},\n\t\t\tfalse,\n\t\t)\n\t\t//this.inputRef.addEventListener('focus')\n\n\t\tif (this.expanded) {\n\t\t\tconst events = [\"dragover\", \"dragleave\"]\n\t\t\tconst inEvents = [\"dragenter\", \"dragover\", \"mouseenter\"]\n\t\t\tconst outEvents = [\"dragleave\", \"drop\", \"mouseleave\"]\n\n\t\t\tevents.map(eventName => this.inputRef.addEventListener(eventName, this.preventDefaults.bind(this), false))\n\t\t\tinEvents.map(eventName => this.inputRef.addEventListener(eventName, highlight.bind(this), false))\n\t\t\toutEvents.forEach(eventName => this.inputRef.addEventListener(eventName, unhighlight.bind(this), false))\n\n\t\t\tthis.areaRef.addEventListener(\"drop\", this.handleDrop.bind(this), false)\n\t\t}\n\t}\n\n\tpreventDefaults(e) {\n\t\te.preventDefault()\n\t\te.stopPropagation()\n\t}\n\n\thandleDrop(e: DragEvent) {\n\t\tconst dataTransfer = e.dataTransfer\n\t\tthis.validateFiles(dataTransfer.files)\n\t}\n\n\tprivate validateFiles(files: FileList) {\n\t\tArray.from(files).map(file => {\n\t\t\tconst isFile = this.files.find(item => item.file.name === file.name && item.file.size === file.size) || null\n\t\t\tif (isFile === null) {\n\t\t\t\tconst isSizeValid = typeof this.maxFileSize === \"number\" && this.maxFileSize > 0 ? fileSizeValidation(file, this.maxFileSize) : true\n\t\t\t\tconst isAcceptValid = fileAcceptValidation(file, this.accept)\n\t\t\t\tconst newFile = {\n\t\t\t\t\tid: createID(\"GovFormFile\"),\n\t\t\t\t\tfile,\n\t\t\t\t\tacceptValid: isAcceptValid,\n\t\t\t\t\tsizeValid: isSizeValid,\n\t\t\t\t}\n\t\t\t\tthis.files = [...this.files, newFile]\n\t\t\t\tthis.govAddFile.emit({\n\t\t\t\t\tcomponent: FormFileClass.root,\n\t\t\t\t\tfile: newFile,\n\t\t\t\t})\n\t\t\t}\n\t\t})\n\n\t\tthis.govFiles.emit({\n\t\t\tcomponent: FormFileClass.root,\n\t\t\tfiles: this.files,\n\t\t})\n\t}\n\n\tcomponentWillLoad() {\n\t\tthis.f.passAttrToLabel(\"required\", String(this.required))\n\t\tthis.watchDisabled()\n\t}\n\n\tasync componentDidRender() {\n\t\tif (canValidateWcagOnRender()) {\n\t\t\tawait delay(500)\n\t\t\tawait this.validateWcag()\n\t\t}\n\n\t\tthis.registerListeners()\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={this.h.classes([FormFileClass.root])} invalid={toBoolAttrIfDefined(this.invalid)} expanded={toBoolAttrIfDefined(this.expanded)}>\n\t\t\t\t<div class={FormFileClass.area} ref={el => (this.areaRef = el as HTMLDivElement)}>\n\t\t\t\t\t<slot />\n\t\t\t\t\t<input\n\t\t\t\t\t\tclass={FormFileClass.input}\n\t\t\t\t\t\tref={el => (this.inputRef = el as HTMLInputElement)}\n\t\t\t\t\t\tid={this.identifier || this.fileId}\n\t\t\t\t\t\ttype=\"file\"\n\t\t\t\t\t\tname={this.name}\n\t\t\t\t\t\taccept={this.accept}\n\t\t\t\t\t\tmultiple={this.multiple}\n\t\t\t\t\t\tonChange={this.onChangeHandler.bind(this)}\n\t\t\t\t\t\tonFocus={this.onFocusHandler.bind(this)}\n\t\t\t\t\t\tonBlur={this.onBlurHandler.bind(this)}\n\t\t\t\t\t\trequired={this.required}\n\t\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\t\taria-required={toBoolAttrIfDefined(this.required)}\n\t\t\t\t\t\taria-invalid={toBoolAttrIfDefined(this.invalid)}\n\t\t\t\t\t\taria-describedby={this.wcagDescribedBy}\n\t\t\t\t\t\taria-labelledby={this.wcagLabelledBy}\n\t\t\t\t\t\taria-disabled={toBoolAttrIfDefined(this.disabled)}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\n\t\t\t\t{this.h.hasSlot(\"attachments\") ? (\n\t\t\t\t\t<div class={FormFileClass.attachments}>\n\t\t\t\t\t\t<slot name={\"attachments\"} />\n\t\t\t\t\t</div>\n\t\t\t\t) : null}\n\n\t\t\t\t{this.files.length && this.displayAttachments ? (\n\t\t\t\t\t<div class={FormFileClass.attachments}>\n\t\t\t\t\t\t<gov-attachments label={this.wcagAttachmentsLabel} wcag-label={this.wcagAttachmentsLabel}>\n\t\t\t\t\t\t\t{this.files.map(item => (\n\t\t\t\t\t\t\t\t<gov-attachments-item wcag-remove-labelled-by={item.id} on-gov-remove={() => this.onRemoveFileHandler(item)}>\n\t\t\t\t\t\t\t\t\t<span class={\"sr-only\"} id={item.id}>\n\t\t\t\t\t\t\t\t\t\t{this.wcagRemoveLabel.replace(\"{FILE_NAME}\", item.file.name)}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t{item.file.name}\n\t\t\t\t\t\t\t\t\t{item.acceptValid === false ? (\n\t\t\t\t\t\t\t\t\t\t<gov-form-message slot=\"message\" variant=\"error\">\n\t\t\t\t\t\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"exclamation-triangle-fill\"></gov-icon>\n\t\t\t\t\t\t\t\t\t\t\t{item.acceptValid === false ? this.errorAccept : null}\n\t\t\t\t\t\t\t\t\t\t</gov-form-message>\n\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t\t{item.sizeValid === false ? (\n\t\t\t\t\t\t\t\t\t\t<gov-form-message slot=\"message\" variant=\"error\">\n\t\t\t\t\t\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"exclamation-triangle-fill\"></gov-icon>\n\t\t\t\t\t\t\t\t\t\t\t{this.errorSize.replace(\"{FILE_SIZE}\", formatBytes(this.maxFileSize))}\n\t\t\t\t\t\t\t\t\t\t</gov-form-message>\n\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t\t<span slot=\"info\">({formatBytes(item.file.size)})</span>\n\t\t\t\t\t\t\t\t</gov-attachments-item>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</gov-attachments>\n\t\t\t\t\t</div>\n\t\t\t\t) : null}\n\t\t\t</Host>\n\t\t)\n\t}\n\n\tprivate onRemoveFileHandler(file: GovFormFileItem) {\n\t\tconst index = this.files.findIndex(item => item.id === file.id)\n\t\tif (index !== -1) {\n\t\t\tconst files = this.files\n\t\t\tconst removeFile = this.files[index]\n\t\t\tfiles.splice(index, 1)\n\t\t\tthis.files = [...files]\n\t\t\tthis.govRemoveFile.emit({\n\t\t\t\tcomponent: FormFileClass.root,\n\t\t\t\tfile: removeFile,\n\t\t\t})\n\t\t\tthis.govFiles.emit({\n\t\t\t\tcomponent: FormFileClass.root,\n\t\t\t\tfiles,\n\t\t\t})\n\t\t}\n\t}\n\n\tprivate onFocusHandler(e: FocusEvent) {\n\t\te.stopPropagation()\n\t\tthis.govFocus.emit({\n\t\t\tcomponent: FormFileClass.root,\n\t\t\toriginalEvent: e,\n\t\t})\n\t}\n\n\tprivate onBlurHandler(e: FocusEvent) {\n\t\te.stopPropagation()\n\t\tthis.govBlur.emit({\n\t\t\tcomponent: FormFileClass.root,\n\t\t\toriginalEvent: e,\n\t\t})\n\t}\n\n\tprivate onChangeHandler(e: Event) {\n\t\te.stopPropagation()\n\t}\n\n\t/**\n\t * Returns the reference of the native element\n\t */\n\t@Method()\n\tasync getRef(): Promise<HTMLInputElement> {\n\t\treturn this.inputRef\n\t}\n\n\t/**\n\t * Returns the reference of the native area element\n\t */\n\t@Method()\n\tasync getAreaRef(): Promise<HTMLDivElement> {\n\t\treturn this.areaRef\n\t}\n\n\t/**\n\t * Validate the WCAG attributes of the component\n\t */\n\t@Method()\n\tasync validateWcag(): Promise<void> {\n\t\tvalidateWcagRef(this.wcagDescribedBy, \"wcag-described-by\", FormFileClass.root)\n\t\tvalidateWcagRef(this.wcagLabelledBy, \"wcag-labelled-by\", FormFileClass.root)\n\t\tvalidateWcagLabelFor(this.identifier || this.fileId, this.wcagLabelledBy, FormFileClass.root)\n\t}\n}\n","import { pick } from \"../../../utils/utils\"\nimport { Sizes } from \"../../../core/constants/sizes\"\nimport { ValueOf } from \"../../../types/interfaces\"\n\nexport const FormGroupSizes = pick(Sizes, ['_2XS', '_XS', '_S', '_M', '_L'])\nexport type FormGroupSizesType = `${ValueOf<typeof FormGroupSizes>}`\n\nexport const FormGroupClass = {\n\troot: 'gov-form-group',\n}\n","$class: \".gov-form-group\";\n\n#{$class} {\n\t@include base(flex);\n\tflex-direction: column;\n\talign-items: flex-start;\n\t.gov-form-label .gov-form-label__label {\n\t\tmargin: 0;\n\t}\n\n\t// VARIANTS\n\t@each $gap, $definitions in $form-group-gaps {\n\t\t&[gap=\"#{$gap}\"] {\n\t\t\tgap: get($gap, $sizes);\n\t\t}\n\t}\n}\n","import { Component, Element, h, Host, Prop, Watch } from \"@stencil/core\"\nimport { FormGroupClass, FormGroupSizes, FormGroupSizesType } from \"./constants\"\nimport { GovHost } from \"../../../helpers/Dom/template.types\"\nimport { govHost } from \"../../../helpers/Dom/template\"\nimport { validateProp } from \"../../../helpers/Validate/props\"\n\n@Component({\n\ttag: \"gov-form-group\",\n\tstyleUrl: \"gov-form-group.scss\",\n})\nexport class GovFormGroup {\n\tprivate readonly h: GovHost\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t}\n\n\t@Element() host: HTMLGovFormGroupElement\n\t/**\n\t * Gap's size.\n\t */\n\t@Prop() readonly gap?: FormGroupSizesType = undefined\n\n\t@Watch(\"gap\")\n\tvalidateGap(newValue: string): void {\n\t\tvalidateProp(FormGroupSizes, newValue, FormGroupClass.root)\n\t}\n\n\tcomponentWillLoad(): void {\n\t\tthis.validateGap(this.gap)\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host gap={this.gap} class={this.h.classes(FormGroupClass.root)}>\n\t\t\t\t<slot></slot>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","/*\n * Input\n */\n\n@import \"../input/gov-form-input-core.scss\";\n$class: \".gov-form-input\";\n\n#{$class} {\n\t@extend %form-input-core;\n\n\t// STATES\n\t@include parameter(\"invalid\") {\n\t\t*[slot=\"right-icon\"]:not(.icon-validation):not(.icon-arrow) {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t// VARIANTS\n\t&[type=\"reset\"] {\n\t\tinput {\n\t\t\tborder-width: 0;\n\t\t\t&:focus {\n\t\t\t\toutline: none;\n\t\t\t}\n\t\t}\n\t}\n}\n","import { Component, Element, Event, EventEmitter, Host, Method, Prop, State, Watch, h } from '@stencil/core'\nimport { govForm } from '../../../helpers/Dom/form'\nimport { GovForm } from '../../../helpers/Dom/form.types'\nimport { govHost, toBoolAttr, toBoolAttrIfDefined, toOnOffAttrIfDefined } from \"../../../helpers/Dom/template\"\nimport { GovHost } from '../../../helpers/Dom/template.types'\nimport { canValidateWcagOnRender } from '../../../helpers/Dom/win'\nimport { validateProp } from '../../../helpers/Validate/props'\nimport { validateWcagLabelFor, validateWcagRef } from '../../../helpers/Validate/wcag'\nimport { createID } from '../../../utils/string.utils'\nimport { delay } from '../../../utils/utils'\nimport { FormInputClass, FormInputSizes, FormInputSizesType, FormInputVariantType, FormInputVariants, InputType, Type } from './constants'\nimport { FormInputEvent } from './gov-form-input.types'\n\nenum Tags {\n\tINPUT = 'input',\n\tTEXTAREA = 'textarea',\n}\n\n@Component({\n\ttag: 'gov-form-input',\n\tstyleUrl: 'gov-form-input.scss',\n})\nexport class GovFormInput {\n\tprivate f: GovForm\n\tprivate readonly h: GovHost\n\tprivate inputRef?: HTMLInputElement\n\tprivate readonly inputId: string\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t\tthis.inputId = createID('GovInput')\n\t\tthis.f = govForm(this.h)\n\t}\n\n\t@Element() host: HTMLGovFormInputElement\n\t/**\n\t * Value of input\n\t */\n\t@Prop({ reflect: true, mutable: true }) value: string\n\t/**\n\t * Custom input identifier.\n\t */\n\t@Prop({ attribute: 'identifier' }) readonly identifier: string\n\t/**\n\t * Style variation of the form input.\n\t */\n\t@Prop() readonly variant?: FormInputVariantType = 'secondary'\n\t/**\n\t * Indicates the entered value of child form element does conform to the format expected by the application.\n\t */\n\t@Prop() readonly success: boolean\n\t/**\n\t * Input’s size.\n\t */\n\t@Prop() readonly size?: FormInputSizesType = 'm'\n\t/**\n\t * Name of the input.\n\t */\n\t@Prop() readonly name: string\n\t/**\n\t * Generates a texarea for the possibility of multiple lines\n\t */\n\t@Prop() readonly multiline: boolean\n\t/**\n\t * Same as original parameter https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea#attr-rows\n\t */\n\t@Prop() readonly rows: number\n\t/**\n\t * Same as original parameter https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea#attr-cols\n\t */\n\t@Prop() readonly cols: number\n\t/**\n\t * Set whether the input is required or not. Please note that this is necessary for accessible inputs when the user is required to fill them.\n\t * When using this property you need to also set “novalidate” attribute to your form element to prevent browser from displaying its own validation errors.\n\t */\n\t@Prop() readonly required: boolean = false\n\t/**\n\t * Makes the input component disabled.\n\t * This prevents users from being able to interact with the select, and conveys its inactive state to assistive technologies.\n\t */\n\t@Prop() readonly disabled: boolean\n\t/**\n\t * Text that appears in the form control when it has no value set\n\t */\n\t@Prop() readonly placeholder: string\n\t/**\n\t * The value is not editable\n\t */\n\t@Prop() readonly readonly: boolean\n\t/**\n\t * Minimum length (number of characters) of value\n\t */\n\t@Prop() readonly minlength: number\n\t/**\n\t * Maximum length (number of characters) of value\n\t */\n\t@Prop() readonly maxlength: number\n\t/**\n\t * Minimum value that is acceptable and valid for the input containing the attribute\n\t */\n\t@Prop() readonly min?: string | number\n\t/**\n\t * Maximum value that is acceptable and valid for the input containing the attribute\n\t */\n\t@Prop() readonly max?: string | number\n\t/**\n\t * Same as original parameter https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea#attr-autocomplete\n\t */\n\t@Prop() readonly autocomplete: boolean\n\t/**\n\t * Same as original parameter https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea#attr-autocorrect\n\t */\n\t@Prop() readonly autocorrect: boolean\n\t/**\n\t * Defineds the visual style of input\n\t */\n\t@Prop() readonly type?: Type\n\t/**\n\t * Same as original parameter\n\t * @link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#input_types\n\t */\n\t@Prop() readonly inputType: InputType = 'text'\n\t/**\n\t * Same as original parameter\n\t * @link https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/input_role\n\t */\n\t@Prop() readonly role: string\n\t/**\n\t * Indicates the entered value does not conform to the format expected by the application.\n\t */\n\t@Prop() readonly invalid: boolean\n\t/**\n\t * Indicates the id of a component that describes the input.\n\t */\n\t@Prop({ attribute: 'wcag-described-by' }) readonly wcagDescribedBy: string\n\t/**\n\t * Indicates the id of a component that labels the input.\n\t */\n\t@Prop({ attribute: 'wcag-labelled-by' }) readonly wcagLabelledBy: string\n\t/**\n\t * Indicates the id of a component that describes the input.\n\t */\n\t@Prop({ attribute: 'wcag-owns' }) readonly wcagOwns: string\n\t/**\n\t * Indicates whether inputting text could trigger display of one or more predictions of the user's intended value.\n\t */\n\t@Prop({ attribute: 'wcag-autocomplete' }) readonly wcagAutocomplete: string\n\t/**\n\t * Attribute is set on an element to indicate if a control is expanded or collapsed\n\t */\n\t@Prop({ attribute: 'wcag-expanded' }) readonly wcagExpanded: boolean\n\t/**\n\t * Emitted when the input has focus.\n\t */\n\t@Event({ eventName: 'gov-focus' }) govFocus: EventEmitter<FormInputEvent>\n\t/**\n\t * Emitted when the input loses focus.\n\t */\n\t@Event({ eventName: 'gov-blur' }) govBlur: EventEmitter<FormInputEvent>\n\t/**\n\t * Emitted when the input change value.\n\t */\n\t@Event({ eventName: 'gov-input' }) govInput: EventEmitter<FormInputEvent>\n\t/**\n\t * Emitted when the input change value.\n\t */\n\t@Event({ eventName: 'gov-keyup' }) govKeyUp: EventEmitter<FormInputEvent>\n\t/**\n\t * Emitted when the input change value.\n\t */\n\t@Event({ eventName: 'gov-keydown' }) govKeyDown: EventEmitter<FormInputEvent>\n\t@State() focused: boolean\n\n\t@Watch('variant')\n\tvalidateVariant(newValue: string): void {\n\t\tvalidateProp(FormInputVariants, newValue, FormInputClass.root)\n\t}\n\n\t@Watch('size')\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(FormInputSizes, newValue, FormInputClass.root)\n\t}\n\n\t@Watch(\"disabled\")\n\t@Watch(\"invalid\")\n\t@Watch(\"type\")\n\t@Watch(\"size\")\n\twatchDisabled(): void {\n\t\tthis.passControlAttrs()\n\t}\n\n\tprivate passControlAttrs() {\n\t\tthis.f.passAttrToControl(\"size\", this.size)\n\t\tthis.f.passAttrToControl(\"disabled\", toBoolAttr(this.disabled))\n\t\tthis.f.passAttrToControl(\"invalid\", toBoolAttr(this.invalid))\n\t\tthis.f.passAttrToControl('type', this.multiline ? Tags.TEXTAREA : Tags.INPUT)\n\t}\n\n\tcomponentWillLoad() {\n\t\tthis.validateVariant(this.variant)\n\t\tthis.validateSize(this.size)\n\t\tthis.passControlAttrs()\n\n\t\tthis.f.passAttrToLabel('required', String(this.required))\n\t}\n\n\tasync componentDidRender() {\n\t\tif (canValidateWcagOnRender()) {\n\t\t\tawait delay(500)\n\t\t\tawait this.validateWcag()\n\t\t}\n\t}\n\n\trender() {\n\t\tconst Tag = this.multiline ? Tags.TEXTAREA : Tags.INPUT\n\n\t\treturn (\n\t\t\t<Host class={FormInputClass.root} size={this.size} variant={this.variant} type={this.type}>\n\t\t\t\t{this.h.hasSlot('prefix') && <slot name=\"prefix\"></slot>}\n\t\t\t\t<span class=\"element\">\n\t\t\t\t\t{this.h.hasSlot('left-icon') && <slot name=\"left-icon\" />}\n\n\t\t\t\t\t{this.h.hasSlot('right-icon') && !(this.success || this.invalid) && <slot name=\"right-icon\" />}\n\n\t\t\t\t\t{this.success && !this.multiline && <gov-icon slot=\"right-icon\" class=\"icon-validation\" name=\"check-lg\"></gov-icon>}\n\t\t\t\t\t{this.invalid && !this.multiline && <gov-icon slot=\"right-icon\" class=\"icon-validation\" name=\"exclamation-lg\"></gov-icon>}\n\t\t\t\t\t<Tag\n\t\t\t\t\t\ttype={this.inputType}\n\t\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\t\tid={this.identifier || this.inputId}\n\t\t\t\t\t\tname={this.name}\n\t\t\t\t\t\tonFocus={this.onFocusHandler.bind(this)}\n\t\t\t\t\t\tonInput={this.onInputHandler.bind(this)}\n\t\t\t\t\t\tonBlur={this.onBlurHandler.bind(this)}\n\t\t\t\t\t\tonKeyUp={this.onKeyUpHandler.bind(this)}\n\t\t\t\t\t\tonKeyDown={this.onKeyDownHandler.bind(this)}\n\t\t\t\t\t\tref={el => (this.inputRef = el as HTMLInputElement)}\n\t\t\t\t\t\tplaceholder={this.placeholder}\n\t\t\t\t\t\tvalue={this.value}\n\t\t\t\t\t\treadonly={toBoolAttrIfDefined(this.readonly)}\n\t\t\t\t\t\tautocomplete={toOnOffAttrIfDefined(this.autocomplete)}\n\t\t\t\t\t\tautocorrect={toOnOffAttrIfDefined(this.autocorrect)}\n\t\t\t\t\t\tminlength={this.minlength}\n\t\t\t\t\t\tmaxlength={this.maxlength}\n\t\t\t\t\t\tmin={this.min}\n\t\t\t\t\t\tmax={this.max}\n\t\t\t\t\t\trequired={this.required}\n\t\t\t\t\t\trows={this.rows}\n\t\t\t\t\t\tcols={this.cols}\n\t\t\t\t\t\trole={this.role}\n\t\t\t\t\t\taria-required={toBoolAttrIfDefined(this.required)}\n\t\t\t\t\t\taria-invalid={toBoolAttrIfDefined(this.invalid)}\n\t\t\t\t\t\taria-disabled={toBoolAttrIfDefined(this.disabled)}\n\t\t\t\t\t\taria-describedby={this.wcagDescribedBy}\n\t\t\t\t\t\taria-labelledby={this.wcagLabelledBy}\n\t\t\t\t\t\taria-owns={this.wcagOwns}\n\t\t\t\t\t\taria-expanded={toBoolAttrIfDefined(this.wcagExpanded)}\n\t\t\t\t\t\taria-autocomplete={this.wcagAutocomplete}\n\t\t\t\t\t/>\n\t\t\t\t</span>\n\t\t\t\t{this.h.hasSlot('sufix') && <slot name=\"sufix\"></slot>}\n\t\t\t</Host>\n\t\t)\n\t}\n\n\tprivate onFocusHandler(e: FocusEvent) {\n\t\te.stopPropagation()\n\t\tthis.focused = true\n\t\tthis.govFocus.emit({\n\t\t\tcomponent: FormInputClass.root,\n\t\t\tvalue: this.value,\n\t\t\toriginalEvent: e,\n\t\t})\n\t}\n\n\tprivate onBlurHandler(e: FocusEvent) {\n\t\te.stopPropagation()\n\t\tthis.focused = false\n\t\tthis.govBlur.emit({\n\t\t\tcomponent: FormInputClass.root,\n\t\t\tvalue: this.value,\n\t\t\toriginalEvent: e,\n\t\t})\n\t}\n\n\tprivate onKeyUpHandler(e: KeyboardEvent) {\n\t\te.stopPropagation()\n\t\tthis.govKeyUp.emit({\n\t\t\tcomponent: FormInputClass.root,\n\t\t\tvalue: this.value,\n\t\t\toriginalEvent: e,\n\t\t})\n\t}\n\n\tprivate onKeyDownHandler(e: KeyboardEvent) {\n\t\te.stopPropagation()\n\t\tthis.govKeyDown.emit({\n\t\t\tcomponent: FormInputClass.root,\n\t\t\tvalue: this.value,\n\t\t\toriginalEvent: e,\n\t\t})\n\t}\n\n\tprivate onInputHandler(e: InputEvent) {\n\t\tthis.value = (e.target as HTMLInputElement).value\n\t\te.stopPropagation()\n\t\tthis.govInput.emit({\n\t\t\tcomponent: FormInputClass.root,\n\t\t\tvalue: this.value,\n\t\t\toriginalEvent: e,\n\t\t})\n\t}\n\n\t/**\n\t * Returns the current state of the component\n\t */\n\t@Method()\n\tasync setFocus(options?: FocusOptions): Promise<void> {\n\t\treturn this.inputRef.focus(options)\n\t}\n\n\t/**\n\t * Sets the ordered value of the element\n\t */\n\t@Method()\n\tasync setValue(value: string): Promise<void> {\n\t\tthis.value = value\n\t}\n\n\t/**\n\t * Clears input value\n\t */\n\t@Method()\n\tasync clearValue(): Promise<void> {\n\t\tthis.value = ''\n\t\tthis.inputRef.value = ''\n\t}\n\n\t/**\n\t * Returns an instance of the native html input element\n\t */\n\t@Method()\n\tasync getRef(): Promise<HTMLInputElement> {\n\t\treturn this.inputRef\n\t}\n\n\t/**\n\t * Validate the WCAG attributes of the component\n\t */\n\t@Method()\n\tasync validateWcag(): Promise<void> {\n\t\tvalidateWcagRef(this.wcagDescribedBy, 'wcag-described-by', FormInputClass.root)\n\t\tvalidateWcagRef(this.wcagLabelledBy, 'wcag-labelled-by', FormInputClass.root)\n\t\tvalidateWcagRef(this.wcagOwns, 'wcag-owns', FormInputClass.root)\n\t\tvalidateWcagLabelFor(this.identifier || this.inputId, this.wcagLabelledBy, FormInputClass.root)\n\t}\n}\n","/*\n * Label\n */\n\n$class: \".gov-form-label\";\n\n#{$class} {\n\t@include base(flex);\n\t&__label {\n\t\tdisplay: inline-block;\n\t\tcolor: $form-label-color;\n\t\tcursor: pointer;\n\t\tbox-sizing: border-box;\n\t}\n}\n","import { Component, Event, EventEmitter, h, Prop, Host } from '@stencil/core'\nimport { FormLabelClass, FormLabelSizesTypes } from './constants'\n\n@Component({\n\ttag: 'gov-form-label',\n\tstyleUrl: 'gov-form-label.scss',\n})\nexport class GovFormLabel {\n\t/**\n\t * Identifier for label.\n\t */\n\t@Prop({ attribute: 'identifier' }) readonly identifier: string\n\t/**\n\t * Label's size.\n\t */\n\t@Prop() readonly size?: FormLabelSizesTypes = 'm'\n\t/**\n\t * Set whether the input is required or not.\n\t */\n\t@Prop() readonly required: boolean = false\n\t/**\n\t * Use label as a legend for better accessibility.\n\t * Note: Don't forget to set the fieldset attribute of the gov-form-control component\n\t */\n\t@Prop() readonly legend: boolean = false\n\t/**\n\t * Emitted when the label click.\n\t */\n\t@Event({ eventName: 'gov-click' }) govClick: EventEmitter<PointerEvent>\n\n\trender() {\n\t\tconst Tag = this.legend ? 'legend' : 'label'\n\t\treturn (\n\t\t\t<Host class={FormLabelClass.root} size={this.size}>\n\t\t\t\t<Tag class={FormLabelClass.label} htmlFor={this.identifier} onClick={() => this.govClick.emit()}>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t\t{this.required ? <span class=\"gov-color--error-500\"> *</span> : null}\n\t\t\t\t</Tag>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","/*\n * Form Message\n */\n\n$class: \".gov-form-message\";\n$font-size: $font-size-s;\n\n#{$class} {\n\t@include typography($font-size);\n\tdisplay: flex;\n\tgap: rem-calc(8);\n\tmargin: rem-calc(0 0 16);\n\t&__icon {\n\t\tposition: relative;\n\t\ttop: calc(var(--gov-text-#{$font-size}-font-size) / 6);\n\t\tdisplay: flex;\n\t\t& > * {\n\t\t\twidth: calc(var(--gov-text-#{$font-size}-font-size) * 1.167);\n\t\t\theight: calc(var(--gov-text-#{$font-size}-font-size) * 1.167);\n\t\t}\n\t}\n\n\t@each $variant, $definitions in $form-message-variants {\n\t\t&[variant=\"#{$variant}\"] {\n\t\t\tcolor: get(\"color\", $definitions);\n\t\t}\n\t}\n}\n","import { Component, Element, h, Host, Method, Prop, Watch } from '@stencil/core'\nimport { FormMessageClass, FormMessageVariants, FormMessageVariantType } from './constants'\nimport { govHost } from '../../../helpers/Dom/template'\nimport { GovHost } from '../../../helpers/Dom/template.types'\nimport { validateProp } from '../../../helpers/Validate/props'\nimport { createID } from '../../../utils/string.utils'\n\n@Component({\n\ttag: 'gov-form-message',\n\tstyleUrl: 'gov-form-message.scss',\n})\nexport class GovFormMessage {\n\th: GovHost\n\tprivate readonly messageId: string\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t\tthis.messageId = createID('GovFormMessage')\n\t}\n\n\t@Element() host: HTMLGovFormMessageElement\n\t/**\n\t * Style variation of the message.\n\t */\n\t@Prop({ attribute: 'variant' }) readonly variant?: FormMessageVariantType = 'secondary'\n\n\t@Watch('variant')\n\tvalidateVariant(newValue: string): void {\n\t\tvalidateProp(FormMessageVariants, newValue, FormMessageClass.root)\n\t}\n\n\tcomponentWillLoad(): void {\n\t\tthis.validateVariant(this.variant)\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={this.h.classes(FormMessageClass.root)} variant={this.variant}>\n\t\t\t\t{this.h.hasSlot('icon') && (\n\t\t\t\t\t<span class={FormMessageClass.icon}>\n\t\t\t\t\t\t<slot name=\"icon\" />\n\t\t\t\t\t</span>\n\t\t\t\t)}\n\t\t\t\t<span id={this.messageId} class={FormMessageClass.content}>\n\t\t\t\t\t<slot />\n\t\t\t\t</span>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\t/**\n\t * Returns unique identfiier of message\n\t */\n\t@Method()\n\tasync identifier(): Promise<string> {\n\t\treturn this.messageId\n\t}\n}\n","/*\n * Multiselect\n */\n\n@import \"../select/gov-form-select-core.scss\";\n$class: \".gov-form-multi-select\";\n\n#{$class} {\n\t@extend %form-select-core;\n\tflex-wrap: wrap;\n\t&__wrap {\n\t\tdisplay: flex;\n\t\tgap: rem-calc(8);\n\t\twidth: 100%;\n\t}\n\t&__list {\n\t\t@extend %reset-ul;\n\t\t@include typography($font-size-xs);\n\t\tdisplay: flex;\n\t\tgap: rem-calc(8);\n\t\tflex-wrap: wrap;\n\t}\n\t&__list > &__item {\n\t\t@extend %reset-ul-li;\n\t\tposition: relative;\n\t\tdisplay: flex;\n\t\tflex: 0 0 auto;\n\t\talign-items: center;\n\t\tpadding: rem-calc(0 0 0 8);\n\t\tbackground: $form-multiselect-bg;\n\t\ttransition: $t linear background-color;\n\t}\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State, Watch } from \"@stencil/core\"\nimport { govHost, toBoolAttr, toBoolAttrIfDefined } from \"../../../helpers/Dom/template\"\nimport {\n\tFormMultiSelectClass,\n\tFormMultiselectSizes,\n\tFormMultiselectSizesType,\n\tFormMultiselectVariants,\n\tFormMultiselectVariantType,\n} from \"./constants\"\nimport { validateProp } from \"../../../helpers/Validate/props\"\nimport { validateWcagLabelFor, validateWcagRef } from \"../../../helpers/Validate/wcag\"\nimport { canValidateWcagOnRender } from \"../../../helpers/Dom/win\"\nimport { createID, removeDiacritics } from \"../../../utils/string.utils\"\nimport { delay } from \"../../../utils/utils\"\nimport { Nullable } from \"../../../types/interfaces\"\nimport { FormMultiselectEvent, GovFormMultiSelectItem } from \"./gov-form-multi-select.types\"\nimport { FormAutocompleteEvent } from \"../autocomplete/gov-form-autocomplete.types\"\nimport { GovForm } from \"../../../helpers/Dom/form.types\"\nimport { GovHost } from \"../../../helpers/Dom/template.types\"\nimport { govForm } from \"../../../helpers/Dom/form\"\n\n@Component({\n\ttag: \"gov-form-multi-select\",\n\tstyleUrl: \"gov-form-multi-select.scss\",\n})\nexport class GovFormMultiSelect {\n\tprivate f: GovForm\n\tprivate readonly h: GovHost\n\n\tprivate selectRef?: HTMLSelectElement\n\tprivate autocompleteRef?: HTMLGovFormAutocompleteElement\n\n\tprivate readonly selectId: string\n\tprivate readonly listId: string\n\n\tconstructor() {\n\t\tthis.selectId = createID(\"GovSelect\")\n\t\tthis.listId = createID(\"GovMultiList\")\n\n\t\tthis.h = govHost(this.host)\n\t\tthis.f = govForm(this.h)\n\t}\n\n\t@Element() host: HTMLGovFormSelectElement\n\t/**\n\t * Custom select identifier.\n\t */\n\t@Prop({ attribute: \"identifier\" }) readonly identifier: string\n\t/**\n\t * Custom select placeholder.\n\t */\n\t@Prop({ attribute: \"placeholder\" }) readonly placeholder: string\n\t/**\n\t * Style variation of the form select.\n\t */\n\t@Prop() readonly variant?: FormMultiselectVariantType\n\t/**\n\t * Select’s size.\n\t */\n\t@Prop() readonly size?: FormMultiselectSizesType = \"m\"\n\t/**\n\t * Name of the select.\n\t */\n\t@Prop() readonly name: string\n\t/**\n\t * Set whether the input is required or not. Please note that this is necessary for accessible inputs when the user is required to fill them.\n\t * When using this property you need to also set “novalidate” attribute to your form element to prevent browser from displaying its own validation errors.\n\t */\n\t@Prop() readonly required: boolean = false\n\t/**\n\t * Makes the select component disabled.\n\t * This prevents users from being able to interact with the select, and conveys its inactive state to assistive technologies.\n\t */\n\t@Prop() readonly disabled: boolean\n\t/**\n\t * Indicates the entered value does not conform to the format expected by the application.\n\t */\n\t@Prop() readonly invalid: boolean\n\t/**\n\t * Indicates the id of a component that describes the input.\n\t */\n\t@Prop({ attribute: \"wcag-described-by\" }) readonly wcagDescribedBy: string\n\t/**\n\t * Indicates the id of a component that labels the input.\n\t */\n\t@Prop({ attribute: \"wcag-labelled-by\" }) readonly wcagLabelledBy: string\n\t/**\n\t * Indicates the id of a component that describes the input.\n\t */\n\t@Prop({ attribute: \"wcag-owns\" }) readonly wcagOwns: string\n\t/**\n\t * Emitted when the select has focus.\n\t */\n\t@Event({ eventName: \"gov-focus\" }) govFocus: EventEmitter<FormMultiselectEvent>\n\t/**\n\t * Emitted when the select loses focus.\n\t */\n\t@Event({ eventName: \"gov-blur\" }) govBlur: EventEmitter<FormMultiselectEvent>\n\t/**\n\t * Emitted when the select change value.\n\t */\n\t@Event({ eventName: \"gov-change\" }) govChange: EventEmitter<FormMultiselectEvent>\n\n\t@State() focused: boolean\n\t@State() value: string\n\t@State() selectedOptions: GovFormMultiSelectItem[] = []\n\n\t@Watch(\"variant\")\n\tvalidateVariant(newValue: string): void {\n\t\tvalidateProp(FormMultiselectVariants, newValue, FormMultiSelectClass.root)\n\t}\n\n\t@Watch(\"size\")\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(FormMultiselectSizes, newValue, FormMultiSelectClass.root)\n\t}\n\n\t@Watch(\"selectedOptions\")\n\temitChange(newValue: GovFormMultiSelectItem[]) {\n\t\tthis.govChange.emit({\n\t\t\tcomponent: FormMultiSelectClass.root,\n\t\t\tvalue: newValue,\n\t\t})\n\t}\n\n\t@Watch(\"disabled\")\n\t@Watch(\"invalid\")\n\t@Watch(\"size\")\n\twatchDisabled(): void {\n\t\tthis.passControlAttrs()\n\t}\n\n\tprivate passControlAttrs() {\n\t\tthis.f.passAttrToControl(\"size\", this.size)\n\t\tthis.f.passAttrToControl(\"disabled\", toBoolAttr(this.disabled))\n\t\tthis.f.passAttrToControl(\"invalid\", toBoolAttr(this.invalid))\n\t}\n\n\n\tcomponentWillLoad() {\n\t\tthis.validateVariant(this.variant)\n\t\tthis.validateSize(this.size)\n\t\tthis.watchDisabled()\n\t}\n\n\tprivate getAvailableOptions(): GovFormMultiSelectItem[] {\n\t\treturn Array.from(this.selectRef.querySelectorAll(\"option\"))\n\t\t\t.filter((option: HTMLOptionElement) => !(option.disabled || option.selected))\n\t\t\t.map((option: HTMLOptionElement) => ({ name: option.textContent, value: option.value }))\n\t}\n\n\tprivate initAutocomplete() {\n\t\tthis.autocompleteRef.addEventListener(\"gov-select\", this.onSelectHandler.bind(this))\n\t\tthis.autocompleteRef.addEventListener(\"gov-input\", this.onInputHandler.bind(this))\n\t\tthis.autocompleteRef.addEventListener(\"gov-focus\", this.onFocusHandler.bind(this))\n\t\tthis.autocompleteRef.addEventListener(\"gov-blur\", this.onBlurHandler.bind(this))\n\t\tthis.autocompleteRef\n\t\t\t.setSearchCallback(value => {\n\t\t\t\treturn new Promise(resolve => {\n\t\t\t\t\tconst data = this.getAvailableOptions()\n\t\t\t\t\tif (String(value).length === 0) {\n\t\t\t\t\t\treturn resolve(data)\n\t\t\t\t\t}\n\t\t\t\t\tresolve(\n\t\t\t\t\t\tdata.filter(({ name }) => {\n\t\t\t\t\t\t\tif (!name) return false\n\t\t\t\t\t\t\treturn removeDiacritics(name).toLowerCase().indexOf(removeDiacritics(value).toLowerCase()) > -1\n\t\t\t\t\t\t}),\n\t\t\t\t\t)\n\t\t\t\t})\n\t\t\t})\n\t\t\t.then()\n\t}\n\n\tprivate getOptionIndex(value: GovFormMultiSelectItem): number {\n\t\treturn this.selectedOptions.findIndex(option => option.value === value.value && option.name === value.name)\n\t}\n\n\tprivate getOptionElement(value: GovFormMultiSelectItem): Nullable<HTMLOptionElement> {\n\t\treturn this.selectRef.querySelector(\"option[value=\\\"\" + value.value + \"\\\"]\") as HTMLOptionElement\n\t}\n\n\tprivate selectOption(newOption: GovFormMultiSelectItem) {\n\t\tconst index = this.getOptionIndex(newOption)\n\t\tif (index === -1) {\n\t\t\tthis.selectedOptions = [...this.selectedOptions, newOption]\n\t\t\tconst option = this.getOptionElement(newOption)\n\t\t\tif (option) {\n\t\t\t\toption.selected = true\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate removeOption(removeOption: GovFormMultiSelectItem) {\n\t\tconst index = this.getOptionIndex(removeOption)\n\t\tif (index !== -1) {\n\t\t\tthis.selectedOptions.splice(index, 1)\n\t\t\tthis.selectedOptions = [...this.selectedOptions]\n\t\t\tconst option = this.getOptionElement(removeOption)\n\t\t\tif (option) {\n\t\t\t\toption.selected = false\n\t\t\t}\n\t\t}\n\t}\n\n\tasync componentDidRender() {\n\t\tthis.initAutocomplete()\n\t\tawait delay(0)\n\t\tthis.selectRef.querySelectorAll(\"option\").forEach((option: HTMLOptionElement) => {\n\t\t\tif (option.selected) {\n\t\t\t\tthis.selectOption({\n\t\t\t\t\tname: option.textContent,\n\t\t\t\t\tvalue: option.value,\n\t\t\t\t})\n\t\t\t}\n\t\t})\n\t\tif (canValidateWcagOnRender()) {\n\t\t\tawait delay(500)\n\t\t\tawait this.validateWcag()\n\t\t}\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={FormMultiSelectClass.root} size={this.size} variant={this.variant}>\n\t\t\t\t<div class={FormMultiSelectClass.wrap}>\n\t\t\t\t\t<div class=\"element\">\n\t\t\t\t\t\t<gov-form-autocomplete\n\t\t\t\t\t\t\tvalue={this.value}\n\t\t\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\t\t\tidentifier={this.identifier || this.selectId}\n\t\t\t\t\t\t\trequired={false}\n\t\t\t\t\t\t\tsize={this.size}\n\t\t\t\t\t\t\tvariant={this.variant}\n\t\t\t\t\t\t\tinvalid={this.invalid}\n\t\t\t\t\t\t\tplaceholder={this.placeholder}\n\t\t\t\t\t\t\tref={el => (this.autocompleteRef = el as HTMLGovFormAutocompleteElement)}\n\t\t\t\t\t\t\tminlength={0}\n\t\t\t\t\t\t\twcagDescribedBy={this.wcagDescribedBy}\n\t\t\t\t\t\t\twcagLabelledBy={this.wcagLabelledBy}\n\t\t\t\t\t\t\twcagOwns={this.listId}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<gov-icon slot=\"right-icon\" class=\"icon-arrow\" name=\"chevron-down\"></gov-icon>\n\t\t\t\t\t\t<select\n\t\t\t\t\t\t\thidden\n\t\t\t\t\t\t\taria-hidden={true}\n\t\t\t\t\t\t\tmultiple\n\t\t\t\t\t\t\trequired={this.required}\n\t\t\t\t\t\t\tname={this.name}\n\t\t\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\t\t\tref={el => (this.selectRef = el as HTMLSelectElement)}\n\t\t\t\t\t\t\taria-disabled={toBoolAttrIfDefined(this.disabled)}\n\t\t\t\t\t\t\taria-required={toBoolAttrIfDefined(this.required)}\n\t\t\t\t\t\t\taria-invalid={toBoolAttrIfDefined(this.invalid)}\n\t\t\t\t\t\t\taria-describedby={this.wcagDescribedBy}\n\t\t\t\t\t\t\taria-labelledby={this.wcagLabelledBy}\n\t\t\t\t\t\t\taria-owns={this.wcagOwns}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t\t</select>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<ul role=\"listbox\" id={this.listId} class={FormMultiSelectClass.list}>\n\t\t\t\t\t{this.selectedOptions.map(option => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<li class={FormMultiSelectClass.item} role=\"option\">\n\t\t\t\t\t\t\t\t{option.name}\n\t\t\t\t\t\t\t\t<gov-button\n\t\t\t\t\t\t\t\t\twcagLabel={\"Odebrat vybranou položku \" + option.name}\n\t\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\t\ttype=\"base\"\n\t\t\t\t\t\t\t\t\tsize=\"s\"\n\t\t\t\t\t\t\t\t\ton-gov-click={() => this.onTagRemove(option)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<gov-icon name=\"x-lg\"></gov-icon>\n\t\t\t\t\t\t\t\t</gov-button>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t)\n\t\t\t\t\t})}\n\t\t\t\t</ul>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\tprivate onFocusHandler(e: FocusEvent) {\n\t\te.stopPropagation()\n\t\tthis.focused = true\n\t\tthis.govFocus.emit({\n\t\t\tcomponent: FormMultiSelectClass.root,\n\t\t\toriginalEvent: e,\n\t\t\tvalue: this.selectedOptions,\n\t\t})\n\t}\n\n\tprivate onBlurHandler(e: FocusEvent) {\n\t\te.stopPropagation()\n\t\te.stopPropagation()\n\t\tthis.focused = false\n\t\tthis.govBlur.emit({\n\t\t\tcomponent: FormMultiSelectClass.root,\n\t\t\toriginalEvent: e,\n\t\t\tvalue: this.selectedOptions,\n\t\t})\n\t}\n\n\tprivate onInputHandler(e: CustomEvent<FormAutocompleteEvent>) {\n\t\tthis.value = e.detail.value\n\t\te.stopPropagation()\n\t}\n\n\tprivate onSelectHandler(e: CustomEvent<FormAutocompleteEvent>) {\n\t\te.stopPropagation()\n\t\tconst value = e.detail.selected\n\t\tthis.selectOption(value as GovFormMultiSelectItem)\n\t\tthis.value = \"\"\n\t\tthis.autocompleteRef.clearValue()\n\t\tthis.autocompleteRef.focus()\n\t}\n\n\tprivate onTagRemove(removeOption: GovFormMultiSelectItem) {\n\t\tthis.removeOption(removeOption)\n\t}\n\n\t/**\n\t * Returns the current state of the component\n\t */\n\t@Method()\n\tasync setFocus(options?: FocusOptions): Promise<void> {\n\t\treturn this.selectRef.focus(options)\n\t}\n\n\t/**\n\t * Sets the ordered value of the element\n\t */\n\t@Method()\n\tasync setValue(value: string): Promise<void> {\n\t\tthis.value = value\n\t}\n\n\t/**\n\t * Returns an instance of the native html select element\n\t */\n\t@Method()\n\tasync getRef(): Promise<HTMLSelectElement> {\n\t\treturn this.selectRef\n\t}\n\n\t/**\n\t * Validate the WCAG attributes of the component\n\t */\n\t@Method()\n\tasync validateWcag(): Promise<void> {\n\t\tvalidateWcagRef(this.wcagDescribedBy, \"wcag-described-by\", FormMultiSelectClass.root)\n\t\tvalidateWcagRef(this.wcagLabelledBy, \"wcag-labelled-by\", FormMultiSelectClass.root)\n\t\tvalidateWcagRef(this.wcagOwns, \"wcag-owns\", FormMultiSelectClass.root)\n\t\tvalidateWcagLabelFor(this.identifier || this.selectId, this.wcagLabelledBy, FormMultiSelectClass.root)\n\t}\n}\n","export const FormPasswordPowerClass = {\n\troot: 'gov-form-password-power',\n bar: 'gov-form-password-power__bar',\n text: 'gov-form-password-power__text',\n}\n","$class: \".gov-form-password-power\";\n\n#{$class} {\n display: flex;\n align-items: center;\n gap: rem-calc(24);\n height: rem-calc(24);\n &__bar {\n display: flex;\n gap: rem-calc(4);\n width: 100%;\n span {\n display: inline-block;\n width: 100%;\n height: $form-password-power-height;\n border-radius: $form-password-power-radius;\n background-color: $form-password-power-color;\n }\n }\n &__text {\n @include typography($font-size-s);\n text-align: right;\n flex-basis: rem-calc(56);\n }\n\n // STATES\n &[power=\"1\"] {\n color: $form-password-power-color-weak;\n #{$class}__bar {\n span:nth-child(1) {\n background-color: $form-password-power-color-weak;\n }\n }\n }\n &[power=\"2\"] {\n color: $form-password-power-color-medium;\n #{$class}__bar {\n span:nth-child(1),\n span:nth-child(2) {\n background-color: $form-password-power-color-medium;\n }\n }\n }\n &[power=\"3\"] {\n color: $form-password-power-color-strong;\n #{$class}__bar {\n span {\n background-color: $form-password-power-color-strong;\n }\n }\n }\n}","import { Component, h, Host, Prop } from '@stencil/core'\nimport { FormPasswordPowerClass } from './constants'\n\n@Component({\n\ttag: 'gov-form-password-power',\n\tstyleUrl: 'gov-form-password-power.scss',\n})\nexport class GovFormPasswordPower {\n /**\n\t * Password power: 0 - none, 1 - weak, 2 - medium, 3 - strong\n\t */\n\t@Prop() readonly power: number\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={FormPasswordPowerClass.root}>\n <span class={FormPasswordPowerClass.bar}>\n <span></span>\n <span></span>\n <span></span>\n </span>\n <span class={FormPasswordPowerClass.text}>\n <slot />\n </span>\n\t\t\t</Host>\n\t\t)\n\t}\n}","/*\n * Radio\n */\n\n@import \"../checkbox/gov-form-checkbox-core.scss\";\n$class: \".gov-form-radio\";\n\n#{$class} {\n\t@extend %form-checkbox-core;\n\tinput + span {\n\t\t&::before {\n\t\t\tborder-radius: 50%;\n\t\t}\n\t\t&::after {\n\t\t\t@include pseudo();\n\t\t\tborder-radius: 50%;\n\t\t\tbackground: $form-radio-indicator-bg;\n\t\t\topacity: 0;\n\t\t\ttransition: $t linear opacity;\n\t\t}\n\t}\n\n\t// STATES\n\tinput:checked + span::after {\n\t\topacity: 1;\n\t}\n\t@include parameter(\"invalid\") {\n\t\tinput + span::after {\n\t\t\tbackground: $form-state-color-error;\n\t\t}\n\t}\n\t@include parameter(\"disabled\") {\n\t\tinput:checked + span::after {\n\t\t\tbackground-color: $form-state-bg-disabled;\n\t\t}\n\t}\n\n\t// VARIANTS\n\t@each $size, $definitions in $form-checkbox-core-sizes {\n\t\t&[size=\"#{$size}\"] {\n\t\t\tinput + span::after {\n\t\t\t\ttop: calc((get(\"indicator-size\", $definitions) - get(\"dot-size\", $definitions)) / 2);\n\t\t\t\tleft: calc((get(\"indicator-size\", $definitions) - get(\"dot-size\", $definitions)) / 2);\n\t\t\t\twidth: get(\"dot-size\", $definitions);\n\t\t\t\theight: get(\"dot-size\", $definitions);\n\t\t\t}\n\t\t}\n\t}\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, Watch } from \"@stencil/core\"\nimport { createID } from \"../../../utils/string.utils\"\nimport { validateProp } from \"../../../helpers/Validate/props\"\nimport { FormRadioClass, FormRadioSizes, FormRadioSizesType } from \"./constants\"\nimport { govHost, toBoolAttr, toBoolAttrIfDefined } from \"../../../helpers/Dom/template\"\nimport { validateWcagLabelFor, validateWcagRef } from \"../../../helpers/Validate/wcag\"\nimport { canValidateWcagOnRender } from \"../../../helpers/Dom/win\"\nimport { delay } from \"../../../utils/utils\"\nimport { GovForm } from \"../../../helpers/Dom/form.types\"\nimport { GovHost } from \"../../../helpers/Dom/template.types\"\nimport { govForm } from \"../../../helpers/Dom/form\"\nimport Fragment from \"../../../helpers/Fragment\"\nimport { FormRadioEvent } from \"./gov-form-radio.types\"\n\n@Component({\n\ttag: \"gov-form-radio\",\n\tstyleUrl: \"gov-form-radio.scss\",\n})\nexport class GovFormRadio {\n\tprivate readonly h: GovHost\n\tprivate f: GovForm\n\tprivate inputRef?: HTMLInputElement\n\n\tprivate readonly radioId: string\n\n\tconstructor() {\n\t\tthis.radioId = createID(\"GovRadio\")\n\n\t\tthis.h = govHost(this.host)\n\t\tthis.f = govForm(this.h)\n\t}\n\n\t@Element() host: HTMLGovFormRadioElement\n\t/**\n\t * Value of radio\n\t */\n\t@Prop() readonly value: string\n\t/**\n\t * When you can't use the form label.\n\t */\n\t@Prop({ attribute: \"no-label\" }) readonly noLabel: boolean = false\n\t/**\n\t * Radio default state\n\t */\n\t@Prop({ reflect: true, mutable: true }) checked = false\n\t/**\n\t * Set whether the input is required or not. Please note that this is necessary for accessible inputs when the user is required to fill them.\n\t * When using this property you need to also set “novalidate” attribute to your form element to prevent browser from displaying its own validation errors.\n\t */\n\t@Prop() readonly required: boolean = false\n\t/**\n\t * Makes the radio component disabled.\n\t * This prevents users from being able to interact with the radio, and conveys its inactive state to assistive technologies.\n\t */\n\t@Prop() readonly disabled: boolean\n\t/**\n\t * Name of the radio.\n\t */\n\t@Prop() readonly name: string\n\t/**\n\t * Radio's size.\n\t */\n\t@Prop() readonly size?: FormRadioSizesType = \"m\"\n\t/**\n\t * Custom radio identifier.\n\t */\n\t@Prop({ attribute: \"identifier\" }) readonly identifier: string\n\t/**\n\t * Indicates the entered value does not conform to the format expected by the application.\n\t */\n\t@Prop() readonly invalid: boolean\n\t/**\n\t * Indicates the id of a component that describes the input.\n\t */\n\t@Prop({ attribute: \"wcag-described-by\" }) readonly wcagDescribedBy: string\n\t/**\n\t * Indicates the id of a component that labels the input.\n\t */\n\t@Prop({ attribute: \"wcag-labelled-by\" }) readonly wcagLabelledBy: string\n\t/**\n\t * Emitted when the radio has focus.\n\t */\n\t@Event({ eventName: \"gov-focus\" }) govFocus: EventEmitter<FormRadioEvent>\n\t/**\n\t * Emitted when the radio loses focus.\n\t */\n\t@Event({ eventName: \"gov-blur\" }) govBlur: EventEmitter<FormRadioEvent>\n\t/**\n\t * Emitted when the radio change value.\n\t */\n\t@Event({ eventName: \"gov-change\" }) govChange: EventEmitter<FormRadioEvent>\n\n\t@Watch(\"size\")\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(FormRadioSizes, newValue, FormRadioClass.root)\n\t}\n\n\t@Watch(\"disabled\")\n\t@Watch(\"invalid\")\n\t@Watch(\"size\")\n\twatchDisabled(): void {\n\t\tthis.passControlAttrs()\n\t}\n\n\tprivate passControlAttrs() {\n\t\tthis.f.passAttrToControl(\"size\", this.size)\n\t\tthis.f.passAttrToControl(\"disabled\", toBoolAttr(this.disabled))\n\t\tthis.f.passAttrToControl(\"invalid\", toBoolAttr(this.invalid))\n\t\tthis.f.passAttrToControl(\"type\", \"radio\")\n\t}\n\n\n\tcomponentWillLoad() {\n\t\tthis.passControlAttrs()\n\t}\n\n\tasync componentDidRender() {\n\t\tthis.f.passAttrToLabel(\"identifier\", this.identifier || this.radioId)\n\t\tthis.f.passAttrToLabel(\"required\", String(this.required))\n\t\tif (canValidateWcagOnRender()) {\n\t\t\tawait delay(500)\n\t\t\tawait this.validateWcag()\n\t\t}\n\t}\n\n\trender() {\n\t\tconst wrapCheckbox = children => {\n\t\t\tif (this.noLabel) {\n\t\t\t\treturn <label>{children}</label>\n\t\t\t}\n\t\t\treturn children\n\t\t}\n\n\t\treturn (\n\t\t\t<Host class={FormRadioClass.root} checked={this.checked} size={this.size} invalid={toBoolAttrIfDefined(this.invalid)}>\n\t\t\t\t<div class={FormRadioClass.holder}>\n\t\t\t\t\t{wrapCheckbox(\n\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\tclass={FormRadioClass.input}\n\t\t\t\t\t\t\t\tid={this.identifier || this.radioId}\n\t\t\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t\t\tvalue={this.value}\n\t\t\t\t\t\t\t\tname={this.name}\n\t\t\t\t\t\t\t\tchecked={this.checked}\n\t\t\t\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\t\t\t\tonClick={this.onClickHandler.bind(this)}\n\t\t\t\t\t\t\t\tonChange={this.onChangeHandler.bind(this)}\n\t\t\t\t\t\t\t\tonFocus={this.onFocusHandler.bind(this)}\n\t\t\t\t\t\t\t\tonBlur={this.onBlurHandler.bind(this)}\n\t\t\t\t\t\t\t\tref={el => (this.inputRef = el as HTMLInputElement)}\n\t\t\t\t\t\t\t\trequired={this.required}\n\t\t\t\t\t\t\t\taria-checked={this.checked}\n\t\t\t\t\t\t\t\taria-required={toBoolAttrIfDefined(this.required)}\n\t\t\t\t\t\t\t\taria-invalid={toBoolAttrIfDefined(this.invalid)}\n\t\t\t\t\t\t\t\taria-describedby={this.wcagDescribedBy}\n\t\t\t\t\t\t\t\taria-labelledby={this.wcagLabelledBy}\n\t\t\t\t\t\t\t\taria-disabled={toBoolAttrIfDefined(this.disabled)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t<slot name=\"label\" />\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</Fragment>,\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\tprivate onClickHandler(e: PointerEvent) {\n\t\te.stopPropagation()\n\t}\n\n\tprivate onFocusHandler(e: FocusEvent) {\n\t\te.stopPropagation()\n\t\tthis.govFocus.emit({\n\t\t\tcomponent: FormRadioClass.root,\n\t\t\tvalue: this.value,\n\t\t\tchecked: this.checked,\n\t\t\toriginalEvent: e,\n\t\t})\n\t}\n\n\tprivate onBlurHandler(e: FocusEvent) {\n\t\te.stopPropagation()\n\t\tthis.govBlur.emit({\n\t\t\tcomponent: FormRadioClass.root,\n\t\t\tvalue: this.value,\n\t\t\tchecked: this.checked,\n\t\t\toriginalEvent: e,\n\t\t})\n\t}\n\n\tprivate onChangeHandler(e: Event) {\n\t\tthis.checked = (e.target as HTMLInputElement).checked\n\t\te.stopPropagation()\n\t\tthis.govChange.emit({\n\t\t\tcomponent: FormRadioClass.root,\n\t\t\tvalue: this.value,\n\t\t\tchecked: this.checked,\n\t\t\toriginalEvent: e,\n\t\t})\n\t}\n\n\t/**\n\t * Returns the reference of the native element\n\t */\n\t@Method()\n\tasync getRef(): Promise<HTMLInputElement> {\n\t\treturn this.inputRef\n\t}\n\n\t/**\n\t * Validate the WCAG attributes of the component\n\t */\n\t@Method()\n\tasync validateWcag(): Promise<void> {\n\t\tvalidateWcagRef(this.wcagDescribedBy, \"wcag-described-by\", FormRadioClass.root)\n\t\tvalidateWcagRef(this.wcagLabelledBy, \"wcag-labelled-by\", FormRadioClass.root)\n\t\tvalidateWcagLabelFor(this.identifier || this.radioId, this.wcagLabelledBy, FormRadioClass.root)\n\t}\n}\n","import { Variants } from '../../../core/constants/variants'\nimport { ValueOf } from '../../../types/interfaces'\nimport { pick } from '../../../utils/utils'\n\nexport const FormSearchs = pick(Variants, ['PRIMARY', 'SECONDARY'])\nexport type FormSearchVariantType = `${ValueOf<typeof FormSearchs>}`\n\nexport const FormSearchClass = {\n\troot: 'gov-form-search',\n\tinput: 'gov-form-search__input',\n\tbutton: 'gov-form-search__button',\n}\n","/*\n * Search\n */\n\n$class: \".gov-form-search\";\n\n#{$class} {\n\t@include base(flex);\n\t@include focus-outline($border-radius, 0, true);\n\tgap: rem-calc(8);\n\talign-items: center;\n\tborder-radius: $border-radius;\n\tbackground-color: $form-bg-color;\n\t&__input {\n\t\tflex: 1 1 auto;\n\t\tinput {\n\t\t\theight: auto;\n\t\t\tborder-width: 0 !important;\n\t\t\t&:focus-visible {\n\t\t\t\toutline: none !important;\n\t\t\t}\n\t\t}\n\t}\n\t&__button {\n\t\tflex: 0 0 auto;\n\t\tmargin: rem-calc(3) rem-calc(3) rem-calc(3) 0;\n\t}\n\n\t@each $variant, $definitions in $form-input-core-variants {\n\t\t&[variant=\"#{$variant}\"] {\n\t\t\tborder: get(\"border\", $definitions);\n\t\t}\n\t}\n}\n","import { Component, Element, h, Host, Prop } from '@stencil/core'\nimport { FormSearchClass, FormSearchVariantType } from './constants'\n@Component({\n\ttag: 'gov-form-search',\n\tstyleUrl: 'gov-form-search.scss',\n})\nexport class GovFormSearch {\n\t@Element() host: HTMLGovFormSearchElement\n\t/**\n\t * Style variation of the form input.\n\t */\n\t@Prop() readonly variant: FormSearchVariantType = 'secondary'\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={FormSearchClass.root}>\n\t\t\t\t<span class={FormSearchClass.input}>\n\t\t\t\t\t<slot name=\"input\" />\n\t\t\t\t</span>\n\t\t\t\t<span class={FormSearchClass.button}>\n\t\t\t\t\t<slot name=\"button\" />\n\t\t\t\t</span>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","/*\n * Select\n */\n\n@import \"../select/gov-form-select-core.scss\";\n\n$class: \".gov-form-select\";\n\n#{$class} {\n\t@extend %form-select-core;\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State, Watch } from \"@stencil/core\"\nimport { govForm } from \"../../../helpers/Dom/form\"\nimport { GovForm } from \"../../../helpers/Dom/form.types\"\nimport { govHost, toBoolAttr, toBoolAttrIfDefined } from \"../../../helpers/Dom/template\"\nimport { GovHost } from \"../../../helpers/Dom/template.types\"\nimport { canValidateWcagOnRender } from \"../../../helpers/Dom/win\"\nimport { validateProp } from \"../../../helpers/Validate/props\"\nimport { validateWcagLabelFor, validateWcagRef } from \"../../../helpers/Validate/wcag\"\nimport { createID } from \"../../../utils/string.utils\"\nimport { delay } from \"../../../utils/utils\"\nimport {\n\tFormSelectClass,\n\tFormSelectSizes,\n\tFormSelectSizesType,\n\tFormSelectVariants,\n\tFormSelectVariantType,\n} from \"./constants\"\nimport { FormSelectEvent } from \"./gov-form-select.types\"\n\n@Component({\n\ttag: \"gov-form-select\",\n\tstyleUrl: \"gov-form-select.scss\",\n})\nexport class GovFormSelect {\n\tprivate f: GovForm\n\tprivate readonly h: GovHost\n\tprivate selectRef?: HTMLSelectElement\n\n\tprivate readonly selectId: string\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t\tthis.f = govForm(this.h)\n\t\tthis.selectId = createID(\"GovSelect\")\n\t}\n\n\t@Element() host: HTMLGovFormSelectElement\n\t/**\n\t * Value of select\n\t */\n\t@Prop({ reflect: true, mutable: true }) value: string\n\t/**\n\t * Custom select identifier.\n\t */\n\t@Prop({ attribute: \"identifier\" }) readonly identifier: string\n\t/**\n\t * Style variation of the form select.\n\t */\n\t@Prop() readonly variant?: FormSelectVariantType = 'secondary'\n\t/**\n\t * Select’s size.\n\t */\n\t@Prop() readonly size?: FormSelectSizesType = \"m\"\n\t/**\n\t * Name of the select.\n\t */\n\t@Prop() readonly name: string\n\t/**\n\t * Set whether the input is required or not. Please note that this is necessary for accessible inputs when the user is required to fill them.\n\t * When using this property you need to also set “novalidate” attribute to your form element to prevent browser from displaying its own validation errors.\n\t */\n\t@Prop() readonly required: boolean = false\n\t/**\n\t * Makes the select component disabled.\n\t * This prevents users from being able to interact with the select, and conveys its inactive state to assistive technologies.\n\t */\n\t@Prop() readonly disabled: boolean\n\t/**\n\t * Indicates the entered value does not conform to the format expected by the application.\n\t */\n\t@Prop() readonly invalid: boolean\n\t/**\n\t * Indicates the id of a related component’s visually focused element.\n\t */\n\t@Prop({ attribute: \"wcag-active-descendant\" }) readonly wcagActiveDescendant: string\n\t/**\n\t * Use this prop to add an aria-controls attribute. Use the attribute to indicate the id of a component controlled by this component.\n\t */\n\t@Prop({ attribute: \"wcag-controls\" }) readonly wcagControls: string\n\t/**\n\t * Indicates the id of a component that describes the input.\n\t */\n\t@Prop({ attribute: \"wcag-described-by\" }) readonly wcagDescribedBy: string\n\t/**\n\t * Indicates the id of a component that labels the input.\n\t */\n\t@Prop({ attribute: \"wcag-labelled-by\" }) readonly wcagLabelledBy: string\n\t/**\n\t * Indicates the id of a component that describes the input.\n\t */\n\t@Prop({ attribute: \"wcag-owns\" }) readonly wcagOwns: string\n\t/**\n\t * Emitted when the select has focus.\n\t */\n\t@Event({ eventName: \"gov-focus\" }) govFocus: EventEmitter<FormSelectEvent>\n\t/**\n\t * Emitted when the select loses focus.\n\t */\n\t@Event({ eventName: \"gov-blur\" }) govBlur: EventEmitter<FormSelectEvent>\n\t/**\n\t * Emitted when the select change value.\n\t */\n\t@Event({ eventName: \"gov-change\" }) govChange: EventEmitter<FormSelectEvent>\n\t@State() focused: boolean\n\n\t@Watch(\"variant\")\n\tvalidateVariant(newValue: string): void {\n\t\tvalidateProp(FormSelectVariants, newValue, FormSelectClass.root)\n\t}\n\n\t@Watch(\"size\")\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(FormSelectSizes, newValue, FormSelectClass.root)\n\t}\n\n\t@Watch(\"disabled\")\n\t@Watch(\"invalid\")\n\t@Watch(\"size\")\n\twatchDisabled(): void {\n\t\tthis.passControlAttrs()\n\t}\n\n\t@Watch(\"value\")\n\twatchValue(): void {\n\t\tthis.markSelectedValue()\n\t}\n\n\tprivate passControlAttrs() {\n\t\tthis.f.passAttrToControl(\"size\", this.size)\n\t\tthis.f.passAttrToControl(\"disabled\", toBoolAttr(this.disabled))\n\t\tthis.f.passAttrToControl(\"invalid\", toBoolAttr(this.invalid))\n\t\tthis.f.passAttrToControl(\"type\", \"select\")\n\t}\n\n\tcomponentWillLoad() {\n\t\tthis.validateVariant(this.variant)\n\t\tthis.validateSize(this.size)\n\n\t\tthis.markSelectedValue()\n\t\tthis.passControlAttrs()\n\t\tthis.f.passAttrToLabel(\"required\", String(this.required))\n\t}\n\n\tasync componentDidRender() {\n\t\tif (canValidateWcagOnRender()) {\n\t\t\tawait delay(500)\n\t\t\tawait this.validateWcag()\n\t\t}\n\t}\n\n\tprivate markSelectedValue() {\n\t\tthis.host.querySelectorAll(\"option\").forEach((option: HTMLOptionElement) => {\n\t\t\tif (option.value === this.value) {\n\t\t\t\toption.setAttribute(\"selected\", \"selected\")\n\t\t\t} else {\n\t\t\t\toption.removeAttribute(\"selected\")\n\t\t\t}\n\t\t})\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={FormSelectClass.root} size={this.size} variant={this.variant}>\n\t\t\t\t{this.h.hasSlot(\"prefix\") && <slot name=\"prefix\"></slot>}\n\t\t\t\t<span class=\"element\">\n\t\t\t\t\t<gov-icon slot=\"right-icon\" name=\"chevron-down\"></gov-icon>\n\t\t\t\t\t<select\n\t\t\t\t\t\tid={this.identifier || this.selectId}\n\t\t\t\t\t\tonFocus={this.onFocusHandler.bind(this)}\n\t\t\t\t\t\tonChange={this.onChangeHandler.bind(this)}\n\t\t\t\t\t\tonBlur={this.onBlurHandler.bind(this)}\n\t\t\t\t\t\trequired={this.required}\n\t\t\t\t\t\tname={this.name}\n\t\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\t\tref={el => (this.selectRef = el as HTMLSelectElement)}\n\t\t\t\t\t\taria-disabled={toBoolAttrIfDefined(this.disabled)}\n\t\t\t\t\t\taria-activedescendant={this.wcagActiveDescendant}\n\t\t\t\t\t\taria-controls={this.wcagControls}\n\t\t\t\t\t\taria-required={toBoolAttrIfDefined(this.required)}\n\t\t\t\t\t\taria-invalid={toBoolAttrIfDefined(this.invalid)}\n\t\t\t\t\t\taria-describedby={this.wcagDescribedBy}\n\t\t\t\t\t\taria-labelledby={this.wcagLabelledBy}\n\t\t\t\t\t\taria-owns={this.wcagOwns}\n\t\t\t\t\t>\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</select>\n\t\t\t\t</span>\n\t\t\t\t{this.h.hasSlot(\"sufix\") && <slot name=\"sufix\"></slot>}\n\t\t\t</Host>\n\t\t)\n\t}\n\n\tprivate onFocusHandler(e: FocusEvent) {\n\t\tthis.focused = true\n\t\tthis.govFocus.emit({\n\t\t\tcomponent: FormSelectClass.root,\n\t\t\toriginalEvent: e,\n\t\t\tvalue: this.value,\n\t\t})\n\t}\n\n\tprivate onBlurHandler(e: FocusEvent) {\n\t\tthis.focused = false\n\t\tthis.govBlur.emit({\n\t\t\tcomponent: FormSelectClass.root,\n\t\t\toriginalEvent: e,\n\t\t\tvalue: this.value,\n\t\t})\n\t}\n\n\tprivate onChangeHandler(e: Event) {\n\t\tthis.value = (e.target as HTMLSelectElement).value\n\t\te.stopPropagation()\n\t\tthis.govChange.emit({\n\t\t\tcomponent: FormSelectClass.root,\n\t\t\toriginalEvent: e,\n\t\t\tvalue: this.value,\n\t\t})\n\t}\n\n\t/**\n\t * Returns the current state of the component\n\t */\n\t@Method()\n\tasync setFocus(options?: FocusOptions): Promise<void> {\n\t\treturn this.selectRef.focus(options)\n\t}\n\n\t/**\n\t * Sets the ordered value of the element\n\t */\n\t@Method()\n\tasync setValue(value: string): Promise<void> {\n\t\tthis.value = value\n\t}\n\n\t/**\n\t * Returns an instance of the native html select element\n\t */\n\t@Method()\n\tasync getRef(): Promise<HTMLSelectElement> {\n\t\treturn this.selectRef\n\t}\n\n\t/**\n\t * Validate the WCAG attributes of the component\n\t */\n\t@Method()\n\tasync validateWcag(): Promise<void> {\n\t\tvalidateWcagRef(this.wcagActiveDescendant, \"wcag-active-descendant\", FormSelectClass.root)\n\t\tvalidateWcagRef(this.wcagControls, \"wcag-controls\", FormSelectClass.root)\n\t\tvalidateWcagRef(this.wcagDescribedBy, \"wcag-described-by\", FormSelectClass.root)\n\t\tvalidateWcagRef(this.wcagOwns, \"wcag-owns\", FormSelectClass.root)\n\t\tvalidateWcagLabelFor(this.identifier || this.selectId, this.wcagLabelledBy, FormSelectClass.root)\n\t}\n}\n","/*\n * Switch\n */\n\n$class: \".gov-form-switch\";\n$indicator-ratio: calc(5 / 3);\n\n#{$class} {\n\tposition: relative;\n\tdisplay: flex;\n\t&__holder {\n\t\tdisplay: inline-flex;\n\t}\n\t&__input {\n\t\tposition: relative;\n\t\tz-index: 1;\n\t\tappearance: none;\n\t}\n\t.gov-form-label__label {\n\t\tposition: relative;\n\t\tz-index: 1;\n\t\tmargin-bottom: 0;\n\t\tcolor: $form-switch-color;\n\t}\n\t&__indicator {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tborder: $form-switch-indicator-border;\n\t\tbackground-color: $form-switch-indicator-bg;\n\t\ttransition: $t linear background-color;\n\t\t&::before {\n\t\t\t@include pseudo();\n\t\t\tborder-radius: 50%;\n\t\t\tbackground-color: $form-switch-indicator-circle-bg;\n\t\t\ttransition: $t linear left;\n\t\t\tbox-shadow: $form-switch-indicator-circle-box-shadow;\n\t\t}\n\t}\n\n\t// STATES\n\t// focus\n\t&__input:focus-visible ~ &__indicator {\n\t\toutline: $outline;\n\t}\n\t// checked\n\t&__input:checked + &__indicator {\n\t\tborder-color: $form-switch-indicator-bg-checked;\n\t\tbackground-color: $form-switch-indicator-bg-checked;\n\t}\n\n\t// disabled\n\t@include parameter(\"disabled\") {\n\t\tpointer-events: none;\n\t\t.gov-form-label__label {\n\t\t\tcolor: $form-state-color-disabled;\n\t\t}\n\t\t#{$class} {\n\t\t\t&__indicator {\n\t\t\t\t&::before {\n\t\t\t\t\tbackground: $form-state-bg-input-disabled;\n\t\t\t\t}\n\t\t\t}\n\t\t\t&__input:checked + #{$class}__indicator {\n\t\t\t\tborder-color: $form-state-bg-disabled;\n\t\t\t\tbackground-color: $form-state-bg-disabled;\n\t\t\t}\n\t\t}\n\t}\n\n\t// invalid\n\t@include parameter(\"invalid\") {\n\t\t.gov-form-label__label {\n\t\t\tcolor: $form-state-color-error;\n\t\t}\n\t\t#{$class} {\n\t\t\t&__indicator {\n\t\t\t\tborder-color: $form-state-color-error;\n\t\t\t}\n\t\t\t&__input:checked + #{$class}__indicator {\n\t\t\t\tbackground-color: $form-state-color-error;\n\t\t\t}\n\t\t}\n\t}\n\n\t// sizes\n\t@each $size, $definitions in $form-switch-sizes {\n\t\t$indicator-width: calc(get(\"indicator-height\", $definitions) * $indicator-ratio);\n\t\t$indicator-height: get(\"indicator-height\", $definitions);\n\t\t$border-offset: calc(get(\"toggle-offset\", $definitions) - rem-calc(1));\n\n\t\t&[size=\"#{$size}\"] {\n\t\t\t.gov-form-label__label {\n\t\t\t\t@include typography($size);\n\t\t\t\tmargin-bottom: 0;\n\t\t\t\tpadding-top: calc(($indicator-height - (var(--gov-text-#{$size}-font-size) * 1.5)) / 2);\n\t\t\t}\n\t\t\t#{$class} {\n\t\t\t\t&__holder {\n\t\t\t\t\tgap: get(\"gap\", $definitions);\n\t\t\t\t}\n\t\t\t\t&__input {\n\t\t\t\t\twidth: calc($indicator-height * (5 / 2));\n\t\t\t\t\theight: $indicator-height;\n\t\t\t\t}\n\t\t\t\t&__indicator {\n\t\t\t\t\tdisplay: block;\n\t\t\t\t\twidth: $indicator-width;\n\t\t\t\t\theight: $indicator-height;\n\t\t\t\t\tborder-radius: calc($indicator-height * 0.5);\n\t\t\t\t\t&::before {\n\t\t\t\t\t\ttop: $border-offset;\n\t\t\t\t\t\tleft: $border-offset;\n\t\t\t\t\t\twidth: calc($indicator-height - (2 * get(\"toggle-offset\", $definitions)));\n\t\t\t\t\t\theight: calc($indicator-height - (2 * get(\"toggle-offset\", $definitions)));\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// STATES\n\t\t\t\t&__input[aria-checked] + #{$class}__indicator {\n\t\t\t\t\t&::before {\n\t\t\t\t\t\tleft: calc($indicator-width - $indicator-height + $border-offset);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tlabel {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t\t#{$class}__input {\n\t\t\t\t\twidth: $indicator-width;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, Watch } from \"@stencil/core\"\nimport { createID } from \"../../../utils/string.utils\"\nimport { validateProp } from \"../../../helpers/Validate/props\"\nimport { FormSwitchClass, FormSwitchSizes, FormSwitchSizesType } from \"./constants\"\nimport { govHost, toBoolAttr, toBoolAttrIfDefined } from \"../../../helpers/Dom/template\"\nimport { validateWcagLabelFor, validateWcagRef } from \"../../../helpers/Validate/wcag\"\nimport { canValidateWcagOnRender } from \"../../../helpers/Dom/win\"\nimport { delay } from \"../../../utils/utils\"\nimport { GovForm } from \"../../../helpers/Dom/form.types\"\nimport { GovHost } from \"../../../helpers/Dom/template.types\"\nimport { govForm } from \"../../../helpers/Dom/form\"\nimport Fragment from \"../../../helpers/Fragment\"\nimport { FormSwitchEvent } from \"./gov-form-switch.types\"\n\n@Component({\n\ttag: \"gov-form-switch\",\n\tstyleUrl: \"gov-form-switch.scss\",\n})\nexport class GovFormSwitch {\n\tprivate readonly h: GovHost\n\tprivate f: GovForm\n\tprivate inputRef?: HTMLInputElement\n\n\tprivate readonly checkboxId: string\n\n\tconstructor() {\n\t\tthis.checkboxId = createID(\"GovCheckbox\")\n\n\t\tthis.h = govHost(this.host)\n\t\tthis.f = govForm(this.h)\n\t}\n\n\t@Element() host: HTMLGovFormSwitchElement\n\t/**\n\t * Value of switch\n\t */\n\t@Prop() readonly value: string\n\t/**\n\t * When you can't use the form label.\n\t */\n\t@Prop({ attribute: \"no-label\" }) readonly noLabel: boolean = false\n\t/**\n\t * Switch default state\n\t */\n\t@Prop({ reflect: true, mutable: true }) checked = false\n\t/**\n\t * Set whether the input is required or not. Please note that this is necessary for accessible inputs when the user is required to fill them.\n\t * When using this property you need to also set “novalidate” attribute to your form element to prevent browser from displaying its own validation errors.\n\t */\n\t@Prop() readonly required: boolean = false\n\t/**\n\t * Makes the switch component disabled.\n\t * This prevents users from being able to interact with the switch, and conveys its inactive state to assistive technologies.\n\t */\n\t@Prop() readonly disabled: boolean\n\t/**\n\t * Name of the switch.\n\t */\n\t@Prop() readonly name: string\n\t/**\n\t * Switch's size.\n\t */\n\t@Prop() readonly size?: FormSwitchSizesType = \"m\"\n\t/**\n\t * Custom switch identifier.\n\t */\n\t@Prop({ attribute: \"identifier\" }) readonly identifier: string\n\t/**\n\t * Indicates the entered value does not conform to the format expected by the application.\n\t */\n\t@Prop() readonly invalid: boolean\n\t/**\n\t * Indicates the id of a component that describes the input.\n\t */\n\t@Prop({ attribute: \"wcag-described-by\" }) readonly wcagDescribedBy: string\n\t/**\n\t * Indicates the id of a component that labels the input.\n\t */\n\t@Prop({ attribute: \"wcag-labelled-by\" }) readonly wcagLabelledBy: string\n\t/**\n\t * Emitted when the switch has focus.\n\t */\n\t@Event({ eventName: \"gov-focus\" }) govFocus: EventEmitter<FormSwitchEvent>\n\t/**\n\t * Emitted when the switch loses focus.\n\t */\n\t@Event({ eventName: \"gov-blur\" }) govBlur: EventEmitter<FormSwitchEvent>\n\t/**\n\t * Emitted when the switch change value.\n\t */\n\t@Event({ eventName: \"gov-change\" }) govChange: EventEmitter<FormSwitchEvent>\n\n\t@Watch(\"size\")\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(FormSwitchSizes, newValue, FormSwitchClass.root)\n\t}\n\n\t@Watch(\"disabled\")\n\t@Watch(\"invalid\")\n\t@Watch(\"size\")\n\twatchDisabled(): void {\n\t\tthis.passControlAttrs()\n\t}\n\n\tprivate passControlAttrs() {\n\t\tthis.f.passAttrToControl(\"size\", this.size)\n\t\tthis.f.passAttrToControl(\"disabled\", toBoolAttr(this.disabled))\n\t\tthis.f.passAttrToControl(\"invalid\", toBoolAttr(this.invalid))\n\t\tthis.f.passAttrToControl(\"type\", \"switch\")\n\t}\n\n\tcomponentWillLoad() {\n\t\tthis.passControlAttrs()\n\t}\n\n\tasync componentDidRender() {\n\t\tthis.f.passAttrToLabel(\"identifier\", this.identifier || this.checkboxId)\n\t\tthis.f.passAttrToLabel(\"required\", String(this.required))\n\t\tif (canValidateWcagOnRender()) {\n\t\t\tawait delay(500)\n\t\t\tawait this.validateWcag()\n\t\t}\n\t}\n\n\trender() {\n\t\tconst wrapCheckbox = (children) => {\n\t\t\tif (this.noLabel) {\n\t\t\t\treturn (\n\t\t\t\t\t<label>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</label>\n\t\t\t\t)\n\t\t\t}\n\t\t\treturn children\n\t\t}\n\n\t\treturn (\n\t\t\t<Host class={this.h.classes(FormSwitchClass.root)} checked={this.checked} size={this.size} invalid={toBoolAttrIfDefined(this.invalid)}>\n\t\t\t\t<div class={FormSwitchClass.holder}>\n\t\t\t\t\t{wrapCheckbox(\n\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\tclass={FormSwitchClass.input}\n\t\t\t\t\t\t\t\tid={this.identifier || this.checkboxId}\n\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\tvalue={this.value}\n\t\t\t\t\t\t\t\tname={this.name}\n\t\t\t\t\t\t\t\tchecked={this.checked}\n\t\t\t\t\t\t\t\tonClick={this.onClickHandler.bind(this)}\n\t\t\t\t\t\t\t\tonChange={this.onChangeHandler.bind(this)}\n\t\t\t\t\t\t\t\tonFocus={this.onFocusHandler.bind(this)}\n\t\t\t\t\t\t\t\tonBlur={this.onBlurHandler.bind(this)}\n\t\t\t\t\t\t\t\tref={el => (this.inputRef = el as HTMLInputElement)}\n\t\t\t\t\t\t\t\trequired={this.required}\n\t\t\t\t\t\t\t\taria-checked={this.checked}\n\t\t\t\t\t\t\t\taria-required={toBoolAttrIfDefined(this.required)}\n\t\t\t\t\t\t\t\taria-invalid={toBoolAttrIfDefined(this.invalid)}\n\t\t\t\t\t\t\t\taria-describedby={this.wcagDescribedBy}\n\t\t\t\t\t\t\t\taria-labelledby={this.wcagLabelledBy}\n\t\t\t\t\t\t\t\taria-disabled={toBoolAttrIfDefined(this.disabled)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<span class={FormSwitchClass.indicator}></span>\n\t\t\t\t\t\t\t<slot name=\"label\"></slot>\n\t\t\t\t\t\t</Fragment>,\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\tprivate onClickHandler(e: Event) {\n\t\te.stopPropagation()\n\t}\n\n\tprivate onFocusHandler(e: FocusEvent) {\n\t\te.stopPropagation()\n\t\tthis.govFocus.emit({\n\t\t\tcomponent: FormSwitchClass.root,\n\t\t\tchecked: this.checked,\n\t\t\tvalue: this.value,\n\t\t\toriginalEvent: e,\n\t\t})\n\t}\n\n\tprivate onBlurHandler(e: FocusEvent) {\n\t\te.stopPropagation()\n\t\tthis.govBlur.emit({\n\t\t\tcomponent: FormSwitchClass.root,\n\t\t\tchecked: this.checked,\n\t\t\tvalue: this.value,\n\t\t\toriginalEvent: e,\n\t\t})\n\t}\n\n\tprivate onChangeHandler(e: Event) {\n\t\tthis.checked = (e.target as HTMLInputElement).checked\n\t\te.stopPropagation()\n\t\tthis.govChange.emit({\n\t\t\tcomponent: FormSwitchClass.root,\n\t\t\tchecked: this.checked,\n\t\t\tvalue: this.value,\n\t\t\toriginalEvent: e,\n\t\t})\n\t}\n\n\t/**\n\t * Returns the reference of the native element\n\t */\n\t@Method()\n\tasync getRef(): Promise<HTMLInputElement> {\n\t\treturn this.inputRef\n\t}\n\n\t/**\n\t * Validate the WCAG attributes of the component\n\t */\n\t@Method()\n\tasync validateWcag(): Promise<void> {\n\t\tvalidateWcagRef(this.wcagDescribedBy, \"wcag-described-by\", FormSwitchClass.root)\n\t\tvalidateWcagRef(this.wcagLabelledBy, \"wcag-labelled-by\", FormSwitchClass.root)\n\t\tvalidateWcagLabelFor(this.identifier || this.checkboxId, this.wcagLabelledBy, FormSwitchClass.root)\n\t}\n}\n","export const GridClass = {\n\troot: 'gov-grid',\n}\n\nexport const GridItemClass = {\n\troot: 'gov-grid-item',\n}\n","/*\n * Grid\n */\n\n$class: \".gov-grid\";\n\n#{$class} {\n\t@include base(flex);\n\tflex-wrap: wrap;\n\n\t// VARIANTS\n\t&[align-x=\"middle\"] {\n\t\talign-items: center;\n\t}\n\t&[align-x=\"bottom\"] {\n\t\talign-items: flex-end;\n\t}\n\t&[align-y=\"center\"] {\n\t\tjustify-content: center;\n\t}\n\t&[align-y=\"right\"] {\n\t\tjustify-content: flex-end;\n\t}\n\t&[align-y=\"space-between\"] {\n\t\tjustify-content: space-between;\n\t}\n\t&[align-y=\"space-around\"] {\n\t\tjustify-content: space-around;\n\t}\n}\n","import { Component, Element, h, Host, Prop } from '@stencil/core'\nimport { GridClass } from './constants'\nimport { govHost } from '../../helpers/Dom/template'\nimport { GovHost } from '../../helpers/Dom/template.types'\n\n@Component({\n\ttag: 'gov-grid',\n\tstyleUrl: 'gov-grid.scss',\n})\nexport class GovGrid {\n\tprivate h: GovHost\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t}\n\n\t@Element() host: HTMLGovGridElement\n\t/**\n\t * Horizontal align of cells\n\t */\n\t@Prop({ attribute: 'align-x' }) readonly alignX: string\n\n\t/**\n\t * Vertical align of cells\n\t */\n\t@Prop({ attribute: 'align-y' }) readonly alignY: string\n\n\t// vertical / horizontal align\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={this.h.classes(GridClass.root)} align-x={this.alignX} align-y={this.alignY} role=\"list\">\n\t\t\t\t<slot></slot>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","/*\n * Grid Cell\n */\n\n$class: \".gov-grid-item\";\n\n#{$class} {\n\t@include generateGridSize();\n\tborder: 0 solid transparent;\n\n\t// hide the border in MS high contrast mode\n\tborder-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3C/svg%3E\");\n}\n","import { Component, Element, h, Host, Prop } from '@stencil/core'\nimport { GridItemClass } from './constants'\nimport { govHost } from '../../helpers/Dom/template'\nimport { GovHost } from '../../helpers/Dom/template.types'\n\n@Component({\n\ttag: 'gov-grid-item',\n\tstyleUrl: 'gov-grid-item.scss',\n})\nexport class GovGridItem {\n\tprivate h: GovHost\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t}\n\n\t@Element() readonly host: HTMLGovGridItemElement\n\t/**\n\t * Cell size as a fraction of 1/12 of the grid size\n\t */\n\t@Prop() readonly size: string = '12/12'\n\t/**\n\t * Cell size for SM media query and up as a fraction of 12 of the grid size\n\t */\n\t@Prop({ attribute: 'size-sm' }) readonly sizeSm: string\n\t/**\n\t * Cell size for MD media query and up as a fraction of 12 of the grid size\n\t */\n\t@Prop({ attribute: 'size-md' }) readonly sizeMd: string\n\t/**\n\t * Cell size for LG media query and up as a fraction of 12 of the grid size\n\t */\n\t@Prop({ attribute: 'size-lg' }) readonly sizeLg: string\n\t/**\n\t * Cell size for XL media query and up as a fraction of 12 of the grid size\n\t */\n\t@Prop({ attribute: 'size-xl' }) readonly sizeXl: string\n\n\trender() {\n\t\treturn (\n\t\t\t<Host\n\t\t\t\tclass={this.h.classes(GridItemClass.root)}\n\t\t\t\trole=\"listitem\"\n\t\t\t\tsize={this.size}\n\t\t\t\tsize-sm={this.sizeSm}\n\t\t\t\tsize-md={this.sizeMd}\n\t\t\t\tsize-lg={this.sizeLg}\n\t\t\t\tsize-xl={this.sizeXl}\n\t\t\t>\n\t\t\t\t<slot />\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","import { ValueOf } from '../../types/interfaces'\n\nenum Types {\n\tBASIC = 'basic',\n\tCOMPLEX = 'complex',\n\tCOLORED = 'colored',\n}\nexport type Type = `${ValueOf<typeof Types>}`\n\nexport const IconClass = {\n\troot: 'gov-icon',\n\tholder: 'gov-icon__holder',\n}\n","import { version } from '../../package.json'\n\nexport const dsVersion = (): string => {\n\treturn version\n}\n","import { getAssetPath } from '@stencil/core'\nimport { dsVersion } from './ds.utils'\nimport { iconsPath } from '../helpers/Dom/win'\n\nconst iconCache: { [key: string]: string } = {}\nconst requestCache: { [key: string]: Promise<string> } = {}\n\nconst isExternalUrl = (path: string) => path.startsWith('http://') || path.startsWith('https://')\nconst iconUrl = (path: string, name: string, type: string) => {\n\tif (isExternalUrl(path)) {\n\t\treturn `${path}/${type}/${name}.svg?v=${dsVersion()}`\n\t}\n\treturn getAssetPath(`${path}/${type}/${name}.svg`) + `?v=${dsVersion()}`\n}\n\nexport async function fetchIcon({ name, type }: { name: string; type: string }): Promise<string> {\n\tif (iconCache[name]) {\n\t\treturn iconCache[name]\n\t}\n\tif (!requestCache[name]) {\n\t\trequestCache[name] = fetch(iconUrl(iconsPath(), name, type)).then(resp => {\n\t\t\tif (resp.status === 200) {\n\t\t\t\treturn resp.text()\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Gov Icon doesn't exists\")\n\t\t\t}\n\t\t})\n\t}\n\tconst path = await requestCache[name]\n\ticonCache[name] = path\n\treturn path\n}\n","/*\n * Icon\n */\n\n$class: \".gov-icon\";\n\n#{$class} {\n\tdisplay: inline-flex;\n\t&__holder,\n\tsvg {\n\t\tdisplay: inline-flex;\n\t\twidth: 100%;\n\t\theight: 100%;\n\t}\n}\n","import { Build, Component, Element, h, Prop, State, Watch, Host } from '@stencil/core'\nimport { IconClass, Type } from './constants'\nimport { fetchIcon } from '../../utils/icon.utils'\nimport { govHost } from '../../helpers/Dom/template'\nimport { GovHost } from '../../helpers/Dom/template.types'\n\n@Component({\n\tassetsDirs: ['assets'],\n\tstyleUrl: 'gov-icon.scss',\n\ttag: 'gov-icon',\n})\nexport class GovIcon {\n\tprivate h: GovHost\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t}\n\t@Element() host: HTMLGovIconElement\n\t/**\n\t * Name of icon\n\t */\n\t@Prop() name: string = null\n\t/**\n\t * Type of icon\n\t */\n\t@Prop() type: Type = 'basic'\n\t@State() private iconData: string\n\t@State() private visible = false\n\t@State() private error = false\n\tprivate intersectionObserver: IntersectionObserver\n\n\t@Watch('name')\n\tprivate async loadIconPathData(): Promise<void> {\n\t\tconst { name, visible, type } = this\n\t\tif (!Build.isBrowser || !name || !visible) {\n\t\t\treturn\n\t\t}\n\t\ttry {\n\t\t\tthis.iconData = await fetchIcon({ name, type })\n\t\t} catch (e) {\n\t\t\tthis.error = true\n\t\t}\n\t}\n\n\tconnectedCallback(): void {\n\t\tthis.waitUntilVisible(async () => {\n\t\t\tthis.visible = true\n\t\t\tawait this.loadIconPathData()\n\t\t})\n\t}\n\n\tdisconnectedCallback(): void {\n\t\tif (this.intersectionObserver) {\n\t\t\tthis.intersectionObserver.disconnect()\n\t\t\tthis.intersectionObserver = null\n\t\t}\n\t}\n\n\tasync componentWillLoad(): Promise<void> {\n\t\tawait this.loadIconPathData()\n\t}\n\n\tprivate waitUntilVisible(callback: () => void): void {\n\t\tif (!Build.isBrowser || typeof window === 'undefined' || !(window as any).IntersectionObserver) {\n\t\t\tcallback()\n\t\t\treturn\n\t\t}\n\t\tthis.intersectionObserver = new IntersectionObserver(\n\t\t\tentries => {\n\t\t\t\tentries.forEach(entry => {\n\t\t\t\t\tif (entry.isIntersecting) {\n\t\t\t\t\t\tthis.intersectionObserver.disconnect()\n\t\t\t\t\t\tthis.intersectionObserver = null\n\t\t\t\t\t\tcallback()\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t},\n\t\t\t{ rootMargin: '50px' }\n\t\t)\n\t\tthis.intersectionObserver.observe(this.host)\n\t}\n\n\trender() {\n\t\tif (this.error) {\n\t\t\treturn null\n\t\t}\n\t\treturn (\n\t\t\t<Host class={this.h.classes(IconClass.root)}>\n\t\t\t\t<span class={IconClass.holder} innerHTML={this.iconData}></span>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","import { ValueOf } from '../../types/interfaces'\n\nexport const LayoutClass = {\n\troot: 'gov-layout',\n\tsection: 'gov-layout__section',\n}\n\nenum LayoutTypes {\n\tSTRETCH = 'stretch',\n\tASIDE = 'aside',\n\tTEXT = 'text',\n}\nexport type LayoutType = `${ValueOf<typeof LayoutTypes>}`\n\nenum LayoutVariant {\n\tLEFT = 'left',\n\tRIGHT = 'right',\n}\n\nexport type LayoutVariantType = `${ValueOf<typeof LayoutVariant>}`\n\nexport const LayoutColumnClass = {\n\troot: 'gov-layout-column',\n}\n","/*\n * Layout\n */\n\n$class: \".gov-layout\";\n\n@mixin big() {\n\tflex: 1 1 auto;\n\twidth: auto;\n}\n\n@mixin small() {\n\tflex: 0 0 auto;\n\twidth: calc($container-width / 3 - $layout-gap);\n}\n\n#{$class} {\n\t@include base();\n\t&__section {\n\t\tdisplay: flex;\n\t\tgap: $layout-gap;\n\t\tflex-direction: column;\n\t}\n\n\t// MQ\n\t@include mq($from: lg) {\n\t\t&__section {\n\t\t\tflex-direction: row;\n\n\t\t\t&-aside-right,\n\t\t\t&-aside {\n\t\t\t\t#{$class}-column:first-child {\n\t\t\t\t\t@include big;\n\t\t\t\t}\n\n\t\t\t\t#{$class}-column:last-child {\n\t\t\t\t\t@include small;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t&-aside-left {\n\t\t\t\t#{$class}-column:first-child {\n\t\t\t\t\t@include small;\n\t\t\t\t}\n\n\t\t\t\t#{$class}-column:last-child {\n\t\t\t\t\t@include big;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t&-aside-right-inverse {\n\t\t\t\t#{$class}-column:first-child {\n\t\t\t\t\torder: 1;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t&-aside-left-inverse {\n\t\t\t\t#{$class}-column:first-child {\n\t\t\t\t\torder: 2;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t&-text {\n\t\t\t\twidth: $layout-content-width;\n\t\t\t\tmargin-right: auto;\n\t\t\t\tmargin-left: auto;\n\t\t\t}\n\n\t\t\t&-text-left {\n\t\t\t\twidth: $layout-content-width;\n\t\t\t\tmargin-right: auto;\n\t\t\t}\n\n\t\t\t&-text-right {\n\t\t\t\twidth: $layout-content-width;\n\t\t\t\tmargin-left: auto;\n\t\t\t}\n\t\t}\n\t}\n}\n","import { Component, Element, h, Host, Prop } from '@stencil/core'\nimport { LayoutClass, LayoutType, LayoutVariantType } from './constants'\nimport { GovHost } from '../../helpers/Dom/template.types'\nimport { govHost } from '../../helpers/Dom/template'\n\n@Component({\n\ttag: 'gov-layout',\n\tstyleUrl: 'gov-layout.scss',\n})\nexport class GovLayout {\n\tprivate h: GovHost\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t}\n\n\t@Element() host: HTMLGovLayoutElement\n\t/**\n\t * Layout type\n\t */\n\t@Prop() readonly type?: LayoutType = 'stretch'\n\t/**\n\t * Layout align\n\t */\n\t@Prop() readonly variant?: LayoutVariantType\n\t/**\n\t * Determine if component should have inverse column order\n\t */\n\t@Prop() readonly inverse: boolean = false\n\n\tprivate typeClass(originalClass: string, type: string, variant: string, inverse: boolean) {\n\t\tconst isType = type ? '-' + type : ''\n\t\tconst isVariant = variant ? '-' + variant : ''\n\t\tconst isInverse = inverse ? '-inverse' : ''\n\t\treturn originalClass + ' ' + originalClass + isType + isVariant + isInverse\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host type={this.type} class={this.h.classes(LayoutClass.root)}>\n\t\t\t\t<section class={this.typeClass(LayoutClass.section, this.type, this.variant, this.inverse)}>\n\t\t\t\t\t<slot />\n\t\t\t\t</section>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","/*\n * Layout column\n */\n\n$class: \".gov-layout-column\";\n\n#{$class} {\n\tposition: relative;\n\tdisplay: block;\n\twidth: 100%;\n}\n","import { Component, Element, h, Host } from '@stencil/core'\nimport { LayoutColumnClass } from './constants'\nimport { govHost } from '../../helpers/Dom/template'\nimport { GovHost } from '../../helpers/Dom/template.types'\n\n@Component({\n\ttag: 'gov-layout-column',\n\tstyleUrl: 'gov-layout-column.scss',\n})\nexport class GovLayoutColumn {\n\tprivate h: GovHost\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t}\n\n\t@Element() readonly host: HTMLGovLayoutColumnElement\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={this.h.classes(LayoutColumnClass.root)}>\n\t\t\t\t<slot />\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","export const LoadingClass = {\n\troot: 'gov-loading',\n\tcontent: 'gov-loading__content',\n\ticon: 'gov-loading__icon',\n}\n","/*\n * Loading\n */\n\n$class: \".gov-loading\";\n\n#{$class} {\n\tdisplay: none;\n\t&__content {\n\t\t@include z-index(\"modal\", 1);\n\t\tposition: fixed;\n\t\ttop: 50%;\n\t\tleft: 50%;\n\t\tdisplay: flex;\n\t\tgap: rem-calc(16);\n\t\tflex-direction: column;\n\t\talign-items: center;\n\t\tmin-width: rem-calc(155);\n\t\tpadding: rem-calc(24);\n\t\tborder-radius: rem-calc(8);\n\t\tbackground: $loading-bg;\n\t\tcolor: $loading-color;\n\t\ttext-align: center;\n\t\ttransform: translate(-50%, -50%);\n\t}\n\t&__icon {\n\t\twidth: rem-calc(64);\n\t\theight: rem-calc(64);\n\t\tline-height: 1;\n\t}\n\n\t// STATES\n\t@include parameter(\"loading\") {\n\t\tdisplay: block;\n\t}\n}\n","import { Component, Element, h, Host, Prop } from '@stencil/core'\nimport { LoadingClass } from './constants'\nimport { govHost, prepareClasses } from '../../../helpers/Dom/template'\nimport { GovHost } from '../../../helpers/Dom/template.types'\n\n@Component({\n\ttag: 'gov-loading',\n\tstyleUrl: 'gov-loading.scss',\n})\nexport class GovLoading {\n\tprivate h: GovHost\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t}\n\n\t@Element() host: HTMLGovLoadingElement\n\t/**\n\t * Determine if loading is active\n\t */\n\t@Prop() loading = false\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={this.h.classes(LoadingClass.root)} loading={this.loading}>\n\t\t\t\t<div class={LoadingClass.content}>\n\t\t\t\t\t<gov-icon class={prepareClasses([LoadingClass.icon, 'gov-spin-animation'])} name=\"loader\"></gov-icon>\n\t\t\t\t\t<slot />\n\t\t\t\t</div>\n\t\t\t\t{this.loading ? (<gov-backdrop inverse={true} />) : null}\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","import { Variants } from '../../core/constants/variants'\nimport { pick } from '../../utils/utils'\nimport { ValueOf } from '../../types/interfaces'\n\nexport const MessageVariants = pick(Variants, ['PRIMARY', 'SECONDARY', 'WARNING', 'ERROR', 'SUCCESS'])\nexport type MessageVariantType = `${ValueOf<typeof MessageVariants>}`\n\nexport const MessageClass = {\n\troot: 'gov-message',\n\ticon: 'gov-message__icon',\n\tcontent: 'gov-message__content',\n\tclose: 'gov-message__close',\n}\n","/*\n * Alert\n */\n\n@import \"../gov-toast/gov-toast-message-core.scss\";\n$class: \".gov-message\";\n\n#{$class} {\n\t@include toast-message-core;\n\n\t// VARIANTS\n\t@include parameter(\"shadow\") {\n\t\tbox-shadow: $message-box-shadow;\n\t}\n\t@each $variant, $definitions in $message-variants {\n\t\t&[variant=\"#{$variant}\"] {\n\t\t\tborder-left-color: get(\"color\", $definitions);\n\t\t\tbackground: get(\"bg-color\", $definitions);\n\t\t\t#{$class} {\n\t\t\t\t&__icon {\n\t\t\t\t\tcolor: get(\"color\", $definitions);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// STATES\n\t\t\t@include parameter(\"inverse\") {\n\t\t\t\tbackground: $message-bg-inverse;\n\t\t\t}\n\t\t}\n\t}\n}\n","import { Component, Element, h, Host, Prop, Watch } from '@stencil/core'\nimport { validateProp } from '../../helpers/Validate/props'\nimport { MessageClass } from './constants'\nimport { govHost } from '../../helpers/Dom/template'\nimport { GovHost } from '../../helpers/Dom/template.types'\nimport { Variants } from '../../core/constants/variants'\nimport { MessageVariantType } from './constants'\n\n@Component({\n\ttag: 'gov-message',\n\tstyleUrl: 'gov-message.scss',\n})\nexport class GovMessage {\n\tprivate h: GovHost\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t}\n\n\t@Element() host: HTMLGovMessageElement\n\n\t/**\n\t * Style variation of the content message.\n\t */\n\t@Prop() readonly variant: MessageVariantType = Variants.PRIMARY\n\n\t@Watch('variant')\n\tvalidateVariant(newValue: string): void {\n\t\tvalidateProp(Variants, newValue, MessageClass.root)\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={this.h.classes(MessageClass.root)} variant={this.variant} role=\"alert\">\n\t\t\t\t{this.h.hasSlot('icon') && (\n\t\t\t\t\t<span class={MessageClass.icon}>\n\t\t\t\t\t\t<slot name=\"icon\" />\n\t\t\t\t\t</span>\n\t\t\t\t)}\n\n\t\t\t\t<div class={MessageClass.content}>\n\t\t\t\t\t<slot />\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","export const ModalClass = {\n\troot: 'gov-modal',\n\trootPrompt: 'gov-modal gov-modal--prompt',\n\tdialog: 'gov-modal__dialog',\n\tinner: 'gov-modal__inner',\n\theader: 'gov-modal__header',\n\ticon: 'gov-modal__icon',\n\ttitle: 'gov-modal__title',\n\tcontent: 'gov-modal__content',\n\tclose: 'gov-modal__close',\n\tfooter: 'gov-modal__footer',\n\tactions: 'gov-modal__actions',\n\tbodyFix: 'body-fixed',\n}\n","/*\n * Modal\n */\n\n$class: \".gov-modal\";\n\n#{$class} {\n\tdisplay: none;\n\n\t&__dialog {\n\t\t@include z-index(\"modal\", 1);\n\t\tposition: fixed;\n\t\ttop: 50%;\n\t\tleft: 50%;\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t\twidth: 100%;\n\t\tmax-width: $modal-max-width;\n\t\theight: 100%;\n\t\tpadding: rem-calc(8);\n\t\tborder: none;\n\t\tbackground: transparent;\n\t\ttransform: translate(-50%, -50%);\n\t\tpointer-events: none;\n\t}\n\n\t&__inner {\n\t\tposition: relative;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\twidth: 100%;\n\t\tmax-height: 100%;\n\t\tborder-radius: $border-radius;\n\t\tbackground: $modal-bg;\n\t\toverflow: hidden;\n\t\tpointer-events: auto;\n\t\tbox-shadow: get($shadow-l, $shadows);\n\t}\n\n\t&__header {\n\t\tdisplay: flex;\n\t\tgap: rem-calc(16);\n\t\talign-items: flex-start;\n\t\tpadding: rem-calc(24 16);\n\t\tborder-bottom: $modal-border;\n\t}\n\n\t&__icon {\n\t\tflex: 0 0 auto;\n\t\tpadding-top: calc(((var(--gov-text-#{$font-size-3xl}-font-size) * 1.5) - rem-calc(24)) / 2);\n\n\t\t& > * {\n\t\t\twidth: rem-calc(24);\n\t\t\theight: rem-calc(24);\n\t\t}\n\t}\n\n\t&__title {\n\t\t@include typography($font-size-3xl);\n\t\tmargin: 0;\n\t}\n\n\t&__close {\n\t\tflex: 0 0 auto;\n\t\tmargin-left: auto;\n\t\tpadding-top: calc(((var(--gov-text-#{$font-size-3xl}-font-size) * 1.5) - rem-calc(32)) / 2);\n\t}\n\n\t&__content {\n\t\t@include reset-last-margin();\n\t\theight: 100%;\n\t\tpadding: rem-calc(24 16);\n\t\tcolor: $modal-text-color;\n\t\toverflow: auto;\n\t}\n\n\t&__footer,\n\t&__actions {\n\t\tpadding: rem-calc(24 16);\n\t\tborder-top: $modal-border;\n\t}\n\n\t&__actions {\n\t\tdisplay: flex;\n\t\tgap: rem-calc(8 16);\n\t\tflex-wrap: wrap;\n\t\tjustify-content: flex-end;\n\t}\n\n\t// STATES\n\t&__dialog:focus &__inner {\n\t\toutline: $outline;\n\t}\n\n\t@include parameter(\"open\") {\n\t\tdisplay: block;\n\t}\n\n\t// MQ\n\t@include mq($from: sm) {\n\t\t&__dialog {\n\t\t\tmax-width: calc($modal-max-width + 2 * rem-calc(24));\n\t\t\tpadding: rem-calc(24);\n\n\t\t\t&:focus {\n\t\t\t\toutline-offset: rem-calc(-24);\n\t\t\t}\n\t\t}\n\t\t&__inner {\n\t\t\tbox-shadow: get($shadow-xl, $shadows);\n\t\t}\n\n\t\t// VARIANTS\n\t\t&--prompt &__dialog {\n\t\t\tmax-width: calc($modal-prompt-max-width + 2 * rem-calc(24));\n\t\t}\n\t}\n\t@include mq($from: md) {\n\t\t&__header {\n\t\t\tgap: rem-calc(20);\n\t\t\tpadding: rem-calc(32 40 32 48);\n\t\t}\n\t\t&__close {\n\t\t\tpadding-top: calc(((var(--gov-text-#{$font-size-3xl}-font-size) * 1.5) - rem-calc(40)) / 2);\n\t\t}\n\t\t&__content {\n\t\t\tpadding: rem-calc(32 48);\n\t\t}\n\t\t&__footer {\n\t\t\tpadding: rem-calc(16 48);\n\t\t}\n\n\t\t// VARIANTS\n\t\t&--prompt {\n\t\t\t#{$class} {\n\t\t\t\t&__header,\n\t\t\t\t&__content,\n\t\t\t\t&__footer,\n\t\t\t\t&__actions {\n\t\t\t\t\tpadding: rem-calc(24);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n","import { Component, Element, Event, EventEmitter, Host, Method, Prop, Watch, h } from \"@stencil/core\"\nimport { govHost, toBoolAttr } from \"../../helpers/Dom/template\"\nimport { GovHost } from \"../../helpers/Dom/template.types\"\nimport { canValidateWcagOnRender } from \"../../helpers/Dom/win\"\nimport { govErrorLog } from \"../../helpers/Log/gov.log\"\nimport { validateWcagRef } from \"../../helpers/Validate/wcag\"\nimport { createID } from \"../../utils/string.utils\"\nimport { delay } from \"../../utils/utils\"\nimport { ModalClass } from \"./constants\"\n\n@Component({\n\ttag: \"gov-modal\",\n\tstyleUrl: \"gov-modal.scss\",\n})\nexport class GovModal {\n\tprivate h: GovHost\n\tprivate readonly labelId: string\n\tprivate readonly contentId: string\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t\tthis.labelId = createID(\"GovModalLabel\")\n\t\tthis.contentId = createID(\"GovModalContent\")\n\t}\n\n\t@Element() host: HTMLGovModalElement\n\n\t/**\n\t * Attribute for modal window display\n\t */\n\t@Prop({mutable: true}) open = false\n\t/**\n\t * Title of modal window\n\t */\n\t@Prop() label: string\n\t/**\n\t * Role of modal\n\t */\n\t@Prop({ attribute: \"role\" }) role = \"dialog\"\n\t/**\n\t * Used to change the HTML tag in the modal label for correct semantic structure\n\t */\n\t@Prop({ attribute: \"label-tag\" }) readonly labelTag: string = \"h2\"\n\t/**\n\t * String of id's that indicate alternative labels elements\n\t */\n\t@Prop({ attribute: \"wcag-labelled-by\" }) wcagLabelledBy: string\n\t/**\n\t * Indicates the id of a component that describes the modal.\n\t */\n\t@Prop({ attribute: \"wcag-described-by\" }) wcagDescribedBy: string\n\t/**\n\t * Adds accessible label for the modal close button that is only shown for screen readers.\n\t */\n\t@Prop({ attribute: \"wcag-close-label\" }) wcagCloseLabel: string\n\t/**\n\t * A string of identifiers that indicate alternative label elements for closing the modal window\n\t */\n\t@Prop({ attribute: \"wcag-close-labelled-by\" }) wcagCloseLabelledBy: string\n\t/**\n\t * Emitted when modal window closes.\n\t */\n\t@Event({ eventName: \"gov-close\" }) govClose: EventEmitter<PointerEvent>\n\n\t@Watch(\"labelTag\")\n\tvalidateLabelTag(newValue: string): void {\n\t\tconst validTags = [\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"]\n\t\tif (newValue) {\n\t\t\tif (!validTags.includes(newValue)) {\n\t\t\t\tgovErrorLog(`[${ModalClass.root}]: Tag ${newValue} is not allowed.`)\n\t\t\t}\n\t\t}\n\t}\n\n\t@Watch(\"open\")\n\twatchOpen(newValue: boolean): void {\n\t\tthis.open = newValue\n\t}\n\n\tprivate showModal() {\n\t\tthis.open = true\n\t\tdocument.body.classList.add(ModalClass.bodyFix)\n\t}\n\n\tprivate hideModal() {\n\t\tthis.open = false\n\t\tdocument.body.classList.remove(ModalClass.bodyFix)\n\t}\n\n\tasync componentWillRender() {\n\t\tif (this.open) {\n\t\t\tthis.showModal()\n\t\t} else {\n\t\t\tthis.hideModal()\n\t\t}\n\t}\n\n\tasync componentDidRender() {\n\t\tif (canValidateWcagOnRender()) {\n\t\t\tawait delay(500)\n\t\t\tawait this.validateWcag()\n\t\t}\n\t}\n\n\trender() {\n\t\tconst LabelTag = this.labelTag\n\t\treturn (\n\t\t\t<Host class={this.h.classes(ModalClass.root)} open={this.open}>\n\t\t\t\t<dialog\n\t\t\t\t\tclass={ModalClass.dialog}\n\t\t\t\t\thidden={!this.open}\n\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\topen={this.open}\n\t\t\t\t\taria-modal=\"true\"\n\t\t\t\t\taria-hidden={toBoolAttr(!this.open)}\n\t\t\t\t\taria-labelledby={this.wcagLabelledBy || this.labelId}\n\t\t\t\t\taria-describedby={this.wcagDescribedBy || this.contentId}\n\t\t\t\t\trole={this.role}\n\t\t\t\t>\n\t\t\t\t\t<div class={ModalClass.inner}>\n\t\t\t\t\t\t<div class={ModalClass.header}>\n\t\t\t\t\t\t\t{this.h.hasSlot(\"icon\") && (\n\t\t\t\t\t\t\t\t<div class={ModalClass.icon}>\n\t\t\t\t\t\t\t\t\t<slot name=\"icon\" />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{this.label && (\n\t\t\t\t\t\t\t\t<LabelTag class={ModalClass.title} id={this.labelId}>\n\t\t\t\t\t\t\t\t\t{this.label}\n\t\t\t\t\t\t\t\t</LabelTag>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t<gov-button\n\t\t\t\t\t\t\t\tclass={ModalClass.close}\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\twcagLabel={this.wcagCloseLabel}\n\t\t\t\t\t\t\t\twcagLabelledBy={this.wcagCloseLabelledBy}\n\t\t\t\t\t\t\t\ttype=\"base\"\n\t\t\t\t\t\t\t\ton-gov-click={this.onCloseHandler.bind(this)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<gov-icon name=\"x-lg\" />\n\t\t\t\t\t\t\t</gov-button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class={ModalClass.content} id={this.contentId}>\n\t\t\t\t\t\t\t<slot />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{this.h.hasSlot(\"footer\") && (\n\t\t\t\t\t\t\t<div class={ModalClass.footer}>\n\t\t\t\t\t\t\t\t<slot name=\"footer\" />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</dialog>\n\n\t\t\t\t{this.open ? (\n\t\t\t\t\t<gov-backdrop\n\t\t\t\t\t\twcag-label={this.wcagCloseLabel}\n\t\t\t\t\t\twcag-labelled-by={this.wcagCloseLabelledBy}\n\t\t\t\t\t\ton-gov-click={this.onCloseHandler.bind(this)}\n\t\t\t\t\t/>\n\t\t\t\t) : null}\n\t\t\t</Host>\n\t\t)\n\t}\n\n\tprivate onCloseHandler(e: PointerEvent) {\n\t\te.stopPropagation()\n\t\tthis.hideModal()\n\t\tthis.govClose.emit(e)\n\t}\n\n\t/**\n\t * Showing the modal\n\t */\n\t@Method()\n\tasync show(): Promise<void> {\n\t\tthis.showModal()\n\t}\n\n\t/**\n\t * Hiding the modal\n\t */\n\t@Method()\n\tasync hide(): Promise<void> {\n\t\tthis.hideModal()\n\t}\n\n\t/**\n\t * Validate the WCAG attributes of the component\n\t */\n\t@Method()\n\tasync validateWcag(): Promise<void> {\n\t\tvalidateWcagRef(this.wcagLabelledBy, \"wcag-labelled-by\", ModalClass.root)\n\t\tvalidateWcagRef(this.wcagDescribedBy, \"wcag-described-by\", ModalClass.root)\n\t}\n}\n","export const NavClass = {\n\troot: 'gov-nav',\n\tnav: 'gov-nav__nav',\n}\n\nexport const NavItemClass = {\n\troot: 'gov-nav-item',\n\tlink: 'gov-nav-item__link',\n}\n","/*\n * Nav\n */\n\n$class: \".gov-nav\";\n\n#{$class} {\n\t@include base();\n\t@include typography($font-size-s);\n\tbackground: $nav-bg;\n\tfont-weight: bold;\n\tletter-spacing: 0.0125em;\n\ttext-transform: uppercase;\n\n\t// MQ\n\t@include mq($from: md) {\n\t\ttext-align: center;\n\t\t&__nav {\n\t\t\tdisplay: flex;\n\t\t\tjustify-content: space-between;\n\t\t}\n\t}\n}\n","import { Component, Element, h, Host, Method, Prop } from '@stencil/core'\nimport { NavClass } from './constants'\nimport { validateWcagLabel } from '../../helpers/Validate/wcag'\nimport { canValidateWcagOnRender } from '../../helpers/Dom/win'\nimport { delay } from '../../utils/utils'\n\n@Component({\n\ttag: 'gov-nav',\n\tstyleUrl: 'gov-nav.scss',\n})\nexport class GovNav {\n\t@Element() readonly host: HTMLGovNavElement\n\n\t/**\n\t * Adds accessible label for the accordion that is only shown for screen readers.\n\t */\n\t@Prop({ attribute: 'wcag-label' }) readonly wcagLabel: string\n\t/**\n\t * String of id's that indicate alternative labels elements\n\t */\n\t@Prop({ attribute: 'wcag-labelled-by' }) readonly wcagLabelledBy: string\n\n\tasync componentDidRender() {\n\t\tif (canValidateWcagOnRender()) {\n\t\t\tawait delay(500)\n\t\t\tawait this.validateWcag()\n\t\t}\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={NavClass.root}>\n\t\t\t\t<nav class={NavClass.nav} role={'list'} arial-label={this.wcagLabel} arial-labelledby={this.wcagLabelledBy}>\n\t\t\t\t\t<slot />\n\t\t\t\t</nav>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\t/**\n\t * Validate the WCAG attributes of the component\n\t */\n\t@Method()\n\tasync validateWcag(): Promise<void> {\n\t\tvalidateWcagLabel(this.wcagLabel, this.wcagLabelledBy, NavClass.root)\n\t}\n}\n","/*\n * Nav - Item\n */\n\n$class: \".gov-nav-item\";\n\n#{$class} {\n\tdisplay: block;\n\t&__link {\n\t\t@include focus-outline();\n\t\tposition: relative;\n\t\tdisplay: block;\n\t\tpadding: rem-calc(15 48 15 36);\n\t\tcolor: $nav-color;\n\t\ttext-decoration: none;\n\t\t&:focus {\n\t\t\toutline-color: $nav-color;\n\t\t}\n\t\t@include hover() {\n\t\t\tcolor: $nav-color;\n\t\t\ttext-decoration: underline;\n\t\t}\n\t}\n\n\t// MQ\n\t@include mq($from: md) {\n\t\t&__link {\n\t\t\tdisplay: inline-flex;\n\t\t\tjustify-content: center;\n\t\t\talign-items: center;\n\t\t\theight: 100%;\n\t\t\tpadding: rem-calc(22 20 21);\n\t\t\t&::before {\n\t\t\t\t@include pseudo();\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 50%;\n\t\t\t\twidth: 0;\n\t\t\t\theight: rem-calc(2);\n\t\t\t\tbackground: $nav-color;\n\t\t\t\ttransform: translate(-50%);\n\t\t\t\ttransition: width $t;\n\t\t\t}\n\t\t\t@include hover() {\n\t\t\t\ttext-decoration: none;\n\t\t\t\t&::before {\n\t\t\t\t\twidth: 100%;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n","import { Component, Element, h, Prop, State, Host, Watch } from '@stencil/core'\nimport { govErrorLog } from '../../helpers/Log/gov.log'\nimport { NavItemClass } from './constants'\n\n@Component({\n\ttag: 'gov-nav-item',\n\tstyleUrl: 'gov-nav-item.scss',\n})\nexport class GovNavItem {\n\t@Element() readonly host: HTMLGovNavItemElement\n\t@State() isExpandedState: boolean\n\n\t/**\n\t * Same as original parameter\n\t * @link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-href\n\t */\n\t@Prop() readonly href: string\n\n\t@Watch('href')\n\tvalidateHref(newValue: string): void {\n\t\tif (!newValue) {\n\t\t\tgovErrorLog(`[${NavItemClass.root}]: Parameter href is required.`)\n\t\t}\n\t}\n\n\tcomponentWillLoad(): void {\n\t\tthis.validateHref(this.href)\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={NavItemClass.root} role=\"listitem\">\n\t\t\t\t<a href={this.href} class={NavItemClass.link}>\n\t\t\t\t\t<slot />\n\t\t\t\t</a>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","import { Sizes } from '../../core/constants/sizes'\nimport { Variants } from '../../core/constants/variants'\nimport { pick } from '../../utils/utils'\nimport { ValueOf } from '../../types/interfaces'\n\nexport const PaginationSizes = pick(Sizes, ['_S', '_M'])\nexport type PaginationSizeType = `${ValueOf<typeof PaginationSizes>}`\n\nexport const PaginationVariants = pick(Variants, ['PRIMARY', 'SECONDARY'])\nexport type PaginationVariantType = `${ValueOf<typeof PaginationVariants>}`\n\nexport enum PaginationTypes {\n\tBUTTON = 'button',\n\tSELECT = 'select',\n}\nexport type PaginationType = `${ValueOf<typeof PaginationTypes>}`\n\nexport const PaginationClass = {\n\troot: 'gov-pagination',\n\tlist: 'gov-pagination__list',\n\titem: 'gov-pagination__item',\n\titemArrow: 'gov-pagination__item--arrow',\n\titemMore: 'gov-pagination__item--more',\n\titemSelect: 'gov-pagination__item--select',\n\tinner: 'gov-pagination__inner',\n\tarrow: 'gov-pagination__arrow',\n}\n","export interface Pagination {\n\ttotalItems: number\n\tcurrentPage: number\n\tpageSize: number\n\ttotalPages: number\n\tstartPage: number\n\tendPage: number\n\tstartIndex: number\n\tendIndex: number\n\tpages: number[]\n}\n\nexport function paginate(totalItems: number, currentPage = 1, pageSize = 10, maxPages = 10): Pagination {\n\t// calculate total pages\n\tconst totalPages = Math.ceil(totalItems / pageSize)\n\n\t// ensure current page isn't out of range\n\tif (currentPage < 1) {\n\t\tcurrentPage = 1\n\t} else if (currentPage > totalPages) {\n\t\tcurrentPage = totalPages\n\t}\n\n\tlet startPage: number, endPage: number\n\tif (totalPages <= maxPages) {\n\t\t// total pages less than max so show all pages\n\t\tstartPage = 1\n\t\tendPage = totalPages\n\t} else {\n\t\t// total pages more than max so calculate start and end pages\n\t\tconst maxPagesBeforeCurrentPage = Math.floor(maxPages / 2)\n\t\tconst maxPagesAfterCurrentPage = Math.ceil(maxPages / 2) - 1\n\t\tif (currentPage <= maxPagesBeforeCurrentPage) {\n\t\t\t// current page near the start\n\t\t\tstartPage = 1\n\t\t\tendPage = maxPages\n\t\t} else if (currentPage + maxPagesAfterCurrentPage >= totalPages) {\n\t\t\t// current page near the end\n\t\t\tstartPage = totalPages - maxPages + 1\n\t\t\tendPage = totalPages\n\t\t} else {\n\t\t\t// current page somewhere in the middle\n\t\t\tstartPage = currentPage - maxPagesBeforeCurrentPage\n\t\t\tendPage = currentPage + maxPagesAfterCurrentPage\n\t\t}\n\t}\n\n\t// calculate start and end item indexes\n\tconst startIndex = (currentPage - 1) * pageSize\n\tconst endIndex = Math.min(startIndex + pageSize - 1, totalItems - 1)\n\n\t// create an array of pages to ng-repeat in the pager control\n\tconst pages = Array.from(Array(endPage + 1 - startPage).keys()).map(i => startPage + i)\n\n\t// return object with all pager properties required by the view\n\treturn {\n\t\ttotalItems: totalItems,\n\t\tcurrentPage: currentPage,\n\t\tpageSize: pageSize,\n\t\ttotalPages: totalPages,\n\t\tstartPage: startPage,\n\t\tendPage: endPage,\n\t\tstartIndex: startIndex,\n\t\tendIndex: endIndex,\n\t\tpages: pages,\n\t}\n}\n","export const createArrayRange = (from: number, to: number): number[] => {\n\tif (Number.isInteger(from) && Number.isInteger(to)) {\n\t\treturn [...Array(to + 1).keys()].slice(from)\n\t}\n\treturn []\n}\n","/*\n * Pagination\n */\n\n$class: \".gov-pagination\";\n\n#{$class} {\n\t@include base();\n\t&__list {\n\t\t@extend %reset-ul;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tflex-wrap: wrap;\n\t\tfont-weight: bold;\n\t\ttext-align: center;\n\t}\n\t&__list &__item {\n\t\t@extend %reset-ul-li;\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t\tmargin: 0;\n\t\tpadding: rem-calc(2);\n\t\tborder-radius: $border-radius;\n\t\toverflow: hidden;\n\t\t&--arrow {\n\t\t\tdisplay: flex;\n\t\t}\n\t\t&--select {\n\t\t\tz-index: 1;\n\t\t\tdisplay: flex;\n\t\t\toverflow: visible;\n\t\t\tpadding: rem-calc(0 16);\n\t\t}\n\t}\n\t&__arrow {\n\t\tmargin: 0;\n\t}\n\t&__item--more {\n\t\t.gov-form-select {\n\t\t\tselect {\n\t\t\t\tborder: none;\n\t\t\t\tpadding-right: rem-calc(12) !important;\n\t\t\t}\n\t\t\t.gov-icon {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t}\n\t&__inner {\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t\talign-self: stretch;\n\t\twidth: 100%;\n\t\ttext-decoration: none;\n\t\t// Use hover styles from gov-button to active page button\n\t\t&[wcag-current=\"true\"] {\n\t\t\t@each $variant, $types in $button-variants {\n\t\t\t\t@each $type, $definitions in $types {\n\t\t\t\t\t&[type=\"#{$type}\"][variant=\"#{$variant}\"] {\n\t\t\t\t\t\t.element {\n\t\t\t\t\t\t\tbackground-color: deep-map-get($button-variants, $variant, $type, \"hover-bg\");\n\t\t\t\t\t\t\tcolor: deep-map-get($button-variants, $variant, $type, \"hover-color\");\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// VARIANTS\n\t@each $size, $definitions in $pagination-sizes {\n\t\t&[size=\"#{$size}\"] {\n\t\t\t#{$class} {\n\t\t\t\t&__inner {\n\t\t\t\t\t@include typography(get(\"font\", $definitions));\n\t\t\t\t\tfont-weight: inherit;\n\t\t\t\t\t.element {\n\t\t\t\t\t\tmin-width: get(\"button-size\", $definitions);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n","import Fragment from \"../../helpers/Fragment\"\nimport { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State, Watch } from \"@stencil/core\"\nimport { validateProp } from \"../../helpers/Validate/props\"\nimport {\n\tPaginationClass,\n\tPaginationSizeType,\n\tPaginationSizes,\n\tPaginationVariantType,\n\tPaginationType,\n\tPaginationTypes,\n\tPaginationVariants,\n} from \"./constants\"\nimport { govHost, prepareClasses } from \"../../helpers/Dom/template\"\nimport { paginate, Pagination } from \"./pagination\"\nimport { toBoolAttrIfDefined } from \"../../helpers/Dom/template\"\nimport { validateWcagLabel, validateWcagProp } from \"../../helpers/Validate/wcag\"\nimport { canValidateWcagOnRender } from \"../../helpers/Dom/win\"\nimport { delay } from \"../../utils/utils\"\nimport { createID } from \"../../utils/string.utils\"\nimport { GovHost } from \"../../helpers/Dom/template.types\"\nimport {createArrayRange } from \"../../utils/array.utils\"\nimport { FormSelectEvent } from \"../gov-form/select/gov-form-select.types\"\nimport { PaginationEvent } from \"./gov-pagination.types\"\n\n@Component({\n\ttag: \"gov-pagination\",\n\tstyleUrl: \"gov-pagination.scss\",\n})\nexport class GovPagination {\n\tprivate h: GovHost\n\tprivate readonly pageSelectId: string\n\n\tprivate spreadSelectRef?: HTMLGovFormSelectElement\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t\tthis.pageSelectId = createID(\"GovPageSelect\")\n\t}\n\n\t@Element() readonly host: HTMLGovPaginationElement\n\t/**\n\t * Pagination type\n\t */\n\t@Prop() readonly type: PaginationType = \"button\"\n\t/**\n\t * Currently displayed page\n\t */\n\t@Prop() readonly current: number = 1\n\t/**\n\t * Total count of entries\n\t */\n\t@Prop() readonly total: number = 0\n\t/**\n\t * Set on active page\n\t */\n\t@Prop() readonly inverse: boolean\n\t/**\n\t * Pagination's size\n\t */\n\t@Prop() readonly size?: PaginationSizeType = \"m\"\n\t/**\n\t * Style variation of the pagination.\n\t */\n\t@Prop() readonly variant?: PaginationVariantType = \"primary\"\n\t/**\n\t * Maximum number of entries per page\n\t */\n\t@Prop({ attribute: \"page-size\" }) readonly pageSize: number = 10\n\t/**\n\t * Maximum pages displayed for selection\n\t */\n\t@Prop({ attribute: \"max-pages\" }) readonly maxPages: number = 5\n\t/**\n\t * Setting a link to redirect to a given page.\n\t * The {PAGE} wildcard can be used in the link to replace the page number.\n\t * Note that in the case of paging through a link, it is always necessary to send to the component the current page where the user is.\n\t */\n\t@Prop() readonly link: string\n\t/**\n\t * Adds accessible label for the pagination that is only shown for screen readers.\n\t */\n\t@Prop({ attribute: \"wcag-label\" }) readonly wcagLabel: string\n\t/**\n\t * Indicates the id of a component that labels the pagination.\n\t */\n\t@Prop({ attribute: \"wcag-labelled-by\" }) readonly wcagLabelledBy: string\n\t/**\n\t * Adds accessible label for the page select\n\t */\n\t@Prop({ attribute: \"wcag-select-label\" }) readonly wcagSelectLabel: string = \"Vybrat stranu\"\n\t/**\n\t * Adds accessible label for the page item\n\t */\n\t@Prop({ attribute: \"wcag-page-label\" }) readonly wcagPageLabel: string = \"Strana\"\n\t/**\n\t * Event called when changing the page with the current setting of the whole paging\n\t */\n\t@Event({ eventName: \"gov-page\" }) govPage: EventEmitter<PaginationEvent>\n\n\t@State() pagination: Pagination\n\n\t@Watch(\"type\")\n\tvalidateType(newValue: string): void {\n\t\tvalidateProp(PaginationTypes, newValue, PaginationClass.root)\n\t}\n\n\t@Watch(\"size\")\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(PaginationSizes, newValue, PaginationClass.root)\n\t}\n\n\t@Watch(\"variant\")\n\tvalidateVariant(newValue: string): void {\n\t\tvalidateProp(PaginationVariants, newValue, PaginationClass.root)\n\t}\n\n\t@Watch(\"current\")\n\t@Watch(\"total\")\n\t@Watch(\"pageSize\")\n\t@Watch(\"maxPages\")\n\trecalculate(): void {\n\t\tthis.recalculatePagination(this.current)\n\t}\n\n\tcomponentWillLoad() {\n\t\tthis.recalculatePagination(this.current)\n\t\tthis.validateSize(this.size)\n\t\tthis.validateVariant(this.variant)\n\t}\n\n\tasync componentDidRender() {\n\t\tif (canValidateWcagOnRender()) {\n\t\t\tawait delay(500)\n\t\t\tawait this.validateWcag()\n\t\t}\n\t}\n\n\tprivate recalculatePagination(currentPage: number) {\n\t\tthis.pagination = paginate(this.total, currentPage, this.pageSize, this.maxPages)\n\t}\n\n\tprivate isActivePageClass(originalClass: string, page: number) {\n\t\tif (this.pagination.currentPage === page) {\n\t\t\treturn originalClass + \" is-active\"\n\t\t} else {\n\t\t\treturn originalClass\n\t\t}\n\t}\n\n\tprivate prepareLinkUrl(page: number) {\n\t\tif (this.link) {\n\t\t\treturn String(this.link).replace(\"{PAGE}\", String(page))\n\t\t}\n\t\treturn undefined\n\t}\n\n\tprivate resetSelectValue() {\n\t\tif (this.spreadSelectRef) {\n\t\t\tthis.spreadSelectRef.getRef()\n\t\t\t\t.then((el: HTMLSelectElement) => {\n\t\t\t\t\tel.value = '...'\n\t\t\t\t})\n\t\t}\n\t}\n\n\trender() {\n\t\tconst pageResolver = (page: number, content: any) => {\n\t\t\tconst isDisabled = page === -1\n\t\t\tconst ariaCurrent = toBoolAttrIfDefined(this.pagination.currentPage === page ? true : undefined)\n\t\t\treturn (\n\t\t\t\t<gov-button\n\t\t\t\t\thref={this.prepareLinkUrl(page)}\n\t\t\t\t\tvariant={this.variant}\n\t\t\t\t\tsize={this.size}\n\t\t\t\t\ttype=\"base\"\n\t\t\t\t\tdisabled={isDisabled}\n\t\t\t\t\ton-gov-click={(e) => this.onClickHandler(e, page)}\n\t\t\t\t\twcag-label={page > -1 ? this.wcagPageLabel + \" \" + page : undefined}\n\t\t\t\t\twcag-current={ariaCurrent}\n\t\t\t\t\tclass={PaginationClass.inner}>\n\t\t\t\t\t{content}\n\t\t\t\t</gov-button>\n\t\t\t)\n\t\t}\n\t\treturn (\n\t\t\t<Host class={this.h.classes(PaginationClass.root)} type={this.type} variant={this.variant} size={this.size}>\n\t\t\t\t<nav aria-label={this.wcagLabel} aria-labelledby={this.wcagLabelledBy}>\n\t\t\t\t\t<ul class={PaginationClass.list}>\n\t\t\t\t\t\t<li class={prepareClasses([PaginationClass.item, PaginationClass.itemArrow])}>\n\t\t\t\t\t\t\t{pageResolver(\n\t\t\t\t\t\t\t\tthis.pagination.currentPage > 1 ? 1 : -1,\n\t\t\t\t\t\t\t\t<gov-icon class={PaginationClass.arrow} name=\"chevron-double-left\"></gov-icon>,\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</li>\n\n\t\t\t\t\t\t<li class={prepareClasses([PaginationClass.item, PaginationClass.itemArrow])}>\n\t\t\t\t\t\t\t{pageResolver(\n\t\t\t\t\t\t\t\tthis.pagination.startPage < this.pagination.currentPage ? this.pagination.currentPage - 1 : -1,\n\t\t\t\t\t\t\t\t<gov-icon class={PaginationClass.arrow} name=\"chevron-left\"></gov-icon>,\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</li>\n\n\t\t\t\t\t\t{this.type == \"select\" ? (\n\t\t\t\t\t\t\t<li class={prepareClasses([PaginationClass.item, PaginationClass.itemSelect])}>\n\t\t\t\t\t\t\t\t<span class={PaginationClass.inner}>\n\t\t\t\t\t\t\t\t\t<span id={this.pageSelectId} hidden>\n\t\t\t\t\t\t\t\t\t\t{this.wcagSelectLabel}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t<gov-form-select\n\t\t\t\t\t\t\t\t\t\tsize=\"m\"\n\t\t\t\t\t\t\t\t\t\tvariant={this.variant}\n\t\t\t\t\t\t\t\t\t\twcag-labelled-by={this.pageSelectId}\n\t\t\t\t\t\t\t\t\t\ton-gov-change={this.onSelectHandler.bind(this)}>\n\t\t\t\t\t\t\t\t\t\t{createArrayRange(1, this.pagination.totalPages).map(page => (\n\t\t\t\t\t\t\t\t\t\t\t<option value={page} selected={this.pagination.currentPage === page}>\n\t\t\t\t\t\t\t\t\t\t\t\t{page}\n\t\t\t\t\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t</gov-form-select>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t{this.pagination.pages.map(page => (\n\t\t\t\t\t\t\t\t\t<li class={this.isActivePageClass(PaginationClass.item, page)}>{pageResolver(page, page)}</li>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t{this.pagination.totalPages ? (\n\t\t\t\t\t\t\t\t\t<li class={prepareClasses([PaginationClass.item, PaginationClass.itemMore])}>\n\t\t\t\t\t\t\t\t\t<span class={PaginationClass.inner}>\n\t\t\t\t\t\t\t\t\t\t<span id={this.pageSelectId} hidden>\n\t\t\t\t\t\t\t\t\t\t\t{this.wcagSelectLabel}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t<gov-form-select\n\t\t\t\t\t\t\t\t\t\t\tsize=\"m\"\n\t\t\t\t\t\t\t\t\t\t\tvariant={this.variant}\n\t\t\t\t\t\t\t\t\t\t\twcag-labelled-by={this.pageSelectId}\n\t\t\t\t\t\t\t\t\t\t\tref={el => (this.spreadSelectRef = el as HTMLGovFormSelectElement)}\n\t\t\t\t\t\t\t\t\t\t\ton-gov-change={this.onSelectHandler.bind(this)}>\n\t\t\t\t\t\t\t\t\t\t\t<option selected hidden>...</option>\n\t\t\t\t\t\t\t\t\t\t\t{createArrayRange(1, this.pagination.totalPages).map(page => (\n\t\t\t\t\t\t\t\t\t\t\t\t<option value={page} selected={false}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{page}\n\t\t\t\t\t\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t</gov-form-select>\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t<li class={prepareClasses([PaginationClass.item, PaginationClass.itemArrow])}>\n\t\t\t\t\t\t\t{pageResolver(\n\t\t\t\t\t\t\t\tthis.pagination.totalPages > this.pagination.currentPage ? this.pagination.currentPage + 1 : -1,\n\t\t\t\t\t\t\t\t<gov-icon class={PaginationClass.arrow} name=\"chevron-right\"></gov-icon>,\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</li>\n\n\t\t\t\t\t\t<li class={prepareClasses([PaginationClass.item, PaginationClass.itemArrow])}>\n\t\t\t\t\t\t\t{pageResolver(\n\t\t\t\t\t\t\t\tthis.pagination.totalPages > this.pagination.currentPage ? this.pagination.totalPages : -1,\n\t\t\t\t\t\t\t\t<gov-icon class={PaginationClass.arrow} name=\"chevron-double-right\"></gov-icon>,\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</nav>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\tprivate onClickHandler(e: CustomEvent, page: number): void {\n\t\te.stopPropagation()\n\t\tthis.recalculatePagination(page)\n\t\tthis.govPage.emit({\n\t\t\tcomponent: PaginationClass.root,\n\t\t\tpagination: this.pagination\n\t\t})\n\t}\n\n\tprivate onSelectHandler(e: CustomEvent<FormSelectEvent>): void {\n\t\te.stopPropagation()\n\t\tconst value = e.detail.value\n\t\tconst page = parseInt(value)\n\t\tthis.resetSelectValue()\n\t\tif (isNaN(page) === false) {\n\t\t\tthis.recalculatePagination(page)\n\t\t\tif (this.link) {\n\t\t\t\twindow.location.href = this.prepareLinkUrl(page)\n\t\t\t} else {\n\t\t\t\tthis.govPage.emit({\n\t\t\t\t\tcomponent: PaginationClass.root,\n\t\t\t\t\tpagination: this.pagination\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Validate the WCAG attributes of the component\n\t */\n\t@Method()\n\tasync validateWcag(): Promise<void> {\n\t\tvalidateWcagProp(this.wcagPageLabel, \"wcag-page-label\", PaginationClass.root)\n\t\tvalidateWcagLabel(this.wcagLabel, this.wcagLabelledBy, PaginationClass.root)\n\t}\n}\n","/*\n * Prompt\n */\n\n// $class: \".gov-prompt\";\n@import \"../gov-modal/gov-modal.scss\";\n\n// #{$class} {\n// \t//\n// }\n","import { Component, Event, Element, EventEmitter, h, Host, Method, Prop, Watch } from \"@stencil/core\"\nimport { createID } from \"../../utils/string.utils\"\nimport { validateWcagRef } from \"../../helpers/Validate/wcag\"\nimport { ModalClass } from \"../gov-modal/constants\"\nimport { canValidateWcagOnRender } from \"../../helpers/Dom/win\"\nimport { delay } from \"../../utils/utils\"\nimport { toBoolAttr } from \"../../helpers/Dom/template\"\nimport { govHost } from \"../../helpers/Dom/template\"\nimport { GovHost } from \"../../helpers/Dom/template.types\"\nimport { govErrorLog } from \"../../helpers/Log/gov.log\"\n\n@Component({\n\ttag: \"gov-prompt\",\n\tstyleUrl: \"gov-prompt.scss\",\n})\nexport class GovPrompt {\n\tprivate h: GovHost\n\tprivate readonly labelId: string\n\tprivate readonly contentId: string\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t\tthis.labelId = createID(\"GovPromptLabel\")\n\t\tthis.contentId = createID(\"GovPromptContent\")\n\t}\n\n\t@Element() host: HTMLGovPromptElement\n\t/**\n\t * Attribute for modal window display\n\t */\n\t@Prop({mutable: true}) open = false\n\t/**\n\t * Title of modal window\n\t */\n\t@Prop() label: string\n\t/**\n\t * Role of modal\n\t */\n\t@Prop({ attribute: \"role\" }) role = \"dialog\"\n\t/**\n\t * Used to change the HTML tag in the modal label for correct semantic structure\n\t */\n\t@Prop({ attribute: \"label-tag\" }) readonly labelTag: string = \"h2\"\n\t/**\n\t * String of id's that indicate alternative labels elements\n\t */\n\t@Prop({ attribute: \"wcag-labelled-by\" }) wcagLabelledBy: string\n\t/**\n\t * Indicates the id of a component that describes the modal.\n\t */\n\t@Prop({ attribute: \"wcag-described-by\" }) wcagDescribedBy: string\n\t/**\n\t * Adds accessible label for the modal close button that is only shown for screen readers.\n\t */\n\t@Prop({ attribute: \"wcag-close-label\" }) wcagCloseLabel: string\n\t/**\n\t * A string of identifiers that indicate alternative label elements for closing the modal window\n\t */\n\t@Prop({ attribute: \"wcag-close-labelled-by\" }) wcagCloseLabelledBy: string\n\t/**\n\t * Emitted when modal window closes.\n\t */\n\t@Event({ eventName: \"gov-close\" }) govClose: EventEmitter<PointerEvent>\n\n\t@Watch(\"labelTag\")\n\tvalidateLabelTag(newValue: string): void {\n\t\tconst validTags = [\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"]\n\t\tif (newValue) {\n\t\t\tif (!validTags.includes(newValue)) {\n\t\t\t\tgovErrorLog(`[${ModalClass.root}]: Tag ${newValue} is not allowed.`)\n\t\t\t}\n\t\t}\n\t}\n\n\t@Watch(\"open\")\n\twatchOpen(newValue: boolean): void {\n\t\tthis.open = newValue\n\t}\n\n\tprivate showModal() {\n\t\tthis.open = true\n\t\tdocument.body.classList.add(ModalClass.bodyFix)\n\t}\n\n\tprivate hideModal() {\n\t\tthis.open = false\n\t\tdocument.body.classList.remove(ModalClass.bodyFix)\n\t}\n\n\tasync componentWillRender() {\n\t\tif (this.open) {\n\t\t\tthis.showModal()\n\t\t} else {\n\t\t\tthis.hideModal()\n\t\t}\n\t}\n\n\tasync componentDidRender() {\n\t\tif (canValidateWcagOnRender()) {\n\t\t\tawait delay(500)\n\t\t\tawait this.validateWcag()\n\t\t}\n\t}\n\n\trender() {\n\t\tconst LabelTag = this.labelTag\n\t\treturn (\n\t\t\t<Host class={this.h.classes(ModalClass.rootPrompt)} open={this.open}>\n\t\t\t\t<dialog\n\t\t\t\t\tclass={ModalClass.dialog}\n\t\t\t\t\thidden={!this.open}\n\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\topen={this.open}\n\t\t\t\t\taria-modal=\"true\"\n\t\t\t\t\taria-hidden={toBoolAttr(!this.open)}\n\t\t\t\t\taria-labelledby={this.wcagLabelledBy || this.labelId}\n\t\t\t\t\taria-describedby={this.wcagDescribedBy || this.contentId}\n\t\t\t\t\trole={this.role}\n\t\t\t\t>\n\t\t\t\t\t<div class={ModalClass.inner}>\n\t\t\t\t\t\t<div class={ModalClass.header}>\n\t\t\t\t\t\t\t{this.h.hasSlot(\"icon\") && (\n\t\t\t\t\t\t\t\t<div class={ModalClass.icon}>\n\t\t\t\t\t\t\t\t\t<slot name=\"icon\" />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{this.label && (\n\t\t\t\t\t\t\t\t<LabelTag class={ModalClass.title} id={this.labelId}>\n\t\t\t\t\t\t\t\t\t{this.label}\n\t\t\t\t\t\t\t\t</LabelTag>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t<gov-button\n\t\t\t\t\t\t\t\tclass={ModalClass.close}\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\twcagLabel={this.wcagCloseLabel}\n\t\t\t\t\t\t\t\twcagLabelledBy={this.wcagCloseLabelledBy}\n\t\t\t\t\t\t\t\ttype=\"base\"\n\t\t\t\t\t\t\t\ton-gov-click={this.onCloseHandler.bind(this)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<gov-icon name=\"x-lg\" />\n\t\t\t\t\t\t\t</gov-button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class={ModalClass.content} id={this.contentId}>\n\t\t\t\t\t\t\t<slot />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class={ModalClass.actions}>\n\t\t\t\t\t\t\t<slot name=\"actions\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</dialog>\n\n\t\t\t\t{this.open ? (\n\t\t\t\t\t<gov-backdrop\n\t\t\t\t\t\twcag-label={this.wcagCloseLabel}\n\t\t\t\t\t\twcag-labelled-by={this.wcagCloseLabelledBy}\n\t\t\t\t\t\ton-gov-click={this.onCloseHandler.bind(this)}\n\t\t\t\t\t/>\n\t\t\t\t) : null}\n\t\t\t</Host>\n\t\t)\n\t}\n\n\tprivate onCloseHandler(e: PointerEvent) {\n\t\te.stopPropagation()\n\t\tthis.hideModal()\n\t\tthis.govClose.emit(e)\n\t}\n\n\t/**\n\t * Showing the modal\n\t */\n\t@Method()\n\tasync show(): Promise<void> {\n\t\tthis.showModal()\n\t}\n\n\t/**\n\t * Hiding the modal\n\t */\n\t@Method()\n\tasync hide(): Promise<void> {\n\t\tthis.hideModal()\n\t}\n\n\t/**\n\t * Validate the WCAG attributes of the component\n\t */\n\t@Method()\n\tasync validateWcag(): Promise<void> {\n\t\tvalidateWcagRef(this.wcagLabelledBy, \"wcag-labelled-by\", ModalClass.root)\n\t\tvalidateWcagRef(this.wcagDescribedBy, \"wcag-described-by\", ModalClass.root)\n\t}\n}\n","export const SideNavClass = {\n\troot: 'gov-side-nav',\n\taside: 'gov-side-nav__aside',\n}\n\nexport const SideNavItemClass = {\n\troot: 'gov-side-nav-item',\n\trootWithIcon: 'gov-side-nav-item--w-icon',\n\theader: 'gov-side-nav-item__header',\n\ticon: 'gov-side-nav-item__icon',\n\tname: 'gov-side-nav-item__name',\n\tlabel: 'gov-side-nav-item__label',\n\tarrow: 'gov-side-nav-item__arrow',\n\tbadge: 'gov-side-nav-item__badge',\n\tcontent: 'gov-side-nav-item__content',\n}\n","/*\n * Side nav\n */\n\n$class: \".gov-side-nav\";\n\n#{$class} {\n\t@include base();\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop } from '@stencil/core'\nimport { SideNavClass, SideNavItemClass } from './constants'\nimport { GovSideNavItemCustomEvent } from '../../components'\nimport { GovSideNavItemChangeEvent } from './gov-side-nav-item.d'\nimport { validateWcagLabel } from '../../helpers/Validate/wcag'\nimport { canValidateWcagOnRender } from '../../helpers/Dom/win'\nimport { delay } from '../../utils/utils'\nimport { booleanString } from '../../helpers/Dom/template'\n\n@Component({\n\ttag: 'gov-side-nav',\n\tstyleUrl: 'gov-side-nav.scss',\n})\nexport class GovSideNav {\n\t@Element() readonly host: HTMLGovSideNavElement\n\n\t/**\n\t * Determide if component should have inversed colors to be used on dark background.\n\t */\n\t@Prop() readonly inverse: boolean = false\n\t/**\n\t * Determide if component should have compact styles.\n\t */\n\t@Prop() readonly compact: boolean = false\n\t/**\n\t * Adds accessible label for the sidenav that is only shown for screen readers.\n\t */\n\t@Prop({ attribute: 'wcag-label' }) readonly wcagLabel: string\n\t/**\n\t * String of id's that indicate alternative labels elements\n\t */\n\t@Prop({ attribute: 'wcag-labelled-by' }) readonly wcagLabelledBy: string\n\t/**\n\t * Called when the sidenav state changes\n\t */\n\t@Event({ eventName: 'gov-change' }) govChange: EventEmitter<GovSideNavItemChangeEvent>\n\n\tcomponentDidLoad() {\n\t\tthis.host.querySelectorAll(SideNavItemClass.root).forEach((child: HTMLGovSideNavItemElement) => {\n\t\t\tchild.setAttribute('inverse', booleanString(this.inverse))\n\t\t\tchild.setAttribute('compact', booleanString(this.compact))\n\t\t\tchild.addEventListener('gov-change', (e: GovSideNavItemCustomEvent<GovSideNavItemChangeEvent>) => {\n\t\t\t\te.stopPropagation()\n\t\t\t\tthis.govChange.emit(e.detail)\n\t\t\t})\n\t\t})\n\t}\n\n\tasync componentDidRender() {\n\t\tif (canValidateWcagOnRender()) {\n\t\t\tawait delay(500)\n\t\t\tawait this.validateWcag()\n\t\t}\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={SideNavClass.root} compact={this.compact} inverse={this.inverse} arial-label={this.wcagLabel} arial-labelledby={this.wcagLabelledBy}>\n\t\t\t\t<aside class={SideNavClass.aside} role={'list'}>\n\t\t\t\t\t<slot />\n\t\t\t\t</aside>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\t/**\n\t * Validate the WCAG attributes of the component\n\t */\n\t@Method()\n\tasync validateWcag(): Promise<void> {\n\t\tvalidateWcagLabel(this.wcagLabel, this.wcagLabelledBy, SideNavClass.root)\n\t}\n}\n","/*\n * Side nav - Item\n */\n\n$class: \".gov-side-nav-item\";\n\n#{$class} {\n\t@include base();\n\t&__header {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tborder-bottom: $side-nav-border;\n\t}\n\t&__name {\n\t\t@include button-core();\n\t\t@include typography($font-size-m);\n\t\t@include focus-outline();\n\t\tdisplay: flex;\n\t\tgap: rem-calc(16);\n\t\tflex: 1 1 auto;\n\t\tjustify-content: flex-start;\n\t\tpadding: rem-calc(12 16 12 8);\n\t\tcolor: $side-nav-color;\n\t\ttext-align: left;\n\t\ttransition: background-color $t;\n\t\t@at-root button#{&} {\n\t\t\tpadding-right: 0 !important;\n\t\t}\n\n\t\t// HOVERS\n\t\t@include hover() {\n\t\t\tbackground: $side-nav-hover-bg;\n\t\t}\n\t}\n\t&__icon {\n\t\tdisplay: flex;\n\t\tflex: 0 0 auto;\n\t\twidth: rem-calc(16);\n\t\theight: rem-calc(16);\n\t\t.gov-icon {\n\t\t\tmargin: 0;\n\t\t\tcolor: $side-nav-color;\n\t\t}\n\t}\n\t&__label {\n\t\tcolor: inherit;\n\t}\n\t&__badge {\n\t\tdisplay: flex;\n\t\tflex: 0 0 auto;\n\t}\n\t&__arrow {\n\t\t@include button-core();\n\t\t@include focus-outline();\n\t\tflex: 0 0 auto;\n\t\talign-self: stretch;\n\t\twidth: rem-calc(48);\n\t\tmargin-left: auto;\n\t\tcolor: $side-nav-arrow-color;\n\t\ttransition: background-color $t;\n\t\t.gov-icon {\n\t\t\twidth: rem-calc(12);\n\t\t\theight: rem-calc(12);\n\t\t}\n\t\t@include hover() {\n\t\t\tbackground: $side-nav-hover-bg;\n\t\t}\n\t}\n\t&__content {\n\t\tdisplay: none;\n\t}\n\n\t// VARIANTS\n\t&--w-icon &__label {\n\t\tmargin-left: rem-calc(32);\n\t}\n\t&--w-icon &__icon + &__label {\n\t\tmargin-left: 0;\n\t}\n\t// nested styles\n\t& & {\n\t\t#{$class} {\n\t\t\t&__header {\n\t\t\t\tborder: none !important;\n\t\t\t}\n\t\t\t&__name {\n\t\t\t\t@include typography($font-size-s);\n\t\t\t\tpadding: rem-calc(10 8);\n\t\t\t\tfont-weight: bold;\n\t\t\t}\n\t\t}\n\t\t@include parameter(\"aria-expanded\") {\n\t\t\tbackground: $side-nav-bg-level-2;\n\t\t\t@include parameter(\"inverse\") {\n\t\t\t\tbackground: $side-nav-bg-level-2-inverse;\n\t\t\t}\n\t\t}\n\t}\n\t& & & {\n\t\t#{$class} {\n\t\t\t&__name {\n\t\t\t\tgap: rem-calc(12);\n\t\t\t\tfont-weight: inherit;\n\t\t\t}\n\t\t}\n\t}\n\t@include parameter(\"compact\") {\n\t\t#{$class} {\n\t\t\t&__header {\n\t\t\t\tborder-bottom: none;\n\t\t\t}\n\t\t}\n\t}\n\n\t// STATES\n\t@include parameter(\"aria-expanded\") {\n\t\t& > #{$class}__header #{$class}__arrow .gov-icon {\n\t\t\ttransform: scale(-1);\n\t\t}\n\t\t& > #{$class}__content {\n\t\t\tdisplay: block;\n\t\t}\n\t}\n}\n","import { Component, Element, h, Prop, State, Watch, Host, Method, Event, EventEmitter } from '@stencil/core'\nimport { govErrorLog } from '../../helpers/Log/gov.log'\nimport { SideNavItemClass } from './constants'\nimport { booleanString, prepareClasses } from '../../helpers/Dom/template'\nimport { GovSideNavItemChangeEvent } from './gov-side-nav-item.d'\nimport { govHost } from '../../helpers/Dom/template'\nimport { GovHost } from '../../helpers/Dom/template.types'\n\n@Component({\n\ttag: 'gov-side-nav-item',\n\tstyleUrl: 'gov-side-nav-item.scss',\n})\nexport class GovSideNavItem {\n\tprivate h: GovHost\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t}\n\n\t@Element() readonly host: HTMLGovSideNavItemElement\n\t@State() isExpandedState: boolean\n\n\t/**\n\t * Determide if component should have inversed colors to be used on dark background\n\t */\n\t@Prop() readonly inverse: boolean = false\n\t/**\n\t * Determide if component should have compact styles.\n\t */\n\t@Prop() readonly compact: boolean = false\n\t/**\n\t * Custom sidenav item identifier. Otherwise, it will be generated\n\t */\n\t@Prop() readonly identifier: string\n\t/**\n\t * Defined the count of nested items\n\t */\n\t@Prop() readonly count: boolean = false\n\t/**\n\t * Item name of the sidenav\n\t */\n\t@Prop() readonly label: string\n\t/**\n\t * Makes the button component disabled.\n\t * This prevents users from being able to interact with the button, and conveys its inactive state to assistive technologies.\n\t */\n\t@Prop() readonly disabled: boolean = false\n\t/**\n\t * Same as original parameter\n\t * @link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-href\n\t */\n\t@Prop() readonly href: string\n\t/**\n\t * Defines whether the sidenav is open or closed by default\n\t */\n\t@Prop({ attribute: 'is-expanded' }) readonly isExpanded: boolean = false\n\t/**\n\t * Called when the sidenav state changes\n\t */\n\t@Event({ eventName: 'gov-change' }) govChange: EventEmitter<GovSideNavItemChangeEvent>\n\n\t@Watch('label')\n\tvalidateLabel(newValue: string): void {\n\t\tif (!newValue) {\n\t\t\tgovErrorLog(`[${SideNavItemClass.root}]: Parameter label is required.`)\n\t\t}\n\t}\n\n\tprivate emmitChange(): void {\n\t\tthis.govChange.emit({ open: this.isExpandedState, element: this.host })\n\t}\n\n\tcomponentWillLoad(): void {\n\t\tthis.isExpandedState = this.isExpanded\n\t\tthis.validateLabel(this.label)\n\t}\n\n\tget classNames(): string {\n\t\tconst { h } = this\n\n\t\treturn prepareClasses([SideNavItemClass.root, h.hasSlot('icon') && SideNavItemClass.rootWithIcon])\n\t}\n\n\trender() {\n\t\tconst { isExpandedState, label } = this\n\t\t// TODO: správný počet zanořených childů\n\t\tconst hasChilds = this.host.children.length > 1\n\n\t\treturn (\n\t\t\t<Host class={this.classNames} role=\"listitem\" inverse={this.inverse} aria-expanded={booleanString(isExpandedState)}>\n\t\t\t\t{this.href ? (\n\t\t\t\t\t<div class={SideNavItemClass.header}>\n\t\t\t\t\t\t<a class={SideNavItemClass.name} href={this.href}>\n\t\t\t\t\t\t\t{this.h.hasSlot('icon') && (\n\t\t\t\t\t\t\t\t<span class={SideNavItemClass.icon}>\n\t\t\t\t\t\t\t\t\t<slot name=\"icon\" />\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t<span class={SideNavItemClass.label}>{label}</span>\n\n\t\t\t\t\t\t\t{this.count && (\n\t\t\t\t\t\t\t\t<span class={SideNavItemClass.badge}>\n\t\t\t\t\t\t\t\t\t<gov-badge variant=\"secondary\" size=\"s\" inverse={this.inverse}>\n\t\t\t\t\t\t\t\t\t\t{/* // TODO: správný počet zanořených childů */}3\n\t\t\t\t\t\t\t\t\t</gov-badge>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</a>\n\n\t\t\t\t\t\t{hasChilds && (\n\t\t\t\t\t\t\t<button type=\"button\" class={SideNavItemClass.arrow} onClick={() => this.toggle()}>\n\t\t\t\t\t\t\t\t<gov-icon name=\"chevron-down\"></gov-icon>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t) : (\n\t\t\t\t\t<div class={SideNavItemClass.header}>\n\t\t\t\t\t\t<button class={SideNavItemClass.name} type=\"button\" onClick={() => this.toggle()}>\n\t\t\t\t\t\t\t{this.h.hasSlot('icon') && (\n\t\t\t\t\t\t\t\t<span class={SideNavItemClass.icon}>\n\t\t\t\t\t\t\t\t\t<slot name=\"icon\" />\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t<span class={SideNavItemClass.label}>{label}</span>\n\n\t\t\t\t\t\t\t{hasChilds && (\n\t\t\t\t\t\t\t\t<span class={SideNavItemClass.arrow}>\n\t\t\t\t\t\t\t\t\t<gov-icon name=\"chevron-down\"></gov-icon>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{hasChilds && (\n\t\t\t\t\t<div class={SideNavItemClass.content}>\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</Host>\n\t\t)\n\t}\n\n\t/**\n\t * Opening the sidenav\n\t */\n\t@Method()\n\tasync open(): Promise<void> {\n\t\tthis.isExpandedState = true\n\t\tthis.emmitChange()\n\t}\n\n\t/**\n\t * Closing the sidenav\n\t */\n\t@Method()\n\tasync close(): Promise<void> {\n\t\tthis.isExpandedState = false\n\t\tthis.emmitChange()\n\t}\n\n\t/**\n\t * sidenav switch\n\t */\n\t@Method()\n\tasync toggle(): Promise<void> {\n\t\tthis.isExpandedState = !this.isExpandedState\n\t\tthis.emmitChange()\n\t}\n\n\t/**\n\t * Returns the current state of the component\n\t */\n\t@Method()\n\tasync currentState(): Promise<boolean> {\n\t\treturn this.isExpandedState\n\t}\n}\n","import { pick } from \"../../../utils/utils\"\nimport { Variants } from \"../../../core/constants/variants\"\nimport { ValueOf } from \"../../../types/interfaces\"\n\nexport const SkeletonVariants = pick(Variants, [\"PRIMARY\", \"SECONDARY\", \"SUCCESS\", \"ERROR\", \"WARNING\"])\nexport type SkeletonVariantsType = `${ValueOf<typeof SkeletonVariants>}`\n\nexport enum SkeletonShapes {\n\tCIRCLE = 'circle',\n\tREACT = 'rect',\n\tTEXT = 'text'\n}\nexport type SkeletonShapesType = `${ValueOf<typeof SkeletonShapes>}`\n\nexport enum SkeletonAnimation {\n\tPULSE = 'pulse',\n\tPROGRESS = 'progress',\n\tFALSE = 'false'\n}\nexport type SkeletonAnimationType = `${ValueOf<typeof SkeletonAnimation>}`\n\nexport const SkeletonClass = {\n\troot: 'gov-skeleton',\n\tloader: 'gov-skeleton__loader',\n}\n","$class: \".gov-skeleton\";\n\n#{$class} {\n\t&__loader {\n\t\tposition: relative;\n\t\tdisplay: inline-block;\n\t\twidth: $skeleton-width;\n\t\theight: $skeleton-height;\n\t\tborder-radius: $skeleton-border-radius;\n\t\toutline: none;\n\t\toverflow: hidden;\n\t\tbox-sizing: border-box;\n\t\twill-change: transform;\n\n\t\t+ #{$class}__loader {\n\t\t\tmargin-top: $skeleton-margin-top;\n\t\t}\n\n\t\t&.circle {\n\t\t\twidth: $skeleton-circle-size;\n\t\t\theight: $skeleton-circle-size;\n\t\t\tborder-radius: $skeleton-circle-radius;\n\t\t}\n\n\t\t&.rect {\n\t\t\tborder-radius: $skeleton-rect-radius;\n\t\t}\n\n\t\t&.progress {\n\t\t\tbackground-size: 200px 100%;\n\t\t\tanimation: progress 2s cubic-bezier(0.4, 0, 0.2, 1) infinite;\n\t\t}\n\n\t\t&.pulse {\n\t\t\tanimation: pulse 1.5s cubic-bezier(0.4, 0, 0.2, 1) infinite;\n\t\t\tanimation-delay: 0.5s;\n\t\t}\n\n\t\t@media (prefers-reduced-motion: reduce) {\n\t\t\t&.pulse,\n\t\t\t&.progress {\n\t\t\t\tbackground-image: none;\n\t\t\t\tanimation: none;\n\t\t\t}\n\t\t}\n\t}\n\n\t@each $variant, $definitions in $skeleton-variants {\n\t\t&[variant=\"#{$variant}\"] {\n\t\t\t#{$class}__loader {\n\t\t\t\tbackground-color: get(\"background\", $definitions);\n\t\t\t\tbackground-repeat: no-repeat;\n\n\t\t\t\t&.progress {\n\t\t\t\t\tbackground-image: linear-gradient(90deg, get(\"background\", $definitions), get(\"foreground\", $definitions), get(\"background\", $definitions));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n","import { Component, Element, h, Host, Method, Prop, Watch } from \"@stencil/core\"\nimport {\n\tSkeletonAnimation,\n\tSkeletonAnimationType,\n\tSkeletonClass, SkeletonShapes,\n\tSkeletonShapesType, SkeletonVariants,\n\tSkeletonVariantsType,\n} from \"./constants\"\nimport { GovHost } from \"../../../helpers/Dom/template.types\"\nimport { govHost } from \"../../../helpers/Dom/template\"\nimport { validateProp } from \"../../../helpers/Validate/props\"\nimport { canValidateWcagOnRender } from \"../../../helpers/Dom/win\"\nimport { delay } from \"../../../utils/utils\"\nimport { validateWcagLabel } from \"../../../helpers/Validate/wcag\"\n\n@Component({\n\ttag: \"gov-skeleton\",\n\tstyleUrl: \"gov-skeleton.scss\",\n})\nexport class GovSkeleton {\n\th: GovHost\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t}\n\n\t@Element() host: HTMLGovSkeletonElement\n\t/**\n\t * Style variation of the skeleton.\n\t */\n\t@Prop() readonly variant?: SkeletonVariantsType = \"secondary\"\n\t/**\n\t * Number of rows of current skeleton type\n\t */\n\t@Prop() count = 1\n\t/**\n\t * Shape of the skeleton\n\t */\n\t@Prop() shape?: SkeletonShapesType = \"text\"\n\t/**\n\t * Width of the skeleton ex. 100px, 100%, auto etc.\n\t */\n\t@Prop() width: string = null\n\t/**\n\t * Height of the skeleton ex. 100px, 100%, auto etc.\n\t */\n\t@Prop() height: string = null\n\t/**\n\t * Animation type\n\t */\n\t@Prop() animation?: SkeletonAnimationType = \"progress\"\n\t/**\n\t * Adds accessible label for the skeleton that is only shown for screen readers.\n\t */\n\t@Prop({ attribute: 'wcag-label' }) readonly wcagLabel: string\n\n\titems: number[] = []\n\n\t@Watch('variant')\n\tvalidateVariant(newValue: string): void {\n\t\tvalidateProp(SkeletonVariants, newValue, SkeletonClass.root)\n\t}\n\n\t@Watch('shape')\n\tvalidateShape(newValue: string): void {\n\t\tvalidateProp(SkeletonShapes, newValue, SkeletonClass.root)\n\t}\n\n\t@Watch('animation')\n\tvalidateAnimation(newValue: string): void {\n\t\tvalidateProp(SkeletonAnimation, newValue, SkeletonClass.root)\n\t}\n\n\tcomponentWillLoad() {\n\t\tthis.validateVariant(this.variant)\n\t\tthis.validateShape(this.shape)\n\t\tthis.validateAnimation(this.animation)\n\t\tthis.init()\n\t}\n\n\tcomponentWillUpdate() {\n\t\tthis.init()\n\t}\n\n\tasync componentDidRender() {\n\t\tif (canValidateWcagOnRender()) {\n\t\t\tawait delay(500)\n\t\t\tawait this.validateWcag()\n\t\t}\n\t}\n\n\tinit() {\n\t\tthis.items.length = this.count\n\t\tthis.items.fill(1)\n\t}\n\n\tget style() {\n\t\tconst dimenssionsStyles: {\n\t\t\twidth?: string,\n\t\t\theight?: string,\n\t\t} = {\n\t\t\twidth: null,\n\t\t\theight: null,\n\t\t}\n\t\tif (this.width) {\n\t\t\tdimenssionsStyles.width = this.width\n\t\t}\n\n\t\tif (this.height) {\n\t\t\tdimenssionsStyles.height = this.height\n\t\t}\n\n\t\treturn { ...dimenssionsStyles }\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={this.h.classes(SkeletonClass.root)} variant={this.variant}>\n\t\t\t\t{this.items.map((_, index) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\tclass={{\n\t\t\t\t\t\t\t\tcircle: this.shape === \"circle\",\n\t\t\t\t\t\t\t\trect: this.shape === \"rect\",\n\t\t\t\t\t\t\t\tprogress: this.animation === \"progress\",\n\t\t\t\t\t\t\t\tpulse: this.animation === \"pulse\",\n\t\t\t\t\t\t\t\t[SkeletonClass.loader]: true,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\taria-busy=\"true\"\n\t\t\t\t\t\t\taria-valuemin=\"0\"\n\t\t\t\t\t\t\taria-valuemax=\"100\"\n\t\t\t\t\t\t\taria-valuetext={this.wcagLabel}\n\t\t\t\t\t\t\trole=\"progressbar\"\n\t\t\t\t\t\t\ttabindex=\"0\"\n\t\t\t\t\t\t\tstyle={this.style}\n\t\t\t\t\t\t></span>\n\t\t\t\t\t)\n\t\t\t\t})}\n\t\t\t</Host>\n\t\t)\n\t}\n\n\t/**\n\t * Validate the WCAG attributes of the component\n\t */\n\t@Method()\n\tasync validateWcag(): Promise<void> {\n\t\tvalidateWcagLabel(this.wcagLabel, undefined, SkeletonClass.root)\n\t}\n}\n","import { Sizes } from '../../core/constants/sizes'\nimport { pick } from '../../utils/utils'\nimport { ValueOf } from '../../types/interfaces'\n\nexport const SpacerSize = pick(Sizes, ['_2XS', '_XS', '_S', '_M', '_L', '_XL', '_2XL', '_3XL', '_5XL'])\nexport type SpacerSizeType = `${ValueOf<typeof SpacerSize>}`\n\nexport enum SpacerBreakpoints {\n\tNONE = 'none',\n\tSM = 'sm',\n\tMD = 'md',\n\tLG = 'lg',\n\tXL = 'xl',\n}\nexport type SpacerBreakpointsType = `${ValueOf<typeof SpacerBreakpoints>}`\n\nexport const SpacerClass = {\n\troot: 'gov-spacer',\n}\n","/*\n * Spacer\n */\n\n$class: \".gov-spacer\";\n\n#{$class} {\n\t@include base();\n\n\t// VARIANTS\n\t@each $name, $value in $sizes {\n\t\t&[size=\"#{$name}\"] {\n\t\t\theight: #{$value};\n\t\t}\n\t}\n\t@each $name, $value in $mq-breakpoints {\n\t\t&[breakpoint=\"#{$name}\"] {\n\t\t\tdisplay: none;\n\n\t\t\t@if #{$value} != \"0\" {\n\t\t\t\t@include mq($from: #{$name}) {\n\t\t\t\t\tdisplay: block;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n","import { Component, Element, h, Host, Prop, Watch } from '@stencil/core'\nimport { validateProp } from '../../helpers/Validate/props'\nimport { SpacerBreakpoints, SpacerBreakpointsType, SpacerClass, SpacerSize, SpacerSizeType } from './constants'\nimport { GovHost } from '../../helpers/Dom/template.types'\nimport { govHost } from '../../helpers/Dom/template'\n\n@Component({\n\ttag: 'gov-spacer',\n\tstyleUrl: 'gov-spacer.scss',\n})\nexport class GovSpacer {\n\tprivate h: GovHost\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t}\n\t@Element() host: HTMLGovSpacerElement\n\t/**\n\t * Spacer’s size\n\t */\n\t@Prop() readonly size?: SpacerSizeType\n\t/**\n\t * Breakpoint\n\t */\n\t@Prop() readonly breakpoint?: SpacerBreakpointsType = SpacerBreakpoints.NONE\n\n\t@Watch('size')\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(SpacerSize, newValue, SpacerClass.root)\n\t}\n\n\t@Watch('breakpoint')\n\tvalidateBreakpoint(newValue: string): void {\n\t\tvalidateProp(SpacerBreakpoints, newValue, SpacerClass.root)\n\t}\n\n\tcomponentWillLoad(): void {\n\t\tthis.validateSize(this.size)\n\t\tthis.validateBreakpoint(this.breakpoint)\n\t}\n\n\trender() {\n\t\treturn <Host class={this.h.classes(SpacerClass.root)} size={this.size} breakpoint={this.breakpoint}></Host>\n\t}\n}\n","import { ValueOf } from '../../types/interfaces'\nimport { pick } from '../../utils/utils'\nimport { Variants } from '../../core/constants/variants'\n\nexport enum StatsBarIconPosition {\n\tLEFT = 'left',\n}\nexport type StatsBarIconPositionType = `${ValueOf<typeof StatsBarIconPosition>}`\n\nexport const StatsBarVariants = pick(Variants, ['PRIMARY', 'SECONDARY'])\nexport type StatsBarVariantType = `${ValueOf<typeof StatsBarVariants>}`\n\nexport const StatsBarClass = {\n\troot: 'gov-statsbar',\n\tsection: 'gov-statsbar__section',\n}\n\nexport const StatsBarItemClass = {\n\troot: 'gov-statsbar-item',\n\ticon: 'gov-statsbar-item__icon',\n\tnumber: 'gov-statsbar-item__number',\n\ttext: 'gov-statsbar-item__text',\n}\n","/*\n * Statsbar\n */\n\n$class: \".gov-statsbar\";\n\n#{$class} {\n\t@include base();\n\tpadding: rem-calc(20) 0;\n\t&__section {\n\t\t@include container();\n\t}\n\n\t// VARIANTS\n\t@each $variant, $definitions in $statsbar-variants {\n\t\t&[variant=\"#{$variant}\"] {\n\t\t\tbackground-color: #{get(\"bg-color\", $definitions)};\n\t\t\tcolor: #{get(\"text-color\", $definitions)};\n\n\t\t\t// STATES\n\t\t\t@include parameter(\"inverse\") {\n\t\t\t\tbackground: color(\"neutral.white\");\n\t\t\t\tcolor: #{get(\"text-color-inverse\", $definitions)};\n\t\t\t}\n\t\t}\n\t}\n\n\t// MQ\n\t@include mq($from: sm) {\n\t\t&__section {\n\t\t\tdisplay: flex;\n\t\t\tflex-wrap: wrap;\n\t\t\tjustify-content: center;\n\t\t}\n\t}\n\t@include mq($from: md) {\n\t\tpadding: 0;\n\t}\n}\n","import { Component, Element, h, Host, Prop, Watch } from '@stencil/core'\nimport { validateProp } from '../../helpers/Validate/props'\nimport { StatsBarClass, StatsBarVariants, StatsBarVariantType, StatsBarItemClass, StatsBarIconPosition, StatsBarIconPositionType } from './constants'\nimport { GovHost } from '../../helpers/Dom/template.types'\nimport { govHost } from '../../helpers/Dom/template'\n\n@Component({\n\ttag: 'gov-statsbar',\n\tstyleUrl: 'gov-statsbar.scss',\n})\nexport class GovStatsbar {\n\tprivate h: GovHost\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t}\n\n\t@Element() host: HTMLGovStatsbarElement\n\n\t/**\n\t * Icon’s position\n\t */\n\t@Prop() readonly iconPosition?: StatsBarIconPositionType\n\t/**\n\t * Style variation\n\t */\n\t@Prop({ attribute: 'variant' }) readonly variant?: StatsBarVariantType = 'primary'\n\n\t@Watch('iconPosition')\n\tvalidateIconPosition(newValue: string): void {\n\t\tvalidateProp(StatsBarIconPosition, newValue, StatsBarClass.root)\n\t}\n\n\t@Watch('variant')\n\tvalidateVariant(newValue: string): void {\n\t\tvalidateProp(StatsBarVariants, newValue, StatsBarClass.root)\n\t}\n\n\tcomponentWillLoad(): void {\n\t\tthis.validateIconPosition(this.iconPosition)\n\t\tthis.validateVariant(this.variant)\n\t}\n\n\tcomponentDidLoad() {\n\t\tthis.host.querySelectorAll(StatsBarItemClass.root).forEach((node: any) => {\n\t\t\tif (this.iconPosition === 'left') {\n\t\t\t\tnode.setAttribute('icon-position', 'left')\n\t\t\t}\n\t\t})\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={this.h.classes(StatsBarClass.root)} variant={this.variant}>\n\t\t\t\t<section class={StatsBarClass.section}>\n\t\t\t\t\t<slot />\n\t\t\t\t</section>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","/*\n * Statsbar - Item\n */\n\n$class: \".gov-statsbar-item\";\n\n#{$class} {\n\tposition: relative;\n\tdisplay: block;\n\tpadding: rem-calc(20);\n\t&__icon,\n\t&__number {\n\t\tmargin-bottom: rem-calc(16);\n\t}\n\t&__icon {\n\t\tdisplay: block;\n\t\twidth: rem-calc(32);\n\t\theight: rem-calc(32);\n\t}\n\t&__number {\n\t\t@include typography($font-size-5xl);\n\t}\n\t&__text {\n\t\t@include typography($font-size-xl);\n\t\t@include reset-last-margin();\n\t\tletter-spacing: em-calc(0.2);\n\t}\n\n\t// VARIANTS\n\t&[icon-position=\"left\"] {\n\t\tpadding-left: rem-calc(48);\n\n\t\t#{$class} {\n\t\t\t&__icon {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: rem-calc(24);\n\t\t\t\tleft: 0;\n\t\t\t}\n\t\t}\n\t}\n\n\t// MQ\n\t@include mq($from: sm) {\n\t\tflex: 1 0 50%;\n\t\tmax-width: 50%;\n\t}\n\t@include mq($from: md) {\n\t\tpadding: rem-calc(40);\n\n\t\t&__icon {\n\t\t\twidth: rem-calc(48);\n\t\t\theight: rem-calc(48);\n\t\t}\n\n\t\t// VARIANTS\n\t\t&[icon-position=\"left\"] {\n\t\t\tpadding-left: rem-calc(64);\n\n\t\t\t#{$class} {\n\t\t\t\t&__icon {\n\t\t\t\t\ttop: rem-calc(44);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t@include mq($from: lg) {\n\t\tflex-basis: auto;\n\t\tmax-width: 25%;\n\t}\n}\n","import { Component, Element, h, Host, Prop, Watch } from '@stencil/core'\nimport { govHost } from '../../helpers/Dom/template'\nimport { GovHost } from '../../helpers/Dom/template.types'\nimport { validateProp } from '../../helpers/Validate/props'\nimport { StatsBarItemClass, StatsBarIconPosition, StatsBarIconPositionType } from './constants'\n\n@Component({\n\ttag: 'gov-statsbar-item',\n\tstyleUrl: 'gov-statsbar-item.scss',\n})\nexport class GovStatsbarItem {\n\th: GovHost\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t}\n\n\t@Element() host: HTMLGovStatsbarItemElement\n\n\t/**\n\t * Icon’s position\n\t */\n\t@Prop() readonly iconPosition?: StatsBarIconPositionType = undefined\n\n\t@Watch('iconPosition')\n\tvalidateIconPosition(newValue: string): void {\n\t\tvalidateProp(StatsBarIconPosition, newValue, StatsBarItemClass.root)\n\t}\n\n\tcomponentWillLoad(): void {\n\t\tthis.validateIconPosition(this.iconPosition)\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={this.h.classes(StatsBarItemClass.root)}>\n\t\t\t\t<article>\n\t\t\t\t\t{this.h.hasSlot('icon') && (\n\t\t\t\t\t\t<span class={StatsBarItemClass.icon}>\n\t\t\t\t\t\t\t<slot name=\"icon\" />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t)}\n\n\t\t\t\t\t<p class={StatsBarItemClass.number}>\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t</p>\n\n\t\t\t\t\t{this.h.hasSlot('text') && (\n\t\t\t\t\t\t<div class={StatsBarItemClass.text}>\n\t\t\t\t\t\t\t<slot name=\"text\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</article>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","import { Variants } from '../../core/constants/variants'\nimport { Sizes } from '../../core/constants/sizes'\nimport { pick } from '../../utils/utils'\nimport { ValueOf } from '../../types/interfaces'\n\nexport const StepperVariants = pick(Variants, ['PRIMARY', 'SECONDARY', 'WARNING', 'ERROR', 'SUCCESS'])\nexport type StepperVariantType = `${ValueOf<typeof StepperVariants>}`\n\nexport const StepperSizes = pick(Sizes, ['_XS', '_S', '_M'])\nexport type StepperSizesType = `${ValueOf<typeof StepperSizes>}`\n\nexport const StepperClass = {\n\troot: 'gov-stepper',\n}\n\nexport const StepperItemClass = {\n\troot: 'gov-stepper-item',\n\trootWithAnnot: 'gov-stepper-item gov-stepper-item--w-annot',\n\theader: 'gov-stepper-item__header',\n\ttitle: 'gov-stepper-item__title',\n\tlabel: 'gov-stepper-item__label',\n\tname: 'gov-stepper-item__name',\n\tannot: 'gov-stepper-item__annot',\n\tprefix: 'gov-stepper-item__prefix',\n\tcontent: 'gov-stepper-item__content',\n\tsuffix: 'gov-stepper-item__suffix',\n}\n","/*\n * Stepper\n */\n\n$class: \".gov-stepper\";\n\n#{$class} {\n\t@include base();\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Prop, Watch } from '@stencil/core'\nimport { validateProp } from '../../helpers/Validate/props'\nimport { StepperClass, StepperItemClass, StepperSizes, StepperSizesType } from './constants'\nimport { GovStepperItemCustomEvent } from '../../components'\nimport { GovStepperItemChangeEvent } from './gov-stepper-item.d'\nimport { GovHost } from '../../helpers/Dom/template.types'\nimport { govHost } from '../../helpers/Dom/template'\n\n@Component({\n\ttag: 'gov-stepper',\n\tstyleUrl: 'gov-stepper.scss',\n})\nexport class GovStepper {\n\tprivate h: GovHost\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t}\n\n\t@Element() readonly host: HTMLGovStepperElement\n\t/**\n\t * Size of stepper\n\t */\n\t@Prop() readonly size?: StepperSizesType = 'm'\n\t/**\n\t * Called when the Stepper state changes\n\t */\n\t@Event({ eventName: 'gov-change' }) govChange: EventEmitter<GovStepperItemChangeEvent>\n\n\t@Watch('size')\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(StepperSizes, newValue, StepperClass.root)\n\t}\n\n\tcomponentWillLoad(): void {\n\t\tthis.validateSize(this.size)\n\t}\n\n\tcomponentDidLoad() {\n\t\tthis.host.querySelectorAll(StepperItemClass.root).forEach((child: HTMLGovStepperItemElement) => {\n\t\t\tchild.setAttribute('size', this.size)\n\t\t\tchild.addEventListener('gov-change', (e: GovStepperItemCustomEvent<GovStepperItemChangeEvent>) => {\n\t\t\t\te.stopPropagation()\n\t\t\t\tthis.govChange.emit(e.detail)\n\t\t\t})\n\t\t})\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={this.h.classes(StepperClass.root)} role=\"list\" size={this.size}>\n\t\t\t\t<slot />\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","/*\n * Stepper - Item\n */\n\n@import \"../gov-wizzard/gov-wizzard-item-core.scss\";\n$class: \".gov-stepper-item\";\n\n#{$class} {\n\t@include wizzard-item-core;\n\t&::before {\n\t\t@include pseudo();\n\t\twidth: rem-calc(2);\n\t}\n\t&:last-child::before {\n\t\tcontent: none;\n\t}\n\n\t// VARIANTS\n\t@each $variant, $definitions in $wizzard-core-variants {\n\t\t&[variant=\"#{$variant}\"] {\n\t\t\t&::before {\n\t\t\t\tbackground: get(\"indicator-bg\", $definitions);\n\t\t\t}\n\t\t}\n\t}\n\t@each $size, $definitions in $stepper-sizes {\n\t\t$connect-gap: get(\"connect-gap\", $definitions);\n\t\t&[size=\"#{$size}\"] {\n\t\t\tmin-height: calc(get(\"indicator-size\", $definitions) + 3 * $connect-gap);\n\t\t\t&::before {\n\t\t\t\ttop: calc(get(\"indicator-size\", $definitions) + $connect-gap);\n\t\t\t\tbottom: $connect-gap;\n\t\t\t\tleft: calc((get(\"indicator-size\", $definitions) - rem-calc(2)) / 2);\n\t\t\t}\n\t\t\t&:last-child {\n\t\t\t\tmin-height: 0;\n\t\t\t}\n\t\t\t#{$class} {\n\t\t\t\t&__title {\n\t\t\t\t\t@include typography(get(\"font-size\", $definitions));\n\t\t\t\t}\n\t\t\t\t&__annot {\n\t\t\t\t\t@include typography(get(\"font-size-annot\", $definitions));\n\t\t\t\t}\n\t\t\t\t&__prefix {\n\t\t\t\t\t@include typography(get(\"font-size-indicator\", $definitions));\n\t\t\t\t\twidth: get(\"indicator-size\", $definitions);\n\t\t\t\t\theight: get(\"indicator-size\", $definitions);\n\t\t\t\t\tbox-shadow: 0 0 0 $connect-gap color(\"neutral.white\");\n\t\t\t\t}\n\t\t\t\t&__content {\n\t\t\t\t\tpadding: get(\"content-padding\", $definitions);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t&--w-annot[size=\"#{$size}\"] {\n\t\t\tmin-height: calc(get(\"indicator-size\", $definitions) * 1.5 + 3 * $connect-gap);\n\t\t}\n\t}\n}\n","import { Component, Element, h, Prop, State, Watch, Host, Method, Event, EventEmitter } from '@stencil/core'\nimport { govErrorLog } from '../../helpers/Log/gov.log'\nimport { validateProp } from '../../helpers/Validate/props'\nimport { StepperSizesType, StepperItemClass, StepperVariantType, StepperVariants } from './constants'\nimport { createID } from '../../utils/string.utils'\nimport { govHost, prepareClasses } from '../../helpers/Dom/template'\nimport { GovStepperItemChangeEvent } from './gov-stepper-item.d'\nimport { GovHost } from '../../helpers/Dom/template.types'\n\n@Component({\n\ttag: 'gov-stepper-item',\n\tstyleUrl: 'gov-stepper-item.scss',\n})\nexport class GovStepperItem {\n\tprivate h: GovHost\n\tprivate readonly triggerId: string\n\tprivate readonly contentId: string\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t\tthis.triggerId = createID('GovStepperItem')\n\t\tthis.contentId = createID('GovStepperContent')\n\t}\n\n\t@Element() readonly host: HTMLGovStepperItemElement\n\t@State() isExpandedState: boolean\n\n\t/**\n\t * Style variation of the button.\n\t */\n\t@Prop() readonly variant?: StepperVariantType = 'primary'\n\t/**\n\t * Size of stepper\n\t */\n\t@Prop() readonly size?: StepperSizesType = 'm'\n\t/**\n\t * Custom stepper item identifier. Otherwise, it will be generated\n\t */\n\t@Prop() readonly identifier: string\n\t/**\n\t * Item name of the stepper\n\t */\n\t@Prop() readonly label: string\n\t/**\n\t * Item annotation of the stepper\n\t */\n\t@Prop() readonly annotation: string\n\t/**\n\t * Used to change the HMTL tag in the stepper trigger for correct semantic structure\n\t */\n\t@Prop({ attribute: 'trigger-tag' }) readonly triggerTag: string = 'h3'\n\t/**\n\t * Called when the accordion state changes\n\t */\n\t@Event({ eventName: 'gov-change' }) govChange: EventEmitter<GovStepperItemChangeEvent>\n\n\t@Watch('label')\n\tvalidateLabel(newValue: string): void {\n\t\tif (!newValue) {\n\t\t\tgovErrorLog(`[${StepperItemClass.root}]: Parameter label is required.`)\n\t\t}\n\t}\n\n\t@Watch('triggerTag')\n\tvalidateTriggerTag(newValue: string): void {\n\t\tconst validTags = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'span']\n\t\tif (newValue) {\n\t\t\tif (!validTags.includes(newValue)) {\n\t\t\t\tgovErrorLog(`[${StepperItemClass.root}]: Tag ${newValue} is not allowed.`)\n\t\t\t}\n\t\t}\n\t}\n\n\t@Watch('variant')\n\tvalidateVariant(newValue: string): void {\n\t\tvalidateProp(StepperVariants, newValue, StepperItemClass.root)\n\t}\n\n\tcomponentWillLoad(): void {\n\t\tthis.validateLabel(this.label)\n\t\tthis.validateVariant(this.variant)\n\t\tthis.validateTriggerTag(this.triggerTag)\n\t}\n\n\trender() {\n\t\tconst triggerId = this.identifier || this.triggerId\n\t\tconst contentId = this.contentId\n\t\tconst { label } = this\n\t\tconst TriggerTag = this.triggerTag\n\n\t\treturn (\n\t\t\t<Host class={prepareClasses([StepperItemClass.root, this.annotation && StepperItemClass.rootWithAnnot])} variant={this.variant}>\n\t\t\t\t<div id={triggerId} class={StepperItemClass.header} role=\"listitem\">\n\t\t\t\t\t<TriggerTag class={StepperItemClass.title}>\n\t\t\t\t\t\t{this.h.hasSlot('prefix') && (\n\t\t\t\t\t\t\t<span class={StepperItemClass.prefix}>\n\t\t\t\t\t\t\t\t<slot name=\"prefix\" />\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<span class={StepperItemClass.name}>\n\t\t\t\t\t\t\t<span class={StepperItemClass.label}>{label}</span>\n\t\t\t\t\t\t\t{this.annotation && <span class={StepperItemClass.annot}>{this.annotation}</span>}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</TriggerTag>\n\t\t\t\t</div>\n\n\t\t\t\t{this.h.hasSlot('content') && (\n\t\t\t\t\t<div class={StepperItemClass.content} id={contentId} aria-labelledby={triggerId} role=\"tabpanel\">\n\t\t\t\t\t\t<slot name=\"content\" />\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</Host>\n\t\t)\n\t}\n\n\t/**\n\t * Returns the current state of the component\n\t */\n\t@Method()\n\tasync currentState(): Promise<boolean> {\n\t\treturn this.isExpandedState\n\t}\n}\n","import { Variants } from '../../core/constants/variants'\nimport { pick } from '../../utils/utils'\nimport { ValueOf } from '../../types/interfaces'\n\nexport const TabVariants = pick(Variants, ['PRIMARY', 'SECONDARY', 'SUCCESS', 'ERROR', 'WARNING'])\nexport type VariantType = `${ValueOf<typeof TabVariants>}`\n\nexport enum TabTypes {\n\tTEXT = 'text',\n\tBADGE = 'badge',\n}\n\nexport type TabType = `${ValueOf<typeof TabTypes>}`\n\nexport enum TabOrientation {\n\tHORIZONTAL = 'horizontal',\n\tVERTICAL = 'vertical',\n}\n\nexport type TabOrientationType = `${ValueOf<typeof TabOrientation>}`\n\nexport const TabsClass = {\n\troot: 'gov-tabs',\n\ttabs: 'gov-tabs__tabs',\n\tlist: 'gov-tabs__list',\n\titem: 'gov-tabs__item',\n\tbtn: 'gov-tabs__btn',\n}\n\nexport const TabsItemClass = {\n\troot: 'gov-tabs-item',\n\tinner: 'gov-tabs-item__inner',\n}\n","/*\n * Tabs\n */\n\n$class: \".gov-tabs\";\n\n#{$class} {\n\t@include base();\n\t&__list {\n\t\t@extend %reset-ul;\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t\tmargin: rem-calc(0 0 20);\n\t}\n\t&__list > &__item {\n\t\t@extend %reset-ul-li;\n\t\tdisplay: flex;\n\t\tmargin: 0;\n\t}\n\t&__btn {\n\t\t@include typography($font-size-s);\n\t\t@include button-core();\n\t\t@include focus-outline();\n\t\tmargin: 0;\n\t\tpadding: rem-calc(12 0 10);\n\t\tborder-bottom: rem-calc(2) solid transparent;\n\t\tfont-weight: 700;\n\t\ttext-align: center;\n\t\ttext-transform: uppercase;\n\t\ttransition: $t linear color, $t linear border-color;\n\t}\n\n\t// VARIANTS\n\t@each $type, $definitions in $tabs-types {\n\t\t&[type=\"#{$type}\"] {\n\t\t\t#{$class} {\n\t\t\t\t&__list {\n\t\t\t\t\tgap: get(\"item-spacing\", $definitions);\n\t\t\t\t\t@if deep-map-check($definitions, \"border\") {\n\t\t\t\t\t\tborder-bottom: $tabs-list-border;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t@each $variant, $definitions in $tabs-variants {\n\t\t&[variant=\"#{$variant}\"][type=\"text\"] {\n\t\t\t#{$class} {\n\t\t\t\t&__btn {\n\t\t\t\t\tcolor: get(\"color\", $definitions);\n\t\t\t\t\t@include hover() {\n\t\t\t\t\t\tcolor: get(\"color-hover\", $definitions);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// STATES\n\t\t\t\t&__btn[aria-selected=\"true\"] {\n\t\t\t\t\tborder-bottom-color: get(\"color-active\", $definitions);\n\t\t\t\t\tcolor: get(\"color-active\", $definitions);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t&[orientation=\"vertical\"] {\n\t\t#{$class}__btn {\n\t\t\ttext-align: left;\n\t\t}\n\t}\n\n\t// MQ\n\t@include mq($from: xl) {\n\t\t&[orientation=\"vertical\"] {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: row;\n\n\t\t\t#{$class}__list {\n\t\t\t\tflex-wrap: nowrap;\n\t\t\t\tflex-direction: column;\n\t\t\t\twidth: max-content;\n\t\t\t\tmax-width: 30vw;\n\t\t\t\tmargin-right: rem-calc(20);\n\t\t\t\tpadding: rem-calc(0 8);\n\t\t\t\tborder-bottom: none;\n\t\t\t\tborder-right: $tabs-list-border;\n\t\t\t}\n\n\t\t\t#{$class}__item {\n\t\t\t\tjustify-content: flex-end;\n\t\t\t}\n\n\t\t\t#{$class}__btn {\n\t\t\t\tpadding: rem-calc(8 12);\n\t\t\t\ttext-align: right;\n\t\t\t}\n\t\t}\n\t}\n}\n","import { Component, Element, Host, h, State, Method, Event, EventEmitter, Prop, Watch } from '@stencil/core'\nimport { validateProp } from '../../helpers/Validate/props'\nimport { TabsItemClass, TabVariants, VariantType } from './constants'\nimport { GovTabControllerItem } from './gov-tabs.types'\nimport { govHost, toBoolAttr } from '../../helpers/Dom/template'\nimport { validateWcagLabel, validateWcagProp } from '../../helpers/Validate/wcag'\nimport { TabsClass, TabType, TabTypes, TabOrientationType } from './constants'\nimport { canValidateWcagOnRender } from '../../helpers/Dom/win'\nimport { delay, throttle } from '../../utils/utils'\nimport { createID } from '../../utils/string.utils'\nimport { Nullable } from '../../types/interfaces'\nimport { GovHost } from '../../helpers/Dom/template.types'\n\n@Component({\n\ttag: 'gov-tabs',\n\tstyleUrl: 'gov-tabs.scss',\n})\nexport class GovTabs {\n\tprivate h: GovHost\n\tprivate triggerRefs: { [key: string]: HTMLButtonElement } = {}\n\tprivate tabsRef?: HTMLDivElement\n\n\tprivate readonly formSelectId: string\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t\tthis.formSelectId = createID('GovForSelect')\n\t}\n\n\t@Element() host: HTMLGovTabsElement\n\t@State() controller: GovTabControllerItem[] = []\n\t@State() focusIndex = 0\n\t@State() compactControls = false\n\t/**\n\t * Tabs type\n\t */\n\t@Prop() readonly type: TabType = 'text'\n\t/**\n\t * Style variation of the tab badges.\n\t */\n\t@Prop() readonly variant?: VariantType = 'primary'\n\t/**\n\t * Tabs orientation\n\t */\n\t@Prop() readonly orientation: TabOrientationType = 'horizontal'\n\t/**\n\t * Adds accessible label for the tabs that is only shown for screen readers.\n\t */\n\t@Prop({ attribute: 'wcag-label' }) readonly wcagLabel: string\n\t/**\n\t * Adds accessible label for the tabs select\n\t */\n\t@Prop({ attribute: 'wcag-select-label' }) readonly wcagSelectLabel: string\n\t/**\n\t * Indicates the id of a component that labels the tabs.\n\t */\n\t@Prop({ attribute: 'wcag-labelled-by' }) readonly wcagLabelledBy: string\n\t/**\n\t * Emitted when the tab is changed.\n\t */\n\t@Event({ eventName: 'gov-change' }) govChange: EventEmitter<HTMLGovTabsItemElement>\n\n\t@Watch('type')\n\tvalidateType(newValue: string): void {\n\t\tvalidateProp(TabTypes, newValue, TabsClass.root)\n\t}\n\t@Watch('variant')\n\tvalidateVariant(newValue: string): void {\n\t\tvalidateProp(TabVariants, newValue, TabsClass.root)\n\t}\n\n\tcomponentWillLoad() {\n\t\tthis.prepareDataSource()\n\t}\n\n\tasync componentDidRender() {\n\t\tif (canValidateWcagOnRender()) {\n\t\t\tawait delay(500)\n\t\t\tawait this.validateWcag()\n\t\t}\n\n\t\tthis.resizeObserver()\n\t}\n\n\tprivate prepareDataSource(): void {\n\t\tthis.controller = []\n\t\tconst promises: Promise<GovTabControllerItem>[] = []\n\t\tthis.host.querySelectorAll(TabsItemClass.root).forEach((tab: HTMLGovTabsItemElement) => {\n\t\t\tconst controlItem = Promise.all([tab.getIdentifier(), tab.getTriggerIdentifier()]).then(([identifier, triggerIdentifier]) => {\n\t\t\t\tconst isDefault = typeof tab.getAttribute('default') === 'string'\n\t\t\t\treturn {\n\t\t\t\t\tlabel: tab.getAttribute('label'),\n\t\t\t\t\tcontentIdentifier: identifier,\n\t\t\t\t\ttriggerIdentifier: triggerIdentifier,\n\t\t\t\t\telement: tab,\n\t\t\t\t\tactive: false,\n\t\t\t\t\tdefault: isDefault,\n\t\t\t\t}\n\t\t\t})\n\t\t\tpromises.push(controlItem)\n\t\t})\n\t\tPromise.all(promises).then(controllers => {\n\t\t\tlet defaultTab = controllers.findIndex(controller => controller.default)\n\t\t\tif (defaultTab === -1) defaultTab = 0\n\t\t\tthis.focusIndex = defaultTab\n\t\t\tcontrollers[defaultTab].active = true\n\t\t\tthis.controller = [...controllers]\n\t\t\tthis.reRender()\n\t\t})\n\t}\n\n\tprivate setActiveByIdentifier(identifier: string) {\n\t\tconst temp = []\n\t\tthis.controller.map(item => {\n\t\t\titem.active = identifier === item.triggerIdentifier || identifier === item.contentIdentifier\n\t\t\ttemp.push(item)\n\t\t})\n\t\tthis.controller = [...temp]\n\t}\n\n\tprivate reRender() {\n\t\tthis.controller.map(control => {\n\t\t\tcontrol.element.setActiveStatus(control.active)\n\t\t})\n\t}\n\n\t/*\n\tprivate evaluateControls() {\n\t\tthis.compactControls = false\n\t\tlet sumOfWidth = this.tabsRef.querySelector(\"ul\").offsetWidth\n\t\tthis.compactControls = this.tabsRef.offsetWidth < sumOfWidth\n\t}\n\t*/\n\n\tprivate resizeObserver() {\n\t\tconst resizeObserver = new ResizeObserver(\n\t\t\tthrottle(() => {\n\t\t\t\t// this.evaluateControls()\n\t\t\t}, 200)\n\t\t)\n\n\t\tresizeObserver.observe(this.tabsRef)\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host\n\t\t\t\tclass={this.h.classes(TabsClass.root)}\n\t\t\t\tvariant={this.variant}\n\t\t\t\ttype={this.type}\n\t\t\t\trole=\"tablist\"\n\t\t\t\tref={el => (this.tabsRef = el as HTMLDivElement)}\n\t\t\t\taria-label={this.wcagLabel}\n\t\t\t\taria-labelledby={this.wcagLabelledBy}\n\t\t\t\tonKeyDown={this.onKeydownHandler.bind(this)}\n\t\t\t>\n\t\t\t\t<div class={TabsClass.tabs} aria-hidden={toBoolAttr(this.compactControls)}>\n\t\t\t\t\t<ul class={TabsClass.list}>\n\t\t\t\t\t\t{this.controller.map((control, index) => (\n\t\t\t\t\t\t\t<li class={TabsClass.item}>\n\t\t\t\t\t\t\t\t{this.type == 'text' ? (\n\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\tclass={TabsClass.btn}\n\t\t\t\t\t\t\t\t\t\tid={control.triggerIdentifier}\n\t\t\t\t\t\t\t\t\t\trole=\"tab\"\n\t\t\t\t\t\t\t\t\t\tonClick={() => this.onSelectHandler(control, index)}\n\t\t\t\t\t\t\t\t\t\taria-selected={toBoolAttr(control.active)}\n\t\t\t\t\t\t\t\t\t\taria-controls={control.contentIdentifier}\n\t\t\t\t\t\t\t\t\t\ttabindex={control.active ? -1 : 0}\n\t\t\t\t\t\t\t\t\t\tref={el => (this.triggerRefs[control.triggerIdentifier] = el as HTMLInputElement)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{control.label}\n\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<gov-badge\n\t\t\t\t\t\t\t\t\t\tvariant={this.variant}\n\t\t\t\t\t\t\t\t\t\ttype={toBoolAttr(control.active) == 'true' ? 'solid' : 'outlined'}\n\t\t\t\t\t\t\t\t\t\ton-gov-click={() => this.onSelectHandler(control, index)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{control.label}\n\t\t\t\t\t\t\t\t\t</gov-badge>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</ul>\n\t\t\t\t</div>\n\n\t\t\t\t<span id={this.formSelectId} hidden>\n\t\t\t\t\t{this.wcagSelectLabel}\n\t\t\t\t</span>\n\t\t\t\t{this.compactControls ? (\n\t\t\t\t\t<gov-form-select wcag-labelled-by={this.formSelectId} onGov-change={this.onChangeHandler.bind(this)}>\n\t\t\t\t\t\t{this.controller.map(control => (\n\t\t\t\t\t\t\t<option value={control.triggerIdentifier} selected={control.active}>\n\t\t\t\t\t\t\t\t{control.label}\n\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</gov-form-select>\n\t\t\t\t) : null}\n\n\t\t\t\t<slot></slot>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\tprivate getCurrentTab(): GovTabControllerItem | null {\n\t\treturn this.controller.find(control => control.active) || null\n\t}\n\n\tprivate onSelectHandler(control: GovTabControllerItem, index: number) {\n\t\tthis.focusIndex = index\n\t\tthis.setActiveByIdentifier(control.triggerIdentifier)\n\t\tthis.reRender()\n\t\tthis.govChange.emit(this.getCurrentTab().element)\n\t}\n\n\tprivate onChangeHandler(e: CustomEvent) {\n\t\tconst triggerId = (e.target as HTMLSelectElement).value\n\t\te.stopPropagation()\n\t\tthis.setActiveByIdentifier(triggerId)\n\t\tthis.reRender()\n\t\tthis.govChange.emit(this.getCurrentTab().element)\n\t}\n\n\tprivate onKeydownHandler(e: KeyboardEvent) {\n\t\tconst keyCode = e.keyCode\n\t\te.stopPropagation()\n\t\tif (keyCode === 39 || keyCode === 37) {\n\t\t\tif (false === (this.focusIndex >= 0 && this.focusIndex <= this.controller.length - 1)) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.controller[this.focusIndex].active = false\n\t\t\tif (keyCode === 39) {\n\t\t\t\tthis.focusIndex++\n\t\t\t\tif (this.focusIndex >= this.controller.length) {\n\t\t\t\t\tthis.focusIndex = 0\n\t\t\t\t}\n\t\t\t} else if (keyCode === 37) {\n\t\t\t\tthis.focusIndex--\n\t\t\t\tif (this.focusIndex < 0) {\n\t\t\t\t\tthis.focusIndex = this.controller.length - 1\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this.focusIndex >= 0 && this.focusIndex <= this.controller.length - 1) {\n\t\t\t\tconst current = this.controller[this.focusIndex]\n\t\t\t\tcurrent.active = true\n\t\t\t\tthis.triggerRefs[current.triggerIdentifier].focus()\n\t\t\t\tthis.controller = [...this.controller]\n\t\t\t\tthis.reRender()\n\t\t\t\tthis.govChange.emit(this.getCurrentTab().element)\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Regenerate tabs controllers\n\t */\n\t@Method()\n\tasync refresh(): Promise<void> {\n\t\tthis.prepareDataSource()\n\t}\n\n\t/**\n\t * Returns the currently selected tabs-item\n\t */\n\t@Method()\n\tasync currentTab(): Promise<Nullable<HTMLGovTabsItemElement>> {\n\t\treturn this.getCurrentTab().element || null\n\t}\n\n\t/**\n\t * Regenerate tabs controllers\n\t */\n\t@Method()\n\tasync setActiveTab(identifier: string): Promise<void> {\n\t\tthis.setActiveByIdentifier(identifier)\n\t\tthis.reRender()\n\t}\n\n\t/**\n\t * Validate the WCAG attributes of the component\n\t */\n\t@Method()\n\tasync validateWcag(): Promise<void> {\n\t\tvalidateWcagProp(this.wcagSelectLabel, 'wcag-select-label', TabsClass.root)\n\t\tvalidateWcagLabel(this.wcagLabel, this.wcagLabelledBy, TabsClass.root)\n\t}\n}\n","/*\n * Tabs - Item\n */\n\n$class: \".gov-tabs-item\";\n\n#{$class} {\n\tcolor: $tabs-text-color;\n\t&__inner {\n\t\t@include reset-last-margin();\n\t}\n}\n","import { Component, Element, h, Prop, Method, State, Host } from '@stencil/core'\nimport { createID } from '../../utils/string.utils'\nimport { govHost, toBoolAttrIfDefined } from '../../helpers/Dom/template'\nimport { GovHost } from '../../helpers/Dom/template.types'\nimport { TabsItemClass } from './constants'\n\n@Component({\n\ttag: 'gov-tabs-item',\n\tstyleUrl: 'gov-tabs-item.scss',\n})\nexport class GovTabsItem {\n\tprivate h: GovHost\n\tprivate readonly contentId: string\n\tprivate readonly triggeId: string\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t\tthis.contentId = createID('GovTabContent')\n\t\tthis.triggeId = createID('GovTabTrigger')\n\t}\n\n\t@Element() host: HTMLGovTabsItemElement\n\t/**\n\t * Custom tab item identifier. Otherwise, it will be generated\n\t */\n\t@Prop() readonly identifier: string\n\t/**\n\t * Custom tab trigger item identifier. Otherwise, it will be generated\n\t */\n\t@Prop() readonly triggerIdentifier: string\n\t/**\n\t * Item name of the tab\n\t */\n\t@Prop() readonly label: string\n\t/**\n\t * Default selected tab\n\t */\n\t@Prop() readonly default: boolean = false\n\t@State() isActive = false\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={this.h.classes(TabsItemClass.root)} default={this.default}>\n\t\t\t\t<div\n\t\t\t\t\tclass={TabsItemClass.inner}\n\t\t\t\t\trole=\"tabpanel\"\n\t\t\t\t\tid={this.identifier || this.contentId}\n\t\t\t\t\thidden={!this.isActive}\n\t\t\t\t\taria-labelledby={this.triggerIdentifier || this.triggeId}\n\t\t\t\t\taria-hidden={toBoolAttrIfDefined(!this.isActive)}\n\t\t\t\t>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\t/**\n\t * Returns a unique tab content identifier\n\t */\n\t@Method()\n\tasync getIdentifier(): Promise<string> {\n\t\treturn this.identifier || this.contentId\n\t}\n\n\t/**\n\t * Returns a unique tab trigger identifier\n\t */\n\t@Method()\n\tasync getTriggerIdentifier(): Promise<string> {\n\t\treturn this.triggerIdentifier || this.triggeId\n\t}\n\n\t/**\n\t * Set status of tab-item\n\t */\n\t@Method()\n\tasync setActiveStatus(status: boolean): Promise<void> {\n\t\tthis.isActive = status\n\t}\n}\n","export const TileClass = {\n\troot: 'gov-tile',\n\ticon: 'gov-tile__icon',\n\tarrow: 'gov-tile__arrow',\n\ttitle: 'gov-tile__title',\n\tlink: 'gov-tile__link',\n\tcontent: 'gov-tile__content',\n\theading: 'gov-tile__heading',\n}\n","/*\n * Tile\n */\n\n$class: \".gov-tile\";\n\n#{$class} {\n\t@include base();\n\tpadding: rem-calc(12);\n\ttransition: background-color $t;\n\t&__icon {\n\t\tdisplay: flex;\n\t\tmargin: rem-calc(0 0 12);\n\t\tcolor: $tile-main-color;\n\t\t.gov-icon {\n\t\t\twidth: rem-calc(40);\n\t\t\theight: rem-calc(40);\n\t\t}\n\t}\n\t&__title {\n\t\t@include typography($font-size-xl);\n\t\tmargin: 0 0 rem-calc(8);\n\t}\n\t&__heading {\n\t\t@extend %link-mask;\n\t\tdisplay: flex;\n\t\tgap: rem-calc(8);\n\t\tjustify-content: space-between;\n\t\tcolor: $tile-main-color;\n\t\ttext-decoration: none;\n\t}\n\t&__arrow {\n\t\tflex: 0 0 auto;\n\t\twidth: rem-calc(12);\n\t\theight: rem-calc(32);\n\t\tmargin: rem-calc(8);\n\t\tcolor: inherit;\n\t}\n\t&__content {\n\t\t@include reset-last-margin();\n\t\tcolor: $tile-text-color;\n\t\ta {\n\t\t\tposition: relative;\n\t\t\tz-index: 1;\n\t\t}\n\t}\n\t&__link {\n\t\tdisplay: block;\n\t\ttext-decoration: none;\n\t}\n\n\t// HOVERS\n\t&[href] {\n\t\t@include hover() {\n\t\t\tbackground: $tile-hover-bg;\n\t\t\t#{$class} {\n\t\t\t\t&__heading {\n\t\t\t\t\tcolor: $tile-main-color;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// MQ\n\t@include mq($from: sm) {\n\t\t// VARIANTS\n\t\t@include parameter(\"promotion\") {\n\t\t\tdisplay: grid;\n\t\t\tgrid-template-columns: auto 1fr;\n\t\t\tgap: 0 rem-calc(14);\n\t\t\t#{$class} {\n\t\t\t\t&__icon {\n\t\t\t\t\tgrid-area: 1/1/3/1;\n\t\t\t\t\tmargin: 0;\n\t\t\t\t}\n\t\t\t\t&__title {\n\t\t\t\t\tgrid-area: 1/2/1/2;\n\t\t\t\t}\n\t\t\t\t&__content {\n\t\t\t\t\tgrid-area: 2/2/2/2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t@include mq($from: md) {\n\t\tpadding: rem-calc(24);\n\t\t&__icon {\n\t\t\tmargin: rem-calc(0 0 24);\n\t\t\t.gov-icon {\n\t\t\t\twidth: rem-calc(48);\n\t\t\t\theight: rem-calc(48);\n\t\t\t}\n\t\t}\n\t}\n\t@include mq($from: lg) {\n\t\t// VARIANTS\n\t\t@include parameter(\"promotion\") {\n\t\t\tgap: 0 rem-calc(26);\n\t\t}\n\t}\n}\n","import { Component, Element, h, Host, Method, Prop, Watch } from \"@stencil/core\"\nimport { govErrorLog } from \"../../helpers/Log/gov.log\"\nimport { TileClass } from \"./constants\"\nimport { govHost } from \"../../helpers/Dom/template\"\nimport { GovHost } from \"../../helpers/Dom/template.types\"\n\n@Component({\n\ttag: \"gov-tile\",\n\tstyleUrl: \"gov-tile.scss\",\n})\nexport class GovTile {\n\tprivate triggerRef?: HTMLLinkElement | HTMLSpanElement\n\tprivate h: GovHost\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t}\n\n\t@Element() host: HTMLGovTileElement\n\t/**\n\t * Style variation of the card.\n\t */\n\t@Prop() readonly promotion: boolean = false\n\t/**\n\t * Link on whole tile\n\t */\n\t@Prop() readonly href: string\n\t/**\n\t * Item name\n\t */\n\t@Prop() readonly name: string\n\n\t@Watch(\"name\")\n\tvalidateName(newValue: string): void {\n\t\tif (!newValue) {\n\t\t\tgovErrorLog(`[${TileClass.root}]: Parameter title is required.`)\n\t\t}\n\t}\n\n\tcomponentWillLoad(): void {\n\t\tthis.validateName(this.name)\n\t}\n\n\trender() {\n\t\t// tag type\n\t\treturn (\n\t\t\t<Host class={this.h.classes(TileClass.root)} promotion={this.promotion}>\n\t\t\t\t{this.href ? (\n\t\t\t\t\t<a href={this.href} class={TileClass.link} ref={el => (this.triggerRef = el as HTMLLinkElement | HTMLSpanElement)}>\n\t\t\t\t\t\t{this.h.hasSlot(\"icon\") && (\n\t\t\t\t\t\t\t<div class={TileClass.icon}>\n\t\t\t\t\t\t\t\t<slot name=\"icon\" />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<h3 class={TileClass.title}>\n\t\t\t\t\t\t\t<span class={TileClass.heading}>\n\t\t\t\t\t\t\t\t{this.name}\n\t\t\t\t\t\t\t\t<gov-icon class={TileClass.arrow} name=\"chevron-right\"></gov-icon>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</h3>\n\t\t\t\t\t\t<div class={TileClass.content}>\n\t\t\t\t\t\t\t<slot />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</a>\n\t\t\t\t) : (\n\t\t\t\t\t<span>\n\t\t\t\t\t\t{this.h.hasSlot(\"icon\") && (\n\t\t\t\t\t\t\t<div class={TileClass.icon}>\n\t\t\t\t\t\t\t\t<slot name=\"icon\" />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<h3 class={TileClass.title}>\n\t\t\t\t\t\t\t\t<span>{this.name}</span>\n\t\t\t\t\t\t</h3>\n\t\t\t\t\t\t<div class={TileClass.content}>\n\t\t\t\t\t\t\t<slot />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</span>\n\t\t\t\t)}\n\n\t\t\t</Host>\n\t\t)\n\t}\n\n\t/**\n\t * Returns a clickable element instance\n\t */\n\t@Method()\n\tasync getTriggerRef() {\n\t\treturn this.triggerRef\n\t}\n}\n","export const TilesClass = {\n\troot: 'gov-tiles',\n}\n","/*\n * Tiles\n */\n\n$class: \".gov-tiles\";\n$line-width: rem-calc(1);\n\n@mixin grid-lines($i) {\n\tgrid-template-columns: repeat(#{$i}, 1fr);\n\t& > * {\n\t\tborder-width: $line-width $line-width $line-width 0;\n\t\t&:nth-child(-n + #{$i + 1}) {\n\t\t\tborder-top-width: 0;\n\t\t}\n\t\t&:nth-child(#{$i}n + #{$i}) {\n\t\t\tborder-right-width: 0;\n\t\t}\n\t}\n}\n\n#{$class} {\n\toverflow: hidden;\n\t& > * {\n\t\tmargin: 0 calc($line-width * -1) calc($line-width * -1) 0;\n\t\tborder: $line-width solid $tiles-border-color;\n\t\tborder-width: 0 0 $line-width;\n\t\t&:last-child {\n\t\t\tborder-bottom-width: 0;\n\t\t}\n\t}\n\t&[no-border] {\n\t\t& > * {\n\t\t\tborder: none;\n\t\t}\n\t}\n\n\t// VARIANTS\n\t@include mq($from: md) {\n\t\tdisplay: grid;\n\t\t&--x2 {\n\t\t\t@include grid-lines(2);\n\t\t}\n\t\t@include mq($until: lg) {\n\t\t\t&--x3,\n\t\t\t&--x4 {\n\t\t\t\t@include grid-lines(2);\n\t\t\t}\n\t\t}\n\t}\n\t@include mq($from: lg) {\n\t\t&--x3 {\n\t\t\t@include grid-lines(3);\n\t\t}\n\t\t@include mq($until: xl) {\n\t\t\t&--x4 {\n\t\t\t\t@include grid-lines(3);\n\t\t\t}\n\t\t}\n\t}\n\t@include mq($from: xl) {\n\t\t&--x4 {\n\t\t\t@include grid-lines(4);\n\t\t}\n\t}\n}\n","import { Component, Element, h, Host, Prop } from '@stencil/core'\nimport { TilesClass } from './constants'\nimport { prepareClasses } from '../../../helpers/Dom/template'\nimport { govHost } from '../../../helpers/Dom/template'\nimport { GovHost } from '../../../helpers/Dom/template.types'\n\n@Component({\n\ttag: 'gov-tiles',\n\tstyleUrl: 'gov-tiles.scss',\n})\nexport class GovTiles {\n\tprivate h: GovHost\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t}\n\t/**\n\t * Number of columns between 1-4\n\t */\n\t@Prop() readonly columns: number = 3\n\t/**\n\t * Tiles border\n\t */\n\t@Prop({ attribute: 'no-border' }) readonly noBorder: boolean = false\n\n\t@Element() host: HTMLGovTilesElement\n\n\tget classNames(): string {\n\t\treturn prepareClasses([TilesClass.root, this.columns && TilesClass.root + '--x' + this.columns])\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={this.h.classes(this.classNames)}>\n\t\t\t\t<slot />\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","import { Variants, Types } from '../../core/constants/variants'\nimport { pick } from '../../utils/utils'\nimport { ValueOf } from '../../types/interfaces'\n\nexport const ToastVariants = pick(Variants, ['SUCCESS', 'WARNING', 'ERROR', 'SECONDARY', 'PRIMARY'])\nexport type ToastVariantType = `${ValueOf<typeof ToastVariants>}`\n\nexport const ToastTypes = pick(Types, ['CLASSIC', 'SOLID'])\nexport type ToastTypesType = `${ValueOf<typeof ToastTypes>}`\n\nexport const ToastClass = {\n\troot: 'gov-toast',\n\thidden: 'gov-toast--hidden',\n\ticon: 'gov-toast__icon',\n\tcontent: 'gov-toast__content',\n\tclose: 'gov-toast__close',\n\ttimer: 'gov-toast__timer',\n}\n","/*\n * Alert\n */\n\n@import \"./gov-toast-message-core.scss\";\n$class: \".gov-toast\";\n\n#{$class} {\n\t@include toast-message-core;\n\t@include z-index(\"toast\", 1);\n\tposition: relative;\n\tposition: fixed;\n\tmax-width: rem-calc(375);\n\tpadding-right: rem-calc(50);\n\topacity: 1;\n\ttransition: opacity 300ms ease-in-out;\n\t&__content {\n\t\tpadding-right: 0;\n\t}\n\t&__close {\n\t\tposition: absolute;\n\t\ttop: rem-calc(8);\n\t\tright: rem-calc(12);\n\t}\n\t&__timer {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tright: 0;\n\t\tbottom: 0;\n\t\tleft: 0;\n\t\tz-index: -1;\n\t}\n\n\t// VARIANTS\n\t&--hidden {\n\t\topacity: 0;\n\t}\n\t&[gravity=\"top\" i] {\n\t\ttop: rem-calc(16);\n\t}\n\t&[gravity=\"bottom\" i] {\n\t\tbottom: rem-calc(16);\n\t}\n\t&[position=\"left\" i] {\n\t\tleft: rem-calc(16);\n\t}\n\t&[position=\"center\" i] {\n\t\tleft: 50%;\n\t\ttransform: translateX(-50%);\n\t}\n\t&[position=\"right\" i] {\n\t\tright: rem-calc(16);\n\t}\n\t&[type=\"solid\" i] {\n\t\tborder: none;\n\t\tborder-radius: rem-calc(4);\n\t\toverflow: hidden;\n\t\tbox-shadow: none;\n\t\t&.is-initialized #{$class}__timer {\n\t\t\ttransform-origin: left;\n\t\t\tanimation: countdown linear forwards var(--toast-duration, 0);\n\t\t}\n\t}\n\n\t@each $variant, $definitions in $toast-message-variants {\n\t\t&[variant=\"#{$variant}\"] {\n\t\t\tborder-left-color: get(\"decor-color\", $definitions);\n\t\t\t#{$class} {\n\t\t\t\t&__icon {\n\t\t\t\t\tcolor: get(\"decor-color\", $definitions);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t&[type=\"solid\" i] {\n\t\t\t\tbackground-color: get(\"background\", $definitions);\n\t\t\t\tcolor: get(\"color\", $definitions);\n\t\t\t\t#{$class} {\n\t\t\t\t\t&__icon {\n\t\t\t\t\t\tcolor: get(\"color\", $definitions);\n\t\t\t\t\t}\n\t\t\t\t\t&__timer {\n\t\t\t\t\t\tbackground-color: get(\"timer-background\", $definitions);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// MQ\n\t@include mq($from: sm) {\n\t\t&__content {\n\t\t\tpadding-right: rem-calc(32);\n\t\t}\n\t}\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Prop, Watch, Method } from '@stencil/core'\nimport { validateProp } from '../../helpers/Validate/props'\nimport { ToastClass, ToastTypesType, ToastVariants } from './constants'\nimport { govHost } from '../../helpers/Dom/template'\nimport { GovHost } from '../../helpers/Dom/template.types'\nimport { ToastVariantType } from './constants'\nimport { createID } from '../../utils/string.utils'\n\n@Component({\n\ttag: 'gov-toast',\n\tstyleUrl: 'gov-toast.scss',\n})\nexport class GovToast {\n\tprivate h: GovHost\n\tprivate timeout\n\tprivate readonly toastId: string\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t\tthis.toastId = createID('GovToast')\n\t}\n\n\t@Element() host: HTMLGovToastElement\n\t/**\n\t * Style variation of the toast message.\n\t */\n\t@Prop() readonly variant?: ToastVariantType = 'primary'\n\n\t/**\n\t * Toast’s gravity\n\t */\n\t@Prop() readonly gravity: 'top' | 'bottom' = 'top'\n\t/**\n\t * Toast’s position\n\t */\n\t@Prop() readonly position: 'left' | 'center' | 'right' = 'right'\n\t/**\n\t * Toast type\n\t */\n\t@Prop() readonly type?: ToastTypesType = 'classic'\n\t/**\n\t * Number of milliseconds to wait before Toast disappear\n\t */\n\t@Prop() readonly time: number = 0\n\t/**\n\t * Closing button texting instead of icons\n\t */\n\t@Prop({ attribute: 'close-label' }) readonly closeLabel: string\n\t/**\n\t * Aria label for the closing button. It is mandatory if the alert is closable\n\t */\n\t@Prop({ attribute: 'wcag-close-label' }) readonly wcagCloseLabel: string\n\t/**\n\t * Called when the close button is clicked\n\t */\n\t@Event({ eventName: 'gov-close' }) govClose: EventEmitter<string>\n\n\t@Watch('variant')\n\tvalidateVariant(newValue: string): void {\n\t\tvalidateProp(ToastVariants, newValue, ToastClass.root)\n\t}\n\n\tcomponentWillLoad(): void {\n\t\tthis.validateVariant(this.variant)\n\t\tthis.runTimer()\n\t}\n\n\tcomponentDidLoad() {\n\t\tconst existedToasts = document.querySelectorAll(`gov-toast[gravity=\"${this.gravity}\"][position=\"${this.position}\"]:not([data-toast-id=\"${this.toastId}\"])`)\n\t\tif (existedToasts.length > 0) {\n\t\t\tArray.from(existedToasts).map((toast: HTMLGovToastElement) => toast.destroy().then())\n\t\t}\n\t}\n\n\tdisconnectedCallback() {\n\t\tclearTimeout(this.timeout)\n\t}\n\n\tprivate runTimer() {\n\t\tif (this.isSolid) {\n\t\t\tthis.host.classList.add('is-initialized')\n\t\t}\n\t\tif (this.isTimer) {\n\t\t\tthis.timeout = setTimeout(() => {\n\t\t\t\tthis.host.classList.add(ToastClass.hidden)\n\t\t\t\tsetTimeout(this.destroy.bind(this), 600)\n\t\t\t}, this.time)\n\t\t}\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host\n\t\t\t\tclass={this.h.classes([ToastClass.root, 'gov-box-shadow--m'])}\n\t\t\t\tdata-toast-id={this.toastId}\n\t\t\t\tgravity={this.gravity}\n\t\t\t\tposition={this.position}\n\t\t\t\tvariant={this.variant}\n\t\t\t\ttype={this.type}\n\t\t\t\tstyle={{ '--toast-duration': this.time + 'ms' }}\n\t\t\t>\n\t\t\t\t{this.h.hasSlot('icon') && (\n\t\t\t\t\t<span class={ToastClass.icon}>\n\t\t\t\t\t\t<slot name=\"icon\" />\n\t\t\t\t\t</span>\n\t\t\t\t)}\n\n\t\t\t\t<div class={ToastClass.content} aria-live=\"polite\" role=\"status\">\n\t\t\t\t\t<slot />\n\t\t\t\t</div>\n\n\t\t\t\t<div class={ToastClass.close}>\n\t\t\t\t\t<gov-button\n\t\t\t\t\t\tsize=\"s\"\n\t\t\t\t\t\twcag-label={this.wcagCloseLabel}\n\t\t\t\t\t\tvariant={this.isSolid ? this.variant : 'secondary'}\n\t\t\t\t\t\tinverse={this.isSolid}\n\t\t\t\t\t\ttype=\"base\"\n\t\t\t\t\t\ton-gov-click={this.onCloseHandler.bind(this)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{this.closeLabel ? this.closeLabel : <gov-icon name=\"x-lg\"></gov-icon>}\n\t\t\t\t\t</gov-button>\n\t\t\t\t</div>\n\n\t\t\t\t<div class={ToastClass.timer}></div>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\tprivate onCloseHandler(): void {\n\t\tthis.destroy()\n\t\t\t.then(() => this.govClose.emit(this.toastId))\n\t\t\t.catch()\n\t}\n\n\tget isSolid(): boolean {\n\t\treturn this.type === 'solid'\n\t}\n\n\tget isTimer(): boolean {\n\t\treturn Number.isInteger(this.time) && this.time > 0\n\t}\n\n\t/**\n\t * Remove toast from dom\n\t */\n\t@Method()\n\tasync destroy(): Promise<void> {\n\t\tclearTimeout(this.timeout)\n\t\tconst toast = document.querySelector(`[data-toast-id=\"${this.toastId}\"]`)\n\t\tif (toast) {\n\t\t\ttoast.classList.add(ToastClass.hidden)\n\t\t\tif (typeof toast.remove === 'function') {\n\t\t\t\ttoast.remove()\n\t\t\t}\n\t\t}\n\t}\n}\n","import { Variants } from '../../core/constants/variants'\nimport { Sizes } from '../../core/constants/sizes'\nimport { ValueOf } from '../../types/interfaces'\nimport { pick } from '../../utils/utils'\n\nexport const TooltipVariant = pick(Variants, ['PRIMARY', 'SECONDARY'])\nexport type TooltipVariantType = `${ValueOf<typeof TooltipVariant>}`\n\nexport const TooltipSize = pick(Sizes, ['_S', '_M', '_L'])\nexport type TooltipSizeType = `${ValueOf<typeof TooltipSize>}`\n\nexport enum TooltipPosition {\n\tTOP = 'top',\n\tRIGHT = 'right',\n\tBOTTOM = 'bottom',\n\tLEFT = 'left',\n}\nexport type TooltipPositionType = `${ValueOf<typeof TooltipPosition>}`\n\nexport const TooltipClass = {\n\troot: 'gov-tooltip',\n}\n\nexport const TooltipContentClass = {\n\troot: 'gov-tooltip-content',\n}\n","/*\n * Tooltip\n */\n\n$class: \".gov-tooltip\";\n\n#{$class} {\n\tposition: relative;\n\tdisplay: inline;\n\tborder-bottom: 1px dashed currentcolor;\n\tcolor: color(\"primary\");\n\tcursor: help;\n\n\t// VARIANTS\n\t@include parameter(\"icon\") {\n\t\tdisplay: inline-flex;\n\t\tborder-bottom: 0;\n\t}\n\t@each $variant, $definitions in $tooltip-content-variants {\n\t\t&[variant=\"#{$variant}\"] {\n\t\t\t--#{$prefix}tooltip-content-bg-color: #{get(\"bg-color\", $definitions)};\n\t\t\t--#{$prefix}tooltip-content-text-color: #{get(\"text-color\", $definitions)};\n\n\t\t\t// STATES\n\t\t\t@include parameter(\"inverse\") {\n\t\t\t\t--#{$prefix}tooltip-content-bg-color: #{color(\"neutral.white\")};\n\t\t\t\t--#{$prefix}tooltip-content-text-color: #{get(\"text-color-inverse\", $definitions)};\n\t\t\t}\n\t\t}\n\t}\n}\n","import { Component, Element, h, Host, Method, Prop, Watch } from '@stencil/core'\nimport { validateProp } from '../../helpers/Validate/props'\nimport {\n\tTooltipPosition,\n\tTooltipPositionType,\n\tTooltipSize,\n\tTooltipSizeType,\n\tTooltipClass,\n\tTooltipContentClass,\n\tTooltipVariant,\n\tTooltipVariantType,\n} from './constants'\nimport { createID } from '../../utils/string.utils'\nimport { govHost } from '../../helpers/Dom/template'\nimport { GovHost } from '../../helpers/Dom/template.types'\n\n@Component({\n\ttag: 'gov-tooltip',\n\tstyleUrl: 'gov-tooltip.scss',\n})\nexport class GovTooltip {\n\tprivate h: GovHost\n\tprivate content: HTMLGovTooltipContentElement\n\tprivate readonly tooltipId\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t\tthis.tooltipId = createID('GovTooltip')\n\t}\n\n\t@Element() host: HTMLGovTooltipElement\n\t/**\n\t * Style variation of the tooltip\n\t */\n\t@Prop() readonly variant?: TooltipVariantType = 'primary'\n\t/**\n\t * Tooltip’s size.\n\t */\n\t@Prop() readonly size?: TooltipSizeType = 'm'\n\t/**\n\t * Tooltip display position\n\t */\n\t@Prop() position: TooltipPositionType = 'right'\n\t/**\n\t * Information contained in the tolltip\n\t */\n\t@Prop() readonly message: string = undefined\n\t/**\n\t * Custom tooltip identifier.\n\t */\n\t@Prop({ attribute: 'identifier' }) readonly identifier: string\n\t/**\n\t * Trigger is just an icon\n\t */\n\t@Prop({ attribute: 'icon' }) readonly icon: boolean = undefined\n\n\t@Watch('variant')\n\tvalidateVariant(newValue: string): void {\n\t\tvalidateProp(TooltipVariant, newValue, TooltipClass.root)\n\t}\n\n\t@Watch('size')\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(TooltipSize, newValue, TooltipClass.root)\n\t}\n\n\t@Watch('position')\n\tvalidatePosition(newValue: string): void {\n\t\tvalidateProp(TooltipPosition, newValue, TooltipClass.root)\n\t}\n\n\tcomponentWillLoad(): void {\n\t\tthis.validateVariant(this.variant)\n\t\tthis.validateSize(this.size)\n\t\tthis.validatePosition(this.position)\n\n\t\tthis.createContentWrapper()\n\t\tthis.registerListeners()\n\t}\n\n\tprivate createContentWrapper() {\n\t\tconst hasContentInside = this.host.querySelector(TooltipContentClass.root) as HTMLGovTooltipContentElement\n\t\tif (hasContentInside) {\n\t\t\tthis.content = hasContentInside\n\t\t} else {\n\t\t\tthis.content = document.createElement(TooltipContentClass.root) as HTMLGovTooltipContentElement\n\t\t\tthis.content.innerHTML = this.message\n\t\t\tthis.host.appendChild(this.content)\n\t\t}\n\n\t\tthis.content.setAttribute('id', this.identifier ?? this.tooltipId)\n\t}\n\n\tprivate registerListeners() {\n\t\tthis.host.addEventListener('focus', e => {\n\t\t\te.preventDefault()\n\t\t\tthis.showTooltip()\n\t\t})\n\t\tthis.host.addEventListener('blur', e => {\n\t\t\te.preventDefault()\n\t\t\tthis.hideTooltip()\n\t\t})\n\t\tthis.host.addEventListener('mouseenter', e => {\n\t\t\te.preventDefault()\n\t\t\tthis.showTooltip()\n\t\t})\n\t\tthis.host.addEventListener('mouseleave', e => {\n\t\t\te.preventDefault()\n\t\t\tthis.hideTooltip()\n\t\t})\n\t}\n\n\tprivate verifyPositionSpace() {\n\t\t// @TODO Improve positioning of broken lines\n\t\tconst offset = 12\n\t\tconst windowWidth = window.innerWidth\n\t\tconst trigger = this.host.getBoundingClientRect()\n\t\tconst trgWidth = this.host.offsetWidth\n\t\tconst triggerPos = {\n\t\t\tleft: trigger.left + document.documentElement.scrollLeft,\n\t\t\ttop: trigger.top + document.documentElement.scrollTop,\n\t\t}\n\t\tconst tltWidth = this.content.offsetWidth\n\t\tif (this.position === TooltipPosition.LEFT) {\n\t\t\tif (offset + triggerPos.left < tltWidth) {\n\t\t\t\tthis.position = TooltipPosition.TOP\n\t\t\t\tthis.content.style.left = '0px'\n\t\t\t\tthis.content.style.width = window.innerWidth - triggerPos.left - offset + 'px'\n\t\t\t\tthis.content.style.transform = 'none'\n\t\t\t}\n\t\t} else if (this.position === TooltipPosition.RIGHT) {\n\t\t\tif (windowWidth - (triggerPos.left + trgWidth) < tltWidth) {\n\t\t\t\tthis.position = TooltipPosition.TOP\n\t\t\t\tthis.content.style.right = '0px'\n\t\t\t\tthis.content.style.left = 'auto'\n\t\t\t\tthis.content.style.width = trgWidth + triggerPos.left + offset + 'px'\n\t\t\t\tthis.content.style.transform = 'none'\n\t\t\t}\n\t\t} else {\n\t\t\t// doesn't fit from the left\n\t\t\tif (tltWidth / 2 > triggerPos.left) {\n\t\t\t\tthis.content.style.left = '0px'\n\t\t\t\tthis.content.style.width = window.innerWidth - triggerPos.left - offset + 'px'\n\t\t\t\tthis.content.style.transform = 'none'\n\t\t\t}\n\t\t\t// doesn't fit from the right\n\t\t\telse if (tltWidth / 2 > windowWidth - (triggerPos.left + tltWidth)) {\n\t\t\t\tthis.content.style.right = '0px'\n\t\t\t\tthis.content.style.left = 'auto'\n\t\t\t\tthis.content.style.width = trgWidth + triggerPos.left + offset + 'px'\n\t\t\t\tthis.content.style.transform = 'none'\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate showTooltip() {\n\t\tif (this.content) {\n\t\t\tthis.verifyPositionSpace()\n\t\t\tthis.content.setAttribute('is-visible', 'true')\n\t\t}\n\t}\n\n\tprivate hideTooltip() {\n\t\tif (this.content) {\n\t\t\tthis.content.setAttribute('is-visible', 'false')\n\t\t}\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host\n\t\t\t\tclass={this.h.classes(TooltipClass.root)}\n\t\t\t\tposition={this.position}\n\t\t\t\tsize={this.size}\n\t\t\t\ttabindex={0}\n\t\t\t\taria-describedby={this.identifier ?? this.tooltipId}\n\t\t\t\tvariant={this.variant}\n\t\t\t>\n\t\t\t\t<slot />\n\t\t\t</Host>\n\t\t)\n\t}\n\n\t/**\n\t * Showing the modal\n\t */\n\t@Method()\n\tasync show(): Promise<void> {\n\t\tthis.showTooltip()\n\t}\n\n\t/**\n\t * Hidding the modal\n\t */\n\t@Method()\n\tasync hide(): Promise<void> {\n\t\tthis.hideTooltip()\n\t}\n}\n","/*\n * Tooltip - Content\n */\n\n$class: \".gov-tooltip-content\";\n\n#{$class} {\n\t@include z-index(\"bar\", 1);\n\t@include typography($font-size-m);\n\tposition: absolute;\n\tdisplay: block;\n\twidth: max-content;\n\tmax-width: $tooltip-content-max-width;\n\tpadding: rem-calc(16);\n\tborder-radius: rem-calc(3);\n\tbackground-color: $tooltip-content-bg-color;\n\tcolor: $tooltip-content-text-color;\n\tletter-spacing: rem-calc(0.2);\n\tvisibility: hidden;\n\topacity: 0;\n\ttransition: opacity 0.2s ease-in;\n\t&::before {\n\t\t@include pseudo();\n\t\twidth: 0;\n\t\theight: 0;\n\t\tborder: rem-calc(10) solid transparent;\n\t}\n\n\t// STATES\n\t@include parameter(\"is-visible\") {\n\t\topacity: 1;\n\t}\n\n\t// VARIANTS\n\t@each $size, $definitions in $tooltip-content-sizes {\n\t\t.gov-tooltip[size=\"#{$size}\"] & {\n\t\t\t--#{$prefix}tooltip-content-padding: #{get(\"padding\", $definitions)};\n\t\t\t--#{$prefix}tooltip-content-arrow-size: #{get(\"arrow-size\", $definitions)};\n\t\t\t--#{$prefix}tooltip-content-letter-spacing: #{get(\"letter-spacing\", $definitions)};\n\t\t\t@include typography(get(\"typography\", $definitions));\n\t\t}\n\t}\n\t@each $position, $definitions in $tooltip-content-positions {\n\t\t$oppositeProperty: get(\"oppositeProperty\", $definitions);\n\n\t\t.gov-tooltip[position=\"#{$position}\"] & {\n\t\t\t#{$oppositeProperty}: 100%;\n\t\t\tmargin-#{$oppositeProperty}: rem-calc(10);\n\t\t\t&,\n\t\t\t&::before {\n\t\t\t\t#{get(\"directionProperty\", $definitions)}: 50%;\n\t\t\t\ttransform: #{get(\"transformFn\", $definitions) }(-50%);\n\t\t\t}\n\t\t\t&::before {\n\t\t\t\t#{$position}: 100%;\n\t\t\t\tborder-#{$oppositeProperty}-width: 0;\n\t\t\t\tborder-#{$position}-color: $tooltip-content-bg-color;\n\t\t\t}\n\t\t}\n\t}\n}\n","import { Component, Element, h, Host, Prop, Watch } from '@stencil/core'\nimport { TooltipContentClass } from './constants'\nimport { toBoolAttr } from '../../helpers/Dom/template'\n\n@Component({\n\ttag: 'gov-tooltip-content',\n\tstyleUrl: 'gov-tooltip-content.scss',\n})\nexport class GovTooltipContent {\n\tprivate timeout\n\n\t@Element() host: HTMLGovTooltipContentElement\n\t/**\n\t * Indicates display of tooltip content\n\t */\n\t@Prop({ attribute: 'is-visible' }) readonly isVisible: boolean = false\n\n\t@Watch('isVisible')\n\tvisibleContent(newValue: boolean): void {\n\t\tclearTimeout(this.timeout)\n\t\tif (newValue === false) {\n\t\t\tthis.timeout = setTimeout(() => {\n\t\t\t\tthis.host.style.visibility = 'hidden'\n\t\t\t}, 250)\n\t\t} else {\n\t\t\tthis.host.style.visibility = 'visible'\n\t\t}\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={TooltipContentClass.root} role={'tooltip'} hidden={!this.isVisible} aria-hidden={!toBoolAttr(this.isVisible)} is-visible={this.isVisible}>\n\t\t\t\t<slot></slot>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n","import { Variants } from '../../core/constants/variants'\nimport { Sizes } from '../../core/constants/sizes'\nimport { pick } from '../../utils/utils'\nimport { ValueOf } from '../../types/interfaces'\n\nexport const WizardVariants = pick(Variants, ['PRIMARY', 'SECONDARY', 'WARNING', 'ERROR', 'SUCCESS'])\nexport type WizardVariantsType = `${ValueOf<typeof WizardVariants>}`\n\nexport const WizardSizes = pick(Sizes, ['_XS', '_S', '_M'])\nexport type WizardSizesType = `${ValueOf<typeof WizardSizes>}`\n\nexport const WizzardClass = {\n\troot: 'gov-wizzard',\n}\n\nexport const WizzardItemClass = {\n\troot: 'gov-wizzard-item',\n\theader: 'gov-wizzard-item__header',\n\tarrow: 'gov-wizzard-item__arrow',\n\ttitle: 'gov-wizzard-item__title',\n\tname: 'gov-wizzard-item__name',\n\tlabel: 'gov-wizzard-item__label',\n\tannot: 'gov-wizzard-item__annot',\n\tprefix: 'gov-wizzard-item__prefix',\n\tcontent: 'gov-wizzard-item__content',\n}\n","/*\n * Wizzard\n */\n\n$class: \".gov-wizzard\";\n\n#{$class} {\n\t@include base();\n\t@include reset-last-margin();\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, Watch } from \"@stencil/core\"\nimport { validateProp } from \"../../helpers/Validate/props\"\nimport { WizardSizes, WizardSizesType, WizzardClass, WizzardItemClass } from \"./constants\"\nimport { GovWizzardItemChangeEvent } from \"./gov-wizzard-item.d\"\nimport { govHost } from \"../../helpers/Dom/template\"\nimport { GovHost } from \"../../helpers/Dom/template.types\"\nimport { validateWcagLabel } from \"../../helpers/Validate/wcag\"\nimport { canValidateWcagOnRender } from \"../../helpers/Dom/win\"\nimport { delay } from \"../../utils/utils\"\n\n@Component({\n\ttag: \"gov-wizzard\",\n\tstyleUrl: \"gov-wizzard.scss\",\n})\nexport class GovWizzard {\n\tprivate h: GovHost\n\n\t@Element() readonly host: HTMLGovWizzardElement\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t}\n\n\t/**\n\t * Size of wizzard\n\t */\n\t@Prop() readonly size?: WizardSizesType = \"m\"\n\t/**\n\t * Adds accessible label for the wizzard that is only shown for screen readers.\n\t */\n\t@Prop({ attribute: \"wcag-label\" }) readonly wcagLabel: string\n\t/**\n\t * String of id's that indicate alternative labels elements\n\t */\n\t@Prop({ attribute: \"wcag-labelled-by\" }) readonly wcagLabelledBy: string\n\t/**\n\t * Called when the wizzard children state changes\n\t */\n\t@Event({ eventName: \"gov-change\" }) govChange: EventEmitter<GovWizzardItemChangeEvent>\n\n\t@Watch(\"size\")\n\tprivate validateSize(newValue: string): void {\n\t\tvalidateProp(WizardSizes, newValue, WizzardClass.root)\n\t}\n\n\tcomponentWillLoad(): void {\n\t\tthis.validateSize(this.size)\n\t}\n\n\tcomponentDidLoad() {\n\t\tthis.host.querySelectorAll(WizzardItemClass.root).forEach((child: HTMLGovWizzardItemElement) => {\n\t\t\tchild.setAttribute(\"size\", this.size)\n\t\t\t/*\n\t\t\tchild.addEventListener('gov-change', (e: GovWizzardItemCustomEvent<GovWizzardItemChangeEvent>) => {\n\t\t\t\te.stopPropagation()\n\t\t\t\tthis.govChange.emit(e.detail)\n\t\t\t})\n\t\t\t*/\n\t\t})\n\t}\n\n\tasync componentDidRender() {\n\t\tif (canValidateWcagOnRender()) {\n\t\t\tawait delay(500)\n\t\t\tawait this.validateWcag()\n\t\t}\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={this.h.classes(WizzardClass.root)} role=\"list\" size={this.size}>\n\t\t\t\t<slot />\n\t\t\t</Host>\n\t\t)\n\t}\n\n\t/**\n\t * Validate the WCAG attributes of the component\n\t */\n\t@Method()\n\tpublic async validateWcag(): Promise<void> {\n\t\tvalidateWcagLabel(this.wcagLabel, this.wcagLabelledBy, WizzardClass.root)\n\t}\n}\n","/*\n * Wizzard - Item\n */\n\n@import \"../gov-wizzard/gov-wizzard-item-core.scss\";\n$class: \".gov-wizzard-item\";\n\n#{$class} {\n\t@include wizzard-item-core;\n\tmargin-bottom: rem-calc(16);\n\tbackground: $wizzard-bg-color;\n\t&__header {\n\t\t@include focus-outline();\n\t\tgap: rem-calc(16);\n\t\tpadding: rem-calc(16);\n\t\tborder-radius: 0;\n\t\ttext-align: left;\n\t\ttransition: $t linear color;\n\t}\n\t&__prefix {\n\t\tposition: absolute;\n\t\tleft: rem-calc(16);\n\t}\n\n\t// STATES\n\t&__header[aria-expanded=\"true\"] {\n\t\t#{$class}__label {\n\t\t\t.gov-icon {\n\t\t\t\ttransform: scale(-1);\n\t\t\t}\n\t\t}\n\t}\n\n\t// VARIANTS\n\t&[size=\"#{$size-xs}\"],\n\t&[size=\"#{$size-s}\"],\n\t&[size=\"#{$size-m}\"] {\n\t\t#{$class} {\n\t\t\t&__title {\n\t\t\t\t@include typography(deep-map-get($wizzard-sizes, $size-xs, \"font-size\"));\n\t\t\t}\n\t\t\t&__annot {\n\t\t\t\t@include typography(deep-map-get($wizzard-sizes, $size-xs, \"font-size-annot\"));\n\t\t\t}\n\t\t\t&__prefix {\n\t\t\t\t@include typography(deep-map-get($wizzard-sizes, $size-xs, \"font-size-indicator\"));\n\t\t\t\twidth: deep-map-get($wizzard-sizes, $size-xs, \"indicator-size\");\n\t\t\t\theight: deep-map-get($wizzard-sizes, $size-xs, \"indicator-size\");\n\t\t\t\ttop: deep-map-get($wizzard-sizes, $size-xs, \"top\");\n\t\t\t\t+ #{$class}__header {\n\t\t\t\t\tpadding: deep-map-get($wizzard-sizes, $size-xs, \"header-padding\");\n\t\t\t\t}\n\t\t\t}\n\t\t\t&__content {\n\t\t\t\tpadding: $wizzard-content-padding;\n\t\t\t}\n\t\t}\n\t}\n\t@each $variant, $definitions in $wizzard-core-variants {\n\t\t&[variant=\"#{$variant}\"] {\n\t\t\t@include parameter(\"collapsible\") {\n\t\t\t\t#{$class} {\n\t\t\t\t\t&__header {\n\t\t\t\t\t\t@include hover() {\n\t\t\t\t\t\t\tcolor: get(\"hover-color\", $definitions);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// HOVERS\n\t@at-root button#{&}__header {\n\t\t@include button-core();\n\t\tjustify-content: flex-start;\n\t\ttext-align: left;\n\t}\n\n\t// MQ\n\t@include mq($from: sm) {\n\t\t&[size=\"#{$size-s}\"],\n\t\t&[size=\"#{$size-m}\"] {\n\t\t\t#{$class} {\n\t\t\t\t&__title {\n\t\t\t\t\t@include typography(deep-map-get($wizzard-sizes, $size-s, \"font-size\"));\n\t\t\t\t}\n\t\t\t\t&__prefix {\n\t\t\t\t\t@include typography(deep-map-get($wizzard-sizes, $size-s, \"font-size-indicator\"));\n\t\t\t\t\twidth: deep-map-get($wizzard-sizes, $size-s, \"indicator-size\");\n\t\t\t\t\theight: deep-map-get($wizzard-sizes, $size-s, \"indicator-size\");\n\t\t\t\t\ttop: deep-map-get($wizzard-sizes, $size-s, \"top\");\n\t\t\t\t\t+ #{$class}__header {\n\t\t\t\t\t\tpadding: deep-map-get($wizzard-sizes, $size-s, \"header-padding\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t@include mq($from: md) {\n\t\t&[size=\"#{$size-m}\"] {\n\t\t\t#{$class} {\n\t\t\t\t&__title {\n\t\t\t\t\t@include typography(deep-map-get($wizzard-sizes, $size-m, \"font-size\"));\n\t\t\t\t}\n\t\t\t\t&__prefix {\n\t\t\t\t\t@include typography(deep-map-get($wizzard-sizes, $size-m, \"font-size-indicator\"));\n\t\t\t\t\twidth: deep-map-get($wizzard-sizes, $size-m, \"indicator-size\");\n\t\t\t\t\theight: deep-map-get($wizzard-sizes, $size-m, \"indicator-size\");\n\t\t\t\t\ttop: deep-map-get($wizzard-sizes, $size-m, \"top\");\n\t\t\t\t\t+ #{$class}__header {\n\t\t\t\t\t\tpadding: deep-map-get($wizzard-sizes, $size-m, \"header-padding\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t@each $size, $definitions in $wizzard-sizes {\n\t\t\t&[size=\"#{$size}\"] {\n\t\t\t\t#{$class} {\n\t\t\t\t\t&__content {\n\t\t\t\t\t\tpadding: get(\"content-padding\", $definitions);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, Watch } from \"@stencil/core\"\nimport { govErrorLog } from \"../../helpers/Log/gov.log\"\nimport { validateProp } from \"../../helpers/Validate/props\"\nimport { WizardSizesType, WizardVariants, WizardVariantsType, WizzardItemClass } from \"./constants\"\nimport { createID } from \"../../utils/string.utils\"\nimport { booleanString, govHost, toBoolAttrIfDefined } from \"../../helpers/Dom/template\"\nimport { GovHost } from \"../../helpers/Dom/template.types\"\nimport { WizzardItemEvent } from \"./gov-wizzard-item.types\"\nimport Fragment from \"../../helpers/Fragment\"\n\nenum Tags {\n\tDIV = \"div\",\n\tBUTTON = \"button\",\n}\n\n@Component({\n\ttag: \"gov-wizzard-item\",\n\tstyleUrl: \"gov-wizzard-item.scss\",\n})\nexport class GovWizzardItem {\n\tprivate h: GovHost\n\tprivate readonly triggerId: string\n\tprivate readonly contentId: string\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t\tthis.triggerId = createID(\"GovWizzardItem\")\n\t\tthis.contentId = createID(\"GovWizzardContent\")\n\t}\n\n\t@Element() readonly host: HTMLGovWizzardItemElement\n\t/**\n\t * Style variation of the button.\n\t */\n\t@Prop() readonly variant?: WizardVariantsType = \"primary\"\n\t/**\n\t * Size of wizzard\n\t */\n\t@Prop() readonly size?: WizardSizesType = \"m\"\n\t/**\n\t * Custom wizzard item identifier. Otherwise, it will be generated\n\t */\n\t@Prop() readonly identifier: string\n\t/**\n\t * Defines weather the wizzard item can be collapsible\n\t */\n\t@Prop() readonly collapsible: boolean = false\n\t/**\n\t * Item annotation of the wizzard\n\t */\n\t@Prop() readonly annotation: string\n\t/**\n\t * Item label of the wizzard\n\t */\n\t@Prop() readonly label: string\n\t/**\n\t * Makes the wizzard component disabled.\n\t */\n\t@Prop() readonly disabled: boolean = false\n\t/**\n\t * Defines whether the accordion is open or closed by default\n\t */\n\t@Prop({ attribute: \"is-expanded\", mutable: true }) isExpanded = false\n\t/**\n\t * Used to change the HTML tag in the accordion trigger for correct semantic structure\n\t */\n\t@Prop({ attribute: \"label-tag\" }) readonly labelTag: string = \"h3\"\n\t/**\n\t * Called when the accordion state changes\n\t */\n\t@Event({ eventName: \"gov-change\" }) govChange: EventEmitter<WizzardItemEvent>\n\n\t@Watch(\"label\")\n\tprivate validateLabel(newValue: string): void {\n\t\tif (!newValue) {\n\t\t\tgovErrorLog(`[${WizzardItemClass.root}]: Parameter label is required.`)\n\t\t}\n\t}\n\n\t@Watch(\"labelTag\")\n\tprivate validateTriggerTag(newValue: string): void {\n\t\tconst validTags = [\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"span\"]\n\t\tif (newValue) {\n\t\t\tif (!validTags.includes(newValue)) {\n\t\t\t\tgovErrorLog(`[${WizzardItemClass.root}]: Tag ${newValue} is not allowed.`)\n\t\t\t}\n\t\t}\n\t}\n\n\t@Watch(\"variant\")\n\tprivate validateVariant(newValue: string): void {\n\t\tvalidateProp(WizardVariants, newValue, WizzardItemClass.root)\n\t}\n\n\tprivate emmitChange(): void {\n\t\tthis.govChange.emit({ expanded: this.isExpanded, component: WizzardItemClass.root })\n\t}\n\n\tcomponentWillLoad(): void {\n\t\tthis.validateLabel(this.label)\n\t\tthis.validateVariant(this.variant)\n\t\tthis.validateTriggerTag(this.labelTag)\n\t}\n\n\trender() {\n\t\tconst triggerId = this.identifier || this.triggerId\n\t\tconst LabelTag = this.labelTag\n\t\tconst Tag = this.collapsible ? Tags.BUTTON : Tags.DIV\n\t\tconst prefixSlot = this.h.hasSlot(\"prefix\") && (<span class={WizzardItemClass.prefix}><slot name=\"prefix\" /></span>)\n\n\t\tconst label = (\n\t\t\t<LabelTag class={WizzardItemClass.title}>\n\t\t\t\t<span class={WizzardItemClass.name}>\n\t\t\t\t\t<span class={WizzardItemClass.label}>\n\t\t\t\t\t\t<span>{this.label}</span>\n\t\t\t\t\t\t{this.collapsible && <gov-icon class={WizzardItemClass.arrow} name=\"chevron-down\"></gov-icon>}\n\t\t\t\t\t</span>\n\n\t\t\t\t\t{this.annotation && <span class={WizzardItemClass.annot}>{this.annotation}</span>}\n\t\t\t\t</span>\n\t\t\t</LabelTag>\n\t\t)\n\n\t\treturn (\n\t\t\t<Host class={this.h.classes(WizzardItemClass.root)} is-expanded={this.isExpanded} variant={this.variant} size={this.size} role=\"listitem\" collapsible={this.collapsible}>\n\t\t\t\t{this.collapsible ? (\n\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t{prefixSlot}\n\t\t\t\t\t\t<Tag\n\t\t\t\t\t\t\tid={triggerId}\n\t\t\t\t\t\t\tclass={WizzardItemClass.header}\n\t\t\t\t\t\t\taria-expanded={booleanString(this.isExpanded)}\n\t\t\t\t\t\t\taria-controls={this.contentId}\n\t\t\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\t\t\taria-disabled={toBoolAttrIfDefined(this.disabled)}\n\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t\tthis.collapsible ? this.toggle() : false\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t</Tag>\n\t\t\t\t\t</Fragment>\n\t\t\t\t) : (\n\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t{prefixSlot}\n\t\t\t\t\t\t<div class={WizzardItemClass.header}>{label}</div>\n\t\t\t\t\t</Fragment>\n\t\t\t\t)}\n\t\t\t\t{this.collapsible ? (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclass={WizzardItemClass.content}\n\t\t\t\t\t\tid={this.contentId}\n\t\t\t\t\t\taria-hidden={booleanString(!this.isExpanded)}\n\t\t\t\t\t\thidden={!this.isExpanded}\n\t\t\t\t\t\taria-labelledby={triggerId}\n\t\t\t\t\t>\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t</div>\n\t\t\t\t) : (\n\t\t\t\t\t<div class={WizzardItemClass.content} aria-hidden={booleanString(!this.isExpanded)} hidden={!this.isExpanded}>\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</Host>\n\t\t)\n\t}\n\n\t/**\n\t * Opening the Wizzard\n\t */\n\t@Method()\n\tasync open(): Promise<void> {\n\t\tthis.isExpanded = true\n\t\tthis.emmitChange()\n\t}\n\n\t/**\n\t * Closing the Wizzard\n\t */\n\t@Method()\n\tpublic async close(): Promise<void> {\n\t\tthis.isExpanded = false\n\t\tthis.emmitChange()\n\t}\n\n\t/**\n\t * Wizzard switch\n\t */\n\t@Method()\n\tpublic async toggle(): Promise<void> {\n\t\tthis.isExpanded = !this.isExpanded\n\t\tthis.emmitChange()\n\t}\n\n\t/**\n\t * Returns the current state of the component\n\t */\n\t@Method()\n\tpublic async currentState(): Promise<boolean> {\n\t\treturn this.isExpanded\n\t}\n}\n"]}
|