scu-web-components 0.0.57 → 0.0.59
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/chunks/{chunk.Z73LGC4J.js → chunk.7BWWSGEG.js} +1 -1
- package/dist/chunks/chunk.7BWWSGEG.js.gz +0 -0
- package/dist/chunks/chunk.DLM23JHZ.js +1 -0
- package/dist/chunks/chunk.DLM23JHZ.js.gz +0 -0
- package/dist/chunks/chunk.EP3VE4R7.js +1 -0
- package/dist/chunks/chunk.EP3VE4R7.js.gz +0 -0
- package/dist/chunks/chunk.GIHNQDDF.js +1 -0
- package/dist/chunks/chunk.GIHNQDDF.js.gz +0 -0
- package/dist/chunks/{chunk.2P5MWG5O.js → chunk.MIF7FZXL.js} +1 -1
- package/dist/chunks/chunk.MIF7FZXL.js.gz +0 -0
- package/dist/chunks/chunk.RPRQZUMV.js +7 -0
- package/dist/chunks/chunk.RPRQZUMV.js.gz +0 -0
- package/dist/chunks/{chunk.4O3MKSMB.js → chunk.TJQHCALG.js} +1 -1
- package/dist/chunks/chunk.TJQHCALG.js.gz +0 -0
- package/dist/chunks/{chunk.3CA4TPD6.js → chunk.TKYCMUDT.js} +20 -13
- package/dist/chunks/chunk.TKYCMUDT.js.gz +0 -0
- package/dist/chunks/chunk.UKOBRXH3.js +1 -0
- package/dist/chunks/chunk.UKOBRXH3.js.gz +0 -0
- package/dist/chunks/{chunk.VBLZXH3I.js → chunk.VIF7XSJK.js} +5 -5
- package/dist/chunks/chunk.VIF7XSJK.js.gz +0 -0
- package/dist/chunks/{chunk.QWIFYGTA.js → chunk.VJ5KTKQB.js} +2 -2
- package/dist/chunks/chunk.VJ5KTKQB.js.gz +0 -0
- package/dist/chunks/chunk.WMUEZXBW.js +1 -0
- package/dist/chunks/chunk.WMUEZXBW.js.gz +0 -0
- package/dist/chunks/{chunk.4H5VMPGV.js → chunk.WVTHZLEX.js} +1 -1
- package/dist/chunks/chunk.WVTHZLEX.js.gz +0 -0
- package/dist/chunks/chunk.Y4TYKV5B.js +1 -0
- package/dist/chunks/chunk.Y4TYKV5B.js.gz +0 -0
- package/dist/chunks/chunk.Y7O6U5BJ.js +1 -0
- package/dist/chunks/chunk.Y7O6U5BJ.js.gz +0 -0
- package/dist/chunks/{chunk.MJTS2UXU.js → chunk.YPAUKDWK.js} +1 -1
- package/dist/chunks/chunk.YPAUKDWK.js.gz +0 -0
- package/dist/chunks/chunk.ZLDYLT46.js +1 -0
- package/dist/chunks/chunk.ZLDYLT46.js.gz +0 -0
- package/dist/custom-elements.json +227 -227
- package/dist/custom-elements.json.gz +0 -0
- package/dist/docs/components/manifest.json +40 -40
- package/dist/docs/config.json +3 -3
- package/dist/scw-alert/ScwAlert.js +1 -1
- package/dist/scw-alert/ScwAlert.js.gz +0 -0
- package/dist/scw-alert/scw-alert.js +1 -1
- package/dist/scw-alert/scw-alert.js.gz +0 -0
- package/dist/scw-button/ScwButton.js +1 -1
- package/dist/scw-button/ScwButton.js.gz +0 -0
- package/dist/scw-button/scw-button.js +1 -1
- package/dist/scw-button/scw-button.js.gz +0 -0
- package/dist/scw-card/ScwCard.js +1 -1
- package/dist/scw-card/ScwCard.js.gz +0 -0
- package/dist/scw-card/scw-card.js +1 -1
- package/dist/scw-card/scw-card.js.gz +0 -0
- package/dist/scw-components.js +1 -1
- package/dist/scw-components.js.gz +0 -0
- package/dist/scw-form-component/scw-form-component.js +1 -1
- package/dist/scw-form-component/scw-form-component.js.gz +0 -0
- package/dist/scw-heading/ScwHeading.js +1 -1
- package/dist/scw-heading/ScwHeading.js.gz +0 -0
- package/dist/scw-heading/scw-heading.js +1 -1
- package/dist/scw-heading/scw-heading.js.gz +0 -0
- package/dist/scw-input/scw-input.js +1 -1
- package/dist/scw-input/scw-input.js.gz +0 -0
- package/dist/scw-link/ScwLink.js +1 -1
- package/dist/scw-link/ScwLink.js.gz +0 -0
- package/dist/scw-link/scw-link.js +1 -1
- package/dist/scw-link/scw-link.js.gz +0 -0
- package/dist/scw-menu-item/ScwMenuItem.js +1 -1
- package/dist/scw-menu-item/ScwMenuItem.js.gz +0 -0
- package/dist/scw-menu-item/scw-menu-item.js +1 -1
- package/dist/scw-menu-item/scw-menu-item.js.gz +0 -0
- package/dist/scw-rich-text/ScwRichText.js +1 -1
- package/dist/scw-rich-text/ScwRichText.js.gz +0 -0
- package/dist/scw-rich-text/scw-rich-text.js +1 -1
- package/dist/scw-rich-text/scw-rich-text.js.gz +0 -0
- package/dist/scw-rich-text/utils/documentToHtml.js +1 -1
- package/dist/scw-rich-text/utils/documentToHtml.js.gz +0 -0
- package/dist/scw-select/scw-select.js +1 -1
- package/dist/scw-select/scw-select.js.gz +0 -0
- package/dist/scw-single-input/scw-single-input.js +1 -1
- package/dist/scw-single-input/scw-single-input.js.gz +0 -0
- package/dist/scw-textarea/scw-textarea.js +1 -1
- package/dist/scw-textarea/scw-textarea.js.gz +0 -0
- package/dist/scw.js +1 -1
- package/dist/scw.js.gz +0 -0
- package/dist/tokens/segments/comp-scw-heading/_default-label-mixins.scss +2 -2
- package/dist/tokens/segments/comp-scw-heading/_default-label-vars.scss +1 -1
- package/dist/tokens/segments/comp-scw-heading/_size-h2-label-mixins.scss +2 -2
- package/dist/tokens/segments/comp-scw-heading/_size-h2-label-vars.scss +1 -1
- package/dist/tokens/segments/comp-scw-heading/_size-h2-state-focused-label-mixins.scss +2 -2
- package/dist/tokens/segments/comp-scw-heading/_size-h2-state-focused-label-vars.scss +1 -1
- package/dist/tokens/segments/comp-scw-heading/_size-h2-state-hover-label-mixins.scss +2 -2
- package/dist/tokens/segments/comp-scw-heading/_size-h2-state-hover-label-vars.scss +1 -1
- package/dist/tokens/segments/comp-scw-heading/_size-h2-state-hover-underline-mixins.scss +2 -2
- package/dist/tokens/segments/comp-scw-heading/_size-h2-state-hover-underline-vars.scss +1 -1
- package/dist/tokens/segments/comp-scw-heading/_size-h3-label-mixins.scss +2 -2
- package/dist/tokens/segments/comp-scw-heading/_size-h3-label-vars.scss +1 -1
- package/dist/tokens/segments/comp-scw-heading/_size-h3-state-focused-label-mixins.scss +2 -2
- package/dist/tokens/segments/comp-scw-heading/_size-h3-state-focused-label-vars.scss +1 -1
- package/dist/tokens/segments/comp-scw-heading/_size-h3-state-hover-label-mixins.scss +2 -2
- package/dist/tokens/segments/comp-scw-heading/_size-h3-state-hover-label-vars.scss +1 -1
- package/dist/tokens/segments/comp-scw-heading/_size-h3-state-hover-underline-mixins.scss +2 -2
- package/dist/tokens/segments/comp-scw-heading/_size-h3-state-hover-underline-vars.scss +1 -1
- package/dist/tokens/segments/comp-scw-heading/_size-h4-label-mixins.scss +2 -2
- package/dist/tokens/segments/comp-scw-heading/_size-h4-label-vars.scss +1 -1
- package/dist/tokens/segments/comp-scw-heading/_size-h4-state-focused-label-mixins.scss +2 -2
- package/dist/tokens/segments/comp-scw-heading/_size-h4-state-focused-label-vars.scss +1 -1
- package/dist/tokens/segments/comp-scw-heading/_size-h4-state-hover-label-mixins.scss +2 -2
- package/dist/tokens/segments/comp-scw-heading/_size-h4-state-hover-label-vars.scss +1 -1
- package/dist/tokens/segments/comp-scw-heading/_size-h4-state-hover-underline-mixins.scss +2 -2
- package/dist/tokens/segments/comp-scw-heading/_size-h4-state-hover-underline-vars.scss +1 -1
- package/dist/tokens/segments/comp-scw-heading/_size-h5-label-mixins.scss +2 -2
- package/dist/tokens/segments/comp-scw-heading/_size-h5-label-vars.scss +1 -1
- package/dist/tokens/segments/comp-scw-heading/_size-h5-state-focused-label-mixins.scss +2 -2
- package/dist/tokens/segments/comp-scw-heading/_size-h5-state-focused-label-vars.scss +1 -1
- package/dist/tokens/segments/comp-scw-heading/_size-h5-state-hover-label-mixins.scss +2 -2
- package/dist/tokens/segments/comp-scw-heading/_size-h5-state-hover-label-vars.scss +1 -1
- package/dist/tokens/segments/comp-scw-heading/_size-h5-state-hover-underline-mixins.scss +2 -2
- package/dist/tokens/segments/comp-scw-heading/_size-h5-state-hover-underline-vars.scss +1 -1
- package/dist/tokens/segments/comp-scw-heading/_state-focused-label-mixins.scss +2 -2
- package/dist/tokens/segments/comp-scw-heading/_state-focused-label-vars.scss +1 -1
- package/dist/tokens/segments/comp-scw-heading/_state-hover-label-mixins.scss +2 -2
- package/dist/tokens/segments/comp-scw-heading/_state-hover-label-vars.scss +1 -1
- package/dist/tokens/segments/comp-scw-heading/_state-hover-underline-mixins.scss +2 -2
- package/dist/tokens/segments/comp-scw-heading/_state-hover-underline-vars.scss +1 -1
- package/dist/tokens/segments/comp-scw-link/_default-mixins.scss +10 -3
- package/dist/tokens/segments/comp-scw-link/_default-vars.scss +4 -1
- package/dist/tokens/segments/comp-scw-link/_design-outlined-label-mixins.scss +2 -2
- package/dist/tokens/segments/comp-scw-link/_design-outlined-label-vars.scss +1 -1
- package/dist/tokens/segments/comp-scw-link/_design-outlined-mixins.scss +2 -2
- package/dist/tokens/segments/comp-scw-link/_design-outlined-vars.scss +2 -2
- package/dist/tokens/segments/comp-scw-link/_design-text-label-mixins.scss +5 -5
- package/dist/tokens/segments/comp-scw-link/_design-text-label-vars.scss +6 -6
- package/dist/tokens/segments/comp-scw-link/_design-text-mixins.scss +10 -10
- package/dist/tokens/segments/comp-scw-link/_design-text-underline-mixins.scss +4 -4
- package/dist/tokens/segments/comp-scw-link/_design-text-underline-vars.scss +3 -3
- package/dist/tokens/segments/comp-scw-link/_design-text-vars.scss +6 -6
- package/dist/tokens/segments/comp-scw-link/_icon-left-design-outlined-label-mixins.scss +2 -2
- package/dist/tokens/segments/comp-scw-link/_icon-left-design-outlined-label-vars.scss +1 -1
- package/dist/tokens/segments/comp-scw-link/_icon-left-design-outlined-mixins.scss +2 -2
- package/dist/tokens/segments/comp-scw-link/_icon-left-design-outlined-vars.scss +2 -2
- package/dist/tokens/segments/comp-scw-link/_icon-left-mixins.scss +10 -3
- package/dist/tokens/segments/comp-scw-link/_icon-left-vars.scss +4 -1
- package/dist/tokens/segments/comp-scw-link/_icon-right-design-outlined-label-mixins.scss +2 -2
- package/dist/tokens/segments/comp-scw-link/_icon-right-design-outlined-label-vars.scss +1 -1
- package/dist/tokens/segments/comp-scw-link/_icon-right-design-outlined-mixins.scss +2 -2
- package/dist/tokens/segments/comp-scw-link/_icon-right-design-outlined-vars.scss +2 -2
- package/dist/tokens/segments/comp-scw-link/_icon-right-mixins.scss +10 -3
- package/dist/tokens/segments/comp-scw-link/_icon-right-vars.scss +4 -1
- package/dist/tokens/segments/comp-scw-link/_state-disabled-design-outlined-vars.scss +1 -1
- package/dist/tokens/segments/comp-scw-link/_state-disabled-design-text-label-mixins.scss +5 -5
- package/dist/tokens/segments/comp-scw-link/_state-disabled-design-text-label-vars.scss +6 -6
- package/dist/tokens/segments/comp-scw-link/_state-disabled-design-text-mixins.scss +10 -10
- package/dist/tokens/segments/comp-scw-link/_state-disabled-design-text-underline-mixins.scss +4 -4
- package/dist/tokens/segments/comp-scw-link/_state-disabled-design-text-underline-vars.scss +3 -3
- package/dist/tokens/segments/comp-scw-link/_state-disabled-design-text-vars.scss +6 -6
- package/dist/tokens/segments/comp-scw-link/_state-disabled-icon-left-design-outlined-vars.scss +1 -1
- package/dist/tokens/segments/comp-scw-link/_state-disabled-icon-left-mixins.scss +8 -1
- package/dist/tokens/segments/comp-scw-link/_state-disabled-icon-left-vars.scss +3 -0
- package/dist/tokens/segments/comp-scw-link/_state-disabled-icon-right-design-outlined-vars.scss +1 -1
- package/dist/tokens/segments/comp-scw-link/_state-disabled-icon-right-mixins.scss +8 -1
- package/dist/tokens/segments/comp-scw-link/_state-disabled-icon-right-vars.scss +3 -0
- package/dist/tokens/segments/comp-scw-link/_state-disabled-mixins.scss +8 -1
- package/dist/tokens/segments/comp-scw-link/_state-disabled-vars.scss +3 -0
- package/dist/tokens/segments/comp-scw-link/_state-focused-design-outlined-label-mixins.scss +2 -2
- package/dist/tokens/segments/comp-scw-link/_state-focused-design-outlined-label-vars.scss +1 -1
- package/dist/tokens/segments/comp-scw-link/_state-focused-design-outlined-mixins.scss +2 -2
- package/dist/tokens/segments/comp-scw-link/_state-focused-design-outlined-vars.scss +2 -2
- package/dist/tokens/segments/comp-scw-link/_state-focused-design-text-label-mixins.scss +5 -5
- package/dist/tokens/segments/comp-scw-link/_state-focused-design-text-label-vars.scss +6 -6
- package/dist/tokens/segments/comp-scw-link/_state-focused-design-text-mixins.scss +10 -10
- package/dist/tokens/segments/comp-scw-link/_state-focused-design-text-underline-mixins.scss +4 -4
- package/dist/tokens/segments/comp-scw-link/_state-focused-design-text-underline-vars.scss +3 -3
- package/dist/tokens/segments/comp-scw-link/_state-focused-design-text-vars.scss +6 -6
- package/dist/tokens/segments/comp-scw-link/_state-focused-icon-left-design-outlined-label-mixins.scss +2 -2
- package/dist/tokens/segments/comp-scw-link/_state-focused-icon-left-design-outlined-label-vars.scss +1 -1
- package/dist/tokens/segments/comp-scw-link/_state-focused-icon-left-design-outlined-mixins.scss +2 -2
- package/dist/tokens/segments/comp-scw-link/_state-focused-icon-left-design-outlined-vars.scss +2 -2
- package/dist/tokens/segments/comp-scw-link/_state-focused-icon-left-mixins.scss +9 -2
- package/dist/tokens/segments/comp-scw-link/_state-focused-icon-left-vars.scss +4 -1
- package/dist/tokens/segments/comp-scw-link/_state-focused-icon-right-design-outlined-label-mixins.scss +2 -2
- package/dist/tokens/segments/comp-scw-link/_state-focused-icon-right-design-outlined-label-vars.scss +1 -1
- package/dist/tokens/segments/comp-scw-link/_state-focused-icon-right-design-outlined-mixins.scss +2 -2
- package/dist/tokens/segments/comp-scw-link/_state-focused-icon-right-design-outlined-vars.scss +2 -2
- package/dist/tokens/segments/comp-scw-link/_state-focused-icon-right-mixins.scss +9 -2
- package/dist/tokens/segments/comp-scw-link/_state-focused-icon-right-vars.scss +4 -1
- package/dist/tokens/segments/comp-scw-link/_state-focused-mixins.scss +9 -2
- package/dist/tokens/segments/comp-scw-link/_state-focused-vars.scss +4 -1
- package/dist/tokens/segments/comp-scw-link/_state-hover-design-outlined-vars.scss +1 -1
- package/dist/tokens/segments/comp-scw-link/_state-hover-design-text-label-mixins.scss +5 -5
- package/dist/tokens/segments/comp-scw-link/_state-hover-design-text-label-vars.scss +6 -6
- package/dist/tokens/segments/comp-scw-link/_state-hover-design-text-mixins.scss +10 -10
- package/dist/tokens/segments/comp-scw-link/_state-hover-design-text-underline-mixins.scss +4 -4
- package/dist/tokens/segments/comp-scw-link/_state-hover-design-text-underline-vars.scss +3 -3
- package/dist/tokens/segments/comp-scw-link/_state-hover-design-text-vars.scss +6 -6
- package/dist/tokens/segments/comp-scw-link/_state-hover-icon-left-design-outlined-vars.scss +1 -1
- package/dist/tokens/segments/comp-scw-link/_state-hover-icon-left-mixins.scss +8 -1
- package/dist/tokens/segments/comp-scw-link/_state-hover-icon-left-vars.scss +3 -0
- package/dist/tokens/segments/comp-scw-link/_state-hover-icon-right-design-outlined-vars.scss +1 -1
- package/dist/tokens/segments/comp-scw-link/_state-hover-icon-right-mixins.scss +8 -1
- package/dist/tokens/segments/comp-scw-link/_state-hover-icon-right-vars.scss +3 -0
- package/dist/tokens/segments/comp-scw-link/_state-hover-mixins.scss +8 -1
- package/dist/tokens/segments/comp-scw-link/_state-hover-vars.scss +3 -0
- package/dist/tokens/segments/comp-scw-rich-text/_default-mixins.scss +2 -1
- package/dist/tokens/segments/comp-scw-rich-text/_default-vars.scss +1 -1
- package/dist/tokens/segments/comp-scw-rich-text/_size-bold-mixins.scss +2 -1
- package/dist/tokens/segments/comp-scw-rich-text/_size-bold-vars.scss +1 -1
- package/dist/tokens/segments/comp-scw-rich-text/_size-h2-mixins.scss +2 -1
- package/dist/tokens/segments/comp-scw-rich-text/_size-h2-vars.scss +1 -1
- package/dist/tokens/segments/comp-scw-rich-text/_size-h3-mixins.scss +2 -1
- package/dist/tokens/segments/comp-scw-rich-text/_size-h3-vars.scss +1 -1
- package/dist/tokens/segments/comp-scw-rich-text/_size-h4-mixins.scss +2 -1
- package/dist/tokens/segments/comp-scw-rich-text/_size-h4-vars.scss +1 -1
- package/dist/tokens/segments/comp-scw-rich-text/_size-h5-mixins.scss +2 -1
- package/dist/tokens/segments/comp-scw-rich-text/_size-h5-vars.scss +1 -1
- package/dist/tokens/segments/comp-scw-rich-text/_size-h6-mixins.scss +2 -1
- package/dist/tokens/segments/comp-scw-rich-text/_size-h6-vars.scss +1 -1
- package/dist/tokens/segments/comp-scw-rich-text/_size-link-mixins.scss +2 -1
- package/dist/tokens/segments/comp-scw-rich-text/_size-link-vars.scss +1 -1
- package/dist/tokens/segments/comp-scw-rich-text/_size-p-mixins.scss +2 -1
- package/dist/tokens/segments/comp-scw-rich-text/_size-p-vars.scss +1 -1
- package/dist/tokens/source/componentScssMixins/components-scw-heading-default-label-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-heading-default-label-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-heading-size-h2-label-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-heading-size-h2-label-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-heading-size-h2-state-focused-label-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-heading-size-h2-state-focused-label-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-heading-size-h2-state-hover-label-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-heading-size-h2-state-hover-label-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-heading-size-h2-state-hover-underline-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-heading-size-h2-state-hover-underline-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-heading-size-h3-label-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-heading-size-h3-label-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-heading-size-h3-state-focused-label-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-heading-size-h3-state-focused-label-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-heading-size-h3-state-hover-label-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-heading-size-h3-state-hover-label-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-heading-size-h3-state-hover-underline-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-heading-size-h3-state-hover-underline-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-heading-size-h4-label-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-heading-size-h4-label-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-heading-size-h4-state-focused-label-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-heading-size-h4-state-focused-label-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-heading-size-h4-state-hover-label-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-heading-size-h4-state-hover-label-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-heading-size-h4-state-hover-underline-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-heading-size-h4-state-hover-underline-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-heading-size-h5-label-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-heading-size-h5-label-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-heading-size-h5-state-focused-label-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-heading-size-h5-state-focused-label-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-heading-size-h5-state-hover-label-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-heading-size-h5-state-hover-label-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-heading-size-h5-state-hover-underline-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-heading-size-h5-state-hover-underline-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-heading-state-focused-label-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-heading-state-focused-label-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-heading-state-hover-label-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-heading-state-hover-label-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-heading-state-hover-underline-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-heading-state-hover-underline-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-link-default-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-link-default-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-link-design-outlined-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-link-design-outlined-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-link-design-outlined-label-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-link-design-outlined-label-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-link-design-text-.json +12 -12
- package/dist/tokens/source/componentScssMixins/components-scw-link-design-text-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-link-design-text-label-.json +8 -8
- package/dist/tokens/source/componentScssMixins/components-scw-link-design-text-label-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-link-design-text-underline-.json +8 -8
- package/dist/tokens/source/componentScssMixins/components-scw-link-design-text-underline-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-link-icon-left-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-link-icon-left-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-link-icon-left-design-outlined-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-link-icon-left-design-outlined-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-link-icon-left-design-outlined-label-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-link-icon-left-design-outlined-label-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-link-icon-right-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-link-icon-right-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-link-icon-right-design-outlined-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-link-icon-right-design-outlined-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-link-icon-right-design-outlined-label-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-link-icon-right-design-outlined-label-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-disabled-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-disabled-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-disabled-design-text-.json +12 -12
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-disabled-design-text-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-disabled-design-text-label-.json +8 -8
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-disabled-design-text-label-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-disabled-design-text-underline-.json +8 -8
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-disabled-design-text-underline-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-disabled-icon-left-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-disabled-icon-left-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-disabled-icon-right-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-disabled-icon-right-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-focused-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-focused-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-focused-design-outlined-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-focused-design-outlined-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-focused-design-outlined-label-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-focused-design-outlined-label-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-focused-design-text-.json +12 -12
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-focused-design-text-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-focused-design-text-label-.json +8 -8
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-focused-design-text-label-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-focused-design-text-underline-.json +8 -8
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-focused-design-text-underline-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-focused-icon-left-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-focused-icon-left-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-focused-icon-left-design-outlined-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-focused-icon-left-design-outlined-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-focused-icon-left-design-outlined-label-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-focused-icon-left-design-outlined-label-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-focused-icon-right-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-focused-icon-right-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-focused-icon-right-design-outlined-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-focused-icon-right-design-outlined-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-focused-icon-right-design-outlined-label-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-focused-icon-right-design-outlined-label-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-hover-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-hover-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-hover-design-text-.json +12 -12
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-hover-design-text-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-hover-design-text-label-.json +8 -8
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-hover-design-text-label-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-hover-design-text-underline-.json +8 -8
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-hover-design-text-underline-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-hover-icon-left-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-hover-icon-left-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-hover-icon-right-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-link-state-hover-icon-right-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-rich-text-default-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-rich-text-default-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-rich-text-size-bold-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-rich-text-size-bold-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-rich-text-size-h2-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-rich-text-size-h2-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-rich-text-size-h3-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-rich-text-size-h3-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-rich-text-size-h4-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-rich-text-size-h4-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-rich-text-size-h5-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-rich-text-size-h5-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-rich-text-size-h6-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-rich-text-size-h6-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-rich-text-size-link-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-rich-text-size-link-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins/components-scw-rich-text-size-p-.json +2 -2
- package/dist/tokens/source/componentScssMixins/components-scw-rich-text-size-p-.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins.json +218 -218
- package/dist/tokens/source/componentScssMixins.json.gz +0 -0
- package/dist/tokens/source/componentScssMixins.scss +263 -170
- package/dist/tokens/source/jsCss.js +1 -1
- package/dist/tokens/source/jsCss.js.gz +0 -0
- package/dist/tokens/source/jsCssGenerator.js +1 -1
- package/dist/tokens/source/jsCssGenerator.js.gz +0 -0
- package/dist/tokens/source/jsCssGeneratorSansAssets.js +1 -1
- package/dist/tokens/source/jsCssGeneratorSansAssets.js.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-heading-default-label-.json +2 -2
- package/dist/tokens/source/scssVariables/components-scw-heading-default-label-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-heading-size-h2-label-.json +2 -2
- package/dist/tokens/source/scssVariables/components-scw-heading-size-h2-label-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-heading-size-h2-state-focused-label-.json +2 -2
- package/dist/tokens/source/scssVariables/components-scw-heading-size-h2-state-focused-label-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-heading-size-h2-state-hover-label-.json +2 -2
- package/dist/tokens/source/scssVariables/components-scw-heading-size-h2-state-hover-label-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-heading-size-h2-state-hover-underline-.json +2 -2
- package/dist/tokens/source/scssVariables/components-scw-heading-size-h2-state-hover-underline-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-heading-size-h3-label-.json +2 -2
- package/dist/tokens/source/scssVariables/components-scw-heading-size-h3-label-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-heading-size-h3-state-focused-label-.json +2 -2
- package/dist/tokens/source/scssVariables/components-scw-heading-size-h3-state-focused-label-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-heading-size-h3-state-hover-label-.json +2 -2
- package/dist/tokens/source/scssVariables/components-scw-heading-size-h3-state-hover-label-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-heading-size-h3-state-hover-underline-.json +2 -2
- package/dist/tokens/source/scssVariables/components-scw-heading-size-h3-state-hover-underline-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-heading-size-h4-label-.json +2 -2
- package/dist/tokens/source/scssVariables/components-scw-heading-size-h4-label-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-heading-size-h4-state-focused-label-.json +2 -2
- package/dist/tokens/source/scssVariables/components-scw-heading-size-h4-state-focused-label-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-heading-size-h4-state-hover-label-.json +2 -2
- package/dist/tokens/source/scssVariables/components-scw-heading-size-h4-state-hover-label-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-heading-size-h4-state-hover-underline-.json +2 -2
- package/dist/tokens/source/scssVariables/components-scw-heading-size-h4-state-hover-underline-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-heading-size-h5-label-.json +2 -2
- package/dist/tokens/source/scssVariables/components-scw-heading-size-h5-label-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-heading-size-h5-state-focused-label-.json +2 -2
- package/dist/tokens/source/scssVariables/components-scw-heading-size-h5-state-focused-label-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-heading-size-h5-state-hover-label-.json +2 -2
- package/dist/tokens/source/scssVariables/components-scw-heading-size-h5-state-hover-label-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-heading-size-h5-state-hover-underline-.json +2 -2
- package/dist/tokens/source/scssVariables/components-scw-heading-size-h5-state-hover-underline-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-heading-state-focused-label-.json +2 -2
- package/dist/tokens/source/scssVariables/components-scw-heading-state-focused-label-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-heading-state-hover-label-.json +2 -2
- package/dist/tokens/source/scssVariables/components-scw-heading-state-hover-label-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-heading-state-hover-underline-.json +2 -2
- package/dist/tokens/source/scssVariables/components-scw-heading-state-hover-underline-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-link-default-.json +17 -2
- package/dist/tokens/source/scssVariables/components-scw-link-default-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-link-design-outlined-.json +4 -4
- package/dist/tokens/source/scssVariables/components-scw-link-design-outlined-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-link-design-outlined-label-.json +2 -2
- package/dist/tokens/source/scssVariables/components-scw-link-design-outlined-label-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-link-design-text-.json +12 -12
- package/dist/tokens/source/scssVariables/components-scw-link-design-text-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-link-design-text-label-.json +12 -12
- package/dist/tokens/source/scssVariables/components-scw-link-design-text-label-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-link-design-text-underline-.json +6 -6
- package/dist/tokens/source/scssVariables/components-scw-link-design-text-underline-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-link-icon-left-.json +17 -2
- package/dist/tokens/source/scssVariables/components-scw-link-icon-left-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-link-icon-left-design-outlined-.json +4 -4
- package/dist/tokens/source/scssVariables/components-scw-link-icon-left-design-outlined-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-link-icon-left-design-outlined-label-.json +2 -2
- package/dist/tokens/source/scssVariables/components-scw-link-icon-left-design-outlined-label-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-link-icon-right-.json +17 -2
- package/dist/tokens/source/scssVariables/components-scw-link-icon-right-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-link-icon-right-design-outlined-.json +4 -4
- package/dist/tokens/source/scssVariables/components-scw-link-icon-right-design-outlined-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-link-icon-right-design-outlined-label-.json +2 -2
- package/dist/tokens/source/scssVariables/components-scw-link-icon-right-design-outlined-label-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-link-state-disabled-.json +15 -0
- package/dist/tokens/source/scssVariables/components-scw-link-state-disabled-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-link-state-disabled-design-outlined-.json +2 -2
- package/dist/tokens/source/scssVariables/components-scw-link-state-disabled-design-outlined-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-link-state-disabled-design-text-.json +12 -12
- package/dist/tokens/source/scssVariables/components-scw-link-state-disabled-design-text-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-link-state-disabled-design-text-label-.json +12 -12
- package/dist/tokens/source/scssVariables/components-scw-link-state-disabled-design-text-label-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-link-state-disabled-design-text-underline-.json +6 -6
- package/dist/tokens/source/scssVariables/components-scw-link-state-disabled-design-text-underline-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-link-state-disabled-icon-left-.json +15 -0
- package/dist/tokens/source/scssVariables/components-scw-link-state-disabled-icon-left-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-link-state-disabled-icon-left-design-outlined-.json +2 -2
- package/dist/tokens/source/scssVariables/components-scw-link-state-disabled-icon-left-design-outlined-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-link-state-disabled-icon-right-.json +15 -0
- package/dist/tokens/source/scssVariables/components-scw-link-state-disabled-icon-right-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-link-state-disabled-icon-right-design-outlined-.json +2 -2
- package/dist/tokens/source/scssVariables/components-scw-link-state-disabled-icon-right-design-outlined-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-link-state-focused-.json +17 -2
- package/dist/tokens/source/scssVariables/components-scw-link-state-focused-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-link-state-focused-design-outlined-.json +4 -4
- package/dist/tokens/source/scssVariables/components-scw-link-state-focused-design-outlined-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-link-state-focused-design-outlined-label-.json +2 -2
- package/dist/tokens/source/scssVariables/components-scw-link-state-focused-design-outlined-label-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-link-state-focused-design-text-.json +12 -12
- package/dist/tokens/source/scssVariables/components-scw-link-state-focused-design-text-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-link-state-focused-design-text-label-.json +12 -12
- package/dist/tokens/source/scssVariables/components-scw-link-state-focused-design-text-label-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-link-state-focused-design-text-underline-.json +6 -6
- package/dist/tokens/source/scssVariables/components-scw-link-state-focused-design-text-underline-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-link-state-focused-icon-left-.json +17 -2
- package/dist/tokens/source/scssVariables/components-scw-link-state-focused-icon-left-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-link-state-focused-icon-left-design-outlined-.json +4 -4
- package/dist/tokens/source/scssVariables/components-scw-link-state-focused-icon-left-design-outlined-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-link-state-focused-icon-left-design-outlined-label-.json +2 -2
- package/dist/tokens/source/scssVariables/components-scw-link-state-focused-icon-left-design-outlined-label-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-link-state-focused-icon-right-.json +17 -2
- package/dist/tokens/source/scssVariables/components-scw-link-state-focused-icon-right-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-link-state-focused-icon-right-design-outlined-.json +4 -4
- package/dist/tokens/source/scssVariables/components-scw-link-state-focused-icon-right-design-outlined-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-link-state-focused-icon-right-design-outlined-label-.json +2 -2
- package/dist/tokens/source/scssVariables/components-scw-link-state-focused-icon-right-design-outlined-label-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-link-state-hover-.json +15 -0
- package/dist/tokens/source/scssVariables/components-scw-link-state-hover-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-link-state-hover-design-outlined-.json +2 -2
- package/dist/tokens/source/scssVariables/components-scw-link-state-hover-design-outlined-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-link-state-hover-design-text-.json +12 -12
- package/dist/tokens/source/scssVariables/components-scw-link-state-hover-design-text-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-link-state-hover-design-text-label-.json +12 -12
- package/dist/tokens/source/scssVariables/components-scw-link-state-hover-design-text-label-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-link-state-hover-design-text-underline-.json +6 -6
- package/dist/tokens/source/scssVariables/components-scw-link-state-hover-design-text-underline-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-link-state-hover-icon-left-.json +15 -0
- package/dist/tokens/source/scssVariables/components-scw-link-state-hover-icon-left-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-link-state-hover-icon-left-design-outlined-.json +2 -2
- package/dist/tokens/source/scssVariables/components-scw-link-state-hover-icon-left-design-outlined-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-link-state-hover-icon-right-.json +15 -0
- package/dist/tokens/source/scssVariables/components-scw-link-state-hover-icon-right-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-link-state-hover-icon-right-design-outlined-.json +2 -2
- package/dist/tokens/source/scssVariables/components-scw-link-state-hover-icon-right-design-outlined-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-rich-text-default-.json +2 -2
- package/dist/tokens/source/scssVariables/components-scw-rich-text-default-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-rich-text-size-bold-.json +2 -2
- package/dist/tokens/source/scssVariables/components-scw-rich-text-size-bold-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-rich-text-size-h2-.json +2 -2
- package/dist/tokens/source/scssVariables/components-scw-rich-text-size-h2-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-rich-text-size-h3-.json +2 -2
- package/dist/tokens/source/scssVariables/components-scw-rich-text-size-h3-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-rich-text-size-h4-.json +2 -2
- package/dist/tokens/source/scssVariables/components-scw-rich-text-size-h4-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-rich-text-size-h5-.json +2 -2
- package/dist/tokens/source/scssVariables/components-scw-rich-text-size-h5-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-rich-text-size-h6-.json +2 -2
- package/dist/tokens/source/scssVariables/components-scw-rich-text-size-h6-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-rich-text-size-link-.json +2 -2
- package/dist/tokens/source/scssVariables/components-scw-rich-text-size-link-.json.gz +0 -0
- package/dist/tokens/source/scssVariables/components-scw-rich-text-size-p-.json +2 -2
- package/dist/tokens/source/scssVariables/components-scw-rich-text-size-p-.json.gz +0 -0
- package/dist/tokens/source/scssVariables.json +418 -238
- package/dist/tokens/source/scssVariables.json.gz +0 -0
- package/dist/tokens/source/scssVariables.scss +155 -119
- package/dist/tokens/source/tokens.json +323 -167
- package/dist/tokens/source/tokens.json.gz +0 -0
- package/dist/utils/suffix.js +1 -1
- package/dist/utils/suffix.js.gz +0 -0
- package/dist-node/scw-alert/ScwAlert.js +1 -1
- package/dist-node/scw-alert/scw-alert.js +1 -1
- package/dist-node/scw-button/ScwButton.js +15 -8
- package/dist-node/scw-button/scw-button.js +15 -8
- package/dist-node/scw-components.js +64 -51
- package/dist-node/scw-heading/ScwHeading.js +5 -5
- package/dist-node/scw-heading/scw-heading.js +5 -5
- package/dist-node/scw-link/ScwLink.js +15 -8
- package/dist-node/scw-link/scw-link.js +15 -8
- package/dist-node/scw-menu-item/ScwMenuItem.js +22 -15
- package/dist-node/scw-menu-item/scw-menu-item.js +19 -12
- package/dist-node/scw-rich-text/ScwRichText.js +12 -6
- package/dist-node/scw-rich-text/scw-rich-text.js +12 -6
- package/dist-node/scw-rich-text/utils/documentToHtml.js +7 -1
- package/dist-node/scw.js +91 -78
- package/package.json +1 -1
- package/dist/chunks/chunk.2P5MWG5O.js.gz +0 -0
- package/dist/chunks/chunk.3CA4TPD6.js.gz +0 -0
- package/dist/chunks/chunk.4H5VMPGV.js.gz +0 -0
- package/dist/chunks/chunk.4O3MKSMB.js.gz +0 -0
- package/dist/chunks/chunk.55BHU6MQ.js +0 -1
- package/dist/chunks/chunk.55BHU6MQ.js.gz +0 -0
- package/dist/chunks/chunk.5GCUWSNW.js +0 -1
- package/dist/chunks/chunk.5GCUWSNW.js.gz +0 -0
- package/dist/chunks/chunk.AOESFQWW.js +0 -1
- package/dist/chunks/chunk.AOESFQWW.js.gz +0 -0
- package/dist/chunks/chunk.APDMSNWD.js +0 -1
- package/dist/chunks/chunk.APDMSNWD.js.gz +0 -0
- package/dist/chunks/chunk.C44WKHK7.js +0 -1
- package/dist/chunks/chunk.C44WKHK7.js.gz +0 -0
- package/dist/chunks/chunk.HIUXEWUH.js +0 -1
- package/dist/chunks/chunk.HIUXEWUH.js.gz +0 -0
- package/dist/chunks/chunk.L3CHE6IC.js +0 -1
- package/dist/chunks/chunk.L3CHE6IC.js.gz +0 -0
- package/dist/chunks/chunk.MJTS2UXU.js.gz +0 -0
- package/dist/chunks/chunk.QWIFYGTA.js.gz +0 -0
- package/dist/chunks/chunk.THHB3DFF.js +0 -1
- package/dist/chunks/chunk.THHB3DFF.js.gz +0 -0
- package/dist/chunks/chunk.VBLZXH3I.js.gz +0 -0
- package/dist/chunks/chunk.YVNWS5NW.js +0 -1
- package/dist/chunks/chunk.YVNWS5NW.js.gz +0 -0
- package/dist/chunks/chunk.Z73LGC4J.js.gz +0 -0
- package/dist-node/@types/generated/contentful.d.js.map +0 -7
- package/dist-node/global.d.js.map +0 -7
- package/dist-node/scw-alert/ScwAlert.js.map +0 -7
- package/dist-node/scw-alert/scw-alert.js.map +0 -7
- package/dist-node/scw-button/ScwButton.js.map +0 -7
- package/dist-node/scw-button/scw-button.js.map +0 -7
- package/dist-node/scw-card/ScwCard.js.map +0 -7
- package/dist-node/scw-card/scw-card-enums.js.map +0 -7
- package/dist-node/scw-card/scw-card-light-dom.js.map +0 -7
- package/dist-node/scw-card/scw-card.js.map +0 -7
- package/dist-node/scw-card/tests/imageExample.js.map +0 -7
- package/dist-node/scw-center-component/ScwCenterComponent.js.map +0 -7
- package/dist-node/scw-center-component/scw-center-component.js.map +0 -7
- package/dist-node/scw-component/ScwComponent.js.map +0 -7
- package/dist-node/scw-component/scw-component-interface.js.map +0 -7
- package/dist-node/scw-component/scw-component.js.map +0 -7
- package/dist-node/scw-components.js.map +0 -7
- package/dist-node/scw-element-component/scw-element-component.js.map +0 -7
- package/dist-node/scw-flex-h-component/scw-flex-h-component.js.map +0 -7
- package/dist-node/scw-flex-v-component/scw-flex-v-component.js.map +0 -7
- package/dist-node/scw-float-component/scw-float-component.js.map +0 -7
- package/dist-node/scw-form/scw-form.js.map +0 -7
- package/dist-node/scw-form-component/scw-form-component.js.map +0 -7
- package/dist-node/scw-heading/ScwHeading.js.map +0 -7
- package/dist-node/scw-heading/parseLightDomHeading.js.map +0 -7
- package/dist-node/scw-heading/scw-heading-enums.js.map +0 -7
- package/dist-node/scw-heading/scw-heading.js.map +0 -7
- package/dist-node/scw-icon/ScwIcon.js.map +0 -7
- package/dist-node/scw-icon/scw-icon-enums.js.map +0 -7
- package/dist-node/scw-icon/scw-icon.js.map +0 -7
- package/dist-node/scw-icon/tests/checkIconADA.js.map +0 -7
- package/dist-node/scw-image/ScwImage.js.map +0 -7
- package/dist-node/scw-image/scw-image-src-parser.js.map +0 -7
- package/dist-node/scw-image/scw-image-validate.js.map +0 -7
- package/dist-node/scw-image/scw-image.js.map +0 -7
- package/dist-node/scw-image/tests/imageExamples.js.map +0 -7
- package/dist-node/scw-input/scw-input.js.map +0 -7
- package/dist-node/scw-input-field/autoformatters/autoFormat.js.map +0 -7
- package/dist-node/scw-input-field/autoformatters/currencyFormatter.js.map +0 -7
- package/dist-node/scw-input-field/autoformatters/dateAutoFormatter.js.map +0 -7
- package/dist-node/scw-input-field/autoformatters/numberFormatter.js.map +0 -7
- package/dist-node/scw-input-field/autoformatters/phoneNumberAutoFormatter.js.map +0 -7
- package/dist-node/scw-input-field/inputTypes.js.map +0 -7
- package/dist-node/scw-input-field/scw-input-field.js.map +0 -7
- package/dist-node/scw-input-layout/scw-input-layout.js.map +0 -7
- package/dist-node/scw-layout-component/scw-layout-component.js.map +0 -7
- package/dist-node/scw-link/ScwLink.js.map +0 -7
- package/dist-node/scw-link/scw-link-enums.js.map +0 -7
- package/dist-node/scw-link/scw-link.js.map +0 -7
- package/dist-node/scw-link-base/ScwLinkBase.js.map +0 -7
- package/dist-node/scw-link-base/parseLightDomAnchor.js.map +0 -7
- package/dist-node/scw-link-base/scw-link-base.js.map +0 -7
- package/dist-node/scw-menu/ScwMenu.js.map +0 -7
- package/dist-node/scw-menu/keyboard/keyboardElements.js.map +0 -7
- package/dist-node/scw-menu/keyboard/scw-menu-keyboard.js.map +0 -7
- package/dist-node/scw-menu/scw-menu-enums.js.map +0 -7
- package/dist-node/scw-menu/scw-menu-validate.js.map +0 -7
- package/dist-node/scw-menu/scw-menu.js.map +0 -7
- package/dist-node/scw-menu-item/ScwMenuItem.js.map +0 -7
- package/dist-node/scw-menu-item/scw-menu-item-enums.js.map +0 -7
- package/dist-node/scw-menu-item/scw-menu-item.js.map +0 -7
- package/dist-node/scw-page-alert/scw-page-alert.js.map +0 -7
- package/dist-node/scw-pane-component/scw-pane-component.js.map +0 -7
- package/dist-node/scw-rich-text/ScwRichText.js.map +0 -7
- package/dist-node/scw-rich-text/scw-rich-text.js.map +0 -7
- package/dist-node/scw-rich-text/utils/documentToHtml.js.map +0 -7
- package/dist-node/scw-select/scw-select.js.map +0 -7
- package/dist-node/scw-single-input/scw-single-input.js.map +0 -7
- package/dist-node/scw-single-input-layout/scw-single-input-layout.js.map +0 -7
- package/dist-node/scw-stack-component/scw-stack-component.js.map +0 -7
- package/dist-node/scw-stepper/ScwStepper.js.map +0 -7
- package/dist-node/scw-stepper/scw-stepper.js.map +0 -7
- package/dist-node/scw-test/ScwTest.js.map +0 -7
- package/dist-node/scw-test/scw-test.js.map +0 -7
- package/dist-node/scw-textarea/scw-textarea.js.map +0 -7
- package/dist-node/scw-validate/rules/alphanumeric.js.map +0 -7
- package/dist-node/scw-validate/rules/currency.js.map +0 -7
- package/dist-node/scw-validate/rules/date.js.map +0 -7
- package/dist-node/scw-validate/rules/email.js.map +0 -7
- package/dist-node/scw-validate/rules/number.js.map +0 -7
- package/dist-node/scw-validate/rules/required.js.map +0 -7
- package/dist-node/scw-validate/rules/telephone.js.map +0 -7
- package/dist-node/scw-validate/rules/url.js.map +0 -7
- package/dist-node/scw-validate/rules/utils.js.map +0 -7
- package/dist-node/scw-validate/scw-validate.js.map +0 -7
- package/dist-node/scw-validate/validationTypes.js.map +0 -7
- package/dist-node/scw-validation/scw-validation.js.map +0 -7
- package/dist-node/scw.js.map +0 -7
- package/dist-node/utils/enums/Components.js.map +0 -7
- package/dist-node/utils/events/event.js.map +0 -7
- package/dist-node/utils/findJsCss.js.map +0 -7
- package/dist-node/utils/formEnums.js.map +0 -7
- package/dist-node/utils/getComputedStyleValue.js.map +0 -7
- package/dist-node/utils/getIconSvg.js.map +0 -7
- package/dist-node/utils/lightCss.js.map +0 -7
- package/dist-node/utils/lightDomMutationObserver.js.map +0 -7
- package/dist-node/utils/observers/intersectionObserverSingleton.js.map +0 -7
- package/dist-node/utils/observers/mutationObserverSingleton.js.map +0 -7
- package/dist-node/utils/observers/resizeObserverSingleton.js.map +0 -7
- package/dist-node/utils/responsive/breakpoints.js.map +0 -7
- package/dist-node/utils/submitForm.js.map +0 -7
- package/dist-node/utils/suffix.js.map +0 -7
- package/dist-node/utils/testing/colorContrast.js.map +0 -7
- package/dist-node/utils/testing/expectLink.js.map +0 -7
- package/dist-node/utils/testing/getActiveElement.js.map +0 -7
- package/dist-node/utils/testing/ssrTesting.js.map +0 -7
- package/dist-node/utils/testing/testButtonADA.js.map +0 -7
- package/dist-node/utils/themes/enums.js.map +0 -7
- package/dist-node/utils/uuid.js.map +0 -7
- package/dist-node/utils/watch.js.map +0 -7
- /package/dist/chunks/{chunk.V4LKG7M5.js → chunk.IQ74DK67.js} +0 -0
- /package/dist/chunks/{chunk.V4LKG7M5.js.gz → chunk.IQ74DK67.js.gz} +0 -0
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/scw-link-base/ScwLinkBase.ts", "../../src/scw-component/ScwComponent.ts", "../../src/scw-component/scss/scw-component.scss", "../../src/utils/lightDomMutationObserver.ts", "../../src/scw-link-base/scss/scw-link-base.scss"],
|
|
4
|
-
"sourcesContent": ["import {html} from 'lit';\nimport {property, query} from 'lit/decorators.js';\nimport {ifDefined} from 'lit/directives/if-defined.js';\nimport ScwComponent from '../scw-component/ScwComponent';\nimport {Components} from '../utils/enums/Components';\nimport styles from './scss/scw-link-base.scss';\n\n/**\n * ScwLinkBase\n * @class\n * @tag scw-link-base\n *\n * @slot [default=\"<a href target />\"]\n (OPTIONAL) anchor (for SEO) will determine the label, href, and target.\n * @slot [default=\"<... />\"]\n (OPTIONAL) random content (paired with design=\"plain\") will wrap that\n content with a link.\n */\nexport default class ScwLinkBase extends ScwComponent {/**\n * styles\n */\n static get styles() {\n return [\n super.styles,\n styles,\n ];\n }\n\n // ============== ScwLinkBase =======================================\n /**\n * (ScwLinkBase)\n */\n @property({type: String, reflect: true})\n href : string | undefined;\n\n /**\n * (ScwLinkBase)\n */\n @property({type: String, reflect: true})\n target : '_blank' | '_parent' | '_self' | '_top' | undefined;\n\n @query('a.scw-link-base')\n linkAnchor: HTMLAnchorElement | undefined;\n\n /**\n * Constructor\n */\n constructor() {\n super();\n this.element = Components.linkBase;\n this.isLink = true;\n }\n\n /**\n * request update\n */\n updated() {\n if (this.ariaDisabled === 'true') {\n this.addEventListener('click', this.cancelEvent, {capture: true} );\n } else {\n this.removeEventListener('click', this.cancelEvent, {capture: true} );\n }\n }\n\n /**\n * cancel event\n * @param {Event} evt\n */\n cancelEvent(evt: Event) {\n evt.preventDefault();\n evt.stopImmediatePropagation();\n }\n\n /**\n * focus\n */\n focus(): void {\n if (this.linkAnchor) {\n this.linkAnchor.focus();\n }\n }\n\n /**\n * renderLink\n * @param {object} children\n * @param {string} styles\n * @return {object} component DOM\n */\n renderLink(children: object, styles?: string): object {\n if (this.ariaDisabled !== 'true') {\n return html`\n <a\n class=\"scw-link-base\"\n style=\"${ifDefined(styles)}\"\n href=\"${this.href ? this.href : 'javascript:'}\"\n target=\"${this.target ? this.target : '_self'}\"\n aria-label=\"${this.ariaLabel}\">\n ${children}\n </a>`;\n } else {\n // need a consistent container for styling\n return html`\n <div class=\"scw-link-base\"\n style=\"${ifDefined(styles)}\">\n ${children}\n </div>`;\n }\n }\n\n /**\n * render\n * @return {object} component DOM\n */\n render(): object {\n return this.renderLink(\n html`${this._lastWarning ? this._lastWarning : this.ariaLabel}`,\n );\n }\n}\n", "import {LitElement, html} from 'lit';\nimport {property, state} from 'lit/decorators.js';\nimport {Components} from '../utils/enums/Components';\nimport styles from './scss/scw-component.scss';\nimport ScwComponentInterface from './scw-component-interface';\nimport LightDomMutationObserver from '../utils/lightDomMutationObserver';\n\n/**\n * ScwComponent\n * @class\n * @tag scw-component\n *\n */\nexport default class ScwComponent\n extends LitElement\n implements ScwComponentInterface {\n static styles = styles;\n\n /**\n * (ScwComponent) Main text within component\n * @type {string}\n */\n @property({type: String, reflect: true, attribute: 'aria-label'})\n ariaLabel = '';\n\n /**\n * (ScwComponent) Disables the component however it disables\n * @type {string}\n */\n @property({type: String, attribute: 'aria-disabled'})\n ariaDisabled = 'false';\n\n /**\n * (ScwLinkBase)\n * Some lookups need to know if something is a link or not...\n */\n @property({type: Boolean, reflect: true, attribute: 'is-link'})\n isLink : boolean = false;\n\n /** disconnectedCallback */\n disconnectedCallback(): void {\n super.disconnectedCallback();\n if (this._lightDomMutationObserver) {\n this._lightDomMutationObserver.disconnect();\n }\n }\n\n // ====== DYNAMIC LIGHT DOM (SLOTS) ==========================================\n /**\n * (ScwComponent) Light Dom Mutation Observer\n */\n _lightDomMutationObserver? : LightDomMutationObserver;\n\n /**\n * (ScwComponent) Determines whether to watch for changes\n * in children. (not all components use light DOM)\n * @type {boolean}\n */\n @property({type: Boolean}) dynamic = false;\n\n /**\n * get defaults after initialization...light dom trumps attributes\n * @param {Map<string | number | symbol, unknown>} changedProps\n */\n firstUpdated(changedProps : Map<string | number | symbol, unknown>) {\n super.firstUpdated(changedProps);\n if (this.dynamic) {\n this._lightDomMutationObserver = new LightDomMutationObserver(\n this, () => {\n this.domMutated();\n },\n );\n }\n }\n\n /**\n * parseLightDom is a hook for classes extending this one to add\n * other parsers and validations\n */\n domMutated() {}\n // ====== END DYNAMIC ========================================================\n\n /**\n * (ScwComponent) contains the root element name for each component\n * (enum Components)\n * @type {string}\n */\n // lint-i\n @property({type: String, reflect: true}) // Components\n element: Components = Components.component;\n\n /**\n * handles warnings...things wrong with formatting, ADA, etc...\n * @param {string} message describing warning\n */\n warn( message: string ) {\n if (!this._lastWarning) {\n this._lastWarning = message;\n this.setAttribute('warning', message);\n this.setAttribute('title', `[ERROR]: ${message}`);\n }\n // con sole.error(`warning (${this.element}): ${message}`);\n }\n\n /**\n * clearWarnings\n */\n clearWarnings() {\n this._lastWarning = undefined;\n this.removeAttribute('warning');\n this.removeAttribute('title');\n }\n\n /**\n * retain the last warning sent...good for testing.\n */\n @state() _lastWarning : string | undefined;\n\n /**\n * render\n * @return {object} component DOM\n */\n render(): object {\n return html`\n <slot></slot>\n `;\n }\n}\n", "import {css} from \"lit-element/lit-element.js\";\nexport default css`\n:host {\n /* scw element */\n position: relative;\n box-sizing: border-box;\n --margin-right: initial;\n --margin-bottom: initial;\n --gap-h-int: initial;\n --gap-v-int: initial;\n margin-right: var(--margin-right, var(--gap-h-int, initial));\n margin-bottom: var(--margin-bottom, var(--gap-v-int, initial));\n display: block;\n}\n\n:host([warning]) {\n outline: 2px solid red !important;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL1VzZXJzL3Njb3R0cm91c2UvV29ya3NwYWNlL3NjdS13ZWItY29tcG9uZW50cy13ZWJzaXRlcy9zY3Utd2ViLWNvbXBvbmVudHMtd2Vic2l0ZXMvc3JjL3Njdy1jb21wb25lbnQvc2NzcyIsInNvdXJjZXMiOlsic2N3LWNvbXBvbmVudC5zY3NzIiwiLi4vLi4vLi4vZGlzdC90b2tlbnMvc291cmNlL2Nzc0FwaS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBO0FDMm90QkU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7OztBRGpwdEJGO0VBQ0UifQ== */`;\n", "import {LitElement} from 'lit';\n\n/**\n * Class to manage changes to the light dom\n */\nexport default class LightDomMutationObserver {\n /**\n * the mutation observer used\n */\n _mutationObserver : MutationObserver | undefined;\n\n /**\n * LitElement to watch...no children here..\n */\n _element : LitElement;\n\n /**\n * callback for change event\n */\n _callback : () => void | undefined;\n\n /**\n * constructor\n * @param {string} element LitElement to observe\n * @param {function} callback\n */\n constructor( element: LitElement, callback : () => void ) {\n this._element = element;\n this._callback = callback;\n this.observe();\n }\n\n /**\n * Connect LitElement to mutation observer (sans attributes)\n */\n observe() {\n this.disconnect();\n if (this._element) {\n const observerOptions = {\n characterData: true,\n childList: true,\n attributes: false, // properties takes care of this...\n subtree: true,\n };\n this._mutationObserver = new MutationObserver(\n () => this._callback(), // this._element.requestUpdate(),\n );\n this._mutationObserver.observe(this._element, observerOptions);\n }\n }\n\n /**\n * disconnect mutation observer\n */\n disconnect() {\n if (!this._mutationObserver) {\n return;\n }\n this._mutationObserver.disconnect();\n }\n}\n", "import {css} from \"lit-element/lit-element.js\";\nexport default css`\n.scw-link-base {\n display: block;\n text-decoration: none;\n}\n.scw-link-base:focus-visible {\n outline: none;\n box-shadow: var(--scw-effect-focus-shadow);\n border-radius: 4px;\n}\n.scw-link-base:focus:not(:focus-visible) {\n outline: none;\n box-shadow: none;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL1VzZXJzL3Njb3R0cm91c2UvV29ya3NwYWNlL3NjdS13ZWItY29tcG9uZW50cy13ZWJzaXRlcy9zY3Utd2ViLWNvbXBvbmVudHMtd2Vic2l0ZXMvc3JjL3Njdy1saW5rLWJhc2Uvc2NzcyIsInNvdXJjZXMiOlsic2N3LWxpbmstYmFzZS5zY3NzIiwiLi4vLi4vLi4vZGlzdC90b2tlbnMvc291cmNlL2Nzc0FwaS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBO0VBQ0U7RUFDQTs7QUFFQTtFQUNFO0VDazRiRjtFRDkzYkU7O0FBR0Y7RUFDRTtFQUNBIn0= */`;\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["html", "property", "query", "ifDefined", "LitElement", "html", "property", "state", "css", "scw_component_default", "LightDomMutationObserver", "element", "callback", "observerOptions", "ScwComponent", "LitElement", "changedProps", "LightDomMutationObserver", "message", "html", "scw_component_default", "__decorateClass", "property", "state", "css", "scw_link_base_default", "ScwLinkBase", "ScwComponent", "scw_link_base_default", "evt", "children", "styles", "html", "ifDefined", "__decorateClass", "property", "query"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/scw-link-base/parseLightDomAnchor.ts"],
|
|
4
|
-
"sourcesContent": ["import ScwLinkBase from './ScwLinkBase';\n\n/**\n * Parses light dom into variables to be used for rendering\n * @param {ScwLink} element\n */\nexport default function parseLightDomAnchor( element: ScwLinkBase) {\n if (element.children.length === 0) return;\n\n const anchor = element.querySelector('a');// could be any child\n if (!anchor) return;\n\n // element.link = true;// we know it's a link\n const href = anchor.getAttribute('href');\n element.href = href ? href : undefined;\n\n const target =\n anchor.getAttribute('target') as unknown as '_blank' |\n '_parent' | '_self' | '_top';\n\n if (target) {\n element.target = target;\n }\n\n const textContent = anchor.textContent;\n element.ariaLabel = textContent ? textContent : '';\n}\n"],
|
|
5
|
-
"mappings": "AAMe,SAARA,EAAsCC,EAAsB,CACjE,GAAIA,EAAQ,SAAS,SAAW,EAAG,OAEnC,IAAMC,EAASD,EAAQ,cAAc,GAAG,EACxC,GAAI,CAACC,EAAQ,OAGb,IAAMC,EAAOD,EAAO,aAAa,MAAM,EACvCD,EAAQ,KAAOE,GAAc,OAE7B,IAAMC,EACJF,EAAO,aAAa,QAAQ,EAG1BE,IACFH,EAAQ,OAASG,GAGnB,IAAMC,EAAcH,EAAO,YAC3BD,EAAQ,UAAYI,GAA4B,EAClD",
|
|
6
|
-
"names": ["parseLightDomAnchor", "element", "anchor", "href", "target", "textContent"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/scw-link-base/ScwLinkBase.ts", "../../src/scw-component/ScwComponent.ts", "../../src/scw-component/scss/scw-component.scss", "../../src/utils/lightDomMutationObserver.ts", "../../src/scw-link-base/scss/scw-link-base.scss", "../../src/scw-link-base/scw-link-base.ts"],
|
|
4
|
-
"sourcesContent": ["import {html} from 'lit';\nimport {property, query} from 'lit/decorators.js';\nimport {ifDefined} from 'lit/directives/if-defined.js';\nimport ScwComponent from '../scw-component/ScwComponent';\nimport {Components} from '../utils/enums/Components';\nimport styles from './scss/scw-link-base.scss';\n\n/**\n * ScwLinkBase\n * @class\n * @tag scw-link-base\n *\n * @slot [default=\"<a href target />\"]\n (OPTIONAL) anchor (for SEO) will determine the label, href, and target.\n * @slot [default=\"<... />\"]\n (OPTIONAL) random content (paired with design=\"plain\") will wrap that\n content with a link.\n */\nexport default class ScwLinkBase extends ScwComponent {/**\n * styles\n */\n static get styles() {\n return [\n super.styles,\n styles,\n ];\n }\n\n // ============== ScwLinkBase =======================================\n /**\n * (ScwLinkBase)\n */\n @property({type: String, reflect: true})\n href : string | undefined;\n\n /**\n * (ScwLinkBase)\n */\n @property({type: String, reflect: true})\n target : '_blank' | '_parent' | '_self' | '_top' | undefined;\n\n @query('a.scw-link-base')\n linkAnchor: HTMLAnchorElement | undefined;\n\n /**\n * Constructor\n */\n constructor() {\n super();\n this.element = Components.linkBase;\n this.isLink = true;\n }\n\n /**\n * request update\n */\n updated() {\n if (this.ariaDisabled === 'true') {\n this.addEventListener('click', this.cancelEvent, {capture: true} );\n } else {\n this.removeEventListener('click', this.cancelEvent, {capture: true} );\n }\n }\n\n /**\n * cancel event\n * @param {Event} evt\n */\n cancelEvent(evt: Event) {\n evt.preventDefault();\n evt.stopImmediatePropagation();\n }\n\n /**\n * focus\n */\n focus(): void {\n if (this.linkAnchor) {\n this.linkAnchor.focus();\n }\n }\n\n /**\n * renderLink\n * @param {object} children\n * @param {string} styles\n * @return {object} component DOM\n */\n renderLink(children: object, styles?: string): object {\n if (this.ariaDisabled !== 'true') {\n return html`\n <a\n class=\"scw-link-base\"\n style=\"${ifDefined(styles)}\"\n href=\"${this.href ? this.href : 'javascript:'}\"\n target=\"${this.target ? this.target : '_self'}\"\n aria-label=\"${this.ariaLabel}\">\n ${children}\n </a>`;\n } else {\n // need a consistent container for styling\n return html`\n <div class=\"scw-link-base\"\n style=\"${ifDefined(styles)}\">\n ${children}\n </div>`;\n }\n }\n\n /**\n * render\n * @return {object} component DOM\n */\n render(): object {\n return this.renderLink(\n html`${this._lastWarning ? this._lastWarning : this.ariaLabel}`,\n );\n }\n}\n", "import {LitElement, html} from 'lit';\nimport {property, state} from 'lit/decorators.js';\nimport {Components} from '../utils/enums/Components';\nimport styles from './scss/scw-component.scss';\nimport ScwComponentInterface from './scw-component-interface';\nimport LightDomMutationObserver from '../utils/lightDomMutationObserver';\n\n/**\n * ScwComponent\n * @class\n * @tag scw-component\n *\n */\nexport default class ScwComponent\n extends LitElement\n implements ScwComponentInterface {\n static styles = styles;\n\n /**\n * (ScwComponent) Main text within component\n * @type {string}\n */\n @property({type: String, reflect: true, attribute: 'aria-label'})\n ariaLabel = '';\n\n /**\n * (ScwComponent) Disables the component however it disables\n * @type {string}\n */\n @property({type: String, attribute: 'aria-disabled'})\n ariaDisabled = 'false';\n\n /**\n * (ScwLinkBase)\n * Some lookups need to know if something is a link or not...\n */\n @property({type: Boolean, reflect: true, attribute: 'is-link'})\n isLink : boolean = false;\n\n /** disconnectedCallback */\n disconnectedCallback(): void {\n super.disconnectedCallback();\n if (this._lightDomMutationObserver) {\n this._lightDomMutationObserver.disconnect();\n }\n }\n\n // ====== DYNAMIC LIGHT DOM (SLOTS) ==========================================\n /**\n * (ScwComponent) Light Dom Mutation Observer\n */\n _lightDomMutationObserver? : LightDomMutationObserver;\n\n /**\n * (ScwComponent) Determines whether to watch for changes\n * in children. (not all components use light DOM)\n * @type {boolean}\n */\n @property({type: Boolean}) dynamic = false;\n\n /**\n * get defaults after initialization...light dom trumps attributes\n * @param {Map<string | number | symbol, unknown>} changedProps\n */\n firstUpdated(changedProps : Map<string | number | symbol, unknown>) {\n super.firstUpdated(changedProps);\n if (this.dynamic) {\n this._lightDomMutationObserver = new LightDomMutationObserver(\n this, () => {\n this.domMutated();\n },\n );\n }\n }\n\n /**\n * parseLightDom is a hook for classes extending this one to add\n * other parsers and validations\n */\n domMutated() {}\n // ====== END DYNAMIC ========================================================\n\n /**\n * (ScwComponent) contains the root element name for each component\n * (enum Components)\n * @type {string}\n */\n // lint-i\n @property({type: String, reflect: true}) // Components\n element: Components = Components.component;\n\n /**\n * handles warnings...things wrong with formatting, ADA, etc...\n * @param {string} message describing warning\n */\n warn( message: string ) {\n if (!this._lastWarning) {\n this._lastWarning = message;\n this.setAttribute('warning', message);\n this.setAttribute('title', `[ERROR]: ${message}`);\n }\n // con sole.error(`warning (${this.element}): ${message}`);\n }\n\n /**\n * clearWarnings\n */\n clearWarnings() {\n this._lastWarning = undefined;\n this.removeAttribute('warning');\n this.removeAttribute('title');\n }\n\n /**\n * retain the last warning sent...good for testing.\n */\n @state() _lastWarning : string | undefined;\n\n /**\n * render\n * @return {object} component DOM\n */\n render(): object {\n return html`\n <slot></slot>\n `;\n }\n}\n", "import {css} from \"lit-element/lit-element.js\";\nexport default css`\n:host {\n /* scw element */\n position: relative;\n box-sizing: border-box;\n --margin-right: initial;\n --margin-bottom: initial;\n --gap-h-int: initial;\n --gap-v-int: initial;\n margin-right: var(--margin-right, var(--gap-h-int, initial));\n margin-bottom: var(--margin-bottom, var(--gap-v-int, initial));\n display: block;\n}\n\n:host([warning]) {\n outline: 2px solid red !important;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL1VzZXJzL3Njb3R0cm91c2UvV29ya3NwYWNlL3NjdS13ZWItY29tcG9uZW50cy13ZWJzaXRlcy9zY3Utd2ViLWNvbXBvbmVudHMtd2Vic2l0ZXMvc3JjL3Njdy1jb21wb25lbnQvc2NzcyIsInNvdXJjZXMiOlsic2N3LWNvbXBvbmVudC5zY3NzIiwiLi4vLi4vLi4vZGlzdC90b2tlbnMvc291cmNlL2Nzc0FwaS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBO0FDMm90QkU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7OztBRGpwdEJGO0VBQ0UifQ== */`;\n", "import {LitElement} from 'lit';\n\n/**\n * Class to manage changes to the light dom\n */\nexport default class LightDomMutationObserver {\n /**\n * the mutation observer used\n */\n _mutationObserver : MutationObserver | undefined;\n\n /**\n * LitElement to watch...no children here..\n */\n _element : LitElement;\n\n /**\n * callback for change event\n */\n _callback : () => void | undefined;\n\n /**\n * constructor\n * @param {string} element LitElement to observe\n * @param {function} callback\n */\n constructor( element: LitElement, callback : () => void ) {\n this._element = element;\n this._callback = callback;\n this.observe();\n }\n\n /**\n * Connect LitElement to mutation observer (sans attributes)\n */\n observe() {\n this.disconnect();\n if (this._element) {\n const observerOptions = {\n characterData: true,\n childList: true,\n attributes: false, // properties takes care of this...\n subtree: true,\n };\n this._mutationObserver = new MutationObserver(\n () => this._callback(), // this._element.requestUpdate(),\n );\n this._mutationObserver.observe(this._element, observerOptions);\n }\n }\n\n /**\n * disconnect mutation observer\n */\n disconnect() {\n if (!this._mutationObserver) {\n return;\n }\n this._mutationObserver.disconnect();\n }\n}\n", "import {css} from \"lit-element/lit-element.js\";\nexport default css`\n.scw-link-base {\n display: block;\n text-decoration: none;\n}\n.scw-link-base:focus-visible {\n outline: none;\n box-shadow: var(--scw-effect-focus-shadow);\n border-radius: 4px;\n}\n.scw-link-base:focus:not(:focus-visible) {\n outline: none;\n box-shadow: none;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL1VzZXJzL3Njb3R0cm91c2UvV29ya3NwYWNlL3NjdS13ZWItY29tcG9uZW50cy13ZWJzaXRlcy9zY3Utd2ViLWNvbXBvbmVudHMtd2Vic2l0ZXMvc3JjL3Njdy1saW5rLWJhc2Uvc2NzcyIsInNvdXJjZXMiOlsic2N3LWxpbmstYmFzZS5zY3NzIiwiLi4vLi4vLi4vZGlzdC90b2tlbnMvc291cmNlL2Nzc0FwaS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBO0VBQ0U7RUFDQTs7QUFFQTtFQUNFO0VDazRiRjtFRDkzYkU7O0FBR0Y7RUFDRTtFQUNBIn0= */`;\n", "import ScwLinkBase from './ScwLinkBase';\ncustomElements.define('scw-link-base', ScwLinkBase );\n"],
|
|
5
|
-
"mappings": "wMAAA,OAAQ,QAAAA,MAAW,MACnB,OAAQ,YAAAC,EAAU,SAAAC,MAAY,oBAC9B,OAAQ,aAAAC,MAAgB,+BCFxB,OAAQ,cAAAC,EAAY,QAAAC,MAAW,MAC/B,OAAQ,YAAAC,EAAU,SAAAC,MAAY,oBCD9B,OAAQ,OAAAC,MAAU,6BAClB,IAAOC,EAAQD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ieCIf,IAAqBE,EAArB,KAA8C,CAqB5C,YAAaC,EAAqBC,EAAwB,CACxD,KAAK,SAAWD,EAChB,KAAK,UAAYC,EACjB,KAAK,QAAQ,CACf,CAKA,SAAU,CAER,GADA,KAAK,WAAW,EACZ,KAAK,SAAU,CACjB,IAAMC,EAAkB,CACtB,cAAe,GACf,UAAW,GACX,WAAY,GACZ,QAAS,EACX,EACA,KAAK,kBAAoB,IAAI,iBACzB,IAAM,KAAK,UAAU,CACzB,EACA,KAAK,kBAAkB,QAAQ,KAAK,SAAUA,CAAe,CAC/D,CACF,CAKA,YAAa,CACP,CAAC,KAAK,mBAGV,KAAK,kBAAkB,WAAW,CACpC,CACF,EF/CA,IAAqBC,EAArB,cACUC,CACyB,CAFnC,kCAUI,eAAY,GAOZ,kBAAe,QAOf,YAAmB,GAqBM,aAAU,GA+BnC,yBAjDF,sBAA6B,CAC3B,MAAM,qBAAqB,EACvB,KAAK,2BACP,KAAK,0BAA0B,WAAW,CAE9C,CAmBA,aAAaC,EAAuD,CAClE,MAAM,aAAaA,CAAY,EAC3B,KAAK,UACP,KAAK,0BAA4B,IAAIC,EACjC,KAAM,IAAM,CACV,KAAK,WAAW,CAClB,CACJ,EAEJ,CAMA,YAAa,CAAC,CAgBd,KAAMC,EAAkB,CACjB,KAAK,eACR,KAAK,aAAeA,EACpB,KAAK,aAAa,UAAWA,CAAO,EACpC,KAAK,aAAa,QAAS,YAAYA,GAAS,EAGpD,CAKA,eAAgB,CACd,KAAK,aAAe,OACpB,KAAK,gBAAgB,SAAS,EAC9B,KAAK,gBAAgB,OAAO,CAC9B,CAWA,QAAiB,CACf,OAAOC;AAAA;AAAA,KAGT,CACF,EAlHqBL,EAGZ,OAASM,EAOdC,EAAA,CADDC,EAAS,CAAC,KAAM,OAAQ,QAAS,GAAM,UAAW,YAAY,CAAC,GAT7CR,EAUjB,yBAOAO,EAAA,CADDC,EAAS,CAAC,KAAM,OAAQ,UAAW,eAAe,CAAC,GAhBjCR,EAiBjB,4BAOAO,EAAA,CADDC,EAAS,CAAC,KAAM,QAAS,QAAS,GAAM,UAAW,SAAS,CAAC,GAvB3CR,EAwBjB,sBAqByBO,EAAA,CAA1BC,EAAS,CAAC,KAAM,OAAO,CAAC,GA7CNR,EA6CQ,uBA+BzBO,EAAA,CADDC,EAAS,CAAC,KAAM,OAAQ,QAAS,EAAI,CAAC,GA3EpBR,EA4EjB,uBA2BOO,EAAA,CAARE,EAAM,GAvGYT,EAuGV,4BGpHX,OAAQ,OAAAU,MAAU,6BAClB,IAAOC,EAAQD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ycJiBf,IAAqBE,EAArB,cAAyCC,CAAa,CA6BpD,aAAc,CACZ,MAAM,EACN,KAAK,oBACL,KAAK,OAAS,EAChB,CA9BA,WAAW,QAAS,CAClB,MAAO,CACL,MAAM,OACNC,CACF,CACF,CA8BA,SAAU,CACJ,KAAK,eAAiB,OACxB,KAAK,iBAAiB,QAAS,KAAK,YAAa,CAAC,QAAS,EAAI,CAAE,EAEjE,KAAK,oBAAoB,QAAS,KAAK,YAAa,CAAC,QAAS,EAAI,CAAE,CAExE,CAMA,YAAYC,EAAY,CACtBA,EAAI,eAAe,EACnBA,EAAI,yBAAyB,CAC/B,CAKA,OAAc,CACR,KAAK,YACP,KAAK,WAAW,MAAM,CAE1B,CAQA,WAAWC,EAAkBC,EAAyB,CACpD,OAAI,KAAK,eAAiB,OACjBC;AAAA;AAAA;AAAA,mBAGMC,EAAUF,CAAM;AAAA,kBACjB,KAAK,KAAO,KAAK,KAAO;AAAA,oBACtB,KAAK,OAAS,KAAK,OAAS;AAAA,wBACxB,KAAK;AAAA,YACjBD;AAAA,cAICE;AAAA;AAAA,mBAEMC,EAAUF,CAAM;AAAA,YACvBD;AAAA,eAGV,CAMA,QAAiB,CACf,OAAO,KAAK,WACRE,IAAO,KAAK,aAAe,KAAK,aAAe,KAAK,WACxD,CACF,CACF,EArFIE,EAAA,CADDC,EAAS,CAAC,KAAM,OAAQ,QAAS,EAAI,CAAC,GAdpBT,EAejB,oBAMAQ,EAAA,CADDC,EAAS,CAAC,KAAM,OAAQ,QAAS,EAAI,CAAC,GApBpBT,EAqBjB,sBAGAQ,EAAA,CADDE,EAAM,iBAAiB,GAvBLV,EAwBjB,0BKzCJ,eAAe,OAAO,gBAAiBW,CAAY",
|
|
6
|
-
"names": ["html", "property", "query", "ifDefined", "LitElement", "html", "property", "state", "css", "scw_component_default", "LightDomMutationObserver", "element", "callback", "observerOptions", "ScwComponent", "LitElement", "changedProps", "LightDomMutationObserver", "message", "html", "scw_component_default", "__decorateClass", "property", "state", "css", "scw_link_base_default", "ScwLinkBase", "ScwComponent", "scw_link_base_default", "evt", "children", "styles", "html", "ifDefined", "__decorateClass", "property", "query", "ScwLinkBase"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/scw-menu/ScwMenu.ts", "../../src/scw-component/ScwComponent.ts", "../../src/scw-component/scss/scw-component.scss", "../../src/utils/lightDomMutationObserver.ts", "../../src/scw-menu/scss/scw-menu.scss", "../../src/utils/events/event.ts", "../../src/scw-menu/keyboard/keyboardElements.ts", "../../src/scw-menu/keyboard/scw-menu-keyboard.ts"],
|
|
4
|
-
"sourcesContent": ["import {html} from 'lit';\nimport {property} from 'lit/decorators.js';\nimport ScwComponent from '../scw-component/ScwComponent';\nimport styles from './scss/scw-menu.scss';\nimport ScwMenuKeyboard from './keyboard/scw-menu-keyboard';\nimport ScwMenuItem from '../scw-menu-item/ScwMenuItem';\nimport {ScwMenuDirections} from './scw-menu-enums';\nimport {Components} from '../utils/enums/Components';\n\n/**\n * ScwMenu\n * @class\n * @tag scw-menu\n *\n * @slot [default=\"<scw-menu-item />...\"]\n List of scw-menu-items\n */\nexport default class ScwMenu extends ScwComponent {\n /**\n * styles\n */\n static get styles() {\n return [\n super.styles,\n styles,\n ];\n }\n\n // ============== ScwMenu ================================================\n /**\n * (<ScwMenu>) Turns menu visible and invisible (ADA friendly)\n * @type {string}\n */\n @property({type: String, attribute: 'aria-hidden'})\n ariaHidden = 'false';\n\n /**\n * (<ScwMenu>) determines some arrow key differences\n * (either, horizontal, vertical)\n * @type {ScwMenuDirections}\n */\n @property({type: String, attribute: 'keyboard-direction'})\n keyboardDirection: ScwMenuDirections = ScwMenuDirections.either;\n\n /** Manages all keyboard events */\n _keyboardManager : ScwMenuKeyboard | undefined;\n\n /** keeps track of the menu item controling this menu */\n _menuItem : ScwMenuItem | undefined;\n\n /**\n * Constructor\n */\n constructor() {\n super();\n this.element = Components.menu;\n // this.setAttribute('role', 'menu' );\n this.setAttribute('tabindex', '0');\n this.setAttribute('scw-flex-h-initial', '');// defaults to flex-h\n // DOES NOT WORK IN SSR...no window stuff\n // this._keyboardManager = new ScwMenuKeyboard(this);\n }\n\n /**\n * get defaults after initialization...light dom trumps attributes\n * @param {Map<string | number | symbol, unknown>} changedProps\n */\n firstUpdated(changedProps: Map<string | number | symbol, unknown>): void {\n super.firstUpdated(changedProps);\n this._keyboardManager = new ScwMenuKeyboard(this);\n }\n\n /** connectedCallback */\n connectedCallback(): void {\n super.connectedCallback();\n // menu will always come directly after it's scw-menu-item\n this._menuItem = this.findMenuItem();\n if (this._menuItem) {\n this._menuItem.setAttribute('aria-expanded', 'false');\n }\n this.setAttribute('role', this.isSubMenu() ? 'menu' : 'menubar');\n }\n\n /**\n * determines if this menu item has a sub menu\n * @return {ScwMenuItem | undefined}\n */\n findMenuItem() {\n const prev = this.previousElementSibling;\n // if (prev && prev['element'] === Components.menuItem) {\n // the component may not be initialized yet...\n if (prev && prev.nodeName.indexOf('SCW-MENU-ITEM') === 0 ) {\n return prev as unknown as ScwMenuItem;\n }\n return undefined;\n }\n\n /**\n * Is this a nested menu or not...\n * @return {boolean}\n */\n isSubMenu() : boolean {\n return ( this._menuItem !== undefined ) ? true : false;\n }\n\n /**\n * render\n * @return {object} component DOM\n */\n render(): object {\n if (this.style) {\n this.style.display = this.ariaHidden === 'true' ? 'none' : '';\n }\n\n if (this.isSubMenu() && this._menuItem) {\n this._menuItem.setAttribute(\n 'aria-expanded',\n this.ariaHidden === 'true' ? 'false' : 'true',\n );\n }\n\n return html`\n <nav\n aria-label=\"${this.ariaLabel} navigation\"\n role=\"${this.isSubMenu() ? 'menu' : 'menubar'}\">\n <slot></slot>\n </nav>`;\n\n // return html`<slot></slot>`;\n }\n}\n", "import {LitElement, html} from 'lit';\nimport {property, state} from 'lit/decorators.js';\nimport {Components} from '../utils/enums/Components';\nimport styles from './scss/scw-component.scss';\nimport ScwComponentInterface from './scw-component-interface';\nimport LightDomMutationObserver from '../utils/lightDomMutationObserver';\n\n/**\n * ScwComponent\n * @class\n * @tag scw-component\n *\n */\nexport default class ScwComponent\n extends LitElement\n implements ScwComponentInterface {\n static styles = styles;\n\n /**\n * (ScwComponent) Main text within component\n * @type {string}\n */\n @property({type: String, reflect: true, attribute: 'aria-label'})\n ariaLabel = '';\n\n /**\n * (ScwComponent) Disables the component however it disables\n * @type {string}\n */\n @property({type: String, attribute: 'aria-disabled'})\n ariaDisabled = 'false';\n\n /**\n * (ScwLinkBase)\n * Some lookups need to know if something is a link or not...\n */\n @property({type: Boolean, reflect: true, attribute: 'is-link'})\n isLink : boolean = false;\n\n /** disconnectedCallback */\n disconnectedCallback(): void {\n super.disconnectedCallback();\n if (this._lightDomMutationObserver) {\n this._lightDomMutationObserver.disconnect();\n }\n }\n\n // ====== DYNAMIC LIGHT DOM (SLOTS) ==========================================\n /**\n * (ScwComponent) Light Dom Mutation Observer\n */\n _lightDomMutationObserver? : LightDomMutationObserver;\n\n /**\n * (ScwComponent) Determines whether to watch for changes\n * in children. (not all components use light DOM)\n * @type {boolean}\n */\n @property({type: Boolean}) dynamic = false;\n\n /**\n * get defaults after initialization...light dom trumps attributes\n * @param {Map<string | number | symbol, unknown>} changedProps\n */\n firstUpdated(changedProps : Map<string | number | symbol, unknown>) {\n super.firstUpdated(changedProps);\n if (this.dynamic) {\n this._lightDomMutationObserver = new LightDomMutationObserver(\n this, () => {\n this.domMutated();\n },\n );\n }\n }\n\n /**\n * parseLightDom is a hook for classes extending this one to add\n * other parsers and validations\n */\n domMutated() {}\n // ====== END DYNAMIC ========================================================\n\n /**\n * (ScwComponent) contains the root element name for each component\n * (enum Components)\n * @type {string}\n */\n // lint-i\n @property({type: String, reflect: true}) // Components\n element: Components = Components.component;\n\n /**\n * handles warnings...things wrong with formatting, ADA, etc...\n * @param {string} message describing warning\n */\n warn( message: string ) {\n if (!this._lastWarning) {\n this._lastWarning = message;\n this.setAttribute('warning', message);\n this.setAttribute('title', `[ERROR]: ${message}`);\n }\n // con sole.error(`warning (${this.element}): ${message}`);\n }\n\n /**\n * clearWarnings\n */\n clearWarnings() {\n this._lastWarning = undefined;\n this.removeAttribute('warning');\n this.removeAttribute('title');\n }\n\n /**\n * retain the last warning sent...good for testing.\n */\n @state() _lastWarning : string | undefined;\n\n /**\n * render\n * @return {object} component DOM\n */\n render(): object {\n return html`\n <slot></slot>\n `;\n }\n}\n", "import {css} from \"lit-element/lit-element.js\";\nexport default css`\n:host {\n /* scw element */\n position: relative;\n box-sizing: border-box;\n --margin-right: initial;\n --margin-bottom: initial;\n --gap-h-int: initial;\n --gap-v-int: initial;\n margin-right: var(--margin-right, var(--gap-h-int, initial));\n margin-bottom: var(--margin-bottom, var(--gap-v-int, initial));\n display: block;\n}\n\n:host([warning]) {\n outline: 2px solid red !important;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL1VzZXJzL3Njb3R0cm91c2UvV29ya3NwYWNlL3NjdS13ZWItY29tcG9uZW50cy13ZWJzaXRlcy9zY3Utd2ViLWNvbXBvbmVudHMtd2Vic2l0ZXMvc3JjL3Njdy1jb21wb25lbnQvc2NzcyIsInNvdXJjZXMiOlsic2N3LWNvbXBvbmVudC5zY3NzIiwiLi4vLi4vLi4vZGlzdC90b2tlbnMvc291cmNlL2Nzc0FwaS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBO0FDMm90QkU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7OztBRGpwdEJGO0VBQ0UifQ== */`;\n", "import {LitElement} from 'lit';\n\n/**\n * Class to manage changes to the light dom\n */\nexport default class LightDomMutationObserver {\n /**\n * the mutation observer used\n */\n _mutationObserver : MutationObserver | undefined;\n\n /**\n * LitElement to watch...no children here..\n */\n _element : LitElement;\n\n /**\n * callback for change event\n */\n _callback : () => void | undefined;\n\n /**\n * constructor\n * @param {string} element LitElement to observe\n * @param {function} callback\n */\n constructor( element: LitElement, callback : () => void ) {\n this._element = element;\n this._callback = callback;\n this.observe();\n }\n\n /**\n * Connect LitElement to mutation observer (sans attributes)\n */\n observe() {\n this.disconnect();\n if (this._element) {\n const observerOptions = {\n characterData: true,\n childList: true,\n attributes: false, // properties takes care of this...\n subtree: true,\n };\n this._mutationObserver = new MutationObserver(\n () => this._callback(), // this._element.requestUpdate(),\n );\n this._mutationObserver.observe(this._element, observerOptions);\n }\n }\n\n /**\n * disconnect mutation observer\n */\n disconnect() {\n if (!this._mutationObserver) {\n return;\n }\n this._mutationObserver.disconnect();\n }\n}\n", "import {css} from \"lit-element/lit-element.js\";\nexport default css`\n:host {\n /* scw element */\n position: relative;\n box-sizing: border-box;\n --margin-right: initial;\n --margin-bottom: initial;\n --gap-h-int: initial;\n --gap-v-int: initial;\n margin-right: var(--margin-right, var(--gap-h-int, initial));\n margin-bottom: var(--margin-bottom, var(--gap-v-int, initial));\n display: block;\n}\n\n:host([warning]) {\n outline: 2px solid red !important;\n}\n\n:host {\n display: inline-flex;\n}\n:host nav {\n display: inline-block;\n width: 100%;\n}\n:host .heading-label {\n clip: rect(0 0 0 0);\n clip-path: inset(50%);\n height: 1px;\n overflow: hidden;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n margin: 0 !important;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL1VzZXJzL3Njb3R0cm91c2UvV29ya3NwYWNlL3NjdS13ZWItY29tcG9uZW50cy13ZWJzaXRlcy9zY3Utd2ViLWNvbXBvbmVudHMtd2Vic2l0ZXMvc3JjL3Njdy1tZW51L3Njc3MiLCJzb3VyY2VzIjpbIi4uLy4uL3Njdy1jb21wb25lbnQvc2Nzcy9zY3ctY29tcG9uZW50LnNjc3MiLCIuLi8uLi8uLi9kaXN0L3Rva2Vucy9zb3VyY2UvY3NzQXBpLnNjc3MiLCJzY3ctbWVudS5zY3NzIiwiLi4vLi4vdXRpbHMvYWRhLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7QUMyb3RCRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTs7O0FEanB0QkY7RUFDRTs7O0FFSkY7RUFDRTs7QUFFQTtFQUNFO0VBQ0E7O0FBR0Y7RUNQQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFREdFIn0= */`;\n", "/**\n * Emits a custom event with web component friendly defaults.\n * @param {string} name\n * @param {HTMLElement} target\n * @param {object} detail\n * @param {CustomEventInit} options\n * @return {object}\n */\nexport function emit(\n name: ScwEvents,\n target: HTMLElement,\n detail = {},\n options?: CustomEventInit,\n) {\n const event = new CustomEvent(\n name,\n {\n bubbles: true,\n cancelable: false,\n composed: true,\n detail,\n ...options,\n },\n );\n target.dispatchEvent(event);\n return event;\n}\n\nexport enum ScwEvents {\n focus = 'scw-focus',\n blur = 'scw-blur',\n valueChange = 'scw-value-change',\n appModeOn = 'scw-app-mode-on',\n appModeOff = 'scw-app-mode-off',\n action = 'scw-action',\n submit = 'scw-submit',\n submitIntent = 'scw-submit-intent'\n}\n", "import ScwMenu from '../ScwMenu';\nimport {Components} from '../../utils/enums/Components';\n\n/** list of elements that are tabbable */\nconst tabbablelist = [\n Components.menuItem,\n Components.icon,\n Components.link,\n Components.button,\n 'BUTTON',\n 'A',\n];\n\n/** list of elements that should be ignored */\nconst ignorelist = [\n Components.menu,\n];\n\n/**\n * walk through children from a starting point\n * @param {ScwMenu} menu\n * @param {HTMLElement} ele\n * @param {'forwards' | 'backwards'} direction\n */\nexport default function focusOnTabbableElement(\n menu: ScwMenu,\n ele: HTMLElement | undefined,\n direction: 'forwards'|'backwards',\n) {\n let targetEle = ele;\n if (!ele) {\n targetEle = findActiveMenuElement(menu);\n }\n\n if (targetEle) {\n const nextTabbleElement =\n findTabbableElement(\n menu,\n targetEle,\n direction,\n false,\n menu === targetEle,\n );\n if (nextTabbleElement) {\n nextTabbleElement.focus();\n } else {\n // at the end so try to loop around...\n const nextReversedTabbleElement =\n findTabbableElement(\n menu,\n menu,\n direction,\n );\n if (nextReversedTabbleElement) {\n nextReversedTabbleElement.focus();\n } else {\n // run away, there is nothing tabbable...\n }\n }\n }\n}\n\n/**\n * walk through children from a starting point\n * @param {ScwMenu} menu\n * @return {HTMLElement | undefined}\n */\nexport function findActiveMenuElement(\n menu: ScwMenu,\n) : HTMLElement | undefined {\n if (\n document.activeElement &&\n menu.contains( document.activeElement )\n ) {\n return document.activeElement as unknown as HTMLElement;\n }\n return undefined;\n}\n\n/**\n * get the next tabbable element\n * @param {ScwMenu} menu\n * @return {void}\n */\nexport function findNextTabbableEle( menu: ScwMenu ) {\n const activeEle = findActiveMenuElement( menu );\n if ( activeEle ) {\n return findTabbableElement( menu, activeEle );\n }\n}\n\n/**\n * get the previous tabble element\n * @param {ScwMenu} menu\n * @return {void}\n */\nexport function findPrevTabbableEle( menu: ScwMenu ) {\n const activeEle = findActiveMenuElement( menu );\n if ( activeEle ) {\n return findTabbableElement( menu, activeEle, 'backwards' );\n }\n}\n\n/**\n * walk through children from a starting point\n * @param {ScwMenu} menu\n * @param {HTMLElement} ele\n * @param {'forwards' | 'backwards'} direction\n * @param {Boolean} checkEle\n * @param {Boolean} checkChildren\n * @return {HTMLElement | false}\n */\nexport function findTabbableElement(\n menu: ScwMenu,\n ele : HTMLElement,\n direction: 'forwards' | 'backwards' = 'forwards',\n checkEle : boolean = false,\n checkChildren: boolean = true,\n) : HTMLElement | false {\n // Check the element itself\n if (!ele) return false;\n\n if (checkEle) {\n if (\n ele['element'] &&\n tabbablelist.includes( ele['element'] )\n ) {\n if (isTabbleable(ele)) {\n return ele;\n }\n } else if (\n tabbablelist.includes( ele.nodeName )\n ) {\n if (isTabbleable(ele)) {\n return ele;\n }\n }\n }\n\n // try children\n if (\n checkChildren &&\n ele.children\n ) {\n let doCheck = true;\n if (\n checkEle &&\n ignorelist.includes( ele['element'])\n ) {\n doCheck = false;\n }\n\n if ( doCheck ) {\n const children = Array.from(ele.children);\n if (direction === 'backwards') {\n children.reverse();\n }\n let tabbableEle : HTMLElement | false = false;\n children.find( (child) => {\n const result = findTabbableElement(\n menu,\n child as unknown as HTMLElement,\n direction,\n true,\n true,\n );\n if (result) {\n tabbableEle = result;\n return true;\n }\n return false;\n });\n if (isTabbleable(tabbableEle)) {\n return tabbableEle as unknown as HTMLElement;\n }\n }\n }\n\n // walk down siblings\n const sibling = (direction === 'forwards') ?\n ele.nextElementSibling : ele.previousElementSibling;\n if (sibling) {\n const result = findTabbableElement(\n menu,\n sibling as unknown as HTMLElement,\n direction,\n true,\n true,\n );\n if (isTabbleable(result)) {\n return result;\n }\n }\n\n // no children and no more siblings...go up!\n if (ele.parentElement != menu) {\n const result = findTabbableElement(\n menu,\n ele.parentElement as unknown as HTMLElement,\n direction,\n true,\n false, // infinite loop, don't check children of parent...\n );\n if (isTabbleable(result)) {\n return result;\n }\n }\n return false;\n}\n\n/**\n* last checks\n* @param {HTMLElement} ele\n* @return {HTMLElement | false}\n*/\nexport function isTabbleable(\n ele : HTMLElement | false,\n) : HTMLElement | false {\n if (!ele) {\n // cons ole.log('isTabbleable false - no ele');\n return false;\n }\n // hidden elements are not a part of the dom\n if (!ele.offsetParent) {\n // cons ole.log('isTabbleable false - no offsetParent');\n return false;\n }\n // ignore invisible elements\n if (window.getComputedStyle(ele).visibility === 'hidden') {\n // cons ole.log('isTabbleable false - not visible');\n return false;\n }\n // explicitly disabled are ignored\n if (\n ele.hasAttribute('aria-disabled') &&\n ele.getAttribute('aria-disabled') !== 'false'\n ) {\n // cons ole.log('isTabbleable false - aria-disabled');\n return false;\n }\n // disabled elements are ignored\n if (ele.hasAttribute('disabled')) {\n // cons ole.log('isTabbleable false - has disabled attribute');\n return false;\n }\n // not tabindex, no go\n if (ele.getAttribute('tabindex') === '-1') {\n // cons ole.log('isTabbleable false - tabindex is -1');\n return false;\n }\n if (ele['isLink'] === false) {\n // cons ole.log('isTabbleable false - isLink function returned false');\n return false;\n }\n return ele;\n}\n", "import ScwMenu from '../ScwMenu';\n// import ScwMenuItem from '../scw-menu-item/scw-menu-item';\n// import {dispatchCustomEvent} from '../../utils/customEvents';\n// import ScwComponent from '../scw-component/scw-component';\nimport {emit, ScwEvents} from '../../utils/events/event';\nimport\nfocusOnTabbableElement,\n{\n findActiveMenuElement,\n} from './keyboardElements';\nimport {ScwMenuDirections} from '../scw-menu-enums';\nimport ScwComponent from '../../scw-component/ScwComponent';\nimport {Components} from '../../utils/enums/Components';\n\n/**\n * ScwMenuKeyboard\n * manages all the keyboard events for ScwMenu\n */\nexport default class ScwMenuKeyboard {\n /** menu to manage */\n menu : ScwMenu;\n\n /** list of elements that are tabbable */\n tabbablelist = [\n Components.menuItem,\n Components.icon,\n Components.link,\n Components.button,\n 'BUTTON',\n 'A',\n ];\n\n /** list of elements that should be ignored */\n ignorelist = ['scw-menu'];\n\n /**\n * constructor\n * @param {ScwMenu} menu\n */\n constructor( menu: ScwMenu) {\n this.menu = menu;\n this.handleKeydown = this.handleKeydown.bind(this);\n this.initKeyboard();\n this.documentClickHandler = this.documentClickHandler.bind(this);\n // TODO: capture all menuItems at beginning.\n }\n\n /**\n * initialize keyboard event handling for ScwMenu\n */\n initKeyboard() {\n this.menu.addEventListener('focusin', (evt) => {\n if (evt.target === this.menu) {\n this.focusOnNextTabbableElement(this.menu);\n }\n // take menu out of tab index so we can tab out smoothly\n this.menu.setAttribute('tabindex', '-1');\n emit(\n ScwEvents.appModeOn,\n this.menu,\n );\n if (this.menu.isSubMenu()) {\n document.addEventListener('click', this.documentClickHandler );\n }\n });\n\n this.menu.addEventListener('focusout', (evt) => {\n if ( // don't matter if it is still within menu\n evt.relatedTarget &&\n this.menu.contains( evt.relatedTarget as unknown as HTMLElement)\n ) {\n return;\n }\n this.menu.setAttribute('tabindex', '0');\n\n emit(\n ScwEvents.appModeOff,\n this.menu,\n );\n });\n\n this.menu.addEventListener('keydown', (evt: KeyboardEvent) => {\n this.handleKeydown(evt);\n });\n\n this.menu.addEventListener('click', (evt: MouseEvent) => {\n this.clickHandler(evt);\n });\n }\n\n /**\n * close menu if clicked anywhere but menu\n * @param {MouseEvent} evt\n */\n documentClickHandler(evt: MouseEvent) {\n const target = evt.target as unknown as HTMLElement;\n if (!this.menu.contains(target)) {\n this.closeMenu();\n }\n }\n\n /**\n * closes menu if it is a submenu\n * @param {boolean} doFocus\n */\n closeMenu(doFocus = false) {\n if (this.menu.isSubMenu()) {\n document.removeEventListener('click', this.documentClickHandler );\n this.menu.ariaHidden = 'true';\n this.menu.setAttribute('aria-hidden', 'true');\n\n if (doFocus) {\n const menuItem =\n this.menu.previousElementSibling as unknown as ScwComponent;\n if (\n menuItem && menuItem.element === Components.menuItem\n ) {\n menuItem.focus();\n }\n }\n }\n }\n\n /**\n * handle clicks within the menu\n * @param {MouseEvent} evt\n */\n clickHandler(evt : MouseEvent) {\n evt.preventDefault();\n const target = evt.target as unknown as ScwComponent;\n console.log('clickHandler', target);\n if (target && target.element === Components.menuItem) {\n target.focus();\n this.toggleSubMenu();\n }\n }\n\n /**\n * opens/closes submenu if there is one\n * @return {boolean}\n */\n toggleSubMenu() : boolean {\n const subMenu = this.findSubmenu();\n if (subMenu) {\n if (subMenu.ariaHidden === 'false') {\n subMenu.ariaHidden = 'true';\n subMenu.setAttribute('aria-hidden', 'true');\n } else {\n subMenu.ariaHidden = 'false';\n subMenu.setAttribute('aria-hidden', 'false');\n setTimeout(() => {\n subMenu.focus();\n }, 0);\n }\n return true;\n }\n return false;\n }\n\n /**\n * Focus on the next tabbable element\n * @param {HTMLElement} ele\n */\n focusOnNextTabbableElement(ele?: HTMLElement) {\n focusOnTabbableElement( this.menu, ele, 'forwards' );\n }\n\n /**\n * Focus on the previous tabbable element\n * @param {HTMLElement} ele\n */\n focusOnPreviousTabbableElement(ele?: HTMLElement) {\n focusOnTabbableElement( this.menu, ele, 'backwards' );\n }\n\n /**\n * Fully stops event\n * @param {KeyboardEvent} evt\n */\n stopEvent(evt: Event) {\n evt.stopPropagation();\n evt.preventDefault();\n }\n\n /**\n * Handle keyboard down events\n * @param {KeyboardEvent} evt\n */\n handleKeydown(evt : KeyboardEvent) {\n // figure out extents of Tab\n if (\n this.menu.isSubMenu() &&\n evt.key === 'Tab'\n ) {\n if (evt.shiftKey) {// backwards....\n this.focusOnPreviousTabbableElement();\n this.stopEvent(evt);\n return;\n } else {\n this.focusOnNextTabbableElement();\n this.stopEvent(evt);\n return;\n }\n }\n\n // Otherwise look for keys\n switch (evt.key) {\n case 'ArrowRight':\n if (\n this.menu.keyboardDirection === ScwMenuDirections.vertical\n ) {\n this.toggleSubMenu();\n } else { // horizontal, either\n this.focusOnNextTabbableElement();\n }\n this.stopEvent(evt);\n break;\n case 'ArrowDown':\n if (\n this.menu.keyboardDirection === ScwMenuDirections.horizontal\n ) {\n this.toggleSubMenu();\n } else { // vertical, either\n this.focusOnNextTabbableElement();\n }\n this.stopEvent(evt);\n break;\n case 'ArrowLeft':\n if (\n this.menu.keyboardDirection === ScwMenuDirections.vertical\n ) {\n if ( !this.toggleSubMenu() ) {\n this.closeMenu(true);\n }\n } else { // horizontal, either\n this.focusOnPreviousTabbableElement();\n }\n this.stopEvent(evt);\n break;\n case 'ArrowUp':\n if (\n this.menu.keyboardDirection === ScwMenuDirections.horizontal\n ) {\n if ( !this.toggleSubMenu() ) {\n this.closeMenu(true);\n }\n } else { // horizontal, either\n this.focusOnPreviousTabbableElement();\n }\n this.stopEvent(evt);\n break;\n case 'Escape':\n this.closeMenu(true);\n this.stopEvent(evt);\n break;\n case 'Home':\n this.focusOnNextTabbableElement(this.menu);\n this.stopEvent(evt);\n break;\n case 'End':\n this.focusOnPreviousTabbableElement(this.menu);\n this.stopEvent(evt);\n break;\n }\n }\n\n /**\n * find the submenu of the focused ScwMenuItem\n * @return {ScwMenu | undefined}\n */\n findSubmenu() : ScwMenu | undefined {\n const focusedElement = findActiveMenuElement(this.menu);\n if (focusedElement) {\n const nextSibling =\n focusedElement.nextElementSibling;\n if ( nextSibling && nextSibling['element'] === Components.menu ) {\n return nextSibling as unknown as ScwMenu;\n }\n }\n return undefined;\n }\n}\n\n\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["html", "property", "LitElement", "html", "property", "state", "css", "scw_component_default", "LightDomMutationObserver", "element", "callback", "observerOptions", "ScwComponent", "LitElement", "changedProps", "LightDomMutationObserver", "message", "html", "scw_component_default", "__decorateClass", "property", "state", "css", "scw_menu_default", "emit", "name", "target", "detail", "options", "event", "tabbablelist", "ignorelist", "focusOnTabbableElement", "menu", "ele", "direction", "targetEle", "findActiveMenuElement", "nextTabbleElement", "findTabbableElement", "nextReversedTabbleElement", "findTabbableElement", "menu", "ele", "direction", "checkEle", "checkChildren", "tabbablelist", "isTabbleable", "doCheck", "ignorelist", "children", "tabbableEle", "child", "result", "sibling", "ScwMenuKeyboard", "menu", "evt", "emit", "target", "doFocus", "menuItem", "subMenu", "ele", "focusOnTabbableElement", "focusedElement", "findActiveMenuElement", "nextSibling", "ScwMenu", "ScwComponent", "scw_menu_default", "changedProps", "ScwMenuKeyboard", "prev", "html", "__decorateClass", "property"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/scw-menu/keyboard/keyboardElements.ts"],
|
|
4
|
-
"sourcesContent": ["import ScwMenu from '../ScwMenu';\nimport {Components} from '../../utils/enums/Components';\n\n/** list of elements that are tabbable */\nconst tabbablelist = [\n Components.menuItem,\n Components.icon,\n Components.link,\n Components.button,\n 'BUTTON',\n 'A',\n];\n\n/** list of elements that should be ignored */\nconst ignorelist = [\n Components.menu,\n];\n\n/**\n * walk through children from a starting point\n * @param {ScwMenu} menu\n * @param {HTMLElement} ele\n * @param {'forwards' | 'backwards'} direction\n */\nexport default function focusOnTabbableElement(\n menu: ScwMenu,\n ele: HTMLElement | undefined,\n direction: 'forwards'|'backwards',\n) {\n let targetEle = ele;\n if (!ele) {\n targetEle = findActiveMenuElement(menu);\n }\n\n if (targetEle) {\n const nextTabbleElement =\n findTabbableElement(\n menu,\n targetEle,\n direction,\n false,\n menu === targetEle,\n );\n if (nextTabbleElement) {\n nextTabbleElement.focus();\n } else {\n // at the end so try to loop around...\n const nextReversedTabbleElement =\n findTabbableElement(\n menu,\n menu,\n direction,\n );\n if (nextReversedTabbleElement) {\n nextReversedTabbleElement.focus();\n } else {\n // run away, there is nothing tabbable...\n }\n }\n }\n}\n\n/**\n * walk through children from a starting point\n * @param {ScwMenu} menu\n * @return {HTMLElement | undefined}\n */\nexport function findActiveMenuElement(\n menu: ScwMenu,\n) : HTMLElement | undefined {\n if (\n document.activeElement &&\n menu.contains( document.activeElement )\n ) {\n return document.activeElement as unknown as HTMLElement;\n }\n return undefined;\n}\n\n/**\n * get the next tabbable element\n * @param {ScwMenu} menu\n * @return {void}\n */\nexport function findNextTabbableEle( menu: ScwMenu ) {\n const activeEle = findActiveMenuElement( menu );\n if ( activeEle ) {\n return findTabbableElement( menu, activeEle );\n }\n}\n\n/**\n * get the previous tabble element\n * @param {ScwMenu} menu\n * @return {void}\n */\nexport function findPrevTabbableEle( menu: ScwMenu ) {\n const activeEle = findActiveMenuElement( menu );\n if ( activeEle ) {\n return findTabbableElement( menu, activeEle, 'backwards' );\n }\n}\n\n/**\n * walk through children from a starting point\n * @param {ScwMenu} menu\n * @param {HTMLElement} ele\n * @param {'forwards' | 'backwards'} direction\n * @param {Boolean} checkEle\n * @param {Boolean} checkChildren\n * @return {HTMLElement | false}\n */\nexport function findTabbableElement(\n menu: ScwMenu,\n ele : HTMLElement,\n direction: 'forwards' | 'backwards' = 'forwards',\n checkEle : boolean = false,\n checkChildren: boolean = true,\n) : HTMLElement | false {\n // Check the element itself\n if (!ele) return false;\n\n if (checkEle) {\n if (\n ele['element'] &&\n tabbablelist.includes( ele['element'] )\n ) {\n if (isTabbleable(ele)) {\n return ele;\n }\n } else if (\n tabbablelist.includes( ele.nodeName )\n ) {\n if (isTabbleable(ele)) {\n return ele;\n }\n }\n }\n\n // try children\n if (\n checkChildren &&\n ele.children\n ) {\n let doCheck = true;\n if (\n checkEle &&\n ignorelist.includes( ele['element'])\n ) {\n doCheck = false;\n }\n\n if ( doCheck ) {\n const children = Array.from(ele.children);\n if (direction === 'backwards') {\n children.reverse();\n }\n let tabbableEle : HTMLElement | false = false;\n children.find( (child) => {\n const result = findTabbableElement(\n menu,\n child as unknown as HTMLElement,\n direction,\n true,\n true,\n );\n if (result) {\n tabbableEle = result;\n return true;\n }\n return false;\n });\n if (isTabbleable(tabbableEle)) {\n return tabbableEle as unknown as HTMLElement;\n }\n }\n }\n\n // walk down siblings\n const sibling = (direction === 'forwards') ?\n ele.nextElementSibling : ele.previousElementSibling;\n if (sibling) {\n const result = findTabbableElement(\n menu,\n sibling as unknown as HTMLElement,\n direction,\n true,\n true,\n );\n if (isTabbleable(result)) {\n return result;\n }\n }\n\n // no children and no more siblings...go up!\n if (ele.parentElement != menu) {\n const result = findTabbableElement(\n menu,\n ele.parentElement as unknown as HTMLElement,\n direction,\n true,\n false, // infinite loop, don't check children of parent...\n );\n if (isTabbleable(result)) {\n return result;\n }\n }\n return false;\n}\n\n/**\n* last checks\n* @param {HTMLElement} ele\n* @return {HTMLElement | false}\n*/\nexport function isTabbleable(\n ele : HTMLElement | false,\n) : HTMLElement | false {\n if (!ele) {\n // cons ole.log('isTabbleable false - no ele');\n return false;\n }\n // hidden elements are not a part of the dom\n if (!ele.offsetParent) {\n // cons ole.log('isTabbleable false - no offsetParent');\n return false;\n }\n // ignore invisible elements\n if (window.getComputedStyle(ele).visibility === 'hidden') {\n // cons ole.log('isTabbleable false - not visible');\n return false;\n }\n // explicitly disabled are ignored\n if (\n ele.hasAttribute('aria-disabled') &&\n ele.getAttribute('aria-disabled') !== 'false'\n ) {\n // cons ole.log('isTabbleable false - aria-disabled');\n return false;\n }\n // disabled elements are ignored\n if (ele.hasAttribute('disabled')) {\n // cons ole.log('isTabbleable false - has disabled attribute');\n return false;\n }\n // not tabindex, no go\n if (ele.getAttribute('tabindex') === '-1') {\n // cons ole.log('isTabbleable false - tabindex is -1');\n return false;\n }\n if (ele['isLink'] === false) {\n // cons ole.log('isTabbleable false - isLink function returned false');\n return false;\n }\n return ele;\n}\n"],
|
|
5
|
-
"mappings": "AAIA,IAAMA,EAAe,oCAKnB,SACA,GACF,EAGMC,EAAa,OAEnB,EAQe,SAARC,EACHC,EACAC,EACAC,EACF,CACA,IAAIC,EAAYF,EAKhB,GAJKA,IACHE,EAAYC,EAAsBJ,CAAI,GAGpCG,EAAW,CACb,IAAME,EACJC,EACIN,EACAG,EACAD,EACA,GACAF,IAASG,CACb,EACF,GAAIE,EACFA,EAAkB,MAAM,MACnB,CAEL,IAAME,EACJD,EACIN,EACAA,EACAE,CACJ,EACEK,GACFA,EAA0B,MAAM,CAIpC,CACF,CACF,CAOO,SAASH,EACZJ,EACwB,CAC1B,GACE,SAAS,eACTA,EAAK,SAAU,SAAS,aAAc,EAEtC,OAAO,SAAS,aAGpB,CAOO,SAASQ,EAAqBR,EAAgB,CACnD,IAAMS,EAAYL,EAAuBJ,CAAK,EAC9C,GAAKS,EACH,OAAOH,EAAqBN,EAAMS,CAAU,CAEhD,CAOO,SAASC,EAAqBV,EAAgB,CACnD,IAAMS,EAAYL,EAAuBJ,CAAK,EAC9C,GAAKS,EACH,OAAOH,EAAqBN,EAAMS,EAAW,WAAY,CAE7D,CAWO,SAASH,EACZN,EACAC,EACAC,EAAsC,WACtCS,EAAqB,GACrBC,EAAyB,GACL,CAEtB,GAAI,CAACX,EAAK,MAAO,GAEjB,GAAIU,GACF,GACEV,EAAI,SACJJ,EAAa,SAAUI,EAAI,OAAW,GAEtC,GAAIY,EAAaZ,CAAG,EAClB,OAAOA,UAGTJ,EAAa,SAAUI,EAAI,QAAS,GAEhCY,EAAaZ,CAAG,EAClB,OAAOA,EAMb,GACEW,GACAX,EAAI,SACJ,CACA,IAAIa,EAAU,GAQd,GANEH,GACAb,EAAW,SAAUG,EAAI,OAAU,IAEnCa,EAAU,IAGPA,EAAU,CACb,IAAMC,EAAW,MAAM,KAAKd,EAAI,QAAQ,EACpCC,IAAc,aAChBa,EAAS,QAAQ,EAEnB,IAAIC,EAAoC,GAexC,GAdAD,EAAS,KAAOE,GAAU,CACxB,IAAMC,EAASZ,EACXN,EACFiB,EACAf,EACA,GACA,EACF,EACA,OAAIgB,GACFF,EAAcE,EACP,IAEF,EACT,CAAC,EACGL,EAAaG,CAAW,EAC1B,OAAOA,CAEX,CACF,CAGA,IAAMG,EAAWjB,IAAc,WAC7BD,EAAI,mBAAqBA,EAAI,uBAC/B,GAAIkB,EAAS,CACX,IAAMD,EAASZ,EACXN,EACFmB,EACAjB,EACA,GACA,EACF,EACA,GAAIW,EAAaK,CAAM,EACrB,OAAOA,CAEX,CAGA,GAAIjB,EAAI,eAAiBD,EAAM,CAC7B,IAAMkB,EAASZ,EACXN,EACFC,EAAI,cACJC,EACA,GACA,EACF,EACA,GAAIW,EAAaK,CAAM,EACrB,OAAOA,CAEX,CACA,MAAO,EACT,CAOO,SAASL,EACZZ,EACoB,CAiCtB,MAhCI,CAACA,GAKD,CAACA,EAAI,cAKL,OAAO,iBAAiBA,CAAG,EAAE,aAAe,UAM9CA,EAAI,aAAa,eAAe,GAChCA,EAAI,aAAa,eAAe,IAAM,SAMpCA,EAAI,aAAa,UAAU,GAK3BA,EAAI,aAAa,UAAU,IAAM,MAIjCA,EAAI,SAAc,GAEb,GAEFA,CACT",
|
|
6
|
-
"names": ["tabbablelist", "ignorelist", "focusOnTabbableElement", "menu", "ele", "direction", "targetEle", "findActiveMenuElement", "nextTabbleElement", "findTabbableElement", "nextReversedTabbleElement", "findNextTabbableEle", "activeEle", "findPrevTabbableEle", "checkEle", "checkChildren", "isTabbleable", "doCheck", "children", "tabbableEle", "child", "result", "sibling"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/utils/events/event.ts", "../../../src/scw-menu/keyboard/keyboardElements.ts", "../../../src/scw-menu/keyboard/scw-menu-keyboard.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * Emits a custom event with web component friendly defaults.\n * @param {string} name\n * @param {HTMLElement} target\n * @param {object} detail\n * @param {CustomEventInit} options\n * @return {object}\n */\nexport function emit(\n name: ScwEvents,\n target: HTMLElement,\n detail = {},\n options?: CustomEventInit,\n) {\n const event = new CustomEvent(\n name,\n {\n bubbles: true,\n cancelable: false,\n composed: true,\n detail,\n ...options,\n },\n );\n target.dispatchEvent(event);\n return event;\n}\n\nexport enum ScwEvents {\n focus = 'scw-focus',\n blur = 'scw-blur',\n valueChange = 'scw-value-change',\n appModeOn = 'scw-app-mode-on',\n appModeOff = 'scw-app-mode-off',\n action = 'scw-action',\n submit = 'scw-submit',\n submitIntent = 'scw-submit-intent'\n}\n", "import ScwMenu from '../ScwMenu';\nimport {Components} from '../../utils/enums/Components';\n\n/** list of elements that are tabbable */\nconst tabbablelist = [\n Components.menuItem,\n Components.icon,\n Components.link,\n Components.button,\n 'BUTTON',\n 'A',\n];\n\n/** list of elements that should be ignored */\nconst ignorelist = [\n Components.menu,\n];\n\n/**\n * walk through children from a starting point\n * @param {ScwMenu} menu\n * @param {HTMLElement} ele\n * @param {'forwards' | 'backwards'} direction\n */\nexport default function focusOnTabbableElement(\n menu: ScwMenu,\n ele: HTMLElement | undefined,\n direction: 'forwards'|'backwards',\n) {\n let targetEle = ele;\n if (!ele) {\n targetEle = findActiveMenuElement(menu);\n }\n\n if (targetEle) {\n const nextTabbleElement =\n findTabbableElement(\n menu,\n targetEle,\n direction,\n false,\n menu === targetEle,\n );\n if (nextTabbleElement) {\n nextTabbleElement.focus();\n } else {\n // at the end so try to loop around...\n const nextReversedTabbleElement =\n findTabbableElement(\n menu,\n menu,\n direction,\n );\n if (nextReversedTabbleElement) {\n nextReversedTabbleElement.focus();\n } else {\n // run away, there is nothing tabbable...\n }\n }\n }\n}\n\n/**\n * walk through children from a starting point\n * @param {ScwMenu} menu\n * @return {HTMLElement | undefined}\n */\nexport function findActiveMenuElement(\n menu: ScwMenu,\n) : HTMLElement | undefined {\n if (\n document.activeElement &&\n menu.contains( document.activeElement )\n ) {\n return document.activeElement as unknown as HTMLElement;\n }\n return undefined;\n}\n\n/**\n * get the next tabbable element\n * @param {ScwMenu} menu\n * @return {void}\n */\nexport function findNextTabbableEle( menu: ScwMenu ) {\n const activeEle = findActiveMenuElement( menu );\n if ( activeEle ) {\n return findTabbableElement( menu, activeEle );\n }\n}\n\n/**\n * get the previous tabble element\n * @param {ScwMenu} menu\n * @return {void}\n */\nexport function findPrevTabbableEle( menu: ScwMenu ) {\n const activeEle = findActiveMenuElement( menu );\n if ( activeEle ) {\n return findTabbableElement( menu, activeEle, 'backwards' );\n }\n}\n\n/**\n * walk through children from a starting point\n * @param {ScwMenu} menu\n * @param {HTMLElement} ele\n * @param {'forwards' | 'backwards'} direction\n * @param {Boolean} checkEle\n * @param {Boolean} checkChildren\n * @return {HTMLElement | false}\n */\nexport function findTabbableElement(\n menu: ScwMenu,\n ele : HTMLElement,\n direction: 'forwards' | 'backwards' = 'forwards',\n checkEle : boolean = false,\n checkChildren: boolean = true,\n) : HTMLElement | false {\n // Check the element itself\n if (!ele) return false;\n\n if (checkEle) {\n if (\n ele['element'] &&\n tabbablelist.includes( ele['element'] )\n ) {\n if (isTabbleable(ele)) {\n return ele;\n }\n } else if (\n tabbablelist.includes( ele.nodeName )\n ) {\n if (isTabbleable(ele)) {\n return ele;\n }\n }\n }\n\n // try children\n if (\n checkChildren &&\n ele.children\n ) {\n let doCheck = true;\n if (\n checkEle &&\n ignorelist.includes( ele['element'])\n ) {\n doCheck = false;\n }\n\n if ( doCheck ) {\n const children = Array.from(ele.children);\n if (direction === 'backwards') {\n children.reverse();\n }\n let tabbableEle : HTMLElement | false = false;\n children.find( (child) => {\n const result = findTabbableElement(\n menu,\n child as unknown as HTMLElement,\n direction,\n true,\n true,\n );\n if (result) {\n tabbableEle = result;\n return true;\n }\n return false;\n });\n if (isTabbleable(tabbableEle)) {\n return tabbableEle as unknown as HTMLElement;\n }\n }\n }\n\n // walk down siblings\n const sibling = (direction === 'forwards') ?\n ele.nextElementSibling : ele.previousElementSibling;\n if (sibling) {\n const result = findTabbableElement(\n menu,\n sibling as unknown as HTMLElement,\n direction,\n true,\n true,\n );\n if (isTabbleable(result)) {\n return result;\n }\n }\n\n // no children and no more siblings...go up!\n if (ele.parentElement != menu) {\n const result = findTabbableElement(\n menu,\n ele.parentElement as unknown as HTMLElement,\n direction,\n true,\n false, // infinite loop, don't check children of parent...\n );\n if (isTabbleable(result)) {\n return result;\n }\n }\n return false;\n}\n\n/**\n* last checks\n* @param {HTMLElement} ele\n* @return {HTMLElement | false}\n*/\nexport function isTabbleable(\n ele : HTMLElement | false,\n) : HTMLElement | false {\n if (!ele) {\n // cons ole.log('isTabbleable false - no ele');\n return false;\n }\n // hidden elements are not a part of the dom\n if (!ele.offsetParent) {\n // cons ole.log('isTabbleable false - no offsetParent');\n return false;\n }\n // ignore invisible elements\n if (window.getComputedStyle(ele).visibility === 'hidden') {\n // cons ole.log('isTabbleable false - not visible');\n return false;\n }\n // explicitly disabled are ignored\n if (\n ele.hasAttribute('aria-disabled') &&\n ele.getAttribute('aria-disabled') !== 'false'\n ) {\n // cons ole.log('isTabbleable false - aria-disabled');\n return false;\n }\n // disabled elements are ignored\n if (ele.hasAttribute('disabled')) {\n // cons ole.log('isTabbleable false - has disabled attribute');\n return false;\n }\n // not tabindex, no go\n if (ele.getAttribute('tabindex') === '-1') {\n // cons ole.log('isTabbleable false - tabindex is -1');\n return false;\n }\n if (ele['isLink'] === false) {\n // cons ole.log('isTabbleable false - isLink function returned false');\n return false;\n }\n return ele;\n}\n", "import ScwMenu from '../ScwMenu';\n// import ScwMenuItem from '../scw-menu-item/scw-menu-item';\n// import {dispatchCustomEvent} from '../../utils/customEvents';\n// import ScwComponent from '../scw-component/scw-component';\nimport {emit, ScwEvents} from '../../utils/events/event';\nimport\nfocusOnTabbableElement,\n{\n findActiveMenuElement,\n} from './keyboardElements';\nimport {ScwMenuDirections} from '../scw-menu-enums';\nimport ScwComponent from '../../scw-component/ScwComponent';\nimport {Components} from '../../utils/enums/Components';\n\n/**\n * ScwMenuKeyboard\n * manages all the keyboard events for ScwMenu\n */\nexport default class ScwMenuKeyboard {\n /** menu to manage */\n menu : ScwMenu;\n\n /** list of elements that are tabbable */\n tabbablelist = [\n Components.menuItem,\n Components.icon,\n Components.link,\n Components.button,\n 'BUTTON',\n 'A',\n ];\n\n /** list of elements that should be ignored */\n ignorelist = ['scw-menu'];\n\n /**\n * constructor\n * @param {ScwMenu} menu\n */\n constructor( menu: ScwMenu) {\n this.menu = menu;\n this.handleKeydown = this.handleKeydown.bind(this);\n this.initKeyboard();\n this.documentClickHandler = this.documentClickHandler.bind(this);\n // TODO: capture all menuItems at beginning.\n }\n\n /**\n * initialize keyboard event handling for ScwMenu\n */\n initKeyboard() {\n this.menu.addEventListener('focusin', (evt) => {\n if (evt.target === this.menu) {\n this.focusOnNextTabbableElement(this.menu);\n }\n // take menu out of tab index so we can tab out smoothly\n this.menu.setAttribute('tabindex', '-1');\n emit(\n ScwEvents.appModeOn,\n this.menu,\n );\n if (this.menu.isSubMenu()) {\n document.addEventListener('click', this.documentClickHandler );\n }\n });\n\n this.menu.addEventListener('focusout', (evt) => {\n if ( // don't matter if it is still within menu\n evt.relatedTarget &&\n this.menu.contains( evt.relatedTarget as unknown as HTMLElement)\n ) {\n return;\n }\n this.menu.setAttribute('tabindex', '0');\n\n emit(\n ScwEvents.appModeOff,\n this.menu,\n );\n });\n\n this.menu.addEventListener('keydown', (evt: KeyboardEvent) => {\n this.handleKeydown(evt);\n });\n\n this.menu.addEventListener('click', (evt: MouseEvent) => {\n this.clickHandler(evt);\n });\n }\n\n /**\n * close menu if clicked anywhere but menu\n * @param {MouseEvent} evt\n */\n documentClickHandler(evt: MouseEvent) {\n const target = evt.target as unknown as HTMLElement;\n if (!this.menu.contains(target)) {\n this.closeMenu();\n }\n }\n\n /**\n * closes menu if it is a submenu\n * @param {boolean} doFocus\n */\n closeMenu(doFocus = false) {\n if (this.menu.isSubMenu()) {\n document.removeEventListener('click', this.documentClickHandler );\n this.menu.ariaHidden = 'true';\n this.menu.setAttribute('aria-hidden', 'true');\n\n if (doFocus) {\n const menuItem =\n this.menu.previousElementSibling as unknown as ScwComponent;\n if (\n menuItem && menuItem.element === Components.menuItem\n ) {\n menuItem.focus();\n }\n }\n }\n }\n\n /**\n * handle clicks within the menu\n * @param {MouseEvent} evt\n */\n clickHandler(evt : MouseEvent) {\n evt.preventDefault();\n const target = evt.target as unknown as ScwComponent;\n console.log('clickHandler', target);\n if (target && target.element === Components.menuItem) {\n target.focus();\n this.toggleSubMenu();\n }\n }\n\n /**\n * opens/closes submenu if there is one\n * @return {boolean}\n */\n toggleSubMenu() : boolean {\n const subMenu = this.findSubmenu();\n if (subMenu) {\n if (subMenu.ariaHidden === 'false') {\n subMenu.ariaHidden = 'true';\n subMenu.setAttribute('aria-hidden', 'true');\n } else {\n subMenu.ariaHidden = 'false';\n subMenu.setAttribute('aria-hidden', 'false');\n setTimeout(() => {\n subMenu.focus();\n }, 0);\n }\n return true;\n }\n return false;\n }\n\n /**\n * Focus on the next tabbable element\n * @param {HTMLElement} ele\n */\n focusOnNextTabbableElement(ele?: HTMLElement) {\n focusOnTabbableElement( this.menu, ele, 'forwards' );\n }\n\n /**\n * Focus on the previous tabbable element\n * @param {HTMLElement} ele\n */\n focusOnPreviousTabbableElement(ele?: HTMLElement) {\n focusOnTabbableElement( this.menu, ele, 'backwards' );\n }\n\n /**\n * Fully stops event\n * @param {KeyboardEvent} evt\n */\n stopEvent(evt: Event) {\n evt.stopPropagation();\n evt.preventDefault();\n }\n\n /**\n * Handle keyboard down events\n * @param {KeyboardEvent} evt\n */\n handleKeydown(evt : KeyboardEvent) {\n // figure out extents of Tab\n if (\n this.menu.isSubMenu() &&\n evt.key === 'Tab'\n ) {\n if (evt.shiftKey) {// backwards....\n this.focusOnPreviousTabbableElement();\n this.stopEvent(evt);\n return;\n } else {\n this.focusOnNextTabbableElement();\n this.stopEvent(evt);\n return;\n }\n }\n\n // Otherwise look for keys\n switch (evt.key) {\n case 'ArrowRight':\n if (\n this.menu.keyboardDirection === ScwMenuDirections.vertical\n ) {\n this.toggleSubMenu();\n } else { // horizontal, either\n this.focusOnNextTabbableElement();\n }\n this.stopEvent(evt);\n break;\n case 'ArrowDown':\n if (\n this.menu.keyboardDirection === ScwMenuDirections.horizontal\n ) {\n this.toggleSubMenu();\n } else { // vertical, either\n this.focusOnNextTabbableElement();\n }\n this.stopEvent(evt);\n break;\n case 'ArrowLeft':\n if (\n this.menu.keyboardDirection === ScwMenuDirections.vertical\n ) {\n if ( !this.toggleSubMenu() ) {\n this.closeMenu(true);\n }\n } else { // horizontal, either\n this.focusOnPreviousTabbableElement();\n }\n this.stopEvent(evt);\n break;\n case 'ArrowUp':\n if (\n this.menu.keyboardDirection === ScwMenuDirections.horizontal\n ) {\n if ( !this.toggleSubMenu() ) {\n this.closeMenu(true);\n }\n } else { // horizontal, either\n this.focusOnPreviousTabbableElement();\n }\n this.stopEvent(evt);\n break;\n case 'Escape':\n this.closeMenu(true);\n this.stopEvent(evt);\n break;\n case 'Home':\n this.focusOnNextTabbableElement(this.menu);\n this.stopEvent(evt);\n break;\n case 'End':\n this.focusOnPreviousTabbableElement(this.menu);\n this.stopEvent(evt);\n break;\n }\n }\n\n /**\n * find the submenu of the focused ScwMenuItem\n * @return {ScwMenu | undefined}\n */\n findSubmenu() : ScwMenu | undefined {\n const focusedElement = findActiveMenuElement(this.menu);\n if (focusedElement) {\n const nextSibling =\n focusedElement.nextElementSibling;\n if ( nextSibling && nextSibling['element'] === Components.menu ) {\n return nextSibling as unknown as ScwMenu;\n }\n }\n return undefined;\n }\n}\n\n\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["emit", "name", "target", "detail", "options", "event", "tabbablelist", "ignorelist", "focusOnTabbableElement", "menu", "ele", "direction", "targetEle", "findActiveMenuElement", "nextTabbleElement", "findTabbableElement", "nextReversedTabbleElement", "findTabbableElement", "menu", "ele", "direction", "checkEle", "checkChildren", "tabbablelist", "isTabbleable", "doCheck", "ignorelist", "children", "tabbableEle", "child", "result", "sibling", "ScwMenuKeyboard", "menu", "evt", "emit", "target", "doFocus", "menuItem", "subMenu", "ele", "focusOnTabbableElement", "focusedElement", "findActiveMenuElement", "nextSibling"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/scw-menu/scw-menu-enums.ts"],
|
|
4
|
-
"sourcesContent": ["\n\nexport enum ScwMenuDirections {\n either = 'either',\n horizontal = 'horizontal',\n vertical = 'vertical'\n}\n"],
|
|
5
|
-
"mappings": "AAEO,IAAKA,OACVA,EAAA,OAAS,SACTA,EAAA,WAAa,aACbA,EAAA,SAAW,WAHDA,OAAA",
|
|
6
|
-
"names": ["ScwMenuDirections"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/scw-menu/scw-menu-validate.ts"],
|
|
4
|
-
"sourcesContent": ["import ScwMenu from './ScwMenu';\n\n/**\n * Validates properties\n * @param {ScwMenu} menu\n */\nexport default function validate( menu : ScwMenu ) {\n if (!menu.ariaLabel) {\n menu.warn('no aria-label found.');\n }\n\n /* if (!menu.isSubMenu()) {\n const parent = menu.parentElement;\n if (parent && parent.nodeName.indexOf('SCW-NAV') !== 0 ) {\n menu.warn('root menu must be in an scw-nav.');\n }\n }*/\n}\n"],
|
|
5
|
-
"mappings": "AAMe,SAARA,EAA2BC,EAAiB,CAC5CA,EAAK,WACRA,EAAK,KAAK,sBAAsB,CASpC",
|
|
6
|
-
"names": ["validate", "menu"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/scw-menu/ScwMenu.ts", "../../src/scw-component/ScwComponent.ts", "../../src/scw-component/scss/scw-component.scss", "../../src/utils/lightDomMutationObserver.ts", "../../src/scw-menu/scss/scw-menu.scss", "../../src/utils/events/event.ts", "../../src/scw-menu/keyboard/keyboardElements.ts", "../../src/scw-menu/keyboard/scw-menu-keyboard.ts", "../../src/scw-menu/scw-menu.ts"],
|
|
4
|
-
"sourcesContent": ["import {html} from 'lit';\nimport {property} from 'lit/decorators.js';\nimport ScwComponent from '../scw-component/ScwComponent';\nimport styles from './scss/scw-menu.scss';\nimport ScwMenuKeyboard from './keyboard/scw-menu-keyboard';\nimport ScwMenuItem from '../scw-menu-item/ScwMenuItem';\nimport {ScwMenuDirections} from './scw-menu-enums';\nimport {Components} from '../utils/enums/Components';\n\n/**\n * ScwMenu\n * @class\n * @tag scw-menu\n *\n * @slot [default=\"<scw-menu-item />...\"]\n List of scw-menu-items\n */\nexport default class ScwMenu extends ScwComponent {\n /**\n * styles\n */\n static get styles() {\n return [\n super.styles,\n styles,\n ];\n }\n\n // ============== ScwMenu ================================================\n /**\n * (<ScwMenu>) Turns menu visible and invisible (ADA friendly)\n * @type {string}\n */\n @property({type: String, attribute: 'aria-hidden'})\n ariaHidden = 'false';\n\n /**\n * (<ScwMenu>) determines some arrow key differences\n * (either, horizontal, vertical)\n * @type {ScwMenuDirections}\n */\n @property({type: String, attribute: 'keyboard-direction'})\n keyboardDirection: ScwMenuDirections = ScwMenuDirections.either;\n\n /** Manages all keyboard events */\n _keyboardManager : ScwMenuKeyboard | undefined;\n\n /** keeps track of the menu item controling this menu */\n _menuItem : ScwMenuItem | undefined;\n\n /**\n * Constructor\n */\n constructor() {\n super();\n this.element = Components.menu;\n // this.setAttribute('role', 'menu' );\n this.setAttribute('tabindex', '0');\n this.setAttribute('scw-flex-h-initial', '');// defaults to flex-h\n // DOES NOT WORK IN SSR...no window stuff\n // this._keyboardManager = new ScwMenuKeyboard(this);\n }\n\n /**\n * get defaults after initialization...light dom trumps attributes\n * @param {Map<string | number | symbol, unknown>} changedProps\n */\n firstUpdated(changedProps: Map<string | number | symbol, unknown>): void {\n super.firstUpdated(changedProps);\n this._keyboardManager = new ScwMenuKeyboard(this);\n }\n\n /** connectedCallback */\n connectedCallback(): void {\n super.connectedCallback();\n // menu will always come directly after it's scw-menu-item\n this._menuItem = this.findMenuItem();\n if (this._menuItem) {\n this._menuItem.setAttribute('aria-expanded', 'false');\n }\n this.setAttribute('role', this.isSubMenu() ? 'menu' : 'menubar');\n }\n\n /**\n * determines if this menu item has a sub menu\n * @return {ScwMenuItem | undefined}\n */\n findMenuItem() {\n const prev = this.previousElementSibling;\n // if (prev && prev['element'] === Components.menuItem) {\n // the component may not be initialized yet...\n if (prev && prev.nodeName.indexOf('SCW-MENU-ITEM') === 0 ) {\n return prev as unknown as ScwMenuItem;\n }\n return undefined;\n }\n\n /**\n * Is this a nested menu or not...\n * @return {boolean}\n */\n isSubMenu() : boolean {\n return ( this._menuItem !== undefined ) ? true : false;\n }\n\n /**\n * render\n * @return {object} component DOM\n */\n render(): object {\n if (this.style) {\n this.style.display = this.ariaHidden === 'true' ? 'none' : '';\n }\n\n if (this.isSubMenu() && this._menuItem) {\n this._menuItem.setAttribute(\n 'aria-expanded',\n this.ariaHidden === 'true' ? 'false' : 'true',\n );\n }\n\n return html`\n <nav\n aria-label=\"${this.ariaLabel} navigation\"\n role=\"${this.isSubMenu() ? 'menu' : 'menubar'}\">\n <slot></slot>\n </nav>`;\n\n // return html`<slot></slot>`;\n }\n}\n", "import {LitElement, html} from 'lit';\nimport {property, state} from 'lit/decorators.js';\nimport {Components} from '../utils/enums/Components';\nimport styles from './scss/scw-component.scss';\nimport ScwComponentInterface from './scw-component-interface';\nimport LightDomMutationObserver from '../utils/lightDomMutationObserver';\n\n/**\n * ScwComponent\n * @class\n * @tag scw-component\n *\n */\nexport default class ScwComponent\n extends LitElement\n implements ScwComponentInterface {\n static styles = styles;\n\n /**\n * (ScwComponent) Main text within component\n * @type {string}\n */\n @property({type: String, reflect: true, attribute: 'aria-label'})\n ariaLabel = '';\n\n /**\n * (ScwComponent) Disables the component however it disables\n * @type {string}\n */\n @property({type: String, attribute: 'aria-disabled'})\n ariaDisabled = 'false';\n\n /**\n * (ScwLinkBase)\n * Some lookups need to know if something is a link or not...\n */\n @property({type: Boolean, reflect: true, attribute: 'is-link'})\n isLink : boolean = false;\n\n /** disconnectedCallback */\n disconnectedCallback(): void {\n super.disconnectedCallback();\n if (this._lightDomMutationObserver) {\n this._lightDomMutationObserver.disconnect();\n }\n }\n\n // ====== DYNAMIC LIGHT DOM (SLOTS) ==========================================\n /**\n * (ScwComponent) Light Dom Mutation Observer\n */\n _lightDomMutationObserver? : LightDomMutationObserver;\n\n /**\n * (ScwComponent) Determines whether to watch for changes\n * in children. (not all components use light DOM)\n * @type {boolean}\n */\n @property({type: Boolean}) dynamic = false;\n\n /**\n * get defaults after initialization...light dom trumps attributes\n * @param {Map<string | number | symbol, unknown>} changedProps\n */\n firstUpdated(changedProps : Map<string | number | symbol, unknown>) {\n super.firstUpdated(changedProps);\n if (this.dynamic) {\n this._lightDomMutationObserver = new LightDomMutationObserver(\n this, () => {\n this.domMutated();\n },\n );\n }\n }\n\n /**\n * parseLightDom is a hook for classes extending this one to add\n * other parsers and validations\n */\n domMutated() {}\n // ====== END DYNAMIC ========================================================\n\n /**\n * (ScwComponent) contains the root element name for each component\n * (enum Components)\n * @type {string}\n */\n // lint-i\n @property({type: String, reflect: true}) // Components\n element: Components = Components.component;\n\n /**\n * handles warnings...things wrong with formatting, ADA, etc...\n * @param {string} message describing warning\n */\n warn( message: string ) {\n if (!this._lastWarning) {\n this._lastWarning = message;\n this.setAttribute('warning', message);\n this.setAttribute('title', `[ERROR]: ${message}`);\n }\n // con sole.error(`warning (${this.element}): ${message}`);\n }\n\n /**\n * clearWarnings\n */\n clearWarnings() {\n this._lastWarning = undefined;\n this.removeAttribute('warning');\n this.removeAttribute('title');\n }\n\n /**\n * retain the last warning sent...good for testing.\n */\n @state() _lastWarning : string | undefined;\n\n /**\n * render\n * @return {object} component DOM\n */\n render(): object {\n return html`\n <slot></slot>\n `;\n }\n}\n", "import {css} from \"lit-element/lit-element.js\";\nexport default css`\n:host {\n /* scw element */\n position: relative;\n box-sizing: border-box;\n --margin-right: initial;\n --margin-bottom: initial;\n --gap-h-int: initial;\n --gap-v-int: initial;\n margin-right: var(--margin-right, var(--gap-h-int, initial));\n margin-bottom: var(--margin-bottom, var(--gap-v-int, initial));\n display: block;\n}\n\n:host([warning]) {\n outline: 2px solid red !important;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL1VzZXJzL3Njb3R0cm91c2UvV29ya3NwYWNlL3NjdS13ZWItY29tcG9uZW50cy13ZWJzaXRlcy9zY3Utd2ViLWNvbXBvbmVudHMtd2Vic2l0ZXMvc3JjL3Njdy1jb21wb25lbnQvc2NzcyIsInNvdXJjZXMiOlsic2N3LWNvbXBvbmVudC5zY3NzIiwiLi4vLi4vLi4vZGlzdC90b2tlbnMvc291cmNlL2Nzc0FwaS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBO0FDMm90QkU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7OztBRGpwdEJGO0VBQ0UifQ== */`;\n", "import {LitElement} from 'lit';\n\n/**\n * Class to manage changes to the light dom\n */\nexport default class LightDomMutationObserver {\n /**\n * the mutation observer used\n */\n _mutationObserver : MutationObserver | undefined;\n\n /**\n * LitElement to watch...no children here..\n */\n _element : LitElement;\n\n /**\n * callback for change event\n */\n _callback : () => void | undefined;\n\n /**\n * constructor\n * @param {string} element LitElement to observe\n * @param {function} callback\n */\n constructor( element: LitElement, callback : () => void ) {\n this._element = element;\n this._callback = callback;\n this.observe();\n }\n\n /**\n * Connect LitElement to mutation observer (sans attributes)\n */\n observe() {\n this.disconnect();\n if (this._element) {\n const observerOptions = {\n characterData: true,\n childList: true,\n attributes: false, // properties takes care of this...\n subtree: true,\n };\n this._mutationObserver = new MutationObserver(\n () => this._callback(), // this._element.requestUpdate(),\n );\n this._mutationObserver.observe(this._element, observerOptions);\n }\n }\n\n /**\n * disconnect mutation observer\n */\n disconnect() {\n if (!this._mutationObserver) {\n return;\n }\n this._mutationObserver.disconnect();\n }\n}\n", "import {css} from \"lit-element/lit-element.js\";\nexport default css`\n:host {\n /* scw element */\n position: relative;\n box-sizing: border-box;\n --margin-right: initial;\n --margin-bottom: initial;\n --gap-h-int: initial;\n --gap-v-int: initial;\n margin-right: var(--margin-right, var(--gap-h-int, initial));\n margin-bottom: var(--margin-bottom, var(--gap-v-int, initial));\n display: block;\n}\n\n:host([warning]) {\n outline: 2px solid red !important;\n}\n\n:host {\n display: inline-flex;\n}\n:host nav {\n display: inline-block;\n width: 100%;\n}\n:host .heading-label {\n clip: rect(0 0 0 0);\n clip-path: inset(50%);\n height: 1px;\n overflow: hidden;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n margin: 0 !important;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL1VzZXJzL3Njb3R0cm91c2UvV29ya3NwYWNlL3NjdS13ZWItY29tcG9uZW50cy13ZWJzaXRlcy9zY3Utd2ViLWNvbXBvbmVudHMtd2Vic2l0ZXMvc3JjL3Njdy1tZW51L3Njc3MiLCJzb3VyY2VzIjpbIi4uLy4uL3Njdy1jb21wb25lbnQvc2Nzcy9zY3ctY29tcG9uZW50LnNjc3MiLCIuLi8uLi8uLi9kaXN0L3Rva2Vucy9zb3VyY2UvY3NzQXBpLnNjc3MiLCJzY3ctbWVudS5zY3NzIiwiLi4vLi4vdXRpbHMvYWRhLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7QUMyb3RCRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTs7O0FEanB0QkY7RUFDRTs7O0FFSkY7RUFDRTs7QUFFQTtFQUNFO0VBQ0E7O0FBR0Y7RUNQQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFREdFIn0= */`;\n", "/**\n * Emits a custom event with web component friendly defaults.\n * @param {string} name\n * @param {HTMLElement} target\n * @param {object} detail\n * @param {CustomEventInit} options\n * @return {object}\n */\nexport function emit(\n name: ScwEvents,\n target: HTMLElement,\n detail = {},\n options?: CustomEventInit,\n) {\n const event = new CustomEvent(\n name,\n {\n bubbles: true,\n cancelable: false,\n composed: true,\n detail,\n ...options,\n },\n );\n target.dispatchEvent(event);\n return event;\n}\n\nexport enum ScwEvents {\n focus = 'scw-focus',\n blur = 'scw-blur',\n valueChange = 'scw-value-change',\n appModeOn = 'scw-app-mode-on',\n appModeOff = 'scw-app-mode-off',\n action = 'scw-action',\n submit = 'scw-submit',\n submitIntent = 'scw-submit-intent'\n}\n", "import ScwMenu from '../ScwMenu';\nimport {Components} from '../../utils/enums/Components';\n\n/** list of elements that are tabbable */\nconst tabbablelist = [\n Components.menuItem,\n Components.icon,\n Components.link,\n Components.button,\n 'BUTTON',\n 'A',\n];\n\n/** list of elements that should be ignored */\nconst ignorelist = [\n Components.menu,\n];\n\n/**\n * walk through children from a starting point\n * @param {ScwMenu} menu\n * @param {HTMLElement} ele\n * @param {'forwards' | 'backwards'} direction\n */\nexport default function focusOnTabbableElement(\n menu: ScwMenu,\n ele: HTMLElement | undefined,\n direction: 'forwards'|'backwards',\n) {\n let targetEle = ele;\n if (!ele) {\n targetEle = findActiveMenuElement(menu);\n }\n\n if (targetEle) {\n const nextTabbleElement =\n findTabbableElement(\n menu,\n targetEle,\n direction,\n false,\n menu === targetEle,\n );\n if (nextTabbleElement) {\n nextTabbleElement.focus();\n } else {\n // at the end so try to loop around...\n const nextReversedTabbleElement =\n findTabbableElement(\n menu,\n menu,\n direction,\n );\n if (nextReversedTabbleElement) {\n nextReversedTabbleElement.focus();\n } else {\n // run away, there is nothing tabbable...\n }\n }\n }\n}\n\n/**\n * walk through children from a starting point\n * @param {ScwMenu} menu\n * @return {HTMLElement | undefined}\n */\nexport function findActiveMenuElement(\n menu: ScwMenu,\n) : HTMLElement | undefined {\n if (\n document.activeElement &&\n menu.contains( document.activeElement )\n ) {\n return document.activeElement as unknown as HTMLElement;\n }\n return undefined;\n}\n\n/**\n * get the next tabbable element\n * @param {ScwMenu} menu\n * @return {void}\n */\nexport function findNextTabbableEle( menu: ScwMenu ) {\n const activeEle = findActiveMenuElement( menu );\n if ( activeEle ) {\n return findTabbableElement( menu, activeEle );\n }\n}\n\n/**\n * get the previous tabble element\n * @param {ScwMenu} menu\n * @return {void}\n */\nexport function findPrevTabbableEle( menu: ScwMenu ) {\n const activeEle = findActiveMenuElement( menu );\n if ( activeEle ) {\n return findTabbableElement( menu, activeEle, 'backwards' );\n }\n}\n\n/**\n * walk through children from a starting point\n * @param {ScwMenu} menu\n * @param {HTMLElement} ele\n * @param {'forwards' | 'backwards'} direction\n * @param {Boolean} checkEle\n * @param {Boolean} checkChildren\n * @return {HTMLElement | false}\n */\nexport function findTabbableElement(\n menu: ScwMenu,\n ele : HTMLElement,\n direction: 'forwards' | 'backwards' = 'forwards',\n checkEle : boolean = false,\n checkChildren: boolean = true,\n) : HTMLElement | false {\n // Check the element itself\n if (!ele) return false;\n\n if (checkEle) {\n if (\n ele['element'] &&\n tabbablelist.includes( ele['element'] )\n ) {\n if (isTabbleable(ele)) {\n return ele;\n }\n } else if (\n tabbablelist.includes( ele.nodeName )\n ) {\n if (isTabbleable(ele)) {\n return ele;\n }\n }\n }\n\n // try children\n if (\n checkChildren &&\n ele.children\n ) {\n let doCheck = true;\n if (\n checkEle &&\n ignorelist.includes( ele['element'])\n ) {\n doCheck = false;\n }\n\n if ( doCheck ) {\n const children = Array.from(ele.children);\n if (direction === 'backwards') {\n children.reverse();\n }\n let tabbableEle : HTMLElement | false = false;\n children.find( (child) => {\n const result = findTabbableElement(\n menu,\n child as unknown as HTMLElement,\n direction,\n true,\n true,\n );\n if (result) {\n tabbableEle = result;\n return true;\n }\n return false;\n });\n if (isTabbleable(tabbableEle)) {\n return tabbableEle as unknown as HTMLElement;\n }\n }\n }\n\n // walk down siblings\n const sibling = (direction === 'forwards') ?\n ele.nextElementSibling : ele.previousElementSibling;\n if (sibling) {\n const result = findTabbableElement(\n menu,\n sibling as unknown as HTMLElement,\n direction,\n true,\n true,\n );\n if (isTabbleable(result)) {\n return result;\n }\n }\n\n // no children and no more siblings...go up!\n if (ele.parentElement != menu) {\n const result = findTabbableElement(\n menu,\n ele.parentElement as unknown as HTMLElement,\n direction,\n true,\n false, // infinite loop, don't check children of parent...\n );\n if (isTabbleable(result)) {\n return result;\n }\n }\n return false;\n}\n\n/**\n* last checks\n* @param {HTMLElement} ele\n* @return {HTMLElement | false}\n*/\nexport function isTabbleable(\n ele : HTMLElement | false,\n) : HTMLElement | false {\n if (!ele) {\n // cons ole.log('isTabbleable false - no ele');\n return false;\n }\n // hidden elements are not a part of the dom\n if (!ele.offsetParent) {\n // cons ole.log('isTabbleable false - no offsetParent');\n return false;\n }\n // ignore invisible elements\n if (window.getComputedStyle(ele).visibility === 'hidden') {\n // cons ole.log('isTabbleable false - not visible');\n return false;\n }\n // explicitly disabled are ignored\n if (\n ele.hasAttribute('aria-disabled') &&\n ele.getAttribute('aria-disabled') !== 'false'\n ) {\n // cons ole.log('isTabbleable false - aria-disabled');\n return false;\n }\n // disabled elements are ignored\n if (ele.hasAttribute('disabled')) {\n // cons ole.log('isTabbleable false - has disabled attribute');\n return false;\n }\n // not tabindex, no go\n if (ele.getAttribute('tabindex') === '-1') {\n // cons ole.log('isTabbleable false - tabindex is -1');\n return false;\n }\n if (ele['isLink'] === false) {\n // cons ole.log('isTabbleable false - isLink function returned false');\n return false;\n }\n return ele;\n}\n", "import ScwMenu from '../ScwMenu';\n// import ScwMenuItem from '../scw-menu-item/scw-menu-item';\n// import {dispatchCustomEvent} from '../../utils/customEvents';\n// import ScwComponent from '../scw-component/scw-component';\nimport {emit, ScwEvents} from '../../utils/events/event';\nimport\nfocusOnTabbableElement,\n{\n findActiveMenuElement,\n} from './keyboardElements';\nimport {ScwMenuDirections} from '../scw-menu-enums';\nimport ScwComponent from '../../scw-component/ScwComponent';\nimport {Components} from '../../utils/enums/Components';\n\n/**\n * ScwMenuKeyboard\n * manages all the keyboard events for ScwMenu\n */\nexport default class ScwMenuKeyboard {\n /** menu to manage */\n menu : ScwMenu;\n\n /** list of elements that are tabbable */\n tabbablelist = [\n Components.menuItem,\n Components.icon,\n Components.link,\n Components.button,\n 'BUTTON',\n 'A',\n ];\n\n /** list of elements that should be ignored */\n ignorelist = ['scw-menu'];\n\n /**\n * constructor\n * @param {ScwMenu} menu\n */\n constructor( menu: ScwMenu) {\n this.menu = menu;\n this.handleKeydown = this.handleKeydown.bind(this);\n this.initKeyboard();\n this.documentClickHandler = this.documentClickHandler.bind(this);\n // TODO: capture all menuItems at beginning.\n }\n\n /**\n * initialize keyboard event handling for ScwMenu\n */\n initKeyboard() {\n this.menu.addEventListener('focusin', (evt) => {\n if (evt.target === this.menu) {\n this.focusOnNextTabbableElement(this.menu);\n }\n // take menu out of tab index so we can tab out smoothly\n this.menu.setAttribute('tabindex', '-1');\n emit(\n ScwEvents.appModeOn,\n this.menu,\n );\n if (this.menu.isSubMenu()) {\n document.addEventListener('click', this.documentClickHandler );\n }\n });\n\n this.menu.addEventListener('focusout', (evt) => {\n if ( // don't matter if it is still within menu\n evt.relatedTarget &&\n this.menu.contains( evt.relatedTarget as unknown as HTMLElement)\n ) {\n return;\n }\n this.menu.setAttribute('tabindex', '0');\n\n emit(\n ScwEvents.appModeOff,\n this.menu,\n );\n });\n\n this.menu.addEventListener('keydown', (evt: KeyboardEvent) => {\n this.handleKeydown(evt);\n });\n\n this.menu.addEventListener('click', (evt: MouseEvent) => {\n this.clickHandler(evt);\n });\n }\n\n /**\n * close menu if clicked anywhere but menu\n * @param {MouseEvent} evt\n */\n documentClickHandler(evt: MouseEvent) {\n const target = evt.target as unknown as HTMLElement;\n if (!this.menu.contains(target)) {\n this.closeMenu();\n }\n }\n\n /**\n * closes menu if it is a submenu\n * @param {boolean} doFocus\n */\n closeMenu(doFocus = false) {\n if (this.menu.isSubMenu()) {\n document.removeEventListener('click', this.documentClickHandler );\n this.menu.ariaHidden = 'true';\n this.menu.setAttribute('aria-hidden', 'true');\n\n if (doFocus) {\n const menuItem =\n this.menu.previousElementSibling as unknown as ScwComponent;\n if (\n menuItem && menuItem.element === Components.menuItem\n ) {\n menuItem.focus();\n }\n }\n }\n }\n\n /**\n * handle clicks within the menu\n * @param {MouseEvent} evt\n */\n clickHandler(evt : MouseEvent) {\n evt.preventDefault();\n const target = evt.target as unknown as ScwComponent;\n console.log('clickHandler', target);\n if (target && target.element === Components.menuItem) {\n target.focus();\n this.toggleSubMenu();\n }\n }\n\n /**\n * opens/closes submenu if there is one\n * @return {boolean}\n */\n toggleSubMenu() : boolean {\n const subMenu = this.findSubmenu();\n if (subMenu) {\n if (subMenu.ariaHidden === 'false') {\n subMenu.ariaHidden = 'true';\n subMenu.setAttribute('aria-hidden', 'true');\n } else {\n subMenu.ariaHidden = 'false';\n subMenu.setAttribute('aria-hidden', 'false');\n setTimeout(() => {\n subMenu.focus();\n }, 0);\n }\n return true;\n }\n return false;\n }\n\n /**\n * Focus on the next tabbable element\n * @param {HTMLElement} ele\n */\n focusOnNextTabbableElement(ele?: HTMLElement) {\n focusOnTabbableElement( this.menu, ele, 'forwards' );\n }\n\n /**\n * Focus on the previous tabbable element\n * @param {HTMLElement} ele\n */\n focusOnPreviousTabbableElement(ele?: HTMLElement) {\n focusOnTabbableElement( this.menu, ele, 'backwards' );\n }\n\n /**\n * Fully stops event\n * @param {KeyboardEvent} evt\n */\n stopEvent(evt: Event) {\n evt.stopPropagation();\n evt.preventDefault();\n }\n\n /**\n * Handle keyboard down events\n * @param {KeyboardEvent} evt\n */\n handleKeydown(evt : KeyboardEvent) {\n // figure out extents of Tab\n if (\n this.menu.isSubMenu() &&\n evt.key === 'Tab'\n ) {\n if (evt.shiftKey) {// backwards....\n this.focusOnPreviousTabbableElement();\n this.stopEvent(evt);\n return;\n } else {\n this.focusOnNextTabbableElement();\n this.stopEvent(evt);\n return;\n }\n }\n\n // Otherwise look for keys\n switch (evt.key) {\n case 'ArrowRight':\n if (\n this.menu.keyboardDirection === ScwMenuDirections.vertical\n ) {\n this.toggleSubMenu();\n } else { // horizontal, either\n this.focusOnNextTabbableElement();\n }\n this.stopEvent(evt);\n break;\n case 'ArrowDown':\n if (\n this.menu.keyboardDirection === ScwMenuDirections.horizontal\n ) {\n this.toggleSubMenu();\n } else { // vertical, either\n this.focusOnNextTabbableElement();\n }\n this.stopEvent(evt);\n break;\n case 'ArrowLeft':\n if (\n this.menu.keyboardDirection === ScwMenuDirections.vertical\n ) {\n if ( !this.toggleSubMenu() ) {\n this.closeMenu(true);\n }\n } else { // horizontal, either\n this.focusOnPreviousTabbableElement();\n }\n this.stopEvent(evt);\n break;\n case 'ArrowUp':\n if (\n this.menu.keyboardDirection === ScwMenuDirections.horizontal\n ) {\n if ( !this.toggleSubMenu() ) {\n this.closeMenu(true);\n }\n } else { // horizontal, either\n this.focusOnPreviousTabbableElement();\n }\n this.stopEvent(evt);\n break;\n case 'Escape':\n this.closeMenu(true);\n this.stopEvent(evt);\n break;\n case 'Home':\n this.focusOnNextTabbableElement(this.menu);\n this.stopEvent(evt);\n break;\n case 'End':\n this.focusOnPreviousTabbableElement(this.menu);\n this.stopEvent(evt);\n break;\n }\n }\n\n /**\n * find the submenu of the focused ScwMenuItem\n * @return {ScwMenu | undefined}\n */\n findSubmenu() : ScwMenu | undefined {\n const focusedElement = findActiveMenuElement(this.menu);\n if (focusedElement) {\n const nextSibling =\n focusedElement.nextElementSibling;\n if ( nextSibling && nextSibling['element'] === Components.menu ) {\n return nextSibling as unknown as ScwMenu;\n }\n }\n return undefined;\n }\n}\n\n\n", "import ScwMenu from './ScwMenu';\ncustomElements.define('scw-menu', ScwMenu );\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["html", "property", "LitElement", "html", "property", "state", "css", "scw_component_default", "LightDomMutationObserver", "element", "callback", "observerOptions", "ScwComponent", "LitElement", "changedProps", "LightDomMutationObserver", "message", "html", "scw_component_default", "__decorateClass", "property", "state", "css", "scw_menu_default", "emit", "name", "target", "detail", "options", "event", "tabbablelist", "ignorelist", "focusOnTabbableElement", "menu", "ele", "direction", "targetEle", "findActiveMenuElement", "nextTabbleElement", "findTabbableElement", "nextReversedTabbleElement", "findTabbableElement", "menu", "ele", "direction", "checkEle", "checkChildren", "tabbablelist", "isTabbleable", "doCheck", "ignorelist", "children", "tabbableEle", "child", "result", "sibling", "ScwMenuKeyboard", "menu", "evt", "emit", "target", "doFocus", "menuItem", "subMenu", "ele", "focusOnTabbableElement", "focusedElement", "findActiveMenuElement", "nextSibling", "ScwMenu", "ScwComponent", "scw_menu_default", "changedProps", "ScwMenuKeyboard", "prev", "html", "__decorateClass", "property", "ScwMenu"]
|
|
7
|
-
}
|