@verbb/plugin-kit-web 2.0.21 → 2.0.23
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 +19 -0
- package/custom-elements.json +1400 -13
- package/dist/chunks/{active-elements-BwpXu8Lb.js → active-elements-DM_lCHaW.js} +1 -1
- package/dist/chunks/{active-elements-BwpXu8Lb.js.map → active-elements-DM_lCHaW.js.map} +1 -1
- package/dist/chunks/{animate-with-class-CsDwYnXL.js → animate-with-class-NP-yJVt_.js} +1 -1
- package/dist/chunks/{animate-with-class-CsDwYnXL.js.map → animate-with-class-NP-yJVt_.js.map} +1 -1
- package/dist/chunks/{autoloader-dJO3tYOX.js → autoloader-DnSfHkrD.js} +3 -3
- package/dist/chunks/{autoloader-dJO3tYOX.js.map → autoloader-DnSfHkrD.js.map} +1 -1
- package/dist/chunks/{button-group-item.styles-DYmBR28a.js → button-group-item.styles-G05d0DNI.js} +1 -1
- package/dist/chunks/{button-group-item.styles-DYmBR28a.js.map → button-group-item.styles-G05d0DNI.js.map} +1 -1
- package/dist/chunks/{component-registry-D34fm8xW.js → component-registry-DoevfR-u.js} +5 -1
- package/dist/chunks/component-registry-DoevfR-u.js.map +1 -0
- package/dist/chunks/{control-aria-B2QMq4ji.js → control-aria-CzouQRZD.js} +1 -1
- package/dist/chunks/{control-aria-B2QMq4ji.js.map → control-aria-CzouQRZD.js.map} +1 -1
- package/dist/chunks/{dismissible-stack-XQUMfKO3.js → dismissible-stack-B3BgzdQb.js} +1 -1
- package/dist/chunks/{dismissible-stack-XQUMfKO3.js.map → dismissible-stack-B3BgzdQb.js.map} +1 -1
- package/dist/chunks/{field-labels-CmuAW8Cl.js → field-labels-CGSfAGf-.js} +1 -1
- package/dist/chunks/{field-labels-CmuAW8Cl.js.map → field-labels-CGSfAGf-.js.map} +1 -1
- package/dist/chunks/{focus-aa5dlv8k.js → focus-C6pY4Ym4.js} +2 -2
- package/dist/chunks/{focus-aa5dlv8k.js.map → focus-C6pY4Ym4.js.map} +1 -1
- package/dist/chunks/{form-control.styles-BQdimE5o.js → form-control.styles-BHwSsx_y.js} +1 -1
- package/dist/chunks/{form-control.styles-BQdimE5o.js.map → form-control.styles-BHwSsx_y.js.map} +1 -1
- package/dist/chunks/{has-slot-8BvCt_qo.js → has-slot-9zjTXvea.js} +1 -1
- package/dist/chunks/{has-slot-8BvCt_qo.js.map → has-slot-9zjTXvea.js.map} +1 -1
- package/dist/chunks/{icon.styles-BLTWLqYp.js → icon.styles-pNyUmVtP.js} +1 -1
- package/dist/chunks/{icon.styles-BLTWLqYp.js.map → icon.styles-pNyUmVtP.js.map} +1 -1
- package/dist/chunks/{icons-BR8JcQj2.js → icons-B8siZLOe.js} +2 -2
- package/dist/chunks/{icons-BR8JcQj2.js.map → icons-B8siZLOe.js.map} +1 -1
- package/dist/chunks/{mirror-validator-DCjNYrrx.js → mirror-validator-Cszpqlxk.js} +1 -1
- package/dist/chunks/{mirror-validator-DCjNYrrx.js.map → mirror-validator-Cszpqlxk.js.map} +1 -1
- package/dist/chunks/{option-filter-BQqr8Z21.js → option-filter-Cj5SvyzI.js} +2 -2
- package/dist/chunks/{option-filter-BQqr8Z21.js.map → option-filter-Cj5SvyzI.js.map} +1 -1
- package/dist/chunks/{overlay-lifecycle-D0pkTQyI.js → overlay-lifecycle-CAoT0LE8.js} +1 -1
- package/dist/chunks/{overlay-lifecycle-D0pkTQyI.js.map → overlay-lifecycle-CAoT0LE8.js.map} +1 -1
- package/dist/chunks/pk-alert-Cjxl6CY_.js +664 -0
- package/dist/chunks/pk-alert-Cjxl6CY_.js.map +1 -0
- package/dist/chunks/{pk-autocomplete-qy2Psvqm.js → pk-autocomplete-DA77kdTN.js} +19 -19
- package/dist/chunks/{pk-autocomplete-qy2Psvqm.js.map → pk-autocomplete-DA77kdTN.js.map} +1 -1
- package/dist/chunks/{pk-button-BrH4u4Qr.js → pk-button-DCtNLEPr.js} +6 -6
- package/dist/chunks/{pk-button-BrH4u4Qr.js.map → pk-button-DCtNLEPr.js.map} +1 -1
- package/dist/chunks/{pk-button-group-BSz5T5iS.js → pk-button-group-DBdKK_2_.js} +1 -1
- package/dist/chunks/{pk-button-group-BSz5T5iS.js.map → pk-button-group-DBdKK_2_.js.map} +1 -1
- package/dist/chunks/{pk-button-group-separator-DH3Rl24b.js → pk-button-group-separator-D0Aa0a0f.js} +1 -1
- package/dist/chunks/{pk-button-group-separator-DH3Rl24b.js.map → pk-button-group-separator-D0Aa0a0f.js.map} +1 -1
- package/dist/chunks/{pk-button-group-text-Qro_KmZb.js → pk-button-group-text-BsqEM-dB.js} +2 -2
- package/dist/chunks/{pk-button-group-text-Qro_KmZb.js.map → pk-button-group-text-BsqEM-dB.js.map} +1 -1
- package/dist/chunks/{pk-calendar-Z7Y0PjeY.js → pk-calendar-hBz1MnOu.js} +6 -6
- package/dist/chunks/{pk-calendar-Z7Y0PjeY.js.map → pk-calendar-hBz1MnOu.js.map} +1 -1
- package/dist/chunks/{pk-checkbox-13ArHSmt.js → pk-checkbox-dvHRoVbL.js} +4 -4
- package/dist/chunks/{pk-checkbox-13ArHSmt.js.map → pk-checkbox-dvHRoVbL.js.map} +1 -1
- package/dist/chunks/{pk-checkbox-select-Ckvfbu83.js → pk-checkbox-select-Cqx5ZCMq.js} +2 -2
- package/dist/chunks/{pk-checkbox-select-Ckvfbu83.js.map → pk-checkbox-select-Cqx5ZCMq.js.map} +1 -1
- package/dist/chunks/{pk-clear--mPWZP7H.js → pk-clear-LzxwxEX7.js} +1 -1
- package/dist/chunks/{pk-clear--mPWZP7H.js.map → pk-clear-LzxwxEX7.js.map} +1 -1
- package/dist/chunks/{pk-code-editor-BlG6O5qB.js → pk-code-editor-C_PqjR75.js} +4 -4
- package/dist/chunks/{pk-code-editor-BlG6O5qB.js.map → pk-code-editor-C_PqjR75.js.map} +1 -1
- package/dist/chunks/{pk-color-input-BRgQ5-vB.js → pk-color-input-4LDV0Z3W.js} +4 -4
- package/dist/chunks/{pk-color-input-BRgQ5-vB.js.map → pk-color-input-4LDV0Z3W.js.map} +1 -1
- package/dist/chunks/{pk-combobox-ag89QEX2.js → pk-combobox-BeddzAsl.js} +19 -19
- package/dist/chunks/{pk-combobox-ag89QEX2.js.map → pk-combobox-BeddzAsl.js.map} +1 -1
- package/dist/chunks/{pk-connect.styles-BhW406jt.js → pk-connect.styles-ciqZMK3B.js} +1 -1
- package/dist/chunks/{pk-connect.styles-BhW406jt.js.map → pk-connect.styles-ciqZMK3B.js.map} +1 -1
- package/dist/chunks/{pk-copy-button-BVaOLtYG.js → pk-copy-button-KegSx46o.js} +29 -8
- package/dist/chunks/pk-copy-button-KegSx46o.js.map +1 -0
- package/dist/chunks/{pk-date-picker-C2YvDPNm.js → pk-date-picker-D_JFep-Y.js} +19 -19
- package/dist/chunks/{pk-date-picker-C2YvDPNm.js.map → pk-date-picker-D_JFep-Y.js.map} +1 -1
- package/dist/chunks/{pk-dialog-VMQqLW1f.js → pk-dialog-CFU850OH.js} +8 -8
- package/dist/chunks/{pk-dialog-VMQqLW1f.js.map → pk-dialog-CFU850OH.js.map} +1 -1
- package/dist/chunks/{pk-dropdown-item-D9OaG5o-.js → pk-dropdown-item-A4P4zfVF.js} +5 -5
- package/dist/chunks/{pk-dropdown-item-D9OaG5o-.js.map → pk-dropdown-item-A4P4zfVF.js.map} +1 -1
- package/dist/chunks/{pk-dropdown-label-CRNWMWQd.js → pk-dropdown-label-PqDxMkCI.js} +1 -1
- package/dist/chunks/{pk-dropdown-label-CRNWMWQd.js.map → pk-dropdown-label-PqDxMkCI.js.map} +1 -1
- package/dist/chunks/{pk-dropdown-menu-DW1wI8xQ.js → pk-dropdown-menu-C_vasBoa.js} +9 -9
- package/dist/chunks/{pk-dropdown-menu-DW1wI8xQ.js.map → pk-dropdown-menu-C_vasBoa.js.map} +1 -1
- package/dist/chunks/{pk-editable-table-DDnu1I8Y.js → pk-editable-table-B85NhFYY.js} +18 -18
- package/dist/chunks/{pk-editable-table-DDnu1I8Y.js.map → pk-editable-table-B85NhFYY.js.map} +1 -1
- package/dist/chunks/{pk-field-UAlMq6mQ.js → pk-field-BJA2fZ6s.js} +7 -7
- package/dist/chunks/{pk-field-UAlMq6mQ.js.map → pk-field-BJA2fZ6s.js.map} +1 -1
- package/dist/chunks/{pk-form-associated-element-GxX5lbnk.js → pk-form-associated-element-MqaHdIoH.js} +2 -2
- package/dist/chunks/{pk-form-associated-element-GxX5lbnk.js.map → pk-form-associated-element-MqaHdIoH.js.map} +1 -1
- package/dist/chunks/{pk-image-browser-Bj8LhWfk.js → pk-image-browser-DLAQcjFt.js} +19 -19
- package/dist/chunks/{pk-image-browser-Bj8LhWfk.js.map → pk-image-browser-DLAQcjFt.js.map} +1 -1
- package/dist/chunks/{pk-input-BywmK5n2.js → pk-input-CiUNLTSW.js} +11 -11
- package/dist/chunks/{pk-input-BywmK5n2.js.map → pk-input-CiUNLTSW.js.map} +1 -1
- package/dist/chunks/{pk-input-group-addon-ClBkGmAw.js → pk-input-group-addon-piOznzSS.js} +1 -1
- package/dist/chunks/{pk-input-group-addon-ClBkGmAw.js.map → pk-input-group-addon-piOznzSS.js.map} +1 -1
- package/dist/chunks/{pk-input-group-button-CHQHsWd4.js → pk-input-group-button-Di2vEJLo.js} +1 -1
- package/dist/chunks/{pk-input-group-button-CHQHsWd4.js.map → pk-input-group-button-Di2vEJLo.js.map} +1 -1
- package/dist/chunks/{pk-input-group-input-oNnqMBGU.js → pk-input-group-input-CwaaEfr1.js} +1 -1
- package/dist/chunks/{pk-input-group-input-oNnqMBGU.js.map → pk-input-group-input-CwaaEfr1.js.map} +1 -1
- package/dist/chunks/{pk-input-group-BLqKPnfc.js → pk-input-group-k7WV0pQI.js} +3 -3
- package/dist/chunks/{pk-input-group-BLqKPnfc.js.map → pk-input-group-k7WV0pQI.js.map} +1 -1
- package/dist/chunks/{pk-input-group-text-HUxlXROB.js → pk-input-group-text-C0VAdy0J.js} +1 -1
- package/dist/chunks/{pk-input-group-text-HUxlXROB.js.map → pk-input-group-text-C0VAdy0J.js.map} +1 -1
- package/dist/chunks/{pk-input-group-textarea-Cl2FNuw-.js → pk-input-group-textarea-DOG1NIlE.js} +1 -1
- package/dist/chunks/{pk-input-group-textarea-Cl2FNuw-.js.map → pk-input-group-textarea-DOG1NIlE.js.map} +1 -1
- package/dist/chunks/{pk-lightswitch-VHfJizBW.js → pk-lightswitch-FH5ZxMG2.js} +7 -7
- package/dist/chunks/{pk-lightswitch-VHfJizBW.js.map → pk-lightswitch-FH5ZxMG2.js.map} +1 -1
- package/dist/chunks/{pk-option-DQZHV9jL.js → pk-option-Cx52kLmz.js} +3 -3
- package/dist/chunks/{pk-option-DQZHV9jL.js.map → pk-option-Cx52kLmz.js.map} +1 -1
- package/dist/chunks/{pk-option-group-CCzJkBFp.js → pk-option-group-CYo9Ukue.js} +2 -2
- package/dist/chunks/{pk-option-group-CCzJkBFp.js.map → pk-option-group-CYo9Ukue.js.map} +1 -1
- package/dist/chunks/{pk-popover-D3jkHfwB.js → pk-popover-209LdoPr.js} +9 -9
- package/dist/chunks/{pk-popover-D3jkHfwB.js.map → pk-popover-209LdoPr.js.map} +1 -1
- package/dist/chunks/{pk-popup-B65tZMQH.js → pk-popup-0EIt9X_W.js} +3 -3
- package/dist/chunks/{pk-popup-B65tZMQH.js.map → pk-popup-0EIt9X_W.js.map} +1 -1
- package/dist/chunks/{pk-radio-group-Dzd-3HaQ.js → pk-radio-group-CruMBeeF.js} +6 -6
- package/dist/chunks/{pk-radio-group-Dzd-3HaQ.js.map → pk-radio-group-CruMBeeF.js.map} +1 -1
- package/dist/chunks/{pk-radio-B5XkMHy3.js → pk-radio-jgj6A0Wy.js} +1 -1
- package/dist/chunks/{pk-radio-B5XkMHy3.js.map → pk-radio-jgj6A0Wy.js.map} +1 -1
- package/dist/chunks/{pk-scroll-area-CdfNxYz8.js → pk-scroll-area-BaqN798b.js} +1 -1
- package/dist/chunks/{pk-scroll-area-CdfNxYz8.js.map → pk-scroll-area-BaqN798b.js.map} +1 -1
- package/dist/chunks/{pk-select-b5S5WKc-.js → pk-select-UUH7FE4H.js} +18 -18
- package/dist/chunks/{pk-select-b5S5WKc-.js.map → pk-select-UUH7FE4H.js.map} +1 -1
- package/dist/chunks/{pk-separator-N-VyjYE6.js → pk-separator-Bcxg_GO2.js} +1 -1
- package/dist/chunks/{pk-separator-N-VyjYE6.js.map → pk-separator-Bcxg_GO2.js.map} +1 -1
- package/dist/chunks/{pk-spinner-DweuYJ_Z.js → pk-spinner-CN365srE.js} +1 -1
- package/dist/chunks/{pk-spinner-DweuYJ_Z.js.map → pk-spinner-CN365srE.js.map} +1 -1
- package/dist/chunks/pk-state-panel-DPP7t-er.js +603 -0
- package/dist/chunks/pk-state-panel-DPP7t-er.js.map +1 -0
- package/dist/chunks/{pk-status-BehQARDv.js → pk-status-CYcadu0Q.js} +1 -1
- package/dist/chunks/{pk-status-BehQARDv.js.map → pk-status-CYcadu0Q.js.map} +1 -1
- package/dist/chunks/{pk-tab-CTloD18e.js → pk-tab-BmXNyDg7.js} +1 -1
- package/dist/chunks/{pk-tab-CTloD18e.js.map → pk-tab-BmXNyDg7.js.map} +1 -1
- package/dist/chunks/{pk-tab-heading-Cjcgebxn.js → pk-tab-heading-GZHVmCAd.js} +1 -1
- package/dist/chunks/{pk-tab-heading-Cjcgebxn.js.map → pk-tab-heading-GZHVmCAd.js.map} +1 -1
- package/dist/chunks/{pk-tab-panel-CkKU5-Ah.js → pk-tab-panel-OpM3f_cm.js} +1 -1
- package/dist/chunks/{pk-tab-panel-CkKU5-Ah.js.map → pk-tab-panel-OpM3f_cm.js.map} +1 -1
- package/dist/chunks/{pk-tabs-BgEBki1q.js → pk-tabs-x26NAw-V.js} +2 -2
- package/dist/chunks/{pk-tabs-BgEBki1q.js.map → pk-tabs-x26NAw-V.js.map} +1 -1
- package/dist/chunks/{pk-textarea-Dhj1WFLH.js → pk-textarea-CBijEmcV.js} +9 -9
- package/dist/chunks/{pk-textarea-Dhj1WFLH.js.map → pk-textarea-CBijEmcV.js.map} +1 -1
- package/dist/chunks/{pk-time-picker-ChRbKHNB.js → pk-time-picker-D-u5-7pf.js} +5 -5
- package/dist/chunks/{pk-time-picker-ChRbKHNB.js.map → pk-time-picker-D-u5-7pf.js.map} +1 -1
- package/dist/chunks/{pk-tiptap-content-CL8smjGi.js → pk-tiptap-content-BGxMO3T4.js} +2 -2
- package/dist/chunks/{pk-tiptap-content-CL8smjGi.js.map → pk-tiptap-content-BGxMO3T4.js.map} +1 -1
- package/dist/chunks/{pk-tiptap-editor-BzZ-J2sl.js → pk-tiptap-editor-BeuyzH5l.js} +20 -20
- package/dist/chunks/pk-tiptap-editor-BeuyzH5l.js.map +1 -0
- package/dist/chunks/{pk-tiptap-input-YKg4VLp_.js → pk-tiptap-input-CQojaxDH.js} +5 -5
- package/dist/chunks/{pk-tiptap-input-YKg4VLp_.js.map → pk-tiptap-input-CQojaxDH.js.map} +1 -1
- package/dist/chunks/{pk-toggle-BthhH7vl.js → pk-toggle-CAtGO_Le.js} +2 -2
- package/dist/chunks/{pk-toggle-BthhH7vl.js.map → pk-toggle-CAtGO_Le.js.map} +1 -1
- package/dist/chunks/{pk-toggle-group-D2Quux8D.js → pk-toggle-group-CLso6OE7.js} +1 -1
- package/dist/chunks/{pk-toggle-group-D2Quux8D.js.map → pk-toggle-group-CLso6OE7.js.map} +1 -1
- package/dist/chunks/{pk-tooltip--QBV6puX.js → pk-tooltip-C6yb4CXI.js} +5 -5
- package/dist/chunks/{pk-tooltip--QBV6puX.js.map → pk-tooltip-C6yb4CXI.js.map} +1 -1
- package/dist/chunks/{popup-content-animation.styles-BnNiguJo.js → popup-content-animation.styles-EUnGV75J.js} +1 -1
- package/dist/chunks/{popup-content-animation.styles-BnNiguJo.js.map → popup-content-animation.styles-EUnGV75J.js.map} +1 -1
- package/dist/chunks/{popup-placement-animation-WlEXnS85.js → popup-placement-animation-GvFXER7D.js} +1 -1
- package/dist/chunks/{popup-placement-animation-WlEXnS85.js.map → popup-placement-animation-GvFXER7D.js.map} +1 -1
- package/dist/chunks/{popup-pointer-CuLjk1th.js → popup-pointer-BTS3Y6LE.js} +1 -1
- package/dist/chunks/{popup-pointer-CuLjk1th.js.map → popup-pointer-BTS3Y6LE.js.map} +1 -1
- package/dist/chunks/{register-C6_F-VwU.js → register-BDO_LUHK.js} +57 -51
- package/dist/chunks/register-BDO_LUHK.js.map +1 -0
- package/dist/chunks/{register-components-BT9THgdh.js → register-components-Dcdn1e3S.js} +1 -1
- package/dist/chunks/{register-components-BT9THgdh.js.map → register-components-Dcdn1e3S.js.map} +1 -1
- package/dist/chunks/{render-Dvc3MHQR.js → render-BKGW1a68.js} +1 -1
- package/dist/chunks/{render-Dvc3MHQR.js.map → render-BKGW1a68.js.map} +1 -1
- package/dist/chunks/{required-validator-CEg8dvjS.js → required-validator-CaRnQk1V.js} +1 -1
- package/dist/chunks/{required-validator-CEg8dvjS.js.map → required-validator-CaRnQk1V.js.map} +1 -1
- package/dist/chunks/{scroll-lock-Bbh3Sc5g.js → scroll-lock-gTFrvIPu.js} +1 -1
- package/dist/chunks/{scroll-lock-Bbh3Sc5g.js.map → scroll-lock-gTFrvIPu.js.map} +1 -1
- package/dist/chunks/{spinner-utils-CDfHypTv.js → spinner-utils-Co_4X3ip.js} +1 -1
- package/dist/chunks/{spinner-utils-CDfHypTv.js.map → spinner-utils-Co_4X3ip.js.map} +1 -1
- package/dist/chunks/{supports-popover-CUBsbHpS.js → supports-popover-6lNVStLh.js} +1 -1
- package/dist/chunks/{supports-popover-CUBsbHpS.js.map → supports-popover-6lNVStLh.js.map} +1 -1
- package/dist/chunks/{sync-listbox-separators-B1-V0oJi.js → sync-listbox-separators-CPFtrpNq.js} +1 -1
- package/dist/chunks/{sync-listbox-separators-B1-V0oJi.js.map → sync-listbox-separators-CPFtrpNq.js.map} +1 -1
- package/dist/chunks/{tiptap.styles-CPRows--.js → tiptap.styles-DjhIrSBN.js} +2 -2
- package/dist/chunks/{tiptap.styles-CPRows--.js.map → tiptap.styles-DjhIrSBN.js.map} +1 -1
- package/dist/component-registry.d.ts.map +1 -1
- package/dist/components/alert/index.d.ts +2 -0
- package/dist/components/alert/index.d.ts.map +1 -0
- package/dist/components/alert/pk-alert.d.ts +95 -0
- package/dist/components/alert/pk-alert.d.ts.map +1 -0
- package/dist/components/alert/pk-alert.js +2 -0
- package/dist/components/alert/pk-alert.styles.d.ts +2 -0
- package/dist/components/alert/pk-alert.styles.d.ts.map +1 -0
- package/dist/components/alert.d.ts +2 -0
- package/dist/components/alert.js +2 -0
- package/dist/components/autocomplete/pk-autocomplete.js +1 -1
- package/dist/components/autocomplete.js +1 -1
- package/dist/components/button/pk-button.js +1 -1
- package/dist/components/button-group/pk-button-group-separator.js +1 -1
- package/dist/components/button-group/pk-button-group-text.js +1 -1
- package/dist/components/button-group/pk-button-group.js +1 -1
- package/dist/components/button-group.js +3 -3
- 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.js +1 -1
- package/dist/components/combobox.js +1 -1
- package/dist/components/connect/pk-connect-oauth.js +3 -3
- package/dist/components/connect/pk-connect.d.ts +0 -1
- package/dist/components/connect/pk-connect.d.ts.map +1 -1
- package/dist/components/connect/pk-connect.js +25 -48
- package/dist/components/connect/pk-connect.js.map +1 -1
- package/dist/components/copy-button/pk-copy-button.d.ts +17 -2
- 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.js +1 -1
- package/dist/components/dialog.js +1 -1
- package/dist/components/dropdown-menu/pk-dropdown-item.js +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.js +3 -3
- 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/image-browser/pk-image-browser.js +1 -1
- package/dist/components/image-browser.js +1 -1
- package/dist/components/input/pk-input.js +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.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.js +1 -1
- package/dist/components/popover.js +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.js +1 -1
- package/dist/components/select/pk-option.js +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/spinner/pk-spinner.js +1 -1
- package/dist/components/spinner.js +2 -2
- package/dist/components/state-panel/index.d.ts +2 -0
- package/dist/components/state-panel/index.d.ts.map +1 -0
- package/dist/components/state-panel/pk-state-panel.d.ts +89 -0
- package/dist/components/state-panel/pk-state-panel.d.ts.map +1 -0
- package/dist/components/state-panel/pk-state-panel.js +2 -0
- package/dist/components/state-panel/pk-state-panel.styles.d.ts +2 -0
- package/dist/components/state-panel/pk-state-panel.styles.d.ts.map +1 -0
- package/dist/components/state-panel.d.ts +2 -0
- package/dist/components/state-panel.js +2 -0
- 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.js +1 -1
- package/dist/components/tiptap/pk-tiptap-editor.d.ts +2 -0
- 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-input.js +1 -1
- package/dist/components/tiptap/tiptap-utils.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.d.ts.map +1 -1
- package/dist/connect/register-cp-connect.js +8 -9
- package/dist/connect/register-cp-connect.js.map +1 -1
- package/dist/events/pk-dismiss.d.ts +10 -0
- package/dist/events/pk-dismiss.d.ts.map +1 -0
- package/dist/icons/index.js +2 -2
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +73 -66
- package/dist/index.js.map +1 -1
- package/dist/plugin-kit.css +2 -0
- package/dist/plugin-kit.js +4 -4
- 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.d.ts +5 -1
- package/dist/register.d.ts.map +1 -1
- package/dist/register.js +59 -55
- package/dist/styles/connect/pk-connect.css +6 -107
- package/dist/utilities/fouce.css +2 -0
- package/dist-loader/chunks/{button-group-item.styles-CsBQ3Cyh.js → button-group-item.styles-CXLuiMeZ.js} +1 -1
- package/dist-loader/chunks/{lit-DpLik9Rf.js → lit-s6aadvWG.js} +78 -78
- package/dist-loader/chunks/{option-filter-Bc5aNNT0.js → option-filter-DH11hDpV.js} +1 -1
- package/dist-loader/chunks/{pk-base-B2MqxErC.js → pk-base-Om6X9ab5.js} +1 -1
- package/dist-loader/chunks/{pk-button-Dfm23jEC.js → pk-button-nSZxt8_B.js} +5 -5
- package/dist-loader/chunks/{pk-calendar-BuSULJCU.js → pk-calendar-BS7Mfme_.js} +5 -5
- package/dist-loader/chunks/{pk-checkbox-BDoq3xg0.js → pk-checkbox-CYUcOnco.js} +4 -4
- package/dist-loader/chunks/{pk-color-input-eLjO9zfn.js → pk-color-input-BjDit7z0.js} +4 -4
- package/dist-loader/chunks/{pk-combobox-DBvcyxRC.js → pk-combobox-DyexEhFo.js} +14 -14
- package/dist-loader/chunks/{pk-connect.styles-k61snd3X.js → pk-connect.styles-BsPAXjgF.js} +1 -1
- package/dist-loader/chunks/pk-copy-button-CoN83ilF.js +198 -0
- package/dist-loader/chunks/{pk-date-picker-CYLpYIji.js → pk-date-picker-CO6deRCu.js} +14 -14
- package/dist-loader/chunks/{pk-dialog-BtrH5Ke0.js → pk-dialog-BWo6iDnY.js} +6 -6
- package/dist-loader/chunks/{pk-dropdown-item-D8tfEU-k.js → pk-dropdown-item-CbujjI8U.js} +7 -7
- package/dist-loader/chunks/{pk-dropdown-label-TbLj4bHK.js → pk-dropdown-label-9X4ctyES.js} +2 -2
- package/dist-loader/chunks/{pk-dropdown-menu-C4GDW5pE.js → pk-dropdown-menu-D1KpGuqU.js} +8 -8
- package/dist-loader/chunks/{pk-field-BM0XD9Ij.js → pk-field-DzggayrX.js} +5 -5
- package/dist-loader/chunks/{pk-icon-_1F1aL74.js → pk-icon-DQPqxFKW.js} +3 -3
- package/dist-loader/chunks/{pk-input-DvBrD7Md.js → pk-input-C1peOijH.js} +8 -8
- package/dist-loader/chunks/{pk-lightswitch-CcwlLQ9f.js → pk-lightswitch-Y-I3eKCt.js} +6 -6
- package/dist-loader/chunks/{pk-option-DATPm0Bo.js → pk-option-IfazQDxz.js} +4 -4
- package/dist-loader/chunks/{pk-popup-CUuGs8r_.js → pk-popup-BrLT_4kD.js} +4 -4
- package/dist-loader/chunks/{pk-select-DpcvbzUL.js → pk-select-49fogRYV.js} +13 -13
- package/dist-loader/chunks/{pk-spinner-Dk_LbvHW.js → pk-spinner-BmnrA60m.js} +2 -2
- package/dist-loader/chunks/pk-state-panel-DKf54EnJ.js +600 -0
- package/dist-loader/chunks/{pk-status-B8UvjIp2.js → pk-status-Dat3_D-T.js} +2 -2
- package/dist-loader/chunks/{pk-textarea-DeSuxufJ.js → pk-textarea-DPb2R8gV.js} +6 -6
- package/dist-loader/chunks/{pk-time-picker-DpJt8biN.js → pk-time-picker-CJiQTVuC.js} +6 -6
- package/dist-loader/chunks/{pk-tooltip-DcF9J5GT.js → pk-tooltip-CqwQfOPV.js} +5 -5
- package/dist-loader/chunks/{popup-content-animation.styles-duCg9-CH.js → popup-content-animation.styles-CWR2mend.js} +1 -1
- package/dist-loader/chunks/{render-Bnzcxfss.js → render-BuA2YeZN.js} +1 -1
- package/dist-loader/chunks/{svg-Bz-bXZn7.js → svg-C6YcJMk9.js} +8 -1
- package/dist-loader/chunks/{tiptap-CgXkiK8d.js → tiptap-BhYH5Dva.js} +1 -1
- package/dist-loader/chunks/{tiptap.styles-C0E1NpSx.js → tiptap.styles-BckAim0_.js} +2 -2
- package/dist-loader/components/alert/alert.js +661 -0
- package/dist-loader/components/autocomplete/autocomplete.js +14 -14
- package/dist-loader/components/button/button.js +1 -1
- package/dist-loader/components/button-group/button-group-separator.js +2 -2
- package/dist-loader/components/button-group/button-group-text.js +3 -3
- package/dist-loader/components/button-group/button-group.js +2 -2
- 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 +3 -3
- package/dist-loader/components/code-editor/code-editor.js +4 -4
- 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 +5 -5
- package/dist-loader/components/connect/connect.js +28 -51
- package/dist-loader/components/copy-button/copy-button.js +1 -176
- 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 -1
- package/dist-loader/components/dropdown-menu/dropdown-menu.js +1 -1
- package/dist-loader/components/dropdown-menu/dropdown-separator.js +2 -2
- package/dist-loader/components/editable-table/editable-table.js +18 -18
- 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 +14 -14
- package/dist-loader/components/input/input.js +1 -1
- package/dist-loader/components/input-group/input-group-addon.js +2 -2
- package/dist-loader/components/input-group/input-group-button.js +2 -2
- package/dist-loader/components/input-group/input-group-input.js +2 -2
- package/dist-loader/components/input-group/input-group-text.js +2 -2
- package/dist-loader/components/input-group/input-group-textarea.js +2 -2
- package/dist-loader/components/input-group/input-group.js +3 -3
- package/dist-loader/components/lightswitch/lightswitch.js +1 -1
- package/dist-loader/components/popover/popover.js +8 -8
- package/dist-loader/components/popup/popup.js +1 -1
- package/dist-loader/components/radio-group/radio-group.js +5 -5
- package/dist-loader/components/radio-group/radio.js +2 -2
- package/dist-loader/components/scroll-area/scroll-area.js +2 -2
- package/dist-loader/components/select/option-group.js +2 -2
- 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 +2 -2
- package/dist-loader/components/spinner/spinner.js +1 -1
- package/dist-loader/components/state-panel/state-panel.js +2 -0
- package/dist-loader/components/status/status.js +1 -1
- package/dist-loader/components/tabs/tab-heading.js +2 -2
- package/dist-loader/components/tabs/tab-panel.js +2 -2
- package/dist-loader/components/tabs/tab.js +2 -2
- package/dist-loader/components/tabs/tabs.js +2 -2
- 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 +4 -4
- package/dist-loader/components/tiptap/tiptap-editor.js +19 -19
- package/dist-loader/components/tiptap/tiptap-input.js +5 -5
- package/dist-loader/components/toggle/toggle.js +3 -3
- package/dist-loader/components/toggle-group/toggle-group.js +2 -2
- 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/styles/connect/pk-connect.css +6 -107
- package/dist-loader/utilities/fouce.css +2 -0
- package/package.json +47 -7
- package/dist/chunks/component-registry-D34fm8xW.js.map +0 -1
- package/dist/chunks/pk-copy-button-BVaOLtYG.js.map +0 -1
- package/dist/chunks/pk-tiptap-editor-BzZ-J2sl.js.map +0 -1
- package/dist/chunks/register-C6_F-VwU.js.map +0 -1
- /package/dist-loader/chunks/{animate-with-class-DT0jwaR_.js → animate-with-class-BpZi7v-y.js} +0 -0
- /package/dist-loader/chunks/{codemirror-CSgOT0QM.js → codemirror-CU2NB7wh.js} +0 -0
- /package/dist-loader/chunks/{field-labels-D3lKQ2nq.js → field-labels-D7ccWdRn.js} +0 -0
- /package/dist-loader/chunks/{floating-ui-Cj0imr6d.js → floating-ui-B84As3F-.js} +0 -0
- /package/dist-loader/chunks/{has-slot-BGJeJdHr.js → has-slot-BvdEcnpm.js} +0 -0
- /package/dist-loader/chunks/{mirror-validator-C5XrXPaq.js → mirror-validator-9X0wdFnh.js} +0 -0
- /package/dist-loader/chunks/{overlay-lifecycle-C3tSQ3UR.js → overlay-lifecycle-CSIBJZgQ.js} +0 -0
- /package/dist-loader/chunks/{pk-clear-BMZUzwDt.js → pk-clear-BL8m1NyC.js} +0 -0
- /package/dist-loader/chunks/{popup-placement-animation-WlEXnS85.js → popup-placement-animation-BQdKabXq.js} +0 -0
- /package/dist-loader/chunks/{popup-pointer-Ck28WdVP.js → popup-pointer-BNwlPGKA.js} +0 -0
- /package/dist-loader/chunks/{required-validator-0XwZtX9k.js → required-validator-DCTovZ6r.js} +0 -0
- /package/dist-loader/chunks/{sync-listbox-separators-Ch5krDUs.js → sync-listbox-separators-rbu8jrAa.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pk-tooltip--QBV6puX.js","names":[],"sources":["../../src/components/tooltip/pk-tooltip.styles.ts","../../src/components/tooltip/pk-tooltip.ts"],"sourcesContent":["import { css } from 'lit';\n\n/**\n * Tooltip motion — enter: fade + zoom + slide; exit: fade + zoom only, 150ms ease.\n */\nconst tooltipContentAnimationStyles = css`\n @layer pk-component {\n .content.pk-popup-content {\n transform-origin: var(--pk-transform-origin, top);\n }\n\n .content.pk-popup-content[data-open] {\n animation: pk-tooltip-in 150ms ease forwards;\n }\n\n .content.pk-popup-content[data-open][data-side='top'] {\n animation-name: pk-tooltip-in-top;\n }\n\n .content.pk-popup-content[data-open][data-side='bottom'] {\n animation-name: pk-tooltip-in-bottom;\n }\n\n .content.pk-popup-content[data-open][data-side='left'] {\n animation-name: pk-tooltip-in-left;\n }\n\n .content.pk-popup-content[data-open][data-side='right'] {\n animation-name: pk-tooltip-in-right;\n }\n\n .content.pk-popup-content.closing {\n animation: pk-tooltip-out 150ms ease;\n }\n\n @keyframes pk-tooltip-in {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n\n to {\n opacity: 1;\n transform: scale(1);\n }\n }\n\n @keyframes pk-tooltip-out {\n from {\n opacity: 1;\n transform: scale(1);\n }\n\n to {\n opacity: 0;\n transform: scale(0.95);\n }\n }\n\n @keyframes pk-tooltip-in-top {\n from {\n opacity: 0;\n transform: scale(0.95) translateY(0.5rem);\n }\n\n to {\n opacity: 1;\n transform: scale(1) translateY(0);\n }\n }\n\n @keyframes pk-tooltip-in-bottom {\n from {\n opacity: 0;\n transform: scale(0.95) translateY(-0.5rem);\n }\n\n to {\n opacity: 1;\n transform: scale(1) translateY(0);\n }\n }\n\n @keyframes pk-tooltip-in-left {\n from {\n opacity: 0;\n transform: scale(0.95) translateX(0.5rem);\n }\n\n to {\n opacity: 1;\n transform: scale(1) translateX(0);\n }\n }\n\n @keyframes pk-tooltip-in-right {\n from {\n opacity: 0;\n transform: scale(0.95) translateX(-0.5rem);\n }\n\n to {\n opacity: 1;\n transform: scale(1) translateX(0);\n }\n }\n }\n`;\n\nexport const pkTooltipStyles = [\n tooltipContentAnimationStyles,\n css`\n @layer pk-component {\n :host {\n display: inline-block;\n max-width: 100%;\n align-self: flex-start;\n flex: none;\n vertical-align: middle;\n --pk-popup-z-index: 250;\n --pk-tooltip-arrow-size: 9px;\n --pk-tooltip-arrow-inset: 1px;\n }\n\n .content:not([data-open]):not(.closing) {\n opacity: 0;\n pointer-events: none;\n }\n\n .content[data-open]:not(.closing) {\n opacity: 1;\n }\n\n .content {\n position: relative;\n isolation: isolate;\n overflow: visible;\n width: fit-content;\n max-width: 20rem;\n padding: 4px 8px;\n border-radius: var(--pk-radius-sm);\n background: #1c2e36;\n color: var(--pk-color-white);\n font-family: var(--pk-font-family);\n font-size: 12px;\n line-height: 1.4;\n pointer-events: none;\n }\n\n .content::after {\n content: '';\n position: absolute;\n z-index: -1;\n width: var(--pk-tooltip-arrow-size);\n height: var(--pk-tooltip-arrow-size);\n background: #1c2e36;\n border-radius: 2px;\n rotate: 45deg;\n pointer-events: none;\n }\n\n .content[data-side='top']::after {\n left: calc(50% - var(--pk-tooltip-arrow-size) / 2);\n bottom: calc(var(--pk-tooltip-arrow-size) * -0.5 + var(--pk-tooltip-arrow-inset));\n }\n\n .content[data-side='bottom']::after {\n left: calc(50% - var(--pk-tooltip-arrow-size) / 2);\n top: calc(var(--pk-tooltip-arrow-size) * -0.5 + var(--pk-tooltip-arrow-inset));\n }\n\n .content[data-side='left']::after {\n top: calc(50% - var(--pk-tooltip-arrow-size) / 2);\n right: calc(var(--pk-tooltip-arrow-size) * -0.5 + var(--pk-tooltip-arrow-inset));\n }\n\n .content[data-side='right']::after {\n top: calc(50% - var(--pk-tooltip-arrow-size) / 2);\n left: calc(var(--pk-tooltip-arrow-size) * -0.5 + var(--pk-tooltip-arrow-inset));\n }\n\n .content[hidden] {\n display: none !important;\n }\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 { uniqueId } from '../../a11y/focus.js';\nimport { PkElement } from '../../base/pk-element.js';\nimport { resolveElementById } from '../../internal/resolve-element-by-id.js';\nimport {\n PkAfterHideEvent,\n PkAfterShowEvent,\n PkHideEvent,\n PkShowEvent,\n} from '../../events/overlay-lifecycle.js';\n// Keep the internal element registered when production builds erase type-only imports.\nimport '../popup/pk-popup.js';\nimport type { PkPopup, PkPopupPlacement } from '../popup/pk-popup.js';\nimport { syncPopupPlacementAnimation, waitForPopupReposition, getPopupSide } from '../../utils/popup-placement-animation.js';\nimport { pkTooltipStyles } from './pk-tooltip.styles.js';\n\n/**\n * Tooltip — pattern: hover/focus shows floating hint.\n *\n * @slot trigger - Element that receives the tooltip\n * @slot - Tooltip content (falls back to `content` attribute)\n *\n * @csspart content - Tooltip body\n */\n@customElement('pk-tooltip')\nexport class PkTooltip extends PkElement {\n static override styles = pkTooltipStyles;\n\n @property({ reflect: true })\n placement: PkPopupPlacement = 'top';\n\n /** `hover focus` (default) or `manual` for programmatic open only. */\n @property({ reflect: true })\n trigger: 'hover focus' | 'manual' = 'hover focus';\n\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n @property({ type: Number, attribute: 'open-delay' })\n openDelay = 0;\n\n @property({ type: Number, attribute: 'close-delay' })\n closeDelay = 0;\n\n @property()\n content = '';\n\n /** Anchor element id — alternative to the trigger slot. */\n @property({ reflect: true })\n for = '';\n\n @query('pk-popup')\n private popupElement!: PkPopup;\n\n @state()\n private open = false;\n\n private triggerElement: HTMLElement | null = null;\n\n @state()\n private contentAnimated = false;\n\n @state()\n private closing = false;\n\n @state()\n private contentSide: ReturnType<typeof getPopupSide> | null = null;\n\n /**\n * True only when the default slot has real nodes. Pretty-printed HTML often\n * leaves whitespace text nodes in the default slot, which would otherwise\n * suppress the `content` attribute fallback and show an empty tooltip body.\n */\n @state()\n private hasSlottedBody = false;\n\n private readonly triggerId = uniqueId('pk-tooltip-trigger');\n private openTimer?: number;\n private closeTimer?: number;\n private readonly tooltipId = uniqueId('pk-tooltip');\n private showGeneration = 0;\n private exitGeneration = 0;\n\n override disconnectedCallback(): void {\n this.popupElement?.removeEventListener('pk-reposition', this.syncPlacementAnimation);\n this.clearTimers();\n this.hideTooltip(true);\n super.disconnectedCallback();\n }\n\n override updated(changed: PropertyValues): void {\n super.updated(changed);\n\n if (changed.has('trigger') || changed.has('disabled') || changed.has('for')) {\n this.rebindTrigger();\n }\n\n if (this.disabled && this.open) {\n this.hideTooltip(true);\n }\n }\n\n override firstUpdated(): void {\n this.popupElement.addEventListener('pk-reposition', this.syncPlacementAnimation);\n\n if (this.for) {\n queueMicrotask(() => {\n this.resolveExternalTrigger();\n });\n }\n }\n\n /** Opens the tooltip programmatically. */\n async show(): Promise<void> {\n if (this.disabled) {\n return;\n }\n\n this.clearTimers();\n this.showTooltip(true);\n await this.updateComplete;\n }\n\n /** Closes the tooltip programmatically. */\n async hide(): Promise<void> {\n this.clearTimers();\n this.hideTooltip(true);\n await this.updateComplete;\n }\n\n private clearTimers(): void {\n window.clearTimeout(this.openTimer);\n window.clearTimeout(this.closeTimer);\n }\n\n private syncPlacementAnimation = (): void => {\n const placement = this.popupElement?.getAttribute('data-current-placement') ?? this.placement;\n const content = this.popupElement?.getContentElement();\n\n this.contentSide = placement ? getPopupSide(placement) : null;\n syncPopupPlacementAnimation(this.popupElement, placement);\n\n if (content) {\n syncPopupPlacementAnimation(content, placement);\n }\n };\n\n private resolveExternalTrigger(): void {\n this.triggerElement = resolveElementById(this, this.for);\n this.rebindTrigger();\n }\n\n private onTriggerSlotChange(event: Event): void {\n const slot = event.target as HTMLSlotElement;\n const [trigger] = slot.assignedElements({ flatten: true }) as HTMLElement[];\n\n this.unbindTrigger(this.triggerElement);\n this.triggerElement = trigger ?? null;\n this.rebindTrigger();\n this.requestUpdate();\n }\n\n private onBodySlotChange = (event: Event): void => {\n const slot = event.target as HTMLSlotElement;\n this.hasSlottedBody = slot.assignedNodes({ flatten: true }).some((node) => {\n if (node.nodeType === Node.ELEMENT_NODE) {\n return true;\n }\n\n return node.nodeType === Node.TEXT_NODE && Boolean(node.textContent?.trim());\n });\n };\n\n private rebindTrigger(): void {\n this.unbindTrigger(this.triggerElement);\n\n if (this.for) {\n this.triggerElement = resolveElementById(this, this.for);\n }\n\n this.bindTrigger(this.triggerElement);\n }\n\n private usesPointerTrigger(): boolean {\n return !this.disabled && this.trigger !== 'manual';\n }\n\n private bindTrigger(trigger: HTMLElement | null): void {\n if (!trigger || !this.usesPointerTrigger()) {\n return;\n }\n\n if (!trigger.id) {\n trigger.id = this.triggerId;\n }\n\n trigger.setAttribute('aria-describedby', this.tooltipId);\n trigger.addEventListener('mouseenter', this.scheduleShow);\n trigger.addEventListener('mouseleave', this.scheduleHide);\n trigger.addEventListener('focus', this.scheduleShow);\n trigger.addEventListener('blur', this.scheduleHide);\n }\n\n private unbindTrigger(trigger: HTMLElement | null): void {\n if (!trigger) {\n return;\n }\n\n trigger.removeAttribute('aria-describedby');\n trigger.removeEventListener('mouseenter', this.scheduleShow);\n trigger.removeEventListener('mouseleave', this.scheduleHide);\n trigger.removeEventListener('focus', this.scheduleShow);\n trigger.removeEventListener('blur', this.scheduleHide);\n }\n\n private scheduleShow = (): void => {\n if (!this.usesPointerTrigger()) {\n return;\n }\n\n window.clearTimeout(this.closeTimer);\n window.clearTimeout(this.openTimer);\n this.openTimer = window.setTimeout(() => this.showTooltip(), this.openDelay);\n };\n\n private scheduleHide = (): void => {\n if (!this.usesPointerTrigger()) {\n return;\n }\n\n window.clearTimeout(this.openTimer);\n window.clearTimeout(this.closeTimer);\n this.closeTimer = window.setTimeout(() => this.hideTooltip(), this.closeDelay);\n };\n\n private getAnchor(): Element | string | null {\n if (this.for) {\n return resolveElementById(this, this.for);\n }\n\n if (this.triggerElement) {\n return this.triggerElement;\n }\n\n return null;\n }\n\n private prepareContentForEnter(content: HTMLElement | null | undefined): void {\n if (!content) {\n return;\n }\n\n content.classList.remove('closing');\n content.style.animation = 'none';\n void content.getBoundingClientRect();\n content.style.removeProperty('animation');\n content.style.removeProperty('opacity');\n content.style.removeProperty('transform');\n }\n\n private showTooltip(force = false): void {\n if (!this.getAnchor()) {\n return;\n }\n\n if (this.open && this.contentAnimated && !this.closing && !force) {\n return;\n }\n\n if (!this.open) {\n this.dispatchEvent(new PkShowEvent());\n }\n\n const generation = ++this.showGeneration;\n this.exitGeneration += 1;\n this.closing = false;\n this.open = true;\n this.contentAnimated = false;\n this.prepareContentForEnter(this.popupElement?.getContentElement());\n\n void this.updateComplete.then(async () => {\n if (generation !== this.showGeneration) {\n return;\n }\n\n await waitForPopupReposition(this.popupElement, this.placement);\n\n if (generation !== this.showGeneration) {\n return;\n }\n\n this.syncPlacementAnimation();\n this.prepareContentForEnter(this.popupElement?.getContentElement());\n this.contentAnimated = true;\n\n this.dispatchEvent(new PkAfterShowEvent());\n this.dispatchEvent(new CustomEvent('pk-open-change', {\n detail: { open: true },\n bubbles: true,\n composed: true,\n }));\n });\n }\n\n private hideTooltip(immediate = false, cancelable = false): void {\n if ((!this.open && !this.closing) && !immediate) {\n return;\n }\n\n if (this.closing && !immediate) {\n return;\n }\n\n if (cancelable) {\n const hideEvent = new PkHideEvent('api');\n\n if (!this.dispatchEvent(hideEvent)) {\n return;\n }\n }\n\n this.showGeneration += 1;\n\n if (immediate) {\n this.finishHide();\n return;\n }\n\n if (!this.contentAnimated) {\n this.finishHide();\n return;\n }\n\n void this.playExitAnimation();\n }\n\n private async playExitAnimation(): Promise<void> {\n if (!this.open) {\n return;\n }\n\n const generation = this.exitGeneration + 1;\n this.exitGeneration = generation;\n\n const content = this.popupElement?.getContentElement();\n\n this.closing = true;\n this.contentAnimated = false;\n\n if (content) {\n await this.waitForExitAnimation(content);\n }\n\n if (generation !== this.exitGeneration) {\n return;\n }\n\n this.finishHide();\n }\n\n private waitForExitAnimation(content: HTMLElement): Promise<void> {\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 content.removeEventListener('animationend', onAnimationEnd);\n window.clearTimeout(fallback);\n content.classList.remove('closing');\n resolve();\n };\n\n const onAnimationEnd = (event: AnimationEvent): void => {\n if (event.target === content && event.animationName.startsWith('pk-tooltip-out')) {\n finish();\n }\n };\n\n content.classList.add('closing');\n content.addEventListener('animationend', onAnimationEnd);\n const fallback = window.setTimeout(finish, 200);\n });\n }\n\n private finishHide(): void {\n const content = this.popupElement?.getContentElement();\n\n this.closing = false;\n this.contentAnimated = false;\n this.contentSide = null;\n this.open = false;\n this.popupElement?.removeAttribute('data-side');\n this.prepareContentForEnter(content);\n\n this.dispatchEvent(new PkAfterHideEvent());\n this.dispatchEvent(new CustomEvent('pk-open-change', {\n detail: { open: false },\n bubbles: true,\n composed: true,\n }));\n }\n\n override render() {\n const anchor = this.getAnchor();\n\n return html`\n <slot name=\"trigger\" @slotchange=${this.onTriggerSlotChange}></slot>\n <pk-popup\n .active=${this.open || this.closing}\n .anchor=${anchor ?? ''}\n .placement=${this.placement}\n .distance=${4}\n hover-bridge\n flip\n shift\n >\n <div\n part=\"content\"\n class=${classMap({\n content: true,\n 'pk-popup-content': true,\n closing: this.closing,\n })}\n id=${this.tooltipId}\n role=\"tooltip\"\n ?hidden=${!this.open && !this.closing}\n data-open=${this.contentAnimated && !this.closing ? '' : nothing}\n data-side=${this.contentSide ?? nothing}\n >\n <slot @slotchange=${this.onBodySlotChange}></slot>\n ${this.hasSlottedBody ? nothing : (this.content || nothing)}\n </div>\n </pk-popup>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pk-tooltip': PkTooltip;\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pk-tooltip-C6yb4CXI.js","names":[],"sources":["../../src/components/tooltip/pk-tooltip.styles.ts","../../src/components/tooltip/pk-tooltip.ts"],"sourcesContent":["import { css } from 'lit';\n\n/**\n * Tooltip motion — enter: fade + zoom + slide; exit: fade + zoom only, 150ms ease.\n */\nconst tooltipContentAnimationStyles = css`\n @layer pk-component {\n .content.pk-popup-content {\n transform-origin: var(--pk-transform-origin, top);\n }\n\n .content.pk-popup-content[data-open] {\n animation: pk-tooltip-in 150ms ease forwards;\n }\n\n .content.pk-popup-content[data-open][data-side='top'] {\n animation-name: pk-tooltip-in-top;\n }\n\n .content.pk-popup-content[data-open][data-side='bottom'] {\n animation-name: pk-tooltip-in-bottom;\n }\n\n .content.pk-popup-content[data-open][data-side='left'] {\n animation-name: pk-tooltip-in-left;\n }\n\n .content.pk-popup-content[data-open][data-side='right'] {\n animation-name: pk-tooltip-in-right;\n }\n\n .content.pk-popup-content.closing {\n animation: pk-tooltip-out 150ms ease;\n }\n\n @keyframes pk-tooltip-in {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n\n to {\n opacity: 1;\n transform: scale(1);\n }\n }\n\n @keyframes pk-tooltip-out {\n from {\n opacity: 1;\n transform: scale(1);\n }\n\n to {\n opacity: 0;\n transform: scale(0.95);\n }\n }\n\n @keyframes pk-tooltip-in-top {\n from {\n opacity: 0;\n transform: scale(0.95) translateY(0.5rem);\n }\n\n to {\n opacity: 1;\n transform: scale(1) translateY(0);\n }\n }\n\n @keyframes pk-tooltip-in-bottom {\n from {\n opacity: 0;\n transform: scale(0.95) translateY(-0.5rem);\n }\n\n to {\n opacity: 1;\n transform: scale(1) translateY(0);\n }\n }\n\n @keyframes pk-tooltip-in-left {\n from {\n opacity: 0;\n transform: scale(0.95) translateX(0.5rem);\n }\n\n to {\n opacity: 1;\n transform: scale(1) translateX(0);\n }\n }\n\n @keyframes pk-tooltip-in-right {\n from {\n opacity: 0;\n transform: scale(0.95) translateX(-0.5rem);\n }\n\n to {\n opacity: 1;\n transform: scale(1) translateX(0);\n }\n }\n }\n`;\n\nexport const pkTooltipStyles = [\n tooltipContentAnimationStyles,\n css`\n @layer pk-component {\n :host {\n display: inline-block;\n max-width: 100%;\n align-self: flex-start;\n flex: none;\n vertical-align: middle;\n --pk-popup-z-index: 250;\n --pk-tooltip-arrow-size: 9px;\n --pk-tooltip-arrow-inset: 1px;\n }\n\n .content:not([data-open]):not(.closing) {\n opacity: 0;\n pointer-events: none;\n }\n\n .content[data-open]:not(.closing) {\n opacity: 1;\n }\n\n .content {\n position: relative;\n isolation: isolate;\n overflow: visible;\n width: fit-content;\n max-width: 20rem;\n padding: 4px 8px;\n border-radius: var(--pk-radius-sm);\n background: #1c2e36;\n color: var(--pk-color-white);\n font-family: var(--pk-font-family);\n font-size: 12px;\n line-height: 1.4;\n pointer-events: none;\n }\n\n .content::after {\n content: '';\n position: absolute;\n z-index: -1;\n width: var(--pk-tooltip-arrow-size);\n height: var(--pk-tooltip-arrow-size);\n background: #1c2e36;\n border-radius: 2px;\n rotate: 45deg;\n pointer-events: none;\n }\n\n .content[data-side='top']::after {\n left: calc(50% - var(--pk-tooltip-arrow-size) / 2);\n bottom: calc(var(--pk-tooltip-arrow-size) * -0.5 + var(--pk-tooltip-arrow-inset));\n }\n\n .content[data-side='bottom']::after {\n left: calc(50% - var(--pk-tooltip-arrow-size) / 2);\n top: calc(var(--pk-tooltip-arrow-size) * -0.5 + var(--pk-tooltip-arrow-inset));\n }\n\n .content[data-side='left']::after {\n top: calc(50% - var(--pk-tooltip-arrow-size) / 2);\n right: calc(var(--pk-tooltip-arrow-size) * -0.5 + var(--pk-tooltip-arrow-inset));\n }\n\n .content[data-side='right']::after {\n top: calc(50% - var(--pk-tooltip-arrow-size) / 2);\n left: calc(var(--pk-tooltip-arrow-size) * -0.5 + var(--pk-tooltip-arrow-inset));\n }\n\n .content[hidden] {\n display: none !important;\n }\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 { uniqueId } from '../../a11y/focus.js';\nimport { PkElement } from '../../base/pk-element.js';\nimport { resolveElementById } from '../../internal/resolve-element-by-id.js';\nimport {\n PkAfterHideEvent,\n PkAfterShowEvent,\n PkHideEvent,\n PkShowEvent,\n} from '../../events/overlay-lifecycle.js';\n// Keep the internal element registered when production builds erase type-only imports.\nimport '../popup/pk-popup.js';\nimport type { PkPopup, PkPopupPlacement } from '../popup/pk-popup.js';\nimport { syncPopupPlacementAnimation, waitForPopupReposition, getPopupSide } from '../../utils/popup-placement-animation.js';\nimport { pkTooltipStyles } from './pk-tooltip.styles.js';\n\n/**\n * Tooltip — pattern: hover/focus shows floating hint.\n *\n * @slot trigger - Element that receives the tooltip\n * @slot - Tooltip content (falls back to `content` attribute)\n *\n * @csspart content - Tooltip body\n */\n@customElement('pk-tooltip')\nexport class PkTooltip extends PkElement {\n static override styles = pkTooltipStyles;\n\n @property({ reflect: true })\n placement: PkPopupPlacement = 'top';\n\n /** `hover focus` (default) or `manual` for programmatic open only. */\n @property({ reflect: true })\n trigger: 'hover focus' | 'manual' = 'hover focus';\n\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n @property({ type: Number, attribute: 'open-delay' })\n openDelay = 0;\n\n @property({ type: Number, attribute: 'close-delay' })\n closeDelay = 0;\n\n @property()\n content = '';\n\n /** Anchor element id — alternative to the trigger slot. */\n @property({ reflect: true })\n for = '';\n\n @query('pk-popup')\n private popupElement!: PkPopup;\n\n @state()\n private open = false;\n\n private triggerElement: HTMLElement | null = null;\n\n @state()\n private contentAnimated = false;\n\n @state()\n private closing = false;\n\n @state()\n private contentSide: ReturnType<typeof getPopupSide> | null = null;\n\n /**\n * True only when the default slot has real nodes. Pretty-printed HTML often\n * leaves whitespace text nodes in the default slot, which would otherwise\n * suppress the `content` attribute fallback and show an empty tooltip body.\n */\n @state()\n private hasSlottedBody = false;\n\n private readonly triggerId = uniqueId('pk-tooltip-trigger');\n private openTimer?: number;\n private closeTimer?: number;\n private readonly tooltipId = uniqueId('pk-tooltip');\n private showGeneration = 0;\n private exitGeneration = 0;\n\n override disconnectedCallback(): void {\n this.popupElement?.removeEventListener('pk-reposition', this.syncPlacementAnimation);\n this.clearTimers();\n this.hideTooltip(true);\n super.disconnectedCallback();\n }\n\n override updated(changed: PropertyValues): void {\n super.updated(changed);\n\n if (changed.has('trigger') || changed.has('disabled') || changed.has('for')) {\n this.rebindTrigger();\n }\n\n if (this.disabled && this.open) {\n this.hideTooltip(true);\n }\n }\n\n override firstUpdated(): void {\n this.popupElement.addEventListener('pk-reposition', this.syncPlacementAnimation);\n\n if (this.for) {\n queueMicrotask(() => {\n this.resolveExternalTrigger();\n });\n }\n }\n\n /** Opens the tooltip programmatically. */\n async show(): Promise<void> {\n if (this.disabled) {\n return;\n }\n\n this.clearTimers();\n this.showTooltip(true);\n await this.updateComplete;\n }\n\n /** Closes the tooltip programmatically. */\n async hide(): Promise<void> {\n this.clearTimers();\n this.hideTooltip(true);\n await this.updateComplete;\n }\n\n private clearTimers(): void {\n window.clearTimeout(this.openTimer);\n window.clearTimeout(this.closeTimer);\n }\n\n private syncPlacementAnimation = (): void => {\n const placement = this.popupElement?.getAttribute('data-current-placement') ?? this.placement;\n const content = this.popupElement?.getContentElement();\n\n this.contentSide = placement ? getPopupSide(placement) : null;\n syncPopupPlacementAnimation(this.popupElement, placement);\n\n if (content) {\n syncPopupPlacementAnimation(content, placement);\n }\n };\n\n private resolveExternalTrigger(): void {\n this.triggerElement = resolveElementById(this, this.for);\n this.rebindTrigger();\n }\n\n private onTriggerSlotChange(event: Event): void {\n const slot = event.target as HTMLSlotElement;\n const [trigger] = slot.assignedElements({ flatten: true }) as HTMLElement[];\n\n this.unbindTrigger(this.triggerElement);\n this.triggerElement = trigger ?? null;\n this.rebindTrigger();\n this.requestUpdate();\n }\n\n private onBodySlotChange = (event: Event): void => {\n const slot = event.target as HTMLSlotElement;\n this.hasSlottedBody = slot.assignedNodes({ flatten: true }).some((node) => {\n if (node.nodeType === Node.ELEMENT_NODE) {\n return true;\n }\n\n return node.nodeType === Node.TEXT_NODE && Boolean(node.textContent?.trim());\n });\n };\n\n private rebindTrigger(): void {\n this.unbindTrigger(this.triggerElement);\n\n if (this.for) {\n this.triggerElement = resolveElementById(this, this.for);\n }\n\n this.bindTrigger(this.triggerElement);\n }\n\n private usesPointerTrigger(): boolean {\n return !this.disabled && this.trigger !== 'manual';\n }\n\n private bindTrigger(trigger: HTMLElement | null): void {\n if (!trigger || !this.usesPointerTrigger()) {\n return;\n }\n\n if (!trigger.id) {\n trigger.id = this.triggerId;\n }\n\n trigger.setAttribute('aria-describedby', this.tooltipId);\n trigger.addEventListener('mouseenter', this.scheduleShow);\n trigger.addEventListener('mouseleave', this.scheduleHide);\n trigger.addEventListener('focus', this.scheduleShow);\n trigger.addEventListener('blur', this.scheduleHide);\n }\n\n private unbindTrigger(trigger: HTMLElement | null): void {\n if (!trigger) {\n return;\n }\n\n trigger.removeAttribute('aria-describedby');\n trigger.removeEventListener('mouseenter', this.scheduleShow);\n trigger.removeEventListener('mouseleave', this.scheduleHide);\n trigger.removeEventListener('focus', this.scheduleShow);\n trigger.removeEventListener('blur', this.scheduleHide);\n }\n\n private scheduleShow = (): void => {\n if (!this.usesPointerTrigger()) {\n return;\n }\n\n window.clearTimeout(this.closeTimer);\n window.clearTimeout(this.openTimer);\n this.openTimer = window.setTimeout(() => this.showTooltip(), this.openDelay);\n };\n\n private scheduleHide = (): void => {\n if (!this.usesPointerTrigger()) {\n return;\n }\n\n window.clearTimeout(this.openTimer);\n window.clearTimeout(this.closeTimer);\n this.closeTimer = window.setTimeout(() => this.hideTooltip(), this.closeDelay);\n };\n\n private getAnchor(): Element | string | null {\n if (this.for) {\n return resolveElementById(this, this.for);\n }\n\n if (this.triggerElement) {\n return this.triggerElement;\n }\n\n return null;\n }\n\n private prepareContentForEnter(content: HTMLElement | null | undefined): void {\n if (!content) {\n return;\n }\n\n content.classList.remove('closing');\n content.style.animation = 'none';\n void content.getBoundingClientRect();\n content.style.removeProperty('animation');\n content.style.removeProperty('opacity');\n content.style.removeProperty('transform');\n }\n\n private showTooltip(force = false): void {\n if (!this.getAnchor()) {\n return;\n }\n\n if (this.open && this.contentAnimated && !this.closing && !force) {\n return;\n }\n\n if (!this.open) {\n this.dispatchEvent(new PkShowEvent());\n }\n\n const generation = ++this.showGeneration;\n this.exitGeneration += 1;\n this.closing = false;\n this.open = true;\n this.contentAnimated = false;\n this.prepareContentForEnter(this.popupElement?.getContentElement());\n\n void this.updateComplete.then(async () => {\n if (generation !== this.showGeneration) {\n return;\n }\n\n await waitForPopupReposition(this.popupElement, this.placement);\n\n if (generation !== this.showGeneration) {\n return;\n }\n\n this.syncPlacementAnimation();\n this.prepareContentForEnter(this.popupElement?.getContentElement());\n this.contentAnimated = true;\n\n this.dispatchEvent(new PkAfterShowEvent());\n this.dispatchEvent(new CustomEvent('pk-open-change', {\n detail: { open: true },\n bubbles: true,\n composed: true,\n }));\n });\n }\n\n private hideTooltip(immediate = false, cancelable = false): void {\n if ((!this.open && !this.closing) && !immediate) {\n return;\n }\n\n if (this.closing && !immediate) {\n return;\n }\n\n if (cancelable) {\n const hideEvent = new PkHideEvent('api');\n\n if (!this.dispatchEvent(hideEvent)) {\n return;\n }\n }\n\n this.showGeneration += 1;\n\n if (immediate) {\n this.finishHide();\n return;\n }\n\n if (!this.contentAnimated) {\n this.finishHide();\n return;\n }\n\n void this.playExitAnimation();\n }\n\n private async playExitAnimation(): Promise<void> {\n if (!this.open) {\n return;\n }\n\n const generation = this.exitGeneration + 1;\n this.exitGeneration = generation;\n\n const content = this.popupElement?.getContentElement();\n\n this.closing = true;\n this.contentAnimated = false;\n\n if (content) {\n await this.waitForExitAnimation(content);\n }\n\n if (generation !== this.exitGeneration) {\n return;\n }\n\n this.finishHide();\n }\n\n private waitForExitAnimation(content: HTMLElement): Promise<void> {\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 content.removeEventListener('animationend', onAnimationEnd);\n window.clearTimeout(fallback);\n content.classList.remove('closing');\n resolve();\n };\n\n const onAnimationEnd = (event: AnimationEvent): void => {\n if (event.target === content && event.animationName.startsWith('pk-tooltip-out')) {\n finish();\n }\n };\n\n content.classList.add('closing');\n content.addEventListener('animationend', onAnimationEnd);\n const fallback = window.setTimeout(finish, 200);\n });\n }\n\n private finishHide(): void {\n const content = this.popupElement?.getContentElement();\n\n this.closing = false;\n this.contentAnimated = false;\n this.contentSide = null;\n this.open = false;\n this.popupElement?.removeAttribute('data-side');\n this.prepareContentForEnter(content);\n\n this.dispatchEvent(new PkAfterHideEvent());\n this.dispatchEvent(new CustomEvent('pk-open-change', {\n detail: { open: false },\n bubbles: true,\n composed: true,\n }));\n }\n\n override render() {\n const anchor = this.getAnchor();\n\n return html`\n <slot name=\"trigger\" @slotchange=${this.onTriggerSlotChange}></slot>\n <pk-popup\n .active=${this.open || this.closing}\n .anchor=${anchor ?? ''}\n .placement=${this.placement}\n .distance=${4}\n hover-bridge\n flip\n shift\n >\n <div\n part=\"content\"\n class=${classMap({\n content: true,\n 'pk-popup-content': true,\n closing: this.closing,\n })}\n id=${this.tooltipId}\n role=\"tooltip\"\n ?hidden=${!this.open && !this.closing}\n data-open=${this.contentAnimated && !this.closing ? '' : nothing}\n data-side=${this.contentSide ?? nothing}\n >\n <slot @slotchange=${this.onBodySlotChange}></slot>\n ${this.hasSlottedBody ? nothing : (this.content || nothing)}\n </div>\n </pk-popup>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pk-tooltip': PkTooltip;\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"popup-content-animation.styles-
|
|
1
|
+
{"version":3,"file":"popup-content-animation.styles-EUnGV75J.js","names":[],"sources":["../../src/styles/popup-content-animation.styles.ts"],"sourcesContent":["import { css } from 'lit';\n\n/**\n * Placement-aware popup enter/exit motion — mirrors plugin-kit-react DropdownMenu\n * (fade + zoom + side slide on enter; fade + zoom only on exit).\n *\n * Keyframes stay outside `@layer` so constructed stylesheets resolve animation\n * names reliably (Chrome DevTools otherwise reports them as undefined).\n */\nexport const popupContentAnimationStyles = css`\n @layer pk-component {\n .pk-popup-content {\n transform-origin: var(--pk-transform-origin, top);\n }\n\n .pk-popup-content[data-open] {\n animation: pk-popup-content-in 100ms ease-out;\n }\n\n .pk-popup-content[data-open][data-side='bottom'] {\n animation-name: pk-popup-content-in-bottom;\n }\n\n .pk-popup-content[data-open][data-side='top'] {\n animation-name: pk-popup-content-in-top;\n }\n\n .pk-popup-content[data-open][data-side='left'] {\n animation-name: pk-popup-content-in-left;\n }\n\n .pk-popup-content[data-open][data-side='right'] {\n animation-name: pk-popup-content-in-right;\n }\n\n /* Exit: fade + zoom only — matches tw-animate animate-out / tooltip motion. */\n .pk-popup-content.closing {\n animation: pk-popup-content-out 100ms ease-in forwards;\n }\n }\n\n @keyframes pk-popup-content-in {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n\n to {\n opacity: 1;\n transform: scale(1);\n }\n }\n\n @keyframes pk-popup-content-out {\n from {\n opacity: 1;\n transform: scale(1);\n }\n\n to {\n opacity: 0;\n transform: scale(0.95);\n }\n }\n\n @keyframes pk-popup-content-in-bottom {\n from {\n opacity: 0;\n transform: scale(0.95) translateY(-0.5rem);\n }\n\n to {\n opacity: 1;\n transform: scale(1) translateY(0);\n }\n }\n\n @keyframes pk-popup-content-in-top {\n from {\n opacity: 0;\n transform: scale(0.95) translateY(0.5rem);\n }\n\n to {\n opacity: 1;\n transform: scale(1) translateY(0);\n }\n }\n\n @keyframes pk-popup-content-in-left {\n from {\n opacity: 0;\n transform: scale(0.95) translateX(0.5rem);\n }\n\n to {\n opacity: 1;\n transform: scale(1) translateX(0);\n }\n }\n\n @keyframes pk-popup-content-in-right {\n from {\n opacity: 0;\n transform: scale(0.95) translateX(-0.5rem);\n }\n\n to {\n opacity: 1;\n transform: scale(1) translateX(0);\n }\n }\n`;\n"],"mappings":";;;;;;;;;AASA,IAAa,8BAA8B,GAAG"}
|
package/dist/chunks/{popup-placement-animation-WlEXnS85.js → popup-placement-animation-GvFXER7D.js}
RENAMED
|
@@ -57,4 +57,4 @@ function waitForPopupReposition(popup, fallbackPlacement, timeoutMs = 100, optio
|
|
|
57
57
|
//#endregion
|
|
58
58
|
export { waitForPopupReposition as i, getPopupSide as n, syncPopupPlacementAnimation as r, computePopupTransformOrigin as t };
|
|
59
59
|
|
|
60
|
-
//# sourceMappingURL=popup-placement-animation-
|
|
60
|
+
//# sourceMappingURL=popup-placement-animation-GvFXER7D.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"popup-placement-animation-
|
|
1
|
+
{"version":3,"file":"popup-placement-animation-GvFXER7D.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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"popup-pointer-
|
|
1
|
+
{"version":3,"file":"popup-pointer-BTS3Y6LE.js","names":[],"sources":["../../src/utils/popup-pointer.ts"],"sourcesContent":["/**\n * Returns true when a pointer event occurred on pk-popup content.\n *\n * Intentionally matches *any* popup surface — callers that need overlay-scoped\n * hit testing should use {@link isEventInsideOverlay} instead.\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/** Resolve the pk-popup that owns this overlay's panel (or the host's popup). */\nfunction resolveOwnPopup(options: PointerInsideOverlayOptions): Element | null {\n if (options.panel instanceof Element) {\n const closest = options.panel.closest('pk-popup');\n\n if (closest) {\n return closest;\n }\n\n // Panel may live in a shadow tree whose host is pk-popup.\n const root = options.panel.getRootNode();\n\n if (root instanceof ShadowRoot && root.host.localName === 'pk-popup') {\n return root.host;\n }\n }\n\n if (options.host instanceof HTMLElement) {\n return options.host.shadowRoot?.querySelector('pk-popup')\n ?? options.host.querySelector(':scope > pk-popup')\n ?? options.host.querySelector('pk-popup');\n }\n\n return null;\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 // Only *this* overlay's popup counts. Dropdown menus slot their trigger inside\n // pk-popup as the anchor — matching any pk-popup here would treat a click on\n // another menu's trigger as \"inside\" and block light-dismiss (two menus open).\n const ownPopup = resolveOwnPopup(options);\n\n if (ownPopup && path.includes(ownPopup)) {\n return true;\n }\n\n return path.some((node) => {\n if (!(node instanceof HTMLElement)) {\n return false;\n }\n\n // Own popup internals may use a `.popup` surface node that is not the\n // custom element itself — still scoped via ancestry to ownPopup.\n if (\n ownPopup\n && node.classList.contains('popup')\n && (node === ownPopup || ownPopup.contains(node))\n ) {\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":";;AAyBA,SAAS,gBAAgB,SAAsD;AAC3E,KAAI,QAAQ,iBAAiB,SAAS;EAClC,MAAM,UAAU,QAAQ,MAAM,QAAQ,WAAW;AAEjD,MAAI,QACA,QAAO;EAIX,MAAM,OAAO,QAAQ,MAAM,aAAa;AAExC,MAAI,gBAAgB,cAAc,KAAK,KAAK,cAAc,WACtD,QAAO,KAAK;;AAIpB,KAAI,QAAQ,gBAAgB,YACxB,QAAO,QAAQ,KAAK,YAAY,cAAc,WAAW,IAClD,QAAQ,KAAK,cAAc,oBAAoB,IAC/C,QAAQ,KAAK,cAAc,WAAW;AAGjD,QAAO;;;AAIX,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;CAMX,MAAM,WAAW,gBAAgB,QAAQ;AAEzC,KAAI,YAAY,KAAK,SAAS,SAAS,CACnC,QAAO;AAGX,QAAO,KAAK,MAAM,SAAS;AACvB,MAAI,EAAE,gBAAgB,aAClB,QAAO;AAKX,MACI,YACG,KAAK,UAAU,SAAS,QAAQ,KAC/B,SAAS,YAAY,SAAS,SAAS,KAAK,EAEhD,QAAO;AAGX,SAAO,QAAQ,eAAe,KAAK,IAAI;GACzC;;;AAIN,SAAgB,uBACZ,OACA,UAAuC,EAAE,EAClC;AACP,QAAO,qBAAqB,OAAO,QAAQ"}
|
|
@@ -1,89 +1,95 @@
|
|
|
1
|
-
import { t as
|
|
2
|
-
import { t as
|
|
1
|
+
import { t as PkCopyButton } from "./pk-copy-button-KegSx46o.js";
|
|
2
|
+
import { t as PkAlert } from "./pk-alert-Cjxl6CY_.js";
|
|
3
|
+
import { t as PkSpinner } from "./pk-spinner-CN365srE.js";
|
|
4
|
+
import { t as PkButton } from "./pk-button-DCtNLEPr.js";
|
|
5
|
+
import "../components/alert.js";
|
|
6
|
+
import { PkIcon } from "../components/icon/pk-icon.js";
|
|
7
|
+
import { t as PkStatePanel } from "./pk-state-panel-DPP7t-er.js";
|
|
8
|
+
import "../components/state-panel.js";
|
|
3
9
|
import "../components/button.js";
|
|
4
|
-
import { t as PkButtonGroup } from "./pk-button-group-
|
|
5
|
-
import { t as PkButtonGroupSeparator } from "./pk-button-group-separator-
|
|
6
|
-
import { t as PkButtonGroupText } from "./pk-button-group-text-
|
|
10
|
+
import { t as PkButtonGroup } from "./pk-button-group-DBdKK_2_.js";
|
|
11
|
+
import { t as PkButtonGroupSeparator } from "./pk-button-group-separator-D0Aa0a0f.js";
|
|
12
|
+
import { t as PkButtonGroupText } from "./pk-button-group-text-BsqEM-dB.js";
|
|
7
13
|
import "../components/button-group.js";
|
|
8
|
-
import { t as PkCheckbox } from "./pk-checkbox-
|
|
14
|
+
import { t as PkCheckbox } from "./pk-checkbox-dvHRoVbL.js";
|
|
9
15
|
import "../components/checkbox.js";
|
|
10
|
-
import { n as PkCheckboxSelect } from "./pk-checkbox-select-
|
|
16
|
+
import { n as PkCheckboxSelect } from "./pk-checkbox-select-Cqx5ZCMq.js";
|
|
11
17
|
import "../components/checkbox-select.js";
|
|
12
|
-
import { t as PkCodeEditor } from "./pk-code-editor-
|
|
18
|
+
import { t as PkCodeEditor } from "./pk-code-editor-C_PqjR75.js";
|
|
13
19
|
import "../components/code-editor.js";
|
|
14
|
-
import { t as PkCombobox } from "./pk-combobox-
|
|
15
|
-
import { t as PkPopup } from "./pk-popup-
|
|
16
|
-
import { t as PkInput } from "./pk-input-
|
|
20
|
+
import { t as PkCombobox } from "./pk-combobox-BeddzAsl.js";
|
|
21
|
+
import { t as PkPopup } from "./pk-popup-0EIt9X_W.js";
|
|
22
|
+
import { t as PkInput } from "./pk-input-CiUNLTSW.js";
|
|
17
23
|
import "../components/input.js";
|
|
18
|
-
import { t as PkInputGroup } from "./pk-input-group-
|
|
19
|
-
import { t as PkInputGroupAddon } from "./pk-input-group-addon-
|
|
20
|
-
import { t as PkInputGroupButton } from "./pk-input-group-button-
|
|
21
|
-
import { t as PkInputGroupInput } from "./pk-input-group-input-
|
|
22
|
-
import { t as PkInputGroupText } from "./pk-input-group-text-
|
|
23
|
-
import { t as PkInputGroupTextarea } from "./pk-input-group-textarea-
|
|
24
|
+
import { t as PkInputGroup } from "./pk-input-group-k7WV0pQI.js";
|
|
25
|
+
import { t as PkInputGroupAddon } from "./pk-input-group-addon-piOznzSS.js";
|
|
26
|
+
import { t as PkInputGroupButton } from "./pk-input-group-button-Di2vEJLo.js";
|
|
27
|
+
import { t as PkInputGroupInput } from "./pk-input-group-input-CwaaEfr1.js";
|
|
28
|
+
import { t as PkInputGroupText } from "./pk-input-group-text-C0VAdy0J.js";
|
|
29
|
+
import { t as PkInputGroupTextarea } from "./pk-input-group-textarea-DOG1NIlE.js";
|
|
24
30
|
import "../components/input-group.js";
|
|
25
|
-
import { t as PkTextarea } from "./pk-textarea-
|
|
31
|
+
import { t as PkTextarea } from "./pk-textarea-CBijEmcV.js";
|
|
26
32
|
import "../components/textarea.js";
|
|
27
|
-
import { t as PkSeparator } from "./pk-separator-
|
|
33
|
+
import { t as PkSeparator } from "./pk-separator-Bcxg_GO2.js";
|
|
28
34
|
import "../components/separator.js";
|
|
29
|
-
import { t as PkStatus } from "./pk-status-
|
|
35
|
+
import { t as PkStatus } from "./pk-status-CYcadu0Q.js";
|
|
30
36
|
import "../components/status.js";
|
|
31
|
-
import { t as PkToggle } from "./pk-toggle-
|
|
37
|
+
import { t as PkToggle } from "./pk-toggle-CAtGO_Le.js";
|
|
32
38
|
import "../components/toggle.js";
|
|
33
|
-
import { t as PkToggleGroup } from "./pk-toggle-group-
|
|
39
|
+
import { t as PkToggleGroup } from "./pk-toggle-group-CLso6OE7.js";
|
|
34
40
|
import "../components/toggle-group.js";
|
|
35
|
-
import { t as PkLightswitch } from "./pk-lightswitch-
|
|
41
|
+
import { t as PkLightswitch } from "./pk-lightswitch-FH5ZxMG2.js";
|
|
36
42
|
import "../components/lightswitch.js";
|
|
37
|
-
import { t as PkDialog } from "./pk-dialog-
|
|
38
|
-
import { PkIcon } from "../components/icon/pk-icon.js";
|
|
43
|
+
import { t as PkDialog } from "./pk-dialog-CFU850OH.js";
|
|
39
44
|
import { PkConnect } from "../components/connect/pk-connect.js";
|
|
40
45
|
import { PkConnectOauth } from "../components/connect/pk-connect-oauth.js";
|
|
41
46
|
import "../components/connect.js";
|
|
42
|
-
import { t as PkCopyButton } from "./pk-copy-button-BVaOLtYG.js";
|
|
43
47
|
import "../components/copy-button.js";
|
|
44
48
|
import "../components/dialog.js";
|
|
45
|
-
import { t as PkDropdownItem } from "./pk-dropdown-item-
|
|
46
|
-
import { t as PkDropdownMenu } from "./pk-dropdown-menu-
|
|
47
|
-
import { t as PkDropdownLabel } from "./pk-dropdown-label-
|
|
49
|
+
import { t as PkDropdownItem } from "./pk-dropdown-item-A4P4zfVF.js";
|
|
50
|
+
import { t as PkDropdownMenu } from "./pk-dropdown-menu-C_vasBoa.js";
|
|
51
|
+
import { t as PkDropdownLabel } from "./pk-dropdown-label-PqDxMkCI.js";
|
|
48
52
|
import { PkDropdownSeparator } from "../components/dropdown-menu/pk-dropdown-separator.js";
|
|
49
53
|
import "../components/dropdown-menu.js";
|
|
50
|
-
import { t as PkColorInput } from "./pk-color-input-
|
|
51
|
-
import { t as PkCalendar } from "./pk-calendar-
|
|
52
|
-
import { t as PkDatePicker } from "./pk-date-picker-
|
|
53
|
-
import { t as PkOption } from "./pk-option-
|
|
54
|
-
import { t as PkSelect } from "./pk-select-
|
|
55
|
-
import { t as PkTimePicker } from "./pk-time-picker-
|
|
56
|
-
import { t as PkEditableTable } from "./pk-editable-table-
|
|
57
|
-
import { t as PkField } from "./pk-field-
|
|
54
|
+
import { t as PkColorInput } from "./pk-color-input-4LDV0Z3W.js";
|
|
55
|
+
import { t as PkCalendar } from "./pk-calendar-hBz1MnOu.js";
|
|
56
|
+
import { t as PkDatePicker } from "./pk-date-picker-D_JFep-Y.js";
|
|
57
|
+
import { t as PkOption } from "./pk-option-Cx52kLmz.js";
|
|
58
|
+
import { t as PkSelect } from "./pk-select-UUH7FE4H.js";
|
|
59
|
+
import { t as PkTimePicker } from "./pk-time-picker-D-u5-7pf.js";
|
|
60
|
+
import { t as PkEditableTable } from "./pk-editable-table-B85NhFYY.js";
|
|
61
|
+
import { t as PkField } from "./pk-field-BJA2fZ6s.js";
|
|
58
62
|
import "../components/field.js";
|
|
59
|
-
import { t as PkPopover } from "./pk-popover-
|
|
63
|
+
import { t as PkPopover } from "./pk-popover-209LdoPr.js";
|
|
60
64
|
import "../components/popover.js";
|
|
61
65
|
import "../components/popup.js";
|
|
62
|
-
import { t as PkTooltip } from "./pk-tooltip
|
|
66
|
+
import { t as PkTooltip } from "./pk-tooltip-C6yb4CXI.js";
|
|
63
67
|
import "../components/tooltip.js";
|
|
64
|
-
import { t as PkRadio } from "./pk-radio-
|
|
65
|
-
import { t as PkRadioGroup } from "./pk-radio-group-
|
|
68
|
+
import { t as PkRadio } from "./pk-radio-jgj6A0Wy.js";
|
|
69
|
+
import { t as PkRadioGroup } from "./pk-radio-group-CruMBeeF.js";
|
|
66
70
|
import "../components/radio-group.js";
|
|
67
|
-
import { t as PkTab } from "./pk-tab-
|
|
68
|
-
import { t as PkTabHeading } from "./pk-tab-heading-
|
|
69
|
-
import { t as PkTabPanel } from "./pk-tab-panel-
|
|
70
|
-
import { t as PkTabs } from "./pk-tabs-
|
|
71
|
+
import { t as PkTab } from "./pk-tab-BmXNyDg7.js";
|
|
72
|
+
import { t as PkTabHeading } from "./pk-tab-heading-GZHVmCAd.js";
|
|
73
|
+
import { t as PkTabPanel } from "./pk-tab-panel-OpM3f_cm.js";
|
|
74
|
+
import { t as PkTabs } from "./pk-tabs-x26NAw-V.js";
|
|
71
75
|
import "../components/tabs.js";
|
|
72
|
-
import { t as PkScrollArea } from "./pk-scroll-area-
|
|
76
|
+
import { t as PkScrollArea } from "./pk-scroll-area-BaqN798b.js";
|
|
73
77
|
import "../components/scroll-area.js";
|
|
74
78
|
import "../components/color-input.js";
|
|
75
79
|
import "../components/calendar.js";
|
|
76
80
|
import "../components/date-picker.js";
|
|
77
|
-
import { t as PkOptionGroup } from "./pk-option-group-
|
|
81
|
+
import { t as PkOptionGroup } from "./pk-option-group-CYo9Ukue.js";
|
|
78
82
|
import "../components/select.js";
|
|
79
83
|
import "../components/time-picker.js";
|
|
80
84
|
import "../components/spinner.js";
|
|
81
|
-
import { t as PkTiptapContent } from "./pk-tiptap-content-
|
|
82
|
-
import { t as PkTiptapEditor } from "./pk-tiptap-editor-
|
|
83
|
-
import { t as PkTiptapInput } from "./pk-tiptap-input-
|
|
85
|
+
import { t as PkTiptapContent } from "./pk-tiptap-content-BGxMO3T4.js";
|
|
86
|
+
import { t as PkTiptapEditor } from "./pk-tiptap-editor-BeuyzH5l.js";
|
|
87
|
+
import { t as PkTiptapInput } from "./pk-tiptap-input-CQojaxDH.js";
|
|
84
88
|
import "@verbb/plugin-kit-icons/all.js";
|
|
85
89
|
//#region src/register.ts
|
|
86
90
|
var COMPONENTS = [
|
|
91
|
+
["pk-alert", PkAlert],
|
|
92
|
+
["pk-state-panel", PkStatePanel],
|
|
87
93
|
["pk-spinner", PkSpinner],
|
|
88
94
|
["pk-icon", PkIcon],
|
|
89
95
|
["pk-button", PkButton],
|
|
@@ -145,4 +151,4 @@ function registerAll() {
|
|
|
145
151
|
//#endregion
|
|
146
152
|
export { registerAll as t };
|
|
147
153
|
|
|
148
|
-
//# sourceMappingURL=register-
|
|
154
|
+
//# sourceMappingURL=register-BDO_LUHK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-BDO_LUHK.js","names":[],"sources":["../../src/register.ts"],"sourcesContent":["// Full-library path: every curated glyph is available to `<pk-icon icon=\"…\">`.\nimport '@verbb/plugin-kit-icons/all.js';\n\nimport { PkAlert } from './components/alert/pk-alert.js';\nimport { PkStatePanel } from './components/state-panel/pk-state-panel.js';\nimport { PkButton } from './components/button/pk-button.js';\nimport { PkButtonGroup } from './components/button-group/pk-button-group.js';\nimport { PkButtonGroupSeparator } from './components/button-group/pk-button-group-separator.js';\nimport { PkButtonGroupText } from './components/button-group/pk-button-group-text.js';\nimport { PkCheckbox } from './components/checkbox/pk-checkbox.js';\nimport { PkCheckboxSelect } from './components/checkbox-select/pk-checkbox-select.js';\nimport { PkCodeEditor } from './components/code-editor/pk-code-editor.js';\nimport { PkColorInput } from './components/color-input/pk-color-input.js';\nimport { PkCalendar } from './components/calendar/pk-calendar.js';\nimport { PkDatePicker } from './components/date-picker/pk-date-picker.js';\nimport { PkCombobox } from './components/combobox/pk-combobox.js';\nimport { PkConnect } from './components/connect/pk-connect.js';\nimport { PkConnectOauth } from './components/connect/pk-connect-oauth.js';\nimport { PkCopyButton } from './components/copy-button/pk-copy-button.js';\nimport { PkDialog } from './components/dialog/pk-dialog.js';\nimport { PkDropdownLabel } from './components/dropdown-menu/pk-dropdown-label.js';\nimport { PkDropdownMenu } from './components/dropdown-menu/pk-dropdown-menu.js';\nimport { PkDropdownItem } from './components/dropdown-menu/pk-dropdown-item.js';\nimport { PkDropdownSeparator } from './components/dropdown-menu/pk-dropdown-separator.js';\nimport { PkEditableTable } from './components/editable-table/pk-editable-table.js';\nimport { PkField } from './components/field/pk-field.js';\nimport { PkIcon } from './components/icon/pk-icon.js';\nimport { PkInput } from './components/input/pk-input.js';\nimport { PkInputGroup } from './components/input-group/pk-input-group.js';\nimport { PkInputGroupAddon } from './components/input-group/pk-input-group-addon.js';\nimport { PkInputGroupButton } from './components/input-group/pk-input-group-button.js';\nimport { PkInputGroupInput } from './components/input-group/pk-input-group-input.js';\nimport { PkInputGroupText } from './components/input-group/pk-input-group-text.js';\nimport { PkInputGroupTextarea } from './components/input-group/pk-input-group-textarea.js';\nimport { PkLightswitch } from './components/lightswitch/pk-lightswitch.js';\nimport { PkOption } from './components/select/pk-option.js';\nimport { PkOptionGroup } from './components/select/pk-option-group.js';\nimport { PkPopover } from './components/popover/pk-popover.js';\nimport { PkPopup } from './components/popup/pk-popup.js';\nimport { PkRadio } from './components/radio-group/pk-radio.js';\nimport { PkRadioGroup } from './components/radio-group/pk-radio-group.js';\nimport { PkScrollArea } from './components/scroll-area/pk-scroll-area.js';\nimport { PkSelect } from './components/select/pk-select.js';\nimport { PkSeparator } from './components/separator/pk-separator.js';\nimport { PkSpinner } from './components/spinner/pk-spinner.js';\nimport { PkStatus } from './components/status/pk-status.js';\nimport { PkTab } from './components/tabs/pk-tab.js';\nimport { PkTabHeading } from './components/tabs/pk-tab-heading.js';\nimport { PkTabPanel } from './components/tabs/pk-tab-panel.js';\nimport { PkTabs } from './components/tabs/pk-tabs.js';\nimport { PkTextarea } from './components/textarea/pk-textarea.js';\nimport { PkTiptapContent } from './components/tiptap/pk-tiptap-content.js';\nimport { PkTiptapEditor } from './components/tiptap/pk-tiptap-editor.js';\nimport { PkTiptapInput } from './components/tiptap/pk-tiptap-input.js';\nimport { PkTimePicker } from './components/time-picker/pk-time-picker.js';\nimport { PkToggle } from './components/toggle/pk-toggle.js';\nimport { PkToggleGroup } from './components/toggle-group/pk-toggle-group.js';\nimport { PkTooltip } from './components/tooltip/pk-tooltip.js';\n\nexport * from './components/alert/index.js';\nexport * from './components/state-panel/index.js';\nexport * from './components/button/index.js';\nexport * from './components/button-group/index.js';\nexport * from './components/checkbox/index.js';\nexport * from './components/checkbox-select/index.js';\nexport * from './components/input/index.js';\nexport * from './components/input-group/index.js';\nexport * from './components/textarea/index.js';\nexport * from './components/separator/index.js';\nexport * from './components/status/index.js';\nexport * from './components/toggle/index.js';\nexport * from './components/toggle-group/index.js';\nexport * from './components/lightswitch/index.js';\nexport * from './components/connect/index.js';\nexport * from './components/copy-button/index.js';\nexport * from './components/dialog/index.js';\nexport * from './components/dropdown-menu/index.js';\nexport * from './components/field/index.js';\nexport * from './components/popover/index.js';\nexport * from './components/popup/index.js';\nexport * from './components/tooltip/index.js';\nexport * from './components/radio-group/index.js';\nexport * from './components/tabs/index.js';\nexport * from './components/scroll-area/index.js';\nexport * from './components/color-input/index.js';\nexport * from './components/code-editor/index.js';\nexport * from './components/calendar/index.js';\nexport * from './components/date-picker/index.js';\nexport * from './components/select/index.js';\nexport * from './components/spinner/index.js';\nexport * from './components/time-picker/index.js';\nexport * from './components/tiptap/index.js';\n\nexport {\n PkAlert,\n PkStatePanel,\n PkButton,\n PkButtonGroup,\n PkButtonGroupSeparator,\n PkButtonGroupText,\n PkCheckbox,\n PkCheckboxSelect,\n PkColorInput,\n PkCodeEditor,\n PkCalendar,\n PkDatePicker,\n PkCombobox,\n PkConnect,\n PkConnectOauth,\n PkCopyButton,\n PkDialog,\n PkDropdownMenu,\n PkDropdownItem,\n PkDropdownSeparator,\n PkEditableTable,\n PkField,\n PkIcon,\n PkInput,\n PkInputGroup,\n PkInputGroupAddon,\n PkInputGroupButton,\n PkInputGroupInput,\n PkInputGroupText,\n PkInputGroupTextarea,\n PkLightswitch,\n PkOption,\n PkOptionGroup,\n PkPopover,\n PkPopup,\n PkRadio,\n PkRadioGroup,\n PkScrollArea,\n PkSelect,\n PkSeparator,\n PkSpinner,\n PkStatus,\n PkTab,\n PkTabPanel,\n PkTabs,\n PkTextarea,\n PkTimePicker,\n PkTiptapContent,\n PkTiptapEditor,\n PkTiptapInput,\n PkToggle,\n PkToggleGroup,\n PkTooltip,\n};\n\nconst COMPONENTS: [string, CustomElementConstructor][] = [\n ['pk-alert', PkAlert],\n ['pk-state-panel', PkStatePanel],\n ['pk-spinner', PkSpinner],\n ['pk-icon', PkIcon],\n ['pk-button', PkButton],\n ['pk-checkbox', PkCheckbox],\n ['pk-checkbox-select', PkCheckboxSelect],\n ['pk-color-input', PkColorInput],\n ['pk-code-editor', PkCodeEditor],\n ['pk-input', PkInput],\n ['pk-input-group', PkInputGroup],\n ['pk-input-group-addon', PkInputGroupAddon],\n ['pk-input-group-button', PkInputGroupButton],\n ['pk-input-group-input', PkInputGroupInput],\n ['pk-input-group-text', PkInputGroupText],\n ['pk-input-group-textarea', PkInputGroupTextarea],\n ['pk-textarea', PkTextarea],\n ['pk-tiptap-editor', PkTiptapEditor],\n ['pk-tiptap-input', PkTiptapInput],\n ['pk-tiptap-content', PkTiptapContent],\n ['pk-field', PkField],\n ['pk-separator', PkSeparator],\n ['pk-status', PkStatus],\n ['pk-toggle', PkToggle],\n ['pk-toggle-group', PkToggleGroup],\n ['pk-lightswitch', PkLightswitch],\n ['pk-button-group', PkButtonGroup],\n ['pk-button-group-separator', PkButtonGroupSeparator],\n ['pk-button-group-text', PkButtonGroupText],\n ['pk-dialog', PkDialog],\n ['pk-popup', PkPopup],\n ['pk-dropdown-label', PkDropdownLabel],\n ['pk-dropdown-item', PkDropdownItem],\n ['pk-dropdown-separator', PkDropdownSeparator],\n ['pk-dropdown-menu', PkDropdownMenu],\n ['pk-editable-table', PkEditableTable],\n ['pk-popover', PkPopover],\n ['pk-tooltip', PkTooltip],\n ['pk-radio', PkRadio],\n ['pk-radio-group', PkRadioGroup],\n ['pk-tab', PkTab],\n ['pk-tab-heading', PkTabHeading],\n ['pk-tab-panel', PkTabPanel],\n ['pk-tabs', PkTabs],\n ['pk-scroll-area', PkScrollArea],\n ['pk-option', PkOption],\n ['pk-option-group', PkOptionGroup],\n ['pk-select', PkSelect],\n ['pk-calendar', PkCalendar],\n ['pk-date-picker', PkDatePicker],\n ['pk-combobox', PkCombobox],\n ['pk-connect', PkConnect],\n ['pk-connect-oauth', PkConnectOauth],\n ['pk-time-picker', PkTimePicker],\n ['pk-copy-button', PkCopyButton],\n];\n\n/** Side-effect registration for all Plugin Kit web components. */\nexport function registerAll(): void {\n for (const [tag, ctor] of COMPONENTS) {\n if (!customElements.get(tag)) {\n customElements.define(tag, ctor);\n }\n }\n}\n\nexport {\n createRegisterComponents,\n type PkComponentTag,\n} from './register-components.js';\n\nexport { BUNDLER_TAG_IMPORT_PATHS as componentImportPaths } from './component-registry.js';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqJA,IAAM,aAAmD;CACrD,CAAC,YAAY,QAAQ;CACrB,CAAC,kBAAkB,aAAa;CAChC,CAAC,cAAc,UAAU;CACzB,CAAC,WAAW,OAAO;CACnB,CAAC,aAAa,SAAS;CACvB,CAAC,eAAe,WAAW;CAC3B,CAAC,sBAAsB,iBAAiB;CACxC,CAAC,kBAAkB,aAAa;CAChC,CAAC,kBAAkB,aAAa;CAChC,CAAC,YAAY,QAAQ;CACrB,CAAC,kBAAkB,aAAa;CAChC,CAAC,wBAAwB,kBAAkB;CAC3C,CAAC,yBAAyB,mBAAmB;CAC7C,CAAC,wBAAwB,kBAAkB;CAC3C,CAAC,uBAAuB,iBAAiB;CACzC,CAAC,2BAA2B,qBAAqB;CACjD,CAAC,eAAe,WAAW;CAC3B,CAAC,oBAAoB,eAAe;CACpC,CAAC,mBAAmB,cAAc;CAClC,CAAC,qBAAqB,gBAAgB;CACtC,CAAC,YAAY,QAAQ;CACrB,CAAC,gBAAgB,YAAY;CAC7B,CAAC,aAAa,SAAS;CACvB,CAAC,aAAa,SAAS;CACvB,CAAC,mBAAmB,cAAc;CAClC,CAAC,kBAAkB,cAAc;CACjC,CAAC,mBAAmB,cAAc;CAClC,CAAC,6BAA6B,uBAAuB;CACrD,CAAC,wBAAwB,kBAAkB;CAC3C,CAAC,aAAa,SAAS;CACvB,CAAC,YAAY,QAAQ;CACrB,CAAC,qBAAqB,gBAAgB;CACtC,CAAC,oBAAoB,eAAe;CACpC,CAAC,yBAAyB,oBAAoB;CAC9C,CAAC,oBAAoB,eAAe;CACpC,CAAC,qBAAqB,gBAAgB;CACtC,CAAC,cAAc,UAAU;CACzB,CAAC,cAAc,UAAU;CACzB,CAAC,YAAY,QAAQ;CACrB,CAAC,kBAAkB,aAAa;CAChC,CAAC,UAAU,MAAM;CACjB,CAAC,kBAAkB,aAAa;CAChC,CAAC,gBAAgB,WAAW;CAC5B,CAAC,WAAW,OAAO;CACnB,CAAC,kBAAkB,aAAa;CAChC,CAAC,aAAa,SAAS;CACvB,CAAC,mBAAmB,cAAc;CAClC,CAAC,aAAa,SAAS;CACvB,CAAC,eAAe,WAAW;CAC3B,CAAC,kBAAkB,aAAa;CAChC,CAAC,eAAe,WAAW;CAC3B,CAAC,cAAc,UAAU;CACzB,CAAC,oBAAoB,eAAe;CACpC,CAAC,kBAAkB,aAAa;CAChC,CAAC,kBAAkB,aAAa;CACnC;;AAGD,SAAgB,cAAoB;AAChC,MAAK,MAAM,CAAC,KAAK,SAAS,WACtB,KAAI,CAAC,eAAe,IAAI,IAAI,CACxB,gBAAe,OAAO,KAAK,KAAK"}
|
package/dist/chunks/{register-components-BT9THgdh.js.map → register-components-Dcdn1e3S.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-components-
|
|
1
|
+
{"version":3,"file":"register-components-Dcdn1e3S.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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-
|
|
1
|
+
{"version":3,"file":"render-BKGW1a68.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"}
|
package/dist/chunks/{required-validator-CEg8dvjS.js.map → required-validator-CaRnQk1V.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"required-validator-
|
|
1
|
+
{"version":3,"file":"required-validator-CaRnQk1V.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"}
|
|
@@ -157,4 +157,4 @@ function scrollIntoView(element, container, direction = "vertical", behavior = "
|
|
|
157
157
|
//#endregion
|
|
158
158
|
export { unlockBodyScrolling as a, scrollIntoView as i, getScrollLockDepth as n, getOffset as o, lockBodyScrolling as r, forceClearScrollLock as t };
|
|
159
159
|
|
|
160
|
-
//# sourceMappingURL=scroll-lock-
|
|
160
|
+
//# sourceMappingURL=scroll-lock-gTFrvIPu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scroll-lock-
|
|
1
|
+
{"version":3,"file":"scroll-lock-gTFrvIPu.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 * Aligns with Craft / Garnish.Modal where it matters:\n * - Modal + shade are `position: fixed` (hosts, not the document).\n * - Document lock is `body { overflow: hidden }` (Craft’s `.no-scroll`) — **not**\n * `body { position: fixed }`, and **not** `overflow: hidden` on `html`.\n * Body-only overflow keeps Craft’s sticky `#global-sidebar` stuck at the current\n * scrollY; html overflow / body fixed both make sticky “let go” and the nav jumps.\n *\n * Craft’s class alone still lets the page scroll under the shade (wheel / scrollBy).\n * We add wheel / touch / page-key `preventDefault` outside locking overlay hosts so\n * user scrolling actually stops — without a `scroll` listener that rubber-bands the\n * position back (that felt gross).\n *\n * Also avoid: permanent/lock-time `scrollbar-gutter`, and `padding-right` compensation\n * (Craft fixed tip bars ignore body padding and jump).\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\nconst SCROLL_KEYS = new Set([\n ' ',\n 'ArrowUp',\n 'ArrowDown',\n 'ArrowLeft',\n 'ArrowRight',\n 'PageUp',\n 'PageDown',\n 'Home',\n 'End',\n]);\n\nfunction eventPathContainsLock(event: Event): boolean {\n for (const node of event.composedPath()) {\n if (node instanceof HTMLElement && locks.has(node)) {\n return true;\n }\n }\n return false;\n}\n\nfunction isEditableTarget(target: EventTarget | null): boolean {\n if (!(target instanceof HTMLElement)) {\n return false;\n }\n if (target.isContentEditable) {\n return true;\n }\n const tag = target.tagName;\n return tag === 'INPUT' || tag === 'TEXTAREA' || tag === 'SELECT';\n}\n\n/**\n * Craft-like body overflow + gesture block (no scroll-position pin).\n * Returns a restore function.\n */\nfunction applyScrollLock(): () => void {\n const body = document.body;\n const prevOverflow = body.style.overflow;\n\n // Same idea as Craft `.no-scroll { overflow: hidden !important }` — body only.\n body.style.setProperty('overflow', 'hidden', 'important');\n\n const onWheel = (event: WheelEvent) => {\n if (eventPathContainsLock(event)) {\n return;\n }\n event.preventDefault();\n };\n\n const onTouchMove = (event: TouchEvent) => {\n if (eventPathContainsLock(event)) {\n return;\n }\n event.preventDefault();\n };\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (!SCROLL_KEYS.has(event.key)) {\n return;\n }\n if (eventPathContainsLock(event) || isEditableTarget(event.target)) {\n return;\n }\n event.preventDefault();\n };\n\n // Capture + non-passive so preventDefault actually stops scrolling.\n // Deliberately no `scroll` listener — resetting scrollY after the fact rubber-bands.\n window.addEventListener('wheel', onWheel, { passive: false, capture: true });\n window.addEventListener('touchmove', onTouchMove, { passive: false, capture: true });\n window.addEventListener('keydown', onKeyDown, { capture: true });\n\n return () => {\n window.removeEventListener('wheel', onWheel, { capture: true } as EventListenerOptions);\n window.removeEventListener('touchmove', onTouchMove, { capture: true } as EventListenerOptions);\n window.removeEventListener('keydown', onKeyDown, { capture: true } as EventListenerOptions);\n body.style.removeProperty('overflow');\n if (prevOverflow) {\n body.style.overflow = prevOverflow;\n }\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 // Always 0 — we never pad the body (Craft 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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spinner-utils-
|
|
1
|
+
{"version":3,"file":"spinner-utils-Co_4X3ip.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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supports-popover-
|
|
1
|
+
{"version":3,"file":"supports-popover-6lNVStLh.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"}
|
package/dist/chunks/{sync-listbox-separators-B1-V0oJi.js → sync-listbox-separators-CPFtrpNq.js}
RENAMED
|
@@ -146,4 +146,4 @@ var syncListboxSeparators = (root) => {
|
|
|
146
146
|
//#endregion
|
|
147
147
|
export { isListboxTypeToSelectKey as a, handleListboxKeyDown as i, LISTBOX_NAVIGATION_KEYS as n, createTypeToSelectHandler as r, syncListboxSeparators as t };
|
|
148
148
|
|
|
149
|
-
//# sourceMappingURL=sync-listbox-separators-
|
|
149
|
+
//# sourceMappingURL=sync-listbox-separators-CPFtrpNq.js.map
|