@public-ui/components 4.5.0-rc.4 → 4.5.0-rc.5
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/assets/kolicons/kolicons.eot +0 -0
- package/assets/kolicons/kolicons.ttf +0 -0
- package/assets/kolicons/kolicons.woff +0 -0
- package/assets/kolicons/kolicons.woff2 +0 -0
- package/assets/kolicons/style.css +6 -6
- package/custom-elements.json +1 -1
- package/dist/cjs/{Heading-CmJwWzTx.js → Heading-DG2wWECB.js} +3 -3
- package/dist/cjs/{Heading-CmJwWzTx.js.map → Heading-DG2wWECB.js.map} +1 -1
- package/dist/cjs/{api-CimiLGvb.js → api-8kjgnnU3.js} +8 -8
- package/dist/cjs/{api-CimiLGvb.js.map → api-8kjgnnU3.js.map} +1 -1
- package/dist/cjs/{api-CGIOreYK.js → api-C2rTkOz2.js} +12 -12
- package/dist/cjs/{api-CGIOreYK.js.map → api-C2rTkOz2.js.map} +1 -1
- package/dist/cjs/{app-globals-DXKl7Bxk.js → app-globals-B1xqi4rZ.js} +4 -4
- package/dist/cjs/{app-globals-DXKl7Bxk.js.map → app-globals-B1xqi4rZ.js.map} +1 -1
- package/dist/cjs/{base-3S-emPWZ.js → base-BMrlvKIO.js} +16 -16
- package/dist/cjs/{base-3S-emPWZ.js.map → base-BMrlvKIO.js.map} +1 -1
- package/dist/cjs/{base-BCEIzc57.js → base-Cea-xkFy.js} +5 -5
- package/dist/cjs/{base-BCEIzc57.js.map → base-Cea-xkFy.js.map} +1 -1
- package/dist/cjs/{base-DD2zVHk7.js → base-OMJLjz5u.js} +4 -4
- package/dist/cjs/{base-DD2zVHk7.js.map → base-OMJLjz5u.js.map} +1 -1
- package/dist/cjs/{base-web-component-8qVyDl6W.js → base-web-component-BCEKzbV3.js} +7 -7
- package/dist/cjs/{base-web-component-8qVyDl6W.js.map → base-web-component-BCEKzbV3.js.map} +1 -1
- package/dist/cjs/{base-web-component-CtQdH3PJ.js → base-web-component-CpH4iN97.js} +5 -5
- package/dist/cjs/{base-web-component-CtQdH3PJ.js.map → base-web-component-CpH4iN97.js.map} +1 -1
- package/dist/cjs/{base-CVLHbu6O.js → base-xR4eDUJg.js} +4 -4
- package/dist/cjs/{base-CVLHbu6O.js.map → base-xR4eDUJg.js.map} +1 -1
- package/dist/cjs/{behavior-B9JuvM3I.js → behavior-XywM4z8h.js} +3 -3
- package/dist/cjs/{behavior-B9JuvM3I.js.map → behavior-XywM4z8h.js.map} +1 -1
- package/dist/cjs/{component-CCZ7pXRv.js → component-04gQVLQ1.js} +4 -4
- package/dist/cjs/{component-CCZ7pXRv.js.map → component-04gQVLQ1.js.map} +1 -1
- package/dist/cjs/{component-B18PknAn.js → component-BB3YHW86.js} +3 -3
- package/dist/cjs/{component-B18PknAn.js.map → component-BB3YHW86.js.map} +1 -1
- package/dist/cjs/{component-GzpJi_tI.js → component-BLnwCgKh.js} +7 -7
- package/dist/cjs/{component-GzpJi_tI.js.map → component-BLnwCgKh.js.map} +1 -1
- package/dist/cjs/{component-BT9bnLTG.js → component-Bprn2Dws.js} +4 -4
- package/dist/cjs/{component-BT9bnLTG.js.map → component-Bprn2Dws.js.map} +1 -1
- package/dist/cjs/{component-B368JCB7.js → component-CJDDp8K2.js} +3 -3
- package/dist/cjs/{component-B368JCB7.js.map → component-CJDDp8K2.js.map} +1 -1
- package/dist/cjs/{component-D0N2WBmH.js → component-ClYrtAkb.js} +5 -5
- package/dist/cjs/{component-D0N2WBmH.js.map → component-ClYrtAkb.js.map} +1 -1
- package/dist/cjs/{component-BzMxgoHU.js → component-DAfsN5m4.js} +5 -5
- package/dist/cjs/{component-BzMxgoHU.js.map → component-DAfsN5m4.js.map} +1 -1
- package/dist/cjs/{component-BCFL2G_g.js → component-DDlbarYZ.js} +4 -4
- package/dist/cjs/{component-BCFL2G_g.js.map → component-DDlbarYZ.js.map} +1 -1
- package/dist/cjs/{component-DXv0HPeN.js → component-DlN2bfiT.js} +5 -5
- package/dist/cjs/{component-DXv0HPeN.js.map → component-DlN2bfiT.js.map} +1 -1
- package/dist/cjs/{component-DlgM4oEf.js → component-KIiCY2eY.js} +7 -7
- package/dist/cjs/{component-DlgM4oEf.js.map → component-KIiCY2eY.js.map} +1 -1
- package/dist/cjs/{component-CH432A4c.js → component-i9zUYU8M.js} +3 -3
- package/dist/cjs/{component-CH432A4c.js.map → component-i9zUYU8M.js.map} +1 -1
- package/dist/cjs/{component-C7NI5Iy5.js → component-sZUV7dBr.js} +3 -3
- package/dist/cjs/{component-C7NI5Iy5.js.map → component-sZUV7dBr.js.map} +1 -1
- package/dist/cjs/{dev.utils-BoFqqn8Y.js → dev.utils-BVqwixuA.js} +3 -3
- package/dist/cjs/{dev.utils-BoFqqn8Y.js.map → dev.utils-BVqwixuA.js.map} +1 -1
- package/dist/cjs/{devtools-C-m9X0nz.js → devtools-DxqqXOxW.js} +4 -4
- package/dist/cjs/{devtools-C-m9X0nz.js.map → devtools-DxqqXOxW.js.map} +1 -1
- package/dist/cjs/{field-control-MhWSen3X.js → field-control-CTOjt7vn.js} +8 -8
- package/dist/cjs/{field-control-MhWSen3X.js.map → field-control-CTOjt7vn.js.map} +1 -1
- package/dist/cjs/{group-7951SxEA.js → group-VoBXFtaB.js} +5 -5
- package/dist/cjs/{group-7951SxEA.js.map → group-VoBXFtaB.js.map} +1 -1
- package/dist/cjs/{index-DO9lYEcH.js → index-Dv7OF9AY.js} +3 -3
- package/dist/cjs/{index-DO9lYEcH.js.map → index-Dv7OF9AY.js.map} +1 -1
- package/dist/cjs/{input-DCNSFlzf.js → input-BeQNLD9x.js} +5 -5
- package/dist/cjs/{input-DCNSFlzf.js.map → input-BeQNLD9x.js.map} +1 -1
- package/dist/cjs/{input-container-AUYMUXlO.js → input-container-BXz_irj1.js} +7 -7
- package/dist/cjs/{input-container-AUYMUXlO.js.map → input-container-BXz_irj1.js.map} +1 -1
- package/dist/cjs/{item-C63M9WqZ.js → item-C_mVKQHN.js} +4 -4
- package/dist/cjs/{item-C63M9WqZ.js.map → item-C_mVKQHN.js.map} +1 -1
- package/dist/cjs/{item-CAtWa-Nr.js → item-Caz7PzHo.js} +4 -4
- package/dist/cjs/{item-CAtWa-Nr.js.map → item-Caz7PzHo.js.map} +1 -1
- package/dist/cjs/{item-CXS6hLg9.js → item-DksElMyT.js} +8 -8
- package/dist/cjs/{item-CXS6hLg9.js.map → item-DksElMyT.js.map} +1 -1
- package/dist/cjs/{item-BPM40Vsi.js → item-P6pvO7ia.js} +3 -3
- package/dist/cjs/{item-BPM40Vsi.js.map → item-P6pvO7ia.js.map} +1 -1
- package/dist/cjs/kol-abbr.cjs.entry.js +2 -2
- package/dist/cjs/kol-accordion.cjs.entry.js +7 -7
- package/dist/cjs/kol-alert.cjs.entry.js +11 -11
- package/dist/cjs/kol-avatar.cjs.entry.js +1 -1
- package/dist/cjs/kol-badge.cjs.entry.js +10 -10
- package/dist/cjs/kol-breadcrumb.cjs.entry.js +9 -9
- package/dist/cjs/kol-button-link.cjs.entry.js +10 -10
- package/dist/cjs/kol-button.cjs.entry.js +10 -10
- package/dist/cjs/kol-card.cjs.entry.js +11 -11
- package/dist/cjs/kol-click-button.cjs.entry.js +2 -2
- package/dist/cjs/kol-combobox.cjs.entry.js +18 -18
- package/dist/cjs/kol-details.cjs.entry.js +7 -7
- package/dist/cjs/kol-dialog.cjs.entry.js +13 -13
- package/dist/cjs/kol-drawer.cjs.entry.js +12 -12
- package/dist/cjs/kol-form.cjs.entry.js +12 -12
- package/dist/cjs/kol-heading.cjs.entry.js +1 -1
- package/dist/cjs/kol-icon.cjs.entry.js +3 -3
- package/dist/cjs/kol-image.cjs.entry.js +1 -1
- package/dist/cjs/kol-input-checkbox.cjs.entry.js +17 -17
- package/dist/cjs/kol-input-color.cjs.entry.js +18 -18
- package/dist/cjs/kol-input-date.cjs.entry.js +18 -18
- package/dist/cjs/kol-input-email.cjs.entry.js +20 -20
- package/dist/cjs/kol-input-file.cjs.entry.js +17 -17
- package/dist/cjs/kol-input-number.cjs.entry.js +18 -18
- package/dist/cjs/kol-input-password.cjs.entry.js +20 -20
- package/dist/cjs/kol-input-radio.cjs.entry.js +17 -17
- package/dist/cjs/kol-input-range.cjs.entry.js +18 -18
- package/dist/cjs/kol-input-text.cjs.entry.js +20 -20
- package/dist/cjs/kol-kolibri.cjs.entry.js +2 -2
- package/dist/cjs/kol-link-button.cjs.entry.js +10 -10
- package/dist/cjs/kol-link.cjs.entry.js +10 -10
- package/dist/cjs/kol-meter.cjs.entry.js +1 -1
- package/dist/cjs/kol-modal.cjs.entry.js +13 -13
- package/dist/cjs/kol-nav.cjs.entry.js +13 -13
- package/dist/cjs/kol-pagination.cjs.entry.js +18 -18
- package/dist/cjs/kol-popover-button.cjs.entry.js +11 -11
- package/dist/cjs/kol-progress.cjs.entry.js +1 -1
- package/dist/cjs/kol-quote.cjs.entry.js +1 -1
- package/dist/cjs/kol-select.cjs.entry.js +17 -17
- package/dist/cjs/kol-single-select.cjs.entry.js +18 -18
- package/dist/cjs/kol-skeleton.cjs.entry.js +2 -2
- package/dist/cjs/kol-skip-nav.cjs.entry.js +9 -9
- package/dist/cjs/kol-spin.cjs.entry.js +3 -3
- package/dist/cjs/kol-split-button.cjs.entry.js +12 -12
- package/dist/cjs/kol-table-stateful.cjs.entry.js +25 -25
- package/dist/cjs/kol-table-stateless.cjs.entry.js +19 -19
- package/dist/cjs/kol-tabs.cjs.entry.js +14 -26
- package/dist/cjs/kol-tabs.entry.cjs.js.map +1 -1
- package/dist/cjs/kol-textarea.cjs.entry.js +17 -17
- package/dist/cjs/kol-toast-container.cjs.entry.js +11 -11
- package/dist/cjs/kol-toolbar.cjs.entry.js +11 -11
- package/dist/cjs/kol-tooltip-wc.cjs.entry.js +4 -4
- package/dist/cjs/kol-tree-item.cjs.entry.js +9 -9
- package/dist/cjs/kol-tree.cjs.entry.js +1 -1
- package/dist/cjs/kol-version.cjs.entry.js +9 -9
- package/dist/cjs/kolibri.cjs.js +2 -2
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{resolve-props-DrG_HqJv.js → resolve-props-DS3EE-fd.js} +3 -3
- package/dist/cjs/{resolve-props-DrG_HqJv.js.map → resolve-props-DS3EE-fd.js.map} +1 -1
- package/dist/cjs/{scroll-lock-oNylqons.js → scroll-lock-B8N6TEH3.js} +3 -3
- package/dist/cjs/{scroll-lock-oNylqons.js.map → scroll-lock-B8N6TEH3.js.map} +1 -1
- package/dist/cjs/{suggestions-Dtu6i-Ff.js → suggestions-CC1tzlom.js} +4 -4
- package/dist/cjs/{suggestions-Dtu6i-Ff.js.map → suggestions-CC1tzlom.js.map} +1 -1
- package/dist/cjs/test-component.cjs.entry.js +1 -1
- package/dist/cjs/{toggle-handler-CE-IOVjQ.js → toggle-handler-BzdKX5H6.js} +5 -5
- package/dist/cjs/{toggle-handler-CE-IOVjQ.js.map → toggle-handler-BzdKX5H6.js.map} +1 -1
- package/dist/collection/components/accordion/style.css +2 -2
- package/dist/collection/components/alert/style.css +2 -2
- package/dist/collection/components/badge/style.css +2 -2
- package/dist/collection/components/breadcrumb/style.css +2 -2
- package/dist/collection/components/button/style.css +2 -2
- package/dist/collection/components/button-link/style.css +2 -2
- package/dist/collection/components/card/style.css +2 -2
- package/dist/collection/components/combobox/style.css +2 -2
- package/dist/collection/components/details/style.css +2 -2
- package/dist/collection/components/dialog/style.css +2 -2
- package/dist/collection/components/drawer/style.css +2 -2
- package/dist/collection/components/form/style.css +2 -2
- package/dist/collection/components/icon/style.css +2 -2
- package/dist/collection/components/input-checkbox/style.css +2 -2
- package/dist/collection/components/input-color/style.css +2 -2
- package/dist/collection/components/input-date/style.css +2 -2
- package/dist/collection/components/input-email/style.css +2 -2
- package/dist/collection/components/input-file/style.css +2 -2
- package/dist/collection/components/input-number/style.css +2 -2
- package/dist/collection/components/input-password/style.css +2 -2
- package/dist/collection/components/input-radio/style.css +2 -2
- package/dist/collection/components/input-range/style.css +2 -2
- package/dist/collection/components/input-text/style.css +2 -2
- package/dist/collection/components/link/style.css +2 -2
- package/dist/collection/components/link-button/style.css +2 -2
- package/dist/collection/components/modal/style.css +2 -2
- package/dist/collection/components/nav/style.css +2 -2
- package/dist/collection/components/pagination/style.css +2 -2
- package/dist/collection/components/popover-button/style.css +2 -2
- package/dist/collection/components/select/style.css +2 -2
- package/dist/collection/components/single-select/style.css +2 -2
- package/dist/collection/components/skip-nav/style.css +2 -2
- package/dist/collection/components/split-button/style.css +2 -2
- package/dist/collection/components/table-stateful/style.css +2 -2
- package/dist/collection/components/table-stateless/style.css +2 -2
- package/dist/collection/components/tabs/component.js +5 -17
- package/dist/collection/components/tabs/component.js.map +1 -1
- package/dist/collection/components/tabs/style.css +2 -2
- package/dist/collection/components/textarea/style.css +2 -2
- package/dist/collection/components/toaster/style.css +2 -2
- package/dist/collection/components/toolbar/style.css +2 -2
- package/dist/collection/components/tree-item/style.css +2 -2
- package/dist/collection/components/version/style.css +2 -2
- package/dist/components/kol-accordion.js +1 -1
- package/dist/components/kol-alert.js +1 -1
- package/dist/components/kol-badge.js +1 -1
- package/dist/components/kol-breadcrumb.js +1 -1
- package/dist/components/kol-button-link.js +1 -1
- package/dist/components/kol-button.js +1 -1
- package/dist/components/kol-card.js +1 -1
- package/dist/components/kol-combobox.js +1 -1
- package/dist/components/kol-details.js +1 -1
- package/dist/components/kol-dialog.js +1 -1
- package/dist/components/kol-drawer.js +1 -1
- package/dist/components/kol-form.js +1 -1
- package/dist/components/kol-icon.js +1 -1
- package/dist/components/kol-input-checkbox.js +1 -1
- package/dist/components/kol-input-color.js +1 -1
- package/dist/components/kol-input-date.js +1 -1
- package/dist/components/kol-input-email.js +1 -1
- package/dist/components/kol-input-file.js +1 -1
- package/dist/components/kol-input-number.js +1 -1
- package/dist/components/kol-input-password.js +1 -1
- package/dist/components/kol-input-radio.js +1 -1
- package/dist/components/kol-input-range.js +1 -1
- package/dist/components/kol-input-text.js +1 -1
- package/dist/components/kol-link-button.js +1 -1
- package/dist/components/kol-link.js +1 -1
- package/dist/components/kol-modal.js +1 -1
- package/dist/components/kol-nav.js +1 -1
- package/dist/components/kol-pagination.js +1 -1
- package/dist/components/kol-popover-button.js +1 -1
- package/dist/components/kol-select.js +1 -1
- package/dist/components/kol-single-select.js +1 -1
- package/dist/components/kol-skip-nav.js +1 -1
- package/dist/components/kol-split-button.js +1 -1
- package/dist/components/kol-table-stateful.js +1 -1
- package/dist/components/kol-table-stateless.js +1 -1
- package/dist/components/kol-tabs.js +6 -18
- package/dist/components/kol-tabs.js.map +1 -1
- package/dist/components/kol-textarea.js +1 -1
- package/dist/components/kol-toast-container.js +1 -1
- package/dist/components/kol-toolbar.js +1 -1
- package/dist/components/kol-tree-item.js +1 -1
- package/dist/components/kol-version.js +1 -1
- package/dist/esm/{Heading-D2EH5Vz9.js → Heading-DAPZwXCt.js} +3 -3
- package/dist/esm/{Heading-D2EH5Vz9.js.map → Heading-DAPZwXCt.js.map} +1 -1
- package/dist/esm/{api-DScxu3ou.js → api-DueenSkb.js} +12 -12
- package/dist/{kolibri/api-DScxu3ou.js.map → esm/api-DueenSkb.js.map} +1 -1
- package/dist/esm/{api-CN_pBHgH.js → api-zFp24D1x.js} +8 -8
- package/dist/esm/{api-CN_pBHgH.js.map → api-zFp24D1x.js.map} +1 -1
- package/dist/esm/{app-globals-CddJRb3M.js → app-globals-CYRfyhVc.js} +4 -4
- package/dist/esm/{app-globals-CddJRb3M.js.map → app-globals-CYRfyhVc.js.map} +1 -1
- package/dist/esm/{base-DHBpPWDW.js → base-AvIGo8Mp.js} +16 -16
- package/dist/{kolibri/base-DHBpPWDW.js.map → esm/base-AvIGo8Mp.js.map} +1 -1
- package/dist/esm/{base-B4XSDJBd.js → base-BU2iT3jv.js} +5 -5
- package/dist/{kolibri/base-B4XSDJBd.js.map → esm/base-BU2iT3jv.js.map} +1 -1
- package/dist/esm/{base-DFtj5G32.js → base-BUu1gNpy.js} +4 -4
- package/dist/{kolibri/base-DFtj5G32.js.map → esm/base-BUu1gNpy.js.map} +1 -1
- package/dist/esm/{base-Jvi_AWqL.js → base-CjlYs5Fb.js} +4 -4
- package/dist/{kolibri/base-Jvi_AWqL.js.map → esm/base-CjlYs5Fb.js.map} +1 -1
- package/dist/esm/{base-web-component-D_VU8SGY.js → base-web-component-BEf83bnu.js} +7 -7
- package/dist/esm/{base-web-component-D_VU8SGY.js.map → base-web-component-BEf83bnu.js.map} +1 -1
- package/dist/esm/{base-web-component-t9oDjRt3.js → base-web-component-C2q-dSOg.js} +5 -5
- package/dist/esm/{base-web-component-t9oDjRt3.js.map → base-web-component-C2q-dSOg.js.map} +1 -1
- package/dist/esm/{behavior-Dpui_R-v.js → behavior-DCpLHoHs.js} +3 -3
- package/dist/{kolibri/behavior-Dpui_R-v.js.map → esm/behavior-DCpLHoHs.js.map} +1 -1
- package/dist/esm/{component-DSKwp72M.js → component-9XV7ykPK.js} +4 -4
- package/dist/{kolibri/component-DSKwp72M.js.map → esm/component-9XV7ykPK.js.map} +1 -1
- package/dist/esm/{component-BauANlCU.js → component-B5MUeex-.js} +3 -3
- package/dist/{kolibri/component-BauANlCU.js.map → esm/component-B5MUeex-.js.map} +1 -1
- package/dist/esm/{component-B5OmtChm.js → component-BR-6tKab.js} +3 -3
- package/dist/esm/{component-B5OmtChm.js.map → component-BR-6tKab.js.map} +1 -1
- package/dist/esm/{component-ArZwqu6c.js → component-Bj13sPTL.js} +4 -4
- package/dist/esm/{component-ArZwqu6c.js.map → component-Bj13sPTL.js.map} +1 -1
- package/dist/esm/{component-DWiKUdpa.js → component-BrOA7gRZ.js} +7 -7
- package/dist/esm/{component-DWiKUdpa.js.map → component-BrOA7gRZ.js.map} +1 -1
- package/dist/esm/{component-CoN6ZwTo.js → component-CQJ_jIZm.js} +7 -7
- package/dist/esm/{component-CoN6ZwTo.js.map → component-CQJ_jIZm.js.map} +1 -1
- package/dist/esm/{component-D6Z14V5i.js → component-Cqcw7JSO.js} +5 -5
- package/dist/{kolibri/component-D6Z14V5i.js.map → esm/component-Cqcw7JSO.js.map} +1 -1
- package/dist/esm/{component-GqGXpjMZ.js → component-Cy_xOMLd.js} +3 -3
- package/dist/esm/{component-GqGXpjMZ.js.map → component-Cy_xOMLd.js.map} +1 -1
- package/dist/esm/{component-6cLprNJZ.js → component-DCK-2RQ3.js} +3 -3
- package/dist/esm/{component-6cLprNJZ.js.map → component-DCK-2RQ3.js.map} +1 -1
- package/dist/esm/{component-D0Coq_zE.js → component-DRUoRfdO.js} +5 -5
- package/dist/{kolibri/component-D0Coq_zE.js.map → esm/component-DRUoRfdO.js.map} +1 -1
- package/dist/esm/{component-DbsunX7x.js → component-D_xOkOl6.js} +4 -4
- package/dist/{kolibri/component-DbsunX7x.js.map → esm/component-D_xOkOl6.js.map} +1 -1
- package/dist/esm/{component-CChFD3b2.js → component-Droc76Vh.js} +5 -5
- package/dist/{kolibri/component-CChFD3b2.js.map → esm/component-Droc76Vh.js.map} +1 -1
- package/dist/esm/{dev.utils-DVPKJwhh.js → dev.utils-CWEYl26B.js} +3 -3
- package/dist/{kolibri/dev.utils-DVPKJwhh.js.map → esm/dev.utils-CWEYl26B.js.map} +1 -1
- package/dist/esm/{devtools-Ctvg6SnM.js → devtools-BfiT_Mej.js} +4 -4
- package/dist/{kolibri/devtools-Ctvg6SnM.js.map → esm/devtools-BfiT_Mej.js.map} +1 -1
- package/dist/esm/{field-control-CJ-9C7AK.js → field-control-BvFIxA5C.js} +8 -8
- package/dist/{kolibri/field-control-CJ-9C7AK.js.map → esm/field-control-BvFIxA5C.js.map} +1 -1
- package/dist/esm/{group-6LOQ2Eed.js → group-DzNZiu3R.js} +5 -5
- package/dist/esm/{group-6LOQ2Eed.js.map → group-DzNZiu3R.js.map} +1 -1
- package/dist/esm/{index-BtYjJomD.js → index-CyLMYdnq.js} +3 -3
- package/dist/{kolibri/index-BtYjJomD.js.map → esm/index-CyLMYdnq.js.map} +1 -1
- package/dist/esm/{input-DispvARh.js → input-C55z9I-y.js} +5 -5
- package/dist/esm/{input-DispvARh.js.map → input-C55z9I-y.js.map} +1 -1
- package/dist/esm/{input-container-CVU5Y0-o.js → input-container-28E-ib9E.js} +7 -7
- package/dist/{kolibri/input-container-CVU5Y0-o.js.map → esm/input-container-28E-ib9E.js.map} +1 -1
- package/dist/esm/{item-BShglo-p.js → item-Bwz4OUrI.js} +4 -4
- package/dist/esm/{item-BShglo-p.js.map → item-Bwz4OUrI.js.map} +1 -1
- package/dist/esm/{item-CD8r4zxe.js → item-CuhPkC8A.js} +4 -4
- package/dist/esm/{item-CD8r4zxe.js.map → item-CuhPkC8A.js.map} +1 -1
- package/dist/esm/{item-Cj7w26xK.js → item-HQBfKHr0.js} +3 -3
- package/dist/esm/{item-Cj7w26xK.js.map → item-HQBfKHr0.js.map} +1 -1
- package/dist/esm/{item-CIIV_ncI.js → item-aP2OcbwT.js} +8 -8
- package/dist/esm/{item-CIIV_ncI.js.map → item-aP2OcbwT.js.map} +1 -1
- package/dist/esm/kol-abbr.entry.js +2 -2
- package/dist/esm/kol-accordion.entry.js +7 -7
- package/dist/esm/kol-alert.entry.js +11 -11
- package/dist/esm/kol-avatar.entry.js +1 -1
- package/dist/esm/kol-badge.entry.js +10 -10
- package/dist/esm/kol-breadcrumb.entry.js +9 -9
- package/dist/esm/kol-button-link.entry.js +10 -10
- package/dist/esm/kol-button.entry.js +10 -10
- package/dist/esm/kol-card.entry.js +11 -11
- package/dist/esm/kol-click-button.entry.js +2 -2
- package/dist/esm/kol-combobox.entry.js +18 -18
- package/dist/esm/kol-details.entry.js +7 -7
- package/dist/esm/kol-dialog.entry.js +13 -13
- package/dist/esm/kol-drawer.entry.js +12 -12
- package/dist/esm/kol-form.entry.js +12 -12
- package/dist/esm/kol-heading.entry.js +1 -1
- package/dist/esm/kol-icon.entry.js +3 -3
- package/dist/esm/kol-image.entry.js +1 -1
- package/dist/esm/kol-input-checkbox.entry.js +17 -17
- package/dist/esm/kol-input-color.entry.js +18 -18
- package/dist/esm/kol-input-date.entry.js +18 -18
- package/dist/esm/kol-input-email.entry.js +20 -20
- package/dist/esm/kol-input-file.entry.js +17 -17
- package/dist/esm/kol-input-number.entry.js +18 -18
- package/dist/esm/kol-input-password.entry.js +20 -20
- package/dist/esm/kol-input-radio.entry.js +17 -17
- package/dist/esm/kol-input-range.entry.js +18 -18
- package/dist/esm/kol-input-text.entry.js +20 -20
- package/dist/esm/kol-kolibri.entry.js +2 -2
- package/dist/esm/kol-link-button.entry.js +10 -10
- package/dist/esm/kol-link.entry.js +10 -10
- package/dist/esm/kol-meter.entry.js +1 -1
- package/dist/esm/kol-modal.entry.js +13 -13
- package/dist/esm/kol-nav.entry.js +13 -13
- package/dist/esm/kol-pagination.entry.js +18 -18
- package/dist/esm/kol-popover-button.entry.js +11 -11
- package/dist/esm/kol-progress.entry.js +1 -1
- package/dist/esm/kol-quote.entry.js +1 -1
- package/dist/esm/kol-select.entry.js +17 -17
- package/dist/esm/kol-single-select.entry.js +18 -18
- package/dist/esm/kol-skeleton.entry.js +2 -2
- package/dist/esm/kol-skip-nav.entry.js +9 -9
- package/dist/esm/kol-spin.entry.js +3 -3
- package/dist/esm/kol-split-button.entry.js +12 -12
- package/dist/esm/kol-table-stateful.entry.js +25 -25
- package/dist/esm/kol-table-stateless.entry.js +19 -19
- package/dist/esm/kol-tabs.entry.js +14 -26
- package/dist/esm/kol-tabs.entry.js.map +1 -1
- package/dist/esm/kol-textarea.entry.js +17 -17
- package/dist/esm/kol-toast-container.entry.js +11 -11
- package/dist/esm/kol-toolbar.entry.js +11 -11
- package/dist/esm/kol-tooltip-wc.entry.js +4 -4
- package/dist/esm/kol-tree-item.entry.js +9 -9
- package/dist/esm/kol-tree.entry.js +1 -1
- package/dist/esm/kol-version.entry.js +9 -9
- package/dist/esm/kolibri.js +3 -3
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{resolve-props-USwvESw_.js → resolve-props-D0-62io3.js} +3 -3
- package/dist/{kolibri/resolve-props-USwvESw_.js.map → esm/resolve-props-D0-62io3.js.map} +1 -1
- package/dist/esm/{scroll-lock-CKJqGGmP.js → scroll-lock-DYMGa60u.js} +3 -3
- package/dist/{kolibri/scroll-lock-CKJqGGmP.js.map → esm/scroll-lock-DYMGa60u.js.map} +1 -1
- package/dist/esm/{suggestions-PclKnJ2U.js → suggestions-Cm-RWrWm.js} +4 -4
- package/dist/esm/{suggestions-PclKnJ2U.js.map → suggestions-Cm-RWrWm.js.map} +1 -1
- package/dist/esm/test-component.entry.js +1 -1
- package/dist/esm/{toggle-handler-BIUmTJk5.js → toggle-handler-D5L4pnQ5.js} +5 -5
- package/dist/esm/{toggle-handler-BIUmTJk5.js.map → toggle-handler-D5L4pnQ5.js.map} +1 -1
- package/dist/kolibri/Heading-DAPZwXCt.js +5 -0
- package/dist/kolibri/{Heading-D2EH5Vz9.js.map → Heading-DAPZwXCt.js.map} +1 -1
- package/dist/kolibri/api-DueenSkb.js +5 -0
- package/dist/{esm/api-DScxu3ou.js.map → kolibri/api-DueenSkb.js.map} +1 -1
- package/dist/kolibri/api-zFp24D1x.js +5 -0
- package/dist/kolibri/{api-CN_pBHgH.js.map → api-zFp24D1x.js.map} +1 -1
- package/dist/kolibri/app-globals-CYRfyhVc.js +5 -0
- package/dist/kolibri/{app-globals-CddJRb3M.js.map → app-globals-CYRfyhVc.js.map} +1 -1
- package/dist/kolibri/{base-DHBpPWDW.js → base-AvIGo8Mp.js} +2 -2
- package/dist/{esm/base-DHBpPWDW.js.map → kolibri/base-AvIGo8Mp.js.map} +1 -1
- package/dist/kolibri/{base-B4XSDJBd.js → base-BU2iT3jv.js} +2 -2
- package/dist/{esm/base-B4XSDJBd.js.map → kolibri/base-BU2iT3jv.js.map} +1 -1
- package/dist/kolibri/{base-DFtj5G32.js → base-BUu1gNpy.js} +2 -2
- package/dist/{esm/base-DFtj5G32.js.map → kolibri/base-BUu1gNpy.js.map} +1 -1
- package/dist/kolibri/base-CjlYs5Fb.js +5 -0
- package/dist/{esm/base-Jvi_AWqL.js.map → kolibri/base-CjlYs5Fb.js.map} +1 -1
- package/dist/kolibri/{base-web-component-D_VU8SGY.js → base-web-component-BEf83bnu.js} +2 -2
- package/dist/kolibri/{base-web-component-D_VU8SGY.js.map → base-web-component-BEf83bnu.js.map} +1 -1
- package/dist/kolibri/{base-web-component-t9oDjRt3.js → base-web-component-C2q-dSOg.js} +2 -2
- package/dist/kolibri/{base-web-component-t9oDjRt3.js.map → base-web-component-C2q-dSOg.js.map} +1 -1
- package/dist/kolibri/{behavior-Dpui_R-v.js → behavior-DCpLHoHs.js} +2 -2
- package/dist/{esm/behavior-Dpui_R-v.js.map → kolibri/behavior-DCpLHoHs.js.map} +1 -1
- package/dist/kolibri/{component-DSKwp72M.js → component-9XV7ykPK.js} +2 -2
- package/dist/{esm/component-DSKwp72M.js.map → kolibri/component-9XV7ykPK.js.map} +1 -1
- package/dist/kolibri/{component-BauANlCU.js → component-B5MUeex-.js} +2 -2
- package/dist/{esm/component-BauANlCU.js.map → kolibri/component-B5MUeex-.js.map} +1 -1
- package/dist/kolibri/component-BR-6tKab.js +5 -0
- package/dist/kolibri/{component-B5OmtChm.js.map → component-BR-6tKab.js.map} +1 -1
- package/dist/kolibri/{component-ArZwqu6c.js → component-Bj13sPTL.js} +2 -2
- package/dist/kolibri/{component-ArZwqu6c.js.map → component-Bj13sPTL.js.map} +1 -1
- package/dist/kolibri/component-BrOA7gRZ.js +5 -0
- package/dist/kolibri/{component-DWiKUdpa.js.map → component-BrOA7gRZ.js.map} +1 -1
- package/dist/kolibri/component-CQJ_jIZm.js +5 -0
- package/dist/kolibri/{component-CoN6ZwTo.js.map → component-CQJ_jIZm.js.map} +1 -1
- package/dist/kolibri/component-Cqcw7JSO.js +5 -0
- package/dist/{esm/component-D6Z14V5i.js.map → kolibri/component-Cqcw7JSO.js.map} +1 -1
- package/dist/kolibri/component-Cy_xOMLd.js +5 -0
- package/dist/kolibri/{component-GqGXpjMZ.js.map → component-Cy_xOMLd.js.map} +1 -1
- package/dist/kolibri/component-DCK-2RQ3.js +5 -0
- package/dist/kolibri/{component-6cLprNJZ.js.map → component-DCK-2RQ3.js.map} +1 -1
- package/dist/kolibri/{component-D0Coq_zE.js → component-DRUoRfdO.js} +2 -2
- package/dist/{esm/component-D0Coq_zE.js.map → kolibri/component-DRUoRfdO.js.map} +1 -1
- package/dist/kolibri/{component-DbsunX7x.js → component-D_xOkOl6.js} +2 -2
- package/dist/{esm/component-DbsunX7x.js.map → kolibri/component-D_xOkOl6.js.map} +1 -1
- package/dist/kolibri/{component-CChFD3b2.js → component-Droc76Vh.js} +2 -2
- package/dist/{esm/component-CChFD3b2.js.map → kolibri/component-Droc76Vh.js.map} +1 -1
- package/dist/kolibri/dev.utils-CWEYl26B.js +5 -0
- package/dist/{esm/dev.utils-DVPKJwhh.js.map → kolibri/dev.utils-CWEYl26B.js.map} +1 -1
- package/dist/kolibri/{devtools-Ctvg6SnM.js → devtools-BfiT_Mej.js} +2 -2
- package/dist/{esm/devtools-Ctvg6SnM.js.map → kolibri/devtools-BfiT_Mej.js.map} +1 -1
- package/dist/kolibri/field-control-BvFIxA5C.js +5 -0
- package/dist/{esm/field-control-CJ-9C7AK.js.map → kolibri/field-control-BvFIxA5C.js.map} +1 -1
- package/dist/kolibri/{group-6LOQ2Eed.js → group-DzNZiu3R.js} +2 -2
- package/dist/kolibri/{group-6LOQ2Eed.js.map → group-DzNZiu3R.js.map} +1 -1
- package/dist/kolibri/{index-BtYjJomD.js → index-CyLMYdnq.js} +2 -2
- package/dist/{esm/index-BtYjJomD.js.map → kolibri/index-CyLMYdnq.js.map} +1 -1
- package/dist/kolibri/input-C55z9I-y.js +5 -0
- package/dist/kolibri/{input-DispvARh.js.map → input-C55z9I-y.js.map} +1 -1
- package/dist/kolibri/{input-container-CVU5Y0-o.js → input-container-28E-ib9E.js} +2 -2
- package/dist/{esm/input-container-CVU5Y0-o.js.map → kolibri/input-container-28E-ib9E.js.map} +1 -1
- package/dist/kolibri/item-Bwz4OUrI.js +5 -0
- package/dist/kolibri/{item-BShglo-p.js.map → item-Bwz4OUrI.js.map} +1 -1
- package/dist/kolibri/item-CuhPkC8A.js +5 -0
- package/dist/kolibri/{item-CD8r4zxe.js.map → item-CuhPkC8A.js.map} +1 -1
- package/dist/kolibri/{item-Cj7w26xK.js → item-HQBfKHr0.js} +2 -2
- package/dist/kolibri/{item-Cj7w26xK.js.map → item-HQBfKHr0.js.map} +1 -1
- package/dist/kolibri/item-aP2OcbwT.js +5 -0
- package/dist/kolibri/{item-CIIV_ncI.js.map → item-aP2OcbwT.js.map} +1 -1
- package/dist/kolibri/kol-abbr.entry.js +1 -1
- package/dist/kolibri/kol-accordion.entry.js +1 -1
- package/dist/kolibri/kol-alert.entry.js +1 -1
- package/dist/kolibri/kol-avatar.entry.js +1 -1
- package/dist/kolibri/kol-badge.entry.js +1 -1
- package/dist/kolibri/kol-breadcrumb.entry.js +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-card.entry.js +1 -1
- package/dist/kolibri/kol-click-button.entry.js +1 -1
- package/dist/kolibri/kol-combobox.entry.js +1 -1
- package/dist/kolibri/kol-combobox.entry.js.map +1 -1
- package/dist/kolibri/kol-details.entry.js +1 -1
- package/dist/kolibri/kol-dialog.entry.js +1 -1
- package/dist/kolibri/kol-drawer.entry.js +1 -1
- package/dist/kolibri/kol-form.entry.js +1 -1
- package/dist/kolibri/kol-heading.entry.js +1 -1
- package/dist/kolibri/kol-icon.entry.js +1 -1
- package/dist/kolibri/kol-image.entry.js +1 -1
- package/dist/kolibri/kol-input-checkbox.entry.js +1 -1
- package/dist/kolibri/kol-input-color.entry.js +1 -1
- package/dist/kolibri/kol-input-date.entry.js +1 -1
- package/dist/kolibri/kol-input-email.entry.js +1 -1
- package/dist/kolibri/kol-input-file.entry.js +1 -1
- package/dist/kolibri/kol-input-number.entry.js +1 -1
- package/dist/kolibri/kol-input-password.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-text.entry.js +1 -1
- package/dist/kolibri/kol-kolibri.entry.js +1 -1
- package/dist/kolibri/kol-link-button.entry.js +1 -1
- package/dist/kolibri/kol-link.entry.js +1 -1
- package/dist/kolibri/kol-meter.entry.js +1 -1
- package/dist/kolibri/kol-modal.entry.js +1 -1
- package/dist/kolibri/kol-nav.entry.js +1 -1
- package/dist/kolibri/kol-pagination.entry.js +1 -1
- package/dist/kolibri/kol-popover-button.entry.js +1 -1
- package/dist/kolibri/kol-progress.entry.js +1 -1
- package/dist/kolibri/kol-quote.entry.js +1 -1
- package/dist/kolibri/kol-select.entry.js +1 -1
- package/dist/kolibri/kol-single-select.entry.js +1 -1
- package/dist/kolibri/kol-single-select.entry.js.map +1 -1
- package/dist/kolibri/kol-skeleton.entry.js +1 -1
- package/dist/kolibri/kol-skeleton.entry.js.map +1 -1
- package/dist/kolibri/kol-skip-nav.entry.js +1 -1
- package/dist/kolibri/kol-spin.entry.js +1 -1
- package/dist/kolibri/kol-split-button.entry.js +1 -1
- package/dist/kolibri/kol-table-stateful.entry.js +1 -1
- package/dist/kolibri/kol-table-stateless.entry.js +1 -1
- package/dist/kolibri/kol-tabs.entry.esm.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-toast-container.entry.js +1 -1
- package/dist/kolibri/kol-toolbar.entry.js +1 -1
- package/dist/kolibri/kol-tooltip-wc.entry.js +1 -1
- package/dist/kolibri/kol-tree-item.entry.js +1 -1
- package/dist/kolibri/kol-tree.entry.js +1 -1
- package/dist/kolibri/kol-version.entry.js +1 -1
- package/dist/kolibri/kolibri.esm.js +1 -1
- package/dist/kolibri/resolve-props-D0-62io3.js +5 -0
- package/dist/{esm/resolve-props-USwvESw_.js.map → kolibri/resolve-props-D0-62io3.js.map} +1 -1
- package/dist/kolibri/{scroll-lock-CKJqGGmP.js → scroll-lock-DYMGa60u.js} +2 -2
- package/dist/{esm/scroll-lock-CKJqGGmP.js.map → kolibri/scroll-lock-DYMGa60u.js.map} +1 -1
- package/dist/kolibri/{suggestions-PclKnJ2U.js → suggestions-Cm-RWrWm.js} +2 -2
- package/dist/kolibri/{suggestions-PclKnJ2U.js.map → suggestions-Cm-RWrWm.js.map} +1 -1
- package/dist/kolibri/test-component.entry.js +1 -1
- package/dist/kolibri/{toggle-handler-BIUmTJk5.js → toggle-handler-D5L4pnQ5.js} +2 -2
- package/dist/kolibri/{toggle-handler-BIUmTJk5.js.map → toggle-handler-D5L4pnQ5.js.map} +1 -1
- package/package.json +4 -4
- package/dist/kolibri/Heading-D2EH5Vz9.js +0 -5
- package/dist/kolibri/api-CN_pBHgH.js +0 -5
- package/dist/kolibri/api-DScxu3ou.js +0 -5
- package/dist/kolibri/app-globals-CddJRb3M.js +0 -5
- package/dist/kolibri/base-Jvi_AWqL.js +0 -5
- package/dist/kolibri/component-6cLprNJZ.js +0 -5
- package/dist/kolibri/component-B5OmtChm.js +0 -5
- package/dist/kolibri/component-CoN6ZwTo.js +0 -5
- package/dist/kolibri/component-D6Z14V5i.js +0 -5
- package/dist/kolibri/component-DWiKUdpa.js +0 -5
- package/dist/kolibri/component-GqGXpjMZ.js +0 -5
- package/dist/kolibri/dev.utils-DVPKJwhh.js +0 -5
- package/dist/kolibri/field-control-CJ-9C7AK.js +0 -5
- package/dist/kolibri/input-DispvARh.js +0 -5
- package/dist/kolibri/item-BShglo-p.js +0 -5
- package/dist/kolibri/item-CD8r4zxe.js +0 -5
- package/dist/kolibri/item-CIIV_ncI.js +0 -5
- package/dist/kolibri/resolve-props-USwvESw_.js +0 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-CVLHbu6O.js","sources":["src/components/button/base.tsx"],"sourcesContent":["import type { JSX } from '@stencil/core';\nimport { h } from '@stencil/core';\nimport { getFeatureFlag } from 'adopted-style-sheets';\n\nimport { BaseWebComponent } from '../../internal/functional-components/base-web-component';\nimport type { ButtonApi } from '../../internal/functional-components/button/api';\nimport { buttonPropsConfig } from '../../internal/functional-components/button/api';\nimport { ButtonFC } from '../../internal/functional-components/button/component';\nimport { FormAssociationBehavior } from '../../internal/functional-components/form-association/behavior';\nimport type { FunctionalComponentProps } from '../../internal/functional-components/generic-types';\nimport { TooltipBehavior } from '../../internal/functional-components/tooltip/behavior';\nimport {\n\taccessKeyProp,\n\tariaControlsProp,\n\tariaDescriptionProp,\n\tariaExpandedProp,\n\tariaHasPopupProp,\n\tariaSelectedProp,\n\tbuttonCallbacksProp,\n\tbuttonTypeProp,\n\tcustomClassProp,\n\tdisabledProp,\n\thideLabelProp,\n\tidProp,\n\tinlineProp,\n\tlabelWithExpertSlotProp,\n\tlinkRoleProp,\n\tnameProp,\n\tshortKeyProp,\n\tspanIconsProp,\n\ttabIndexProp,\n\ttooltipAlignProp,\n\tvariantProp,\n} from '../../internal/props';\nimport type {\n\tAccessKeyPropType,\n\tAlternativeButtonLinkRolePropType,\n\tAriaDescriptionPropType,\n\tButtonCallbacksPropType,\n\tButtonTypePropType,\n\tCustomClassPropType,\n\tIconsPropType,\n\tIdPropType,\n\tInlinePropType,\n\tLabelWithExpertSlotPropType,\n\tShortKeyPropType,\n\tStencilUnknown,\n\tSyncValueBySelectorPropType,\n\tTooltipAlignPropType,\n\tVariantClassNamePropType,\n} from '../../schema';\nimport { setEventTarget } from '../../schema';\nimport type { AriaHasPopupPropType } from '../../schema/props/aria-has-popup';\nimport { validateAccessAndShortKey } from '../../schema/validators/access-and-short-key';\nimport { createCtaRef } from '../../utils/element-interaction';\nimport { dispatchDomEvent, KolEvent } from '../../utils/events';\nimport { propagateResetEventToForm, propagateSubmitEventToForm } from '../form/controller';\n\n/**\n * Shared orchestrator implementation for every custom element that renders `ButtonFC`:\n * `kol-button`, `kol-button-link` and `kol-split-button`.\n *\n * The class carries everything that does not need a Stencil decorator — the composed\n * `TooltipBehavior`, the form-association adapter, the event handlers, one `apply*` method per\n * prop and the `ButtonFC` render call. The concrete element keeps what Stencil has to see in the\n * component class itself: `@Component`, `@Element`, `@State`, `@Method`, every `@Prop` with its\n * `@Watch` (whose body is a one-line call into the matching `apply*` method) and the lifecycle\n * methods, which delegate here (ARC42 § 9, design decision 16).\n *\n * This is not a layer between the web component and the functional component — it *is* the web\n * component's implementation, shared between the tag variants of one FC.\n */\nexport abstract class BaseButtonWebComponent extends BaseWebComponent<ButtonApi> {\n\t/** The custom element; declared with `@Element()` by the concrete class. */\n\tprotected abstract readonly host?: HTMLElement;\n\n\tprotected readonly ctaRef = createCtaRef<HTMLButtonElement>();\n\n\t// --- Composed behaviors ---\n\n\tprotected readonly tooltipBehavior = new TooltipBehavior(this.stateAccess);\n\n\tprivate formAssociation!: FormAssociationBehavior;\n\n\t/**\n\t * The raw `_value`. It is neither rendered nor normalized (see `buttonPropsConfig`), but the\n\t * click handler hands it to the consumer callback and the custom event, so the last applied\n\t * value is kept here.\n\t */\n\tprivate formValue?: StencilUnknown;\n\n\t/**\n\t * Creates the form association. Must be called from the concrete element's constructor (after\n\t * `super()`), not from this base class's constructor: Stencil registers the host element at the\n\t * start of the *component* class's constructor, so `this.host` is only populated once the base\n\t * constructor has returned.\n\t *\n\t * No name is passed, because the name is only applied in `componentWillLoad`. The button therefore\n\t * never creates a hidden form element (#11036).\n\t */\n\tprotected initFormAssociation(): void {\n\t\tthis.formAssociation = new FormAssociationBehavior(BaseWebComponent.stateLess, { host: this.host, type: 'button' });\n\t}\n\n\t// --- Lifecycle helpers (called from the concrete element's lifecycle methods) ---\n\n\t/**\n\t * Seeds the render props. Call first in `componentWillLoad`, before the prop watchers run.\n\t */\n\tprotected initButtonRenderProps(): void {\n\t\tthis.initRenderProps(buttonPropsConfig);\n\t\t// Seed `tabIndex` as unset before any watcher runs: an unset tabindex must not render as\n\t\t// `tabindex=\"0\"` — buttons are natively tabbable and the attribute would pin them into the\n\t\t// document tab order. `applyTabIndex` does the same for elements that expose `_tabIndex`,\n\t\t// but a `shadow: false` element can abort mid-initialization under SSR (the form association\n\t\t// finds no host with a shadow root, because `instanceof Element` fails in Stencil's mock DOM,\n\t\t// then throws on `attachInternals(undefined)`, and Stencil swallows the error but renders\n\t\t// anyway, #11034). Without this line the props config default `0` would survive such an abort.\n\t\tthis.unsetRenderProp('tabIndex');\n\t}\n\n\t/**\n\t * Hands the resolved label and alignment to the tooltip behavior. Call last in\n\t * `componentWillLoad`, after every prop watcher has run.\n\t */\n\tprotected initTooltipBehavior(): void {\n\t\tthis.tooltipBehavior.componentWillLoad({\n\t\t\tlabel: this.getRenderProp('label'),\n\t\t\talign: this.getRenderProp('tooltipAlign'),\n\t\t});\n\t}\n\n\t/** Call from `componentDidRender`. */\n\tprotected syncTooltipListeners(): void {\n\t\tif (this.ctaRef.el) {\n\t\t\tthis.tooltipBehavior.syncListeners(undefined, this.ctaRef.el, true);\n\t\t}\n\t}\n\n\t/** Call from `disconnectedCallback`. */\n\tprotected destroyTooltipBehavior(): void {\n\t\tthis.tooltipBehavior.destroy();\n\t}\n\n\t// --- Event handling ---\n\n\tprotected readonly handleClick = (event: MouseEvent): void => {\n\t\tevent.stopPropagation();\n\t\tthis.tooltipBehavior.hideTooltip();\n\n\t\tconst type = this.getRenderProp('type');\n\t\tif (type === 'submit') {\n\t\t\tpropagateSubmitEventToForm({ form: this.host, ref: this.ctaRef.el });\n\t\t} else if (type === 'reset') {\n\t\t\tpropagateResetEventToForm({ form: this.host, ref: this.ctaRef.el });\n\t\t} else {\n\t\t\t// TODO: Static form handling\n\t\t\tthis.formAssociation.setFormAssociatedValue(this.formValue);\n\n\t\t\tconst onClick = this.getRenderProp('on').onClick;\n\t\t\tif (typeof onClick === 'function') {\n\t\t\t\tsetEventTarget(event, this.ctaRef.el);\n\t\t\t\tonClick(event, this.formValue);\n\t\t\t}\n\t\t}\n\n\t\tif (this.host) {\n\t\t\tdispatchDomEvent(this.host, KolEvent.click, this.formValue);\n\t\t}\n\t};\n\n\tprotected readonly handleMouseDown = (event: MouseEvent): void => {\n\t\tthis.getRenderProp('on').onMouseDown?.(event);\n\t\tif (this.host) {\n\t\t\tdispatchDomEvent(this.host, KolEvent.mousedown);\n\t\t}\n\t};\n\n\tprotected readonly handleFocus = (event: FocusEvent): void => {\n\t\tthis.getRenderProp('on').onFocus?.(event);\n\t\tif (this.host) {\n\t\t\tdispatchDomEvent(this.host, KolEvent.focus);\n\t\t}\n\t};\n\n\tprotected readonly handleBlur = (event: FocusEvent): void => {\n\t\tthis.getRenderProp('on').onBlur?.(event);\n\t\tif (this.host) {\n\t\t\tdispatchDomEvent(this.host, KolEvent.blur);\n\t\t}\n\t};\n\n\t// --- Prop application (one per prop; the concrete element's watchers delegate here) ---\n\n\tprotected applyAccessKey(value?: AccessKeyPropType, shortKey?: ShortKeyPropType): void {\n\t\taccessKeyProp.apply(value, (v) => this.setRenderProp('accessKey', v));\n\t\tvalidateAccessAndShortKey(value, shortKey);\n\t}\n\n\tprotected applyAriaControls(value?: string): void {\n\t\tariaControlsProp.apply(value, (v) => this.setRenderProp('ariaControls', v));\n\t}\n\n\tprotected applyAriaDescription(value?: AriaDescriptionPropType): void {\n\t\tariaDescriptionProp.apply(value, (v) => this.setRenderProp('ariaDescription', v));\n\t}\n\n\tprotected applyAriaExpanded(value?: boolean): void {\n\t\tariaExpandedProp.apply(value, (v) => this.setRenderProp('ariaExpanded', v));\n\t}\n\n\tprotected applyAriaHasPopup(value?: AriaHasPopupPropType): void {\n\t\tariaHasPopupProp.apply(value, (v) => this.setRenderProp('ariaHasPopup', v));\n\t}\n\n\tprotected applyAriaSelected(value?: boolean): void {\n\t\tariaSelectedProp.apply(value, (v) => this.setRenderProp('ariaSelected', v));\n\t}\n\n\tprotected applyCustomClass(value?: CustomClassPropType): void {\n\t\tcustomClassProp.apply(value, (v) => this.setRenderProp('customClass', v));\n\t}\n\n\tprotected applyDisabled(value?: boolean): void {\n\t\tdisabledProp.apply(value, (v) => this.setRenderProp('disabled', v));\n\t}\n\n\tprotected applyHideLabel(value?: boolean): void {\n\t\thideLabelProp.apply(value, (v) => this.setRenderProp('hideLabel', v));\n\t}\n\n\tprotected applyIcons(value?: IconsPropType): void {\n\t\tspanIconsProp.apply(value, (v) => this.setRenderProp('icons', v));\n\t}\n\n\tprotected applyId(value?: IdPropType): void {\n\t\tidProp.apply(value, (v) => this.setRenderProp('id', v));\n\t}\n\n\tprotected applyInline(value?: InlinePropType): void {\n\t\tinlineProp.apply(value, (v) => this.setRenderProp('inline', v));\n\t}\n\n\tprotected applyLabel(value?: LabelWithExpertSlotPropType): void {\n\t\tlabelWithExpertSlotProp.apply(value, (v) => {\n\t\t\tthis.setRenderProp('label', v);\n\t\t\tthis.tooltipBehavior.watchLabel(v);\n\t\t});\n\t}\n\n\tprotected applyName(value?: string): void {\n\t\tnameProp.apply(value, (v) => this.setRenderProp('name', v));\n\t\tthis.formAssociation.watchName(value);\n\t}\n\n\tprotected applyOn(value?: ButtonCallbacksPropType<StencilUnknown>): void {\n\t\tbuttonCallbacksProp.apply(value, (v) => this.setRenderProp('on', v));\n\t}\n\n\tprotected applyRole(value?: AlternativeButtonLinkRolePropType): void {\n\t\tlinkRoleProp.apply(value, (v) => this.setRenderProp('role', v));\n\t}\n\n\tprotected applyShortKey(value?: ShortKeyPropType, accessKey?: AccessKeyPropType): void {\n\t\tshortKeyProp.apply(value, (v) => this.setRenderProp('shortKey', v));\n\t\tvalidateAccessAndShortKey(accessKey, value);\n\t}\n\n\tprotected applySyncValueBySelector(value?: SyncValueBySelectorPropType): void {\n\t\tthis.formAssociation.watchSyncValueBySelector(value);\n\t}\n\n\tprotected applyTabIndex(value?: number): void {\n\t\t// The props config seeds `tabIndex` with its default `0`, but an unset tabindex must not\n\t\t// render as `tabindex=\"0\"` — buttons are natively tabbable and the attribute would pin them\n\t\t// into the document tab order. Unsetting the prop has to restore that state, so the else\n\t\t// branch is not optional: without it a reset would keep the previous number.\n\t\tif (typeof value === 'number') {\n\t\t\ttabIndexProp.apply(value, (v) => this.setRenderProp('tabIndex', v));\n\t\t} else {\n\t\t\tthis.unsetRenderProp('tabIndex');\n\t\t}\n\t}\n\n\tprotected applyTooltipAlign(value?: TooltipAlignPropType): void {\n\t\ttooltipAlignProp.apply(value, (v) => {\n\t\t\tthis.setRenderProp('tooltipAlign', v);\n\t\t\tthis.tooltipBehavior.watchAlign(v);\n\t\t});\n\t}\n\n\tprotected applyType(value?: ButtonTypePropType): void {\n\t\tbuttonTypeProp.apply(value, (v) => this.setRenderProp('type', v));\n\t}\n\n\tprotected applyValue(value?: StencilUnknown): void {\n\t\tthis.formValue = value;\n\t\tthis.formAssociation.setFormAssociatedValue(value);\n\t}\n\n\tprotected applyVariant(value?: VariantClassNamePropType): void {\n\t\t// Resolved here rather than as a `@Prop` default: a field initializer runs in the\n\t\t// constructor, where `@Element()` is not yet populated for a `shadow: false` element under\n\t\t// SSR, so the theme-scoped feature flag would silently be ignored there. Keeping it a\n\t\t// fallback also leaves the public API unchanged. The rendered default is `normal` either way.\n\t\tvariantProp.apply(value ?? getFeatureFlag('buttonVariantDefault', this.host) ?? 'normal', (v) => this.setRenderProp('variant', v));\n\t}\n\n\t// --- Render ---\n\n\t/**\n\t * Collects the current render props and state into the prop set `ButtonFC` expects. Separate\n\t * from `renderButtonFC` because a component that embeds the button inside its own markup\n\t * (`kol-split-button`) hands the set to its own functional component instead of rendering the\n\t * button here.\n\t */\n\tprotected getButtonFCProps(): FunctionalComponentProps<ButtonApi> {\n\t\treturn {\n\t\t\taccessKey: this.getRenderProp('accessKey'),\n\t\t\tariaControls: this.getRenderProp('ariaControls'),\n\t\t\tariaDescription: this.getRenderProp('ariaDescription'),\n\t\t\tariaDescriptionId: this.getState('ariaDescriptionId'),\n\t\t\tariaExpanded: this.getRenderProp('ariaExpanded'),\n\t\t\tariaHasPopup: this.getRenderProp('ariaHasPopup'),\n\t\t\tariaSelected: this.getRenderProp('ariaSelected'),\n\t\t\tcustomClass: this.getRenderProp('customClass'),\n\t\t\tdisabled: this.getRenderProp('disabled'),\n\t\t\thandleBlur: this.handleBlur,\n\t\t\thandleClick: this.handleClick,\n\t\t\thandleFocus: this.handleFocus,\n\t\t\thandleMouseDown: this.handleMouseDown,\n\t\t\thideLabel: this.getRenderProp('hideLabel'),\n\t\t\ticons: this.getRenderProp('icons'),\n\t\t\tid: this.getRenderProp('id'),\n\t\t\tinline: this.getRenderProp('inline'),\n\t\t\tlabel: this.getRenderProp('label'),\n\t\t\tname: this.getRenderProp('name'),\n\t\t\ton: this.getRenderProp('on'),\n\t\t\trefButton: this.ctaRef,\n\t\t\trefTooltip: this.tooltipBehavior.setTooltipElementRef,\n\t\t\trole: this.getRenderProp('role'),\n\t\t\tshortKey: this.getRenderProp('shortKey'),\n\t\t\ttabIndex: this.getRenderProp('tabIndex'),\n\t\t\ttooltipAlign: this.getRenderProp('tooltipAlign'),\n\t\t\ttype: this.getRenderProp('type'),\n\t\t\tvariant: this.getRenderProp('variant'),\n\t\t};\n\t}\n\n\t/** Renders `ButtonFC` from the current render props and state. */\n\tprotected renderButtonFC(): JSX.Element {\n\t\treturn <ButtonFC {...this.getButtonFCProps()} />;\n\t}\n}\n"],"names":["BaseWebComponent","createCtaRef","TooltipBehavior","propagateSubmitEventToForm","propagateResetEventToForm","setEventTarget","dispatchDomEvent","KolEvent","FormAssociationBehavior","buttonPropsConfig","accessKeyProp","validateAccessAndShortKey","ariaControlsProp","ariaDescriptionProp","ariaExpandedProp","ariaHasPopupProp","ariaSelectedProp","customClassProp","disabledProp","hideLabelProp","spanIconsProp","idProp","inlineProp","labelWithExpertSlotProp","nameProp","buttonCallbacksProp","linkRoleProp","shortKeyProp","tabIndexProp","tooltipAlignProp","buttonTypeProp","variantProp","getFeatureFlag","h","ButtonFC"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"base-xR4eDUJg.js","sources":["src/components/button/base.tsx"],"sourcesContent":["import type { JSX } from '@stencil/core';\nimport { h } from '@stencil/core';\nimport { getFeatureFlag } from 'adopted-style-sheets';\n\nimport { BaseWebComponent } from '../../internal/functional-components/base-web-component';\nimport type { ButtonApi } from '../../internal/functional-components/button/api';\nimport { buttonPropsConfig } from '../../internal/functional-components/button/api';\nimport { ButtonFC } from '../../internal/functional-components/button/component';\nimport { FormAssociationBehavior } from '../../internal/functional-components/form-association/behavior';\nimport type { FunctionalComponentProps } from '../../internal/functional-components/generic-types';\nimport { TooltipBehavior } from '../../internal/functional-components/tooltip/behavior';\nimport {\n\taccessKeyProp,\n\tariaControlsProp,\n\tariaDescriptionProp,\n\tariaExpandedProp,\n\tariaHasPopupProp,\n\tariaSelectedProp,\n\tbuttonCallbacksProp,\n\tbuttonTypeProp,\n\tcustomClassProp,\n\tdisabledProp,\n\thideLabelProp,\n\tidProp,\n\tinlineProp,\n\tlabelWithExpertSlotProp,\n\tlinkRoleProp,\n\tnameProp,\n\tshortKeyProp,\n\tspanIconsProp,\n\ttabIndexProp,\n\ttooltipAlignProp,\n\tvariantProp,\n} from '../../internal/props';\nimport type {\n\tAccessKeyPropType,\n\tAlternativeButtonLinkRolePropType,\n\tAriaDescriptionPropType,\n\tButtonCallbacksPropType,\n\tButtonTypePropType,\n\tCustomClassPropType,\n\tIconsPropType,\n\tIdPropType,\n\tInlinePropType,\n\tLabelWithExpertSlotPropType,\n\tShortKeyPropType,\n\tStencilUnknown,\n\tSyncValueBySelectorPropType,\n\tTooltipAlignPropType,\n\tVariantClassNamePropType,\n} from '../../schema';\nimport { setEventTarget } from '../../schema';\nimport type { AriaHasPopupPropType } from '../../schema/props/aria-has-popup';\nimport { validateAccessAndShortKey } from '../../schema/validators/access-and-short-key';\nimport { createCtaRef } from '../../utils/element-interaction';\nimport { dispatchDomEvent, KolEvent } from '../../utils/events';\nimport { propagateResetEventToForm, propagateSubmitEventToForm } from '../form/controller';\n\n/**\n * Shared orchestrator implementation for every custom element that renders `ButtonFC`:\n * `kol-button`, `kol-button-link` and `kol-split-button`.\n *\n * The class carries everything that does not need a Stencil decorator — the composed\n * `TooltipBehavior`, the form-association adapter, the event handlers, one `apply*` method per\n * prop and the `ButtonFC` render call. The concrete element keeps what Stencil has to see in the\n * component class itself: `@Component`, `@Element`, `@State`, `@Method`, every `@Prop` with its\n * `@Watch` (whose body is a one-line call into the matching `apply*` method) and the lifecycle\n * methods, which delegate here (ARC42 § 9, design decision 16).\n *\n * This is not a layer between the web component and the functional component — it *is* the web\n * component's implementation, shared between the tag variants of one FC.\n */\nexport abstract class BaseButtonWebComponent extends BaseWebComponent<ButtonApi> {\n\t/** The custom element; declared with `@Element()` by the concrete class. */\n\tprotected abstract readonly host?: HTMLElement;\n\n\tprotected readonly ctaRef = createCtaRef<HTMLButtonElement>();\n\n\t// --- Composed behaviors ---\n\n\tprotected readonly tooltipBehavior = new TooltipBehavior(this.stateAccess);\n\n\tprivate formAssociation!: FormAssociationBehavior;\n\n\t/**\n\t * The raw `_value`. It is neither rendered nor normalized (see `buttonPropsConfig`), but the\n\t * click handler hands it to the consumer callback and the custom event, so the last applied\n\t * value is kept here.\n\t */\n\tprivate formValue?: StencilUnknown;\n\n\t/**\n\t * Creates the form association. Must be called from the concrete element's constructor (after\n\t * `super()`), not from this base class's constructor: Stencil registers the host element at the\n\t * start of the *component* class's constructor, so `this.host` is only populated once the base\n\t * constructor has returned.\n\t *\n\t * No name is passed, because the name is only applied in `componentWillLoad`. The button therefore\n\t * never creates a hidden form element (#11036).\n\t */\n\tprotected initFormAssociation(): void {\n\t\tthis.formAssociation = new FormAssociationBehavior(BaseWebComponent.stateLess, { host: this.host, type: 'button' });\n\t}\n\n\t// --- Lifecycle helpers (called from the concrete element's lifecycle methods) ---\n\n\t/**\n\t * Seeds the render props. Call first in `componentWillLoad`, before the prop watchers run.\n\t */\n\tprotected initButtonRenderProps(): void {\n\t\tthis.initRenderProps(buttonPropsConfig);\n\t\t// Seed `tabIndex` as unset before any watcher runs: an unset tabindex must not render as\n\t\t// `tabindex=\"0\"` — buttons are natively tabbable and the attribute would pin them into the\n\t\t// document tab order. `applyTabIndex` does the same for elements that expose `_tabIndex`,\n\t\t// but a `shadow: false` element can abort mid-initialization under SSR (the form association\n\t\t// finds no host with a shadow root, because `instanceof Element` fails in Stencil's mock DOM,\n\t\t// then throws on `attachInternals(undefined)`, and Stencil swallows the error but renders\n\t\t// anyway, #11034). Without this line the props config default `0` would survive such an abort.\n\t\tthis.unsetRenderProp('tabIndex');\n\t}\n\n\t/**\n\t * Hands the resolved label and alignment to the tooltip behavior. Call last in\n\t * `componentWillLoad`, after every prop watcher has run.\n\t */\n\tprotected initTooltipBehavior(): void {\n\t\tthis.tooltipBehavior.componentWillLoad({\n\t\t\tlabel: this.getRenderProp('label'),\n\t\t\talign: this.getRenderProp('tooltipAlign'),\n\t\t});\n\t}\n\n\t/** Call from `componentDidRender`. */\n\tprotected syncTooltipListeners(): void {\n\t\tif (this.ctaRef.el) {\n\t\t\tthis.tooltipBehavior.syncListeners(undefined, this.ctaRef.el, true);\n\t\t}\n\t}\n\n\t/** Call from `disconnectedCallback`. */\n\tprotected destroyTooltipBehavior(): void {\n\t\tthis.tooltipBehavior.destroy();\n\t}\n\n\t// --- Event handling ---\n\n\tprotected readonly handleClick = (event: MouseEvent): void => {\n\t\tevent.stopPropagation();\n\t\tthis.tooltipBehavior.hideTooltip();\n\n\t\tconst type = this.getRenderProp('type');\n\t\tif (type === 'submit') {\n\t\t\tpropagateSubmitEventToForm({ form: this.host, ref: this.ctaRef.el });\n\t\t} else if (type === 'reset') {\n\t\t\tpropagateResetEventToForm({ form: this.host, ref: this.ctaRef.el });\n\t\t} else {\n\t\t\t// TODO: Static form handling\n\t\t\tthis.formAssociation.setFormAssociatedValue(this.formValue);\n\n\t\t\tconst onClick = this.getRenderProp('on').onClick;\n\t\t\tif (typeof onClick === 'function') {\n\t\t\t\tsetEventTarget(event, this.ctaRef.el);\n\t\t\t\tonClick(event, this.formValue);\n\t\t\t}\n\t\t}\n\n\t\tif (this.host) {\n\t\t\tdispatchDomEvent(this.host, KolEvent.click, this.formValue);\n\t\t}\n\t};\n\n\tprotected readonly handleMouseDown = (event: MouseEvent): void => {\n\t\tthis.getRenderProp('on').onMouseDown?.(event);\n\t\tif (this.host) {\n\t\t\tdispatchDomEvent(this.host, KolEvent.mousedown);\n\t\t}\n\t};\n\n\tprotected readonly handleFocus = (event: FocusEvent): void => {\n\t\tthis.getRenderProp('on').onFocus?.(event);\n\t\tif (this.host) {\n\t\t\tdispatchDomEvent(this.host, KolEvent.focus);\n\t\t}\n\t};\n\n\tprotected readonly handleBlur = (event: FocusEvent): void => {\n\t\tthis.getRenderProp('on').onBlur?.(event);\n\t\tif (this.host) {\n\t\t\tdispatchDomEvent(this.host, KolEvent.blur);\n\t\t}\n\t};\n\n\t// --- Prop application (one per prop; the concrete element's watchers delegate here) ---\n\n\tprotected applyAccessKey(value?: AccessKeyPropType, shortKey?: ShortKeyPropType): void {\n\t\taccessKeyProp.apply(value, (v) => this.setRenderProp('accessKey', v));\n\t\tvalidateAccessAndShortKey(value, shortKey);\n\t}\n\n\tprotected applyAriaControls(value?: string): void {\n\t\tariaControlsProp.apply(value, (v) => this.setRenderProp('ariaControls', v));\n\t}\n\n\tprotected applyAriaDescription(value?: AriaDescriptionPropType): void {\n\t\tariaDescriptionProp.apply(value, (v) => this.setRenderProp('ariaDescription', v));\n\t}\n\n\tprotected applyAriaExpanded(value?: boolean): void {\n\t\tariaExpandedProp.apply(value, (v) => this.setRenderProp('ariaExpanded', v));\n\t}\n\n\tprotected applyAriaHasPopup(value?: AriaHasPopupPropType): void {\n\t\tariaHasPopupProp.apply(value, (v) => this.setRenderProp('ariaHasPopup', v));\n\t}\n\n\tprotected applyAriaSelected(value?: boolean): void {\n\t\tariaSelectedProp.apply(value, (v) => this.setRenderProp('ariaSelected', v));\n\t}\n\n\tprotected applyCustomClass(value?: CustomClassPropType): void {\n\t\tcustomClassProp.apply(value, (v) => this.setRenderProp('customClass', v));\n\t}\n\n\tprotected applyDisabled(value?: boolean): void {\n\t\tdisabledProp.apply(value, (v) => this.setRenderProp('disabled', v));\n\t}\n\n\tprotected applyHideLabel(value?: boolean): void {\n\t\thideLabelProp.apply(value, (v) => this.setRenderProp('hideLabel', v));\n\t}\n\n\tprotected applyIcons(value?: IconsPropType): void {\n\t\tspanIconsProp.apply(value, (v) => this.setRenderProp('icons', v));\n\t}\n\n\tprotected applyId(value?: IdPropType): void {\n\t\tidProp.apply(value, (v) => this.setRenderProp('id', v));\n\t}\n\n\tprotected applyInline(value?: InlinePropType): void {\n\t\tinlineProp.apply(value, (v) => this.setRenderProp('inline', v));\n\t}\n\n\tprotected applyLabel(value?: LabelWithExpertSlotPropType): void {\n\t\tlabelWithExpertSlotProp.apply(value, (v) => {\n\t\t\tthis.setRenderProp('label', v);\n\t\t\tthis.tooltipBehavior.watchLabel(v);\n\t\t});\n\t}\n\n\tprotected applyName(value?: string): void {\n\t\tnameProp.apply(value, (v) => this.setRenderProp('name', v));\n\t\tthis.formAssociation.watchName(value);\n\t}\n\n\tprotected applyOn(value?: ButtonCallbacksPropType<StencilUnknown>): void {\n\t\tbuttonCallbacksProp.apply(value, (v) => this.setRenderProp('on', v));\n\t}\n\n\tprotected applyRole(value?: AlternativeButtonLinkRolePropType): void {\n\t\tlinkRoleProp.apply(value, (v) => this.setRenderProp('role', v));\n\t}\n\n\tprotected applyShortKey(value?: ShortKeyPropType, accessKey?: AccessKeyPropType): void {\n\t\tshortKeyProp.apply(value, (v) => this.setRenderProp('shortKey', v));\n\t\tvalidateAccessAndShortKey(accessKey, value);\n\t}\n\n\tprotected applySyncValueBySelector(value?: SyncValueBySelectorPropType): void {\n\t\tthis.formAssociation.watchSyncValueBySelector(value);\n\t}\n\n\tprotected applyTabIndex(value?: number): void {\n\t\t// The props config seeds `tabIndex` with its default `0`, but an unset tabindex must not\n\t\t// render as `tabindex=\"0\"` — buttons are natively tabbable and the attribute would pin them\n\t\t// into the document tab order. Unsetting the prop has to restore that state, so the else\n\t\t// branch is not optional: without it a reset would keep the previous number.\n\t\tif (typeof value === 'number') {\n\t\t\ttabIndexProp.apply(value, (v) => this.setRenderProp('tabIndex', v));\n\t\t} else {\n\t\t\tthis.unsetRenderProp('tabIndex');\n\t\t}\n\t}\n\n\tprotected applyTooltipAlign(value?: TooltipAlignPropType): void {\n\t\ttooltipAlignProp.apply(value, (v) => {\n\t\t\tthis.setRenderProp('tooltipAlign', v);\n\t\t\tthis.tooltipBehavior.watchAlign(v);\n\t\t});\n\t}\n\n\tprotected applyType(value?: ButtonTypePropType): void {\n\t\tbuttonTypeProp.apply(value, (v) => this.setRenderProp('type', v));\n\t}\n\n\tprotected applyValue(value?: StencilUnknown): void {\n\t\tthis.formValue = value;\n\t\tthis.formAssociation.setFormAssociatedValue(value);\n\t}\n\n\tprotected applyVariant(value?: VariantClassNamePropType): void {\n\t\t// Resolved here rather than as a `@Prop` default: a field initializer runs in the\n\t\t// constructor, where `@Element()` is not yet populated for a `shadow: false` element under\n\t\t// SSR, so the theme-scoped feature flag would silently be ignored there. Keeping it a\n\t\t// fallback also leaves the public API unchanged. The rendered default is `normal` either way.\n\t\tvariantProp.apply(value ?? getFeatureFlag('buttonVariantDefault', this.host) ?? 'normal', (v) => this.setRenderProp('variant', v));\n\t}\n\n\t// --- Render ---\n\n\t/**\n\t * Collects the current render props and state into the prop set `ButtonFC` expects. Separate\n\t * from `renderButtonFC` because a component that embeds the button inside its own markup\n\t * (`kol-split-button`) hands the set to its own functional component instead of rendering the\n\t * button here.\n\t */\n\tprotected getButtonFCProps(): FunctionalComponentProps<ButtonApi> {\n\t\treturn {\n\t\t\taccessKey: this.getRenderProp('accessKey'),\n\t\t\tariaControls: this.getRenderProp('ariaControls'),\n\t\t\tariaDescription: this.getRenderProp('ariaDescription'),\n\t\t\tariaDescriptionId: this.getState('ariaDescriptionId'),\n\t\t\tariaExpanded: this.getRenderProp('ariaExpanded'),\n\t\t\tariaHasPopup: this.getRenderProp('ariaHasPopup'),\n\t\t\tariaSelected: this.getRenderProp('ariaSelected'),\n\t\t\tcustomClass: this.getRenderProp('customClass'),\n\t\t\tdisabled: this.getRenderProp('disabled'),\n\t\t\thandleBlur: this.handleBlur,\n\t\t\thandleClick: this.handleClick,\n\t\t\thandleFocus: this.handleFocus,\n\t\t\thandleMouseDown: this.handleMouseDown,\n\t\t\thideLabel: this.getRenderProp('hideLabel'),\n\t\t\ticons: this.getRenderProp('icons'),\n\t\t\tid: this.getRenderProp('id'),\n\t\t\tinline: this.getRenderProp('inline'),\n\t\t\tlabel: this.getRenderProp('label'),\n\t\t\tname: this.getRenderProp('name'),\n\t\t\ton: this.getRenderProp('on'),\n\t\t\trefButton: this.ctaRef,\n\t\t\trefTooltip: this.tooltipBehavior.setTooltipElementRef,\n\t\t\trole: this.getRenderProp('role'),\n\t\t\tshortKey: this.getRenderProp('shortKey'),\n\t\t\ttabIndex: this.getRenderProp('tabIndex'),\n\t\t\ttooltipAlign: this.getRenderProp('tooltipAlign'),\n\t\t\ttype: this.getRenderProp('type'),\n\t\t\tvariant: this.getRenderProp('variant'),\n\t\t};\n\t}\n\n\t/** Renders `ButtonFC` from the current render props and state. */\n\tprotected renderButtonFC(): JSX.Element {\n\t\treturn <ButtonFC {...this.getButtonFCProps()} />;\n\t}\n}\n"],"names":["BaseWebComponent","createCtaRef","TooltipBehavior","propagateSubmitEventToForm","propagateResetEventToForm","setEventTarget","dispatchDomEvent","KolEvent","FormAssociationBehavior","buttonPropsConfig","accessKeyProp","validateAccessAndShortKey","ariaControlsProp","ariaDescriptionProp","ariaExpandedProp","ariaHasPopupProp","ariaSelectedProp","customClassProp","disabledProp","hideLabelProp","spanIconsProp","idProp","inlineProp","labelWithExpertSlotProp","nameProp","buttonCallbacksProp","linkRoleProp","shortKeyProp","tabIndexProp","tooltipAlignProp","buttonTypeProp","variantProp","getFeatureFlag","h","ButtonFC"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
var dev_utils = require('./dev.utils-
|
|
6
|
+
var dev_utils = require('./dev.utils-BVqwixuA.js');
|
|
7
7
|
require('./common-B9-LvLNa.js');
|
|
8
8
|
var baseWebComponent = require('./base-web-component-DK5Y-vq5.js');
|
|
9
9
|
var behavior = require('./behavior-V1mhEBZ2.js');
|
|
@@ -163,6 +163,6 @@ class CounterBehavior extends behavior.BaseBehavior {
|
|
|
163
163
|
}
|
|
164
164
|
|
|
165
165
|
exports.CounterBehavior = CounterBehavior;
|
|
166
|
-
//# sourceMappingURL=behavior-
|
|
166
|
+
//# sourceMappingURL=behavior-XywM4z8h.js.map
|
|
167
167
|
|
|
168
|
-
//# sourceMappingURL=behavior-
|
|
168
|
+
//# sourceMappingURL=behavior-XywM4z8h.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"behavior-B9JuvM3I.js","sources":["src/internal/props/has-counter.ts","src/internal/props/max-length.ts","src/internal/props/max-length-behavior.ts","src/internal/functional-components/counter/api.tsx","src/internal/functional-components/counter/texts.ts","src/internal/functional-components/counter/behavior.ts"],"sourcesContent":["import type { SimpleProp } from './helpers/factory';\nimport { createPropDefinition } from './helpers/factory';\nimport { normalizeBoolean } from './helpers/normalizers';\n\n/**\n * Has counter prop for text-based form fields\n *\n * Description:\n * Shows the character counter below the control.\n */\nexport type HasCounterProp = SimpleProp<'hasCounter', boolean>;\nexport const hasCounterProp = createPropDefinition<HasCounterProp>('hasCounter', false, normalizeBoolean);\n","import type { SimpleProp } from './helpers/factory';\nimport { createPropDefinition } from './helpers/factory';\nimport { normalizeNumber } from './helpers/normalizers';\n\n/**\n * Max length prop for text-based form fields\n *\n * Description:\n * The maximum number of characters. With the max length behavior `'hard'` it becomes the native\n * `maxlength` attribute, with `'soft'` it is only announced by the character counter.\n *\n * @see https://html.spec.whatwg.org/multipage/input.html#attr-input-maxlength\n */\nexport type MaxLengthProp = SimpleProp<'maxLength', number>;\n// The default is `undefined`: without a maximum there is no limit and no character limit hint. The\n// validation also runs on the default, so it accepts `undefined`.\nexport const maxLengthProp = createPropDefinition<MaxLengthProp>(\n\t'maxLength',\n\tundefined as unknown as number,\n\tnormalizeNumber,\n\t(value) => value === undefined || value >= 0,\n);\n","import type { MaxLengthBehaviorPropType } from '../../schema';\nimport type { SimpleProp } from './helpers/factory';\nimport { createPropDefinition } from './helpers/factory';\nimport { isEnumOption, normalizeString } from './helpers/normalizers';\n\nconst MAX_LENGTH_BEHAVIOR_OPTIONS: readonly MaxLengthBehaviorPropType[] = ['hard', 'soft'];\n\n/**\n * Max length behavior prop for text-based form fields\n *\n * Description:\n * `'hard'` prevents longer input through the native `maxlength` attribute, `'soft'` allows it and\n * lets the character counter announce the exceeded limit.\n */\nexport type MaxLengthBehaviorProp = SimpleProp<'maxLengthBehavior', MaxLengthBehaviorPropType>;\n\nfunction normalizeMaxLengthBehavior(value: unknown): MaxLengthBehaviorPropType {\n\tconst str = normalizeString(value);\n\tif (isEnumOption(str, MAX_LENGTH_BEHAVIOR_OPTIONS)) {\n\t\treturn str;\n\t}\n\tthrow new Error(`Invalid max length behavior: ${str}`);\n}\n\nexport const maxLengthBehaviorProp = createPropDefinition<MaxLengthBehaviorProp>('maxLengthBehavior', 'hard', normalizeMaxLengthBehavior);\n","import { hasCounterProp, maxLengthBehaviorProp, maxLengthProp } from '../../props';\nimport type { ApiFromConfig, PropsConfigShape } from '../generic-types';\n\nexport const counterPropsConfig = {\n\toptional: [hasCounterProp, maxLengthProp, maxLengthBehaviorProp],\n} as const satisfies PropsConfigShape;\n\nexport type CounterApi = ApiFromConfig<typeof counterPropsConfig>;\n","import { translate } from '../../../i18n';\nimport type { MaxLengthBehaviorPropType } from '../../../schema';\n\nexport const getCounterVisualText = (maxLengthBehavior: MaxLengthBehaviorPropType, maxLength: number | undefined, currentLength: number): string => {\n\tif (typeof maxLength !== 'number') {\n\t\treturn translate('kol-character-counter-current', { placeholders: { current: String(currentLength) } });\n\t}\n\tif (maxLengthBehavior === 'soft') {\n\t\tconst remaining = maxLength - currentLength;\n\t\treturn remaining < 0\n\t\t\t? translate('kol-character-limit-exceeded', { placeholders: { over: String(Math.abs(remaining)) } })\n\t\t\t: translate('kol-character-limit-remaining', { placeholders: { remaining: String(remaining) } });\n\t}\n\treturn translate('kol-character-counter-current-of-max', { placeholders: { current: String(currentLength), max: String(maxLength) } });\n};\n\nexport const getCounterAriaText = (maxLengthBehavior: MaxLengthBehaviorPropType, maxLength: number | undefined, currentLength: number): string => {\n\tif (typeof maxLength !== 'number') {\n\t\treturn translate('kol-character-counter-current', { placeholders: { current: String(currentLength) } });\n\t}\n\tif (maxLengthBehavior === 'soft') {\n\t\tconst remaining = maxLength - currentLength;\n\t\treturn remaining < 0\n\t\t\t? translate('kol-character-limit-exceeded', { placeholders: { over: String(Math.abs(remaining)) } })\n\t\t\t: translate('kol-character-limit-remaining', { placeholders: { remaining: String(remaining) } });\n\t}\n\treturn translate('kol-character-counter-current-of-max-aria', { placeholders: { current: String(currentLength), max: String(maxLength) } });\n};\n\nexport const getCounterMaxText = (maxLengthBehavior: MaxLengthBehaviorPropType, maxLength: number | undefined, currentLength: number): string => {\n\tif (maxLengthBehavior === 'hard' && typeof maxLength === 'number' && currentLength >= maxLength) {\n\t\treturn translate('kol-character-counter-max-aria');\n\t}\n\treturn '';\n};\n","import type { MaxLengthBehaviorPropType } from '../../../schema';\nimport { createRelatedUniqueId } from '../../../utils/dev.utils';\nimport { hasCounterProp, maxLengthBehaviorProp, maxLengthProp } from '../../props';\nimport { BaseBehavior } from '../base-behavior';\nimport type { FormFieldFCProps } from '../form-field/component';\nimport type { BehaviorInterface, ResolvedInputProps, StateAccess } from '../generic-types';\nimport type { CounterApi } from './api';\nimport { counterPropsConfig } from './api';\nimport { getCounterAriaText, getCounterMaxText, getCounterVisualText } from './texts';\n\n/** A printable single character without Ctrl, Meta or Alt, i.e. a key press that inserts a character. */\nconst isCharacterInputKey = (event: KeyboardEvent): boolean => event.key.length === 1 && !event.ctrlKey && !event.metaKey && !event.altKey;\n\n/** Invisible no-break space that makes an identical live region text differ, so it is announced again. */\nconst REANNOUNCE_MARKER = ' ';\n\nconst ARIA_DEBOUNCE_MS = 1000;\n\ntype CounterLimit = {\n\tmaxLength?: number;\n\tmaxLengthBehavior: MaxLengthBehaviorPropType;\n};\n\n/**\n * Character counter and character limit of a text field.\n *\n * It owns `hasCounter`, `maxLength` and `maxLengthBehavior` and writes the texts of the two counter\n * spans of `FormFieldFC` directly into the DOM, without a re-render: the visible span immediately,\n * the `aria-live` span debounced, so a screen reader does not announce every key stroke.\n */\nexport class CounterBehavior extends BaseBehavior<CounterApi> implements BehaviorInterface<CounterApi> {\n\tprivate visualSpan?: HTMLSpanElement;\n\tprivate ariaSpan?: HTMLSpanElement;\n\tprivate debounceTimer?: ReturnType<typeof setTimeout>;\n\tprivate reannounceToggle = false;\n\n\tpublic constructor(stateAccess: StateAccess<CounterApi>) {\n\t\tsuper(stateAccess, counterPropsConfig);\n\t}\n\n\tpublic componentWillLoad(props: ResolvedInputProps<CounterApi>): void {\n\t\tthis.watchHasCounter(props.hasCounter);\n\t\tthis.watchMaxLength(props.maxLength);\n\t\tthis.watchMaxLengthBehavior(props.maxLengthBehavior);\n\t}\n\n\tpublic watchHasCounter(value?: boolean): void {\n\t\thasCounterProp.apply(value, (v) => this.setRenderProp('hasCounter', v));\n\t}\n\n\tpublic watchMaxLength(value?: number): void {\n\t\tmaxLengthProp.apply(value, (v) => this.setRenderProp('maxLength', v));\n\t}\n\n\tpublic watchMaxLengthBehavior(value?: MaxLengthBehaviorPropType): void {\n\t\tmaxLengthBehaviorProp.apply(value, (v) => this.setRenderProp('maxLengthBehavior', v));\n\t}\n\n\tpublic readonly setVisualRef = (el?: HTMLSpanElement): void => {\n\t\tthis.visualSpan = el;\n\t};\n\n\tpublic readonly setAriaRef = (el?: HTMLSpanElement): void => {\n\t\tthis.ariaSpan = el;\n\t};\n\n\tpublic hasCounter(): boolean {\n\t\treturn this.getRenderProp('hasCounter') === true;\n\t}\n\n\t/** A maximum with the behavior `'soft'`: the counter announces the exceeded limit instead of `maxlength` preventing it. */\n\tpublic hasSoftLimit(): boolean {\n\t\tconst { maxLength, maxLengthBehavior } = this.getLimit();\n\t\treturn typeof maxLength === 'number' && maxLengthBehavior === 'soft';\n\t}\n\n\t/** The native `maxlength` attribute: only a hard limit prevents longer input. */\n\tpublic getMaxLengthAttribute(): number | undefined {\n\t\tconst { maxLength, maxLengthBehavior } = this.getLimit();\n\t\treturn maxLengthBehavior === 'hard' ? maxLength : undefined;\n\t}\n\n\t/** The `counter` prop of `FormFieldFC`; the counter is only rendered with `hasCounter`. */\n\tpublic getCounterProps(): FormFieldFCProps['counter'] {\n\t\tif (!this.hasCounter()) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst { maxLength, maxLengthBehavior } = this.getLimit();\n\t\treturn { maxLength, maxLengthBehavior, visualRef: this.setVisualRef, ariaRef: this.setAriaRef };\n\t}\n\n\t/**\n\t * The ID of the hidden character limit hint, which the control references in `aria-describedby`.\n\t * The hint only exists for a maximum without counter, because the counter announces the maximum itself.\n\t */\n\tpublic getCharacterLimitHintId(id: string): string | undefined {\n\t\treturn typeof this.getRenderProp('maxLength') === 'number' && !this.hasCounter() ? createRelatedUniqueId(id, 'character-limit-hint') : undefined;\n\t}\n\n\t/** Updates the visible span immediately and the `aria-live` span debounced. */\n\tpublic update(currentLength: number): void {\n\t\tconst limit = this.getLimit();\n\t\tthis.updateVisual(currentLength, limit);\n\t\tclearTimeout(this.debounceTimer);\n\t\tthis.debounceTimer = setTimeout(() => this.updateAria(currentLength, limit), ARIA_DEBOUNCE_MS);\n\t}\n\n\t/** Updates both spans without debounce, e.g. after the first render or a programmatic change of the limit. */\n\tpublic updateImmediate(currentLength: number): void {\n\t\tconst limit = this.getLimit();\n\t\tthis.updateVisual(currentLength, limit);\n\t\tclearTimeout(this.debounceTimer);\n\t\tthis.updateAria(currentLength, limit);\n\t}\n\n\t/**\n\t * Announces the reached hard limit again on every further typing attempt. `maxlength` blocks the\n\t * input without an `input` event, so the live region would otherwise stay silent.\n\t */\n\tpublic readonly handleKeyDown = (event: KeyboardEvent, currentLength: number): void => {\n\t\tconst { maxLength, maxLengthBehavior } = this.getLimit();\n\t\tif (maxLengthBehavior !== 'hard' || typeof maxLength !== 'number' || currentLength < maxLength) return;\n\t\tif (!isCharacterInputKey(event)) return;\n\t\tthis.retriggerAria(currentLength);\n\t};\n\n\t/** Announces the `aria-live` span again, debounced, even if its text did not change. */\n\tpublic retriggerAria(currentLength: number): void {\n\t\tif (!this.ariaSpan) return;\n\t\tconst limit = this.getLimit();\n\t\tclearTimeout(this.debounceTimer);\n\t\tthis.debounceTimer = setTimeout(() => this.updateAria(currentLength, limit, true), ARIA_DEBOUNCE_MS);\n\t}\n\n\tpublic destroy(): void {\n\t\tclearTimeout(this.debounceTimer);\n\t}\n\n\tprivate getLimit(): CounterLimit {\n\t\treturn { maxLength: this.getRenderProp('maxLength'), maxLengthBehavior: this.getRenderProp('maxLengthBehavior') };\n\t}\n\n\tprivate updateVisual(currentLength: number, { maxLength, maxLengthBehavior }: CounterLimit): void {\n\t\tif (!this.visualSpan) return;\n\t\tthis.visualSpan.innerText = getCounterVisualText(maxLengthBehavior, maxLength, currentLength);\n\t\tthis.visualSpan.classList.toggle(\n\t\t\t'kol-form-field__counter--exceeded',\n\t\t\tmaxLengthBehavior === 'soft' && typeof maxLength === 'number' && currentLength > maxLength,\n\t\t);\n\t}\n\n\tprivate updateAria(currentLength: number, { maxLength, maxLengthBehavior }: CounterLimit, forceReannounce = false): void {\n\t\tif (!this.ariaSpan) return;\n\t\tlet text = [getCounterAriaText(maxLengthBehavior, maxLength, currentLength), getCounterMaxText(maxLengthBehavior, maxLength, currentLength)]\n\t\t\t.filter(Boolean)\n\t\t\t.join(' ');\n\n\t\tif (forceReannounce) {\n\t\t\t// `aria-live` only announces a changed text. A repeated attempt produces the same text, so a\n\t\t\t// no-break space is appended on every other call to make it differ.\n\t\t\tthis.reannounceToggle = !this.reannounceToggle;\n\t\t\tif (this.reannounceToggle) {\n\t\t\t\ttext += REANNOUNCE_MARKER;\n\t\t\t}\n\t\t}\n\n\t\tthis.ariaSpan.innerText = text;\n\t}\n}\n"],"names":["createPropDefinition","normalizeBoolean","normalizeNumber","normalizeString","isEnumOption","translate","BaseBehavior","createRelatedUniqueId"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"behavior-XywM4z8h.js","sources":["src/internal/props/has-counter.ts","src/internal/props/max-length.ts","src/internal/props/max-length-behavior.ts","src/internal/functional-components/counter/api.tsx","src/internal/functional-components/counter/texts.ts","src/internal/functional-components/counter/behavior.ts"],"sourcesContent":["import type { SimpleProp } from './helpers/factory';\nimport { createPropDefinition } from './helpers/factory';\nimport { normalizeBoolean } from './helpers/normalizers';\n\n/**\n * Has counter prop for text-based form fields\n *\n * Description:\n * Shows the character counter below the control.\n */\nexport type HasCounterProp = SimpleProp<'hasCounter', boolean>;\nexport const hasCounterProp = createPropDefinition<HasCounterProp>('hasCounter', false, normalizeBoolean);\n","import type { SimpleProp } from './helpers/factory';\nimport { createPropDefinition } from './helpers/factory';\nimport { normalizeNumber } from './helpers/normalizers';\n\n/**\n * Max length prop for text-based form fields\n *\n * Description:\n * The maximum number of characters. With the max length behavior `'hard'` it becomes the native\n * `maxlength` attribute, with `'soft'` it is only announced by the character counter.\n *\n * @see https://html.spec.whatwg.org/multipage/input.html#attr-input-maxlength\n */\nexport type MaxLengthProp = SimpleProp<'maxLength', number>;\n// The default is `undefined`: without a maximum there is no limit and no character limit hint. The\n// validation also runs on the default, so it accepts `undefined`.\nexport const maxLengthProp = createPropDefinition<MaxLengthProp>(\n\t'maxLength',\n\tundefined as unknown as number,\n\tnormalizeNumber,\n\t(value) => value === undefined || value >= 0,\n);\n","import type { MaxLengthBehaviorPropType } from '../../schema';\nimport type { SimpleProp } from './helpers/factory';\nimport { createPropDefinition } from './helpers/factory';\nimport { isEnumOption, normalizeString } from './helpers/normalizers';\n\nconst MAX_LENGTH_BEHAVIOR_OPTIONS: readonly MaxLengthBehaviorPropType[] = ['hard', 'soft'];\n\n/**\n * Max length behavior prop for text-based form fields\n *\n * Description:\n * `'hard'` prevents longer input through the native `maxlength` attribute, `'soft'` allows it and\n * lets the character counter announce the exceeded limit.\n */\nexport type MaxLengthBehaviorProp = SimpleProp<'maxLengthBehavior', MaxLengthBehaviorPropType>;\n\nfunction normalizeMaxLengthBehavior(value: unknown): MaxLengthBehaviorPropType {\n\tconst str = normalizeString(value);\n\tif (isEnumOption(str, MAX_LENGTH_BEHAVIOR_OPTIONS)) {\n\t\treturn str;\n\t}\n\tthrow new Error(`Invalid max length behavior: ${str}`);\n}\n\nexport const maxLengthBehaviorProp = createPropDefinition<MaxLengthBehaviorProp>('maxLengthBehavior', 'hard', normalizeMaxLengthBehavior);\n","import { hasCounterProp, maxLengthBehaviorProp, maxLengthProp } from '../../props';\nimport type { ApiFromConfig, PropsConfigShape } from '../generic-types';\n\nexport const counterPropsConfig = {\n\toptional: [hasCounterProp, maxLengthProp, maxLengthBehaviorProp],\n} as const satisfies PropsConfigShape;\n\nexport type CounterApi = ApiFromConfig<typeof counterPropsConfig>;\n","import { translate } from '../../../i18n';\nimport type { MaxLengthBehaviorPropType } from '../../../schema';\n\nexport const getCounterVisualText = (maxLengthBehavior: MaxLengthBehaviorPropType, maxLength: number | undefined, currentLength: number): string => {\n\tif (typeof maxLength !== 'number') {\n\t\treturn translate('kol-character-counter-current', { placeholders: { current: String(currentLength) } });\n\t}\n\tif (maxLengthBehavior === 'soft') {\n\t\tconst remaining = maxLength - currentLength;\n\t\treturn remaining < 0\n\t\t\t? translate('kol-character-limit-exceeded', { placeholders: { over: String(Math.abs(remaining)) } })\n\t\t\t: translate('kol-character-limit-remaining', { placeholders: { remaining: String(remaining) } });\n\t}\n\treturn translate('kol-character-counter-current-of-max', { placeholders: { current: String(currentLength), max: String(maxLength) } });\n};\n\nexport const getCounterAriaText = (maxLengthBehavior: MaxLengthBehaviorPropType, maxLength: number | undefined, currentLength: number): string => {\n\tif (typeof maxLength !== 'number') {\n\t\treturn translate('kol-character-counter-current', { placeholders: { current: String(currentLength) } });\n\t}\n\tif (maxLengthBehavior === 'soft') {\n\t\tconst remaining = maxLength - currentLength;\n\t\treturn remaining < 0\n\t\t\t? translate('kol-character-limit-exceeded', { placeholders: { over: String(Math.abs(remaining)) } })\n\t\t\t: translate('kol-character-limit-remaining', { placeholders: { remaining: String(remaining) } });\n\t}\n\treturn translate('kol-character-counter-current-of-max-aria', { placeholders: { current: String(currentLength), max: String(maxLength) } });\n};\n\nexport const getCounterMaxText = (maxLengthBehavior: MaxLengthBehaviorPropType, maxLength: number | undefined, currentLength: number): string => {\n\tif (maxLengthBehavior === 'hard' && typeof maxLength === 'number' && currentLength >= maxLength) {\n\t\treturn translate('kol-character-counter-max-aria');\n\t}\n\treturn '';\n};\n","import type { MaxLengthBehaviorPropType } from '../../../schema';\nimport { createRelatedUniqueId } from '../../../utils/dev.utils';\nimport { hasCounterProp, maxLengthBehaviorProp, maxLengthProp } from '../../props';\nimport { BaseBehavior } from '../base-behavior';\nimport type { FormFieldFCProps } from '../form-field/component';\nimport type { BehaviorInterface, ResolvedInputProps, StateAccess } from '../generic-types';\nimport type { CounterApi } from './api';\nimport { counterPropsConfig } from './api';\nimport { getCounterAriaText, getCounterMaxText, getCounterVisualText } from './texts';\n\n/** A printable single character without Ctrl, Meta or Alt, i.e. a key press that inserts a character. */\nconst isCharacterInputKey = (event: KeyboardEvent): boolean => event.key.length === 1 && !event.ctrlKey && !event.metaKey && !event.altKey;\n\n/** Invisible no-break space that makes an identical live region text differ, so it is announced again. */\nconst REANNOUNCE_MARKER = ' ';\n\nconst ARIA_DEBOUNCE_MS = 1000;\n\ntype CounterLimit = {\n\tmaxLength?: number;\n\tmaxLengthBehavior: MaxLengthBehaviorPropType;\n};\n\n/**\n * Character counter and character limit of a text field.\n *\n * It owns `hasCounter`, `maxLength` and `maxLengthBehavior` and writes the texts of the two counter\n * spans of `FormFieldFC` directly into the DOM, without a re-render: the visible span immediately,\n * the `aria-live` span debounced, so a screen reader does not announce every key stroke.\n */\nexport class CounterBehavior extends BaseBehavior<CounterApi> implements BehaviorInterface<CounterApi> {\n\tprivate visualSpan?: HTMLSpanElement;\n\tprivate ariaSpan?: HTMLSpanElement;\n\tprivate debounceTimer?: ReturnType<typeof setTimeout>;\n\tprivate reannounceToggle = false;\n\n\tpublic constructor(stateAccess: StateAccess<CounterApi>) {\n\t\tsuper(stateAccess, counterPropsConfig);\n\t}\n\n\tpublic componentWillLoad(props: ResolvedInputProps<CounterApi>): void {\n\t\tthis.watchHasCounter(props.hasCounter);\n\t\tthis.watchMaxLength(props.maxLength);\n\t\tthis.watchMaxLengthBehavior(props.maxLengthBehavior);\n\t}\n\n\tpublic watchHasCounter(value?: boolean): void {\n\t\thasCounterProp.apply(value, (v) => this.setRenderProp('hasCounter', v));\n\t}\n\n\tpublic watchMaxLength(value?: number): void {\n\t\tmaxLengthProp.apply(value, (v) => this.setRenderProp('maxLength', v));\n\t}\n\n\tpublic watchMaxLengthBehavior(value?: MaxLengthBehaviorPropType): void {\n\t\tmaxLengthBehaviorProp.apply(value, (v) => this.setRenderProp('maxLengthBehavior', v));\n\t}\n\n\tpublic readonly setVisualRef = (el?: HTMLSpanElement): void => {\n\t\tthis.visualSpan = el;\n\t};\n\n\tpublic readonly setAriaRef = (el?: HTMLSpanElement): void => {\n\t\tthis.ariaSpan = el;\n\t};\n\n\tpublic hasCounter(): boolean {\n\t\treturn this.getRenderProp('hasCounter') === true;\n\t}\n\n\t/** A maximum with the behavior `'soft'`: the counter announces the exceeded limit instead of `maxlength` preventing it. */\n\tpublic hasSoftLimit(): boolean {\n\t\tconst { maxLength, maxLengthBehavior } = this.getLimit();\n\t\treturn typeof maxLength === 'number' && maxLengthBehavior === 'soft';\n\t}\n\n\t/** The native `maxlength` attribute: only a hard limit prevents longer input. */\n\tpublic getMaxLengthAttribute(): number | undefined {\n\t\tconst { maxLength, maxLengthBehavior } = this.getLimit();\n\t\treturn maxLengthBehavior === 'hard' ? maxLength : undefined;\n\t}\n\n\t/** The `counter` prop of `FormFieldFC`; the counter is only rendered with `hasCounter`. */\n\tpublic getCounterProps(): FormFieldFCProps['counter'] {\n\t\tif (!this.hasCounter()) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst { maxLength, maxLengthBehavior } = this.getLimit();\n\t\treturn { maxLength, maxLengthBehavior, visualRef: this.setVisualRef, ariaRef: this.setAriaRef };\n\t}\n\n\t/**\n\t * The ID of the hidden character limit hint, which the control references in `aria-describedby`.\n\t * The hint only exists for a maximum without counter, because the counter announces the maximum itself.\n\t */\n\tpublic getCharacterLimitHintId(id: string): string | undefined {\n\t\treturn typeof this.getRenderProp('maxLength') === 'number' && !this.hasCounter() ? createRelatedUniqueId(id, 'character-limit-hint') : undefined;\n\t}\n\n\t/** Updates the visible span immediately and the `aria-live` span debounced. */\n\tpublic update(currentLength: number): void {\n\t\tconst limit = this.getLimit();\n\t\tthis.updateVisual(currentLength, limit);\n\t\tclearTimeout(this.debounceTimer);\n\t\tthis.debounceTimer = setTimeout(() => this.updateAria(currentLength, limit), ARIA_DEBOUNCE_MS);\n\t}\n\n\t/** Updates both spans without debounce, e.g. after the first render or a programmatic change of the limit. */\n\tpublic updateImmediate(currentLength: number): void {\n\t\tconst limit = this.getLimit();\n\t\tthis.updateVisual(currentLength, limit);\n\t\tclearTimeout(this.debounceTimer);\n\t\tthis.updateAria(currentLength, limit);\n\t}\n\n\t/**\n\t * Announces the reached hard limit again on every further typing attempt. `maxlength` blocks the\n\t * input without an `input` event, so the live region would otherwise stay silent.\n\t */\n\tpublic readonly handleKeyDown = (event: KeyboardEvent, currentLength: number): void => {\n\t\tconst { maxLength, maxLengthBehavior } = this.getLimit();\n\t\tif (maxLengthBehavior !== 'hard' || typeof maxLength !== 'number' || currentLength < maxLength) return;\n\t\tif (!isCharacterInputKey(event)) return;\n\t\tthis.retriggerAria(currentLength);\n\t};\n\n\t/** Announces the `aria-live` span again, debounced, even if its text did not change. */\n\tpublic retriggerAria(currentLength: number): void {\n\t\tif (!this.ariaSpan) return;\n\t\tconst limit = this.getLimit();\n\t\tclearTimeout(this.debounceTimer);\n\t\tthis.debounceTimer = setTimeout(() => this.updateAria(currentLength, limit, true), ARIA_DEBOUNCE_MS);\n\t}\n\n\tpublic destroy(): void {\n\t\tclearTimeout(this.debounceTimer);\n\t}\n\n\tprivate getLimit(): CounterLimit {\n\t\treturn { maxLength: this.getRenderProp('maxLength'), maxLengthBehavior: this.getRenderProp('maxLengthBehavior') };\n\t}\n\n\tprivate updateVisual(currentLength: number, { maxLength, maxLengthBehavior }: CounterLimit): void {\n\t\tif (!this.visualSpan) return;\n\t\tthis.visualSpan.innerText = getCounterVisualText(maxLengthBehavior, maxLength, currentLength);\n\t\tthis.visualSpan.classList.toggle(\n\t\t\t'kol-form-field__counter--exceeded',\n\t\t\tmaxLengthBehavior === 'soft' && typeof maxLength === 'number' && currentLength > maxLength,\n\t\t);\n\t}\n\n\tprivate updateAria(currentLength: number, { maxLength, maxLengthBehavior }: CounterLimit, forceReannounce = false): void {\n\t\tif (!this.ariaSpan) return;\n\t\tlet text = [getCounterAriaText(maxLengthBehavior, maxLength, currentLength), getCounterMaxText(maxLengthBehavior, maxLength, currentLength)]\n\t\t\t.filter(Boolean)\n\t\t\t.join(' ');\n\n\t\tif (forceReannounce) {\n\t\t\t// `aria-live` only announces a changed text. A repeated attempt produces the same text, so a\n\t\t\t// no-break space is appended on every other call to make it differ.\n\t\t\tthis.reannounceToggle = !this.reannounceToggle;\n\t\t\tif (this.reannounceToggle) {\n\t\t\t\ttext += REANNOUNCE_MARKER;\n\t\t\t}\n\t\t}\n\n\t\tthis.ariaSpan.innerText = text;\n\t}\n}\n"],"names":["createPropDefinition","normalizeBoolean","normalizeNumber","normalizeString","isEnumOption","translate","BaseBehavior","createRelatedUniqueId"],"mappings":"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"}
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
var index = require('./index-
|
|
6
|
+
var index = require('./index-Dv7OF9AY.js');
|
|
7
7
|
var i18n = require('./i18n-UGaB-Dwg.js');
|
|
8
8
|
var bemRegistry = require('./bem-registry-BDVdt6ar.js');
|
|
9
|
-
var component = require('./component-
|
|
9
|
+
var component = require('./component-CJDDp8K2.js');
|
|
10
10
|
|
|
11
11
|
const spinBem = bemRegistry.bem.forBlock('kol-spin');
|
|
12
12
|
const BEM_CLASS_SPIN__LOADER = spinBem('loader');
|
|
@@ -27,6 +27,6 @@ const SpinFC = (props) => {
|
|
|
27
27
|
};
|
|
28
28
|
|
|
29
29
|
exports.SpinFC = SpinFC;
|
|
30
|
-
//# sourceMappingURL=component-
|
|
30
|
+
//# sourceMappingURL=component-04gQVLQ1.js.map
|
|
31
31
|
|
|
32
|
-
//# sourceMappingURL=component-
|
|
32
|
+
//# sourceMappingURL=component-04gQVLQ1.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-
|
|
1
|
+
{"version":3,"file":"component-04gQVLQ1.js","sources":["src/internal/functional-components/spin/component.tsx"],"sourcesContent":["import type { FunctionalComponent as FC } from '@stencil/core';\nimport { Fragment, h } from '@stencil/core';\n\nimport { translate } from '../../../i18n';\nimport { bem } from '../../../schema/bem-registry';\nimport type { SpinVariantType } from '../../props';\nimport { BemRootNodeFC } from '../bem-root-node/component';\nimport type { FunctionalComponentProps } from '../generic-types';\nimport type { SpinApi } from './api';\n\nconst spinBem = bem.forBlock('kol-spin');\nconst BEM_CLASS_SPIN__LOADER = spinBem('loader');\nconst DOT_ELEMENTS = ['1', '2', '3', 'neutral'] as const;\n\nfunction renderSpinVariant(variant: SpinVariantType): unknown {\n\tswitch (variant) {\n\t\tcase 'cycle':\n\t\t\treturn <span class={BEM_CLASS_SPIN__LOADER}></span>;\n\t\tcase 'none':\n\t\t\treturn <slot name=\"expert\"></slot>;\n\t\tdefault:\n\t\t\treturn DOT_ELEMENTS.map((element) => <span class={spinBem('spinner-element', { [element]: true })}></span>);\n\t}\n}\n\nexport const SpinFC: FC<FunctionalComponentProps<SpinApi>> = (props) => {\n\tconst { show, label, variant } = props;\n\n\treturn (\n\t\t<BemRootNodeFC block=\"kol-spin\">\n\t\t\t{show ? (\n\t\t\t\t<Fragment>\n\t\t\t\t\t<span class={spinBem('spinner', { [variant]: true })}>{renderSpinVariant(variant)}</span>\n\t\t\t\t\t<span aria-busy=\"true\" class=\"visually-hidden\" role=\"alert\">\n\t\t\t\t\t\t{label || translate('kol-action-running')}\n\t\t\t\t\t</span>\n\t\t\t\t</Fragment>\n\t\t\t) : (\n\t\t\t\t<span aria-busy=\"false\" class=\"visually-hidden\" role=\"alert\">\n\t\t\t\t\t{label || translate('kol-action-done')}\n\t\t\t\t</span>\n\t\t\t)}\n\t\t</BemRootNodeFC>\n\t);\n};\n"],"names":["bem","h","BemRootNodeFC","Fragment","translate"],"mappings":";;;;;;;;;;AAUA,MAAM,OAAO,GAAGA,eAAG,CAAC,QAAQ,CAAC,UAAU,CAAC;AACxC,MAAM,sBAAsB,GAAG,OAAO,CAAC,QAAQ,CAAC;AAChD,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,CAAU;AAExD,SAAS,iBAAiB,CAAC,OAAwB,EAAA;IAClD,QAAQ,OAAO;AACd,QAAA,KAAK,OAAO;YACX,OAAOC,OAAM,CAAA,MAAA,EAAA,EAAA,KAAK,EAAE,sBAAsB,GAAS;AACpD,QAAA,KAAK,MAAM;YACV,OAAOA,OAAM,CAAA,MAAA,EAAA,EAAA,IAAI,EAAC,QAAQ,GAAQ;AACnC,QAAA;AACC,YAAA,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,OAAO,KAAKA,OAAM,CAAA,MAAA,EAAA,EAAA,KAAK,EAAE,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC,EAAS,CAAA,CAAC;;AAE9G;AAEa,MAAA,MAAM,GAA0C,CAAC,KAAK,KAAI;IACtE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK;IAEtC,QACCA,OAAA,CAACC,uBAAa,EAAA,EAAC,KAAK,EAAC,UAAU,EAC7B,EAAA,IAAI,IACJD,QAACE,cAAQ,EAAA,IAAA,EACRF,OAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC,EAAA,EAAG,iBAAiB,CAAC,OAAO,CAAC,CAAQ,EACzFA,OAAgB,CAAA,MAAA,EAAA,EAAA,WAAA,EAAA,MAAM,EAAC,KAAK,EAAC,iBAAiB,EAAC,IAAI,EAAC,OAAO,EAAA,EACzD,KAAK,IAAIG,cAAS,CAAC,oBAAoB,CAAC,CACnC,CACG,KAEXH,OAAgB,CAAA,MAAA,EAAA,EAAA,WAAA,EAAA,OAAO,EAAC,KAAK,EAAC,iBAAiB,EAAC,IAAI,EAAC,OAAO,EAAA,EAC1D,KAAK,IAAIG,cAAS,CAAC,iBAAiB,CAAC,CAChC,CACP,CACc;AAElB;;;;"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
var index = require('./index-
|
|
6
|
+
var index = require('./index-Dv7OF9AY.js');
|
|
7
7
|
var bemRegistry = require('./bem-registry-BDVdt6ar.js');
|
|
8
8
|
|
|
9
9
|
const clickButtonBem = bemRegistry.bem.forBlock('kol-click-button');
|
|
@@ -12,6 +12,6 @@ const BEM_CLASS_CLICK_BUTTON__LABEL = clickButtonBem('label');
|
|
|
12
12
|
const ClickButtonFC = ({ label, handleClick, refButton }) => (index.h("button", { class: BEM_CLASS_CLICK_BUTTON, ref: refButton, onClick: handleClick, onKeyDown: (event) => event.preventDefault() }, index.h("span", { class: BEM_CLASS_CLICK_BUTTON__LABEL }, label)));
|
|
13
13
|
|
|
14
14
|
exports.ClickButtonFC = ClickButtonFC;
|
|
15
|
-
//# sourceMappingURL=component-
|
|
15
|
+
//# sourceMappingURL=component-BB3YHW86.js.map
|
|
16
16
|
|
|
17
|
-
//# sourceMappingURL=component-
|
|
17
|
+
//# sourceMappingURL=component-BB3YHW86.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-
|
|
1
|
+
{"version":3,"file":"component-BB3YHW86.js","sources":["src/internal/functional-components/click-button/component.tsx"],"sourcesContent":["import type { FunctionalComponent as FC } from '@stencil/core';\nimport { h } from '@stencil/core';\n\nimport { bem } from '../../../schema/bem-registry';\nimport type { FunctionalComponentProps } from '../generic-types';\nimport type { ClickButtonApi } from './api';\n\nconst clickButtonBem = bem.forBlock('kol-click-button');\nconst BEM_CLASS_CLICK_BUTTON = clickButtonBem();\nconst BEM_CLASS_CLICK_BUTTON__LABEL = clickButtonBem('label');\n\nexport const ClickButtonFC: FC<FunctionalComponentProps<ClickButtonApi>> = ({ label, handleClick, refButton }) => (\n\t<button class={BEM_CLASS_CLICK_BUTTON} ref={refButton} onClick={handleClick} onKeyDown={(event) => event.preventDefault()}>\n\t\t<span class={BEM_CLASS_CLICK_BUTTON__LABEL}>{label}</span>\n\t</button>\n);\n"],"names":["bem","h"],"mappings":";;;;;;;;AAOA,MAAM,cAAc,GAAGA,eAAG,CAAC,QAAQ,CAAC,kBAAkB,CAAC;AACvD,MAAM,sBAAsB,GAAG,cAAc,EAAE;AAC/C,MAAM,6BAA6B,GAAG,cAAc,CAAC,OAAO,CAAC;AAEtD,MAAM,aAAa,GAAiD,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAC5GC,oBAAQ,KAAK,EAAE,sBAAsB,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,cAAc,EAAE,EAAA,EACxHA,OAAM,CAAA,MAAA,EAAA,EAAA,KAAK,EAAE,6BAA6B,EAAA,EAAG,KAAK,CAAQ,CAClD;;;;"}
|
|
@@ -4,14 +4,14 @@
|
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
6
|
var tslib_es6 = require('./tslib.es6-Cm0ytgPY.js');
|
|
7
|
-
var index = require('./index-
|
|
8
|
-
var Heading = require('./Heading-
|
|
7
|
+
var index = require('./index-Dv7OF9AY.js');
|
|
8
|
+
var Heading = require('./Heading-DG2wWECB.js');
|
|
9
9
|
var i18n = require('./i18n-UGaB-Dwg.js');
|
|
10
10
|
var bemRegistry = require('./bem-registry-BDVdt6ar.js');
|
|
11
11
|
var clsx = require('./clsx-Bm_HQUnh.js');
|
|
12
|
-
var component$2 = require('./component-
|
|
13
|
-
var component$1 = require('./component-
|
|
14
|
-
var component = require('./component-
|
|
12
|
+
var component$2 = require('./component-CJDDp8K2.js');
|
|
13
|
+
var component$1 = require('./component-KIiCY2eY.js');
|
|
14
|
+
var component = require('./component-i9zUYU8M.js');
|
|
15
15
|
|
|
16
16
|
const alertBem$1 = bemRegistry.bem.forBlock('kol-alert');
|
|
17
17
|
const BEM_CLASS_ALERT__ICON = alertBem$1('icon');
|
|
@@ -62,6 +62,6 @@ const AlertFC = (props, children) => {
|
|
|
62
62
|
};
|
|
63
63
|
|
|
64
64
|
exports.AlertFC = AlertFC;
|
|
65
|
-
//# sourceMappingURL=component-
|
|
65
|
+
//# sourceMappingURL=component-BLnwCgKh.js.map
|
|
66
66
|
|
|
67
|
-
//# sourceMappingURL=component-
|
|
67
|
+
//# sourceMappingURL=component-BLnwCgKh.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-
|
|
1
|
+
{"version":3,"file":"component-BLnwCgKh.js","sources":["src/internal/functional-components/alert/icon.tsx","src/internal/functional-components/alert/component.tsx"],"sourcesContent":["import { Fragment, h, type FunctionalComponent as FC } from '@stencil/core';\n\nimport { translate } from '../../../i18n';\nimport type { AlertType } from '../../../schema';\nimport { bem } from '../../../schema/bem-registry';\nimport { IconFC } from '../icon/component';\n\nconst alertBem = bem.forBlock('kol-alert');\nconst BEM_CLASS_ALERT__ICON = alertBem('icon');\n\n/**\n * The icon uses a visually-hidden span instead of an aria-label because the Alert might be referenced as content for aria-describedby.\n * In this scenario, Firefox with NVDA does not properly read the aria-label, so the visually-hidden span ensures correct screen reader behavior.\n * @see https://github.com/public-ui/kolibri/issues/7119\n */\nconst ALERT_ICON_CONFIG: Record<AlertType | 'default', { label: string; icon: string }> = {\n\terror: {\n\t\tlabel: translate('kol-error'),\n\t\ticon: 'kolicon-alert-error',\n\t},\n\tinfo: {\n\t\tlabel: translate('kol-info'),\n\t\ticon: 'kolicon-alert-info',\n\t},\n\twarning: {\n\t\tlabel: translate('kol-warning'),\n\t\ticon: 'kolicon-alert-warning',\n\t},\n\tsuccess: {\n\t\tlabel: translate('kol-success'),\n\t\ticon: 'kolicon-alert-success',\n\t},\n\tdefault: {\n\t\tlabel: translate('kol-message'),\n\t\ticon: 'kolicon-alert-info',\n\t},\n};\n\nexport const AlertIconFC: FC<{ type?: AlertType }> = ({ type = 'default' }) => {\n\tconst config = ALERT_ICON_CONFIG[type || 'default'];\n\treturn (\n\t\t<>\n\t\t\t<span class=\"visually-hidden\">{config.label}</span>\n\t\t\t<IconFC class={BEM_CLASS_ALERT__ICON} label=\"\" icons={config.icon} />\n\t\t</>\n\t);\n};\n","import type { FunctionalComponent as FC } from '@stencil/core';\nimport { h } from '@stencil/core';\n\nimport { getHeadlineTag } from '../../../functional-components/Heading/Heading';\nimport { translate } from '../../../i18n';\nimport { bem } from '../../../schema/bem-registry';\nimport clsx from '../../../utils/clsx';\nimport { BemRootNodeFC } from '../bem-root-node/component';\nimport { ButtonFC } from '../button/component';\nimport type { FunctionalComponentProps } from '../generic-types';\nimport type { AlertApi } from './api';\nimport { AlertIconFC } from './icon';\n\nconst alertBem = bem.forBlock('kol-alert');\nconst BEM_CLASS_ALERT__CLOSER = alertBem('closer');\nconst BEM_CLASS_ALERT__CONTENT = alertBem('content');\n\n/**\n * The closer is a plain button: no role override, and an unset tabindex must not render as\n * `tabindex=\"0\"` — buttons are natively tabbable and the attribute would pin them into the tab\n * order. `kol-button` reaches the same undefined render props via `unsetRenderProp`.\n */\nconst UNSET_BUTTON_PROP = undefined as never;\n\n/**\n * Renders the alert as a single BEM root: icon, optional heading, optional closer button and the\n * content region.\n *\n * The closer is rendered as `ButtonFC` directly — its BEM root carries both `kol-button` and\n * `kol-alert__closer` on the same element, so theme styles that targeted the closer through a\n * descendant `.kol-button` (or `.kol-button--normal`) now target the compound selector instead.\n * The tooltip behavior for the closer (show on hover/focus) is composed by the web component,\n * which owns `refCloserButton`/`refCloserTooltip` — a plain functional component has no lifecycle\n * to sync the listeners in.\n *\n * All remaining HTML attributes (`id`, `role`, `aria-*`, `ref`, …) are forwarded onto the root\n * node — internal consumers (form, form-field-msg, toast-item) rely on that passthrough.\n */\n/** The consumer's callbacks stay with the web component, which invokes them in its closer handler. */\nexport type AlertFCProps = Omit<FunctionalComponentProps<AlertApi>, 'on'>;\n\nexport const AlertFC: FC<AlertFCProps> = (props, children) => {\n\tconst {\n\t\talert,\n\t\tclass: classNames,\n\t\tcloserAriaDescriptionId,\n\t\thandleCloserClick,\n\t\thasCloser,\n\t\theadingId,\n\t\tlabel,\n\t\tlevel,\n\t\trefCloserButton,\n\t\trefCloserTooltip,\n\t\ttype,\n\t\tvariant,\n\t\t...other\n\t} = props;\n\n\tconst translateCloseAlert = translate('kol-close-alert');\n\tconst HeadlineTag = getHeadlineTag(level);\n\n\treturn (\n\t\t<BemRootNodeFC\n\t\t\tblock=\"kol-alert\"\n\t\t\tclass={classNames}\n\t\t\tmodifiers={{\n\t\t\t\thasCloser: hasCloser === true,\n\t\t\t\t[`type-${type}`]: true,\n\t\t\t\t[`variant-${variant}`]: true,\n\t\t\t}}\n\t\t\trole={alert ? 'alert' : undefined}\n\t\t\t{...other}\n\t\t>\n\t\t\t<AlertIconFC type={type} />\n\n\t\t\t{label.length > 0 && (\n\t\t\t\t<HeadlineTag\n\t\t\t\t\tclass={clsx('kol-headline', `kol-headline--${HeadlineTag}`, alertBem('heading', { [`h${level}`]: true }), 'kol-headline--single')}\n\t\t\t\t\tid={headingId}\n\t\t\t\t>\n\t\t\t\t\t{label}\n\t\t\t\t</HeadlineTag>\n\t\t\t)}\n\n\t\t\t{hasCloser && (\n\t\t\t\t<ButtonFC\n\t\t\t\t\taccessKey=\"\"\n\t\t\t\t\tariaControls=\"\"\n\t\t\t\t\tariaDescription={label.trim()}\n\t\t\t\t\tariaDescriptionId={closerAriaDescriptionId}\n\t\t\t\t\tariaExpanded={UNSET_BUTTON_PROP}\n\t\t\t\t\tariaHasPopup=\"\"\n\t\t\t\t\tariaSelected={UNSET_BUTTON_PROP}\n\t\t\t\t\tclass={clsx(BEM_CLASS_ALERT__CLOSER, 'kol-close-button')}\n\t\t\t\t\tcustomClass=\"\"\n\t\t\t\t\tdisabled={false}\n\t\t\t\t\thandleBlur={() => undefined}\n\t\t\t\t\thandleClick={handleCloserClick}\n\t\t\t\t\thandleFocus={() => undefined}\n\t\t\t\t\thandleMouseDown={() => undefined}\n\t\t\t\t\thideLabel\n\t\t\t\t\ticons={{\n\t\t\t\t\t\tleft: {\n\t\t\t\t\t\t\ticon: 'kolicon-cross',\n\t\t\t\t\t\t},\n\t\t\t\t\t}}\n\t\t\t\t\tid=\"\"\n\t\t\t\t\tinline={false}\n\t\t\t\t\tlabel={translateCloseAlert}\n\t\t\t\t\tname=\"\"\n\t\t\t\t\ton={{}}\n\t\t\t\t\trefButton={refCloserButton}\n\t\t\t\t\trefTooltip={refCloserTooltip}\n\t\t\t\t\trole={UNSET_BUTTON_PROP}\n\t\t\t\t\tshortKey=\"\"\n\t\t\t\t\ttabIndex={UNSET_BUTTON_PROP}\n\t\t\t\t\ttooltipAlign=\"left\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tvariant={['normal']}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t<div aria-describedby={label.length > 0 ? headingId : undefined} class={BEM_CLASS_ALERT__CONTENT}>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t</BemRootNodeFC>\n\t);\n};\n"],"names":["alertBem","bem","translate","h","Fragment","IconFC","__rest","getHeadlineTag","BemRootNodeFC","clsx","ButtonFC"],"mappings":"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"}
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
6
|
var tslib_es6 = require('./tslib.es6-Cm0ytgPY.js');
|
|
7
|
-
var index = require('./index-
|
|
7
|
+
var index = require('./index-Dv7OF9AY.js');
|
|
8
8
|
var common = require('./common-B9-LvLNa.js');
|
|
9
9
|
var bemRegistry = require('./bem-registry-BDVdt6ar.js');
|
|
10
10
|
var clsx = require('./clsx-Bm_HQUnh.js');
|
|
11
|
-
var component = require('./component-
|
|
11
|
+
var component = require('./component-i9zUYU8M.js');
|
|
12
12
|
var isArray = require('./isArray-BOIOdEQh.js');
|
|
13
13
|
|
|
14
14
|
function _mergeNamespaces(n, m) {
|
|
@@ -9221,6 +9221,6 @@ const SpanFC = (props, children) => {
|
|
|
9221
9221
|
exports.SpanFC = SpanFC;
|
|
9222
9222
|
exports.buildBadgeTextString = buildBadgeTextString;
|
|
9223
9223
|
exports.showExpertSlot = showExpertSlot;
|
|
9224
|
-
//# sourceMappingURL=component-
|
|
9224
|
+
//# sourceMappingURL=component-Bprn2Dws.js.map
|
|
9225
9225
|
|
|
9226
|
-
//# sourceMappingURL=component-
|
|
9226
|
+
//# sourceMappingURL=component-Bprn2Dws.js.map
|