@public-ui/components 1.7.11 → 1.7.12
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/custom-elements.json +1 -1
- package/dist/cjs/{a11y.tipps-bdf67538.js → a11y.tipps-acf8dda9.js} +1 -1
- package/dist/cjs/{a11y.tipps-bdf67538.js.map → a11y.tipps-acf8dda9.js.map} +1 -1
- package/dist/cjs/align-f837f529.js +4 -0
- package/dist/cjs/{align-03606e34.js.map → align-f837f529.js.map} +1 -1
- package/dist/cjs/{alignment-3bda30d0.js → alignment-c846123c.js} +1 -1
- package/dist/cjs/{alignment-3bda30d0.js.map → alignment-c846123c.js.map} +1 -1
- package/dist/cjs/{app-globals-51c0995c.js → app-globals-97989671.js} +1 -1
- package/dist/cjs/{app-globals-51c0995c.js.map → app-globals-97989671.js.map} +1 -1
- package/dist/cjs/aria-current-939a4013.js +4 -0
- package/dist/cjs/{aria-current-20486eec.js.map → aria-current-939a4013.js.map} +1 -1
- package/dist/cjs/associated.controller-6f39b321.js +4 -0
- package/dist/cjs/associated.controller-6f39b321.js.map +1 -0
- package/dist/cjs/{color-324d7376.js → color-aaa4bd5b.js} +1 -1
- package/dist/cjs/{color-324d7376.js.map → color-aaa4bd5b.js.map} +1 -1
- package/dist/cjs/controller-37724ba1.js +4 -0
- package/dist/cjs/controller-37724ba1.js.map +1 -0
- package/dist/cjs/controller-69f2ca4d.js +4 -0
- package/dist/cjs/controller-69f2ca4d.js.map +1 -0
- package/dist/cjs/{controller-b0fc3b7c.js → controller-8a663b94.js} +1 -1
- package/dist/cjs/{controller-b0fc3b7c.js.map → controller-8a663b94.js.map} +1 -1
- package/dist/cjs/{controller-6c8f5b84.js → controller-958e15ee.js} +1 -1
- package/dist/cjs/{controller-6c8f5b84.js.map → controller-958e15ee.js.map} +1 -1
- package/dist/cjs/{controller-e3ea9e28.js → controller-9fe81117.js} +1 -1
- package/dist/cjs/{controller-e3ea9e28.js.map → controller-9fe81117.js.map} +1 -1
- package/dist/cjs/{controller-icon-abec5bf1.js → controller-icon-2557ce59.js} +1 -1
- package/dist/cjs/{controller-icon-abec5bf1.js.map → controller-icon-2557ce59.js.map} +1 -1
- package/dist/cjs/{custom-class-230b71ad.js → custom-class-314f3146.js} +1 -1
- package/dist/cjs/{custom-class-230b71ad.js.map → custom-class-314f3146.js.map} +1 -1
- package/dist/cjs/{dev.utils-44125020.js → dev.utils-a9a312e8.js} +1 -1
- package/dist/cjs/{dev.utils-44125020.js.map → dev.utils-a9a312e8.js.map} +1 -1
- package/dist/cjs/{devtools-d1d5b564.js → devtools-627520bb.js} +1 -1
- package/dist/cjs/{devtools-d1d5b564.js.map → devtools-627520bb.js.map} +1 -1
- package/dist/cjs/form-field-msg-31b183d5.js +4 -0
- package/dist/cjs/form-field-msg-31b183d5.js.map +1 -0
- package/dist/cjs/has-closer-049d6e97.js +4 -0
- package/dist/cjs/{has-closer-4075bcde.js.map → has-closer-049d6e97.js.map} +1 -1
- package/dist/cjs/hide-label-94cb2a98.js +4 -0
- package/dist/cjs/{hide-label-92395355.js.map → hide-label-94cb2a98.js.map} +1 -1
- package/dist/cjs/{i18n-365eedcb.js → i18n-9412d850.js} +1 -1
- package/dist/cjs/{i18n-365eedcb.js.map → i18n-9412d850.js.map} +1 -1
- package/dist/cjs/{icons-947f8e26.js → icons-8878835b.js} +1 -1
- package/dist/cjs/{icons-947f8e26.js.map → icons-8878835b.js.map} +1 -1
- package/dist/cjs/image-source-59531cc1.js +4 -0
- package/dist/cjs/{image-source-f555dbf3.js.map → image-source-59531cc1.js.map} +1 -1
- package/dist/cjs/index-26a16cf8.js +1 -2
- package/dist/cjs/{index-b51836ab.js → index-9549bac5.js} +1 -1
- package/dist/cjs/{index-b51836ab.js.map → index-9549bac5.js.map} +1 -1
- 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-wc_3.cjs.entry.js +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-avatar-wc.cjs.entry.js +1 -1
- package/dist/cjs/kol-avatar.cjs.entry.js +1 -1
- package/dist/cjs/kol-avatar.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.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-form.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-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-input.cjs.entry.js +1 -1
- package/dist/cjs/kol-input.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.cjs.entry.js +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-popover-wc.cjs.entry.js +1 -1
- package/dist/cjs/kol-popover-wc.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-wc_2.cjs.entry.js +1 -1
- package/dist/cjs/kol-span-wc_2.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-split-button.cjs.entry.js +1 -1
- package/dist/cjs/kol-split-button.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-container.cjs.entry.js +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-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-c6dce025.js → label-56c1f9e1.js} +1 -1
- package/dist/cjs/{label-c6dce025.js.map → label-56c1f9e1.js.map} +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/open-60b9c16f.js +4 -0
- package/dist/cjs/{open-d3d157ce.js.map → open-60b9c16f.js.map} +1 -1
- package/dist/cjs/{prop.validators-9cb46e7c.js → prop.validators-c61f861a.js} +1 -1
- package/dist/cjs/{prop.validators-9cb46e7c.js.map → prop.validators-c61f861a.js.map} +1 -1
- package/dist/cjs/rows-954faa41.js +4 -0
- package/dist/cjs/{rows-852b9174.js.map → rows-954faa41.js.map} +1 -1
- package/dist/cjs/show-4d503b74.js +4 -0
- package/dist/cjs/{show-5c75df45.js.map → show-4d503b74.js.map} +1 -1
- package/dist/cjs/{suggestions-da772f6b.js → suggestions-8383373f.js} +1 -1
- package/dist/cjs/{suggestions-da772f6b.js.map → suggestions-8383373f.js.map} +1 -1
- package/dist/cjs/{tab-index-30def616.js → tab-index-b044abf3.js} +1 -1
- package/dist/cjs/{tab-index-30def616.js.map → tab-index-b044abf3.js.map} +1 -1
- package/dist/cjs/{tooltip-align-18038058.js → tooltip-align-225e3b1a.js} +1 -1
- package/dist/cjs/{tooltip-align-18038058.js.map → tooltip-align-225e3b1a.js.map} +1 -1
- package/dist/cjs/validation-63f8677e.js +4 -0
- package/dist/cjs/{validation-5c985b0b.js.map → validation-63f8677e.js.map} +1 -1
- package/dist/cjs/{validation-1a9f106c.js → validation-7e5c56e4.js} +1 -1
- package/dist/cjs/{validation-1a9f106c.js.map → validation-7e5c56e4.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/component14.js +1 -1
- package/dist/components/component14.js.map +1 -1
- package/dist/components/component15.js +1 -1
- package/dist/components/component15.js.map +1 -1
- package/dist/components/component16.js +1 -1
- package/dist/components/component16.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/component8.js +1 -1
- package/dist/components/component8.js.map +1 -1
- package/dist/components/controller2.js +1 -1
- package/dist/components/controller2.js.map +1 -1
- package/dist/components/kol-abbr.js +1 -1
- package/dist/components/kol-abbr.js.map +1 -1
- package/dist/components/kol-accordion.js +1 -1
- package/dist/components/kol-accordion.js.map +1 -1
- package/dist/components/kol-avatar.js +1 -1
- package/dist/components/kol-avatar.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-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-form.js.map +1 -1
- package/dist/components/kol-heading.js +1 -1
- package/dist/components/kol-heading.js.map +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-number.js +1 -1
- package/dist/components/kol-input-number.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-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-popover-wc.js +1 -1
- package/dist/components/kol-popover-wc.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-split-button.js +1 -1
- package/dist/components/kol-split-button.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/shadow3.js +1 -1
- package/dist/components/shadow3.js.map +1 -1
- package/dist/esm/{a11y.tipps-f7f7cb4b.js → a11y.tipps-b5477bd5.js} +1 -1
- package/dist/esm/{a11y.tipps-f7f7cb4b.js.map → a11y.tipps-b5477bd5.js.map} +1 -1
- package/dist/esm/{align-e436d1e2.js → align-4b5623a0.js} +1 -1
- package/dist/esm/{align-e436d1e2.js.map → align-4b5623a0.js.map} +1 -1
- package/dist/esm/{alignment-e13116c6.js → alignment-e19b28a7.js} +1 -1
- package/dist/esm/{alignment-e13116c6.js.map → alignment-e19b28a7.js.map} +1 -1
- package/dist/esm/{app-globals-7519e708.js → app-globals-951ab4fc.js} +1 -1
- package/dist/esm/{app-globals-7519e708.js.map → app-globals-951ab4fc.js.map} +1 -1
- package/dist/esm/{aria-current-f3326e61.js → aria-current-ad7fd986.js} +1 -1
- package/dist/esm/{aria-current-f3326e61.js.map → aria-current-ad7fd986.js.map} +1 -1
- package/dist/esm/associated.controller-700f38ae.js +4 -0
- package/dist/esm/associated.controller-700f38ae.js.map +1 -0
- package/dist/esm/{color-d3534e8f.js → color-ea1fcf50.js} +1 -1
- package/dist/esm/{color-d3534e8f.js.map → color-ea1fcf50.js.map} +1 -1
- package/dist/esm/{controller-2ad6050d.js → controller-167b1804.js} +1 -1
- package/dist/esm/{controller-2ad6050d.js.map → controller-167b1804.js.map} +1 -1
- package/dist/esm/{controller-499f700d.js → controller-3adef2c5.js} +1 -1
- package/dist/esm/{controller-499f700d.js.map → controller-3adef2c5.js.map} +1 -1
- package/dist/esm/{controller-1e428fb8.js → controller-487bbb84.js} +1 -1
- package/dist/esm/{controller-1e428fb8.js.map → controller-487bbb84.js.map} +1 -1
- package/dist/esm/controller-96fa0d66.js +4 -0
- package/dist/esm/controller-96fa0d66.js.map +1 -0
- package/dist/esm/{controller-9a71a38b.js → controller-972d368d.js} +1 -1
- package/dist/esm/controller-972d368d.js.map +1 -0
- package/dist/esm/{controller-icon-d56caaee.js → controller-icon-81c1d3ba.js} +1 -1
- package/dist/esm/{controller-icon-d56caaee.js.map → controller-icon-81c1d3ba.js.map} +1 -1
- package/dist/esm/{custom-class-4ff3aabb.js → custom-class-6b2f969c.js} +1 -1
- package/dist/esm/{custom-class-4ff3aabb.js.map → custom-class-6b2f969c.js.map} +1 -1
- package/dist/esm/{dev.utils-c9e7cb5f.js → dev.utils-232c068c.js} +1 -1
- package/dist/esm/{dev.utils-c9e7cb5f.js.map → dev.utils-232c068c.js.map} +1 -1
- package/dist/esm/{devtools-1f25d9bc.js → devtools-daa1a10e.js} +1 -1
- package/dist/esm/{devtools-1f25d9bc.js.map → devtools-daa1a10e.js.map} +1 -1
- package/dist/esm/form-field-msg-ddc954ef.js +4 -0
- package/dist/esm/form-field-msg-ddc954ef.js.map +1 -0
- package/dist/esm/{has-closer-f65d23a4.js → has-closer-5abbbc80.js} +1 -1
- package/dist/esm/{has-closer-f65d23a4.js.map → has-closer-5abbbc80.js.map} +1 -1
- package/dist/esm/{hide-label-1ba311ef.js → hide-label-ff8dee89.js} +1 -1
- package/dist/esm/{hide-label-1ba311ef.js.map → hide-label-ff8dee89.js.map} +1 -1
- package/dist/esm/{i18n-3c3ea069.js → i18n-e70e3fa4.js} +1 -1
- package/dist/esm/{i18n-3c3ea069.js.map → i18n-e70e3fa4.js.map} +1 -1
- package/dist/esm/{icons-40165657.js → icons-d16b918d.js} +1 -1
- package/dist/esm/{icons-40165657.js.map → icons-d16b918d.js.map} +1 -1
- package/dist/esm/{image-source-c4a24baa.js → image-source-27086675.js} +1 -1
- package/dist/esm/{image-source-c4a24baa.js.map → image-source-27086675.js.map} +1 -1
- package/dist/esm/index-0b7aa54b.js +1 -2
- package/dist/esm/{index-d354dce9.js → index-6f37dccf.js} +1 -1
- package/dist/esm/{index-d354dce9.js.map → index-6f37dccf.js.map} +1 -1
- 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-wc_3.entry.js +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-avatar-wc.entry.js +1 -1
- package/dist/esm/kol-avatar.entry.js +1 -1
- package/dist/esm/kol-avatar.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.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-form.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-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-input.entry.js +1 -1
- package/dist/esm/kol-input.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.entry.js +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-popover-wc.entry.js +1 -1
- package/dist/esm/kol-popover-wc.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-wc_2.entry.js +1 -1
- package/dist/esm/kol-span-wc_2.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-split-button.entry.js +1 -1
- package/dist/esm/kol-split-button.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-container.entry.js +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-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-f44203be.js → label-00203940.js} +1 -1
- package/dist/esm/{label-f44203be.js.map → label-00203940.js.map} +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{open-1698f8a8.js → open-4a5d7b3b.js} +1 -1
- package/dist/esm/{open-1698f8a8.js.map → open-4a5d7b3b.js.map} +1 -1
- package/dist/esm/{prop.validators-8b68b7ca.js → prop.validators-a73a5d11.js} +1 -1
- package/dist/esm/{prop.validators-8b68b7ca.js.map → prop.validators-a73a5d11.js.map} +1 -1
- package/dist/esm/{rows-02006071.js → rows-9d616b00.js} +1 -1
- package/dist/esm/{rows-02006071.js.map → rows-9d616b00.js.map} +1 -1
- package/dist/esm/{show-7433e50e.js → show-9954c9fd.js} +1 -1
- package/dist/esm/{show-7433e50e.js.map → show-9954c9fd.js.map} +1 -1
- package/dist/esm/{suggestions-4d994e8e.js → suggestions-ea95c2ca.js} +1 -1
- package/dist/esm/{suggestions-4d994e8e.js.map → suggestions-ea95c2ca.js.map} +1 -1
- package/dist/esm/{tab-index-468d318a.js → tab-index-bfaa121e.js} +1 -1
- package/dist/esm/{tab-index-468d318a.js.map → tab-index-bfaa121e.js.map} +1 -1
- package/dist/esm/{tooltip-align-8aa08dcc.js → tooltip-align-483a9b9c.js} +1 -1
- package/dist/esm/{tooltip-align-8aa08dcc.js.map → tooltip-align-483a9b9c.js.map} +1 -1
- package/dist/esm/validation-07a7b565.js +4 -0
- package/dist/esm/{validation-3165bf25.js.map → validation-07a7b565.js.map} +1 -1
- package/dist/esm/validation-c75d7638.js +4 -0
- package/dist/esm/{validation-ce725c92.js.map → validation-c75d7638.js.map} +1 -1
- package/dist/kolibri/{a11y.tipps-f7f7cb4b.js → a11y.tipps-b5477bd5.js} +1 -1
- package/dist/kolibri/align-4b5623a0.js +4 -0
- package/dist/kolibri/alignment-e19b28a7.js +4 -0
- package/dist/kolibri/app-globals-951ab4fc.js +4 -0
- package/dist/kolibri/{aria-current-f3326e61.js → aria-current-ad7fd986.js} +1 -1
- package/dist/kolibri/associated.controller-700f38ae.js +4 -0
- package/dist/kolibri/associated.controller-700f38ae.js.map +1 -0
- package/dist/kolibri/{color-d3534e8f.js → color-ea1fcf50.js} +1 -1
- package/dist/kolibri/{controller-2ad6050d.js → controller-167b1804.js} +1 -1
- package/dist/kolibri/{controller-499f700d.js → controller-3adef2c5.js} +1 -1
- package/dist/kolibri/{controller-1e428fb8.js → controller-487bbb84.js} +1 -1
- package/dist/kolibri/controller-96fa0d66.js +4 -0
- package/dist/kolibri/controller-96fa0d66.js.map +1 -0
- package/dist/kolibri/{controller-9a71a38b.js → controller-972d368d.js} +1 -1
- package/dist/kolibri/controller-972d368d.js.map +1 -0
- package/dist/kolibri/{controller-icon-d56caaee.js → controller-icon-81c1d3ba.js} +1 -1
- package/dist/kolibri/{custom-class-4ff3aabb.js → custom-class-6b2f969c.js} +1 -1
- package/dist/kolibri/{dev.utils-c9e7cb5f.js → dev.utils-232c068c.js} +1 -1
- package/dist/kolibri/{dev.utils-c9e7cb5f.js.map → dev.utils-232c068c.js.map} +1 -1
- package/dist/kolibri/{devtools-1f25d9bc.js → devtools-daa1a10e.js} +1 -1
- package/dist/kolibri/form-field-msg-ddc954ef.js +4 -0
- package/dist/kolibri/form-field-msg-ddc954ef.js.map +1 -0
- package/dist/kolibri/has-closer-5abbbc80.js +4 -0
- package/dist/kolibri/hide-label-ff8dee89.js +4 -0
- package/dist/kolibri/{i18n-3c3ea069.js → i18n-e70e3fa4.js} +1 -1
- package/dist/kolibri/{icons-40165657.js → icons-d16b918d.js} +1 -1
- package/dist/kolibri/image-source-27086675.js +4 -0
- package/dist/kolibri/{index-d354dce9.js → index-6f37dccf.js} +1 -1
- 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-wc_3.entry.js +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-avatar-wc.entry.js +1 -1
- package/dist/kolibri/kol-avatar.entry.js +1 -1
- package/dist/kolibri/kol-avatar.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.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-form.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-image.entry.js +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-input.entry.js +1 -1
- package/dist/kolibri/kol-input.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.entry.js +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-popover-wc.entry.js +1 -1
- package/dist/kolibri/kol-popover-wc.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-wc_2.entry.js +1 -1
- package/dist/kolibri/kol-span-wc_2.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-split-button.entry.js +1 -1
- package/dist/kolibri/kol-split-button.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-container.entry.js +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-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-00203940.js +4 -0
- package/dist/kolibri/open-4a5d7b3b.js +4 -0
- package/dist/kolibri/{open-1698f8a8.js.map → open-4a5d7b3b.js.map} +1 -1
- package/dist/kolibri/{prop.validators-8b68b7ca.js → prop.validators-a73a5d11.js} +1 -1
- package/dist/kolibri/rows-9d616b00.js +4 -0
- package/dist/kolibri/show-9954c9fd.js +4 -0
- package/dist/kolibri/{show-7433e50e.js.map → show-9954c9fd.js.map} +1 -1
- package/dist/kolibri/{suggestions-4d994e8e.js → suggestions-ea95c2ca.js} +1 -1
- package/dist/kolibri/tab-index-bfaa121e.js +4 -0
- package/dist/kolibri/{tab-index-468d318a.js.map → tab-index-bfaa121e.js.map} +1 -1
- package/dist/kolibri/tooltip-align-483a9b9c.js +4 -0
- package/dist/kolibri/validation-07a7b565.js +4 -0
- package/dist/kolibri/{validation-ce725c92.js → validation-c75d7638.js} +1 -1
- package/dist/types/components/@shared/form-field-msg.d.ts +12 -0
- package/dist/types/components/form/component.d.ts +2 -0
- package/dist/types/components/input-radio/controller.d.ts +1 -0
- package/dist/types/components/select/controller.d.ts +1 -0
- package/package.json +1 -1
- package/dist/cjs/align-03606e34.js +0 -4
- package/dist/cjs/aria-current-20486eec.js +0 -4
- package/dist/cjs/associated.controller-db818ffb.js +0 -4
- package/dist/cjs/associated.controller-db818ffb.js.map +0 -1
- package/dist/cjs/controller-8524aad3.js +0 -4
- package/dist/cjs/controller-8524aad3.js.map +0 -1
- package/dist/cjs/controller-a4327ecf.js +0 -4
- package/dist/cjs/controller-a4327ecf.js.map +0 -1
- package/dist/cjs/has-closer-4075bcde.js +0 -4
- package/dist/cjs/hide-label-92395355.js +0 -4
- package/dist/cjs/image-source-f555dbf3.js +0 -4
- package/dist/cjs/open-d3d157ce.js +0 -4
- package/dist/cjs/rows-852b9174.js +0 -4
- package/dist/cjs/show-5c75df45.js +0 -4
- package/dist/cjs/validation-5c985b0b.js +0 -4
- package/dist/esm/associated.controller-c7add452.js +0 -4
- package/dist/esm/associated.controller-c7add452.js.map +0 -1
- package/dist/esm/controller-4cb839cd.js +0 -4
- package/dist/esm/controller-4cb839cd.js.map +0 -1
- package/dist/esm/controller-9a71a38b.js.map +0 -1
- package/dist/esm/validation-3165bf25.js +0 -4
- package/dist/esm/validation-ce725c92.js +0 -4
- package/dist/kolibri/align-e436d1e2.js +0 -4
- package/dist/kolibri/alignment-e13116c6.js +0 -4
- package/dist/kolibri/app-globals-7519e708.js +0 -4
- package/dist/kolibri/associated.controller-c7add452.js +0 -4
- package/dist/kolibri/associated.controller-c7add452.js.map +0 -1
- package/dist/kolibri/controller-4cb839cd.js +0 -4
- package/dist/kolibri/controller-4cb839cd.js.map +0 -1
- package/dist/kolibri/controller-9a71a38b.js.map +0 -1
- package/dist/kolibri/has-closer-f65d23a4.js +0 -4
- package/dist/kolibri/hide-label-1ba311ef.js +0 -4
- package/dist/kolibri/image-source-c4a24baa.js +0 -4
- package/dist/kolibri/label-f44203be.js +0 -4
- package/dist/kolibri/open-1698f8a8.js +0 -4
- package/dist/kolibri/rows-02006071.js +0 -4
- package/dist/kolibri/show-7433e50e.js +0 -4
- package/dist/kolibri/tab-index-468d318a.js +0 -4
- package/dist/kolibri/tooltip-align-8aa08dcc.js +0 -4
- package/dist/kolibri/validation-3165bf25.js +0 -4
- /package/dist/kolibri/{a11y.tipps-f7f7cb4b.js.map → a11y.tipps-b5477bd5.js.map} +0 -0
- /package/dist/kolibri/{align-e436d1e2.js.map → align-4b5623a0.js.map} +0 -0
- /package/dist/kolibri/{alignment-e13116c6.js.map → alignment-e19b28a7.js.map} +0 -0
- /package/dist/kolibri/{app-globals-7519e708.js.map → app-globals-951ab4fc.js.map} +0 -0
- /package/dist/kolibri/{aria-current-f3326e61.js.map → aria-current-ad7fd986.js.map} +0 -0
- /package/dist/kolibri/{color-d3534e8f.js.map → color-ea1fcf50.js.map} +0 -0
- /package/dist/kolibri/{controller-2ad6050d.js.map → controller-167b1804.js.map} +0 -0
- /package/dist/kolibri/{controller-499f700d.js.map → controller-3adef2c5.js.map} +0 -0
- /package/dist/kolibri/{controller-1e428fb8.js.map → controller-487bbb84.js.map} +0 -0
- /package/dist/kolibri/{controller-icon-d56caaee.js.map → controller-icon-81c1d3ba.js.map} +0 -0
- /package/dist/kolibri/{custom-class-4ff3aabb.js.map → custom-class-6b2f969c.js.map} +0 -0
- /package/dist/kolibri/{devtools-1f25d9bc.js.map → devtools-daa1a10e.js.map} +0 -0
- /package/dist/kolibri/{has-closer-f65d23a4.js.map → has-closer-5abbbc80.js.map} +0 -0
- /package/dist/kolibri/{hide-label-1ba311ef.js.map → hide-label-ff8dee89.js.map} +0 -0
- /package/dist/kolibri/{i18n-3c3ea069.js.map → i18n-e70e3fa4.js.map} +0 -0
- /package/dist/kolibri/{icons-40165657.js.map → icons-d16b918d.js.map} +0 -0
- /package/dist/kolibri/{image-source-c4a24baa.js.map → image-source-27086675.js.map} +0 -0
- /package/dist/kolibri/{index-d354dce9.js.map → index-6f37dccf.js.map} +0 -0
- /package/dist/kolibri/{label-f44203be.js.map → label-00203940.js.map} +0 -0
- /package/dist/kolibri/{prop.validators-8b68b7ca.js.map → prop.validators-a73a5d11.js.map} +0 -0
- /package/dist/kolibri/{rows-02006071.js.map → rows-9d616b00.js.map} +0 -0
- /package/dist/kolibri/{suggestions-4d994e8e.js.map → suggestions-ea95c2ca.js.map} +0 -0
- /package/dist/kolibri/{tooltip-align-8aa08dcc.js.map → tooltip-align-483a9b9c.js.map} +0 -0
- /package/dist/kolibri/{validation-3165bf25.js.map → validation-07a7b565.js.map} +0 -0
- /package/dist/kolibri/{validation-ce725c92.js.map → validation-c75d7638.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"controller-8524aad3.js","mappings":"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","names":["hasEnoughReadableChars","containsOnlyNumbers","a11yHint","watchJsonArrayString","watchBoolean","InputController","watchValidator","mapString2Unknown","setState","STATE_CHANGE_EVENT"],"sources":["src/utils/validators/options.ts","src/types/props/options.ts","src/types/props/required.ts","src/components/input-radio/controller.ts"],"sourcesContent":["import { Optgroup, SelectOption } from '../../types/input/types';\nimport { containsOnlyNumbers, hasEnoughReadableChars } from '../../types/props/label';\nimport { a11yHint } from '../a11y.tipps';\n\nexport const validateInputSelectOptions = <T>(option: SelectOption<T>): boolean => {\n\tif (typeof option === 'object' && option !== null) {\n\t\tif (typeof option.label === 'string' && option.label.length > 0) {\n\t\t\toption.disabled = option.disabled === true;\n\t\t\toption.label = `${option.label}`.trim();\n\t\t\tif (hasEnoughReadableChars(option.label, 3) === false && containsOnlyNumbers(option.label) === false) {\n\t\t\t\ta11yHint(\n\t\t\t\t\t`Ein abweichendes Aria-Label (${option.label}) ist nicht barrierefrei. Ein abweichendes Aria-Label sollte aus mindestens drei lesbaren Zeichen bestehen.`\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (Array.isArray((option as Optgroup<T>).options)) {\n\t\t\t\treturn (\n\t\t\t\t\t(option as Optgroup<T>).options.find((item) => {\n\t\t\t\t\t\treturn validateInputSelectOptions(item) === false;\n\t\t\t\t\t}) === undefined\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn true;\n\t\t} else if (typeof option.label === 'number') {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n","import type { Generic } from 'adopted-style-sheets';\n\nimport { watchJsonArrayString, WatchOptions } from '../../utils/prop.validators';\nimport { validateInputSelectOptions } from '../../utils/validators/options';\nimport { Stringified } from '../common';\nimport { Optgroup, Option } from '../input/types';\nimport { W3CInputValue } from '../w3c';\n\n/* types */\n\nexport type OptionsPropType = Stringified<Option<W3CInputValue>[]>;\nexport type OptionsWithOptgroupPropType = Stringified<(Option<W3CInputValue> | Optgroup<W3CInputValue>)[]>;\n\n/**\n * Options the user can choose from.\n */\nexport type PropOptions = {\n\toptions: OptionsPropType;\n};\n\n/**\n * Options the user can choose from, also supporting Optgroup.\n */\nexport type PropOptionsWithOptgroup = {\n\toptions: OptionsWithOptgroupPropType;\n};\n\n/* validators */\n\nexport const validateOptions = (component: Generic.Element.Component, value: OptionsPropType | undefined, options: WatchOptions = {}): void => {\n\twatchJsonArrayString(\n\t\tcomponent,\n\t\t'_options',\n\t\t(item: Option<W3CInputValue>) => typeof item === 'object' && item !== null && typeof item.label === 'string' && item.label.length > 0,\n\t\tvalue,\n\t\tundefined,\n\t\toptions\n\t);\n};\n\nexport const validateOptionsWithOptgroup = (\n\tcomponent: Generic.Element.Component,\n\tvalue: OptionsWithOptgroupPropType | undefined,\n\toptions: WatchOptions = {}\n) => {\n\twatchJsonArrayString(component, '_options', validateInputSelectOptions, value, undefined, options);\n};\n","import type { Generic } from 'adopted-style-sheets';\n\nimport { watchBoolean } from '../../utils/prop.validators';\n\n/* types */\ntype RequiredPropType = boolean;\n\n/**\n * Makes the input element required.\n */\nexport type PropRequired = {\n\trequired: RequiredPropType;\n};\n\n/* validator */\nexport const validateRequired = (component: Generic.Element.Component, value?: RequiredPropType): void => {\n\twatchBoolean(component, '_required', value);\n};\n","import type { Generic } from 'adopted-style-sheets';\n\nimport { Stringified } from '../../types/common';\nimport { Optgroup, Option, SelectOption } from '../../types/input/types';\nimport { Orientation } from '../../types/orientation';\nimport { PropLabelWithExpertSlot } from '../../types/props/label';\nimport { OptionsPropType, validateOptions } from '../../types/props/options';\nimport { validateRequired } from '../../types/props/required';\nimport { StencilUnknown } from '../../types/unknown';\nimport { W3CInputValue } from '../../types/w3c';\nimport { mapString2Unknown, setState, watchValidator } from '../../utils/prop.validators';\nimport { STATE_CHANGE_EVENT } from '../../utils/validator';\nimport { InputController } from '../@deprecated/input/controller';\nimport { Props, Watches } from './types';\n\nexport const fillKeyOptionMap = <T>(keyOptionMap: Map<string, Option<T>>, options: SelectOption<T>[], preKey = ''): void => {\n\toptions.forEach((option, index) => {\n\t\tconst key = `${preKey}-${index}`;\n\t\tif (typeof option === 'object' && option !== null && typeof option.label === 'string' && option.label.length > 0) {\n\t\t\tif (Array.isArray((option as Optgroup<T>).options)) {\n\t\t\t\tfillKeyOptionMap(keyOptionMap, (option as Optgroup<T>).options, key);\n\t\t\t} else {\n\t\t\t\tkeyOptionMap.set(key, option as Option<T>);\n\t\t\t}\n\t\t}\n\t});\n};\n\ntype RequiredProps = NonNullable<unknown>;\ntype OptionalProps = {\n\trequired: boolean;\n} & PropLabelWithExpertSlot;\ntype InputCheckboxRadioProps = Generic.Element.Members<RequiredProps, OptionalProps>;\ntype InputCheckboxRadioWatches = Generic.Element.Watchers<RequiredProps, OptionalProps>;\n\nexport class InputCheckboxRadioController extends InputController implements InputCheckboxRadioWatches {\n\tprotected readonly component: Generic.Element.Component & InputCheckboxRadioProps;\n\n\tpublic constructor(component: Generic.Element.Component & InputCheckboxRadioProps, name: string, host?: HTMLElement) {\n\t\tsuper(component, name, host);\n\t\tthis.component = component;\n\t}\n\n\tpublic validateRequired(value?: boolean): void {\n\t\tvalidateRequired(this.component, value);\n\t}\n\n\tpublic componentWillLoad(): void {\n\t\tsuper.componentWillLoad();\n\t\tthis.validateRequired(this.component._required);\n\t}\n}\n\nexport class InputRadioController extends InputCheckboxRadioController implements Watches {\n\tprotected readonly component: Generic.Element.Component & Props;\n\tprivate onStateChange!: () => void;\n\tprivate readonly keyOptionMap = new Map<string, Option<W3CInputValue>>();\n\n\tpublic constructor(component: Generic.Element.Component & Props, name: string, host?: HTMLElement) {\n\t\tsuper(component, name, host);\n\t\tthis.component = component;\n\t}\n\n\tpublic readonly getOptionByKey = (key: string): Option<W3CInputValue> | undefined => this.keyOptionMap.get(key);\n\n\tprivate readonly isValueInOptions = (value: unknown, options: Option<W3CInputValue>[]): boolean => {\n\t\treturn options.find((option) => option.value === value) !== undefined;\n\t};\n\n\tprotected readonly beforePatchOptions = (_value: unknown, nextState: Map<string, unknown>): void => {\n\t\tconst options = nextState.has('_options') ? nextState.get('_options') : this.component.state._options;\n\t\tif (Array.isArray(options) && options.length > 0) {\n\t\t\tthis.keyOptionMap.clear();\n\t\t\tfillKeyOptionMap(this.keyOptionMap, options as SelectOption<W3CInputValue>[]);\n\t\t\tconst value = nextState.has('_value') ? nextState.get('_value') : this.component.state._value;\n\t\t\tif (this.isValueInOptions(value, options as Option<W3CInputValue>[]) === false) {\n\t\t\t\tconst newValue = (\n\t\t\t\t\toptions[0] as {\n\t\t\t\t\t\tvalue: string;\n\t\t\t\t\t}\n\t\t\t\t).value;\n\t\t\t\tnextState.set('_value', newValue);\n\t\t\t\tthis.onStateChange();\n\t\t\t}\n\t\t}\n\t};\n\n\tpublic validateOrientation(value?: Orientation): void {\n\t\twatchValidator(\n\t\t\tthis.component,\n\t\t\t'_orientation',\n\t\t\t(value): boolean => value === 'horizontal' || value === 'vertical',\n\t\t\tnew Set(['Orientation {horizontal, vertical}']),\n\t\t\tvalue,\n\t\t\t{\n\t\t\t\tdefaultValue: 'vertical',\n\t\t\t}\n\t\t);\n\t}\n\n\tpublic validateOptions(value?: OptionsPropType): void {\n\t\tvalidateOptions(this.component, value, {\n\t\t\thooks: {\n\t\t\t\tbeforePatch: this.beforePatchOptions,\n\t\t\t},\n\t\t});\n\t}\n\n\tpublic validateValue(value?: Stringified<StencilUnknown>): void {\n\t\tvalue = mapString2Unknown(value);\n\t\tvalue = Array.isArray(value) ? (value[0] as StencilUnknown) : value;\n\t\tsetState(this.component, '_value', value, {\n\t\t\tbeforePatch: this.beforePatchOptions,\n\t\t});\n\t\tthis.setFormAssociatedValue(this.component._value as string);\n\t}\n\n\tpublic componentWillLoad(onChange?: (event: Event) => void): void {\n\t\tsuper.componentWillLoad();\n\n\t\tthis.onStateChange = () => {\n\t\t\tif (typeof onChange === 'function') {\n\t\t\t\tconst timeout = setTimeout(() => {\n\t\t\t\t\tclearTimeout(timeout);\n\t\t\t\t\tonChange(STATE_CHANGE_EVENT);\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\n\t\tthis.validateOrientation(this.component._orientation);\n\t\tthis.validateOptions(this.component._options || this.component._list);\n\t\tthis.validateValue(this.component._value);\n\t}\n}\n"],"version":3}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* KoliBri - The accessible HTML-Standard
|
|
3
|
-
*/
|
|
4
|
-
"use strict";const a11y_tipps=require("./a11y.tipps-bdf67538.js"),dev_utils=require("./dev.utils-44125020.js"),prop_validators=require("./prop.validators-9cb46e7c.js"),searchFormElement=e=>{for(dev_utils.getExperimentalMode()&&(a11y_tipps.devHint("↓ Search form element start."),console.log(e));e instanceof HTMLElement&&"FORM"!==e.tagName&&"KOL-FORM"!==e.tagName;)e=e.parentElement instanceof HTMLElement?e.parentElement:e.parentNode instanceof ShadowRoot?e.parentNode.host:null,dev_utils.getExperimentalMode()&&console.log(e);return dev_utils.getExperimentalMode()&&a11y_tipps.devHint("↑ Search form element finished."),e},propagateResetEventToForm=(e={})=>{var t,o;const r=searchFormElement(e.form);if(r instanceof HTMLElement){const e=new Event("reset",{bubbles:!0,cancelable:!0});if("FORM"===r.tagName)prop_validators.setEventTarget(e,r),r.dispatchEvent(e);else if("KOL-FORM"===r.tagName){prop_validators.setEventTarget(e,prop_validators.KoliBriDevHelper.querySelector("form",r));const n=r;"function"==typeof(null===(t=n._on)||void 0===t?void 0:t.onReset)&&(null===(o=n._on)||void 0===o||o.onReset(e))}}},propagateSubmitEventToForm=(e={})=>{var t,o;const r=searchFormElement(e.form);if(r instanceof HTMLElement){const e=new SubmitEvent("submit",{bubbles:!0,cancelable:!0,submitter:r});if("FORM"===r.tagName)prop_validators.setEventTarget(e,r),r.dispatchEvent(e);else if("KOL-FORM"===r.tagName){prop_validators.setEventTarget(e,prop_validators.KoliBriDevHelper.querySelector("form",r));const n=r;"function"==typeof(null===(t=n._on)||void 0===t?void 0:t.onSubmit)&&(null===(o=n._on)||void 0===o||o.onSubmit(e))}}};exports.propagateResetEventToForm=propagateResetEventToForm,exports.propagateSubmitEventToForm=propagateSubmitEventToForm;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"controller-a4327ecf.js","mappings":";;;;;;;;;AAKA,MAAM,iBAAiB,GAAG,CAAC,EAAoC;IAC9D,IAAIA,6BAAmB,EAAE,EAAE;QAC1BC,kBAAO,CAAC,8BAA8B,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;KAChB;IACD,OAAO,EAAE,YAAY,WAAW,IAAI,EAAE,CAAC,OAAO,KAAK,MAAM,IAAI,EAAE,CAAC,OAAO,KAAK,UAAU,EAAE;QACvF,IAAI,EAAE,CAAC,aAAa,YAAY,WAAW,EAAE;YAC5C,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC;SACtB;aAAM,IAAI,EAAE,CAAC,UAAU,YAAY,UAAU,EAAE;YAC/C,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;SACxB;aAAM;YACN,EAAE,GAAG,IAAI,CAAC;SACV;QACD,IAAID,6BAAmB,EAAE,EAAE;YAC1B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SAChB;KACD;IACD,IAAIA,6BAAmB,EAAE,EAAE;QAC1BC,kBAAO,CAAC,iCAAiC,CAAC,CAAC;KAC3C;IACD,OAAO,EAAE,CAAC;AACX,CAAC,CAAC;MAEW,yBAAyB,GAAG,CACxC,UAGI,EAAE;;IAEN,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAI,IAAI,YAAY,WAAW,EAAE;QAChC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE;YAChC,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,IAAI;SAChB,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE;YAC5BC,8BAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC5B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SAC1B;aAAM,IAAI,IAAI,CAAC,OAAO,KAAK,UAAU,EAAE;YACvCA,8BAAc,CAAC,KAAK,EAAEC,gCAAgB,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAoB,CAAC,CAAC;YACvF,MAAM,OAAO,GAAG,IAAa,CAAC;YAC9B,IAAI,QAAO,MAAA,OAAO,CAAC,GAAG,0CAAE,OAAO,CAAA,KAAK,UAAU,EAAE;gBAC/C,QAAO,MAAA,OAAO,CAAC,GAAG,0CAAE,OAAO,CAAC,KAAK,CAAC,CAAA,CAAC;aACnC;SACD;KACD;AACF,EAAE;MAEW,0BAA0B,GAAG,CACzC,UAGI,EAAE;;IAEN,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAI,IAAI,YAAY,WAAW,EAAE;QAChC,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,QAAQ,EAAE;YACvC,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,IAAI;SACf,CAAC,CAAC;QAWH,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE;YAC5BD,8BAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC5B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SAC1B;aAAM,IAAI,IAAI,CAAC,OAAO,KAAK,UAAU,EAAE;YACvCA,8BAAc,CAAC,KAAK,EAAEC,gCAAgB,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAoB,CAAC,CAAC;YACvF,MAAM,OAAO,GAAG,IAAa,CAAC;YAC9B,IAAI,QAAO,MAAA,OAAO,CAAC,GAAG,0CAAE,QAAQ,CAAA,KAAK,UAAU,EAAE;gBAChD,MAAA,OAAO,CAAC,GAAG,0CAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;aAC7B;SACD;KACD;AACF;;;;;","names":["getExperimentalMode","devHint","setEventTarget","KoliBriDevHelper"],"sources":["src/components/form/controller.ts"],"sourcesContent":["import { devHint } from '../../utils/a11y.tipps';\nimport { getExperimentalMode } from '../../utils/dev.utils';\nimport { KoliBriDevHelper, setEventTarget } from '../../utils/prop.validators';\nimport { Props } from './types';\n\nconst searchFormElement = (el?: HTMLElement | ParentNode | null): HTMLElement | ParentNode | null | undefined => {\n\tif (getExperimentalMode()) {\n\t\tdevHint(`↓ Search form element start.`);\n\t\tconsole.log(el);\n\t}\n\twhile (el instanceof HTMLElement && el.tagName !== 'FORM' && el.tagName !== 'KOL-FORM') {\n\t\tif (el.parentElement instanceof HTMLElement) {\n\t\t\tel = el.parentElement;\n\t\t} else if (el.parentNode instanceof ShadowRoot) {\n\t\t\tel = el.parentNode.host;\n\t\t} else {\n\t\t\tel = null;\n\t\t}\n\t\tif (getExperimentalMode()) {\n\t\t\tconsole.log(el);\n\t\t}\n\t}\n\tif (getExperimentalMode()) {\n\t\tdevHint(`↑ Search form element finished.`);\n\t}\n\treturn el;\n};\n\nexport const propagateResetEventToForm = (\n\toptions: {\n\t\tform?: HTMLElement | ParentNode | null;\n\t\tref?: HTMLElement;\n\t} = {}\n): void => {\n\tconst form = searchFormElement(options.form);\n\tif (form instanceof HTMLElement) {\n\t\tconst event = new Event('reset', {\n\t\t\tbubbles: true,\n\t\t\tcancelable: true,\n\t\t});\n\t\tif (form.tagName === 'FORM') {\n\t\t\tsetEventTarget(event, form);\n\t\t\tform.dispatchEvent(event);\n\t\t} else if (form.tagName === 'KOL-FORM') {\n\t\t\tsetEventTarget(event, KoliBriDevHelper.querySelector('form', form) as HTMLFormElement);\n\t\t\tconst kolForm = form as Props;\n\t\t\tif (typeof kolForm._on?.onReset === 'function') {\n\t\t\t\ttypeof kolForm._on?.onReset(event);\n\t\t\t}\n\t\t}\n\t}\n};\n\nexport const propagateSubmitEventToForm = (\n\toptions: {\n\t\tform?: HTMLElement | ParentNode | null;\n\t\tref?: HTMLElement;\n\t} = {}\n): void => {\n\tconst form = searchFormElement(options.form);\n\tif (form instanceof HTMLElement) {\n\t\tconst event = new SubmitEvent('submit', {\n\t\t\tbubbles: true,\n\t\t\tcancelable: true,\n\t\t\tsubmitter: form,\n\t\t});\n\t\t/**\n\t\t * TODO: Wenn Formular-Action (nicht Ajax oder JS) verwendet wird,\n\t\t * dann müssen wir das Event an das HTMLFormElement innerhalb\n\t\t * der HTMLKolFormElements propagieren, wenn kein onSubmit\n\t\t * gesetzt wurde.\n\t\t *\n\t\t * TODO: Form-associated custom elements:\n\t\t * - https://web.dev/more-capable-form-controls/\n\t\t * - https://github.com/public-ui/kolibri/issues/946\n\t\t */\n\t\tif (form.tagName === 'FORM') {\n\t\t\tsetEventTarget(event, form);\n\t\t\tform.dispatchEvent(event);\n\t\t} else if (form.tagName === 'KOL-FORM') {\n\t\t\tsetEventTarget(event, KoliBriDevHelper.querySelector('form', form) as HTMLFormElement);\n\t\t\tconst kolForm = form as Props;\n\t\t\tif (typeof kolForm._on?.onSubmit === 'function') {\n\t\t\t\tkolForm._on?.onSubmit(event);\n\t\t\t}\n\t\t}\n\t}\n};\n"],"version":3}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* KoliBri - The accessible HTML-Standard
|
|
3
|
-
*/
|
|
4
|
-
"use strict";const a11y_tipps=require("./a11y.tipps-bdf67538.js"),prop_validators=require("./prop.validators-9cb46e7c.js"),watchNavLinks=(t,s,a)=>{prop_validators.watchJsonArrayString(s,"_links",(t=>"object"==typeof t&&("string"==typeof t._href||"string"==typeof t._label)),a),a11y_tipps.uiUxHintMillerscheZahl(t,s.state._links.length)};exports.watchNavLinks=watchNavLinks;
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* KoliBri - The accessible HTML-Standard
|
|
3
|
-
*/
|
|
4
|
-
import{d as watchString}from"./prop.validators-8b68b7ca.js";import{d as devHint,h as devWarning}from"./a11y.tipps-f7f7cb4b.js";import{d as getExperimentalMode}from"./dev.utils-c9e7cb5f.js";const validateName=(t,e,i)=>{watchString(t,"_name",e,i)},EXPERIMENTAL_MODE=getExperimentalMode();class AssociatedInputController{constructor(t,e,i){var o,s;if(this.setFormAssociatedValue=t=>{var e;const i=null===(e=this.formAssociated)||void 0===e?void 0:e.getAttribute("name");null!==i&&""!==i||devHint(` The form field (${this.name}) must have a name attribute to be form-associated. Please define the _name attribute.`);const o=this.tryToStringifyValue(t);this.syncValue(t,o,this.formAssociated),this.syncValue(t,o,this.syncToOwnInput)},this.component=t,this.host=this.findHostWithShadowRoot(i),this.name=e,EXPERIMENTAL_MODE){switch(null===(o=this.host)||void 0===o||o.querySelectorAll("input,select,textarea").forEach((t=>{var e;null===(e=this.host)||void 0===e||e.removeChild(t)})),this.name){case"button":this.formAssociated=document.createElement("button");break;case"select":this.formAssociated=document.createElement("select"),this.formAssociated.setAttribute("multiple","");break;case"textarea":this.formAssociated=document.createElement("textarea");break;default:this.formAssociated=document.createElement("input"),this.formAssociated.setAttribute("type","hidden")}this.formAssociated.setAttribute("aria-hidden","true"),this.formAssociated.setAttribute("data-form-associated",""),this.formAssociated.setAttribute("hidden",""),null===(s=this.host)||void 0===s||s.appendChild(this.formAssociated)}}findHostWithShadowRoot(t){for(;null===(null==t?void 0:t.shadowRoot)&&t!==document.body;)(t=null==t?void 0:t.parentNode).host&&(t=t.host);return t}setAttribute(t,e,i){if(EXPERIMENTAL_MODE)try{if("boolean"!=typeof(i="object"==typeof i&&null!==i?JSON.stringify(i):i)&&"number"!=typeof i&&"string"!=typeof i)throw new Error("Invalid value type: "+typeof i);null==e||e.setAttribute(t,`${i}`)}catch(i){null==e||e.removeAttribute(t)}}tryToStringifyValue(t){try{return"object"==typeof t&&null!==t?JSON.stringify(t).toString():null==t?null:t.toString()}catch(t){return devWarning(`The form field raw value is not able to stringify! ${t}`),""}}syncValue(t,e,i){if(i)if("select"===this.name)i.querySelectorAll("option").forEach((t=>{i.removeChild(t)})),Array.isArray(t)&&t.forEach((t=>{const e=this.tryToStringifyValue(t);if("string"==typeof e){const t=document.createElement("option");t.setAttribute("value",e),t.setAttribute("selected",""),i.appendChild(t)}}));else"string"==typeof e?(i.setAttribute("value",e),i.value=e):(i.removeAttribute("value"),i.value="")}validateName(t){validateName(this.component,t,{hooks:{afterPatch:()=>{this.setAttribute("name",this.formAssociated,this.component.state._name)}}}),void 0===t&&devHint("Ein Name am Eingabefeldern oder Schalter ist nicht zwingend erforderlich, kann aber für die Autocomplete-Funktion und für das statische Versenden des Eingabefeldes relevant sein.")}validateSyncValueBySelector(t){if(EXPERIMENTAL_MODE&&"string"==typeof t){const e=document.querySelector(t);e&&(this.syncToOwnInput=e)}}componentWillLoad(){this.validateName(this.component._name),this.validateSyncValueBySelector(this.component._syncValueBySelector)}}export{AssociatedInputController as A};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"associated.controller-c7add452.js","mappings":"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","names":[],"sources":["src/types/props/name.ts","src/components/input-adapter-leanup/associated.controller.ts"],"sourcesContent":["import type { Generic } from 'adopted-style-sheets';\n\nimport { watchString, WatchStringOptions } from '../../utils/prop.validators';\n\n/* types */\nexport type NamePropType = string;\n\n/**\n * Defines the technical name of an input field.\n */\nexport type PropName = {\n\tname: NamePropType;\n};\n\n/* validator */\nexport const validateName = (component: Generic.Element.Component, value?: NamePropType, options?: WatchStringOptions): void => {\n\twatchString(component, '_name', value, options);\n};\n","import type { Generic } from 'adopted-style-sheets';\n\nimport { NamePropType, validateName } from '../../types/props/name';\nimport { PropSyncValueBySelector, SyncValueBySelectorPropType } from '../../types/props/sync-value-by-selector';\nimport { StencilUnknown } from '../../types/unknown';\nimport { devHint, devWarning } from '../../utils/a11y.tipps';\nimport { getExperimentalMode } from '../../utils/dev.utils';\n\nconst EXPERIMENTAL_MODE = getExperimentalMode();\n\ntype RequiredProps = NonNullable<unknown>;\ntype OptionalProps = {\n\tname: string;\n} & PropSyncValueBySelector;\ntype Props = Generic.Element.Members<RequiredProps, OptionalProps>;\ntype Watches = Generic.Element.Watchers<RequiredProps, OptionalProps>;\n\nexport class AssociatedInputController implements Watches {\n\tprotected readonly component: Generic.Element.Component & Props;\n\tprotected readonly name: string;\n\tprotected readonly host?: HTMLElement;\n\n\tpublic readonly formAssociated?: HTMLButtonElement | HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement;\n\tpublic syncToOwnInput?: HTMLButtonElement | HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement;\n\n\tpublic constructor(component: Generic.Element.Component & Props, name: string, host?: HTMLElement) {\n\t\tthis.component = component;\n\t\tthis.host = this.findHostWithShadowRoot(host);\n\t\tthis.name = name;\n\n\t\tif (EXPERIMENTAL_MODE) {\n\t\t\tthis.host?.querySelectorAll('input,select,textarea').forEach((el) => {\n\t\t\t\tthis.host?.removeChild(el);\n\t\t\t});\n\t\t\tswitch (this.name) {\n\t\t\t\tcase 'button':\n\t\t\t\t\tthis.formAssociated = document.createElement('button');\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'select':\n\t\t\t\t\tthis.formAssociated = document.createElement('select');\n\t\t\t\t\tthis.formAssociated.setAttribute('multiple', '');\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'textarea':\n\t\t\t\t\tthis.formAssociated = document.createElement('textarea');\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tthis.formAssociated = document.createElement('input');\n\t\t\t\t\tthis.formAssociated.setAttribute('type', 'hidden');\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tthis.formAssociated.setAttribute('aria-hidden', 'true');\n\t\t\tthis.formAssociated.setAttribute('data-form-associated', '');\n\t\t\tthis.formAssociated.setAttribute('hidden', '');\n\t\t\tthis.host?.appendChild(this.formAssociated);\n\t\t}\n\t}\n\n\t/**\n\t * The associated elements must not reside within the ShadowRoot and must\n\t * reside as children in the host to be recognized by native forms.\n\t */\n\tprivate findHostWithShadowRoot(host?: HTMLElement): HTMLElement | undefined {\n\t\twhile (host?.shadowRoot === null && host !== document.body) {\n\t\t\thost = host?.parentNode as HTMLElement;\n\t\t\tif ((host as unknown as ShadowRoot).host) {\n\t\t\t\thost = (host as unknown as ShadowRoot).host as HTMLElement;\n\t\t\t}\n\t\t}\n\t\treturn host;\n\t}\n\n\tprotected setAttribute(qualifiedName: string, element?: HTMLElement, value?: string | number | boolean) {\n\t\tif (EXPERIMENTAL_MODE) {\n\t\t\ttry {\n\t\t\t\tvalue = typeof value === 'object' && value !== null ? JSON.stringify(value) : value;\n\t\t\t\tif (typeof value === 'boolean' || typeof value === 'number' || typeof value === 'string') {\n\t\t\t\t\telement?.setAttribute(qualifiedName, `${value as string}`);\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(`Invalid value type: ${typeof value}`);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\telement?.removeAttribute(qualifiedName);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * We need to stringify the value, for the setAttribute method.\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/setAttribute\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/attributes\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/attributes#value\n\t *\n\t * TODO: It is possible that the value are a cyclic object value. So we need a custom\n\t * JSON.stringify method from outside to convert it to string.\n\t */\n\tprivate tryToStringifyValue(value: StencilUnknown): string | null {\n\t\ttry {\n\t\t\treturn typeof value === 'object' && value !== null ? JSON.stringify(value).toString() : value === null || value === undefined ? null : value.toString();\n\t\t} catch (e) {\n\t\t\tdevWarning(`The form field raw value is not able to stringify! ${e as string}`);\n\t\t\treturn '';\n\t\t}\n\t}\n\n\t/**\n\t * We try to support native form-associated custom elements.\n\t *\n\t * @see https://github.com/public-ui/kolibri/discussions/2821\n\t */\n\tpublic readonly setFormAssociatedValue = (rawValue: StencilUnknown) => {\n\t\tconst name = this.formAssociated?.getAttribute('name');\n\t\tif (name === null || name === '') {\n\t\t\tdevHint(` The form field (${this.name}) must have a name attribute to be form-associated. Please define the _name attribute.`);\n\t\t}\n\t\tconst strValue = this.tryToStringifyValue(rawValue);\n\t\tthis.syncValue(rawValue, strValue, this.formAssociated);\n\t\tthis.syncValue(rawValue, strValue, this.syncToOwnInput);\n\t};\n\n\tprivate syncValue(\n\t\trawValue: StencilUnknown,\n\t\tstrValue: string | null,\n\t\tassociatedElement?: HTMLButtonElement | HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement\n\t) {\n\t\tif (associatedElement) {\n\t\t\tswitch (this.name) {\n\t\t\t\tcase 'select':\n\t\t\t\t\t(associatedElement as HTMLSelectElement).querySelectorAll('option').forEach((el) => {\n\t\t\t\t\t\t(associatedElement as HTMLSelectElement).removeChild(el);\n\t\t\t\t\t});\n\t\t\t\t\tif (Array.isArray(rawValue)) {\n\t\t\t\t\t\trawValue.forEach((rawValueItem) => {\n\t\t\t\t\t\t\tconst strValueItem = this.tryToStringifyValue(rawValueItem as string);\n\t\t\t\t\t\t\tif (typeof strValueItem === 'string') {\n\t\t\t\t\t\t\t\tconst option = document.createElement('option');\n\t\t\t\t\t\t\t\toption.setAttribute('value', strValueItem);\n\t\t\t\t\t\t\t\toption.setAttribute('selected', '');\n\t\t\t\t\t\t\t\t(associatedElement as HTMLSelectElement).appendChild(option);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tif (typeof strValue === 'string') {\n\t\t\t\t\t\tassociatedElement.setAttribute('value', strValue);\n\t\t\t\t\t\tassociatedElement.value = strValue;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tassociatedElement.removeAttribute('value');\n\t\t\t\t\t\tassociatedElement.value = '';\n\t\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic validateName(value?: NamePropType): void {\n\t\tvalidateName(this.component, value, {\n\t\t\thooks: {\n\t\t\t\tafterPatch: () => {\n\t\t\t\t\tthis.setAttribute('name', this.formAssociated, this.component.state._name as string);\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\t\tif (typeof value === 'undefined') {\n\t\t\tdevHint(\n\t\t\t\t`Ein Name am Eingabefeldern oder Schalter ist nicht zwingend erforderlich, kann aber für die Autocomplete-Funktion und für das statische Versenden des Eingabefeldes relevant sein.`\n\t\t\t);\n\t\t}\n\t}\n\n\tpublic validateSyncValueBySelector(value?: SyncValueBySelectorPropType): void {\n\t\tif (EXPERIMENTAL_MODE && typeof value === 'string') {\n\t\t\tconst input = document.querySelector(value) as HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement;\n\t\t\tif (input /* SSR instanceof HTMLInputElement */) {\n\t\t\t\tthis.syncToOwnInput = input;\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic componentWillLoad(): void {\n\t\tthis.validateName(this.component._name);\n\t\tthis.validateSyncValueBySelector(this.component._syncValueBySelector);\n\t}\n}\n"],"version":3}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* KoliBri - The accessible HTML-Standard
|
|
3
|
-
*/
|
|
4
|
-
import{c as watchJsonArrayString,a as watchBoolean,w as watchValidator,m as mapString2Unknown,s as setState}from"./prop.validators-8b68b7ca.js";import{h as hasEnoughReadableChars,c as containsOnlyNumbers}from"./label-f44203be.js";import{a as a11yHint}from"./a11y.tipps-f7f7cb4b.js";import{S as STATE_CHANGE_EVENT}from"./reuse-d79ab469.js";import{I as InputController}from"./controller-1e428fb8.js";const validateInputSelectOptions=t=>{if("object"==typeof t&&null!==t){if("string"==typeof t.label&&t.label.length>0)return t.disabled=!0===t.disabled,t.label=`${t.label}`.trim(),!1===hasEnoughReadableChars(t.label,3)&&!1===containsOnlyNumbers(t.label)&&a11yHint(`Ein abweichendes Aria-Label (${t.label}) ist nicht barrierefrei. Ein abweichendes Aria-Label sollte aus mindestens drei lesbaren Zeichen bestehen.`),!Array.isArray(t.options)||void 0===t.options.find((t=>!1===validateInputSelectOptions(t)));if("number"==typeof t.label)return!0}return!1},validateOptions=(t,e,o={})=>{watchJsonArrayString(t,"_options",(t=>"object"==typeof t&&null!==t&&"string"==typeof t.label&&t.label.length>0),e,void 0,o)},validateOptionsWithOptgroup=(t,e,o={})=>{watchJsonArrayString(t,"_options",validateInputSelectOptions,e,void 0,o)},validateRequired=(t,e)=>{watchBoolean(t,"_required",e)},fillKeyOptionMap=(t,e,o="")=>{e.forEach(((e,a)=>{const i=`${o}-${a}`;"object"==typeof e&&null!==e&&"string"==typeof e.label&&e.label.length>0&&(Array.isArray(e.options)?fillKeyOptionMap(t,e.options,i):t.set(i,e))}))};class InputCheckboxRadioController extends InputController{constructor(t,e,o){super(t,e,o),this.component=t}validateRequired(t){validateRequired(this.component,t)}componentWillLoad(){super.componentWillLoad(),this.validateRequired(this.component._required)}}class InputRadioController extends InputCheckboxRadioController{constructor(t,e,o){super(t,e,o),this.keyOptionMap=new Map,this.getOptionByKey=t=>this.keyOptionMap.get(t),this.isValueInOptions=(t,e)=>void 0!==e.find((e=>e.value===t)),this.beforePatchOptions=(t,e)=>{const o=e.has("_options")?e.get("_options"):this.component.state._options;if(Array.isArray(o)&&o.length>0){this.keyOptionMap.clear(),fillKeyOptionMap(this.keyOptionMap,o);const t=e.has("_value")?e.get("_value"):this.component.state._value;if(!1===this.isValueInOptions(t,o)){const t=o[0].value;e.set("_value",t),this.onStateChange()}}},this.component=t}validateOrientation(t){watchValidator(this.component,"_orientation",(t=>"horizontal"===t||"vertical"===t),new Set(["Orientation {horizontal, vertical}"]),t,{defaultValue:"vertical"})}validateOptions(t){validateOptions(this.component,t,{hooks:{beforePatch:this.beforePatchOptions}})}validateValue(t){t=mapString2Unknown(t),t=Array.isArray(t)?t[0]:t,setState(this.component,"_value",t,{beforePatch:this.beforePatchOptions}),this.setFormAssociatedValue(this.component._value)}componentWillLoad(t){super.componentWillLoad(),this.onStateChange=()=>{if("function"==typeof t){const e=setTimeout((()=>{clearTimeout(e),t(STATE_CHANGE_EVENT)}))}},this.validateOrientation(this.component._orientation),this.validateOptions(this.component._options||this.component._list),this.validateValue(this.component._value)}}export{InputCheckboxRadioController as I,InputRadioController as a,fillKeyOptionMap as f,validateOptionsWithOptgroup as v};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"controller-4cb839cd.js","mappings":"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","names":[],"sources":["src/utils/validators/options.ts","src/types/props/options.ts","src/types/props/required.ts","src/components/input-radio/controller.ts"],"sourcesContent":["import { Optgroup, SelectOption } from '../../types/input/types';\nimport { containsOnlyNumbers, hasEnoughReadableChars } from '../../types/props/label';\nimport { a11yHint } from '../a11y.tipps';\n\nexport const validateInputSelectOptions = <T>(option: SelectOption<T>): boolean => {\n\tif (typeof option === 'object' && option !== null) {\n\t\tif (typeof option.label === 'string' && option.label.length > 0) {\n\t\t\toption.disabled = option.disabled === true;\n\t\t\toption.label = `${option.label}`.trim();\n\t\t\tif (hasEnoughReadableChars(option.label, 3) === false && containsOnlyNumbers(option.label) === false) {\n\t\t\t\ta11yHint(\n\t\t\t\t\t`Ein abweichendes Aria-Label (${option.label}) ist nicht barrierefrei. Ein abweichendes Aria-Label sollte aus mindestens drei lesbaren Zeichen bestehen.`\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (Array.isArray((option as Optgroup<T>).options)) {\n\t\t\t\treturn (\n\t\t\t\t\t(option as Optgroup<T>).options.find((item) => {\n\t\t\t\t\t\treturn validateInputSelectOptions(item) === false;\n\t\t\t\t\t}) === undefined\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn true;\n\t\t} else if (typeof option.label === 'number') {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n","import type { Generic } from 'adopted-style-sheets';\n\nimport { watchJsonArrayString, WatchOptions } from '../../utils/prop.validators';\nimport { validateInputSelectOptions } from '../../utils/validators/options';\nimport { Stringified } from '../common';\nimport { Optgroup, Option } from '../input/types';\nimport { W3CInputValue } from '../w3c';\n\n/* types */\n\nexport type OptionsPropType = Stringified<Option<W3CInputValue>[]>;\nexport type OptionsWithOptgroupPropType = Stringified<(Option<W3CInputValue> | Optgroup<W3CInputValue>)[]>;\n\n/**\n * Options the user can choose from.\n */\nexport type PropOptions = {\n\toptions: OptionsPropType;\n};\n\n/**\n * Options the user can choose from, also supporting Optgroup.\n */\nexport type PropOptionsWithOptgroup = {\n\toptions: OptionsWithOptgroupPropType;\n};\n\n/* validators */\n\nexport const validateOptions = (component: Generic.Element.Component, value: OptionsPropType | undefined, options: WatchOptions = {}): void => {\n\twatchJsonArrayString(\n\t\tcomponent,\n\t\t'_options',\n\t\t(item: Option<W3CInputValue>) => typeof item === 'object' && item !== null && typeof item.label === 'string' && item.label.length > 0,\n\t\tvalue,\n\t\tundefined,\n\t\toptions\n\t);\n};\n\nexport const validateOptionsWithOptgroup = (\n\tcomponent: Generic.Element.Component,\n\tvalue: OptionsWithOptgroupPropType | undefined,\n\toptions: WatchOptions = {}\n) => {\n\twatchJsonArrayString(component, '_options', validateInputSelectOptions, value, undefined, options);\n};\n","import type { Generic } from 'adopted-style-sheets';\n\nimport { watchBoolean } from '../../utils/prop.validators';\n\n/* types */\ntype RequiredPropType = boolean;\n\n/**\n * Makes the input element required.\n */\nexport type PropRequired = {\n\trequired: RequiredPropType;\n};\n\n/* validator */\nexport const validateRequired = (component: Generic.Element.Component, value?: RequiredPropType): void => {\n\twatchBoolean(component, '_required', value);\n};\n","import type { Generic } from 'adopted-style-sheets';\n\nimport { Stringified } from '../../types/common';\nimport { Optgroup, Option, SelectOption } from '../../types/input/types';\nimport { Orientation } from '../../types/orientation';\nimport { PropLabelWithExpertSlot } from '../../types/props/label';\nimport { OptionsPropType, validateOptions } from '../../types/props/options';\nimport { validateRequired } from '../../types/props/required';\nimport { StencilUnknown } from '../../types/unknown';\nimport { W3CInputValue } from '../../types/w3c';\nimport { mapString2Unknown, setState, watchValidator } from '../../utils/prop.validators';\nimport { STATE_CHANGE_EVENT } from '../../utils/validator';\nimport { InputController } from '../@deprecated/input/controller';\nimport { Props, Watches } from './types';\n\nexport const fillKeyOptionMap = <T>(keyOptionMap: Map<string, Option<T>>, options: SelectOption<T>[], preKey = ''): void => {\n\toptions.forEach((option, index) => {\n\t\tconst key = `${preKey}-${index}`;\n\t\tif (typeof option === 'object' && option !== null && typeof option.label === 'string' && option.label.length > 0) {\n\t\t\tif (Array.isArray((option as Optgroup<T>).options)) {\n\t\t\t\tfillKeyOptionMap(keyOptionMap, (option as Optgroup<T>).options, key);\n\t\t\t} else {\n\t\t\t\tkeyOptionMap.set(key, option as Option<T>);\n\t\t\t}\n\t\t}\n\t});\n};\n\ntype RequiredProps = NonNullable<unknown>;\ntype OptionalProps = {\n\trequired: boolean;\n} & PropLabelWithExpertSlot;\ntype InputCheckboxRadioProps = Generic.Element.Members<RequiredProps, OptionalProps>;\ntype InputCheckboxRadioWatches = Generic.Element.Watchers<RequiredProps, OptionalProps>;\n\nexport class InputCheckboxRadioController extends InputController implements InputCheckboxRadioWatches {\n\tprotected readonly component: Generic.Element.Component & InputCheckboxRadioProps;\n\n\tpublic constructor(component: Generic.Element.Component & InputCheckboxRadioProps, name: string, host?: HTMLElement) {\n\t\tsuper(component, name, host);\n\t\tthis.component = component;\n\t}\n\n\tpublic validateRequired(value?: boolean): void {\n\t\tvalidateRequired(this.component, value);\n\t}\n\n\tpublic componentWillLoad(): void {\n\t\tsuper.componentWillLoad();\n\t\tthis.validateRequired(this.component._required);\n\t}\n}\n\nexport class InputRadioController extends InputCheckboxRadioController implements Watches {\n\tprotected readonly component: Generic.Element.Component & Props;\n\tprivate onStateChange!: () => void;\n\tprivate readonly keyOptionMap = new Map<string, Option<W3CInputValue>>();\n\n\tpublic constructor(component: Generic.Element.Component & Props, name: string, host?: HTMLElement) {\n\t\tsuper(component, name, host);\n\t\tthis.component = component;\n\t}\n\n\tpublic readonly getOptionByKey = (key: string): Option<W3CInputValue> | undefined => this.keyOptionMap.get(key);\n\n\tprivate readonly isValueInOptions = (value: unknown, options: Option<W3CInputValue>[]): boolean => {\n\t\treturn options.find((option) => option.value === value) !== undefined;\n\t};\n\n\tprotected readonly beforePatchOptions = (_value: unknown, nextState: Map<string, unknown>): void => {\n\t\tconst options = nextState.has('_options') ? nextState.get('_options') : this.component.state._options;\n\t\tif (Array.isArray(options) && options.length > 0) {\n\t\t\tthis.keyOptionMap.clear();\n\t\t\tfillKeyOptionMap(this.keyOptionMap, options as SelectOption<W3CInputValue>[]);\n\t\t\tconst value = nextState.has('_value') ? nextState.get('_value') : this.component.state._value;\n\t\t\tif (this.isValueInOptions(value, options as Option<W3CInputValue>[]) === false) {\n\t\t\t\tconst newValue = (\n\t\t\t\t\toptions[0] as {\n\t\t\t\t\t\tvalue: string;\n\t\t\t\t\t}\n\t\t\t\t).value;\n\t\t\t\tnextState.set('_value', newValue);\n\t\t\t\tthis.onStateChange();\n\t\t\t}\n\t\t}\n\t};\n\n\tpublic validateOrientation(value?: Orientation): void {\n\t\twatchValidator(\n\t\t\tthis.component,\n\t\t\t'_orientation',\n\t\t\t(value): boolean => value === 'horizontal' || value === 'vertical',\n\t\t\tnew Set(['Orientation {horizontal, vertical}']),\n\t\t\tvalue,\n\t\t\t{\n\t\t\t\tdefaultValue: 'vertical',\n\t\t\t}\n\t\t);\n\t}\n\n\tpublic validateOptions(value?: OptionsPropType): void {\n\t\tvalidateOptions(this.component, value, {\n\t\t\thooks: {\n\t\t\t\tbeforePatch: this.beforePatchOptions,\n\t\t\t},\n\t\t});\n\t}\n\n\tpublic validateValue(value?: Stringified<StencilUnknown>): void {\n\t\tvalue = mapString2Unknown(value);\n\t\tvalue = Array.isArray(value) ? (value[0] as StencilUnknown) : value;\n\t\tsetState(this.component, '_value', value, {\n\t\t\tbeforePatch: this.beforePatchOptions,\n\t\t});\n\t\tthis.setFormAssociatedValue(this.component._value as string);\n\t}\n\n\tpublic componentWillLoad(onChange?: (event: Event) => void): void {\n\t\tsuper.componentWillLoad();\n\n\t\tthis.onStateChange = () => {\n\t\t\tif (typeof onChange === 'function') {\n\t\t\t\tconst timeout = setTimeout(() => {\n\t\t\t\t\tclearTimeout(timeout);\n\t\t\t\t\tonChange(STATE_CHANGE_EVENT);\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\n\t\tthis.validateOrientation(this.component._orientation);\n\t\tthis.validateOptions(this.component._options || this.component._list);\n\t\tthis.validateValue(this.component._value);\n\t}\n}\n"],"version":3}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"controller-9a71a38b.js","mappings":";;;;;;;AAKA,MAAM,iBAAiB,GAAG,CAAC,EAAoC;IAC9D,IAAI,mBAAmB,EAAE,EAAE;QAC1B,OAAO,CAAC,8BAA8B,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;KAChB;IACD,OAAO,EAAE,YAAY,WAAW,IAAI,EAAE,CAAC,OAAO,KAAK,MAAM,IAAI,EAAE,CAAC,OAAO,KAAK,UAAU,EAAE;QACvF,IAAI,EAAE,CAAC,aAAa,YAAY,WAAW,EAAE;YAC5C,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC;SACtB;aAAM,IAAI,EAAE,CAAC,UAAU,YAAY,UAAU,EAAE;YAC/C,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;SACxB;aAAM;YACN,EAAE,GAAG,IAAI,CAAC;SACV;QACD,IAAI,mBAAmB,EAAE,EAAE;YAC1B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SAChB;KACD;IACD,IAAI,mBAAmB,EAAE,EAAE;QAC1B,OAAO,CAAC,iCAAiC,CAAC,CAAC;KAC3C;IACD,OAAO,EAAE,CAAC;AACX,CAAC,CAAC;MAEW,yBAAyB,GAAG,CACxC,UAGI,EAAE;;IAEN,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAI,IAAI,YAAY,WAAW,EAAE;QAChC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE;YAChC,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,IAAI;SAChB,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE;YAC5B,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC5B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SAC1B;aAAM,IAAI,IAAI,CAAC,OAAO,KAAK,UAAU,EAAE;YACvC,cAAc,CAAC,KAAK,EAAE,gBAAgB,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAoB,CAAC,CAAC;YACvF,MAAM,OAAO,GAAG,IAAa,CAAC;YAC9B,IAAI,QAAO,MAAA,OAAO,CAAC,GAAG,0CAAE,OAAO,CAAA,KAAK,UAAU,EAAE;gBAC/C,QAAO,MAAA,OAAO,CAAC,GAAG,0CAAE,OAAO,CAAC,KAAK,CAAC,CAAA,CAAC;aACnC;SACD;KACD;AACF,EAAE;MAEW,0BAA0B,GAAG,CACzC,UAGI,EAAE;;IAEN,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAI,IAAI,YAAY,WAAW,EAAE;QAChC,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,QAAQ,EAAE;YACvC,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,IAAI;SACf,CAAC,CAAC;QAWH,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE;YAC5B,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC5B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SAC1B;aAAM,IAAI,IAAI,CAAC,OAAO,KAAK,UAAU,EAAE;YACvC,cAAc,CAAC,KAAK,EAAE,gBAAgB,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAoB,CAAC,CAAC;YACvF,MAAM,OAAO,GAAG,IAAa,CAAC;YAC9B,IAAI,QAAO,MAAA,OAAO,CAAC,GAAG,0CAAE,QAAQ,CAAA,KAAK,UAAU,EAAE;gBAChD,MAAA,OAAO,CAAC,GAAG,0CAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;aAC7B;SACD;KACD;AACF;;;;","names":[],"sources":["src/components/form/controller.ts"],"sourcesContent":["import { devHint } from '../../utils/a11y.tipps';\nimport { getExperimentalMode } from '../../utils/dev.utils';\nimport { KoliBriDevHelper, setEventTarget } from '../../utils/prop.validators';\nimport { Props } from './types';\n\nconst searchFormElement = (el?: HTMLElement | ParentNode | null): HTMLElement | ParentNode | null | undefined => {\n\tif (getExperimentalMode()) {\n\t\tdevHint(`↓ Search form element start.`);\n\t\tconsole.log(el);\n\t}\n\twhile (el instanceof HTMLElement && el.tagName !== 'FORM' && el.tagName !== 'KOL-FORM') {\n\t\tif (el.parentElement instanceof HTMLElement) {\n\t\t\tel = el.parentElement;\n\t\t} else if (el.parentNode instanceof ShadowRoot) {\n\t\t\tel = el.parentNode.host;\n\t\t} else {\n\t\t\tel = null;\n\t\t}\n\t\tif (getExperimentalMode()) {\n\t\t\tconsole.log(el);\n\t\t}\n\t}\n\tif (getExperimentalMode()) {\n\t\tdevHint(`↑ Search form element finished.`);\n\t}\n\treturn el;\n};\n\nexport const propagateResetEventToForm = (\n\toptions: {\n\t\tform?: HTMLElement | ParentNode | null;\n\t\tref?: HTMLElement;\n\t} = {}\n): void => {\n\tconst form = searchFormElement(options.form);\n\tif (form instanceof HTMLElement) {\n\t\tconst event = new Event('reset', {\n\t\t\tbubbles: true,\n\t\t\tcancelable: true,\n\t\t});\n\t\tif (form.tagName === 'FORM') {\n\t\t\tsetEventTarget(event, form);\n\t\t\tform.dispatchEvent(event);\n\t\t} else if (form.tagName === 'KOL-FORM') {\n\t\t\tsetEventTarget(event, KoliBriDevHelper.querySelector('form', form) as HTMLFormElement);\n\t\t\tconst kolForm = form as Props;\n\t\t\tif (typeof kolForm._on?.onReset === 'function') {\n\t\t\t\ttypeof kolForm._on?.onReset(event);\n\t\t\t}\n\t\t}\n\t}\n};\n\nexport const propagateSubmitEventToForm = (\n\toptions: {\n\t\tform?: HTMLElement | ParentNode | null;\n\t\tref?: HTMLElement;\n\t} = {}\n): void => {\n\tconst form = searchFormElement(options.form);\n\tif (form instanceof HTMLElement) {\n\t\tconst event = new SubmitEvent('submit', {\n\t\t\tbubbles: true,\n\t\t\tcancelable: true,\n\t\t\tsubmitter: form,\n\t\t});\n\t\t/**\n\t\t * TODO: Wenn Formular-Action (nicht Ajax oder JS) verwendet wird,\n\t\t * dann müssen wir das Event an das HTMLFormElement innerhalb\n\t\t * der HTMLKolFormElements propagieren, wenn kein onSubmit\n\t\t * gesetzt wurde.\n\t\t *\n\t\t * TODO: Form-associated custom elements:\n\t\t * - https://web.dev/more-capable-form-controls/\n\t\t * - https://github.com/public-ui/kolibri/issues/946\n\t\t */\n\t\tif (form.tagName === 'FORM') {\n\t\t\tsetEventTarget(event, form);\n\t\t\tform.dispatchEvent(event);\n\t\t} else if (form.tagName === 'KOL-FORM') {\n\t\t\tsetEventTarget(event, KoliBriDevHelper.querySelector('form', form) as HTMLFormElement);\n\t\t\tconst kolForm = form as Props;\n\t\t\tif (typeof kolForm._on?.onSubmit === 'function') {\n\t\t\t\tkolForm._on?.onSubmit(event);\n\t\t\t}\n\t\t}\n\t}\n};\n"],"version":3}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* KoliBri - The accessible HTML-Standard
|
|
3
|
-
*/
|
|
4
|
-
import{c as uiUxHintMillerscheZahl}from"./a11y.tipps-f7f7cb4b.js";import{c as watchJsonArrayString}from"./prop.validators-8b68b7ca.js";const watchNavLinks=(t,a,s)=>{watchJsonArrayString(a,"_links",(t=>"object"==typeof t&&("string"==typeof t._href||"string"==typeof t._label)),s),uiUxHintMillerscheZahl(t,a.state._links.length)};export{watchNavLinks as w};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* KoliBri - The accessible HTML-Standard
|
|
3
|
-
*/
|
|
4
|
-
import{w as watchValidator}from"./prop.validators-8b68b7ca.js";const watchHeadingLevel=(e,a)=>{watchValidator(e,"_level",(e=>"number"==typeof e&&0<=e&&e<=6),new Set(["Number {0, 1, 2, 3, 4, 5, 6}"]),a,{defaultValue:1,required:!0})};export{watchHeadingLevel as w};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* KoliBri - The accessible HTML-Standard
|
|
3
|
-
*/
|
|
4
|
-
import{w as t}from"./prop.validators-8b68b7ca.js";const o=new Set(['"left", "right"']),e=new Set(['"bottom", "top"']),s=new Set([...o,...e]),a=(o,e,a)=>{t(o,e,(t=>"bottom"===t||"left"===t||"right"===t||"top"===t),s,a,{defaultValue:"top"})};export{a as v};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* KoliBri - The accessible HTML-Standard
|
|
3
|
-
*/
|
|
4
|
-
import{e as o,S as t}from"./index-c88c7ecf.js";import{a as e}from"./index-0b7aa54b.js";import{r as s}from"./index-d354dce9.js";import{L as i}from"./dev.utils-c9e7cb5f.js";import{p as r}from"./reuse-d79ab469.js";const a=async()=>{e((e=>(e.shadowRoot instanceof ShadowRoot&&o(e,t(e)),"default"))),await s([],[]),import("./devtools-1f25d9bc.js").then((o=>{"object"==typeof o&&null!==o&&"function"==typeof o.initialize&&o.initialize()})).catch((o=>{i.error(o)})),r&&import("./index-0e51998c.js")},f=a;export{f as g};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* KoliBri - The accessible HTML-Standard
|
|
3
|
-
*/
|
|
4
|
-
import{d as t}from"./prop.validators-8b68b7ca.js";import{d as e,h as i}from"./a11y.tipps-f7f7cb4b.js";import{d as s}from"./dev.utils-c9e7cb5f.js";const o=(e,o,i)=>{t(e,"_name",o,i)},n=s();class a{constructor(t,o,i){var s,a;if(this.setFormAssociatedValue=t=>{var o;const i=null===(o=this.formAssociated)||void 0===o?void 0:o.getAttribute("name");null!==i&&""!==i||e(` The form field (${this.name}) must have a name attribute to be form-associated. Please define the _name attribute.`);const s=this.tryToStringifyValue(t);this.syncValue(t,s,this.formAssociated),this.syncValue(t,s,this.syncToOwnInput)},this.component=t,this.host=this.findHostWithShadowRoot(i),this.name=o,n){switch(null===(s=this.host)||void 0===s||s.querySelectorAll("input,select,textarea").forEach((t=>{var e;null===(e=this.host)||void 0===e||e.removeChild(t)})),this.name){case"button":this.formAssociated=document.createElement("button");break;case"select":this.formAssociated=document.createElement("select"),this.formAssociated.setAttribute("multiple","");break;case"textarea":this.formAssociated=document.createElement("textarea");break;default:this.formAssociated=document.createElement("input"),this.formAssociated.setAttribute("type","hidden")}this.formAssociated.setAttribute("aria-hidden","true"),this.formAssociated.setAttribute("data-form-associated",""),this.formAssociated.setAttribute("hidden",""),null===(a=this.host)||void 0===a||a.appendChild(this.formAssociated)}}findHostWithShadowRoot(t){for(;null===(null==t?void 0:t.shadowRoot)&&t!==document.body;)(t=null==t?void 0:t.parentNode).host&&(t=t.host);return t}setAttribute(t,e,o){if(n)try{if("boolean"!=typeof(o="object"==typeof o&&null!==o?JSON.stringify(o):o)&&"number"!=typeof o&&"string"!=typeof o)throw new Error("Invalid value type: "+typeof o);null==e||e.setAttribute(t,`${o}`)}catch(o){null==e||e.removeAttribute(t)}}tryToStringifyValue(t){try{return"object"==typeof t&&null!==t?JSON.stringify(t).toString():null==t?null:t.toString()}catch(t){return i(`The form field raw value is not able to stringify! ${t}`),""}}syncValue(t,e,o){if(o)if("select"===this.name)o.querySelectorAll("option").forEach((t=>{o.removeChild(t)})),Array.isArray(t)&&t.forEach((t=>{const e=this.tryToStringifyValue(t);if("string"==typeof e){const t=document.createElement("option");t.setAttribute("value",e),t.setAttribute("selected",""),o.appendChild(t)}}));else"string"==typeof e?(o.setAttribute("value",e),o.value=e):(o.removeAttribute("value"),o.value="")}validateName(t){o(this.component,t,{hooks:{afterPatch:()=>{this.setAttribute("name",this.formAssociated,this.component.state._name)}}}),void 0===t&&e("Ein Name am Eingabefeldern oder Schalter ist nicht zwingend erforderlich, kann aber für die Autocomplete-Funktion und für das statische Versenden des Eingabefeldes relevant sein.")}validateSyncValueBySelector(t){if(n&&"string"==typeof t){const e=document.querySelector(t);e&&(this.syncToOwnInput=e)}}componentWillLoad(){this.validateName(this.component._name),this.validateSyncValueBySelector(this.component._syncValueBySelector)}}export{a as A};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["validateName","component","value","options","watchString","EXPERIMENTAL_MODE","getExperimentalMode","AssociatedInputController","constructor","name","host","this","setFormAssociatedValue","rawValue","_a","formAssociated","getAttribute","devHint","strValue","tryToStringifyValue","syncValue","syncToOwnInput","findHostWithShadowRoot","querySelectorAll","forEach","el","removeChild","document","createElement","setAttribute","_b","appendChild","shadowRoot","body","parentNode","qualifiedName","element","JSON","stringify","Error","e","removeAttribute","toString","undefined","devWarning","associatedElement","Array","isArray","rawValueItem","strValueItem","option","hooks","afterPatch","state","_name","validateSyncValueBySelector","input","querySelector","componentWillLoad","_syncValueBySelector"],"sources":["src/types/props/name.ts","src/components/input-adapter-leanup/associated.controller.ts"],"sourcesContent":["import type { Generic } from 'adopted-style-sheets';\n\nimport { watchString, WatchStringOptions } from '../../utils/prop.validators';\n\n/* types */\nexport type NamePropType = string;\n\n/**\n * Defines the technical name of an input field.\n */\nexport type PropName = {\n\tname: NamePropType;\n};\n\n/* validator */\nexport const validateName = (component: Generic.Element.Component, value?: NamePropType, options?: WatchStringOptions): void => {\n\twatchString(component, '_name', value, options);\n};\n","import type { Generic } from 'adopted-style-sheets';\n\nimport { NamePropType, validateName } from '../../types/props/name';\nimport { PropSyncValueBySelector, SyncValueBySelectorPropType } from '../../types/props/sync-value-by-selector';\nimport { StencilUnknown } from '../../types/unknown';\nimport { devHint, devWarning } from '../../utils/a11y.tipps';\nimport { getExperimentalMode } from '../../utils/dev.utils';\n\nconst EXPERIMENTAL_MODE = getExperimentalMode();\n\ntype RequiredProps = NonNullable<unknown>;\ntype OptionalProps = {\n\tname: string;\n} & PropSyncValueBySelector;\ntype Props = Generic.Element.Members<RequiredProps, OptionalProps>;\ntype Watches = Generic.Element.Watchers<RequiredProps, OptionalProps>;\n\nexport class AssociatedInputController implements Watches {\n\tprotected readonly component: Generic.Element.Component & Props;\n\tprotected readonly name: string;\n\tprotected readonly host?: HTMLElement;\n\n\tpublic readonly formAssociated?: HTMLButtonElement | HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement;\n\tpublic syncToOwnInput?: HTMLButtonElement | HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement;\n\n\tpublic constructor(component: Generic.Element.Component & Props, name: string, host?: HTMLElement) {\n\t\tthis.component = component;\n\t\tthis.host = this.findHostWithShadowRoot(host);\n\t\tthis.name = name;\n\n\t\tif (EXPERIMENTAL_MODE) {\n\t\t\tthis.host?.querySelectorAll('input,select,textarea').forEach((el) => {\n\t\t\t\tthis.host?.removeChild(el);\n\t\t\t});\n\t\t\tswitch (this.name) {\n\t\t\t\tcase 'button':\n\t\t\t\t\tthis.formAssociated = document.createElement('button');\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'select':\n\t\t\t\t\tthis.formAssociated = document.createElement('select');\n\t\t\t\t\tthis.formAssociated.setAttribute('multiple', '');\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'textarea':\n\t\t\t\t\tthis.formAssociated = document.createElement('textarea');\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tthis.formAssociated = document.createElement('input');\n\t\t\t\t\tthis.formAssociated.setAttribute('type', 'hidden');\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tthis.formAssociated.setAttribute('aria-hidden', 'true');\n\t\t\tthis.formAssociated.setAttribute('data-form-associated', '');\n\t\t\tthis.formAssociated.setAttribute('hidden', '');\n\t\t\tthis.host?.appendChild(this.formAssociated);\n\t\t}\n\t}\n\n\t/**\n\t * The associated elements must not reside within the ShadowRoot and must\n\t * reside as children in the host to be recognized by native forms.\n\t */\n\tprivate findHostWithShadowRoot(host?: HTMLElement): HTMLElement | undefined {\n\t\twhile (host?.shadowRoot === null && host !== document.body) {\n\t\t\thost = host?.parentNode as HTMLElement;\n\t\t\tif ((host as unknown as ShadowRoot).host) {\n\t\t\t\thost = (host as unknown as ShadowRoot).host as HTMLElement;\n\t\t\t}\n\t\t}\n\t\treturn host;\n\t}\n\n\tprotected setAttribute(qualifiedName: string, element?: HTMLElement, value?: string | number | boolean) {\n\t\tif (EXPERIMENTAL_MODE) {\n\t\t\ttry {\n\t\t\t\tvalue = typeof value === 'object' && value !== null ? JSON.stringify(value) : value;\n\t\t\t\tif (typeof value === 'boolean' || typeof value === 'number' || typeof value === 'string') {\n\t\t\t\t\telement?.setAttribute(qualifiedName, `${value as string}`);\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(`Invalid value type: ${typeof value}`);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\telement?.removeAttribute(qualifiedName);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * We need to stringify the value, for the setAttribute method.\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/setAttribute\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/attributes\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/attributes#value\n\t *\n\t * TODO: It is possible that the value are a cyclic object value. So we need a custom\n\t * JSON.stringify method from outside to convert it to string.\n\t */\n\tprivate tryToStringifyValue(value: StencilUnknown): string | null {\n\t\ttry {\n\t\t\treturn typeof value === 'object' && value !== null ? JSON.stringify(value).toString() : value === null || value === undefined ? null : value.toString();\n\t\t} catch (e) {\n\t\t\tdevWarning(`The form field raw value is not able to stringify! ${e as string}`);\n\t\t\treturn '';\n\t\t}\n\t}\n\n\t/**\n\t * We try to support native form-associated custom elements.\n\t *\n\t * @see https://github.com/public-ui/kolibri/discussions/2821\n\t */\n\tpublic readonly setFormAssociatedValue = (rawValue: StencilUnknown) => {\n\t\tconst name = this.formAssociated?.getAttribute('name');\n\t\tif (name === null || name === '') {\n\t\t\tdevHint(` The form field (${this.name}) must have a name attribute to be form-associated. Please define the _name attribute.`);\n\t\t}\n\t\tconst strValue = this.tryToStringifyValue(rawValue);\n\t\tthis.syncValue(rawValue, strValue, this.formAssociated);\n\t\tthis.syncValue(rawValue, strValue, this.syncToOwnInput);\n\t};\n\n\tprivate syncValue(\n\t\trawValue: StencilUnknown,\n\t\tstrValue: string | null,\n\t\tassociatedElement?: HTMLButtonElement | HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement\n\t) {\n\t\tif (associatedElement) {\n\t\t\tswitch (this.name) {\n\t\t\t\tcase 'select':\n\t\t\t\t\t(associatedElement as HTMLSelectElement).querySelectorAll('option').forEach((el) => {\n\t\t\t\t\t\t(associatedElement as HTMLSelectElement).removeChild(el);\n\t\t\t\t\t});\n\t\t\t\t\tif (Array.isArray(rawValue)) {\n\t\t\t\t\t\trawValue.forEach((rawValueItem) => {\n\t\t\t\t\t\t\tconst strValueItem = this.tryToStringifyValue(rawValueItem as string);\n\t\t\t\t\t\t\tif (typeof strValueItem === 'string') {\n\t\t\t\t\t\t\t\tconst option = document.createElement('option');\n\t\t\t\t\t\t\t\toption.setAttribute('value', strValueItem);\n\t\t\t\t\t\t\t\toption.setAttribute('selected', '');\n\t\t\t\t\t\t\t\t(associatedElement as HTMLSelectElement).appendChild(option);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tif (typeof strValue === 'string') {\n\t\t\t\t\t\tassociatedElement.setAttribute('value', strValue);\n\t\t\t\t\t\tassociatedElement.value = strValue;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tassociatedElement.removeAttribute('value');\n\t\t\t\t\t\tassociatedElement.value = '';\n\t\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic validateName(value?: NamePropType): void {\n\t\tvalidateName(this.component, value, {\n\t\t\thooks: {\n\t\t\t\tafterPatch: () => {\n\t\t\t\t\tthis.setAttribute('name', this.formAssociated, this.component.state._name as string);\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\t\tif (typeof value === 'undefined') {\n\t\t\tdevHint(\n\t\t\t\t`Ein Name am Eingabefeldern oder Schalter ist nicht zwingend erforderlich, kann aber für die Autocomplete-Funktion und für das statische Versenden des Eingabefeldes relevant sein.`\n\t\t\t);\n\t\t}\n\t}\n\n\tpublic validateSyncValueBySelector(value?: SyncValueBySelectorPropType): void {\n\t\tif (EXPERIMENTAL_MODE && typeof value === 'string') {\n\t\t\tconst input = document.querySelector(value) as HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement;\n\t\t\tif (input /* SSR instanceof HTMLInputElement */) {\n\t\t\t\tthis.syncToOwnInput = input;\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic componentWillLoad(): void {\n\t\tthis.validateName(this.component._name);\n\t\tthis.validateSyncValueBySelector(this.component._syncValueBySelector);\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* KoliBri - The accessible HTML-Standard
|
|
3
|
-
*/
|
|
4
|
-
import{c as t,a as e,w as s,m as i,s as a}from"./prop.validators-8b68b7ca.js";import{h as o,c as r}from"./label-f44203be.js";import{a as n}from"./a11y.tipps-f7f7cb4b.js";import{S as l}from"./reuse-d79ab469.js";import{I as f}from"./controller-1e428fb8.js";const h=t=>{if("object"==typeof t&&null!==t){if("string"==typeof t.label&&t.label.length>0)return t.disabled=!0===t.disabled,t.label=`${t.label}`.trim(),!1===o(t.label,3)&&!1===r(t.label)&&n(`Ein abweichendes Aria-Label (${t.label}) ist nicht barrierefrei. Ein abweichendes Aria-Label sollte aus mindestens drei lesbaren Zeichen bestehen.`),!Array.isArray(t.options)||void 0===t.options.find((t=>!1===h(t)));if("number"==typeof t.label)return!0}return!1},c=(e,o,i={})=>{t(e,"_options",(t=>"object"==typeof t&&null!==t&&"string"==typeof t.label&&t.label.length>0),o,void 0,i)},u=(e,o,i={})=>{t(e,"_options",h,o,void 0,i)},p=(t,o)=>{e(t,"_required",o)},d=(t,e,o="")=>{e.forEach(((e,i)=>{const a=`${o}-${i}`;"object"==typeof e&&null!==e&&"string"==typeof e.label&&e.label.length>0&&(Array.isArray(e.options)?d(t,e.options,a):t.set(a,e))}))};class b extends f{constructor(t,e,o){super(t,e,o),this.component=t}validateRequired(t){p(this.component,t)}componentWillLoad(){super.componentWillLoad(),this.validateRequired(this.component._required)}}class m extends b{constructor(t,e,o){super(t,e,o),this.keyOptionMap=new Map,this.getOptionByKey=t=>this.keyOptionMap.get(t),this.isValueInOptions=(t,e)=>void 0!==e.find((e=>e.value===t)),this.beforePatchOptions=(t,e)=>{const o=e.has("_options")?e.get("_options"):this.component.state._options;if(Array.isArray(o)&&o.length>0){this.keyOptionMap.clear(),d(this.keyOptionMap,o);const t=e.has("_value")?e.get("_value"):this.component.state._value;if(!1===this.isValueInOptions(t,o)){const t=o[0].value;e.set("_value",t),this.onStateChange()}}},this.component=t}validateOrientation(t){s(this.component,"_orientation",(t=>"horizontal"===t||"vertical"===t),new Set(["Orientation {horizontal, vertical}"]),t,{defaultValue:"vertical"})}validateOptions(t){c(this.component,t,{hooks:{beforePatch:this.beforePatchOptions}})}validateValue(t){t=i(t),t=Array.isArray(t)?t[0]:t,a(this.component,"_value",t,{beforePatch:this.beforePatchOptions}),this.setFormAssociatedValue(this.component._value)}componentWillLoad(t){super.componentWillLoad(),this.onStateChange=()=>{if("function"==typeof t){const e=setTimeout((()=>{clearTimeout(e),t(l)}))}},this.validateOrientation(this.component._orientation),this.validateOptions(this.component._options||this.component._list),this.validateValue(this.component._value)}}export{b as I,m as a,d as f,u as v};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["validateInputSelectOptions","option","label","length","disabled","trim","hasEnoughReadableChars","containsOnlyNumbers","a11yHint","Array","isArray","options","find","item","undefined","validateOptions","component","value","watchJsonArrayString","validateOptionsWithOptgroup","validateRequired","watchBoolean","fillKeyOptionMap","keyOptionMap","preKey","forEach","index","key","set","InputCheckboxRadioController","InputController","constructor","name","host","super","this","componentWillLoad","_required","InputRadioController","Map","getOptionByKey","get","isValueInOptions","beforePatchOptions","_value","nextState","has","state","_options","clear","newValue","onStateChange","validateOrientation","watchValidator","Set","defaultValue","hooks","beforePatch","validateValue","mapString2Unknown","setState","setFormAssociatedValue","onChange","timeout","setTimeout","clearTimeout","STATE_CHANGE_EVENT","_orientation","_list"],"sources":["src/utils/validators/options.ts","src/types/props/options.ts","src/types/props/required.ts","src/components/input-radio/controller.ts"],"sourcesContent":["import { Optgroup, SelectOption } from '../../types/input/types';\nimport { containsOnlyNumbers, hasEnoughReadableChars } from '../../types/props/label';\nimport { a11yHint } from '../a11y.tipps';\n\nexport const validateInputSelectOptions = <T>(option: SelectOption<T>): boolean => {\n\tif (typeof option === 'object' && option !== null) {\n\t\tif (typeof option.label === 'string' && option.label.length > 0) {\n\t\t\toption.disabled = option.disabled === true;\n\t\t\toption.label = `${option.label}`.trim();\n\t\t\tif (hasEnoughReadableChars(option.label, 3) === false && containsOnlyNumbers(option.label) === false) {\n\t\t\t\ta11yHint(\n\t\t\t\t\t`Ein abweichendes Aria-Label (${option.label}) ist nicht barrierefrei. Ein abweichendes Aria-Label sollte aus mindestens drei lesbaren Zeichen bestehen.`\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (Array.isArray((option as Optgroup<T>).options)) {\n\t\t\t\treturn (\n\t\t\t\t\t(option as Optgroup<T>).options.find((item) => {\n\t\t\t\t\t\treturn validateInputSelectOptions(item) === false;\n\t\t\t\t\t}) === undefined\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn true;\n\t\t} else if (typeof option.label === 'number') {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n","import type { Generic } from 'adopted-style-sheets';\n\nimport { watchJsonArrayString, WatchOptions } from '../../utils/prop.validators';\nimport { validateInputSelectOptions } from '../../utils/validators/options';\nimport { Stringified } from '../common';\nimport { Optgroup, Option } from '../input/types';\nimport { W3CInputValue } from '../w3c';\n\n/* types */\n\nexport type OptionsPropType = Stringified<Option<W3CInputValue>[]>;\nexport type OptionsWithOptgroupPropType = Stringified<(Option<W3CInputValue> | Optgroup<W3CInputValue>)[]>;\n\n/**\n * Options the user can choose from.\n */\nexport type PropOptions = {\n\toptions: OptionsPropType;\n};\n\n/**\n * Options the user can choose from, also supporting Optgroup.\n */\nexport type PropOptionsWithOptgroup = {\n\toptions: OptionsWithOptgroupPropType;\n};\n\n/* validators */\n\nexport const validateOptions = (component: Generic.Element.Component, value: OptionsPropType | undefined, options: WatchOptions = {}): void => {\n\twatchJsonArrayString(\n\t\tcomponent,\n\t\t'_options',\n\t\t(item: Option<W3CInputValue>) => typeof item === 'object' && item !== null && typeof item.label === 'string' && item.label.length > 0,\n\t\tvalue,\n\t\tundefined,\n\t\toptions\n\t);\n};\n\nexport const validateOptionsWithOptgroup = (\n\tcomponent: Generic.Element.Component,\n\tvalue: OptionsWithOptgroupPropType | undefined,\n\toptions: WatchOptions = {}\n) => {\n\twatchJsonArrayString(component, '_options', validateInputSelectOptions, value, undefined, options);\n};\n","import type { Generic } from 'adopted-style-sheets';\n\nimport { watchBoolean } from '../../utils/prop.validators';\n\n/* types */\ntype RequiredPropType = boolean;\n\n/**\n * Makes the input element required.\n */\nexport type PropRequired = {\n\trequired: RequiredPropType;\n};\n\n/* validator */\nexport const validateRequired = (component: Generic.Element.Component, value?: RequiredPropType): void => {\n\twatchBoolean(component, '_required', value);\n};\n","import type { Generic } from 'adopted-style-sheets';\n\nimport { Stringified } from '../../types/common';\nimport { Optgroup, Option, SelectOption } from '../../types/input/types';\nimport { Orientation } from '../../types/orientation';\nimport { PropLabelWithExpertSlot } from '../../types/props/label';\nimport { OptionsPropType, validateOptions } from '../../types/props/options';\nimport { validateRequired } from '../../types/props/required';\nimport { StencilUnknown } from '../../types/unknown';\nimport { W3CInputValue } from '../../types/w3c';\nimport { mapString2Unknown, setState, watchValidator } from '../../utils/prop.validators';\nimport { STATE_CHANGE_EVENT } from '../../utils/validator';\nimport { InputController } from '../@deprecated/input/controller';\nimport { Props, Watches } from './types';\n\nexport const fillKeyOptionMap = <T>(keyOptionMap: Map<string, Option<T>>, options: SelectOption<T>[], preKey = ''): void => {\n\toptions.forEach((option, index) => {\n\t\tconst key = `${preKey}-${index}`;\n\t\tif (typeof option === 'object' && option !== null && typeof option.label === 'string' && option.label.length > 0) {\n\t\t\tif (Array.isArray((option as Optgroup<T>).options)) {\n\t\t\t\tfillKeyOptionMap(keyOptionMap, (option as Optgroup<T>).options, key);\n\t\t\t} else {\n\t\t\t\tkeyOptionMap.set(key, option as Option<T>);\n\t\t\t}\n\t\t}\n\t});\n};\n\ntype RequiredProps = NonNullable<unknown>;\ntype OptionalProps = {\n\trequired: boolean;\n} & PropLabelWithExpertSlot;\ntype InputCheckboxRadioProps = Generic.Element.Members<RequiredProps, OptionalProps>;\ntype InputCheckboxRadioWatches = Generic.Element.Watchers<RequiredProps, OptionalProps>;\n\nexport class InputCheckboxRadioController extends InputController implements InputCheckboxRadioWatches {\n\tprotected readonly component: Generic.Element.Component & InputCheckboxRadioProps;\n\n\tpublic constructor(component: Generic.Element.Component & InputCheckboxRadioProps, name: string, host?: HTMLElement) {\n\t\tsuper(component, name, host);\n\t\tthis.component = component;\n\t}\n\n\tpublic validateRequired(value?: boolean): void {\n\t\tvalidateRequired(this.component, value);\n\t}\n\n\tpublic componentWillLoad(): void {\n\t\tsuper.componentWillLoad();\n\t\tthis.validateRequired(this.component._required);\n\t}\n}\n\nexport class InputRadioController extends InputCheckboxRadioController implements Watches {\n\tprotected readonly component: Generic.Element.Component & Props;\n\tprivate onStateChange!: () => void;\n\tprivate readonly keyOptionMap = new Map<string, Option<W3CInputValue>>();\n\n\tpublic constructor(component: Generic.Element.Component & Props, name: string, host?: HTMLElement) {\n\t\tsuper(component, name, host);\n\t\tthis.component = component;\n\t}\n\n\tpublic readonly getOptionByKey = (key: string): Option<W3CInputValue> | undefined => this.keyOptionMap.get(key);\n\n\tprivate readonly isValueInOptions = (value: unknown, options: Option<W3CInputValue>[]): boolean => {\n\t\treturn options.find((option) => option.value === value) !== undefined;\n\t};\n\n\tprotected readonly beforePatchOptions = (_value: unknown, nextState: Map<string, unknown>): void => {\n\t\tconst options = nextState.has('_options') ? nextState.get('_options') : this.component.state._options;\n\t\tif (Array.isArray(options) && options.length > 0) {\n\t\t\tthis.keyOptionMap.clear();\n\t\t\tfillKeyOptionMap(this.keyOptionMap, options as SelectOption<W3CInputValue>[]);\n\t\t\tconst value = nextState.has('_value') ? nextState.get('_value') : this.component.state._value;\n\t\t\tif (this.isValueInOptions(value, options as Option<W3CInputValue>[]) === false) {\n\t\t\t\tconst newValue = (\n\t\t\t\t\toptions[0] as {\n\t\t\t\t\t\tvalue: string;\n\t\t\t\t\t}\n\t\t\t\t).value;\n\t\t\t\tnextState.set('_value', newValue);\n\t\t\t\tthis.onStateChange();\n\t\t\t}\n\t\t}\n\t};\n\n\tpublic validateOrientation(value?: Orientation): void {\n\t\twatchValidator(\n\t\t\tthis.component,\n\t\t\t'_orientation',\n\t\t\t(value): boolean => value === 'horizontal' || value === 'vertical',\n\t\t\tnew Set(['Orientation {horizontal, vertical}']),\n\t\t\tvalue,\n\t\t\t{\n\t\t\t\tdefaultValue: 'vertical',\n\t\t\t}\n\t\t);\n\t}\n\n\tpublic validateOptions(value?: OptionsPropType): void {\n\t\tvalidateOptions(this.component, value, {\n\t\t\thooks: {\n\t\t\t\tbeforePatch: this.beforePatchOptions,\n\t\t\t},\n\t\t});\n\t}\n\n\tpublic validateValue(value?: Stringified<StencilUnknown>): void {\n\t\tvalue = mapString2Unknown(value);\n\t\tvalue = Array.isArray(value) ? (value[0] as StencilUnknown) : value;\n\t\tsetState(this.component, '_value', value, {\n\t\t\tbeforePatch: this.beforePatchOptions,\n\t\t});\n\t\tthis.setFormAssociatedValue(this.component._value as string);\n\t}\n\n\tpublic componentWillLoad(onChange?: (event: Event) => void): void {\n\t\tsuper.componentWillLoad();\n\n\t\tthis.onStateChange = () => {\n\t\t\tif (typeof onChange === 'function') {\n\t\t\t\tconst timeout = setTimeout(() => {\n\t\t\t\t\tclearTimeout(timeout);\n\t\t\t\t\tonChange(STATE_CHANGE_EVENT);\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\n\t\tthis.validateOrientation(this.component._orientation);\n\t\tthis.validateOptions(this.component._options || this.component._list);\n\t\tthis.validateValue(this.component._value);\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["searchFormElement","el","getExperimentalMode","devHint","console","log","HTMLElement","tagName","parentElement","parentNode","ShadowRoot","host","propagateResetEventToForm","options","form","event","Event","bubbles","cancelable","setEventTarget","dispatchEvent","KoliBriDevHelper","querySelector","kolForm","_a","_on","onReset","_b","propagateSubmitEventToForm","SubmitEvent","submitter","onSubmit"],"sources":["src/components/form/controller.ts"],"sourcesContent":["import { devHint } from '../../utils/a11y.tipps';\nimport { getExperimentalMode } from '../../utils/dev.utils';\nimport { KoliBriDevHelper, setEventTarget } from '../../utils/prop.validators';\nimport { Props } from './types';\n\nconst searchFormElement = (el?: HTMLElement | ParentNode | null): HTMLElement | ParentNode | null | undefined => {\n\tif (getExperimentalMode()) {\n\t\tdevHint(`↓ Search form element start.`);\n\t\tconsole.log(el);\n\t}\n\twhile (el instanceof HTMLElement && el.tagName !== 'FORM' && el.tagName !== 'KOL-FORM') {\n\t\tif (el.parentElement instanceof HTMLElement) {\n\t\t\tel = el.parentElement;\n\t\t} else if (el.parentNode instanceof ShadowRoot) {\n\t\t\tel = el.parentNode.host;\n\t\t} else {\n\t\t\tel = null;\n\t\t}\n\t\tif (getExperimentalMode()) {\n\t\t\tconsole.log(el);\n\t\t}\n\t}\n\tif (getExperimentalMode()) {\n\t\tdevHint(`↑ Search form element finished.`);\n\t}\n\treturn el;\n};\n\nexport const propagateResetEventToForm = (\n\toptions: {\n\t\tform?: HTMLElement | ParentNode | null;\n\t\tref?: HTMLElement;\n\t} = {}\n): void => {\n\tconst form = searchFormElement(options.form);\n\tif (form instanceof HTMLElement) {\n\t\tconst event = new Event('reset', {\n\t\t\tbubbles: true,\n\t\t\tcancelable: true,\n\t\t});\n\t\tif (form.tagName === 'FORM') {\n\t\t\tsetEventTarget(event, form);\n\t\t\tform.dispatchEvent(event);\n\t\t} else if (form.tagName === 'KOL-FORM') {\n\t\t\tsetEventTarget(event, KoliBriDevHelper.querySelector('form', form) as HTMLFormElement);\n\t\t\tconst kolForm = form as Props;\n\t\t\tif (typeof kolForm._on?.onReset === 'function') {\n\t\t\t\ttypeof kolForm._on?.onReset(event);\n\t\t\t}\n\t\t}\n\t}\n};\n\nexport const propagateSubmitEventToForm = (\n\toptions: {\n\t\tform?: HTMLElement | ParentNode | null;\n\t\tref?: HTMLElement;\n\t} = {}\n): void => {\n\tconst form = searchFormElement(options.form);\n\tif (form instanceof HTMLElement) {\n\t\tconst event = new SubmitEvent('submit', {\n\t\t\tbubbles: true,\n\t\t\tcancelable: true,\n\t\t\tsubmitter: form,\n\t\t});\n\t\t/**\n\t\t * TODO: Wenn Formular-Action (nicht Ajax oder JS) verwendet wird,\n\t\t * dann müssen wir das Event an das HTMLFormElement innerhalb\n\t\t * der HTMLKolFormElements propagieren, wenn kein onSubmit\n\t\t * gesetzt wurde.\n\t\t *\n\t\t * TODO: Form-associated custom elements:\n\t\t * - https://web.dev/more-capable-form-controls/\n\t\t * - https://github.com/public-ui/kolibri/issues/946\n\t\t */\n\t\tif (form.tagName === 'FORM') {\n\t\t\tsetEventTarget(event, form);\n\t\t\tform.dispatchEvent(event);\n\t\t} else if (form.tagName === 'KOL-FORM') {\n\t\t\tsetEventTarget(event, KoliBriDevHelper.querySelector('form', form) as HTMLFormElement);\n\t\t\tconst kolForm = form as Props;\n\t\t\tif (typeof kolForm._on?.onSubmit === 'function') {\n\t\t\t\tkolForm._on?.onSubmit(event);\n\t\t\t}\n\t\t}\n\t}\n};\n"],"mappings":";;;kJAKA,MAAMA,EAAqBC,IAC1B,GAAIC,IAAuB,CAC1BC,EAAQ,gCACRC,QAAQC,IAAIJ,E,CAEb,MAAOA,aAAcK,aAAeL,EAAGM,UAAY,QAAUN,EAAGM,UAAY,WAAY,CACvF,GAAIN,EAAGO,yBAAyBF,YAAa,CAC5CL,EAAKA,EAAGO,a,MACF,GAAIP,EAAGQ,sBAAsBC,WAAY,CAC/CT,EAAKA,EAAGQ,WAAWE,I,KACb,CACNV,EAAK,I,CAEN,GAAIC,IAAuB,CAC1BE,QAAQC,IAAIJ,E,EAGd,GAAIC,IAAuB,CAC1BC,EAAQ,kC,CAET,OAAOF,CAAE,E,MAGGW,EAA4B,CACxCC,EAGI,M,QAEJ,MAAMC,EAAOd,EAAkBa,EAAQC,MACvC,GAAIA,aAAgBR,YAAa,CAChC,MAAMS,EAAQ,IAAIC,MAAM,QAAS,CAChCC,QAAS,KACTC,WAAY,OAEb,GAAIJ,EAAKP,UAAY,OAAQ,CAC5BY,EAAeJ,EAAOD,GACtBA,EAAKM,cAAcL,E,MACb,GAAID,EAAKP,UAAY,WAAY,CACvCY,EAAeJ,EAAOM,EAAiBC,cAAc,OAAQR,IAC7D,MAAMS,EAAUT,EAChB,WAAWU,EAAAD,EAAQE,OAAG,MAAAD,SAAA,SAAAA,EAAEE,WAAY,WAAY,SACxCC,EAAAJ,EAAQE,OAAG,MAAAE,SAAA,SAAAA,EAAED,QAAQX,G,WAMnBa,EAA6B,CACzCf,EAGI,M,QAEJ,MAAMC,EAAOd,EAAkBa,EAAQC,MACvC,GAAIA,aAAgBR,YAAa,CAChC,MAAMS,EAAQ,IAAIc,YAAY,SAAU,CACvCZ,QAAS,KACTC,WAAY,KACZY,UAAWhB,IAYZ,GAAIA,EAAKP,UAAY,OAAQ,CAC5BY,EAAeJ,EAAOD,GACtBA,EAAKM,cAAcL,E,MACb,GAAID,EAAKP,UAAY,WAAY,CACvCY,EAAeJ,EAAOM,EAAiBC,cAAc,OAAQR,IAC7D,MAAMS,EAAUT,EAChB,WAAWU,EAAAD,EAAQE,OAAG,MAAAD,SAAA,SAAAA,EAAEO,YAAa,WAAY,EAChDJ,EAAAJ,EAAQE,OAAG,MAAAE,SAAA,SAAAA,EAAEI,SAAShB,E"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* KoliBri - The accessible HTML-Standard
|
|
3
|
-
*/
|
|
4
|
-
import{a as t,u as o}from"./a11y.tipps-f7f7cb4b.js";import{w as a}from"./prop.validators-8b68b7ca.js";const e=/[a-zA-Z0-9äöüÄÖÜß]/g,n=/^\d+$/;function r(t){var o;return"string"==typeof t&&(null===(o=t.match(e))||void 0===o?void 0:o.length)||0}function s(t,o=1){return r(t)>=o}function i(t){return n.test(t)}function l(a){var e;return Object.assign(Object.assign({},a),{hooks:{afterPatch:(e,n,r,c)=>{var l,f;"function"==typeof(null===(l=a.hooks)||void 0===l?void 0:l.afterPatch)&&(null===(f=a.hooks)||void 0===f||f.afterPatch(e,n,r,c)),"string"==typeof e&&!1===s(e,3)&&!1===i(e)&&t(`The heading or label ("${e}") is not accessible. A label should consist of at least three readable characters.`),"string"==typeof e&&e.length>80&&o("A heading or label should not be longer than 80 characters.")},beforePatch:null===(e=a.hooks)||void 0===e?void 0:e.beforePatch}})}const c=new Set(["string"]),f=(t,o,e={})=>{a(t,"_label",(t=>"string"==typeof t),c,o,l(e))},u=f;export{u as a,i as c,s as h,f as v};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* KoliBri - The accessible HTML-Standard
|
|
3
|
-
*/
|
|
4
|
-
import{a as t}from"./a11y.tipps-f7f7cb4b.js";import{e as a}from"./prop.validators-8b68b7ca.js";const o={hooks:{afterPatch:a=>{-1!==a&&0!==a&&t("Don’t Use Tabindex Greater than 0: https://adrianroselli.com/2014/11/dont-use-tabindex-greater-than-0.html")}}},r=(t,r)=>{a(t,"_tabIndex",r,o)};export{r as v};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* KoliBri - The accessible HTML-Standard
|
|
3
|
-
*/
|
|
4
|
-
import{c as o}from"./a11y.tipps-f7f7cb4b.js";import{c as t}from"./prop.validators-8b68b7ca.js";const s=(s,p,r)=>{t(p,"_links",(t=>"object"==typeof t&&("string"==typeof t._href||"string"==typeof t._label)),r),o(s,p.state._links.length)};export{s as w};
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|