@public-ui/components 4.5.0-rc.6 → 4.5.0-rc.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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-yiwXjRrz.js} +3 -3
- package/dist/cjs/{Heading-Bck3PFpH.js.map → Heading-yiwXjRrz.js.map} +1 -1
- package/dist/cjs/{api-BcNl2vZm.js → api-BDT5xkx5.js} +8 -8
- package/dist/cjs/{api-BcNl2vZm.js.map → api-BDT5xkx5.js.map} +1 -1
- package/dist/cjs/{api-LP3gnw7U.js → api-BI1qXrGa.js} +12 -12
- package/dist/cjs/{api-LP3gnw7U.js.map → api-BI1qXrGa.js.map} +1 -1
- package/dist/cjs/{app-globals-oR-jEiju.js → app-globals-DPVGNVgE.js} +4 -4
- package/dist/cjs/{app-globals-oR-jEiju.js.map → app-globals-DPVGNVgE.js.map} +1 -1
- package/dist/cjs/{base-DbfvhKRa.js → base-B_M9Y7nD.js} +4 -4
- package/dist/cjs/{base-DbfvhKRa.js.map → base-B_M9Y7nD.js.map} +1 -1
- package/dist/cjs/{base-BDGmLWVj.js → base-CaQNXZrN.js} +5 -5
- package/dist/cjs/{base-BDGmLWVj.js.map → base-CaQNXZrN.js.map} +1 -1
- package/dist/cjs/{base-CwXJywKD.js → base-DlsemYqM.js} +4 -4
- package/dist/cjs/{base-CwXJywKD.js.map → base-DlsemYqM.js.map} +1 -1
- package/dist/cjs/{base-DaK2F3pq.js → base-FZ2Hemhr.js} +16 -16
- package/dist/cjs/{base-DaK2F3pq.js.map → base-FZ2Hemhr.js.map} +1 -1
- package/dist/cjs/{base-web-component-C8MLLGxi.js → base-web-component-BK8X1O8C.js} +16 -9
- package/dist/cjs/base-web-component-BK8X1O8C.js.map +1 -0
- package/dist/cjs/{base-web-component-mmgXJMg0.js → base-web-component-GLk66TOu.js} +7 -7
- package/dist/cjs/{base-web-component-mmgXJMg0.js.map → base-web-component-GLk66TOu.js.map} +1 -1
- package/dist/cjs/{behavior-DWqrO2yi.js → behavior-BEaXHesG.js} +3 -3
- package/dist/cjs/{behavior-DWqrO2yi.js.map → behavior-BEaXHesG.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-ZPvcKmPR.js → component-3EZdZbDH.js} +3 -3
- package/dist/cjs/{component-ZPvcKmPR.js.map → component-3EZdZbDH.js.map} +1 -1
- package/dist/cjs/{component-DuPEYx7z.js → component-B96XYPtn.js} +4 -4
- package/dist/cjs/{component-DuPEYx7z.js.map → component-B96XYPtn.js.map} +1 -1
- package/dist/cjs/{component-uHDfV5D8.js → component-BUCx7i5o.js} +7 -7
- package/dist/cjs/{component-uHDfV5D8.js.map → component-BUCx7i5o.js.map} +1 -1
- package/dist/cjs/{component-DNDfYzXZ.js → component-Bc8fDajy.js} +5 -5
- package/dist/cjs/{component-DNDfYzXZ.js.map → component-Bc8fDajy.js.map} +1 -1
- package/dist/cjs/{component-CmvG-auD.js → component-Be3QHUyC.js} +3 -3
- package/dist/cjs/{component-CmvG-auD.js.map → component-Be3QHUyC.js.map} +1 -1
- package/dist/cjs/{component-BT86Nj6R.js → component-Bj4QdlXm.js} +5 -5
- package/dist/cjs/{component-BT86Nj6R.js.map → component-Bj4QdlXm.js.map} +1 -1
- package/dist/cjs/{component-xIM903qi.js → component-CAkixzEQ.js} +3 -3
- package/dist/cjs/{component-xIM903qi.js.map → component-CAkixzEQ.js.map} +1 -1
- package/dist/cjs/{component-1NrcvQzp.js → component-CPVFCnaN.js} +7 -7
- package/dist/cjs/{component-1NrcvQzp.js.map → component-CPVFCnaN.js.map} +1 -1
- package/dist/cjs/{component-o3s7XplI.js → component-Dd-PS3jp.js} +4 -4
- package/dist/cjs/{component-o3s7XplI.js.map → component-Dd-PS3jp.js.map} +1 -1
- package/dist/cjs/{component-CtNPdMS0.js → component-DjDOgcWW.js} +5 -5
- package/dist/cjs/{component-CtNPdMS0.js.map → component-DjDOgcWW.js.map} +1 -1
- package/dist/cjs/{component-X_thXnkE.js → component-Du98sklA.js} +3 -3
- package/dist/cjs/{component-X_thXnkE.js.map → component-Du98sklA.js.map} +1 -1
- package/dist/cjs/{component-GfDUM7Um.js → component-Dw6Tq7Wb.js} +4 -4
- package/dist/cjs/{component-GfDUM7Um.js.map → component-Dw6Tq7Wb.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-DybQ4euF.js} +3 -3
- package/dist/cjs/{dev.utils-BjrG4FNf.js.map → dev.utils-DybQ4euF.js.map} +1 -1
- package/dist/cjs/{devtools-D_afWgpU.js → devtools-Bw5sQJOl.js} +4 -4
- package/dist/cjs/{devtools-D_afWgpU.js.map → devtools-Bw5sQJOl.js.map} +1 -1
- package/dist/cjs/{field-control-DAHkvYr4.js → field-control-4CnbMR0i.js} +8 -8
- package/dist/cjs/{field-control-DAHkvYr4.js.map → field-control-4CnbMR0i.js.map} +1 -1
- package/dist/cjs/{group-DHYxVn2x.js → group-BCkxYeMA.js} +5 -5
- package/dist/cjs/{group-DHYxVn2x.js.map → group-BCkxYeMA.js.map} +1 -1
- package/dist/cjs/{index-BnEus4Y9.js → index-RAfZF5x0.js} +3 -3
- package/dist/cjs/{index-BnEus4Y9.js.map → index-RAfZF5x0.js.map} +1 -1
- package/dist/cjs/{input-eDaEE80n.js → input-7t7ZvgAy.js} +5 -5
- package/dist/cjs/{input-eDaEE80n.js.map → input-7t7ZvgAy.js.map} +1 -1
- package/dist/cjs/{input-container-Cye4qL9S.js → input-container-BUK2Fp_t.js} +7 -7
- package/dist/cjs/{input-container-Cye4qL9S.js.map → input-container-BUK2Fp_t.js.map} +1 -1
- package/dist/cjs/{item-Dflr47KV.js → item-BInO5rWQ.js} +8 -8
- package/dist/cjs/{item-Dflr47KV.js.map → item-BInO5rWQ.js.map} +1 -1
- package/dist/cjs/{item-BSdQbEav.js → item-D8Zz2ROC.js} +3 -3
- package/dist/cjs/{item-BSdQbEav.js.map → item-D8Zz2ROC.js.map} +1 -1
- package/dist/cjs/{item-C0yzJQUg.js → item-DO176juh.js} +4 -4
- package/dist/cjs/{item-C0yzJQUg.js.map → item-DO176juh.js.map} +1 -1
- package/dist/cjs/{item-wz0gBnmK.js → item-K1SS6pAu.js} +4 -4
- package/dist/cjs/{item-wz0gBnmK.js.map → item-K1SS6pAu.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-BBVQo_N5.js} +3 -3
- package/dist/cjs/{resolve-props-DOU1VJNL.js.map → resolve-props-BBVQo_N5.js.map} +1 -1
- package/dist/cjs/{scroll-lock-C6dUw4on.js → scroll-lock-zJbOf1Xr.js} +3 -3
- package/dist/cjs/{scroll-lock-C6dUw4on.js.map → scroll-lock-zJbOf1Xr.js.map} +1 -1
- package/dist/cjs/{suggestions-0hcm13gT.js → suggestions-quLXODgi.js} +4 -4
- package/dist/cjs/{suggestions-0hcm13gT.js.map → suggestions-quLXODgi.js.map} +1 -1
- package/dist/cjs/test-component.cjs.entry.js +1 -1
- package/dist/cjs/{toggle-handler-kOflG5om.js → toggle-handler-CENFGRWT.js} +5 -5
- package/dist/cjs/{toggle-handler-kOflG5om.js.map → toggle-handler-CENFGRWT.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-BctDgC7M.js} +3 -3
- package/dist/esm/{Heading-DXl16qig.js.map → Heading-BctDgC7M.js.map} +1 -1
- package/dist/esm/{api-C8TfIYlY.js → api-B6fEjFVl.js} +12 -12
- package/dist/{kolibri/api-C8TfIYlY.js.map → esm/api-B6fEjFVl.js.map} +1 -1
- package/dist/esm/{api-BA-AFr5H.js → api-T-JuZMlj.js} +8 -8
- package/dist/esm/{api-BA-AFr5H.js.map → api-T-JuZMlj.js.map} +1 -1
- package/dist/esm/{app-globals-lFdBwFG2.js → app-globals-CvvWI2x9.js} +4 -4
- package/dist/esm/{app-globals-lFdBwFG2.js.map → app-globals-CvvWI2x9.js.map} +1 -1
- package/dist/esm/{base-DiSQvfGU.js → base-BARjFMg1.js} +5 -5
- package/dist/esm/{base-DiSQvfGU.js.map → base-BARjFMg1.js.map} +1 -1
- package/dist/esm/{base-D8GcFhvD.js → base-BbVXW6YI.js} +4 -4
- package/dist/{kolibri/base-D8GcFhvD.js.map → esm/base-BbVXW6YI.js.map} +1 -1
- package/dist/esm/{base-B5F8ROuQ.js → base-D8yYjJsn.js} +4 -4
- package/dist/esm/{base-B5F8ROuQ.js.map → base-D8yYjJsn.js.map} +1 -1
- package/dist/esm/{base-BpqjfzG1.js → base-Dvr4F_Pr.js} +16 -16
- package/dist/{kolibri/base-BpqjfzG1.js.map → esm/base-Dvr4F_Pr.js.map} +1 -1
- package/dist/esm/{base-web-component-CkaKv7O0.js → base-web-component-BzB5tP9s.js} +16 -9
- package/dist/esm/base-web-component-BzB5tP9s.js.map +1 -0
- package/dist/esm/{base-web-component-BozlJoj7.js → base-web-component-DU3hnIWD.js} +7 -7
- package/dist/esm/{base-web-component-BozlJoj7.js.map → base-web-component-DU3hnIWD.js.map} +1 -1
- package/dist/esm/{behavior-BuNqmjz8.js → behavior-CbqCHL6O.js} +3 -3
- package/dist/esm/{behavior-BuNqmjz8.js.map → behavior-CbqCHL6O.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-Da5dJMKj.js → component-BaD1OTyv.js} +5 -5
- package/dist/{kolibri/component-Da5dJMKj.js.map → esm/component-BaD1OTyv.js.map} +1 -1
- package/dist/esm/{component-DD5QqT5m.js → component-BjWF1SyZ.js} +7 -7
- package/dist/esm/{component-DD5QqT5m.js.map → component-BjWF1SyZ.js.map} +1 -1
- package/dist/esm/{component-Bd7PXqOG.js → component-Ch6fss2f.js} +5 -5
- package/dist/esm/{component-Bd7PXqOG.js.map → component-Ch6fss2f.js.map} +1 -1
- package/dist/esm/{component-C3aqLFK2.js → component-CmBM-Y1C.js} +7 -7
- package/dist/esm/{component-C3aqLFK2.js.map → component-CmBM-Y1C.js.map} +1 -1
- package/dist/esm/{component-xrrwVuiI.js → component-CvhmYY4a.js} +4 -4
- package/dist/esm/{component-xrrwVuiI.js.map → component-CvhmYY4a.js.map} +1 -1
- package/dist/esm/{component-De6Do_gt.js → component-D0iTurA_.js} +3 -3
- package/dist/esm/{component-De6Do_gt.js.map → component-D0iTurA_.js.map} +1 -1
- package/dist/esm/{component-BjH8s4-t.js → component-DKS73hKY.js} +3 -3
- package/dist/{kolibri/component-BjH8s4-t.js.map → esm/component-DKS73hKY.js.map} +1 -1
- package/dist/esm/{component-BxKN0JbT.js → component-DhBTawyT.js} +3 -3
- package/dist/esm/{component-BxKN0JbT.js.map → component-DhBTawyT.js.map} +1 -1
- package/dist/esm/{component-CWGVLsSH.js → component-G9vQ1mQA.js} +4 -4
- package/dist/{kolibri/component-CWGVLsSH.js.map → esm/component-G9vQ1mQA.js.map} +1 -1
- package/dist/esm/{component-D_58mw87.js → component-QCFfSS76.js} +4 -4
- package/dist/{kolibri/component-D_58mw87.js.map → esm/component-QCFfSS76.js.map} +1 -1
- package/dist/esm/{component-BKOep2WQ.js → component-d1d-AIsY.js} +5 -5
- package/dist/{kolibri/component-BKOep2WQ.js.map → esm/component-d1d-AIsY.js.map} +1 -1
- package/dist/esm/{component-C9DexidK.js → component-sf_0WjJF.js} +3 -3
- package/dist/esm/{component-C9DexidK.js.map → component-sf_0WjJF.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-BGy8dbtQ.js} +3 -3
- package/dist/esm/{dev.utils-CYtV9X0K.js.map → dev.utils-BGy8dbtQ.js.map} +1 -1
- package/dist/esm/{devtools-B0qRaQdp.js → devtools-CZ8Mnmwl.js} +4 -4
- package/dist/{kolibri/devtools-B0qRaQdp.js.map → esm/devtools-CZ8Mnmwl.js.map} +1 -1
- package/dist/esm/{field-control-C5hjw2Rb.js → field-control-CLnFuMmy.js} +8 -8
- package/dist/{kolibri/field-control-C5hjw2Rb.js.map → esm/field-control-CLnFuMmy.js.map} +1 -1
- package/dist/esm/{group-2hP8qbvk.js → group-BAOmF5Ok.js} +5 -5
- package/dist/esm/{group-2hP8qbvk.js.map → group-BAOmF5Ok.js.map} +1 -1
- package/dist/esm/{index-DsCeQ9Ys.js → index-DAKQV03B.js} +3 -3
- package/dist/{kolibri/index-DsCeQ9Ys.js.map → esm/index-DAKQV03B.js.map} +1 -1
- package/dist/esm/{input-Dp5NBocQ.js → input-D2i1QEbL.js} +5 -5
- package/dist/esm/{input-Dp5NBocQ.js.map → input-D2i1QEbL.js.map} +1 -1
- package/dist/esm/{input-container-QA8-0_0p.js → input-container-wQm8-W3s.js} +7 -7
- package/dist/esm/{input-container-QA8-0_0p.js.map → input-container-wQm8-W3s.js.map} +1 -1
- package/dist/esm/{item-BIjqEkyy.js → item-DJ8LXOMv.js} +8 -8
- package/dist/{kolibri/item-BIjqEkyy.js.map → esm/item-DJ8LXOMv.js.map} +1 -1
- package/dist/esm/{item-CXyolUj2.js → item-DbLIGnc9.js} +4 -4
- package/dist/{kolibri/item-CXyolUj2.js.map → esm/item-DbLIGnc9.js.map} +1 -1
- package/dist/esm/{item-CaxJw3ad.js → item-Dkm57tce.js} +4 -4
- package/dist/esm/{item-CaxJw3ad.js.map → item-Dkm57tce.js.map} +1 -1
- package/dist/esm/{item-DY0fVVnj.js → item-DuBSR8BS.js} +3 -3
- package/dist/esm/{item-DY0fVVnj.js.map → item-DuBSR8BS.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-BTiKxg-8.js} +3 -3
- package/dist/{kolibri/resolve-props-DJxTzf-G.js.map → esm/resolve-props-BTiKxg-8.js.map} +1 -1
- package/dist/esm/{scroll-lock-BN6ZnBdc.js → scroll-lock-DRNyw9qH.js} +3 -3
- package/dist/{kolibri/scroll-lock-BN6ZnBdc.js.map → esm/scroll-lock-DRNyw9qH.js.map} +1 -1
- package/dist/esm/{suggestions-DlpHvEGv.js → suggestions-CG-TuGC4.js} +4 -4
- package/dist/esm/{suggestions-DlpHvEGv.js.map → suggestions-CG-TuGC4.js.map} +1 -1
- package/dist/esm/test-component.entry.js +1 -1
- package/dist/esm/{toggle-handler-Xex3lIll.js → toggle-handler-aTxO0Wem.js} +5 -5
- package/dist/{kolibri/toggle-handler-Xex3lIll.js.map → esm/toggle-handler-aTxO0Wem.js.map} +1 -1
- package/dist/kolibri/{Heading-DXl16qig.js → Heading-BctDgC7M.js} +2 -2
- package/dist/kolibri/{Heading-DXl16qig.js.map → Heading-BctDgC7M.js.map} +1 -1
- package/dist/kolibri/api-B6fEjFVl.js +5 -0
- package/dist/{esm/api-C8TfIYlY.js.map → kolibri/api-B6fEjFVl.js.map} +1 -1
- package/dist/kolibri/api-T-JuZMlj.js +5 -0
- package/dist/kolibri/{api-BA-AFr5H.js.map → api-T-JuZMlj.js.map} +1 -1
- package/dist/kolibri/app-globals-CvvWI2x9.js +5 -0
- package/dist/kolibri/{app-globals-lFdBwFG2.js.map → app-globals-CvvWI2x9.js.map} +1 -1
- package/dist/kolibri/base-BARjFMg1.js +5 -0
- package/dist/kolibri/{base-DiSQvfGU.js.map → base-BARjFMg1.js.map} +1 -1
- package/dist/kolibri/{base-D8GcFhvD.js → base-BbVXW6YI.js} +2 -2
- package/dist/{esm/base-D8GcFhvD.js.map → kolibri/base-BbVXW6YI.js.map} +1 -1
- package/dist/kolibri/{base-B5F8ROuQ.js → base-D8yYjJsn.js} +2 -2
- package/dist/kolibri/{base-B5F8ROuQ.js.map → base-D8yYjJsn.js.map} +1 -1
- package/dist/kolibri/base-Dvr4F_Pr.js +5 -0
- package/dist/{esm/base-BpqjfzG1.js.map → kolibri/base-Dvr4F_Pr.js.map} +1 -1
- package/dist/kolibri/base-web-component-BzB5tP9s.js +5 -0
- package/dist/kolibri/base-web-component-BzB5tP9s.js.map +1 -0
- package/dist/kolibri/{base-web-component-BozlJoj7.js → base-web-component-DU3hnIWD.js} +2 -2
- package/dist/kolibri/{base-web-component-BozlJoj7.js.map → base-web-component-DU3hnIWD.js.map} +1 -1
- package/dist/kolibri/{behavior-BuNqmjz8.js → behavior-CbqCHL6O.js} +2 -2
- package/dist/kolibri/{behavior-BuNqmjz8.js.map → behavior-CbqCHL6O.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-BaD1OTyv.js +5 -0
- package/dist/{esm/component-Da5dJMKj.js.map → kolibri/component-BaD1OTyv.js.map} +1 -1
- package/dist/kolibri/{component-DD5QqT5m.js → component-BjWF1SyZ.js} +2 -2
- package/dist/kolibri/{component-DD5QqT5m.js.map → component-BjWF1SyZ.js.map} +1 -1
- package/dist/kolibri/{component-Bd7PXqOG.js → component-Ch6fss2f.js} +2 -2
- package/dist/kolibri/{component-Bd7PXqOG.js.map → component-Ch6fss2f.js.map} +1 -1
- package/dist/kolibri/component-CmBM-Y1C.js +5 -0
- package/dist/kolibri/{component-C3aqLFK2.js.map → component-CmBM-Y1C.js.map} +1 -1
- package/dist/kolibri/component-CvhmYY4a.js +5 -0
- package/dist/kolibri/{component-xrrwVuiI.js.map → component-CvhmYY4a.js.map} +1 -1
- package/dist/kolibri/component-D0iTurA_.js +5 -0
- package/dist/kolibri/{component-De6Do_gt.js.map → component-D0iTurA_.js.map} +1 -1
- package/dist/kolibri/{component-BjH8s4-t.js → component-DKS73hKY.js} +2 -2
- package/dist/{esm/component-BjH8s4-t.js.map → kolibri/component-DKS73hKY.js.map} +1 -1
- package/dist/kolibri/component-DhBTawyT.js +5 -0
- package/dist/kolibri/{component-BxKN0JbT.js.map → component-DhBTawyT.js.map} +1 -1
- package/dist/kolibri/{component-CWGVLsSH.js → component-G9vQ1mQA.js} +2 -2
- package/dist/{esm/component-CWGVLsSH.js.map → kolibri/component-G9vQ1mQA.js.map} +1 -1
- package/dist/kolibri/{component-D_58mw87.js → component-QCFfSS76.js} +2 -2
- package/dist/{esm/component-D_58mw87.js.map → kolibri/component-QCFfSS76.js.map} +1 -1
- package/dist/kolibri/{component-BKOep2WQ.js → component-d1d-AIsY.js} +2 -2
- package/dist/{esm/component-BKOep2WQ.js.map → kolibri/component-d1d-AIsY.js.map} +1 -1
- package/dist/kolibri/{component-C9DexidK.js → component-sf_0WjJF.js} +2 -2
- package/dist/kolibri/{component-C9DexidK.js.map → component-sf_0WjJF.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-BGy8dbtQ.js} +2 -2
- package/dist/kolibri/{dev.utils-CYtV9X0K.js.map → dev.utils-BGy8dbtQ.js.map} +1 -1
- package/dist/kolibri/devtools-CZ8Mnmwl.js +5 -0
- package/dist/{esm/devtools-B0qRaQdp.js.map → kolibri/devtools-CZ8Mnmwl.js.map} +1 -1
- package/dist/kolibri/field-control-CLnFuMmy.js +5 -0
- package/dist/{esm/field-control-C5hjw2Rb.js.map → kolibri/field-control-CLnFuMmy.js.map} +1 -1
- package/dist/kolibri/{group-2hP8qbvk.js → group-BAOmF5Ok.js} +2 -2
- package/dist/kolibri/{group-2hP8qbvk.js.map → group-BAOmF5Ok.js.map} +1 -1
- package/dist/kolibri/{index-DsCeQ9Ys.js → index-DAKQV03B.js} +2 -2
- package/dist/{esm/index-DsCeQ9Ys.js.map → kolibri/index-DAKQV03B.js.map} +1 -1
- package/dist/kolibri/input-D2i1QEbL.js +5 -0
- package/dist/kolibri/{input-Dp5NBocQ.js.map → input-D2i1QEbL.js.map} +1 -1
- package/dist/kolibri/{input-container-QA8-0_0p.js → input-container-wQm8-W3s.js} +2 -2
- package/dist/kolibri/{input-container-QA8-0_0p.js.map → input-container-wQm8-W3s.js.map} +1 -1
- package/dist/kolibri/{item-BIjqEkyy.js → item-DJ8LXOMv.js} +2 -2
- package/dist/{esm/item-BIjqEkyy.js.map → kolibri/item-DJ8LXOMv.js.map} +1 -1
- package/dist/kolibri/item-DbLIGnc9.js +5 -0
- package/dist/{esm/item-CXyolUj2.js.map → kolibri/item-DbLIGnc9.js.map} +1 -1
- package/dist/kolibri/{item-CaxJw3ad.js → item-Dkm57tce.js} +2 -2
- package/dist/kolibri/{item-CaxJw3ad.js.map → item-Dkm57tce.js.map} +1 -1
- package/dist/kolibri/{item-DY0fVVnj.js → item-DuBSR8BS.js} +2 -2
- package/dist/kolibri/{item-DY0fVVnj.js.map → item-DuBSR8BS.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-BTiKxg-8.js +5 -0
- package/dist/{esm/resolve-props-DJxTzf-G.js.map → kolibri/resolve-props-BTiKxg-8.js.map} +1 -1
- package/dist/kolibri/{scroll-lock-BN6ZnBdc.js → scroll-lock-DRNyw9qH.js} +2 -2
- package/dist/{esm/scroll-lock-BN6ZnBdc.js.map → kolibri/scroll-lock-DRNyw9qH.js.map} +1 -1
- package/dist/kolibri/suggestions-CG-TuGC4.js +5 -0
- package/dist/kolibri/{suggestions-DlpHvEGv.js.map → suggestions-CG-TuGC4.js.map} +1 -1
- package/dist/kolibri/test-component.entry.js +1 -1
- package/dist/kolibri/toggle-handler-aTxO0Wem.js +5 -0
- package/dist/{esm/toggle-handler-Xex3lIll.js.map → kolibri/toggle-handler-aTxO0Wem.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 +1 -1
- 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-DiSQvfGU.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-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/devtools-B0qRaQdp.js +0 -5
- package/dist/kolibri/field-control-C5hjw2Rb.js +0 -5
- package/dist/kolibri/input-Dp5NBocQ.js +0 -5
- package/dist/kolibri/item-CXyolUj2.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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-BA-AFr5H.js","sources":["src/internal/props/aria-current-value.ts","src/internal/props/aria-owns.ts","src/internal/props/download.ts","src/internal/props/link-callbacks.ts","src/internal/functional-components/link/component.tsx","src/internal/functional-components/link/api.tsx"],"sourcesContent":["import type { SimpleProp } from './helpers/factory';\nimport { createPropDefinition } from './helpers/factory';\nimport { normalizeString } from './helpers/normalizers';\n\n/**\n * The allowed values for the aria-current attribute.\n * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-current\n */\nexport const ARIA_CURRENT_VALUE_OPTIONS = ['date', 'location', 'page', 'step', 'time', 'true', 'false'] as const;\nexport type AriaCurrentValuePropType = (typeof ARIA_CURRENT_VALUE_OPTIONS)[number];\n\nexport type AriaCurrentValueProp = SimpleProp<'ariaCurrentValue', AriaCurrentValuePropType>;\n\n/**\n * Normalizes the value to a valid aria-current value.\n *\n * Graceful degradation: when the (already normalized, non-null) string is not one of the\n * allowed options, falls back to the default `'page'` instead of throwing. The factory's\n * `apply` handles undefined/null before this is reached.\n */\nfunction normalizeAriaCurrentValue(value: unknown): AriaCurrentValuePropType {\n\tconst str = normalizeString(value);\n\treturn (ARIA_CURRENT_VALUE_OPTIONS as readonly string[]).includes(str) ? (str as AriaCurrentValuePropType) : 'page';\n}\n\nexport const ariaCurrentValueProp = createPropDefinition<AriaCurrentValueProp>('ariaCurrentValue', 'page', normalizeAriaCurrentValue);\n","import type { SimpleProp } from './helpers/factory';\nimport { createPropDefinition } from './helpers/factory';\nimport { normalizeString } from './helpers/normalizers';\n\nexport type AriaOwnsProp = SimpleProp<'ariaOwns', string>;\nexport const ariaOwnsProp = createPropDefinition<AriaOwnsProp>('ariaOwns', '', normalizeString);\n","import type { SimpleProp } from './helpers/factory';\nimport { createPropDefinition } from './helpers/factory';\nimport { normalizeString } from './helpers/normalizers';\n\nexport type DownloadProp = SimpleProp<'download', string>;\n// The default is `undefined` (not `''` like other string props) to keep \"not set\" distinguishable\n// from \"explicitly empty\": `download` is a presence attribute, so `_download=\"\"` must render as\n// `download=\"\"` (download without a suggested filename) while an unset `_download` must not\n// render the attribute at all.\nexport const downloadProp = createPropDefinition<DownloadProp>('download', undefined as unknown as string, normalizeString);\n","import type { LinkOnCallbacksPropType } from '../../schema';\nimport type { SimpleProp } from './helpers/factory';\nimport { createCallbacksPropDefinition } from './helpers/factory';\n\nexport type LinkCallbacksProp = SimpleProp<'on', LinkOnCallbacksPropType>;\n\nexport const linkCallbacksProp = createCallbacksPropDefinition<LinkOnCallbacksPropType>();\n","import type { FunctionalComponent as FC } from '@stencil/core';\nimport { h } from '@stencil/core';\n\nimport { translate } from '../../../i18n';\nimport { devHint } from '../../../schema';\nimport { bem } from '../../../schema/bem-registry';\nimport { classNameFromVariant } from '../../../schema/props/variant-class-name';\nimport clsx from '../../../utils/clsx';\nimport { preventFocus } from '../../../utils/element-interaction';\nimport { AriaDescriptionSpanFC } from '../aria-description-span/component';\nimport { BemRootNodeFC } from '../bem-root-node/component';\nimport type { FunctionalComponentProps } from '../generic-types';\nimport { IconFC } from '../icon/component';\nimport { SpanFC } from '../span/component';\nimport { TooltipFC } from '../tooltip/component';\nimport type { LinkApi } from './api';\n\nconst linkBem = bem.forBlock('kol-link');\n\nexport type LinkFCProps = FunctionalComponentProps<LinkApi> & {\n\t/** Ref of the `.kol-link` root. */\n\tref?: (element?: HTMLElement) => void;\n};\n\n/**\n * Children replace the expert `<slot>`: a consumer that renders `LinkFC` inside its own shadow\n * root passes the expert content directly (e.g. the tree item's chevron and label), since a slot\n * there would only project that consumer's light DOM.\n */\nexport const LinkFC: FC<LinkFCProps> = (props, children) => {\n\tconst {\n\t\taccessKey,\n\t\tariaControls,\n\t\tariaCurrent,\n\t\tariaDescription,\n\t\tariaDescriptionId,\n\t\tariaExpanded,\n\t\tariaOwns,\n\t\tclass: hostClass,\n\t\tcustomClass,\n\t\tdisabled,\n\t\tdownload,\n\t\thandleAnchorClick,\n\t\thideLabel,\n\t\thref,\n\t\ticons,\n\t\tinline,\n\t\tlabel,\n\t\ton,\n\t\tref,\n\t\trefAnchor,\n\t\trefTooltip,\n\t\trole,\n\t\tshortKey,\n\t\ttabIndex,\n\t\ttarget,\n\t\tvariant,\n\t\texpertSlot,\n\t} = props;\n\n\tconst translateOpenLinkInTab = translate('kol-open-link-in-tab');\n\n\tconst isExternal = typeof target === 'string' && target.length > 0 && target !== '_self';\n\n\tconst tagAttrs = {\n\t\thref: typeof href === 'string' && href.length > 0 ? href : 'javascript:void(0);',\n\t\ttarget: typeof target === 'string' && target.length > 0 ? target : undefined,\n\t\trel: isExternal ? 'noopener' : undefined,\n\t\t// `download` is a presence attribute: an explicitly empty string means \"download without a\n\t\t// suggested filename\" and must render as `download=\"\"`, unlike an unset download.\n\t\tdownload: typeof download === 'string' ? download : undefined,\n\t};\n\n\tif (hideLabel === true && !label) {\n\t\tdevHint(`[KolLink] An aria-label must be set when _hide-label is set.`);\n\t}\n\n\tconst trimmedAriaDescription = ariaDescription?.trim();\n\tconst roleValue = role || undefined;\n\treturn (\n\t\t<BemRootNodeFC\n\t\t\tblock=\"kol-link\"\n\t\t\tref={ref}\n\t\t\tclass={clsx(hostClass, {\n\t\t\t\t[customClass]: variant.includes('custom') && customClass.length > 0,\n\t\t\t\t[classNameFromVariant(variant, 'link')]: variant.length > 0,\n\t\t\t})}\n\t\t\tmodifiers={{\n\t\t\t\tdisabled: disabled === true,\n\t\t\t\t'external-link': isExternal,\n\t\t\t\t'hide-label': hideLabel === true,\n\t\t\t\tinline: inline === true,\n\t\t\t\tstandalone: inline === false,\n\t\t\t}}\n\t\t>\n\t\t\t{/* eslint-disable-next-line jsx-a11y/click-events-have-key-events -- <a href> is natively keyboard-accessible (Enter triggers click); onKeyPress would cause a double-dispatch bug. */}\n\t\t\t<a\n\t\t\t\tref={refAnchor}\n\t\t\t\t{...tagAttrs}\n\t\t\t\taccessKey={accessKey || undefined}\n\t\t\t\taria-current={ariaCurrent || undefined}\n\t\t\t\taria-controls={ariaControls || undefined}\n\t\t\t\taria-describedby={trimmedAriaDescription ? ariaDescriptionId : undefined}\n\t\t\t\taria-disabled={disabled ? 'true' : undefined}\n\t\t\t\taria-expanded={ariaExpanded === '' ? undefined : ariaExpanded}\n\t\t\t\taria-owns={ariaOwns || undefined}\n\t\t\t\taria-label={hideLabel && typeof label === 'string' && label.trim() !== '' ? `${label}${isExternal ? ` (${translateOpenLinkInTab})` : ''}` : undefined}\n\t\t\t\taria-keyshortcuts={shortKey || undefined}\n\t\t\t\tclass={linkBem('interactive-element')}\n\t\t\t\t{...on}\n\t\t\t\tonClick={handleAnchorClick}\n\t\t\t\tonMouseDown={disabled ? preventFocus : undefined}\n\t\t\t\trole={roleValue}\n\t\t\t\ttabIndex={disabled ? -1 : tabIndex}\n\t\t\t>\n\t\t\t\t<SpanFC class=\"kol-link__text\" badgeText={accessKey || shortKey} icons={icons} hideLabel={hideLabel} label={expertSlot ? '' : label || href}>\n\t\t\t\t\t{children.length > 0 ? children : <slot name=\"expert\" slot=\"expert\"></slot>}\n\t\t\t\t</SpanFC>\n\t\t\t\t{isExternal && (\n\t\t\t\t\t<IconFC class=\"kol-link__icon\" label={hideLabel ? '' : translateOpenLinkInTab} icons={'kolicon-link-external'} aria-hidden={hideLabel} />\n\t\t\t\t)}\n\t\t\t</a>\n\t\t\t{hideLabel === true && !expertSlot && (\n\t\t\t\t<div class=\"kol-link__tooltip\">\n\t\t\t\t\t<TooltipFC\n\t\t\t\t\t\tbadgeText={accessKey || shortKey || ''}\n\t\t\t\t\t\tlabel={typeof label === 'string' ? label : typeof href === 'string' ? href : ''}\n\t\t\t\t\t\trefFloating={refTooltip}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t{trimmedAriaDescription && <AriaDescriptionSpanFC description={trimmedAriaDescription} descriptionId={ariaDescriptionId} />}\n\t\t</BemRootNodeFC>\n\t);\n};\n","import {\n\taccessKeyProp,\n\tariaControlsProp,\n\tariaCurrentValueProp,\n\tariaDescriptionProp,\n\tariaExpandedProp,\n\tariaOwnsProp,\n\tcustomClassProp,\n\tdisabledProp,\n\tdownloadProp,\n\thideLabelProp,\n\threfProp,\n\tinlineProp,\n\tlabelWithExpertSlotProp,\n\tlinkCallbacksProp,\n\tlinkRoleProp,\n\tlinkTargetProp,\n\tshortKeyProp,\n\tspanIconsProp,\n\ttabIndexProp,\n\ttooltipAlignProp,\n\tvariantProp,\n} from '../../props';\nimport type { ApiFromConfig, PropsConfigShape } from '../generic-types';\n\n/**\n * Props configuration for the link component.\n *\n * `href` is the only required prop. All others are optional.\n *\n * Notes on prop choices:\n * - `labelWithExpertSlotProp` (not `labelProp`): no min/max length restriction, matching the\n * original `validateLabelWithExpertSlot`. The empty string enables the expert slot; this is\n * tracked separately via the `expertSlot` state because the factory collapses undefined → ''\n * (the default), which would wrongly enable the expert slot when no label was passed.\n * - `spanIconsProp` (not `iconsProp`): icons are `KoliBriIconsProp` (object), not a plain string.\n * - `tooltipAlignProp`: same valid values as `alignProp` but defaults to `'right'` (matching the\n * legacy `_tooltipAlign` default).\n */\nexport const linkPropsConfig = {\n\trequired: [hrefProp],\n\toptional: [\n\t\taccessKeyProp,\n\t\tariaControlsProp,\n\t\tariaCurrentValueProp,\n\t\tariaDescriptionProp,\n\t\tariaExpandedProp,\n\t\tariaOwnsProp,\n\t\tcustomClassProp,\n\t\tdisabledProp,\n\t\tdownloadProp,\n\t\thideLabelProp,\n\t\tspanIconsProp,\n\t\tinlineProp,\n\t\tlabelWithExpertSlotProp,\n\t\tlinkCallbacksProp,\n\t\tlinkRoleProp,\n\t\tlinkTargetProp,\n\t\tshortKeyProp,\n\t\ttabIndexProp,\n\t\ttooltipAlignProp,\n\t\tvariantProp,\n\t],\n} as const satisfies PropsConfigShape;\n\nexport type LinkApi = ApiFromConfig<\n\ttypeof linkPropsConfig,\n\t{\n\t\tCallbacks: {\n\t\t\t/**\n\t\t\t * Click handler bound to the anchor element. Implemented by the web component\n\t\t\t * (`handleAnchorClick`), which also dispatches the custom `KolEvent.click` event\n\t\t\t * on the host element.\n\t\t\t */\n\t\t\tanchorClick: (event: Event) => void;\n\t\t};\n\t\tMethods: {\n\t\t\tfocus: (options?: FocusOptions) => void;\n\t\t\tclick: () => void;\n\t\t};\n\t\tRefs: {\n\t\t\tanchor: HTMLAnchorElement;\n\t\t\ttooltip: HTMLDivElement;\n\t\t};\n\t\tStates: {\n\t\t\t/**\n\t\t\t * Derived aria-current value: one of the aria-current tokens when the link's href\n\t\t\t * matches the current location, otherwise an empty string (rendered as undefined →\n\t\t\t * no aria-current attribute). Managed via setState for reactivity.\n\t\t\t */\n\t\t\tariaCurrent: string;\n\t\t\t/**\n\t\t\t * DOM id of the visually-hidden span that carries the aria description. Generated\n\t\t\t * once per web component instance and referenced by the anchor's aria-describedby\n\t\t\t * attribute, since aria-description lacks screen reader support.\n\t\t\t */\n\t\t\tariaDescriptionId: string;\n\t\t\t/**\n\t\t\t * Whether the expert slot should be rendered. True only when the consumer explicitly\n\t\t\t * passed an empty-string label. When the label is undefined (default ''), the expert\n\t\t\t * slot stays off and the href is used as the fallback label text.\n\t\t\t */\n\t\t\texpertSlot: boolean;\n\t\t};\n\t}\n>;\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api-T-JuZMlj.js","sources":["src/internal/props/aria-current-value.ts","src/internal/props/aria-owns.ts","src/internal/props/download.ts","src/internal/props/link-callbacks.ts","src/internal/functional-components/link/component.tsx","src/internal/functional-components/link/api.tsx"],"sourcesContent":["import type { SimpleProp } from './helpers/factory';\nimport { createPropDefinition } from './helpers/factory';\nimport { normalizeString } from './helpers/normalizers';\n\n/**\n * The allowed values for the aria-current attribute.\n * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-current\n */\nexport const ARIA_CURRENT_VALUE_OPTIONS = ['date', 'location', 'page', 'step', 'time', 'true', 'false'] as const;\nexport type AriaCurrentValuePropType = (typeof ARIA_CURRENT_VALUE_OPTIONS)[number];\n\nexport type AriaCurrentValueProp = SimpleProp<'ariaCurrentValue', AriaCurrentValuePropType>;\n\n/**\n * Normalizes the value to a valid aria-current value.\n *\n * Graceful degradation: when the (already normalized, non-null) string is not one of the\n * allowed options, falls back to the default `'page'` instead of throwing. The factory's\n * `apply` handles undefined/null before this is reached.\n */\nfunction normalizeAriaCurrentValue(value: unknown): AriaCurrentValuePropType {\n\tconst str = normalizeString(value);\n\treturn (ARIA_CURRENT_VALUE_OPTIONS as readonly string[]).includes(str) ? (str as AriaCurrentValuePropType) : 'page';\n}\n\nexport const ariaCurrentValueProp = createPropDefinition<AriaCurrentValueProp>('ariaCurrentValue', 'page', normalizeAriaCurrentValue);\n","import type { SimpleProp } from './helpers/factory';\nimport { createPropDefinition } from './helpers/factory';\nimport { normalizeString } from './helpers/normalizers';\n\nexport type AriaOwnsProp = SimpleProp<'ariaOwns', string>;\nexport const ariaOwnsProp = createPropDefinition<AriaOwnsProp>('ariaOwns', '', normalizeString);\n","import type { SimpleProp } from './helpers/factory';\nimport { createPropDefinition } from './helpers/factory';\nimport { normalizeString } from './helpers/normalizers';\n\nexport type DownloadProp = SimpleProp<'download', string>;\n// The default is `undefined` (not `''` like other string props) to keep \"not set\" distinguishable\n// from \"explicitly empty\": `download` is a presence attribute, so `_download=\"\"` must render as\n// `download=\"\"` (download without a suggested filename) while an unset `_download` must not\n// render the attribute at all.\nexport const downloadProp = createPropDefinition<DownloadProp>('download', undefined as unknown as string, normalizeString);\n","import type { LinkOnCallbacksPropType } from '../../schema';\nimport type { SimpleProp } from './helpers/factory';\nimport { createCallbacksPropDefinition } from './helpers/factory';\n\nexport type LinkCallbacksProp = SimpleProp<'on', LinkOnCallbacksPropType>;\n\nexport const linkCallbacksProp = createCallbacksPropDefinition<LinkOnCallbacksPropType>();\n","import type { FunctionalComponent as FC } from '@stencil/core';\nimport { h } from '@stencil/core';\n\nimport { translate } from '../../../i18n';\nimport { devHint } from '../../../schema';\nimport { bem } from '../../../schema/bem-registry';\nimport { classNameFromVariant } from '../../../schema/props/variant-class-name';\nimport clsx from '../../../utils/clsx';\nimport { preventFocus } from '../../../utils/element-interaction';\nimport { AriaDescriptionSpanFC } from '../aria-description-span/component';\nimport { BemRootNodeFC } from '../bem-root-node/component';\nimport type { FunctionalComponentProps } from '../generic-types';\nimport { IconFC } from '../icon/component';\nimport { SpanFC } from '../span/component';\nimport { TooltipFC } from '../tooltip/component';\nimport type { LinkApi } from './api';\n\nconst linkBem = bem.forBlock('kol-link');\n\nexport type LinkFCProps = FunctionalComponentProps<LinkApi> & {\n\t/** Ref of the `.kol-link` root. */\n\tref?: (element?: HTMLElement) => void;\n};\n\n/**\n * Children replace the expert `<slot>`: a consumer that renders `LinkFC` inside its own shadow\n * root passes the expert content directly (e.g. the tree item's chevron and label), since a slot\n * there would only project that consumer's light DOM.\n */\nexport const LinkFC: FC<LinkFCProps> = (props, children) => {\n\tconst {\n\t\taccessKey,\n\t\tariaControls,\n\t\tariaCurrent,\n\t\tariaDescription,\n\t\tariaDescriptionId,\n\t\tariaExpanded,\n\t\tariaOwns,\n\t\tclass: hostClass,\n\t\tcustomClass,\n\t\tdisabled,\n\t\tdownload,\n\t\thandleAnchorClick,\n\t\thideLabel,\n\t\thref,\n\t\ticons,\n\t\tinline,\n\t\tlabel,\n\t\ton,\n\t\tref,\n\t\trefAnchor,\n\t\trefTooltip,\n\t\trole,\n\t\tshortKey,\n\t\ttabIndex,\n\t\ttarget,\n\t\tvariant,\n\t\texpertSlot,\n\t} = props;\n\n\tconst translateOpenLinkInTab = translate('kol-open-link-in-tab');\n\n\tconst isExternal = typeof target === 'string' && target.length > 0 && target !== '_self';\n\n\tconst tagAttrs = {\n\t\thref: typeof href === 'string' && href.length > 0 ? href : 'javascript:void(0);',\n\t\ttarget: typeof target === 'string' && target.length > 0 ? target : undefined,\n\t\trel: isExternal ? 'noopener' : undefined,\n\t\t// `download` is a presence attribute: an explicitly empty string means \"download without a\n\t\t// suggested filename\" and must render as `download=\"\"`, unlike an unset download.\n\t\tdownload: typeof download === 'string' ? download : undefined,\n\t};\n\n\tif (hideLabel === true && !label) {\n\t\tdevHint(`[KolLink] An aria-label must be set when _hide-label is set.`);\n\t}\n\n\tconst trimmedAriaDescription = ariaDescription?.trim();\n\tconst roleValue = role || undefined;\n\treturn (\n\t\t<BemRootNodeFC\n\t\t\tblock=\"kol-link\"\n\t\t\tref={ref}\n\t\t\tclass={clsx(hostClass, {\n\t\t\t\t[customClass]: variant.includes('custom') && customClass.length > 0,\n\t\t\t\t[classNameFromVariant(variant, 'link')]: variant.length > 0,\n\t\t\t})}\n\t\t\tmodifiers={{\n\t\t\t\tdisabled: disabled === true,\n\t\t\t\t'external-link': isExternal,\n\t\t\t\t'hide-label': hideLabel === true,\n\t\t\t\tinline: inline === true,\n\t\t\t\tstandalone: inline === false,\n\t\t\t}}\n\t\t>\n\t\t\t{/* eslint-disable-next-line jsx-a11y/click-events-have-key-events -- <a href> is natively keyboard-accessible (Enter triggers click); onKeyPress would cause a double-dispatch bug. */}\n\t\t\t<a\n\t\t\t\tref={refAnchor}\n\t\t\t\t{...tagAttrs}\n\t\t\t\taccessKey={accessKey || undefined}\n\t\t\t\taria-current={ariaCurrent || undefined}\n\t\t\t\taria-controls={ariaControls || undefined}\n\t\t\t\taria-describedby={trimmedAriaDescription ? ariaDescriptionId : undefined}\n\t\t\t\taria-disabled={disabled ? 'true' : undefined}\n\t\t\t\taria-expanded={ariaExpanded === '' ? undefined : ariaExpanded}\n\t\t\t\taria-owns={ariaOwns || undefined}\n\t\t\t\taria-label={hideLabel && typeof label === 'string' && label.trim() !== '' ? `${label}${isExternal ? ` (${translateOpenLinkInTab})` : ''}` : undefined}\n\t\t\t\taria-keyshortcuts={shortKey || undefined}\n\t\t\t\tclass={linkBem('interactive-element')}\n\t\t\t\t{...on}\n\t\t\t\tonClick={handleAnchorClick}\n\t\t\t\tonMouseDown={disabled ? preventFocus : undefined}\n\t\t\t\trole={roleValue}\n\t\t\t\ttabIndex={disabled ? -1 : tabIndex}\n\t\t\t>\n\t\t\t\t<SpanFC class=\"kol-link__text\" badgeText={accessKey || shortKey} icons={icons} hideLabel={hideLabel} label={expertSlot ? '' : label || href}>\n\t\t\t\t\t{children.length > 0 ? children : <slot name=\"expert\" slot=\"expert\"></slot>}\n\t\t\t\t</SpanFC>\n\t\t\t\t{isExternal && (\n\t\t\t\t\t<IconFC class=\"kol-link__icon\" label={hideLabel ? '' : translateOpenLinkInTab} icons={'kolicon-link-external'} aria-hidden={hideLabel} />\n\t\t\t\t)}\n\t\t\t</a>\n\t\t\t{hideLabel === true && !expertSlot && (\n\t\t\t\t<div class=\"kol-link__tooltip\">\n\t\t\t\t\t<TooltipFC\n\t\t\t\t\t\tbadgeText={accessKey || shortKey || ''}\n\t\t\t\t\t\tlabel={typeof label === 'string' ? label : typeof href === 'string' ? href : ''}\n\t\t\t\t\t\trefFloating={refTooltip}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t{trimmedAriaDescription && <AriaDescriptionSpanFC description={trimmedAriaDescription} descriptionId={ariaDescriptionId} />}\n\t\t</BemRootNodeFC>\n\t);\n};\n","import {\n\taccessKeyProp,\n\tariaControlsProp,\n\tariaCurrentValueProp,\n\tariaDescriptionProp,\n\tariaExpandedProp,\n\tariaOwnsProp,\n\tcustomClassProp,\n\tdisabledProp,\n\tdownloadProp,\n\thideLabelProp,\n\threfProp,\n\tinlineProp,\n\tlabelWithExpertSlotProp,\n\tlinkCallbacksProp,\n\tlinkRoleProp,\n\tlinkTargetProp,\n\tshortKeyProp,\n\tspanIconsProp,\n\ttabIndexProp,\n\ttooltipAlignProp,\n\tvariantProp,\n} from '../../props';\nimport type { ApiFromConfig, PropsConfigShape } from '../generic-types';\n\n/**\n * Props configuration for the link component.\n *\n * `href` is the only required prop. All others are optional.\n *\n * Notes on prop choices:\n * - `labelWithExpertSlotProp` (not `labelProp`): no min/max length restriction, matching the\n * original `validateLabelWithExpertSlot`. The empty string enables the expert slot; this is\n * tracked separately via the `expertSlot` state because the factory collapses undefined → ''\n * (the default), which would wrongly enable the expert slot when no label was passed.\n * - `spanIconsProp` (not `iconsProp`): icons are `KoliBriIconsProp` (object), not a plain string.\n * - `tooltipAlignProp`: same valid values as `alignProp` but defaults to `'right'` (matching the\n * legacy `_tooltipAlign` default).\n */\nexport const linkPropsConfig = {\n\trequired: [hrefProp],\n\toptional: [\n\t\taccessKeyProp,\n\t\tariaControlsProp,\n\t\tariaCurrentValueProp,\n\t\tariaDescriptionProp,\n\t\tariaExpandedProp,\n\t\tariaOwnsProp,\n\t\tcustomClassProp,\n\t\tdisabledProp,\n\t\tdownloadProp,\n\t\thideLabelProp,\n\t\tspanIconsProp,\n\t\tinlineProp,\n\t\tlabelWithExpertSlotProp,\n\t\tlinkCallbacksProp,\n\t\tlinkRoleProp,\n\t\tlinkTargetProp,\n\t\tshortKeyProp,\n\t\ttabIndexProp,\n\t\ttooltipAlignProp,\n\t\tvariantProp,\n\t],\n} as const satisfies PropsConfigShape;\n\nexport type LinkApi = ApiFromConfig<\n\ttypeof linkPropsConfig,\n\t{\n\t\tCallbacks: {\n\t\t\t/**\n\t\t\t * Click handler bound to the anchor element. Implemented by the web component\n\t\t\t * (`handleAnchorClick`), which also dispatches the custom `KolEvent.click` event\n\t\t\t * on the host element.\n\t\t\t */\n\t\t\tanchorClick: (event: Event) => void;\n\t\t};\n\t\tMethods: {\n\t\t\tfocus: (options?: FocusOptions) => void;\n\t\t\tclick: () => void;\n\t\t};\n\t\tRefs: {\n\t\t\tanchor: HTMLAnchorElement;\n\t\t\ttooltip: HTMLDivElement;\n\t\t};\n\t\tStates: {\n\t\t\t/**\n\t\t\t * Derived aria-current value: one of the aria-current tokens when the link's href\n\t\t\t * matches the current location, otherwise an empty string (rendered as undefined →\n\t\t\t * no aria-current attribute). Managed via setState for reactivity.\n\t\t\t */\n\t\t\tariaCurrent: string;\n\t\t\t/**\n\t\t\t * DOM id of the visually-hidden span that carries the aria description. Generated\n\t\t\t * once per web component instance and referenced by the anchor's aria-describedby\n\t\t\t * attribute, since aria-description lacks screen reader support.\n\t\t\t */\n\t\t\tariaDescriptionId: string;\n\t\t\t/**\n\t\t\t * Whether the expert slot should be rendered. True only when the consumer explicitly\n\t\t\t * passed an empty-string label. When the label is undefined (default ''), the expert\n\t\t\t * slot stays off and the href is used as the fallback label text.\n\t\t\t */\n\t\t\texpertSlot: boolean;\n\t\t};\n\t}\n>;\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* KoliBri - The accessible HTML-Standard
|
|
3
|
+
*/
|
|
4
|
+
import{L as o,d as t,w as a}from"./common-BqpMtheU.js";import{a as e}from"./index-DAKQV03B.js";var n=()=>{e((o=>{try{if(o.shadowRoot instanceof ShadowRoot){t(o,a(o))}}catch(o){}return"default"}));import("./devtools-CZ8Mnmwl.js").then((o=>{if(typeof o==="object"&&o!==null&&typeof o.initialize==="function"){o.initialize()}})).catch((t=>{o.error(t)}))};const r=n;export{r as g};
|
|
5
|
+
//# sourceMappingURL=app-globals-CvvWI2x9.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-globals-
|
|
1
|
+
{"version":3,"file":"app-globals-CvvWI2x9.js","sources":["src/global/script.ts","@stencil/core/internal/app-globals"],"sourcesContent":["import { getThemeDetails, setThemeStyle } from 'adopted-style-sheets';\n\nimport { setMode } from '@stencil/core';\nimport { Log } from '../schema';\n\nexport default () => {\n\tsetMode((elm) => {\n\t\ttry {\n\t\t\tif (elm.shadowRoot instanceof ShadowRoot) {\n\t\t\t\tsetThemeStyle(elm, getThemeDetails(elm));\n\t\t\t}\n\t\t} catch {\n\t\t\t/**\n\t\t\t * Try is needed for SSR.\n\t\t\t * - no HTMLElement is available\n\t\t\t * - no ShadowRoot is available\n\t\t\t */\n\t\t}\n\t\treturn 'default';\n\t});\n\n\timport('./devtools')\n\t\t.then((devTools) => {\n\t\t\tif (typeof devTools === 'object' && devTools !== null && typeof devTools.initialize === 'function') {\n\t\t\t\tdevTools.initialize();\n\t\t\t}\n\t\t})\n\t\t.catch((error) => {\n\t\t\tLog.error(error);\n\t\t});\n};\n","import appGlobalScript from '/home/runner/work/kolibri/kolibri/packages/components/src/global/script.ts';\nexport const globalScripts = appGlobalScript;\nexport const globalStyles = \"\";\n"],"names":["setThemeStyle","getThemeDetails"],"mappings":";;;;;;AAKA,sBAAe,MAAK;AACnB,IAAA,OAAO,CAAC,CAAC,GAAG,KAAI;AACf,QAAA,IAAI;AACH,YAAA,IAAI,GAAG,CAAC,UAAU,YAAY,UAAU,EAAE;gBACzCA,EAAa,CAAC,GAAG,EAAEC,CAAe,CAAC,GAAG,CAAC,CAAC;;;QAExC,OAAA,EAAA,EAAM;;AAOR,QAAA,OAAO,SAAS;AACjB,KAAC,CAAC;IAEF,OAAO,wBAAY;AACjB,SAAA,IAAI,CAAC,CAAC,QAAQ,KAAI;AAClB,QAAA,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,IAAI,OAAO,QAAQ,CAAC,UAAU,KAAK,UAAU,EAAE;YACnG,QAAQ,CAAC,UAAU,EAAE;;AAEvB,KAAC;AACA,SAAA,KAAK,CAAC,CAAC,KAAK,KAAI;AAChB,QAAA,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;AACjB,KAAC,CAAC;AACJ,CAAC;;AC7BW,MAAC,aAAa,GAAG;;;;"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* KoliBri - The accessible HTML-Standard
|
|
3
|
+
*/
|
|
4
|
+
import{h as i}from"./index-DAKQV03B.js";import{v as t,B as s}from"./base-web-component-3R1Dy3QK.js";import{r as o,C as l}from"./component-BaD1OTyv.js";import"./common-BqpMtheU.js";import{l as e}from"./level-Q5lBISho.js";import{d as a,w as h}from"./width-BDh5pZvE.js";import{l as r}from"./label-c9P7yC4V.js";import{u as n,l as d,d as p,D as v}from"./scroll-lock-DRNyw9qH.js";import{T as m}from"./behavior-D1kOlK6p.js";import{c as u}from"./element-interaction-Cy9tx3Sx.js";import{d as f,K as c}from"./events-CRHxtwup.js";import{h as C}from"./tooltip-open-tracking-D3tCiiGP.js";const D={required:[r],optional:[a,e,t,h]};const b=()=>{};class j extends s{constructor(){super(...arguments);this.dialogRef=u();this.cardCloseButtonRef=u();this.cardCloseTooltipBehavior=new m(this.stateAccess);this.handleCancel=i=>{var t,s;C(i);if(i.defaultPrevented)return;(s=(t=this.getRenderProp("on")).onCancel)===null||s===void 0?void 0:s.call(t,i);if(i.defaultPrevented)return;if(this.host&&!f(this.host,c.cancel)){i.preventDefault()}};this.handleClose=i=>{var t,s;if(i.target!==this.dialogRef.el){return}n(this);(s=(t=this.getRenderProp("on")).onClose)===null||s===void 0?void 0:s.call(t);if(this.host){f(this.host,c.close)}};this.handleCardClose=()=>{this.cardCloseTooltipBehavior.hideTooltip();this.closeDialog();if(this.host){f(this.host,c.close)}}}initDialogRenderProps(){this.initRenderProps(D);this.cardCloseButtonProps=o(this.host);this.cardCloseTooltipBehavior.componentWillLoad({label:this.cardCloseButtonProps.label,align:this.cardCloseButtonProps.tooltipAlign})}syncCardCloseTooltipListeners(){if(this.cardCloseButtonRef.el){this.cardCloseTooltipBehavior.syncListeners(undefined,this.cardCloseButtonRef.el,true)}}teardownDialog(){this.closeDialog();n(this);this.cardCloseTooltipBehavior.destroy()}applyLabel(i){r.apply(i,(i=>this.setRenderProp("label",i)))}applyLevel(i){e.apply(i,(i=>this.setRenderProp("level",i)))}applyOn(i){a.apply(i,(i=>this.setRenderProp("on",i)))}applyVariant(i){t.apply(i,(i=>this.setRenderProp("variant",i)))}applyWidth(i){h.apply(i,(i=>this.setRenderProp("width",i)))}showDialog(i){var t,s;const o=this.dialogRef.el;if(o===null||o===void 0?void 0:o.open){return}this.setState("modal",i);if(i){(t=o===null||o===void 0?void 0:o.showModal)===null||t===void 0?void 0:t.call(o);if(o){d(this)}}else{(s=o===null||o===void 0?void 0:o.show)===null||s===void 0?void 0:s.call(o)}}closeDialog(){var i,t;(t=(i=this.dialogRef.el)===null||i===void 0?void 0:i.close)===null||t===void 0?void 0:t.call(i)}buildCardProps(){return{ariaDescriptionId:this.getState("ariaDescriptionId"),closeButtonProps:this.cardCloseButtonProps,handleBlur:b,handleClose:this.handleCardClose,handleFocus:b,hasCloser:true,headingId:this.getState("headingId"),href:"",label:this.getRenderProp("label"),level:this.getRenderProp("level"),on:{},refCloseButton:this.cardCloseButtonRef,refCta:b,refTooltip:this.cardCloseTooltipBehavior.setTooltipElementRef,target:""}}renderDialogFC(){const t=this.getRenderProp("variant");const s=t==="card";return i(v,{blockClass:p(t),handleCancel:this.handleCancel,handleClose:this.handleClose,label:this.getRenderProp("label"),labelledBy:s?this.getState("headingId"):undefined,modal:this.getState("modal"),refDialog:this.dialogRef,width:this.getRenderProp("width")},s?i(l,Object.assign({},this.buildCardProps()),this.renderSlot()):this.renderSlot())}}export{j as B};
|
|
5
|
+
//# sourceMappingURL=base-BARjFMg1.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-DiSQvfGU.js","sources":["src/internal/functional-components/dialog/api.tsx","src/components/dialog/base.tsx"],"sourcesContent":["import { dialogCallbacksProp, labelProp, levelProp, variantDialogProp, widthProp } from '../../props';\nimport type { ApiFromConfig, PropsConfigShape } from '../generic-types';\n\n/**\n * Props configuration for the dialog component.\n *\n * Notes on prop choices:\n * - `labelProp`, not `labelWithExpertSlotProp`: the label is either the `aria-label` of the blank\n * variant or the card's heading text — neither has an expert slot.\n * - `levelProp` only reaches the card variant's heading; the blank variant renders no heading.\n */\nexport const dialogPropsConfig = {\n\trequired: [labelProp],\n\toptional: [dialogCallbacksProp, levelProp, variantDialogProp, widthProp],\n} as const satisfies PropsConfigShape;\n\nexport type DialogApi = ApiFromConfig<\n\ttypeof dialogPropsConfig,\n\t{\n\t\t/** Both callbacks handle the native events of the `<dialog>` element. */\n\t\tCallbacks: {\n\t\t\tcancel: (event: Event) => void;\n\t\t\tclose: (event: Event) => void;\n\t\t};\n\t\tMethods: {\n\t\t\tclose: () => void;\n\t\t\tcloseModal: () => void;\n\t\t\topenModal: () => void;\n\t\t\tshow: (modal?: boolean) => void;\n\t\t\tshowModal: () => void;\n\t\t};\n\t\tRefs: {\n\t\t\tdialog: HTMLDialogElement;\n\t\t};\n\t\tStates: {\n\t\t\t/**\n\t\t\t * DOM id of the close button's visually-hidden description span, required by the card\n\t\t\t * variant's `ButtonFC`. Unused while that button carries no aria description.\n\t\t\t */\n\t\t\tariaDescriptionId: string;\n\t\t\t/**\n\t\t\t * DOM id of the card variant's heading, referenced by the `<dialog>`'s\n\t\t\t * `aria-labelledby`. Generated per instance.\n\t\t\t */\n\t\t\theadingId: string;\n\t\t\t/**\n\t\t\t * Whether the dialog is currently shown modally. Drives `aria-modal` and is set by\n\t\t\t * `show()`/`showModal()`.\n\t\t\t */\n\t\t\tmodal: boolean;\n\t\t};\n\t}\n>;\n","import type { JSX } from '@stencil/core';\nimport { h } from '@stencil/core';\n\nimport { BaseWebComponent } from '../../internal/functional-components/base-web-component';\nimport type { ResolvedButtonProps } from '../../internal/functional-components/button/resolve-props';\nimport { resolveCardCloseButtonProps } from '../../internal/functional-components/card/close-button';\nimport type { CardFCProps } from '../../internal/functional-components/card/component';\nimport { CardFC } from '../../internal/functional-components/card/component';\nimport type { DialogApi } from '../../internal/functional-components/dialog/api';\nimport { dialogPropsConfig } from '../../internal/functional-components/dialog/api';\nimport { dialogBlockClass, DialogFC } from '../../internal/functional-components/dialog/component';\nimport { TooltipBehavior } from '../../internal/functional-components/tooltip/behavior';\nimport { dialogCallbacksProp, labelProp, levelProp, variantDialogProp, widthProp } from '../../internal/props';\nimport type { HeadingLevel, KoliBriDialogEventCallbacks, LabelPropType } from '../../schema';\nimport type { ModalVariantPropType } from '../../schema/props/variant/modal';\nimport { createCtaRef } from '../../utils/element-interaction';\nimport { dispatchDomEvent, KolEvent } from '../../utils/events';\nimport { lockScroll, unlockScroll } from '../../utils/scroll-lock';\nimport { handleCancelOverlay } from '../../utils/tooltip-open-tracking';\n\n/**\n * The card variant renders no link, so its anchor never exists: the card's own `_on` callbacks\n * describe that anchor, and its ref is never called.\n */\nconst NOOP = (): void => {};\n\n/**\n * Orchestrator shared by `kol-dialog` and the deprecated `kol-modal`. Both render the same\n * `DialogFC`; the concrete element only declares the Stencil members and delegates from its\n * watchers, methods and lifecycle hooks.\n *\n * The card variant renders `CardFC` directly, so this class also owns the close button's resolved\n * props, its tooltip behavior and its ref.\n */\nexport abstract class BaseDialogWebComponent extends BaseWebComponent<DialogApi> {\n\tprotected abstract readonly host?: HTMLElement;\n\n\tprotected readonly dialogRef = createCtaRef<HTMLDialogElement>();\n\tprivate readonly cardCloseButtonRef = createCtaRef<HTMLButtonElement>();\n\n\t/** Drives the card close button's tooltip — it renders with `hideLabel`, so its label lives there. */\n\tprivate readonly cardCloseTooltipBehavior = new TooltipBehavior(this.stateAccess);\n\n\t/** Resolved once in `componentWillLoad`: the close button's configuration never changes. */\n\tprivate cardCloseButtonProps!: ResolvedButtonProps;\n\n\t// --- Lifecycle ---\n\n\tprotected initDialogRenderProps(): void {\n\t\tthis.initRenderProps(dialogPropsConfig);\n\n\t\tthis.cardCloseButtonProps = resolveCardCloseButtonProps(this.host);\n\t\tthis.cardCloseTooltipBehavior.componentWillLoad({\n\t\t\tlabel: this.cardCloseButtonProps.label,\n\t\t\talign: this.cardCloseButtonProps.tooltipAlign,\n\t\t});\n\t}\n\n\tprotected syncCardCloseTooltipListeners(): void {\n\t\tif (this.cardCloseButtonRef.el) {\n\t\t\tthis.cardCloseTooltipBehavior.syncListeners(undefined, this.cardCloseButtonRef.el, true);\n\t\t}\n\t}\n\n\tprotected teardownDialog(): void {\n\t\tthis.closeDialog();\n\t\tunlockScroll(this);\n\t\tthis.cardCloseTooltipBehavior.destroy();\n\t}\n\n\t// --- Prop application ---\n\n\tprotected applyLabel(value?: LabelPropType): void {\n\t\tlabelProp.apply(value, (v) => this.setRenderProp('label', v));\n\t}\n\n\tprotected applyLevel(value?: HeadingLevel): void {\n\t\tlevelProp.apply(value, (v) => this.setRenderProp('level', v));\n\t}\n\n\tprotected applyOn(value?: KoliBriDialogEventCallbacks): void {\n\t\tdialogCallbacksProp.apply(value, (v) => this.setRenderProp('on', v));\n\t}\n\n\tprotected applyVariant(value?: ModalVariantPropType): void {\n\t\tvariantDialogProp.apply(value, (v) => this.setRenderProp('variant', v));\n\t}\n\n\tprotected applyWidth(value?: string): void {\n\t\twidthProp.apply(value, (v) => this.setRenderProp('width', v));\n\t}\n\n\t// --- Dialog control ---\n\n\t/*\n\t * The optional chaining on the native methods is a workaround for HTMLDialogElement not being\n\t * implemented in jsdom, which would otherwise fail the Jest tests.\n\t */\n\n\tprotected showDialog(modal: boolean): void {\n\t\tconst dialog = this.dialogRef.el;\n\t\tif (dialog?.open) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.setState('modal', modal);\n\t\tif (modal) {\n\t\t\tdialog?.showModal?.();\n\t\t\tif (dialog) {\n\t\t\t\tlockScroll(this);\n\t\t\t}\n\t\t} else {\n\t\t\tdialog?.show?.();\n\t\t}\n\t}\n\n\tprotected closeDialog(): void {\n\t\tthis.dialogRef.el?.close?.();\n\t}\n\n\t// --- Event handling ---\n\n\tprivate readonly handleCancel = (event: Event): void => {\n\t\thandleCancelOverlay(event);\n\t\tif (event.defaultPrevented) return;\n\n\t\tthis.getRenderProp('on').onCancel?.(event);\n\t\tif (event.defaultPrevented) return;\n\n\t\tif (this.host && !dispatchDomEvent(this.host, KolEvent.cancel)) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t};\n\n\tprivate readonly handleClose = (event: Event): void => {\n\t\t// Ignore close events that bubble up from child components (e.g. KolAlert).\n\t\t// Only react when the dialog element itself is the event origin.\n\t\tif (event.target !== this.dialogRef.el) {\n\t\t\treturn;\n\t\t}\n\n\t\tunlockScroll(this);\n\t\tthis.getRenderProp('on').onClose?.();\n\t\tif (this.host) {\n\t\t\tdispatchDomEvent(this.host, KolEvent.close);\n\t\t}\n\t};\n\n\t/** The card's close button closes the dialog, which then fires its own native close event. */\n\tprivate readonly handleCardClose = (): void => {\n\t\tthis.cardCloseTooltipBehavior.hideTooltip();\n\t\tthis.closeDialog();\n\t\tif (this.host) {\n\t\t\tdispatchDomEvent(this.host, KolEvent.close);\n\t\t}\n\t};\n\n\t// --- Render ---\n\n\t/**\n\t * Stencil derives light-DOM slot relocation from the `<slot />` it finds in the element file,\n\t * so each element supplies its own through `renderSlot`.\n\t */\n\tprotected abstract renderSlot(): JSX.Element;\n\n\tprivate buildCardProps(): CardFCProps {\n\t\treturn {\n\t\t\tariaDescriptionId: this.getState('ariaDescriptionId'),\n\t\t\tcloseButtonProps: this.cardCloseButtonProps,\n\t\t\thandleBlur: NOOP,\n\t\t\thandleClose: this.handleCardClose,\n\t\t\thandleFocus: NOOP,\n\t\t\thasCloser: true,\n\t\t\theadingId: this.getState('headingId'),\n\t\t\thref: '',\n\t\t\tlabel: this.getRenderProp('label'),\n\t\t\tlevel: this.getRenderProp('level'),\n\t\t\ton: {},\n\t\t\trefCloseButton: this.cardCloseButtonRef,\n\t\t\trefCta: NOOP,\n\t\t\trefTooltip: this.cardCloseTooltipBehavior.setTooltipElementRef,\n\t\t\ttarget: '',\n\t\t};\n\t}\n\n\tprotected renderDialogFC(): JSX.Element {\n\t\tconst variant = this.getRenderProp('variant');\n\t\tconst isCard = variant === 'card';\n\n\t\treturn (\n\t\t\t<DialogFC\n\t\t\t\tblockClass={dialogBlockClass(variant)}\n\t\t\t\thandleCancel={this.handleCancel}\n\t\t\t\thandleClose={this.handleClose}\n\t\t\t\tlabel={this.getRenderProp('label')}\n\t\t\t\tlabelledBy={isCard ? this.getState('headingId') : undefined}\n\t\t\t\tmodal={this.getState('modal')}\n\t\t\t\trefDialog={this.dialogRef}\n\t\t\t\twidth={this.getRenderProp('width')}\n\t\t\t>\n\t\t\t\t{isCard ? <CardFC {...this.buildCardProps()}>{this.renderSlot()}</CardFC> : this.renderSlot()}\n\t\t\t</DialogFC>\n\t\t);\n\t}\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAWO,MAAM,iBAAiB,GAAG;IAChC,QAAQ,EAAE,CAAC,SAAS,CAAC;IACrB,QAAQ,EAAE,CAAC,mBAAmB,EAAE,SAAS,EAAE,iBAAiB,EAAE,SAAS,CAAC;CACpC;;ACUrC,MAAM,IAAI,GAAG,MAAW,GAAG;AAUrB,MAAgB,sBAAuB,SAAQ,gBAA2B,CAAA;AAAhF,IAAA,WAAA,GAAA;;AAGoB,QAAA,IAAS,CAAA,SAAA,GAAG,YAAY,EAAqB;AAC/C,QAAA,IAAkB,CAAA,kBAAA,GAAG,YAAY,EAAqB;QAGtD,IAAwB,CAAA,wBAAA,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC;AAiFhE,QAAA,IAAA,CAAA,YAAY,GAAG,CAAC,KAAY,KAAU;;YACtD,mBAAmB,CAAC,KAAK,CAAC;YAC1B,IAAI,KAAK,CAAC,gBAAgB;gBAAE;AAE5B,YAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAG,KAAK,CAAC;YAC1C,IAAI,KAAK,CAAC,gBAAgB;gBAAE;AAE5B,YAAA,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE;gBAC/D,KAAK,CAAC,cAAc,EAAE;;AAExB,SAAC;AAEgB,QAAA,IAAA,CAAA,WAAW,GAAG,CAAC,KAAY,KAAU;;YAGrD,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE;gBACvC;;YAGD,YAAY,CAAC,IAAI,CAAC;AAClB,YAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,CAAI;AACpC,YAAA,IAAI,IAAI,CAAC,IAAI,EAAE;gBACd,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC;;AAE7C,SAAC;AAGgB,QAAA,IAAe,CAAA,eAAA,GAAG,MAAW;AAC7C,YAAA,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE;YAC3C,IAAI,CAAC,WAAW,EAAE;AAClB,YAAA,IAAI,IAAI,CAAC,IAAI,EAAE;gBACd,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC;;AAE7C,SAAC;;IA3GS,qBAAqB,GAAA;AAC9B,QAAA,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC;QAEvC,IAAI,CAAC,oBAAoB,GAAG,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC;AAClE,QAAA,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,CAAC;AAC/C,YAAA,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,KAAK;AACtC,YAAA,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,YAAY;AAC7C,SAAA,CAAC;;IAGO,6BAA6B,GAAA;AACtC,QAAA,IAAI,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE;AAC/B,YAAA,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,IAAI,CAAC;;;IAIhF,cAAc,GAAA;QACvB,IAAI,CAAC,WAAW,EAAE;QAClB,YAAY,CAAC,IAAI,CAAC;AAClB,QAAA,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE;;AAK9B,IAAA,UAAU,CAAC,KAAqB,EAAA;AACzC,QAAA,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;;AAGpD,IAAA,UAAU,CAAC,KAAoB,EAAA;AACxC,QAAA,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;;AAGpD,IAAA,OAAO,CAAC,KAAmC,EAAA;AACpD,QAAA,mBAAmB,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;;AAG3D,IAAA,YAAY,CAAC,KAA4B,EAAA;AAClD,QAAA,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;;AAG9D,IAAA,UAAU,CAAC,KAAc,EAAA;AAClC,QAAA,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;;AAUpD,IAAA,UAAU,CAAC,KAAc,EAAA;;AAClC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE;QAChC,IAAI,MAAM,aAAN,MAAM,KAAA,MAAA,GAAA,MAAA,GAAN,MAAM,CAAE,IAAI,EAAE;YACjB;;AAGD,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;QAC7B,IAAI,KAAK,EAAE;AACV,YAAA,CAAA,EAAA,GAAA,MAAM,aAAN,MAAM,KAAA,MAAA,GAAA,MAAA,GAAN,MAAM,CAAE,SAAS,sDAAI;YACrB,IAAI,MAAM,EAAE;gBACX,UAAU,CAAC,IAAI,CAAC;;;aAEX;AACN,YAAA,CAAA,EAAA,GAAA,MAAM,aAAN,MAAM,KAAA,MAAA,GAAA,MAAA,GAAN,MAAM,CAAE,IAAI,sDAAI;;;IAIR,WAAW,GAAA;;QACpB,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAC,EAAE,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,CAAI;;IAgDrB,cAAc,GAAA;QACrB,OAAO;AACN,YAAA,iBAAiB,EAAE,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YACrD,gBAAgB,EAAE,IAAI,CAAC,oBAAoB;AAC3C,YAAA,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,IAAI,CAAC,eAAe;AACjC,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;AACrC,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;AAClC,YAAA,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;AAClC,YAAA,EAAE,EAAE,EAAE;YACN,cAAc,EAAE,IAAI,CAAC,kBAAkB;AACvC,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,UAAU,EAAE,IAAI,CAAC,wBAAwB,CAAC,oBAAoB;AAC9D,YAAA,MAAM,EAAE,EAAE;SACV;;IAGQ,cAAc,GAAA;QACvB,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;AAC7C,QAAA,MAAM,MAAM,GAAG,OAAO,KAAK,MAAM;QAEjC,QACC,EAAC,QAAQ,EAAA,EACR,UAAU,EAAE,gBAAgB,CAAC,OAAO,CAAC,EACrC,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAClC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,SAAS,EAC3D,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAC7B,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAA,EAEjC,MAAM,GAAG,CAAA,CAAC,MAAM,EAAK,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,cAAc,EAAE,CAAG,EAAA,IAAI,CAAC,UAAU,EAAE,CAAU,GAAG,IAAI,CAAC,UAAU,EAAE,CACnF;;AAGb;;;;"}
|
|
1
|
+
{"version":3,"file":"base-BARjFMg1.js","sources":["src/internal/functional-components/dialog/api.tsx","src/components/dialog/base.tsx"],"sourcesContent":["import { dialogCallbacksProp, labelProp, levelProp, variantDialogProp, widthProp } from '../../props';\nimport type { ApiFromConfig, PropsConfigShape } from '../generic-types';\n\n/**\n * Props configuration for the dialog component.\n *\n * Notes on prop choices:\n * - `labelProp`, not `labelWithExpertSlotProp`: the label is either the `aria-label` of the blank\n * variant or the card's heading text — neither has an expert slot.\n * - `levelProp` only reaches the card variant's heading; the blank variant renders no heading.\n */\nexport const dialogPropsConfig = {\n\trequired: [labelProp],\n\toptional: [dialogCallbacksProp, levelProp, variantDialogProp, widthProp],\n} as const satisfies PropsConfigShape;\n\nexport type DialogApi = ApiFromConfig<\n\ttypeof dialogPropsConfig,\n\t{\n\t\t/** Both callbacks handle the native events of the `<dialog>` element. */\n\t\tCallbacks: {\n\t\t\tcancel: (event: Event) => void;\n\t\t\tclose: (event: Event) => void;\n\t\t};\n\t\tMethods: {\n\t\t\tclose: () => void;\n\t\t\tcloseModal: () => void;\n\t\t\topenModal: () => void;\n\t\t\tshow: (modal?: boolean) => void;\n\t\t\tshowModal: () => void;\n\t\t};\n\t\tRefs: {\n\t\t\tdialog: HTMLDialogElement;\n\t\t};\n\t\tStates: {\n\t\t\t/**\n\t\t\t * DOM id of the close button's visually-hidden description span, required by the card\n\t\t\t * variant's `ButtonFC`. Unused while that button carries no aria description.\n\t\t\t */\n\t\t\tariaDescriptionId: string;\n\t\t\t/**\n\t\t\t * DOM id of the card variant's heading, referenced by the `<dialog>`'s\n\t\t\t * `aria-labelledby`. Generated per instance.\n\t\t\t */\n\t\t\theadingId: string;\n\t\t\t/**\n\t\t\t * Whether the dialog is currently shown modally. Drives `aria-modal` and is set by\n\t\t\t * `show()`/`showModal()`.\n\t\t\t */\n\t\t\tmodal: boolean;\n\t\t};\n\t}\n>;\n","import type { JSX } from '@stencil/core';\nimport { h } from '@stencil/core';\n\nimport { BaseWebComponent } from '../../internal/functional-components/base-web-component';\nimport type { ResolvedButtonProps } from '../../internal/functional-components/button/resolve-props';\nimport { resolveCardCloseButtonProps } from '../../internal/functional-components/card/close-button';\nimport type { CardFCProps } from '../../internal/functional-components/card/component';\nimport { CardFC } from '../../internal/functional-components/card/component';\nimport type { DialogApi } from '../../internal/functional-components/dialog/api';\nimport { dialogPropsConfig } from '../../internal/functional-components/dialog/api';\nimport { dialogBlockClass, DialogFC } from '../../internal/functional-components/dialog/component';\nimport { TooltipBehavior } from '../../internal/functional-components/tooltip/behavior';\nimport { dialogCallbacksProp, labelProp, levelProp, variantDialogProp, widthProp } from '../../internal/props';\nimport type { HeadingLevel, KoliBriDialogEventCallbacks, LabelPropType } from '../../schema';\nimport type { ModalVariantPropType } from '../../schema/props/variant/modal';\nimport { createCtaRef } from '../../utils/element-interaction';\nimport { dispatchDomEvent, KolEvent } from '../../utils/events';\nimport { lockScroll, unlockScroll } from '../../utils/scroll-lock';\nimport { handleCancelOverlay } from '../../utils/tooltip-open-tracking';\n\n/**\n * The card variant renders no link, so its anchor never exists: the card's own `_on` callbacks\n * describe that anchor, and its ref is never called.\n */\nconst NOOP = (): void => {};\n\n/**\n * Orchestrator shared by `kol-dialog` and the deprecated `kol-modal`. Both render the same\n * `DialogFC`; the concrete element only declares the Stencil members and delegates from its\n * watchers, methods and lifecycle hooks.\n *\n * The card variant renders `CardFC` directly, so this class also owns the close button's resolved\n * props, its tooltip behavior and its ref.\n */\nexport abstract class BaseDialogWebComponent extends BaseWebComponent<DialogApi> {\n\tprotected abstract readonly host?: HTMLElement;\n\n\tprotected readonly dialogRef = createCtaRef<HTMLDialogElement>();\n\tprivate readonly cardCloseButtonRef = createCtaRef<HTMLButtonElement>();\n\n\t/** Drives the card close button's tooltip — it renders with `hideLabel`, so its label lives there. */\n\tprivate readonly cardCloseTooltipBehavior = new TooltipBehavior(this.stateAccess);\n\n\t/** Resolved once in `componentWillLoad`: the close button's configuration never changes. */\n\tprivate cardCloseButtonProps!: ResolvedButtonProps;\n\n\t// --- Lifecycle ---\n\n\tprotected initDialogRenderProps(): void {\n\t\tthis.initRenderProps(dialogPropsConfig);\n\n\t\tthis.cardCloseButtonProps = resolveCardCloseButtonProps(this.host);\n\t\tthis.cardCloseTooltipBehavior.componentWillLoad({\n\t\t\tlabel: this.cardCloseButtonProps.label,\n\t\t\talign: this.cardCloseButtonProps.tooltipAlign,\n\t\t});\n\t}\n\n\tprotected syncCardCloseTooltipListeners(): void {\n\t\tif (this.cardCloseButtonRef.el) {\n\t\t\tthis.cardCloseTooltipBehavior.syncListeners(undefined, this.cardCloseButtonRef.el, true);\n\t\t}\n\t}\n\n\tprotected teardownDialog(): void {\n\t\tthis.closeDialog();\n\t\tunlockScroll(this);\n\t\tthis.cardCloseTooltipBehavior.destroy();\n\t}\n\n\t// --- Prop application ---\n\n\tprotected applyLabel(value?: LabelPropType): void {\n\t\tlabelProp.apply(value, (v) => this.setRenderProp('label', v));\n\t}\n\n\tprotected applyLevel(value?: HeadingLevel): void {\n\t\tlevelProp.apply(value, (v) => this.setRenderProp('level', v));\n\t}\n\n\tprotected applyOn(value?: KoliBriDialogEventCallbacks): void {\n\t\tdialogCallbacksProp.apply(value, (v) => this.setRenderProp('on', v));\n\t}\n\n\tprotected applyVariant(value?: ModalVariantPropType): void {\n\t\tvariantDialogProp.apply(value, (v) => this.setRenderProp('variant', v));\n\t}\n\n\tprotected applyWidth(value?: string): void {\n\t\twidthProp.apply(value, (v) => this.setRenderProp('width', v));\n\t}\n\n\t// --- Dialog control ---\n\n\t/*\n\t * The optional chaining on the native methods is a workaround for HTMLDialogElement not being\n\t * implemented in jsdom, which would otherwise fail the Jest tests.\n\t */\n\n\tprotected showDialog(modal: boolean): void {\n\t\tconst dialog = this.dialogRef.el;\n\t\tif (dialog?.open) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.setState('modal', modal);\n\t\tif (modal) {\n\t\t\tdialog?.showModal?.();\n\t\t\tif (dialog) {\n\t\t\t\tlockScroll(this);\n\t\t\t}\n\t\t} else {\n\t\t\tdialog?.show?.();\n\t\t}\n\t}\n\n\tprotected closeDialog(): void {\n\t\tthis.dialogRef.el?.close?.();\n\t}\n\n\t// --- Event handling ---\n\n\tprivate readonly handleCancel = (event: Event): void => {\n\t\thandleCancelOverlay(event);\n\t\tif (event.defaultPrevented) return;\n\n\t\tthis.getRenderProp('on').onCancel?.(event);\n\t\tif (event.defaultPrevented) return;\n\n\t\tif (this.host && !dispatchDomEvent(this.host, KolEvent.cancel)) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t};\n\n\tprivate readonly handleClose = (event: Event): void => {\n\t\t// Ignore close events that bubble up from child components (e.g. KolAlert).\n\t\t// Only react when the dialog element itself is the event origin.\n\t\tif (event.target !== this.dialogRef.el) {\n\t\t\treturn;\n\t\t}\n\n\t\tunlockScroll(this);\n\t\tthis.getRenderProp('on').onClose?.();\n\t\tif (this.host) {\n\t\t\tdispatchDomEvent(this.host, KolEvent.close);\n\t\t}\n\t};\n\n\t/** The card's close button closes the dialog, which then fires its own native close event. */\n\tprivate readonly handleCardClose = (): void => {\n\t\tthis.cardCloseTooltipBehavior.hideTooltip();\n\t\tthis.closeDialog();\n\t\tif (this.host) {\n\t\t\tdispatchDomEvent(this.host, KolEvent.close);\n\t\t}\n\t};\n\n\t// --- Render ---\n\n\t/**\n\t * Stencil derives light-DOM slot relocation from the `<slot />` it finds in the element file,\n\t * so each element supplies its own through `renderSlot`.\n\t */\n\tprotected abstract renderSlot(): JSX.Element;\n\n\tprivate buildCardProps(): CardFCProps {\n\t\treturn {\n\t\t\tariaDescriptionId: this.getState('ariaDescriptionId'),\n\t\t\tcloseButtonProps: this.cardCloseButtonProps,\n\t\t\thandleBlur: NOOP,\n\t\t\thandleClose: this.handleCardClose,\n\t\t\thandleFocus: NOOP,\n\t\t\thasCloser: true,\n\t\t\theadingId: this.getState('headingId'),\n\t\t\thref: '',\n\t\t\tlabel: this.getRenderProp('label'),\n\t\t\tlevel: this.getRenderProp('level'),\n\t\t\ton: {},\n\t\t\trefCloseButton: this.cardCloseButtonRef,\n\t\t\trefCta: NOOP,\n\t\t\trefTooltip: this.cardCloseTooltipBehavior.setTooltipElementRef,\n\t\t\ttarget: '',\n\t\t};\n\t}\n\n\tprotected renderDialogFC(): JSX.Element {\n\t\tconst variant = this.getRenderProp('variant');\n\t\tconst isCard = variant === 'card';\n\n\t\treturn (\n\t\t\t<DialogFC\n\t\t\t\tblockClass={dialogBlockClass(variant)}\n\t\t\t\thandleCancel={this.handleCancel}\n\t\t\t\thandleClose={this.handleClose}\n\t\t\t\tlabel={this.getRenderProp('label')}\n\t\t\t\tlabelledBy={isCard ? this.getState('headingId') : undefined}\n\t\t\t\tmodal={this.getState('modal')}\n\t\t\t\trefDialog={this.dialogRef}\n\t\t\t\twidth={this.getRenderProp('width')}\n\t\t\t>\n\t\t\t\t{isCard ? <CardFC {...this.buildCardProps()}>{this.renderSlot()}</CardFC> : this.renderSlot()}\n\t\t\t</DialogFC>\n\t\t);\n\t}\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* KoliBri - The accessible HTML-Standard
|
|
3
3
|
*/
|
|
4
|
-
import{h as i}from"./index-
|
|
5
|
-
//# sourceMappingURL=base-
|
|
4
|
+
import{h as i}from"./index-DAKQV03B.js";import{B as t}from"./base-web-component-3R1Dy3QK.js";import{l as s,a,c as e,d as r,b as o,L as n}from"./api-T-JuZMlj.js";import{T as h}from"./behavior-D1kOlK6p.js";import{s as l}from"./common-BqpMtheU.js";import{a as p,b as d,c,f,g as y,h as u,s as m,i as b,l as C,d as x,t as A,e as g,v as j}from"./variant-CeijQFzL.js";import{d as L}from"./disabled-CdyeAMlW.js";import{h as w}from"./href-DOi-fZMu.js";import{l as D}from"./label-with-expert-slot-CocPu9HB.js";import{l as v}from"./link-target-B7A-qwaP.js";import{c as K}from"./element-interaction-Cy9tx3Sx.js";import{d as I,K as B}from"./events-CRHxtwup.js";import{o as T}from"./ariaCurrentService-YoLNpD5S.js";class k extends t{constructor(){super(...arguments);this.ctaRef=K((()=>this.getRenderProp("disabled")===true));this.tooltipBehavior=new h(this.stateAccess);this.handleAnchorClick=i=>{this.tooltipBehavior.hideTooltip();const t=this.getRenderProp("disabled");if(t===true){i.preventDefault();return}const s=this.getRenderProp("href");const a=this.getRenderProp("on");if(typeof(a===null||a===void 0?void 0:a.onClick)==="function"){l(i,this.ctaRef.el);a.onClick(i,s)}if(this.host){I(this.host,B.click,s)}};this.setAnchorRef=i=>{this.ctaRef(i)}}initLinkRenderProps(){this.initRenderProps(s);this.unsetRenderProp("tabIndex")}initLinkBehaviors(){this.unsubscribeOnLocationChange=T((i=>{const t=this.getRenderProp("href");const s=this.getRenderProp("ariaCurrentValue");const a=i===t?s:"";if(this.getState("ariaCurrent")!==a){this.setState("ariaCurrent",a)}}));this.tooltipBehavior.componentWillLoad({label:this.getTooltipLabel(),align:this.getRenderProp("tooltipAlign")})}syncTooltipListeners(){if(this.ctaRef.el){this.tooltipBehavior.syncListeners(undefined,this.ctaRef.el,true)}}destroyLinkBehaviors(){if(this.unsubscribeOnLocationChange){this.unsubscribeOnLocationChange();this.unsubscribeOnLocationChange=undefined}this.tooltipBehavior.destroy()}getTooltipLabel(){const i=this.getRenderProp("label");if(typeof i==="string"&&i.length>0){return i}const t=this.getRenderProp("href");return typeof t==="string"?t:""}applyAccessKey(i){p.apply(i,(i=>this.setRenderProp("accessKey",i)))}applyAriaControls(i){d.apply(i,(i=>this.setRenderProp("ariaControls",i)))}applyAriaCurrentValue(i){a.apply(i,(i=>this.setRenderProp("ariaCurrentValue",i)))}applyAriaDescription(i){c.apply(i,(i=>this.setRenderProp("ariaDescription",i)))}applyAriaExpanded(i){f.apply(i,(i=>this.setRenderProp("ariaExpanded",i)))}applyAriaOwns(i){e.apply(i,(i=>this.setRenderProp("ariaOwns",i)))}applyCustomClass(i){y.apply(i,(i=>this.setRenderProp("customClass",i)))}applyDisabled(i){L.apply(i,(i=>this.setRenderProp("disabled",i)))}applyDownload(i){r.apply(i,(i=>this.setRenderProp("download",i)))}applyHideLabel(i){u.apply(i,(i=>this.setRenderProp("hideLabel",i)))}applyHref(i){w.apply(i,(i=>this.setRenderProp("href",i)))}applyIcons(i){m.apply(i,(i=>this.setRenderProp("icons",i)))}applyInline(i){b.apply(i,(i=>this.setRenderProp("inline",i)))}applyLabel(i){D.apply(i,(t=>{this.setRenderProp("label",t);this.setState("expertSlot",i==="");this.tooltipBehavior.watchLabel(this.getTooltipLabel())}))}applyOn(i){o.apply(i,(i=>this.setRenderProp("on",i)))}applyRole(i){C.apply(i,(i=>this.setRenderProp("role",i)))}applyShortKey(i){x.apply(i,(i=>this.setRenderProp("shortKey",i)))}applyTabIndex(i){if(typeof i==="number"){A.apply(i,(i=>this.setRenderProp("tabIndex",i)))}else{this.unsetRenderProp("tabIndex")}}applyTarget(i){v.apply(i,(i=>this.setRenderProp("target",i)))}applyTooltipAlign(i){g.apply(i,(i=>{this.setRenderProp("tooltipAlign",i);this.tooltipBehavior.watchAlign(i)}))}applyVariant(i){j.apply(i,(i=>this.setRenderProp("variant",i)))}renderLinkFC(){return i(n,{accessKey:this.getRenderProp("accessKey"),ariaControls:this.getRenderProp("ariaControls"),ariaCurrent:this.getState("ariaCurrent"),ariaCurrentValue:this.getRenderProp("ariaCurrentValue"),ariaDescription:this.getRenderProp("ariaDescription"),ariaDescriptionId:this.getState("ariaDescriptionId"),ariaExpanded:this.getRenderProp("ariaExpanded"),ariaOwns:this.getRenderProp("ariaOwns"),customClass:this.getRenderProp("customClass"),disabled:this.getRenderProp("disabled"),download:this.getRenderProp("download"),handleAnchorClick:this.handleAnchorClick,hideLabel:this.getRenderProp("hideLabel"),href:this.getRenderProp("href"),icons:this.getRenderProp("icons"),inline:this.getRenderProp("inline"),label:this.getRenderProp("label"),on:this.getRenderProp("on"),refAnchor:this.setAnchorRef,refTooltip:this.tooltipBehavior.setTooltipElementRef,role:this.getRenderProp("role"),shortKey:this.getRenderProp("shortKey"),tabIndex:this.getRenderProp("tabIndex"),target:this.getRenderProp("target"),tooltipAlign:this.getRenderProp("tooltipAlign"),variant:this.getRenderProp("variant"),expertSlot:this.getState("expertSlot")})}}export{k as B};
|
|
5
|
+
//# sourceMappingURL=base-BbVXW6YI.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-D8GcFhvD.js","sources":["src/components/link/base.tsx"],"sourcesContent":["import type { JSX } from '@stencil/core';\nimport { h } from '@stencil/core';\n\nimport { BaseWebComponent } from '../../internal/functional-components/base-web-component';\nimport type { LinkApi } from '../../internal/functional-components/link/api';\nimport { linkPropsConfig } from '../../internal/functional-components/link/api';\nimport { LinkFC } from '../../internal/functional-components/link/component';\nimport { TooltipBehavior } from '../../internal/functional-components/tooltip/behavior';\nimport {\n\taccessKeyProp,\n\tariaControlsProp,\n\tariaCurrentValueProp,\n\tariaDescriptionProp,\n\tariaExpandedProp,\n\tariaOwnsProp,\n\tcustomClassProp,\n\tdisabledProp,\n\tdownloadProp,\n\thideLabelProp,\n\threfProp,\n\tinlineProp,\n\tlabelWithExpertSlotProp,\n\tlinkCallbacksProp,\n\tlinkRoleProp,\n\tlinkTargetProp,\n\tshortKeyProp,\n\tspanIconsProp,\n\ttabIndexProp,\n\ttooltipAlignProp,\n\tvariantProp,\n} from '../../internal/props';\nimport type {\n\tAccessKeyPropType,\n\tAlternativeButtonLinkRolePropType,\n\tAriaCurrentValuePropType,\n\tAriaDescriptionPropType,\n\tAriaOwnsPropType,\n\tCustomClassPropType,\n\tDownloadPropType,\n\tHrefPropType,\n\tInlinePropType,\n\tKoliBriIconsProp,\n\tLabelWithExpertSlotPropType,\n\tLinkOnCallbacksPropType,\n\tLinkTargetPropType,\n\tShortKeyPropType,\n\tStringified,\n\tTooltipAlignPropType,\n\tVariantClassNamePropType,\n} from '../../schema';\nimport { setEventTarget } from '../../schema';\nimport { createCtaRef } from '../../utils/element-interaction';\nimport { dispatchDomEvent, KolEvent } from '../../utils/events';\nimport type { UnsubscribeFunction } from './ariaCurrentService';\nimport { onLocationChange } from './ariaCurrentService';\n\n/**\n * Shared orchestrator implementation for every custom element that renders `LinkFC`:\n * `kol-link` and `kol-link-button`.\n *\n * The class carries everything that does not need a Stencil decorator — the composed\n * `TooltipBehavior`, the `aria-current` location subscription, the anchor click handler, one\n * `apply*` method per prop and the `LinkFC` render call. The concrete element keeps what Stencil\n * has to see in the component class itself: `@Component`, `@Element`, `@State`, `@Method`, every\n * `@Prop` with its `@Watch` (whose body is a one-line call into the matching `apply*` method) and\n * the lifecycle methods, which delegate here (ARC42 § 9, design decision 16).\n *\n * This is not a layer between the web component and the functional component — it *is* the web\n * component's implementation, shared between the tag variants of one FC.\n */\nexport abstract class BaseLinkWebComponent extends BaseWebComponent<LinkApi> {\n\t/** The custom element; declared with `@Element()` by the concrete class. */\n\tprotected abstract readonly host?: HTMLElement;\n\n\t/* An `<a>` carries no native `disabled`, so a disabled link stays focusable. Emptying the ref\n\t keeps the public `focus()` and `click()` methods from reaching it. */\n\tprotected readonly ctaRef = createCtaRef<HTMLAnchorElement>(() => this.getRenderProp('disabled') === true);\n\n\t// --- Composed behaviors ---\n\n\tprotected readonly tooltipBehavior = new TooltipBehavior(this.stateAccess);\n\tprivate unsubscribeOnLocationChange?: UnsubscribeFunction;\n\n\t// --- Lifecycle helpers (called from the concrete element's lifecycle methods) ---\n\n\t/**\n\t * Seeds the render props. Call first in `componentWillLoad`, before the prop watchers run.\n\t */\n\tprotected initLinkRenderProps(): void {\n\t\tthis.initRenderProps(linkPropsConfig);\n\t\t// An unset tabindex must not render as `tabindex=\"0\"` — links are natively tabbable and\n\t\t// the attribute would trigger focus outlines that the predecessor did not draw.\n\t\tthis.unsetRenderProp('tabIndex');\n\t}\n\n\t/**\n\t * Subscribes to location changes and hands the resolved label and alignment to the tooltip\n\t * behavior. Call last in `componentWillLoad`, after every prop watcher has run.\n\t */\n\tprotected initLinkBehaviors(): void {\n\t\tthis.unsubscribeOnLocationChange = onLocationChange((location) => {\n\t\t\tconst href = this.getRenderProp('href');\n\t\t\tconst ariaCurrentValue = this.getRenderProp('ariaCurrentValue');\n\t\t\tconst newValue = location === href ? ariaCurrentValue : '';\n\t\t\tif (this.getState('ariaCurrent') !== newValue) {\n\t\t\t\tthis.setState('ariaCurrent', newValue);\n\t\t\t}\n\t\t});\n\n\t\tthis.tooltipBehavior.componentWillLoad({\n\t\t\tlabel: this.getTooltipLabel(),\n\t\t\talign: this.getRenderProp('tooltipAlign'),\n\t\t});\n\t}\n\n\t/** Call from `componentDidRender`. */\n\tprotected syncTooltipListeners(): void {\n\t\tif (this.ctaRef.el) {\n\t\t\tthis.tooltipBehavior.syncListeners(undefined, this.ctaRef.el, true);\n\t\t}\n\t}\n\n\t/** Call from `disconnectedCallback`. */\n\tprotected destroyLinkBehaviors(): void {\n\t\tif (this.unsubscribeOnLocationChange) {\n\t\t\tthis.unsubscribeOnLocationChange();\n\t\t\tthis.unsubscribeOnLocationChange = undefined;\n\t\t}\n\t\tthis.tooltipBehavior.destroy();\n\t}\n\n\t// --- Click handling ---\n\n\tprotected readonly handleAnchorClick = (event: Event): void => {\n\t\tthis.tooltipBehavior.hideTooltip();\n\t\tconst disabled = this.getRenderProp('disabled');\n\t\tif (disabled === true) {\n\t\t\tevent.preventDefault();\n\t\t\treturn;\n\t\t}\n\t\tconst href = this.getRenderProp('href');\n\t\tconst on = this.getRenderProp('on');\n\t\tif (typeof on?.onClick === 'function') {\n\t\t\tsetEventTarget(event, this.ctaRef.el);\n\t\t\ton.onClick(event, href);\n\t\t}\n\t\tif (this.host) {\n\t\t\tdispatchDomEvent(this.host, KolEvent.click, href);\n\t\t}\n\t};\n\n\t// --- Tooltip helpers ---\n\n\tprivate getTooltipLabel(): string {\n\t\tconst label = this.getRenderProp('label');\n\t\tif (typeof label === 'string' && label.length > 0) {\n\t\t\treturn label;\n\t\t}\n\t\tconst href = this.getRenderProp('href');\n\t\treturn typeof href === 'string' ? href : '';\n\t}\n\n\t// --- Prop application (one per prop; the concrete element's watchers delegate here) ---\n\n\tprotected applyAccessKey(value?: AccessKeyPropType): void {\n\t\taccessKeyProp.apply(value, (v) => this.setRenderProp('accessKey', v));\n\t}\n\n\tprotected applyAriaControls(value?: string): void {\n\t\tariaControlsProp.apply(value, (v) => this.setRenderProp('ariaControls', v));\n\t}\n\n\tprotected applyAriaCurrentValue(value?: AriaCurrentValuePropType): void {\n\t\tariaCurrentValueProp.apply(value, (v) => this.setRenderProp('ariaCurrentValue', v));\n\t}\n\n\tprotected applyAriaDescription(value?: AriaDescriptionPropType): void {\n\t\tariaDescriptionProp.apply(value, (v) => this.setRenderProp('ariaDescription', v));\n\t}\n\n\tprotected applyAriaExpanded(value?: boolean): void {\n\t\tariaExpandedProp.apply(value, (v) => this.setRenderProp('ariaExpanded', v));\n\t}\n\n\tprotected applyAriaOwns(value?: AriaOwnsPropType): void {\n\t\tariaOwnsProp.apply(value, (v) => this.setRenderProp('ariaOwns', v));\n\t}\n\n\tprotected applyCustomClass(value?: CustomClassPropType): void {\n\t\tcustomClassProp.apply(value, (v) => this.setRenderProp('customClass', v));\n\t}\n\n\tprotected applyDisabled(value?: boolean): void {\n\t\tdisabledProp.apply(value, (v) => this.setRenderProp('disabled', v));\n\t}\n\n\tprotected applyDownload(value?: DownloadPropType): void {\n\t\tdownloadProp.apply(value, (v) => this.setRenderProp('download', v));\n\t}\n\n\tprotected applyHideLabel(value?: boolean): void {\n\t\thideLabelProp.apply(value, (v) => this.setRenderProp('hideLabel', v));\n\t}\n\n\tprotected applyHref(value?: HrefPropType): void {\n\t\threfProp.apply(value, (v) => this.setRenderProp('href', v));\n\t}\n\n\tprotected applyIcons(value?: Stringified<KoliBriIconsProp>): void {\n\t\tspanIconsProp.apply(value, (v) => this.setRenderProp('icons', v));\n\t}\n\n\tprotected applyInline(value?: InlinePropType): void {\n\t\tinlineProp.apply(value, (v) => this.setRenderProp('inline', v));\n\t}\n\n\tprotected applyLabel(value?: LabelWithExpertSlotPropType): void {\n\t\tlabelWithExpertSlotProp.apply(value, (v) => {\n\t\t\tthis.setRenderProp('label', v);\n\t\t\tthis.setState('expertSlot', value === '');\n\t\t\tthis.tooltipBehavior.watchLabel(this.getTooltipLabel());\n\t\t});\n\t}\n\n\tprotected applyOn(value?: LinkOnCallbacksPropType): void {\n\t\tlinkCallbacksProp.apply(value, (v) => this.setRenderProp('on', v));\n\t}\n\n\tprotected applyRole(value?: AlternativeButtonLinkRolePropType): void {\n\t\tlinkRoleProp.apply(value, (v) => this.setRenderProp('role', v));\n\t}\n\n\tprotected applyShortKey(value?: ShortKeyPropType): void {\n\t\tshortKeyProp.apply(value, (v) => this.setRenderProp('shortKey', v));\n\t}\n\n\tprotected applyTabIndex(value?: number): void {\n\t\t// The props config seeds `tabIndex` with its default `0`, but an unset tabindex must not\n\t\t// render as `tabindex=\"0\"`. Unsetting the prop has to restore that state, so the else branch\n\t\t// is not optional: without it a reset would keep the previous number.\n\t\tif (typeof value === 'number') {\n\t\t\ttabIndexProp.apply(value, (v) => this.setRenderProp('tabIndex', v));\n\t\t} else {\n\t\t\tthis.unsetRenderProp('tabIndex');\n\t\t}\n\t}\n\n\tprotected applyTarget(value?: LinkTargetPropType): void {\n\t\tlinkTargetProp.apply(value, (v) => this.setRenderProp('target', v));\n\t}\n\n\tprotected applyTooltipAlign(value?: TooltipAlignPropType): void {\n\t\ttooltipAlignProp.apply(value, (v) => {\n\t\t\tthis.setRenderProp('tooltipAlign', v);\n\t\t\tthis.tooltipBehavior.watchAlign(v);\n\t\t});\n\t}\n\n\tprotected applyVariant(value?: VariantClassNamePropType): void {\n\t\tvariantProp.apply(value, (v) => this.setRenderProp('variant', v));\n\t}\n\n\t// --- Refs ---\n\n\tprivate readonly setAnchorRef = (el?: HTMLAnchorElement): void => {\n\t\tthis.ctaRef(el);\n\t};\n\n\t// --- Render ---\n\n\t/** Renders `LinkFC` from the current render props and state. */\n\tprotected renderLinkFC(): JSX.Element {\n\t\treturn (\n\t\t\t<LinkFC\n\t\t\t\taccessKey={this.getRenderProp('accessKey')}\n\t\t\t\tariaControls={this.getRenderProp('ariaControls')}\n\t\t\t\tariaCurrent={this.getState('ariaCurrent')}\n\t\t\t\tariaCurrentValue={this.getRenderProp('ariaCurrentValue')}\n\t\t\t\tariaDescription={this.getRenderProp('ariaDescription')}\n\t\t\t\tariaDescriptionId={this.getState('ariaDescriptionId')}\n\t\t\t\tariaExpanded={this.getRenderProp('ariaExpanded')}\n\t\t\t\tariaOwns={this.getRenderProp('ariaOwns')}\n\t\t\t\tcustomClass={this.getRenderProp('customClass')}\n\t\t\t\tdisabled={this.getRenderProp('disabled')}\n\t\t\t\tdownload={this.getRenderProp('download')}\n\t\t\t\thandleAnchorClick={this.handleAnchorClick}\n\t\t\t\thideLabel={this.getRenderProp('hideLabel')}\n\t\t\t\thref={this.getRenderProp('href')}\n\t\t\t\ticons={this.getRenderProp('icons')}\n\t\t\t\tinline={this.getRenderProp('inline')}\n\t\t\t\tlabel={this.getRenderProp('label')}\n\t\t\t\ton={this.getRenderProp('on')}\n\t\t\t\trefAnchor={this.setAnchorRef}\n\t\t\t\trefTooltip={this.tooltipBehavior.setTooltipElementRef}\n\t\t\t\trole={this.getRenderProp('role')}\n\t\t\t\tshortKey={this.getRenderProp('shortKey')}\n\t\t\t\ttabIndex={this.getRenderProp('tabIndex')}\n\t\t\t\ttarget={this.getRenderProp('target')}\n\t\t\t\ttooltipAlign={this.getRenderProp('tooltipAlign')}\n\t\t\t\tvariant={this.getRenderProp('variant')}\n\t\t\t\texpertSlot={this.getState('expertSlot')}\n\t\t\t/>\n\t\t);\n\t}\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"base-BbVXW6YI.js","sources":["src/components/link/base.tsx"],"sourcesContent":["import type { JSX } from '@stencil/core';\nimport { h } from '@stencil/core';\n\nimport { BaseWebComponent } from '../../internal/functional-components/base-web-component';\nimport type { LinkApi } from '../../internal/functional-components/link/api';\nimport { linkPropsConfig } from '../../internal/functional-components/link/api';\nimport { LinkFC } from '../../internal/functional-components/link/component';\nimport { TooltipBehavior } from '../../internal/functional-components/tooltip/behavior';\nimport {\n\taccessKeyProp,\n\tariaControlsProp,\n\tariaCurrentValueProp,\n\tariaDescriptionProp,\n\tariaExpandedProp,\n\tariaOwnsProp,\n\tcustomClassProp,\n\tdisabledProp,\n\tdownloadProp,\n\thideLabelProp,\n\threfProp,\n\tinlineProp,\n\tlabelWithExpertSlotProp,\n\tlinkCallbacksProp,\n\tlinkRoleProp,\n\tlinkTargetProp,\n\tshortKeyProp,\n\tspanIconsProp,\n\ttabIndexProp,\n\ttooltipAlignProp,\n\tvariantProp,\n} from '../../internal/props';\nimport type {\n\tAccessKeyPropType,\n\tAlternativeButtonLinkRolePropType,\n\tAriaCurrentValuePropType,\n\tAriaDescriptionPropType,\n\tAriaOwnsPropType,\n\tCustomClassPropType,\n\tDownloadPropType,\n\tHrefPropType,\n\tInlinePropType,\n\tKoliBriIconsProp,\n\tLabelWithExpertSlotPropType,\n\tLinkOnCallbacksPropType,\n\tLinkTargetPropType,\n\tShortKeyPropType,\n\tStringified,\n\tTooltipAlignPropType,\n\tVariantClassNamePropType,\n} from '../../schema';\nimport { setEventTarget } from '../../schema';\nimport { createCtaRef } from '../../utils/element-interaction';\nimport { dispatchDomEvent, KolEvent } from '../../utils/events';\nimport type { UnsubscribeFunction } from './ariaCurrentService';\nimport { onLocationChange } from './ariaCurrentService';\n\n/**\n * Shared orchestrator implementation for every custom element that renders `LinkFC`:\n * `kol-link` and `kol-link-button`.\n *\n * The class carries everything that does not need a Stencil decorator — the composed\n * `TooltipBehavior`, the `aria-current` location subscription, the anchor click handler, one\n * `apply*` method per prop and the `LinkFC` render call. The concrete element keeps what Stencil\n * has to see in the component class itself: `@Component`, `@Element`, `@State`, `@Method`, every\n * `@Prop` with its `@Watch` (whose body is a one-line call into the matching `apply*` method) and\n * the lifecycle methods, which delegate here (ARC42 § 9, design decision 16).\n *\n * This is not a layer between the web component and the functional component — it *is* the web\n * component's implementation, shared between the tag variants of one FC.\n */\nexport abstract class BaseLinkWebComponent extends BaseWebComponent<LinkApi> {\n\t/** The custom element; declared with `@Element()` by the concrete class. */\n\tprotected abstract readonly host?: HTMLElement;\n\n\t/* An `<a>` carries no native `disabled`, so a disabled link stays focusable. Emptying the ref\n\t keeps the public `focus()` and `click()` methods from reaching it. */\n\tprotected readonly ctaRef = createCtaRef<HTMLAnchorElement>(() => this.getRenderProp('disabled') === true);\n\n\t// --- Composed behaviors ---\n\n\tprotected readonly tooltipBehavior = new TooltipBehavior(this.stateAccess);\n\tprivate unsubscribeOnLocationChange?: UnsubscribeFunction;\n\n\t// --- Lifecycle helpers (called from the concrete element's lifecycle methods) ---\n\n\t/**\n\t * Seeds the render props. Call first in `componentWillLoad`, before the prop watchers run.\n\t */\n\tprotected initLinkRenderProps(): void {\n\t\tthis.initRenderProps(linkPropsConfig);\n\t\t// An unset tabindex must not render as `tabindex=\"0\"` — links are natively tabbable and\n\t\t// the attribute would trigger focus outlines that the predecessor did not draw.\n\t\tthis.unsetRenderProp('tabIndex');\n\t}\n\n\t/**\n\t * Subscribes to location changes and hands the resolved label and alignment to the tooltip\n\t * behavior. Call last in `componentWillLoad`, after every prop watcher has run.\n\t */\n\tprotected initLinkBehaviors(): void {\n\t\tthis.unsubscribeOnLocationChange = onLocationChange((location) => {\n\t\t\tconst href = this.getRenderProp('href');\n\t\t\tconst ariaCurrentValue = this.getRenderProp('ariaCurrentValue');\n\t\t\tconst newValue = location === href ? ariaCurrentValue : '';\n\t\t\tif (this.getState('ariaCurrent') !== newValue) {\n\t\t\t\tthis.setState('ariaCurrent', newValue);\n\t\t\t}\n\t\t});\n\n\t\tthis.tooltipBehavior.componentWillLoad({\n\t\t\tlabel: this.getTooltipLabel(),\n\t\t\talign: this.getRenderProp('tooltipAlign'),\n\t\t});\n\t}\n\n\t/** Call from `componentDidRender`. */\n\tprotected syncTooltipListeners(): void {\n\t\tif (this.ctaRef.el) {\n\t\t\tthis.tooltipBehavior.syncListeners(undefined, this.ctaRef.el, true);\n\t\t}\n\t}\n\n\t/** Call from `disconnectedCallback`. */\n\tprotected destroyLinkBehaviors(): void {\n\t\tif (this.unsubscribeOnLocationChange) {\n\t\t\tthis.unsubscribeOnLocationChange();\n\t\t\tthis.unsubscribeOnLocationChange = undefined;\n\t\t}\n\t\tthis.tooltipBehavior.destroy();\n\t}\n\n\t// --- Click handling ---\n\n\tprotected readonly handleAnchorClick = (event: Event): void => {\n\t\tthis.tooltipBehavior.hideTooltip();\n\t\tconst disabled = this.getRenderProp('disabled');\n\t\tif (disabled === true) {\n\t\t\tevent.preventDefault();\n\t\t\treturn;\n\t\t}\n\t\tconst href = this.getRenderProp('href');\n\t\tconst on = this.getRenderProp('on');\n\t\tif (typeof on?.onClick === 'function') {\n\t\t\tsetEventTarget(event, this.ctaRef.el);\n\t\t\ton.onClick(event, href);\n\t\t}\n\t\tif (this.host) {\n\t\t\tdispatchDomEvent(this.host, KolEvent.click, href);\n\t\t}\n\t};\n\n\t// --- Tooltip helpers ---\n\n\tprivate getTooltipLabel(): string {\n\t\tconst label = this.getRenderProp('label');\n\t\tif (typeof label === 'string' && label.length > 0) {\n\t\t\treturn label;\n\t\t}\n\t\tconst href = this.getRenderProp('href');\n\t\treturn typeof href === 'string' ? href : '';\n\t}\n\n\t// --- Prop application (one per prop; the concrete element's watchers delegate here) ---\n\n\tprotected applyAccessKey(value?: AccessKeyPropType): void {\n\t\taccessKeyProp.apply(value, (v) => this.setRenderProp('accessKey', v));\n\t}\n\n\tprotected applyAriaControls(value?: string): void {\n\t\tariaControlsProp.apply(value, (v) => this.setRenderProp('ariaControls', v));\n\t}\n\n\tprotected applyAriaCurrentValue(value?: AriaCurrentValuePropType): void {\n\t\tariaCurrentValueProp.apply(value, (v) => this.setRenderProp('ariaCurrentValue', v));\n\t}\n\n\tprotected applyAriaDescription(value?: AriaDescriptionPropType): void {\n\t\tariaDescriptionProp.apply(value, (v) => this.setRenderProp('ariaDescription', v));\n\t}\n\n\tprotected applyAriaExpanded(value?: boolean): void {\n\t\tariaExpandedProp.apply(value, (v) => this.setRenderProp('ariaExpanded', v));\n\t}\n\n\tprotected applyAriaOwns(value?: AriaOwnsPropType): void {\n\t\tariaOwnsProp.apply(value, (v) => this.setRenderProp('ariaOwns', v));\n\t}\n\n\tprotected applyCustomClass(value?: CustomClassPropType): void {\n\t\tcustomClassProp.apply(value, (v) => this.setRenderProp('customClass', v));\n\t}\n\n\tprotected applyDisabled(value?: boolean): void {\n\t\tdisabledProp.apply(value, (v) => this.setRenderProp('disabled', v));\n\t}\n\n\tprotected applyDownload(value?: DownloadPropType): void {\n\t\tdownloadProp.apply(value, (v) => this.setRenderProp('download', v));\n\t}\n\n\tprotected applyHideLabel(value?: boolean): void {\n\t\thideLabelProp.apply(value, (v) => this.setRenderProp('hideLabel', v));\n\t}\n\n\tprotected applyHref(value?: HrefPropType): void {\n\t\threfProp.apply(value, (v) => this.setRenderProp('href', v));\n\t}\n\n\tprotected applyIcons(value?: Stringified<KoliBriIconsProp>): void {\n\t\tspanIconsProp.apply(value, (v) => this.setRenderProp('icons', v));\n\t}\n\n\tprotected applyInline(value?: InlinePropType): void {\n\t\tinlineProp.apply(value, (v) => this.setRenderProp('inline', v));\n\t}\n\n\tprotected applyLabel(value?: LabelWithExpertSlotPropType): void {\n\t\tlabelWithExpertSlotProp.apply(value, (v) => {\n\t\t\tthis.setRenderProp('label', v);\n\t\t\tthis.setState('expertSlot', value === '');\n\t\t\tthis.tooltipBehavior.watchLabel(this.getTooltipLabel());\n\t\t});\n\t}\n\n\tprotected applyOn(value?: LinkOnCallbacksPropType): void {\n\t\tlinkCallbacksProp.apply(value, (v) => this.setRenderProp('on', v));\n\t}\n\n\tprotected applyRole(value?: AlternativeButtonLinkRolePropType): void {\n\t\tlinkRoleProp.apply(value, (v) => this.setRenderProp('role', v));\n\t}\n\n\tprotected applyShortKey(value?: ShortKeyPropType): void {\n\t\tshortKeyProp.apply(value, (v) => this.setRenderProp('shortKey', v));\n\t}\n\n\tprotected applyTabIndex(value?: number): void {\n\t\t// The props config seeds `tabIndex` with its default `0`, but an unset tabindex must not\n\t\t// render as `tabindex=\"0\"`. Unsetting the prop has to restore that state, so the else branch\n\t\t// is not optional: without it a reset would keep the previous number.\n\t\tif (typeof value === 'number') {\n\t\t\ttabIndexProp.apply(value, (v) => this.setRenderProp('tabIndex', v));\n\t\t} else {\n\t\t\tthis.unsetRenderProp('tabIndex');\n\t\t}\n\t}\n\n\tprotected applyTarget(value?: LinkTargetPropType): void {\n\t\tlinkTargetProp.apply(value, (v) => this.setRenderProp('target', v));\n\t}\n\n\tprotected applyTooltipAlign(value?: TooltipAlignPropType): void {\n\t\ttooltipAlignProp.apply(value, (v) => {\n\t\t\tthis.setRenderProp('tooltipAlign', v);\n\t\t\tthis.tooltipBehavior.watchAlign(v);\n\t\t});\n\t}\n\n\tprotected applyVariant(value?: VariantClassNamePropType): void {\n\t\tvariantProp.apply(value, (v) => this.setRenderProp('variant', v));\n\t}\n\n\t// --- Refs ---\n\n\tprivate readonly setAnchorRef = (el?: HTMLAnchorElement): void => {\n\t\tthis.ctaRef(el);\n\t};\n\n\t// --- Render ---\n\n\t/** Renders `LinkFC` from the current render props and state. */\n\tprotected renderLinkFC(): JSX.Element {\n\t\treturn (\n\t\t\t<LinkFC\n\t\t\t\taccessKey={this.getRenderProp('accessKey')}\n\t\t\t\tariaControls={this.getRenderProp('ariaControls')}\n\t\t\t\tariaCurrent={this.getState('ariaCurrent')}\n\t\t\t\tariaCurrentValue={this.getRenderProp('ariaCurrentValue')}\n\t\t\t\tariaDescription={this.getRenderProp('ariaDescription')}\n\t\t\t\tariaDescriptionId={this.getState('ariaDescriptionId')}\n\t\t\t\tariaExpanded={this.getRenderProp('ariaExpanded')}\n\t\t\t\tariaOwns={this.getRenderProp('ariaOwns')}\n\t\t\t\tcustomClass={this.getRenderProp('customClass')}\n\t\t\t\tdisabled={this.getRenderProp('disabled')}\n\t\t\t\tdownload={this.getRenderProp('download')}\n\t\t\t\thandleAnchorClick={this.handleAnchorClick}\n\t\t\t\thideLabel={this.getRenderProp('hideLabel')}\n\t\t\t\thref={this.getRenderProp('href')}\n\t\t\t\ticons={this.getRenderProp('icons')}\n\t\t\t\tinline={this.getRenderProp('inline')}\n\t\t\t\tlabel={this.getRenderProp('label')}\n\t\t\t\ton={this.getRenderProp('on')}\n\t\t\t\trefAnchor={this.setAnchorRef}\n\t\t\t\trefTooltip={this.tooltipBehavior.setTooltipElementRef}\n\t\t\t\trole={this.getRenderProp('role')}\n\t\t\t\tshortKey={this.getRenderProp('shortKey')}\n\t\t\t\ttabIndex={this.getRenderProp('tabIndex')}\n\t\t\t\ttarget={this.getRenderProp('target')}\n\t\t\t\ttooltipAlign={this.getRenderProp('tooltipAlign')}\n\t\t\t\tvariant={this.getRenderProp('variant')}\n\t\t\t\texpertSlot={this.getState('expertSlot')}\n\t\t\t/>\n\t\t);\n\t}\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* KoliBri - The accessible HTML-Standard
|
|
3
3
|
*/
|
|
4
|
-
import{h as i}from"./index-
|
|
5
|
-
//# sourceMappingURL=base-
|
|
4
|
+
import{h as i}from"./index-DAKQV03B.js";import{s,X as t}from"./common-BqpMtheU.js";import{B as a}from"./base-web-component-3R1Dy3QK.js";import{b as e,e as o,a as h,c as r,d as l}from"./api-BvTefIaj.js";import{B as n}from"./component-CmBM-Y1C.js";import{F as p}from"./behavior-DnkpB_7O.js";import{T as d,i as m}from"./behavior-D1kOlK6p.js";import{a as c,b as y,c as f,f as u,g as b,h as v,s as C,i as j,l as x,d as B,t as D,e as A,v as I}from"./variant-CeijQFzL.js";import{d as K}from"./disabled-CdyeAMlW.js";import{l as H}from"./label-with-expert-slot-CocPu9HB.js";import{n as T}from"./name-D8963H-v.js";import{v as g}from"./access-and-short-key-ijzCZfHm.js";import{c as S}from"./element-interaction-Cy9tx3Sx.js";import{d as F,K as L}from"./events-CRHxtwup.js";import{p as P,a as w}from"./controller-D1hrFVo3.js";class V extends a{constructor(){super(...arguments);this.ctaRef=S();this.tooltipBehavior=new d(this.stateAccess);this.handleClick=i=>{i.stopPropagation();this.tooltipBehavior.hideTooltip();const t=this.getRenderProp("type");if(t==="submit"){P({form:this.host})}else if(t==="reset"){w({form:this.host})}else{this.formAssociation.setFormAssociatedValue(this.formValue);const t=this.getRenderProp("on").onClick;if(typeof t==="function"){s(i,this.ctaRef.el);t(i,this.formValue)}}if(this.host){F(this.host,L.click,this.formValue)}};this.handleMouseDown=i=>{var s,t;(t=(s=this.getRenderProp("on")).onMouseDown)===null||t===void 0?void 0:t.call(s,i);if(this.host){F(this.host,L.mousedown)}};this.handleFocus=i=>{var s,t;(t=(s=this.getRenderProp("on")).onFocus)===null||t===void 0?void 0:t.call(s,i);if(this.host){F(this.host,L.focus)}};this.handleBlur=i=>{var s,t;(t=(s=this.getRenderProp("on")).onBlur)===null||t===void 0?void 0:t.call(s,i);if(this.host){F(this.host,L.blur)}}}initFormAssociation(){this.formAssociation=new p(a.stateLess,{host:this.host,type:"button"})}initButtonRenderProps(){this.initRenderProps(e);this.unsetRenderProp("tabIndex")}initTooltipBehavior(){this.tooltipBehavior.componentWillLoad({label:this.getRenderProp("label"),align:this.getRenderProp("tooltipAlign")})}syncTooltipListeners(){if(this.ctaRef.el){this.tooltipBehavior.syncListeners(undefined,this.ctaRef.el,true)}}destroyTooltipBehavior(){this.tooltipBehavior.destroy()}applyAccessKey(i,s){c.apply(i,(i=>this.setRenderProp("accessKey",i)));g(i,s)}applyAriaControls(i){y.apply(i,(i=>this.setRenderProp("ariaControls",i)))}applyAriaDescription(i){f.apply(i,(i=>this.setRenderProp("ariaDescription",i)))}applyAriaExpanded(i){u.apply(i,(i=>this.setRenderProp("ariaExpanded",i)))}applyAriaHasPopup(i){o.apply(i,(i=>this.setRenderProp("ariaHasPopup",i)))}applyAriaSelected(i){h.apply(i,(i=>this.setRenderProp("ariaSelected",i)))}applyCustomClass(i){b.apply(i,(i=>this.setRenderProp("customClass",i)))}applyDisabled(i){K.apply(i,(i=>this.setRenderProp("disabled",i)))}applyHideLabel(i){v.apply(i,(i=>this.setRenderProp("hideLabel",i)))}applyIcons(i){C.apply(i,(i=>this.setRenderProp("icons",i)))}applyId(i){m.apply(i,(i=>this.setRenderProp("id",i)))}applyInline(i){j.apply(i,(i=>this.setRenderProp("inline",i)))}applyLabel(i){H.apply(i,(i=>{this.setRenderProp("label",i);this.tooltipBehavior.watchLabel(i)}))}applyName(i){T.apply(i,(i=>this.setRenderProp("name",i)));this.formAssociation.watchName(i)}applyOn(i){r.apply(i,(i=>this.setRenderProp("on",i)))}applyRole(i){x.apply(i,(i=>this.setRenderProp("role",i)))}applyShortKey(i,s){B.apply(i,(i=>this.setRenderProp("shortKey",i)));g(s,i)}applySyncValueBySelector(i){this.formAssociation.watchSyncValueBySelector(i)}applyTabIndex(i){if(typeof i==="number"){D.apply(i,(i=>this.setRenderProp("tabIndex",i)))}else{this.unsetRenderProp("tabIndex")}}applyTooltipAlign(i){A.apply(i,(i=>{this.setRenderProp("tooltipAlign",i);this.tooltipBehavior.watchAlign(i)}))}applyType(i){l.apply(i,(i=>this.setRenderProp("type",i)))}applyValue(i){this.formValue=i;this.formAssociation.setFormAssociatedValue(i)}applyVariant(i){var s;I.apply((s=i!==null&&i!==void 0?i:t("buttonVariantDefault",this.host))!==null&&s!==void 0?s:"normal",(i=>this.setRenderProp("variant",i)))}getButtonFCProps(){return{accessKey:this.getRenderProp("accessKey"),ariaControls:this.getRenderProp("ariaControls"),ariaDescription:this.getRenderProp("ariaDescription"),ariaDescriptionId:this.getState("ariaDescriptionId"),ariaExpanded:this.getRenderProp("ariaExpanded"),ariaHasPopup:this.getRenderProp("ariaHasPopup"),ariaSelected:this.getRenderProp("ariaSelected"),customClass:this.getRenderProp("customClass"),disabled:this.getRenderProp("disabled"),handleBlur:this.handleBlur,handleClick:this.handleClick,handleFocus:this.handleFocus,handleMouseDown:this.handleMouseDown,hideLabel:this.getRenderProp("hideLabel"),icons:this.getRenderProp("icons"),id:this.getRenderProp("id"),inline:this.getRenderProp("inline"),label:this.getRenderProp("label"),name:this.getRenderProp("name"),on:this.getRenderProp("on"),refButton:this.ctaRef,refTooltip:this.tooltipBehavior.setTooltipElementRef,role:this.getRenderProp("role"),shortKey:this.getRenderProp("shortKey"),tabIndex:this.getRenderProp("tabIndex"),tooltipAlign:this.getRenderProp("tooltipAlign"),type:this.getRenderProp("type"),variant:this.getRenderProp("variant")}}renderButtonFC(){return i(n,Object.assign({},this.getButtonFCProps()))}}export{V as B};
|
|
5
|
+
//# sourceMappingURL=base-D8yYjJsn.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-B5F8ROuQ.js","sources":["src/components/button/base.tsx"],"sourcesContent":["import type { JSX } from '@stencil/core';\nimport { h } from '@stencil/core';\nimport { getFeatureFlag } from 'adopted-style-sheets';\n\nimport { BaseWebComponent } from '../../internal/functional-components/base-web-component';\nimport type { ButtonApi } from '../../internal/functional-components/button/api';\nimport { buttonPropsConfig } from '../../internal/functional-components/button/api';\nimport { ButtonFC } from '../../internal/functional-components/button/component';\nimport { FormAssociationBehavior } from '../../internal/functional-components/form-association/behavior';\nimport type { FunctionalComponentProps } from '../../internal/functional-components/generic-types';\nimport { TooltipBehavior } from '../../internal/functional-components/tooltip/behavior';\nimport {\n\taccessKeyProp,\n\tariaControlsProp,\n\tariaDescriptionProp,\n\tariaExpandedProp,\n\tariaHasPopupProp,\n\tariaSelectedProp,\n\tbuttonCallbacksProp,\n\tbuttonTypeProp,\n\tcustomClassProp,\n\tdisabledProp,\n\thideLabelProp,\n\tidProp,\n\tinlineProp,\n\tlabelWithExpertSlotProp,\n\tlinkRoleProp,\n\tnameProp,\n\tshortKeyProp,\n\tspanIconsProp,\n\ttabIndexProp,\n\ttooltipAlignProp,\n\tvariantProp,\n} from '../../internal/props';\nimport type {\n\tAccessKeyPropType,\n\tAlternativeButtonLinkRolePropType,\n\tAriaDescriptionPropType,\n\tButtonCallbacksPropType,\n\tButtonTypePropType,\n\tCustomClassPropType,\n\tIconsPropType,\n\tIdPropType,\n\tInlinePropType,\n\tLabelWithExpertSlotPropType,\n\tShortKeyPropType,\n\tStencilUnknown,\n\tSyncValueBySelectorPropType,\n\tTooltipAlignPropType,\n\tVariantClassNamePropType,\n} from '../../schema';\nimport { setEventTarget } from '../../schema';\nimport type { AriaHasPopupPropType } from '../../schema/props/aria-has-popup';\nimport { validateAccessAndShortKey } from '../../schema/validators/access-and-short-key';\nimport { createCtaRef } from '../../utils/element-interaction';\nimport { dispatchDomEvent, KolEvent } from '../../utils/events';\nimport { propagateResetEventToForm, propagateSubmitEventToForm } from '../form/controller';\n\n/**\n * Shared orchestrator implementation for every custom element that renders `ButtonFC`:\n * `kol-button`, `kol-button-link` and `kol-split-button`.\n *\n * The class carries everything that does not need a Stencil decorator — the composed\n * `TooltipBehavior`, the form-association adapter, the event handlers, one `apply*` method per\n * prop and the `ButtonFC` render call. The concrete element keeps what Stencil has to see in the\n * component class itself: `@Component`, `@Element`, `@State`, `@Method`, every `@Prop` with its\n * `@Watch` (whose body is a one-line call into the matching `apply*` method) and the lifecycle\n * methods, which delegate here (ARC42 § 9, design decision 16).\n *\n * This is not a layer between the web component and the functional component — it *is* the web\n * component's implementation, shared between the tag variants of one FC.\n */\nexport abstract class BaseButtonWebComponent extends BaseWebComponent<ButtonApi> {\n\t/** The custom element; declared with `@Element()` by the concrete class. */\n\tprotected abstract readonly host?: HTMLElement;\n\n\tprotected readonly ctaRef = createCtaRef<HTMLButtonElement>();\n\n\t// --- Composed behaviors ---\n\n\tprotected readonly tooltipBehavior = new TooltipBehavior(this.stateAccess);\n\n\tprivate formAssociation!: FormAssociationBehavior;\n\n\t/**\n\t * The raw `_value`. It is neither rendered nor normalized (see `buttonPropsConfig`), but the\n\t * click handler hands it to the consumer callback and the custom event, so the last applied\n\t * value is kept here.\n\t */\n\tprivate formValue?: StencilUnknown;\n\n\t/**\n\t * Creates the form association. Must be called from the concrete element's constructor (after\n\t * `super()`), not from this base class's constructor: Stencil registers the host element at the\n\t * start of the *component* class's constructor, so `this.host` is only populated once the base\n\t * constructor has returned.\n\t *\n\t * No name is passed, because the name is only applied in `componentWillLoad`. The button therefore\n\t * never creates a hidden form element (#11036).\n\t */\n\tprotected initFormAssociation(): void {\n\t\tthis.formAssociation = new FormAssociationBehavior(BaseWebComponent.stateLess, { host: this.host, type: 'button' });\n\t}\n\n\t// --- Lifecycle helpers (called from the concrete element's lifecycle methods) ---\n\n\t/**\n\t * Seeds the render props. Call first in `componentWillLoad`, before the prop watchers run.\n\t */\n\tprotected initButtonRenderProps(): void {\n\t\tthis.initRenderProps(buttonPropsConfig);\n\t\t// Seed `tabIndex` as unset before any watcher runs: an unset tabindex must not render as\n\t\t// `tabindex=\"0\"` — buttons are natively tabbable and the attribute would pin them into the\n\t\t// document tab order. `applyTabIndex` does the same for elements that expose `_tabIndex`,\n\t\t// but a `shadow: false` element can abort mid-initialization under SSR (the form association\n\t\t// finds no host with a shadow root, because `instanceof Element` fails in Stencil's mock DOM,\n\t\t// then throws on `attachInternals(undefined)`, and Stencil swallows the error but renders\n\t\t// anyway, #11034). Without this line the props config default `0` would survive such an abort.\n\t\tthis.unsetRenderProp('tabIndex');\n\t}\n\n\t/**\n\t * Hands the resolved label and alignment to the tooltip behavior. Call last in\n\t * `componentWillLoad`, after every prop watcher has run.\n\t */\n\tprotected initTooltipBehavior(): void {\n\t\tthis.tooltipBehavior.componentWillLoad({\n\t\t\tlabel: this.getRenderProp('label'),\n\t\t\talign: this.getRenderProp('tooltipAlign'),\n\t\t});\n\t}\n\n\t/** Call from `componentDidRender`. */\n\tprotected syncTooltipListeners(): void {\n\t\tif (this.ctaRef.el) {\n\t\t\tthis.tooltipBehavior.syncListeners(undefined, this.ctaRef.el, true);\n\t\t}\n\t}\n\n\t/** Call from `disconnectedCallback`. */\n\tprotected destroyTooltipBehavior(): void {\n\t\tthis.tooltipBehavior.destroy();\n\t}\n\n\t// --- Event handling ---\n\n\tprotected readonly handleClick = (event: MouseEvent): void => {\n\t\tevent.stopPropagation();\n\t\tthis.tooltipBehavior.hideTooltip();\n\n\t\tconst type = this.getRenderProp('type');\n\t\tif (type === 'submit') {\n\t\t\tpropagateSubmitEventToForm({ form: this.host, ref: this.ctaRef.el });\n\t\t} else if (type === 'reset') {\n\t\t\tpropagateResetEventToForm({ form: this.host, ref: this.ctaRef.el });\n\t\t} else {\n\t\t\t// TODO: Static form handling\n\t\t\tthis.formAssociation.setFormAssociatedValue(this.formValue);\n\n\t\t\tconst onClick = this.getRenderProp('on').onClick;\n\t\t\tif (typeof onClick === 'function') {\n\t\t\t\tsetEventTarget(event, this.ctaRef.el);\n\t\t\t\tonClick(event, this.formValue);\n\t\t\t}\n\t\t}\n\n\t\tif (this.host) {\n\t\t\tdispatchDomEvent(this.host, KolEvent.click, this.formValue);\n\t\t}\n\t};\n\n\tprotected readonly handleMouseDown = (event: MouseEvent): void => {\n\t\tthis.getRenderProp('on').onMouseDown?.(event);\n\t\tif (this.host) {\n\t\t\tdispatchDomEvent(this.host, KolEvent.mousedown);\n\t\t}\n\t};\n\n\tprotected readonly handleFocus = (event: FocusEvent): void => {\n\t\tthis.getRenderProp('on').onFocus?.(event);\n\t\tif (this.host) {\n\t\t\tdispatchDomEvent(this.host, KolEvent.focus);\n\t\t}\n\t};\n\n\tprotected readonly handleBlur = (event: FocusEvent): void => {\n\t\tthis.getRenderProp('on').onBlur?.(event);\n\t\tif (this.host) {\n\t\t\tdispatchDomEvent(this.host, KolEvent.blur);\n\t\t}\n\t};\n\n\t// --- Prop application (one per prop; the concrete element's watchers delegate here) ---\n\n\tprotected applyAccessKey(value?: AccessKeyPropType, shortKey?: ShortKeyPropType): void {\n\t\taccessKeyProp.apply(value, (v) => this.setRenderProp('accessKey', v));\n\t\tvalidateAccessAndShortKey(value, shortKey);\n\t}\n\n\tprotected applyAriaControls(value?: string): void {\n\t\tariaControlsProp.apply(value, (v) => this.setRenderProp('ariaControls', v));\n\t}\n\n\tprotected applyAriaDescription(value?: AriaDescriptionPropType): void {\n\t\tariaDescriptionProp.apply(value, (v) => this.setRenderProp('ariaDescription', v));\n\t}\n\n\tprotected applyAriaExpanded(value?: boolean): void {\n\t\tariaExpandedProp.apply(value, (v) => this.setRenderProp('ariaExpanded', v));\n\t}\n\n\tprotected applyAriaHasPopup(value?: AriaHasPopupPropType): void {\n\t\tariaHasPopupProp.apply(value, (v) => this.setRenderProp('ariaHasPopup', v));\n\t}\n\n\tprotected applyAriaSelected(value?: boolean): void {\n\t\tariaSelectedProp.apply(value, (v) => this.setRenderProp('ariaSelected', v));\n\t}\n\n\tprotected applyCustomClass(value?: CustomClassPropType): void {\n\t\tcustomClassProp.apply(value, (v) => this.setRenderProp('customClass', v));\n\t}\n\n\tprotected applyDisabled(value?: boolean): void {\n\t\tdisabledProp.apply(value, (v) => this.setRenderProp('disabled', v));\n\t}\n\n\tprotected applyHideLabel(value?: boolean): void {\n\t\thideLabelProp.apply(value, (v) => this.setRenderProp('hideLabel', v));\n\t}\n\n\tprotected applyIcons(value?: IconsPropType): void {\n\t\tspanIconsProp.apply(value, (v) => this.setRenderProp('icons', v));\n\t}\n\n\tprotected applyId(value?: IdPropType): void {\n\t\tidProp.apply(value, (v) => this.setRenderProp('id', v));\n\t}\n\n\tprotected applyInline(value?: InlinePropType): void {\n\t\tinlineProp.apply(value, (v) => this.setRenderProp('inline', v));\n\t}\n\n\tprotected applyLabel(value?: LabelWithExpertSlotPropType): void {\n\t\tlabelWithExpertSlotProp.apply(value, (v) => {\n\t\t\tthis.setRenderProp('label', v);\n\t\t\tthis.tooltipBehavior.watchLabel(v);\n\t\t});\n\t}\n\n\tprotected applyName(value?: string): void {\n\t\tnameProp.apply(value, (v) => this.setRenderProp('name', v));\n\t\tthis.formAssociation.watchName(value);\n\t}\n\n\tprotected applyOn(value?: ButtonCallbacksPropType<StencilUnknown>): void {\n\t\tbuttonCallbacksProp.apply(value, (v) => this.setRenderProp('on', v));\n\t}\n\n\tprotected applyRole(value?: AlternativeButtonLinkRolePropType): void {\n\t\tlinkRoleProp.apply(value, (v) => this.setRenderProp('role', v));\n\t}\n\n\tprotected applyShortKey(value?: ShortKeyPropType, accessKey?: AccessKeyPropType): void {\n\t\tshortKeyProp.apply(value, (v) => this.setRenderProp('shortKey', v));\n\t\tvalidateAccessAndShortKey(accessKey, value);\n\t}\n\n\tprotected applySyncValueBySelector(value?: SyncValueBySelectorPropType): void {\n\t\tthis.formAssociation.watchSyncValueBySelector(value);\n\t}\n\n\tprotected applyTabIndex(value?: number): void {\n\t\t// The props config seeds `tabIndex` with its default `0`, but an unset tabindex must not\n\t\t// render as `tabindex=\"0\"` — buttons are natively tabbable and the attribute would pin them\n\t\t// into the document tab order. Unsetting the prop has to restore that state, so the else\n\t\t// branch is not optional: without it a reset would keep the previous number.\n\t\tif (typeof value === 'number') {\n\t\t\ttabIndexProp.apply(value, (v) => this.setRenderProp('tabIndex', v));\n\t\t} else {\n\t\t\tthis.unsetRenderProp('tabIndex');\n\t\t}\n\t}\n\n\tprotected applyTooltipAlign(value?: TooltipAlignPropType): void {\n\t\ttooltipAlignProp.apply(value, (v) => {\n\t\t\tthis.setRenderProp('tooltipAlign', v);\n\t\t\tthis.tooltipBehavior.watchAlign(v);\n\t\t});\n\t}\n\n\tprotected applyType(value?: ButtonTypePropType): void {\n\t\tbuttonTypeProp.apply(value, (v) => this.setRenderProp('type', v));\n\t}\n\n\tprotected applyValue(value?: StencilUnknown): void {\n\t\tthis.formValue = value;\n\t\tthis.formAssociation.setFormAssociatedValue(value);\n\t}\n\n\tprotected applyVariant(value?: VariantClassNamePropType): void {\n\t\t// Resolved here rather than as a `@Prop` default: a field initializer runs in the\n\t\t// constructor, where `@Element()` is not yet populated for a `shadow: false` element under\n\t\t// SSR, so the theme-scoped feature flag would silently be ignored there. Keeping it a\n\t\t// fallback also leaves the public API unchanged. The rendered default is `normal` either way.\n\t\tvariantProp.apply(value ?? getFeatureFlag('buttonVariantDefault', this.host) ?? 'normal', (v) => this.setRenderProp('variant', v));\n\t}\n\n\t// --- Render ---\n\n\t/**\n\t * Collects the current render props and state into the prop set `ButtonFC` expects. Separate\n\t * from `renderButtonFC` because a component that embeds the button inside its own markup\n\t * (`kol-split-button`) hands the set to its own functional component instead of rendering the\n\t * button here.\n\t */\n\tprotected getButtonFCProps(): FunctionalComponentProps<ButtonApi> {\n\t\treturn {\n\t\t\taccessKey: this.getRenderProp('accessKey'),\n\t\t\tariaControls: this.getRenderProp('ariaControls'),\n\t\t\tariaDescription: this.getRenderProp('ariaDescription'),\n\t\t\tariaDescriptionId: this.getState('ariaDescriptionId'),\n\t\t\tariaExpanded: this.getRenderProp('ariaExpanded'),\n\t\t\tariaHasPopup: this.getRenderProp('ariaHasPopup'),\n\t\t\tariaSelected: this.getRenderProp('ariaSelected'),\n\t\t\tcustomClass: this.getRenderProp('customClass'),\n\t\t\tdisabled: this.getRenderProp('disabled'),\n\t\t\thandleBlur: this.handleBlur,\n\t\t\thandleClick: this.handleClick,\n\t\t\thandleFocus: this.handleFocus,\n\t\t\thandleMouseDown: this.handleMouseDown,\n\t\t\thideLabel: this.getRenderProp('hideLabel'),\n\t\t\ticons: this.getRenderProp('icons'),\n\t\t\tid: this.getRenderProp('id'),\n\t\t\tinline: this.getRenderProp('inline'),\n\t\t\tlabel: this.getRenderProp('label'),\n\t\t\tname: this.getRenderProp('name'),\n\t\t\ton: this.getRenderProp('on'),\n\t\t\trefButton: this.ctaRef,\n\t\t\trefTooltip: this.tooltipBehavior.setTooltipElementRef,\n\t\t\trole: this.getRenderProp('role'),\n\t\t\tshortKey: this.getRenderProp('shortKey'),\n\t\t\ttabIndex: this.getRenderProp('tabIndex'),\n\t\t\ttooltipAlign: this.getRenderProp('tooltipAlign'),\n\t\t\ttype: this.getRenderProp('type'),\n\t\t\tvariant: this.getRenderProp('variant'),\n\t\t};\n\t}\n\n\t/** Renders `ButtonFC` from the current render props and state. */\n\tprotected renderButtonFC(): JSX.Element {\n\t\treturn <ButtonFC {...this.getButtonFCProps()} />;\n\t}\n}\n"],"names":["getFeatureFlag"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"base-D8yYjJsn.js","sources":["src/components/button/base.tsx"],"sourcesContent":["import type { JSX } from '@stencil/core';\nimport { h } from '@stencil/core';\nimport { getFeatureFlag } from 'adopted-style-sheets';\n\nimport { BaseWebComponent } from '../../internal/functional-components/base-web-component';\nimport type { ButtonApi } from '../../internal/functional-components/button/api';\nimport { buttonPropsConfig } from '../../internal/functional-components/button/api';\nimport { ButtonFC } from '../../internal/functional-components/button/component';\nimport { FormAssociationBehavior } from '../../internal/functional-components/form-association/behavior';\nimport type { FunctionalComponentProps } from '../../internal/functional-components/generic-types';\nimport { TooltipBehavior } from '../../internal/functional-components/tooltip/behavior';\nimport {\n\taccessKeyProp,\n\tariaControlsProp,\n\tariaDescriptionProp,\n\tariaExpandedProp,\n\tariaHasPopupProp,\n\tariaSelectedProp,\n\tbuttonCallbacksProp,\n\tbuttonTypeProp,\n\tcustomClassProp,\n\tdisabledProp,\n\thideLabelProp,\n\tidProp,\n\tinlineProp,\n\tlabelWithExpertSlotProp,\n\tlinkRoleProp,\n\tnameProp,\n\tshortKeyProp,\n\tspanIconsProp,\n\ttabIndexProp,\n\ttooltipAlignProp,\n\tvariantProp,\n} from '../../internal/props';\nimport type {\n\tAccessKeyPropType,\n\tAlternativeButtonLinkRolePropType,\n\tAriaDescriptionPropType,\n\tButtonCallbacksPropType,\n\tButtonTypePropType,\n\tCustomClassPropType,\n\tIconsPropType,\n\tIdPropType,\n\tInlinePropType,\n\tLabelWithExpertSlotPropType,\n\tShortKeyPropType,\n\tStencilUnknown,\n\tSyncValueBySelectorPropType,\n\tTooltipAlignPropType,\n\tVariantClassNamePropType,\n} from '../../schema';\nimport { setEventTarget } from '../../schema';\nimport type { AriaHasPopupPropType } from '../../schema/props/aria-has-popup';\nimport { validateAccessAndShortKey } from '../../schema/validators/access-and-short-key';\nimport { createCtaRef } from '../../utils/element-interaction';\nimport { dispatchDomEvent, KolEvent } from '../../utils/events';\nimport { propagateResetEventToForm, propagateSubmitEventToForm } from '../form/controller';\n\n/**\n * Shared orchestrator implementation for every custom element that renders `ButtonFC`:\n * `kol-button`, `kol-button-link` and `kol-split-button`.\n *\n * The class carries everything that does not need a Stencil decorator — the composed\n * `TooltipBehavior`, the form-association adapter, the event handlers, one `apply*` method per\n * prop and the `ButtonFC` render call. The concrete element keeps what Stencil has to see in the\n * component class itself: `@Component`, `@Element`, `@State`, `@Method`, every `@Prop` with its\n * `@Watch` (whose body is a one-line call into the matching `apply*` method) and the lifecycle\n * methods, which delegate here (ARC42 § 9, design decision 16).\n *\n * This is not a layer between the web component and the functional component — it *is* the web\n * component's implementation, shared between the tag variants of one FC.\n */\nexport abstract class BaseButtonWebComponent extends BaseWebComponent<ButtonApi> {\n\t/** The custom element; declared with `@Element()` by the concrete class. */\n\tprotected abstract readonly host?: HTMLElement;\n\n\tprotected readonly ctaRef = createCtaRef<HTMLButtonElement>();\n\n\t// --- Composed behaviors ---\n\n\tprotected readonly tooltipBehavior = new TooltipBehavior(this.stateAccess);\n\n\tprivate formAssociation!: FormAssociationBehavior;\n\n\t/**\n\t * The raw `_value`. It is neither rendered nor normalized (see `buttonPropsConfig`), but the\n\t * click handler hands it to the consumer callback and the custom event, so the last applied\n\t * value is kept here.\n\t */\n\tprivate formValue?: StencilUnknown;\n\n\t/**\n\t * Creates the form association. Must be called from the concrete element's constructor (after\n\t * `super()`), not from this base class's constructor: Stencil registers the host element at the\n\t * start of the *component* class's constructor, so `this.host` is only populated once the base\n\t * constructor has returned.\n\t *\n\t * No name is passed, because the name is only applied in `componentWillLoad`. The button therefore\n\t * never creates a hidden form element (#11036).\n\t */\n\tprotected initFormAssociation(): void {\n\t\tthis.formAssociation = new FormAssociationBehavior(BaseWebComponent.stateLess, { host: this.host, type: 'button' });\n\t}\n\n\t// --- Lifecycle helpers (called from the concrete element's lifecycle methods) ---\n\n\t/**\n\t * Seeds the render props. Call first in `componentWillLoad`, before the prop watchers run.\n\t */\n\tprotected initButtonRenderProps(): void {\n\t\tthis.initRenderProps(buttonPropsConfig);\n\t\t// Seed `tabIndex` as unset before any watcher runs: an unset tabindex must not render as\n\t\t// `tabindex=\"0\"` — buttons are natively tabbable and the attribute would pin them into the\n\t\t// document tab order. `applyTabIndex` does the same for elements that expose `_tabIndex`,\n\t\t// but a `shadow: false` element can abort mid-initialization under SSR (the form association\n\t\t// finds no host with a shadow root, because `instanceof Element` fails in Stencil's mock DOM,\n\t\t// then throws on `attachInternals(undefined)`, and Stencil swallows the error but renders\n\t\t// anyway, #11034). Without this line the props config default `0` would survive such an abort.\n\t\tthis.unsetRenderProp('tabIndex');\n\t}\n\n\t/**\n\t * Hands the resolved label and alignment to the tooltip behavior. Call last in\n\t * `componentWillLoad`, after every prop watcher has run.\n\t */\n\tprotected initTooltipBehavior(): void {\n\t\tthis.tooltipBehavior.componentWillLoad({\n\t\t\tlabel: this.getRenderProp('label'),\n\t\t\talign: this.getRenderProp('tooltipAlign'),\n\t\t});\n\t}\n\n\t/** Call from `componentDidRender`. */\n\tprotected syncTooltipListeners(): void {\n\t\tif (this.ctaRef.el) {\n\t\t\tthis.tooltipBehavior.syncListeners(undefined, this.ctaRef.el, true);\n\t\t}\n\t}\n\n\t/** Call from `disconnectedCallback`. */\n\tprotected destroyTooltipBehavior(): void {\n\t\tthis.tooltipBehavior.destroy();\n\t}\n\n\t// --- Event handling ---\n\n\tprotected readonly handleClick = (event: MouseEvent): void => {\n\t\tevent.stopPropagation();\n\t\tthis.tooltipBehavior.hideTooltip();\n\n\t\tconst type = this.getRenderProp('type');\n\t\tif (type === 'submit') {\n\t\t\tpropagateSubmitEventToForm({ form: this.host, ref: this.ctaRef.el });\n\t\t} else if (type === 'reset') {\n\t\t\tpropagateResetEventToForm({ form: this.host, ref: this.ctaRef.el });\n\t\t} else {\n\t\t\t// TODO: Static form handling\n\t\t\tthis.formAssociation.setFormAssociatedValue(this.formValue);\n\n\t\t\tconst onClick = this.getRenderProp('on').onClick;\n\t\t\tif (typeof onClick === 'function') {\n\t\t\t\tsetEventTarget(event, this.ctaRef.el);\n\t\t\t\tonClick(event, this.formValue);\n\t\t\t}\n\t\t}\n\n\t\tif (this.host) {\n\t\t\tdispatchDomEvent(this.host, KolEvent.click, this.formValue);\n\t\t}\n\t};\n\n\tprotected readonly handleMouseDown = (event: MouseEvent): void => {\n\t\tthis.getRenderProp('on').onMouseDown?.(event);\n\t\tif (this.host) {\n\t\t\tdispatchDomEvent(this.host, KolEvent.mousedown);\n\t\t}\n\t};\n\n\tprotected readonly handleFocus = (event: FocusEvent): void => {\n\t\tthis.getRenderProp('on').onFocus?.(event);\n\t\tif (this.host) {\n\t\t\tdispatchDomEvent(this.host, KolEvent.focus);\n\t\t}\n\t};\n\n\tprotected readonly handleBlur = (event: FocusEvent): void => {\n\t\tthis.getRenderProp('on').onBlur?.(event);\n\t\tif (this.host) {\n\t\t\tdispatchDomEvent(this.host, KolEvent.blur);\n\t\t}\n\t};\n\n\t// --- Prop application (one per prop; the concrete element's watchers delegate here) ---\n\n\tprotected applyAccessKey(value?: AccessKeyPropType, shortKey?: ShortKeyPropType): void {\n\t\taccessKeyProp.apply(value, (v) => this.setRenderProp('accessKey', v));\n\t\tvalidateAccessAndShortKey(value, shortKey);\n\t}\n\n\tprotected applyAriaControls(value?: string): void {\n\t\tariaControlsProp.apply(value, (v) => this.setRenderProp('ariaControls', v));\n\t}\n\n\tprotected applyAriaDescription(value?: AriaDescriptionPropType): void {\n\t\tariaDescriptionProp.apply(value, (v) => this.setRenderProp('ariaDescription', v));\n\t}\n\n\tprotected applyAriaExpanded(value?: boolean): void {\n\t\tariaExpandedProp.apply(value, (v) => this.setRenderProp('ariaExpanded', v));\n\t}\n\n\tprotected applyAriaHasPopup(value?: AriaHasPopupPropType): void {\n\t\tariaHasPopupProp.apply(value, (v) => this.setRenderProp('ariaHasPopup', v));\n\t}\n\n\tprotected applyAriaSelected(value?: boolean): void {\n\t\tariaSelectedProp.apply(value, (v) => this.setRenderProp('ariaSelected', v));\n\t}\n\n\tprotected applyCustomClass(value?: CustomClassPropType): void {\n\t\tcustomClassProp.apply(value, (v) => this.setRenderProp('customClass', v));\n\t}\n\n\tprotected applyDisabled(value?: boolean): void {\n\t\tdisabledProp.apply(value, (v) => this.setRenderProp('disabled', v));\n\t}\n\n\tprotected applyHideLabel(value?: boolean): void {\n\t\thideLabelProp.apply(value, (v) => this.setRenderProp('hideLabel', v));\n\t}\n\n\tprotected applyIcons(value?: IconsPropType): void {\n\t\tspanIconsProp.apply(value, (v) => this.setRenderProp('icons', v));\n\t}\n\n\tprotected applyId(value?: IdPropType): void {\n\t\tidProp.apply(value, (v) => this.setRenderProp('id', v));\n\t}\n\n\tprotected applyInline(value?: InlinePropType): void {\n\t\tinlineProp.apply(value, (v) => this.setRenderProp('inline', v));\n\t}\n\n\tprotected applyLabel(value?: LabelWithExpertSlotPropType): void {\n\t\tlabelWithExpertSlotProp.apply(value, (v) => {\n\t\t\tthis.setRenderProp('label', v);\n\t\t\tthis.tooltipBehavior.watchLabel(v);\n\t\t});\n\t}\n\n\tprotected applyName(value?: string): void {\n\t\tnameProp.apply(value, (v) => this.setRenderProp('name', v));\n\t\tthis.formAssociation.watchName(value);\n\t}\n\n\tprotected applyOn(value?: ButtonCallbacksPropType<StencilUnknown>): void {\n\t\tbuttonCallbacksProp.apply(value, (v) => this.setRenderProp('on', v));\n\t}\n\n\tprotected applyRole(value?: AlternativeButtonLinkRolePropType): void {\n\t\tlinkRoleProp.apply(value, (v) => this.setRenderProp('role', v));\n\t}\n\n\tprotected applyShortKey(value?: ShortKeyPropType, accessKey?: AccessKeyPropType): void {\n\t\tshortKeyProp.apply(value, (v) => this.setRenderProp('shortKey', v));\n\t\tvalidateAccessAndShortKey(accessKey, value);\n\t}\n\n\tprotected applySyncValueBySelector(value?: SyncValueBySelectorPropType): void {\n\t\tthis.formAssociation.watchSyncValueBySelector(value);\n\t}\n\n\tprotected applyTabIndex(value?: number): void {\n\t\t// The props config seeds `tabIndex` with its default `0`, but an unset tabindex must not\n\t\t// render as `tabindex=\"0\"` — buttons are natively tabbable and the attribute would pin them\n\t\t// into the document tab order. Unsetting the prop has to restore that state, so the else\n\t\t// branch is not optional: without it a reset would keep the previous number.\n\t\tif (typeof value === 'number') {\n\t\t\ttabIndexProp.apply(value, (v) => this.setRenderProp('tabIndex', v));\n\t\t} else {\n\t\t\tthis.unsetRenderProp('tabIndex');\n\t\t}\n\t}\n\n\tprotected applyTooltipAlign(value?: TooltipAlignPropType): void {\n\t\ttooltipAlignProp.apply(value, (v) => {\n\t\t\tthis.setRenderProp('tooltipAlign', v);\n\t\t\tthis.tooltipBehavior.watchAlign(v);\n\t\t});\n\t}\n\n\tprotected applyType(value?: ButtonTypePropType): void {\n\t\tbuttonTypeProp.apply(value, (v) => this.setRenderProp('type', v));\n\t}\n\n\tprotected applyValue(value?: StencilUnknown): void {\n\t\tthis.formValue = value;\n\t\tthis.formAssociation.setFormAssociatedValue(value);\n\t}\n\n\tprotected applyVariant(value?: VariantClassNamePropType): void {\n\t\t// Resolved here rather than as a `@Prop` default: a field initializer runs in the\n\t\t// constructor, where `@Element()` is not yet populated for a `shadow: false` element under\n\t\t// SSR, so the theme-scoped feature flag would silently be ignored there. Keeping it a\n\t\t// fallback also leaves the public API unchanged. The rendered default is `normal` either way.\n\t\tvariantProp.apply(value ?? getFeatureFlag('buttonVariantDefault', this.host) ?? 'normal', (v) => this.setRenderProp('variant', v));\n\t}\n\n\t// --- Render ---\n\n\t/**\n\t * Collects the current render props and state into the prop set `ButtonFC` expects. Separate\n\t * from `renderButtonFC` because a component that embeds the button inside its own markup\n\t * (`kol-split-button`) hands the set to its own functional component instead of rendering the\n\t * button here.\n\t */\n\tprotected getButtonFCProps(): FunctionalComponentProps<ButtonApi> {\n\t\treturn {\n\t\t\taccessKey: this.getRenderProp('accessKey'),\n\t\t\tariaControls: this.getRenderProp('ariaControls'),\n\t\t\tariaDescription: this.getRenderProp('ariaDescription'),\n\t\t\tariaDescriptionId: this.getState('ariaDescriptionId'),\n\t\t\tariaExpanded: this.getRenderProp('ariaExpanded'),\n\t\t\tariaHasPopup: this.getRenderProp('ariaHasPopup'),\n\t\t\tariaSelected: this.getRenderProp('ariaSelected'),\n\t\t\tcustomClass: this.getRenderProp('customClass'),\n\t\t\tdisabled: this.getRenderProp('disabled'),\n\t\t\thandleBlur: this.handleBlur,\n\t\t\thandleClick: this.handleClick,\n\t\t\thandleFocus: this.handleFocus,\n\t\t\thandleMouseDown: this.handleMouseDown,\n\t\t\thideLabel: this.getRenderProp('hideLabel'),\n\t\t\ticons: this.getRenderProp('icons'),\n\t\t\tid: this.getRenderProp('id'),\n\t\t\tinline: this.getRenderProp('inline'),\n\t\t\tlabel: this.getRenderProp('label'),\n\t\t\tname: this.getRenderProp('name'),\n\t\t\ton: this.getRenderProp('on'),\n\t\t\trefButton: this.ctaRef,\n\t\t\trefTooltip: this.tooltipBehavior.setTooltipElementRef,\n\t\t\trole: this.getRenderProp('role'),\n\t\t\tshortKey: this.getRenderProp('shortKey'),\n\t\t\ttabIndex: this.getRenderProp('tabIndex'),\n\t\t\ttooltipAlign: this.getRenderProp('tooltipAlign'),\n\t\t\ttype: this.getRenderProp('type'),\n\t\t\tvariant: this.getRenderProp('variant'),\n\t\t};\n\t}\n\n\t/** Renders `ButtonFC` from the current render props and state. */\n\tprotected renderButtonFC(): JSX.Element {\n\t\treturn <ButtonFC {...this.getButtonFCProps()} />;\n\t}\n}\n"],"names":["getFeatureFlag"],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* KoliBri - The accessible HTML-Standard
|
|
3
|
+
*/
|
|
4
|
+
import{r as t}from"./aria-labelledby-BRToXqsQ.js";import{G as e,L as n,p as o}from"./common-BqpMtheU.js";import{h as s,F as l,f as i}from"./index-DAKQV03B.js";import{c as a,e as r,n as c,a as d,B as u,v as f}from"./base-web-component-3R1Dy3QK.js";import{c as h}from"./item-DuBSR8BS.js";import{c as b}from"./item-pool-BOxAYePG.js";import{c as p}from"./item-Dkm57tce.js";import{l as v}from"./label-with-expert-slot-CocPu9HB.js";import{v as m}from"./variant-CeijQFzL.js";import{c as y,d as g,e as k}from"./component-names-Dhbtt0mX.js";import{t as j}from"./i18n-BaCf-SDK.js";import{c as C}from"./component-sf_0WjJF.js";import{b as S}from"./bem-registry-CX5kvaqt.js";import{B as w}from"./component-DhBTawyT.js";import{B as _}from"./component-CmBM-Y1C.js";import{I as x}from"./component-DKS73hKY.js";import{L as O}from"./api-T-JuZMlj.js";import{S as $}from"./component-G9vQ1mQA.js";import{T as D}from"./component-CvhmYY4a.js";import{a as B}from"./tslib.es6-QNbPBOk5.js";import{n as F,c as L}from"./dev.utils-BGy8dbtQ.js";import{d as T,K as A}from"./events-CRHxtwup.js";import{A as I}from"./component-BjWF1SyZ.js";import{c as z}from"./element-interaction-Cy9tx3Sx.js";import{u as M,l as E,d as K,D as H}from"./scroll-lock-DRNyw9qH.js";import{h as P}from"./tooltip-open-tracking-D3tCiiGP.js";import{l as R}from"./level-Q5lBISho.js";import{d as N,w as Q}from"./width-BDh5pZvE.js";import{l as W}from"./label-c9P7yC4V.js";import{r as q,C as G}from"./component-BaD1OTyv.js";import{T as Y}from"./behavior-D1kOlK6p.js";import{C as V}from"./keyboard-DNd73LVa.js";const X=(o,s,l,i)=>{const a=t=>typeof t==="string"||typeof t==="undefined";e(o,"_ariaLabelledby",a,new Set(["string"]),i);if(!a(i)){return[]}const r=t(s,i);if(l){try{l.ariaLabelledByElements=r}catch(t){}n.debug(["WebComponent internals",l])}return r};const Z=t=>typeof t==="number"&&Number.isInteger(t)&&t>=0;const J=a("fixedCols",[0,0],(t=>r(t)),(t=>t.length===2&&t.every(Z)));const U=a("hasSettingsMenu",false,c);const tt=d();function et(t){const e=typeof t==="string"?o(t):t;if(Array.isArray(e)){return e}throw new Error("Invalid table data: expected an array of row objects.")}function nt(t){return t.every((t=>typeof t==="object"&&t!==null))}const ot=a("data",[],et,nt);const st=a("dataFoot",[],et,nt);const lt=t=>Array.isArray(t)&&t.every((t=>Array.isArray(t)));function it(t){const e=typeof t==="string"?o(t):t;if(typeof e!=="object"||e===null){throw new Error("Invalid table headers: expected an object.")}const{horizontal:n=[],vertical:s=[]}=e;if(!lt(n)||!lt(s)){throw new Error("Invalid table headers: horizontal and vertical must be arrays of header rows.")}return{horizontal:n,vertical:s}}function at({horizontal:t,vertical:e}){return[...t,...e].every((t=>t.every((t=>t.width===undefined||typeof t.width==="number"))))}const rt=a("headers",{horizontal:[],vertical:[]},it,at);const ct=a("loading",false,c);function dt(t){const e=typeof t==="string"?o(t):t;if(typeof e==="object"&&e!==null){return e}throw new Error("Invalid table selection: expected an object.")}function ut(t){return t===false||typeof t.label==="function"&&(!t.selectedKeys||Array.isArray(t.selectedKeys))}const ft=a("selection",false,dt,ut);const ht={required:[v,ot],optional:[J,U,tt,st,rt,ct,ft,m]};const bt=t=>t.flatMap((t=>t.filter((t=>typeof t.key==="string"||typeof t.render==="function"))));const pt=t=>{const e=bt(t.horizontal);if(e.length>0){return{cells:e,horizontal:true}}const n=bt(t.vertical);return{cells:n,horizontal:n.length===0}};const vt=(t,e)=>{let n=0;if(Array.isArray(t)){t.forEach((t=>{var o;n+=(o=t[e])!==null&&o!==void 0?o:1}))}return n};const mt=(t,e)=>{const n=Math.max(0,...t.map((t=>vt(t,"colSpan"))));return n===0?e.length:n};const yt=(t,e,n)=>{const o=Math.max(0,...t.map((t=>vt(t,"rowSpan"))));return o===0?e.length:o-n};const gt=t=>{var e;return(e=t===null||t===void 0?void 0:t.reduce(((t,e)=>{if("visible"in e&&e.visible===false){return t}return t+(e.colSpan||1)}),0))!==null&&e!==void 0?e:0};const kt=(t,e,n,o)=>{if(o===undefined||e){return undefined}if(o<t[0]){return"left"}if(t[1]>0&&o>=n-t[1]){return"right"}return undefined};const jt=(t,e,n,o)=>{var s,l,i,a,r,c;const d=[];for(let a=0;a<e;a++){if(kt(n,o,e,a)==="left"){d[a]=((s=d[a-1])!==null&&s!==void 0?s:0)+((i=(l=t[a-1])===null||l===void 0?void 0:l.width)!==null&&i!==void 0?i:0)}}for(let s=e-1;s>=0;s--){if(kt(n,o,e,s)==="right"){d[s]=((a=d[s+1])!==null&&a!==void 0?a:0)+((c=(r=t[s+1])===null||r===void 0?void 0:r.width)!==null&&c!==void 0?c:0)}}return d};const Ct=(t,e,n,o)=>{const s=e===undefined?undefined:t[e];if(n&&o){return`calc( var(--kol-table-selection-col-width) + ${s}px)`}return`${s}px`};const St=(t,e,n,o)=>{const s=e.horizontal?t.horizontal:t.vertical;if(s.length===0)return undefined;const l=e.cells[n];if((l===null||l===void 0?void 0:l.type)===o){return l}return undefined};const wt=({data:t,dataFoot:e,headers:n,isFoot:o,noEntriesLabel:s,primaryHeaders:l})=>{const i=mt(n.horizontal,t);const a=l.cells;let r=yt(n.vertical,t,e.length);let c=0;if(o){c=r;r+=e.length}const d=[];const u=[];const f=[];n.vertical.forEach(((t,e)=>{u[e]=0;f[e]=[]}));for(let s=c;s<r;s++){const r=[];n.vertical.forEach(((t,e)=>{let n=0;f[e].forEach((t=>n+=t));if(n<=s){const o=t[s-n+u[e]];if(typeof o==="object"){r.push(Object.assign(Object.assign({},o),{headerCell:true,data:{}}));let t=1;if(typeof o.rowSpan==="number"&&o.rowSpan>1){t=o.rowSpan}f[e].push(t);if(typeof o.colSpan==="number"&&o.colSpan>1){for(let n=1;n<o.colSpan;n++){f[e+n].push(t)}}u[e]++}}}));for(let n=0;n<i;n++){if(l.horizontal){const l=o?e[s-c]:t[s];const i=a[n];if(typeof i==="object"&&i!==null&&typeof l==="object"&&l!==null){r.push(Object.assign(Object.assign({},i),{colIndex:n,colSpan:undefined,rowSpan:undefined,data:l,label:l[i.key]}))}}else{const e=a[s];if(typeof e==="object"&&e!==null&&typeof t[n]==="object"&&t[n]!==null){r.push(Object.assign(Object.assign({},e),{colIndex:n,colSpan:undefined,rowSpan:undefined,data:t[n],label:t[n][e.key]}))}}}d.push(r)}if(t.length===0){let t=gt(n.horizontal[0]);let e=0;if(n.vertical.length>0){t-=n.vertical.length;n.vertical[0].forEach((t=>{e+=t.rowSpan||1}))}const o={colSpan:t,label:s,render:undefined,rowSpan:Math.max(e,1)};if(d.length===0){d.push([o])}else{d[0].push(o)}}return d};const _t=({horizontal:t,vertical:e})=>{const n=t.flatMap((t=>t.filter((t=>t.visible!==false&&t.width!==undefined&&t.width>0)).map((t=>t.width))));const o=e.flatMap((t=>t.filter((t=>t.width!==undefined&&t.width>0)).map((t=>t.width))));const s=[...o,...n];if(s.length===0){return"0px"}if(s.length===1){return`${s[0]}px`}return`calc(${s.map((t=>`${t}px`)).join(" + ")})`};const xt=t=>t===undefined?[]:Array.isArray(t)?t:[t];const Ot=t=>{var e;return(e=t?t.keyPropertyName:undefined)!==null&&e!==void 0?e:"id"};const $t=t=>{const e=t?xt(t.selectedKeys):[];return{disabledKeys:new Set((t?xt(t.disabledKeys):[]).map(String)),keyPropertyName:Ot(t),selectedKeys:e,selectedKeysSet:new Set(e.map(String))}};const Dt=(t,e)=>t.filter((t=>!e.disabledKeys.has(String(t[e.keyPropertyName]))));const Bt=(t,e,n)=>{const o=e.selectedKeys.filter((t=>e.disabledKeys.has(String(t))));if(n){o.push(...Dt(t,e).map((t=>t===null||t===void 0?void 0:t[e.keyPropertyName])))}return o};const Ft=S.forBlock("kol-table");const Lt=Ft("body");const Tt=Ft("cell-actions");const At=Ft("cell-states");const It=Ft("footer");const zt=Ft("head");const Mt=Ft("head-row");const Et=Ft("scroll-container");const Kt=Ft("selection-icon");const Ht=Ft("selection-input-tooltip");const Pt=Ft("sort");const Rt=Ft("sort-button");const Nt=Ft("sort-order");const Qt=Ft("table");const Wt=`${Ft("focus-element")} ${Ft("caption")}`;const qt=(t,e)=>kt(t.fixedCols,t.stickyColsDisabled,t.maxCols,e);const Gt=(t,e,n)=>({left:e==="left"?Ct(t.fixedOffsets,n,true,t.selection!==false):undefined,right:e==="right"?Ct(t.fixedOffsets,n,false,t.selection!==false):undefined});const Yt=(t,e,n)=>{var o,s;return(s=t.primaryHeaders.horizontal&&((o=e[0])===null||o===void 0?void 0:o.data)?t.rowKeys.get(e[0].data):undefined)!==null&&s!==void 0?s:String(n)};const Vt=(t,e,n)=>{var o;const{handleSelectionChange:l,selection:i,selectionModel:a}=t;if(!i)return"";const r=(o=e[0])===null||o===void 0?void 0:o.data;if(!r)return"";const c=r[a.keyPropertyName];const d=i.multiple||i.multiple===undefined;const u=String(c);const f=a.selectedKeysSet.has(u);const h=a.disabledKeys.has(u);const b=i.label(r);const p={name:"selection",checked:f,disabled:h,id:String(c),["aria-label"]:b};return s("td",{key:`tbody-${n}-selection`,class:Ft("cell",{selection:true})},s("div",{class:Ft("selection",{checked:f})},d?s("label",{class:Ft("selection-label",{disabled:h})},s(x,{class:Kt,icons:`kolicon ${f?"kolicon-check":""}`,label:""}),s("input",Object.assign({class:Ft("selection-input",{checkbox:true})},p,{type:"checkbox",onInput:t=>{const e=!f?[...a.selectedKeys,c]:a.selectedKeys.filter((t=>String(t)!==u));l(t,e)}}))):s("label",{class:Ft("selection-label")},s("input",Object.assign({class:Ft("selection-input",{radio:true})},p,{type:"radio",onInput:t=>{l(t,[c])}}))),s("div",{class:Ht},s(D,{label:b,badgeText:"",id:`${c}-label`,refFloating:()=>{}}))))};const Xt=t=>{const{data:e,handleSelectionChange:n,selection:o,selectionModel:l}=t;if(!o){return s("td",{class:Ft("cell",{header:true}),key:`thead-0`})}if(o.multiple===false){return s("th",{scope:"col",key:`thead-0-selection`,class:Ft("cell",{header:true,selection:true})},s("span",{class:"visually-hidden"},j("kol-table-selection")))}const i=l.selectedKeys.filter((t=>!l.disabledKeys.has(String(t)))).length;const a=Dt(e,l).length;const r=i===a;const c=i!==0&&!r;let d;if(i===0){d=j("kol-table-selection-all")}else if(r&&!c){d=j("kol-table-selection-none")}else{d=j("kol-table-selection-indeterminate")}return s("th",{scope:"col",key:`thead-0-selection`,class:Ft("cell",{header:true,selection:true})},s("span",{class:"visually-hidden"},j("kol-table-selection")),s("div",{class:Ft("selection",{checked:r,indeterminate:c})},s("label",{class:Ft("selection-label")},s(x,{class:Kt,icons:`kolicon ${c?"kolicon-minus":r?"kolicon-check":""}`,label:""}),s("input",{class:Ft("selection-input",{checkbox:true}),name:"selection",checked:r&&!c,indeterminate:c,"aria-label":d,type:"checkbox",onInput:t=>{n(t,Bt(e,l,!r))}})),s("div",{class:Ht},s(D,{label:d,badgeText:"",refFloating:()=>{}}))))};const Zt=({headers:t})=>{const{horizontal:e,vertical:n}=t;if(e.length===0||n.length===0){return s(l,null)}const o=n.reduce(((t,e)=>{var n,o;return t+((o=(n=e===null||e===void 0?void 0:e[0])===null||n===void 0?void 0:n.width)!==null&&o!==void 0?o:0)}),0);return s("td",{"aria-hidden":"true",colSpan:n.length,rowSpan:e.length,style:o>0?{width:`${o}px`}:undefined})};const Jt=t=>{const e=j("kol-sort");if(typeof t==="number"&&t>0){return`${e} – ${j("kol-table-sort-order").replace("{{order}}",`${t}`)}`}return e};const Ut=(t,e,n,o,l)=>{if(e.visible===false){return""}const i=(e===null||e===void 0?void 0:e.sortable)!==false;const a=typeof e.sortDirection==="string";const r=i&&a;let c="none";let d="kolicon-sort-neutral";if(r&&e.sortDirection){switch(e.sortDirection){case"ASC":d="kolicon-sort-asc";c="ascending";break;case"DESC":d="kolicon-sort-desc";c="descending";break;default:c="none"}}const u=l?"row":typeof e.colSpan==="number"&&e.colSpan>1?"colgroup":"col";const f=typeof e.sortOrder==="number"&&e.sortOrder>0?e.sortOrder:undefined;const h=e.width!==undefined?`${e.width}px`:undefined;const b=qt(t,o);const{left:p,right:v}=Gt(t,b,o);const m=e.textAlign;const y=r?e.sortDirection:undefined;return s("th",{key:`${n}-${o}-${e.label}`,class:Ft("cell",{[c]:true,"align-center":m==="center","align-justify":m==="justify","align-left":m==="left","align-right":m==="right",header:true,"sticky-left":b==="left","sticky-right":b==="right"}),scope:u,colSpan:e.colSpan,rowSpan:e.rowSpan,style:{width:h,left:p,right:v},"aria-sort":c,"data-sort":y?`sort-${y}`:undefined},y?s("span",{class:Pt},s(_,Object.assign({},t.getButtonFcProps(`sort-${l?"vertical":"horizontal"}-${n}-${o}`,{_icons:{right:d},_label:e.label,_ariaDescription:Jt(f),_on:{onClick:n=>{t.handleSort(n,{key:e.key,currentSortDirection:y})}}},{class:Rt}))),f&&s("span",{"aria-hidden":"true",class:Nt},f)):e.label)};const te=(t,e,n,o)=>s("div",{class:Tt},e.actions(n).map(((e,n)=>{const l=`action-${o}-${n}`;if(e.type==="button"){return s("span",{key:l},s(_,Object.assign({},t.getButtonFcProps(l,e))))}else if(e.type==="link"){return s("span",{key:l},s(O,Object.assign({},t.getLinkFcProps(l,e))))}return null})));const ee=(t,e,n)=>{const o=t.key;if(!o){return""}const l=e[o];if(!l){return""}return s("div",{class:At},l.map(((t,e)=>{if(t.type==="badge"){return s(y,Object.assign({key:`state-${n}-${e}`},t))}return null})))};const ne=(t,e,n,o,l)=>{if(e.visible===false){return""}let i=`${n}-${o}-${e.label}`;if(e.data){const s=t.rowKeys.get(e.data);i=s?`${s}-${t.primaryHeaders.horizontal?o:n}`:i}if(e.headerCell){return Ut(t,e,n,o,l)}const a=typeof e.render!=="function"&&e.label===t.translateNoEntries;const r=St(t.headers,t.primaryHeaders,o,"action");const c=Boolean(r&&e.data);const d=St(t.headers,t.primaryHeaders,o,"state");const u=Boolean(d&&e.data);const f=qt(t,o);const{left:h,right:b}=Gt(t,f,e.colIndex);const p=typeof e.render==="function";const v=e.textAlign;return s("td",{key:`cell-${i}-${t.settingsChangedCounter}`,class:Ft("cell",{actions:c,"align-center":v==="center","align-justify":v==="justify","align-left":v==="left","align-right":v==="right",body:true,states:u,"sticky-left":f==="left","sticky-right":f==="right"}),"aria-atomic":a?"false":undefined,"aria-live":a?"polite":undefined,"aria-relevant":a?"text":undefined,colSpan:e.colSpan,rowSpan:e.rowSpan,style:{textAlign:v,left:h,right:b},ref:p?n=>t.handleRenderCell(e,n):undefined},c&&r&&e.data?te(t,r,e.data,i):u&&d&&e.data?ee(d,e.data,i):!p?e.label:"")};const oe=(t,e,n,o,l=false)=>s("tr",{class:Ft("row",{body:!l,footer:l}),key:`row-${Yt(t,e,n)}`},Vt(t,e,n),e.map(((e,s)=>ne(t,e,n,s,o))));const se=(t,e,n)=>{const o=t.headers.vertical.length+gt(n===null||n===void 0?void 0:n[0])+(t.selection?1:0);return s("tr",{"aria-hidden":"true",class:Ft("spacer",{[e]:true})},s("td",{class:Ft("spacer-line",{[e]:true}),colSpan:o}))};const le=t=>{const{dataFoot:e,headers:n,primaryHeaders:o,translateNoEntries:l}=t;if(e.length===0){return null}const i=wt({data:e,dataFoot:e,headers:n,isFoot:true,noEntriesLabel:l,primaryHeaders:o});const a=mt(n.horizontal,e);const r=Object.assign(Object.assign({},t),{fixedOffsets:jt(o.cells,a,t.fixedCols,t.stickyColsDisabled),maxCols:a});return s("tfoot",{class:It},[se(t,"foot",i),i.map(((t,e)=>oe(r,t,e,true,true)))])};const ie=t=>{const{data:e,dataFoot:n,externalLabelElements:o,fixedCols:l,hasScrollbar:i,hasSettingsMenu:a,headers:r,label:c,loading:d,refScrollContainer:u,refTable:f,selection:h,stickyColsDisabled:b,variant:p}=t;const v=j("kol-no-entries");const m=pt(r);const y=mt(r.horizontal,e);const g=Object.assign(Object.assign({},t),{fixedOffsets:jt(m.cells,y,l,b),maxCols:y,primaryHeaders:m,selectionModel:$t(h),translateNoEntries:v});const k=wt({data:e,dataFoot:n,headers:r,isFoot:false,noEntriesLabel:v,primaryHeaders:m});const S=o.length===0;return s(w,{block:"kol-table",class:C(p,"table")},a&&t.renderSettings(r.horizontal),s("div",{ref:u,class:Et,tabindex:i?S?"-1":"0":undefined},s("table",{ref:f,"aria-labelledby":S?"caption":undefined,class:Qt,style:{minWidth:_t(r)}},S&&s("caption",{class:Wt,id:"caption",tabindex:i?"0":undefined},c),s("thead",{class:zt},[r.horizontal.map(((t,e)=>s("tr",{class:Mt,key:`thead-${e}`},h&&Xt(g),e===0&&Zt(g),Array.isArray(t)&&t.map(((t,n)=>Ut(g,t,e,n,false)))))),se(g,"head",r.horizontal)]),s("tbody",{class:Lt},s("div",{class:Ft("loader",{shown:d})},s($,{label:(d?j("kol-table-data-loading"):j("kol-table-data-loaded")).replace("{{caption}}",c),show:d,variant:"cycle"})),k.map(((t,e)=>oe(g,t,e,true)))),le(g))))};const ae=({dialog:t,card:e},n)=>s(H,Object.assign({},t),e?s(G,Object.assign({},e),n):n);const re=()=>{};const ce=(t,e,n)=>{const o=z();const s=z();const l=new Y(u.stateLess);const i=F();const a=L("dialog-heading");const r={};let c;let d=true;let h={};const b=t=>{const e=n();return e?T(e,t):true};const p=()=>{var t,e;(e=(t=o.el)===null||t===void 0?void 0:t.close)===null||e===void 0?void 0:e.call(t)};const v=t=>{var e;P(t);if(t.defaultPrevented)return;(e=h.onCancel)===null||e===void 0?void 0:e.call(h,t);if(t.defaultPrevented)return;if(!b(A.cancel)){t.preventDefault()}};const m=t=>{var e;if(t.target!==o.el){return}M(r);(e=h.onClose)===null||e===void 0?void 0:e.call(h);b(A.close)};const y=()=>{l.hideTooltip();p();b(A.close)};return{getFcProps:e=>{var n,r,u;let b="";let p=0;let g="blank";let k="100%";W.apply(e.label,(t=>{b=t}));R.apply((n=e.level)!==null&&n!==void 0?n:0,(t=>{p=t}));N.apply(e.on,(t=>{h=t}));f.apply((r=e.variant)!==null&&r!==void 0?r:"blank",(t=>{g=t}));Q.apply((u=e.width)!==null&&u!==void 0?u:"100%",(t=>{k=t}));const j=g==="card";if(j&&!c){c=q(t());l.componentWillLoad({label:c.label,align:c.tooltipAlign})}return{dialog:{blockClass:K(g),handleCancel:v,handleClose:m,label:b,labelledBy:j?a:undefined,modal:d,refDialog:o,width:k},card:j&&c?{ariaDescriptionId:i,closeButtonProps:c,handleBlur:re,handleClose:y,handleFocus:re,hasCloser:true,headingId:a,href:"",label:b,level:p,on:{},refCloseButton:s,refCta:re,refTooltip:l.setTooltipElementRef,target:""}:undefined}},show:t=>{var n,s;const l=o.el;if(l===null||l===void 0?void 0:l.open){return}if(d!==t){d=t;e()}if(t){(n=l===null||l===void 0?void 0:l.showModal)===null||n===void 0?void 0:n.call(l);if(l){E(r)}}else{(s=l===null||l===void 0?void 0:l.show)===null||s===void 0?void 0:s.call(l)}},close:p,syncListeners:()=>{if(s.el){l.syncListeners(undefined,s.el,true)}},destroy:()=>{p();M(r);l.destroy()}}};const de=S.forBlock("kol-table")("settings");const ue=t=>Number.isFinite(t)&&t!==undefined&&t>0?t:undefined;const fe=()=>{};const he=(t,e)=>{const n=j("kol-table-settings");const o=j("kol-table-settings-cancel");const l=j("kol-table-settings-apply");const i=j("kol-table-settings-error-all-invisible");let a;let r=false;let c=false;const d=()=>{r=true;e()};const u=b((()=>h(t)),(t=>t.syncListeners()),(t=>t.destroy()));const f=ce(t,d,(()=>a));const p=L("alert-heading");const v=F();let m;let y=[];let C=[];let S=null;const w=t=>{y=t.map((t=>[...t]));C=t.map((t=>t.map((t=>Object.assign({},t)))))};const x=()=>{var t;return(t=C[C.length-1])!==null&&t!==void 0?t:[]};const O=t=>{C=C.map(((e,n,o)=>n===o.length-1?t:e));d()};const $=(t,e)=>{const n=[...x()];const o=n.findIndex((e=>e.key===t));if(o===-1)return;let s;if(e==="up"){if(o===0)return;s=o-1}else{if(o===n.length-1)return;s=o+1}const[l]=n.splice(o,1);n.splice(s,0,l);O(n)};const D=(t,e)=>{const n=x().map((n=>n.key===t&&n.hidable!==false?Object.assign(Object.assign({},n),{visible:Boolean(e)}):n));O(n)};const z=(t,e)=>{const n=ue(Number(e));const o=x().map((e=>e.key===t&&e.resizable!==false?Object.assign(Object.assign({},e),{width:n}):e));O(o)};const M=()=>{C=y.map((t=>[...t]));S=null;d();f.close()};const E=t=>{t.preventDefault();const e=x();const n=e.some((t=>t.visible!==false));if(!n){S=i;d();return}else if(a){S=null;y=C.map((t=>t.map((t=>Object.assign({},t)))));d();const t=C.map((t=>t.map((t=>{const e=t,{hidable:n,resizable:o,sortable:s,visible:l,width:i}=e,a=B(e,["hidable","resizable","sortable","visible","width"]);const r=Object.assign({},a);if(l!==undefined)r.visible=l;if(n!==undefined)r.hidable=n;if(s!==undefined)r.sortable=s;if(o!==undefined)r.resizable=o;if(i!==undefined&&i!==null)r.width=i;return r}))));T(a,A.changeHeaderCells,t);f.close()}};const K=t=>{if(t){a=t}};const H=(t,e,n)=>s("div",{key:t.key,class:"kol-table-settings__column"},s(k,{_checked:t.visible!==false,_label:t.hidable?j("kol-table-settings-column-hidable",{placeholders:{column:t.label}}):j("kol-table-settings-column-not-hidable",{placeholders:{column:t.label}}),_value:true,_hideLabel:true,_disabled:t.hidable===false,_on:{onInput:(e,n)=>{var o;return D((o=t.key)!==null&&o!==void 0?o:"",n)}}}),s("span",{class:"kol-table-settings__column-label"},t.label),s(g,{_hideLabel:true,_value:ue(t.width),_label:j("kol-table-settings-column-width",{placeholders:{column:t.label}}),_min:1,_disabled:t.resizable===false,_on:{onInput:(e,n)=>{var o;return z((o=t.key)!==null&&o!==void 0?o:"",n)}}}),s(_,Object.assign({},u.get(`move-up-${t.key}`).getFcProps({_icons:"kolicon-chevron-up",_label:t.sortable===false||e===0?j("kol-table-settings-not-move",{placeholders:{column:t.label}}):j("kol-table-settings-move-up",{placeholders:{column:t.label}}),_hideLabel:true,_variant:"ghost",_on:{onClick:()=>{var e;return $((e=t.key)!==null&&e!==void 0?e:"","up")}},_disabled:t.sortable===false||e===0},{"data-testid":"table-settings-move-up"}))),s(_,Object.assign({},u.get(`move-down-${t.key}`).getFcProps({_icons:"kolicon-chevron-down",_label:t.sortable===false||e===n.length-1?j("kol-table-settings-not-move",{placeholders:{column:t.label}}):j("kol-table-settings-move-down",{placeholders:{column:t.label}}),_hideLabel:true,_variant:"ghost",_on:{onClick:()=>{var e;return $((e=t.key)!==null&&e!==void 0?e:"","down")}},_disabled:t.sortable===false||e===n.length-1},{"data-testid":"table-settings-move-down"}))));return{beginRender:()=>{u.beginRender();c=r;r=false},render:t=>{if(!c&&t!==m){m=t;w(t)}const e=x();return s("div",{class:de,ref:K},s("div",{class:"kol-table-settings"},s(_,Object.assign({},u.get("toggle").getFcProps({_icons:"kolicon-settings",_label:n,_hideLabel:true,_on:{onClick:()=>f.show(true)}})))),s(ae,Object.assign({},f.getFcProps({label:n,variant:"card",width:"fit-content"})),s("div",{class:"kol-table-settings__content"},S&&s("div",{class:"kol-table-settings__error-message"},s(I,{alert:false,closerAriaDescriptionId:v,handleCloserClick:fe,hasCloser:false,headingId:p,label:S,level:0,refCloserButton:fe,refCloserTooltip:fe,type:"error",variant:"msg"})),s("form",{onSubmit:E},s("div",{class:"kol-table-settings__columns"},e.map(((t,n)=>H(t,n,e)))),s("div",{class:"kol-table-settings__actions"},s(_,Object.assign({},u.get("cancel").getFcProps({_label:o,_variant:"secondary",_on:{onClick:()=>M()}},{"data-testid":"table-settings-cancel"}))),s(_,Object.assign({},u.get("apply").getFcProps({_label:l,_variant:"primary",_type:"submit"},{"data-testid":"table-settings-apply"}))))))))},sync:()=>{u.endRender();f.syncListeners()},destroy:()=>{u.destroy();f.destroy()}}};const be=150;const pe=t=>{if(t.horizontal.length===0){return t}return Object.assign(Object.assign({},t),{horizontal:t.horizontal.map((t=>t.map((t=>Object.assign(Object.assign({},t),{visible:typeof t.visible==="boolean"?t.visible:true,hidable:typeof t.hidable==="boolean"?t.hidable:true})))))})};const ve=(t,e)=>new Map(t.map((t=>{var n;return[t,(n=e.get(t))!==null&&n!==void 0?n:F()]})));class me extends u{constructor(){super(...arguments);this.cellRenderTimeouts=new Map;this.buttonItems=b((()=>h((()=>this.host))),(t=>t.syncListeners()),(t=>t.destroy()));this.settings=he((()=>this.host),(()=>i(this)));this.linkItems=b((()=>p((()=>i(this)))),(t=>t.syncListeners()),(t=>t.destroy()));this.handleResize=()=>{this.updateScrollbarState();clearTimeout(this.resizeDebounceTimeout);this.resizeDebounceTimeout=setTimeout((()=>{this.updateStickyColsDisabled()}),be)};this.handleSelectionChange=(t,e)=>{this.emitSelectionChange(t,e)};this.handleSort=(t,e)=>{this.emitSort(t,e)};this.handleRenderCell=(t,e)=>{if(!e){return}clearTimeout(this.cellRenderTimeouts.get(e));this.cellRenderTimeouts.set(e,setTimeout((()=>{if(typeof t.render==="function"){const n=t.render(e,t,t.data,this.getRenderProp("data"));if(typeof n==="string"){e.textContent=n}}})))};this.refScrollContainer=t=>{this.scrollContainerElement=t};this.refTable=t=>{this.tableElement=t;this.syncTableLabel(this.getState("externalLabelElements"))};this.getButtonFcProps=(t,e,n)=>this.buttonItems.get(t).getFcProps(e,n);this.renderSettings=t=>this.settings.render(t);this.getLinkFcProps=(t,e)=>this.linkItems.get(t).getFcProps(e)}initTableRenderProps(){this.initRenderProps(ht)}observeScrollContainer(){if(this.scrollContainerElement&&ResizeObserver){this.resizeObserver=new ResizeObserver(this.handleResize);this.resizeObserver.observe(this.scrollContainerElement)}this.updateStickyColsDisabled()}teardownTable(){var t;(t=this.resizeObserver)===null||t===void 0?void 0:t.disconnect();clearTimeout(this.resizeDebounceTimeout);this.buttonItems.destroy();this.linkItems.destroy();this.settings.destroy()}syncTableItems(){this.buttonItems.endRender();this.linkItems.endRender();this.settings.sync()}applyData(t){ot.apply(t,(t=>{this.setRenderProp("data",t);this.setState("rowKeys",ve(t,this.getState("rowKeys")))}))}applyDataFoot(t){st.apply(t,(t=>this.setRenderProp("dataFoot",t)))}applyFixedCols(t){J.apply(t,(t=>this.setRenderProp("fixedCols",t)));this.updateStickyColsDisabled()}applyHasSettingsMenu(t){U.apply(t,(t=>this.setRenderProp("hasSettingsMenu",t)))}applyHeaders(t){rt.apply(t,(t=>this.setRenderProp("headers",pe(t))))}applyLabel(t){v.apply(t,(t=>this.setRenderProp("label",t)))}applyLoading(t){ct.apply(t,(t=>this.setRenderProp("loading",t)))}applyOn(t){tt.apply(t,(t=>this.setRenderProp("on",t)))}applySelection(t){ft.apply(t,(t=>this.setRenderProp("selection",t)));this.updateStickyColsDisabled()}applyVariant(t){m.apply(t,(t=>this.setRenderProp("variant",t)))}syncTableLabel(t){if(!this.tableElement)return;if("ariaLabelledByElements"in this.tableElement){if(t===null||t===void 0?void 0:t.length){this.tableElement.ariaLabelledByElements=t}n.debug([this.tableElement,!!(t===null||t===void 0?void 0:t.length),t,this.tableElement.ariaLabelledByElements])}}moveCheckboxFocus(t){var e,n,o;if(t.key!=="ArrowUp"&&t.key!=="ArrowDown"){return}const s=Array.from((n=(e=this.scrollContainerElement)===null||e===void 0?void 0:e.querySelectorAll(".kol-table__selection-input--checkbox"))!==null&&n!==void 0?n:[]);const l=(o=this.scrollContainerElement)===null||o===void 0?void 0:o.querySelector(":focus");let i=s.indexOf(l);if(i>-1){t.preventDefault();const e=t.key==="ArrowDown"?1:s.length-1;i=(i+e)%s.length;s[i].focus()}}applyChangedHeaderCells(t){const e=Object.assign(Object.assign({},this.getRenderProp("headers")),{horizontal:t.detail});this.setRenderProp("headers",e);this.setState("settingsChangedCounter",this.getState("settingsChangedCounter")+1);const n=this.getRenderProp("on")[V.onChangeHeaderCells];if(typeof n==="function"){n(t,e)}}updateScrollbarState(){if(this.scrollContainerElement){const{clientHeight:t,clientWidth:e,scrollHeight:n,scrollWidth:o}=this.scrollContainerElement;this.setState("hasScrollbar",o>e||n>t&&["auto","scroll"].includes(getComputedStyle(this.scrollContainerElement).overflowY))}}calculateFixedColsWidth(){var t,e,n,o,s,l;const[i,a]=this.getRenderProp("fixedCols");const r=this.getRenderProp("headers");const c=pt(r).cells;const d=mt(r.horizontal,this.getRenderProp("data"));let u=0;for(let n=0;n<i&&n<c.length;n++){u+=(e=(t=c[n])===null||t===void 0?void 0:t.width)!==null&&e!==void 0?e:0}for(let t=d-a;t<d&&t<c.length;t++){u+=(o=(n=c[t])===null||n===void 0?void 0:n.width)!==null&&o!==void 0?o:0}if(this.getRenderProp("selection")){const t=(s=this.scrollContainerElement)===null||s===void 0?void 0:s.querySelector(".kol-table__cell--selection");u+=(l=t===null||t===void 0?void 0:t.offsetWidth)!==null&&l!==void 0?l:0}return u}updateStickyColsDisabled(){if(!this.scrollContainerElement){this.setState("stickyColsDisabled",false);return}const t=this.calculateFixedColsWidth();this.setState("stickyColsDisabled",t>0&&t>=this.scrollContainerElement.clientWidth)}emitSelectionChange(t,e){const n=this.getRenderProp("on")[V.onSelectionChange];if(typeof n==="function"){n(t,e)}if(this.host){T(this.host,A.selectionChange,e)}}emitSort(t,e){const n=this.getRenderProp("on")[V.onSort];if(typeof n==="function"&&e.key){n(t,e)}if(this.host){T(this.host,A.sort,e)}}renderTableStatelessFC(){this.buttonItems.beginRender();this.linkItems.beginRender();this.settings.beginRender();return s(ie,{data:this.getRenderProp("data"),dataFoot:this.getRenderProp("dataFoot"),externalLabelElements:this.getState("externalLabelElements"),fixedCols:this.getRenderProp("fixedCols"),getButtonFcProps:this.getButtonFcProps,getLinkFcProps:this.getLinkFcProps,renderSettings:this.renderSettings,handleRenderCell:this.handleRenderCell,handleSelectionChange:this.handleSelectionChange,handleSort:this.handleSort,hasScrollbar:this.getState("hasScrollbar"),hasSettingsMenu:this.getRenderProp("hasSettingsMenu"),headers:this.getRenderProp("headers"),label:this.getRenderProp("label"),loading:this.getRenderProp("loading"),on:this.getRenderProp("on"),refScrollContainer:this.refScrollContainer,refTable:this.refTable,rowKeys:this.getState("rowKeys"),selection:this.getRenderProp("selection"),settingsChangedCounter:this.getState("settingsChangedCounter"),stickyColsDisabled:this.getState("stickyColsDisabled"),variant:this.getRenderProp("variant")})}}export{me as B,st as a,ot as t,X as v};
|
|
5
|
+
//# sourceMappingURL=base-Dvr4F_Pr.js.map
|