@verbb/plugin-kit-web 2.0.15 → 2.0.17
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 +80 -0
- package/README.md +3 -3
- package/custom-elements.json +39781 -0
- package/dist/base/pk-form-associated-element.d.ts +17 -1
- package/dist/base/pk-form-associated-element.d.ts.map +1 -1
- package/dist/chunks/{animate-with-class-ZJeCOKB3.js → animate-with-class-CsDwYnXL.js} +1 -1
- package/dist/chunks/{animate-with-class-ZJeCOKB3.js.map → animate-with-class-CsDwYnXL.js.map} +1 -1
- package/dist/chunks/{autoloader-DPX9YYZs.js → autoloader-dJO3tYOX.js} +2 -2
- package/dist/chunks/{autoloader-DPX9YYZs.js.map → autoloader-dJO3tYOX.js.map} +1 -1
- package/dist/chunks/{component-registry-CNB8PbP_.js → component-registry-D34fm8xW.js} +5 -1
- package/dist/chunks/component-registry-D34fm8xW.js.map +1 -0
- package/dist/chunks/{field-labels-CoU9dnNq.js → field-labels-CmuAW8Cl.js} +1 -1
- package/dist/chunks/{field-labels-CoU9dnNq.js.map → field-labels-CmuAW8Cl.js.map} +1 -1
- package/dist/chunks/option-filter-BQqr8Z21.js +121 -0
- package/dist/chunks/option-filter-BQqr8Z21.js.map +1 -0
- package/dist/chunks/pk-autocomplete-IFL-u-RF.js +992 -0
- package/dist/chunks/pk-autocomplete-IFL-u-RF.js.map +1 -0
- package/dist/chunks/{pk-button-BWGDkuzc.js → pk-button-BrH4u4Qr.js} +8 -4
- package/dist/chunks/{pk-button-BWGDkuzc.js.map → pk-button-BrH4u4Qr.js.map} +1 -1
- package/dist/chunks/{pk-calendar-enTOUCRD.js → pk-calendar-Z7Y0PjeY.js} +1 -1
- package/dist/chunks/{pk-calendar-enTOUCRD.js.map → pk-calendar-Z7Y0PjeY.js.map} +1 -1
- package/dist/chunks/{pk-checkbox-CvZwJZn_.js → pk-checkbox-CfV1uDdC.js} +2 -2
- package/dist/chunks/{pk-checkbox-CvZwJZn_.js.map → pk-checkbox-CfV1uDdC.js.map} +1 -1
- package/dist/chunks/{pk-checkbox-select-DclPoyDM.js → pk-checkbox-select-DeCaI3a0.js} +2 -2
- package/dist/chunks/{pk-checkbox-select-DclPoyDM.js.map → pk-checkbox-select-DeCaI3a0.js.map} +1 -1
- package/dist/chunks/{pk-code-editor-CrKnJUyi.js → pk-code-editor-BG9sG_Fy.js} +2 -2
- package/dist/chunks/{pk-code-editor-CrKnJUyi.js.map → pk-code-editor-BG9sG_Fy.js.map} +1 -1
- package/dist/chunks/{pk-color-input-DXdqNCK7.js → pk-color-input-CncNce1C.js} +2 -2
- package/dist/chunks/{pk-color-input-DXdqNCK7.js.map → pk-color-input-CncNce1C.js.map} +1 -1
- package/dist/chunks/{pk-combobox-BLft8AXy.js → pk-combobox-CL9En0J-.js} +49 -92
- package/dist/chunks/pk-combobox-CL9En0J-.js.map +1 -0
- package/dist/chunks/{pk-connect.styles-DshgIW2n.js → pk-connect.styles-BhW406jt.js} +1 -1
- package/dist/chunks/{pk-connect.styles-DshgIW2n.js.map → pk-connect.styles-BhW406jt.js.map} +1 -1
- package/dist/chunks/{pk-copy-button-asOLQkqk.js → pk-copy-button-BVaOLtYG.js} +46 -5
- package/dist/chunks/pk-copy-button-BVaOLtYG.js.map +1 -0
- package/dist/chunks/{pk-date-picker-Bri3kZ6x.js → pk-date-picker-BEAd4Ngl.js} +6 -6
- package/dist/chunks/{pk-date-picker-Bri3kZ6x.js.map → pk-date-picker-BEAd4Ngl.js.map} +1 -1
- package/dist/chunks/{pk-dialog-BbEfvb0g.js → pk-dialog-VMQqLW1f.js} +2 -2
- package/dist/chunks/{pk-dialog-BbEfvb0g.js.map → pk-dialog-VMQqLW1f.js.map} +1 -1
- package/dist/chunks/{pk-dropdown-item-BoZTGWMU.js → pk-dropdown-item-D9OaG5o-.js} +9 -5
- package/dist/chunks/pk-dropdown-item-D9OaG5o-.js.map +1 -0
- package/dist/chunks/{pk-dropdown-label-Da28F917.js → pk-dropdown-label-CRNWMWQd.js} +1 -1
- package/dist/chunks/{pk-dropdown-label-Da28F917.js.map → pk-dropdown-label-CRNWMWQd.js.map} +1 -1
- package/dist/chunks/{pk-dropdown-menu-CfZc7dIz.js → pk-dropdown-menu-DW1wI8xQ.js} +6 -4
- package/dist/chunks/pk-dropdown-menu-DW1wI8xQ.js.map +1 -0
- package/dist/chunks/{pk-editable-table-Cn4WXqAo.js → pk-editable-table-BoqfveXO.js} +17 -19
- package/dist/chunks/pk-editable-table-BoqfveXO.js.map +1 -0
- package/dist/chunks/{pk-field-NL4KdFZC.js → pk-field-UAlMq6mQ.js} +2 -2
- package/dist/chunks/{pk-field-NL4KdFZC.js.map → pk-field-UAlMq6mQ.js.map} +1 -1
- package/dist/chunks/{pk-form-associated-element-9M2NzOE2.js → pk-form-associated-element-CCQALRGB.js} +14 -2
- package/dist/chunks/pk-form-associated-element-CCQALRGB.js.map +1 -0
- package/dist/chunks/pk-image-browser-DwiCFOIG.js +1364 -0
- package/dist/chunks/pk-image-browser-DwiCFOIG.js.map +1 -0
- package/dist/chunks/{pk-input-DDkIXOkt.js → pk-input-CF_icEtR.js} +76 -30
- package/dist/chunks/pk-input-CF_icEtR.js.map +1 -0
- package/dist/chunks/{pk-input-group-CRPSBFhX.js → pk-input-group-BLqKPnfc.js} +2 -2
- package/dist/chunks/{pk-input-group-CRPSBFhX.js.map → pk-input-group-BLqKPnfc.js.map} +1 -1
- package/dist/chunks/{pk-input-group-addon-B0StOmTJ.js → pk-input-group-addon-ClBkGmAw.js} +1 -1
- package/dist/chunks/{pk-input-group-addon-B0StOmTJ.js.map → pk-input-group-addon-ClBkGmAw.js.map} +1 -1
- package/dist/chunks/{pk-input-group-button-CnKajvsP.js → pk-input-group-button-CHQHsWd4.js} +1 -1
- package/dist/chunks/{pk-input-group-button-CnKajvsP.js.map → pk-input-group-button-CHQHsWd4.js.map} +1 -1
- package/dist/chunks/{pk-input-group-input-mllffsjQ.js → pk-input-group-input-oNnqMBGU.js} +1 -1
- package/dist/chunks/{pk-input-group-input-mllffsjQ.js.map → pk-input-group-input-oNnqMBGU.js.map} +1 -1
- package/dist/chunks/{pk-input-group-text-DvaPJvh2.js → pk-input-group-text-HUxlXROB.js} +1 -1
- package/dist/chunks/{pk-input-group-text-DvaPJvh2.js.map → pk-input-group-text-HUxlXROB.js.map} +1 -1
- package/dist/chunks/{pk-input-group-textarea-CqYv8tUQ.js → pk-input-group-textarea-Cl2FNuw-.js} +1 -1
- package/dist/chunks/{pk-input-group-textarea-CqYv8tUQ.js.map → pk-input-group-textarea-Cl2FNuw-.js.map} +1 -1
- package/dist/chunks/{pk-lightswitch-DI1BeCmA.js → pk-lightswitch-D1qEFRxK.js} +3 -3
- package/dist/chunks/{pk-lightswitch-DI1BeCmA.js.map → pk-lightswitch-D1qEFRxK.js.map} +1 -1
- package/dist/chunks/{pk-option-MGj9SKOK.js → pk-option-DQZHV9jL.js} +3 -2
- package/dist/chunks/pk-option-DQZHV9jL.js.map +1 -0
- package/dist/chunks/{pk-option-group-Cs6N7mlP.js → pk-option-group-CCzJkBFp.js} +1 -1
- package/dist/chunks/{pk-option-group-Cs6N7mlP.js.map → pk-option-group-CCzJkBFp.js.map} +1 -1
- package/dist/chunks/{pk-popover-duyNosk2.js → pk-popover-D3jkHfwB.js} +4 -4
- package/dist/chunks/pk-popover-D3jkHfwB.js.map +1 -0
- package/dist/chunks/{pk-popup-B9AgBC2V.js → pk-popup-B65tZMQH.js} +23 -1
- package/dist/chunks/pk-popup-B65tZMQH.js.map +1 -0
- package/dist/chunks/{pk-radio-BK4D2Htu.js → pk-radio-B5XkMHy3.js} +1 -1
- package/dist/chunks/{pk-radio-BK4D2Htu.js.map → pk-radio-B5XkMHy3.js.map} +1 -1
- package/dist/chunks/{pk-radio-group-BRJIjOsR.js → pk-radio-group-ByrxGLdX.js} +3 -3
- package/dist/chunks/{pk-radio-group-BRJIjOsR.js.map → pk-radio-group-ByrxGLdX.js.map} +1 -1
- package/dist/chunks/{pk-scroll-area-BR6ckorh.js → pk-scroll-area-CdfNxYz8.js} +1 -1
- package/dist/chunks/{pk-scroll-area-BR6ckorh.js.map → pk-scroll-area-CdfNxYz8.js.map} +1 -1
- package/dist/chunks/{pk-select-C1s0OJr0.js → pk-select-CdQdhnZN.js} +7 -5
- package/dist/chunks/pk-select-CdQdhnZN.js.map +1 -0
- package/dist/chunks/{pk-separator-CHij3vEG.js → pk-separator-N-VyjYE6.js} +1 -1
- package/dist/chunks/{pk-separator-CHij3vEG.js.map → pk-separator-N-VyjYE6.js.map} +1 -1
- package/dist/chunks/{pk-status-D1IzTSI2.js → pk-status-BehQARDv.js} +1 -1
- package/dist/chunks/{pk-status-D1IzTSI2.js.map → pk-status-BehQARDv.js.map} +1 -1
- package/dist/chunks/{pk-tab-2MHunhlF.js → pk-tab-CTloD18e.js} +1 -1
- package/dist/chunks/{pk-tab-2MHunhlF.js.map → pk-tab-CTloD18e.js.map} +1 -1
- package/dist/chunks/{pk-tab-heading-BV6m_sT-.js → pk-tab-heading-Cjcgebxn.js} +1 -1
- package/dist/chunks/{pk-tab-heading-BV6m_sT-.js.map → pk-tab-heading-Cjcgebxn.js.map} +1 -1
- package/dist/chunks/{pk-tab-panel-C6FxQw9q.js → pk-tab-panel-CkKU5-Ah.js} +1 -1
- package/dist/chunks/{pk-tab-panel-C6FxQw9q.js.map → pk-tab-panel-CkKU5-Ah.js.map} +1 -1
- package/dist/chunks/{pk-tabs-BTE63uK9.js → pk-tabs-BgEBki1q.js} +1 -1
- package/dist/chunks/{pk-tabs-BTE63uK9.js.map → pk-tabs-BgEBki1q.js.map} +1 -1
- package/dist/chunks/{pk-textarea-BcAyZYC-.js → pk-textarea-CYM2tK88.js} +3 -3
- package/dist/chunks/{pk-textarea-BcAyZYC-.js.map → pk-textarea-CYM2tK88.js.map} +1 -1
- package/dist/chunks/{pk-time-picker-5D4nmig2.js → pk-time-picker-CebRqydV.js} +3 -3
- package/dist/chunks/{pk-time-picker-5D4nmig2.js.map → pk-time-picker-CebRqydV.js.map} +1 -1
- package/dist/chunks/{pk-tiptap-content-BPd4GO6c.js → pk-tiptap-content-CL8smjGi.js} +6 -3
- package/dist/chunks/{pk-tiptap-content-BPd4GO6c.js.map → pk-tiptap-content-CL8smjGi.js.map} +1 -1
- package/dist/chunks/{pk-tiptap-editor-tG67Vegc.js → pk-tiptap-editor-CTz-yfHL.js} +335 -19
- package/dist/chunks/pk-tiptap-editor-CTz-yfHL.js.map +1 -0
- package/dist/chunks/{pk-tiptap-input-CtefNnaK.js → pk-tiptap-input-Y9eog9Zn.js} +3 -3
- package/dist/chunks/{pk-tiptap-input-CtefNnaK.js.map → pk-tiptap-input-Y9eog9Zn.js.map} +1 -1
- package/dist/chunks/{pk-toggle-CW-lflrh.js → pk-toggle-BthhH7vl.js} +1 -1
- package/dist/chunks/{pk-toggle-CW-lflrh.js.map → pk-toggle-BthhH7vl.js.map} +1 -1
- package/dist/chunks/{pk-toggle-group-BKymefo3.js → pk-toggle-group-D2Quux8D.js} +1 -1
- package/dist/chunks/{pk-toggle-group-BKymefo3.js.map → pk-toggle-group-D2Quux8D.js.map} +1 -1
- package/dist/chunks/{pk-tooltip-BoDq8YVe.js → pk-tooltip--QBV6puX.js} +2 -2
- package/dist/chunks/{pk-tooltip-BoDq8YVe.js.map → pk-tooltip--QBV6puX.js.map} +1 -1
- package/dist/chunks/{popup-content-animation.styles-Dc6d9quJ.js → popup-content-animation.styles-BnNiguJo.js} +1 -1
- package/dist/chunks/{popup-content-animation.styles-Dc6d9quJ.js.map → popup-content-animation.styles-BnNiguJo.js.map} +1 -1
- package/dist/chunks/{popup-pointer-DMnuZDQl.js → popup-pointer-CuLjk1th.js} +1 -1
- package/dist/chunks/{popup-pointer-DMnuZDQl.js.map → popup-pointer-CuLjk1th.js.map} +1 -1
- package/dist/chunks/{register-CQodpTWT.js → register-aJw-9RWi.js} +46 -46
- package/dist/chunks/{register-CQodpTWT.js.map → register-aJw-9RWi.js.map} +1 -1
- package/dist/chunks/{register-components-B-qCPFFh.js → register-components-BT9THgdh.js} +1 -1
- package/dist/chunks/{register-components-B-qCPFFh.js.map → register-components-BT9THgdh.js.map} +1 -1
- package/dist/chunks/{tiptap.styles-ChAfyVi9.js → tiptap.styles-CPRows--.js} +4 -3
- package/dist/chunks/tiptap.styles-CPRows--.js.map +1 -0
- package/dist/component-registry.d.ts.map +1 -1
- package/dist/components/autocomplete/index.d.ts +2 -0
- package/dist/components/autocomplete/index.d.ts.map +1 -0
- package/dist/components/autocomplete/pk-autocomplete.d.ts +150 -0
- package/dist/components/autocomplete/pk-autocomplete.d.ts.map +1 -0
- package/dist/components/autocomplete/pk-autocomplete.js +2 -0
- package/dist/components/autocomplete/pk-autocomplete.styles.d.ts +7 -0
- package/dist/components/autocomplete/pk-autocomplete.styles.d.ts.map +1 -0
- package/dist/components/autocomplete.d.ts +2 -0
- package/dist/components/autocomplete.js +2 -0
- package/dist/components/button/pk-button.d.ts +37 -1
- package/dist/components/button/pk-button.d.ts.map +1 -1
- package/dist/components/button/pk-button.js +1 -1
- package/dist/components/button.js +1 -1
- package/dist/components/calendar/pk-calendar.js +1 -1
- package/dist/components/calendar.js +1 -1
- package/dist/components/checkbox/pk-checkbox.js +1 -1
- package/dist/components/checkbox-select/pk-checkbox-select.js +1 -1
- package/dist/components/checkbox-select.js +1 -1
- package/dist/components/checkbox.js +1 -1
- package/dist/components/code-editor/pk-code-editor.js +1 -1
- package/dist/components/code-editor.js +1 -1
- package/dist/components/color-input/pk-color-input.js +1 -1
- package/dist/components/color-input.js +1 -1
- package/dist/components/combobox/pk-combobox.d.ts +8 -14
- package/dist/components/combobox/pk-combobox.d.ts.map +1 -1
- package/dist/components/combobox/pk-combobox.js +1 -1
- package/dist/components/combobox/pk-combobox.styles.d.ts.map +1 -1
- package/dist/components/combobox.js +1 -1
- package/dist/components/connect/pk-connect-oauth.d.ts +1 -1
- package/dist/components/connect/pk-connect-oauth.js +3 -3
- package/dist/components/connect/pk-connect-oauth.js.map +1 -1
- package/dist/components/connect/pk-connect.js +4 -4
- package/dist/components/copy-button/pk-copy-button.d.ts +3 -0
- package/dist/components/copy-button/pk-copy-button.d.ts.map +1 -1
- package/dist/components/copy-button/pk-copy-button.js +1 -1
- package/dist/components/copy-button/pk-copy-button.styles.d.ts.map +1 -1
- package/dist/components/copy-button.js +1 -1
- package/dist/components/date-picker/pk-date-picker.js +1 -1
- package/dist/components/date-picker.js +1 -1
- package/dist/components/dialog/pk-dialog.d.ts +1 -1
- package/dist/components/dialog/pk-dialog.js +1 -1
- package/dist/components/dialog.js +1 -1
- package/dist/components/dropdown-menu/pk-dropdown-item.d.ts +3 -1
- package/dist/components/dropdown-menu/pk-dropdown-item.d.ts.map +1 -1
- package/dist/components/dropdown-menu/pk-dropdown-item.js +1 -1
- package/dist/components/dropdown-menu/pk-dropdown-item.styles.d.ts.map +1 -1
- package/dist/components/dropdown-menu/pk-dropdown-label.js +1 -1
- package/dist/components/dropdown-menu/pk-dropdown-menu.js +1 -1
- package/dist/components/dropdown-menu/pk-dropdown-menu.styles.d.ts.map +1 -1
- package/dist/components/dropdown-menu.js +3 -3
- package/dist/components/editable-table/editable-table-model.d.ts +4 -1
- package/dist/components/editable-table/editable-table-model.d.ts.map +1 -1
- package/dist/components/editable-table/pk-editable-table.d.ts +1 -1
- package/dist/components/editable-table/pk-editable-table.d.ts.map +1 -1
- package/dist/components/editable-table/pk-editable-table.js +1 -1
- package/dist/components/editable-table.js +1 -1
- package/dist/components/field/pk-field.js +1 -1
- package/dist/components/field.js +1 -1
- package/dist/components/icon/pk-icon.d.ts +3 -2
- package/dist/components/icon/pk-icon.d.ts.map +1 -1
- package/dist/components/icon/pk-icon.js.map +1 -1
- package/dist/components/image-browser/index.d.ts +2 -0
- package/dist/components/image-browser/index.d.ts.map +1 -0
- package/dist/components/image-browser/pk-image-browser.d.ts +190 -0
- package/dist/components/image-browser/pk-image-browser.d.ts.map +1 -0
- package/dist/components/image-browser/pk-image-browser.js +2 -0
- package/dist/components/image-browser/pk-image-browser.styles.d.ts +6 -0
- package/dist/components/image-browser/pk-image-browser.styles.d.ts.map +1 -0
- package/dist/components/image-browser.d.ts +2 -0
- package/dist/components/image-browser.js +2 -0
- package/dist/components/input/pk-input.d.ts +3 -2
- package/dist/components/input/pk-input.d.ts.map +1 -1
- package/dist/components/input/pk-input.js +1 -1
- package/dist/components/input/pk-input.styles.d.ts.map +1 -1
- package/dist/components/input-group/pk-input-group-addon.js +1 -1
- package/dist/components/input-group/pk-input-group-button.js +1 -1
- package/dist/components/input-group/pk-input-group-input.js +1 -1
- package/dist/components/input-group/pk-input-group-text.js +1 -1
- package/dist/components/input-group/pk-input-group-textarea.js +1 -1
- package/dist/components/input-group/pk-input-group.d.ts +2 -2
- package/dist/components/input-group/pk-input-group.d.ts.map +1 -1
- package/dist/components/input-group/pk-input-group.js +1 -1
- package/dist/components/input-group.js +6 -6
- package/dist/components/input.js +1 -1
- package/dist/components/lightswitch/pk-lightswitch.js +1 -1
- package/dist/components/lightswitch.js +1 -1
- package/dist/components/popover/pk-popover.d.ts +2 -2
- package/dist/components/popover/pk-popover.js +1 -1
- package/dist/components/popover.js +1 -1
- package/dist/components/popup/pk-popup.d.ts +4 -0
- package/dist/components/popup/pk-popup.d.ts.map +1 -1
- package/dist/components/popup/pk-popup.js +1 -1
- package/dist/components/popup.js +1 -1
- package/dist/components/radio-group/pk-radio-group.js +1 -1
- package/dist/components/radio-group/pk-radio.js +1 -1
- package/dist/components/radio-group.js +2 -2
- package/dist/components/scroll-area/pk-scroll-area.js +1 -1
- package/dist/components/scroll-area.js +1 -1
- package/dist/components/select/pk-option-group.d.ts +3 -1
- package/dist/components/select/pk-option-group.d.ts.map +1 -1
- package/dist/components/select/pk-option-group.js +1 -1
- package/dist/components/select/pk-option.d.ts +10 -1
- package/dist/components/select/pk-option.d.ts.map +1 -1
- package/dist/components/select/pk-option.js +1 -1
- package/dist/components/select/pk-select.d.ts +42 -3
- package/dist/components/select/pk-select.d.ts.map +1 -1
- package/dist/components/select/pk-select.js +1 -1
- package/dist/components/select.js +3 -3
- package/dist/components/separator/pk-separator.js +1 -1
- package/dist/components/separator.js +1 -1
- package/dist/components/status/pk-status.js +1 -1
- package/dist/components/status.js +1 -1
- package/dist/components/tabs/pk-tab-heading.js +1 -1
- package/dist/components/tabs/pk-tab-panel.js +1 -1
- package/dist/components/tabs/pk-tab.js +1 -1
- package/dist/components/tabs/pk-tabs.js +1 -1
- package/dist/components/tabs.js +4 -4
- package/dist/components/textarea/pk-textarea.js +1 -1
- package/dist/components/textarea.js +1 -1
- package/dist/components/time-picker/pk-time-picker.js +1 -1
- package/dist/components/time-picker.js +1 -1
- package/dist/components/tiptap/pk-tiptap-content.d.ts.map +1 -1
- package/dist/components/tiptap/pk-tiptap-content.js +1 -1
- package/dist/components/tiptap/pk-tiptap-editor.d.ts +11 -1
- package/dist/components/tiptap/pk-tiptap-editor.d.ts.map +1 -1
- package/dist/components/tiptap/pk-tiptap-editor.js +1 -1
- package/dist/components/tiptap/pk-tiptap-editor.styles.d.ts.map +1 -1
- package/dist/components/tiptap/pk-tiptap-input.js +1 -1
- package/dist/components/tiptap/tiptap-toolbar.d.ts +1 -0
- package/dist/components/tiptap/tiptap-toolbar.d.ts.map +1 -1
- package/dist/components/tiptap/variable-tag-node-view.d.ts.map +1 -1
- package/dist/components/tiptap-content.js +1 -1
- package/dist/components/tiptap-editor.js +1 -1
- package/dist/components/tiptap-input.js +1 -1
- package/dist/components/toggle/pk-toggle.js +1 -1
- package/dist/components/toggle-group/pk-toggle-group.js +1 -1
- package/dist/components/toggle-group.js +1 -1
- package/dist/components/toggle.js +1 -1
- package/dist/components/tooltip/pk-tooltip.js +1 -1
- package/dist/components/tooltip.js +1 -1
- package/dist/connect/register-cp-connect.js +3 -3
- package/dist/index.js +50 -50
- package/dist/internal/sync-filtered-options.d.ts +23 -0
- package/dist/internal/sync-filtered-options.d.ts.map +1 -0
- package/dist/plugin-kit.css +2 -0
- package/dist/plugin-kit.js +2 -2
- package/dist/register-components.js +1 -1
- package/dist/register-pk.generated.d.ts +4 -0
- package/dist/register-pk.generated.d.ts.map +1 -1
- package/dist/register.js +48 -48
- package/dist/utilities/fouce.css +2 -0
- package/dist/utils/async-option-fetch.d.ts +38 -0
- package/dist/utils/async-option-fetch.d.ts.map +1 -0
- package/dist/utils/option-filter.d.ts +11 -0
- package/dist/utils/option-filter.d.ts.map +1 -0
- package/dist/utils/popup-content-exit.d.ts +6 -0
- package/dist/utils/popup-content-exit.d.ts.map +1 -0
- package/dist-loader/chunks/option-filter-Bc5aNNT0.js +119 -0
- package/dist-loader/chunks/{pk-base-B21zXxSo.js → pk-base-CyzwylQ7.js} +13 -1
- package/dist-loader/chunks/{pk-button-Dh4gjLHw.js → pk-button-saBDszJV.js} +10 -6
- package/dist-loader/chunks/{pk-calendar-n1bwSO7X.js → pk-calendar-BrF8i3dW.js} +3 -3
- package/dist-loader/chunks/{pk-checkbox-BrZQB816.js → pk-checkbox-B3d4nkBx.js} +1 -1
- package/dist-loader/chunks/{pk-color-input-sS05YOwT.js → pk-color-input-CD-r_sfG.js} +1 -1
- package/dist-loader/chunks/{pk-combobox-B7q6alzE.js → pk-combobox-Cpx0w1KV.js} +49 -92
- package/dist-loader/chunks/{pk-date-picker-Dni5ty79.js → pk-date-picker-DEoiTOxN.js} +6 -6
- package/dist-loader/chunks/{pk-dialog-BpPRqFMm.js → pk-dialog-C6aaPokv.js} +3 -3
- package/dist-loader/chunks/{pk-dropdown-item-CHkFNlA9.js → pk-dropdown-item-D8RrwjxL.js} +10 -6
- package/dist-loader/chunks/pk-dropdown-label-Cg32UgRe.js +51 -0
- package/dist-loader/chunks/{pk-dropdown-menu-BHVOMNV1.js → pk-dropdown-menu-CAHCltlX.js} +5 -3
- package/dist-loader/chunks/{pk-field-CJ09ll1S.js → pk-field-V7JOy26T.js} +4 -4
- package/dist-loader/chunks/{pk-icon-WHUu7wxk.js → pk-icon-Bph-EBqp.js} +2 -2
- package/dist-loader/chunks/{pk-input-CEw3AdYt.js → pk-input-BhU0PiCk.js} +74 -28
- package/dist-loader/chunks/{pk-lightswitch-DJEUScgo.js → pk-lightswitch-m23Cy3_D.js} +1 -1
- package/dist-loader/chunks/{pk-option-CunPIei0.js → pk-option-BrDMERSl.js} +5 -4
- package/dist-loader/chunks/{pk-popup-FDdBxb4k.js → pk-popup-CrxxR-Hb.js} +24 -2
- package/dist-loader/chunks/{pk-select-CbAaQ7uE.js → pk-select-Dok-JdSe.js} +8 -6
- package/dist-loader/chunks/{pk-spinner-CIbXjDnp.js → pk-spinner-BKU9Rf2R.js} +1 -1
- package/dist-loader/chunks/{pk-status-BRIVW7EH.js → pk-status-D2g_77m_.js} +1 -1
- package/dist-loader/chunks/{pk-textarea-C_rOUtFS.js → pk-textarea-CC7rA5A7.js} +1 -1
- package/dist-loader/chunks/{pk-time-picker-Dr3uvbvc.js → pk-time-picker-h5Wgd4a_.js} +5 -5
- package/dist-loader/chunks/{pk-tooltip-HwZ0zRd2.js → pk-tooltip-Dd_Q0Bn5.js} +2 -2
- package/dist-loader/chunks/{render-Niz5wYRa.js → render-Bnzcxfss.js} +1 -1
- package/dist-loader/chunks/{svg-_Mtb7CHx.js → svg-Bz-bXZn7.js} +12 -4
- package/dist-loader/chunks/{tiptap-Db7MTUH1.js → tiptap-CgXkiK8d.js} +283 -13
- package/dist-loader/chunks/{tiptap.styles-BIRIMP7I.js → tiptap.styles-C0E1NpSx.js} +225 -5
- package/dist-loader/components/autocomplete/autocomplete.js +984 -0
- package/dist-loader/components/button/button.js +1 -1
- package/dist-loader/components/button-group/button-group-separator.js +1 -1
- package/dist-loader/components/button-group/button-group-text.js +1 -1
- package/dist-loader/components/button-group/button-group.js +1 -1
- package/dist-loader/components/calendar/calendar.js +1 -1
- package/dist-loader/components/checkbox/checkbox.js +1 -1
- package/dist-loader/components/checkbox-select/checkbox-select.js +2 -2
- package/dist-loader/components/code-editor/code-editor.js +6 -6
- package/dist-loader/components/color-input/color-input.js +1 -1
- package/dist-loader/components/combobox/combobox.js +1 -1
- package/dist-loader/components/connect/connect-oauth.js +4 -4
- package/dist-loader/components/connect/connect.js +6 -6
- package/dist-loader/components/copy-button/copy-button.js +48 -7
- package/dist-loader/components/date-picker/date-picker.js +1 -1
- package/dist-loader/components/dialog/dialog.js +1 -1
- package/dist-loader/components/dropdown-menu/dropdown-item.js +1 -1
- package/dist-loader/components/dropdown-menu/dropdown-label.js +1 -50
- package/dist-loader/components/dropdown-menu/dropdown-menu.js +1 -1
- package/dist-loader/components/dropdown-menu/dropdown-separator.js +1 -1
- package/dist-loader/components/editable-table/editable-table.js +18 -20
- package/dist-loader/components/field/field.js +1 -1
- package/dist-loader/components/icon/icon.js +2 -2
- package/dist-loader/components/image-browser/image-browser.js +1356 -0
- package/dist-loader/components/input/input.js +1 -1
- package/dist-loader/components/input-group/input-group-addon.js +1 -1
- package/dist-loader/components/input-group/input-group-button.js +1 -1
- package/dist-loader/components/input-group/input-group-input.js +1 -1
- package/dist-loader/components/input-group/input-group-text.js +1 -1
- package/dist-loader/components/input-group/input-group-textarea.js +1 -1
- package/dist-loader/components/input-group/input-group.js +2 -2
- package/dist-loader/components/lightswitch/lightswitch.js +1 -1
- package/dist-loader/components/popover/popover.js +3 -3
- package/dist-loader/components/popup/popup.js +1 -1
- package/dist-loader/components/radio-group/radio-group.js +1 -1
- package/dist-loader/components/radio-group/radio.js +1 -1
- package/dist-loader/components/scroll-area/scroll-area.js +1 -1
- package/dist-loader/components/select/option-group.js +1 -1
- package/dist-loader/components/select/option.js +1 -1
- package/dist-loader/components/select/select.js +1 -1
- package/dist-loader/components/separator/separator.js +1 -1
- package/dist-loader/components/spinner/spinner.js +1 -1
- package/dist-loader/components/status/status.js +1 -1
- package/dist-loader/components/tabs/tab-heading.js +1 -1
- package/dist-loader/components/tabs/tab-panel.js +1 -1
- package/dist-loader/components/tabs/tab.js +1 -1
- package/dist-loader/components/tabs/tabs.js +1 -1
- package/dist-loader/components/textarea/textarea.js +1 -1
- package/dist-loader/components/time-picker/time-picker.js +1 -1
- package/dist-loader/components/tiptap/tiptap-content.js +7 -4
- package/dist-loader/components/tiptap/tiptap-editor.js +336 -20
- package/dist-loader/components/tiptap/tiptap-input.js +3 -3
- package/dist-loader/components/toggle/toggle.js +1 -1
- package/dist-loader/components/toggle-group/toggle-group.js +1 -1
- package/dist-loader/components/tooltip/tooltip.js +1 -1
- package/dist-loader/plugin-kit.css +2 -0
- package/dist-loader/plugin-kit.loader.js +4 -0
- package/dist-loader/utilities/fouce.css +2 -0
- package/package.json +57 -10
- package/dist/chunks/component-registry-CNB8PbP_.js.map +0 -1
- package/dist/chunks/pk-combobox-BLft8AXy.js.map +0 -1
- package/dist/chunks/pk-copy-button-asOLQkqk.js.map +0 -1
- package/dist/chunks/pk-dropdown-item-BoZTGWMU.js.map +0 -1
- package/dist/chunks/pk-dropdown-menu-CfZc7dIz.js.map +0 -1
- package/dist/chunks/pk-editable-table-Cn4WXqAo.js.map +0 -1
- package/dist/chunks/pk-form-associated-element-9M2NzOE2.js.map +0 -1
- package/dist/chunks/pk-input-DDkIXOkt.js.map +0 -1
- package/dist/chunks/pk-option-MGj9SKOK.js.map +0 -1
- package/dist/chunks/pk-popover-duyNosk2.js.map +0 -1
- package/dist/chunks/pk-popup-B9AgBC2V.js.map +0 -1
- package/dist/chunks/pk-select-C1s0OJr0.js.map +0 -1
- package/dist/chunks/pk-tiptap-editor-tG67Vegc.js.map +0 -1
- package/dist/chunks/tiptap.styles-ChAfyVi9.js.map +0 -1
- /package/dist-loader/chunks/{floating-ui-DU6GNott.js → floating-ui-Cj0imr6d.js} +0 -0
- /package/dist-loader/chunks/{pk-connect.styles-Bfgwu0VH.js → pk-connect.styles-k61snd3X.js} +0 -0
- /package/dist-loader/chunks/{popup-pointer-caPc8kwB.js → popup-pointer-Ck28WdVP.js} +0 -0
- /package/dist-loader/chunks/{sync-listbox-separators-Dk_E_IVa.js → sync-listbox-separators-Ch5krDUs.js} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { a as query, i as property, o as state, s as customElement, t as __decorate } from "./decorate-R0X811qp.js";
|
|
2
|
-
import { t as PkFormAssociatedElement } from "./pk-form-associated-element-
|
|
2
|
+
import { t as PkFormAssociatedElement } from "./pk-form-associated-element-CCQALRGB.js";
|
|
3
3
|
import { t as MirrorValidator } from "./mirror-validator-DCjNYrrx.js";
|
|
4
4
|
import { t as formControlStyles } from "./form-control.styles-BQdimE5o.js";
|
|
5
5
|
import { css, html } from "lit";
|
|
@@ -209,4 +209,4 @@ PkCodeEditor = __decorate([customElement("pk-code-editor")], PkCodeEditor);
|
|
|
209
209
|
//#endregion
|
|
210
210
|
export { PkCodeEditor as t };
|
|
211
211
|
|
|
212
|
-
//# sourceMappingURL=pk-code-editor-
|
|
212
|
+
//# sourceMappingURL=pk-code-editor-BG9sG_Fy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pk-code-editor-CrKnJUyi.js","names":[],"sources":["../../src/components/code-editor/pk-code-editor.styles.ts","../../src/components/code-editor/pk-code-editor.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const pkCodeEditorStyles = css`\n @layer pk-component {\n :host {\n display: block;\n width: 100%;\n font-family: var(--pk-font-family);\n }\n\n .shell {\n overflow: hidden;\n border: 1px solid rgba(96, 125, 159, 0.4);\n border-radius: var(--pk-radius-sm);\n background: #ffffff;\n }\n\n .shell:focus-within {\n border-color: var(--pk-color-sky-600);\n box-shadow:\n 0 0 0 1px var(--pk-color-sky-600),\n 0 0 4px 0 color-mix(in srgb, var(--pk-color-sky-600) 70%, transparent);\n }\n\n :host([invalid]) .shell,\n :host(:state(user-invalid)) .shell {\n border-color: var(--pk-color-rose-600);\n }\n\n :host([invalid]) .shell:focus-within,\n :host(:state(user-invalid)) .shell:focus-within {\n border-color: var(--pk-color-rose-600);\n box-shadow:\n 0 0 0 1px var(--pk-color-rose-600),\n 0 0 4px 0 color-mix(in srgb, var(--pk-color-rose-600) 70%, transparent);\n }\n\n :host([disabled]),\n :host([readonly]) {\n opacity: 0.7;\n }\n\n .editor-mount {\n min-height: var(--pk-code-editor-min-height, 12rem);\n }\n\n .editor-mount .cm-editor {\n min-height: inherit;\n }\n\n .mirror-input {\n display: none;\n }\n }\n`;\n","import { html } from 'lit';\nimport { customElement, property, query, state } from '../../decorators.js';\nimport type { PropertyValues } from 'lit';\nimport {\n CodeMirrorHost,\n computeCodeEditorMinHeight,\n type CodeEditorLanguage,\n} from '@verbb/plugin-kit-codemirror-core';\n\nimport { formControlStyles } from '../../base/form-control.styles.js';\nimport { PkFormAssociatedElement } from '../../base/pk-form-associated-element.js';\nimport { MirrorValidator } from '../../validators/index.js';\nimport { pkCodeEditorStyles } from './pk-code-editor.styles.js';\n\n@customElement('pk-code-editor')\nexport class PkCodeEditor extends PkFormAssociatedElement {\n static override styles = [formControlStyles, pkCodeEditorStyles];\n\n static override get validators() {\n return [...super.validators, MirrorValidator()];\n }\n\n override assumeInteractionOn = ['blur', 'input'];\n\n @query('.editor-mount')\n private editorMount!: HTMLDivElement;\n\n @query('.mirror-input')\n override input!: HTMLInputElement;\n\n private readonly host = new CodeMirrorHost();\n\n private hasInitializedEditor = false;\n\n private _value: string | null = null;\n\n @property()\n language: CodeEditorLanguage = 'html';\n\n @property({ type: Number, attribute: 'tab-size' })\n tabSize = 4;\n\n @property({ type: Boolean, attribute: 'line-numbers' })\n lineNumbers = true;\n\n @property({ type: Number })\n rows = 12;\n\n @property({ type: Boolean, reflect: true })\n readonly = false;\n\n @property({ type: Boolean, reflect: true })\n invalid = false;\n\n get value(): string {\n if (this.valueHasChanged) {\n return this._value ?? '';\n }\n\n return this._value ?? this.defaultValue ?? '';\n }\n\n @state()\n set value(val: string | null) {\n const next = val ?? '';\n\n if (this._value === next) {\n return;\n }\n\n this.valueHasChanged = true;\n this._value = next;\n }\n\n @property({ attribute: 'value', reflect: true })\n defaultValue: string | null = '';\n\n get editorView() {\n return this.host.view;\n }\n\n protected override syncFormValue(): void {\n this.setValue(this.value || '');\n\n if (this.input) {\n this.input.value = this.value || '';\n }\n }\n\n protected override resetToDefaultValue(): void {\n this.valueHasChanged = false;\n this._value = null;\n this.syncEditorContent();\n }\n\n protected override restoreFormState(state: string | File | FormData | null): void {\n if (typeof state === 'string') {\n this.value = state;\n this.syncEditorContent();\n }\n }\n\n override disconnectedCallback(): void {\n this.host.destroy();\n super.disconnectedCallback();\n }\n\n override updated(changed: PropertyValues): void {\n if ((changed.has('value') && !changed.has('defaultValue')) || (changed.has('defaultValue') && !this.valueHasChanged)) {\n this.syncEditorContent();\n }\n\n if (changed.has('disabled') || changed.has('readonly')) {\n this.host.setEditable(!this.disabled && !this.readonly);\n }\n\n if (\n this.hasInitializedEditor\n && (changed.has('language') || changed.has('tabSize') || changed.has('lineNumbers') || changed.has('rows'))\n ) {\n this.remountEditor();\n }\n\n super.updated(changed);\n }\n\n override firstUpdated(): void {\n this.style.setProperty('--pk-code-editor-min-height', computeCodeEditorMinHeight(this.rows));\n this.mountEditor();\n this.hasInitializedEditor = true;\n this.syncFormValue();\n }\n\n private mountEditor(): void {\n this.host.mount({\n parent: this.editorMount,\n value: this.value,\n language: this.language,\n tabSize: this.tabSize,\n lineNumbers: this.lineNumbers,\n rows: this.rows,\n editable: !this.disabled && !this.readonly,\n onUpdate: (nextValue) => {\n this.value = nextValue;\n\n if (this.input) {\n this.input.value = nextValue;\n }\n\n this.syncFormValue();\n this.emitValueChange(nextValue);\n },\n onBlur: () => {\n this.dispatchEvent(new Event('blur', { bubbles: true, composed: true }));\n },\n });\n }\n\n private remountEditor(): void {\n this.host.destroy();\n this.style.setProperty('--pk-code-editor-min-height', computeCodeEditorMinHeight(this.rows));\n this.mountEditor();\n }\n\n private syncEditorContent(): void {\n this.host.setValue(this.value);\n }\n\n private emitValueChange(value: string): void {\n this.dispatchEvent(new CustomEvent('pk-change', {\n detail: { value },\n bubbles: true,\n composed: true,\n }));\n this.dispatchEvent(new Event('input', { bubbles: true, composed: true }));\n this.dispatchEvent(new Event('change', { bubbles: true, composed: true }));\n }\n\n override render() {\n return html`\n <div class=\"shell\" part=\"shell\">\n <div class=\"editor-mount\" part=\"editor\"></div>\n <input class=\"mirror-input\" type=\"text\" .value=${this.value} readonly tabindex=\"-1\" aria-hidden=\"true\" />\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pk-code-editor': PkCodeEditor;\n }\n}\n"],"mappings":";;;;;;;AAEA,IAAa,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACa9B,IAAA,eAAA,MAAM,qBAAqB,wBAAwB;;;6BAOvB,CAAC,QAAQ,QAAQ;cAQxB,IAAI,gBAAgB;8BAEb;gBAEC;kBAGD;iBAGrB;qBAGI;cAGP;kBAGI;iBAGD;sBAuBoB;;;gBA3DL,CAAC,mBAAmB,mBAAmB;;CAEhE,WAAoB,aAAa;AAC7B,SAAO,CAAC,GAAG,MAAM,YAAY,iBAAiB,CAAC;;CAmCnD,IAAI,QAAgB;AAChB,MAAI,KAAK,gBACL,QAAO,KAAK,UAAU;AAG1B,SAAO,KAAK,UAAU,KAAK,gBAAgB;;CAG/C,IACI,MAAM,KAAoB;EAC1B,MAAM,OAAO,OAAO;AAEpB,MAAI,KAAK,WAAW,KAChB;AAGJ,OAAK,kBAAkB;AACvB,OAAK,SAAS;;CAMlB,IAAI,aAAa;AACb,SAAO,KAAK,KAAK;;CAGrB,gBAAyC;AACrC,OAAK,SAAS,KAAK,SAAS,GAAG;AAE/B,MAAI,KAAK,MACL,MAAK,MAAM,QAAQ,KAAK,SAAS;;CAIzC,sBAA+C;AAC3C,OAAK,kBAAkB;AACvB,OAAK,SAAS;AACd,OAAK,mBAAmB;;CAG5B,iBAAoC,OAA8C;AAC9E,MAAI,OAAO,UAAU,UAAU;AAC3B,QAAK,QAAQ;AACb,QAAK,mBAAmB;;;CAIhC,uBAAsC;AAClC,OAAK,KAAK,SAAS;AACnB,QAAM,sBAAsB;;CAGhC,QAAiB,SAA+B;AAC5C,MAAK,QAAQ,IAAI,QAAQ,IAAI,CAAC,QAAQ,IAAI,eAAe,IAAM,QAAQ,IAAI,eAAe,IAAI,CAAC,KAAK,gBAChG,MAAK,mBAAmB;AAG5B,MAAI,QAAQ,IAAI,WAAW,IAAI,QAAQ,IAAI,WAAW,CAClD,MAAK,KAAK,YAAY,CAAC,KAAK,YAAY,CAAC,KAAK,SAAS;AAG3D,MACI,KAAK,yBACD,QAAQ,IAAI,WAAW,IAAI,QAAQ,IAAI,UAAU,IAAI,QAAQ,IAAI,cAAc,IAAI,QAAQ,IAAI,OAAO,EAE1G,MAAK,eAAe;AAGxB,QAAM,QAAQ,QAAQ;;CAG1B,eAA8B;AAC1B,OAAK,MAAM,YAAY,+BAA+B,2BAA2B,KAAK,KAAK,CAAC;AAC5F,OAAK,aAAa;AAClB,OAAK,uBAAuB;AAC5B,OAAK,eAAe;;CAGxB,cAA4B;AACxB,OAAK,KAAK,MAAM;GACZ,QAAQ,KAAK;GACb,OAAO,KAAK;GACZ,UAAU,KAAK;GACf,SAAS,KAAK;GACd,aAAa,KAAK;GAClB,MAAM,KAAK;GACX,UAAU,CAAC,KAAK,YAAY,CAAC,KAAK;GAClC,WAAW,cAAc;AACrB,SAAK,QAAQ;AAEb,QAAI,KAAK,MACL,MAAK,MAAM,QAAQ;AAGvB,SAAK,eAAe;AACpB,SAAK,gBAAgB,UAAU;;GAEnC,cAAc;AACV,SAAK,cAAc,IAAI,MAAM,QAAQ;KAAE,SAAS;KAAM,UAAU;KAAM,CAAC,CAAC;;GAE/E,CAAC;;CAGN,gBAA8B;AAC1B,OAAK,KAAK,SAAS;AACnB,OAAK,MAAM,YAAY,+BAA+B,2BAA2B,KAAK,KAAK,CAAC;AAC5F,OAAK,aAAa;;CAGtB,oBAAkC;AAC9B,OAAK,KAAK,SAAS,KAAK,MAAM;;CAGlC,gBAAwB,OAAqB;AACzC,OAAK,cAAc,IAAI,YAAY,aAAa;GAC5C,QAAQ,EAAE,OAAO;GACjB,SAAS;GACT,UAAU;GACb,CAAC,CAAC;AACH,OAAK,cAAc,IAAI,MAAM,SAAS;GAAE,SAAS;GAAM,UAAU;GAAM,CAAC,CAAC;AACzE,OAAK,cAAc,IAAI,MAAM,UAAU;GAAE,SAAS;GAAM,UAAU;GAAM,CAAC,CAAC;;CAG9E,SAAkB;AACd,SAAO,IAAI;;;iEAG8C,KAAK,MAAM;;;;;YA9JvE,MAAM,gBAAgB,CAAA,EAAA,aAAA,WAAA,eAAA,KAAA,EAAA;YAGtB,MAAM,gBAAgB,CAAA,EAAA,aAAA,WAAA,SAAA,KAAA,EAAA;YAStB,UAAU,CAAA,EAAA,aAAA,WAAA,YAAA,KAAA,EAAA;YAGV,SAAS;CAAE,MAAM;CAAQ,WAAW;CAAY,CAAC,CAAA,EAAA,aAAA,WAAA,WAAA,KAAA,EAAA;YAGjD,SAAS;CAAE,MAAM;CAAS,WAAW;CAAgB,CAAC,CAAA,EAAA,aAAA,WAAA,eAAA,KAAA,EAAA;YAGtD,SAAS,EAAE,MAAM,QAAQ,CAAC,CAAA,EAAA,aAAA,WAAA,QAAA,KAAA,EAAA;YAG1B,SAAS;CAAE,MAAM;CAAS,SAAS;CAAM,CAAC,CAAA,EAAA,aAAA,WAAA,YAAA,KAAA,EAAA;YAG1C,SAAS;CAAE,MAAM;CAAS,SAAS;CAAM,CAAC,CAAA,EAAA,aAAA,WAAA,WAAA,KAAA,EAAA;YAW1C,OAAO,CAAA,EAAA,aAAA,WAAA,SAAA,KAAA;YAYP,SAAS;CAAE,WAAW;CAAS,SAAS;CAAM,CAAC,CAAA,EAAA,aAAA,WAAA,gBAAA,KAAA,EAAA;2BA5DnD,cAAc,iBAAiB,CAAA,EAAA,aAAA"}
|
|
1
|
+
{"version":3,"file":"pk-code-editor-BG9sG_Fy.js","names":[],"sources":["../../src/components/code-editor/pk-code-editor.styles.ts","../../src/components/code-editor/pk-code-editor.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const pkCodeEditorStyles = css`\n @layer pk-component {\n :host {\n display: block;\n width: 100%;\n font-family: var(--pk-font-family);\n }\n\n .shell {\n overflow: hidden;\n border: 1px solid rgba(96, 125, 159, 0.4);\n border-radius: var(--pk-radius-sm);\n background: #ffffff;\n }\n\n .shell:focus-within {\n border-color: var(--pk-color-sky-600);\n box-shadow:\n 0 0 0 1px var(--pk-color-sky-600),\n 0 0 4px 0 color-mix(in srgb, var(--pk-color-sky-600) 70%, transparent);\n }\n\n :host([invalid]) .shell,\n :host(:state(user-invalid)) .shell {\n border-color: var(--pk-color-rose-600);\n }\n\n :host([invalid]) .shell:focus-within,\n :host(:state(user-invalid)) .shell:focus-within {\n border-color: var(--pk-color-rose-600);\n box-shadow:\n 0 0 0 1px var(--pk-color-rose-600),\n 0 0 4px 0 color-mix(in srgb, var(--pk-color-rose-600) 70%, transparent);\n }\n\n :host([disabled]),\n :host([readonly]) {\n opacity: 0.7;\n }\n\n .editor-mount {\n min-height: var(--pk-code-editor-min-height, 12rem);\n }\n\n .editor-mount .cm-editor {\n min-height: inherit;\n }\n\n .mirror-input {\n display: none;\n }\n }\n`;\n","import { html } from 'lit';\nimport { customElement, property, query, state } from '../../decorators.js';\nimport type { PropertyValues } from 'lit';\nimport {\n CodeMirrorHost,\n computeCodeEditorMinHeight,\n type CodeEditorLanguage,\n} from '@verbb/plugin-kit-codemirror-core';\n\nimport { formControlStyles } from '../../base/form-control.styles.js';\nimport { PkFormAssociatedElement } from '../../base/pk-form-associated-element.js';\nimport { MirrorValidator } from '../../validators/index.js';\nimport { pkCodeEditorStyles } from './pk-code-editor.styles.js';\n\n@customElement('pk-code-editor')\nexport class PkCodeEditor extends PkFormAssociatedElement {\n static override styles = [formControlStyles, pkCodeEditorStyles];\n\n static override get validators() {\n return [...super.validators, MirrorValidator()];\n }\n\n override assumeInteractionOn = ['blur', 'input'];\n\n @query('.editor-mount')\n private editorMount!: HTMLDivElement;\n\n @query('.mirror-input')\n override input!: HTMLInputElement;\n\n private readonly host = new CodeMirrorHost();\n\n private hasInitializedEditor = false;\n\n private _value: string | null = null;\n\n @property()\n language: CodeEditorLanguage = 'html';\n\n @property({ type: Number, attribute: 'tab-size' })\n tabSize = 4;\n\n @property({ type: Boolean, attribute: 'line-numbers' })\n lineNumbers = true;\n\n @property({ type: Number })\n rows = 12;\n\n @property({ type: Boolean, reflect: true })\n readonly = false;\n\n @property({ type: Boolean, reflect: true })\n invalid = false;\n\n get value(): string {\n if (this.valueHasChanged) {\n return this._value ?? '';\n }\n\n return this._value ?? this.defaultValue ?? '';\n }\n\n @state()\n set value(val: string | null) {\n const next = val ?? '';\n\n if (this._value === next) {\n return;\n }\n\n this.valueHasChanged = true;\n this._value = next;\n }\n\n @property({ attribute: 'value', reflect: true })\n defaultValue: string | null = '';\n\n get editorView() {\n return this.host.view;\n }\n\n protected override syncFormValue(): void {\n this.setValue(this.value || '');\n\n if (this.input) {\n this.input.value = this.value || '';\n }\n }\n\n protected override resetToDefaultValue(): void {\n this.valueHasChanged = false;\n this._value = null;\n this.syncEditorContent();\n }\n\n protected override restoreFormState(state: string | File | FormData | null): void {\n if (typeof state === 'string') {\n this.value = state;\n this.syncEditorContent();\n }\n }\n\n override disconnectedCallback(): void {\n this.host.destroy();\n super.disconnectedCallback();\n }\n\n override updated(changed: PropertyValues): void {\n if ((changed.has('value') && !changed.has('defaultValue')) || (changed.has('defaultValue') && !this.valueHasChanged)) {\n this.syncEditorContent();\n }\n\n if (changed.has('disabled') || changed.has('readonly')) {\n this.host.setEditable(!this.disabled && !this.readonly);\n }\n\n if (\n this.hasInitializedEditor\n && (changed.has('language') || changed.has('tabSize') || changed.has('lineNumbers') || changed.has('rows'))\n ) {\n this.remountEditor();\n }\n\n super.updated(changed);\n }\n\n override firstUpdated(): void {\n this.style.setProperty('--pk-code-editor-min-height', computeCodeEditorMinHeight(this.rows));\n this.mountEditor();\n this.hasInitializedEditor = true;\n this.syncFormValue();\n }\n\n private mountEditor(): void {\n this.host.mount({\n parent: this.editorMount,\n value: this.value,\n language: this.language,\n tabSize: this.tabSize,\n lineNumbers: this.lineNumbers,\n rows: this.rows,\n editable: !this.disabled && !this.readonly,\n onUpdate: (nextValue) => {\n this.value = nextValue;\n\n if (this.input) {\n this.input.value = nextValue;\n }\n\n this.syncFormValue();\n this.emitValueChange(nextValue);\n },\n onBlur: () => {\n this.dispatchEvent(new Event('blur', { bubbles: true, composed: true }));\n },\n });\n }\n\n private remountEditor(): void {\n this.host.destroy();\n this.style.setProperty('--pk-code-editor-min-height', computeCodeEditorMinHeight(this.rows));\n this.mountEditor();\n }\n\n private syncEditorContent(): void {\n this.host.setValue(this.value);\n }\n\n private emitValueChange(value: string): void {\n this.dispatchEvent(new CustomEvent('pk-change', {\n detail: { value },\n bubbles: true,\n composed: true,\n }));\n this.dispatchEvent(new Event('input', { bubbles: true, composed: true }));\n this.dispatchEvent(new Event('change', { bubbles: true, composed: true }));\n }\n\n override render() {\n return html`\n <div class=\"shell\" part=\"shell\">\n <div class=\"editor-mount\" part=\"editor\"></div>\n <input class=\"mirror-input\" type=\"text\" .value=${this.value} readonly tabindex=\"-1\" aria-hidden=\"true\" />\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pk-code-editor': PkCodeEditor;\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { a as query, i as property, o as state, s as customElement, t as __decorate } from "./decorate-R0X811qp.js";
|
|
2
|
-
import { t as PkFormAssociatedElement } from "./pk-form-associated-element-
|
|
2
|
+
import { t as PkFormAssociatedElement } from "./pk-form-associated-element-CCQALRGB.js";
|
|
3
3
|
import { t as MirrorValidator } from "./mirror-validator-DCjNYrrx.js";
|
|
4
4
|
import { t as RequiredValidator } from "./required-validator-CEg8dvjS.js";
|
|
5
5
|
import { css, html, nothing } from "lit";
|
|
@@ -402,4 +402,4 @@ PkColorInput = __decorate([customElement("pk-color-input")], PkColorInput);
|
|
|
402
402
|
//#endregion
|
|
403
403
|
export { PkColorInput as t };
|
|
404
404
|
|
|
405
|
-
//# sourceMappingURL=pk-color-input-
|
|
405
|
+
//# sourceMappingURL=pk-color-input-CncNce1C.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pk-color-input-DXdqNCK7.js","names":[],"sources":["../../src/components/color-input/pk-color-input.styles.ts","../../src/components/color-input/pk-color-input.ts"],"sourcesContent":["import { css } from 'lit';\n\n/**\n * Size scale matches pk-input (xs / sm / default / lg). Metrics are shifted so\n * former `lg` (2.125rem / ~34px) is default — aligned with base input chrome.\n * `xl` is kept as a deprecated alias of `lg`.\n */\nexport const pkColorInputStyles = css`\n @layer pk-component {\n :host {\n display: inline-block;\n position: relative;\n /* Former lg min-width — default now matches input default chrome. */\n min-width: 6.75rem;\n font-family: var(--pk-font-family);\n vertical-align: middle;\n }\n\n :host([size='xs']) {\n min-width: 5.5rem;\n }\n\n :host([size='sm']) {\n min-width: 6.125rem;\n }\n\n :host([size='lg']),\n :host([size='xl']) {\n min-width: 7.375rem;\n }\n\n :host([fit-cell]) {\n display: block;\n width: 100%;\n min-width: 0;\n max-width: 100%;\n height: 100%;\n }\n\n :host([fit-cell]) .root {\n display: block;\n width: 100%;\n height: 100%;\n }\n\n .root {\n position: relative;\n display: inline-block;\n width: 100%;\n }\n\n .swatch {\n position: absolute;\n top: 50%;\n left: 0.5rem;\n z-index: 2;\n width: 1.25rem;\n height: 1.25rem;\n transform: translateY(-50%);\n border-radius: var(--pk-radius-sm);\n }\n\n :host([size='xs']) .swatch {\n left: 0.375rem;\n width: 1rem;\n height: 1rem;\n }\n\n :host([size='sm']) .swatch {\n left: 0.375rem;\n width: 1.25rem;\n height: 1.25rem;\n }\n\n :host([size='lg']) .swatch,\n :host([size='xl']) .swatch {\n left: 0.5rem;\n width: 1.5rem;\n height: 1.5rem;\n }\n\n :host([fit-cell]) .swatch {\n left: 0.5rem;\n width: 1rem;\n height: 1rem;\n }\n\n .swatch-preview {\n position: absolute;\n inset: 0;\n border-radius: inherit;\n box-shadow: inset 0 0 0 1px rgb(0 0 0 / 0.15);\n }\n\n .swatch-preview.is-transparent {\n background-color: #fff;\n background-image:\n linear-gradient(45deg, #d1d5db 25%, transparent 25%),\n linear-gradient(-45deg, #d1d5db 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, #d1d5db 75%),\n linear-gradient(-45deg, transparent 75%, #d1d5db 75%);\n background-size: 8px 8px;\n background-position: 0 0, 0 4px, 4px -4px, -4px 0;\n }\n\n .swatch-picker {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n margin: 0;\n padding: 0;\n border: 0;\n opacity: 0;\n cursor: pointer;\n appearance: none;\n }\n\n .swatch-picker:disabled {\n cursor: not-allowed;\n }\n\n .hash {\n position: absolute;\n top: 50%;\n left: 2.125rem;\n z-index: 1;\n transform: translateY(-50%);\n color: var(--pk-color-gray-300);\n font-family: var(--pk-font-family-mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace);\n font-size: var(--pk-font-size-mono, 0.9em);\n line-height: var(--pk-line-height-mono, 1.5);\n pointer-events: none;\n user-select: none;\n }\n\n :host([size='xs']) .hash {\n left: 1.625rem;\n }\n\n :host([size='sm']) .hash {\n left: 2rem;\n }\n\n :host([size='lg']) .hash,\n :host([size='xl']) .hash {\n left: 2.5rem;\n }\n\n :host([fit-cell]) .hash {\n left: 1.75rem;\n }\n\n .hex-input {\n display: block;\n width: 100%;\n /* Former lg — matches pk-input default chrome (~34px). */\n height: 2.125rem;\n margin: 0;\n padding-inline: 3rem 0.75rem;\n border: var(--pk-input-border);\n border-radius: var(--pk-input-border-radius);\n background: var(--pk-input-bg);\n color: var(--pk-color-gray-700);\n font-family: var(--pk-font-family-mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace);\n font-size: var(--pk-font-size-mono, 0.9em);\n line-height: var(--pk-line-height-mono, 1.5);\n outline: none;\n box-sizing: border-box;\n transition: border-color 0.12s ease, box-shadow 0.12s ease;\n }\n\n :host([size='xs']) .hex-input {\n height: 1.625rem;\n padding-inline: 2.25rem 0.625rem;\n }\n\n :host([size='sm']) .hex-input {\n height: 1.875rem;\n padding-inline: 2.75rem 0.75rem;\n }\n\n :host([size='lg']) .hex-input,\n :host([size='xl']) .hex-input {\n height: 2.375rem;\n padding-inline: 3.25rem 0.875rem;\n }\n\n :host([fit-cell]) .hex-input {\n width: 100%;\n max-width: 100%;\n height: 100%;\n padding-inline: 2.25rem 0.5rem;\n border: 0;\n border-radius: 0;\n background: transparent;\n }\n\n .hex-input:focus,\n .hex-input:focus-visible {\n border-color: var(--pk-color-sky-600);\n box-shadow: var(--pk-input-focus-shadow);\n }\n\n :host([invalid]) .hex-input:focus,\n :host([invalid]) .hex-input:focus-visible {\n border-color: var(--pk-color-rose-600);\n box-shadow: var(--pk-input-invalid-focus-shadow);\n }\n\n :host([fit-cell]:not([invalid])) .hex-input:focus,\n :host([fit-cell]:not([invalid])) .hex-input:focus-visible {\n box-shadow: inset 0 0 0 1px var(--pk-color-gray-200);\n }\n\n :host([fit-cell][invalid]) .hex-input,\n :host([fit-cell][invalid]) .hex-input:focus,\n :host([fit-cell][invalid]) .hex-input:focus-visible {\n box-shadow: inset 0 0 0 1px var(--pk-color-rose-600);\n }\n\n .hex-input:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n :host([invalid]) .hex-input {\n border-color: var(--pk-color-rose-600);\n }\n\n :host([disabled]) .swatch {\n opacity: 0.5;\n }\n }\n`;\n","import { html, nothing } from 'lit';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { customElement, property, query, state } from '../../decorators.js';\nimport type { PropertyValues } from 'lit';\n\nimport { PkFormAssociatedElement } from '../../base/pk-form-associated-element.js';\nimport { MirrorValidator, RequiredValidator } from '../../validators/index.js';\nimport { pkColorInputStyles } from './pk-color-input.styles.js';\n\n/** Public scale is xs / sm / default / lg (`xl` aliases `lg` for compatibility). */\nexport type PkColorInputSize = 'xs' | 'sm' | 'default' | 'lg' | 'xl';\n\nconst DEFAULT_COLOR = '#000000';\n\nfunction sanitizeHex(value: string): string {\n return String(value || '')\n .replace(/^#/, '')\n .replace(/[^0-9a-fA-F]/g, '')\n .slice(0, 6)\n .toLowerCase();\n}\n\nfunction isCompleteHex(value: string): boolean {\n return value.length === 3 || value.length === 6;\n}\n\nfunction expandShortHex(value: string): string {\n if (value.length !== 3) {\n return value;\n }\n\n return value.split('').map((char) => `${char}${char}`).join('');\n}\n\nfunction toPickerValue(hex: string): string {\n if (hex.length === 6) {\n return `#${hex}`;\n }\n\n if (hex.length === 3) {\n return `#${expandShortHex(hex)}`;\n }\n\n return DEFAULT_COLOR;\n}\n\n/**\n * Color input — swatch picker + hex text field (Craft ColorInput parity).\n * Form-associated; submits `#rrggbb` or empty string.\n *\n * @csspart swatch - Swatch container\n * @csspart input - Hex text input\n */\n@customElement('pk-color-input')\nexport class PkColorInput extends PkFormAssociatedElement {\n static override styles = pkColorInputStyles;\n\n static override get validators() {\n return [...super.validators, MirrorValidator(), RequiredValidator()];\n }\n\n override assumeInteractionOn = ['blur', 'input'];\n\n @property({ reflect: true })\n size: PkColorInputSize = 'default';\n\n @property({ type: Boolean, reflect: true, attribute: 'fit-cell' })\n fitCell = false;\n\n @property({ type: Boolean, reflect: true })\n readonly = false;\n\n @property({ type: Boolean, reflect: true })\n invalid = false;\n\n @property()\n value = '';\n\n @property({ attribute: 'default-value' })\n defaultValue = '';\n\n @property({ attribute: 'aria-label' })\n ariaLabel: string | null = null;\n\n @query('.hex-input')\n override input!: HTMLInputElement;\n\n @state()\n private hexValue = '';\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.syncHexFromValue();\n }\n\n protected override willUpdate(changed: PropertyValues): void {\n if (changed.has('value')) {\n this.syncHexFromValue();\n }\n\n super.willUpdate(changed);\n }\n\n private syncHexFromValue(): void {\n this.hexValue = sanitizeHex(this.value);\n }\n\n protected override get validationTarget(): HTMLElement {\n return this.input;\n }\n\n protected override syncFormValue(): void {\n const submitted = this.hexValue ? `#${this.hexValue}` : '';\n this.setFormValue(submitted, submitted);\n }\n\n protected override resetToDefaultValue(): void {\n this.value = this.defaultValue;\n this.hexValue = sanitizeHex(this.defaultValue);\n }\n\n protected override restoreFormState(state: string | File | FormData | null): void {\n if (typeof state === 'string') {\n this.value = state;\n this.hexValue = sanitizeHex(state);\n }\n }\n\n private emitChange(): void {\n const next = this.hexValue ? `#${this.hexValue}` : '';\n this.value = next;\n\n this.dispatchEvent(new CustomEvent('pk-change', {\n detail: { value: next },\n bubbles: true,\n composed: true,\n }));\n\n this.dispatchEvent(new Event('input', { bubbles: true, composed: true }));\n this.dispatchEvent(new Event('change', { bubbles: true, composed: true }));\n }\n\n private handleHexInput(event: Event): void {\n // Readonly must not mutate the value even if a stray input event slips through.\n if (this.disabled || this.readonly) {\n return;\n }\n\n const nextHex = sanitizeHex((event.target as HTMLInputElement).value);\n this.hexValue = nextHex;\n this.emitChange();\n }\n\n private handlePickerChange(event: Event): void {\n if (this.disabled || this.readonly) {\n return;\n }\n\n const nextHex = sanitizeHex((event.target as HTMLInputElement).value);\n this.hexValue = nextHex;\n this.emitChange();\n }\n\n override render() {\n const previewColor = toPickerValue(this.hexValue);\n const isTransparent = !isCompleteHex(this.hexValue);\n\n return html`\n <div class=\"root\">\n <div part=\"swatch\" class=\"swatch\">\n <div\n class=${classMap({\n 'swatch-preview': true,\n 'is-transparent': isTransparent,\n })}\n style=${isTransparent ? nothing : `background-color: ${previewColor}`}\n ></div>\n <input\n part=\"picker\"\n class=\"swatch-picker\"\n type=\"color\"\n .value=${previewColor}\n ?disabled=${this.disabled || this.readonly}\n aria-label=\"Color picker\"\n @input=${this.handlePickerChange}\n />\n </div>\n <span class=\"hash\" aria-hidden=\"true\">#</span>\n <input\n part=\"input\"\n class=\"hex-input\"\n type=\"text\"\n inputmode=\"text\"\n autocomplete=\"off\"\n maxlength=\"6\"\n .value=${this.hexValue}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n ?required=${this.required}\n aria-label=${this.ariaLabel ?? nothing}\n aria-invalid=${this.invalid ? 'true' : nothing}\n @input=${this.handleHexInput}\n />\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pk-color-input': PkColorInput;\n }\n}\n"],"mappings":";;;;;;;;;;;;AAOA,IAAa,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACKrC,IAAM,gBAAgB;AAEtB,SAAS,YAAY,OAAuB;AACxC,QAAO,OAAO,SAAS,GAAG,CACrB,QAAQ,MAAM,GAAG,CACjB,QAAQ,iBAAiB,GAAG,CAC5B,MAAM,GAAG,EAAE,CACX,aAAa;;AAGtB,SAAS,cAAc,OAAwB;AAC3C,QAAO,MAAM,WAAW,KAAK,MAAM,WAAW;;AAGlD,SAAS,eAAe,OAAuB;AAC3C,KAAI,MAAM,WAAW,EACjB,QAAO;AAGX,QAAO,MAAM,MAAM,GAAG,CAAC,KAAK,SAAS,GAAG,OAAO,OAAO,CAAC,KAAK,GAAG;;AAGnE,SAAS,cAAc,KAAqB;AACxC,KAAI,IAAI,WAAW,EACf,QAAO,IAAI;AAGf,KAAI,IAAI,WAAW,EACf,QAAO,IAAI,eAAe,IAAI;AAGlC,QAAO;;AAWJ,IAAA,eAAA,MAAM,qBAAqB,wBAAwB;;;6BAOvB,CAAC,QAAQ,QAAQ;cAGvB;iBAGf;kBAGC;iBAGD;eAGF;sBAGO;mBAGY;kBAMR;;;gBAjCM;;CAEzB,WAAoB,aAAa;AAC7B,SAAO;GAAC,GAAG,MAAM;GAAY,iBAAiB;GAAE,mBAAmB;GAAC;;CAgCxE,oBAAmC;AAC/B,QAAM,mBAAmB;AACzB,OAAK,kBAAkB;;CAG3B,WAA8B,SAA+B;AACzD,MAAI,QAAQ,IAAI,QAAQ,CACpB,MAAK,kBAAkB;AAG3B,QAAM,WAAW,QAAQ;;CAG7B,mBAAiC;AAC7B,OAAK,WAAW,YAAY,KAAK,MAAM;;CAG3C,IAAuB,mBAAgC;AACnD,SAAO,KAAK;;CAGhB,gBAAyC;EACrC,MAAM,YAAY,KAAK,WAAW,IAAI,KAAK,aAAa;AACxD,OAAK,aAAa,WAAW,UAAU;;CAG3C,sBAA+C;AAC3C,OAAK,QAAQ,KAAK;AAClB,OAAK,WAAW,YAAY,KAAK,aAAa;;CAGlD,iBAAoC,OAA8C;AAC9E,MAAI,OAAO,UAAU,UAAU;AAC3B,QAAK,QAAQ;AACb,QAAK,WAAW,YAAY,MAAM;;;CAI1C,aAA2B;EACvB,MAAM,OAAO,KAAK,WAAW,IAAI,KAAK,aAAa;AACnD,OAAK,QAAQ;AAEb,OAAK,cAAc,IAAI,YAAY,aAAa;GAC5C,QAAQ,EAAE,OAAO,MAAM;GACvB,SAAS;GACT,UAAU;GACb,CAAC,CAAC;AAEH,OAAK,cAAc,IAAI,MAAM,SAAS;GAAE,SAAS;GAAM,UAAU;GAAM,CAAC,CAAC;AACzE,OAAK,cAAc,IAAI,MAAM,UAAU;GAAE,SAAS;GAAM,UAAU;GAAM,CAAC,CAAC;;CAG9E,eAAuB,OAAoB;AAEvC,MAAI,KAAK,YAAY,KAAK,SACtB;EAGJ,MAAM,UAAU,YAAa,MAAM,OAA4B,MAAM;AACrE,OAAK,WAAW;AAChB,OAAK,YAAY;;CAGrB,mBAA2B,OAAoB;AAC3C,MAAI,KAAK,YAAY,KAAK,SACtB;EAGJ,MAAM,UAAU,YAAa,MAAM,OAA4B,MAAM;AACrE,OAAK,WAAW;AAChB,OAAK,YAAY;;CAGrB,SAAkB;EACd,MAAM,eAAe,cAAc,KAAK,SAAS;EACjD,MAAM,gBAAgB,CAAC,cAAc,KAAK,SAAS;AAEnD,SAAO,IAAI;;;;gCAIa,SAAS;GACb,kBAAkB;GAClB,kBAAkB;GACrB,CAAC,CAAC;gCACK,gBAAgB,UAAU,qBAAqB,eAAe;;;;;;iCAM7D,aAAa;oCACV,KAAK,YAAY,KAAK,SAAS;;iCAElC,KAAK,mBAAmB;;;;;;;;;;;6BAW5B,KAAK,SAAS;gCACX,KAAK,SAAS;gCACd,KAAK,SAAS;gCACd,KAAK,SAAS;iCACb,KAAK,aAAa,QAAQ;mCACxB,KAAK,UAAU,SAAS,QAAQ;6BACtC,KAAK,eAAe;;;;;;YA1I5C,SAAS,EAAE,SAAS,MAAM,CAAC,CAAA,EAAA,aAAA,WAAA,QAAA,KAAA,EAAA;YAG3B,SAAS;CAAE,MAAM;CAAS,SAAS;CAAM,WAAW;CAAY,CAAC,CAAA,EAAA,aAAA,WAAA,WAAA,KAAA,EAAA;YAGjE,SAAS;CAAE,MAAM;CAAS,SAAS;CAAM,CAAC,CAAA,EAAA,aAAA,WAAA,YAAA,KAAA,EAAA;YAG1C,SAAS;CAAE,MAAM;CAAS,SAAS;CAAM,CAAC,CAAA,EAAA,aAAA,WAAA,WAAA,KAAA,EAAA;YAG1C,UAAU,CAAA,EAAA,aAAA,WAAA,SAAA,KAAA,EAAA;YAGV,SAAS,EAAE,WAAW,iBAAiB,CAAC,CAAA,EAAA,aAAA,WAAA,gBAAA,KAAA,EAAA;YAGxC,SAAS,EAAE,WAAW,cAAc,CAAC,CAAA,EAAA,aAAA,WAAA,aAAA,KAAA,EAAA;YAGrC,MAAM,aAAa,CAAA,EAAA,aAAA,WAAA,SAAA,KAAA,EAAA;YAGnB,OAAO,CAAA,EAAA,aAAA,WAAA,YAAA,KAAA,EAAA;2BAlCX,cAAc,iBAAiB,CAAA,EAAA,aAAA"}
|
|
1
|
+
{"version":3,"file":"pk-color-input-CncNce1C.js","names":[],"sources":["../../src/components/color-input/pk-color-input.styles.ts","../../src/components/color-input/pk-color-input.ts"],"sourcesContent":["import { css } from 'lit';\n\n/**\n * Size scale matches pk-input (xs / sm / default / lg). Metrics are shifted so\n * former `lg` (2.125rem / ~34px) is default — aligned with base input chrome.\n * `xl` is kept as a deprecated alias of `lg`.\n */\nexport const pkColorInputStyles = css`\n @layer pk-component {\n :host {\n display: inline-block;\n position: relative;\n /* Former lg min-width — default now matches input default chrome. */\n min-width: 6.75rem;\n font-family: var(--pk-font-family);\n vertical-align: middle;\n }\n\n :host([size='xs']) {\n min-width: 5.5rem;\n }\n\n :host([size='sm']) {\n min-width: 6.125rem;\n }\n\n :host([size='lg']),\n :host([size='xl']) {\n min-width: 7.375rem;\n }\n\n :host([fit-cell]) {\n display: block;\n width: 100%;\n min-width: 0;\n max-width: 100%;\n height: 100%;\n }\n\n :host([fit-cell]) .root {\n display: block;\n width: 100%;\n height: 100%;\n }\n\n .root {\n position: relative;\n display: inline-block;\n width: 100%;\n }\n\n .swatch {\n position: absolute;\n top: 50%;\n left: 0.5rem;\n z-index: 2;\n width: 1.25rem;\n height: 1.25rem;\n transform: translateY(-50%);\n border-radius: var(--pk-radius-sm);\n }\n\n :host([size='xs']) .swatch {\n left: 0.375rem;\n width: 1rem;\n height: 1rem;\n }\n\n :host([size='sm']) .swatch {\n left: 0.375rem;\n width: 1.25rem;\n height: 1.25rem;\n }\n\n :host([size='lg']) .swatch,\n :host([size='xl']) .swatch {\n left: 0.5rem;\n width: 1.5rem;\n height: 1.5rem;\n }\n\n :host([fit-cell]) .swatch {\n left: 0.5rem;\n width: 1rem;\n height: 1rem;\n }\n\n .swatch-preview {\n position: absolute;\n inset: 0;\n border-radius: inherit;\n box-shadow: inset 0 0 0 1px rgb(0 0 0 / 0.15);\n }\n\n .swatch-preview.is-transparent {\n background-color: #fff;\n background-image:\n linear-gradient(45deg, #d1d5db 25%, transparent 25%),\n linear-gradient(-45deg, #d1d5db 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, #d1d5db 75%),\n linear-gradient(-45deg, transparent 75%, #d1d5db 75%);\n background-size: 8px 8px;\n background-position: 0 0, 0 4px, 4px -4px, -4px 0;\n }\n\n .swatch-picker {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n margin: 0;\n padding: 0;\n border: 0;\n opacity: 0;\n cursor: pointer;\n appearance: none;\n }\n\n .swatch-picker:disabled {\n cursor: not-allowed;\n }\n\n .hash {\n position: absolute;\n top: 50%;\n left: 2.125rem;\n z-index: 1;\n transform: translateY(-50%);\n color: var(--pk-color-gray-300);\n font-family: var(--pk-font-family-mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace);\n font-size: var(--pk-font-size-mono, 0.9em);\n line-height: var(--pk-line-height-mono, 1.5);\n pointer-events: none;\n user-select: none;\n }\n\n :host([size='xs']) .hash {\n left: 1.625rem;\n }\n\n :host([size='sm']) .hash {\n left: 2rem;\n }\n\n :host([size='lg']) .hash,\n :host([size='xl']) .hash {\n left: 2.5rem;\n }\n\n :host([fit-cell]) .hash {\n left: 1.75rem;\n }\n\n .hex-input {\n display: block;\n width: 100%;\n /* Former lg — matches pk-input default chrome (~34px). */\n height: 2.125rem;\n margin: 0;\n padding-inline: 3rem 0.75rem;\n border: var(--pk-input-border);\n border-radius: var(--pk-input-border-radius);\n background: var(--pk-input-bg);\n color: var(--pk-color-gray-700);\n font-family: var(--pk-font-family-mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace);\n font-size: var(--pk-font-size-mono, 0.9em);\n line-height: var(--pk-line-height-mono, 1.5);\n outline: none;\n box-sizing: border-box;\n transition: border-color 0.12s ease, box-shadow 0.12s ease;\n }\n\n :host([size='xs']) .hex-input {\n height: 1.625rem;\n padding-inline: 2.25rem 0.625rem;\n }\n\n :host([size='sm']) .hex-input {\n height: 1.875rem;\n padding-inline: 2.75rem 0.75rem;\n }\n\n :host([size='lg']) .hex-input,\n :host([size='xl']) .hex-input {\n height: 2.375rem;\n padding-inline: 3.25rem 0.875rem;\n }\n\n :host([fit-cell]) .hex-input {\n width: 100%;\n max-width: 100%;\n height: 100%;\n padding-inline: 2.25rem 0.5rem;\n border: 0;\n border-radius: 0;\n background: transparent;\n }\n\n .hex-input:focus,\n .hex-input:focus-visible {\n border-color: var(--pk-color-sky-600);\n box-shadow: var(--pk-input-focus-shadow);\n }\n\n :host([invalid]) .hex-input:focus,\n :host([invalid]) .hex-input:focus-visible {\n border-color: var(--pk-color-rose-600);\n box-shadow: var(--pk-input-invalid-focus-shadow);\n }\n\n :host([fit-cell]:not([invalid])) .hex-input:focus,\n :host([fit-cell]:not([invalid])) .hex-input:focus-visible {\n box-shadow: inset 0 0 0 1px var(--pk-color-gray-200);\n }\n\n :host([fit-cell][invalid]) .hex-input,\n :host([fit-cell][invalid]) .hex-input:focus,\n :host([fit-cell][invalid]) .hex-input:focus-visible {\n box-shadow: inset 0 0 0 1px var(--pk-color-rose-600);\n }\n\n .hex-input:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n :host([invalid]) .hex-input {\n border-color: var(--pk-color-rose-600);\n }\n\n :host([disabled]) .swatch {\n opacity: 0.5;\n }\n }\n`;\n","import { html, nothing } from 'lit';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { customElement, property, query, state } from '../../decorators.js';\nimport type { PropertyValues } from 'lit';\n\nimport { PkFormAssociatedElement } from '../../base/pk-form-associated-element.js';\nimport { MirrorValidator, RequiredValidator } from '../../validators/index.js';\nimport { pkColorInputStyles } from './pk-color-input.styles.js';\n\n/** Public scale is xs / sm / default / lg (`xl` aliases `lg` for compatibility). */\nexport type PkColorInputSize = 'xs' | 'sm' | 'default' | 'lg' | 'xl';\n\nconst DEFAULT_COLOR = '#000000';\n\nfunction sanitizeHex(value: string): string {\n return String(value || '')\n .replace(/^#/, '')\n .replace(/[^0-9a-fA-F]/g, '')\n .slice(0, 6)\n .toLowerCase();\n}\n\nfunction isCompleteHex(value: string): boolean {\n return value.length === 3 || value.length === 6;\n}\n\nfunction expandShortHex(value: string): string {\n if (value.length !== 3) {\n return value;\n }\n\n return value.split('').map((char) => `${char}${char}`).join('');\n}\n\nfunction toPickerValue(hex: string): string {\n if (hex.length === 6) {\n return `#${hex}`;\n }\n\n if (hex.length === 3) {\n return `#${expandShortHex(hex)}`;\n }\n\n return DEFAULT_COLOR;\n}\n\n/**\n * Color input — swatch picker + hex text field (Craft ColorInput parity).\n * Form-associated; submits `#rrggbb` or empty string.\n *\n * @csspart swatch - Swatch container\n * @csspart input - Hex text input\n */\n@customElement('pk-color-input')\nexport class PkColorInput extends PkFormAssociatedElement {\n static override styles = pkColorInputStyles;\n\n static override get validators() {\n return [...super.validators, MirrorValidator(), RequiredValidator()];\n }\n\n override assumeInteractionOn = ['blur', 'input'];\n\n @property({ reflect: true })\n size: PkColorInputSize = 'default';\n\n @property({ type: Boolean, reflect: true, attribute: 'fit-cell' })\n fitCell = false;\n\n @property({ type: Boolean, reflect: true })\n readonly = false;\n\n @property({ type: Boolean, reflect: true })\n invalid = false;\n\n @property()\n value = '';\n\n @property({ attribute: 'default-value' })\n defaultValue = '';\n\n @property({ attribute: 'aria-label' })\n ariaLabel: string | null = null;\n\n @query('.hex-input')\n override input!: HTMLInputElement;\n\n @state()\n private hexValue = '';\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.syncHexFromValue();\n }\n\n protected override willUpdate(changed: PropertyValues): void {\n if (changed.has('value')) {\n this.syncHexFromValue();\n }\n\n super.willUpdate(changed);\n }\n\n private syncHexFromValue(): void {\n this.hexValue = sanitizeHex(this.value);\n }\n\n protected override get validationTarget(): HTMLElement {\n return this.input;\n }\n\n protected override syncFormValue(): void {\n const submitted = this.hexValue ? `#${this.hexValue}` : '';\n this.setFormValue(submitted, submitted);\n }\n\n protected override resetToDefaultValue(): void {\n this.value = this.defaultValue;\n this.hexValue = sanitizeHex(this.defaultValue);\n }\n\n protected override restoreFormState(state: string | File | FormData | null): void {\n if (typeof state === 'string') {\n this.value = state;\n this.hexValue = sanitizeHex(state);\n }\n }\n\n private emitChange(): void {\n const next = this.hexValue ? `#${this.hexValue}` : '';\n this.value = next;\n\n this.dispatchEvent(new CustomEvent('pk-change', {\n detail: { value: next },\n bubbles: true,\n composed: true,\n }));\n\n this.dispatchEvent(new Event('input', { bubbles: true, composed: true }));\n this.dispatchEvent(new Event('change', { bubbles: true, composed: true }));\n }\n\n private handleHexInput(event: Event): void {\n // Readonly must not mutate the value even if a stray input event slips through.\n if (this.disabled || this.readonly) {\n return;\n }\n\n const nextHex = sanitizeHex((event.target as HTMLInputElement).value);\n this.hexValue = nextHex;\n this.emitChange();\n }\n\n private handlePickerChange(event: Event): void {\n if (this.disabled || this.readonly) {\n return;\n }\n\n const nextHex = sanitizeHex((event.target as HTMLInputElement).value);\n this.hexValue = nextHex;\n this.emitChange();\n }\n\n override render() {\n const previewColor = toPickerValue(this.hexValue);\n const isTransparent = !isCompleteHex(this.hexValue);\n\n return html`\n <div class=\"root\">\n <div part=\"swatch\" class=\"swatch\">\n <div\n class=${classMap({\n 'swatch-preview': true,\n 'is-transparent': isTransparent,\n })}\n style=${isTransparent ? nothing : `background-color: ${previewColor}`}\n ></div>\n <input\n part=\"picker\"\n class=\"swatch-picker\"\n type=\"color\"\n .value=${previewColor}\n ?disabled=${this.disabled || this.readonly}\n aria-label=\"Color picker\"\n @input=${this.handlePickerChange}\n />\n </div>\n <span class=\"hash\" aria-hidden=\"true\">#</span>\n <input\n part=\"input\"\n class=\"hex-input\"\n type=\"text\"\n inputmode=\"text\"\n autocomplete=\"off\"\n maxlength=\"6\"\n .value=${this.hexValue}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n ?required=${this.required}\n aria-label=${this.ariaLabel ?? nothing}\n aria-invalid=${this.invalid ? 'true' : nothing}\n @input=${this.handleHexInput}\n />\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pk-color-input': PkColorInput;\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as icons_exports } from "./icons-BR8JcQj2.js";
|
|
2
2
|
import { a as query, i as property, o as state, s as customElement, t as __decorate } from "./decorate-R0X811qp.js";
|
|
3
3
|
import { t as iconStyles } from "./icon.styles-BLTWLqYp.js";
|
|
4
|
-
import { t as PkFormAssociatedElement } from "./pk-form-associated-element-
|
|
4
|
+
import { t as PkFormAssociatedElement } from "./pk-form-associated-element-CCQALRGB.js";
|
|
5
5
|
import { t as MirrorValidator } from "./mirror-validator-DCjNYrrx.js";
|
|
6
6
|
import { t as HasSlotController } from "./has-slot-8BvCt_qo.js";
|
|
7
7
|
import { n as renderIconHtml } from "./render-Dvc3MHQR.js";
|
|
@@ -10,11 +10,12 @@ import { i as unregisterDismissible, n as isTopDismissible, r as registerDismiss
|
|
|
10
10
|
import { i as scrollIntoView } from "./scroll-lock-Bbh3Sc5g.js";
|
|
11
11
|
import { t as PkClearEvent } from "./pk-clear--mPWZP7H.js";
|
|
12
12
|
import { i as PkShowEvent, n as PkAfterShowEvent, r as PkHideEvent, t as PkAfterHideEvent } from "./overlay-lifecycle-D0pkTQyI.js";
|
|
13
|
-
import "./pk-popup-
|
|
13
|
+
import "./pk-popup-B65tZMQH.js";
|
|
14
14
|
import { i as waitForPopupReposition, r as syncPopupPlacementAnimation } from "./popup-placement-animation-WlEXnS85.js";
|
|
15
|
-
import { a as isListboxTypeToSelectKey, i as handleListboxKeyDown, n as LISTBOX_NAVIGATION_KEYS
|
|
16
|
-
import { n as
|
|
17
|
-
import { t as
|
|
15
|
+
import { a as isListboxTypeToSelectKey, i as handleListboxKeyDown, n as LISTBOX_NAVIGATION_KEYS } from "./sync-listbox-separators-B1-V0oJi.js";
|
|
16
|
+
import { i as waitForPopupContentExitAnimation, n as AsyncOptionFetcher, r as syncFilteredOptions, t as matchesOptionFilter } from "./option-filter-BQqr8Z21.js";
|
|
17
|
+
import { n as isPointerInsideOverlay, t as isEventInsideOverlay } from "./popup-pointer-CuLjk1th.js";
|
|
18
|
+
import { t as popupContentAnimationStyles } from "./popup-content-animation.styles-BnNiguJo.js";
|
|
18
19
|
import { css, html, nothing } from "lit";
|
|
19
20
|
import { classMap } from "lit/directives/class-map.js";
|
|
20
21
|
import { unsafeSVG } from "lit/directives/unsafe-svg.js";
|
|
@@ -197,7 +198,8 @@ var pkComboboxStyles = [popupContentAnimationStyles, css`
|
|
|
197
198
|
outline: none;
|
|
198
199
|
}
|
|
199
200
|
|
|
200
|
-
/* Trailing control absorbs the control's inline-end padding into its hit box
|
|
201
|
+
/* Trailing control absorbs the control's inline-end padding into its hit box,
|
|
202
|
+
with the same 4px glyph inset as pk-copy-button[slot=end]. */
|
|
201
203
|
.control > .expand-button,
|
|
202
204
|
.control > .clear-button:last-child {
|
|
203
205
|
width: calc(
|
|
@@ -205,7 +207,7 @@ var pkComboboxStyles = [popupContentAnimationStyles, css`
|
|
|
205
207
|
var(--pk-combobox-padding-inline)
|
|
206
208
|
);
|
|
207
209
|
margin-inline-start: calc(-0.5 * var(--pk-combobox-control-gap));
|
|
208
|
-
margin-inline-end: calc(-1 * var(--pk-combobox-padding-inline));
|
|
210
|
+
margin-inline-end: calc(-1 * var(--pk-combobox-padding-inline) + 4px);
|
|
209
211
|
}
|
|
210
212
|
|
|
211
213
|
.icon-button:disabled,
|
|
@@ -805,8 +807,8 @@ var PkCombobox = class PkCombobox extends PkFormAssociatedElement {
|
|
|
805
807
|
this.panelAnimated = false;
|
|
806
808
|
this.dismissRegistered = false;
|
|
807
809
|
this.panelEventTarget = null;
|
|
808
|
-
this.asyncFetchRequestId = 0;
|
|
809
810
|
this.selectedOptionMeta = null;
|
|
811
|
+
this.asyncFetcher = null;
|
|
810
812
|
this.asyncLoading = false;
|
|
811
813
|
this.asyncError = null;
|
|
812
814
|
this.handleOptionsMutation = (options = {}) => {
|
|
@@ -992,8 +994,7 @@ var PkCombobox = class PkCombobox extends PkFormAssociatedElement {
|
|
|
992
994
|
this.optionsObserver?.disconnect();
|
|
993
995
|
this.liveRegion?.destroy();
|
|
994
996
|
this.liveRegion = void 0;
|
|
995
|
-
|
|
996
|
-
this.fetchAbortController?.abort();
|
|
997
|
+
this.asyncFetcher?.cancel();
|
|
997
998
|
this.closePanel("api");
|
|
998
999
|
super.disconnectedCallback();
|
|
999
1000
|
}
|
|
@@ -1069,15 +1070,8 @@ var PkCombobox = class PkCombobox extends PkFormAssociatedElement {
|
|
|
1069
1070
|
const group = option.closest("pk-option-group");
|
|
1070
1071
|
return Boolean(group?.hidden);
|
|
1071
1072
|
}
|
|
1072
|
-
defaultFilter(option, query) {
|
|
1073
|
-
const label = option.getLabel().toLowerCase();
|
|
1074
|
-
const value = option.value.toLowerCase();
|
|
1075
|
-
const searchText = (option.getSearchText?.() ?? label).toLowerCase();
|
|
1076
|
-
return label.includes(query) || value.includes(query) || searchText.includes(query);
|
|
1077
|
-
}
|
|
1078
1073
|
matchesFilter(option, query) {
|
|
1079
|
-
|
|
1080
|
-
return this.defaultFilter(option, query);
|
|
1074
|
+
return matchesOptionFilter(option, query, this.filter);
|
|
1081
1075
|
}
|
|
1082
1076
|
getFilterQuery() {
|
|
1083
1077
|
if (!this.open) return "";
|
|
@@ -1148,37 +1142,31 @@ var PkCombobox = class PkCombobox extends PkFormAssociatedElement {
|
|
|
1148
1142
|
};
|
|
1149
1143
|
}
|
|
1150
1144
|
scheduleAsyncFetch(query) {
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
console.error("Failed to load combobox options:", error);
|
|
1177
|
-
this.asyncError = "Failed to load options. Please try again.";
|
|
1178
|
-
this.renderAsyncOptionNodes([]);
|
|
1179
|
-
} finally {
|
|
1180
|
-
if (requestId === this.asyncFetchRequestId) this.asyncLoading = false;
|
|
1181
|
-
}
|
|
1145
|
+
this.ensureAsyncFetcher().schedule(query);
|
|
1146
|
+
}
|
|
1147
|
+
ensureAsyncFetcher() {
|
|
1148
|
+
if (!this.asyncFetcher) this.asyncFetcher = new AsyncOptionFetcher(() => this.fetchOptions, {
|
|
1149
|
+
errorLabel: "combobox options",
|
|
1150
|
+
onLoading: () => {
|
|
1151
|
+
this.asyncLoading = true;
|
|
1152
|
+
this.asyncError = null;
|
|
1153
|
+
},
|
|
1154
|
+
onResults: (results) => {
|
|
1155
|
+
this.renderAsyncOptionNodes(results);
|
|
1156
|
+
},
|
|
1157
|
+
onError: (message) => {
|
|
1158
|
+
this.asyncError = message;
|
|
1159
|
+
},
|
|
1160
|
+
onSettled: () => {
|
|
1161
|
+
this.asyncLoading = false;
|
|
1162
|
+
},
|
|
1163
|
+
onEmptyQuery: () => {
|
|
1164
|
+
this.asyncLoading = false;
|
|
1165
|
+
this.asyncError = null;
|
|
1166
|
+
this.renderAsyncOptionNodes(this.value && this.selectedOptionMeta ? [this.selectedOptionMeta] : []);
|
|
1167
|
+
}
|
|
1168
|
+
});
|
|
1169
|
+
return this.asyncFetcher;
|
|
1182
1170
|
}
|
|
1183
1171
|
getAsyncStatusMessage() {
|
|
1184
1172
|
if (!this.usesAsyncSearch || !this.open) return null;
|
|
@@ -1189,11 +1177,6 @@ var PkCombobox = class PkCombobox extends PkFormAssociatedElement {
|
|
|
1189
1177
|
if (this.getEnabledVisibleOptions().length === 0 && !this.shouldShowCreateOption()) return `No matches for "${query}".`;
|
|
1190
1178
|
return null;
|
|
1191
1179
|
}
|
|
1192
|
-
shouldShowAsyncEmpty() {
|
|
1193
|
-
if (!this.usesAsyncSearch || !this.open) return false;
|
|
1194
|
-
if (!this.inputValue.trim() || this.asyncLoading || this.asyncError) return false;
|
|
1195
|
-
return this.getEnabledVisibleOptions().length === 0 && !this.shouldShowCreateOption();
|
|
1196
|
-
}
|
|
1197
1180
|
isSelected(value) {
|
|
1198
1181
|
if (this.multiple) return this.values.includes(value);
|
|
1199
1182
|
return this.value === value;
|
|
@@ -1230,18 +1213,14 @@ var PkCombobox = class PkCombobox extends PkFormAssociatedElement {
|
|
|
1230
1213
|
applySelection() {
|
|
1231
1214
|
const visible = this.getVisibleOptions();
|
|
1232
1215
|
const filterQuery = this.open ? this.getFilterQuery() : "";
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
const filterEmpty = groupOptions.length > 0 && groupOptions.every((option) => option.hidden);
|
|
1242
|
-
group.toggleAttribute("data-pk-filter-empty", filterEmpty);
|
|
1243
|
-
}
|
|
1244
|
-
syncListboxSeparators(this);
|
|
1216
|
+
syncFilteredOptions({
|
|
1217
|
+
host: this,
|
|
1218
|
+
options: this.options,
|
|
1219
|
+
visible,
|
|
1220
|
+
listboxId: this.listboxId,
|
|
1221
|
+
filterQuery,
|
|
1222
|
+
isSelected: (value) => this.isSelected(value)
|
|
1223
|
+
});
|
|
1245
1224
|
this.syncValueInput();
|
|
1246
1225
|
if (this.open) {
|
|
1247
1226
|
this.syncHighlight();
|
|
@@ -1411,7 +1390,7 @@ var PkCombobox = class PkCombobox extends PkFormAssociatedElement {
|
|
|
1411
1390
|
this.unbindPanelEvents();
|
|
1412
1391
|
this.closing = true;
|
|
1413
1392
|
this.panelAnimated = false;
|
|
1414
|
-
await this.
|
|
1393
|
+
await waitForPopupContentExitAnimation(this.panelElement);
|
|
1415
1394
|
this.open = false;
|
|
1416
1395
|
this.closing = false;
|
|
1417
1396
|
this.panelAnimated = false;
|
|
@@ -1425,8 +1404,7 @@ var PkCombobox = class PkCombobox extends PkFormAssociatedElement {
|
|
|
1425
1404
|
this.unregisterDismissHandlers();
|
|
1426
1405
|
this.applySelection();
|
|
1427
1406
|
if (this.usesAsyncSearch) {
|
|
1428
|
-
|
|
1429
|
-
this.fetchAbortController?.abort();
|
|
1407
|
+
this.asyncFetcher?.cancel();
|
|
1430
1408
|
this.asyncLoading = false;
|
|
1431
1409
|
this.asyncError = null;
|
|
1432
1410
|
this.renderAsyncOptionNodes(this.selectedOptionMeta ? [this.selectedOptionMeta] : []);
|
|
@@ -1448,27 +1426,6 @@ var PkCombobox = class PkCombobox extends PkFormAssociatedElement {
|
|
|
1448
1426
|
composed: true
|
|
1449
1427
|
}));
|
|
1450
1428
|
}
|
|
1451
|
-
waitForExitAnimation() {
|
|
1452
|
-
const panel = this.panelElement;
|
|
1453
|
-
if (!panel) return Promise.resolve();
|
|
1454
|
-
return new Promise((resolve) => {
|
|
1455
|
-
let settled = false;
|
|
1456
|
-
const finish = () => {
|
|
1457
|
-
if (settled) return;
|
|
1458
|
-
settled = true;
|
|
1459
|
-
panel.removeEventListener("animationend", onAnimationEnd);
|
|
1460
|
-
window.clearTimeout(fallback);
|
|
1461
|
-
panel.classList.remove("closing");
|
|
1462
|
-
resolve();
|
|
1463
|
-
};
|
|
1464
|
-
const onAnimationEnd = (event) => {
|
|
1465
|
-
if (event.target === panel && event.animationName.startsWith("pk-popup-content-out")) finish();
|
|
1466
|
-
};
|
|
1467
|
-
panel.classList.add("closing");
|
|
1468
|
-
panel.addEventListener("animationend", onAnimationEnd);
|
|
1469
|
-
const fallback = window.setTimeout(finish, 150);
|
|
1470
|
-
});
|
|
1471
|
-
}
|
|
1472
1429
|
shouldReturnFocusToInput(source) {
|
|
1473
1430
|
return source !== "light-dismiss" && source !== "pointer-dismiss";
|
|
1474
1431
|
}
|
|
@@ -1837,7 +1794,7 @@ var PkCombobox = class PkCombobox extends PkFormAssociatedElement {
|
|
|
1837
1794
|
render() {
|
|
1838
1795
|
const visibleOptions = this.getEnabledVisibleOptions();
|
|
1839
1796
|
const showCreate = this.shouldShowCreateOption();
|
|
1840
|
-
const showEmpty = this.open &&
|
|
1797
|
+
const showEmpty = this.open && !this.usesAsyncSearch && visibleOptions.length === 0 && !showCreate;
|
|
1841
1798
|
const asyncStatus = this.getAsyncStatusMessage();
|
|
1842
1799
|
const createQuery = this.inputValue.trim();
|
|
1843
1800
|
return html`
|
|
@@ -2012,4 +1969,4 @@ PkCombobox = __decorate([customElement("pk-combobox")], PkCombobox);
|
|
|
2012
1969
|
//#endregion
|
|
2013
1970
|
export { PkCreateEvent as n, PkCombobox as t };
|
|
2014
1971
|
|
|
2015
|
-
//# sourceMappingURL=pk-combobox-
|
|
1972
|
+
//# sourceMappingURL=pk-combobox-CL9En0J-.js.map
|