@public-ui/components 4.5.0-rc.6 → 4.5.0-rc.7
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 -2
- package/dist/cjs/{Heading-Bck3PFpH.js → Heading-d30Feghg.js} +3 -3
- package/dist/cjs/{Heading-Bck3PFpH.js.map → Heading-d30Feghg.js.map} +1 -1
- package/dist/cjs/{api-BcNl2vZm.js → api-C8ZkIyx7.js} +8 -8
- package/dist/cjs/{api-BcNl2vZm.js.map → api-C8ZkIyx7.js.map} +1 -1
- package/dist/cjs/{api-LP3gnw7U.js → api-CRSjJs8P.js} +12 -12
- package/dist/cjs/{api-LP3gnw7U.js.map → api-CRSjJs8P.js.map} +1 -1
- package/dist/cjs/{app-globals-oR-jEiju.js → app-globals-B6wB2cXk.js} +4 -4
- package/dist/cjs/{app-globals-oR-jEiju.js.map → app-globals-B6wB2cXk.js.map} +1 -1
- package/dist/cjs/{base-CwXJywKD.js → base-C3MDHUog.js} +4 -4
- package/dist/cjs/{base-CwXJywKD.js.map → base-C3MDHUog.js.map} +1 -1
- package/dist/cjs/{base-DbfvhKRa.js → base-CyQnTxi6.js} +4 -4
- package/dist/cjs/{base-DbfvhKRa.js.map → base-CyQnTxi6.js.map} +1 -1
- package/dist/cjs/{base-DaK2F3pq.js → base-DgUZAiNc.js} +16 -16
- package/dist/cjs/{base-DaK2F3pq.js.map → base-DgUZAiNc.js.map} +1 -1
- package/dist/cjs/{base-BDGmLWVj.js → base-LmwA5h1k.js} +5 -5
- package/dist/cjs/{base-BDGmLWVj.js.map → base-LmwA5h1k.js.map} +1 -1
- package/dist/cjs/{base-web-component-C8MLLGxi.js → base-web-component-C-CwpVZw.js} +16 -9
- package/dist/cjs/base-web-component-C-CwpVZw.js.map +1 -0
- package/dist/cjs/{base-web-component-mmgXJMg0.js → base-web-component-d2k3Mc9P.js} +7 -7
- package/dist/cjs/{base-web-component-mmgXJMg0.js.map → base-web-component-d2k3Mc9P.js.map} +1 -1
- package/dist/cjs/{behavior-DWqrO2yi.js → behavior-C-BdOoSN.js} +3 -3
- package/dist/cjs/{behavior-DWqrO2yi.js.map → behavior-C-BdOoSN.js.map} +1 -1
- package/dist/cjs/{color-C9UZwMvC.js → color-CZiNkZFM.js} +3 -3
- package/dist/cjs/{color-C9UZwMvC.js.map → color-CZiNkZFM.js.map} +1 -1
- package/dist/cjs/{component-GfDUM7Um.js → component-B1kzY-J5.js} +4 -4
- package/dist/cjs/{component-GfDUM7Um.js.map → component-B1kzY-J5.js.map} +1 -1
- package/dist/cjs/{component-BT86Nj6R.js → component-B1zMXSkZ.js} +5 -5
- package/dist/cjs/{component-BT86Nj6R.js.map → component-B1zMXSkZ.js.map} +1 -1
- package/dist/cjs/{component-X_thXnkE.js → component-BHDnSaCH.js} +3 -3
- package/dist/cjs/{component-X_thXnkE.js.map → component-BHDnSaCH.js.map} +1 -1
- package/dist/cjs/{component-1NrcvQzp.js → component-BIz_gAas.js} +7 -7
- package/dist/cjs/{component-1NrcvQzp.js.map → component-BIz_gAas.js.map} +1 -1
- package/dist/cjs/{component-ZPvcKmPR.js → component-BairlFHi.js} +3 -3
- package/dist/cjs/{component-ZPvcKmPR.js.map → component-BairlFHi.js.map} +1 -1
- package/dist/cjs/{component-xIM903qi.js → component-CmyhDJ0r.js} +3 -3
- package/dist/cjs/{component-xIM903qi.js.map → component-CmyhDJ0r.js.map} +1 -1
- package/dist/cjs/{component-DNDfYzXZ.js → component-D2kI8uwF.js} +5 -5
- package/dist/cjs/{component-DNDfYzXZ.js.map → component-D2kI8uwF.js.map} +1 -1
- package/dist/cjs/{component-CmvG-auD.js → component-D33lYKYT.js} +3 -3
- package/dist/cjs/{component-CmvG-auD.js.map → component-D33lYKYT.js.map} +1 -1
- package/dist/cjs/{component-uHDfV5D8.js → component-DITtC2F9.js} +7 -7
- package/dist/cjs/{component-uHDfV5D8.js.map → component-DITtC2F9.js.map} +1 -1
- package/dist/cjs/{component-DuPEYx7z.js → component-DaAVlb5U.js} +4 -4
- package/dist/cjs/{component-DuPEYx7z.js.map → component-DaAVlb5U.js.map} +1 -1
- package/dist/cjs/{component-CtNPdMS0.js → component-KT0MKnL5.js} +5 -5
- package/dist/cjs/{component-CtNPdMS0.js.map → component-KT0MKnL5.js.map} +1 -1
- package/dist/cjs/{component-o3s7XplI.js → component-_jdRFw0Y.js} +4 -4
- package/dist/cjs/{component-o3s7XplI.js.map → component-_jdRFw0Y.js.map} +1 -1
- package/dist/cjs/{contrast-kLMuDQLl.js → contrast-CrL_sMV6.js} +3 -12
- package/dist/cjs/contrast-CrL_sMV6.js.map +1 -0
- package/dist/cjs/{dev.utils-BjrG4FNf.js → dev.utils-B1bWgxrQ.js} +3 -3
- package/dist/cjs/{dev.utils-BjrG4FNf.js.map → dev.utils-B1bWgxrQ.js.map} +1 -1
- package/dist/cjs/{devtools-D_afWgpU.js → devtools-DlcIXbRm.js} +4 -4
- package/dist/cjs/{devtools-D_afWgpU.js.map → devtools-DlcIXbRm.js.map} +1 -1
- package/dist/cjs/{field-control-DAHkvYr4.js → field-control-D0lryu2-.js} +8 -8
- package/dist/cjs/{field-control-DAHkvYr4.js.map → field-control-D0lryu2-.js.map} +1 -1
- package/dist/cjs/{group-DHYxVn2x.js → group-DIGY9sM6.js} +5 -5
- package/dist/cjs/{group-DHYxVn2x.js.map → group-DIGY9sM6.js.map} +1 -1
- package/dist/cjs/{index-BnEus4Y9.js → index-qcrGfEY6.js} +3 -3
- package/dist/cjs/{index-BnEus4Y9.js.map → index-qcrGfEY6.js.map} +1 -1
- package/dist/cjs/{input-eDaEE80n.js → input-BjNjOSo5.js} +5 -5
- package/dist/cjs/{input-eDaEE80n.js.map → input-BjNjOSo5.js.map} +1 -1
- package/dist/cjs/{input-container-Cye4qL9S.js → input-container-DghKiuUH.js} +7 -7
- package/dist/cjs/{input-container-Cye4qL9S.js.map → input-container-DghKiuUH.js.map} +1 -1
- package/dist/cjs/{item-C0yzJQUg.js → item-BKz8BDg2.js} +4 -4
- package/dist/cjs/{item-C0yzJQUg.js.map → item-BKz8BDg2.js.map} +1 -1
- package/dist/cjs/{item-wz0gBnmK.js → item-BMB6SaVm.js} +4 -4
- package/dist/cjs/{item-wz0gBnmK.js.map → item-BMB6SaVm.js.map} +1 -1
- package/dist/cjs/{item-Dflr47KV.js → item-CFojolE7.js} +8 -8
- package/dist/cjs/{item-Dflr47KV.js.map → item-CFojolE7.js.map} +1 -1
- package/dist/cjs/{item-BSdQbEav.js → item-DdnTb-BP.js} +3 -3
- package/dist/cjs/{item-BSdQbEav.js.map → item-DdnTb-BP.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 +3 -3
- package/dist/cjs/kol-badge.cjs.entry.js +12 -12
- 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 +22 -22
- package/dist/cjs/kol-input-password.entry.cjs.js.map +1 -1
- 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 +12 -13
- package/dist/cjs/kol-popover-button.entry.cjs.js.map +1 -1
- 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 +9 -9
- package/dist/cjs/kol-textarea.cjs.entry.js +20 -20
- package/dist/cjs/kol-textarea.entry.cjs.js.map +1 -1
- package/dist/cjs/kol-toast-container.cjs.entry.js +11 -11
- package/dist/cjs/kol-toolbar.cjs.entry.js +33 -14
- package/dist/cjs/kol-toolbar.entry.cjs.js.map +1 -1
- 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 +10 -10
- package/dist/cjs/kolibri.cjs.js +2 -2
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{resolve-props-DOU1VJNL.js → resolve-props-pAyNSZMT.js} +3 -3
- package/dist/cjs/{resolve-props-DOU1VJNL.js.map → resolve-props-pAyNSZMT.js.map} +1 -1
- package/dist/cjs/{scroll-lock-C6dUw4on.js → scroll-lock-CNwobwd2.js} +3 -3
- package/dist/cjs/{scroll-lock-C6dUw4on.js.map → scroll-lock-CNwobwd2.js.map} +1 -1
- package/dist/cjs/{suggestions-0hcm13gT.js → suggestions-D4TMMZSv.js} +4 -4
- package/dist/cjs/{suggestions-0hcm13gT.js.map → suggestions-D4TMMZSv.js.map} +1 -1
- package/dist/cjs/test-component.cjs.entry.js +1 -1
- package/dist/cjs/{toggle-handler-kOflG5om.js → toggle-handler-mIB8gvse.js} +5 -5
- package/dist/cjs/{toggle-handler-kOflG5om.js.map → toggle-handler-mIB8gvse.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/component.js +2 -2
- package/dist/collection/components/input-password/component.js.map +1 -1
- 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/component.js +2 -4
- package/dist/collection/components/popover-button/component.js.map +1 -1
- 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/style.css +2 -2
- package/dist/collection/components/textarea/component.js +3 -3
- package/dist/collection/components/textarea/component.js.map +1 -1
- package/dist/collection/components/textarea/style.css +2 -2
- package/dist/collection/components/toaster/style.css +2 -2
- package/dist/collection/components/toolbar/component.js +1 -1
- package/dist/collection/components/toolbar/component.js.map +1 -1
- package/dist/collection/components/toolbar/style.css +9 -3
- package/dist/collection/components/tree-item/style.css +2 -2
- package/dist/collection/components/version/style.css +2 -2
- package/dist/collection/internal/functional-components/form-field/select-value.js +3 -1
- package/dist/collection/internal/functional-components/form-field/select-value.js.map +1 -1
- package/dist/collection/internal/functional-components/form-field/select.js +8 -3
- package/dist/collection/internal/functional-components/form-field/select.js.map +1 -1
- package/dist/collection/internal/functional-components/form-field/select.test.js +88 -0
- package/dist/collection/internal/functional-components/form-field/select.test.js.map +1 -1
- package/dist/collection/internal/functional-components/form-field/textarea.js.map +1 -1
- package/dist/collection/internal/functional-components/toolbar/api.js.map +1 -1
- package/dist/collection/internal/functional-components/toolbar/component.js +1 -1
- package/dist/collection/internal/functional-components/toolbar/component.js.map +1 -1
- package/dist/collection/internal/functional-components/toolbar/item.js +20 -1
- package/dist/collection/internal/functional-components/toolbar/item.js.map +1 -1
- package/dist/collection/schema/props/toolbar-items.js.map +1 -1
- package/dist/collection/schema/utils/contrast.js +2 -10
- package/dist/collection/schema/utils/contrast.js.map +1 -1
- package/dist/components/base-web-component4.js +11 -4
- package/dist/components/base-web-component4.js.map +1 -1
- package/dist/components/contrast.js +1 -10
- package/dist/components/contrast.js.map +1 -1
- 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 +3 -3
- package/dist/components/kol-input-password.js.map +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 +2 -3
- package/dist/components/kol-popover-button.js.map +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 +1 -1
- package/dist/components/kol-textarea.js +4 -4
- package/dist/components/kol-textarea.js.map +1 -1
- package/dist/components/kol-toast-container.js +1 -1
- package/dist/components/kol-toolbar.js +23 -4
- package/dist/components/kol-toolbar.js.map +1 -1
- package/dist/components/kol-tree-item.js +1 -1
- package/dist/components/kol-version.js +1 -1
- package/dist/esm/{Heading-DXl16qig.js → Heading-NHB1reiQ.js} +3 -3
- package/dist/esm/{Heading-DXl16qig.js.map → Heading-NHB1reiQ.js.map} +1 -1
- package/dist/esm/{api-C8TfIYlY.js → api-BAEPnyL7.js} +12 -12
- package/dist/{kolibri/api-C8TfIYlY.js.map → esm/api-BAEPnyL7.js.map} +1 -1
- package/dist/esm/{api-BA-AFr5H.js → api-CagcODCX.js} +8 -8
- package/dist/{kolibri/api-BA-AFr5H.js.map → esm/api-CagcODCX.js.map} +1 -1
- package/dist/esm/{app-globals-lFdBwFG2.js → app-globals-CwlOH1sO.js} +4 -4
- package/dist/esm/{app-globals-lFdBwFG2.js.map → app-globals-CwlOH1sO.js.map} +1 -1
- package/dist/esm/{base-BpqjfzG1.js → base-BFU17cMm.js} +16 -16
- package/dist/{kolibri/base-BpqjfzG1.js.map → esm/base-BFU17cMm.js.map} +1 -1
- package/dist/esm/{base-D8GcFhvD.js → base-BpKxLJ6r.js} +4 -4
- package/dist/{kolibri/base-D8GcFhvD.js.map → esm/base-BpKxLJ6r.js.map} +1 -1
- package/dist/esm/{base-DiSQvfGU.js → base-Cm_c8klt.js} +5 -5
- package/dist/esm/{base-DiSQvfGU.js.map → base-Cm_c8klt.js.map} +1 -1
- package/dist/esm/{base-B5F8ROuQ.js → base-DitGpYOV.js} +4 -4
- package/dist/{kolibri/base-B5F8ROuQ.js.map → esm/base-DitGpYOV.js.map} +1 -1
- package/dist/esm/{base-web-component-CkaKv7O0.js → base-web-component-6J5sCsnZ.js} +16 -9
- package/dist/esm/base-web-component-6J5sCsnZ.js.map +1 -0
- package/dist/esm/{base-web-component-BozlJoj7.js → base-web-component-BFCVvyYG.js} +7 -7
- package/dist/esm/{base-web-component-BozlJoj7.js.map → base-web-component-BFCVvyYG.js.map} +1 -1
- package/dist/esm/{behavior-BuNqmjz8.js → behavior-CH_2MMuX.js} +3 -3
- package/dist/esm/{behavior-BuNqmjz8.js.map → behavior-CH_2MMuX.js.map} +1 -1
- package/dist/esm/{color-Du3Ft0XV.js → color-QYuhlVFz.js} +3 -3
- package/dist/esm/{color-Du3Ft0XV.js.map → color-QYuhlVFz.js.map} +1 -1
- package/dist/esm/{component-C9DexidK.js → component-BF8FPuIW.js} +3 -3
- package/dist/esm/{component-C9DexidK.js.map → component-BF8FPuIW.js.map} +1 -1
- package/dist/esm/{component-Da5dJMKj.js → component-Ba4gjLBG.js} +5 -5
- package/dist/{kolibri/component-Da5dJMKj.js.map → esm/component-Ba4gjLBG.js.map} +1 -1
- package/dist/esm/{component-BjH8s4-t.js → component-BpOMe842.js} +3 -3
- package/dist/{kolibri/component-BjH8s4-t.js.map → esm/component-BpOMe842.js.map} +1 -1
- package/dist/esm/{component-BxKN0JbT.js → component-C3sXiwbS.js} +3 -3
- package/dist/esm/{component-BxKN0JbT.js.map → component-C3sXiwbS.js.map} +1 -1
- package/dist/esm/{component-Bd7PXqOG.js → component-C5BFsKau.js} +5 -5
- package/dist/esm/{component-Bd7PXqOG.js.map → component-C5BFsKau.js.map} +1 -1
- package/dist/esm/{component-C3aqLFK2.js → component-CBpYh2q-.js} +7 -7
- package/dist/esm/{component-C3aqLFK2.js.map → component-CBpYh2q-.js.map} +1 -1
- package/dist/esm/{component-D_58mw87.js → component-C_d54ujF.js} +4 -4
- package/dist/{kolibri/component-D_58mw87.js.map → esm/component-C_d54ujF.js.map} +1 -1
- package/dist/esm/{component-xrrwVuiI.js → component-CvCfEqSE.js} +4 -4
- package/dist/esm/{component-xrrwVuiI.js.map → component-CvCfEqSE.js.map} +1 -1
- package/dist/esm/{component-CWGVLsSH.js → component-DZbJLUju.js} +4 -4
- package/dist/{kolibri/component-CWGVLsSH.js.map → esm/component-DZbJLUju.js.map} +1 -1
- package/dist/esm/{component-BKOep2WQ.js → component-Dg6TIbeY.js} +5 -5
- package/dist/{kolibri/component-BKOep2WQ.js.map → esm/component-Dg6TIbeY.js.map} +1 -1
- package/dist/esm/{component-DD5QqT5m.js → component-Do9rjnte.js} +7 -7
- package/dist/{kolibri/component-DD5QqT5m.js.map → esm/component-Do9rjnte.js.map} +1 -1
- package/dist/esm/{component-De6Do_gt.js → component-DzoBgfR4.js} +3 -3
- package/dist/esm/{component-De6Do_gt.js.map → component-DzoBgfR4.js.map} +1 -1
- package/dist/esm/{contrast-BKAJJL2K.js → contrast-DMN9saXP.js} +3 -12
- package/dist/esm/contrast-DMN9saXP.js.map +1 -0
- package/dist/esm/{dev.utils-CYtV9X0K.js → dev.utils-CJMVCYWh.js} +3 -3
- package/dist/esm/{dev.utils-CYtV9X0K.js.map → dev.utils-CJMVCYWh.js.map} +1 -1
- package/dist/esm/{devtools-B0qRaQdp.js → devtools-rRHULXVr.js} +4 -4
- package/dist/{kolibri/devtools-B0qRaQdp.js.map → esm/devtools-rRHULXVr.js.map} +1 -1
- package/dist/esm/{field-control-C5hjw2Rb.js → field-control-DXxCMXvx.js} +8 -8
- package/dist/{kolibri/field-control-C5hjw2Rb.js.map → esm/field-control-DXxCMXvx.js.map} +1 -1
- package/dist/esm/{group-2hP8qbvk.js → group-CI4sSgiu.js} +5 -5
- package/dist/esm/{group-2hP8qbvk.js.map → group-CI4sSgiu.js.map} +1 -1
- package/dist/esm/{index-DsCeQ9Ys.js → index-DQdQBwMc.js} +3 -3
- package/dist/{kolibri/index-DsCeQ9Ys.js.map → esm/index-DQdQBwMc.js.map} +1 -1
- package/dist/esm/{input-Dp5NBocQ.js → input-CDtJZ2sy.js} +5 -5
- package/dist/esm/{input-Dp5NBocQ.js.map → input-CDtJZ2sy.js.map} +1 -1
- package/dist/esm/{input-container-QA8-0_0p.js → input-container-DROwwh7_.js} +7 -7
- package/dist/esm/{input-container-QA8-0_0p.js.map → input-container-DROwwh7_.js.map} +1 -1
- package/dist/esm/{item-CaxJw3ad.js → item-C6p5wW-z.js} +4 -4
- package/dist/esm/{item-CaxJw3ad.js.map → item-C6p5wW-z.js.map} +1 -1
- package/dist/esm/{item-CXyolUj2.js → item-CHP-bw8Q.js} +4 -4
- package/dist/{kolibri/item-CXyolUj2.js.map → esm/item-CHP-bw8Q.js.map} +1 -1
- package/dist/esm/{item-DY0fVVnj.js → item-Cbi_ZY6o.js} +3 -3
- package/dist/esm/{item-DY0fVVnj.js.map → item-Cbi_ZY6o.js.map} +1 -1
- package/dist/esm/{item-BIjqEkyy.js → item-ZjrNIhfW.js} +8 -8
- package/dist/{kolibri/item-BIjqEkyy.js.map → esm/item-ZjrNIhfW.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 +3 -3
- package/dist/esm/kol-badge.entry.js +12 -12
- 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 +22 -22
- package/dist/esm/kol-input-password.entry.js.map +1 -1
- 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 +12 -13
- package/dist/esm/kol-popover-button.entry.js.map +1 -1
- 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 +9 -9
- package/dist/esm/kol-textarea.entry.js +20 -20
- package/dist/esm/kol-textarea.entry.js.map +1 -1
- package/dist/esm/kol-toast-container.entry.js +11 -11
- package/dist/esm/kol-toolbar.entry.js +33 -14
- package/dist/esm/kol-toolbar.entry.js.map +1 -1
- 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 +10 -10
- package/dist/esm/kolibri.js +3 -3
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{resolve-props-DJxTzf-G.js → resolve-props-CjBvvXId.js} +3 -3
- package/dist/{kolibri/resolve-props-DJxTzf-G.js.map → esm/resolve-props-CjBvvXId.js.map} +1 -1
- package/dist/esm/{scroll-lock-BN6ZnBdc.js → scroll-lock-6SV-XFXR.js} +3 -3
- package/dist/{kolibri/scroll-lock-BN6ZnBdc.js.map → esm/scroll-lock-6SV-XFXR.js.map} +1 -1
- package/dist/esm/{suggestions-DlpHvEGv.js → suggestions-BYMmW1aV.js} +4 -4
- package/dist/esm/{suggestions-DlpHvEGv.js.map → suggestions-BYMmW1aV.js.map} +1 -1
- package/dist/esm/test-component.entry.js +1 -1
- package/dist/esm/{toggle-handler-Xex3lIll.js → toggle-handler-D-yalcds.js} +5 -5
- package/dist/{kolibri/toggle-handler-Xex3lIll.js.map → esm/toggle-handler-D-yalcds.js.map} +1 -1
- package/dist/kolibri/{Heading-DXl16qig.js → Heading-NHB1reiQ.js} +2 -2
- package/dist/kolibri/{Heading-DXl16qig.js.map → Heading-NHB1reiQ.js.map} +1 -1
- package/dist/kolibri/api-BAEPnyL7.js +5 -0
- package/dist/{esm/api-C8TfIYlY.js.map → kolibri/api-BAEPnyL7.js.map} +1 -1
- package/dist/kolibri/api-CagcODCX.js +5 -0
- package/dist/{esm/api-BA-AFr5H.js.map → kolibri/api-CagcODCX.js.map} +1 -1
- package/dist/kolibri/app-globals-CwlOH1sO.js +5 -0
- package/dist/kolibri/{app-globals-lFdBwFG2.js.map → app-globals-CwlOH1sO.js.map} +1 -1
- package/dist/kolibri/base-BFU17cMm.js +5 -0
- package/dist/{esm/base-BpqjfzG1.js.map → kolibri/base-BFU17cMm.js.map} +1 -1
- package/dist/kolibri/{base-D8GcFhvD.js → base-BpKxLJ6r.js} +2 -2
- package/dist/{esm/base-D8GcFhvD.js.map → kolibri/base-BpKxLJ6r.js.map} +1 -1
- package/dist/kolibri/{base-DiSQvfGU.js → base-Cm_c8klt.js} +2 -2
- package/dist/kolibri/{base-DiSQvfGU.js.map → base-Cm_c8klt.js.map} +1 -1
- package/dist/kolibri/{base-B5F8ROuQ.js → base-DitGpYOV.js} +2 -2
- package/dist/{esm/base-B5F8ROuQ.js.map → kolibri/base-DitGpYOV.js.map} +1 -1
- package/dist/kolibri/base-web-component-6J5sCsnZ.js +5 -0
- package/dist/kolibri/base-web-component-6J5sCsnZ.js.map +1 -0
- package/dist/kolibri/{base-web-component-BozlJoj7.js → base-web-component-BFCVvyYG.js} +2 -2
- package/dist/kolibri/{base-web-component-BozlJoj7.js.map → base-web-component-BFCVvyYG.js.map} +1 -1
- package/dist/kolibri/{behavior-BuNqmjz8.js → behavior-CH_2MMuX.js} +2 -2
- package/dist/kolibri/{behavior-BuNqmjz8.js.map → behavior-CH_2MMuX.js.map} +1 -1
- package/dist/kolibri/{color-Du3Ft0XV.js → color-QYuhlVFz.js} +2 -2
- package/dist/kolibri/{color-Du3Ft0XV.js.map → color-QYuhlVFz.js.map} +1 -1
- package/dist/kolibri/{component-C9DexidK.js → component-BF8FPuIW.js} +2 -2
- package/dist/kolibri/{component-C9DexidK.js.map → component-BF8FPuIW.js.map} +1 -1
- package/dist/kolibri/component-Ba4gjLBG.js +5 -0
- package/dist/{esm/component-Da5dJMKj.js.map → kolibri/component-Ba4gjLBG.js.map} +1 -1
- package/dist/kolibri/{component-BjH8s4-t.js → component-BpOMe842.js} +2 -2
- package/dist/{esm/component-BjH8s4-t.js.map → kolibri/component-BpOMe842.js.map} +1 -1
- package/dist/kolibri/component-C3sXiwbS.js +5 -0
- package/dist/kolibri/{component-BxKN0JbT.js.map → component-C3sXiwbS.js.map} +1 -1
- package/dist/kolibri/component-C5BFsKau.js +5 -0
- package/dist/kolibri/{component-Bd7PXqOG.js.map → component-C5BFsKau.js.map} +1 -1
- package/dist/kolibri/component-CBpYh2q-.js +5 -0
- package/dist/kolibri/{component-C3aqLFK2.js.map → component-CBpYh2q-.js.map} +1 -1
- package/dist/kolibri/{component-D_58mw87.js → component-C_d54ujF.js} +2 -2
- package/dist/{esm/component-D_58mw87.js.map → kolibri/component-C_d54ujF.js.map} +1 -1
- package/dist/kolibri/component-CvCfEqSE.js +5 -0
- package/dist/kolibri/{component-xrrwVuiI.js.map → component-CvCfEqSE.js.map} +1 -1
- package/dist/kolibri/{component-CWGVLsSH.js → component-DZbJLUju.js} +2 -2
- package/dist/{esm/component-CWGVLsSH.js.map → kolibri/component-DZbJLUju.js.map} +1 -1
- package/dist/kolibri/{component-BKOep2WQ.js → component-Dg6TIbeY.js} +2 -2
- package/dist/{esm/component-BKOep2WQ.js.map → kolibri/component-Dg6TIbeY.js.map} +1 -1
- package/dist/kolibri/{component-DD5QqT5m.js → component-Do9rjnte.js} +2 -2
- package/dist/{esm/component-DD5QqT5m.js.map → kolibri/component-Do9rjnte.js.map} +1 -1
- package/dist/kolibri/component-DzoBgfR4.js +5 -0
- package/dist/kolibri/{component-De6Do_gt.js.map → component-DzoBgfR4.js.map} +1 -1
- package/dist/kolibri/contrast-DMN9saXP.js +5 -0
- package/dist/kolibri/contrast-DMN9saXP.js.map +1 -0
- package/dist/kolibri/{dev.utils-CYtV9X0K.js → dev.utils-CJMVCYWh.js} +2 -2
- package/dist/kolibri/{dev.utils-CYtV9X0K.js.map → dev.utils-CJMVCYWh.js.map} +1 -1
- package/dist/kolibri/{devtools-B0qRaQdp.js → devtools-rRHULXVr.js} +2 -2
- package/dist/{esm/devtools-B0qRaQdp.js.map → kolibri/devtools-rRHULXVr.js.map} +1 -1
- package/dist/kolibri/field-control-DXxCMXvx.js +5 -0
- package/dist/{esm/field-control-C5hjw2Rb.js.map → kolibri/field-control-DXxCMXvx.js.map} +1 -1
- package/dist/kolibri/{group-2hP8qbvk.js → group-CI4sSgiu.js} +2 -2
- package/dist/kolibri/{group-2hP8qbvk.js.map → group-CI4sSgiu.js.map} +1 -1
- package/dist/kolibri/{index-DsCeQ9Ys.js → index-DQdQBwMc.js} +2 -2
- package/dist/{esm/index-DsCeQ9Ys.js.map → kolibri/index-DQdQBwMc.js.map} +1 -1
- package/dist/kolibri/{input-Dp5NBocQ.js → input-CDtJZ2sy.js} +2 -2
- package/dist/kolibri/{input-Dp5NBocQ.js.map → input-CDtJZ2sy.js.map} +1 -1
- package/dist/kolibri/input-container-DROwwh7_.js +5 -0
- package/dist/kolibri/{input-container-QA8-0_0p.js.map → input-container-DROwwh7_.js.map} +1 -1
- package/dist/kolibri/item-C6p5wW-z.js +5 -0
- package/dist/kolibri/{item-CaxJw3ad.js.map → item-C6p5wW-z.js.map} +1 -1
- package/dist/kolibri/{item-CXyolUj2.js → item-CHP-bw8Q.js} +2 -2
- package/dist/{esm/item-CXyolUj2.js.map → kolibri/item-CHP-bw8Q.js.map} +1 -1
- package/dist/kolibri/item-Cbi_ZY6o.js +5 -0
- package/dist/kolibri/{item-DY0fVVnj.js.map → item-Cbi_ZY6o.js.map} +1 -1
- package/dist/kolibri/{item-BIjqEkyy.js → item-ZjrNIhfW.js} +2 -2
- package/dist/{esm/item-BIjqEkyy.js.map → kolibri/item-ZjrNIhfW.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.esm.js.map +1 -1
- package/dist/kolibri/kol-input-password.entry.js +1 -1
- package/dist/kolibri/kol-input-password.entry.js.map +1 -1
- package/dist/kolibri/kol-input-radio.entry.js +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.esm.js.map +1 -1
- package/dist/kolibri/kol-popover-button.entry.js +1 -1
- package/dist/kolibri/kol-popover-button.entry.js.map +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-skeleton.entry.js +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.js +1 -1
- package/dist/kolibri/kol-textarea.entry.esm.js.map +1 -1
- package/dist/kolibri/kol-textarea.entry.js +1 -1
- package/dist/kolibri/kol-textarea.entry.js.map +1 -1
- package/dist/kolibri/kol-toast-container.entry.js +1 -1
- package/dist/kolibri/kol-toolbar.entry.esm.js.map +1 -1
- package/dist/kolibri/kol-toolbar.entry.js +1 -1
- package/dist/kolibri/kol-toolbar.entry.js.map +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/kol-version.entry.js.map +1 -1
- package/dist/kolibri/kolibri.esm.js +1 -1
- package/dist/kolibri/resolve-props-CjBvvXId.js +5 -0
- package/dist/{esm/resolve-props-DJxTzf-G.js.map → kolibri/resolve-props-CjBvvXId.js.map} +1 -1
- package/dist/kolibri/{scroll-lock-BN6ZnBdc.js → scroll-lock-6SV-XFXR.js} +2 -2
- package/dist/{esm/scroll-lock-BN6ZnBdc.js.map → kolibri/scroll-lock-6SV-XFXR.js.map} +1 -1
- package/dist/kolibri/suggestions-BYMmW1aV.js +5 -0
- package/dist/kolibri/{suggestions-DlpHvEGv.js.map → suggestions-BYMmW1aV.js.map} +1 -1
- package/dist/kolibri/test-component.entry.js +1 -1
- package/dist/kolibri/toggle-handler-D-yalcds.js +5 -0
- package/dist/{esm/toggle-handler-Xex3lIll.js.map → kolibri/toggle-handler-D-yalcds.js.map} +1 -1
- package/dist/types/components/toolbar/component.d.ts +2 -2
- package/dist/types/components.d.ts +0 -2
- package/dist/types/internal/functional-components/form-field/textarea.d.ts +1 -0
- package/dist/types/internal/functional-components/toolbar/api.d.ts +2 -2
- package/dist/types/internal/functional-components/toolbar/item.d.ts +5 -2
- package/dist/types/schema/props/toolbar-items.d.ts +3 -1
- package/doc/popover-button.md +1 -1
- package/package.json +3 -3
- package/dist/cjs/base-web-component-C8MLLGxi.js.map +0 -1
- package/dist/cjs/contrast-kLMuDQLl.js.map +0 -1
- package/dist/esm/base-web-component-CkaKv7O0.js.map +0 -1
- package/dist/esm/contrast-BKAJJL2K.js.map +0 -1
- package/dist/kolibri/api-BA-AFr5H.js +0 -5
- package/dist/kolibri/api-C8TfIYlY.js +0 -5
- package/dist/kolibri/app-globals-lFdBwFG2.js +0 -5
- package/dist/kolibri/base-BpqjfzG1.js +0 -5
- package/dist/kolibri/base-web-component-CkaKv7O0.js +0 -5
- package/dist/kolibri/base-web-component-CkaKv7O0.js.map +0 -1
- package/dist/kolibri/component-Bd7PXqOG.js +0 -5
- package/dist/kolibri/component-BxKN0JbT.js +0 -5
- package/dist/kolibri/component-C3aqLFK2.js +0 -5
- package/dist/kolibri/component-Da5dJMKj.js +0 -5
- package/dist/kolibri/component-De6Do_gt.js +0 -5
- package/dist/kolibri/component-xrrwVuiI.js +0 -5
- package/dist/kolibri/contrast-BKAJJL2K.js +0 -5
- package/dist/kolibri/contrast-BKAJJL2K.js.map +0 -1
- package/dist/kolibri/field-control-C5hjw2Rb.js +0 -5
- package/dist/kolibri/input-container-QA8-0_0p.js +0 -5
- package/dist/kolibri/item-CaxJw3ad.js +0 -5
- package/dist/kolibri/item-DY0fVVnj.js +0 -5
- package/dist/kolibri/resolve-props-DJxTzf-G.js +0 -5
- package/dist/kolibri/suggestions-DlpHvEGv.js +0 -5
- package/dist/kolibri/toggle-handler-Xex3lIll.js +0 -5
|
@@ -28,16 +28,104 @@ describe('SelectFC', () => {
|
|
|
28
28
|
const page = await renderFunctionalComponentToSpecPage(() => h(SelectFC, Object.assign({ id: "id", label: "Label", options: options }, props)));
|
|
29
29
|
expect(page.root).toMatchSnapshot();
|
|
30
30
|
});
|
|
31
|
+
it('forwards disabled to optgroups and options when select is disabled', async () => {
|
|
32
|
+
var _a, _b, _c, _d, _e;
|
|
33
|
+
const optgroupOptions = [
|
|
34
|
+
{
|
|
35
|
+
label: 'Group 1',
|
|
36
|
+
options: [{ label: 'Option 1', value: '1' }],
|
|
37
|
+
},
|
|
38
|
+
];
|
|
39
|
+
const page = await renderFunctionalComponentToSpecPage(() => h(SelectFC, { disabled: true, id: "test", label: "Label", options: optgroupOptions }));
|
|
40
|
+
expect(page.root).toMatchSnapshot();
|
|
41
|
+
expect((_a = page.root) === null || _a === void 0 ? void 0 : _a.hasAttribute('disabled')).toBe(true);
|
|
42
|
+
expect((_b = page.root) === null || _b === void 0 ? void 0 : _b.querySelectorAll('optgroup')[0].hasAttribute('disabled')).toBe(true);
|
|
43
|
+
expect((_c = page.root) === null || _c === void 0 ? void 0 : _c.querySelectorAll('optgroup')[0].classList.contains('kol-select__optgroup--disabled')).toBe(true);
|
|
44
|
+
expect((_d = page.root) === null || _d === void 0 ? void 0 : _d.querySelectorAll('option')[0].hasAttribute('disabled')).toBe(true);
|
|
45
|
+
expect((_e = page.root) === null || _e === void 0 ? void 0 : _e.querySelectorAll('option')[0].classList.contains('kol-select__option--disabled')).toBe(true);
|
|
46
|
+
});
|
|
31
47
|
});
|
|
32
48
|
describe('SelectOptionListFC', () => {
|
|
33
49
|
it('renders nothing without options', async () => {
|
|
34
50
|
const page = await renderFunctionalComponentToSpecPage(() => (h("select", null, h(SelectOptionListFC, { options: [] }))));
|
|
35
51
|
expect(page.root).toMatchSnapshot();
|
|
36
52
|
});
|
|
53
|
+
it('does not render an optgroup without options', async () => {
|
|
54
|
+
var _a;
|
|
55
|
+
const emptyGroupOptions = [
|
|
56
|
+
{
|
|
57
|
+
label: 'Empty Group',
|
|
58
|
+
options: [],
|
|
59
|
+
},
|
|
60
|
+
];
|
|
61
|
+
const page = await renderFunctionalComponentToSpecPage(() => (h("select", null, h(SelectOptionListFC, { options: emptyGroupOptions }))));
|
|
62
|
+
expect(page.root).toMatchSnapshot();
|
|
63
|
+
expect((_a = page.root) === null || _a === void 0 ? void 0 : _a.querySelector('optgroup')).toBeNull();
|
|
64
|
+
});
|
|
37
65
|
it('disables the optgroups and prefixes the keys', async () => {
|
|
38
66
|
const page = await renderFunctionalComponentToSpecPage(() => (h("select", null, h(SelectOptionListFC, { options: options, preKey: "-9", disabled: true }))));
|
|
39
67
|
expect(page.root).toMatchSnapshot();
|
|
40
68
|
});
|
|
69
|
+
it('renders with disabled option group', async () => {
|
|
70
|
+
var _a, _b, _c, _d;
|
|
71
|
+
const disabledGroupOptions = [
|
|
72
|
+
{
|
|
73
|
+
disabled: true,
|
|
74
|
+
label: 'Group 1',
|
|
75
|
+
options: [{ label: 'Option 1', value: '1' }],
|
|
76
|
+
},
|
|
77
|
+
];
|
|
78
|
+
const page = await renderFunctionalComponentToSpecPage(() => (h("select", null, h(SelectOptionListFC, { options: disabledGroupOptions }))));
|
|
79
|
+
expect(page.root).toMatchSnapshot();
|
|
80
|
+
expect((_a = page.root) === null || _a === void 0 ? void 0 : _a.querySelectorAll('optgroup')[0].hasAttribute('disabled')).toBe(true);
|
|
81
|
+
expect((_b = page.root) === null || _b === void 0 ? void 0 : _b.querySelectorAll('optgroup')[0].classList.contains('kol-select__optgroup--disabled')).toBe(true);
|
|
82
|
+
expect((_c = page.root) === null || _c === void 0 ? void 0 : _c.querySelectorAll('option')[0].hasAttribute('disabled')).toBe(true);
|
|
83
|
+
expect((_d = page.root) === null || _d === void 0 ? void 0 : _d.querySelectorAll('option')[0].classList.contains('kol-select__option--disabled')).toBe(true);
|
|
84
|
+
});
|
|
85
|
+
it('renders option with disabled: false inside a disabled group as disabled', async () => {
|
|
86
|
+
var _a, _b, _c, _d;
|
|
87
|
+
const disabledGroupOptions = [
|
|
88
|
+
{
|
|
89
|
+
disabled: true,
|
|
90
|
+
label: 'Group 1',
|
|
91
|
+
options: [{ disabled: false, label: 'Option 1', value: '1' }],
|
|
92
|
+
},
|
|
93
|
+
];
|
|
94
|
+
const page = await renderFunctionalComponentToSpecPage(() => (h("select", null, h(SelectOptionListFC, { options: disabledGroupOptions }))));
|
|
95
|
+
expect(page.root).toMatchSnapshot();
|
|
96
|
+
expect((_a = page.root) === null || _a === void 0 ? void 0 : _a.querySelectorAll('optgroup')[0].hasAttribute('disabled')).toBe(true);
|
|
97
|
+
expect((_b = page.root) === null || _b === void 0 ? void 0 : _b.querySelectorAll('optgroup')[0].classList.contains('kol-select__optgroup--disabled')).toBe(true);
|
|
98
|
+
expect((_c = page.root) === null || _c === void 0 ? void 0 : _c.querySelectorAll('option')[0].hasAttribute('disabled')).toBe(true);
|
|
99
|
+
expect((_d = page.root) === null || _d === void 0 ? void 0 : _d.querySelectorAll('option')[0].classList.contains('kol-select__option--disabled')).toBe(true);
|
|
100
|
+
});
|
|
101
|
+
it('renders option with disabled: false inside a disabled list as disabled', async () => {
|
|
102
|
+
var _a, _b;
|
|
103
|
+
const disabledListOptions = [{ disabled: false, label: 'Option 1', value: '1' }];
|
|
104
|
+
const page = await renderFunctionalComponentToSpecPage(() => (h("select", null, h(SelectOptionListFC, { disabled: true, options: disabledListOptions }))));
|
|
105
|
+
expect(page.root).toMatchSnapshot();
|
|
106
|
+
expect((_a = page.root) === null || _a === void 0 ? void 0 : _a.querySelectorAll('option')[0].hasAttribute('disabled')).toBe(true);
|
|
107
|
+
expect((_b = page.root) === null || _b === void 0 ? void 0 : _b.querySelectorAll('option')[0].classList.contains('kol-select__option--disabled')).toBe(true);
|
|
108
|
+
});
|
|
109
|
+
it('renders with enabled group containing a disabled option', async () => {
|
|
110
|
+
var _a, _b, _c, _d, _e, _f;
|
|
111
|
+
const mixedOptions = [
|
|
112
|
+
{
|
|
113
|
+
label: 'Group 1',
|
|
114
|
+
options: [
|
|
115
|
+
{ disabled: true, label: 'Option 1', value: '1' },
|
|
116
|
+
{ disabled: false, label: 'Option 2', value: '2' },
|
|
117
|
+
],
|
|
118
|
+
},
|
|
119
|
+
];
|
|
120
|
+
const page = await renderFunctionalComponentToSpecPage(() => (h("select", null, h(SelectOptionListFC, { options: mixedOptions }))));
|
|
121
|
+
expect(page.root).toMatchSnapshot();
|
|
122
|
+
expect((_a = page.root) === null || _a === void 0 ? void 0 : _a.querySelectorAll('optgroup')[0].hasAttribute('disabled')).toBe(false);
|
|
123
|
+
expect((_b = page.root) === null || _b === void 0 ? void 0 : _b.querySelectorAll('optgroup')[0].classList.contains('kol-select__optgroup--disabled')).toBe(false);
|
|
124
|
+
expect((_c = page.root) === null || _c === void 0 ? void 0 : _c.querySelectorAll('option')[0].hasAttribute('disabled')).toBe(true);
|
|
125
|
+
expect((_d = page.root) === null || _d === void 0 ? void 0 : _d.querySelectorAll('option')[0].classList.contains('kol-select__option--disabled')).toBe(true);
|
|
126
|
+
expect((_e = page.root) === null || _e === void 0 ? void 0 : _e.querySelectorAll('option')[1].hasAttribute('disabled')).toBe(false);
|
|
127
|
+
expect((_f = page.root) === null || _f === void 0 ? void 0 : _f.querySelectorAll('option')[1].classList.contains('kol-select__option--disabled')).toBe(false);
|
|
128
|
+
});
|
|
41
129
|
});
|
|
42
130
|
describe('SelectOptionFC', () => {
|
|
43
131
|
it.each([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.test.js","sourceRoot":"","sources":["../../../../src/internal/functional-components/form-field/select.test.tsx"],"names":[],"mappings":"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","sourcesContent":["import { h } from '@stencil/core';\nimport { renderFunctionalComponentToSpecPage } from '../../../utils/testing';\nimport { SelectFC, SelectOptionFC, SelectOptionListFC } from './select';\n\nconst error = { _type: 'error' as const, _description: 'Error' };\nconst options = [\n\t{ label: 'Eins', value: 1 },\n\t{\n\t\tlabel: 'Gruppe',\n\t\toptions: [\n\t\t\t{ label: 'Zwei', value: 2 },\n\t\t\t{ label: 'Drei', value: 3, disabled: true },\n\t\t],\n\t},\n];\n\ndescribe('SelectFC', () => {\n\tit.each([\n\t\t['the default', {}],\n\t\t['a selected option in an optgroup', { value: [2] }],\n\t\t['several selected options', { multiple: true, size: 3, value: [1, 2] }],\n\t\t['disabled and required', { disabled: true, required: true }],\n\t\t['a touched error', { msg: error, touched: true }],\n\t\t['a hidden label and descriptions', { hideLabel: true, ariaDescribedBy: ['hint', 'msg'] }],\n\t\t['a merged class', { class: 'kol-custom' }],\n\t])('renders %s', async (_, props) => {\n\t\tconst page = await renderFunctionalComponentToSpecPage(() => <SelectFC id=\"id\" label=\"Label\" options={options} {...props} />);\n\t\texpect(page.root).toMatchSnapshot();\n\t});\n});\n\ndescribe('SelectOptionListFC', () => {\n\tit('renders nothing without options', async () => {\n\t\tconst page = await renderFunctionalComponentToSpecPage(() => (\n\t\t\t<select>\n\t\t\t\t<SelectOptionListFC options={[]} />\n\t\t\t</select>\n\t\t));\n\t\texpect(page.root).toMatchSnapshot();\n\t});\n\n\tit('disables the optgroups and prefixes the keys', async () => {\n\t\tconst page = await renderFunctionalComponentToSpecPage(() => (\n\t\t\t<select>\n\t\t\t\t<SelectOptionListFC options={options} preKey=\"-9\" disabled />\n\t\t\t</select>\n\t\t));\n\t\texpect(page.root).toMatchSnapshot();\n\t});\n});\n\ndescribe('SelectOptionFC', () => {\n\tit.each([\n\t\t['the key as native value', { index: '-1' }],\n\t\t['a selected single value', { selectedValue: 'value' }],\n\t\t['the selected attribute', { selected: true }],\n\t\t['a disabled option', { disabled: true }],\n\t])('renders %s', async (_, props) => {\n\t\tconst page = await renderFunctionalComponentToSpecPage(() => <SelectOptionFC value=\"value\" label=\"Label\" {...props} />);\n\t\texpect(page.root).toMatchSnapshot();\n\t});\n});\n"]}
|
|
1
|
+
{"version":3,"file":"select.test.js","sourceRoot":"","sources":["../../../../src/internal/functional-components/form-field/select.test.tsx"],"names":[],"mappings":"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","sourcesContent":["import { h } from '@stencil/core';\nimport { renderFunctionalComponentToSpecPage } from '../../../utils/testing';\nimport { SelectFC, SelectOptionFC, SelectOptionListFC } from './select';\n\nconst error = { _type: 'error' as const, _description: 'Error' };\nconst options = [\n\t{ label: 'Eins', value: 1 },\n\t{\n\t\tlabel: 'Gruppe',\n\t\toptions: [\n\t\t\t{ label: 'Zwei', value: 2 },\n\t\t\t{ label: 'Drei', value: 3, disabled: true },\n\t\t],\n\t},\n];\n\ndescribe('SelectFC', () => {\n\tit.each([\n\t\t['the default', {}],\n\t\t['a selected option in an optgroup', { value: [2] }],\n\t\t['several selected options', { multiple: true, size: 3, value: [1, 2] }],\n\t\t['disabled and required', { disabled: true, required: true }],\n\t\t['a touched error', { msg: error, touched: true }],\n\t\t['a hidden label and descriptions', { hideLabel: true, ariaDescribedBy: ['hint', 'msg'] }],\n\t\t['a merged class', { class: 'kol-custom' }],\n\t])('renders %s', async (_, props) => {\n\t\tconst page = await renderFunctionalComponentToSpecPage(() => <SelectFC id=\"id\" label=\"Label\" options={options} {...props} />);\n\t\texpect(page.root).toMatchSnapshot();\n\t});\n\n\tit('forwards disabled to optgroups and options when select is disabled', async () => {\n\t\tconst optgroupOptions = [\n\t\t\t{\n\t\t\t\tlabel: 'Group 1',\n\t\t\t\toptions: [{ label: 'Option 1', value: '1' }],\n\t\t\t},\n\t\t];\n\t\tconst page = await renderFunctionalComponentToSpecPage(() => <SelectFC disabled={true} id=\"test\" label=\"Label\" options={optgroupOptions} />);\n\t\texpect(page.root).toMatchSnapshot();\n\t\texpect(page.root?.hasAttribute('disabled')).toBe(true);\n\t\texpect(page.root?.querySelectorAll('optgroup')[0].hasAttribute('disabled')).toBe(true);\n\t\texpect(page.root?.querySelectorAll('optgroup')[0].classList.contains('kol-select__optgroup--disabled')).toBe(true);\n\t\texpect(page.root?.querySelectorAll('option')[0].hasAttribute('disabled')).toBe(true);\n\t\texpect(page.root?.querySelectorAll('option')[0].classList.contains('kol-select__option--disabled')).toBe(true);\n\t});\n});\n\ndescribe('SelectOptionListFC', () => {\n\tit('renders nothing without options', async () => {\n\t\tconst page = await renderFunctionalComponentToSpecPage(() => (\n\t\t\t<select>\n\t\t\t\t<SelectOptionListFC options={[]} />\n\t\t\t</select>\n\t\t));\n\t\texpect(page.root).toMatchSnapshot();\n\t});\n\n\tit('does not render an optgroup without options', async () => {\n\t\tconst emptyGroupOptions = [\n\t\t\t{\n\t\t\t\tlabel: 'Empty Group',\n\t\t\t\toptions: [],\n\t\t\t},\n\t\t];\n\t\tconst page = await renderFunctionalComponentToSpecPage(() => (\n\t\t\t<select>\n\t\t\t\t<SelectOptionListFC options={emptyGroupOptions} />\n\t\t\t</select>\n\t\t));\n\t\texpect(page.root).toMatchSnapshot();\n\t\texpect(page.root?.querySelector('optgroup')).toBeNull();\n\t});\n\n\tit('disables the optgroups and prefixes the keys', async () => {\n\t\tconst page = await renderFunctionalComponentToSpecPage(() => (\n\t\t\t<select>\n\t\t\t\t<SelectOptionListFC options={options} preKey=\"-9\" disabled />\n\t\t\t</select>\n\t\t));\n\t\texpect(page.root).toMatchSnapshot();\n\t});\n\n\tit('renders with disabled option group', async () => {\n\t\tconst disabledGroupOptions = [\n\t\t\t{\n\t\t\t\tdisabled: true,\n\t\t\t\tlabel: 'Group 1',\n\t\t\t\toptions: [{ label: 'Option 1', value: '1' }],\n\t\t\t},\n\t\t];\n\t\tconst page = await renderFunctionalComponentToSpecPage(() => (\n\t\t\t<select>\n\t\t\t\t<SelectOptionListFC options={disabledGroupOptions} />\n\t\t\t</select>\n\t\t));\n\t\texpect(page.root).toMatchSnapshot();\n\t\texpect(page.root?.querySelectorAll('optgroup')[0].hasAttribute('disabled')).toBe(true);\n\t\texpect(page.root?.querySelectorAll('optgroup')[0].classList.contains('kol-select__optgroup--disabled')).toBe(true);\n\t\texpect(page.root?.querySelectorAll('option')[0].hasAttribute('disabled')).toBe(true);\n\t\texpect(page.root?.querySelectorAll('option')[0].classList.contains('kol-select__option--disabled')).toBe(true);\n\t});\n\n\tit('renders option with disabled: false inside a disabled group as disabled', async () => {\n\t\tconst disabledGroupOptions = [\n\t\t\t{\n\t\t\t\tdisabled: true,\n\t\t\t\tlabel: 'Group 1',\n\t\t\t\toptions: [{ disabled: false, label: 'Option 1', value: '1' }],\n\t\t\t},\n\t\t];\n\t\tconst page = await renderFunctionalComponentToSpecPage(() => (\n\t\t\t<select>\n\t\t\t\t<SelectOptionListFC options={disabledGroupOptions} />\n\t\t\t</select>\n\t\t));\n\t\texpect(page.root).toMatchSnapshot();\n\t\texpect(page.root?.querySelectorAll('optgroup')[0].hasAttribute('disabled')).toBe(true);\n\t\texpect(page.root?.querySelectorAll('optgroup')[0].classList.contains('kol-select__optgroup--disabled')).toBe(true);\n\t\texpect(page.root?.querySelectorAll('option')[0].hasAttribute('disabled')).toBe(true);\n\t\texpect(page.root?.querySelectorAll('option')[0].classList.contains('kol-select__option--disabled')).toBe(true);\n\t});\n\n\tit('renders option with disabled: false inside a disabled list as disabled', async () => {\n\t\tconst disabledListOptions = [{ disabled: false, label: 'Option 1', value: '1' }];\n\t\tconst page = await renderFunctionalComponentToSpecPage(() => (\n\t\t\t<select>\n\t\t\t\t<SelectOptionListFC disabled={true} options={disabledListOptions} />\n\t\t\t</select>\n\t\t));\n\t\texpect(page.root).toMatchSnapshot();\n\t\texpect(page.root?.querySelectorAll('option')[0].hasAttribute('disabled')).toBe(true);\n\t\texpect(page.root?.querySelectorAll('option')[0].classList.contains('kol-select__option--disabled')).toBe(true);\n\t});\n\n\tit('renders with enabled group containing a disabled option', async () => {\n\t\tconst mixedOptions = [\n\t\t\t{\n\t\t\t\tlabel: 'Group 1',\n\t\t\t\toptions: [\n\t\t\t\t\t{ disabled: true, label: 'Option 1', value: '1' },\n\t\t\t\t\t{ disabled: false, label: 'Option 2', value: '2' },\n\t\t\t\t],\n\t\t\t},\n\t\t];\n\t\tconst page = await renderFunctionalComponentToSpecPage(() => (\n\t\t\t<select>\n\t\t\t\t<SelectOptionListFC options={mixedOptions} />\n\t\t\t</select>\n\t\t));\n\t\texpect(page.root).toMatchSnapshot();\n\t\texpect(page.root?.querySelectorAll('optgroup')[0].hasAttribute('disabled')).toBe(false);\n\t\texpect(page.root?.querySelectorAll('optgroup')[0].classList.contains('kol-select__optgroup--disabled')).toBe(false);\n\t\texpect(page.root?.querySelectorAll('option')[0].hasAttribute('disabled')).toBe(true);\n\t\texpect(page.root?.querySelectorAll('option')[0].classList.contains('kol-select__option--disabled')).toBe(true);\n\t\texpect(page.root?.querySelectorAll('option')[1].hasAttribute('disabled')).toBe(false);\n\t\texpect(page.root?.querySelectorAll('option')[1].classList.contains('kol-select__option--disabled')).toBe(false);\n\t});\n});\n\ndescribe('SelectOptionFC', () => {\n\tit.each([\n\t\t['the key as native value', { index: '-1' }],\n\t\t['a selected single value', { selectedValue: 'value' }],\n\t\t['the selected attribute', { selected: true }],\n\t\t['a disabled option', { disabled: true }],\n\t])('renders %s', async (_, props) => {\n\t\tconst page = await renderFunctionalComponentToSpecPage(() => <SelectOptionFC value=\"value\" label=\"Label\" {...props} />);\n\t\texpect(page.root).toMatchSnapshot();\n\t});\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textarea.js","sourceRoot":"","sources":["../../../../src/internal/functional-components/form-field/textarea.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,CAAC,EAAkC,MAAM,eAAe,CAAC;AAElE,OAAO,EAAE,UAAU,EAAE,2BAA2B,EAAsC,MAAM,iBAAiB,CAAC;AAC9G,OAAO,IAAI,MAAM,qBAAqB,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"textarea.js","sourceRoot":"","sources":["../../../../src/internal/functional-components/form-field/textarea.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,CAAC,EAAkC,MAAM,eAAe,CAAC;AAElE,OAAO,EAAE,UAAU,EAAE,2BAA2B,EAAsC,MAAM,iBAAiB,CAAC;AAC9G,OAAO,IAAI,MAAM,qBAAqB,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAgB7D,MAAM,CAAC,MAAM,UAAU,GAAwB,CAAC,KAAK,EAAE,EAAE;IACxD,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,KAAK,KAAe,KAAK,EAAf,KAAK,UAAK,KAAK,EAAtH,wGAA8G,CAAQ,CAAC;IAE7H,MAAM,aAAa,iCAClB,KAAK,EAAE,IAAI,CACV,WAAW,CAAC,cAAc,CAAC,iBAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,EAC3B,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,EAC3B,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,EACzB,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,IACxB,CAAC,2BAA2B,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAW,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAC1F,EACF,UAAU,CACV,EACD,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,IACf,oBAAoB,CAAC,EAAE,eAAe,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,GAC3D,KAAK,CACR,CAAC;IAEF,OAAO,gCAAc,aAAa,EAAI,CAAC;AACxC,CAAC,CAAC","sourcesContent":["import { h, type FunctionalComponent as FC } from '@stencil/core';\nimport type { JSXBase } from '@stencil/core/internal';\nimport { getMsgType, isMsgDefinedAndInputTouched, type MsgPropType, type Stringified } from '../../../schema';\nimport clsx from '../../../utils/clsx';\nimport { getBlockBem } from '../bem-root-node/block-bem';\nimport type { DefaultInputProps } from './default-input-props';\nimport { getDefaultInputProps } from './default-input-props';\n\nexport type TextAreaFCProps = DefaultInputProps<JSXBase.TextareaHTMLAttributes<HTMLTextAreaElement>> & {\n\tvalue?: string;\n\ttouched?: boolean;\n\tmsg?: Stringified<MsgPropType>;\n\tspellcheck?: boolean;\n} & {\n\t[key: `aria-${string}`]: unknown;\n\t[key: `data-${string}`]: unknown;\n};\n\n/**\n * Native `<textarea>` of a form field. The textarea itself is the root of the `kol-textarea` block,\n * so the block classes are set on it directly instead of through `BemRootNodeFC`.\n */\nexport const TextAreaFC: FC<TextAreaFCProps> = (props) => {\n\tconst { class: classNames, msg, touched, readonly, disabled, required, ariaDescribedBy, hideLabel, label, ...other } = props;\n\n\tconst textareaProps: JSXBase.TextareaHTMLAttributes<HTMLTextAreaElement> = {\n\t\tclass: clsx(\n\t\t\tgetBlockBem('kol-textarea')({\n\t\t\t\tdisabled: Boolean(disabled),\n\t\t\t\trequired: Boolean(required),\n\t\t\t\ttouched: Boolean(touched),\n\t\t\t\treadonly: Boolean(readonly),\n\t\t\t\t...(isMsgDefinedAndInputTouched(msg, touched) ? { [getMsgType(msg) as string]: true } : {}),\n\t\t\t}),\n\t\t\tclassNames,\n\t\t),\n\t\trequired: required,\n\t\tdisabled: disabled,\n\t\treadonly: readonly,\n\t\t...getDefaultInputProps({ ariaDescribedBy, hideLabel, label }),\n\t\t...other,\n\t};\n\n\treturn <textarea {...textareaProps} />;\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../src/internal/functional-components/toolbar/api.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAYzF,MAAM,CAAC,MAAM,kBAAkB,GAAG;IACjC,QAAQ,EAAE,CAAC,uBAAuB,EAAE,gBAAgB,CAAC;IACrD,QAAQ,EAAE,CAAC,eAAe,CAAC;CACS,CAAC","sourcesContent":["import type { KolFocusOptions } from '../../../schema';\nimport { labelWithExpertSlotProp, orientationProp, toolbarItemsProp } from '../../props';\nimport type { ApiFromConfig, PropsConfigShape } from '../generic-types';\nimport type { ToolbarButtonItem, ToolbarLinkItem } from './item';\n\n/**\n * Props configuration for the toolbar component.\n *\n * Notes on prop choices:\n * - `labelWithExpertSlotProp`, not `labelProp`: the predecessor's `validateLabel` accepted any\n * string; `labelProp` would reject one-character labels. The toolbar has no expert slot.\n * - `orientationProp` defaults to `'horizontal'`, like the predecessor's `validateOrientation`.\n */\nexport const toolbarPropsConfig = {\n\trequired: [labelWithExpertSlotProp, toolbarItemsProp],\n\toptional: [orientationProp],\n} as const satisfies PropsConfigShape;\n\nexport type ToolbarApi = ApiFromConfig<\n\ttypeof toolbarPropsConfig,\n\t{\n\t\tMethods: {\n\t\t\tclick: () => void;\n\t\t\tfocus: (options?: KolFocusOptions) => void;\n\t\t};\n\t\tStates: {\n\t\t\t/**\n\t\t\t * Index of the item carrying the roving tabindex. `-1` while no item is enabled.\n\t\t\t */\n\t\t\tcurrentIndex: number;\n\t\t\t/**\n\t\t\t * Orchestration records for the items (everything `ButtonFC` or `LinkFC` needs, built by\n\t\t\t * `createToolbarItem`), rebuilt whenever `_items` changes.\n\t\t\t */\n\t\t\titemRecords: Array<ToolbarButtonItem | ToolbarLinkItem>;\n\t\t\t/**\n\t\t\t * The current location reported by the aria-current service, `''` until one is reported.\n\t\t\t * Drives the links' `aria-current`.\n\t\t\t */\n\t\t\tlocation: string;\n\t\t};\n\t}\n>;\n"]}
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../src/internal/functional-components/toolbar/api.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAYzF,MAAM,CAAC,MAAM,kBAAkB,GAAG;IACjC,QAAQ,EAAE,CAAC,uBAAuB,EAAE,gBAAgB,CAAC;IACrD,QAAQ,EAAE,CAAC,eAAe,CAAC;CACS,CAAC","sourcesContent":["import type { KolFocusOptions } from '../../../schema';\nimport { labelWithExpertSlotProp, orientationProp, toolbarItemsProp } from '../../props';\nimport type { ApiFromConfig, PropsConfigShape } from '../generic-types';\nimport type { ToolbarButtonItem, ToolbarHRItem, ToolbarLinkItem } from './item';\n\n/**\n * Props configuration for the toolbar component.\n *\n * Notes on prop choices:\n * - `labelWithExpertSlotProp`, not `labelProp`: the predecessor's `validateLabel` accepted any\n * string; `labelProp` would reject one-character labels. The toolbar has no expert slot.\n * - `orientationProp` defaults to `'horizontal'`, like the predecessor's `validateOrientation`.\n */\nexport const toolbarPropsConfig = {\n\trequired: [labelWithExpertSlotProp, toolbarItemsProp],\n\toptional: [orientationProp],\n} as const satisfies PropsConfigShape;\n\nexport type ToolbarApi = ApiFromConfig<\n\ttypeof toolbarPropsConfig,\n\t{\n\t\tMethods: {\n\t\t\tclick: () => void;\n\t\t\tfocus: (options?: KolFocusOptions) => void;\n\t\t};\n\t\tStates: {\n\t\t\t/**\n\t\t\t * Index of the item carrying the roving tabindex. `-1` while no item is enabled.\n\t\t\t */\n\t\t\tcurrentIndex: number;\n\t\t\t/**\n\t\t\t * Orchestration records for the items (everything `ButtonFC` or `LinkFC` needs, built by\n\t\t\t * `createToolbarItem`), rebuilt whenever `_items` changes.\n\t\t\t */\n\t\t\titemRecords: Array<ToolbarButtonItem | ToolbarLinkItem | ToolbarHRItem>;\n\t\t\t/**\n\t\t\t * The current location reported by the aria-current service, `''` until one is reported.\n\t\t\t * Drives the links' `aria-current`.\n\t\t\t */\n\t\t\tlocation: string;\n\t\t};\n\t}\n>;\n"]}
|
|
@@ -9,7 +9,7 @@ import { LinkFC } from "../link/component";
|
|
|
9
9
|
const BEM_CLASS_TOOLBAR__ITEM = bem.forBlock('kol-toolbar')('item');
|
|
10
10
|
const renderItem = (record, index, currentIndex, location) => {
|
|
11
11
|
const tabIndex = index === currentIndex && !record.disabled ? 0 : -1;
|
|
12
|
-
return (h("div", { class: BEM_CLASS_TOOLBAR__ITEM, key: index, ref: record.refWrapper }, record.type === 'link' ? h(LinkFC, Object.assign({}, record.getFcProps(tabIndex, location))) : h(ButtonFC, Object.assign({}, record.getFcProps(tabIndex)))));
|
|
12
|
+
return (h("div", { class: BEM_CLASS_TOOLBAR__ITEM, key: index, ref: record.refWrapper }, record.type === 'link' ? (h(LinkFC, Object.assign({}, record.getFcProps(tabIndex, location)))) : record.type === 'button' ? (h(ButtonFC, Object.assign({}, record.getFcProps(tabIndex)))) : (h("hr", null))));
|
|
13
13
|
};
|
|
14
14
|
export const ToolbarFC = ({ class: hostClass, currentIndex, itemRecords, label, location, orientation }) => (h(BemRootNodeFC, { block: "kol-toolbar", class: hostClass, modifiers: { 'orientation-horizontal': orientation === 'horizontal', 'orientation-vertical': orientation === 'vertical' }, role: "toolbar", "aria-label": label }, itemRecords.map((record, index) => renderItem(record, index, currentIndex, location))));
|
|
15
15
|
//# sourceMappingURL=component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","sourceRoot":"","sources":["../../../../src/internal/functional-components/toolbar/component.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAElC,OAAO,EAAE,GAAG,EAAE,MAAM,8BAA8B,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAI3C,MAAM,uBAAuB,GAAG,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAYpE,MAAM,UAAU,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"component.js","sourceRoot":"","sources":["../../../../src/internal/functional-components/toolbar/component.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAElC,OAAO,EAAE,GAAG,EAAE,MAAM,8BAA8B,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAI3C,MAAM,uBAAuB,GAAG,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAYpE,MAAM,UAAU,GAAG,CAAC,MAA2D,EAAE,KAAa,EAAE,YAAoB,EAAE,QAAgB,EAAE,EAAE;IACzI,MAAM,QAAQ,GAAG,KAAK,KAAK,YAAY,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAErE,OAAO,CACN,WAAK,KAAK,EAAE,uBAAuB,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,IACrE,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CACzB,EAAC,MAAM,oBAAK,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAI,CACrD,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAC9B,EAAC,QAAQ,oBAAK,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAI,CAC7C,CAAC,CAAC,CAAC,CACH,aAAM,CACN,CACI,CACN,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAuB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAC/H,EAAC,aAAa,IACb,KAAK,EAAC,aAAa,EACnB,KAAK,EAAE,SAAS,EAChB,SAAS,EAAE,EAAE,wBAAwB,EAAE,WAAW,KAAK,YAAY,EAAE,sBAAsB,EAAE,WAAW,KAAK,UAAU,EAAE,EACzH,IAAI,EAAC,SAAS,gBACF,KAAK,IAEhB,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC,CACvE,CAChB,CAAC","sourcesContent":["import type { FunctionalComponent as FC } from '@stencil/core';\nimport { h } from '@stencil/core';\n\nimport { bem } from '../../../schema/bem-registry';\nimport { BemRootNodeFC } from '../bem-root-node/component';\nimport { ButtonFC } from '../button/component';\nimport type { FunctionalComponentProps } from '../generic-types';\nimport { LinkFC } from '../link/component';\nimport type { ToolbarApi } from './api';\nimport type { ToolbarButtonItem, ToolbarHRItem, ToolbarLinkItem } from './item';\n\nconst BEM_CLASS_TOOLBAR__ITEM = bem.forBlock('kol-toolbar')('item');\n\ntype ToolbarFCProps = Pick<FunctionalComponentProps<ToolbarApi>, 'currentIndex' | 'itemRecords' | 'label' | 'location' | 'orientation'> & {\n\tclass?: string;\n};\n\n/**\n * Renders one entry. `.kol-toolbar__item` stays on a wrapper around the functional component\n * rather than merging onto its root: the themes address it as an ancestor of the button's and\n * link's inner elements (`.kol-toolbar__item:first-child .kol-button__text`), and a wrapper in\n * the place of the former custom element keeps the flex-item box tree unchanged.\n */\nconst renderItem = (record: ToolbarButtonItem | ToolbarLinkItem | ToolbarHRItem, index: number, currentIndex: number, location: string) => {\n\tconst tabIndex = index === currentIndex && !record.disabled ? 0 : -1;\n\n\treturn (\n\t\t<div class={BEM_CLASS_TOOLBAR__ITEM} key={index} ref={record.refWrapper}>\n\t\t\t{record.type === 'link' ? (\n\t\t\t\t<LinkFC {...record.getFcProps(tabIndex, location)} />\n\t\t\t) : record.type === 'button' ? (\n\t\t\t\t<ButtonFC {...record.getFcProps(tabIndex)} />\n\t\t\t) : (\n\t\t\t\t<hr />\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport const ToolbarFC: FC<ToolbarFCProps> = ({ class: hostClass, currentIndex, itemRecords, label, location, orientation }) => (\n\t<BemRootNodeFC\n\t\tblock=\"kol-toolbar\"\n\t\tclass={hostClass}\n\t\tmodifiers={{ 'orientation-horizontal': orientation === 'horizontal', 'orientation-vertical': orientation === 'vertical' }}\n\t\trole=\"toolbar\"\n\t\taria-label={label}\n\t>\n\t\t{itemRecords.map((record, index) => renderItem(record, index, currentIndex, location))}\n\t</BemRootNodeFC>\n);\n"]}
|
|
@@ -11,7 +11,15 @@ import { BaseWebComponent } from "../base-web-component";
|
|
|
11
11
|
import { resolveButtonProps } from "../button/resolve-props";
|
|
12
12
|
import { resolveLinkProps } from "../link/resolve-props";
|
|
13
13
|
import { TooltipBehavior } from "../tooltip/behavior";
|
|
14
|
-
export const createToolbarItem = (item, getFlagHost) =>
|
|
14
|
+
export const createToolbarItem = (item, getFlagHost) => {
|
|
15
|
+
if (item.type === 'link') {
|
|
16
|
+
return createLinkItem(item, getFlagHost);
|
|
17
|
+
}
|
|
18
|
+
else if (item.type === 'button') {
|
|
19
|
+
return createButtonItem(item, getFlagHost);
|
|
20
|
+
}
|
|
21
|
+
return createHRItem();
|
|
22
|
+
};
|
|
15
23
|
const createButtonItem = (item, getFlagHost) => {
|
|
16
24
|
const tooltipBehavior = new TooltipBehavior(BaseWebComponent.stateLess);
|
|
17
25
|
const ctaRef = createCtaRef();
|
|
@@ -114,4 +122,15 @@ const createLinkItem = (item, getFlagHost) => {
|
|
|
114
122
|
destroy: () => tooltipBehavior.destroy(),
|
|
115
123
|
};
|
|
116
124
|
};
|
|
125
|
+
const createHRItem = () => {
|
|
126
|
+
const ctaRef = createCtaRef();
|
|
127
|
+
return {
|
|
128
|
+
type: 'hr',
|
|
129
|
+
disabled: true,
|
|
130
|
+
getElement: () => ctaRef.el,
|
|
131
|
+
refWrapper: () => { },
|
|
132
|
+
syncListeners: () => { },
|
|
133
|
+
destroy: () => { },
|
|
134
|
+
};
|
|
135
|
+
};
|
|
117
136
|
//# sourceMappingURL=item.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"item.js","sourceRoot":"","sources":["../../../../src/internal/functional-components/toolbar/item.ts"],"names":[],"mappings":"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","sourcesContent":["import { getFeatureFlag } from 'adopted-style-sheets';\n\nimport { propagateResetEventToForm, propagateSubmitEventToForm } from '../../../components/form/controller';\nimport type { ToolbarItemPropType } from '../../../schema';\nimport { setEventTarget } from '../../../schema';\nimport { nonce } from '../../../utils/dev.utils';\nimport { createCtaRef } from '../../../utils/element-interaction';\nimport { dispatchDomEvent, KolEvent } from '../../../utils/events';\nimport { BaseWebComponent } from '../base-web-component';\nimport type { ButtonApi } from '../button/api';\nimport { resolveButtonProps } from '../button/resolve-props';\nimport type { FunctionalComponentProps } from '../generic-types';\nimport type { LinkApi } from '../link/api';\nimport type { EmbeddedLinkProps } from '../link/resolve-props';\nimport { resolveLinkProps } from '../link/resolve-props';\nimport { TooltipBehavior } from '../tooltip/behavior';\n\ntype ToolbarItemBase = {\n\t/** Whether the item refuses interaction; the roving tabindex skips it. */\n\tdisabled: boolean;\n\t/** The item's interactive element, once rendered. */\n\tgetElement(): HTMLAnchorElement | HTMLButtonElement | undefined;\n\t/**\n\t * Ref for the item's wrapper. The public `KolEvent` DOM events are dispatched on it, i.e. on\n\t * the node that the transitional `kol-button-wc`/`kol-link-wc` host occupied before.\n\t */\n\trefWrapper: (element?: HTMLElement) => void;\n\t/** Re-registers the tooltip listeners on the current element. Call from `componentDidRender`. */\n\tsyncListeners(): void;\n\t/** Tears down the tooltip behavior. Call when the item is replaced or the toolbar disconnects. */\n\tdestroy(): void;\n};\n\nexport type ToolbarButtonItem = ToolbarItemBase & {\n\ttype: 'button';\n\t/** Fully resolved `ButtonFC` props for the given roving tabindex. */\n\tgetFcProps(tabIndex: number): FunctionalComponentProps<ButtonApi>;\n};\n\nexport type ToolbarLinkItem = ToolbarItemBase & {\n\ttype: 'link';\n\t/**\n\t * Fully resolved `LinkFC` props for the given roving tabindex and current location (`''` while\n\t * no location has been reported).\n\t */\n\tgetFcProps(tabIndex: number, location: string): FunctionalComponentProps<LinkApi>;\n};\n\n/**\n * One orchestrated toolbar entry: everything `ButtonFC` or `LinkFC` needs to render it, plus the\n * lifecycle hooks the toolbar has to drive — what the transitional `kol-button-wc` and\n * `kol-link-wc` did per entry before the toolbar rendered the functional components directly.\n *\n * A plain object with closures, like `breadcrumb/link-item.ts` and `popover-button/item.ts`, so\n * the toolbar rebuilds it cheaply whenever `_items` changes while tooltip behavior and refs\n * survive by reference.\n *\n * The toolbar's own defaults — `_inline: false` and the theme's `buttonVariantDefault` — apply\n * only where the entry leaves the prop unset, and an entry's own `_tabIndex` wins over the roving\n * tabindex, exactly like the predecessor's `{...defaults} {...item}` spread.\n */\nexport const createToolbarItem = (item: ToolbarItemPropType, getFlagHost: () => HTMLElement | undefined): ToolbarButtonItem | ToolbarLinkItem =>\n\titem.type === 'link' ? createLinkItem(item, getFlagHost) : createButtonItem(item, getFlagHost);\n\nconst createButtonItem = (item: Extract<ToolbarItemPropType, { type: 'button' }>, getFlagHost: () => HTMLElement | undefined): ToolbarButtonItem => {\n\tconst tooltipBehavior = new TooltipBehavior(BaseWebComponent.stateLess);\n\tconst ctaRef = createCtaRef<HTMLButtonElement>();\n\tconst ariaDescriptionId = nonce();\n\tlet wrapper: HTMLElement | undefined;\n\n\tconst props = resolveButtonProps(item, getFlagHost());\n\tconst value = item._value;\n\n\ttooltipBehavior.componentWillLoad({ label: props.label, align: props.tooltipAlign });\n\n\tconst dispatch = (event: KolEvent, detail?: unknown): void => {\n\t\tif (wrapper) {\n\t\t\tdispatchDomEvent(wrapper, event, detail);\n\t\t}\n\t};\n\n\tconst handleClick = (event: MouseEvent): void => {\n\t\tevent.stopPropagation();\n\t\ttooltipBehavior.hideTooltip();\n\n\t\tif (props.type === 'submit') {\n\t\t\tpropagateSubmitEventToForm({ form: wrapper, ref: ctaRef.el });\n\t\t} else if (props.type === 'reset') {\n\t\t\tpropagateResetEventToForm({ form: wrapper, ref: ctaRef.el });\n\t\t} else if (typeof props.on.onClick === 'function') {\n\t\t\tsetEventTarget(event, ctaRef.el);\n\t\t\tprops.on.onClick(event, value);\n\t\t}\n\n\t\tdispatch(KolEvent.click, value);\n\t};\n\n\tconst handleMouseDown = (event: MouseEvent): void => {\n\t\tprops.on.onMouseDown?.(event);\n\t\tdispatch(KolEvent.mousedown);\n\t};\n\n\tconst handleFocus = (event: FocusEvent): void => {\n\t\tprops.on.onFocus?.(event);\n\t\tdispatch(KolEvent.focus);\n\t};\n\n\tconst handleBlur = (event: FocusEvent): void => {\n\t\tprops.on.onBlur?.(event);\n\t\tdispatch(KolEvent.blur);\n\t};\n\n\treturn {\n\t\ttype: 'button',\n\t\tdisabled: props.disabled,\n\t\tgetElement: () => ctaRef.el,\n\t\tgetFcProps: (tabIndex) => ({\n\t\t\t...props,\n\t\t\tariaDescriptionId,\n\t\t\thandleBlur,\n\t\t\thandleClick,\n\t\t\thandleFocus,\n\t\t\thandleMouseDown,\n\t\t\trefButton: ctaRef,\n\t\t\trefTooltip: tooltipBehavior.setTooltipElementRef,\n\t\t\ttabIndex: typeof item._tabIndex === 'number' ? props.tabIndex : tabIndex,\n\t\t}),\n\t\trefWrapper: (element) => {\n\t\t\twrapper = element;\n\t\t},\n\t\tsyncListeners: () => {\n\t\t\tif (ctaRef.el) {\n\t\t\t\ttooltipBehavior.syncListeners(undefined, ctaRef.el, true);\n\t\t\t}\n\t\t},\n\t\tdestroy: () => tooltipBehavior.destroy(),\n\t};\n};\n\nconst createLinkItem = (item: Extract<ToolbarItemPropType, { type: 'link' }>, getFlagHost: () => HTMLElement | undefined): ToolbarLinkItem => {\n\tconst tooltipBehavior = new TooltipBehavior(BaseWebComponent.stateLess);\n\tconst ctaRef = createCtaRef<HTMLAnchorElement>();\n\tconst ariaDescriptionId = nonce();\n\tlet wrapper: HTMLElement | undefined;\n\n\tconst link: EmbeddedLinkProps = item;\n\tconst props = resolveLinkProps({\n\t\t...link,\n\t\t_inline: link._inline ?? false,\n\t\t_variant: link._variant ?? getFeatureFlag('buttonVariantDefault', getFlagHost()) ?? 'normal',\n\t});\n\n\t// A link without a label shows its href, and so does its tooltip.\n\ttooltipBehavior.componentWillLoad({ label: props.label.length > 0 ? props.label : props.href, align: props.tooltipAlign });\n\n\tconst handleAnchorClick = (event: Event): void => {\n\t\ttooltipBehavior.hideTooltip();\n\t\tif (props.disabled) {\n\t\t\tevent.preventDefault();\n\t\t\treturn;\n\t\t}\n\t\tif (typeof props.on.onClick === 'function') {\n\t\t\tsetEventTarget(event, ctaRef.el);\n\t\t\tprops.on.onClick(event, props.href);\n\t\t}\n\t\tif (wrapper) {\n\t\t\tdispatchDomEvent(wrapper, KolEvent.click, props.href);\n\t\t}\n\t};\n\n\treturn {\n\t\ttype: 'link',\n\t\tdisabled: props.disabled,\n\t\tgetElement: () => ctaRef.el,\n\t\tgetFcProps: (tabIndex, location) => ({\n\t\t\t...props,\n\t\t\tariaCurrent: location !== '' && location === props.href ? props.ariaCurrentValue : '',\n\t\t\tariaDescriptionId,\n\t\t\texpertSlot: item._label === '',\n\t\t\thandleAnchorClick,\n\t\t\trefAnchor: ctaRef,\n\t\t\trefTooltip: tooltipBehavior.setTooltipElementRef,\n\t\t\ttabIndex: typeof item._tabIndex === 'number' ? props.tabIndex : tabIndex,\n\t\t}),\n\t\trefWrapper: (element) => {\n\t\t\twrapper = element;\n\t\t},\n\t\tsyncListeners: () => {\n\t\t\tif (ctaRef.el) {\n\t\t\t\ttooltipBehavior.syncListeners(undefined, ctaRef.el, true);\n\t\t\t}\n\t\t},\n\t\tdestroy: () => tooltipBehavior.destroy(),\n\t};\n};\n"]}
|
|
1
|
+
{"version":3,"file":"item.js","sourceRoot":"","sources":["../../../../src/internal/functional-components/toolbar/item.ts"],"names":[],"mappings":"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","sourcesContent":["import { getFeatureFlag } from 'adopted-style-sheets';\n\nimport { propagateResetEventToForm, propagateSubmitEventToForm } from '../../../components/form/controller';\nimport type { ToolbarItemPropType } from '../../../schema';\nimport { setEventTarget } from '../../../schema';\nimport { nonce } from '../../../utils/dev.utils';\nimport { createCtaRef } from '../../../utils/element-interaction';\nimport { dispatchDomEvent, KolEvent } from '../../../utils/events';\nimport { BaseWebComponent } from '../base-web-component';\nimport type { ButtonApi } from '../button/api';\nimport { resolveButtonProps } from '../button/resolve-props';\nimport type { FunctionalComponentProps } from '../generic-types';\nimport type { LinkApi } from '../link/api';\nimport type { EmbeddedLinkProps } from '../link/resolve-props';\nimport { resolveLinkProps } from '../link/resolve-props';\nimport { TooltipBehavior } from '../tooltip/behavior';\n\ntype ToolbarItemBase = {\n\t/** Whether the item refuses interaction; the roving tabindex skips it. */\n\tdisabled: boolean;\n\t/** The item's interactive element, once rendered. */\n\tgetElement(): HTMLAnchorElement | HTMLButtonElement | HTMLHRElement | undefined;\n\t/**\n\t * Ref for the item's wrapper. The public `KolEvent` DOM events are dispatched on it, i.e. on\n\t * the node that the transitional `kol-button-wc`/`kol-link-wc` host occupied before.\n\t */\n\trefWrapper: (element?: HTMLElement) => void;\n\t/** Re-registers the tooltip listeners on the current element. Call from `componentDidRender`. */\n\tsyncListeners(): void;\n\t/** Tears down the tooltip behavior. Call when the item is replaced or the toolbar disconnects. */\n\tdestroy(): void;\n};\n\nexport type ToolbarButtonItem = ToolbarItemBase & {\n\ttype: 'button';\n\t/** Fully resolved `ButtonFC` props for the given roving tabindex. */\n\tgetFcProps(tabIndex: number): FunctionalComponentProps<ButtonApi>;\n};\n\nexport type ToolbarLinkItem = ToolbarItemBase & {\n\ttype: 'link';\n\t/**\n\t * Fully resolved `LinkFC` props for the given roving tabindex and current location (`''` while\n\t * no location has been reported).\n\t */\n\tgetFcProps(tabIndex: number, location: string): FunctionalComponentProps<LinkApi>;\n};\n\nexport type ToolbarHRItem = ToolbarItemBase & {\n\ttype: 'hr';\n};\n\n/**\n * One orchestrated toolbar entry: everything `ButtonFC` or `LinkFC` needs to render it, plus the\n * lifecycle hooks the toolbar has to drive — what the transitional `kol-button-wc` and\n * `kol-link-wc` did per entry before the toolbar rendered the functional components directly.\n *\n * A plain object with closures, like `breadcrumb/link-item.ts` and `popover-button/item.ts`, so\n * the toolbar rebuilds it cheaply whenever `_items` changes while tooltip behavior and refs\n * survive by reference.\n *\n * The toolbar's own defaults — `_inline: false` and the theme's `buttonVariantDefault` — apply\n * only where the entry leaves the prop unset, and an entry's own `_tabIndex` wins over the roving\n * tabindex, exactly like the predecessor's `{...defaults} {...item}` spread.\n */\nexport const createToolbarItem = (\n\titem: ToolbarItemPropType,\n\tgetFlagHost: () => HTMLElement | undefined,\n): ToolbarButtonItem | ToolbarLinkItem | ToolbarHRItem => {\n\tif (item.type === 'link') {\n\t\treturn createLinkItem(item, getFlagHost);\n\t} else if (item.type === 'button') {\n\t\treturn createButtonItem(item, getFlagHost);\n\t}\n\treturn createHRItem();\n};\n\nconst createButtonItem = (item: Extract<ToolbarItemPropType, { type: 'button' }>, getFlagHost: () => HTMLElement | undefined): ToolbarButtonItem => {\n\tconst tooltipBehavior = new TooltipBehavior(BaseWebComponent.stateLess);\n\tconst ctaRef = createCtaRef<HTMLButtonElement>();\n\tconst ariaDescriptionId = nonce();\n\tlet wrapper: HTMLElement | undefined;\n\n\tconst props = resolveButtonProps(item, getFlagHost());\n\tconst value = item._value;\n\n\ttooltipBehavior.componentWillLoad({ label: props.label, align: props.tooltipAlign });\n\n\tconst dispatch = (event: KolEvent, detail?: unknown): void => {\n\t\tif (wrapper) {\n\t\t\tdispatchDomEvent(wrapper, event, detail);\n\t\t}\n\t};\n\n\tconst handleClick = (event: MouseEvent): void => {\n\t\tevent.stopPropagation();\n\t\ttooltipBehavior.hideTooltip();\n\n\t\tif (props.type === 'submit') {\n\t\t\tpropagateSubmitEventToForm({ form: wrapper, ref: ctaRef.el });\n\t\t} else if (props.type === 'reset') {\n\t\t\tpropagateResetEventToForm({ form: wrapper, ref: ctaRef.el });\n\t\t} else if (typeof props.on.onClick === 'function') {\n\t\t\tsetEventTarget(event, ctaRef.el);\n\t\t\tprops.on.onClick(event, value);\n\t\t}\n\n\t\tdispatch(KolEvent.click, value);\n\t};\n\n\tconst handleMouseDown = (event: MouseEvent): void => {\n\t\tprops.on.onMouseDown?.(event);\n\t\tdispatch(KolEvent.mousedown);\n\t};\n\n\tconst handleFocus = (event: FocusEvent): void => {\n\t\tprops.on.onFocus?.(event);\n\t\tdispatch(KolEvent.focus);\n\t};\n\n\tconst handleBlur = (event: FocusEvent): void => {\n\t\tprops.on.onBlur?.(event);\n\t\tdispatch(KolEvent.blur);\n\t};\n\n\treturn {\n\t\ttype: 'button',\n\t\tdisabled: props.disabled,\n\t\tgetElement: () => ctaRef.el,\n\t\tgetFcProps: (tabIndex) => ({\n\t\t\t...props,\n\t\t\tariaDescriptionId,\n\t\t\thandleBlur,\n\t\t\thandleClick,\n\t\t\thandleFocus,\n\t\t\thandleMouseDown,\n\t\t\trefButton: ctaRef,\n\t\t\trefTooltip: tooltipBehavior.setTooltipElementRef,\n\t\t\ttabIndex: typeof item._tabIndex === 'number' ? props.tabIndex : tabIndex,\n\t\t}),\n\t\trefWrapper: (element) => {\n\t\t\twrapper = element;\n\t\t},\n\t\tsyncListeners: () => {\n\t\t\tif (ctaRef.el) {\n\t\t\t\ttooltipBehavior.syncListeners(undefined, ctaRef.el, true);\n\t\t\t}\n\t\t},\n\t\tdestroy: () => tooltipBehavior.destroy(),\n\t};\n};\n\nconst createLinkItem = (item: Extract<ToolbarItemPropType, { type: 'link' }>, getFlagHost: () => HTMLElement | undefined): ToolbarLinkItem => {\n\tconst tooltipBehavior = new TooltipBehavior(BaseWebComponent.stateLess);\n\tconst ctaRef = createCtaRef<HTMLAnchorElement>();\n\tconst ariaDescriptionId = nonce();\n\tlet wrapper: HTMLElement | undefined;\n\n\tconst link: EmbeddedLinkProps = item;\n\tconst props = resolveLinkProps({\n\t\t...link,\n\t\t_inline: link._inline ?? false,\n\t\t_variant: link._variant ?? getFeatureFlag('buttonVariantDefault', getFlagHost()) ?? 'normal',\n\t});\n\n\t// A link without a label shows its href, and so does its tooltip.\n\ttooltipBehavior.componentWillLoad({ label: props.label.length > 0 ? props.label : props.href, align: props.tooltipAlign });\n\n\tconst handleAnchorClick = (event: Event): void => {\n\t\ttooltipBehavior.hideTooltip();\n\t\tif (props.disabled) {\n\t\t\tevent.preventDefault();\n\t\t\treturn;\n\t\t}\n\t\tif (typeof props.on.onClick === 'function') {\n\t\t\tsetEventTarget(event, ctaRef.el);\n\t\t\tprops.on.onClick(event, props.href);\n\t\t}\n\t\tif (wrapper) {\n\t\t\tdispatchDomEvent(wrapper, KolEvent.click, props.href);\n\t\t}\n\t};\n\n\treturn {\n\t\ttype: 'link',\n\t\tdisabled: props.disabled,\n\t\tgetElement: () => ctaRef.el,\n\t\tgetFcProps: (tabIndex, location) => ({\n\t\t\t...props,\n\t\t\tariaCurrent: location !== '' && location === props.href ? props.ariaCurrentValue : '',\n\t\t\tariaDescriptionId,\n\t\t\texpertSlot: item._label === '',\n\t\t\thandleAnchorClick,\n\t\t\trefAnchor: ctaRef,\n\t\t\trefTooltip: tooltipBehavior.setTooltipElementRef,\n\t\t\ttabIndex: typeof item._tabIndex === 'number' ? props.tabIndex : tabIndex,\n\t\t}),\n\t\trefWrapper: (element) => {\n\t\t\twrapper = element;\n\t\t},\n\t\tsyncListeners: () => {\n\t\t\tif (ctaRef.el) {\n\t\t\t\ttooltipBehavior.syncListeners(undefined, ctaRef.el, true);\n\t\t\t}\n\t\t},\n\t\tdestroy: () => tooltipBehavior.destroy(),\n\t};\n};\n\nconst createHRItem = (): ToolbarHRItem => {\n\tconst ctaRef = createCtaRef<HTMLHRElement>();\n\n\treturn {\n\t\ttype: 'hr',\n\t\tdisabled: true,\n\t\tgetElement: () => ctaRef.el,\n\t\trefWrapper: () => {},\n\t\tsyncListeners: () => {},\n\t\tdestroy: () => {},\n\t};\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolbar-items.js","sourceRoot":"","sources":["../../../src/schema/props/toolbar-items.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"toolbar-items.js","sourceRoot":"","sources":["../../../src/schema/props/toolbar-items.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAuB/F,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,SAAoC,EAAE,KAA4B,EAAQ,EAAE;IAChH,yBAAyB,CAAC,KAAK,EAAE,GAAG,EAAE;QACrC,mBAAmB,CAAC,KAAK,EAAE,GAAG,EAAE;YAC/B,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE,CAAC;gBAClC,KAAK,GAAG,EAAE,CAAC;YACZ,CAAC;YACD,IAAI,CAAC;gBACJ,KAAK,GAAG,SAAS,CAAwB,KAAK,CAAC,CAAC;YACjD,CAAC;YAAC,WAAM,CAAC;YAET,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,KAA0B,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC;gBACtH,QAAQ,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YACtC,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import type { Generic } from 'adopted-style-sheets';\n\nimport type { InternalButtonProps, LinkProps } from '../../schema';\nimport { emptyStringByArrayHandler, objectObjectHandler, parseJson, setState } from '../utils';\n\n/* types */\nexport type ToolbarItemPropType =\n\t| ({\n\t\t\ttype: 'button';\n\t } & InternalButtonProps)\n\t| ({\n\t\t\ttype: 'link';\n\t } & LinkProps)\n\t| {\n\t\t\ttype: 'hr';\n\t };\nexport type ToolbarItemsPropType = ToolbarItemPropType[];\n\n/**\n * Defines the primary toolbar items.\n */\nexport type PropToolbarItems = {\n\titems: ToolbarItemsPropType;\n};\n\n/* validator */\nexport const validateToolbarItems = (component: Generic.Element.Component, value?: ToolbarItemsPropType): void => {\n\temptyStringByArrayHandler(value, () => {\n\t\tobjectObjectHandler(value, () => {\n\t\t\tif (typeof value === 'undefined') {\n\t\t\t\tvalue = [];\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tvalue = parseJson<ToolbarItemPropType[]>(value);\n\t\t\t} catch {\n\t\t\t\t// value keeps the original items\n\t\t\t}\n\t\t\tif (Array.isArray(value) && value.every((items: ToolbarItemPropType) => typeof items === 'object' && items !== null)) {\n\t\t\t\tsetState(component, '_items', value);\n\t\t\t}\n\t\t});\n\t});\n};\n"]}
|
|
@@ -27,18 +27,10 @@ export const calcColorContrast = (baseColor, contrastColor, ratio, dir = 1) => {
|
|
|
27
27
|
return calcColorContrast(baseColor, color, ratio, dir);
|
|
28
28
|
}
|
|
29
29
|
};
|
|
30
|
-
const
|
|
31
|
-
export const getColorContrast = (baseColor, contrastColor, ratio, dir = 1) => {
|
|
32
|
-
if (cache.has(baseColor)) {
|
|
33
|
-
return cache.get(baseColor);
|
|
34
|
-
}
|
|
35
|
-
const color = calcColorContrast(baseColor, contrastColor, ratio, dir);
|
|
36
|
-
cache.set(baseColor, color);
|
|
37
|
-
return color;
|
|
38
|
-
};
|
|
30
|
+
export const getColorContrast = (baseColor, contrastColor, ratio, dir = 1) => calcColorContrast(baseColor, contrastColor, ratio, dir);
|
|
39
31
|
const chooseColorContrast = (baseColor, contrastColor, ratio) => {
|
|
40
32
|
const dir = getContrastYIQ(baseColor[0], baseColor[1], baseColor[2]);
|
|
41
|
-
const suggested =
|
|
33
|
+
const suggested = calcColorContrast(baseColor, contrastColor, ratio, dir);
|
|
42
34
|
if (suggested.contrast >= ratio) {
|
|
43
35
|
return suggested;
|
|
44
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contrast.js","sourceRoot":"","sources":["../../../src/schema/utils/contrast.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAEpC,OAAO,IAAI,MAAM,YAAY,CAAC;AAC9B,OAAO,WAAW,MAAM,cAAc,CAAC;AA6BvC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAU,EAAE;IACzE,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;IACjD,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5B,CAAC,CAAC;AAWF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,SAAc,EAAE,aAAkB,EAAE,KAAa,EAAE,GAAG,GAAG,CAAC,EAAsB,EAAE;IACnH,MAAM,KAAK,GAAQ;QAClB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QACpG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QACpG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;KACpG,CAAC;IACF,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IACvH,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7C,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,GAAG,IAAI,QAAQ,GAAG,KAAK,EAAE,CAAC;QACtD,OAAO;YACN,UAAU,EAAE,SAAS;YACrB,UAAU,EAAE,KAAK;YACjB,QAAQ;SACR,CAAC;IACH,CAAC;SAAM,CAAC;QACP,OAAO,iBAAiB,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IACxD,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,
|
|
1
|
+
{"version":3,"file":"contrast.js","sourceRoot":"","sources":["../../../src/schema/utils/contrast.ts"],"names":[],"mappings":"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","sourcesContent":["import type { RGB } from 'color-convert';\nimport { hex } from 'wcag-contrast';\n\nimport rgba from 'color-rgba';\nimport rgbaConvert from 'rgba-convert';\n\ntype RGBA = [number, number, number, number];\n\n// const calcColor = (color: RGBA, diff: number): RGBA => [\n// Math.max(Math.min(Math.round(color[0] + (color[0] / 100 + 1) * diff), 255), 0),\n// Math.max(Math.min(Math.round(color[1] + (color[1] / 100 + 1) * diff), 255), 0),\n// Math.max(Math.min(Math.round(color[2] + (color[2] / 100 + 1) * diff), 255), 0),\n// color[3],\n// ];\n\n// const relativeLuminanceFormel = (c: number): number => {\n// if (c <= 0.03928) {\n// return c / 12.92;\n// } else {\n// return ((c + 0.055) / 1.055) ** 2.4;\n// }\n// };\n// // https://www.w3.org/TR/WCAG20/#contrast-ratiodef\n// const relativeLuminance = (r: number, g: number, b: number): number => {\n// return (\n// 0.2126 * relativeLuminanceFormel(r) + 0.7152 * relativeLuminanceFormel(g) + 0.0722 * relativeLuminanceFormel(b)\n// );\n// };\n\n// https://css-tricks.com/snippets/javascript/random-hex-color/\n// const randomColor = () => Math.floor(Math.random() * 16777215).toString(16);\n\n// https://24ways.org/2010/calculating-color-contrast/\nexport const getContrastYIQ = (r: number, g: number, b: number): number => {\n\tconst yiq = (r * 299 + g * 587 + b * 114) / 1000;\n\treturn yiq >= 128 ? -1 : 1;\n};\n\ntype ColorPair<T> = {\n\tbackground: T;\n\tforeground: T;\n};\n\nexport type ColorContrast<T> = ColorPair<T> & {\n\tcontrast: number;\n};\n\nexport const calcColorContrast = (baseColor: RGB, contrastColor: RGB, ratio: number, dir = 1): ColorContrast<RGB> => {\n\tconst color: RGB = [\n\t\tMath.max(Math.min(Math.round(contrastColor[0] + dir * Math.max(1, contrastColor[0] / 100)), 255), 0),\n\t\tMath.max(Math.min(Math.round(contrastColor[1] + dir * Math.max(1, contrastColor[1] / 100)), 255), 0),\n\t\tMath.max(Math.min(Math.round(contrastColor[2] + dir * Math.max(1, contrastColor[2] / 100)), 255), 0),\n\t];\n\tconst contrast = hex(rgbaConvert.hex(`rgba(${baseColor.join(',')},1)`), rgbaConvert.hex(`rgba(${color.join(',')},1)`));\n\tconst summe = color[0] + color[1] + color[2];\n\tif (summe === 0 || summe === 765 || contrast > ratio) {\n\t\treturn {\n\t\t\tbackground: baseColor,\n\t\t\tforeground: color,\n\t\t\tcontrast,\n\t\t};\n\t} else {\n\t\treturn calcColorContrast(baseColor, color, ratio, dir);\n\t}\n};\n\nexport const getColorContrast = (baseColor: RGB, contrastColor: RGB, ratio: number, dir = 1): ColorContrast<RGB> =>\n\tcalcColorContrast(baseColor, contrastColor, ratio, dir);\n\n/**\n * Adjusts the foreground in the direction the YIQ brightness of the background suggests. YIQ is only\n * an estimate of the WCAG contrast ratio: for medium bright backgrounds such as `#00aa00` it suggests\n * a light foreground, although even white stays below the ratio there. If the suggested direction does\n * not reach the ratio, the opposite direction is tried and the foreground with the higher WCAG contrast\n * ratio wins, which is black or white at the latest.\n */\nconst chooseColorContrast = (baseColor: RGB, contrastColor: RGB, ratio: number): ColorContrast<RGB> => {\n\tconst dir = getContrastYIQ(baseColor[0], baseColor[1], baseColor[2]);\n\tconst suggested = calcColorContrast(baseColor, contrastColor, ratio, dir);\n\tif (suggested.contrast >= ratio) {\n\t\treturn suggested;\n\t}\n\tconst opposite = calcColorContrast(baseColor, contrastColor, ratio, -dir);\n\treturn opposite.contrast > suggested.contrast ? opposite : suggested;\n};\n\nexport const createContrastColorPair = (color: string | ColorPair<string>, contrastRatio = 7): ColorContrast<string> => {\n\tlet baseColor: RGBA = [0, 0, 0, 1];\n\tlet contrastColor: RGBA = [255, 255, 255, 1];\n\tif (typeof color === 'string') {\n\t\tbaseColor = rgba(color);\n\t\tcontrastColor = baseColor;\n\t} else if (typeof color === 'object' && color !== null && typeof color.background === 'string' && typeof color.foreground === 'string') {\n\t\tbaseColor = rgba(color.background);\n\t\tif (typeof color.foreground === 'string') {\n\t\t\tcontrastColor = rgba(color.foreground);\n\t\t} else {\n\t\t\tcontrastColor = baseColor;\n\t\t}\n\t}\n\tconst colorContrast = chooseColorContrast([baseColor[0], baseColor[1], baseColor[2]], [contrastColor[0], contrastColor[1], contrastColor[2]], contrastRatio);\n\tcontrastColor = [...colorContrast.foreground, 1];\n\n\treturn {\n\t\tbackground: rgbaConvert.hex(`rgba(${baseColor.join(',')})`),\n\t\tforeground: rgbaConvert.hex(`rgba(${contrastColor.join(',')})`),\n\t\tcontrast: colorContrast.contrast,\n\t};\n};\n"]}
|
|
@@ -79,13 +79,18 @@ const SelectOptionListFC = ({ preKey, options, disabled, value: selectedValue, O
|
|
|
79
79
|
return null;
|
|
80
80
|
}
|
|
81
81
|
return (h(Fragment, null, options.map((option, index) => {
|
|
82
|
+
var _a;
|
|
82
83
|
const key = [preKey, `-${index}`].join('');
|
|
83
84
|
if ('options' in option) {
|
|
85
|
+
if (!((_a = option.options) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
const isOptgroupDisabled = Boolean(disabled || option.disabled);
|
|
84
89
|
const { label } = option, other = __rest(option, ["label"]);
|
|
85
|
-
return (h("optgroup", Object.assign({ class: selectBem('optgroup', { disabled:
|
|
90
|
+
return (h("optgroup", Object.assign({ class: selectBem('optgroup', { disabled: isOptgroupDisabled }), key: key }, OptionGroupProps, { label: label === null || label === void 0 ? void 0 : label.toString(), disabled: isOptgroupDisabled }), h(SelectOptionListFC, Object.assign({ OptionGroupProps: OptionGroupProps, OptionProps: OptionProps, value: selectedValue, preKey: key }, other, { disabled: isOptgroupDisabled }))));
|
|
86
91
|
}
|
|
87
92
|
if ('value' in option) {
|
|
88
|
-
return h(SelectOptionFC, Object.assign({ key: key }, OptionProps, { index: key, selectedValue: selectedValue }, option));
|
|
93
|
+
return (h(SelectOptionFC, Object.assign({ key: key }, OptionProps, { index: key, selectedValue: selectedValue }, option, { disabled: Boolean(disabled || option.disabled) })));
|
|
89
94
|
}
|
|
90
95
|
return null;
|
|
91
96
|
})));
|
|
@@ -93,7 +98,7 @@ const SelectOptionListFC = ({ preKey, options, disabled, value: selectedValue, O
|
|
|
93
98
|
const SelectFC = (props) => {
|
|
94
99
|
const { class: classNames, msg, touched, disabled, required, options, value, OptionProps, OptionGroupProps, ariaDescribedBy, hideLabel, label } = props, other = __rest(props, ["class", "msg", "touched", "disabled", "required", "options", "value", "OptionProps", "OptionGroupProps", "ariaDescribedBy", "hideLabel", "label"]);
|
|
95
100
|
const selectProps = Object.assign(Object.assign({ class: clsx(selectBem(Object.assign({ disabled: Boolean(disabled), required: Boolean(required), touched: Boolean(touched) }, (isMsgDefinedAndInputTouched(msg, touched) ? { [getMsgType(msg)]: true } : {}))), classNames), required: required, disabled: disabled }, getDefaultInputProps({ ariaDescribedBy, hideLabel, label })), other);
|
|
96
|
-
return (h("select", Object.assign({}, selectProps), h(SelectOptionListFC, {
|
|
101
|
+
return (h("select", Object.assign({}, selectProps), h(SelectOptionListFC, { OptionGroupProps: OptionGroupProps, OptionProps: OptionProps, disabled: disabled, options: options, value: value })));
|
|
97
102
|
};
|
|
98
103
|
|
|
99
104
|
const assertSelectValueMatchesMultiplicity = (value, multiple, source) => {
|
|
@@ -107,7 +112,9 @@ const assertSelectValueMatchesMultiplicity = (value, multiple, source) => {
|
|
|
107
112
|
throw new Error(`↑ The schema for the property (_value) is not valid for single mode. Expected a single value. The value will not be changed. (${source} = ${JSON.stringify(value)})`);
|
|
108
113
|
}
|
|
109
114
|
};
|
|
110
|
-
const flattenSelectOptions = (options) => options.flatMap((entry) =>
|
|
115
|
+
const flattenSelectOptions = (options, groupDisabled = false) => options.flatMap((entry) => 'options' in entry && Array.isArray(entry.options)
|
|
116
|
+
? flattenSelectOptions(entry.options, Boolean(groupDisabled || entry.disabled))
|
|
117
|
+
: [Object.assign(Object.assign({}, entry), { disabled: Boolean(groupDisabled || entry.disabled) })]);
|
|
111
118
|
const normalizeSelectValue = (value, options, multiple) => {
|
|
112
119
|
if (options.length === 0) {
|
|
113
120
|
return value;
|