@public-ui/components 1.5.0-rc.7 → 1.5.0-rc.8
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 +8 -8
- package/custom-elements.json +7 -7
- package/dist/cjs/a11y.tipps-d37919af.js +4 -0
- package/dist/cjs/a11y.tipps-d37919af.js.map +1 -0
- package/dist/cjs/{app-globals-962138ea.js → app-globals-6eda606a.js} +1 -1
- package/dist/cjs/{app-globals-962138ea.js.map → app-globals-6eda606a.js.map} +1 -1
- package/dist/cjs/{button-link-824cc1bc.js → button-link-d6aa5d38.js} +1 -1
- package/dist/cjs/button-link-d6aa5d38.js.map +1 -0
- package/dist/cjs/{controller-3153f149.js → controller-21a6eac9.js} +1 -1
- package/dist/cjs/{controller-3153f149.js.map → controller-21a6eac9.js.map} +1 -1
- package/dist/cjs/{controller-69bd7d0e.js → controller-41024136.js} +1 -1
- package/dist/cjs/{controller-69bd7d0e.js.map → controller-41024136.js.map} +1 -1
- package/dist/cjs/{controller-e3409b41.js → controller-5565d7af.js} +1 -1
- package/dist/cjs/{controller-e3409b41.js.map → controller-5565d7af.js.map} +1 -1
- package/dist/cjs/controller-830760de.js +4 -0
- package/dist/cjs/controller-830760de.js.map +1 -0
- package/dist/cjs/{controller-e4ebc485.js → controller-bab88e15.js} +1 -1
- package/dist/cjs/{controller-e4ebc485.js.map → controller-bab88e15.js.map} +1 -1
- package/dist/cjs/{controller-56af7c82.js → controller-e17991a8.js} +1 -1
- package/dist/cjs/{controller-56af7c82.js.map → controller-e17991a8.js.map} +1 -1
- package/dist/cjs/{controller-icon-795c30fb.js → controller-icon-f69a8b14.js} +1 -1
- package/dist/cjs/controller-icon-f69a8b14.js.map +1 -0
- package/dist/cjs/{devtools-0dd3813e.js → devtools-78d46952.js} +1 -1
- package/dist/cjs/{devtools-0dd3813e.js.map → devtools-78d46952.js.map} +1 -1
- package/dist/cjs/{i18n-6d129e0e.js → i18n-f4e2ff1a.js} +1 -1
- package/dist/cjs/{i18n-6d129e0e.js.map → i18n-f4e2ff1a.js.map} +1 -1
- package/dist/cjs/{icon-31fdd6ee.js → icon-e4f3e165.js} +1 -1
- package/dist/cjs/icon-e4f3e165.js.map +1 -0
- package/dist/cjs/index.cjs.js +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-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-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.cjs.entry.js +1 -1
- package/dist/cjs/kol-icon.cjs.entry.js.map +1 -1
- package/dist/cjs/kol-image.cjs.entry.js +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-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.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-quote.cjs.entry.js +1 -1
- package/dist/cjs/kol-quote.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-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/label-412be5d5.js +4 -0
- package/dist/cjs/{label-18346064.js.map → label-412be5d5.js.map} +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/prop.validators-6a254bcc.js +4 -0
- package/dist/cjs/prop.validators-6a254bcc.js.map +1 -0
- package/dist/cjs/{tab-index-b403a20d.js → tab-index-f37e79c5.js} +1 -1
- package/dist/cjs/{tab-index-b403a20d.js.map → tab-index-f37e79c5.js.map} +1 -1
- package/dist/cjs/{validation-9c5d9498.js → validation-ce77567d.js} +1 -1
- package/dist/cjs/{validation-9c5d9498.js.map → validation-ce77567d.js.map} +1 -1
- package/dist/cjs/{validation-1298c9ca.js → validation-fa80f868.js} +1 -1
- package/dist/cjs/validation-fa80f868.js.map +1 -0
- 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/component5.js +1 -1
- package/dist/components/component5.js.map +1 -1
- package/dist/components/component6.js +1 -1
- package/dist/components/component6.js.map +1 -1
- package/dist/components/component8.js +1 -1
- package/dist/components/component8.js.map +1 -1
- package/dist/components/component9.js +1 -1
- package/dist/components/component9.js.map +1 -1
- package/dist/components/controller-icon.js +1 -1
- package/dist/components/controller-icon.js.map +1 -1
- package/dist/components/controller.js +1 -1
- package/dist/components/controller2.js +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/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-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-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-quote.js +1 -1
- package/dist/components/kol-quote.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-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/components/validation.js.map +1 -1
- package/dist/esm/a11y.tipps-5ca36877.js +4 -0
- package/dist/esm/a11y.tipps-5ca36877.js.map +1 -0
- package/dist/esm/{app-globals-2f4ec88e.js → app-globals-08fd5e4e.js} +1 -1
- package/dist/esm/{app-globals-2f4ec88e.js.map → app-globals-08fd5e4e.js.map} +1 -1
- package/dist/esm/{button-link-e424d11b.js → button-link-249585bf.js} +1 -1
- package/dist/esm/button-link-249585bf.js.map +1 -0
- package/dist/esm/{controller-2397b4c5.js → controller-03e00b6c.js} +1 -1
- package/dist/esm/{controller-2397b4c5.js.map → controller-03e00b6c.js.map} +1 -1
- package/dist/esm/{controller-c1692f88.js → controller-08af836c.js} +1 -1
- package/dist/esm/{controller-c1692f88.js.map → controller-08af836c.js.map} +1 -1
- package/dist/esm/{controller-6ba588d9.js → controller-4f4582b7.js} +1 -1
- package/dist/esm/{controller-6ba588d9.js.map → controller-4f4582b7.js.map} +1 -1
- package/dist/esm/{controller-ea973815.js → controller-ac44fc5f.js} +1 -1
- package/dist/esm/{controller-ea973815.js.map → controller-ac44fc5f.js.map} +1 -1
- package/dist/esm/controller-bf4a0bc1.js +4 -0
- package/dist/esm/controller-bf4a0bc1.js.map +1 -0
- package/dist/esm/{controller-0b6f277d.js → controller-ca954299.js} +1 -1
- package/dist/esm/{controller-0b6f277d.js.map → controller-ca954299.js.map} +1 -1
- package/dist/esm/{controller-icon-4bce436b.js → controller-icon-fb82236a.js} +1 -1
- package/dist/esm/controller-icon-fb82236a.js.map +1 -0
- package/dist/esm/{devtools-657e1cb8.js → devtools-525ee939.js} +1 -1
- package/dist/esm/{devtools-657e1cb8.js.map → devtools-525ee939.js.map} +1 -1
- package/dist/esm/{i18n-bc1e0dfd.js → i18n-97355570.js} +1 -1
- package/dist/esm/{i18n-bc1e0dfd.js.map → i18n-97355570.js.map} +1 -1
- package/dist/esm/{icon-a88dcc85.js → icon-970694a7.js} +1 -1
- package/dist/esm/icon-970694a7.js.map +1 -0
- package/dist/esm/index.js +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-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-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.entry.js +1 -1
- package/dist/esm/kol-icon.entry.js.map +1 -1
- package/dist/esm/kol-image.entry.js +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-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.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-quote.entry.js +1 -1
- package/dist/esm/kol-quote.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-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/{label-f8bdc301.js → label-966377c0.js} +1 -1
- package/dist/esm/{label-f8bdc301.js.map → label-966377c0.js.map} +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/prop.validators-1f3db013.js +4 -0
- package/dist/esm/prop.validators-1f3db013.js.map +1 -0
- package/dist/esm/{tab-index-dc6e8ba5.js → tab-index-97fed287.js} +1 -1
- package/dist/esm/{tab-index-dc6e8ba5.js.map → tab-index-97fed287.js.map} +1 -1
- package/dist/esm/validation-2bb481bd.js +4 -0
- package/dist/esm/validation-2bb481bd.js.map +1 -0
- package/dist/esm/validation-b0614edd.js +4 -0
- package/dist/esm/{validation-ce72d9b3.js.map → validation-b0614edd.js.map} +1 -1
- package/dist/kolibri/a11y.tipps-5ca36877.js +4 -0
- package/dist/kolibri/a11y.tipps-5ca36877.js.map +1 -0
- package/dist/kolibri/app-globals-08fd5e4e.js +4 -0
- package/dist/kolibri/assets/modal-simulation.js +1 -1
- package/dist/kolibri/assets/progress-simulation.js +1 -1
- package/dist/kolibri/button-link-249585bf.js +4 -0
- package/dist/kolibri/button-link-249585bf.js.map +1 -0
- package/dist/kolibri/{controller-2397b4c5.js → controller-03e00b6c.js} +1 -1
- package/dist/kolibri/{controller-c1692f88.js → controller-08af836c.js} +1 -1
- package/dist/kolibri/{controller-6ba588d9.js → controller-4f4582b7.js} +1 -1
- package/dist/kolibri/controller-ac44fc5f.js +4 -0
- package/dist/kolibri/{controller-fe7060bc.js → controller-bf4a0bc1.js} +1 -1
- package/dist/kolibri/controller-bf4a0bc1.js.map +1 -0
- package/dist/kolibri/{controller-0b6f277d.js → controller-ca954299.js} +1 -1
- package/dist/kolibri/{controller-icon-4bce436b.js → controller-icon-fb82236a.js} +1 -1
- package/dist/kolibri/{controller-icon-4bce436b.js.map → controller-icon-fb82236a.js.map} +1 -1
- package/dist/kolibri/{devtools-657e1cb8.js → devtools-525ee939.js} +1 -1
- package/dist/kolibri/{i18n-bc1e0dfd.js → i18n-97355570.js} +1 -1
- package/dist/kolibri/{icon-a88dcc85.js → icon-970694a7.js} +1 -1
- package/dist/kolibri/icon-970694a7.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-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-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.entry.js +1 -1
- package/dist/kolibri/kol-icon.entry.js.map +1 -1
- package/dist/kolibri/kol-image.entry.js +1 -1
- package/dist/kolibri/kol-image.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-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.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-quote.entry.js +1 -1
- package/dist/kolibri/kol-quote.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-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/{label-f8bdc301.js → label-966377c0.js} +1 -1
- package/dist/kolibri/{prop.validators-daa14517.js → prop.validators-1f3db013.js} +1 -1
- package/dist/kolibri/prop.validators-1f3db013.js.map +1 -0
- package/dist/kolibri/tab-index-97fed287.js +4 -0
- package/dist/kolibri/{tab-index-dc6e8ba5.js.map → tab-index-97fed287.js.map} +1 -1
- package/dist/kolibri/validation-2bb481bd.js +4 -0
- package/dist/kolibri/validation-2bb481bd.js.map +1 -0
- package/dist/kolibri/{validation-ce72d9b3.js → validation-b0614edd.js} +1 -1
- package/dist/types/components/breadcrumb/component.d.ts +5 -5
- package/dist/types/components/button/test/html.mock.d.ts +1 -1
- package/dist/types/components/icon/component.d.ts +1 -1
- package/dist/types/components/input-checkbox/component.d.ts +1 -1
- package/dist/types/components/input-checkbox/controller.d.ts +1 -1
- package/dist/types/components/input-checkbox/types.d.ts +2 -2
- package/dist/types/components/input-date/types.d.ts +1 -1
- package/dist/types/components/input-text/component.d.ts +1 -1
- package/dist/types/components/link/component.d.ts +0 -6
- package/dist/types/components/link-group/component.d.ts +7 -7
- package/dist/types/components/nav/component.d.ts +10 -12
- package/dist/types/components/nav/validation.d.ts +3 -3
- package/dist/types/components/skip-nav/component.d.ts +5 -5
- package/dist/types/components.d.ts +28 -22
- package/dist/types/index.d.ts +1 -1
- package/dist/types/types/button-link-text.d.ts +32 -0
- package/dist/types/types/button-link.d.ts +6 -5
- package/dist/types/types/icon.d.ts +2 -1
- package/dist/types/types/props/label.d.ts +5 -0
- package/dist/types/utils/a11y.tipps.d.ts +1 -0
- package/dist/types/utils/prop.validators.d.ts +1 -1
- package/doc/badge.md +1 -1
- package/doc/breadcrumb.md +4 -4
- package/doc/icon-icofont.md +1 -1
- package/doc/input-color.md +1 -1
- package/doc/input-date.md +1 -1
- package/doc/input-email.md +1 -1
- package/doc/input-file.md +1 -1
- package/doc/input-number.md +1 -1
- package/doc/input-password.md +1 -1
- package/doc/input-text.md +1 -1
- package/doc/link-button.md +1 -1
- package/doc/link-group.md +1 -1
- package/doc/link.md +1 -1
- package/doc/nav.md +12 -10
- package/doc/skip-nav.md +4 -4
- package/doc/tabs.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-8f94ed90.js +0 -4
- package/dist/cjs/a11y.tipps-8f94ed90.js.map +0 -1
- package/dist/cjs/button-link-824cc1bc.js.map +0 -1
- package/dist/cjs/controller-58da8827.js +0 -4
- package/dist/cjs/controller-58da8827.js.map +0 -1
- package/dist/cjs/controller-icon-795c30fb.js.map +0 -1
- package/dist/cjs/icon-31fdd6ee.js.map +0 -1
- package/dist/cjs/label-18346064.js +0 -4
- package/dist/cjs/prop.validators-90a0e362.js +0 -4
- package/dist/cjs/prop.validators-90a0e362.js.map +0 -1
- package/dist/cjs/validation-1298c9ca.js.map +0 -1
- package/dist/esm/a11y.tipps-e0a65f3c.js +0 -4
- package/dist/esm/a11y.tipps-e0a65f3c.js.map +0 -1
- package/dist/esm/button-link-e424d11b.js.map +0 -1
- package/dist/esm/controller-fe7060bc.js +0 -4
- package/dist/esm/controller-fe7060bc.js.map +0 -1
- package/dist/esm/controller-icon-4bce436b.js.map +0 -1
- package/dist/esm/icon-a88dcc85.js.map +0 -1
- package/dist/esm/prop.validators-daa14517.js +0 -4
- package/dist/esm/prop.validators-daa14517.js.map +0 -1
- package/dist/esm/validation-8f8d53e5.js +0 -4
- package/dist/esm/validation-8f8d53e5.js.map +0 -1
- package/dist/esm/validation-ce72d9b3.js +0 -4
- package/dist/kolibri/a11y.tipps-e0a65f3c.js +0 -4
- package/dist/kolibri/a11y.tipps-e0a65f3c.js.map +0 -1
- package/dist/kolibri/app-globals-2f4ec88e.js +0 -4
- package/dist/kolibri/button-link-e424d11b.js +0 -4
- package/dist/kolibri/button-link-e424d11b.js.map +0 -1
- package/dist/kolibri/controller-ea973815.js +0 -4
- package/dist/kolibri/controller-fe7060bc.js.map +0 -1
- package/dist/kolibri/icon-a88dcc85.js.map +0 -1
- package/dist/kolibri/prop.validators-daa14517.js.map +0 -1
- package/dist/kolibri/tab-index-dc6e8ba5.js +0 -4
- package/dist/kolibri/validation-8f8d53e5.js +0 -4
- package/dist/kolibri/validation-8f8d53e5.js.map +0 -1
- /package/dist/kolibri/{app-globals-2f4ec88e.js.map → app-globals-08fd5e4e.js.map} +0 -0
- /package/dist/kolibri/{controller-2397b4c5.js.map → controller-03e00b6c.js.map} +0 -0
- /package/dist/kolibri/{controller-c1692f88.js.map → controller-08af836c.js.map} +0 -0
- /package/dist/kolibri/{controller-6ba588d9.js.map → controller-4f4582b7.js.map} +0 -0
- /package/dist/kolibri/{controller-ea973815.js.map → controller-ac44fc5f.js.map} +0 -0
- /package/dist/kolibri/{controller-0b6f277d.js.map → controller-ca954299.js.map} +0 -0
- /package/dist/kolibri/{devtools-657e1cb8.js.map → devtools-525ee939.js.map} +0 -0
- /package/dist/kolibri/{i18n-bc1e0dfd.js.map → i18n-97355570.js.map} +0 -0
- /package/dist/kolibri/{label-f8bdc301.js.map → label-966377c0.js.map} +0 -0
- /package/dist/kolibri/{validation-ce72d9b3.js.map → validation-b0614edd.js.map} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* KoliBri - The accessible HTML-Standard
|
|
3
3
|
*/
|
|
4
|
-
import{i as initKoliBri,e as getDevMode,r as renderDevAdvice,g as getDocument,L as Log,b as getExperimalMode,f as getColorContrastAnalysis,K as KoliBri}from"./dev.utils-bedce29d.js";import{l as KoliBriUtils,n as koliBriA11yColorContrast,k as koliBriQuerySelector,q as koliBriQuerySelectorAll,t as koliBriQuerySelectorColors,p as parseJson,u as stringifyJson}from"./prop.validators-
|
|
4
|
+
import{i as initKoliBri,e as getDevMode,r as renderDevAdvice,g as getDocument,L as Log,b as getExperimalMode,f as getColorContrastAnalysis,K as KoliBri}from"./dev.utils-bedce29d.js";import{l as KoliBriUtils,n as koliBriA11yColorContrast,k as koliBriQuerySelector,q as koliBriQuerySelectorAll,t as koliBriQuerySelectorColors,p as parseJson,u as stringifyJson}from"./prop.validators-1f3db013.js";import"./reuse-56bb5a4b.js";import"./a11y.tipps-5ca36877.js";import"./index-81bd9b41.js";function prototypeKoliBri(o,e){try{Object.defineProperty(KoliBri,o,{get:function(){return e}})}catch(e){Log.debug(`KoliBri property ${o} is already bind.`)}}const metaModeLog=(o,e)=>Log.debug(`${o} ${e?"":"not "}activated`),initialize=()=>{if(initKoliBri(),getDevMode()){renderDevAdvice(),prototypeKoliBri("a11yColorContrast",koliBriA11yColorContrast),prototypeKoliBri("querySelector",koliBriQuerySelector),prototypeKoliBri("querySelectorAll",koliBriQuerySelectorAll),prototypeKoliBri("querySelectorColors",koliBriQuerySelectorColors),prototypeKoliBri("utils",(function(){return KoliBriUtils})),prototypeKoliBri("parseJson",parseJson),prototypeKoliBri("stringifyJson",stringifyJson);const o=getDocument().body,e=getDocument().createElement("svg");if(e.setAttribute("aria-label","KoliBri-DevTools"),e.setAttribute("xmlns","http://www.w3.org/2000/svg"),e.setAttribute("role","toolbar"),e.setAttribute("style","position: fixed;color: black;font-size: 200%;bottom: 0.25rem;right: 0.25rem;"),e.innerHTML='<svg\n xmlns="http://www.w3.org/2000/svg"\n width="50"\n height="50"\n viewBox="0 0 600 600"\n>\n <path d="M353 322L213 304V434L353 322Z" fill="#047" />\n <path d="M209 564V304L149 434L209 564Z" fill="#047" />\n <path d="M357 316L417 250L361 210L275 244L357 316Z" fill="#047" />\n <path d="M353 318L35 36L213 300L353 318Z" fill="#047" />\n <path d="M329 218L237 92L250 222L272 241L329 218Z" fill="#047" />\n <path d="M391 286L565 272L421 252L391 286Z" fill="#047" />\n</svg>',getDocument().body.appendChild(e),metaModeLog("Development mode",getDevMode()),metaModeLog("Experimental mode",getExperimalMode()),metaModeLog("Color contrast analysis",getColorContrastAnalysis()),getColorContrastAnalysis()){const e=setTimeout((()=>{clearTimeout(e),setInterval((()=>{KoliBriUtils.queryHtmlElementColors(getDocument().createElement("div"),koliBriA11yColorContrast(o),!1,!1)}),1e4)}),2500)}}};export{initialize};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"devtools-
|
|
1
|
+
{"file":"devtools-525ee939.js","mappings":";;;;;;;;;AAWA,SAAS,gBAAgB,CAAI,IAAY,EAAE,EAAK;EAC/C,IAAI;IACH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE;MACpC,GAAG,EAAE;QACJ,OAAO,EAAE,CAAC;OACV;KACD,CAAC,CAAC;GACH;EAAC,OAAO,CAAC,EAAE;IACX,GAAG,CAAC,KAAK,CAAC,oBAAoB,IAAI,mBAAmB,CAAC,CAAC;GACvD;AACF,CAAC;AAED,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,MAAe,KAAK,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,MAAM,GAAG,EAAE,GAAG,MAAM,WAAW,CAAC,CAAC;MAEhG,UAAU,GAAG;EACzB,WAAW,EAAE,CAAC;EACd,IAAI,UAAU,EAAE,EAAE;IACjB,eAAe,EAAE,CAAC;IAElB,gBAAgB,CAAC,mBAAmB,EAAE,wBAAwB,CAAC,CAAC;IAChE,gBAAgB,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAC;IACxD,gBAAgB,CAAC,kBAAkB,EAAE,uBAAuB,CAAC,CAAC;IAC9D,gBAAgB,CAAC,qBAAqB,EAAE,0BAA0B,CAAC,CAAC;IACpE,gBAAgB,CAAC,OAAO,EAAE;MACzB,OAAO,YAAY,CAAC;KACpB,CAAC,CAAC;IACH,gBAAgB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACzC,gBAAgB,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;IAEjD,MAAM,IAAI,GAAG,WAAW,EAAE,CAAC,IAAI,CAAC;IAEhC,MAAM,GAAG,GAAG,WAAW,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC/C,GAAG,CAAC,YAAY,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;IACnD,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAC;IACxD,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACpC,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,8EAA8E,CAAC,CAAC;IAC1G,GAAG,CAAC,SAAS,GAAG;;;;;;;;;;;;OAYX,CAAC;IAEN,WAAW,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAEpC,WAAW,CAAC,kBAAkB,EAAE,UAAU,EAAE,CAAC,CAAC;IAC9C,WAAW,CAAC,mBAAmB,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACrD,WAAW,CAAC,yBAAyB,EAAE,wBAAwB,EAAE,CAAC,CAAC;IAEnE,IAAI,wBAAwB,EAAE,EAAE;MAC/B,MAAM,OAAO,GAAG,UAAU,CAAC;QAC1B,YAAY,CAAC,OAAO,CAAC,CAAC;QACtB,WAAW,CAAC;UACX,YAAY,CAAC,sBAAsB,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,wBAAwB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;SACtH,EAAE,KAAK,CAAC,CAAC;OACV,EAAE,IAAI,CAAC,CAAC;KACT;GAmBD;AACF;;;;","names":[],"sources":["./src/global/devtools.ts"],"sourcesContent":["import { getColorContrastAnalysis, getDevMode, getDocument, getExperimalMode, initKoliBri, KoliBri, Log, renderDevAdvice } from '../utils/dev.utils';\nimport {\n\tkoliBriA11yColorContrast,\n\tkoliBriQuerySelector,\n\tkoliBriQuerySelectorAll,\n\tkoliBriQuerySelectorColors,\n\tKoliBriUtils,\n\tparseJson,\n\tstringifyJson,\n} from '../utils/prop.validators';\n\nfunction prototypeKoliBri<T>(name: string, cb: T) {\n\ttry {\n\t\tObject.defineProperty(KoliBri, name, {\n\t\t\tget: function () {\n\t\t\t\treturn cb;\n\t\t\t},\n\t\t});\n\t} catch (e) {\n\t\tLog.debug(`KoliBri property ${name} is already bind.`);\n\t}\n}\n\nconst metaModeLog = (name: string, active: boolean) => Log.debug(`${name} ${active ? '' : 'not '}activated`);\n\nexport const initialize = (): void => {\n\tinitKoliBri();\n\tif (getDevMode()) {\n\t\trenderDevAdvice();\n\n\t\tprototypeKoliBri('a11yColorContrast', koliBriA11yColorContrast);\n\t\tprototypeKoliBri('querySelector', koliBriQuerySelector);\n\t\tprototypeKoliBri('querySelectorAll', koliBriQuerySelectorAll);\n\t\tprototypeKoliBri('querySelectorColors', koliBriQuerySelectorColors);\n\t\tprototypeKoliBri('utils', function () {\n\t\t\treturn KoliBriUtils;\n\t\t});\n\t\tprototypeKoliBri('parseJson', parseJson);\n\t\tprototypeKoliBri('stringifyJson', stringifyJson);\n\n\t\tconst body = getDocument().body;\n\n\t\tconst div = getDocument().createElement('svg');\n\t\tdiv.setAttribute('aria-label', 'KoliBri-DevTools');\n\t\tdiv.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n\t\tdiv.setAttribute('role', 'toolbar');\n\t\tdiv.setAttribute('style', 'position: fixed;color: black;font-size: 200%;bottom: 0.25rem;right: 0.25rem;');\n\t\tdiv.innerHTML = `<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"50\"\n height=\"50\"\n viewBox=\"0 0 600 600\"\n>\n <path d=\"M353 322L213 304V434L353 322Z\" fill=\"#047\" />\n <path d=\"M209 564V304L149 434L209 564Z\" fill=\"#047\" />\n <path d=\"M357 316L417 250L361 210L275 244L357 316Z\" fill=\"#047\" />\n <path d=\"M353 318L35 36L213 300L353 318Z\" fill=\"#047\" />\n <path d=\"M329 218L237 92L250 222L272 241L329 218Z\" fill=\"#047\" />\n <path d=\"M391 286L565 272L421 252L391 286Z\" fill=\"#047\" />\n</svg>`;\n\n\t\tgetDocument().body.appendChild(div);\n\n\t\tmetaModeLog('Development mode', getDevMode());\n\t\tmetaModeLog('Experimental mode', getExperimalMode());\n\t\tmetaModeLog('Color contrast analysis', getColorContrastAnalysis());\n\n\t\tif (getColorContrastAnalysis()) {\n\t\t\tconst timeout = setTimeout(() => {\n\t\t\t\tclearTimeout(timeout);\n\t\t\t\tsetInterval(() => {\n\t\t\t\t\tKoliBriUtils.queryHtmlElementColors(getDocument().createElement('div'), koliBriA11yColorContrast(body), false, false);\n\t\t\t\t}, 10000);\n\t\t\t}, 2500);\n\t\t}\n\n\t\t// setTimeout(() => {\n\t\t// const kolButton = koliBriQuerySelector<HTMLButtonElement>(document, '[_label=\"Aktion ausführen\"]');\n\t\t// if (kolButton) {\n\t\t// const button = koliBriQuerySelector<HTMLButtonElement>(kolButton?.shadowRoot as ShadowRoot, 'button');\n\t\t// if (button) {\n\t\t// kolButton.style.backgroundColor = '#988';\n\t\t// button.style.backgroundColor = 'inherit';\n\t\t// button.style.color = '#988';\n\t\t// const kolButtonColors = koliBriQuerySelectorColors('[_label=\"Aktion ausführen\"]');\n\t\t// console.log(\n\t\t// koliBriQuerySelectorColors('button', {\n\t\t// ...kolButtonColors,\n\t\t// })\n\t\t// );\n\t\t// }\n\t\t// }\n\t\t// }, 2500);\n\t}\n};\n"],"version":3}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* KoliBri - The accessible HTML-Standard
|
|
3
3
|
*/
|
|
4
|
-
import{g as getI18nService}from"./index-f3c76945.js";import{d as devHint}from"./a11y.tipps-
|
|
4
|
+
import{g as getI18nService}from"./index-f3c76945.js";import{d as devHint}from"./a11y.tipps-5ca36877.js";const locale_de={error:"Fehler",warning:"Warnung",info:"Hinweis",success:"Erfolg",message:"Nachricht",close:"Schließen","form-description":"Formular-Felder, die mit einem Sternchen (*) gekennzeichnet sind, sind Pflichtangaben.",of:"von",characters:"Zeichen",new:"Neu","no-entries":"Es sind keine Einträge vorhanden.","change-order":"Sortierung von {{colLabel}} ändern","action-running":"Aktion wird ausgeführt...","action-done":"Aktion abgeschlossen","page-first":"Direkt zur ersten Seite","page-back":"Eine Seite zurück","page-next":"Eine Seite weiter","page-last":"Direkt zur letzten Seite","entries-per-site":"Einträge pro Seite","page-current":"Seite {{page}}","page-selected":"Seite {{page}} ist ausgewählt","page-per-site":"{{entries}} Einträge pro Seite","nav-maximize":"Navigation maximieren","nav-minimize":"Navigation minimieren","logo-description":"Logo {{orgShort}}. Bundesadler mit Flaggenstab und Schriftzug {{orgLong}}","open-link-in-tab":"Der Link wird in einem neuen Tab geöffnet.","kolibri-logo":"Logo von KoliBri"},locale_en={error:"Error",warning:"Warning",info:"Note",success:"Success",message:"Message",close:"Close","form-description":"Form fields marked with an asterisk (*) are mandatory.",of:"of",characters:"characters",new:"New","no-entries":"No entries available.","change-order":"Change order of {{colLabel}}","action-running":"Action is running...","action-done":"Action done","page-first":"Directly to the first page","page-back":"One page back","page-next":"One page further","page-last":"Directly to the last page","entries-per-site":"Entries per page","page-current":"Page {{page}}","page-selected":"Page {{page}} is selected","page-per-site":"{{entries}} entries per page","nav-maximize":"Maximize","nav-minimize":"Minimize","logo-description":"Logo {{orgShort}}. Federal eagle with flag staff and lettering {{orgLong}}","open-link-in-tab":"The link will open in a new tab.","kolibri-logo":"KoliBri logo"},mapLocaleKeys=e=>Object.keys(e).reduce(((n,i)=>(n[`kol-${i}`]=e[i],n)),{}),translations=new Set([e=>e("en",mapLocaleKeys(locale_en)),e=>e("de",mapLocaleKeys(locale_de))]),translate=(e,n)=>{const i=getI18nService();if(void 0===i)return devHint("[I18n] I18nService not available! Please call the global register function."),e;let a=i.translate(e,n);return a===e&&(devHint("[I18n] Locales not initialized! Initialize default locales automatically."),translations.forEach((e=>e(((e,n)=>(i.addResourceBundle(e,n),e))))),a=i.translate(e,n)),a};export{translate as a,translations as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"i18n-
|
|
1
|
+
{"file":"i18n-97355570.js","mappings":"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","names":[],"sources":["./src/locales/de.ts","./src/locales/en.ts","./src/i18n.ts"],"sourcesContent":["export default {\n\terror: 'Fehler',\n\twarning: 'Warnung',\n\tinfo: 'Hinweis',\n\tsuccess: 'Erfolg',\n\tmessage: 'Nachricht',\n\tclose: 'Schließen',\n\t'form-description': 'Formular-Felder, die mit einem Sternchen (*) gekennzeichnet sind, sind Pflichtangaben.',\n\tof: 'von',\n\tcharacters: 'Zeichen',\n\tnew: 'Neu',\n\t'no-entries': 'Es sind keine Einträge vorhanden.',\n\t'change-order': 'Sortierung von {{colLabel}} ändern',\n\t'action-running': 'Aktion wird ausgeführt...',\n\t'action-done': 'Aktion abgeschlossen',\n\t'page-first': 'Direkt zur ersten Seite',\n\t'page-back': 'Eine Seite zurück',\n\t'page-next': 'Eine Seite weiter',\n\t'page-last': 'Direkt zur letzten Seite',\n\t'entries-per-site': 'Einträge pro Seite',\n\t'page-current': 'Seite {{page}}',\n\t'page-selected': 'Seite {{page}} ist ausgewählt',\n\t'page-per-site': '{{entries}} Einträge pro Seite',\n\t'nav-maximize': 'Navigation maximieren',\n\t'nav-minimize': 'Navigation minimieren',\n\t'logo-description': 'Logo {{orgShort}}. Bundesadler mit Flaggenstab und Schriftzug {{orgLong}}',\n\t'open-link-in-tab': 'Der Link wird in einem neuen Tab geöffnet.',\n\t'kolibri-logo': 'Logo von KoliBri',\n};\n","export default {\n\terror: 'Error',\n\twarning: 'Warning',\n\tinfo: 'Note',\n\tsuccess: 'Success',\n\tmessage: 'Message',\n\tclose: 'Close',\n\t'form-description': 'Form fields marked with an asterisk (*) are mandatory.',\n\tof: 'of',\n\tcharacters: 'characters',\n\tnew: 'New',\n\t'no-entries': 'No entries available.',\n\t'change-order': 'Change order of {{colLabel}}',\n\t'action-running': 'Action is running...',\n\t'action-done': 'Action done',\n\t'page-first': 'Directly to the first page',\n\t'page-back': 'One page back',\n\t'page-next': 'One page further',\n\t'page-last': 'Directly to the last page',\n\t'entries-per-site': 'Entries per page',\n\t'page-current': 'Page {{page}}',\n\t'page-selected': 'Page {{page}} is selected',\n\t'page-per-site': '{{entries}} entries per page',\n\t'nav-maximize': 'Maximize',\n\t'nav-minimize': 'Minimize',\n\t'logo-description': 'Logo {{orgShort}}. Federal eagle with flag staff and lettering {{orgLong}}',\n\t'open-link-in-tab': 'The link will open in a new tab.',\n\t'kolibri-logo': 'KoliBri logo',\n};\n","import { Generic } from '@a11y-ui/core';\nimport { getI18nService } from './core';\n/**\n * Issue #2456: Don't use json files\n * - https://github.com/public-ui/kolibri/issues/2456\n * - use instead ts files\n */\nimport locale_de from './locales/de';\nimport locale_en from './locales/en';\nimport { devHint } from './utils/a11y.tipps';\n\ntype ResourcePrefix = 'Kol';\ntype ComponentKeys = keyof typeof locale_de;\n\nconst mapLocaleKeys = (locale: { [K in ComponentKeys]: string }) =>\n\t(Object.keys(locale) as ComponentKeys[]).reduce((a, c) => ((a[`${'kol'}-${c}`] = locale[c]), a), {} as Generic.I18n.Map<ResourcePrefix, ComponentKeys>);\n\nexport const translations = new Set<Generic.I18n.RegisterPatch<Generic.I18n.Locale.ISO_639_1, ResourcePrefix, ComponentKeys>>([\n\t(t: (language: 'en', translationMap: Generic.I18n.Map<ResourcePrefix, ComponentKeys>) => Generic.I18n.Locale.ISO_639_1) => t('en', mapLocaleKeys(locale_en)),\n\t(t: (language: 'de', translationMap: Generic.I18n.Map<ResourcePrefix, ComponentKeys>) => Generic.I18n.Locale.ISO_639_1) => t('de', mapLocaleKeys(locale_de)),\n]);\n\ntype Options = {\n\tcount?: number;\n\tplaceholders?: { [K: string]: string };\n};\n\nexport const translate = (key: `${Lowercase<ResourcePrefix>}-${Lowercase<ComponentKeys>}`, options?: Options) => {\n\tconst i18n = getI18nService();\n\tif (i18n === undefined) {\n\t\tdevHint('[I18n] I18nService not available! Please call the global register function.');\n\t\treturn key;\n\t}\n\n\tlet text = i18n.translate(key, options);\n\tif (text === key) {\n\t\tdevHint('[I18n] Locales not initialized! Initialize default locales automatically.');\n\n\t\ttranslations.forEach((t) =>\n\t\t\tt((l, t) => {\n\t\t\t\ti18n.addResourceBundle(l, t);\n\t\t\t\treturn l;\n\t\t\t})\n\t\t);\n\n\t\ttext = i18n.translate(key, options);\n\t}\n\treturn text;\n};\n"],"version":3}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* KoliBri - The accessible HTML-Standard
|
|
3
3
|
*/
|
|
4
|
-
import{o as objectObjectHandler,p as parseJson,a as watchValidator}from"./prop.validators-
|
|
4
|
+
import{o as objectObjectHandler,p as parseJson,a as watchValidator}from"./prop.validators-1f3db013.js";import{b as isString,c as isStyle,d as isObject}from"./reuse-56bb5a4b.js";const mapCustomIcon=(t,o,i)=>{isObject(i)?t[o]=i:isString(i,1)&&(t[o]={icon:i})},mapIconProp2State=(t,o)=>{let i={};if(isString(t,1))if("right"===o)i={right:{icon:t}};else i={left:{icon:t}};else"object"==typeof t&&null!==t&&(mapCustomIcon(i,"top",t.top),mapCustomIcon(i,"right",t.right),mapCustomIcon(i,"bottom",t.bottom),mapCustomIcon(i,"left",t.left));return i},beforePatchIcon=t=>{var o,i,n,e,c,a,s;if(null===(o=t.nextState)||void 0===o?void 0:o.has("_icon")){const o=null===(i=t.nextState)||void 0===i?void 0:i.get("_icon"),c=(null===(n=t.nextState)||void 0===n?void 0:n.get("_iconAlign"))||t.state._iconAlign;null===(e=t.nextState)||void 0===e||e.set("_icon",mapIconProp2State(o,c))}else if(null===(c=t.nextState)||void 0===c?void 0:c.has("_iconAlign")){const o=t.state._iconAlign;null===(a=t.nextState)||void 0===a||a.set("_icon",{[o]:void 0,[null===(s=t.nextState)||void 0===s?void 0:s.get("_iconAlign")]:t.state._icon[o]})}},isIcon=t=>"object"==typeof t&&null!==t&&(void 0===t.style||isStyle(t.style))&&isString(t.icon,1),validateIcon=(t,o)=>{objectObjectHandler(o,(()=>{try{o=parseJson(o)}catch(t){}watchValidator(t,"_icon",(t=>null===t||isString(t,1)||"object"==typeof t&&null!==t&&(isString(t.left,1)||isIcon(t.left)||isString(t.right,1)||isIcon(t.right)||isString(t.top,1)||isIcon(t.top)||isString(t.bottom,1)||isIcon(t.bottom))),new Set(["KoliBriIcon"]),o,{hooks:{beforePatch:(o,i)=>{null===o&&i.set("_icon",{}),beforePatchIcon(t)}},required:!0})}))},watchIconAlign=(t,o)=>{watchValidator(t,"_iconAlign",(t=>"left"===t||"right"===t),new Set(["Alignment {left, right, top, bottom}"]),o,{hooks:{beforePatch:()=>{beforePatchIcon(t)}}})};export{isIcon as i,validateIcon as v,watchIconAlign as w};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"icon-970694a7.js","mappings":"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","names":[],"sources":["./src/utils/validators/icon.ts"],"sourcesContent":["import { Generic } from '@a11y-ui/core';\nimport { ButtonStates } from '../../types/button-link';\nimport { AnyIconFontClass, KoliBriCustomIcon, KoliBriIconProp, KoliBriIconState } from '../../types/icon';\nimport { Alignment } from '../../types/props/alignment';\nimport { objectObjectHandler, parseJson, watchValidator } from '../prop.validators';\nimport { isObject, isString, isStyle } from '../validator';\n\nconst mapCustomIcon = (state: KoliBriIconState, alignment: Alignment, icon?: AnyIconFontClass | KoliBriCustomIcon) => {\n\tif (isObject(icon)) {\n\t\tstate[alignment] = icon as KoliBriCustomIcon;\n\t} else if (isString(icon, 1)) {\n\t\tstate[alignment] = {\n\t\t\ticon: icon as AnyIconFontClass,\n\t\t};\n\t}\n};\n\nexport const mapIconProp2State = (icon: KoliBriIconProp, iconAlign?: Alignment): KoliBriIconState => {\n\tlet state: KoliBriIconState = {};\n\tif (isString(icon, 1)) {\n\t\tswitch (iconAlign) {\n\t\t\tcase 'right':\n\t\t\t\tstate = {\n\t\t\t\t\tright: {\n\t\t\t\t\t\ticon: icon as AnyIconFontClass,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tstate = {\n\t\t\t\t\tleft: {\n\t\t\t\t\t\ticon: icon as AnyIconFontClass,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t}\n\t} else if (typeof icon === 'object' && icon !== null) {\n\t\tmapCustomIcon(state, 'top', icon.top);\n\t\tmapCustomIcon(state, 'right', icon.right);\n\t\tmapCustomIcon(state, 'bottom', icon.bottom);\n\t\tmapCustomIcon(state, 'left', icon.left);\n\t}\n\treturn state;\n};\n\nconst beforePatchIcon = (component: Generic.Element.Component): void => {\n\tif (component.nextState?.has('_icon')) {\n\t\tconst icon = component.nextState?.get('_icon') as KoliBriIconProp;\n\t\tconst iconAlign = (component.nextState?.get('_iconAlign') as Alignment) || (component.state as ButtonStates)._iconAlign;\n\t\tcomponent.nextState?.set('_icon', mapIconProp2State(icon, iconAlign));\n\t} else if (component.nextState?.has('_iconAlign')) {\n\t\tconst lastIconAlign = (component.state as ButtonStates)._iconAlign as Alignment;\n\t\tcomponent.nextState?.set('_icon', {\n\t\t\t[lastIconAlign]: undefined,\n\t\t\t[component.nextState?.get('_iconAlign') as Alignment]: (component.state as ButtonStates)._icon[lastIconAlign],\n\t\t});\n\t}\n};\n\nexport const isIcon = (value?: unknown): boolean =>\n\ttypeof value === 'object' &&\n\tvalue !== null &&\n\t(typeof (value as KoliBriCustomIcon).style === 'undefined' || isStyle((value as KoliBriCustomIcon).style)) &&\n\tisString((value as KoliBriCustomIcon).icon, 1);\n\nexport const validateIcon = (component: Generic.Element.Component, value?: KoliBriIconProp): void => {\n\tobjectObjectHandler(value, () => {\n\t\ttry {\n\t\t\tvalue = parseJson<KoliBriIconProp>(value as string);\n\t\t} catch (e) {\n\t\t\t// value behält den ursprünglichen Wert\n\t\t}\n\t\twatchValidator(\n\t\t\tcomponent,\n\t\t\t'_icon',\n\t\t\t(value): boolean => {\n\t\t\t\treturn (\n\t\t\t\t\tvalue === null ||\n\t\t\t\t\tisString(value, 1) ||\n\t\t\t\t\t(typeof value === 'object' &&\n\t\t\t\t\t\tvalue !== null &&\n\t\t\t\t\t\t(isString(value.left, 1) ||\n\t\t\t\t\t\t\tisIcon(value.left) ||\n\t\t\t\t\t\t\tisString(value.right, 1) ||\n\t\t\t\t\t\t\tisIcon(value.right) ||\n\t\t\t\t\t\t\tisString(value.top, 1) ||\n\t\t\t\t\t\t\tisIcon(value.top) ||\n\t\t\t\t\t\t\tisString(value.bottom, 1) ||\n\t\t\t\t\t\t\tisIcon(value.bottom)))\n\t\t\t\t);\n\t\t\t},\n\t\t\tnew Set(['KoliBriIcon']),\n\t\t\tvalue,\n\t\t\t{\n\t\t\t\thooks: {\n\t\t\t\t\tbeforePatch: (nextValue: unknown, nextState: Map<string, unknown>) => {\n\t\t\t\t\t\tif (nextValue === null) {\n\t\t\t\t\t\t\tnextState.set('_icon', {});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbeforePatchIcon(component);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\trequired: true,\n\t\t\t}\n\t\t);\n\t});\n};\n\nexport const watchIconAlign = (component: Generic.Element.Component, value?: Alignment): void => {\n\twatchValidator(component, '_iconAlign', (value) => value === 'left' || value === 'right', new Set(['Alignment {left, right, top, bottom}']), value, {\n\t\thooks: {\n\t\t\tbeforePatch: () => {\n\t\t\t\tbeforePatchIcon(component);\n\t\t\t},\n\t\t},\n\t});\n};\n"],"version":3}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* KoliBri - The accessible HTML-Standard
|
|
3
3
|
*/
|
|
4
|
-
export{r as register}from"./index-f3c76945.js";export{c as BUNDESAEMTER,e as BUNDESANSTALTEN,a as BUNDESMINISTERIEN,f as BUND_LOGO_TEXT_MAP,b as Bundesamt,d as Bundesanstalt,B as Bundesministerium}from"./bund-fe1f3789.js";import{T as Theme}from"./index-81bd9b41.js";export{T as ToasterService,c as configKoliBri}from"./dev.utils-bedce29d.js";export{K as KoliBriDevHelper}from"./prop.validators-
|
|
4
|
+
export{r as register}from"./index-f3c76945.js";export{c as BUNDESAEMTER,e as BUNDESANSTALTEN,a as BUNDESMINISTERIEN,f as BUND_LOGO_TEXT_MAP,b as Bundesamt,d as Bundesanstalt,B as Bundesministerium}from"./bund-fe1f3789.js";import{T as Theme}from"./index-81bd9b41.js";export{T as ToasterService,c as configKoliBri}from"./dev.utils-bedce29d.js";export{K as KoliBriDevHelper}from"./prop.validators-1f3db013.js";export{t as translations}from"./i18n-97355570.js";import"./reuse-56bb5a4b.js";import"./a11y.tipps-5ca36877.js";var KeyEnum,TagEnum;!function(e){e[e.error=0]="error",e[e.warning=1]="warning",e[e.info=2]="info",e[e.success=3]="success",e[e.message=4]="message",e[e.close=5]="close",e[e["form-description"]=6]="form-description",e[e.of=7]="of",e[e.characters=8]="characters",e[e.new=9]="new",e[e["no-entries"]=10]="no-entries",e[e["change-order"]=11]="change-order",e[e["action-running"]=12]="action-running",e[e["action-done"]=13]="action-done",e[e["page-first"]=14]="page-first",e[e["page-back"]=15]="page-back",e[e["page-next"]=16]="page-next",e[e["page-last"]=17]="page-last",e[e["entries-per-site"]=18]="entries-per-site",e[e["page-current"]=19]="page-current",e[e["page-selected"]=20]="page-selected",e[e["page-per-site"]=21]="page-per-site",e[e["nav-maximize"]=22]="nav-maximize",e[e["nav-minimize"]=23]="nav-minimize",e[e["logo-description"]=24]="logo-description",e[e["open-link-in-tab"]=25]="open-link-in-tab",e[e["kolibri-logo"]=26]="kolibri-logo"}(KeyEnum||(KeyEnum={})),function(e){e[e.abbr=0]="abbr",e[e.accordion=1]="accordion",e[e["accordion-group"]=2]="accordion-group",e[e.alert=3]="alert",e[e.avatar=4]="avatar",e[e.badge=5]="badge",e[e.breadcrumb=6]="breadcrumb",e[e.button=7]="button",e[e["button-group"]=8]="button-group",e[e["button-link"]=9]="button-link",e[e.card=10]="card",e[e.details=11]="details",e[e.dialog=12]="dialog",e[e.dropdown=13]="dropdown",e[e.form=14]="form",e[e.heading=15]="heading",e[e.icon=16]="icon",e[e.image=17]="image",e[e["indented-text"]=18]="indented-text",e[e["input-checkbox"]=19]="input-checkbox",e[e["input-color"]=20]="input-color",e[e["input-date"]=21]="input-date",e[e["input-file"]=22]="input-file",e[e["input-email"]=23]="input-email",e[e["input-number"]=24]="input-number",e[e["input-password"]=25]="input-password",e[e["input-radio"]=26]="input-radio",e[e["input-range"]=27]="input-range",e[e["input-text"]=28]="input-text",e[e.link=29]="link",e[e["link-button"]=30]="link-button",e[e["link-group"]=31]="link-group",e[e.modal=32]="modal",e[e.nav=33]="nav",e[e.pagination=34]="pagination",e[e.popover=35]="popover",e[e.progress=36]="progress",e[e.select=37]="select",e[e.separator=38]="separator",e[e["skip-nav"]=39]="skip-nav",e[e.spin=40]="spin",e[e.symbol=41]="symbol",e[e.table=42]="table",e[e.tabs=43]="tabs",e[e.textarea=44]="textarea",e[e.toast=45]="toast",e[e.toolbar=46]="toolbar",e[e.tooltip=47]="tooltip"}(TagEnum||(TagEnum={}));const KoliBri=new Theme("kol",KeyEnum,TagEnum);export{KoliBri};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* KoliBri - The accessible HTML-Standard
|
|
3
3
|
*/
|
|
4
|
-
import{r as registerInstance,h,H as Host}from"./index-50adf9a0.js";import{w as watchTooltipAlignment}from"./button-link-
|
|
4
|
+
import{r as registerInstance,h,H as Host}from"./index-50adf9a0.js";import{w as watchTooltipAlignment}from"./button-link-249585bf.js";import{n as nonce}from"./dev.utils-bedce29d.js";import{w as watchString}from"./prop.validators-1f3db013.js";import"./reuse-56bb5a4b.js";import"./a11y.tipps-5ca36877.js";import"./index-81bd9b41.js";const defaultStyleCss=":host{--a11y-min-size:44px}*{hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}*[role='button'],button:not([role='link']),input[type='color'],input[type='date'],input[type='datetime-local'],input[type='email'],input[type='file'],input[type='month'],input[type='number'],input[type='password'],input[type='search'],input[type='tel'],input[type='text'],input[type='time'],input[type='url'],input[type='week'],option,select,textarea{min-height:var(--a11y-min-size);min-width:var(--a11y-min-size)}:is(a,button){background-color:transparent;border:none;margin:0;padding:0;width:100%;}:host{max-width:100%}*{box-sizing:border-box}kol-span-wc{display:grid;place-items:center}kol-span-wc>span{display:flex;place-items:center}a,button,input[type='checkbox'],input[type='color'],input[type='file'],input[type='radio'],option,select{cursor:pointer;font-family:inherit;font-size:inherit}.icon-only>kol-span-wc>span>span{display:none}:host>abbr{cursor:help}",KolAbbr=class{constructor(t){registerInstance(this,t),this.nonce=nonce(),this._tooltipAlign="top",this._title=void 0,this.state={_title:"…",_tooltipAlign:"top"}}render(){return h(Host,null,h("abbr",{"aria-labelledby":this.nonce,role:"definition",title:this.state._title},h("span",{title:""},h("slot",null))),h("kol-tooltip",{_align:this.state._tooltipAlign,_id:this.nonce,_label:this.state._title}))}validateTitle(t){watchString(this,"_title",t,{required:!0})}validateTooltipAlign(t){watchTooltipAlignment(this,"_tooltipAlign",t)}componentWillLoad(){this.validateTitle(this._title),this.validateTooltipAlign(this._tooltipAlign)}static get watchers(){return{_title:["validateTitle"],_tooltipAlign:["validateTooltipAlign"]}}};KolAbbr.style={default:defaultStyleCss};export{KolAbbr as kol_abbr};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"kol-abbr.entry.js","mappings":";;;;;;;;;;;AAAA,MAAM,eAAe,GAAG
|
|
1
|
+
{"file":"kol-abbr.entry.js","mappings":";;;;;;;;;;;AAAA,MAAM,eAAe,GAAG,+8BAA+8B;;MC8B19B,OAAO;;;IACF,UAAK,GAAG,KAAK,EAAE,CAAC;yBAkBU,KAAK;;iBAgBhB;MAC/B,MAAM,EAAE,GAAG;MACX,aAAa,EAAE,KAAK;KACpB;;EAnCM,MAAM;IACZ,QACC,EAAC,IAAI,QACJ,+BAAuB,IAAI,CAAC,KAAK,EAAE,IAAI,EAAC,YAAY,EAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,IAC5E,YAAM,KAAK,EAAC,EAAE,IACb,eAAQ,CACF,CACD,EACP,mBAAa,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAgB,CACnG,EACN;GACF;EAmCM,aAAa,CAAC,KAAc;IAClC,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;MAClC,QAAQ,EAAE,IAAI;KACd,CAAC,CAAC;GACH;EAMM,oBAAoB,CAAC,KAAiB;IAC5C,qBAAqB,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;GACpD;EAKM,iBAAiB;IACvB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;GAC9C;;;;;;;;;;;;","names":[],"sources":["./src/components/abbr/style.css?tag=kol-abbr&mode=default&encapsulation=shadow","./src/components/abbr/component.tsx"],"sourcesContent":["@import '../style.css';\n\n:host > abbr {\n\tcursor: help;\n}\n","import { Generic } from '@a11y-ui/core';\nimport { Component, h, Host, JSX, Prop, State, Watch } from '@stencil/core';\n\nimport { watchTooltipAlignment } from '../../types/button-link';\nimport { Alignment } from '../../types/props/alignment';\nimport { nonce } from '../../utils/dev.utils';\nimport { watchString } from '../../utils/prop.validators';\n\n/**\n * API\n */\ntype RequiredProps = {\n\ttitle: string;\n};\ntype OptionalProps = {\n\ttooltipAlign: Alignment;\n};\nexport type Props = Generic.Element.Members<RequiredProps, OptionalProps>;\n\ntype RequiredStates = RequiredProps & OptionalProps;\ntype OptionalStates = unknown;\ntype States = Generic.Element.Members<RequiredStates, OptionalStates>;\n\n@Component({\n\ttag: 'kol-abbr',\n\tstyleUrls: {\n\t\tdefault: './style.css',\n\t},\n\tshadow: true,\n})\nexport class KolAbbr implements Generic.Element.ComponentApi<RequiredProps, OptionalProps, RequiredStates, OptionalStates> {\n\tprivate readonly nonce = nonce();\n\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<abbr aria-labelledby={this.nonce} role=\"definition\" title={this.state._title}>\n\t\t\t\t\t<span title=\"\">\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t</span>\n\t\t\t\t</abbr>\n\t\t\t\t<kol-tooltip _align={this.state._tooltipAlign} _id={this.nonce} _label={this.state._title}></kol-tooltip>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Gibt an, ob der Tooltip entweder oben, rechts, unten oder links angezeigt werden soll.\n\t */\n\t@Prop() public _tooltipAlign?: Alignment = 'top';\n\n\t/**\n\t * Dieses Property gibt die Beschreibung oder Erläuterung der Abkürzung an.\n\t */\n\t@Prop() public _title!: string;\n\n\t/**\n\t * Die State-Parameter repräsentieren den inneren State\n\t * einer Komponente.\n\t *\n\t * @see: https://stenciljs.com/docs/state\n\t */\n\t/**\n\t * @see: components/abbr/component.tsx (@State)\n\t */\n\t@State() public state: States = {\n\t\t_title: '…', // ⚠ required\n\t\t_tooltipAlign: 'top',\n\t};\n\n\t/**\n\t * Die Watch-Methoden dienen der Möglichkeit zur\n\t * Validierung der Werte eines Properties und\n\t * dem Mapping dessen auf einen anderen internen\n\t * State-Typ.\n\t *\n\t * @see: https://stenciljs.com/docs/properties#prop-validation\n\t */\n\t@Watch('_title')\n\tpublic validateTitle(value?: string): void {\n\t\twatchString(this, '_title', 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('_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 (componentWillLoad)\n\t */\n\tpublic componentWillLoad(): void {\n\t\tthis.validateTitle(this._title);\n\t\tthis.validateTooltipAlign(this._tooltipAlign);\n\t}\n}\n"],"version":3}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* KoliBri - The accessible HTML-Standard
|
|
3
3
|
*/
|
|
4
|
-
import{r as registerInstance,h,H as Host}from"./index-50adf9a0.js";import{f as featureHint}from"./a11y.tipps-
|
|
4
|
+
import{r as registerInstance,h,H as Host}from"./index-50adf9a0.js";import{f as featureHint}from"./a11y.tipps-5ca36877.js";import{n as nonce}from"./dev.utils-bedce29d.js";import{w as watchString,s as setState,b as watchBoolean}from"./prop.validators-1f3db013.js";import{w as watchHeadingLevel}from"./validation-b0614edd.js";import"./reuse-56bb5a4b.js";import"./index-81bd9b41.js";const defaultStyleCss=":host{--a11y-min-size:44px}*{hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}*[role='button'],button:not([role='link']),input[type='color'],input[type='date'],input[type='datetime-local'],input[type='email'],input[type='file'],input[type='month'],input[type='number'],input[type='password'],input[type='search'],input[type='tel'],input[type='text'],input[type='time'],input[type='url'],input[type='week'],option,select,textarea{min-height:var(--a11y-min-size);min-width:var(--a11y-min-size)}:is(a,button){background-color:transparent;border:none;margin:0;padding:0;width:100%;}:host{max-width:100%}*{box-sizing:border-box}kol-span-wc{display:grid;place-items:center}kol-span-wc>span{display:flex;place-items:center}a,button,input[type='checkbox'],input[type='color'],input[type='file'],input[type='radio'],option,select{cursor:pointer;font-family:inherit;font-size:inherit}.icon-only>kol-span-wc>span>span{display:none}:host{display:block}.accordion kol-heading-wc kol-button-wc button kol-span-wc{justify-items:start}";featureHint("[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"),featureHint("[KolAccordion] Tab-Sperre des Inhalts im geschlossenen Zustand.");const KolAccordion=class{constructor(t){registerInstance(this,t),this.nonce=nonce(),this.onClick=t=>{this._open=!1===this._open,setTimeout((()=>{var e;"function"==typeof(null===(e=this.state._on)||void 0===e?void 0:e.onClick)&&this.state._on.onClick(t,!0===this._open)}))},this._heading=void 0,this._level=1,this._on=void 0,this._open=!1,this.state={_heading:"…",_level:1}}render(){return h(Host,null,h("div",{class:{accordion:!0,open:!0===this.state._open,close:!0!==this.state._open}},h("kol-heading-wc",{_headline:"",_level:this.state._level},h("kol-button-wc",{_ariaControls:this.nonce,_ariaExpanded:this.state._open,_icon:this.state._open?"codicon codicon-remove":"codicon codicon-add",_label:this.state._heading,_on:{onClick:this.onClick}})),h("div",{class:"header"},h("slot",{name:"header"})),h("div",{"aria-hidden":!1===this.state._open?"true":void 0,class:"content",id:this.nonce,hidden:!1===this.state._open,style:!1===this.state._open?{display:"none",height:"0",visibility:"hidden"}:void 0},h("slot",{name:"content"}))))}validateHeading(t){watchString(this,"_heading",t,{required:!0})}validateLevel(t){watchHeadingLevel(this,t)}validateOn(t){"object"==typeof t&&null!==t&&"function"==typeof t.onClick&&setState(this,"_on",t)}validateOpen(t){watchBoolean(this,"_open",t)}componentWillLoad(){this.validateHeading(this._heading),this.validateLevel(this._level),this.validateOn(this._on),this.validateOpen(this._open)}static get watchers(){return{_heading:["validateHeading"],_level:["validateLevel"],_on:["validateOn"],_open:["validateOpen"]}}};KolAccordion.style={default:defaultStyleCss};export{KolAccordion as kol_accordion};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"kol-accordion.entry.js","mappings":";;;;;;;;;;;AAAA,MAAM,eAAe,GAAG,
|
|
1
|
+
{"file":"kol-accordion.entry.js","mappings":"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","names":[],"sources":["./src/components/accordion/style.css?tag=kol-accordion&mode=default&encapsulation=shadow","./src/components/accordion/component.tsx"],"sourcesContent":["@import '../style.css';\n@import '../host-display-block.css';\n\n.accordion kol-heading-wc kol-button-wc button kol-span-wc {\n\tjustify-items: start;\n}\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 { EventValueOrEventCallback } from '../../types/callbacks';\nimport { HeadingLevel } from '../../types/heading-level';\nimport { featureHint } from '../../utils/a11y.tipps';\nimport { nonce } from '../../utils/dev.utils';\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]?: EventValueOrEventCallback<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.css',\n\t},\n\tshadow: true,\n})\nexport class KolAccordion implements Generic.Element.ComponentApi<RequiredProps, OptionalProps, RequiredStates, OptionalStates> {\n\tprivate readonly nonce = nonce();\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\n\t\t\t\t\tclass={{\n\t\t\t\t\t\taccordion: true,\n\t\t\t\t\t\topen: this.state._open === true,\n\t\t\t\t\t\tclose: this.state._open !== true,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<kol-heading-wc _headline=\"\" _level={this.state._level}>\n\t\t\t\t\t\t<kol-button-wc\n\t\t\t\t\t\t\t// slot=\"expert\"\n\t\t\t\t\t\t\t_ariaControls={this.nonce}\n\t\t\t\t\t\t\t_ariaExpanded={this.state._open}\n\t\t\t\t\t\t\t_icon={this.state._open ? 'codicon codicon-remove' : 'codicon codicon-add'}\n\t\t\t\t\t\t\t_label={this.state._heading}\n\t\t\t\t\t\t\t_on={{ onClick: this.onClick }}\n\t\t\t\t\t\t></kol-button-wc>\n\t\t\t\t\t</kol-heading-wc>\n\t\t\t\t\t<div class=\"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\taria-hidden={this.state._open === false ? 'true' : undefined}\n\t\t\t\t\t\tclass=\"content\"\n\t\t\t\t\t\tid={this.nonce}\n\t\t\t\t\t\thidden={this.state._open === false}\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: '…', // ⚠ required\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\tsetTimeout(() => {\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});\n\t};\n}\n"],"version":3}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* KoliBri - The accessible HTML-Standard
|
|
3
3
|
*/
|
|
4
|
-
import{r as registerInstance,h,H as Host}from"./index-50adf9a0.js";import{b as watchBoolean,w as watchString,s as setState,a as watchValidator}from"./prop.validators-
|
|
4
|
+
import{r as registerInstance,h,H as Host}from"./index-50adf9a0.js";import{b as watchBoolean,w as watchString,s as setState,a as watchValidator}from"./prop.validators-1f3db013.js";import{w as watchHeadingLevel}from"./validation-b0614edd.js";import{a as translate}from"./i18n-97355570.js";import{L as Log}from"./dev.utils-bedce29d.js";import"./a11y.tipps-5ca36877.js";import"./index-81bd9b41.js";import"./index-f3c76945.js";import"./reuse-56bb5a4b.js";const defaultStyleCss=":host{--a11y-min-size:44px}*{hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}*[role='button'],button:not([role='link']),input[type='color'],input[type='date'],input[type='datetime-local'],input[type='email'],input[type='file'],input[type='month'],input[type='number'],input[type='password'],input[type='search'],input[type='tel'],input[type='text'],input[type='time'],input[type='url'],input[type='week'],option,select,textarea{min-height:var(--a11y-min-size);min-width:var(--a11y-min-size)}:is(a,button){background-color:transparent;border:none;margin:0;padding:0;width:100%;}:host{max-width:100%}*{box-sizing:border-box}kol-span-wc{display:grid;place-items:center}kol-span-wc>span{display:flex;place-items:center}a,button,input[type='checkbox'],input[type='color'],input[type='file'],input[type='radio'],option,select{cursor:pointer;font-family:inherit;font-size:inherit}.icon-only>kol-span-wc>span>span{display:none}:host{display:block}:host>div{display:grid;place-items:stretch;overflow:hidden}.heading{display:grid;grid-template-columns:auto 1fr auto;place-items:center}.heading>div{display:grid;justify-self:start}.heading .heading-icon{align-items:center;align-self:stretch;display:inline-flex}",Icon=t=>h("kol-icon",{class:"heading-icon",_ariaLabel:"string"==typeof t.heading&&t.heading.length>0?"":t.ariaLabel,_icon:t.icon}),AlertIcon=t=>{switch(t.type){case"error":return h(Icon,{ariaLabel:translate("kol-error"),icon:"codicon codicon-error",heading:t.heading});case"info":return h(Icon,{ariaLabel:translate("kol-info"),icon:"codicon codicon-info",heading:t.heading});case"warning":return h(Icon,{ariaLabel:translate("kol-warning"),icon:"codicon codicon-warning",heading:t.heading});case"success":return h(Icon,{ariaLabel:translate("kol-success"),icon:"codicon codicon-pass",heading:t.heading});default:return h(Icon,{ariaLabel:translate("kol-message"),icon:"codicon codicon-comment",heading:t.heading})}},KolAlert=class{constructor(t){registerInstance(this,t),this.close=()=>{var t;void 0!==(null===(t=this._on)||void 0===t?void 0:t.onClose)&&this._on.onClose(new Event("Close"))},this.on={onClick:this.close},this.validateOnValue=t=>"object"==typeof t&&null!==t&&"function"==typeof t.onClose,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(){var t;if(this.state._alert){try{Log.debug(["Navigator should vibrate ...",navigator.vibrate([100,75,100,75,100])])}catch(t){Log.debug("Navigator does not support vibration.")}setTimeout((()=>{this.validateAlert(!1)}),1e4)}return h(Host,null,h("div",{class:{[this.state._type]:!0,[this.state._variant]:!0},role:this.state._alert?"alert":void 0},h("div",{class:"heading"},h(AlertIcon,{heading:this.state._heading,type:this.state._type}),h("div",null,"string"==typeof this.state._heading&&(null===(t=this.state._heading)||void 0===t?void 0:t.length)>0&&h("kol-heading-wc",{_headline:this.state._heading,_level:this.state._level}),"msg"===this._variant&&h("div",{class:"content"},h("slot",null))),this.state._hasCloser&&h("kol-button-wc",{class:"close",_icon:{left:{icon:"codicon codicon-close"}},_iconOnly:!0,_label:translate("kol-close"),_on:this.on,_tooltipAlign:"left"})),"card"===this._variant&&h("div",{class:"content"},h("slot",null))))}validateAlert(t){watchBoolean(this,"_alert",t)}validateHasCloser(t){watchBoolean(this,"_hasCloser",t)}validateHeading(t){watchString(this,"_heading",t)}validateLevel(t){watchHeadingLevel(this,t)}validateOn(t){this.validateOnValue(t)&&setState(this,"_on",{onClose:t.onClose})}validateType(t){watchValidator(this,"_type",(t=>"string"==typeof t&&("default"===t||"error"===t||"info"===t||"success"===t||"warning"===t)),new Set("String {success, info, warning, error}"),t)}validateVariant(t){watchValidator(this,"_variant",(t=>"card"===t||"msg"===t),new Set("AlertVariant {card, msg}"),t)}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"]}}};KolAlert.style={default:defaultStyleCss};export{KolAlert as kol_alert};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"kol-alert.entry.js","mappings":"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","names":[],"sources":["./src/components/alert/style.css?tag=kol-alert&mode=default&encapsulation=shadow","./src/components/alert/component.tsx"],"sourcesContent":["@import '../style.css';\n@import '../host-display-block.css';\n\n:host > div {\n\tbackground-color: white; /* needed for overlay situations */\n\tdisplay: grid;\n\tplace-items: stretch;\n\toverflow: hidden;\n}\n\n.heading {\n\tdisplay: grid;\n\tgrid-template-columns: auto 1fr auto;\n\tplace-items: center;\n}\n.heading > div {\n\tdisplay: grid;\n\tjustify-self: start;\n}\n.heading .heading-icon {\n\talign-items: center;\n\talign-self: stretch;\n\tdisplay: inline-flex;\n}\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 { setState, watchBoolean, watchString, watchValidator } from '../../utils/prop.validators';\nimport { watchHeadingLevel } from '../heading/validation';\nimport { translate } from '../../i18n';\nimport { Log } from '../../utils/dev.utils';\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=\"heading-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=\"codicon codicon-error\" heading={props.heading} />;\n\t\tcase 'info':\n\t\t\treturn <Icon ariaLabel={translate('kol-info')} icon=\"codicon codicon-info\" heading={props.heading} />;\n\t\tcase 'warning':\n\t\t\treturn <Icon ariaLabel={translate('kol-warning')} icon=\"codicon codicon-warning\" heading={props.heading} />;\n\t\tcase 'success':\n\t\t\treturn <Icon ariaLabel={translate('kol-success')} icon=\"codicon codicon-pass\" heading={props.heading} />;\n\t\tdefault:\n\t\t\treturn <Icon ariaLabel={translate('kol-message')} icon=\"codicon codicon-comment\" heading={props.heading} />;\n\t}\n};\n\n@Component({\n\ttag: 'kol-alert',\n\tstyleUrls: {\n\t\tdefault: './style.css',\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<div class=\"heading\">\n\t\t\t\t\t\t<AlertIcon heading={this.state._heading} type={this.state._type} />\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t{typeof this.state._heading === 'string' && this.state._heading?.length > 0 && (\n\t\t\t\t\t\t\t\t<kol-heading-wc _headline={this.state._heading} _level={this.state._level}></kol-heading-wc>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{this._variant === 'msg' && (\n\t\t\t\t\t\t\t\t<div class=\"content\">\n\t\t\t\t\t\t\t\t\t<slot />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\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: 'codicon codicon-close',\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\t{this._variant === 'card' && (\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)}\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\tprivate validateOnValue = (value: unknown): boolean =>\n\t\ttypeof value === 'object' && value !== null && typeof (value as KoliBriAlertEventCallbacks).onClose === 'function';\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 (this.validateOnValue(value)) {\n\t\t\tsetState<KoliBriAlertEventCallbacks>(\n\t\t\t\tthis,\n\t\t\t\t'_on',\n\t\t\t\t{\n\t\t\t\t\tonClose: (value as KoliBriAlertEventCallbacks).onClose,\n\t\t\t\t}\n\t\t\t\t// {\n\t\t\t\t// \tafterPatch: (value: unknown) => {\n\t\t\t\t// \t\tthis._hasCloser = this.validateOnValue(value);\n\t\t\t\t// \t},\n\t\t\t\t// }\n\t\t\t);\n\t\t\t// } else {\n\t\t\t// \tsetState<KoliBriAlertEventCallbacks>(this, '_on', null, {\n\t\t\t// \t\tafterPatch: (value: unknown) => {\n\t\t\t// \t\t\tthis._hasCloser = this.validateOnValue(value);\n\t\t\t// \t\t},\n\t\t\t// \t});\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"],"version":3}
|
|
1
|
+
{"file":"kol-alert.entry.js","mappings":"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","names":[],"sources":["./src/components/alert/style.css?tag=kol-alert&mode=default&encapsulation=shadow","./src/components/alert/component.tsx"],"sourcesContent":["@import '../style.css';\n@import '../host-display-block.css';\n\n:host > div {\n\tdisplay: grid;\n\tplace-items: stretch;\n\toverflow: hidden;\n}\n\n.heading {\n\tdisplay: grid;\n\tgrid-template-columns: auto 1fr auto;\n\tplace-items: center;\n}\n.heading > div {\n\tdisplay: grid;\n\tjustify-self: start;\n}\n.heading .heading-icon {\n\talign-items: center;\n\talign-self: stretch;\n\tdisplay: inline-flex;\n}\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 { setState, watchBoolean, watchString, watchValidator } from '../../utils/prop.validators';\nimport { watchHeadingLevel } from '../heading/validation';\nimport { translate } from '../../i18n';\nimport { Log } from '../../utils/dev.utils';\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=\"heading-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=\"codicon codicon-error\" heading={props.heading} />;\n\t\tcase 'info':\n\t\t\treturn <Icon ariaLabel={translate('kol-info')} icon=\"codicon codicon-info\" heading={props.heading} />;\n\t\tcase 'warning':\n\t\t\treturn <Icon ariaLabel={translate('kol-warning')} icon=\"codicon codicon-warning\" heading={props.heading} />;\n\t\tcase 'success':\n\t\t\treturn <Icon ariaLabel={translate('kol-success')} icon=\"codicon codicon-pass\" heading={props.heading} />;\n\t\tdefault:\n\t\t\treturn <Icon ariaLabel={translate('kol-message')} icon=\"codicon codicon-comment\" heading={props.heading} />;\n\t}\n};\n\n@Component({\n\ttag: 'kol-alert',\n\tstyleUrls: {\n\t\tdefault: './style.css',\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<div class=\"heading\">\n\t\t\t\t\t\t<AlertIcon heading={this.state._heading} type={this.state._type} />\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t{typeof this.state._heading === 'string' && this.state._heading?.length > 0 && (\n\t\t\t\t\t\t\t\t<kol-heading-wc _headline={this.state._heading} _level={this.state._level}></kol-heading-wc>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{this._variant === 'msg' && (\n\t\t\t\t\t\t\t\t<div class=\"content\">\n\t\t\t\t\t\t\t\t\t<slot />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\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: 'codicon codicon-close',\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\t{this._variant === 'card' && (\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)}\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\tprivate validateOnValue = (value: unknown): boolean =>\n\t\ttypeof value === 'object' && value !== null && typeof (value as KoliBriAlertEventCallbacks).onClose === 'function';\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 (this.validateOnValue(value)) {\n\t\t\tsetState<KoliBriAlertEventCallbacks>(\n\t\t\t\tthis,\n\t\t\t\t'_on',\n\t\t\t\t{\n\t\t\t\t\tonClose: (value as KoliBriAlertEventCallbacks).onClose,\n\t\t\t\t}\n\t\t\t\t// {\n\t\t\t\t// \tafterPatch: (value: unknown) => {\n\t\t\t\t// \t\tthis._hasCloser = this.validateOnValue(value);\n\t\t\t\t// \t},\n\t\t\t\t// }\n\t\t\t);\n\t\t\t// } else {\n\t\t\t// \tsetState<KoliBriAlertEventCallbacks>(this, '_on', null, {\n\t\t\t// \t\tafterPatch: (value: unknown) => {\n\t\t\t// \t\t\tthis._hasCloser = this.validateOnValue(value);\n\t\t\t// \t\t},\n\t\t\t// \t});\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"],"version":3}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* KoliBri - The accessible HTML-Standard
|
|
3
3
|
*/
|
|
4
|
-
import{r as registerInstance,h,H as Host}from"./index-50adf9a0.js";import{f as featureHint,d as devHint,a as a11yHint}from"./a11y.tipps-
|
|
4
|
+
import{r as registerInstance,h,H as Host}from"./index-50adf9a0.js";import{f as featureHint,d as devHint,a as a11yHint}from"./a11y.tipps-5ca36877.js";import{r as rgbaConvert,c as s,a as watchValidator,o as objectObjectHandler,p as parseJson,s as setState}from"./prop.validators-1f3db013.js";import{v as validateLabel}from"./label-966377c0.js";import{c as colorRgba}from"./index-d14da386.js";import"./dev.utils-bedce29d.js";import"./reuse-56bb5a4b.js";import"./index-81bd9b41.js";const getContrastYIQ=(t,o,a)=>(299*t+587*o+114*a)/1e3>=128?-1:1,calcColorContrast=(t,o,a,e=1)=>{const r=[Math.max(Math.min(Math.round(o[0]+e*Math.max(1,o[0]/100)),255),0),Math.max(Math.min(Math.round(o[1]+e*Math.max(1,o[1]/100)),255),0),Math.max(Math.min(Math.round(o[2]+e*Math.max(1,o[2]/100)),255),0)],n=s(rgbaConvert.hex(`rgba(${t.join(",")},1)`),rgbaConvert.hex(`rgba(${r.join(",")},1)`)),i=r[0]+r[1]+r[2];return 0===i||765===i||n>a?{background:t,foreground:r,contrast:n}:calcColorContrast(t,r,a,e)},cache=new Map,getColorContrast=(t,o,a,e=1)=>{if(cache.has(t))return cache.get(t);const r=calcColorContrast(t,o,a,e);return cache.set(t,r),r},createContrastColorPair=(t,o=7)=>{let a=[0,0,0,1],e=[255,255,255,1];"string"==typeof t?(a=colorRgba(t),e=a):"object"==typeof t&&null!==t&&"string"==typeof t.background&&"string"==typeof t.foreground&&(a=colorRgba(t.background),e="string"==typeof t.foreground?colorRgba(t.foreground):a);const r=(n=a[0],s=a[1],i=a[2],(299*n+587*s+114*i)/1e3>=128?-1:1);var n,s,i;const l=getColorContrast([a[0],a[1],a[2]],[e[0],e[1],e[2]],o,r);return e=[...l.foreground,1],{background:rgbaConvert.hex(`rgba(${a.join(",")})`),foreground:rgbaConvert.hex(`rgba(${e.join(",")})`),contrast:l.contrast}},defaultStyleCss=":host{--a11y-min-size:44px}*{hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}*[role='button'],button:not([role='link']),input[type='color'],input[type='date'],input[type='datetime-local'],input[type='email'],input[type='file'],input[type='month'],input[type='number'],input[type='password'],input[type='search'],input[type='tel'],input[type='text'],input[type='time'],input[type='url'],input[type='week'],option,select,textarea{min-height:var(--a11y-min-size);min-width:var(--a11y-min-size)}:is(a,button){background-color:transparent;border:none;margin:0;padding:0;width:100%;}:host{max-width:100%}*{box-sizing:border-box}kol-span-wc{display:grid;place-items:center}kol-span-wc>span{display:flex;place-items:center}a,button,input[type='checkbox'],input[type='color'],input[type='file'],input[type='radio'],option,select{cursor:pointer;font-family:inherit;font-size:inherit}.icon-only>kol-span-wc>span>span{display:none}:host>span{display:inline-flex;place-items:center}:host>span>kol-button-wc button{color:inherit}";featureHint("[KolBadge] Optimierung des _color-Properties (rgba, rgb, hex usw.).");const HACK_REG_EX=/^([a-f0-9]{3}|[a-f0-9]{6})$/,KolBadge=class{constructor(t){registerInstance(this,t),this.bgColorStr="#000",this.colorStr="#fff",this.handleColorChange=t=>{let o,a=t;"string"==typeof a?(HACK_REG_EX.test(a)&&(devHint("[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=createContrastColorPair(a)):o=createContrastColorPair({background:a.backgroundColor,foreground:a.color}),o.contrast<7&&a11yHint(`[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._iconOnly=!1,this._label=void 0,this._smartButton=void 0,this.state={_color:"#000",_label:"…"}}render(){return h(Host,null,h("span",{class:{"smart-button":"object"==typeof this.state._smartButton&&null!==this.state._smartButton},style:{backgroundColor:this.bgColorStr,color:this.colorStr}},h("kol-span-wc",{_icon:this._icon,_iconOnly:this._iconOnly,_label:this.state._label}),"object"==typeof this.state._smartButton&&null!==this.state._smartButton&&h("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){watchValidator(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}})}validateLabel(t){validateLabel(this,t,{hooks:{afterPatch:t=>{"string"==typeof t&&t.length>32&&a11yHint(`[KolBadge] The label is too long for a badge (${t.length} > 32).`)}}})}validateSmartButton(t){objectObjectHandler(t,(()=>{try{t=parseJson(t)}catch(t){}setState(this,"_smartButton",t)}))}componentWillLoad(){this.validateColor(this._color),this.validateLabel(this._label),this.validateSmartButton(this._smartButton)}static get watchers(){return{_color:["validateColor"],_label:["validateLabel"],_smartButton:["validateSmartButton"]}}};KolBadge.style={default:defaultStyleCss};export{KolBadge as kol_badge};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"kol-badge.entry.js","mappings":";;;;;;;;;;;;AAiCO,MAAM,cAAc,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;EAC7D,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC;EACjD,OAAO,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC,CAAC;AAYK,MAAM,iBAAiB,GAAG,CAAC,SAAc,EAAE,aAAkB,EAAE,KAAa,EAAE,GAAG,GAAG,CAAC;EAC3F,MAAM,KAAK,GAAQ;IAClB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IACpG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IACpG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;GACpG,CAAC;EACF,MAAM,QAAQ,GAAGA,CAAG,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;EACvH,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;EAC7C,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,GAAG,IAAI,QAAQ,GAAG,KAAK,EAAE;IACrD,OAAO;MACN,UAAU,EAAE,SAAS;MACrB,UAAU,EAAE,KAAK;MACjB,QAAQ;KACR,CAAC;GACF;OAAM;IACN,OAAO,iBAAiB,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;GACvD;AACF,CAAC,CAAC;AAEF,MAAM,KAAK,GAAqC,IAAI,GAAG,EAAE,CAAC;AAGnD,MAAM,gBAAgB,GAAG,CAAC,SAAc,EAAE,aAAkB,EAAE,KAAa,EAAE,GAAG,GAAG,CAAC;EAC1F,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;IACzB,OAAO,KAAK,CAAC,GAAG,CAAC,SAAS,CAAuB,CAAC;GAClD;EACD,MAAM,KAAK,GAAG,iBAAiB,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;EACtE,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;EAC5B,OAAO,KAAK,CAAC;AACd,CAAC,CAAC;AAEK,MAAM,uBAAuB,GAAG,CAAC,KAAiC,EAAE,aAAa,GAAG,CAAC;EAC3F,IAAI,SAAS,GAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;EACnC,IAAI,aAAa,GAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;EAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;IAC9B,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC7B,aAAa,GAAG,SAAS,CAAC;GAC1B;OAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,EAAE;IACvI,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACxC,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,EAAE;MACzC,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;KAC5C;SAAM;MACN,aAAa,GAAG,SAAS,CAAC;KAC1B;GACD;EACD,MAAM,GAAG,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;EACrE,MAAM,aAAa,GAAG,gBAAgB,CACrC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAC1C,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,EACtD,aAAa,EACb,GAAG,CACH,CAAC;EACF,aAAa,GAAG,CAAC,GAAG,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;EAEjD,OAAO;IACN,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,QAAQ,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAC3D,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,QAAQ,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAC/D,QAAQ,EAAE,aAAa,CAAC,QAAQ;GAChC,CAAC;AACH,CAAC;;AC3GD,MAAM,eAAe,GAAG,oiCAAoiC;;ACW5jC,WAAW,CAAC,qEAAqE,CAAC,CAAC;AAEnF,MAAM,WAAW,GAAG,6BAA6B,CAAC;MAqCrC,QAAQ;;;IACZ,eAAU,GAAG,MAAM,CAAC;IACpB,aAAQ,GAAG,MAAM,CAAC;IAmElB,sBAAiB,GAAG,CAAC,KAAc;MAC1C,IAAI,KAAK,GAAG,KAA8B,CAAC;MAC3C,IAAI,aAAoC,CAAC;MACzC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC9B,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;UAE5B,OAAO,CACN,mJAAmJ,CACnJ,CAAC;UACF,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;SACpB;QACD,aAAa,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;OAC/C;WAAM;QACN,aAAa,GAAG,uBAAuB,CAAC;UACvC,UAAU,EAAE,KAAK,CAAC,eAAe;UACjC,UAAU,EAAE,KAAK,CAAC,KAAK;SACvB,CAAC,CAAC;OACH;MACD,IAAI,aAAa,CAAC,QAAQ,GAAG,CAAC,EAAE;QAC/B,QAAQ,CACP,8BAA8B,aAAa,CAAC,QAAQ,iDAAiD,aAAa,CAAC,UAAU,QAAQ,aAAa,CAAC,UAAU,GAAG,CAChK,CAAC;OACF;MACD,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC;MAC3C,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,UAAU,CAAC;KACzC,CAAC;kBAvD8C,MAAM;;qBAUA,KAAK;;;iBAe3B;MAC/B,MAAM,EAAE,MAAM;MACd,MAAM,EAAE,GAAG;KACX;;EA/DM,MAAM;IACZ,QACC,EAAC,IAAI,QACJ,YACC,KAAK,EAAE;QACN,cAAc,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,KAAK,IAAI;OAC/F,EACD,KAAK,EAAE;QACN,eAAe,EAAE,IAAI,CAAC,UAAU;QAChC,KAAK,EAAE,IAAI,CAAC,QAAQ;OACpB,IAED,mBAAa,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAgB,EACnG,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,KAAK,IAAI,KAC/E,qBACC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAC9C,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAClD,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAC5C,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EACpC,SAAS,EAAE,IAAI,EACf,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,EAChC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,EACtC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,EAChC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,aAAa,EACpD,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,GAC1B,CACjB,CACK,CACD,EACN;GACF;EAkEM,aAAa,CAAC,KAA6B;IACjD,cAAc,CACb,IAAI,EACJ,QAAQ,EACR,CAAC,KAAK,KACL,OAAO,KAAK,KAAK,QAAQ;OACxB,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,CAAC,eAAe,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,EAC9H,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,EACnC,KAAK,EACL;MACC,YAAY,EAAE,MAAM;MACpB,KAAK,EAAE;QACN,WAAW,EAAE,IAAI,CAAC,iBAAiB;OACnC;KACD,CACD,CAAC;GACF;EAMM,aAAa,CAAC,KAAc;IAClC,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE;MAC1B,KAAK,EAAE;QACN,UAAU,EAAE,CAAC,KAAK;UACjB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE;YACnD,QAAQ,CAAC,iDAAiD,KAAK,CAAC,MAAM,SAAS,CAAC,CAAC;WACjF;SACD;OACD;KACD,CAAC,CAAC;GACH;EAMM,mBAAmB,CAAC,KAA4B;IACtD,mBAAmB,CAAC,KAAK,EAAE;MAC1B,IAAI;QACH,KAAK,GAAG,SAAS,CAAc,KAAe,CAAC,CAAC;OAEhD;MAAC,OAAO,CAAC,EAAE;OAEX;MACD,QAAQ,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;KACtC,CAAC,CAAC;GACH;EAKM,iBAAiB;IACvB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;GAC5C;;;;;;;;;;;;;","names":["hex"],"sources":["./src/components/badge/contrast.ts","./src/components/badge/style.css?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\ntype 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.css';\n\n:host > span {\n\tdisplay: inline-flex;\n\n\tplace-items: center;\n}\n:host > span.smart-button > kol-span-wc {\n\tborder-right: 1px solid rgba(0, 0, 0, 0.25);\n}\n:host > span > kol-button-wc button {\n\tcolor: inherit;\n}\n","import { Component, h, Host, JSX, Prop, State, Watch } from '@stencil/core';\n\nimport { Generic } from '@a11y-ui/core';\nimport { ButtonProps } from '../../types/button-link';\nimport { Stringified } from '../../types/common';\nimport { KoliBriIconProp } from '../../types/icon';\nimport { a11yHint, devHint, featureHint } from '../../utils/a11y.tipps';\nimport { objectObjectHandler, parseJson, setState, watchValidator } from '../../utils/prop.validators';\nimport { validateLabel } from '../../utils/validators/label';\nimport { ColorContrast, createContrastColorPair } from './contrast';\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\tlabel: string;\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.css',\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.state._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 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\t_label: '…', // ⚠ required\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('_label')\n\tpublic validateLabel(value?: string): void {\n\t\tvalidateLabel(this, value, {\n\t\t\thooks: {\n\t\t\t\tafterPatch: (value) => {\n\t\t\t\t\tif (typeof value === 'string' && value.length > 32) {\n\t\t\t\t\t\ta11yHint(`[KolBadge] The label is too long for a badge (${value.length} > 32).`);\n\t\t\t\t\t}\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.validateLabel(this._label);\n\t\tthis.validateSmartButton(this._smartButton);\n\t}\n}\n"],"version":3}
|
|
1
|
+
{"file":"kol-badge.entry.js","mappings":"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","names":["hex"],"sources":["./src/components/badge/contrast.ts","./src/components/badge/style.css?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\ntype 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.css';\n\n:host > span {\n\tdisplay: inline-flex;\n\tplace-items: center;\n}\n:host > span > kol-button-wc button {\n\tcolor: inherit;\n}\n","import { Component, h, Host, JSX, Prop, State, Watch } from '@stencil/core';\n\nimport { Generic } from '@a11y-ui/core';\nimport { ButtonProps } from '../../types/button-link';\nimport { Stringified } from '../../types/common';\nimport { KoliBriIconProp } from '../../types/icon';\nimport { a11yHint, devHint, featureHint } from '../../utils/a11y.tipps';\nimport { objectObjectHandler, parseJson, setState, watchValidator } from '../../utils/prop.validators';\nimport { validateLabel } from '../../utils/validators/label';\nimport { ColorContrast, createContrastColorPair } from './contrast';\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\tlabel: string;\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.css',\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.state._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 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\t_label: '…', // ⚠ required\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('_label')\n\tpublic validateLabel(value?: string): void {\n\t\tvalidateLabel(this, value, {\n\t\t\thooks: {\n\t\t\t\tafterPatch: (value) => {\n\t\t\t\t\tif (typeof value === 'string' && value.length > 32) {\n\t\t\t\t\t\ta11yHint(`[KolBadge] The label is too long for a badge (${value.length} > 32).`);\n\t\t\t\t\t}\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.validateLabel(this._label);\n\t\tthis.validateSmartButton(this._smartButton);\n\t}\n}\n"],"version":3}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* KoliBri - The accessible HTML-Standard
|
|
3
3
|
*/
|
|
4
|
-
import{r as registerInstance,h,F as Fragment,H as Host}from"./index-50adf9a0.js";import{b as a11yHintLabelingLandmarks}from"./a11y.tipps-
|
|
4
|
+
import{r as registerInstance,h,F as Fragment,H as Host}from"./index-50adf9a0.js";import{b as a11yHintLabelingLandmarks}from"./a11y.tipps-5ca36877.js";import{w as watchString}from"./prop.validators-1f3db013.js";import{w as watchNavLinks}from"./validation-2bb481bd.js";import"./dev.utils-bedce29d.js";import"./reuse-56bb5a4b.js";import"./index-81bd9b41.js";const defaultStyleCss=":host{--a11y-min-size:44px}*{hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}*[role='button'],button:not([role='link']),input[type='color'],input[type='date'],input[type='datetime-local'],input[type='email'],input[type='file'],input[type='month'],input[type='number'],input[type='password'],input[type='search'],input[type='tel'],input[type='text'],input[type='time'],input[type='url'],input[type='week'],option,select,textarea{min-height:var(--a11y-min-size);min-width:var(--a11y-min-size)}:is(a,button){background-color:transparent;border:none;margin:0;padding:0;width:100%;}:host{max-width:100%}*{box-sizing:border-box}kol-span-wc{display:grid;place-items:center}kol-span-wc>span{display:flex;place-items:center}a,button,input[type='checkbox'],input[type='color'],input[type='file'],input[type='radio'],option,select{cursor:pointer;font-family:inherit;font-size:inherit}.icon-only>kol-span-wc>span>span{display:none}ul,li{margin:0;padding:0;list-style:none;display:flex;gap:0.5em;flex-wrap:wrap;place-items:center}kol-icon::part(separator){font-weight:900;font-size:0.7em}kol-icon::part(separator)::before{content:'\\f054';font-family:'Font Awesome 6 Free'}",KolBreadcrumb=class{constructor(t){registerInstance(this,t),this._ariaLabel=void 0,this._links=void 0,this.state={_ariaLabel:"…",_links:[]}}render(){const t=this.state._links.length-1;return h(Host,null,h("nav",{"aria-label":this.state._ariaLabel},h("ul",null,0===this.state._links.length&&h("li",null,h("kol-icon",{_ariaLabel:"",_icon:"codicon codicon-home"}),"…"),this.state._links.map(((i,e)=>h("li",{key:e},0!==e&&h("kol-icon",{_ariaLabel:"",_icon:"codicon codicon-chevron-right"}),e===t?h("span",null,i._iconOnly?h("kol-icon",{_ariaLabel:i._label,_icon:"string"==typeof i._icon?i._icon:"codicon codicon-symbol-event"}):h(Fragment,null,i._label)):h("kol-link",Object.assign({exportparts:"link",_useCase:"nav"},i,{_ariaLabel:i._label}),i._label)))))))}validateAriaLabel(t){watchString(this,"_ariaLabel",t,{required:!0}),a11yHintLabelingLandmarks(t)}validateLinks(t){watchNavLinks("KolBreadcrumb",this,t)}componentWillLoad(){this.validateAriaLabel(this._ariaLabel),this.validateLinks(this._links)}static get watchers(){return{_ariaLabel:["validateAriaLabel"],_links:["validateLinks"]}}};KolBreadcrumb.style={default:defaultStyleCss};export{KolBreadcrumb as kol_breadcrumb};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"kol-breadcrumb.entry.js","mappings":";;;;;;;;;;;AAAA,MAAM,eAAe,GAAG,
|
|
1
|
+
{"file":"kol-breadcrumb.entry.js","mappings":";;;;;;;;;;;AAAA,MAAM,eAAe,GAAG,yqCAAyqC;;MCqCprC,aAAa;;;;;iBAmDO;MAC/B,UAAU,EAAE,GAAG;MACf,MAAM,EAAE,EAAE;KACV;;EArDM,MAAM;IACZ,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/C,QACC,EAAC,IAAI,QACJ,yBAAiB,IAAI,CAAC,KAAK,CAAC,UAAU,IACrC,cACE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,KAC9B,cACC,gBAAU,UAAU,EAAC,EAAE,EAAC,KAAK,EAAC,sBAAsB,GAAG,WACnD,CACL,EACA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAa;MAC1C,QACC,UAAI,GAAG,EAAE,KAAK,IACZ,KAAK,KAAK,CAAC,IAAI,gBAAU,UAAU,EAAC,EAAE,EAAC,KAAK,EAAC,+BAA+B,GAAG,EAC/E,KAAK,KAAK,SAAS,IACnB,gBACE,IAAI,CAAC,SAAS,IACd,gBAAU,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,8BAA8B,GAAI,KAE1H,EAAC,QAAQ,QAAE,IAAI,CAAC,MAAM,CAAY,CAClC,CACK,KAEP,8BAAU,WAAW,EAAC,MAAM,EAAC,QAAQ,EAAC,KAAK,IAAK,IAAI,IAAE,UAAU,EAAE,IAAI,CAAC,MAAM,KAC3E,IAAI,CAAC,MAAM,CACF,CACX,CACG,EACJ;KACF,CAAC,CACE,CACA,CACA,EACN;GACF;EAwBM,iBAAiB,CAAC,KAAc;IACtC,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE;MACtC,QAAQ,EAAE,IAAI;KACd,CAAC,CAAC;IACH,yBAAyB,CAAC,KAAK,CAAC,CAAC;GACjC;EAMM,aAAa,CAAC,KAAgC;IACpD,aAAa,CAAC,eAAe,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;GAC5C;EAKM,iBAAiB;IACvB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;GAChC;;;;;;;;;;;;","names":[],"sources":["./src/components/breadcrumb/style.css?tag=kol-breadcrumb&mode=default&encapsulation=shadow","./src/components/breadcrumb/component.tsx"],"sourcesContent":["@import '../style.css';\n\nul,\nli {\n\tmargin: 0;\n\tpadding: 0;\n\tlist-style: none;\n\tdisplay: flex;\n\tgap: 0.5em;\n\tflex-wrap: wrap;\n\tplace-items: center;\n}\n\nkol-icon::part(separator) {\n\tfont-weight: 900;\n\tfont-size: 0.7em;\n}\n\nkol-icon::part(separator)::before {\n\tcontent: '\\f054';\n\tfont-family: 'Font Awesome 6 Free';\n}\n","import { Component, Fragment, h, Host, JSX, Prop, State, Watch } from '@stencil/core';\n\nimport { Generic } from '@a11y-ui/core';\nimport { LinkProps } from '../../types/button-link';\nimport { Stringified } from '../../types/common';\nimport { a11yHintLabelingLandmarks } from '../../utils/a11y.tipps';\nimport { watchString } from '../../utils/prop.validators';\nimport { watchNavLinks } from '../nav/validation';\n\n/**\n * API\n */\ntype RequiredProps = {\n\tariaLabel: string;\n\tlinks: Stringified<LinkProps[]>;\n};\ntype OptionalProps = unknown;\nexport type Props = Generic.Element.Members<RequiredProps, OptionalProps>;\n\ntype RequiredStates = {\n\tariaLabel: string;\n\tlinks: LinkProps[];\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.css',\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=\"codicon codicon-home\" />…\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=\"codicon codicon-chevron-right\" />}\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 : 'codicon codicon-symbol-event'} />\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<LinkProps[]>;\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<LinkProps[]>): 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"],"version":3}
|