@public-ui/components 1.4.0-rc.0 → 1.4.0-rc.1
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/cheat-sheet.html +6 -6
- package/custom-elements.json +3 -3
- package/dist/cjs/a11y.tipps-bd1e1e68.js +4 -0
- package/dist/cjs/a11y.tipps-bd1e1e68.js.map +1 -0
- package/dist/cjs/app-globals-78158be1.js +4 -0
- package/dist/cjs/app-globals-78158be1.js.map +1 -0
- package/dist/cjs/button-link-eca34f5d.js +4 -0
- package/dist/cjs/{button-link-a6efe03a.js.map → button-link-eca34f5d.js.map} +1 -1
- package/dist/cjs/color-71239302.js +4 -0
- package/dist/cjs/color-71239302.js.map +1 -0
- package/dist/cjs/{controller-29f3c454.js → controller-11d59cf4.js} +1 -1
- package/dist/cjs/{controller-29f3c454.js.map → controller-11d59cf4.js.map} +1 -1
- package/dist/cjs/{controller-ec5e2d7d.js → controller-3ff1c0cb.js} +1 -1
- package/dist/cjs/{controller-ec5e2d7d.js.map → controller-3ff1c0cb.js.map} +1 -1
- package/dist/cjs/{controller-ddebcf52.js → controller-8c043f6a.js} +1 -1
- package/dist/cjs/{controller-ddebcf52.js.map → controller-8c043f6a.js.map} +1 -1
- package/dist/cjs/controller-9758ea26.js +4 -0
- package/dist/cjs/{controller-7d31a408.js.map → controller-9758ea26.js.map} +1 -1
- package/dist/cjs/{controller-2a86ec5b.js → controller-ae4978e8.js} +1 -1
- package/dist/cjs/{controller-2a86ec5b.js.map → controller-ae4978e8.js.map} +1 -1
- package/dist/cjs/{controller-1584664d.js → controller-e0715879.js} +1 -1
- package/dist/cjs/{controller-1584664d.js.map → controller-e0715879.js.map} +1 -1
- package/dist/cjs/controller-icon-ae20df4e.js +4 -0
- package/dist/cjs/controller-icon-ae20df4e.js.map +1 -0
- package/dist/cjs/dev.utils-b6dd5206.js +4 -0
- package/dist/cjs/dev.utils-b6dd5206.js.map +1 -0
- package/dist/cjs/devtools-b3bb986c.js +4 -0
- package/dist/cjs/devtools-b3bb986c.js.map +1 -0
- package/dist/cjs/{i18n-d2bd0802.js → i18n-2eef9091.js} +1 -1
- package/dist/cjs/{i18n-d2bd0802.js.map → i18n-2eef9091.js.map} +1 -1
- package/dist/cjs/icon-a373f57a.js +4 -0
- package/dist/cjs/icon-a373f57a.js.map +1 -0
- package/dist/cjs/{index-35d18542.js → index-7e718c1e.js} +1 -1
- package/dist/cjs/{index-35d18542.js.map → index-7e718c1e.js.map} +1 -1
- package/dist/cjs/{index-9ee2c3ec.js → index-ecfaeef4.js} +1 -1
- package/dist/cjs/index-ecfaeef4.js.map +1 -0
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/kol-abbr.cjs.entry.js +1 -1
- package/dist/cjs/kol-abbr.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-accordion.cjs.entry.js +1 -1
- package/dist/cjs/kol-accordion.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-alert.cjs.entry.js +1 -1
- package/dist/cjs/kol-alert.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-badge.cjs.entry.js +1 -1
- package/dist/cjs/kol-badge.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-breadcrumb.cjs.entry.js +1 -1
- package/dist/cjs/kol-breadcrumb.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-button-group.cjs.entry.js +1 -1
- package/dist/cjs/kol-button-group.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-button-link.cjs.entry.js +1 -1
- package/dist/cjs/kol-button-link.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-button-wc_2.cjs.entry.js +1 -1
- package/dist/cjs/kol-button-wc_2.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-button.cjs.entry.js +1 -1
- package/dist/cjs/kol-button.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-card.cjs.entry.js +1 -1
- package/dist/cjs/kol-card.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-color.cjs.entry.js +1 -1
- package/dist/cjs/kol-color.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-counter.cjs.entry.js +1 -1
- package/dist/cjs/kol-counter.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-details.cjs.entry.js +1 -1
- package/dist/cjs/kol-details.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-form.cjs.entry.js +1 -1
- package/dist/cjs/kol-form.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-heading-wc_2.cjs.entry.js +1 -1
- package/dist/cjs/kol-heading-wc_2.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-heading.cjs.entry.js +1 -1
- package/dist/cjs/kol-heading.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-icon-font-awesome.cjs.entry.js +1 -1
- package/dist/cjs/kol-icon-font-awesome.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-icon-icofont.cjs.entry.js +1 -1
- package/dist/cjs/kol-icon-icofont.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-icon.cjs.entry.js +1 -1
- package/dist/cjs/kol-icon.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-indented-text.cjs.entry.js +1 -1
- package/dist/cjs/kol-indented-text.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-input-adapter-leanup.cjs.entry.js +1 -1
- package/dist/cjs/kol-input-adapter-leanup.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-input-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/kol-input-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-input-color.cjs.entry.js +1 -1
- package/dist/cjs/kol-input-color.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-input-date.cjs.entry.js +1 -1
- package/dist/cjs/kol-input-date.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-input-email.cjs.entry.js +1 -1
- package/dist/cjs/kol-input-email.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-input-file.cjs.entry.js +1 -1
- package/dist/cjs/kol-input-file.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-input-number.cjs.entry.js +1 -1
- package/dist/cjs/kol-input-number.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-input-password.cjs.entry.js +1 -1
- package/dist/cjs/kol-input-password.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-input-radio-group.cjs.entry.js +1 -1
- package/dist/cjs/kol-input-radio-group.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-input-radio.cjs.entry.js +1 -1
- package/dist/cjs/kol-input-radio.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-input-range.cjs.entry.js +1 -1
- package/dist/cjs/kol-input-range.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-input-text.cjs.entry.js +1 -1
- package/dist/cjs/kol-input-text.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-kolibri.cjs.entry.js +1 -1
- package/dist/cjs/kol-kolibri.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-link-button.cjs.entry.js +1 -1
- package/dist/cjs/kol-link-button.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-link-group.cjs.entry.js +1 -1
- package/dist/cjs/kol-link-group.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-link-wc.cjs.entry.js +1 -1
- package/dist/cjs/kol-link-wc.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-link.cjs.entry.js +1 -1
- package/dist/cjs/kol-link.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-logo.cjs.entry.js +1 -1
- package/dist/cjs/kol-logo.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-modal.cjs.entry.js +1 -1
- package/dist/cjs/kol-modal.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-nav.cjs.entry.js +1 -1
- package/dist/cjs/kol-nav.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-pagination.cjs.entry.js +1 -1
- package/dist/cjs/kol-pagination.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-progress.cjs.entry.js +1 -1
- package/dist/cjs/kol-progress.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-select.cjs.entry.js +1 -1
- package/dist/cjs/kol-select.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-skip-nav.cjs.entry.js +1 -1
- package/dist/cjs/kol-skip-nav.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-span.cjs.entry.js +1 -1
- package/dist/cjs/kol-span.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-spin.cjs.entry.js +1 -1
- package/dist/cjs/kol-spin.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-symbol.cjs.entry.js +1 -1
- package/dist/cjs/kol-symbol.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-table.cjs.entry.js +1 -1
- package/dist/cjs/kol-table.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-tabs.cjs.entry.js +1 -1
- package/dist/cjs/kol-tabs.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-textarea.cjs.entry.js +1 -1
- package/dist/cjs/kol-textarea.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-toast.cjs.entry.js +1 -1
- package/dist/cjs/kol-toast.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/kol-tooltip.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-version.cjs.entry.js +1 -1
- package/dist/cjs/kol-version.cjs.entry.js.map +1 -1
- package/dist/cjs/kolibri.cjs.js +1 -1
- package/dist/cjs/kolibri.cjs.js.map +1 -1
- package/dist/cjs/label-6ab9ca4e.js +4 -0
- package/dist/cjs/{label-92997e6d.js.map → label-6ab9ca4e.js.map} +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js.map +1 -1
- package/dist/cjs/{prop.validators-e366929d.js → prop.validators-292d455b.js} +1 -1
- package/dist/cjs/{prop.validators-e366929d.js.map → prop.validators-292d455b.js.map} +1 -1
- package/dist/cjs/reuse-b43997f3.js +4 -0
- package/dist/cjs/reuse-b43997f3.js.map +1 -0
- package/dist/cjs/{tab-index-7d4e8d14.js → tab-index-0a963ec3.js} +1 -1
- package/dist/cjs/{tab-index-7d4e8d14.js.map → tab-index-0a963ec3.js.map} +1 -1
- package/dist/cjs/{validation-b1132e50.js → validation-cafa32e9.js} +1 -1
- package/dist/cjs/{validation-b1132e50.js.map → validation-cafa32e9.js.map} +1 -1
- package/dist/cjs/validation-dceac8f2.js +4 -0
- package/dist/cjs/{validation-9cdc8b6c.js.map → validation-dceac8f2.js.map} +1 -1
- package/dist/components/color.js +1 -1
- package/dist/components/color.js.map +1 -1
- package/dist/components/component.js +1 -1
- package/dist/components/component.js.map +1 -1
- package/dist/components/component10.js +1 -1
- package/dist/components/component10.js.map +1 -1
- package/dist/components/component11.js +1 -1
- package/dist/components/component11.js.map +1 -1
- package/dist/components/component12.js +1 -1
- package/dist/components/component12.js.map +1 -1
- package/dist/components/component13.js +1 -1
- package/dist/components/component13.js.map +1 -1
- package/dist/components/component2.js +1 -1
- package/dist/components/component2.js.map +1 -1
- package/dist/components/component3.js +1 -1
- package/dist/components/component3.js.map +1 -1
- package/dist/components/component4.js +1 -1
- package/dist/components/component5.js +1 -1
- package/dist/components/component5.js.map +1 -1
- package/dist/components/component6.js +1 -1
- package/dist/components/component8.js +1 -1
- package/dist/components/component8.js.map +1 -1
- package/dist/components/controller-icon.js +1 -1
- package/dist/components/controller.js +1 -1
- package/dist/components/controller2.js +1 -1
- package/dist/components/controller2.js.map +1 -1
- package/dist/components/controller3.js +1 -1
- package/dist/components/controller4.js +1 -1
- package/dist/components/devtools.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/index.js.map +1 -1
- package/dist/components/kol-abbr.js +1 -1
- package/dist/components/kol-abbr.js.map +1 -1
- package/dist/components/kol-accordion.js +1 -1
- package/dist/components/kol-accordion.js.map +1 -1
- package/dist/components/kol-breadcrumb.js +1 -1
- package/dist/components/kol-breadcrumb.js.map +1 -1
- package/dist/components/kol-button-group.js +1 -1
- package/dist/components/kol-button-group.js.map +1 -1
- package/dist/components/kol-button-link.js +1 -1
- package/dist/components/kol-button-link.js.map +1 -1
- package/dist/components/kol-card.js +1 -1
- package/dist/components/kol-card.js.map +1 -1
- package/dist/components/kol-color.js +1 -1
- package/dist/components/kol-color.js.map +1 -1
- package/dist/components/kol-counter.js +1 -1
- package/dist/components/kol-counter.js.map +1 -1
- package/dist/components/kol-details.js +1 -1
- package/dist/components/kol-details.js.map +1 -1
- package/dist/components/kol-form.js +1 -1
- package/dist/components/kol-heading.js +1 -1
- package/dist/components/kol-heading.js.map +1 -1
- package/dist/components/kol-icon-font-awesome.js +1 -1
- package/dist/components/kol-icon-font-awesome.js.map +1 -1
- package/dist/components/kol-icon-icofont.js +1 -1
- package/dist/components/kol-icon-icofont.js.map +1 -1
- package/dist/components/kol-input-adapter-leanup.js +1 -1
- package/dist/components/kol-input-checkbox.js +1 -1
- package/dist/components/kol-input-checkbox.js.map +1 -1
- package/dist/components/kol-input-color.js +1 -1
- package/dist/components/kol-input-color.js.map +1 -1
- package/dist/components/kol-input-date.js +1 -1
- package/dist/components/kol-input-date.js.map +1 -1
- package/dist/components/kol-input-email.js +1 -1
- package/dist/components/kol-input-email.js.map +1 -1
- package/dist/components/kol-input-file.js +1 -1
- package/dist/components/kol-input-file.js.map +1 -1
- package/dist/components/kol-input-password.js +1 -1
- package/dist/components/kol-input-password.js.map +1 -1
- package/dist/components/kol-input-radio-group.js +1 -1
- package/dist/components/kol-input-range.js +1 -1
- package/dist/components/kol-input-range.js.map +1 -1
- package/dist/components/kol-input-text.js +1 -1
- package/dist/components/kol-input-text.js.map +1 -1
- package/dist/components/kol-kolibri.js +1 -1
- package/dist/components/kol-kolibri.js.map +1 -1
- package/dist/components/kol-link-button.js +1 -1
- package/dist/components/kol-link-button.js.map +1 -1
- package/dist/components/kol-link-group.js +1 -1
- package/dist/components/kol-link-group.js.map +1 -1
- package/dist/components/kol-logo.js +1 -1
- package/dist/components/kol-logo.js.map +1 -1
- package/dist/components/kol-modal.js +1 -1
- package/dist/components/kol-modal.js.map +1 -1
- package/dist/components/kol-nav.js +1 -1
- package/dist/components/kol-nav.js.map +1 -1
- package/dist/components/kol-progress.js +1 -1
- package/dist/components/kol-progress.js.map +1 -1
- package/dist/components/kol-skip-nav.js +1 -1
- package/dist/components/kol-skip-nav.js.map +1 -1
- package/dist/components/kol-span.js +1 -1
- package/dist/components/kol-span.js.map +1 -1
- package/dist/components/kol-spin.js +1 -1
- package/dist/components/kol-spin.js.map +1 -1
- package/dist/components/kol-table.js +1 -1
- package/dist/components/kol-table.js.map +1 -1
- package/dist/components/kol-tabs.js +1 -1
- package/dist/components/kol-tabs.js.map +1 -1
- package/dist/components/kol-textarea.js +1 -1
- package/dist/components/kol-textarea.js.map +1 -1
- package/dist/components/kol-toast.js +1 -1
- package/dist/components/kol-toast.js.map +1 -1
- package/dist/components/kol-tooltip.js +1 -1
- package/dist/components/kol-version.js +1 -1
- package/dist/components/kol-version.js.map +1 -1
- package/dist/components/prop.validators.js +1 -1
- package/dist/components/prop.validators.js.map +1 -1
- package/dist/components/shadow.js +1 -1
- package/dist/components/shadow.js.map +1 -1
- package/dist/components/shadow2.js +1 -1
- package/dist/components/shadow2.js.map +1 -1
- package/dist/components/validation.js +1 -1
- package/dist/esm/a11y.tipps-353a7f35.js +4 -0
- package/dist/esm/a11y.tipps-353a7f35.js.map +1 -0
- package/dist/esm/app-globals-ae4b65e9.js +4 -0
- package/dist/esm/app-globals-ae4b65e9.js.map +1 -0
- package/dist/esm/{button-link-d9d215b8.js → button-link-01028aae.js} +1 -1
- package/dist/esm/{button-link-d9d215b8.js.map → button-link-01028aae.js.map} +1 -1
- package/dist/esm/{color-d69786a5.js → color-8bf509b6.js} +1 -1
- package/dist/esm/color-8bf509b6.js.map +1 -0
- package/dist/esm/{controller-7adb5f0e.js → controller-28809de9.js} +1 -1
- package/dist/esm/{controller-7adb5f0e.js.map → controller-28809de9.js.map} +1 -1
- package/dist/esm/{controller-58b484bb.js → controller-8b3a25ac.js} +1 -1
- package/dist/esm/{controller-58b484bb.js.map → controller-8b3a25ac.js.map} +1 -1
- package/dist/esm/{controller-eecee40f.js → controller-b7578f6d.js} +1 -1
- package/dist/esm/{controller-eecee40f.js.map → controller-b7578f6d.js.map} +1 -1
- package/dist/esm/{controller-3cfe91c9.js → controller-de509dfa.js} +1 -1
- package/dist/esm/{controller-3cfe91c9.js.map → controller-de509dfa.js.map} +1 -1
- package/dist/esm/{controller-401e5985.js → controller-e49952b6.js} +1 -1
- package/dist/esm/{controller-401e5985.js.map → controller-e49952b6.js.map} +1 -1
- package/dist/esm/controller-e915936c.js +4 -0
- package/dist/esm/{controller-4c6206b0.js.map → controller-e915936c.js.map} +1 -1
- package/dist/esm/controller-icon-07d9636a.js +4 -0
- package/dist/esm/{controller-icon-c113ba17.js.map → controller-icon-07d9636a.js.map} +1 -1
- package/dist/esm/dev.utils-3ec9f837.js +4 -0
- package/dist/esm/dev.utils-3ec9f837.js.map +1 -0
- package/dist/esm/devtools-38fc0936.js +4 -0
- package/dist/esm/devtools-38fc0936.js.map +1 -0
- package/dist/esm/{i18n-b31d8a52.js → i18n-9b7525d8.js} +1 -1
- package/dist/esm/{i18n-b31d8a52.js.map → i18n-9b7525d8.js.map} +1 -1
- package/dist/esm/icon-5edb38e1.js +4 -0
- package/dist/esm/{icon-22dfdb71.js.map → icon-5edb38e1.js.map} +1 -1
- package/dist/esm/{index-5cef3ddc.js → index-0fb82b03.js} +1 -1
- package/dist/esm/{index-5cef3ddc.js.map → index-0fb82b03.js.map} +1 -1
- package/dist/esm/{index-2eac13ad.js → index-68b1f91c.js} +1 -1
- package/dist/esm/index-68b1f91c.js.map +1 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/kol-abbr.entry.js +1 -1
- package/dist/esm/kol-abbr.entry.js.map +1 -1
- package/dist/esm/kol-accordion.entry.js +1 -1
- package/dist/esm/kol-accordion.entry.js.map +1 -1
- package/dist/esm/kol-alert.entry.js +1 -1
- package/dist/esm/kol-alert.entry.js.map +1 -1
- package/dist/esm/kol-badge.entry.js +1 -1
- package/dist/esm/kol-badge.entry.js.map +1 -1
- package/dist/esm/kol-breadcrumb.entry.js +1 -1
- package/dist/esm/kol-breadcrumb.entry.js.map +1 -1
- package/dist/esm/kol-button-group.entry.js +1 -1
- package/dist/esm/kol-button-group.entry.js.map +1 -1
- package/dist/esm/kol-button-link.entry.js +1 -1
- package/dist/esm/kol-button-link.entry.js.map +1 -1
- package/dist/esm/kol-button-wc_2.entry.js +1 -1
- package/dist/esm/kol-button-wc_2.entry.js.map +1 -1
- package/dist/esm/kol-button.entry.js +1 -1
- package/dist/esm/kol-button.entry.js.map +1 -1
- package/dist/esm/kol-card.entry.js +1 -1
- package/dist/esm/kol-card.entry.js.map +1 -1
- package/dist/esm/kol-color.entry.js +1 -1
- package/dist/esm/kol-color.entry.js.map +1 -1
- package/dist/esm/kol-counter.entry.js +1 -1
- package/dist/esm/kol-counter.entry.js.map +1 -1
- package/dist/esm/kol-details.entry.js +1 -1
- package/dist/esm/kol-details.entry.js.map +1 -1
- package/dist/esm/kol-form.entry.js +1 -1
- package/dist/esm/kol-form.entry.js.map +1 -1
- package/dist/esm/kol-heading-wc_2.entry.js +1 -1
- package/dist/esm/kol-heading-wc_2.entry.js.map +1 -1
- package/dist/esm/kol-heading.entry.js +1 -1
- package/dist/esm/kol-heading.entry.js.map +1 -1
- package/dist/esm/kol-icon-font-awesome.entry.js +1 -1
- package/dist/esm/kol-icon-font-awesome.entry.js.map +1 -1
- package/dist/esm/kol-icon-icofont.entry.js +1 -1
- package/dist/esm/kol-icon-icofont.entry.js.map +1 -1
- package/dist/esm/kol-icon.entry.js +1 -1
- package/dist/esm/kol-icon.entry.js.map +1 -1
- package/dist/esm/kol-indented-text.entry.js +1 -1
- package/dist/esm/kol-indented-text.entry.js.map +1 -1
- package/dist/esm/kol-input-adapter-leanup.entry.js +1 -1
- package/dist/esm/kol-input-adapter-leanup.entry.js.map +1 -1
- package/dist/esm/kol-input-checkbox.entry.js +1 -1
- package/dist/esm/kol-input-checkbox.entry.js.map +1 -1
- package/dist/esm/kol-input-color.entry.js +1 -1
- package/dist/esm/kol-input-color.entry.js.map +1 -1
- package/dist/esm/kol-input-date.entry.js +1 -1
- package/dist/esm/kol-input-date.entry.js.map +1 -1
- package/dist/esm/kol-input-email.entry.js +1 -1
- package/dist/esm/kol-input-email.entry.js.map +1 -1
- package/dist/esm/kol-input-file.entry.js +1 -1
- package/dist/esm/kol-input-file.entry.js.map +1 -1
- package/dist/esm/kol-input-number.entry.js +1 -1
- package/dist/esm/kol-input-number.entry.js.map +1 -1
- package/dist/esm/kol-input-password.entry.js +1 -1
- package/dist/esm/kol-input-password.entry.js.map +1 -1
- package/dist/esm/kol-input-radio-group.entry.js +1 -1
- package/dist/esm/kol-input-radio-group.entry.js.map +1 -1
- package/dist/esm/kol-input-radio.entry.js +1 -1
- package/dist/esm/kol-input-radio.entry.js.map +1 -1
- package/dist/esm/kol-input-range.entry.js +1 -1
- package/dist/esm/kol-input-range.entry.js.map +1 -1
- package/dist/esm/kol-input-text.entry.js +1 -1
- package/dist/esm/kol-input-text.entry.js.map +1 -1
- package/dist/esm/kol-kolibri.entry.js +1 -1
- package/dist/esm/kol-kolibri.entry.js.map +1 -1
- package/dist/esm/kol-link-button.entry.js +1 -1
- package/dist/esm/kol-link-button.entry.js.map +1 -1
- package/dist/esm/kol-link-group.entry.js +1 -1
- package/dist/esm/kol-link-group.entry.js.map +1 -1
- package/dist/esm/kol-link-wc.entry.js +1 -1
- package/dist/esm/kol-link-wc.entry.js.map +1 -1
- package/dist/esm/kol-link.entry.js +1 -1
- package/dist/esm/kol-link.entry.js.map +1 -1
- package/dist/esm/kol-logo.entry.js +1 -1
- package/dist/esm/kol-logo.entry.js.map +1 -1
- package/dist/esm/kol-modal.entry.js +1 -1
- package/dist/esm/kol-modal.entry.js.map +1 -1
- package/dist/esm/kol-nav.entry.js +1 -1
- package/dist/esm/kol-nav.entry.js.map +1 -1
- package/dist/esm/kol-pagination.entry.js +1 -1
- package/dist/esm/kol-pagination.entry.js.map +1 -1
- package/dist/esm/kol-progress.entry.js +1 -1
- package/dist/esm/kol-progress.entry.js.map +1 -1
- package/dist/esm/kol-select.entry.js +1 -1
- package/dist/esm/kol-select.entry.js.map +1 -1
- package/dist/esm/kol-skip-nav.entry.js +1 -1
- package/dist/esm/kol-skip-nav.entry.js.map +1 -1
- package/dist/esm/kol-span.entry.js +1 -1
- package/dist/esm/kol-span.entry.js.map +1 -1
- package/dist/esm/kol-spin.entry.js +1 -1
- package/dist/esm/kol-spin.entry.js.map +1 -1
- package/dist/esm/kol-symbol.entry.js +1 -1
- package/dist/esm/kol-symbol.entry.js.map +1 -1
- package/dist/esm/kol-table.entry.js +1 -1
- package/dist/esm/kol-table.entry.js.map +1 -1
- package/dist/esm/kol-tabs.entry.js +1 -1
- package/dist/esm/kol-tabs.entry.js.map +1 -1
- package/dist/esm/kol-textarea.entry.js +1 -1
- package/dist/esm/kol-textarea.entry.js.map +1 -1
- package/dist/esm/kol-toast.entry.js +1 -1
- package/dist/esm/kol-toast.entry.js.map +1 -1
- package/dist/esm/kol-tooltip.entry.js +1 -1
- package/dist/esm/kol-tooltip.entry.js.map +1 -1
- package/dist/esm/kol-version.entry.js +1 -1
- package/dist/esm/kol-version.entry.js.map +1 -1
- package/dist/esm/kolibri.js +1 -1
- package/dist/esm/kolibri.js.map +1 -1
- package/dist/esm/label-e7bacbab.js +4 -0
- package/dist/esm/{label-3f6eb03e.js.map → label-e7bacbab.js.map} +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/loader.js.map +1 -1
- package/dist/esm/{prop.validators-0ce5851c.js → prop.validators-62a61880.js} +1 -1
- package/dist/esm/{prop.validators-0ce5851c.js.map → prop.validators-62a61880.js.map} +1 -1
- package/dist/esm/reuse-2b3b6999.js +4 -0
- package/dist/esm/reuse-2b3b6999.js.map +1 -0
- package/dist/esm/{tab-index-e15e7adc.js → tab-index-3378b139.js} +1 -1
- package/dist/esm/{tab-index-e15e7adc.js.map → tab-index-3378b139.js.map} +1 -1
- package/dist/esm/validation-0dc15e8d.js +4 -0
- package/dist/esm/{validation-470a9e9e.js.map → validation-0dc15e8d.js.map} +1 -1
- package/dist/esm/validation-5c3578c0.js +4 -0
- package/dist/esm/{validation-cac8ee73.js.map → validation-5c3578c0.js.map} +1 -1
- package/dist/kolibri/a11y.tipps-353a7f35.js +4 -0
- package/dist/kolibri/a11y.tipps-353a7f35.js.map +1 -0
- package/dist/kolibri/app-globals-ae4b65e9.js +4 -0
- package/dist/kolibri/app-globals-ae4b65e9.js.map +1 -0
- package/dist/kolibri/button-link-01028aae.js +4 -0
- package/dist/kolibri/{button-link-d9d215b8.js.map → button-link-01028aae.js.map} +0 -0
- package/dist/kolibri/color-8bf509b6.js +4 -0
- package/dist/kolibri/color-8bf509b6.js.map +1 -0
- package/dist/kolibri/{controller-7adb5f0e.js → controller-28809de9.js} +1 -1
- package/dist/kolibri/{controller-7adb5f0e.js.map → controller-28809de9.js.map} +0 -0
- package/dist/kolibri/controller-8b3a25ac.js +4 -0
- package/dist/kolibri/{controller-58b484bb.js.map → controller-8b3a25ac.js.map} +0 -0
- package/dist/kolibri/{controller-eecee40f.js → controller-b7578f6d.js} +1 -1
- package/dist/kolibri/{controller-eecee40f.js.map → controller-b7578f6d.js.map} +0 -0
- package/dist/kolibri/{controller-3cfe91c9.js → controller-de509dfa.js} +1 -1
- package/dist/kolibri/{controller-3cfe91c9.js.map → controller-de509dfa.js.map} +0 -0
- package/dist/kolibri/{controller-401e5985.js → controller-e49952b6.js} +1 -1
- package/dist/kolibri/{controller-401e5985.js.map → controller-e49952b6.js.map} +0 -0
- package/dist/kolibri/controller-e915936c.js +4 -0
- package/dist/kolibri/{controller-4c6206b0.js.map → controller-e915936c.js.map} +1 -1
- package/dist/kolibri/controller-icon-07d9636a.js +4 -0
- package/dist/kolibri/{controller-icon-c113ba17.js.map → controller-icon-07d9636a.js.map} +1 -1
- package/dist/kolibri/dev.utils-3ec9f837.js +4 -0
- package/dist/kolibri/dev.utils-3ec9f837.js.map +1 -0
- package/dist/kolibri/devtools-38fc0936.js +4 -0
- package/dist/kolibri/{devtools-d2ea86e5.js.map → devtools-38fc0936.js.map} +1 -1
- package/dist/kolibri/{i18n-b31d8a52.js → i18n-9b7525d8.js} +1 -1
- package/dist/kolibri/{i18n-b31d8a52.js.map → i18n-9b7525d8.js.map} +0 -0
- package/dist/kolibri/icon-5edb38e1.js +4 -0
- package/dist/kolibri/{icon-22dfdb71.js.map → icon-5edb38e1.js.map} +1 -1
- package/dist/kolibri/{index-5cef3ddc.js → index-0fb82b03.js} +1 -1
- package/dist/kolibri/{index-5cef3ddc.js.map → index-0fb82b03.js.map} +0 -0
- package/dist/kolibri/index-68b1f91c.js +4 -0
- package/dist/kolibri/index-68b1f91c.js.map +1 -0
- package/dist/kolibri/index.esm.js +1 -1
- package/dist/kolibri/kol-abbr.entry.js +1 -1
- package/dist/kolibri/kol-abbr.entry.js.map +1 -1
- package/dist/kolibri/kol-accordion.entry.js +1 -1
- package/dist/kolibri/kol-accordion.entry.js.map +1 -1
- package/dist/kolibri/kol-alert.entry.js +1 -1
- package/dist/kolibri/kol-alert.entry.js.map +1 -1
- package/dist/kolibri/kol-badge.entry.js +1 -1
- package/dist/kolibri/kol-badge.entry.js.map +1 -1
- package/dist/kolibri/kol-breadcrumb.entry.js +1 -1
- package/dist/kolibri/kol-breadcrumb.entry.js.map +1 -1
- package/dist/kolibri/kol-button-group.entry.js +1 -1
- package/dist/kolibri/kol-button-group.entry.js.map +1 -1
- package/dist/kolibri/kol-button-link.entry.js +1 -1
- package/dist/kolibri/kol-button-link.entry.js.map +1 -1
- package/dist/kolibri/kol-button-wc_2.entry.js +1 -1
- package/dist/kolibri/kol-button-wc_2.entry.js.map +1 -1
- package/dist/kolibri/kol-button.entry.js +1 -1
- package/dist/kolibri/kol-button.entry.js.map +1 -1
- package/dist/kolibri/kol-card.entry.js +1 -1
- package/dist/kolibri/kol-card.entry.js.map +1 -1
- package/dist/kolibri/kol-color.entry.js +1 -1
- package/dist/kolibri/kol-color.entry.js.map +1 -1
- package/dist/kolibri/kol-counter.entry.js +1 -1
- package/dist/kolibri/kol-counter.entry.js.map +1 -1
- package/dist/kolibri/kol-details.entry.js +1 -1
- package/dist/kolibri/kol-details.entry.js.map +1 -1
- package/dist/kolibri/kol-form.entry.js +1 -1
- package/dist/kolibri/kol-form.entry.js.map +1 -1
- package/dist/kolibri/kol-heading-wc_2.entry.js +1 -1
- package/dist/kolibri/kol-heading-wc_2.entry.js.map +1 -1
- package/dist/kolibri/kol-heading.entry.js +1 -1
- package/dist/kolibri/kol-heading.entry.js.map +1 -1
- package/dist/kolibri/kol-icon-font-awesome.entry.js +1 -1
- package/dist/kolibri/kol-icon-font-awesome.entry.js.map +1 -1
- package/dist/kolibri/kol-icon-icofont.entry.js +1 -1
- package/dist/kolibri/kol-icon-icofont.entry.js.map +1 -1
- package/dist/kolibri/kol-icon.entry.js +1 -1
- package/dist/kolibri/kol-icon.entry.js.map +1 -1
- package/dist/kolibri/kol-indented-text.entry.js +1 -1
- package/dist/kolibri/kol-indented-text.entry.js.map +1 -1
- package/dist/kolibri/kol-input-adapter-leanup.entry.js +1 -1
- package/dist/kolibri/kol-input-adapter-leanup.entry.js.map +1 -1
- package/dist/kolibri/kol-input-checkbox.entry.js +1 -1
- package/dist/kolibri/kol-input-checkbox.entry.js.map +1 -1
- package/dist/kolibri/kol-input-color.entry.js +1 -1
- package/dist/kolibri/kol-input-color.entry.js.map +1 -1
- package/dist/kolibri/kol-input-date.entry.js +1 -1
- package/dist/kolibri/kol-input-date.entry.js.map +1 -1
- package/dist/kolibri/kol-input-email.entry.js +1 -1
- package/dist/kolibri/kol-input-email.entry.js.map +1 -1
- package/dist/kolibri/kol-input-file.entry.js +1 -1
- package/dist/kolibri/kol-input-file.entry.js.map +1 -1
- package/dist/kolibri/kol-input-number.entry.js +1 -1
- package/dist/kolibri/kol-input-number.entry.js.map +1 -1
- package/dist/kolibri/kol-input-password.entry.js +1 -1
- package/dist/kolibri/kol-input-password.entry.js.map +1 -1
- package/dist/kolibri/kol-input-radio-group.entry.js +1 -1
- package/dist/kolibri/kol-input-radio-group.entry.js.map +1 -1
- package/dist/kolibri/kol-input-radio.entry.js +1 -1
- package/dist/kolibri/kol-input-radio.entry.js.map +1 -1
- package/dist/kolibri/kol-input-range.entry.js +1 -1
- package/dist/kolibri/kol-input-range.entry.js.map +1 -1
- package/dist/kolibri/kol-input-text.entry.js +1 -1
- package/dist/kolibri/kol-input-text.entry.js.map +1 -1
- package/dist/kolibri/kol-kolibri.entry.js +1 -1
- package/dist/kolibri/kol-kolibri.entry.js.map +1 -1
- package/dist/kolibri/kol-link-button.entry.js +1 -1
- package/dist/kolibri/kol-link-button.entry.js.map +1 -1
- package/dist/kolibri/kol-link-group.entry.js +1 -1
- package/dist/kolibri/kol-link-group.entry.js.map +1 -1
- package/dist/kolibri/kol-link-wc.entry.js +1 -1
- package/dist/kolibri/kol-link-wc.entry.js.map +1 -1
- package/dist/kolibri/kol-link.entry.js +1 -1
- package/dist/kolibri/kol-link.entry.js.map +1 -1
- package/dist/kolibri/kol-logo.entry.js +1 -1
- package/dist/kolibri/kol-logo.entry.js.map +1 -1
- package/dist/kolibri/kol-modal.entry.js +1 -1
- package/dist/kolibri/kol-modal.entry.js.map +1 -1
- package/dist/kolibri/kol-nav.entry.js +1 -1
- package/dist/kolibri/kol-nav.entry.js.map +1 -1
- package/dist/kolibri/kol-pagination.entry.js +1 -1
- package/dist/kolibri/kol-pagination.entry.js.map +1 -1
- package/dist/kolibri/kol-progress.entry.js +1 -1
- package/dist/kolibri/kol-progress.entry.js.map +1 -1
- package/dist/kolibri/kol-select.entry.js +1 -1
- package/dist/kolibri/kol-select.entry.js.map +1 -1
- package/dist/kolibri/kol-skip-nav.entry.js +1 -1
- package/dist/kolibri/kol-skip-nav.entry.js.map +1 -1
- package/dist/kolibri/kol-span.entry.js +1 -1
- package/dist/kolibri/kol-span.entry.js.map +1 -1
- package/dist/kolibri/kol-spin.entry.js +1 -1
- package/dist/kolibri/kol-spin.entry.js.map +1 -1
- package/dist/kolibri/kol-symbol.entry.js +1 -1
- package/dist/kolibri/kol-symbol.entry.js.map +1 -1
- package/dist/kolibri/kol-table.entry.js +1 -1
- package/dist/kolibri/kol-table.entry.js.map +1 -1
- package/dist/kolibri/kol-tabs.entry.js +1 -1
- package/dist/kolibri/kol-tabs.entry.js.map +1 -1
- package/dist/kolibri/kol-textarea.entry.js +1 -1
- package/dist/kolibri/kol-textarea.entry.js.map +1 -1
- package/dist/kolibri/kol-toast.entry.js +1 -1
- package/dist/kolibri/kol-toast.entry.js.map +1 -1
- package/dist/kolibri/kol-tooltip.entry.js +1 -1
- package/dist/kolibri/kol-tooltip.entry.js.map +1 -1
- package/dist/kolibri/kol-version.entry.js +1 -1
- package/dist/kolibri/kol-version.entry.js.map +1 -1
- package/dist/kolibri/kolibri.esm.js +1 -1
- package/dist/kolibri/kolibri.esm.js.map +1 -1
- package/dist/kolibri/label-e7bacbab.js +4 -0
- package/dist/kolibri/{label-3f6eb03e.js.map → label-e7bacbab.js.map} +1 -1
- package/dist/kolibri/{prop.validators-0ce5851c.js → prop.validators-62a61880.js} +1 -1
- package/dist/kolibri/prop.validators-62a61880.js.map +1 -0
- package/dist/kolibri/reuse-2b3b6999.js +4 -0
- package/dist/kolibri/reuse-2b3b6999.js.map +1 -0
- package/dist/kolibri/tab-index-3378b139.js +4 -0
- package/dist/kolibri/{tab-index-e15e7adc.js.map → tab-index-3378b139.js.map} +1 -1
- package/dist/kolibri/{validation-470a9e9e.js → validation-0dc15e8d.js} +1 -1
- package/dist/kolibri/{validation-470a9e9e.js.map → validation-0dc15e8d.js.map} +0 -0
- package/dist/kolibri/validation-5c3578c0.js +4 -0
- package/dist/kolibri/{validation-cac8ee73.js.map → validation-5c3578c0.js.map} +0 -0
- package/dist/types/components/badge/contrast.d.ts +9 -6
- package/dist/types/utils/reuse.d.ts +3 -0
- package/doc/badge.md +8 -8
- package/doc/icon-icofont.md +1 -1
- package/jest-test-results.json +1 -1
- package/package.json +1 -1
- package/vscode-custom-data.json +3 -3
- package/dist/cjs/a11y.tipps-e1770acf.js +0 -4
- package/dist/cjs/a11y.tipps-e1770acf.js.map +0 -1
- package/dist/cjs/app-globals-d2684355.js +0 -4
- package/dist/cjs/app-globals-d2684355.js.map +0 -1
- package/dist/cjs/button-link-a6efe03a.js +0 -4
- package/dist/cjs/color-54989457.js +0 -4
- package/dist/cjs/color-54989457.js.map +0 -1
- package/dist/cjs/controller-7d31a408.js +0 -4
- package/dist/cjs/controller-icon-222f331c.js +0 -4
- package/dist/cjs/controller-icon-222f331c.js.map +0 -1
- package/dist/cjs/dev.utils-2353100d.js +0 -4
- package/dist/cjs/dev.utils-2353100d.js.map +0 -1
- package/dist/cjs/devtools-3cff8604.js +0 -4
- package/dist/cjs/devtools-3cff8604.js.map +0 -1
- package/dist/cjs/icon-4ba7c898.js +0 -4
- package/dist/cjs/icon-4ba7c898.js.map +0 -1
- package/dist/cjs/index-9ee2c3ec.js.map +0 -1
- package/dist/cjs/label-92997e6d.js +0 -4
- package/dist/cjs/reuse-28825ead.js +0 -4
- package/dist/cjs/reuse-28825ead.js.map +0 -1
- package/dist/cjs/validation-9cdc8b6c.js +0 -4
- package/dist/cjs/validator-953ea58f.js +0 -4
- package/dist/cjs/validator-953ea58f.js.map +0 -1
- package/dist/esm/a11y.tipps-ff5a1a99.js +0 -4
- package/dist/esm/a11y.tipps-ff5a1a99.js.map +0 -1
- package/dist/esm/app-globals-42336357.js +0 -4
- package/dist/esm/app-globals-42336357.js.map +0 -1
- package/dist/esm/color-d69786a5.js.map +0 -1
- package/dist/esm/controller-4c6206b0.js +0 -4
- package/dist/esm/controller-icon-c113ba17.js +0 -4
- package/dist/esm/dev.utils-daaf2f39.js +0 -4
- package/dist/esm/dev.utils-daaf2f39.js.map +0 -1
- package/dist/esm/devtools-d2ea86e5.js +0 -4
- package/dist/esm/devtools-d2ea86e5.js.map +0 -1
- package/dist/esm/icon-22dfdb71.js +0 -4
- package/dist/esm/index-2eac13ad.js.map +0 -1
- package/dist/esm/label-3f6eb03e.js +0 -4
- package/dist/esm/reuse-2f7da8fc.js +0 -4
- package/dist/esm/reuse-2f7da8fc.js.map +0 -1
- package/dist/esm/validation-470a9e9e.js +0 -4
- package/dist/esm/validation-cac8ee73.js +0 -4
- package/dist/esm/validator-2e4f8df6.js +0 -4
- package/dist/esm/validator-2e4f8df6.js.map +0 -1
- package/dist/kolibri/a11y.tipps-ff5a1a99.js +0 -4
- package/dist/kolibri/a11y.tipps-ff5a1a99.js.map +0 -1
- package/dist/kolibri/app-globals-42336357.js +0 -4
- package/dist/kolibri/app-globals-42336357.js.map +0 -1
- package/dist/kolibri/button-link-d9d215b8.js +0 -4
- package/dist/kolibri/color-d69786a5.js +0 -4
- package/dist/kolibri/color-d69786a5.js.map +0 -1
- package/dist/kolibri/controller-4c6206b0.js +0 -4
- package/dist/kolibri/controller-58b484bb.js +0 -4
- package/dist/kolibri/controller-icon-c113ba17.js +0 -4
- package/dist/kolibri/dev.utils-daaf2f39.js +0 -4
- package/dist/kolibri/dev.utils-daaf2f39.js.map +0 -1
- package/dist/kolibri/devtools-d2ea86e5.js +0 -4
- package/dist/kolibri/icon-22dfdb71.js +0 -4
- package/dist/kolibri/index-2eac13ad.js +0 -4
- package/dist/kolibri/index-2eac13ad.js.map +0 -1
- package/dist/kolibri/label-3f6eb03e.js +0 -4
- package/dist/kolibri/prop.validators-0ce5851c.js.map +0 -1
- package/dist/kolibri/reuse-2f7da8fc.js +0 -4
- package/dist/kolibri/reuse-2f7da8fc.js.map +0 -1
- package/dist/kolibri/tab-index-e15e7adc.js +0 -4
- package/dist/kolibri/validation-cac8ee73.js +0 -4
- package/dist/kolibri/validator-2e4f8df6.js +0 -4
- package/dist/kolibri/validator-2e4f8df6.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["defaultStyleCss","featureHint","KolAccordion","this","catchAriaExpanded","button","HTMLButtonElement","buttonRef","triggerAriaExpanded","setAttribute","state","_open","onClick","event","timeout","setTimeout","clearTimeout","_a","_on","_heading","_level","render","h","Host","part","ref","_ariaLabel","_icon","_part","name","style","display","height","visibility","undefined","validateHeading","value","watchString","required","validateLevel","watchHeadingLevel","validateOn","setState","validateOpen","watchBoolean","componentWillLoad"],"sources":["./src/components/style.sass?tag=kol-accordion&mode=default&encapsulation=shadow","./src/components/accordion/component.tsx"],"sourcesContent":["
|
|
1
|
+
{"version":3,"names":["defaultStyleCss","featureHint","KolAccordion","this","catchAriaExpanded","button","HTMLButtonElement","buttonRef","triggerAriaExpanded","setAttribute","state","_open","onClick","event","timeout","setTimeout","clearTimeout","_a","_on","_heading","_level","render","h","Host","part","ref","_ariaLabel","_icon","_part","name","style","display","height","visibility","undefined","validateHeading","value","watchString","required","validateLevel","watchHeadingLevel","validateOn","setState","validateOpen","watchBoolean","componentWillLoad"],"sources":["./src/components/style.sass?tag=kol-accordion&mode=default&encapsulation=shadow","./src/components/accordion/component.tsx"],"sourcesContent":["*\n\tbox-sizing: border-box\n\tfont-size: inherit\n\thyphens: auto\n\tletter-spacing: inherit\n\tword-break: break-word\n\tword-spacing: inherit\n\nkol-heading-wc\n\tfont-weight: bold\n\nkol-icon\n\tcolor: inherit\n\nkol-span-wc\n\tdisplay: grid\n\tplace-items: center\n\twidth: 100%\n\n\t> span\n\t\tdisplay: flex\n\t\tgap: 0.25rem\n\t\tplace-items: center\n\na,\nbutton,\ninput,\nselect,\ntextarea\n\tcursor: pointer\n\na,\nbutton\n\t&.icon-only\n\n\t\t> kol-span-wc\n\n\t\t\t> span\n\n\t\t\t\t> span\n\t\t\t\t\tdisplay: none\n\na\n\tdisplay: inline-flex\n\tplace-items: baseline\n\nbutton\n\tbackground-color: transparent\n\tborder-width: 0\n","// https://codepen.io/mbxtr/pen/OJPOYg?html-preprocessor=haml\n\nimport { Generic } from '@a11y-ui/core';\nimport { Component, h, Host, JSX, Prop, State, Watch } from '@stencil/core';\nimport { Events } from '../../enums/events';\n\nimport { EventValueCallback } from '../../types/callbacks';\nimport { HeadingLevel } from '../../types/heading-level';\nimport { featureHint } from '../../utils/a11y.tipps';\nimport { setState, watchBoolean, watchString } from '../../utils/prop.validators';\nimport { watchHeadingLevel } from '../heading/validation';\n\nfeatureHint(`[KolAccordion] Anfrage nach einer KolAccordionGroup bei dem immer nur ein Accordion geöffnet ist.\n\n- onClick auf der KolAccordion anwenden\n- Click-Event prüft den _open-Status der Accordions\n- Logik Öffnet und Schließt entsprechend`);\nfeatureHint(`[KolAccordion] Tab-Sperre des Inhalts im geschlossenen Zustand.`);\n\nexport type KoliBriAccordionCallbacks = {\n\t[Events.onClick]?: EventValueCallback<Event, boolean>;\n};\n\n/**\n * API\n */\ntype RequiredProps = {\n\theading: string;\n};\ntype OptionalProps = {\n\tlevel: HeadingLevel;\n\topen: boolean;\n\ton: KoliBriAccordionCallbacks;\n};\nexport type Props = Generic.Element.Members<RequiredProps, OptionalProps>;\n\ntype RequiredStates = RequiredProps;\ntype OptionalStates = OptionalProps;\ntype States = Generic.Element.Members<RequiredStates, OptionalStates>;\n\n/**\n * @part accordion - Ermöglicht das Stylen des äußeren Container des Accordions.\n * @part open - Ermöglicht das Stylen des geöffneten Zustands und Icons.\n * @part close - Ermöglicht das Stylen des geschlossenen Zustands und Icons.\n * @part icon - Ermöglicht das Stylen der Icons.\n * @part header - Ermöglicht das Stylen des Kopfbereichs.\n * @part content - Ermöglicht das Stylen des Inhaltsbereichs.\n *\n * @slot header - Ermöglicht das Einfügen beliebigen HTML's in den Kopfbereich des Accordions.\n * @slot content - Ermöglicht das Einfügen beliebigen HTML's in den Inhaltsbereich des Accordions.\n */\n@Component({\n\ttag: 'kol-accordion',\n\tstyleUrls: {\n\t\tdefault: '../style.sass',\n\t},\n\tshadow: true,\n})\nexport class KolAccordion implements Generic.Element.ComponentApi<RequiredProps, OptionalProps, RequiredStates, OptionalStates> {\n\tprivate buttonRef?: HTMLButtonElement;\n\t// private content?: HTMLDivElement;\n\n\tprivate catchAriaExpanded = (button?: HTMLButtonElement) => {\n\t\tif (button instanceof HTMLButtonElement) {\n\t\t\tthis.buttonRef = button;\n\t\t\tthis.triggerAriaExpanded(button);\n\t\t}\n\t};\n\tprivate triggerAriaExpanded = (button: HTMLButtonElement) => {\n\t\tbutton.setAttribute('aria-expanded', this.state._open ? 'true' : 'false');\n\t};\n\n\tpublic render(): JSX.Element {\n\t\t// const height = this.content?.getBoundingClientRect().height ?? 0;\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<div part={`accordion ${this.state._open ? 'open' : 'close'}`}>\n\t\t\t\t\t<kol-heading-wc _level={this.state._level}>\n\t\t\t\t\t\t<button ref={this.catchAriaExpanded} onClick={this.onClick}>\n\t\t\t\t\t\t\t<kol-icon _ariaLabel=\"\" _icon={this.state._open ? 'fa-solid fa-minus' : 'fa-solid fa-plus'} _part={this.state._open ? 'close' : 'open'} />\n\t\t\t\t\t\t\t<span>{this.state._heading}</span>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</kol-heading-wc>\n\t\t\t\t\t<div part=\"header\">\n\t\t\t\t\t\t<slot name=\"header\" />\n\t\t\t\t\t</div>\n\t\t\t\t\t<div\n\t\t\t\t\t\tpart=\"content\"\n\t\t\t\t\t\t// ref={(r) => (this.content = r)}\n\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\tthis.state._open === false\n\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t\t\t\t\theight: '0',\n\t\t\t\t\t\t\t\t\t\tvisibility: 'hidden',\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// style={\n\t\t\t\t\t\t// \tthis.state._open\n\t\t\t\t\t\t// \t\t? height > 0 && processEnv !== 'test' // TODO: remove this check when testing is fixed\n\t\t\t\t\t\t// \t\t\t? {\n\t\t\t\t\t\t// \t\t\t\theight: `${height}px`,\n\t\t\t\t\t\t// \t\t\t\toverflow: 'hidden',\n\t\t\t\t\t\t// \t\t\t}\n\t\t\t\t\t\t// \t\t\t: undefined\n\t\t\t\t\t\t// \t\t: {\n\t\t\t\t\t\t// \t\t\theight: '0',\n\t\t\t\t\t\t// \t\t\toverflow: 'hidden',\n\t\t\t\t\t\t// \t\t\tvisibility: 'hidden',\n\t\t\t\t\t\t// \t\t}\n\t\t\t\t\t\t// }\n\t\t\t\t\t>\n\t\t\t\t\t\t<slot name=\"content\" />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Gibt die Überschrift des Accordions an.\n\t */\n\t@Prop() public _heading!: string;\n\n\t/**\n\t * Gibt an, welchen H-Level von 1 bis 6 die Überschrift hat.\n\t */\n\t@Prop() public _level?: HeadingLevel = 1;\n\n\t/**\n\t * Gibt die EventCallback-Funktionen an.\n\t */\n\t@Prop() public _on?: KoliBriAccordionCallbacks;\n\n\t/**\n\t * Gibt an, ob das Accordion geöffnet ist.\n\t */\n\t@Prop({ mutable: true, reflect: true }) public _open?: boolean = false;\n\n\t/**\n\t * @see: components/abbr/component.tsx (@State)\n\t */\n\t@State() public state: States = {\n\t\t_heading: '⚠',\n\t\t_level: 1,\n\t};\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_heading')\n\tpublic validateHeading(value?: string): void {\n\t\twatchString(this, '_heading', value, {\n\t\t\trequired: true,\n\t\t});\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_level')\n\tpublic validateLevel(value?: HeadingLevel): void {\n\t\twatchHeadingLevel(this, value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_on')\n\tpublic validateOn(value?: KoliBriAccordionCallbacks): void {\n\t\tif (typeof value === 'object' && value !== null && typeof value.onClick === 'function') {\n\t\t\tsetState(this, '_on', value);\n\t\t}\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_open')\n\tpublic validateOpen(value?: boolean): void {\n\t\twatchBoolean(this, '_open', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (componentWillLoad)\n\t */\n\tpublic componentWillLoad(): void {\n\t\tthis.validateHeading(this._heading);\n\t\tthis.validateLevel(this._level);\n\t\tthis.validateOn(this._on);\n\t\tthis.validateOpen(this._open);\n\t}\n\n\tprivate onClick = (event: Event) => {\n\t\tthis._open = this._open === false;\n\n\t\t/**\n\t\t * Der Timeout wird benötigt, damit das Event\n\t\t * vom Button- auf das Accordion-Event wechselt.\n\t\t * So ist es dem Anwendenden möglich das _open-\n\t\t * Attribute abzufragen.\n\t\t */\n\t\tconst timeout = setTimeout(() => {\n\t\t\tclearTimeout(timeout);\n\t\t\tif (typeof this.state._on?.onClick === 'function') {\n\t\t\t\tthis.state._on.onClick(event, this._open === true);\n\t\t\t}\n\t\t\tif (this.buttonRef instanceof HTMLButtonElement) {\n\t\t\t\tthis.triggerAriaExpanded(this.buttonRef);\n\t\t\t}\n\t\t});\n\t};\n}\n"],"mappings":";;;sUAAA,MAAMA,EAAkB,ygBCYxBC,EAAY,+OAKZA,EAAY,mE,MAyCCC,EAAY,M,yBAIhBC,KAAAC,kBAAqBC,IAC5B,GAAIA,aAAkBC,kBAAmB,CACxCH,KAAKI,UAAYF,EACjBF,KAAKK,oBAAoBH,E,GAGnBF,KAAAK,oBAAuBH,IAC9BA,EAAOI,aAAa,gBAAiBN,KAAKO,MAAMC,MAAQ,OAAS,QAAQ,EA6HlER,KAAAS,QAAWC,IAClBV,KAAKQ,MAAQR,KAAKQ,QAAU,MAQ5B,MAAMG,EAAUC,YAAW,K,MAC1BC,aAAaF,GACb,WAAWG,EAAAd,KAAKO,MAAMQ,OAAG,MAAAD,SAAA,SAAAA,EAAEL,WAAY,WAAY,CAClDT,KAAKO,MAAMQ,IAAIN,QAAQC,EAAOV,KAAKQ,QAAU,K,CAE9C,GAAIR,KAAKI,qBAAqBD,kBAAmB,CAChDH,KAAKK,oBAAoBL,KAAKI,U,IAE9B,E,oCAnFoC,E,8BAU0B,M,WAKjC,CAC/BY,SAAU,IACVC,OAAQ,E,CAzEFC,SAEN,OACCC,EAACC,EAAI,KACJD,EAAA,OAAKE,KAAM,aAAarB,KAAKO,MAAMC,MAAQ,OAAS,WACnDW,EAAA,kBAAgBF,OAAQjB,KAAKO,MAAMU,QAClCE,EAAA,UAAQG,IAAKtB,KAAKC,kBAAmBQ,QAAST,KAAKS,SAClDU,EAAA,YAAUI,WAAW,GAAGC,MAAOxB,KAAKO,MAAMC,MAAQ,oBAAsB,mBAAoBiB,MAAOzB,KAAKO,MAAMC,MAAQ,QAAU,SAChIW,EAAA,YAAOnB,KAAKO,MAAMS,YAGpBG,EAAA,OAAKE,KAAK,UACTF,EAAA,QAAMO,KAAK,YAEZP,EAAA,OACCE,KAAK,UAELM,MACC3B,KAAKO,MAAMC,QAAU,MAClB,CACAoB,QAAS,OACTC,OAAQ,IACRC,WAAY,UAEZC,WAiBJZ,EAAA,QAAMO,KAAK,c,CAuCTM,gBAAgBC,GACtBC,EAAYlC,KAAM,WAAYiC,EAAO,CACpCE,SAAU,M,CAQLC,cAAcH,GACpBI,EAAkBrC,KAAMiC,E,CAOlBK,WAAWL,GACjB,UAAWA,IAAU,UAAYA,IAAU,aAAeA,EAAMxB,UAAY,WAAY,CACvF8B,EAASvC,KAAM,MAAOiC,E,EAQjBO,aAAaP,GACnBQ,EAAazC,KAAM,QAASiC,E,CAMtBS,oBACN1C,KAAKgC,gBAAgBhC,KAAKgB,UAC1BhB,KAAKoC,cAAcpC,KAAKiB,QACxBjB,KAAKsC,WAAWtC,KAAKe,KACrBf,KAAKwC,aAAaxC,KAAKQ,M"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* KoliBri - The accessible HTML-Standard
|
|
3
3
|
*/
|
|
4
|
-
import{r as i,h as
|
|
4
|
+
import{r as i,h as e,H as t}from"./index-0dce65d2.js";import{f as a}from"./a11y.tipps-353a7f35.js";import{L as s}from"./dev.utils-3ec9f837.js";import{b as n,w as r,s as o,a as l}from"./prop.validators-62a61880.js";import{w as c}from"./validation-0dc15e8d.js";import{a as d}from"./i18n-9b7525d8.js";import"./reuse-2b3b6999.js";import"./index-68b1f91c.js";import"./index.m-86dc8c44.js";import"./index-0fb82b03.js";const h="*{box-sizing:border-box;font-size:inherit;hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}kol-heading-wc{font-weight:bold}kol-icon{color:inherit}kol-span-wc{display:grid;place-items:center;width:100%}kol-span-wc>span{display:flex;gap:0.25rem;place-items:center}a,button,input,select,textarea{cursor:pointer}a.icon-only>kol-span-wc>span>span,button.icon-only>kol-span-wc>span>span{display:none}a{display:inline-flex;place-items:baseline}button{background-color:transparent;border-width:0}",f=a=>e("kol-icon",{class:"icon",_ariaLabel:"string"==typeof a.heading&&a.heading.length>0?"":a.ariaLabel,_icon:a.icon}),p=a=>{switch(a.type){case"error":return e(f,{ariaLabel:d("kol-error"),icon:"fa-solid fa-circle-xmark",heading:a.heading});case"info":return e(f,{ariaLabel:d("kol-info"),icon:"fa-solid fa-circle-info",heading:a.heading});case"warning":return e(f,{ariaLabel:d("kol-warning"),icon:"fa-solid fa-triangle-exclamation",heading:a.heading});case"success":return e(f,{ariaLabel:d("kol-success"),icon:"fa-solid fa-circle-check",heading:a.heading});default:return e(f,{ariaLabel:d("kol-message"),icon:"fa-regular fa-comment",heading:a.heading})}},u=class{constructor(e){i(this,e),this.close=()=>{var e;void 0!==(null===(e=this._on)||void 0===e?void 0:e.onClose)&&this._on.onClose(new Event("Close"))},this.on={onClick:this.close},this._alert=!1,this._hasCloser=!1,this._heading=void 0,this._level=1,this._on=void 0,this._type="default",this._variant="msg",this.state={_level:1}}render(){if(this.state._alert){try{s.debug(["Navigator should vibrate ...",navigator.vibrate([100,75,100,75,100])])}catch(e){s.debug("Navigator does not support vibration.")}setTimeout((()=>{this.validateAlert(!1)}),1e4)}return e(t,null,e("div",{class:{[this.state._type]:!0,[this.state._variant]:!0},role:this.state._alert?"alert":void 0},"msg"===this.state._variant&&e(p,{heading:this.state._heading,type:this.state._type}),e("div",null,("string"==typeof this.state._heading&&this.state._heading.length>0||"card"===this.state._variant)&&e("kol-heading-wc",{class:"heading",_level:this.state._level},"card"===this.state._variant&&e(p,{heading:this.state._heading,type:this.state._type}),this.state._heading),e("div",{class:"content"},e("slot",null)),this.state._hasCloser&&e("kol-button-wc",{class:"close",_icon:{left:{icon:"fa-solid fa-circle-xmark"}},_iconOnly:!0,_label:d("kol-close"),_on:this.on,_tooltipAlign:"left"}))))}validateAlert(e){n(this,"_alert",e)}validateHasCloser(e){n(this,"_hasCloser",e)}validateHeading(e){r(this,"_heading",e)}validateLevel(e){c(this,e)}validateOn(e){if("object"==typeof e&&null!==e){a("[KolAlert] Prüfen, wie man auch einen EventCallback einzeln ändern kann.");const t={};"function"!=typeof e.onClose&&!0!==e.onClose||(t.onClose=e.onClose),o(this,"_on",t)}}validateType(e){l(this,"_type",(e=>"string"==typeof e&&("default"===e||"error"===e||"info"===e||"success"===e||"warning"===e)),new Set("String {success, info, warning, error}"),e)}validateVariant(e){l(this,"_variant",(e=>"card"===e||"msg"===e),new Set("AlertVariant {card, msg}"),e)}componentWillLoad(){this.validateAlert(this._alert),this.validateHasCloser(this._hasCloser),this.validateHeading(this._heading),this.validateLevel(this._level),this.validateOn(this._on),this.validateType(this._type),this.validateVariant(this._variant)}static get watchers(){return{_alert:["validateAlert"],_hasCloser:["validateHasCloser"],_heading:["validateHeading"],_level:["validateLevel"],_on:["validateOn"],_type:["validateType"],_variant:["validateVariant"]}}};u.style={default:h};export{u as kol_alert};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["defaultStyleCss","Icon","props","h","class","_ariaLabel","heading","length","ariaLabel","_icon","icon","AlertIcon","type","translate","KolAlert","this","close","_a","_on","onClose","undefined","Event","on","onClick","_level","render","state","_alert","Log","debug","navigator","vibrate","e","setTimeout","validateAlert","Host","_type","_variant","role","_heading","_hasCloser","left","_iconOnly","_label","_tooltipAlign","value","watchBoolean","validateHasCloser","validateHeading","watchString","validateLevel","watchHeadingLevel","validateOn","featureHint","callbacks","setState","validateType","watchValidator","Set","validateVariant","componentWillLoad"],"sources":["./src/components/style.sass?tag=kol-alert&mode=default&encapsulation=shadow","./src/components/alert/component.tsx"],"sourcesContent":["@windicss\n\n*\n\tbox-sizing: border-box\n\tfont-size: inherit\n\thyphens: auto\n\tletter-spacing: inherit\n\tword-break: break-word\n\tword-spacing: inherit\n\nkol-heading-wc\n\tfont-weight: 700\n\nkol-icon\n\tcolor: inherit\n\nkol-span-wc\n\tdisplay: grid\n\tplace-items: center\n\twidth: 100%\n\n\t> span\n\t\tdisplay: flex\n\t\tgap: 0.25rem\n\t\tplace-items: center\n\na,\nbutton\n\tcursor: pointer\n\n\t&.icon-only\n\n\t\t> kol-span-wc\n\n\t\t\t> span\n\n\t\t\t\t> span\n\t\t\t\t\tdisplay: none\n\na\n\tdisplay: inline-flex\n\tplace-items: baseline\n\nbutton\n\tborder-width: 0\n","import { Component, h, Host, JSX, Prop, State, Watch } from '@stencil/core';\n\nimport { Generic } from '@a11y-ui/core';\nimport { AlertType, AlertVariant, KoliBriAlertEventCallbacks } from '../../types/alert';\nimport { HeadingLevel } from '../../types/heading-level';\nimport { featureHint } from '../../utils/a11y.tipps';\nimport { Log } from '../../utils/dev.utils';\nimport { setState, watchBoolean, watchString, watchValidator } from '../../utils/prop.validators';\nimport { watchHeadingLevel } from '../heading/validation';\nimport { translate } from '../../i18n';\n\n/**\n * API\n */\ntype RequiredProps = unknown;\ntype OptionalProps = {\n\talert: boolean;\n\thasCloser: boolean;\n\theading: string;\n\tlevel: HeadingLevel;\n\ton: KoliBriAlertEventCallbacks;\n\ttype: AlertType;\n\tvariant: AlertVariant;\n};\nexport type Props = Generic.Element.Members<RequiredProps, OptionalProps>;\n\ntype RequiredStates = RequiredProps;\ntype OptionalStates = OptionalProps;\ntype States = Generic.Element.Members<RequiredStates, OptionalStates>;\n\nconst Icon = (props: { ariaLabel: string; icon: string; heading?: string }) => {\n\treturn <kol-icon class=\"icon\" _ariaLabel={typeof props.heading === 'string' && props.heading.length > 0 ? '' : props.ariaLabel} _icon={props.icon} />;\n};\n\nconst AlertIcon = (props: { heading?: string; type?: AlertType }) => {\n\tswitch (props.type) {\n\t\tcase 'error':\n\t\t\treturn <Icon ariaLabel={translate('kol-error')} icon=\"fa-solid fa-circle-xmark\" heading={props.heading} />;\n\t\tcase 'info':\n\t\t\treturn <Icon ariaLabel={translate('kol-info')} icon=\"fa-solid fa-circle-info\" heading={props.heading} />;\n\t\tcase 'warning':\n\t\t\treturn <Icon ariaLabel={translate('kol-warning')} icon=\"fa-solid fa-triangle-exclamation\" heading={props.heading} />;\n\t\tcase 'success':\n\t\t\treturn <Icon ariaLabel={translate('kol-success')} icon=\"fa-solid fa-circle-check\" heading={props.heading} />;\n\t\tdefault:\n\t\t\treturn <Icon ariaLabel={translate('kol-message')} icon=\"fa-regular fa-comment\" heading={props.heading} />;\n\t}\n};\n\n@Component({\n\ttag: 'kol-alert',\n\tstyleUrls: {\n\t\tdefault: '../style.sass',\n\t},\n\tshadow: true,\n})\nexport class KolAlert implements Generic.Element.ComponentApi<RequiredProps, OptionalProps, RequiredStates, OptionalStates> {\n\tprivate readonly close = () => {\n\t\tif (this._on?.onClose !== undefined) {\n\t\t\tthis._on.onClose(new Event('Close'));\n\t\t}\n\t};\n\n\tprivate readonly on = {\n\t\tonClick: this.close,\n\t};\n\n\tpublic render(): JSX.Element {\n\t\tif (this.state._alert) {\n\t\t\t/**\n\t\t\t * - https://developer.mozilla.org/de/docs/Web/API/Navigator/vibrate\n\t\t\t * - https://googlechrome.github.io/samples/vibration/\n\t\t\t */\n\t\t\ttry {\n\t\t\t\tLog.debug(['Navigator should vibrate ...', navigator.vibrate([100, 75, 100, 75, 100])]);\n\t\t\t} catch (e) {\n\t\t\t\tLog.debug('Navigator does not support vibration.');\n\t\t\t}\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.validateAlert(false);\n\t\t\t}, 10000);\n\t\t}\n\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<div\n\t\t\t\t\tclass={{\n\t\t\t\t\t\t[this.state._type as string]: true,\n\t\t\t\t\t\t[this.state._variant as string]: true,\n\t\t\t\t\t}}\n\t\t\t\t\trole={this.state._alert ? 'alert' : undefined}\n\t\t\t\t>\n\t\t\t\t\t{this.state._variant === 'msg' && <AlertIcon heading={this.state._heading} type={this.state._type} />}\n\t\t\t\t\t<div>\n\t\t\t\t\t\t{((typeof this.state._heading === 'string' && this.state._heading.length > 0) || this.state._variant === 'card') && (\n\t\t\t\t\t\t\t<kol-heading-wc class=\"heading\" _level={this.state._level}>\n\t\t\t\t\t\t\t\t{this.state._variant === 'card' && <AlertIcon heading={this.state._heading} type={this.state._type} />}\n\t\t\t\t\t\t\t\t{this.state._heading}\n\t\t\t\t\t\t\t</kol-heading-wc>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<div class=\"content\">\n\t\t\t\t\t\t\t<slot />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{this.state._hasCloser && (\n\t\t\t\t\t\t\t<kol-button-wc\n\t\t\t\t\t\t\t\tclass=\"close\"\n\t\t\t\t\t\t\t\t_icon={{\n\t\t\t\t\t\t\t\t\tleft: {\n\t\t\t\t\t\t\t\t\t\ticon: 'fa-solid fa-circle-xmark',\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t_iconOnly\n\t\t\t\t\t\t\t\t_label={translate('kol-close')}\n\t\t\t\t\t\t\t\t_on={this.on}\n\t\t\t\t\t\t\t\t_tooltipAlign=\"left\"\n\t\t\t\t\t\t\t></kol-button-wc>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Gibt an, ob der Screenreader die Meldung vorlesen soll.\n\t */\n\t@Prop({ reflect: true }) public _alert?: boolean = false;\n\n\t/**\n\t * Gibt an, ob der Alert ein Schließen-Icon hat.\n\t */\n\t@Prop({ reflect: true }) public _hasCloser?: boolean = false;\n\n\t/**\n\t * Gibt den Titel der Meldung an.\n\t */\n\t@Prop() public _heading?: string;\n\n\t/**\n\t * Gibt an, welchen H-Level von 1 bis 6 die Überschrift hat.\n\t */\n\t@Prop() public _level?: HeadingLevel = 1;\n\n\t/**\n\t * Gibt die EventCallback-Function für das Schließen des Alerts an.\n\t */\n\t@Prop() public _on?: KoliBriAlertEventCallbacks;\n\n\t/**\n\t * Gibt an, ob es sich um eine Erfolgs-, Info-, Warnung- oder Fehlermeldung handelt.\n\t */\n\t@Prop() public _type?: AlertType = 'default';\n\n\t/**\n\t * Gibt an, welche Benachrichtigungsvariante dargestellt wird.\n\t */\n\t@Prop() public _variant?: AlertVariant = 'msg';\n\n\t/**\n\t * @see: components/abbr/component.tsx (@State)\n\t */\n\t@State() public state: States = {\n\t\t_level: 1,\n\t};\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_alert')\n\tpublic validateAlert(value?: boolean): void {\n\t\twatchBoolean(this, '_alert', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_hasCloser')\n\tpublic validateHasCloser(value?: boolean): void {\n\t\twatchBoolean(this, '_hasCloser', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_heading')\n\tpublic validateHeading(value?: string): void {\n\t\twatchString(this, '_heading', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_level')\n\tpublic validateLevel(value?: HeadingLevel): void {\n\t\twatchHeadingLevel(this, value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_on')\n\tpublic validateOn(value?: KoliBriAlertEventCallbacks): void {\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfeatureHint('[KolAlert] Prüfen, wie man auch einen EventCallback einzeln ändern kann.');\n\t\t\tconst callbacks: KoliBriAlertEventCallbacks = {};\n\t\t\tif (typeof value.onClose === 'function' || value.onClose === true) {\n\t\t\t\tcallbacks.onClose = value.onClose;\n\t\t\t}\n\t\t\tsetState<KoliBriAlertEventCallbacks>(this, '_on', callbacks);\n\t\t}\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_type')\n\tpublic validateType(value?: AlertType): void {\n\t\twatchValidator(\n\t\t\tthis,\n\t\t\t'_type',\n\t\t\t(value) => typeof value === 'string' && (value === 'default' || value === 'error' || value === 'info' || value === 'success' || value === 'warning'),\n\t\t\tnew Set('String {success, info, warning, error}'),\n\t\t\tvalue\n\t\t);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_variant')\n\tpublic validateVariant(value?: AlertVariant): void {\n\t\twatchValidator(this, '_variant', (value) => value === 'card' || value === 'msg', new Set('AlertVariant {card, msg}'), value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (componentWillLoad)\n\t */\n\tpublic componentWillLoad(): void {\n\t\tthis.validateAlert(this._alert);\n\t\tthis.validateHasCloser(this._hasCloser);\n\t\tthis.validateHeading(this._heading);\n\t\tthis.validateLevel(this._level);\n\t\tthis.validateOn(this._on);\n\t\tthis.validateType(this._type);\n\t\tthis.validateVariant(this._variant);\n\t}\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["defaultStyleCss","Icon","props","h","class","_ariaLabel","heading","length","ariaLabel","_icon","icon","AlertIcon","type","translate","KolAlert","this","close","_a","_on","onClose","undefined","Event","on","onClick","_level","render","state","_alert","Log","debug","navigator","vibrate","e","setTimeout","validateAlert","Host","_type","_variant","role","_heading","_hasCloser","left","_iconOnly","_label","_tooltipAlign","value","watchBoolean","validateHasCloser","validateHeading","watchString","validateLevel","watchHeadingLevel","validateOn","featureHint","callbacks","setState","validateType","watchValidator","Set","validateVariant","componentWillLoad"],"sources":["./src/components/style.sass?tag=kol-alert&mode=default&encapsulation=shadow","./src/components/alert/component.tsx"],"sourcesContent":["*\n\tbox-sizing: border-box\n\tfont-size: inherit\n\thyphens: auto\n\tletter-spacing: inherit\n\tword-break: break-word\n\tword-spacing: inherit\n\nkol-heading-wc\n\tfont-weight: bold\n\nkol-icon\n\tcolor: inherit\n\nkol-span-wc\n\tdisplay: grid\n\tplace-items: center\n\twidth: 100%\n\n\t> span\n\t\tdisplay: flex\n\t\tgap: 0.25rem\n\t\tplace-items: center\n\na,\nbutton,\ninput,\nselect,\ntextarea\n\tcursor: pointer\n\na,\nbutton\n\t&.icon-only\n\n\t\t> kol-span-wc\n\n\t\t\t> span\n\n\t\t\t\t> span\n\t\t\t\t\tdisplay: none\n\na\n\tdisplay: inline-flex\n\tplace-items: baseline\n\nbutton\n\tbackground-color: transparent\n\tborder-width: 0\n","import { Component, h, Host, JSX, Prop, State, Watch } from '@stencil/core';\n\nimport { Generic } from '@a11y-ui/core';\nimport { AlertType, AlertVariant, KoliBriAlertEventCallbacks } from '../../types/alert';\nimport { HeadingLevel } from '../../types/heading-level';\nimport { featureHint } from '../../utils/a11y.tipps';\nimport { Log } from '../../utils/dev.utils';\nimport { setState, watchBoolean, watchString, watchValidator } from '../../utils/prop.validators';\nimport { watchHeadingLevel } from '../heading/validation';\nimport { translate } from '../../i18n';\n\n/**\n * API\n */\ntype RequiredProps = unknown;\ntype OptionalProps = {\n\talert: boolean;\n\thasCloser: boolean;\n\theading: string;\n\tlevel: HeadingLevel;\n\ton: KoliBriAlertEventCallbacks;\n\ttype: AlertType;\n\tvariant: AlertVariant;\n};\nexport type Props = Generic.Element.Members<RequiredProps, OptionalProps>;\n\ntype RequiredStates = RequiredProps;\ntype OptionalStates = OptionalProps;\ntype States = Generic.Element.Members<RequiredStates, OptionalStates>;\n\nconst Icon = (props: { ariaLabel: string; icon: string; heading?: string }) => {\n\treturn <kol-icon class=\"icon\" _ariaLabel={typeof props.heading === 'string' && props.heading.length > 0 ? '' : props.ariaLabel} _icon={props.icon} />;\n};\n\nconst AlertIcon = (props: { heading?: string; type?: AlertType }) => {\n\tswitch (props.type) {\n\t\tcase 'error':\n\t\t\treturn <Icon ariaLabel={translate('kol-error')} icon=\"fa-solid fa-circle-xmark\" heading={props.heading} />;\n\t\tcase 'info':\n\t\t\treturn <Icon ariaLabel={translate('kol-info')} icon=\"fa-solid fa-circle-info\" heading={props.heading} />;\n\t\tcase 'warning':\n\t\t\treturn <Icon ariaLabel={translate('kol-warning')} icon=\"fa-solid fa-triangle-exclamation\" heading={props.heading} />;\n\t\tcase 'success':\n\t\t\treturn <Icon ariaLabel={translate('kol-success')} icon=\"fa-solid fa-circle-check\" heading={props.heading} />;\n\t\tdefault:\n\t\t\treturn <Icon ariaLabel={translate('kol-message')} icon=\"fa-regular fa-comment\" heading={props.heading} />;\n\t}\n};\n\n@Component({\n\ttag: 'kol-alert',\n\tstyleUrls: {\n\t\tdefault: '../style.sass',\n\t},\n\tshadow: true,\n})\nexport class KolAlert implements Generic.Element.ComponentApi<RequiredProps, OptionalProps, RequiredStates, OptionalStates> {\n\tprivate readonly close = () => {\n\t\tif (this._on?.onClose !== undefined) {\n\t\t\tthis._on.onClose(new Event('Close'));\n\t\t}\n\t};\n\n\tprivate readonly on = {\n\t\tonClick: this.close,\n\t};\n\n\tpublic render(): JSX.Element {\n\t\tif (this.state._alert) {\n\t\t\t/**\n\t\t\t * - https://developer.mozilla.org/de/docs/Web/API/Navigator/vibrate\n\t\t\t * - https://googlechrome.github.io/samples/vibration/\n\t\t\t */\n\t\t\ttry {\n\t\t\t\tLog.debug(['Navigator should vibrate ...', navigator.vibrate([100, 75, 100, 75, 100])]);\n\t\t\t} catch (e) {\n\t\t\t\tLog.debug('Navigator does not support vibration.');\n\t\t\t}\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.validateAlert(false);\n\t\t\t}, 10000);\n\t\t}\n\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<div\n\t\t\t\t\tclass={{\n\t\t\t\t\t\t[this.state._type as string]: true,\n\t\t\t\t\t\t[this.state._variant as string]: true,\n\t\t\t\t\t}}\n\t\t\t\t\trole={this.state._alert ? 'alert' : undefined}\n\t\t\t\t>\n\t\t\t\t\t{this.state._variant === 'msg' && <AlertIcon heading={this.state._heading} type={this.state._type} />}\n\t\t\t\t\t<div>\n\t\t\t\t\t\t{((typeof this.state._heading === 'string' && this.state._heading.length > 0) || this.state._variant === 'card') && (\n\t\t\t\t\t\t\t<kol-heading-wc class=\"heading\" _level={this.state._level}>\n\t\t\t\t\t\t\t\t{this.state._variant === 'card' && <AlertIcon heading={this.state._heading} type={this.state._type} />}\n\t\t\t\t\t\t\t\t{this.state._heading}\n\t\t\t\t\t\t\t</kol-heading-wc>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<div class=\"content\">\n\t\t\t\t\t\t\t<slot />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{this.state._hasCloser && (\n\t\t\t\t\t\t\t<kol-button-wc\n\t\t\t\t\t\t\t\tclass=\"close\"\n\t\t\t\t\t\t\t\t_icon={{\n\t\t\t\t\t\t\t\t\tleft: {\n\t\t\t\t\t\t\t\t\t\ticon: 'fa-solid fa-circle-xmark',\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t_iconOnly\n\t\t\t\t\t\t\t\t_label={translate('kol-close')}\n\t\t\t\t\t\t\t\t_on={this.on}\n\t\t\t\t\t\t\t\t_tooltipAlign=\"left\"\n\t\t\t\t\t\t\t></kol-button-wc>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Gibt an, ob der Screenreader die Meldung vorlesen soll.\n\t */\n\t@Prop({ reflect: true }) public _alert?: boolean = false;\n\n\t/**\n\t * Gibt an, ob der Alert ein Schließen-Icon hat.\n\t */\n\t@Prop({ reflect: true }) public _hasCloser?: boolean = false;\n\n\t/**\n\t * Gibt den Titel der Meldung an.\n\t */\n\t@Prop() public _heading?: string;\n\n\t/**\n\t * Gibt an, welchen H-Level von 1 bis 6 die Überschrift hat.\n\t */\n\t@Prop() public _level?: HeadingLevel = 1;\n\n\t/**\n\t * Gibt die EventCallback-Function für das Schließen des Alerts an.\n\t */\n\t@Prop() public _on?: KoliBriAlertEventCallbacks;\n\n\t/**\n\t * Gibt an, ob es sich um eine Erfolgs-, Info-, Warnung- oder Fehlermeldung handelt.\n\t */\n\t@Prop() public _type?: AlertType = 'default';\n\n\t/**\n\t * Gibt an, welche Benachrichtigungsvariante dargestellt wird.\n\t */\n\t@Prop() public _variant?: AlertVariant = 'msg';\n\n\t/**\n\t * @see: components/abbr/component.tsx (@State)\n\t */\n\t@State() public state: States = {\n\t\t_level: 1,\n\t};\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_alert')\n\tpublic validateAlert(value?: boolean): void {\n\t\twatchBoolean(this, '_alert', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_hasCloser')\n\tpublic validateHasCloser(value?: boolean): void {\n\t\twatchBoolean(this, '_hasCloser', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_heading')\n\tpublic validateHeading(value?: string): void {\n\t\twatchString(this, '_heading', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_level')\n\tpublic validateLevel(value?: HeadingLevel): void {\n\t\twatchHeadingLevel(this, value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_on')\n\tpublic validateOn(value?: KoliBriAlertEventCallbacks): void {\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfeatureHint('[KolAlert] Prüfen, wie man auch einen EventCallback einzeln ändern kann.');\n\t\t\tconst callbacks: KoliBriAlertEventCallbacks = {};\n\t\t\tif (typeof value.onClose === 'function' || value.onClose === true) {\n\t\t\t\tcallbacks.onClose = value.onClose;\n\t\t\t}\n\t\t\tsetState<KoliBriAlertEventCallbacks>(this, '_on', callbacks);\n\t\t}\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_type')\n\tpublic validateType(value?: AlertType): void {\n\t\twatchValidator(\n\t\t\tthis,\n\t\t\t'_type',\n\t\t\t(value) => typeof value === 'string' && (value === 'default' || value === 'error' || value === 'info' || value === 'success' || value === 'warning'),\n\t\t\tnew Set('String {success, info, warning, error}'),\n\t\t\tvalue\n\t\t);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_variant')\n\tpublic validateVariant(value?: AlertVariant): void {\n\t\twatchValidator(this, '_variant', (value) => value === 'card' || value === 'msg', new Set('AlertVariant {card, msg}'), value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (componentWillLoad)\n\t */\n\tpublic componentWillLoad(): void {\n\t\tthis.validateAlert(this._alert);\n\t\tthis.validateHasCloser(this._hasCloser);\n\t\tthis.validateHeading(this._heading);\n\t\tthis.validateLevel(this._level);\n\t\tthis.validateOn(this._on);\n\t\tthis.validateType(this._type);\n\t\tthis.validateVariant(this._variant);\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* KoliBri - The accessible HTML-Standard
|
|
3
3
|
*/
|
|
4
|
-
import{r as t,h as o,H as s}from"./index-0dce65d2.js";import{
|
|
4
|
+
import{r as t,h as o,H as s}from"./index-0dce65d2.js";import{f as e,d as n,a as i}from"./a11y.tipps-353a7f35.js";import{r as a,a as r,o as l,p as c,s as h}from"./prop.validators-62a61880.js";import{s as d}from"./index.m-86dc8c44.js";import{c as p}from"./index-e722bdb7.js";import"./dev.utils-3ec9f837.js";import"./reuse-2b3b6999.js";import"./index-68b1f91c.js";import"./index-1b8b837d.js";const f=(t,o,a)=>(299*t+587*o+114*a)/1e3>=128?-1:1,u=(t,o,r,n=1)=>{const s=[Math.max(Math.min(Math.round(o[0]+n*Math.max(1,o[0]/100)),255),0),Math.max(Math.min(Math.round(o[1]+n*Math.max(1,o[1]/100)),255),0),Math.max(Math.min(Math.round(o[2]+n*Math.max(1,o[2]/100)),255),0)],e=d(a.hex(`rgba(${t.join(",")},1)`),a.hex(`rgba(${s.join(",")},1)`)),i=s[0]+s[1]+s[2];return 0===i||765===i||e>r?{background:t,foreground:s,contrast:e}:u(t,s,r,n)},b=new Map,g=(t,o,a,r=1)=>{if(b.has(t))return b.get(t);const n=u(t,o,a,r);return b.set(t,n),n},m=(t,o=7)=>{let r=[0,0,0,1],n=[255,255,255,1];"string"==typeof t?(r=p(t),n=r):"object"==typeof t&&null!==t&&"string"==typeof t.background&&"string"==typeof t.foreground&&(r=p(t.background),n="string"==typeof t.foreground?p(t.foreground):r);const s=f(r[0],r[1],r[2]),e=g([r[0],r[1],r[2]],[n[0],n[1],n[2]],o,s);return n=[...e.foreground,1],{background:a.hex(`rgba(${r.join(",")})`),foreground:a.hex(`rgba(${n.join(",")})`),contrast:e.contrast}},w="*{box-sizing:border-box;font-size:inherit;hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}kol-heading-wc{font-weight:bold}kol-icon{color:inherit}kol-span-wc{display:grid;place-items:center;width:100%}kol-span-wc>span{display:flex;gap:0.25rem;place-items:center}a,button,input,select,textarea{cursor:pointer}a.icon-only>kol-span-wc>span>span,button.icon-only>kol-span-wc>span>span{display:none}a{display:inline-flex;place-items:baseline}button{background-color:transparent;border-width:0}span{display:inline-flex}span kol-button-wc,span .kol-button-wc{box-shadow-left:1px solid rgba(0, 0, 0, 0.25)}span kol-button-wc button,span .kol-button-wc button{color:inherit}";e("[KolBadge] Optimierung des _color-Properties (rgba, rgb, hex usw.).");const y=/^([a-f0-9]{3}|[a-f0-9]{6})$/,k=class{constructor(o){t(this,o),this.bgColorStr="#000",this.colorStr="#fff",this.handleColorChange=t=>{let o,a=t;"string"==typeof a?(y.test(a)&&(n("[KolBadge] Bitte verwenden Sie zukünftig nur noch das Standard-Farbformat für CSS (https://developer.mozilla.org/en-US/docs/Web/CSS/color_value)."),a=`#${a}`),o=m(a)):o=m({background:a.backgroundColor,foreground:a.color}),o.contrast<7&&i(`[KolBadge] The contrast of ${o.contrast} (≥7, AAA) is too low, between the color pair ${o.background} and ${o.foreground}.`),this.bgColorStr=o.background,this.colorStr=o.foreground},this._color="#000",this._icon=void 0,this._iconAlign="left",this._iconOnly=!1,this._label=void 0,this._smartButton=void 0,this.state={_color:"#000"}}render(){return o(s,null,o("span",{class:{"smart-button":"object"==typeof this.state._smartButton&&null!==this.state._smartButton},style:{backgroundColor:this.bgColorStr,color:this.colorStr}},o("kol-span-wc",{_icon:this._icon,_iconOnly:this._iconOnly,_label:this._label}),"object"==typeof this.state._smartButton&&null!==this.state._smartButton&&o("kol-button-wc",{_ariaLabel:this.state._smartButton._ariaLabel,_customClass:this.state._smartButton._customClass,_disabled:this.state._smartButton._disabled,_icon:this.state._smartButton._icon,_iconOnly:!0,_id:this.state._smartButton._id,_label:this.state._smartButton._label,_on:this.state._smartButton._on,_tooltipAlign:this.state._smartButton._tooltipAlign,_variant:this.state._smartButton._variant})))}validateColor(t){r(this,"_color",(t=>"string"==typeof t||"object"==typeof t&&null!==t&&"string"==typeof t.backgroundColor&&"string"==typeof t.color),new Set(["string","KoliBriColor"]),t,{defaultValue:"#000",hooks:{beforePatch:this.handleColorChange}})}validateSmartButton(t){l(t,(()=>{try{t=c(t)}catch(t){}h(this,"_smartButton",t)}))}componentWillLoad(){this.validateColor(this._color),this.validateSmartButton(this._smartButton)}static get watchers(){return{_color:["validateColor"],_smartButton:["validateSmartButton"]}}};k.style={default:w};export{k as kol_badge};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getContrastYIQ","r","g","b","yiq","calcContrastColor","baseColor","contrastColor","ratio","dir","color","Math","max","min","round","contrast","hex","rgbaConvert","join","summe","getContrastColor","contrastcolor","cache","has","get","set","Map","createContrastColorPair","contrastRatio","colorRgba","contrastColorRGB","defaultStyleCss","featureHint","HACK_REG_EX","KolBadge","this","bgColorStr","colorStr","handleColorChange","value","colorPair","test","devHint","backgroundColor","Nationalfarben","Schwarz","_color","render","h","Host","class","state","_smartButton","style","_icon","_iconOnly","_label","_ariaLabel","_customClass","_disabled","_id","_on","_tooltipAlign","_variant","validateColor","watchValidator","Set","defaultValue","hooks","beforePatch","validateSmartButton","objectObjectHandler","parseJson","e","setState","componentWillLoad"],"sources":["./src/components/badge/contrast.ts","./src/components/badge/style.sass?tag=kol-badge&mode=default&encapsulation=shadow","./src/components/badge/component.tsx"],"sourcesContent":["import { rgbaConvert } from './rgba-convert';\nimport { hex } from 'wcag-contrast';\nimport { colorRgba } from './color-rgba';\nimport { RGB } from 'color-convert/conversions';\n\ntype RGBA = [number, number, number, number];\n\n// const calcColor = (color: RGBA, diff: number): RGBA => [\n// Math.max(Math.min(Math.round(color[0] + (color[0] / 100 + 1) * diff), 255), 0),\n// Math.max(Math.min(Math.round(color[1] + (color[1] / 100 + 1) * diff), 255), 0),\n// Math.max(Math.min(Math.round(color[2] + (color[2] / 100 + 1) * diff), 255), 0),\n// color[3],\n// ];\n\n// const relativeLuminanceFormel = (c: number): number => {\n// if (c <= 0.03928) {\n// return c / 12.92;\n// } else {\n// return ((c + 0.055) / 1.055) ** 2.4;\n// }\n// };\n// // https://www.w3.org/TR/WCAG20/#contrast-ratiodef\n// const relativeLuminance = (r: number, g: number, b: number): number => {\n// return (\n// 0.2126 * relativeLuminanceFormel(r) + 0.7152 * relativeLuminanceFormel(g) + 0.0722 * relativeLuminanceFormel(b)\n// );\n// };\n\n// https://css-tricks.com/snippets/javascript/random-hex-color/\n// const randomColor = () => Math.floor(Math.random() * 16777215).toString(16);\n\n// https://24ways.org/2010/calculating-color-contrast/\n// ts-prune-ignore-next\nexport const getContrastYIQ = (r: number, g: number, b: number): number => {\n\tconst yiq = (r * 299 + g * 587 + b * 114) / 1000;\n\treturn yiq >= 128 ? -1 : 1;\n};\n\n// ts-prune-ignore-next\nexport const calcContrastColor = (baseColor: RGB, contrastColor: RGB, ratio: number, dir = 1): RGB => {\n\tconst color: RGB = [\n\t\tMath.max(Math.min(Math.round(contrastColor[0] + dir * Math.max(1, contrastColor[0] / 100)), 255), 0),\n\t\tMath.max(Math.min(Math.round(contrastColor[1] + dir * Math.max(1, contrastColor[1] / 100)), 255), 0),\n\t\tMath.max(Math.min(Math.round(contrastColor[2] + dir * Math.max(1, contrastColor[2] / 100)), 255), 0),\n\t];\n\tconst contrast = hex(rgbaConvert.hex(`rgba(${baseColor.join(',')},1)`), rgbaConvert.hex(`rgba(${color.join(',')},1)`));\n\tconst summe = color[0] + color[1] + color[2];\n\tif (summe === 0 || summe === 765 || contrast > ratio) {\n\t\treturn color;\n\t} else {\n\t\treturn calcContrastColor(baseColor, color, ratio, dir);\n\t}\n};\n\n// ts-prune-ignore-next\nexport const getContrastColor = (baseColor: RGB, contrastcolor: RGB, ratio: number, dir = 1): RGB => {\n\tif (cache.has(baseColor)) {\n\t\treturn cache.get(baseColor) as RGB;\n\t}\n\tconst color = calcContrastColor(baseColor, contrastcolor, ratio, dir);\n\tcache.set(baseColor, color);\n\treturn color;\n};\n\nconst cache: Map<unknown, RGB> = new Map();\n\nexport type KoliBriContrastColor = {\n\tbaseColor: string;\n\tcontrastColor: string;\n};\n\nexport const createContrastColorPair = (color: string | KoliBriContrastColor, contrastRatio = 7): KoliBriContrastColor => {\n\tlet baseColor: RGBA = [0, 0, 0, 1];\n\tlet contrastColor: RGBA = [255, 255, 255, 1];\n\tif (typeof color === 'string') {\n\t\tbaseColor = colorRgba(color);\n\t\tcontrastColor = baseColor;\n\t} else if (typeof color === 'object' && color !== null && typeof color.baseColor === 'string') {\n\t\tbaseColor = colorRgba(color.baseColor);\n\t\tif (typeof color.contrastColor === 'string') {\n\t\t\tcontrastColor = colorRgba(color.contrastColor);\n\t\t} else {\n\t\t\tcontrastColor = baseColor;\n\t\t}\n\t}\n\tconst yiq = getContrastYIQ(baseColor[0], baseColor[1], baseColor[2]);\n\tconst contrastColorRGB = getContrastColor(\n\t\t[baseColor[0], baseColor[1], baseColor[2]],\n\t\t[contrastColor[0], contrastColor[1], contrastColor[2]],\n\t\tcontrastRatio,\n\t\tyiq\n\t);\n\tcontrastColor = [...contrastColorRGB, 1];\n\n\treturn {\n\t\tbaseColor: rgbaConvert.hex(`rgba(${baseColor.join(',')})`),\n\t\tcontrastColor: rgbaConvert.hex(`rgba(${contrastColor.join(',')})`),\n\t};\n};\n","@import ../style\n\nspan\n\tdisplay: inline-flex\n\n\tkol-button-wc,\n\t.kol-button-wc\n\t\tbox-shadow-left: 1px solid rgba(0, 0, 0, 0.25)\n","import { Component, h, Host, JSX, Prop, State, Watch } from '@stencil/core';\n\nimport { Generic } from '@a11y-ui/core';\nimport { Nationalfarben } from '../../enums/color';\nimport { KoliBriIconProp } from '../../types/icon';\nimport { Alignment } from '../../types/props/alignment';\nimport { devHint, featureHint } from '../../utils/a11y.tipps';\nimport { objectObjectHandler, parseJson, setState, watchValidator } from '../../utils/prop.validators';\nimport { createContrastColorPair, KoliBriContrastColor } from './contrast';\nimport { Stringified } from '../../types/common';\nimport { ButtonProps } from '../../types/button-link';\n\nfeatureHint(`[KolBadge] Optimierung des _color-Properties (rgba, rgb, hex usw.).`);\n\nconst HACK_REG_EX = /^([a-f0-9]{3}|[a-f0-9]{6})$/;\n\nexport type KoliBriColor = {\n\tbackgroundColor: string;\n\tcolor: string;\n};\n\n/**\n * API\n */\ntype RequiredProps = {\n\tlabel: string;\n};\ntype OptionalProps = {\n\tcolor: Stringified<KoliBriColor>;\n\ticon: Stringified<KoliBriIconProp>;\n\ticonOnly: boolean;\n\tsmartButton: Stringified<ButtonProps>;\n};\nexport type Props = Generic.Element.Members<RequiredProps, OptionalProps>;\n\ntype RequiredStates = {\n\tcolor: Stringified<KoliBriColor>;\n};\ntype OptionalStates = {\n\tsmartButton: ButtonProps;\n};\nexport type States = Generic.Element.Members<RequiredStates, OptionalStates>;\n\n@Component({\n\ttag: 'kol-badge',\n\tstyleUrls: {\n\t\tdefault: './style.sass',\n\t},\n\tshadow: true,\n})\nexport class KolBadge implements Props {\n\tprivate bgColorStr = '#000';\n\tprivate colorStr = '#fff';\n\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<span\n\t\t\t\t\tclass={{\n\t\t\t\t\t\t'smart-button': typeof this.state._smartButton === 'object' && this.state._smartButton !== null,\n\t\t\t\t\t}}\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tbackgroundColor: this.bgColorStr,\n\t\t\t\t\t\tcolor: this.colorStr,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<kol-span-wc _icon={this._icon} _iconOnly={this._iconOnly} _label={this._label}></kol-span-wc>\n\t\t\t\t\t{typeof this.state._smartButton === 'object' && this.state._smartButton !== null && (\n\t\t\t\t\t\t<kol-button-wc\n\t\t\t\t\t\t\t_ariaLabel={this.state._smartButton._ariaLabel}\n\t\t\t\t\t\t\t_customClass={this.state._smartButton._customClass}\n\t\t\t\t\t\t\t_disabled={this.state._smartButton._disabled}\n\t\t\t\t\t\t\t_icon={this.state._smartButton._icon}\n\t\t\t\t\t\t\t_iconOnly={true}\n\t\t\t\t\t\t\t_id={this.state._smartButton._id}\n\t\t\t\t\t\t\t_label={this.state._smartButton._label}\n\t\t\t\t\t\t\t_on={this.state._smartButton._on}\n\t\t\t\t\t\t\t_tooltipAlign={this.state._smartButton._tooltipAlign}\n\t\t\t\t\t\t\t_variant={this.state._smartButton._variant}\n\t\t\t\t\t\t></kol-button-wc>\n\t\t\t\t\t)}\n\t\t\t\t</span>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Gibt die Farbe des Hintergrundes bzw. der Schrift an.\n\t */\n\t@Prop() public _color?: string | KoliBriColor = Nationalfarben.Schwarz;\n\n\t/**\n\t * Gibt einen Identifier eines Icons aus den Icofont's an. (https://icofont.com/)\n\t */\n\t@Prop() public _icon?: Stringified<KoliBriIconProp>;\n\n\t/**\n\t * Gibt an, ob das Icon entweder links oder rechts dargestellt werden soll.\n\t * @deprecated\n\t */\n\t@Prop() public _iconAlign?: Alignment = 'left';\n\n\t/**\n\t * Gibt an, ob nur das Icon angezeigt wird.\n\t */\n\t@Prop({ reflect: true }) public _iconOnly?: boolean = false;\n\n\t/**\n\t * Gibt den Label-Text des Badges an.\n\t */\n\t@Prop() public _label!: string;\n\n\t/**\n\t * Ermöglicht einen Schalter ins das Eingabefeld mit einer beliebigen Aktion zu einzufügen (nur Icon-Only).\n\t */\n\t@Prop() public _smartButton?: Stringified<ButtonProps>;\n\n\t/**\n\t * @see: components/abbr/component.tsx (@State)\n\t */\n\t@State() public state: States = {\n\t\t_color: Nationalfarben.Schwarz,\n\t};\n\n\tprivate handleColorChange = (value: unknown) => {\n\t\tlet color = value as string | KoliBriColor;\n\t\tlet colorPair: KoliBriContrastColor;\n\t\tif (typeof color === 'string') {\n\t\t\tif (HACK_REG_EX.test(color)) {\n\t\t\t\t// Catch Breaking Change - remove next Major\n\t\t\t\tdevHint(\n\t\t\t\t\t`[KolBadge] Bitte verwenden Sie zukünftig nur noch das Standard-Farbformat für CSS (https://developer.mozilla.org/en-US/docs/Web/CSS/color_value).`\n\t\t\t\t);\n\t\t\t\tcolor = `#${color}`;\n\t\t\t}\n\t\t\tcolorPair = createContrastColorPair(color);\n\t\t} else {\n\t\t\tcolorPair = createContrastColorPair({\n\t\t\t\tbaseColor: color.backgroundColor,\n\t\t\t\tcontrastColor: color.color,\n\t\t\t});\n\t\t}\n\t\tthis.bgColorStr = colorPair.baseColor;\n\t\tthis.colorStr = colorPair.contrastColor;\n\t};\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_color')\n\tpublic validateColor(value?: string | KoliBriColor): void {\n\t\twatchValidator(\n\t\t\tthis,\n\t\t\t'_color',\n\t\t\t(value) => typeof value === 'string' || (typeof value === 'object' && value !== null),\n\t\t\tnew Set(['string', 'KoliBriColor']),\n\t\t\tvalue,\n\t\t\t{\n\t\t\t\tdefaultValue: Nationalfarben.Schwarz,\n\t\t\t\thooks: {\n\t\t\t\t\tbeforePatch: this.handleColorChange,\n\t\t\t\t},\n\t\t\t}\n\t\t);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_smartButton')\n\tpublic validateSmartButton(value?: ButtonProps | string): void {\n\t\tobjectObjectHandler(value, () => {\n\t\t\ttry {\n\t\t\t\tvalue = parseJson<ButtonProps>(value as string);\n\t\t\t\t// eslint-disable-next-line no-empty\n\t\t\t} catch (e) {\n\t\t\t\t// value behält den ursprünglichen Wert\n\t\t\t}\n\t\t\tsetState(this, '_smartButton', value);\n\t\t});\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (componentWillLoad)\n\t */\n\tpublic componentWillLoad(): void {\n\t\tthis.validateColor(this._color);\n\t\tthis.validateSmartButton(this._smartButton);\n\t}\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["getContrastYIQ","r","g","b","yiq","calcColorContrast","baseColor","contrastColor","ratio","dir","color","Math","max","min","round","contrast","hex","rgbaConvert","join","summe","background","foreground","cache","Map","getColorContrast","has","get","set","createContrastColorPair","contrastRatio","colorRgba","colorContrast","defaultStyleCss","featureHint","HACK_REG_EX","KolBadge","this","bgColorStr","colorStr","handleColorChange","value","test","devHint","backgroundColor","a11yHint","_color","render","h","Host","class","state","_smartButton","style","_icon","_iconOnly","_label","_ariaLabel","_customClass","_disabled","_id","_on","_tooltipAlign","_variant","validateColor","watchValidator","Set","defaultValue","hooks","beforePatch","validateSmartButton","objectObjectHandler","parseJson","e","setState","componentWillLoad"],"sources":["./src/components/badge/contrast.ts","./src/components/badge/style.sass?tag=kol-badge&mode=default&encapsulation=shadow","./src/components/badge/component.tsx"],"sourcesContent":["import { rgbaConvert } from './rgba-convert';\nimport { hex } from 'wcag-contrast';\nimport { colorRgba } from './color-rgba';\nimport { RGB } from 'color-convert/conversions';\n\ntype RGBA = [number, number, number, number];\n\n// const calcColor = (color: RGBA, diff: number): RGBA => [\n// Math.max(Math.min(Math.round(color[0] + (color[0] / 100 + 1) * diff), 255), 0),\n// Math.max(Math.min(Math.round(color[1] + (color[1] / 100 + 1) * diff), 255), 0),\n// Math.max(Math.min(Math.round(color[2] + (color[2] / 100 + 1) * diff), 255), 0),\n// color[3],\n// ];\n\n// const relativeLuminanceFormel = (c: number): number => {\n// if (c <= 0.03928) {\n// return c / 12.92;\n// } else {\n// return ((c + 0.055) / 1.055) ** 2.4;\n// }\n// };\n// // https://www.w3.org/TR/WCAG20/#contrast-ratiodef\n// const relativeLuminance = (r: number, g: number, b: number): number => {\n// return (\n// 0.2126 * relativeLuminanceFormel(r) + 0.7152 * relativeLuminanceFormel(g) + 0.0722 * relativeLuminanceFormel(b)\n// );\n// };\n\n// https://css-tricks.com/snippets/javascript/random-hex-color/\n// const randomColor = () => Math.floor(Math.random() * 16777215).toString(16);\n\n// https://24ways.org/2010/calculating-color-contrast/\n// ts-prune-ignore-next\nexport const getContrastYIQ = (r: number, g: number, b: number): number => {\n\tconst yiq = (r * 299 + g * 587 + b * 114) / 1000;\n\treturn yiq >= 128 ? -1 : 1;\n};\n\nexport type ColorPair<T> = {\n\tbackground: T;\n\tforeground: T;\n};\n\nexport type ColorContrast<T> = ColorPair<T> & {\n\tcontrast: number;\n};\n\n// ts-prune-ignore-next\nexport const calcColorContrast = (baseColor: RGB, contrastColor: RGB, ratio: number, dir = 1): ColorContrast<RGB> => {\n\tconst color: RGB = [\n\t\tMath.max(Math.min(Math.round(contrastColor[0] + dir * Math.max(1, contrastColor[0] / 100)), 255), 0),\n\t\tMath.max(Math.min(Math.round(contrastColor[1] + dir * Math.max(1, contrastColor[1] / 100)), 255), 0),\n\t\tMath.max(Math.min(Math.round(contrastColor[2] + dir * Math.max(1, contrastColor[2] / 100)), 255), 0),\n\t];\n\tconst contrast = hex(rgbaConvert.hex(`rgba(${baseColor.join(',')},1)`), rgbaConvert.hex(`rgba(${color.join(',')},1)`));\n\tconst summe = color[0] + color[1] + color[2];\n\tif (summe === 0 || summe === 765 || contrast > ratio) {\n\t\treturn {\n\t\t\tbackground: baseColor,\n\t\t\tforeground: color,\n\t\t\tcontrast,\n\t\t};\n\t} else {\n\t\treturn calcColorContrast(baseColor, color, ratio, dir);\n\t}\n};\n\nconst cache: Map<unknown, ColorContrast<RGB>> = new Map();\n\n// ts-prune-ignore-next\nexport const getColorContrast = (baseColor: RGB, contrastColor: RGB, ratio: number, dir = 1): ColorContrast<RGB> => {\n\tif (cache.has(baseColor)) {\n\t\treturn cache.get(baseColor) as ColorContrast<RGB>;\n\t}\n\tconst color = calcColorContrast(baseColor, contrastColor, ratio, dir);\n\tcache.set(baseColor, color);\n\treturn color;\n};\n\nexport const createContrastColorPair = (color: string | ColorPair<string>, contrastRatio = 7): ColorContrast<string> => {\n\tlet baseColor: RGBA = [0, 0, 0, 1];\n\tlet contrastColor: RGBA = [255, 255, 255, 1];\n\tif (typeof color === 'string') {\n\t\tbaseColor = colorRgba(color);\n\t\tcontrastColor = baseColor;\n\t} else if (typeof color === 'object' && color !== null && typeof color.background === 'string' && typeof color.foreground === 'string') {\n\t\tbaseColor = colorRgba(color.background);\n\t\tif (typeof color.foreground === 'string') {\n\t\t\tcontrastColor = colorRgba(color.foreground);\n\t\t} else {\n\t\t\tcontrastColor = baseColor;\n\t\t}\n\t}\n\tconst yiq = getContrastYIQ(baseColor[0], baseColor[1], baseColor[2]);\n\tconst colorContrast = getColorContrast(\n\t\t[baseColor[0], baseColor[1], baseColor[2]],\n\t\t[contrastColor[0], contrastColor[1], contrastColor[2]],\n\t\tcontrastRatio,\n\t\tyiq\n\t);\n\tcontrastColor = [...colorContrast.foreground, 1];\n\n\treturn {\n\t\tbackground: rgbaConvert.hex(`rgba(${baseColor.join(',')})`),\n\t\tforeground: rgbaConvert.hex(`rgba(${contrastColor.join(',')})`),\n\t\tcontrast: colorContrast.contrast,\n\t};\n};\n","@import ../style\n\nspan\n\tdisplay: inline-flex\n\n\tkol-button-wc,\n\t.kol-button-wc\n\t\tbox-shadow-left: 1px solid rgba(0, 0, 0, 0.25)\n\n\t\tbutton\n\t\t\tcolor: inherit\n","import { Component, h, Host, JSX, Prop, State, Watch } from '@stencil/core';\n\nimport { Generic } from '@a11y-ui/core';\nimport { KoliBriIconProp } from '../../types/icon';\nimport { Alignment } from '../../types/props/alignment';\nimport { a11yHint, devHint, featureHint } from '../../utils/a11y.tipps';\nimport { objectObjectHandler, parseJson, setState, watchValidator } from '../../utils/prop.validators';\nimport { createContrastColorPair, ColorContrast } from './contrast';\nimport { Stringified } from '../../types/common';\nimport { ButtonProps } from '../../types/button-link';\n\nfeatureHint(`[KolBadge] Optimierung des _color-Properties (rgba, rgb, hex usw.).`);\n\nconst HACK_REG_EX = /^([a-f0-9]{3}|[a-f0-9]{6})$/;\n\nexport type KoliBriColor = {\n\tbackgroundColor: string;\n\tcolor: string;\n};\n\n/**\n * API\n */\ntype RequiredProps = {\n\tlabel: string;\n};\ntype OptionalProps = {\n\tcolor: Stringified<KoliBriColor>;\n\ticon: Stringified<KoliBriIconProp>;\n\ticonOnly: boolean;\n\tsmartButton: Stringified<ButtonProps>;\n};\nexport type Props = Generic.Element.Members<RequiredProps, OptionalProps>;\n\ntype RequiredStates = {\n\tcolor: Stringified<KoliBriColor>;\n};\ntype OptionalStates = {\n\tsmartButton: ButtonProps;\n};\nexport type States = Generic.Element.Members<RequiredStates, OptionalStates>;\n\n@Component({\n\ttag: 'kol-badge',\n\tstyleUrls: {\n\t\tdefault: './style.sass',\n\t},\n\tshadow: true,\n})\nexport class KolBadge implements Props {\n\tprivate bgColorStr = '#000';\n\tprivate colorStr = '#fff';\n\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<span\n\t\t\t\t\tclass={{\n\t\t\t\t\t\t'smart-button': typeof this.state._smartButton === 'object' && this.state._smartButton !== null,\n\t\t\t\t\t}}\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tbackgroundColor: this.bgColorStr,\n\t\t\t\t\t\tcolor: this.colorStr,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<kol-span-wc _icon={this._icon} _iconOnly={this._iconOnly} _label={this._label}></kol-span-wc>\n\t\t\t\t\t{typeof this.state._smartButton === 'object' && this.state._smartButton !== null && (\n\t\t\t\t\t\t<kol-button-wc\n\t\t\t\t\t\t\t_ariaLabel={this.state._smartButton._ariaLabel}\n\t\t\t\t\t\t\t_customClass={this.state._smartButton._customClass}\n\t\t\t\t\t\t\t_disabled={this.state._smartButton._disabled}\n\t\t\t\t\t\t\t_icon={this.state._smartButton._icon}\n\t\t\t\t\t\t\t_iconOnly={true}\n\t\t\t\t\t\t\t_id={this.state._smartButton._id}\n\t\t\t\t\t\t\t_label={this.state._smartButton._label}\n\t\t\t\t\t\t\t_on={this.state._smartButton._on}\n\t\t\t\t\t\t\t_tooltipAlign={this.state._smartButton._tooltipAlign}\n\t\t\t\t\t\t\t_variant={this.state._smartButton._variant}\n\t\t\t\t\t\t></kol-button-wc>\n\t\t\t\t\t)}\n\t\t\t\t</span>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Gibt die Farbe des Hintergrundes bzw. der Schrift an.\n\t */\n\t@Prop() public _color?: string | KoliBriColor = '#000';\n\n\t/**\n\t * Gibt einen Identifier eines Icons aus den Icofont's an. (https://icofont.com/)\n\t */\n\t@Prop() public _icon?: Stringified<KoliBriIconProp>;\n\n\t/**\n\t * Gibt an, ob das Icon entweder links oder rechts dargestellt werden soll.\n\t * @deprecated\n\t */\n\t@Prop() public _iconAlign?: Alignment = 'left';\n\n\t/**\n\t * Gibt an, ob nur das Icon angezeigt wird.\n\t */\n\t@Prop({ reflect: true }) public _iconOnly?: boolean = false;\n\n\t/**\n\t * Gibt den Label-Text des Badges an.\n\t */\n\t@Prop() public _label!: string;\n\n\t/**\n\t * Ermöglicht einen Schalter ins das Eingabefeld mit einer beliebigen Aktion zu einzufügen (nur Icon-Only).\n\t */\n\t@Prop() public _smartButton?: Stringified<ButtonProps>;\n\n\t/**\n\t * @see: components/abbr/component.tsx (@State)\n\t */\n\t@State() public state: States = {\n\t\t_color: '#000',\n\t};\n\n\tprivate handleColorChange = (value: unknown) => {\n\t\tlet color = value as string | KoliBriColor;\n\t\tlet colorContrast: ColorContrast<string>;\n\t\tif (typeof color === 'string') {\n\t\t\tif (HACK_REG_EX.test(color)) {\n\t\t\t\t// Catch Breaking Change - remove next Major\n\t\t\t\tdevHint(\n\t\t\t\t\t`[KolBadge] Bitte verwenden Sie zukünftig nur noch das Standard-Farbformat für CSS (https://developer.mozilla.org/en-US/docs/Web/CSS/color_value).`\n\t\t\t\t);\n\t\t\t\tcolor = `#${color}`;\n\t\t\t}\n\t\t\tcolorContrast = createContrastColorPair(color);\n\t\t} else {\n\t\t\tcolorContrast = createContrastColorPair({\n\t\t\t\tbackground: color.backgroundColor,\n\t\t\t\tforeground: color.color,\n\t\t\t});\n\t\t}\n\t\tif (colorContrast.contrast < 7) {\n\t\t\ta11yHint(\n\t\t\t\t`[KolBadge] The contrast of ${colorContrast.contrast} (≥7, AAA) is too low, between the color pair ${colorContrast.background} and ${colorContrast.foreground}.`\n\t\t\t);\n\t\t}\n\t\tthis.bgColorStr = colorContrast.background;\n\t\tthis.colorStr = colorContrast.foreground;\n\t};\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_color')\n\tpublic validateColor(value?: string | KoliBriColor): void {\n\t\twatchValidator(\n\t\t\tthis,\n\t\t\t'_color',\n\t\t\t(value) =>\n\t\t\t\ttypeof value === 'string' ||\n\t\t\t\t(typeof value === 'object' && value !== null && typeof value.backgroundColor === 'string' && typeof value.color === 'string'),\n\t\t\tnew Set(['string', 'KoliBriColor']),\n\t\t\tvalue,\n\t\t\t{\n\t\t\t\tdefaultValue: '#000',\n\t\t\t\thooks: {\n\t\t\t\t\tbeforePatch: this.handleColorChange,\n\t\t\t\t},\n\t\t\t}\n\t\t);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_smartButton')\n\tpublic validateSmartButton(value?: ButtonProps | string): void {\n\t\tobjectObjectHandler(value, () => {\n\t\t\ttry {\n\t\t\t\tvalue = parseJson<ButtonProps>(value as string);\n\t\t\t\t// eslint-disable-next-line no-empty\n\t\t\t} catch (e) {\n\t\t\t\t// value behält den ursprünglichen Wert\n\t\t\t}\n\t\t\tsetState(this, '_smartButton', value);\n\t\t});\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (componentWillLoad)\n\t */\n\tpublic componentWillLoad(): void {\n\t\tthis.validateColor(this._color);\n\t\tthis.validateSmartButton(this._smartButton);\n\t}\n}\n"],"mappings":";;;qYAiCO,MAAMA,EAAiB,CAACC,EAAWC,EAAWC,KACpD,MAAMC,GAAOH,EAAI,IAAMC,EAAI,IAAMC,EAAI,KAAO,IAC5C,OAAOC,GAAO,KAAO,EAAI,CAAC,EAapB,MAAMC,EAAoB,CAACC,EAAgBC,EAAoBC,EAAeC,EAAM,KAC1F,MAAMC,EAAa,CAClBC,KAAKC,IAAID,KAAKE,IAAIF,KAAKG,MAAMP,EAAc,GAAKE,EAAME,KAAKC,IAAI,EAAGL,EAAc,GAAK,MAAO,KAAM,GAClGI,KAAKC,IAAID,KAAKE,IAAIF,KAAKG,MAAMP,EAAc,GAAKE,EAAME,KAAKC,IAAI,EAAGL,EAAc,GAAK,MAAO,KAAM,GAClGI,KAAKC,IAAID,KAAKE,IAAIF,KAAKG,MAAMP,EAAc,GAAKE,EAAME,KAAKC,IAAI,EAAGL,EAAc,GAAK,MAAO,KAAM,IAEnG,MAAMQ,EAAWC,EAAIC,EAAYD,IAAI,QAAQV,EAAUY,KAAK,WAAYD,EAAYD,IAAI,QAAQN,EAAMQ,KAAK,YAC3G,MAAMC,EAAQT,EAAM,GAAKA,EAAM,GAAKA,EAAM,GAC1C,GAAIS,IAAU,GAAKA,IAAU,KAAOJ,EAAWP,EAAO,CACrD,MAAO,CACNY,WAAYd,EACZe,WAAYX,EACZK,W,KAEK,CACN,OAAOV,EAAkBC,EAAWI,EAAOF,EAAOC,E,GAIpD,MAAMa,EAA0C,IAAIC,IAG7C,MAAMC,EAAmB,CAAClB,EAAgBC,EAAoBC,EAAeC,EAAM,KACzF,GAAIa,EAAMG,IAAInB,GAAY,CACzB,OAAOgB,EAAMI,IAAIpB,E,CAElB,MAAMI,EAAQL,EAAkBC,EAAWC,EAAeC,EAAOC,GACjEa,EAAMK,IAAIrB,EAAWI,GACrB,OAAOA,CAAK,EAGN,MAAMkB,EAA0B,CAAClB,EAAmCmB,EAAgB,KAC1F,IAAIvB,EAAkB,CAAC,EAAG,EAAG,EAAG,GAChC,IAAIC,EAAsB,CAAC,IAAK,IAAK,IAAK,GAC1C,UAAWG,IAAU,SAAU,CAC9BJ,EAAYwB,EAAUpB,GACtBH,EAAgBD,C,MACV,UAAWI,IAAU,UAAYA,IAAU,aAAeA,EAAMU,aAAe,iBAAmBV,EAAMW,aAAe,SAAU,CACvIf,EAAYwB,EAAUpB,EAAMU,YAC5B,UAAWV,EAAMW,aAAe,SAAU,CACzCd,EAAgBuB,EAAUpB,EAAMW,W,KAC1B,CACNd,EAAgBD,C,EAGlB,MAAMF,EAAMJ,EAAeM,EAAU,GAAIA,EAAU,GAAIA,EAAU,IACjE,MAAMyB,EAAgBP,EACrB,CAAClB,EAAU,GAAIA,EAAU,GAAIA,EAAU,IACvC,CAACC,EAAc,GAAIA,EAAc,GAAIA,EAAc,IACnDsB,EACAzB,GAEDG,EAAgB,IAAIwB,EAAcV,WAAY,GAE9C,MAAO,CACND,WAAYH,EAAYD,IAAI,QAAQV,EAAUY,KAAK,SACnDG,WAAYJ,EAAYD,IAAI,QAAQT,EAAcW,KAAK,SACvDH,SAAUgB,EAAchB,SACxB,EC1GF,MAAMiB,EAAkB,0rBCWxBC,EAAY,uEAEZ,MAAMC,EAAc,8B,MAoCPC,EAAQ,M,yBACZC,KAAAC,WAAa,OACbD,KAAAE,SAAW,OAwEXF,KAAAG,kBAAqBC,IAC5B,IAAI9B,EAAQ8B,EACZ,IAAIT,EACJ,UAAWrB,IAAU,SAAU,CAC9B,GAAIwB,EAAYO,KAAK/B,GAAQ,CAE5BgC,EACC,qJAEDhC,EAAQ,IAAIA,G,CAEbqB,EAAgBH,EAAwBlB,E,KAClC,CACNqB,EAAgBH,EAAwB,CACvCR,WAAYV,EAAMiC,gBAClBtB,WAAYX,EAAMA,O,CAGpB,GAAIqB,EAAchB,SAAW,EAAG,CAC/B6B,EACC,8BAA8Bb,EAAchB,yDAAyDgB,EAAcX,kBAAkBW,EAAcV,c,CAGrJe,KAAKC,WAAaN,EAAcX,WAChCgB,KAAKE,SAAWP,EAAcV,UAAU,E,YA3DO,O,qCAWR,O,eAKc,M,6DAetB,CAC/BwB,OAAQ,O,CAnEFC,SACN,OACCC,EAACC,EAAI,KACJD,EAAA,QACCE,MAAO,CACN,sBAAuBb,KAAKc,MAAMC,eAAiB,UAAYf,KAAKc,MAAMC,eAAiB,MAE5FC,MAAO,CACNT,gBAAiBP,KAAKC,WACtB3B,MAAO0B,KAAKE,WAGbS,EAAA,eAAaM,MAAOjB,KAAKiB,MAAOC,UAAWlB,KAAKkB,UAAWC,OAAQnB,KAAKmB,gBAChEnB,KAAKc,MAAMC,eAAiB,UAAYf,KAAKc,MAAMC,eAAiB,MAC3EJ,EAAA,iBACCS,WAAYpB,KAAKc,MAAMC,aAAaK,WACpCC,aAAcrB,KAAKc,MAAMC,aAAaM,aACtCC,UAAWtB,KAAKc,MAAMC,aAAaO,UACnCL,MAAOjB,KAAKc,MAAMC,aAAaE,MAC/BC,UAAW,KACXK,IAAKvB,KAAKc,MAAMC,aAAaQ,IAC7BJ,OAAQnB,KAAKc,MAAMC,aAAaI,OAChCK,IAAKxB,KAAKc,MAAMC,aAAaS,IAC7BC,cAAezB,KAAKc,MAAMC,aAAaU,cACvCC,SAAU1B,KAAKc,MAAMC,aAAaW,Y,CA6EjCC,cAAcvB,GACpBwB,EACC5B,KACA,UACCI,UACOA,IAAU,iBACTA,IAAU,UAAYA,IAAU,aAAeA,EAAMG,kBAAoB,iBAAmBH,EAAM9B,QAAU,UACrH,IAAIuD,IAAI,CAAC,SAAU,iBACnBzB,EACA,CACC0B,aAAc,OACdC,MAAO,CACNC,YAAahC,KAAKG,oB,CAUf8B,oBAAoB7B,GAC1B8B,EAAoB9B,GAAO,KAC1B,IACCA,EAAQ+B,EAAuB/B,E,CAE9B,MAAOgC,G,CAGTC,EAASrC,KAAM,eAAgBI,EAAM,G,CAOhCkC,oBACNtC,KAAK2B,cAAc3B,KAAKS,QACxBT,KAAKiC,oBAAoBjC,KAAKe,a"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* KoliBri - The accessible HTML-Standard
|
|
3
3
|
*/
|
|
4
|
-
import{r as a,h as i,F as e,H as
|
|
4
|
+
import{r as a,h as i,F as e,H as t}from"./index-0dce65d2.js";import{b as s}from"./a11y.tipps-353a7f35.js";import{w as r}from"./prop.validators-62a61880.js";import{w as n}from"./validation-5c3578c0.js";import"./dev.utils-3ec9f837.js";import"./reuse-2b3b6999.js";import"./index-68b1f91c.js";import"./index.m-86dc8c44.js";const o="*{box-sizing:border-box;font-size:inherit;hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}kol-heading-wc{font-weight:bold}kol-icon{color:inherit}kol-span-wc{display:grid;place-items:center;width:100%}kol-span-wc>span{display:flex;gap:0.25rem;place-items:center}a,button,input,select,textarea{cursor:pointer}a.icon-only>kol-span-wc>span>span,button.icon-only>kol-span-wc>span>span{display:none}a{display:inline-flex;place-items:baseline}button{background-color:transparent;border-width:0}",l=class{constructor(i){a(this,i),this._ariaLabel=void 0,this._links=void 0,this.state={_ariaLabel:"…",_links:[]}}render(){const a=this.state._links.length-1;return i(t,null,i("nav",{"aria-label":this.state._ariaLabel},i("ul",null,0===this.state._links.length&&i("li",null,i("kol-icon",{_ariaLabel:"",_icon:"fa-solid fa-house"}),"…"),this.state._links.map(((l,t)=>i("li",{key:t},0!==t&&i("kol-icon",{_ariaLabel:"",_icon:"fa-solid fa-angle-right",_part:"separator",exportparts:"separator"}),t===a?i("span",null,l._iconOnly?i("kol-icon",{_ariaLabel:l._label,_icon:"string"==typeof l._icon?l._icon:"fa-solid fa-link-slash"}):i(e,null,l._label)):i("kol-link",Object.assign({exportparts:"link",_useCase:"nav"},l,{_ariaLabel:l._label}),l._label)))))))}validateAriaLabel(a){r(this,"_ariaLabel",a,{required:!0}),s(a)}validateLinks(a){n("KolBreadcrumb",this,a)}componentWillLoad(){this.validateAriaLabel(this._ariaLabel),this.validateLinks(this._links)}static get watchers(){return{_ariaLabel:["validateAriaLabel"],_links:["validateLinks"]}}};l.style={default:o};export{l as kol_breadcrumb};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["defaultStyleCss","KolBreadcrumb","_ariaLabel","_links","render","lastIndex","this","state","length","h","Host","_icon","map","link","index","key","_part","exportparts","_iconOnly","_label","Fragment","Object","assign","_useCase","validateAriaLabel","value","watchString","required","a11yHintLabelingLandmarks","validateLinks","watchNavLinks","componentWillLoad"],"sources":["./src/components/style.sass?tag=kol-breadcrumb&mode=default&encapsulation=shadow","./src/components/breadcrumb/component.tsx"],"sourcesContent":["
|
|
1
|
+
{"version":3,"names":["defaultStyleCss","KolBreadcrumb","_ariaLabel","_links","render","lastIndex","this","state","length","h","Host","_icon","map","link","index","key","_part","exportparts","_iconOnly","_label","Fragment","Object","assign","_useCase","validateAriaLabel","value","watchString","required","a11yHintLabelingLandmarks","validateLinks","watchNavLinks","componentWillLoad"],"sources":["./src/components/style.sass?tag=kol-breadcrumb&mode=default&encapsulation=shadow","./src/components/breadcrumb/component.tsx"],"sourcesContent":["*\n\tbox-sizing: border-box\n\tfont-size: inherit\n\thyphens: auto\n\tletter-spacing: inherit\n\tword-break: break-word\n\tword-spacing: inherit\n\nkol-heading-wc\n\tfont-weight: bold\n\nkol-icon\n\tcolor: inherit\n\nkol-span-wc\n\tdisplay: grid\n\tplace-items: center\n\twidth: 100%\n\n\t> span\n\t\tdisplay: flex\n\t\tgap: 0.25rem\n\t\tplace-items: center\n\na,\nbutton,\ninput,\nselect,\ntextarea\n\tcursor: pointer\n\na,\nbutton\n\t&.icon-only\n\n\t\t> kol-span-wc\n\n\t\t\t> span\n\n\t\t\t\t> span\n\t\t\t\t\tdisplay: none\n\na\n\tdisplay: inline-flex\n\tplace-items: baseline\n\nbutton\n\tbackground-color: transparent\n\tborder-width: 0\n","import { Component, Fragment, h, Host, JSX, Prop, State, Watch } from '@stencil/core';\n\nimport { Generic } from '@a11y-ui/core';\nimport { Stringified } from '../../types/common';\nimport { a11yHintLabelingLandmarks } from '../../utils/a11y.tipps';\nimport { watchString } from '../../utils/prop.validators';\nimport { NavLinkProps } from '../link/component';\nimport { watchNavLinks } from '../nav/validation';\n\n/**\n * API\n */\ntype RequiredProps = {\n\tariaLabel: string;\n\tlinks: Stringified<NavLinkProps[]>;\n};\ntype OptionalProps = unknown;\nexport type Props = Generic.Element.Members<RequiredProps, OptionalProps>;\n\ntype RequiredStates = {\n\tariaLabel: string;\n\tlinks: NavLinkProps[];\n};\ntype OptionalStates = OptionalProps;\ntype States = Generic.Element.Members<RequiredStates, OptionalStates>;\n\n/**\n * @part link - Ermöglicht das Stylen der Links.\n * @part separator - Ermöglicht das Ändern des Separator-Icons.\n */\n@Component({\n\ttag: 'kol-breadcrumb',\n\tstyleUrls: {\n\t\tdefault: '../style.sass',\n\t},\n\tshadow: true,\n})\nexport class KolBreadcrumb implements Generic.Element.ComponentApi<RequiredProps, OptionalProps, RequiredStates, OptionalStates> {\n\tpublic render(): JSX.Element {\n\t\tconst lastIndex = this.state._links.length - 1;\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<nav aria-label={this.state._ariaLabel}>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t{this.state._links.length === 0 && (\n\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t<kol-icon _ariaLabel=\"\" _icon=\"fa-solid fa-house\" />…\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{this.state._links.map((link, index: number) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<li key={index}>\n\t\t\t\t\t\t\t\t\t{index !== 0 && <kol-icon _ariaLabel=\"\" _icon=\"fa-solid fa-angle-right\" _part=\"separator\" exportparts=\"separator\" />}\n\t\t\t\t\t\t\t\t\t{index === lastIndex ? (\n\t\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t\t\t\t{link._iconOnly ? (\n\t\t\t\t\t\t\t\t\t\t\t\t<kol-icon _ariaLabel={link._label} _icon={typeof link._icon === 'string' ? link._icon : 'fa-solid fa-link-slash'} />\n\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t<Fragment>{link._label}</Fragment>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<kol-link exportparts=\"link\" _useCase=\"nav\" {...link} _ariaLabel={link._label}>\n\t\t\t\t\t\t\t\t\t\t\t{link._label}\n\t\t\t\t\t\t\t\t\t\t</kol-link>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t</ul>\n\t\t\t\t</nav>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Gibt den Text an, der die Navigation von anderen Navigationen differenziert.\n\t */\n\t@Prop() public _ariaLabel!: string;\n\n\t/**\n\t * Gibt die geordnete Liste der Seitenhierarchie in Links an.\n\t */\n\t@Prop() public _links!: Stringified<NavLinkProps[]>;\n\n\t/**\n\t * @see: components/abbr/component.tsx (@State)\n\t */\n\t@State() public state: States = {\n\t\t_ariaLabel: '…', // '⚠'\n\t\t_links: [],\n\t};\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_ariaLabel')\n\tpublic validateAriaLabel(value?: string): void {\n\t\twatchString(this, '_ariaLabel', value, {\n\t\t\trequired: true,\n\t\t});\n\t\ta11yHintLabelingLandmarks(value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_links')\n\tpublic validateLinks(value?: Stringified<NavLinkProps[]>): void {\n\t\twatchNavLinks('KolBreadcrumb', this, value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (componentWillLoad)\n\t */\n\tpublic componentWillLoad(): void {\n\t\tthis.validateAriaLabel(this._ariaLabel);\n\t\tthis.validateLinks(this._links);\n\t}\n}\n"],"mappings":";;;+TAAA,MAAMA,EAAkB,ygB,MCqCXC,EAAa,M,oFAmDO,CAC/BC,WAAY,IACZC,OAAQ,G,CApDFC,SACN,MAAMC,EAAYC,KAAKC,MAAMJ,OAAOK,OAAS,EAC7C,OACCC,EAACC,EAAI,KACJD,EAAA,oBAAiBH,KAAKC,MAAML,YAC3BO,EAAA,UACEH,KAAKC,MAAMJ,OAAOK,SAAW,GAC7BC,EAAA,UACCA,EAAA,YAAUP,WAAW,GAAGS,MAAM,sBAAsB,KAGrDL,KAAKC,MAAMJ,OAAOS,KAAI,CAACC,EAAMC,IAE5BL,EAAA,MAAIM,IAAKD,GACPA,IAAU,GAAKL,EAAA,YAAUP,WAAW,GAAGS,MAAM,0BAA0BK,MAAM,YAAYC,YAAY,cACrGH,IAAUT,EACVI,EAAA,YACEI,EAAKK,UACLT,EAAA,YAAUP,WAAYW,EAAKM,OAAQR,aAAcE,EAAKF,QAAU,SAAWE,EAAKF,MAAQ,2BAExFF,EAACW,EAAQ,KAAEP,EAAKM,SAIlBV,EAAA,WAAAY,OAAAC,OAAA,CAAUL,YAAY,OAAOM,SAAS,OAAUV,EAAI,CAAEX,WAAYW,EAAKM,SACrEN,EAAKM,a,CAkCTK,kBAAkBC,GACxBC,EAAYpB,KAAM,aAAcmB,EAAO,CACtCE,SAAU,OAEXC,EAA0BH,E,CAOpBI,cAAcJ,GACpBK,EAAc,gBAAiBxB,KAAMmB,E,CAM/BM,oBACNzB,KAAKkB,kBAAkBlB,KAAKJ,YAC5BI,KAAKuB,cAAcvB,KAAKH,O"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* KoliBri - The accessible HTML-Standard
|
|
3
3
|
*/
|
|
4
|
-
import{r as n,h as o,H as e}from"./index-0dce65d2.js";const t="
|
|
4
|
+
import{r as n,h as o,H as e}from"./index-0dce65d2.js";const t="*{box-sizing:border-box;font-size:inherit;hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}kol-heading-wc{font-weight:bold}kol-icon{color:inherit}kol-span-wc{display:grid;place-items:center;width:100%}kol-span-wc>span{display:flex;gap:0.25rem;place-items:center}a,button,input,select,textarea{cursor:pointer}a.icon-only>kol-span-wc>span>span,button.icon-only>kol-span-wc>span>span{display:none}a{display:inline-flex;place-items:baseline}button{background-color:transparent;border-width:0}",r=class{constructor(o){n(this,o)}render(){return o(e,null,o("kol-button-group-wc",null,o("slot",null)))}};r.style={default:t};export{r as kol_button_group};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["defaultStyleCss","KolButtonGroup","render","h","Host"],"sources":["./src/components/style.sass?tag=kol-button-group&mode=default&encapsulation=shadow","./src/components/button-group/shadow.tsx"],"sourcesContent":["
|
|
1
|
+
{"version":3,"names":["defaultStyleCss","KolButtonGroup","render","h","Host"],"sources":["./src/components/style.sass?tag=kol-button-group&mode=default&encapsulation=shadow","./src/components/button-group/shadow.tsx"],"sourcesContent":["*\n\tbox-sizing: border-box\n\tfont-size: inherit\n\thyphens: auto\n\tletter-spacing: inherit\n\tword-break: break-word\n\tword-spacing: inherit\n\nkol-heading-wc\n\tfont-weight: bold\n\nkol-icon\n\tcolor: inherit\n\nkol-span-wc\n\tdisplay: grid\n\tplace-items: center\n\twidth: 100%\n\n\t> span\n\t\tdisplay: flex\n\t\tgap: 0.25rem\n\t\tplace-items: center\n\na,\nbutton,\ninput,\nselect,\ntextarea\n\tcursor: pointer\n\na,\nbutton\n\t&.icon-only\n\n\t\t> kol-span-wc\n\n\t\t\t> span\n\n\t\t\t\t> span\n\t\t\t\t\tdisplay: none\n\na\n\tdisplay: inline-flex\n\tplace-items: baseline\n\nbutton\n\tbackground-color: transparent\n\tborder-width: 0\n","import { Component, h, Host, JSX } from '@stencil/core';\n\nimport { Props } from './component';\n\n@Component({\n\ttag: 'kol-button-group',\n\tstyleUrls: {\n\t\tdefault: '../style.sass',\n\t},\n\tshadow: true,\n})\nexport class KolButtonGroup implements Props {\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<kol-button-group-wc>\n\t\t\t\t\t<slot />\n\t\t\t\t</kol-button-group-wc>\n\t\t\t</Host>\n\t\t);\n\t}\n}\n"],"mappings":";;;sDAAA,MAAMA,EAAkB,ygB,MCWXC,EAAc,M,yBACnBC,SACN,OACCC,EAACC,EAAI,KACJD,EAAA,2BACCA,EAAA,c"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* KoliBri - The accessible HTML-Standard
|
|
3
3
|
*/
|
|
4
|
-
import{r as i,h as t,H as e,g as s}from"./index-0dce65d2.js";import{
|
|
4
|
+
import{r as i,h as t,H as e,g as s}from"./index-0dce65d2.js";import{a as n}from"./reuse-2b3b6999.js";const a="*{box-sizing:border-box;font-size:inherit;hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}kol-heading-wc{font-weight:bold}kol-icon{color:inherit}kol-span-wc{display:grid;place-items:center;width:100%}kol-span-wc>span{display:flex;gap:0.25rem;place-items:center}a,button,input,select,textarea{cursor:pointer}a.icon-only>kol-span-wc>span>span,button.icon-only>kol-span-wc>span>span{display:none}a{display:inline-flex;place-items:baseline}button{background-color:transparent;border-width:0}",o=class{constructor(t){i(this,t),this.catchRef=i=>{this.ref=i,n(this.host,this.ref)},this._accessKey=void 0,this._ariaControls=void 0,this._ariaCurrent=void 0,this._ariaExpanded=void 0,this._ariaLabel="",this._ariaSelected=void 0,this._disabled=!1,this._icon=void 0,this._iconOnly=!1,this._id=void 0,this._label=void 0,this._on=void 0,this._role=void 0,this._tabIndex=void 0,this._tooltipAlign="top",this._type="button",this._value=void 0}render(){return t(e,null,t("kol-button-wc",{ref:this.catchRef,_accessKey:this._accessKey,_ariaControls:this._ariaControls,_ariaCurrent:this._ariaCurrent,_ariaExpanded:this._ariaExpanded,_ariaLabel:this._ariaLabel,_ariaSelected:this._ariaSelected,_disabled:this._disabled,_icon:this._icon,_iconOnly:this._iconOnly,_id:this._id,_label:this._label,_on:this._on,_role:this._role,_tabIndex:this._tabIndex,_tooltipAlign:this._tooltipAlign,_type:this._type,_value:this._value},t("slot",{name:"expert",slot:"expert"})))}get host(){return s(this)}};o.style={default:a};export{o as kol_button_link};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["defaultStyleCss","KolButtonLink","this","catchRef","ref","propergateFocus","host","render","h","Host","_accessKey","_ariaControls","_ariaCurrent","_ariaExpanded","_ariaLabel","_ariaSelected","_disabled","_icon","_iconOnly","_id","_label","_on","_role","_tabIndex","_tooltipAlign","_type","_value","name","slot"],"sources":["./src/components/style.sass?tag=kol-button-link&mode=default&encapsulation=shadow","./src/components/button-link/component.tsx"],"sourcesContent":["
|
|
1
|
+
{"version":3,"names":["defaultStyleCss","KolButtonLink","this","catchRef","ref","propergateFocus","host","render","h","Host","_accessKey","_ariaControls","_ariaCurrent","_ariaExpanded","_ariaLabel","_ariaSelected","_disabled","_icon","_iconOnly","_id","_label","_on","_role","_tabIndex","_tooltipAlign","_type","_value","name","slot"],"sources":["./src/components/style.sass?tag=kol-button-link&mode=default&encapsulation=shadow","./src/components/button-link/component.tsx"],"sourcesContent":["*\n\tbox-sizing: border-box\n\tfont-size: inherit\n\thyphens: auto\n\tletter-spacing: inherit\n\tword-break: break-word\n\tword-spacing: inherit\n\nkol-heading-wc\n\tfont-weight: bold\n\nkol-icon\n\tcolor: inherit\n\nkol-span-wc\n\tdisplay: grid\n\tplace-items: center\n\twidth: 100%\n\n\t> span\n\t\tdisplay: flex\n\t\tgap: 0.25rem\n\t\tplace-items: center\n\na,\nbutton,\ninput,\nselect,\ntextarea\n\tcursor: pointer\n\na,\nbutton\n\t&.icon-only\n\n\t\t> kol-span-wc\n\n\t\t\t> span\n\n\t\t\t\t> span\n\t\t\t\t\tdisplay: none\n\na\n\tdisplay: inline-flex\n\tplace-items: baseline\n\nbutton\n\tbackground-color: transparent\n\tborder-width: 0\n","import { Component, Element, h, Host, JSX, Prop } from '@stencil/core';\n\nimport { Generic } from '@a11y-ui/core';\nimport {\n\tAlternativButtonLinkRole,\n\tAriaCurrent,\n\tKoliBriButtonCallbacks,\n\tKoliBriButtonType,\n\tOptionalButtonLinkProps,\n\tRequiredButtonLinkProps,\n} from '../../types/button-link';\nimport { Stringified } from '../../types/common';\nimport { KoliBriIconProp } from '../../types/icon';\nimport { propergateFocus } from '../../utils/reuse';\nimport { Alignment } from '../../types/props/alignment';\n\n@Component({\n\ttag: 'kol-button-link',\n\tstyleUrls: {\n\t\tdefault: '../style.sass',\n\t},\n\tshadow: true,\n})\nexport class KolButtonLink implements Generic.Element.Members<RequiredButtonLinkProps, OptionalButtonLinkProps> {\n\t@Element() private readonly host?: HTMLKolButtonLinkElement;\n\tprivate ref?: HTMLKolButtonWcElement;\n\n\tprivate readonly catchRef = (ref?: HTMLKolButtonWcElement) => {\n\t\tthis.ref = ref;\n\t\tpropergateFocus(this.host, this.ref);\n\t};\n\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<kol-button-wc\n\t\t\t\t\tref={this.catchRef}\n\t\t\t\t\t_accessKey={this._accessKey}\n\t\t\t\t\t_ariaControls={this._ariaControls}\n\t\t\t\t\t_ariaCurrent={this._ariaCurrent}\n\t\t\t\t\t_ariaExpanded={this._ariaExpanded}\n\t\t\t\t\t_ariaLabel={this._ariaLabel}\n\t\t\t\t\t_ariaSelected={this._ariaSelected}\n\t\t\t\t\t_disabled={this._disabled}\n\t\t\t\t\t_icon={this._icon}\n\t\t\t\t\t_iconOnly={this._iconOnly}\n\t\t\t\t\t_id={this._id}\n\t\t\t\t\t_label={this._label}\n\t\t\t\t\t_on={this._on}\n\t\t\t\t\t_role={this._role}\n\t\t\t\t\t_tabIndex={this._tabIndex}\n\t\t\t\t\t_tooltipAlign={this._tooltipAlign}\n\t\t\t\t\t_type={this._type}\n\t\t\t\t\t_value={this._value}\n\t\t\t\t>\n\t\t\t\t\t<slot name=\"expert\" slot=\"expert\" />\n\t\t\t\t</kol-button-wc>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Gibt an, mit welcher Tastenkombination man den Button auslösen oder fokussieren kann.\n\t */\n\t@Prop() public _accessKey?: string;\n\n\t/**\n\t * Gibt an, welche Elemente kontrolliert werden. (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-controls)\n\t */\n\t@Prop() public _ariaControls?: string;\n\n\t/**\n\t * Gibt an, welchen aktuellen Auswahlstatus der Button hat. (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-current)\n\t */\n\t@Prop() public _ariaCurrent?: AriaCurrent;\n\n\t/**\n\t * Gibt an, ob durch den Button etwas aufgeklappt wurde. (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-expanded)\n\t */\n\t@Prop({ reflect: true }) public _ariaExpanded?: boolean;\n\n\t/**\n\t * Gibt einen beschreibenden Text für den Screenreader an. Damit die\n\t * Sprachsteuerung von interaktiven Elementen funktioniert, muss der\n\t * Aria-Label-Text mit dem Label-Text des Buttons beginnen.\n\t *\n\t * - https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-label\n\t */\n\t@Prop({ mutable: true, reflect: false }) public _ariaLabel?: string = '';\n\n\t/**\n\t * Gibt an, ob Element ausgewählt ist (role=tab). (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-selected)\n\t */\n\t@Prop({ reflect: true }) public _ariaSelected?: boolean;\n\n\t/**\n\t * Gibt an, ob der Button deaktiviert ist.\n\t */\n\t@Prop({ reflect: true }) public _disabled?: boolean = false;\n\n\t/**\n\t * Gibt den Class-Identifier eines Icons eine eingebunden Icofont an. (z.B. https://icofont.com/)\n\t */\n\t@Prop() public _icon?: Stringified<KoliBriIconProp>;\n\n\t/**\n\t * Gibt an, ob nur das Icon angezeigt wird.\n\t */\n\t@Prop({ reflect: true }) public _iconOnly?: boolean = false;\n\n\t/**\n\t * Gibt die ID der Schaltfläche an. (Selection, Testing)\n\t */\n\t@Prop() public _id?: string;\n\n\t/**\n\t * Gibt einen beschreibenden Text für das Text-Element an.\n\t */\n\t@Prop() public _label!: string;\n\n\t/**\n\t * Gibt die EventCallback-Funktionen für die Button-Events an.\n\t */\n\t@Prop() public _on?: KoliBriButtonCallbacks<unknown>;\n\n\t/**\n\t * Gibt an, welche Role der Schalter hat.\n\t */\n\t@Prop() public _role?: AlternativButtonLinkRole;\n\n\t/**\n\t * Gibt an, welchen Tab-Index der Button hat. (https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex)\n\t */\n\t@Prop() public _tabIndex?: number;\n\n\t/**\n\t * Gibt an, ob der Tooltip oben, rechts, unten oder links angezeigt werden soll.\n\t */\n\t@Prop() public _tooltipAlign?: Alignment = 'top';\n\n\t/**\n\t * Gibt an, welche Typ der Button hat.\n\t */\n\t@Prop() public _type?: KoliBriButtonType = 'button';\n\n\t/**\n\t * Gibt einen Wert an, den der Schalter bei einem Klick zurückgibt.\n\t */\n\t@Prop() public _value?: Stringified<unknown>;\n}\n"],"mappings":";;;qGAAA,MAAMA,EAAkB,ygB,MCuBXC,EAAa,M,yBAIRC,KAAAC,SAAYC,IAC5BF,KAAKE,IAAMA,EACXC,EAAgBH,KAAKI,KAAMJ,KAAKE,IAAI,E,gIA2DiC,G,4CAUhB,M,oCAUA,M,6HA8BX,M,WAKA,S,sBA/GpCG,SACN,OACCC,EAACC,EAAI,KACJD,EAAA,iBACCJ,IAAKF,KAAKC,SACVO,WAAYR,KAAKQ,WACjBC,cAAeT,KAAKS,cACpBC,aAAcV,KAAKU,aACnBC,cAAeX,KAAKW,cACpBC,WAAYZ,KAAKY,WACjBC,cAAeb,KAAKa,cACpBC,UAAWd,KAAKc,UAChBC,MAAOf,KAAKe,MACZC,UAAWhB,KAAKgB,UAChBC,IAAKjB,KAAKiB,IACVC,OAAQlB,KAAKkB,OACbC,IAAKnB,KAAKmB,IACVC,MAAOpB,KAAKoB,MACZC,UAAWrB,KAAKqB,UAChBC,cAAetB,KAAKsB,cACpBC,MAAOvB,KAAKuB,MACZC,OAAQxB,KAAKwB,QAEblB,EAAA,QAAMmB,KAAK,SAASC,KAAK,Y"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* KoliBri - The accessible HTML-Standard
|
|
3
3
|
*/
|
|
4
|
-
import{r as i,h as t,H as s,g as a}from"./index-0dce65d2.js";import{w as e}from"./button-link-
|
|
4
|
+
import{r as i,h as t,H as s,g as a}from"./index-0dce65d2.js";import{w as e}from"./button-link-01028aae.js";import{d as l,e as n}from"./a11y.tipps-353a7f35.js";import{n as h}from"./dev.utils-3ec9f837.js";import{e as o,i as d,g as r,w as c,a as u,b as _,s as v}from"./prop.validators-62a61880.js";import{a as f}from"./reuse-2b3b6999.js";import{v as b,w as p}from"./icon-5edb38e1.js";import{v as m,a as y}from"./label-e7bacbab.js";import{v as g}from"./tab-index-3378b139.js";import{p as A,a as j}from"./controller-b7578f6d.js";import{a as x,w as I}from"./controller-8b3a25ac.js";import"./index-68b1f91c.js";import"./index.m-86dc8c44.js";const C=class{constructor(t){i(this,t),this.nonce=h(),this.catchRef=t=>{this.ref=t,f(this.host,this.ref)},this.onClick=t=>{var a,i;"submit"===this.state._type?A({form:this.host,ref:this.ref}):"reset"===this.state._type?j({form:this.host,ref:this.ref}):"function"==typeof(null===(a=this.state._on)||void 0===a?void 0:a.onClick)?(o(t,this.ref),null===(i=this.state._on)||void 0===i||i.onClick(t,this.state._value)):l("It was no button click callback configured!")},this._accessKey=void 0,this._ariaControls=void 0,this._ariaCurrent=void 0,this._ariaExpanded=void 0,this._ariaLabel="",this._ariaSelected=void 0,this._customClass=void 0,this._disabled=!1,this._icon=void 0,this._iconAlign="left",this._iconOnly=!1,this._id=void 0,this._label=void 0,this._on=void 0,this._role=void 0,this._tabIndex=void 0,this._tooltipAlign="top",this._type="button",this._value=void 0,this._variant="normal",this.state={_ariaLabel:"",_icon:{},_iconAlign:"left",_label:"",_on:{},_type:"button"}}render(){return t(s,null,t("button",Object.assign({ref:this.catchRef,accessKey:this.state._accessKey,"aria-controls":this.state._ariaControls,"aria-current":d(this.state._ariaCurrent),"aria-expanded":r(this.state._ariaExpanded),"aria-label":!1===this.state._iconOnly?this.state._ariaLabel||this.state._label:void 0,"aria-labelledby":!0===this.state._iconOnly?this.nonce:void 0,"aria-selected":d(this.state._ariaSelected),class:{[this.state._variant]:"custom"!==this.state._variant,[this.state._customClass]:"custom"===this.state._variant&&"string"==typeof this.state._customClass&&this.state._customClass.length>0,"icon-only":!0===this.state._iconOnly},disabled:this.state._disabled,id:this.state._id},this.state._on,{onClick:this.onClick,role:this.state._role,tabIndex:this.state._tabIndex,type:this.state._type}),t("kol-span-wc",{_icon:this._icon,_iconOnly:this._iconOnly,_label:this.state._ariaLabel||this.state._label},t("slot",{name:"expert",slot:"expert"}))),!0===this.state._iconOnly&&t("kol-tooltip",{"aria-hidden":"true",_align:this.state._tooltipAlign,_id:this.nonce,_label:this.state._ariaLabel||this.state._label}))}validateAccessKey(t){c(this,"_accessKey",t)}validateAriaControls(t){c(this,"_ariaControls",t)}validateAriaCurrent(t){u(this,"_ariaControls",(t=>!0===t||"date"===t||"location"===t||"page"===t||"step"===t||"time"===t),new Set(["boolean","String {data, location, page, step, time}"]),t)}validateAriaExpanded(t){_(this,"_ariaExpanded",t)}validateAriaLabel(t){m(this,t)}validateAriaSelected(t){_(this,"_ariaSelected",t)}validateCustomClass(t){c(this,"_customClass",t,{defaultValue:void 0})}validateDisabled(t){_(this,"_disabled",t),!0===t&&n()}validateIcon(t){b(this,t)}validateIconAlign(t){p(this,t)}validateIconOnly(t){_(this,"_iconOnly",t,{defaultValue:!1})}validateId(t){c(this,"_id",t)}validateLabel(t){y(this,t)}validateOn(t){"object"==typeof t&&null!==t&&(this.state=Object.assign(Object.assign({},this.state),{_on:t}))}validateRole(t){c(this,"_role",t)}validateTabIndex(t){g(this,t)}validateTooltipAlign(t){e(this,"_tooltipAlign",t)}validateType(t){x(this,"_type",t)}validateValue(t){v(this,"_value",t)}validateVariant(t){I(this,"_variant",t)}componentWillLoad(){this.validateAccessKey(this._accessKey),this.validateAriaControls(this._ariaControls),this.validateAriaCurrent(this._ariaCurrent),this.validateAriaExpanded(this._ariaExpanded),this.validateAriaLabel(this._ariaLabel),this.validateAriaSelected(this._ariaSelected),this.validateCustomClass(this._customClass),this.validateDisabled(this._disabled),this.validateIcon(this._icon),this.validateIconAlign(this._iconAlign),this.validateIconOnly(this._iconOnly),this.validateId(this._id),this.validateLabel(this._label),this.validateOn(this._on),this.validateRole(this._role),this.validateTabIndex(this._tabIndex),this.validateTooltipAlign(this._tooltipAlign),this.validateType(this._type),this.validateValue(this._value),this.validateVariant(this._variant)}get host(){return a(this)}static get watchers(){return{_accessKey:["validateAccessKey"],_ariaControls:["validateAriaControls"],_ariaCurrent:["validateAriaCurrent"],_ariaExpanded:["validateAriaExpanded"],_ariaLabel:["validateAriaLabel"],_ariaSelected:["validateAriaSelected"],_customClass:["validateCustomClass"],_disabled:["validateDisabled"],_icon:["validateIcon"],_iconAlign:["validateIconAlign"],_iconOnly:["validateIconOnly"],_id:["validateId"],_label:["validateLabel"],_on:["validateOn"],_role:["validateRole"],_tabIndex:["validateTabIndex"],_tooltipAlign:["validateTooltipAlign"],_type:["validateType"],_value:["validateValue"],_variant:["validateVariant"]}}},O=t=>{t instanceof Node&&setTimeout((()=>{var a,i;null===(a=t.parentElement)||void 0===a||a.removeChild(t),null===(i=t.parentNode)||void 0===i||i.removeChild(t)}))},L=class{constructor(t){i(this,t),this._icon=void 0,this._iconOnly=!1,this._label=void 0,this.state={_icon:{},_iconOnly:!1,_label:""}}render(){return t(s,{class:{"icon-only":this.state._iconOnly}},this.state._icon.top&&t("kol-icon",{class:{"icon top":!0},style:this.state._icon.top.style,_ariaLabel:"",_icon:this.state._icon.top.icon}),t("span",null,this.state._icon.left&&t("kol-icon",{class:{"icon left":!0},style:this.state._icon.left.style,_ariaLabel:"",_icon:this.state._icon.left.icon}),!0!==this.state._iconOnly&&this.state._label.length>0?t("span",null,this.state._label):"",t("span",{ref:this.state._label.length>0||!0===this.state._iconOnly?O:void 0},t("slot",{name:"expert"})),this.state._icon.right&&t("kol-icon",{class:{"icon right":!0},style:this.state._icon.right.style,_ariaLabel:"",_icon:this.state._icon.right.icon})),this.state._icon.bottom&&t("kol-icon",{class:{"icon bottom":!0},style:this.state._icon.bottom.style,_ariaLabel:"",_icon:this.state._icon.bottom.icon}))}validateIcon(t){b(this,t)}validateIconOnly(t){_(this,"_iconOnly",t)}validateLabel(t){y(this,t)}componentWillLoad(){this.validateIcon(this._icon),this.validateIconOnly(this._iconOnly),this.validateLabel(this._label)}static get watchers(){return{_icon:["validateIcon"],_iconOnly:["validateIconOnly"],_label:["validateLabel"]}}};export{C as kol_button_wc,L as kol_span_wc};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["KolButtonWc","this","nonce","catchRef","ref","propergateFocus","host","onClick","event","state","_type","propergateSubmitEventToForm","form","propergateResetEventToForm","_a","_on","setEventTargetAndStopPropagation","_b","_value","devHint","_ariaLabel","_icon","_iconAlign","_label","render","h","Host","Object","assign","accessKey","_accessKey","_ariaControls","mapStringOrBoolean2String","_ariaCurrent","mapBoolean2String","_ariaExpanded","_iconOnly","undefined","_ariaSelected","class","_variant","_customClass","length","disabled","_disabled","id","_id","role","_role","tabIndex","_tabIndex","type","name","slot","_align","_tooltipAlign","validateAccessKey","value","watchString","validateAriaControls","validateAriaCurrent","watchValidator","Set","validateAriaExpanded","watchBoolean","validateAriaLabel","validateAriaSelected","validateCustomClass","defaultValue","validateDisabled","a11yHintDisabled","validateIcon","validateIconAlign","watchIconAlign","validateIconOnly","validateId","validateLabel","validateOn","validateRole","validateTabIndex","validateTooltipAlign","watchTooltipAlignment","validateType","watchButtonType","validateValue","setState","validateVariant","watchButtonVariant","componentWillLoad","removeNode","el","Node","setTimeout","parentElement","removeChild","parentNode","KolSpanWc","top","style","icon","left","right","bottom"],"sources":["./src/components/button/component.tsx","./src/components/span/component.tsx"],"sourcesContent":["import { Component, Element, h, Host, JSX, Prop, State, Watch } from '@stencil/core';\n\nimport { Generic } from '@a11y-ui/core';\nimport {\n\tAlternativButtonLinkRole,\n\tAriaCurrent,\n\tButtonStates,\n\tKoliBriButtonCallbacks,\n\tKoliBriButtonType,\n\tKoliBriButtonVariant,\n\tOptionalButtonProps,\n\tOptionalButtonStates,\n\tRequiredButtonProps,\n\tRequiredButtonStates,\n\twatchTooltipAlignment,\n} from '../../types/button-link';\nimport { Stringified } from '../../types/common';\nimport { KoliBriIconProp } from '../../types/icon';\nimport { Alignment } from '../../types/props/alignment';\nimport { a11yHintDisabled, devHint } from '../../utils/a11y.tipps';\nimport { nonce } from '../../utils/dev.utils';\nimport {\n\tmapBoolean2String,\n\tmapStringOrBoolean2String,\n\tsetEventTargetAndStopPropagation,\n\tsetState,\n\twatchBoolean,\n\twatchString,\n\twatchValidator,\n} from '../../utils/prop.validators';\nimport { propergateFocus } from '../../utils/reuse';\nimport { validateIcon, watchIconAlign } from '../../utils/validators/icon';\nimport { validateAriaLabel, validateLabel } from '../../utils/validators/label';\nimport { validateTabIndex } from '../../utils/validators/tab-index';\nimport { propergateResetEventToForm, propergateSubmitEventToForm } from '../form/controller';\nimport { watchButtonType, watchButtonVariant } from './controller';\n\n/**\n * @internal\n */\n@Component({\n\ttag: 'kol-button-wc',\n\tshadow: false,\n})\nexport class KolButtonWc implements Generic.Element.ComponentApi<RequiredButtonProps, OptionalButtonProps, RequiredButtonStates, OptionalButtonStates> {\n\t@Element() private readonly host?: HTMLKolButtonWcElement;\n\tprivate readonly nonce = nonce();\n\tprivate ref?: HTMLButtonElement;\n\n\tprivate readonly catchRef = (ref?: HTMLButtonElement) => {\n\t\tthis.ref = ref;\n\t\tpropergateFocus(this.host, this.ref);\n\t};\n\n\tprivate readonly onClick = (event: MouseEvent) => {\n\t\tif (this.state._type === 'submit') {\n\t\t\tpropergateSubmitEventToForm({\n\t\t\t\tform: this.host,\n\t\t\t\tref: this.ref,\n\t\t\t});\n\t\t} else if (this.state._type === 'reset') {\n\t\t\tpropergateResetEventToForm({\n\t\t\t\tform: this.host,\n\t\t\t\tref: this.ref,\n\t\t\t});\n\t\t} else if (typeof this.state._on?.onClick === 'function') {\n\t\t\tsetEventTargetAndStopPropagation(event, this.ref);\n\t\t\tthis.state._on?.onClick(event, this.state._value);\n\t\t} else {\n\t\t\tdevHint(`It was no button click callback configured!`);\n\t\t}\n\t};\n\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<button\n\t\t\t\t\tref={this.catchRef}\n\t\t\t\t\taccessKey={this.state._accessKey}\n\t\t\t\t\taria-controls={this.state._ariaControls}\n\t\t\t\t\taria-current={mapStringOrBoolean2String(this.state._ariaCurrent)}\n\t\t\t\t\taria-expanded={mapBoolean2String(this.state._ariaExpanded)}\n\t\t\t\t\taria-label={this.state._iconOnly === false ? this.state._ariaLabel || this.state._label : undefined}\n\t\t\t\t\taria-labelledby={this.state._iconOnly === true ? this.nonce : undefined}\n\t\t\t\t\taria-selected={mapStringOrBoolean2String(this.state._ariaSelected)}\n\t\t\t\t\tclass={{\n\t\t\t\t\t\t[this.state._variant as string]: this.state._variant !== 'custom',\n\t\t\t\t\t\t[this.state._customClass as string]:\n\t\t\t\t\t\t\tthis.state._variant === 'custom' && typeof this.state._customClass === 'string' && this.state._customClass.length > 0,\n\t\t\t\t\t\t'icon-only': this.state._iconOnly === true,\n\t\t\t\t\t}}\n\t\t\t\t\tdisabled={this.state._disabled}\n\t\t\t\t\tid={this.state._id}\n\t\t\t\t\t{...this.state._on}\n\t\t\t\t\tonClick={this.onClick}\n\t\t\t\t\trole={this.state._role}\n\t\t\t\t\ttabIndex={this.state._tabIndex}\n\t\t\t\t\ttype={this.state._type}\n\t\t\t\t>\n\t\t\t\t\t<kol-span-wc _icon={this._icon} _iconOnly={this._iconOnly} _label={this.state._ariaLabel || this.state._label}>\n\t\t\t\t\t\t<slot name=\"expert\" slot=\"expert\" />\n\t\t\t\t\t</kol-span-wc>\n\t\t\t\t</button>\n\t\t\t\t{this.state._iconOnly === true && (\n\t\t\t\t\t<kol-tooltip\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * Dieses Aria-Hidden verhindert das doppelte Vorlesen des Labels,\n\t\t\t\t\t\t * verhindert aber nicht das Aria-Labelledby vorgelesen wird.\n\t\t\t\t\t\t */\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t_align={this.state._tooltipAlign}\n\t\t\t\t\t\t_id={this.nonce}\n\t\t\t\t\t\t_label={this.state._ariaLabel || this.state._label}\n\t\t\t\t\t></kol-tooltip>\n\t\t\t\t)}\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Gibt an, mit welcher Tastenkombination man den Button auslösen oder fokussieren kann.\n\t */\n\t@Prop() public _accessKey?: string;\n\n\t/**\n\t * Gibt an, welche Elemente kontrolliert werden. (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-controls)\n\t */\n\t@Prop() public _ariaControls?: string;\n\n\t/**\n\t * Gibt an, welchen aktuellen Auswahlstatus der Button hat. (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-current)\n\t */\n\t@Prop() public _ariaCurrent?: AriaCurrent;\n\n\t/**\n\t * Gibt an, ob durch den Button etwas aufgeklappt wurde. (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-expanded)\n\t */\n\t@Prop({ reflect: true }) public _ariaExpanded?: boolean;\n\n\t/**\n\t * Gibt einen beschreibenden Text für den Screenreader an. Damit die\n\t * Sprachsteuerung von interaktiven Elementen funktioniert, muss der\n\t * Aria-Label-Text mit dem Label-Text des Buttons beginnen.\n\t *\n\t * - https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-label\n\t */\n\t@Prop({ mutable: true, reflect: false }) public _ariaLabel?: string = '';\n\n\t/**\n\t * Gibt an, ob Element ausgewählt ist (role=tab). (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-selected)\n\t */\n\t@Prop({ reflect: true }) public _ariaSelected?: boolean;\n\n\t/**\n\t * Gibt an, welche Custom-Class übergeben werden soll, wenn _variant=\"custom\" gesetzt ist.\n\t */\n\t@Prop() public _customClass?: string;\n\n\t/**\n\t * Gibt an, ob der Button deaktiviert ist.\n\t */\n\t@Prop({ reflect: true }) public _disabled?: boolean = false;\n\n\t/**\n\t * Gibt den Class-Identifier eines Icons eine eingebunden Icofont an. (z.B. https://icofont.com/)\n\t */\n\t@Prop() public _icon?: Stringified<KoliBriIconProp>;\n\n\t/**\n\t * Gibt an, ob das Icon links oder rechts dargestellt werden soll.\n\t *\n\t * @deprecated\n\t */\n\t@Prop() public _iconAlign?: Alignment = 'left';\n\n\t/**\n\t * Gibt an, ob nur das Icon angezeigt wird.\n\t */\n\t@Prop({ reflect: true }) public _iconOnly?: boolean = false;\n\n\t/**\n\t * Gibt die ID der Schaltfläche an. (Selection, Testing)\n\t */\n\t@Prop() public _id?: string;\n\n\t/**\n\t * Gibt den Label für die Beschriftung der Schaltfläche an.\n\t */\n\t// - eslint-disable-next-line @stencil/strict-mutable\n\t@Prop({ mutable: true, reflect: false }) public _label!: string;\n\n\t/**\n\t * Gibt die EventCallback-Funktionen für die Button-Events an.\n\t */\n\t@Prop() public _on?: KoliBriButtonCallbacks<unknown>;\n\n\t/**\n\t * Gibt an, welche Role der Schalter hat.\n\t */\n\t@Prop() public _role?: AlternativButtonLinkRole;\n\n\t/**\n\t * Gibt an, welchen Tab-Index der Button hat. (https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex)\n\t */\n\t@Prop() public _tabIndex?: number;\n\n\t/**\n\t * Gibt an, ob der Tooltip oben, rechts, unten oder links angezeigt werden soll.\n\t */\n\t@Prop() public _tooltipAlign?: Alignment = 'top';\n\n\t/**\n\t * Gibt an, welche Typ der Button hat.\n\t */\n\t@Prop() public _type?: KoliBriButtonType = 'button';\n\n\t/**\n\t * Gibt einen Wert an, den der Schalter bei einem Klick zurückgibt.\n\t */\n\t@Prop() public _value?: Stringified<unknown>;\n\n\t/**\n\t * Gibt an, welche Ausprägung der Button hat.\n\t */\n\t@Prop() public _variant?: KoliBriButtonVariant = 'normal';\n\n\t/**\n\t * @see: components/abbr/component.tsx (@State)\n\t */\n\t@State() public state: ButtonStates = {\n\t\t_ariaLabel: '',\n\t\t_icon: {},\n\t\t_iconAlign: 'left',\n\t\t_label: '',\n\t\t_on: {},\n\t\t_type: 'button',\n\t};\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_accessKey')\n\tpublic validateAccessKey(value?: string): void {\n\t\twatchString(this, '_accessKey', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_ariaControls')\n\tpublic validateAriaControls(value?: string): void {\n\t\twatchString(this, '_ariaControls', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_ariaCurrent')\n\tpublic validateAriaCurrent(value?: AriaCurrent): void {\n\t\twatchValidator(\n\t\t\tthis,\n\t\t\t'_ariaControls',\n\t\t\t(value) => value === true || value === 'date' || value === 'location' || value === 'page' || value === 'step' || value === 'time',\n\t\t\tnew Set(['boolean', 'String {data, location, page, step, time}']),\n\t\t\tvalue\n\t\t);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_ariaExpanded')\n\tpublic validateAriaExpanded(value?: boolean): void {\n\t\twatchBoolean(this, '_ariaExpanded', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_ariaLabel')\n\tpublic validateAriaLabel(value?: string): void {\n\t\tvalidateAriaLabel(this, value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_ariaSelected')\n\tpublic validateAriaSelected(value?: boolean): void {\n\t\twatchBoolean(this, '_ariaSelected', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_customClass')\n\tpublic validateCustomClass(value?: string): void {\n\t\twatchString(this, '_customClass', value, {\n\t\t\tdefaultValue: undefined,\n\t\t});\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_disabled')\n\tpublic validateDisabled(value?: boolean): void {\n\t\twatchBoolean(this, '_disabled', value);\n\t\tif (value === true) {\n\t\t\ta11yHintDisabled();\n\t\t}\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_icon')\n\tpublic validateIcon(value?: KoliBriIconProp): void {\n\t\tvalidateIcon(this, value);\n\t}\n\n\t/**\n\t * @deprecated\n\t */\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_iconAlign')\n\tpublic validateIconAlign(value?: Alignment): void {\n\t\twatchIconAlign(this, value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_iconOnly')\n\tpublic validateIconOnly(value?: boolean): void {\n\t\twatchBoolean(this, '_iconOnly', value, {\n\t\t\tdefaultValue: false,\n\t\t\t// hooks: {\n\t\t\t// beforePatch: (_value, nextState) => {\n\t\t\t// let ariaLabel = this.state._ariaLabel;\n\t\t\t// if (nextState.has('_ariaLabel')) {\n\t\t\t// ariaLabel = nextState.get('_ariaLabel') as string;\n\t\t\t// }\n\t\t\t// if (typeof ariaLabel !== 'string' || ariaLabel.length <= 0) {\n\t\t\t// devHint(`[KolButton]: Bevor Icon-Only aktiviert wird, muss ein Aria-Label bzw. Label gesetzt werden.`);\n\t\t\t// nextState.set('_iconOnly', false);\n\t\t\t// }\n\t\t\t// },\n\t\t\t// },\n\t\t});\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_id')\n\tpublic validateId(value?: string): void {\n\t\twatchString(this, '_id', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_label')\n\tpublic validateLabel(value?: string): void {\n\t\tvalidateLabel(this, value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_on')\n\tpublic validateOn(value?: KoliBriButtonCallbacks<unknown>): void {\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tthis.state = {\n\t\t\t\t...this.state,\n\t\t\t\t_on: value,\n\t\t\t};\n\t\t}\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_role')\n\tpublic validateRole(value?: AlternativButtonLinkRole): void {\n\t\twatchString(this, '_role', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_tabIndex')\n\tpublic validateTabIndex(value?: number): void {\n\t\tvalidateTabIndex(this, value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_tooltipAlign')\n\tpublic validateTooltipAlign(value?: Alignment): void {\n\t\twatchTooltipAlignment(this, '_tooltipAlign', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_type')\n\tpublic validateType(value?: KoliBriButtonType): void {\n\t\twatchButtonType(this, '_type', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_value')\n\tpublic validateValue(value?: Stringified<unknown>): void {\n\t\tsetState(this, '_value', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_variant')\n\tpublic validateVariant(value?: KoliBriButtonVariant): void {\n\t\twatchButtonVariant(this, '_variant', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (componentWillLoad)\n\t */\n\tpublic componentWillLoad(): void {\n\t\tthis.validateAccessKey(this._accessKey);\n\t\tthis.validateAriaControls(this._ariaControls);\n\t\tthis.validateAriaCurrent(this._ariaCurrent);\n\t\tthis.validateAriaExpanded(this._ariaExpanded);\n\t\tthis.validateAriaLabel(this._ariaLabel);\n\t\tthis.validateAriaSelected(this._ariaSelected);\n\t\tthis.validateCustomClass(this._customClass);\n\t\tthis.validateDisabled(this._disabled);\n\t\tthis.validateIcon(this._icon);\n\t\tthis.validateIconAlign(this._iconAlign);\n\t\tthis.validateIconOnly(this._iconOnly);\n\t\tthis.validateId(this._id);\n\t\tthis.validateLabel(this._label);\n\t\tthis.validateOn(this._on);\n\t\tthis.validateRole(this._role);\n\t\tthis.validateTabIndex(this._tabIndex);\n\t\tthis.validateTooltipAlign(this._tooltipAlign);\n\t\tthis.validateType(this._type);\n\t\tthis.validateValue(this._value);\n\t\tthis.validateVariant(this._variant);\n\t}\n}\n","import { Generic } from '@a11y-ui/core';\nimport { Component, h, Host, JSX, Prop, State, Watch } from '@stencil/core';\nimport { Stringified } from '../../types/common';\n\nimport { KoliBriCustomIcon, KoliBriIconProp } from '../../types/icon';\nimport { watchBoolean } from '../../utils/prop.validators';\nimport { validateIcon } from '../../utils/validators/icon';\nimport { validateLabel } from '../../utils/validators/label';\n\n/**\n * API\n */\ntype RequiredProps = {\n\tlabel: string;\n};\ntype OptionalProps = {\n\ticon: Stringified<KoliBriIconProp>;\n\ticonOnly: boolean;\n};\nexport type Props = Generic.Element.Members<RequiredProps, OptionalProps>;\n\ntype RequiredStates = {\n\ticon: {\n\t\ttop?: KoliBriCustomIcon;\n\t\tright?: KoliBriCustomIcon;\n\t\tbottom?: KoliBriCustomIcon;\n\t\tleft?: KoliBriCustomIcon;\n\t};\n\ticonOnly: boolean;\n\tlabel: string;\n};\ntype OptionalStates = unknown;\nexport type States = Generic.Element.Members<RequiredStates, OptionalStates>;\n\nconst removeNode = (el?: Node) => {\n\tif (el instanceof Node) {\n\t\tsetTimeout(() => {\n\t\t\tel.parentElement?.removeChild(el);\n\t\t\tel.parentNode?.removeChild(el);\n\t\t});\n\t}\n};\n\n/**\n * @internal\n */\n@Component({\n\ttag: 'kol-span-wc',\n\tshadow: false,\n})\nexport class KolSpanWc implements Generic.Element.ComponentApi<RequiredProps, OptionalProps, RequiredStates, OptionalStates> {\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<Host\n\t\t\t\tclass={{\n\t\t\t\t\t'icon-only': this.state._iconOnly,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{this.state._icon.top && (\n\t\t\t\t\t<kol-icon\n\t\t\t\t\t\tclass={{\n\t\t\t\t\t\t\t'icon top': true,\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tstyle={this.state._icon.top.style}\n\t\t\t\t\t\t_ariaLabel=\"\"\n\t\t\t\t\t\t_icon={this.state._icon.top.icon}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t<span>\n\t\t\t\t\t{this.state._icon.left && (\n\t\t\t\t\t\t<kol-icon\n\t\t\t\t\t\t\tclass={{\n\t\t\t\t\t\t\t\t'icon left': true,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tstyle={this.state._icon.left.style}\n\t\t\t\t\t\t\t_ariaLabel=\"\"\n\t\t\t\t\t\t\t_icon={this.state._icon.left.icon}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{this.state._iconOnly !== true && this.state._label.length > 0 ? <span>{this.state._label}</span> : ''}\n\t\t\t\t\t{/*\n\t\t\t\t\t\t\tEs ist keine gute Idee hier einen Slot einzufügen,\n\t\t\t\t\t\t\tda dadurch die komplette Unterstützung der Komponente\n\t\t\t\t\t\t\tumgangen werden kann.\n\t\t\t\t\t\t*/}\n\t\t\t\t\t<span ref={this.state._label.length > 0 || this.state._iconOnly === true ? removeNode : undefined}>\n\t\t\t\t\t\t<slot name=\"expert\" />\n\t\t\t\t\t</span>\n\t\t\t\t\t{this.state._icon.right && (\n\t\t\t\t\t\t<kol-icon\n\t\t\t\t\t\t\tclass={{\n\t\t\t\t\t\t\t\t'icon right': true,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tstyle={this.state._icon.right.style}\n\t\t\t\t\t\t\t_ariaLabel=\"\"\n\t\t\t\t\t\t\t_icon={this.state._icon.right.icon}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</span>\n\t\t\t\t{this.state._icon.bottom && (\n\t\t\t\t\t<kol-icon\n\t\t\t\t\t\tclass={{\n\t\t\t\t\t\t\t'icon bottom': true,\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tstyle={this.state._icon.bottom.style}\n\t\t\t\t\t\t_ariaLabel=\"\"\n\t\t\t\t\t\t_icon={this.state._icon.bottom.icon}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Gibt den Class-Identifier eines Icons eine eingebunden Icofont an. (z.B. https://icofont.com/)\n\t */\n\t@Prop() public _icon?: Stringified<KoliBriIconProp>;\n\n\t/**\n\t * Gibt an, ob nur das Icon angezeigt wird.\n\t */\n\t@Prop({ reflect: true }) public _iconOnly?: boolean = false;\n\n\t/**\n\t * Gibt einen beschreibenden Text für das Text-Element an.\n\t */\n\t@Prop() public _label!: string;\n\n\t/**\n\t * @see: components/abbr/component.tsx (@State)\n\t */\n\t@State() public state: States = {\n\t\t_icon: {},\n\t\t_iconOnly: false,\n\t\t_label: '',\n\t};\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_icon')\n\tpublic validateIcon(value?: KoliBriIconProp): void {\n\t\tvalidateIcon(this, value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_iconOnly')\n\tpublic validateIconOnly(value?: boolean): void {\n\t\twatchBoolean(this, '_iconOnly', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_label')\n\tpublic validateLabel(value?: string): void {\n\t\tvalidateLabel(this, value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (componentWillLoad)\n\t */\n\tpublic componentWillLoad(): void {\n\t\tthis.validateIcon(this._icon);\n\t\tthis.validateIconOnly(this._iconOnly);\n\t\tthis.validateLabel(this._label);\n\t}\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["KolButtonWc","this","nonce","catchRef","ref","propergateFocus","host","onClick","event","state","_type","propergateSubmitEventToForm","form","propergateResetEventToForm","_a","_on","setEventTargetAndStopPropagation","_b","_value","devHint","_ariaLabel","_icon","_iconAlign","_label","render","h","Host","Object","assign","accessKey","_accessKey","_ariaControls","mapStringOrBoolean2String","_ariaCurrent","mapBoolean2String","_ariaExpanded","_iconOnly","undefined","_ariaSelected","class","_variant","_customClass","length","disabled","_disabled","id","_id","role","_role","tabIndex","_tabIndex","type","name","slot","_align","_tooltipAlign","validateAccessKey","value","watchString","validateAriaControls","validateAriaCurrent","watchValidator","Set","validateAriaExpanded","watchBoolean","validateAriaLabel","validateAriaSelected","validateCustomClass","defaultValue","validateDisabled","a11yHintDisabled","validateIcon","validateIconAlign","watchIconAlign","validateIconOnly","validateId","validateLabel","validateOn","validateRole","validateTabIndex","validateTooltipAlign","watchTooltipAlignment","validateType","watchButtonType","validateValue","setState","validateVariant","watchButtonVariant","componentWillLoad","removeNode","el","Node","setTimeout","parentElement","removeChild","parentNode","KolSpanWc","top","style","icon","left","right","bottom"],"sources":["./src/components/button/component.tsx","./src/components/span/component.tsx"],"sourcesContent":["import { Component, Element, h, Host, JSX, Prop, State, Watch } from '@stencil/core';\n\nimport { Generic } from '@a11y-ui/core';\nimport {\n\tAlternativButtonLinkRole,\n\tAriaCurrent,\n\tButtonStates,\n\tKoliBriButtonCallbacks,\n\tKoliBriButtonType,\n\tKoliBriButtonVariant,\n\tOptionalButtonProps,\n\tOptionalButtonStates,\n\tRequiredButtonProps,\n\tRequiredButtonStates,\n\twatchTooltipAlignment,\n} from '../../types/button-link';\nimport { Stringified } from '../../types/common';\nimport { KoliBriIconProp } from '../../types/icon';\nimport { Alignment } from '../../types/props/alignment';\nimport { a11yHintDisabled, devHint } from '../../utils/a11y.tipps';\nimport { nonce } from '../../utils/dev.utils';\nimport {\n\tmapBoolean2String,\n\tmapStringOrBoolean2String,\n\tsetEventTargetAndStopPropagation,\n\tsetState,\n\twatchBoolean,\n\twatchString,\n\twatchValidator,\n} from '../../utils/prop.validators';\nimport { propergateFocus } from '../../utils/reuse';\nimport { validateIcon, watchIconAlign } from '../../utils/validators/icon';\nimport { validateAriaLabel, validateLabel } from '../../utils/validators/label';\nimport { validateTabIndex } from '../../utils/validators/tab-index';\nimport { propergateResetEventToForm, propergateSubmitEventToForm } from '../form/controller';\nimport { watchButtonType, watchButtonVariant } from './controller';\n\n/**\n * @internal\n */\n@Component({\n\ttag: 'kol-button-wc',\n\tshadow: false,\n})\nexport class KolButtonWc implements Generic.Element.ComponentApi<RequiredButtonProps, OptionalButtonProps, RequiredButtonStates, OptionalButtonStates> {\n\t@Element() private readonly host?: HTMLKolButtonWcElement;\n\tprivate readonly nonce = nonce();\n\tprivate ref?: HTMLButtonElement;\n\n\tprivate readonly catchRef = (ref?: HTMLButtonElement) => {\n\t\tthis.ref = ref;\n\t\tpropergateFocus(this.host, this.ref);\n\t};\n\n\tprivate readonly onClick = (event: MouseEvent) => {\n\t\tif (this.state._type === 'submit') {\n\t\t\tpropergateSubmitEventToForm({\n\t\t\t\tform: this.host,\n\t\t\t\tref: this.ref,\n\t\t\t});\n\t\t} else if (this.state._type === 'reset') {\n\t\t\tpropergateResetEventToForm({\n\t\t\t\tform: this.host,\n\t\t\t\tref: this.ref,\n\t\t\t});\n\t\t} else if (typeof this.state._on?.onClick === 'function') {\n\t\t\tsetEventTargetAndStopPropagation(event, this.ref);\n\t\t\tthis.state._on?.onClick(event, this.state._value);\n\t\t} else {\n\t\t\tdevHint(`It was no button click callback configured!`);\n\t\t}\n\t};\n\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<button\n\t\t\t\t\tref={this.catchRef}\n\t\t\t\t\taccessKey={this.state._accessKey}\n\t\t\t\t\taria-controls={this.state._ariaControls}\n\t\t\t\t\taria-current={mapStringOrBoolean2String(this.state._ariaCurrent)}\n\t\t\t\t\taria-expanded={mapBoolean2String(this.state._ariaExpanded)}\n\t\t\t\t\taria-label={this.state._iconOnly === false ? this.state._ariaLabel || this.state._label : undefined}\n\t\t\t\t\taria-labelledby={this.state._iconOnly === true ? this.nonce : undefined}\n\t\t\t\t\taria-selected={mapStringOrBoolean2String(this.state._ariaSelected)}\n\t\t\t\t\tclass={{\n\t\t\t\t\t\t[this.state._variant as string]: this.state._variant !== 'custom',\n\t\t\t\t\t\t[this.state._customClass as string]:\n\t\t\t\t\t\t\tthis.state._variant === 'custom' && typeof this.state._customClass === 'string' && this.state._customClass.length > 0,\n\t\t\t\t\t\t'icon-only': this.state._iconOnly === true,\n\t\t\t\t\t}}\n\t\t\t\t\tdisabled={this.state._disabled}\n\t\t\t\t\tid={this.state._id}\n\t\t\t\t\t{...this.state._on}\n\t\t\t\t\tonClick={this.onClick}\n\t\t\t\t\trole={this.state._role}\n\t\t\t\t\ttabIndex={this.state._tabIndex}\n\t\t\t\t\ttype={this.state._type}\n\t\t\t\t>\n\t\t\t\t\t<kol-span-wc _icon={this._icon} _iconOnly={this._iconOnly} _label={this.state._ariaLabel || this.state._label}>\n\t\t\t\t\t\t<slot name=\"expert\" slot=\"expert\" />\n\t\t\t\t\t</kol-span-wc>\n\t\t\t\t</button>\n\t\t\t\t{this.state._iconOnly === true && (\n\t\t\t\t\t<kol-tooltip\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * Dieses Aria-Hidden verhindert das doppelte Vorlesen des Labels,\n\t\t\t\t\t\t * verhindert aber nicht das Aria-Labelledby vorgelesen wird.\n\t\t\t\t\t\t */\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t_align={this.state._tooltipAlign}\n\t\t\t\t\t\t_id={this.nonce}\n\t\t\t\t\t\t_label={this.state._ariaLabel || this.state._label}\n\t\t\t\t\t></kol-tooltip>\n\t\t\t\t)}\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Gibt an, mit welcher Tastenkombination man den Button auslösen oder fokussieren kann.\n\t */\n\t@Prop() public _accessKey?: string;\n\n\t/**\n\t * Gibt an, welche Elemente kontrolliert werden. (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-controls)\n\t */\n\t@Prop() public _ariaControls?: string;\n\n\t/**\n\t * Gibt an, welchen aktuellen Auswahlstatus der Button hat. (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-current)\n\t */\n\t@Prop() public _ariaCurrent?: AriaCurrent;\n\n\t/**\n\t * Gibt an, ob durch den Button etwas aufgeklappt wurde. (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-expanded)\n\t */\n\t@Prop({ reflect: true }) public _ariaExpanded?: boolean;\n\n\t/**\n\t * Gibt einen beschreibenden Text für den Screenreader an. Damit die\n\t * Sprachsteuerung von interaktiven Elementen funktioniert, muss der\n\t * Aria-Label-Text mit dem Label-Text des Buttons beginnen.\n\t *\n\t * - https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-label\n\t */\n\t@Prop({ mutable: true, reflect: false }) public _ariaLabel?: string = '';\n\n\t/**\n\t * Gibt an, ob Element ausgewählt ist (role=tab). (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-selected)\n\t */\n\t@Prop({ reflect: true }) public _ariaSelected?: boolean;\n\n\t/**\n\t * Gibt an, welche Custom-Class übergeben werden soll, wenn _variant=\"custom\" gesetzt ist.\n\t */\n\t@Prop() public _customClass?: string;\n\n\t/**\n\t * Gibt an, ob der Button deaktiviert ist.\n\t */\n\t@Prop({ reflect: true }) public _disabled?: boolean = false;\n\n\t/**\n\t * Gibt den Class-Identifier eines Icons eine eingebunden Icofont an. (z.B. https://icofont.com/)\n\t */\n\t@Prop() public _icon?: Stringified<KoliBriIconProp>;\n\n\t/**\n\t * Gibt an, ob das Icon links oder rechts dargestellt werden soll.\n\t *\n\t * @deprecated\n\t */\n\t@Prop() public _iconAlign?: Alignment = 'left';\n\n\t/**\n\t * Gibt an, ob nur das Icon angezeigt wird.\n\t */\n\t@Prop({ reflect: true }) public _iconOnly?: boolean = false;\n\n\t/**\n\t * Gibt die ID der Schaltfläche an. (Selection, Testing)\n\t */\n\t@Prop() public _id?: string;\n\n\t/**\n\t * Gibt den Label für die Beschriftung der Schaltfläche an.\n\t */\n\t// - eslint-disable-next-line @stencil/strict-mutable\n\t@Prop({ mutable: true, reflect: false }) public _label!: string;\n\n\t/**\n\t * Gibt die EventCallback-Funktionen für die Button-Events an.\n\t */\n\t@Prop() public _on?: KoliBriButtonCallbacks<unknown>;\n\n\t/**\n\t * Gibt an, welche Role der Schalter hat.\n\t */\n\t@Prop() public _role?: AlternativButtonLinkRole;\n\n\t/**\n\t * Gibt an, welchen Tab-Index der Button hat. (https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex)\n\t */\n\t@Prop() public _tabIndex?: number;\n\n\t/**\n\t * Gibt an, ob der Tooltip oben, rechts, unten oder links angezeigt werden soll.\n\t */\n\t@Prop() public _tooltipAlign?: Alignment = 'top';\n\n\t/**\n\t * Gibt an, welche Typ der Button hat.\n\t */\n\t@Prop() public _type?: KoliBriButtonType = 'button';\n\n\t/**\n\t * Gibt einen Wert an, den der Schalter bei einem Klick zurückgibt.\n\t */\n\t@Prop() public _value?: Stringified<unknown>;\n\n\t/**\n\t * Gibt an, welche Ausprägung der Button hat.\n\t */\n\t@Prop() public _variant?: KoliBriButtonVariant = 'normal';\n\n\t/**\n\t * @see: components/abbr/component.tsx (@State)\n\t */\n\t@State() public state: ButtonStates = {\n\t\t_ariaLabel: '',\n\t\t_icon: {},\n\t\t_iconAlign: 'left',\n\t\t_label: '',\n\t\t_on: {},\n\t\t_type: 'button',\n\t};\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_accessKey')\n\tpublic validateAccessKey(value?: string): void {\n\t\twatchString(this, '_accessKey', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_ariaControls')\n\tpublic validateAriaControls(value?: string): void {\n\t\twatchString(this, '_ariaControls', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_ariaCurrent')\n\tpublic validateAriaCurrent(value?: AriaCurrent): void {\n\t\twatchValidator(\n\t\t\tthis,\n\t\t\t'_ariaControls',\n\t\t\t(value) => value === true || value === 'date' || value === 'location' || value === 'page' || value === 'step' || value === 'time',\n\t\t\tnew Set(['boolean', 'String {data, location, page, step, time}']),\n\t\t\tvalue\n\t\t);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_ariaExpanded')\n\tpublic validateAriaExpanded(value?: boolean): void {\n\t\twatchBoolean(this, '_ariaExpanded', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_ariaLabel')\n\tpublic validateAriaLabel(value?: string): void {\n\t\tvalidateAriaLabel(this, value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_ariaSelected')\n\tpublic validateAriaSelected(value?: boolean): void {\n\t\twatchBoolean(this, '_ariaSelected', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_customClass')\n\tpublic validateCustomClass(value?: string): void {\n\t\twatchString(this, '_customClass', value, {\n\t\t\tdefaultValue: undefined,\n\t\t});\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_disabled')\n\tpublic validateDisabled(value?: boolean): void {\n\t\twatchBoolean(this, '_disabled', value);\n\t\tif (value === true) {\n\t\t\ta11yHintDisabled();\n\t\t}\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_icon')\n\tpublic validateIcon(value?: KoliBriIconProp): void {\n\t\tvalidateIcon(this, value);\n\t}\n\n\t/**\n\t * @deprecated\n\t */\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_iconAlign')\n\tpublic validateIconAlign(value?: Alignment): void {\n\t\twatchIconAlign(this, value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_iconOnly')\n\tpublic validateIconOnly(value?: boolean): void {\n\t\twatchBoolean(this, '_iconOnly', value, {\n\t\t\tdefaultValue: false,\n\t\t\t// hooks: {\n\t\t\t// beforePatch: (_value, nextState) => {\n\t\t\t// let ariaLabel = this.state._ariaLabel;\n\t\t\t// if (nextState.has('_ariaLabel')) {\n\t\t\t// ariaLabel = nextState.get('_ariaLabel') as string;\n\t\t\t// }\n\t\t\t// if (typeof ariaLabel !== 'string' || ariaLabel.length <= 0) {\n\t\t\t// devHint(`[KolButton]: Bevor Icon-Only aktiviert wird, muss ein Aria-Label bzw. Label gesetzt werden.`);\n\t\t\t// nextState.set('_iconOnly', false);\n\t\t\t// }\n\t\t\t// },\n\t\t\t// },\n\t\t});\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_id')\n\tpublic validateId(value?: string): void {\n\t\twatchString(this, '_id', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_label')\n\tpublic validateLabel(value?: string): void {\n\t\tvalidateLabel(this, value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_on')\n\tpublic validateOn(value?: KoliBriButtonCallbacks<unknown>): void {\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tthis.state = {\n\t\t\t\t...this.state,\n\t\t\t\t_on: value,\n\t\t\t};\n\t\t}\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_role')\n\tpublic validateRole(value?: AlternativButtonLinkRole): void {\n\t\twatchString(this, '_role', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_tabIndex')\n\tpublic validateTabIndex(value?: number): void {\n\t\tvalidateTabIndex(this, value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_tooltipAlign')\n\tpublic validateTooltipAlign(value?: Alignment): void {\n\t\twatchTooltipAlignment(this, '_tooltipAlign', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_type')\n\tpublic validateType(value?: KoliBriButtonType): void {\n\t\twatchButtonType(this, '_type', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_value')\n\tpublic validateValue(value?: Stringified<unknown>): void {\n\t\tsetState(this, '_value', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_variant')\n\tpublic validateVariant(value?: KoliBriButtonVariant): void {\n\t\twatchButtonVariant(this, '_variant', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (componentWillLoad)\n\t */\n\tpublic componentWillLoad(): void {\n\t\tthis.validateAccessKey(this._accessKey);\n\t\tthis.validateAriaControls(this._ariaControls);\n\t\tthis.validateAriaCurrent(this._ariaCurrent);\n\t\tthis.validateAriaExpanded(this._ariaExpanded);\n\t\tthis.validateAriaLabel(this._ariaLabel);\n\t\tthis.validateAriaSelected(this._ariaSelected);\n\t\tthis.validateCustomClass(this._customClass);\n\t\tthis.validateDisabled(this._disabled);\n\t\tthis.validateIcon(this._icon);\n\t\tthis.validateIconAlign(this._iconAlign);\n\t\tthis.validateIconOnly(this._iconOnly);\n\t\tthis.validateId(this._id);\n\t\tthis.validateLabel(this._label);\n\t\tthis.validateOn(this._on);\n\t\tthis.validateRole(this._role);\n\t\tthis.validateTabIndex(this._tabIndex);\n\t\tthis.validateTooltipAlign(this._tooltipAlign);\n\t\tthis.validateType(this._type);\n\t\tthis.validateValue(this._value);\n\t\tthis.validateVariant(this._variant);\n\t}\n}\n","import { Generic } from '@a11y-ui/core';\nimport { Component, h, Host, JSX, Prop, State, Watch } from '@stencil/core';\nimport { Stringified } from '../../types/common';\n\nimport { KoliBriCustomIcon, KoliBriIconProp } from '../../types/icon';\nimport { watchBoolean } from '../../utils/prop.validators';\nimport { validateIcon } from '../../utils/validators/icon';\nimport { validateLabel } from '../../utils/validators/label';\n\n/**\n * API\n */\ntype RequiredProps = {\n\tlabel: string;\n};\ntype OptionalProps = {\n\ticon: Stringified<KoliBriIconProp>;\n\ticonOnly: boolean;\n};\nexport type Props = Generic.Element.Members<RequiredProps, OptionalProps>;\n\ntype RequiredStates = {\n\ticon: {\n\t\ttop?: KoliBriCustomIcon;\n\t\tright?: KoliBriCustomIcon;\n\t\tbottom?: KoliBriCustomIcon;\n\t\tleft?: KoliBriCustomIcon;\n\t};\n\ticonOnly: boolean;\n\tlabel: string;\n};\ntype OptionalStates = unknown;\nexport type States = Generic.Element.Members<RequiredStates, OptionalStates>;\n\nconst removeNode = (el?: Node) => {\n\tif (el instanceof Node) {\n\t\tsetTimeout(() => {\n\t\t\tel.parentElement?.removeChild(el);\n\t\t\tel.parentNode?.removeChild(el);\n\t\t});\n\t}\n};\n\n/**\n * @internal\n */\n@Component({\n\ttag: 'kol-span-wc',\n\tshadow: false,\n})\nexport class KolSpanWc implements Generic.Element.ComponentApi<RequiredProps, OptionalProps, RequiredStates, OptionalStates> {\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<Host\n\t\t\t\tclass={{\n\t\t\t\t\t'icon-only': this.state._iconOnly,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{this.state._icon.top && (\n\t\t\t\t\t<kol-icon\n\t\t\t\t\t\tclass={{\n\t\t\t\t\t\t\t'icon top': true,\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tstyle={this.state._icon.top.style}\n\t\t\t\t\t\t_ariaLabel=\"\"\n\t\t\t\t\t\t_icon={this.state._icon.top.icon}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t<span>\n\t\t\t\t\t{this.state._icon.left && (\n\t\t\t\t\t\t<kol-icon\n\t\t\t\t\t\t\tclass={{\n\t\t\t\t\t\t\t\t'icon left': true,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tstyle={this.state._icon.left.style}\n\t\t\t\t\t\t\t_ariaLabel=\"\"\n\t\t\t\t\t\t\t_icon={this.state._icon.left.icon}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{this.state._iconOnly !== true && this.state._label.length > 0 ? <span>{this.state._label}</span> : ''}\n\t\t\t\t\t{/*\n\t\t\t\t\t\t\tEs ist keine gute Idee hier einen Slot einzufügen,\n\t\t\t\t\t\t\tda dadurch die komplette Unterstützung der Komponente\n\t\t\t\t\t\t\tumgangen werden kann.\n\t\t\t\t\t\t*/}\n\t\t\t\t\t<span ref={this.state._label.length > 0 || this.state._iconOnly === true ? removeNode : undefined}>\n\t\t\t\t\t\t<slot name=\"expert\" />\n\t\t\t\t\t</span>\n\t\t\t\t\t{this.state._icon.right && (\n\t\t\t\t\t\t<kol-icon\n\t\t\t\t\t\t\tclass={{\n\t\t\t\t\t\t\t\t'icon right': true,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tstyle={this.state._icon.right.style}\n\t\t\t\t\t\t\t_ariaLabel=\"\"\n\t\t\t\t\t\t\t_icon={this.state._icon.right.icon}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</span>\n\t\t\t\t{this.state._icon.bottom && (\n\t\t\t\t\t<kol-icon\n\t\t\t\t\t\tclass={{\n\t\t\t\t\t\t\t'icon bottom': true,\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tstyle={this.state._icon.bottom.style}\n\t\t\t\t\t\t_ariaLabel=\"\"\n\t\t\t\t\t\t_icon={this.state._icon.bottom.icon}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Gibt den Class-Identifier eines Icons eine eingebunden Icofont an. (z.B. https://icofont.com/)\n\t */\n\t@Prop() public _icon?: Stringified<KoliBriIconProp>;\n\n\t/**\n\t * Gibt an, ob nur das Icon angezeigt wird.\n\t */\n\t@Prop({ reflect: true }) public _iconOnly?: boolean = false;\n\n\t/**\n\t * Gibt einen beschreibenden Text für das Text-Element an.\n\t */\n\t@Prop() public _label!: string;\n\n\t/**\n\t * @see: components/abbr/component.tsx (@State)\n\t */\n\t@State() public state: States = {\n\t\t_icon: {},\n\t\t_iconOnly: false,\n\t\t_label: '',\n\t};\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_icon')\n\tpublic validateIcon(value?: KoliBriIconProp): void {\n\t\tvalidateIcon(this, value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_iconOnly')\n\tpublic validateIconOnly(value?: boolean): void {\n\t\twatchBoolean(this, '_iconOnly', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_label')\n\tpublic validateLabel(value?: string): void {\n\t\tvalidateLabel(this, value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (componentWillLoad)\n\t */\n\tpublic componentWillLoad(): void {\n\t\tthis.validateIcon(this._icon);\n\t\tthis.validateIconOnly(this._iconOnly);\n\t\tthis.validateLabel(this._label);\n\t}\n}\n"],"mappings":"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"}
|