@verbb/plugin-kit-web 2.0.0
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/CHANGELOG.md +16 -0
- package/LICENSE.md +21 -0
- package/README.md +149 -0
- package/dist/a11y/active-elements.d.ts +6 -0
- package/dist/a11y/active-elements.d.ts.map +1 -0
- package/dist/a11y/dismissible-stack.d.ts +6 -0
- package/dist/a11y/dismissible-stack.d.ts.map +1 -0
- package/dist/a11y/focus.d.ts +20 -0
- package/dist/a11y/focus.d.ts.map +1 -0
- package/dist/a11y/index.d.ts +7 -0
- package/dist/a11y/index.d.ts.map +1 -0
- package/dist/a11y/offset.d.ts +9 -0
- package/dist/a11y/offset.d.ts.map +1 -0
- package/dist/a11y/scroll-lock.d.ts +23 -0
- package/dist/a11y/scroll-lock.d.ts.map +1 -0
- package/dist/base/checkbox-control.styles.d.ts +3 -0
- package/dist/base/checkbox-control.styles.d.ts.map +1 -0
- package/dist/base/component-id.d.ts +2 -0
- package/dist/base/component-id.d.ts.map +1 -0
- package/dist/base/form-control.styles.d.ts +3 -0
- package/dist/base/form-control.styles.d.ts.map +1 -0
- package/dist/base/icon.styles.d.ts +3 -0
- package/dist/base/icon.styles.d.ts.map +1 -0
- package/dist/base/markdown.styles.d.ts +3 -0
- package/dist/base/markdown.styles.d.ts.map +1 -0
- package/dist/base/pk-element.d.ts +28 -0
- package/dist/base/pk-element.d.ts.map +1 -0
- package/dist/base/pk-form-associated-element.d.ts +63 -0
- package/dist/base/pk-form-associated-element.d.ts.map +1 -0
- package/dist/base/shadow-reset.styles.d.ts +6 -0
- package/dist/base/shadow-reset.styles.d.ts.map +1 -0
- package/dist/base/styles.d.ts +9 -0
- package/dist/base/styles.d.ts.map +1 -0
- package/dist/chunks/active-elements-BwpXu8Lb.js +16 -0
- package/dist/chunks/active-elements-BwpXu8Lb.js.map +1 -0
- package/dist/chunks/animate-with-class-CsDwYnXL.js +42 -0
- package/dist/chunks/animate-with-class-CsDwYnXL.js.map +1 -0
- package/dist/chunks/autoloader-DzOTQqe6.js +177 -0
- package/dist/chunks/autoloader-DzOTQqe6.js.map +1 -0
- package/dist/chunks/button-group-item.styles-DYmBR28a.js +147 -0
- package/dist/chunks/button-group-item.styles-DYmBR28a.js.map +1 -0
- package/dist/chunks/component-registry-CpZiIDh4.js +130 -0
- package/dist/chunks/component-registry-CpZiIDh4.js.map +1 -0
- package/dist/chunks/control-aria-B2QMq4ji.js +69 -0
- package/dist/chunks/control-aria-B2QMq4ji.js.map +1 -0
- package/dist/chunks/decorate-W02hmVTt.js +149 -0
- package/dist/chunks/decorate-W02hmVTt.js.map +1 -0
- package/dist/chunks/dismissible-stack-XQUMfKO3.js +32 -0
- package/dist/chunks/dismissible-stack-XQUMfKO3.js.map +1 -0
- package/dist/chunks/field-labels-CoU9dnNq.js +14 -0
- package/dist/chunks/field-labels-CoU9dnNq.js.map +1 -0
- package/dist/chunks/focus-aa5dlv8k.js +122 -0
- package/dist/chunks/focus-aa5dlv8k.js.map +1 -0
- package/dist/chunks/form-control.styles-BQdimE5o.js +108 -0
- package/dist/chunks/form-control.styles-BQdimE5o.js.map +1 -0
- package/dist/chunks/has-slot-8BvCt_qo.js +74 -0
- package/dist/chunks/has-slot-8BvCt_qo.js.map +1 -0
- package/dist/chunks/icon.styles-BLTWLqYp.js +21 -0
- package/dist/chunks/icon.styles-BLTWLqYp.js.map +1 -0
- package/dist/chunks/icons-BR8JcQj2.js +52 -0
- package/dist/chunks/icons-BR8JcQj2.js.map +1 -0
- package/dist/chunks/mirror-validator-DCjNYrrx.js +32 -0
- package/dist/chunks/mirror-validator-DCjNYrrx.js.map +1 -0
- package/dist/chunks/overlay-lifecycle-D0pkTQyI.js +44 -0
- package/dist/chunks/overlay-lifecycle-D0pkTQyI.js.map +1 -0
- package/dist/chunks/pk-button-Cilu5WAT.js +840 -0
- package/dist/chunks/pk-button-Cilu5WAT.js.map +1 -0
- package/dist/chunks/pk-button-group-D9hqSfb_.js +422 -0
- package/dist/chunks/pk-button-group-D9hqSfb_.js.map +1 -0
- package/dist/chunks/pk-button-group-separator-DG0CYaqc.js +61 -0
- package/dist/chunks/pk-button-group-separator-DG0CYaqc.js.map +1 -0
- package/dist/chunks/pk-button-group-text-C5z4P7ur.js +49 -0
- package/dist/chunks/pk-button-group-text-C5z4P7ur.js.map +1 -0
- package/dist/chunks/pk-calendar-CcV-La-9.js +1410 -0
- package/dist/chunks/pk-calendar-CcV-La-9.js.map +1 -0
- package/dist/chunks/pk-checkbox-Bavq3-9C.js +360 -0
- package/dist/chunks/pk-checkbox-Bavq3-9C.js.map +1 -0
- package/dist/chunks/pk-checkbox-select-ZEJ6WIQn.js +221 -0
- package/dist/chunks/pk-checkbox-select-ZEJ6WIQn.js.map +1 -0
- package/dist/chunks/pk-clear--mPWZP7H.js +15 -0
- package/dist/chunks/pk-clear--mPWZP7H.js.map +1 -0
- package/dist/chunks/pk-code-editor-DSG6AwLV.js +213 -0
- package/dist/chunks/pk-code-editor-DSG6AwLV.js.map +1 -0
- package/dist/chunks/pk-color-input-D4L0DE5S.js +398 -0
- package/dist/chunks/pk-color-input-D4L0DE5S.js.map +1 -0
- package/dist/chunks/pk-combobox-Dd1ik0Ko.js +2015 -0
- package/dist/chunks/pk-combobox-Dd1ik0Ko.js.map +1 -0
- package/dist/chunks/pk-copy-button-DPh5TOF9.js +139 -0
- package/dist/chunks/pk-copy-button-DPh5TOF9.js.map +1 -0
- package/dist/chunks/pk-date-picker-CkwU4DzD.js +717 -0
- package/dist/chunks/pk-date-picker-CkwU4DzD.js.map +1 -0
- package/dist/chunks/pk-dialog-DZZd1Tzb.js +636 -0
- package/dist/chunks/pk-dialog-DZZd1Tzb.js.map +1 -0
- package/dist/chunks/pk-dropdown-item-BFyjtsL5.js +547 -0
- package/dist/chunks/pk-dropdown-item-BFyjtsL5.js.map +1 -0
- package/dist/chunks/pk-dropdown-label-DfACId-K.js +48 -0
- package/dist/chunks/pk-dropdown-label-DfACId-K.js.map +1 -0
- package/dist/chunks/pk-dropdown-menu-DWlxkDIs.js +735 -0
- package/dist/chunks/pk-dropdown-menu-DWlxkDIs.js.map +1 -0
- package/dist/chunks/pk-editable-table-pBkD6izs.js +1528 -0
- package/dist/chunks/pk-editable-table-pBkD6izs.js.map +1 -0
- package/dist/chunks/pk-field-Buy_AtYF.js +485 -0
- package/dist/chunks/pk-field-Buy_AtYF.js.map +1 -0
- package/dist/chunks/pk-form-associated-element-DmZKgNPL.js +260 -0
- package/dist/chunks/pk-form-associated-element-DmZKgNPL.js.map +1 -0
- package/dist/chunks/pk-input-group-CGHQKrt8.js +238 -0
- package/dist/chunks/pk-input-group-CGHQKrt8.js.map +1 -0
- package/dist/chunks/pk-input-group-addon-DXbNbsfY.js +101 -0
- package/dist/chunks/pk-input-group-addon-DXbNbsfY.js.map +1 -0
- package/dist/chunks/pk-input-group-button-XOfVLqGO.js +55 -0
- package/dist/chunks/pk-input-group-button-XOfVLqGO.js.map +1 -0
- package/dist/chunks/pk-input-group-input-CSmR5vdY.js +136 -0
- package/dist/chunks/pk-input-group-input-CSmR5vdY.js.map +1 -0
- package/dist/chunks/pk-input-group-text-C6ekhtff.js +40 -0
- package/dist/chunks/pk-input-group-text-C6ekhtff.js.map +1 -0
- package/dist/chunks/pk-input-group-textarea-DALr3pdU.js +113 -0
- package/dist/chunks/pk-input-group-textarea-DALr3pdU.js.map +1 -0
- package/dist/chunks/pk-input-naIRPWGC.js +723 -0
- package/dist/chunks/pk-input-naIRPWGC.js.map +1 -0
- package/dist/chunks/pk-lightswitch-B-rLflNq.js +432 -0
- package/dist/chunks/pk-lightswitch-B-rLflNq.js.map +1 -0
- package/dist/chunks/pk-option-C3Zqmu3z.js +312 -0
- package/dist/chunks/pk-option-C3Zqmu3z.js.map +1 -0
- package/dist/chunks/pk-option-group-CbI56A3T.js +72 -0
- package/dist/chunks/pk-option-group-CbI56A3T.js.map +1 -0
- package/dist/chunks/pk-popover-XZZdJ4WI.js +377 -0
- package/dist/chunks/pk-popover-XZZdJ4WI.js.map +1 -0
- package/dist/chunks/pk-popup-CgiXok-U.js +538 -0
- package/dist/chunks/pk-popup-CgiXok-U.js.map +1 -0
- package/dist/chunks/pk-radio-Bg02ckzC.js +233 -0
- package/dist/chunks/pk-radio-Bg02ckzC.js.map +1 -0
- package/dist/chunks/pk-radio-group-B5rps9G4.js +253 -0
- package/dist/chunks/pk-radio-group-B5rps9G4.js.map +1 -0
- package/dist/chunks/pk-scroll-area-B0V4Dr2j.js +402 -0
- package/dist/chunks/pk-scroll-area-B0V4Dr2j.js.map +1 -0
- package/dist/chunks/pk-select-B17rV6BR.js +1129 -0
- package/dist/chunks/pk-select-B17rV6BR.js.map +1 -0
- package/dist/chunks/pk-separator-CLb9n0FK.js +89 -0
- package/dist/chunks/pk-separator-CLb9n0FK.js.map +1 -0
- package/dist/chunks/pk-spinner-Blxd3SIH.js +148 -0
- package/dist/chunks/pk-spinner-Blxd3SIH.js.map +1 -0
- package/dist/chunks/pk-status-7_5dEuw-.js +92 -0
- package/dist/chunks/pk-status-7_5dEuw-.js.map +1 -0
- package/dist/chunks/pk-tab-CzV7pOdp.js +259 -0
- package/dist/chunks/pk-tab-CzV7pOdp.js.map +1 -0
- package/dist/chunks/pk-tab-heading-BWAB85ua.js +50 -0
- package/dist/chunks/pk-tab-heading-BWAB85ua.js.map +1 -0
- package/dist/chunks/pk-tab-panel-Q3Pqyq-f.js +86 -0
- package/dist/chunks/pk-tab-panel-Q3Pqyq-f.js.map +1 -0
- package/dist/chunks/pk-tabs-Cip4nbb7.js +622 -0
- package/dist/chunks/pk-tabs-Cip4nbb7.js.map +1 -0
- package/dist/chunks/pk-textarea-BEapC8Rk.js +342 -0
- package/dist/chunks/pk-textarea-BEapC8Rk.js.map +1 -0
- package/dist/chunks/pk-time-picker-DbW_hMs2.js +228 -0
- package/dist/chunks/pk-time-picker-DbW_hMs2.js.map +1 -0
- package/dist/chunks/pk-tiptap-content-DAtNbJYC.js +76 -0
- package/dist/chunks/pk-tiptap-content-DAtNbJYC.js.map +1 -0
- package/dist/chunks/pk-tiptap-editor-umIuEaXh.js +1084 -0
- package/dist/chunks/pk-tiptap-editor-umIuEaXh.js.map +1 -0
- package/dist/chunks/pk-tiptap-input-CXcYXbRa.js +250 -0
- package/dist/chunks/pk-tiptap-input-CXcYXbRa.js.map +1 -0
- package/dist/chunks/pk-toggle-5-GKVLye.js +256 -0
- package/dist/chunks/pk-toggle-5-GKVLye.js.map +1 -0
- package/dist/chunks/pk-toggle-group-CWDwYlgR.js +175 -0
- package/dist/chunks/pk-toggle-group-CWDwYlgR.js.map +1 -0
- package/dist/chunks/pk-tooltip-fcUbVGli.js +469 -0
- package/dist/chunks/pk-tooltip-fcUbVGli.js.map +1 -0
- package/dist/chunks/popup-content-animation.styles-Dc6d9quJ.js +117 -0
- package/dist/chunks/popup-content-animation.styles-Dc6d9quJ.js.map +1 -0
- package/dist/chunks/popup-placement-animation-WlEXnS85.js +60 -0
- package/dist/chunks/popup-placement-animation-WlEXnS85.js.map +1 -0
- package/dist/chunks/popup-pointer-C8lypj8V.js +21 -0
- package/dist/chunks/popup-pointer-C8lypj8V.js.map +1 -0
- package/dist/chunks/register-components-DNw6EYNo.js +15 -0
- package/dist/chunks/register-components-DNw6EYNo.js.map +1 -0
- package/dist/chunks/render-Dvc3MHQR.js +16 -0
- package/dist/chunks/render-Dvc3MHQR.js.map +1 -0
- package/dist/chunks/required-validator-CEg8dvjS.js +29 -0
- package/dist/chunks/required-validator-CEg8dvjS.js.map +1 -0
- package/dist/chunks/scroll-lock-B4o9vdzJ.js +193 -0
- package/dist/chunks/scroll-lock-B4o9vdzJ.js.map +1 -0
- package/dist/chunks/spinner-utils-CDfHypTv.js +15 -0
- package/dist/chunks/spinner-utils-CDfHypTv.js.map +1 -0
- package/dist/chunks/supports-popover-CUBsbHpS.js +7 -0
- package/dist/chunks/supports-popover-CUBsbHpS.js.map +1 -0
- package/dist/chunks/sync-listbox-separators-B1-V0oJi.js +149 -0
- package/dist/chunks/sync-listbox-separators-B1-V0oJi.js.map +1 -0
- package/dist/chunks/tiptap.styles-BytOpP0H.js +463 -0
- package/dist/chunks/tiptap.styles-BytOpP0H.js.map +1 -0
- package/dist/component-registry.d.ts +28 -0
- package/dist/component-registry.d.ts.map +1 -0
- package/dist/components/button/index.d.ts +2 -0
- package/dist/components/button/index.d.ts.map +1 -0
- package/dist/components/button/pk-button.d.ts +91 -0
- package/dist/components/button/pk-button.d.ts.map +1 -0
- package/dist/components/button/pk-button.js +2 -0
- package/dist/components/button/pk-button.styles.d.ts +2 -0
- package/dist/components/button/pk-button.styles.d.ts.map +1 -0
- package/dist/components/button-group/button-group-item.styles.d.ts +13 -0
- package/dist/components/button-group/button-group-item.styles.d.ts.map +1 -0
- package/dist/components/button-group/index.d.ts +4 -0
- package/dist/components/button-group/index.d.ts.map +1 -0
- package/dist/components/button-group/pk-button-group-separator.d.ts +18 -0
- package/dist/components/button-group/pk-button-group-separator.d.ts.map +1 -0
- package/dist/components/button-group/pk-button-group-separator.js +2 -0
- package/dist/components/button-group/pk-button-group-separator.styles.d.ts +2 -0
- package/dist/components/button-group/pk-button-group-separator.styles.d.ts.map +1 -0
- package/dist/components/button-group/pk-button-group-text.d.ts +18 -0
- package/dist/components/button-group/pk-button-group-text.d.ts.map +1 -0
- package/dist/components/button-group/pk-button-group-text.js +2 -0
- package/dist/components/button-group/pk-button-group-text.styles.d.ts +2 -0
- package/dist/components/button-group/pk-button-group-text.styles.d.ts.map +1 -0
- package/dist/components/button-group/pk-button-group.d.ts +40 -0
- package/dist/components/button-group/pk-button-group.d.ts.map +1 -0
- package/dist/components/button-group/pk-button-group.js +2 -0
- package/dist/components/button-group/pk-button-group.styles.d.ts +2 -0
- package/dist/components/button-group/pk-button-group.styles.d.ts.map +1 -0
- package/dist/components/button-group.d.ts +2 -0
- package/dist/components/button-group.js +4 -0
- package/dist/components/button.d.ts +2 -0
- package/dist/components/button.js +2 -0
- package/dist/components/calendar/index.d.ts +3 -0
- package/dist/components/calendar/index.d.ts.map +1 -0
- package/dist/components/calendar/pk-calendar.d.ts +117 -0
- package/dist/components/calendar/pk-calendar.d.ts.map +1 -0
- package/dist/components/calendar/pk-calendar.js +2 -0
- package/dist/components/calendar/pk-calendar.styles.d.ts +2 -0
- package/dist/components/calendar/pk-calendar.styles.d.ts.map +1 -0
- package/dist/components/calendar.d.ts +2 -0
- package/dist/components/calendar.js +2 -0
- package/dist/components/checkbox/index.d.ts +2 -0
- package/dist/components/checkbox/index.d.ts.map +1 -0
- package/dist/components/checkbox/pk-checkbox.d.ts +50 -0
- package/dist/components/checkbox/pk-checkbox.d.ts.map +1 -0
- package/dist/components/checkbox/pk-checkbox.js +2 -0
- package/dist/components/checkbox/pk-checkbox.styles.d.ts +2 -0
- package/dist/components/checkbox/pk-checkbox.styles.d.ts.map +1 -0
- package/dist/components/checkbox-select/index.d.ts +2 -0
- package/dist/components/checkbox-select/index.d.ts.map +1 -0
- package/dist/components/checkbox-select/pk-checkbox-select.d.ts +48 -0
- package/dist/components/checkbox-select/pk-checkbox-select.d.ts.map +1 -0
- package/dist/components/checkbox-select/pk-checkbox-select.js +2 -0
- package/dist/components/checkbox-select/pk-checkbox-select.styles.d.ts +2 -0
- package/dist/components/checkbox-select/pk-checkbox-select.styles.d.ts.map +1 -0
- package/dist/components/checkbox-select.d.ts +2 -0
- package/dist/components/checkbox-select.js +2 -0
- package/dist/components/checkbox.d.ts +2 -0
- package/dist/components/checkbox.js +2 -0
- package/dist/components/code-editor/index.d.ts +2 -0
- package/dist/components/code-editor/index.d.ts.map +1 -0
- package/dist/components/code-editor/pk-code-editor.d.ts +40 -0
- package/dist/components/code-editor/pk-code-editor.d.ts.map +1 -0
- package/dist/components/code-editor/pk-code-editor.js +2 -0
- package/dist/components/code-editor/pk-code-editor.styles.d.ts +2 -0
- package/dist/components/code-editor/pk-code-editor.styles.d.ts.map +1 -0
- package/dist/components/code-editor.d.ts +2 -0
- package/dist/components/code-editor.js +2 -0
- package/dist/components/color-input/index.d.ts +2 -0
- package/dist/components/color-input/index.d.ts.map +1 -0
- package/dist/components/color-input/pk-color-input.d.ts +41 -0
- package/dist/components/color-input/pk-color-input.d.ts.map +1 -0
- package/dist/components/color-input/pk-color-input.js +2 -0
- package/dist/components/color-input/pk-color-input.styles.d.ts +7 -0
- package/dist/components/color-input/pk-color-input.styles.d.ts.map +1 -0
- package/dist/components/color-input.d.ts +2 -0
- package/dist/components/color-input.js +2 -0
- package/dist/components/combobox/index.d.ts +2 -0
- package/dist/components/combobox/index.d.ts.map +1 -0
- package/dist/components/combobox/pk-combobox.d.ts +219 -0
- package/dist/components/combobox/pk-combobox.d.ts.map +1 -0
- package/dist/components/combobox/pk-combobox.js +2 -0
- package/dist/components/combobox/pk-combobox.styles.d.ts +2 -0
- package/dist/components/combobox/pk-combobox.styles.d.ts.map +1 -0
- package/dist/components/combobox.d.ts +2 -0
- package/dist/components/combobox.js +2 -0
- package/dist/components/copy-button/index.d.ts +2 -0
- package/dist/components/copy-button/index.d.ts.map +1 -0
- package/dist/components/copy-button/pk-copy-button.d.ts +37 -0
- package/dist/components/copy-button/pk-copy-button.d.ts.map +1 -0
- package/dist/components/copy-button/pk-copy-button.js +2 -0
- package/dist/components/copy-button/pk-copy-button.styles.d.ts +2 -0
- package/dist/components/copy-button/pk-copy-button.styles.d.ts.map +1 -0
- package/dist/components/copy-button.d.ts +2 -0
- package/dist/components/copy-button.js +2 -0
- package/dist/components/date-picker/index.d.ts +3 -0
- package/dist/components/date-picker/index.d.ts.map +1 -0
- package/dist/components/date-picker/pk-date-picker.d.ts +107 -0
- package/dist/components/date-picker/pk-date-picker.d.ts.map +1 -0
- package/dist/components/date-picker/pk-date-picker.js +2 -0
- package/dist/components/date-picker/pk-date-picker.styles.d.ts +2 -0
- package/dist/components/date-picker/pk-date-picker.styles.d.ts.map +1 -0
- package/dist/components/date-picker.d.ts +2 -0
- package/dist/components/date-picker.js +2 -0
- package/dist/components/dialog/index.d.ts +2 -0
- package/dist/components/dialog/index.d.ts.map +1 -0
- package/dist/components/dialog/pk-dialog.d.ts +87 -0
- package/dist/components/dialog/pk-dialog.d.ts.map +1 -0
- package/dist/components/dialog/pk-dialog.js +2 -0
- package/dist/components/dialog/pk-dialog.styles.d.ts +2 -0
- package/dist/components/dialog/pk-dialog.styles.d.ts.map +1 -0
- package/dist/components/dialog.d.ts +2 -0
- package/dist/components/dialog.js +2 -0
- package/dist/components/dropdown-menu/dropdown-menu-size.styles.d.ts +11 -0
- package/dist/components/dropdown-menu/dropdown-menu-size.styles.d.ts.map +1 -0
- package/dist/components/dropdown-menu/index.d.ts +5 -0
- package/dist/components/dropdown-menu/index.d.ts.map +1 -0
- package/dist/components/dropdown-menu/pk-dropdown-item.d.ts +67 -0
- package/dist/components/dropdown-menu/pk-dropdown-item.d.ts.map +1 -0
- package/dist/components/dropdown-menu/pk-dropdown-item.js +2 -0
- package/dist/components/dropdown-menu/pk-dropdown-item.styles.d.ts +2 -0
- package/dist/components/dropdown-menu/pk-dropdown-item.styles.d.ts.map +1 -0
- package/dist/components/dropdown-menu/pk-dropdown-label.d.ts +13 -0
- package/dist/components/dropdown-menu/pk-dropdown-label.d.ts.map +1 -0
- package/dist/components/dropdown-menu/pk-dropdown-label.js +2 -0
- package/dist/components/dropdown-menu/pk-dropdown-label.styles.d.ts +2 -0
- package/dist/components/dropdown-menu/pk-dropdown-label.styles.d.ts.map +1 -0
- package/dist/components/dropdown-menu/pk-dropdown-menu.d.ts +130 -0
- package/dist/components/dropdown-menu/pk-dropdown-menu.d.ts.map +1 -0
- package/dist/components/dropdown-menu/pk-dropdown-menu.js +2 -0
- package/dist/components/dropdown-menu/pk-dropdown-menu.styles.d.ts +6 -0
- package/dist/components/dropdown-menu/pk-dropdown-menu.styles.d.ts.map +1 -0
- package/dist/components/dropdown-menu/pk-dropdown-separator.d.ts +13 -0
- package/dist/components/dropdown-menu/pk-dropdown-separator.d.ts.map +1 -0
- package/dist/components/dropdown-menu/pk-dropdown-separator.js +36 -0
- package/dist/components/dropdown-menu/pk-dropdown-separator.js.map +1 -0
- package/dist/components/dropdown-menu.d.ts +2 -0
- package/dist/components/dropdown-menu.js +5 -0
- package/dist/components/editable-table/editable-table-dnd.d.ts +64 -0
- package/dist/components/editable-table/editable-table-dnd.d.ts.map +1 -0
- package/dist/components/editable-table/editable-table-model.d.ts +93 -0
- package/dist/components/editable-table/editable-table-model.d.ts.map +1 -0
- package/dist/components/editable-table/index.d.ts +3 -0
- package/dist/components/editable-table/index.d.ts.map +1 -0
- package/dist/components/editable-table/pk-editable-table.d.ts +122 -0
- package/dist/components/editable-table/pk-editable-table.d.ts.map +1 -0
- package/dist/components/editable-table/pk-editable-table.js +2 -0
- package/dist/components/editable-table/pk-editable-table.styles.d.ts +2 -0
- package/dist/components/editable-table/pk-editable-table.styles.d.ts.map +1 -0
- package/dist/components/editable-table.d.ts +2 -0
- package/dist/components/editable-table.js +2 -0
- package/dist/components/field/index.d.ts +2 -0
- package/dist/components/field/index.d.ts.map +1 -0
- package/dist/components/field/pk-field.d.ts +69 -0
- package/dist/components/field/pk-field.d.ts.map +1 -0
- package/dist/components/field/pk-field.js +2 -0
- package/dist/components/field/pk-field.styles.d.ts +2 -0
- package/dist/components/field/pk-field.styles.d.ts.map +1 -0
- package/dist/components/field.d.ts +2 -0
- package/dist/components/field.js +2 -0
- package/dist/components/icon/index.d.ts +2 -0
- package/dist/components/icon/index.d.ts.map +1 -0
- package/dist/components/icon/pk-icon-loader.d.ts +1 -0
- package/dist/components/icon/pk-icon-loader.d.ts.map +1 -0
- package/dist/components/icon/pk-icon.d.ts +46 -0
- package/dist/components/icon/pk-icon.d.ts.map +1 -0
- package/dist/components/icon/pk-icon.js +47 -0
- package/dist/components/icon/pk-icon.js.map +1 -0
- package/dist/components/icon.d.ts +2 -0
- package/dist/components/icon.js +2 -0
- package/dist/components/input/index.d.ts +2 -0
- package/dist/components/input/index.d.ts.map +1 -0
- package/dist/components/input/pk-input.d.ts +83 -0
- package/dist/components/input/pk-input.d.ts.map +1 -0
- package/dist/components/input/pk-input.js +2 -0
- package/dist/components/input/pk-input.styles.d.ts +2 -0
- package/dist/components/input/pk-input.styles.d.ts.map +1 -0
- package/dist/components/input-group/index.d.ts +10 -0
- package/dist/components/input-group/index.d.ts.map +1 -0
- package/dist/components/input-group/pk-input-group-addon.d.ts +23 -0
- package/dist/components/input-group/pk-input-group-addon.d.ts.map +1 -0
- package/dist/components/input-group/pk-input-group-addon.js +2 -0
- package/dist/components/input-group/pk-input-group-addon.styles.d.ts +2 -0
- package/dist/components/input-group/pk-input-group-addon.styles.d.ts.map +1 -0
- package/dist/components/input-group/pk-input-group-button.d.ts +22 -0
- package/dist/components/input-group/pk-input-group-button.d.ts.map +1 -0
- package/dist/components/input-group/pk-input-group-button.js +2 -0
- package/dist/components/input-group/pk-input-group-button.styles.d.ts +2 -0
- package/dist/components/input-group/pk-input-group-button.styles.d.ts.map +1 -0
- package/dist/components/input-group/pk-input-group-input.d.ts +28 -0
- package/dist/components/input-group/pk-input-group-input.d.ts.map +1 -0
- package/dist/components/input-group/pk-input-group-input.js +2 -0
- package/dist/components/input-group/pk-input-group-input.styles.d.ts +2 -0
- package/dist/components/input-group/pk-input-group-input.styles.d.ts.map +1 -0
- package/dist/components/input-group/pk-input-group-text.d.ts +18 -0
- package/dist/components/input-group/pk-input-group-text.d.ts.map +1 -0
- package/dist/components/input-group/pk-input-group-text.js +2 -0
- package/dist/components/input-group/pk-input-group-text.styles.d.ts +2 -0
- package/dist/components/input-group/pk-input-group-text.styles.d.ts.map +1 -0
- package/dist/components/input-group/pk-input-group-textarea.d.ts +25 -0
- package/dist/components/input-group/pk-input-group-textarea.d.ts.map +1 -0
- package/dist/components/input-group/pk-input-group-textarea.js +2 -0
- package/dist/components/input-group/pk-input-group-textarea.styles.d.ts +2 -0
- package/dist/components/input-group/pk-input-group-textarea.styles.d.ts.map +1 -0
- package/dist/components/input-group/pk-input-group.d.ts +39 -0
- package/dist/components/input-group/pk-input-group.d.ts.map +1 -0
- package/dist/components/input-group/pk-input-group.js +2 -0
- package/dist/components/input-group/pk-input-group.styles.d.ts +2 -0
- package/dist/components/input-group/pk-input-group.styles.d.ts.map +1 -0
- package/dist/components/input-group.d.ts +2 -0
- package/dist/components/input-group.js +7 -0
- package/dist/components/input.d.ts +2 -0
- package/dist/components/input.js +2 -0
- package/dist/components/lightswitch/index.d.ts +2 -0
- package/dist/components/lightswitch/index.d.ts.map +1 -0
- package/dist/components/lightswitch/pk-lightswitch.d.ts +54 -0
- package/dist/components/lightswitch/pk-lightswitch.d.ts.map +1 -0
- package/dist/components/lightswitch/pk-lightswitch.js +2 -0
- package/dist/components/lightswitch/pk-lightswitch.styles.d.ts +2 -0
- package/dist/components/lightswitch/pk-lightswitch.styles.d.ts.map +1 -0
- package/dist/components/lightswitch.d.ts +2 -0
- package/dist/components/lightswitch.js +2 -0
- package/dist/components/popover/index.d.ts +2 -0
- package/dist/components/popover/index.d.ts.map +1 -0
- package/dist/components/popover/pk-popover.d.ts +90 -0
- package/dist/components/popover/pk-popover.d.ts.map +1 -0
- package/dist/components/popover/pk-popover.js +2 -0
- package/dist/components/popover/pk-popover.styles.d.ts +2 -0
- package/dist/components/popover/pk-popover.styles.d.ts.map +1 -0
- package/dist/components/popover.d.ts +2 -0
- package/dist/components/popover.js +2 -0
- package/dist/components/popup/index.d.ts +2 -0
- package/dist/components/popup/index.d.ts.map +1 -0
- package/dist/components/popup/pk-popup.d.ts +96 -0
- package/dist/components/popup/pk-popup.d.ts.map +1 -0
- package/dist/components/popup/pk-popup.js +2 -0
- package/dist/components/popup/pk-popup.styles.d.ts +2 -0
- package/dist/components/popup/pk-popup.styles.d.ts.map +1 -0
- package/dist/components/popup.d.ts +2 -0
- package/dist/components/popup.js +2 -0
- package/dist/components/radio-group/index.d.ts +3 -0
- package/dist/components/radio-group/index.d.ts.map +1 -0
- package/dist/components/radio-group/pk-radio-group.d.ts +58 -0
- package/dist/components/radio-group/pk-radio-group.d.ts.map +1 -0
- package/dist/components/radio-group/pk-radio-group.js +2 -0
- package/dist/components/radio-group/pk-radio-group.styles.d.ts +2 -0
- package/dist/components/radio-group/pk-radio-group.styles.d.ts.map +1 -0
- package/dist/components/radio-group/pk-radio.d.ts +37 -0
- package/dist/components/radio-group/pk-radio.d.ts.map +1 -0
- package/dist/components/radio-group/pk-radio.js +2 -0
- package/dist/components/radio-group/pk-radio.styles.d.ts +2 -0
- package/dist/components/radio-group/pk-radio.styles.d.ts.map +1 -0
- package/dist/components/radio-group.d.ts +2 -0
- package/dist/components/radio-group.js +3 -0
- package/dist/components/scroll-area/index.d.ts +2 -0
- package/dist/components/scroll-area/index.d.ts.map +1 -0
- package/dist/components/scroll-area/pk-scroll-area.d.ts +53 -0
- package/dist/components/scroll-area/pk-scroll-area.d.ts.map +1 -0
- package/dist/components/scroll-area/pk-scroll-area.js +2 -0
- package/dist/components/scroll-area/pk-scroll-area.styles.d.ts +2 -0
- package/dist/components/scroll-area/pk-scroll-area.styles.d.ts.map +1 -0
- package/dist/components/scroll-area.d.ts +2 -0
- package/dist/components/scroll-area.js +2 -0
- package/dist/components/select/index.d.ts +4 -0
- package/dist/components/select/index.d.ts.map +1 -0
- package/dist/components/select/pk-option-group.d.ts +22 -0
- package/dist/components/select/pk-option-group.d.ts.map +1 -0
- package/dist/components/select/pk-option-group.js +2 -0
- package/dist/components/select/pk-option-group.styles.d.ts +2 -0
- package/dist/components/select/pk-option-group.styles.d.ts.map +1 -0
- package/dist/components/select/pk-option.d.ts +55 -0
- package/dist/components/select/pk-option.d.ts.map +1 -0
- package/dist/components/select/pk-option.js +2 -0
- package/dist/components/select/pk-option.styles.d.ts +2 -0
- package/dist/components/select/pk-option.styles.d.ts.map +1 -0
- package/dist/components/select/pk-select.d.ts +132 -0
- package/dist/components/select/pk-select.d.ts.map +1 -0
- package/dist/components/select/pk-select.js +2 -0
- package/dist/components/select/pk-select.styles.d.ts +2 -0
- package/dist/components/select/pk-select.styles.d.ts.map +1 -0
- package/dist/components/select.d.ts +2 -0
- package/dist/components/select.js +4 -0
- package/dist/components/separator/index.d.ts +2 -0
- package/dist/components/separator/index.d.ts.map +1 -0
- package/dist/components/separator/pk-separator.d.ts +25 -0
- package/dist/components/separator/pk-separator.d.ts.map +1 -0
- package/dist/components/separator/pk-separator.js +2 -0
- package/dist/components/separator/pk-separator.styles.d.ts +9 -0
- package/dist/components/separator/pk-separator.styles.d.ts.map +1 -0
- package/dist/components/separator.d.ts +2 -0
- package/dist/components/separator.js +2 -0
- package/dist/components/spinner/index.d.ts +3 -0
- package/dist/components/spinner/index.d.ts.map +1 -0
- package/dist/components/spinner/pk-spinner.d.ts +23 -0
- package/dist/components/spinner/pk-spinner.d.ts.map +1 -0
- package/dist/components/spinner/pk-spinner.js +2 -0
- package/dist/components/spinner/pk-spinner.styles.d.ts +2 -0
- package/dist/components/spinner/pk-spinner.styles.d.ts.map +1 -0
- package/dist/components/spinner/spinner-utils.d.ts +7 -0
- package/dist/components/spinner/spinner-utils.d.ts.map +1 -0
- package/dist/components/spinner.d.ts +2 -0
- package/dist/components/spinner.js +3 -0
- package/dist/components/status/index.d.ts +2 -0
- package/dist/components/status/index.d.ts.map +1 -0
- package/dist/components/status/pk-status.d.ts +19 -0
- package/dist/components/status/pk-status.d.ts.map +1 -0
- package/dist/components/status/pk-status.js +2 -0
- package/dist/components/status/pk-status.styles.d.ts +2 -0
- package/dist/components/status/pk-status.styles.d.ts.map +1 -0
- package/dist/components/status.d.ts +2 -0
- package/dist/components/status.js +2 -0
- package/dist/components/tabs/index.d.ts +5 -0
- package/dist/components/tabs/index.d.ts.map +1 -0
- package/dist/components/tabs/pk-tab-base.d.ts +14 -0
- package/dist/components/tabs/pk-tab-base.d.ts.map +1 -0
- package/dist/components/tabs/pk-tab-heading.d.ts +20 -0
- package/dist/components/tabs/pk-tab-heading.d.ts.map +1 -0
- package/dist/components/tabs/pk-tab-heading.js +2 -0
- package/dist/components/tabs/pk-tab-heading.styles.d.ts +2 -0
- package/dist/components/tabs/pk-tab-heading.styles.d.ts.map +1 -0
- package/dist/components/tabs/pk-tab-panel-base.d.ts +9 -0
- package/dist/components/tabs/pk-tab-panel-base.d.ts.map +1 -0
- package/dist/components/tabs/pk-tab-panel.d.ts +18 -0
- package/dist/components/tabs/pk-tab-panel.d.ts.map +1 -0
- package/dist/components/tabs/pk-tab-panel.js +2 -0
- package/dist/components/tabs/pk-tab-panel.styles.d.ts +2 -0
- package/dist/components/tabs/pk-tab-panel.styles.d.ts.map +1 -0
- package/dist/components/tabs/pk-tab.d.ts +23 -0
- package/dist/components/tabs/pk-tab.d.ts.map +1 -0
- package/dist/components/tabs/pk-tab.js +2 -0
- package/dist/components/tabs/pk-tab.styles.d.ts +2 -0
- package/dist/components/tabs/pk-tab.styles.d.ts.map +1 -0
- package/dist/components/tabs/pk-tabs.d.ts +67 -0
- package/dist/components/tabs/pk-tabs.d.ts.map +1 -0
- package/dist/components/tabs/pk-tabs.js +2 -0
- package/dist/components/tabs/pk-tabs.styles.d.ts +6 -0
- package/dist/components/tabs/pk-tabs.styles.d.ts.map +1 -0
- package/dist/components/tabs.d.ts +2 -0
- package/dist/components/tabs.js +5 -0
- package/dist/components/textarea/index.d.ts +2 -0
- package/dist/components/textarea/index.d.ts.map +1 -0
- package/dist/components/textarea/pk-textarea.d.ts +60 -0
- package/dist/components/textarea/pk-textarea.d.ts.map +1 -0
- package/dist/components/textarea/pk-textarea.js +2 -0
- package/dist/components/textarea/pk-textarea.styles.d.ts +2 -0
- package/dist/components/textarea/pk-textarea.styles.d.ts.map +1 -0
- package/dist/components/textarea.d.ts +2 -0
- package/dist/components/textarea.js +2 -0
- package/dist/components/time-picker/index.d.ts +2 -0
- package/dist/components/time-picker/index.d.ts.map +1 -0
- package/dist/components/time-picker/pk-time-picker.d.ts +25 -0
- package/dist/components/time-picker/pk-time-picker.d.ts.map +1 -0
- package/dist/components/time-picker/pk-time-picker.js +2 -0
- package/dist/components/time-picker/pk-time-picker.styles.d.ts +2 -0
- package/dist/components/time-picker/pk-time-picker.styles.d.ts.map +1 -0
- package/dist/components/time-picker.d.ts +2 -0
- package/dist/components/time-picker.js +2 -0
- package/dist/components/tiptap/index.d.ts +4 -0
- package/dist/components/tiptap/index.d.ts.map +1 -0
- package/dist/components/tiptap/pk-tiptap-content.d.ts +25 -0
- package/dist/components/tiptap/pk-tiptap-content.d.ts.map +1 -0
- package/dist/components/tiptap/pk-tiptap-content.js +2 -0
- package/dist/components/tiptap/pk-tiptap-content.styles.d.ts +2 -0
- package/dist/components/tiptap/pk-tiptap-content.styles.d.ts.map +1 -0
- package/dist/components/tiptap/pk-tiptap-editor.d.ts +123 -0
- package/dist/components/tiptap/pk-tiptap-editor.d.ts.map +1 -0
- package/dist/components/tiptap/pk-tiptap-editor.js +2 -0
- package/dist/components/tiptap/pk-tiptap-editor.styles.d.ts +2 -0
- package/dist/components/tiptap/pk-tiptap-editor.styles.d.ts.map +1 -0
- package/dist/components/tiptap/pk-tiptap-input.d.ts +54 -0
- package/dist/components/tiptap/pk-tiptap-input.d.ts.map +1 -0
- package/dist/components/tiptap/pk-tiptap-input.js +2 -0
- package/dist/components/tiptap/pk-tiptap-input.styles.d.ts +2 -0
- package/dist/components/tiptap/pk-tiptap-input.styles.d.ts.map +1 -0
- package/dist/components/tiptap/tiptap-editor-host.d.ts +28 -0
- package/dist/components/tiptap/tiptap-editor-host.d.ts.map +1 -0
- package/dist/components/tiptap/tiptap-toolbar.d.ts +7 -0
- package/dist/components/tiptap/tiptap-toolbar.d.ts.map +1 -0
- package/dist/components/tiptap/tiptap-utils.d.ts +13 -0
- package/dist/components/tiptap/tiptap-utils.d.ts.map +1 -0
- package/dist/components/tiptap/tiptap.styles.d.ts +12 -0
- package/dist/components/tiptap/tiptap.styles.d.ts.map +1 -0
- package/dist/components/tiptap/variable-tag-node-view.d.ts +17 -0
- package/dist/components/tiptap/variable-tag-node-view.d.ts.map +1 -0
- package/dist/components/tiptap-content.d.ts +2 -0
- package/dist/components/tiptap-content.js +2 -0
- package/dist/components/tiptap-editor.d.ts +2 -0
- package/dist/components/tiptap-editor.js +2 -0
- package/dist/components/tiptap-input.d.ts +2 -0
- package/dist/components/tiptap-input.js +2 -0
- package/dist/components/toggle/index.d.ts +2 -0
- package/dist/components/toggle/index.d.ts.map +1 -0
- package/dist/components/toggle/pk-toggle.d.ts +28 -0
- package/dist/components/toggle/pk-toggle.d.ts.map +1 -0
- package/dist/components/toggle/pk-toggle.js +2 -0
- package/dist/components/toggle/pk-toggle.styles.d.ts +2 -0
- package/dist/components/toggle/pk-toggle.styles.d.ts.map +1 -0
- package/dist/components/toggle-group/index.d.ts +2 -0
- package/dist/components/toggle-group/index.d.ts.map +1 -0
- package/dist/components/toggle-group/pk-toggle-group.d.ts +43 -0
- package/dist/components/toggle-group/pk-toggle-group.d.ts.map +1 -0
- package/dist/components/toggle-group/pk-toggle-group.js +2 -0
- package/dist/components/toggle-group/pk-toggle-group.styles.d.ts +2 -0
- package/dist/components/toggle-group/pk-toggle-group.styles.d.ts.map +1 -0
- package/dist/components/toggle-group.d.ts +2 -0
- package/dist/components/toggle-group.js +2 -0
- package/dist/components/toggle.d.ts +2 -0
- package/dist/components/toggle.js +2 -0
- package/dist/components/tooltip/index.d.ts +2 -0
- package/dist/components/tooltip/index.d.ts.map +1 -0
- package/dist/components/tooltip/pk-tooltip.d.ts +73 -0
- package/dist/components/tooltip/pk-tooltip.d.ts.map +1 -0
- package/dist/components/tooltip/pk-tooltip.js +2 -0
- package/dist/components/tooltip/pk-tooltip.styles.d.ts +2 -0
- package/dist/components/tooltip/pk-tooltip.styles.d.ts.map +1 -0
- package/dist/components/tooltip.d.ts +2 -0
- package/dist/components/tooltip.js +2 -0
- package/dist/create-register-components.d.ts +7 -0
- package/dist/create-register-components.d.ts.map +1 -0
- package/dist/events/overlay-lifecycle.d.ts +27 -0
- package/dist/events/overlay-lifecycle.d.ts.map +1 -0
- package/dist/events/pk-clear.d.ts +10 -0
- package/dist/events/pk-clear.d.ts.map +1 -0
- package/dist/events/pk-copy.d.ts +18 -0
- package/dist/events/pk-copy.d.ts.map +1 -0
- package/dist/events/pk-create.d.ts +11 -0
- package/dist/events/pk-create.d.ts.map +1 -0
- package/dist/events/pk-invalid.d.ts +10 -0
- package/dist/events/pk-invalid.d.ts.map +1 -0
- package/dist/events/pk-reposition.d.ts +10 -0
- package/dist/events/pk-reposition.d.ts.map +1 -0
- package/dist/icons/checkbox-indicators.d.ts +6 -0
- package/dist/icons/checkbox-indicators.d.ts.map +1 -0
- package/dist/icons/index.d.ts +4 -0
- package/dist/icons/index.d.ts.map +1 -0
- package/dist/icons/index.js +4 -0
- package/dist/icons/render.d.ts +7 -0
- package/dist/icons/render.d.ts.map +1 -0
- package/dist/icons/translation-icon.d.ts +2 -0
- package/dist/icons/translation-icon.d.ts.map +1 -0
- package/dist/index.d.ts +52 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +218 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/control-aria.d.ts +31 -0
- package/dist/internal/control-aria.d.ts.map +1 -0
- package/dist/internal/field-aria.d.ts +19 -0
- package/dist/internal/field-aria.d.ts.map +1 -0
- package/dist/internal/field-labels.d.ts +5 -0
- package/dist/internal/field-labels.d.ts.map +1 -0
- package/dist/internal/has-slot.d.ts +30 -0
- package/dist/internal/has-slot.d.ts.map +1 -0
- package/dist/internal/implicit-form-submit.d.ts +15 -0
- package/dist/internal/implicit-form-submit.d.ts.map +1 -0
- package/dist/internal/resolve-element-by-id.d.ts +3 -0
- package/dist/internal/resolve-element-by-id.d.ts.map +1 -0
- package/dist/internal/sync-listbox-separators.d.ts +3 -0
- package/dist/internal/sync-listbox-separators.d.ts.map +1 -0
- package/dist/plugin-kit.css +583 -0
- package/dist/plugin-kit.d.ts +9 -0
- package/dist/plugin-kit.d.ts.map +1 -0
- package/dist/plugin-kit.js +267 -0
- package/dist/plugin-kit.js.map +1 -0
- package/dist/plugin-kit.loader.d.ts +2 -0
- package/dist/plugin-kit.loader.d.ts.map +1 -0
- package/dist/register-components.d.ts +3 -0
- package/dist/register-components.d.ts.map +1 -0
- package/dist/register-components.js +2 -0
- package/dist/register-pk.generated.d.ts +103 -0
- package/dist/register-pk.generated.d.ts.map +1 -0
- package/dist/register.d.ts +85 -0
- package/dist/register.d.ts.map +1 -0
- package/dist/register.js +146 -0
- package/dist/register.js.map +1 -0
- package/dist/styles/overlay-content.css +64 -0
- package/dist/styles/popup-content-animation.styles.d.ts +9 -0
- package/dist/styles/popup-content-animation.styles.d.ts.map +1 -0
- package/dist/tokens.css +408 -0
- package/dist/utilities/autoloader.d.ts +8 -0
- package/dist/utilities/autoloader.d.ts.map +1 -0
- package/dist/utilities/base-path.d.ts +3 -0
- package/dist/utilities/base-path.d.ts.map +1 -0
- package/dist/utilities/defined.d.ts +17 -0
- package/dist/utilities/defined.d.ts.map +1 -0
- package/dist/utilities/fouce-strategy.d.ts +43 -0
- package/dist/utilities/fouce-strategy.d.ts.map +1 -0
- package/dist/utilities/fouce.css +108 -0
- package/dist/utils/animate-with-class.d.ts +7 -0
- package/dist/utils/animate-with-class.d.ts.map +1 -0
- package/dist/utils/config.d.ts +15 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/copy-to-clipboard.d.ts +5 -0
- package/dist/utils/copy-to-clipboard.d.ts.map +1 -0
- package/dist/utils/craft-host-modal.d.ts +19 -0
- package/dist/utils/craft-host-modal.d.ts.map +1 -0
- package/dist/utils/date-matchers.d.ts +29 -0
- package/dist/utils/date-matchers.d.ts.map +1 -0
- package/dist/utils/date.d.ts +23 -0
- package/dist/utils/date.d.ts.map +1 -0
- package/dist/utils/documentScrollStability.d.ts +11 -0
- package/dist/utils/documentScrollStability.d.ts.map +1 -0
- package/dist/utils/floating-ui.d.ts +14 -0
- package/dist/utils/floating-ui.d.ts.map +1 -0
- package/dist/utils/highlight-text.d.ts +7 -0
- package/dist/utils/highlight-text.d.ts.map +1 -0
- package/dist/utils/host-date.d.ts +8 -0
- package/dist/utils/host-date.d.ts.map +1 -0
- package/dist/utils/inline-markdown.d.ts +6 -0
- package/dist/utils/inline-markdown.d.ts.map +1 -0
- package/dist/utils/listbox-keyboard.d.ts +25 -0
- package/dist/utils/listbox-keyboard.d.ts.map +1 -0
- package/dist/utils/menu-keyboard.d.ts +15 -0
- package/dist/utils/menu-keyboard.d.ts.map +1 -0
- package/dist/utils/mount-shadow-app.d.ts +31 -0
- package/dist/utils/mount-shadow-app.d.ts.map +1 -0
- package/dist/utils/overlay-recovery.d.ts +39 -0
- package/dist/utils/overlay-recovery.d.ts.map +1 -0
- package/dist/utils/popup-placement-animation.d.ts +26 -0
- package/dist/utils/popup-placement-animation.d.ts.map +1 -0
- package/dist/utils/popup-pointer.d.ts +15 -0
- package/dist/utils/popup-pointer.d.ts.map +1 -0
- package/dist/utils/portal.d.ts +16 -0
- package/dist/utils/portal.d.ts.map +1 -0
- package/dist/utils/supports-popover.d.ts +3 -0
- package/dist/utils/supports-popover.d.ts.map +1 -0
- package/dist/utils/time-options.d.ts +16 -0
- package/dist/utils/time-options.d.ts.map +1 -0
- package/dist/utils/top-layer.d.ts +34 -0
- package/dist/utils/top-layer.d.ts.map +1 -0
- package/dist/utils/week-info.d.ts +14 -0
- package/dist/utils/week-info.d.ts.map +1 -0
- package/dist/validators/custom-error-validator.d.ts +3 -0
- package/dist/validators/custom-error-validator.d.ts.map +1 -0
- package/dist/validators/index.d.ts +6 -0
- package/dist/validators/index.d.ts.map +1 -0
- package/dist/validators/mirror-validator.d.ts +4 -0
- package/dist/validators/mirror-validator.d.ts.map +1 -0
- package/dist/validators/required-validator.d.ts +7 -0
- package/dist/validators/required-validator.d.ts.map +1 -0
- package/dist/validators/types.d.ts +12 -0
- package/dist/validators/types.d.ts.map +1 -0
- package/dist-loader/chunks/animate-with-class-DT0jwaR_.js +40 -0
- package/dist-loader/chunks/button-group-item.styles-Dwakbyx5.js +145 -0
- package/dist-loader/chunks/codemirror-CSgOT0QM.js +23675 -0
- package/dist-loader/chunks/field-labels-D3lKQ2nq.js +12 -0
- package/dist-loader/chunks/floating-ui-87vslRWW.js +1220 -0
- package/dist-loader/chunks/has-slot-BGJeJdHr.js +72 -0
- package/dist-loader/chunks/icons-B1i-oRoD.js +429 -0
- package/dist-loader/chunks/lit-Dnn7gEi2.js +891 -0
- package/dist-loader/chunks/mirror-validator-C5XrXPaq.js +30 -0
- package/dist-loader/chunks/overlay-lifecycle-C3tSQ3UR.js +42 -0
- package/dist-loader/chunks/pk-a11y-Cx5RZvhu.js +274 -0
- package/dist-loader/chunks/pk-base-BlxAYXJD.js +705 -0
- package/dist-loader/chunks/pk-button-BlSs4e6V.js +846 -0
- package/dist-loader/chunks/pk-calendar-RXCDDhLI.js +1403 -0
- package/dist-loader/chunks/pk-checkbox-hJCj8In8.js +273 -0
- package/dist-loader/chunks/pk-clear-BMZUzwDt.js +13 -0
- package/dist-loader/chunks/pk-color-input-BfNtLznP.js +393 -0
- package/dist-loader/chunks/pk-combobox-1PJBcIrV.js +2006 -0
- package/dist-loader/chunks/pk-date-picker-D4vCtbw-.js +708 -0
- package/dist-loader/chunks/pk-dialog-D1RZjwQN.js +630 -0
- package/dist-loader/chunks/pk-dropdown-item-BJIhQ0Mw.js +543 -0
- package/dist-loader/chunks/pk-dropdown-menu-I1s3TBiA.js +731 -0
- package/dist-loader/chunks/pk-field-BnKPT_Kk.js +5842 -0
- package/dist-loader/chunks/pk-input-Oarjv7Vc.js +715 -0
- package/dist-loader/chunks/pk-lightswitch-D-UrNM3y.js +427 -0
- package/dist-loader/chunks/pk-option-CCZebfif.js +308 -0
- package/dist-loader/chunks/pk-popup-BNRyCsVX.js +553 -0
- package/dist-loader/chunks/pk-select-BcbtjIoP.js +1120 -0
- package/dist-loader/chunks/pk-spinner-Di9O69-m.js +145 -0
- package/dist-loader/chunks/pk-textarea-CC6WXpIu.js +334 -0
- package/dist-loader/chunks/pk-time-picker-BtGXo-KJ.js +225 -0
- package/dist-loader/chunks/pk-tooltip-JJRxVXYD.js +465 -0
- package/dist-loader/chunks/popup-content-animation.styles-S6CK-zPp.js +115 -0
- package/dist-loader/chunks/popup-placement-animation-WlEXnS85.js +58 -0
- package/dist-loader/chunks/popup-pointer-BC4n_sNb.js +19 -0
- package/dist-loader/chunks/registry-CmL0rH9r.js +55 -0
- package/dist-loader/chunks/render-DApFfV9S.js +14 -0
- package/dist-loader/chunks/required-validator-0XwZtX9k.js +27 -0
- package/dist-loader/chunks/rolldown-runtime-CzwdidQP.js +13 -0
- package/dist-loader/chunks/supports-popover-COjbi2RP.js +5 -0
- package/dist-loader/chunks/svg-Boar0Kf1.js +34 -0
- package/dist-loader/chunks/sync-listbox-separators-Bcja51HC.js +147 -0
- package/dist-loader/chunks/tiptap-Db7MTUH1.js +22888 -0
- package/dist-loader/chunks/tiptap.styles-DAH_90Fi.js +1628 -0
- package/dist-loader/components/button/button.js +2 -0
- package/dist-loader/components/button-group/button-group-separator.js +58 -0
- package/dist-loader/components/button-group/button-group-text.js +46 -0
- package/dist-loader/components/button-group/button-group.js +419 -0
- package/dist-loader/components/calendar/calendar.js +2 -0
- package/dist-loader/components/checkbox/checkbox.js +2 -0
- package/dist-loader/components/checkbox-select/checkbox-select.js +217 -0
- package/dist-loader/components/code-editor/code-editor.js +376 -0
- package/dist-loader/components/color-input/color-input.js +2 -0
- package/dist-loader/components/combobox/combobox.js +2 -0
- package/dist-loader/components/copy-button/copy-button.js +135 -0
- package/dist-loader/components/date-picker/date-picker.js +2 -0
- package/dist-loader/components/dialog/dialog.js +2 -0
- package/dist-loader/components/dropdown-menu/dropdown-item.js +2 -0
- package/dist-loader/components/dropdown-menu/dropdown-label.js +45 -0
- package/dist-loader/components/dropdown-menu/dropdown-menu.js +2 -0
- package/dist-loader/components/dropdown-menu/dropdown-separator.js +33 -0
- package/dist-loader/components/editable-table/editable-table.js +1522 -0
- package/dist-loader/components/field/field.js +2 -0
- package/dist-loader/components/icon/icon.js +17 -0
- package/dist-loader/components/input/input.js +2 -0
- package/dist-loader/components/input-group/input-group-addon.js +98 -0
- package/dist-loader/components/input-group/input-group-button.js +52 -0
- package/dist-loader/components/input-group/input-group-input.js +132 -0
- package/dist-loader/components/input-group/input-group-text.js +37 -0
- package/dist-loader/components/input-group/input-group-textarea.js +110 -0
- package/dist-loader/components/input-group/input-group.js +234 -0
- package/dist-loader/components/lightswitch/lightswitch.js +2 -0
- package/dist-loader/components/popover/popover.js +372 -0
- package/dist-loader/components/popup/popup.js +2 -0
- package/dist-loader/components/radio-group/radio-group.js +247 -0
- package/dist-loader/components/radio-group/radio.js +229 -0
- package/dist-loader/components/scroll-area/scroll-area.js +398 -0
- package/dist-loader/components/select/option-group.js +69 -0
- package/dist-loader/components/select/option.js +2 -0
- package/dist-loader/components/select/select.js +2 -0
- package/dist-loader/components/separator/separator.js +86 -0
- package/dist-loader/components/spinner/spinner.js +2 -0
- package/dist-loader/components/status/status.js +89 -0
- package/dist-loader/components/tabs/tab-heading.js +47 -0
- package/dist-loader/components/tabs/tab-panel.js +83 -0
- package/dist-loader/components/tabs/tab.js +256 -0
- package/dist-loader/components/tabs/tabs.js +619 -0
- package/dist-loader/components/textarea/textarea.js +2 -0
- package/dist-loader/components/time-picker/time-picker.js +2 -0
- package/dist-loader/components/tiptap/tiptap-content.js +72 -0
- package/dist-loader/components/tiptap/tiptap-editor.js +1078 -0
- package/dist-loader/components/tiptap/tiptap-input.js +244 -0
- package/dist-loader/components/toggle/toggle.js +253 -0
- package/dist-loader/components/toggle-group/toggle-group.js +172 -0
- package/dist-loader/components/tooltip/tooltip.js +2 -0
- package/dist-loader/plugin-kit.css +583 -0
- package/dist-loader/plugin-kit.d.ts +9 -0
- package/dist-loader/plugin-kit.d.ts.map +1 -0
- package/dist-loader/plugin-kit.loader.d.ts +2 -0
- package/dist-loader/plugin-kit.loader.d.ts.map +1 -0
- package/dist-loader/plugin-kit.loader.js +527 -0
- package/dist-loader/styles/overlay-content.css +64 -0
- package/dist-loader/tokens.css +408 -0
- package/dist-loader/utilities/autoloader.d.ts +8 -0
- package/dist-loader/utilities/autoloader.d.ts.map +1 -0
- package/dist-loader/utilities/base-path.d.ts +3 -0
- package/dist-loader/utilities/base-path.d.ts.map +1 -0
- package/dist-loader/utilities/defined.d.ts +17 -0
- package/dist-loader/utilities/defined.d.ts.map +1 -0
- package/dist-loader/utilities/fouce-strategy.d.ts +43 -0
- package/dist-loader/utilities/fouce-strategy.d.ts.map +1 -0
- package/dist-loader/utilities/fouce.css +108 -0
- package/package.json +961 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
//#region src/utils/popup-placement-animation.ts
|
|
2
|
+
/** Maps Floating UI placement to a physical side for motion CSS. */
|
|
3
|
+
function getPopupSide(placement) {
|
|
4
|
+
const side = placement.split("-")[0];
|
|
5
|
+
if (side === "inline-start") return "left";
|
|
6
|
+
if (side === "inline-end") return "right";
|
|
7
|
+
if (side === "top" || side === "bottom" || side === "left" || side === "right") return side;
|
|
8
|
+
return "bottom";
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Transform origin at the anchor center on the connecting edge — matches Base UI
|
|
12
|
+
* (`@base-ui/react` useAnchorPositioning transformOrigin middleware), which
|
|
13
|
+
* plugin-kit-react relies on via `--transform-origin`.
|
|
14
|
+
*/
|
|
15
|
+
function computePopupTransformOrigin(placement, referenceRect, floatingRect, sideOffset, shift) {
|
|
16
|
+
const side = getPopupSide(placement);
|
|
17
|
+
const transformX = referenceRect.x + referenceRect.width / 2 - floatingRect.x;
|
|
18
|
+
const transformY = referenceRect.y + referenceRect.height / 2 - floatingRect.y;
|
|
19
|
+
if (Math.abs(shift?.y ?? 0) > sideOffset && (side === "top" || side === "bottom")) return `${transformX}px ${referenceRect.y + referenceRect.height / 2 - floatingRect.y}px`;
|
|
20
|
+
return {
|
|
21
|
+
top: `${transformX}px calc(100% + ${sideOffset}px)`,
|
|
22
|
+
bottom: `${transformX}px ${-sideOffset}px`,
|
|
23
|
+
left: `calc(100% + ${sideOffset}px) ${transformY}px`,
|
|
24
|
+
right: `${-sideOffset}px ${transformY}px`
|
|
25
|
+
}[side];
|
|
26
|
+
}
|
|
27
|
+
/** Applies `data-side` for placement-aware slide/zoom CSS. */
|
|
28
|
+
function syncPopupPlacementAnimation(element, placement) {
|
|
29
|
+
if (!placement) {
|
|
30
|
+
element.removeAttribute("data-side");
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
element.setAttribute("data-side", getPopupSide(placement));
|
|
34
|
+
}
|
|
35
|
+
/** Waits for the first `pk-reposition` on a popup. */
|
|
36
|
+
function waitForPopupReposition(popup, fallbackPlacement, timeoutMs = 100, options) {
|
|
37
|
+
const readPlacement = () => {
|
|
38
|
+
return popup.getAttribute("data-current-placement") ?? fallbackPlacement;
|
|
39
|
+
};
|
|
40
|
+
if (!options?.requireEvent && popup.hasAttribute("data-current-placement")) return Promise.resolve(readPlacement());
|
|
41
|
+
return new Promise((resolve) => {
|
|
42
|
+
let settled = false;
|
|
43
|
+
const finish = () => {
|
|
44
|
+
if (settled) return;
|
|
45
|
+
settled = true;
|
|
46
|
+
resolve(readPlacement());
|
|
47
|
+
};
|
|
48
|
+
popup.addEventListener("pk-reposition", finish, { once: true });
|
|
49
|
+
if (!options?.requireEvent) requestAnimationFrame(() => {
|
|
50
|
+
requestAnimationFrame(() => {
|
|
51
|
+
if (popup.hasAttribute("data-current-placement")) finish();
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
window.setTimeout(finish, timeoutMs);
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
//#endregion
|
|
58
|
+
export { waitForPopupReposition as i, getPopupSide as n, syncPopupPlacementAnimation as r, computePopupTransformOrigin as t };
|
|
59
|
+
|
|
60
|
+
//# sourceMappingURL=popup-placement-animation-WlEXnS85.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"popup-placement-animation-WlEXnS85.js","names":[],"sources":["../../src/utils/popup-placement-animation.ts"],"sourcesContent":["type PopupSide = 'top' | 'bottom' | 'left' | 'right';\n\ntype RectLike = {\n x: number;\n y: number;\n width: number;\n height: number;\n};\n\n/** Maps Floating UI placement to a physical side for motion CSS. */\nexport function getPopupSide(placement: string): PopupSide {\n const side = placement.split('-')[0];\n\n if (side === 'inline-start') {\n return 'left';\n }\n\n if (side === 'inline-end') {\n return 'right';\n }\n\n if (side === 'top' || side === 'bottom' || side === 'left' || side === 'right') {\n return side;\n }\n\n return 'bottom';\n}\n\n/**\n * Transform origin at the anchor center on the connecting edge — matches Base UI\n * (`@base-ui/react` useAnchorPositioning transformOrigin middleware), which\n * plugin-kit-react relies on via `--transform-origin`.\n */\nexport function computePopupTransformOrigin(\n placement: string,\n referenceRect: RectLike,\n floatingRect: RectLike,\n sideOffset: number,\n shift?: { x?: number; y?: number },\n): string {\n const side = getPopupSide(placement);\n const transformX = referenceRect.x + referenceRect.width / 2 - floatingRect.x;\n const transformY = referenceRect.y + referenceRect.height / 2 - floatingRect.y;\n const shiftY = Math.abs(shift?.y ?? 0);\n const isOverlappingAnchor = shiftY > sideOffset;\n\n if (isOverlappingAnchor && (side === 'top' || side === 'bottom')) {\n return `${transformX}px ${referenceRect.y + referenceRect.height / 2 - floatingRect.y}px`;\n }\n\n const adjacentTransformOrigin: Record<PopupSide, string> = {\n top: `${transformX}px calc(100% + ${sideOffset}px)`,\n bottom: `${transformX}px ${-sideOffset}px`,\n left: `calc(100% + ${sideOffset}px) ${transformY}px`,\n right: `${-sideOffset}px ${transformY}px`,\n };\n\n return adjacentTransformOrigin[side];\n}\n\n/** Applies `data-side` for placement-aware slide/zoom CSS. */\nexport function syncPopupPlacementAnimation(element: HTMLElement, placement: string | null | undefined): void {\n if (!placement) {\n element.removeAttribute('data-side');\n return;\n }\n\n element.setAttribute('data-side', getPopupSide(placement));\n}\n\n/** Waits for the first `pk-reposition` on a popup. */\nexport function waitForPopupReposition(\n popup: HTMLElement,\n fallbackPlacement: string,\n timeoutMs = 100,\n options?: { requireEvent?: boolean },\n): Promise<string> {\n const readPlacement = (): string => {\n return popup.getAttribute('data-current-placement') ?? fallbackPlacement;\n };\n\n if (!options?.requireEvent && popup.hasAttribute('data-current-placement')) {\n return Promise.resolve(readPlacement());\n }\n\n return new Promise((resolve) => {\n let settled = false;\n\n const finish = (): void => {\n if (settled) {\n return;\n }\n\n settled = true;\n resolve(readPlacement());\n };\n\n popup.addEventListener('pk-reposition', finish, { once: true });\n\n // Attribute-only poll races settleInitialPosition: data-current-placement is\n // written before .positioned (visibility:hidden clears). Skip when the caller\n // needs the post-reveal pk-reposition (focus / enter animation).\n if (!options?.requireEvent) {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n if (popup.hasAttribute('data-current-placement')) {\n finish();\n }\n });\n });\n }\n\n window.setTimeout(finish, timeoutMs);\n });\n}\n"],"mappings":";;AAUA,SAAgB,aAAa,WAA8B;CACvD,MAAM,OAAO,UAAU,MAAM,IAAI,CAAC;AAElC,KAAI,SAAS,eACT,QAAO;AAGX,KAAI,SAAS,aACT,QAAO;AAGX,KAAI,SAAS,SAAS,SAAS,YAAY,SAAS,UAAU,SAAS,QACnE,QAAO;AAGX,QAAO;;;;;;;AAQX,SAAgB,4BACZ,WACA,eACA,cACA,YACA,OACM;CACN,MAAM,OAAO,aAAa,UAAU;CACpC,MAAM,aAAa,cAAc,IAAI,cAAc,QAAQ,IAAI,aAAa;CAC5E,MAAM,aAAa,cAAc,IAAI,cAAc,SAAS,IAAI,aAAa;AAI7E,KAHe,KAAK,IAAI,OAAO,KAAK,EACR,GAAS,eAET,SAAS,SAAS,SAAS,UACnD,QAAO,GAAG,WAAW,KAAK,cAAc,IAAI,cAAc,SAAS,IAAI,aAAa,EAAE;AAU1F,QAAO;EANH,KAAK,GAAG,WAAW,iBAAiB,WAAW;EAC/C,QAAQ,GAAG,WAAW,KAAK,CAAC,WAAW;EACvC,MAAM,eAAe,WAAW,MAAM,WAAW;EACjD,OAAO,GAAG,CAAC,WAAW,KAAK,WAAW;EAGnC,CAAwB;;;AAInC,SAAgB,4BAA4B,SAAsB,WAA4C;AAC1G,KAAI,CAAC,WAAW;AACZ,UAAQ,gBAAgB,YAAY;AACpC;;AAGJ,SAAQ,aAAa,aAAa,aAAa,UAAU,CAAC;;;AAI9D,SAAgB,uBACZ,OACA,mBACA,YAAY,KACZ,SACe;CACf,MAAM,sBAA8B;AAChC,SAAO,MAAM,aAAa,yBAAyB,IAAI;;AAG3D,KAAI,CAAC,SAAS,gBAAgB,MAAM,aAAa,yBAAyB,CACtE,QAAO,QAAQ,QAAQ,eAAe,CAAC;AAG3C,QAAO,IAAI,SAAS,YAAY;EAC5B,IAAI,UAAU;EAEd,MAAM,eAAqB;AACvB,OAAI,QACA;AAGJ,aAAU;AACV,WAAQ,eAAe,CAAC;;AAG5B,QAAM,iBAAiB,iBAAiB,QAAQ,EAAE,MAAM,MAAM,CAAC;AAK/D,MAAI,CAAC,SAAS,aACV,6BAA4B;AACxB,+BAA4B;AACxB,QAAI,MAAM,aAAa,yBAAyB,CAC5C,SAAQ;KAEd;IACJ;AAGN,SAAO,WAAW,QAAQ,UAAU;GACtC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
//#region src/utils/popup-pointer.ts
|
|
2
|
+
/** Shared hit/focus-path testing for pk-popup consumers (pointer or keyboard events). */
|
|
3
|
+
function isEventInsideOverlay(event, options = {}) {
|
|
4
|
+
const path = event.composedPath();
|
|
5
|
+
if (options.host && path.includes(options.host)) return true;
|
|
6
|
+
if (options.anchor && path.includes(options.anchor)) return true;
|
|
7
|
+
if (options.panel && path.includes(options.panel)) return true;
|
|
8
|
+
return path.some((node) => {
|
|
9
|
+
if (!(node instanceof HTMLElement)) return false;
|
|
10
|
+
if (node.classList.contains("popup") || node.localName === "pk-popup") return true;
|
|
11
|
+
return options.extraMatches?.(node) ?? false;
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
/** Shared light-dismiss hit testing for pk-popup consumers. */
|
|
15
|
+
function isPointerInsideOverlay(event, options = {}) {
|
|
16
|
+
return isEventInsideOverlay(event, options);
|
|
17
|
+
}
|
|
18
|
+
//#endregion
|
|
19
|
+
export { isPointerInsideOverlay as n, isEventInsideOverlay as t };
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=popup-pointer-C8lypj8V.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"popup-pointer-C8lypj8V.js","names":[],"sources":["../../src/utils/popup-pointer.ts"],"sourcesContent":["/**\n * Returns true when a pointer event occurred on pk-popup content.\n */\nexport function isPointerInPopupSurface(event: PointerEvent): boolean {\n return event.composedPath().some((node) => {\n if (!(node instanceof HTMLElement)) {\n return false;\n }\n\n return node.classList.contains('popup')\n || node.localName === 'pk-popup';\n });\n}\n\nexport type PointerInsideOverlayOptions = {\n host?: HTMLElement;\n anchor?: Element | null;\n panel?: Element | null;\n extraMatches?: (element: HTMLElement) => boolean;\n};\n\n/** Shared hit/focus-path testing for pk-popup consumers (pointer or keyboard events). */\nexport function isEventInsideOverlay(\n event: Event,\n options: PointerInsideOverlayOptions = {},\n): boolean {\n const path = event.composedPath();\n\n if (options.host && path.includes(options.host)) {\n return true;\n }\n\n if (options.anchor && path.includes(options.anchor)) {\n return true;\n }\n\n if (options.panel && path.includes(options.panel)) {\n return true;\n }\n\n return path.some((node) => {\n if (!(node instanceof HTMLElement)) {\n return false;\n }\n\n if (node.classList.contains('popup') || node.localName === 'pk-popup') {\n return true;\n }\n\n return options.extraMatches?.(node) ?? false;\n });\n}\n\n/** Shared light-dismiss hit testing for pk-popup consumers. */\nexport function isPointerInsideOverlay(\n event: PointerEvent,\n options: PointerInsideOverlayOptions = {},\n): boolean {\n return isEventInsideOverlay(event, options);\n}\n"],"mappings":";;AAsBA,SAAgB,qBACZ,OACA,UAAuC,EAAE,EAClC;CACP,MAAM,OAAO,MAAM,cAAc;AAEjC,KAAI,QAAQ,QAAQ,KAAK,SAAS,QAAQ,KAAK,CAC3C,QAAO;AAGX,KAAI,QAAQ,UAAU,KAAK,SAAS,QAAQ,OAAO,CAC/C,QAAO;AAGX,KAAI,QAAQ,SAAS,KAAK,SAAS,QAAQ,MAAM,CAC7C,QAAO;AAGX,QAAO,KAAK,MAAM,SAAS;AACvB,MAAI,EAAE,gBAAgB,aAClB,QAAO;AAGX,MAAI,KAAK,UAAU,SAAS,QAAQ,IAAI,KAAK,cAAc,WACvD,QAAO;AAGX,SAAO,QAAQ,eAAe,KAAK,IAAI;GACzC;;;AAIN,SAAgB,uBACZ,OACA,UAAuC,EAAE,EAClC;AACP,QAAO,qBAAqB,OAAO,QAAQ"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
//#region src/create-register-components.ts
|
|
2
|
+
/**
|
|
3
|
+
* Tiny helper for building a local async registrar from an explicit loader map.
|
|
4
|
+
* Prefer short family side-effect imports for Craft CP bundles:
|
|
5
|
+
* `import '@verbb/plugin-kit-web/components/button.js'`.
|
|
6
|
+
*/
|
|
7
|
+
function createRegisterComponents(loaders) {
|
|
8
|
+
return async (tags) => {
|
|
9
|
+
await Promise.all(tags.map((tag) => loaders[tag]()));
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
//#endregion
|
|
13
|
+
export { createRegisterComponents as t };
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=register-components-DNw6EYNo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-components-DNw6EYNo.js","names":[],"sources":["../../src/create-register-components.ts"],"sourcesContent":["/**\n * Tiny helper for building a local async registrar from an explicit loader map.\n * Prefer short family side-effect imports for Craft CP bundles:\n * `import '@verbb/plugin-kit-web/components/button.js'`.\n */\nexport function createRegisterComponents<T extends string>(\n loaders: Record<T, () => Promise<unknown>>,\n): (tags: readonly T[]) => Promise<void> {\n return async (tags) => {\n await Promise.all(tags.map((tag) => loaders[tag]()));\n };\n}\n"],"mappings":";;;;;;AAKA,SAAgB,yBACZ,SACqC;AACrC,QAAO,OAAO,SAAS;AACnB,QAAM,QAAQ,IAAI,KAAK,KAAK,QAAQ,QAAQ,MAAM,CAAC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { iconToSvg } from "@verbb/plugin-kit-icons";
|
|
2
|
+
//#region src/icons/render.ts
|
|
3
|
+
var renderIconHtml = (icon, options = {}) => {
|
|
4
|
+
return iconToSvg(icon, { title: options.title });
|
|
5
|
+
};
|
|
6
|
+
var createIconElement = (icon, options = {}) => {
|
|
7
|
+
const template = document.createElement("template");
|
|
8
|
+
template.innerHTML = renderIconHtml(icon, options);
|
|
9
|
+
const element = template.content.firstElementChild;
|
|
10
|
+
if (!(element instanceof SVGSVGElement)) throw new Error("Icon render did not produce an SVG element.");
|
|
11
|
+
return element;
|
|
12
|
+
};
|
|
13
|
+
//#endregion
|
|
14
|
+
export { renderIconHtml as n, createIconElement as t };
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=render-Dvc3MHQR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-Dvc3MHQR.js","names":[],"sources":["../../src/icons/render.ts"],"sourcesContent":["import { iconToSvg, type PkIcon } from '@verbb/plugin-kit-icons';\n\nexport type RenderIconOptions = {\n title?: string;\n};\n\nexport const renderIconHtml = (\n icon: PkIcon,\n options: RenderIconOptions = {},\n): string => {\n return iconToSvg(icon, { title: options.title });\n};\n\nexport const createIconElement = (\n icon: PkIcon,\n options: RenderIconOptions = {},\n): SVGSVGElement => {\n const template = document.createElement('template');\n template.innerHTML = renderIconHtml(icon, options);\n\n const element = template.content.firstElementChild;\n\n if (!(element instanceof SVGSVGElement)) {\n throw new Error('Icon render did not produce an SVG element.');\n }\n\n return element;\n};\n"],"mappings":";;AAMA,IAAa,kBACT,MACA,UAA6B,EAAE,KACtB;AACT,QAAO,UAAU,MAAM,EAAE,OAAO,QAAQ,OAAO,CAAC;;AAGpD,IAAa,qBACT,MACA,UAA6B,EAAE,KACf;CAChB,MAAM,WAAW,SAAS,cAAc,WAAW;AACnD,UAAS,YAAY,eAAe,MAAM,QAAQ;CAElD,MAAM,UAAU,SAAS,QAAQ;AAEjC,KAAI,EAAE,mBAAmB,eACrB,OAAM,IAAI,MAAM,8CAA8C;AAGlE,QAAO"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
//#region src/validators/required-validator.ts
|
|
2
|
+
function RequiredValidator(options = {}) {
|
|
3
|
+
let { validationElement, validationProperty } = options;
|
|
4
|
+
if (!validationElement && typeof document !== "undefined") validationElement = Object.assign(document.createElement("input"), { required: true });
|
|
5
|
+
if (!validationProperty) validationProperty = "value";
|
|
6
|
+
const validator = {
|
|
7
|
+
observedAttributes: ["required"],
|
|
8
|
+
message: validationElement?.validationMessage ?? "Please fill out this field.",
|
|
9
|
+
checkValidity(element) {
|
|
10
|
+
const result = {
|
|
11
|
+
message: "",
|
|
12
|
+
isValid: true,
|
|
13
|
+
invalidKeys: []
|
|
14
|
+
};
|
|
15
|
+
if (!element.required) return result;
|
|
16
|
+
const value = element[validationProperty];
|
|
17
|
+
if (!(value === null || value === void 0 || value === false || value === "")) return result;
|
|
18
|
+
result.isValid = false;
|
|
19
|
+
result.message = typeof validator.message === "function" ? validator.message(element) : validator.message ?? "";
|
|
20
|
+
result.invalidKeys.push("valueMissing");
|
|
21
|
+
return result;
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
return validator;
|
|
25
|
+
}
|
|
26
|
+
//#endregion
|
|
27
|
+
export { RequiredValidator as t };
|
|
28
|
+
|
|
29
|
+
//# sourceMappingURL=required-validator-CEg8dvjS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"required-validator-CEg8dvjS.js","names":[],"sources":["../../src/validators/required-validator.ts"],"sourcesContent":["import type { PkFormAssociatedElement } from '../base/pk-form-associated-element.js';\nimport type { PkValidator } from './types.js';\n\nexport type RequiredValidatorOptions = {\n validationElement?: HTMLInputElement | HTMLSelectElement;\n validationProperty?: string;\n};\n\nexport function RequiredValidator(options: RequiredValidatorOptions = {}): PkValidator {\n let { validationElement, validationProperty } = options;\n\n if (!validationElement && typeof document !== 'undefined') {\n validationElement = Object.assign(document.createElement('input'), { required: true });\n }\n\n if (!validationProperty) {\n validationProperty = 'value';\n }\n\n const validator: PkValidator = {\n observedAttributes: ['required'],\n message: validationElement?.validationMessage ?? 'Please fill out this field.',\n checkValidity(element: PkFormAssociatedElement) {\n const result = {\n message: '',\n isValid: true,\n invalidKeys: [] as ReturnType<PkValidator['checkValidity']>['invalidKeys'],\n };\n\n if (!element.required) {\n return result;\n }\n\n const value = (element as unknown as Record<string, unknown>)[validationProperty!];\n const isEmpty = value === null || value === undefined || value === false || value === '';\n\n if (!isEmpty) {\n return result;\n }\n\n result.isValid = false;\n result.message = typeof validator.message === 'function'\n ? validator.message(element)\n : validator.message ?? '';\n result.invalidKeys.push('valueMissing');\n\n return result;\n },\n };\n\n return validator;\n}\n"],"mappings":";AAQA,SAAgB,kBAAkB,UAAoC,EAAE,EAAe;CACnF,IAAI,EAAE,mBAAmB,uBAAuB;AAEhD,KAAI,CAAC,qBAAqB,OAAO,aAAa,YAC1C,qBAAoB,OAAO,OAAO,SAAS,cAAc,QAAQ,EAAE,EAAE,UAAU,MAAM,CAAC;AAG1F,KAAI,CAAC,mBACD,sBAAqB;CAGzB,MAAM,YAAyB;EAC3B,oBAAoB,CAAC,WAAW;EAChC,SAAS,mBAAmB,qBAAqB;EACjD,cAAc,SAAkC;GAC5C,MAAM,SAAS;IACX,SAAS;IACT,SAAS;IACT,aAAa,EAAE;IAClB;AAED,OAAI,CAAC,QAAQ,SACT,QAAO;GAGX,MAAM,QAAS,QAA+C;AAG9D,OAAI,EAFY,UAAU,QAAQ,UAAU,KAAA,KAAa,UAAU,SAAS,UAAU,IAGlF,QAAO;AAGX,UAAO,UAAU;AACjB,UAAO,UAAU,OAAO,UAAU,YAAY,aACxC,UAAU,QAAQ,QAAQ,GAC1B,UAAU,WAAW;AAC3B,UAAO,YAAY,KAAK,eAAe;AAEvC,UAAO;;EAEd;AAED,QAAO"}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
//#region src/a11y/offset.ts
|
|
2
|
+
/**
|
|
3
|
+
* Element offset relative to a parent — adapted from internal/offset.ts.
|
|
4
|
+
* Works around shadow-DOM offsetParent quirks in Chromium.
|
|
5
|
+
*/
|
|
6
|
+
function getOffset(element, parent) {
|
|
7
|
+
return {
|
|
8
|
+
top: Math.round(element.getBoundingClientRect().top - parent.getBoundingClientRect().top),
|
|
9
|
+
left: Math.round(element.getBoundingClientRect().left - parent.getBoundingClientRect().left)
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
//#endregion
|
|
13
|
+
//#region src/a11y/scroll-lock.ts
|
|
14
|
+
/**
|
|
15
|
+
* Document scroll lock for overlays (dialog, etc.).
|
|
16
|
+
*
|
|
17
|
+
* Ref-counted so nested overlays unlock only when all close.
|
|
18
|
+
*
|
|
19
|
+
* Avoids the classic “fixed chrome jumps” bug from `padding-right` compensation:
|
|
20
|
+
* Craft CP / playground fixed sidebars & tip bars do not inherit body padding, so
|
|
21
|
+
* `body { padding-right: scrollbar }` shifts them when the scrollbar goes
|
|
22
|
+
* away. v1 (Base UI) did not jump — follow that model instead:
|
|
23
|
+
*
|
|
24
|
+
* 1. Prefer a real `scrollbar-gutter: stable` lock (width unchanged under overflow:hidden).
|
|
25
|
+
* 2. Otherwise keep `overflow-y: scroll` on `<html>` so the gutter stays painted, and
|
|
26
|
+
* constrain `<body>` so the page cannot scroll.
|
|
27
|
+
*/
|
|
28
|
+
var locks = /* @__PURE__ */ new Set();
|
|
29
|
+
/** Undo for the currently applied lock (only while locks.size > 0). */
|
|
30
|
+
var restoreLock = null;
|
|
31
|
+
function isOverflowScrollContainer(element) {
|
|
32
|
+
const overflowY = getComputedStyle(element).overflowY;
|
|
33
|
+
return overflowY === "auto" || overflowY === "scroll" || overflowY === "overlay";
|
|
34
|
+
}
|
|
35
|
+
/** True when setting gutter + toggling overflow does not change layout width. */
|
|
36
|
+
function supportsStableScrollbarGutterLock() {
|
|
37
|
+
if (typeof CSS === "undefined" || !CSS.supports?.("scrollbar-gutter", "stable")) return false;
|
|
38
|
+
const html = document.documentElement;
|
|
39
|
+
const body = document.body;
|
|
40
|
+
const scrollContainer = isOverflowScrollContainer(html) ? html : body;
|
|
41
|
+
const prevOverflowY = scrollContainer.style.overflowY;
|
|
42
|
+
const prevGutter = html.style.scrollbarGutter;
|
|
43
|
+
html.style.scrollbarGutter = "stable";
|
|
44
|
+
scrollContainer.style.overflowY = "scroll";
|
|
45
|
+
const before = scrollContainer.offsetWidth;
|
|
46
|
+
scrollContainer.style.overflowY = "hidden";
|
|
47
|
+
const after = scrollContainer.offsetWidth;
|
|
48
|
+
scrollContainer.style.overflowY = prevOverflowY;
|
|
49
|
+
html.style.scrollbarGutter = prevGutter;
|
|
50
|
+
return before === after;
|
|
51
|
+
}
|
|
52
|
+
function getInsetScrollbarWidth() {
|
|
53
|
+
return Math.max(0, window.innerWidth - document.documentElement.clientWidth);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Apply a lock that does not use body padding-right (fixed elements stay put).
|
|
57
|
+
* Returns a restore function.
|
|
58
|
+
*/
|
|
59
|
+
function applyScrollLock() {
|
|
60
|
+
const html = document.documentElement;
|
|
61
|
+
const body = document.body;
|
|
62
|
+
const htmlStyles = getComputedStyle(html);
|
|
63
|
+
const bodyStyles = getComputedStyle(body);
|
|
64
|
+
if (getInsetScrollbarWidth() < 2) {
|
|
65
|
+
const prevHtmlOverflow = html.style.overflow;
|
|
66
|
+
const prevBodyOverflow = body.style.overflow;
|
|
67
|
+
html.style.overflow = "hidden";
|
|
68
|
+
body.style.overflow = "hidden";
|
|
69
|
+
return () => {
|
|
70
|
+
html.style.overflow = prevHtmlOverflow;
|
|
71
|
+
body.style.overflow = prevBodyOverflow;
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
const elementToLock = isOverflowScrollContainer(html) ? html : body;
|
|
75
|
+
if (supportsStableScrollbarGutterLock()) {
|
|
76
|
+
const prevGutter = html.style.scrollbarGutter;
|
|
77
|
+
const prevOverflowY = elementToLock.style.overflowY;
|
|
78
|
+
const prevOverflowX = elementToLock.style.overflowX;
|
|
79
|
+
html.style.scrollbarGutter = htmlStyles.scrollbarGutter?.includes("both-edges") ? "stable both-edges" : "stable";
|
|
80
|
+
elementToLock.style.overflowY = "hidden";
|
|
81
|
+
elementToLock.style.overflowX = "hidden";
|
|
82
|
+
return () => {
|
|
83
|
+
html.style.scrollbarGutter = prevGutter;
|
|
84
|
+
elementToLock.style.overflowY = prevOverflowY;
|
|
85
|
+
elementToLock.style.overflowX = prevOverflowX;
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
const scrollTop = html.scrollTop;
|
|
89
|
+
const scrollLeft = html.scrollLeft;
|
|
90
|
+
const scrollbarWidth = Math.max(0, window.innerWidth - body.clientWidth);
|
|
91
|
+
const scrollbarHeight = Math.max(0, window.innerHeight - body.clientHeight);
|
|
92
|
+
const marginY = parseFloat(bodyStyles.marginTop) + parseFloat(bodyStyles.marginBottom);
|
|
93
|
+
const marginX = parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight);
|
|
94
|
+
const prevHtml = {
|
|
95
|
+
scrollbarGutter: html.style.scrollbarGutter,
|
|
96
|
+
overflowY: html.style.overflowY,
|
|
97
|
+
overflowX: html.style.overflowX,
|
|
98
|
+
scrollBehavior: html.style.scrollBehavior
|
|
99
|
+
};
|
|
100
|
+
const prevBody = {
|
|
101
|
+
position: body.style.position,
|
|
102
|
+
height: body.style.height,
|
|
103
|
+
width: body.style.width,
|
|
104
|
+
boxSizing: body.style.boxSizing,
|
|
105
|
+
overflow: body.style.overflow,
|
|
106
|
+
overflowY: body.style.overflowY,
|
|
107
|
+
overflowX: body.style.overflowX,
|
|
108
|
+
scrollBehavior: body.style.scrollBehavior
|
|
109
|
+
};
|
|
110
|
+
html.style.scrollbarGutter = "stable";
|
|
111
|
+
html.style.overflowY = "scroll";
|
|
112
|
+
html.style.overflowX = "hidden";
|
|
113
|
+
html.style.scrollBehavior = "unset";
|
|
114
|
+
body.style.position = "relative";
|
|
115
|
+
body.style.boxSizing = "border-box";
|
|
116
|
+
body.style.overflow = "hidden";
|
|
117
|
+
body.style.scrollBehavior = "unset";
|
|
118
|
+
body.style.width = marginX || scrollbarWidth ? `calc(100vw - ${marginX + scrollbarWidth}px)` : "100vw";
|
|
119
|
+
body.style.height = marginY || scrollbarHeight ? `calc(100dvh - ${marginY + scrollbarHeight}px)` : "100dvh";
|
|
120
|
+
body.scrollTop = scrollTop;
|
|
121
|
+
body.scrollLeft = scrollLeft;
|
|
122
|
+
return () => {
|
|
123
|
+
Object.assign(html.style, prevHtml);
|
|
124
|
+
Object.assign(body.style, prevBody);
|
|
125
|
+
html.scrollTop = scrollTop;
|
|
126
|
+
html.scrollLeft = scrollLeft;
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
function lockBodyScrolling(lockingEl) {
|
|
130
|
+
locks.add(lockingEl);
|
|
131
|
+
if (locks.size === 1) {
|
|
132
|
+
document.documentElement.classList.add("pk-scroll-lock");
|
|
133
|
+
document.documentElement.style.setProperty("--pk-scroll-lock-size", "0px");
|
|
134
|
+
restoreLock = applyScrollLock();
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
function unlockBodyScrolling(lockingEl) {
|
|
138
|
+
locks.delete(lockingEl);
|
|
139
|
+
if (locks.size === 0) {
|
|
140
|
+
restoreLock?.();
|
|
141
|
+
restoreLock = null;
|
|
142
|
+
document.documentElement.classList.remove("pk-scroll-lock");
|
|
143
|
+
document.documentElement.style.removeProperty("--pk-scroll-lock-size");
|
|
144
|
+
document.documentElement.style.removeProperty("--pk-scroll-lock-gutter");
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
/** Dev/diagnostic — how many overlay hosts currently hold the scroll lock. */
|
|
148
|
+
function getScrollLockDepth() {
|
|
149
|
+
return locks.size;
|
|
150
|
+
}
|
|
151
|
+
/** Emergency clear when lock ref-count and html class drift out of sync. */
|
|
152
|
+
function forceClearScrollLock() {
|
|
153
|
+
locks.clear();
|
|
154
|
+
restoreLock?.();
|
|
155
|
+
restoreLock = null;
|
|
156
|
+
document.documentElement.classList.remove("pk-scroll-lock");
|
|
157
|
+
document.documentElement.style.removeProperty("--pk-scroll-lock-size");
|
|
158
|
+
document.documentElement.style.removeProperty("--pk-scroll-lock-gutter");
|
|
159
|
+
}
|
|
160
|
+
/** Scroll an element into view of its scroll container if needed. */
|
|
161
|
+
function scrollIntoView(element, container, direction = "vertical", behavior = "smooth") {
|
|
162
|
+
const offset = getOffset(element, container);
|
|
163
|
+
const offsetTop = offset.top + container.scrollTop;
|
|
164
|
+
const offsetLeft = offset.left + container.scrollLeft;
|
|
165
|
+
const minX = container.scrollLeft;
|
|
166
|
+
const maxX = container.scrollLeft + container.offsetWidth;
|
|
167
|
+
const minY = container.scrollTop;
|
|
168
|
+
const maxY = container.scrollTop + container.offsetHeight;
|
|
169
|
+
if (direction === "horizontal" || direction === "both") {
|
|
170
|
+
if (offsetLeft < minX) container.scrollTo({
|
|
171
|
+
left: offsetLeft,
|
|
172
|
+
behavior
|
|
173
|
+
});
|
|
174
|
+
else if (offsetLeft + element.clientWidth > maxX) container.scrollTo({
|
|
175
|
+
left: offsetLeft - container.offsetWidth + element.clientWidth,
|
|
176
|
+
behavior
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
if (direction === "vertical" || direction === "both") {
|
|
180
|
+
if (offsetTop < minY) container.scrollTo({
|
|
181
|
+
top: offsetTop,
|
|
182
|
+
behavior
|
|
183
|
+
});
|
|
184
|
+
else if (offsetTop + element.clientHeight > maxY) container.scrollTo({
|
|
185
|
+
top: offsetTop - container.offsetHeight + element.clientHeight,
|
|
186
|
+
behavior
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
//#endregion
|
|
191
|
+
export { unlockBodyScrolling as a, scrollIntoView as i, getScrollLockDepth as n, getOffset as o, lockBodyScrolling as r, forceClearScrollLock as t };
|
|
192
|
+
|
|
193
|
+
//# sourceMappingURL=scroll-lock-B4o9vdzJ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scroll-lock-B4o9vdzJ.js","names":[],"sources":["../../src/a11y/offset.ts","../../src/a11y/scroll-lock.ts"],"sourcesContent":["/**\n * Element offset relative to a parent — adapted from internal/offset.ts.\n * Works around shadow-DOM offsetParent quirks in Chromium.\n */\nexport function getOffset(element: HTMLElement, parent: HTMLElement): { top: number; left: number } {\n return {\n top: Math.round(element.getBoundingClientRect().top - parent.getBoundingClientRect().top),\n left: Math.round(element.getBoundingClientRect().left - parent.getBoundingClientRect().left),\n };\n}\n","/**\n * Document scroll lock for overlays (dialog, etc.).\n *\n * Ref-counted so nested overlays unlock only when all close.\n *\n * Avoids the classic “fixed chrome jumps” bug from `padding-right` compensation:\n * Craft CP / playground fixed sidebars & tip bars do not inherit body padding, so\n * `body { padding-right: scrollbar }` shifts them when the scrollbar goes\n * away. v1 (Base UI) did not jump — follow that model instead:\n *\n * 1. Prefer a real `scrollbar-gutter: stable` lock (width unchanged under overflow:hidden).\n * 2. Otherwise keep `overflow-y: scroll` on `<html>` so the gutter stays painted, and\n * constrain `<body>` so the page cannot scroll.\n */\n\nimport { getOffset } from './offset.js';\n\nconst locks = new Set<HTMLElement>();\n\n/** Undo for the currently applied lock (only while locks.size > 0). */\nlet restoreLock: (() => void) | null = null;\n\nfunction isOverflowScrollContainer(element: Element): boolean {\n const style = getComputedStyle(element);\n const overflowY = style.overflowY;\n\n return overflowY === 'auto' || overflowY === 'scroll' || overflowY === 'overlay';\n}\n\n/** True when setting gutter + toggling overflow does not change layout width. */\nfunction supportsStableScrollbarGutterLock(): boolean {\n if (typeof CSS === 'undefined' || !CSS.supports?.('scrollbar-gutter', 'stable')) {\n return false;\n }\n\n const html = document.documentElement;\n const body = document.body;\n const scrollContainer = isOverflowScrollContainer(html) ? html : body;\n const prevOverflowY = scrollContainer.style.overflowY;\n const prevGutter = html.style.scrollbarGutter;\n\n html.style.scrollbarGutter = 'stable';\n scrollContainer.style.overflowY = 'scroll';\n const before = scrollContainer.offsetWidth;\n scrollContainer.style.overflowY = 'hidden';\n const after = scrollContainer.offsetWidth;\n\n scrollContainer.style.overflowY = prevOverflowY;\n html.style.scrollbarGutter = prevGutter;\n\n return before === after;\n}\n\nfunction getInsetScrollbarWidth(): number {\n return Math.max(0, window.innerWidth - document.documentElement.clientWidth);\n}\n\n/**\n * Apply a lock that does not use body padding-right (fixed elements stay put).\n * Returns a restore function.\n */\nfunction applyScrollLock(): () => void {\n const html = document.documentElement;\n const body = document.body;\n const htmlStyles = getComputedStyle(html);\n const bodyStyles = getComputedStyle(body);\n\n // Overlay / floating scrollbars (macOS “show when scrolling”): hiding overflow\n // does not change layout width — nothing to compensate.\n if (getInsetScrollbarWidth() < 2) {\n const prevHtmlOverflow = html.style.overflow;\n const prevBodyOverflow = body.style.overflow;\n html.style.overflow = 'hidden';\n body.style.overflow = 'hidden';\n return () => {\n html.style.overflow = prevHtmlOverflow;\n body.style.overflow = prevBodyOverflow;\n };\n }\n\n const elementToLock = isOverflowScrollContainer(html) ? html : body;\n\n // Path A — gutter stays stable under overflow:hidden (Firefox; some Chrome builds).\n if (supportsStableScrollbarGutterLock()) {\n const prevGutter = html.style.scrollbarGutter;\n const prevOverflowY = elementToLock.style.overflowY;\n const prevOverflowX = elementToLock.style.overflowX;\n\n html.style.scrollbarGutter = htmlStyles.scrollbarGutter?.includes('both-edges')\n ? 'stable both-edges'\n : 'stable';\n elementToLock.style.overflowY = 'hidden';\n elementToLock.style.overflowX = 'hidden';\n\n return () => {\n html.style.scrollbarGutter = prevGutter;\n elementToLock.style.overflowY = prevOverflowY;\n elementToLock.style.overflowX = prevOverflowX;\n };\n }\n\n // Path B — keep the inset scrollbar painted (`overflow-y: scroll`) so layout\n // width never changes, then freeze body scrolling. Matches Base UI inset lock.\n const scrollTop = html.scrollTop;\n const scrollLeft = html.scrollLeft;\n const scrollbarWidth = Math.max(0, window.innerWidth - body.clientWidth);\n const scrollbarHeight = Math.max(0, window.innerHeight - body.clientHeight);\n const marginY = parseFloat(bodyStyles.marginTop) + parseFloat(bodyStyles.marginBottom);\n const marginX = parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight);\n\n const prevHtml = {\n scrollbarGutter: html.style.scrollbarGutter,\n overflowY: html.style.overflowY,\n overflowX: html.style.overflowX,\n scrollBehavior: html.style.scrollBehavior,\n };\n const prevBody = {\n position: body.style.position,\n height: body.style.height,\n width: body.style.width,\n boxSizing: body.style.boxSizing,\n overflow: body.style.overflow,\n overflowY: body.style.overflowY,\n overflowX: body.style.overflowX,\n scrollBehavior: body.style.scrollBehavior,\n };\n\n html.style.scrollbarGutter = 'stable';\n html.style.overflowY = 'scroll';\n html.style.overflowX = 'hidden';\n html.style.scrollBehavior = 'unset';\n\n body.style.position = 'relative';\n body.style.boxSizing = 'border-box';\n body.style.overflow = 'hidden';\n body.style.scrollBehavior = 'unset';\n body.style.width = marginX || scrollbarWidth\n ? `calc(100vw - ${marginX + scrollbarWidth}px)`\n : '100vw';\n body.style.height = marginY || scrollbarHeight\n ? `calc(100dvh - ${marginY + scrollbarHeight}px)`\n : '100dvh';\n\n body.scrollTop = scrollTop;\n body.scrollLeft = scrollLeft;\n\n return () => {\n Object.assign(html.style, prevHtml);\n Object.assign(body.style, prevBody);\n html.scrollTop = scrollTop;\n html.scrollLeft = scrollLeft;\n };\n}\n\nexport function lockBodyScrolling(lockingEl: HTMLElement): void {\n locks.add(lockingEl);\n\n if (locks.size === 1) {\n document.documentElement.classList.add('pk-scroll-lock');\n // Keep the CSS variable for any consumer that opts in; always 0 now that we\n // no longer pad the body (fixed chrome must not shift).\n document.documentElement.style.setProperty('--pk-scroll-lock-size', '0px');\n restoreLock = applyScrollLock();\n }\n}\n\nexport function unlockBodyScrolling(lockingEl: HTMLElement): void {\n locks.delete(lockingEl);\n\n if (locks.size === 0) {\n restoreLock?.();\n restoreLock = null;\n document.documentElement.classList.remove('pk-scroll-lock');\n document.documentElement.style.removeProperty('--pk-scroll-lock-size');\n document.documentElement.style.removeProperty('--pk-scroll-lock-gutter');\n }\n}\n\n/** Dev/diagnostic — how many overlay hosts currently hold the scroll lock. */\nexport function getScrollLockDepth(): number {\n return locks.size;\n}\n\n/** Emergency clear when lock ref-count and html class drift out of sync. */\nexport function forceClearScrollLock(): void {\n locks.clear();\n restoreLock?.();\n restoreLock = null;\n document.documentElement.classList.remove('pk-scroll-lock');\n document.documentElement.style.removeProperty('--pk-scroll-lock-size');\n document.documentElement.style.removeProperty('--pk-scroll-lock-gutter');\n}\n\n/** Scroll an element into view of its scroll container if needed. */\nexport function scrollIntoView(\n element: HTMLElement,\n container: HTMLElement,\n direction: 'horizontal' | 'vertical' | 'both' = 'vertical',\n behavior: ScrollBehavior = 'smooth',\n): void {\n const offset = getOffset(element, container);\n const offsetTop = offset.top + container.scrollTop;\n const offsetLeft = offset.left + container.scrollLeft;\n const minX = container.scrollLeft;\n const maxX = container.scrollLeft + container.offsetWidth;\n const minY = container.scrollTop;\n const maxY = container.scrollTop + container.offsetHeight;\n\n if (direction === 'horizontal' || direction === 'both') {\n if (offsetLeft < minX) {\n container.scrollTo({ left: offsetLeft, behavior });\n } else if (offsetLeft + element.clientWidth > maxX) {\n container.scrollTo({\n left: offsetLeft - container.offsetWidth + element.clientWidth,\n behavior,\n });\n }\n }\n\n if (direction === 'vertical' || direction === 'both') {\n if (offsetTop < minY) {\n container.scrollTo({ top: offsetTop, behavior });\n } else if (offsetTop + element.clientHeight > maxY) {\n container.scrollTo({\n top: offsetTop - container.offsetHeight + element.clientHeight,\n behavior,\n });\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
//#region src/components/spinner/spinner-utils.ts
|
|
2
|
+
function getButtonSpinnerSize(buttonSize = "default") {
|
|
3
|
+
if (buttonSize === "xxs" || buttonSize === "xs") return "xxs";
|
|
4
|
+
if (buttonSize === "lg" || buttonSize === "xl") return "sm";
|
|
5
|
+
return "xs";
|
|
6
|
+
}
|
|
7
|
+
function resolveSpinnerVariant(buttonVariant = "default", override) {
|
|
8
|
+
if (override) return override;
|
|
9
|
+
if (buttonVariant === "primary" || buttonVariant === "secondary" || buttonVariant === "dashed" || buttonVariant === "outline" || buttonVariant === "transparent") return buttonVariant;
|
|
10
|
+
return "default";
|
|
11
|
+
}
|
|
12
|
+
//#endregion
|
|
13
|
+
export { resolveSpinnerVariant as n, getButtonSpinnerSize as t };
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=spinner-utils-CDfHypTv.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spinner-utils-CDfHypTv.js","names":[],"sources":["../../src/components/spinner/spinner-utils.ts"],"sourcesContent":["import type { PkSpinnerSize, PkSpinnerVariant } from './pk-spinner.js';\n\ntype ButtonSize = 'default' | 'xxs' | 'xs' | 'sm' | 'lg' | 'xl' | 'none';\ntype ButtonVariant =\n | 'default'\n | 'primary'\n | 'secondary'\n | 'outline'\n | 'transparent'\n | 'link'\n | 'dashed'\n | 'none';\n\nexport function getButtonSpinnerSize(buttonSize: ButtonSize = 'default'): PkSpinnerSize {\n if (buttonSize === 'xxs' || buttonSize === 'xs') {\n return 'xxs';\n }\n\n if (buttonSize === 'lg' || buttonSize === 'xl') {\n return 'sm';\n }\n\n return 'xs';\n}\n\nexport function resolveSpinnerVariant(\n buttonVariant: ButtonVariant = 'default',\n override?: PkSpinnerVariant,\n): PkSpinnerVariant {\n if (override) {\n return override;\n }\n\n if (\n buttonVariant === 'primary'\n || buttonVariant === 'secondary'\n || buttonVariant === 'dashed'\n || buttonVariant === 'outline'\n || buttonVariant === 'transparent'\n ) {\n return buttonVariant;\n }\n\n return 'default';\n}\n"],"mappings":";AAaA,SAAgB,qBAAqB,aAAyB,WAA0B;AACpF,KAAI,eAAe,SAAS,eAAe,KACvC,QAAO;AAGX,KAAI,eAAe,QAAQ,eAAe,KACtC,QAAO;AAGX,QAAO;;AAGX,SAAgB,sBACZ,gBAA+B,WAC/B,UACgB;AAChB,KAAI,SACA,QAAO;AAGX,KACI,kBAAkB,aACf,kBAAkB,eAClB,kBAAkB,YAClB,kBAAkB,aAClB,kBAAkB,cAErB,QAAO;AAGX,QAAO"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
//#region src/utils/supports-popover.ts
|
|
2
|
+
/** Whether the host supports the Popover API (`popover` + `showPopover` / `hidePopover`). */
|
|
3
|
+
var SUPPORTS_POPOVER = typeof globalThis.HTMLElement !== "undefined" && Object.prototype.hasOwnProperty.call(globalThis.HTMLElement.prototype, "popover");
|
|
4
|
+
//#endregion
|
|
5
|
+
export { SUPPORTS_POPOVER as t };
|
|
6
|
+
|
|
7
|
+
//# sourceMappingURL=supports-popover-CUBsbHpS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supports-popover-CUBsbHpS.js","names":[],"sources":["../../src/utils/supports-popover.ts"],"sourcesContent":["/** Whether the host supports the Popover API (`popover` + `showPopover` / `hidePopover`). */\nexport const SUPPORTS_POPOVER = typeof globalThis.HTMLElement !== 'undefined'\n && Object.prototype.hasOwnProperty.call(globalThis.HTMLElement.prototype, 'popover');\n"],"mappings":";;AACA,IAAa,mBAAmB,OAAO,WAAW,gBAAgB,eAC3D,OAAO,UAAU,eAAe,KAAK,WAAW,YAAY,WAAW,UAAU"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
//#region src/utils/listbox-keyboard.ts
|
|
2
|
+
var LISTBOX_NAVIGATION_KEYS = new Set([
|
|
3
|
+
"ArrowDown",
|
|
4
|
+
"ArrowUp",
|
|
5
|
+
"ArrowLeft",
|
|
6
|
+
"ArrowRight",
|
|
7
|
+
"Home",
|
|
8
|
+
"End",
|
|
9
|
+
"Enter",
|
|
10
|
+
" ",
|
|
11
|
+
"Escape"
|
|
12
|
+
]);
|
|
13
|
+
/** Returns true for type-to-select character keys (single printable characters). */
|
|
14
|
+
function isListboxTypeToSelectKey(event) {
|
|
15
|
+
return event.key.length === 1 && !event.ctrlKey && !event.metaKey && !event.altKey;
|
|
16
|
+
}
|
|
17
|
+
function getEnabledListboxItems(items) {
|
|
18
|
+
return items.filter((item) => {
|
|
19
|
+
return !item.hasAttribute("disabled") && !item.hasAttribute("hidden") && item.getAttribute("aria-disabled") !== "true" && item.getAttribute("aria-hidden") !== "true";
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
function focusListboxItem(enabled, index, focusItem) {
|
|
23
|
+
if (focusItem) {
|
|
24
|
+
focusItem(index);
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const item = enabled[index];
|
|
28
|
+
if (item instanceof HTMLElement && "focusControl" in item && typeof item.focusControl === "function") {
|
|
29
|
+
item.focusControl();
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
item?.focus();
|
|
33
|
+
}
|
|
34
|
+
function activateListboxItem(item) {
|
|
35
|
+
if (!item) return;
|
|
36
|
+
const control = item.shadowRoot?.querySelector(".option");
|
|
37
|
+
if (control instanceof HTMLButtonElement) {
|
|
38
|
+
control.click();
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
item.click();
|
|
42
|
+
}
|
|
43
|
+
function handleListboxKeyDown(event, options) {
|
|
44
|
+
const enabled = getEnabledListboxItems(options.items);
|
|
45
|
+
const loop = options.loop === true;
|
|
46
|
+
if (enabled.length === 0) return options.currentIndex;
|
|
47
|
+
let index = Math.max(0, options.currentIndex);
|
|
48
|
+
const current = enabled[index] ?? enabled[0];
|
|
49
|
+
index = enabled.indexOf(current);
|
|
50
|
+
if (index < 0) index = 0;
|
|
51
|
+
switch (event.key) {
|
|
52
|
+
case "ArrowDown":
|
|
53
|
+
case "ArrowRight":
|
|
54
|
+
event.preventDefault();
|
|
55
|
+
if (loop && index >= enabled.length - 1) index = 0;
|
|
56
|
+
else index = Math.min(index + 1, enabled.length - 1);
|
|
57
|
+
focusListboxItem(enabled, index, options.focusItem);
|
|
58
|
+
options.onSelect(index);
|
|
59
|
+
return index;
|
|
60
|
+
case "ArrowUp":
|
|
61
|
+
case "ArrowLeft":
|
|
62
|
+
event.preventDefault();
|
|
63
|
+
if (loop && index <= 0) index = enabled.length - 1;
|
|
64
|
+
else index = Math.max(index - 1, 0);
|
|
65
|
+
focusListboxItem(enabled, index, options.focusItem);
|
|
66
|
+
options.onSelect(index);
|
|
67
|
+
return index;
|
|
68
|
+
case "Home":
|
|
69
|
+
event.preventDefault();
|
|
70
|
+
index = 0;
|
|
71
|
+
focusListboxItem(enabled, index, options.focusItem);
|
|
72
|
+
options.onSelect(index);
|
|
73
|
+
return index;
|
|
74
|
+
case "End":
|
|
75
|
+
event.preventDefault();
|
|
76
|
+
index = enabled.length - 1;
|
|
77
|
+
focusListboxItem(enabled, index, options.focusItem);
|
|
78
|
+
options.onSelect(index);
|
|
79
|
+
return index;
|
|
80
|
+
case "Enter":
|
|
81
|
+
case " ":
|
|
82
|
+
if (!options.multiselect) {
|
|
83
|
+
event.preventDefault();
|
|
84
|
+
activateListboxItem(enabled[index]);
|
|
85
|
+
}
|
|
86
|
+
return index;
|
|
87
|
+
case "Escape":
|
|
88
|
+
event.preventDefault();
|
|
89
|
+
options.onClose?.();
|
|
90
|
+
return index;
|
|
91
|
+
default: return index;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/** Type-to-select string matching . */
|
|
95
|
+
function createTypeToSelectHandler(items, onMatch) {
|
|
96
|
+
let typeToSelectString = "";
|
|
97
|
+
let typeToSelectTimeout = 0;
|
|
98
|
+
const reset = () => {
|
|
99
|
+
typeToSelectString = "";
|
|
100
|
+
window.clearTimeout(typeToSelectTimeout);
|
|
101
|
+
};
|
|
102
|
+
const handleKey = (event) => {
|
|
103
|
+
if (event.key.length !== 1 || event.ctrlKey || event.metaKey || event.altKey) return;
|
|
104
|
+
typeToSelectString += event.key.toLowerCase();
|
|
105
|
+
window.clearTimeout(typeToSelectTimeout);
|
|
106
|
+
typeToSelectTimeout = window.setTimeout(reset, 750);
|
|
107
|
+
const enabled = getEnabledListboxItems(items);
|
|
108
|
+
for (let index = 0; index < enabled.length; index += 1) if ((enabled[index]?.textContent ?? "").trim().toLowerCase().startsWith(typeToSelectString)) {
|
|
109
|
+
onMatch(index);
|
|
110
|
+
event.preventDefault();
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
return {
|
|
115
|
+
handleKey,
|
|
116
|
+
reset
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
//#endregion
|
|
120
|
+
//#region src/internal/sync-listbox-separators.ts
|
|
121
|
+
/**
|
|
122
|
+
* Hide listbox `pk-separator` siblings that no longer sit between two visible
|
|
123
|
+
* `pk-option` / `pk-option-group` items (e.g. after combobox filter hides groups).
|
|
124
|
+
*/
|
|
125
|
+
var isListboxItemHidden = (element) => {
|
|
126
|
+
return element.hidden || element.hasAttribute("data-pk-filter-empty");
|
|
127
|
+
};
|
|
128
|
+
var syncListboxSeparators = (root) => {
|
|
129
|
+
const children = [...root.querySelectorAll(":scope > pk-option, :scope > pk-option-group, :scope > pk-separator")];
|
|
130
|
+
const nearestItem = (from, direction) => {
|
|
131
|
+
for (let index = from + direction; direction < 0 ? index >= 0 : index < children.length; index += direction) {
|
|
132
|
+
const child = children[index];
|
|
133
|
+
if (!child || child.localName === "pk-separator") continue;
|
|
134
|
+
return child;
|
|
135
|
+
}
|
|
136
|
+
return null;
|
|
137
|
+
};
|
|
138
|
+
for (let index = 0; index < children.length; index += 1) {
|
|
139
|
+
const child = children[index];
|
|
140
|
+
if (!child || child.localName !== "pk-separator") continue;
|
|
141
|
+
const before = nearestItem(index, -1);
|
|
142
|
+
const after = nearestItem(index, 1);
|
|
143
|
+
child.hidden = !before || !after || isListboxItemHidden(before) || isListboxItemHidden(after);
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
//#endregion
|
|
147
|
+
export { isListboxTypeToSelectKey as a, handleListboxKeyDown as i, LISTBOX_NAVIGATION_KEYS as n, createTypeToSelectHandler as r, syncListboxSeparators as t };
|
|
148
|
+
|
|
149
|
+
//# sourceMappingURL=sync-listbox-separators-B1-V0oJi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-listbox-separators-B1-V0oJi.js","names":[],"sources":["../../src/utils/listbox-keyboard.ts","../../src/internal/sync-listbox-separators.ts"],"sourcesContent":["export const LISTBOX_NAVIGATION_KEYS = new Set([\n 'ArrowDown',\n 'ArrowUp',\n 'ArrowLeft',\n 'ArrowRight',\n 'Home',\n 'End',\n 'Enter',\n ' ',\n 'Escape',\n]);\n\n/** Returns true for type-to-select character keys (single printable characters). */\nexport function isListboxTypeToSelectKey(event: KeyboardEvent): boolean {\n return event.key.length === 1 && !event.ctrlKey && !event.metaKey && !event.altKey;\n}\n\n/**\n * Listbox keyboard navigation — patterns for pk-select / WAI-ARIA listbox.\n */\nexport type ListboxKeyboardOptions = {\n items: HTMLElement[];\n currentIndex: number;\n onSelect: (index: number) => void;\n onClose?: () => void;\n multiselect?: boolean;\n /** When true, ArrowUp/Down wrap from last→first and first→last. Default: false. */\n /** When `loop` is omitted, listbox navigation does not loop (Base UI `Select`-style default). */\n loop?: boolean;\n focusItem?: (index: number) => void;\n};\n\nexport function getEnabledListboxItems(items: HTMLElement[]): HTMLElement[] {\n return items.filter((item) => {\n return !item.hasAttribute('disabled')\n && !item.hasAttribute('hidden')\n && item.getAttribute('aria-disabled') !== 'true'\n && item.getAttribute('aria-hidden') !== 'true';\n });\n}\n\nfunction focusListboxItem(\n enabled: HTMLElement[],\n index: number,\n focusItem?: (index: number) => void,\n): void {\n if (focusItem) {\n focusItem(index);\n return;\n }\n\n const item = enabled[index];\n\n if (item instanceof HTMLElement && 'focusControl' in item && typeof item.focusControl === 'function') {\n (item as { focusControl: () => void }).focusControl();\n return;\n }\n\n item?.focus();\n}\n\nfunction activateListboxItem(item: HTMLElement | undefined): void {\n if (!item) {\n return;\n }\n\n const control = item.shadowRoot?.querySelector('.option');\n\n if (control instanceof HTMLButtonElement) {\n control.click();\n return;\n }\n\n item.click();\n}\n\nexport function handleListboxKeyDown(event: KeyboardEvent, options: ListboxKeyboardOptions): number {\n const enabled = getEnabledListboxItems(options.items);\n const loop = options.loop === true;\n\n if (enabled.length === 0) {\n return options.currentIndex;\n }\n\n let index = Math.max(0, options.currentIndex);\n const current = enabled[index] ?? enabled[0]!;\n index = enabled.indexOf(current);\n\n if (index < 0) {\n index = 0;\n }\n\n switch (event.key) {\n case 'ArrowDown':\n case 'ArrowRight':\n event.preventDefault();\n if (loop && index >= enabled.length - 1) {\n index = 0;\n } else {\n index = Math.min(index + 1, enabled.length - 1);\n }\n focusListboxItem(enabled, index, options.focusItem);\n options.onSelect(index);\n return index;\n\n case 'ArrowUp':\n case 'ArrowLeft':\n event.preventDefault();\n if (loop && index <= 0) {\n index = enabled.length - 1;\n } else {\n index = Math.max(index - 1, 0);\n }\n focusListboxItem(enabled, index, options.focusItem);\n options.onSelect(index);\n return index;\n\n case 'Home':\n event.preventDefault();\n index = 0;\n focusListboxItem(enabled, index, options.focusItem);\n options.onSelect(index);\n return index;\n\n case 'End':\n event.preventDefault();\n index = enabled.length - 1;\n focusListboxItem(enabled, index, options.focusItem);\n options.onSelect(index);\n return index;\n\n case 'Enter':\n case ' ':\n if (!options.multiselect) {\n event.preventDefault();\n activateListboxItem(enabled[index]);\n }\n return index;\n\n case 'Escape':\n event.preventDefault();\n options.onClose?.();\n return index;\n\n default:\n return index;\n }\n}\n\n/** Type-to-select string matching . */\nexport function createTypeToSelectHandler(\n items: HTMLElement[],\n onMatch: (index: number) => void,\n): { handleKey: (event: KeyboardEvent) => void; reset: () => void } {\n let typeToSelectString = '';\n let typeToSelectTimeout = 0;\n\n const reset = (): void => {\n typeToSelectString = '';\n window.clearTimeout(typeToSelectTimeout);\n };\n\n const handleKey = (event: KeyboardEvent): void => {\n if (event.key.length !== 1 || event.ctrlKey || event.metaKey || event.altKey) {\n return;\n }\n\n typeToSelectString += event.key.toLowerCase();\n window.clearTimeout(typeToSelectTimeout);\n typeToSelectTimeout = window.setTimeout(reset, 750);\n\n const enabled = getEnabledListboxItems(items);\n\n for (let index = 0; index < enabled.length; index += 1) {\n const label = (enabled[index]?.textContent ?? '').trim().toLowerCase();\n\n if (label.startsWith(typeToSelectString)) {\n onMatch(index);\n event.preventDefault();\n return;\n }\n }\n };\n\n return { handleKey, reset };\n}\n","/**\n * Hide listbox `pk-separator` siblings that no longer sit between two visible\n * `pk-option` / `pk-option-group` items (e.g. after combobox filter hides groups).\n */\nconst isListboxItemHidden = (element: HTMLElement): boolean => {\n return element.hidden || element.hasAttribute('data-pk-filter-empty');\n};\n\nconst syncListboxSeparators = (root: ParentNode): void => {\n const children = [\n ...root.querySelectorAll(':scope > pk-option, :scope > pk-option-group, :scope > pk-separator'),\n ] as HTMLElement[];\n\n const nearestItem = (from: number, direction: -1 | 1): HTMLElement | null => {\n for (\n let index = from + direction;\n direction < 0 ? index >= 0 : index < children.length;\n index += direction\n ) {\n const child = children[index];\n\n if (!child || child.localName === 'pk-separator') {\n continue;\n }\n\n return child;\n }\n\n return null;\n };\n\n for (let index = 0; index < children.length; index += 1) {\n const child = children[index];\n\n if (!child || child.localName !== 'pk-separator') {\n continue;\n }\n\n const before = nearestItem(index, -1);\n const after = nearestItem(index, 1);\n\n // Only keep dividers between two currently visible sections.\n child.hidden = !before || !after || isListboxItemHidden(before) || isListboxItemHidden(after);\n }\n};\n\nexport { syncListboxSeparators };\n"],"mappings":"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"}
|