@verbb/plugin-kit-web 2.0.22 → 2.0.24
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 +20 -0
- package/custom-elements.json +8414 -7031
- package/dist/chunks/{active-elements-BwpXu8Lb.js → active-elements-739kISON.js} +1 -1
- package/dist/chunks/{active-elements-BwpXu8Lb.js.map → active-elements-739kISON.js.map} +1 -1
- package/dist/chunks/{animate-with-class-CsDwYnXL.js → animate-with-class-CjTZI0NU.js} +1 -1
- package/dist/chunks/{animate-with-class-CsDwYnXL.js.map → animate-with-class-CjTZI0NU.js.map} +1 -1
- package/dist/chunks/{autoloader-dJO3tYOX.js → autoloader-DcwybeWc.js} +3 -3
- package/dist/chunks/{autoloader-dJO3tYOX.js.map → autoloader-DcwybeWc.js.map} +1 -1
- package/dist/chunks/{button-group-item.styles-DYmBR28a.js → button-group-item.styles-D7tuu-sr.js} +1 -1
- package/dist/chunks/{button-group-item.styles-DYmBR28a.js.map → button-group-item.styles-D7tuu-sr.js.map} +1 -1
- package/dist/chunks/{component-registry-D34fm8xW.js → component-registry-B5pnAZsb.js} +6 -1
- package/dist/chunks/component-registry-B5pnAZsb.js.map +1 -0
- package/dist/chunks/{control-aria-B2QMq4ji.js → control-aria-CtNg2izr.js} +1 -1
- package/dist/chunks/{control-aria-B2QMq4ji.js.map → control-aria-CtNg2izr.js.map} +1 -1
- package/dist/chunks/{decorate-R0X811qp.js → decorate-Br_PE9pq.js} +3 -4
- package/dist/chunks/{decorate-R0X811qp.js.map → decorate-Br_PE9pq.js.map} +1 -1
- package/dist/chunks/decorators-BkErmuYK.js +2 -0
- package/dist/chunks/{dismissible-stack-XQUMfKO3.js → dismissible-stack-CwhtwAyo.js} +1 -1
- package/dist/chunks/{dismissible-stack-XQUMfKO3.js.map → dismissible-stack-CwhtwAyo.js.map} +1 -1
- package/dist/chunks/{field-labels-CmuAW8Cl.js → field-labels-pY-gQDwQ.js} +1 -1
- package/dist/chunks/{field-labels-CmuAW8Cl.js.map → field-labels-pY-gQDwQ.js.map} +1 -1
- package/dist/chunks/{focus-aa5dlv8k.js → focus-DcVUPVqn.js} +2 -2
- package/dist/chunks/{focus-aa5dlv8k.js.map → focus-DcVUPVqn.js.map} +1 -1
- package/dist/chunks/{form-control.styles-BQdimE5o.js → form-control.styles-CQ93gnVf.js} +1 -1
- package/dist/chunks/{form-control.styles-BQdimE5o.js.map → form-control.styles-CQ93gnVf.js.map} +1 -1
- package/dist/chunks/{has-slot-8BvCt_qo.js → has-slot-DJv86HKx.js} +1 -1
- package/dist/chunks/{has-slot-8BvCt_qo.js.map → has-slot-DJv86HKx.js.map} +1 -1
- package/dist/chunks/{icon.styles-BLTWLqYp.js → icon.styles-KWvfi7RV.js} +1 -1
- package/dist/chunks/{icon.styles-BLTWLqYp.js.map → icon.styles-KWvfi7RV.js.map} +1 -1
- package/dist/chunks/{icons-BR8JcQj2.js → icons-k1pvx6yX.js} +2 -2
- package/dist/chunks/{icons-BR8JcQj2.js.map → icons-k1pvx6yX.js.map} +1 -1
- package/dist/chunks/{mirror-validator-DCjNYrrx.js → mirror-validator-BkZlEv1Z.js} +1 -1
- package/dist/chunks/{mirror-validator-DCjNYrrx.js.map → mirror-validator-BkZlEv1Z.js.map} +1 -1
- package/dist/chunks/{option-filter-BQqr8Z21.js → option-filter-BkKyBg8L.js} +2 -2
- package/dist/chunks/{option-filter-BQqr8Z21.js.map → option-filter-BkKyBg8L.js.map} +1 -1
- package/dist/chunks/{overlay-lifecycle-D0pkTQyI.js → overlay-lifecycle-C582MGBJ.js} +1 -1
- package/dist/chunks/{overlay-lifecycle-D0pkTQyI.js.map → overlay-lifecycle-C582MGBJ.js.map} +1 -1
- package/dist/chunks/pk-alert-BQAb4lJc.js +666 -0
- package/dist/chunks/pk-alert-BQAb4lJc.js.map +1 -0
- package/dist/chunks/{pk-autocomplete-qy2Psvqm.js → pk-autocomplete-DUXhs1hi.js} +21 -20
- package/dist/chunks/pk-autocomplete-DUXhs1hi.js.map +1 -0
- package/dist/chunks/{pk-button-group-BSz5T5iS.js → pk-button-group-BY12Lbk7.js} +10 -7
- package/dist/chunks/pk-button-group-BY12Lbk7.js.map +1 -0
- package/dist/chunks/{pk-button-group-separator-DH3Rl24b.js → pk-button-group-separator-B1a8dP9A.js} +3 -2
- package/dist/chunks/pk-button-group-separator-B1a8dP9A.js.map +1 -0
- package/dist/chunks/{pk-button-group-text-Qro_KmZb.js → pk-button-group-text-CWNlZkyV.js} +3 -3
- package/dist/chunks/pk-button-group-text-CWNlZkyV.js.map +1 -0
- package/dist/chunks/{pk-button-BrH4u4Qr.js → pk-button-ntSVrer_.js} +8 -7
- package/dist/chunks/pk-button-ntSVrer_.js.map +1 -0
- package/dist/chunks/{pk-calendar-Z7Y0PjeY.js → pk-calendar-Df0c5u79.js} +12 -11
- package/dist/chunks/pk-calendar-Df0c5u79.js.map +1 -0
- package/dist/chunks/{pk-checkbox-13ArHSmt.js → pk-checkbox-L5uRex3b.js} +6 -5
- package/dist/chunks/pk-checkbox-L5uRex3b.js.map +1 -0
- package/dist/chunks/{pk-checkbox-select-Ckvfbu83.js → pk-checkbox-select-6OS0wFYO.js} +4 -3
- package/dist/chunks/pk-checkbox-select-6OS0wFYO.js.map +1 -0
- package/dist/chunks/{pk-clear--mPWZP7H.js → pk-clear-DHxP_2cm.js} +1 -1
- package/dist/chunks/{pk-clear--mPWZP7H.js.map → pk-clear-DHxP_2cm.js.map} +1 -1
- package/dist/chunks/{pk-code-editor-BlG6O5qB.js → pk-code-editor-vZriNR67.js} +6 -5
- package/dist/chunks/pk-code-editor-vZriNR67.js.map +1 -0
- package/dist/chunks/{pk-color-input-BRgQ5-vB.js → pk-color-input-Csbm4ROT.js} +6 -5
- package/dist/chunks/pk-color-input-Csbm4ROT.js.map +1 -0
- package/dist/chunks/{pk-combobox-ag89QEX2.js → pk-combobox-BrSBrldb.js} +25 -23
- package/dist/chunks/pk-combobox-BrSBrldb.js.map +1 -0
- package/dist/chunks/{pk-connect.styles-BhW406jt.js → pk-connect.styles-oKhxa_m2.js} +1 -1
- package/dist/chunks/{pk-connect.styles-BhW406jt.js.map → pk-connect.styles-oKhxa_m2.js.map} +1 -1
- package/dist/chunks/{pk-copy-button-BVaOLtYG.js → pk-copy-button-5i9v_zmu.js} +31 -9
- package/dist/chunks/pk-copy-button-5i9v_zmu.js.map +1 -0
- package/dist/chunks/{pk-date-picker-C2YvDPNm.js → pk-date-picker-C-w6Mn6j.js} +21 -20
- package/dist/chunks/pk-date-picker-C-w6Mn6j.js.map +1 -0
- package/dist/chunks/{pk-dialog-VMQqLW1f.js → pk-dialog-C7KZGpQs.js} +10 -9
- package/dist/chunks/pk-dialog-C7KZGpQs.js.map +1 -0
- package/dist/chunks/{pk-dropdown-item-D9OaG5o-.js → pk-dropdown-item-Ck2N_suK.js} +11 -8
- package/dist/chunks/pk-dropdown-item-Ck2N_suK.js.map +1 -0
- package/dist/chunks/{pk-dropdown-label-CRNWMWQd.js → pk-dropdown-label-BdZLeizJ.js} +2 -2
- package/dist/chunks/pk-dropdown-label-BdZLeizJ.js.map +1 -0
- package/dist/chunks/{pk-dropdown-menu-DW1wI8xQ.js → pk-dropdown-menu-DBsO1uYR.js} +22 -18
- package/dist/chunks/pk-dropdown-menu-DBsO1uYR.js.map +1 -0
- package/dist/chunks/{pk-editable-table-DDnu1I8Y.js → pk-editable-table-Cd8K6vT4.js} +26 -23
- package/dist/chunks/pk-editable-table-Cd8K6vT4.js.map +1 -0
- package/dist/chunks/{pk-field-UAlMq6mQ.js → pk-field--PCE9nOd.js} +9 -8
- package/dist/chunks/pk-field--PCE9nOd.js.map +1 -0
- package/dist/chunks/{pk-form-associated-element-GxX5lbnk.js → pk-form-associated-element-Doh2K3pG.js} +3 -3
- package/dist/chunks/pk-form-associated-element-Doh2K3pG.js.map +1 -0
- package/dist/chunks/{pk-image-browser-Bj8LhWfk.js → pk-image-browser-iUqdcLKs.js} +21 -21
- package/dist/chunks/pk-image-browser-iUqdcLKs.js.map +1 -0
- package/dist/chunks/{pk-input-BywmK5n2.js → pk-input-BUbXj9We.js} +14 -13
- package/dist/chunks/pk-input-BUbXj9We.js.map +1 -0
- package/dist/chunks/{pk-input-group-BLqKPnfc.js → pk-input-group-CN79c5HT.js} +5 -4
- package/dist/chunks/pk-input-group-CN79c5HT.js.map +1 -0
- package/dist/chunks/{pk-input-group-addon-ClBkGmAw.js → pk-input-group-addon-DpxfuYp1.js} +3 -2
- package/dist/chunks/pk-input-group-addon-DpxfuYp1.js.map +1 -0
- package/dist/chunks/{pk-input-group-button-CHQHsWd4.js → pk-input-group-button-D5Hm4saA.js} +3 -2
- package/dist/chunks/pk-input-group-button-D5Hm4saA.js.map +1 -0
- package/dist/chunks/{pk-input-group-input-oNnqMBGU.js → pk-input-group-input-Cm1MoHgN.js} +3 -2
- package/dist/chunks/pk-input-group-input-Cm1MoHgN.js.map +1 -0
- package/dist/chunks/{pk-input-group-text-HUxlXROB.js → pk-input-group-text-CtyJZ_Kg.js} +2 -2
- package/dist/chunks/pk-input-group-text-CtyJZ_Kg.js.map +1 -0
- package/dist/chunks/{pk-input-group-textarea-Cl2FNuw-.js → pk-input-group-textarea-BxmKGjdt.js} +3 -2
- package/dist/chunks/pk-input-group-textarea-BxmKGjdt.js.map +1 -0
- package/dist/chunks/{pk-lightswitch-VHfJizBW.js → pk-lightswitch-CSvgiHVQ.js} +9 -8
- package/dist/chunks/pk-lightswitch-CSvgiHVQ.js.map +1 -0
- package/dist/chunks/{pk-option-DQZHV9jL.js → pk-option-B_PF4v_Z.js} +9 -7
- package/dist/chunks/pk-option-B_PF4v_Z.js.map +1 -0
- package/dist/chunks/{pk-option-group-CCzJkBFp.js → pk-option-group-D6bHfn0j.js} +4 -3
- package/dist/chunks/pk-option-group-D6bHfn0j.js.map +1 -0
- package/dist/chunks/{pk-popover-D3jkHfwB.js → pk-popover-BOoGfR7I.js} +11 -10
- package/dist/chunks/pk-popover-BOoGfR7I.js.map +1 -0
- package/dist/chunks/{pk-popup-B65tZMQH.js → pk-popup-DVE93VSV.js} +32 -28
- package/dist/chunks/pk-popup-DVE93VSV.js.map +1 -0
- package/dist/chunks/{pk-radio-B5XkMHy3.js → pk-radio-D0eqmnlH.js} +3 -2
- package/dist/chunks/pk-radio-D0eqmnlH.js.map +1 -0
- package/dist/chunks/{pk-radio-group-Dzd-3HaQ.js → pk-radio-group-BehEZG_k.js} +8 -7
- package/dist/chunks/pk-radio-group-BehEZG_k.js.map +1 -0
- package/dist/chunks/{pk-scroll-area-CdfNxYz8.js → pk-scroll-area-BeaLZ6k-.js} +3 -2
- package/dist/chunks/pk-scroll-area-BeaLZ6k-.js.map +1 -0
- package/dist/chunks/{pk-select-b5S5WKc-.js → pk-select-DZNpEk5Z.js} +20 -19
- package/dist/chunks/pk-select-DZNpEk5Z.js.map +1 -0
- package/dist/chunks/{pk-separator-N-VyjYE6.js → pk-separator-ZkRowI5Y.js} +3 -2
- package/dist/chunks/pk-separator-ZkRowI5Y.js.map +1 -0
- package/dist/chunks/{pk-spinner-DweuYJ_Z.js → pk-spinner-Bxkn4iVO.js} +3 -2
- package/dist/chunks/pk-spinner-Bxkn4iVO.js.map +1 -0
- package/dist/chunks/pk-state-panel-BTo2xiug.js +604 -0
- package/dist/chunks/pk-state-panel-BTo2xiug.js.map +1 -0
- package/dist/chunks/{pk-status-BehQARDv.js → pk-status-CdiRBRyh.js} +3 -2
- package/dist/chunks/pk-status-CdiRBRyh.js.map +1 -0
- package/dist/chunks/{pk-tab-CTloD18e.js → pk-tab-CSbI3XxX.js} +2 -2
- package/dist/chunks/pk-tab-CSbI3XxX.js.map +1 -0
- package/dist/chunks/{pk-tab-heading-Cjcgebxn.js → pk-tab-heading-BMyLTBNc.js} +2 -2
- package/dist/chunks/pk-tab-heading-BMyLTBNc.js.map +1 -0
- package/dist/chunks/{pk-tab-panel-CkKU5-Ah.js → pk-tab-panel-sgdRjV8o.js} +2 -2
- package/dist/chunks/pk-tab-panel-sgdRjV8o.js.map +1 -0
- package/dist/chunks/{pk-tabs-BgEBki1q.js → pk-tabs-bBNCu_4h.js} +10 -7
- package/dist/chunks/pk-tabs-bBNCu_4h.js.map +1 -0
- package/dist/chunks/{pk-textarea-Dhj1WFLH.js → pk-textarea-B401dUWa.js} +11 -10
- package/dist/chunks/pk-textarea-B401dUWa.js.map +1 -0
- package/dist/chunks/{pk-time-picker-ChRbKHNB.js → pk-time-picker-DnNZVwRk.js} +6 -6
- package/dist/chunks/pk-time-picker-DnNZVwRk.js.map +1 -0
- package/dist/chunks/{pk-tiptap-content-CL8smjGi.js → pk-tiptap-content-C2qzGQKj.js} +4 -3
- package/dist/chunks/pk-tiptap-content-C2qzGQKj.js.map +1 -0
- package/dist/chunks/{pk-tiptap-editor-BMwedkPt.js → pk-tiptap-editor-y_QyNSR-.js} +20 -21
- package/dist/chunks/pk-tiptap-editor-y_QyNSR-.js.map +1 -0
- package/dist/chunks/{pk-tiptap-input-YKg4VLp_.js → pk-tiptap-input-0Xy6rrot.js} +7 -6
- package/dist/chunks/pk-tiptap-input-0Xy6rrot.js.map +1 -0
- package/dist/chunks/{pk-toggle-BthhH7vl.js → pk-toggle-Co8GsHuK.js} +4 -3
- package/dist/chunks/pk-toggle-Co8GsHuK.js.map +1 -0
- package/dist/chunks/{pk-toggle-group-D2Quux8D.js → pk-toggle-group-Ct1ljI-7.js} +7 -4
- package/dist/chunks/pk-toggle-group-Ct1ljI-7.js.map +1 -0
- package/dist/chunks/{pk-tooltip--QBV6puX.js → pk-tooltip-Cvv2f7T5.js} +7 -6
- package/dist/chunks/pk-tooltip-Cvv2f7T5.js.map +1 -0
- package/dist/chunks/{popup-content-animation.styles-BnNiguJo.js → popup-content-animation.styles-CJ8zGJz-.js} +1 -1
- package/dist/chunks/{popup-content-animation.styles-BnNiguJo.js.map → popup-content-animation.styles-CJ8zGJz-.js.map} +1 -1
- package/dist/chunks/{popup-placement-animation-WlEXnS85.js → popup-placement-animation-ClUYI79z.js} +1 -1
- package/dist/chunks/{popup-placement-animation-WlEXnS85.js.map → popup-placement-animation-ClUYI79z.js.map} +1 -1
- package/dist/chunks/{popup-pointer-CuLjk1th.js → popup-pointer-Bh_d205v.js} +1 -1
- package/dist/chunks/{popup-pointer-CuLjk1th.js.map → popup-pointer-Bh_d205v.js.map} +1 -1
- package/dist/chunks/{register-components-BT9THgdh.js → register-components-CZtpgZe3.js} +1 -1
- package/dist/chunks/{register-components-BT9THgdh.js.map → register-components-CZtpgZe3.js.map} +1 -1
- package/dist/chunks/{render-Dvc3MHQR.js → render-DQZp_Rak.js} +1 -1
- package/dist/chunks/{render-Dvc3MHQR.js.map → render-DQZp_Rak.js.map} +1 -1
- package/dist/chunks/{required-validator-CEg8dvjS.js → required-validator-I58oJGZ3.js} +1 -1
- package/dist/chunks/{required-validator-CEg8dvjS.js.map → required-validator-I58oJGZ3.js.map} +1 -1
- package/dist/chunks/{scroll-lock-Bbh3Sc5g.js → scroll-lock-DE1pElMQ.js} +2 -2
- package/dist/chunks/{scroll-lock-Bbh3Sc5g.js.map → scroll-lock-DE1pElMQ.js.map} +1 -1
- package/dist/chunks/{spinner-utils-CDfHypTv.js → spinner-utils-DXwIxQ6z.js} +1 -1
- package/dist/chunks/{spinner-utils-CDfHypTv.js.map → spinner-utils-DXwIxQ6z.js.map} +1 -1
- package/dist/chunks/{supports-popover-CUBsbHpS.js → supports-popover-BCqyOPtO.js} +1 -1
- package/dist/chunks/{supports-popover-CUBsbHpS.js.map → supports-popover-BCqyOPtO.js.map} +1 -1
- package/dist/chunks/{sync-listbox-separators-B1-V0oJi.js → sync-listbox-separators-saLEtPpJ.js} +2 -2
- package/dist/chunks/{sync-listbox-separators-B1-V0oJi.js.map → sync-listbox-separators-saLEtPpJ.js.map} +1 -1
- package/dist/chunks/{tiptap.styles-CPRows--.js → tiptap.styles-Q4ED1nBw.js} +2 -2
- package/dist/chunks/{tiptap.styles-CPRows--.js.map → tiptap.styles-Q4ED1nBw.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 +5 -4
- package/dist/components/connect/pk-connect-oauth.js.map +1 -1
- 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 +27 -49
- 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/pk-dropdown-separator.js +1 -1
- package/dist/components/dropdown-menu/pk-dropdown-separator.js.map +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/icon/pk-icon.js +2 -1
- package/dist/components/icon/pk-icon.js.map +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.js +1 -1
- package/dist/components/tiptap/pk-tiptap-input.js +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 +74 -67
- package/dist/index.js.map +1 -1
- package/dist/plugin-kit.css +2 -0
- package/dist/plugin-kit.js +4 -4
- package/dist/plugin-kit.js.map +1 -1
- 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 +124 -55
- package/dist/register.js.map +1 -0
- 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-BQbvE3sC.js} +1 -1
- package/dist-loader/chunks/{codemirror-CSgOT0QM.js → codemirror-C_TTKlG1.js} +584 -436
- package/dist-loader/chunks/editor-CS16rBkM.js +110 -0
- package/dist-loader/chunks/{floating-ui-Cj0imr6d.js → floating-ui-BJQPB-Ip.js} +9 -11
- package/dist-loader/chunks/{lit-DpLik9Rf.js → lit-B6nFKgbW.js} +127 -89
- package/dist-loader/chunks/{option-filter-Bc5aNNT0.js → option-filter-BkKyBg8L.js} +1 -1
- package/dist-loader/chunks/{pk-a11y-CjB4-U-R.js → pk-a11y-mGj0G5AE.js} +1 -1
- package/dist-loader/chunks/{pk-base-B2MqxErC.js → pk-base-BGegy7-X.js} +2 -2
- package/dist-loader/chunks/{pk-button-Dfm23jEC.js → pk-button-DV9Tk5Pd.js} +5 -5
- package/dist-loader/chunks/{pk-calendar-BuSULJCU.js → pk-calendar-C0xpIVIw.js} +9 -9
- package/dist-loader/chunks/{pk-checkbox-BDoq3xg0.js → pk-checkbox-DhP0iMoP.js} +9 -6
- package/dist-loader/chunks/{pk-color-input-eLjO9zfn.js → pk-color-input-B02cYzyr.js} +4 -4
- package/dist-loader/chunks/{pk-combobox-DBvcyxRC.js → pk-combobox-S_tpNUHK.js} +19 -18
- package/dist-loader/chunks/{pk-connect.styles-k61snd3X.js → pk-connect.styles-B5qe5yQB.js} +1 -1
- package/dist-loader/chunks/pk-copy-button-D6tPuhJ3.js +198 -0
- package/dist-loader/chunks/{pk-date-picker-CYLpYIji.js → pk-date-picker-C0y4sfSf.js} +15 -15
- package/dist-loader/chunks/{pk-dialog-BtrH5Ke0.js → pk-dialog-BJs5fVHS.js} +7 -7
- package/dist-loader/chunks/{pk-dropdown-item-D8tfEU-k.js → pk-dropdown-item-Bs5NZDRh.js} +11 -9
- package/dist-loader/chunks/{pk-dropdown-label-TbLj4bHK.js → pk-dropdown-label-Cpl9-bzB.js} +2 -2
- package/dist-loader/chunks/{pk-dropdown-menu-C4GDW5pE.js → pk-dropdown-menu-CLrfuD3i.js} +20 -17
- package/dist-loader/chunks/{pk-field-BM0XD9Ij.js → pk-field-Pg61fxBR.js} +140 -74
- package/dist-loader/chunks/{pk-icon-_1F1aL74.js → pk-icon-B7ywfPb6.js} +4 -4
- package/dist-loader/chunks/{pk-input-DvBrD7Md.js → pk-input-Cj5s8eBT.js} +10 -10
- package/dist-loader/chunks/{pk-lightswitch-CcwlLQ9f.js → pk-lightswitch-rUGB1p8q.js} +6 -6
- package/dist-loader/chunks/{pk-option-DATPm0Bo.js → pk-option-B-MeLvZf.js} +8 -7
- package/dist-loader/chunks/{pk-popup-CUuGs8r_.js → pk-popup-CeyruJFh.js} +35 -29
- package/dist-loader/chunks/{pk-select-DpcvbzUL.js → pk-select-JUx3mxRS.js} +14 -14
- package/dist-loader/chunks/{pk-spinner-Dk_LbvHW.js → pk-spinner-B8iuHDQ9.js} +2 -2
- package/dist-loader/chunks/pk-state-panel-BhdZGllL.js +600 -0
- package/dist-loader/chunks/{pk-status-B8UvjIp2.js → pk-status-D3qVwWlR.js} +2 -2
- package/dist-loader/chunks/{pk-textarea-DeSuxufJ.js → pk-textarea-KnpJMQX2.js} +7 -7
- package/dist-loader/chunks/{pk-time-picker-DpJt8biN.js → pk-time-picker-DCqZ5z7M.js} +6 -6
- package/dist-loader/chunks/{pk-tooltip-DcF9J5GT.js → pk-tooltip-DStkplzy.js} +6 -6
- package/dist-loader/chunks/{popup-content-animation.styles-duCg9-CH.js → popup-content-animation.styles-BtUVJg82.js} +1 -1
- package/dist-loader/chunks/{render-Bnzcxfss.js → render-D9G_a_c2.js} +1 -1
- package/dist-loader/chunks/{svg-Bz-bXZn7.js → svg-BRgqS9vA.js} +8 -1
- package/dist-loader/chunks/{sync-listbox-separators-Ch5krDUs.js → sync-listbox-separators-saLEtPpJ.js} +1 -1
- package/dist-loader/chunks/{tiptap-CgXkiK8d.js → tiptap-uppXgD5k.js} +16099 -9213
- package/dist-loader/chunks/tiptap.styles-CyqI_Wrl.js +896 -0
- package/dist-loader/components/alert/alert.js +662 -0
- package/dist-loader/components/autocomplete/autocomplete.js +15 -15
- 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 +9 -7
- 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 +25 -23
- package/dist-loader/components/field/field.js +1 -1
- package/dist-loader/components/icon/icon.js +3 -3
- package/dist-loader/components/image-browser/image-browser.js +15 -16
- 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 +9 -9
- 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 +3 -3
- 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 +9 -7
- 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 +5 -4
- package/dist-loader/components/tiptap/tiptap-editor.js +595 -21
- package/dist-loader/components/tiptap/tiptap-input.js +273 -5
- package/dist-loader/components/toggle/toggle.js +3 -3
- package/dist-loader/components/toggle-group/toggle-group.js +6 -4
- package/dist-loader/components/tooltip/tooltip.js +1 -1
- package/dist-loader/plugin-kit.css +2 -0
- package/dist-loader/plugin-kit.loader.js +6 -1
- package/dist-loader/styles/connect/pk-connect.css +6 -107
- package/dist-loader/utilities/fouce.css +2 -0
- package/package.json +49 -9
- package/dist/chunks/component-registry-D34fm8xW.js.map +0 -1
- package/dist/chunks/pk-autocomplete-qy2Psvqm.js.map +0 -1
- package/dist/chunks/pk-button-BrH4u4Qr.js.map +0 -1
- package/dist/chunks/pk-button-group-BSz5T5iS.js.map +0 -1
- package/dist/chunks/pk-button-group-separator-DH3Rl24b.js.map +0 -1
- package/dist/chunks/pk-button-group-text-Qro_KmZb.js.map +0 -1
- package/dist/chunks/pk-calendar-Z7Y0PjeY.js.map +0 -1
- package/dist/chunks/pk-checkbox-13ArHSmt.js.map +0 -1
- package/dist/chunks/pk-checkbox-select-Ckvfbu83.js.map +0 -1
- package/dist/chunks/pk-code-editor-BlG6O5qB.js.map +0 -1
- package/dist/chunks/pk-color-input-BRgQ5-vB.js.map +0 -1
- package/dist/chunks/pk-combobox-ag89QEX2.js.map +0 -1
- package/dist/chunks/pk-copy-button-BVaOLtYG.js.map +0 -1
- package/dist/chunks/pk-date-picker-C2YvDPNm.js.map +0 -1
- package/dist/chunks/pk-dialog-VMQqLW1f.js.map +0 -1
- package/dist/chunks/pk-dropdown-item-D9OaG5o-.js.map +0 -1
- package/dist/chunks/pk-dropdown-label-CRNWMWQd.js.map +0 -1
- package/dist/chunks/pk-dropdown-menu-DW1wI8xQ.js.map +0 -1
- package/dist/chunks/pk-editable-table-DDnu1I8Y.js.map +0 -1
- package/dist/chunks/pk-field-UAlMq6mQ.js.map +0 -1
- package/dist/chunks/pk-form-associated-element-GxX5lbnk.js.map +0 -1
- package/dist/chunks/pk-image-browser-Bj8LhWfk.js.map +0 -1
- package/dist/chunks/pk-input-BywmK5n2.js.map +0 -1
- package/dist/chunks/pk-input-group-BLqKPnfc.js.map +0 -1
- package/dist/chunks/pk-input-group-addon-ClBkGmAw.js.map +0 -1
- package/dist/chunks/pk-input-group-button-CHQHsWd4.js.map +0 -1
- package/dist/chunks/pk-input-group-input-oNnqMBGU.js.map +0 -1
- package/dist/chunks/pk-input-group-text-HUxlXROB.js.map +0 -1
- package/dist/chunks/pk-input-group-textarea-Cl2FNuw-.js.map +0 -1
- package/dist/chunks/pk-lightswitch-VHfJizBW.js.map +0 -1
- package/dist/chunks/pk-option-DQZHV9jL.js.map +0 -1
- package/dist/chunks/pk-option-group-CCzJkBFp.js.map +0 -1
- package/dist/chunks/pk-popover-D3jkHfwB.js.map +0 -1
- package/dist/chunks/pk-popup-B65tZMQH.js.map +0 -1
- package/dist/chunks/pk-radio-B5XkMHy3.js.map +0 -1
- package/dist/chunks/pk-radio-group-Dzd-3HaQ.js.map +0 -1
- package/dist/chunks/pk-scroll-area-CdfNxYz8.js.map +0 -1
- package/dist/chunks/pk-select-b5S5WKc-.js.map +0 -1
- package/dist/chunks/pk-separator-N-VyjYE6.js.map +0 -1
- package/dist/chunks/pk-spinner-DweuYJ_Z.js.map +0 -1
- package/dist/chunks/pk-status-BehQARDv.js.map +0 -1
- package/dist/chunks/pk-tab-CTloD18e.js.map +0 -1
- package/dist/chunks/pk-tab-heading-Cjcgebxn.js.map +0 -1
- package/dist/chunks/pk-tab-panel-CkKU5-Ah.js.map +0 -1
- package/dist/chunks/pk-tabs-BgEBki1q.js.map +0 -1
- package/dist/chunks/pk-textarea-Dhj1WFLH.js.map +0 -1
- package/dist/chunks/pk-time-picker-ChRbKHNB.js.map +0 -1
- package/dist/chunks/pk-tiptap-content-CL8smjGi.js.map +0 -1
- package/dist/chunks/pk-tiptap-editor-BMwedkPt.js.map +0 -1
- package/dist/chunks/pk-tiptap-input-YKg4VLp_.js.map +0 -1
- package/dist/chunks/pk-toggle-BthhH7vl.js.map +0 -1
- package/dist/chunks/pk-toggle-group-D2Quux8D.js.map +0 -1
- package/dist/chunks/pk-tooltip--QBV6puX.js.map +0 -1
- package/dist/chunks/register-BqkU5JNH.js +0 -148
- package/dist/chunks/register-BqkU5JNH.js.map +0 -1
- package/dist-loader/chunks/rolldown-runtime-CzwdidQP.js +0 -13
- package/dist-loader/chunks/supports-popover-COjbi2RP.js +0 -5
- package/dist-loader/chunks/tiptap.styles-C0E1NpSx.js +0 -1848
- /package/dist-loader/chunks/{animate-with-class-DT0jwaR_.js → animate-with-class-CjTZI0NU.js} +0 -0
- /package/dist-loader/chunks/{field-labels-D3lKQ2nq.js → field-labels-pY-gQDwQ.js} +0 -0
- /package/dist-loader/chunks/{has-slot-BGJeJdHr.js → has-slot-DJv86HKx.js} +0 -0
- /package/dist-loader/chunks/{mirror-validator-C5XrXPaq.js → mirror-validator-BkZlEv1Z.js} +0 -0
- /package/dist-loader/chunks/{overlay-lifecycle-C3tSQ3UR.js → overlay-lifecycle-C582MGBJ.js} +0 -0
- /package/dist-loader/chunks/{pk-clear-BMZUzwDt.js → pk-clear-DHxP_2cm.js} +0 -0
- /package/dist-loader/chunks/{popup-placement-animation-WlEXnS85.js → popup-placement-animation-ClUYI79z.js} +0 -0
- /package/dist-loader/chunks/{popup-pointer-Ck28WdVP.js → popup-pointer-Bh_d205v.js} +0 -0
- /package/dist-loader/chunks/{registry-BanyScVR.js → registry-CJc164pT.js} +0 -0
- /package/dist-loader/chunks/{required-validator-0XwZtX9k.js → required-validator-I58oJGZ3.js} +0 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { i as
|
|
1
|
+
import { i as customElement, n as PkElement, t as __decorate } from "./decorate-Br_PE9pq.js";
|
|
2
|
+
import { t as property } from "./decorators-BkErmuYK.js";
|
|
2
3
|
import { css, html, nothing } from "lit";
|
|
3
4
|
//#region src/components/status/pk-status.styles.ts
|
|
4
5
|
var pkStatusStyles = css`
|
|
@@ -88,4 +89,4 @@ PkStatus = __decorate([customElement("pk-status")], PkStatus);
|
|
|
88
89
|
//#endregion
|
|
89
90
|
export { PkStatus as t };
|
|
90
91
|
|
|
91
|
-
//# sourceMappingURL=pk-status-
|
|
92
|
+
//# sourceMappingURL=pk-status-CdiRBRyh.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pk-status-CdiRBRyh.js","names":["_decorate"],"sources":["../../src/components/status/pk-status.styles.ts","../../src/components/status/pk-status.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const pkStatusStyles = css`\n @layer pk-component {\n :host {\n display: inline-block;\n flex-shrink: 0;\n width: 0.75rem;\n height: 0.75rem;\n border-radius: 9999px;\n vertical-align: middle;\n }\n\n .status {\n display: block;\n width: 100%;\n height: 100%;\n border-radius: inherit;\n }\n\n :host([status='all']) .status { background: linear-gradient(60deg, #184cef, #e5422b); }\n :host([status='on']) .status,\n :host([status='live']) .status,\n :host([status='active']) .status,\n :host([status='enabled']) .status,\n :host([status='teal']) .status,\n :host([status='turquoise']) .status { background: var(--pk-color-teal-550); }\n :host([status='off']) .status,\n :host([status='suspended']) .status,\n :host([status='expired']) .status,\n :host([status='red']) .status { background: var(--pk-color-red-600); }\n :host([status='warning']) .status { background: var(--pk-color-amber-100); }\n :host([status='pending']) .status,\n :host([status='orange']) .status { background: var(--pk-color-orange-400); }\n :host([status='amber']) .status { background: var(--pk-color-amber-500); }\n :host([status='yellow']) .status { background: var(--pk-color-yellow-500); }\n :host([status='lime']) .status { background: var(--pk-color-lime-500); }\n :host([status='green']) .status { background: var(--pk-color-green-600); }\n :host([status='emerald']) .status { background: var(--pk-color-emerald-500); }\n :host([status='cyan']) .status { background: var(--pk-color-cyan-500); }\n :host([status='sky']) .status { background: var(--pk-color-sky-500); }\n :host([status='blue']) .status { background: var(--pk-color-blue-600); }\n :host([status='indigo']) .status { background: var(--pk-color-indigo-500); }\n :host([status='violet']) .status { background: var(--pk-color-violet-500); }\n :host([status='purple']) .status { background: var(--pk-color-purple-500); }\n :host([status='fuchsia']) .status { background: var(--pk-color-fuchsia-500); }\n :host([status='pink']) .status { background: var(--pk-color-pink-500); }\n :host([status='rose']) .status { background: var(--pk-color-rose-500); }\n :host([status='light']) .status { background: var(--pk-color-gray-100); }\n :host([status='gray']) .status,\n :host([status='grey']) .status { background: var(--pk-color-gray-300); }\n :host([status='white']) .status { background: var(--pk-color-white); }\n :host([status='black']) .status { background: var(--pk-color-gray-800); }\n :host([status='disabled']) .status,\n :host([status='inactive']) .status {\n /* Ring color is overridable for inverted / selected surfaces. */\n background: transparent;\n box-shadow: inset 0 0 0 2px var(--pk-status-ring, var(--pk-color-gray-500));\n }\n }\n`;\n","import { html, nothing } from 'lit';\nimport { customElement, property } from '../../decorators.js';\n\nimport { PkElement } from '../../base/pk-element.js';\nimport { pkStatusStyles } from './pk-status.styles.js';\n\nexport type PkStatusVariant =\n | 'all' | 'on' | 'live' | 'active' | 'enabled' | 'off' | 'suspended' | 'expired'\n | 'warning' | 'pending' | 'red' | 'orange' | 'amber' | 'yellow' | 'lime' | 'green'\n | 'emerald' | 'teal' | 'turquoise' | 'cyan' | 'sky' | 'blue' | 'indigo' | 'violet'\n | 'purple' | 'fuchsia' | 'pink' | 'rose' | 'light' | 'gray' | 'grey' | 'white'\n | 'black' | 'disabled' | 'inactive';\n\n/**\n * Compact semantic status indicator dot.\n *\n * @csspart base - Status dot element\n */\n@customElement('pk-status')\nexport class PkStatus extends PkElement {\n static override styles = pkStatusStyles;\n\n @property({ reflect: true })\n status: PkStatusVariant = 'on';\n\n @property({ attribute: 'aria-label' })\n ariaLabel: string | null = null;\n\n override render() {\n return html`\n <span\n part=\"base\"\n class=\"status\"\n role=\"status\"\n aria-label=${this.ariaLabel ?? nothing}\n ></span>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pk-status': PkStatus;\n }\n}\n"],"mappings":";;;;AAEA,IAAa,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACiB1B,IAAM,WAAN,MAAM,iBAAiB,UAAU;;;EAIV,KAAA,SAAA;EAGC,KAAA,YAAA;;;EANF,KAAA,SAAA;;CAQzB,SAAkB;EACd,OAAO,IAAI;;;;;6BAKU,KAAK,aAAa,QAAQ;;;CAGnD;AACJ;AAhBKA,WAAA,CAAA,SAAS,EAAE,SAAS,KAAK,CAAC,CAAA,GAAA,SAAA,WAAA,UAAA,KAAA,CAAA;AAG1BA,WAAA,CAAA,SAAS,EAAE,WAAW,aAAa,CAAC,CAAA,GAAA,SAAA,WAAA,aAAA,KAAA,CAAA;AAPxC,WAAAA,WAAA,CAAA,cAAc,WAAW,CAAA,GAAA,QAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { i as customElement, n as PkElement, t as __decorate } from "./decorate-Br_PE9pq.js";
|
|
2
2
|
import { css, html, nothing } from "lit";
|
|
3
3
|
import { property } from "lit/decorators.js";
|
|
4
4
|
//#region src/components/tabs/pk-tab-base.ts
|
|
@@ -262,4 +262,4 @@ PkTab = __decorate([customElement("pk-tab")], PkTab);
|
|
|
262
262
|
//#endregion
|
|
263
263
|
export { PkTab as t };
|
|
264
264
|
|
|
265
|
-
//# sourceMappingURL=pk-tab-
|
|
265
|
+
//# sourceMappingURL=pk-tab-CSbI3XxX.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pk-tab-CSbI3XxX.js","names":["_decorate","_decorate"],"sources":["../../src/components/tabs/pk-tab-base.ts","../../src/components/tabs/pk-tab.styles.ts","../../src/components/tabs/pk-tab.ts"],"sourcesContent":["import { html, nothing } from 'lit';\nimport { property } from 'lit/decorators.js';\n\nimport { PkElement } from '../../base/pk-element.js';\n\n/** Shared tab trigger behaviour for all tab variants. */\nexport class PkTabBase extends PkElement {\n @property()\n value = '';\n\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n @property({ type: Boolean, reflect: true })\n selected = false;\n\n @property({ type: Number, attribute: 'focus-index' })\n focusIndex = -1;\n\n @property()\n panelId?: string;\n\n focusControl(): void {\n this.shadowRoot?.querySelector<HTMLButtonElement>('.trigger')?.focus();\n }\n\n protected handleClick(): void {\n if (this.disabled) {\n return;\n }\n\n this.dispatchEvent(new CustomEvent('pk-tab-select', {\n detail: { value: this.value },\n bubbles: true,\n composed: true,\n }));\n }\n\n protected handleKeyDown(event: KeyboardEvent): void {\n this.dispatchEvent(new CustomEvent('pk-tab-keydown', {\n detail: { event, value: this.value },\n bubbles: true,\n composed: true,\n }));\n }\n\n protected renderTrigger(className: string) {\n return html`\n <button\n part=\"trigger\"\n type=\"button\"\n class=${className}\n role=\"tab\"\n ?disabled=${this.disabled}\n aria-disabled=${this.disabled ? 'true' : nothing}\n aria-selected=${this.selected ? 'true' : 'false'}\n tabindex=${this.focusIndex}\n aria-controls=${this.panelId ?? nothing}\n @click=${this.handleClick}\n @keydown=${this.handleKeyDown}\n >\n <span part=\"icon\" class=\"icon\">\n <slot name=\"icon\"></slot>\n </span>\n <span part=\"label\" class=\"label\">\n <slot></slot>\n </span>\n <span part=\"status\" class=\"status\">\n <slot name=\"status\"></slot>\n </span>\n </button>\n `;\n }\n}\n","import { css } from 'lit';\n\nexport const pkTabStyles = css`\n @layer pk-component {\n :host {\n /* Size to the shadow trigger. Prefer flex-start so a short list line\n * (or host utilities like Tailwind items-center) cannot stretch the\n * host shorter than the trigger and clip the modal active underline. */\n display: inline-flex;\n flex-shrink: 0;\n align-self: flex-start;\n height: auto;\n min-height: auto;\n align-items: stretch;\n /* Pin type metrics for slotted labels — vars cascade from pk-tabs. */\n font-family: var(--pk-font-family);\n font-size: var(--pk-tabs-trigger-font-size, 13px);\n font-weight: var(--pk-tabs-trigger-font-weight, 400);\n line-height: var(--pk-tabs-trigger-line-height, 1.4);\n color: var(--pk-tabs-trigger-color, inherit);\n }\n\n .trigger {\n position: relative;\n display: var(--pk-tabs-trigger-display, inline-flex);\n align-items: center;\n justify-content: var(--pk-tabs-trigger-justify, center);\n gap: var(--pk-tabs-trigger-gap, 0.5rem);\n width: var(--pk-tabs-trigger-width, auto);\n min-height: var(--pk-tabs-trigger-min-height, 2rem);\n padding: var(--pk-tabs-trigger-padding-block, 0.375rem)\n var(--pk-tabs-trigger-padding-inline, 0.75rem);\n border: 0;\n border-top: var(--pk-tabs-trigger-border-top, 0 solid transparent);\n border-radius: var(--pk-tabs-trigger-radius, var(--pk-radius-sm));\n background: transparent;\n color: inherit;\n font: inherit;\n font-family: var(--pk-font-family);\n font-size: var(--pk-tabs-trigger-font-size, 13px);\n font-weight: var(--pk-tabs-trigger-font-weight, 400);\n line-height: var(--pk-tabs-trigger-line-height, 1.4);\n text-align: var(--pk-tabs-trigger-text-align, center);\n text-transform: var(--pk-tabs-trigger-text-transform, none);\n white-space: nowrap;\n cursor: pointer;\n outline: none;\n box-shadow: none;\n box-sizing: border-box;\n transition: background-color 0.12s ease, color 0.12s ease, box-shadow 0.12s ease, border-color 0.12s ease;\n }\n\n /* Collapse optional icon/status lanes when nothing is slotted. */\n .icon,\n .status {\n display: none;\n flex: none;\n align-items: center;\n justify-content: center;\n line-height: 0;\n }\n\n .icon:has(::slotted(*)),\n .status:has(::slotted(*)) {\n display: inline-flex;\n }\n\n .icon {\n width: var(--pk-tabs-trigger-icon-size, 1.125rem);\n height: var(--pk-tabs-trigger-icon-size, 1.125rem);\n font-size: var(--pk-tabs-trigger-icon-size, 1.125rem);\n color: var(--pk-tabs-trigger-icon-color, inherit);\n }\n\n .icon ::slotted(*) {\n display: block;\n max-width: 100%;\n max-height: 100%;\n /* Kill pk-icon text-baseline nudge so logos/icons sit on the flex midline. */\n vertical-align: 0;\n }\n\n .label {\n display: inline-flex;\n flex: var(--pk-tabs-trigger-label-flex, 0 1 auto);\n align-items: center;\n min-width: 0;\n line-height: inherit;\n }\n\n .status {\n margin-inline-start: var(--pk-tabs-trigger-status-margin, 0);\n color: var(--pk-tabs-trigger-status-color, inherit);\n }\n\n .trigger:hover:not(:disabled):not([aria-disabled='true']):not([aria-selected='true']) {\n border-top-color: transparent;\n background: var(--pk-tabs-trigger-hover-bg, rgb(255 255 255 / 0.7));\n color: var(--pk-tabs-trigger-hover-color, var(--pk-color-gray-700));\n }\n\n /*\n * Focus ring is only for :focus-visible on a non-selected tab (manual\n * activation). Selected + focus-visible must NOT draw a ring — active\n * chrome is the underline (mouse) or is replaced by the modal focus box\n * via --pk-tabs-trigger-focus-selected-shadow when set.\n */\n .trigger:focus-visible:not([aria-selected='true']) {\n box-shadow: inset 0 0 0 2px var(--pk-color-sky-600);\n }\n\n .trigger:disabled,\n .trigger[aria-disabled='true'] {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n .trigger[aria-selected='true'],\n :host([selected]) .trigger {\n border-top: var(--pk-tabs-trigger-selected-border-top, var(--pk-tabs-trigger-border-top, 0 solid transparent));\n border-radius: var(--pk-tabs-trigger-selected-radius, var(--pk-radius-sm));\n background: var(--pk-tabs-trigger-selected-bg, var(--pk-color-white));\n color: var(--pk-tabs-trigger-selected-color, var(--pk-color-gray-800));\n box-shadow: var(--pk-tabs-trigger-selected-shadow, 0 1px 2px rgba(31, 41, 51, 0.12));\n }\n\n .trigger[aria-selected='true']:hover,\n :host([selected]) .trigger:hover {\n background: var(--pk-tabs-trigger-selected-hover-bg, var(--pk-tabs-trigger-selected-bg, var(--pk-color-white)));\n color: var(--pk-tabs-trigger-selected-hover-color, var(--pk-tabs-trigger-selected-color, var(--pk-color-gray-800)));\n }\n\n /* screen3: keyboard focus on the active tab → full inset box, no underline. */\n .trigger[aria-selected='true']:focus-visible,\n :host([selected]) .trigger:focus-visible {\n box-shadow: var(\n --pk-tabs-trigger-focus-selected-shadow,\n var(--pk-tabs-trigger-selected-shadow, 0 0 #0000)\n );\n }\n\n .trigger[aria-selected='true']:focus-visible::after,\n :host([selected]) .trigger:focus-visible::after {\n height: var(--pk-tabs-trigger-focus-selected-underline-height, var(--pk-tabs-trigger-underline-height, 0));\n }\n\n .trigger[aria-selected='true']::after,\n :host([selected]) .trigger::after {\n content: '';\n position: absolute;\n right: var(--pk-tabs-trigger-underline-inset, 15px);\n bottom: 0;\n left: var(--pk-tabs-trigger-underline-inset, 15px);\n height: var(--pk-tabs-trigger-underline-height, 0);\n /* Keep the bar above the list hairline when both meet at the clip edge. */\n z-index: 1;\n background: var(--pk-color-sky-600);\n pointer-events: none;\n }\n\n /*\n * Validation error chrome (v1 ModalTabs / PaneTabs text-error).\n * Host sets data-has-errors; light-DOM text-* cannot pierce the trigger.\n */\n :host([data-has-errors]) {\n --pk-tabs-trigger-color: var(--pk-color-error, #d81f23);\n --pk-tabs-trigger-hover-color: var(--pk-color-rose-700, #be123c);\n --pk-tabs-trigger-selected-color: var(--pk-color-error, #d81f23);\n --pk-tabs-trigger-selected-hover-color: var(--pk-color-rose-700, #be123c);\n --pk-tabs-trigger-icon-color: inherit;\n --pk-tabs-trigger-status-color: inherit;\n }\n }\n`;\n","import { customElement } from '../../decorators.js';\n\nimport { PkTabBase } from './pk-tab-base.js';\nimport { pkTabStyles } from './pk-tab.styles.js';\n\n/**\n * Tab trigger — use inside `pk-tabs` with `slot=\"nav\"`.\n *\n * @slot - Tab label\n * @slot icon - Optional leading content (icon, logo, etc.)\n * @slot status - Optional trailing content (status dot, badge, etc.)\n *\n * @csspart trigger - Tab button\n * @csspart icon - Icon slot wrapper (hidden when empty)\n * @csspart label - Label slot wrapper\n * @csspart status - Status slot wrapper (hidden when empty)\n */\n@customElement('pk-tab')\nexport class PkTab extends PkTabBase {\n static override styles = pkTabStyles;\n\n override render() {\n return this.renderTrigger('trigger pk-tabs__trigger');\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pk-tab': PkTab;\n }\n}\n"],"mappings":";;;;;AAMA,IAAa,YAAb,cAA+B,UAAU;;;EAE7B,KAAA,QAAA;EAGG,KAAA,WAAA;EAGA,KAAA,WAAA;EAGE,KAAA,aAAA;;CAKb,eAAqB;EACjB,KAAK,YAAY,cAAiC,UAAU,CAAC,EAAE,MAAM;CACzE;CAEA,cAA8B;EAC1B,IAAI,KAAK,UACL;EAGJ,KAAK,cAAc,IAAI,YAAY,iBAAiB;GAChD,QAAQ,EAAE,OAAO,KAAK,MAAM;GAC5B,SAAS;GACT,UAAU;EACd,CAAC,CAAC;CACN;CAEA,cAAwB,OAA4B;EAChD,KAAK,cAAc,IAAI,YAAY,kBAAkB;GACjD,QAAQ;IAAE;IAAO,OAAO,KAAK;GAAM;GACnC,SAAS;GACT,UAAU;EACd,CAAC,CAAC;CACN;CAEA,cAAwB,WAAmB;EACvC,OAAO,IAAI;;;;wBAIK,UAAU;;4BAEN,KAAK,SAAS;gCACV,KAAK,WAAW,SAAS,QAAQ;gCACjC,KAAK,WAAW,SAAS,QAAQ;2BACtC,KAAK,WAAW;gCACX,KAAK,WAAW,QAAQ;yBAC/B,KAAK,YAAY;2BACf,KAAK,cAAc;;;;;;;;;;;;;CAa1C;AACJ;AAlEKA,WAAA,CAAA,SAAS,CAAA,GAAA,UAAA,WAAA,SAAA,KAAA,CAAA;AAGTA,WAAA,CAAA,SAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,UAAA,WAAA,YAAA,KAAA,CAAA;AAGzCA,WAAA,CAAA,SAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,UAAA,WAAA,YAAA,KAAA,CAAA;AAGzCA,WAAA,CAAA,SAAS;CAAE,MAAM;CAAQ,WAAW;AAAc,CAAC,CAAA,GAAA,UAAA,WAAA,cAAA,KAAA,CAAA;AAGnDA,WAAA,CAAA,SAAS,CAAA,GAAA,UAAA,WAAA,WAAA,KAAA,CAAA;;;ACjBd,IAAa,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACgBvB,IAAM,QAAN,MAAM,cAAc,UAAU;;EACR,KAAA,SAAA;;CAEzB,SAAkB;EACd,OAAO,KAAK,cAAc,0BAA0B;CACxD;AACJ;AAPC,QAAAC,WAAA,CAAA,cAAc,QAAQ,CAAA,GAAA,KAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { i as customElement, n as PkElement, t as __decorate } from "./decorate-Br_PE9pq.js";
|
|
2
2
|
import { css, html } from "lit";
|
|
3
3
|
//#region src/components/tabs/pk-tab-heading.styles.ts
|
|
4
4
|
var pkTabHeadingStyles = css`
|
|
@@ -46,4 +46,4 @@ PkTabHeading = __decorate([customElement("pk-tab-heading")], PkTabHeading);
|
|
|
46
46
|
//#endregion
|
|
47
47
|
export { PkTabHeading as t };
|
|
48
48
|
|
|
49
|
-
//# sourceMappingURL=pk-tab-heading-
|
|
49
|
+
//# sourceMappingURL=pk-tab-heading-BMyLTBNc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pk-tab-heading-BMyLTBNc.js","names":["_decorate"],"sources":["../../src/components/tabs/pk-tab-heading.styles.ts","../../src/components/tabs/pk-tab-heading.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const pkTabHeadingStyles = css`\n @layer pk-component {\n :host {\n display: block;\n flex-shrink: 0;\n width: 100%;\n }\n\n .heading {\n margin: 0;\n padding: var(--pk-tabs-heading-padding, 0.75rem 0.5rem 0.375rem);\n color: var(--pk-tabs-heading-color, var(--pk-color-gray-400));\n font-family: var(--pk-font-family);\n font-size: var(--pk-tabs-heading-font-size, 11px);\n font-weight: var(--pk-tabs-heading-font-weight, 600);\n line-height: 1.3;\n letter-spacing: var(--pk-tabs-heading-letter-spacing, 0.04em);\n text-transform: var(--pk-tabs-heading-text-transform, uppercase);\n user-select: none;\n pointer-events: none;\n }\n }\n`;\n","import { html } from 'lit';\nimport { customElement } from '../../decorators.js';\n\nimport { PkElement } from '../../base/pk-element.js';\nimport { pkTabHeadingStyles } from './pk-tab-heading.styles.js';\n\n/**\n * Non-interactive group heading inside `pk-tabs` `slot=\"nav\"`.\n * Use between `pk-tab` triggers (especially with `variant=\"sidebar\"`).\n *\n * @slot - Heading text\n *\n * @csspart heading - Heading container\n */\n@customElement('pk-tab-heading')\nexport class PkTabHeading extends PkElement {\n static override styles = pkTabHeadingStyles;\n\n override connectedCallback(): void {\n super.connectedCallback();\n // Keep out of the tablist accessibility tree — only pk-tab triggers are tabs.\n this.setAttribute('role', 'presentation');\n }\n\n override render() {\n return html`\n <div part=\"heading\" class=\"heading\">\n <slot></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pk-tab-heading': PkTabHeading;\n }\n}\n"],"mappings":";;;AAEA,IAAa,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;ACa9B,IAAM,eAAN,MAAM,qBAAqB,UAAU;;EACf,KAAA,SAAA;;CAEzB,oBAAmC;EAC/B,MAAM,kBAAkB;EAExB,KAAK,aAAa,QAAQ,cAAc;CAC5C;CAEA,SAAkB;EACd,OAAO,IAAI;;;;;CAKf;AACJ;AAjBC,eAAAA,WAAA,CAAA,cAAc,gBAAgB,CAAA,GAAA,YAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { i as customElement, n as PkElement, t as __decorate } from "./decorate-Br_PE9pq.js";
|
|
2
2
|
import { css, html, nothing } from "lit";
|
|
3
3
|
import { property } from "lit/decorators.js";
|
|
4
4
|
//#region src/components/tabs/pk-tab-panel-base.ts
|
|
@@ -83,4 +83,4 @@ PkTabPanel = __decorate([customElement("pk-tab-panel")], PkTabPanel);
|
|
|
83
83
|
//#endregion
|
|
84
84
|
export { PkTabPanel as t };
|
|
85
85
|
|
|
86
|
-
//# sourceMappingURL=pk-tab-panel-
|
|
86
|
+
//# sourceMappingURL=pk-tab-panel-sgdRjV8o.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pk-tab-panel-sgdRjV8o.js","names":["_decorate","_decorate"],"sources":["../../src/components/tabs/pk-tab-panel-base.ts","../../src/components/tabs/pk-tab-panel.styles.ts","../../src/components/tabs/pk-tab-panel.ts"],"sourcesContent":["import { html, nothing } from 'lit';\nimport { property } from 'lit/decorators.js';\n\nimport { PkElement } from '../../base/pk-element.js';\n\n/** Shared tab panel behaviour for all tab variants. */\nexport class PkTabPanelBase extends PkElement {\n @property()\n value = '';\n\n @property({ type: Boolean, reflect: true })\n hidden = true;\n\n @property()\n tabId?: string;\n\n protected renderPanel(className: string) {\n return html`\n <div\n part=\"content\"\n class=${className}\n role=\"tabpanel\"\n id=${this.tabId ?? nothing}\n aria-labelledby=${this.tabId ?? nothing}\n aria-hidden=${this.hidden ? 'true' : 'false'}\n tabindex=${this.hidden ? nothing : '0'}\n >\n <slot></slot>\n </div>\n `;\n }\n}\n","import { css } from 'lit';\n\nexport const pkTabPanelStyles = css`\n @layer pk-component {\n :host {\n /* Flex column so .content can own overflow when the host is height-capped\n * by a modal/pane parent (flex: 1 1 0% + min-height: 0). */\n display: flex;\n flex-direction: column;\n flex: var(--pk-tabs-panel-flex, none);\n min-height: var(--pk-tabs-panel-min-height, 0);\n min-width: 0;\n overflow: hidden;\n }\n\n :host([hidden]) {\n display: none !important;\n }\n\n .content {\n flex: 1 1 auto;\n min-height: 0;\n padding: var(--pk-tabs-panel-padding, 0);\n overflow-y: auto;\n border-radius: var(--pk-tabs-panel-radius, 0);\n background: var(--pk-tabs-panel-bg, transparent);\n outline: none;\n font-family: var(--pk-font-family);\n font-size: var(--pk-tabs-panel-font-size, var(--pk-font-size-base));\n line-height: var(--pk-line-height);\n }\n\n .content:focus-visible {\n box-shadow: inset 0 0 0 2px var(--pk-color-sky-600);\n border-radius: var(--pk-radius-sm);\n }\n }\n`;\n","import { customElement } from '../../decorators.js';\n\nimport { PkTabPanelBase } from './pk-tab-panel-base.js';\nimport { pkTabPanelStyles } from './pk-tab-panel.styles.js';\n\n/**\n * Tab panel — use inside `pk-tabs` default slot.\n *\n * @slot - Panel content\n *\n * @csspart content - Panel container\n */\n@customElement('pk-tab-panel')\nexport class PkTabPanel extends PkTabPanelBase {\n static override styles = pkTabPanelStyles;\n\n override render() {\n return this.renderPanel('content pk-tabs__content');\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pk-tab-panel': PkTabPanel;\n }\n}\n"],"mappings":";;;;;AAMA,IAAa,iBAAb,cAAoC,UAAU;;;EAElC,KAAA,QAAA;EAGC,KAAA,SAAA;;CAKT,YAAsB,WAAmB;EACrC,OAAO,IAAI;;;wBAGK,UAAU;;qBAEb,KAAK,SAAS,QAAQ;kCACT,KAAK,SAAS,QAAQ;8BAC1B,KAAK,SAAS,SAAS,QAAQ;2BAClC,KAAK,SAAS,UAAU,IAAI;;;;;CAKnD;AACJ;AAxBKA,WAAA,CAAA,SAAS,CAAA,GAAA,eAAA,WAAA,SAAA,KAAA,CAAA;AAGTA,WAAA,CAAA,SAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,eAAA,WAAA,UAAA,KAAA,CAAA;AAGzCA,WAAA,CAAA,SAAS,CAAA,GAAA,eAAA,WAAA,SAAA,KAAA,CAAA;;;ACXd,IAAa,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACW5B,IAAM,aAAN,MAAM,mBAAmB,eAAe;;EAClB,KAAA,SAAA;;CAEzB,SAAkB;EACd,OAAO,KAAK,YAAY,0BAA0B;CACtD;AACJ;AAPC,aAAAC,WAAA,CAAA,cAAc,cAAc,CAAA,GAAA,UAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { i as
|
|
2
|
-
import {
|
|
1
|
+
import { i as customElement, n as PkElement, t as __decorate } from "./decorate-Br_PE9pq.js";
|
|
2
|
+
import { r as state, t as property } from "./decorators-BkErmuYK.js";
|
|
3
|
+
import { i as uniqueId } from "./focus-DcVUPVqn.js";
|
|
3
4
|
import { css, html, nothing } from "lit";
|
|
4
5
|
//#region src/components/tabs/pk-tabs.styles.ts
|
|
5
6
|
/**
|
|
@@ -479,9 +480,10 @@ var PkTabs = class PkTabs extends PkElement {
|
|
|
479
480
|
}
|
|
480
481
|
const next = enabled[nextIndex];
|
|
481
482
|
if (!next) return;
|
|
482
|
-
if (this.activation === "auto")
|
|
483
|
-
|
|
484
|
-
|
|
483
|
+
if (this.activation === "auto") {
|
|
484
|
+
if (next.value !== this.value) this.selectTab(next.value);
|
|
485
|
+
else next.focusControl();
|
|
486
|
+
} else {
|
|
485
487
|
this.focusedValue = next.value;
|
|
486
488
|
this.applySelection();
|
|
487
489
|
next.focusControl();
|
|
@@ -584,8 +586,9 @@ var PkTabs = class PkTabs extends PkElement {
|
|
|
584
586
|
}
|
|
585
587
|
render() {
|
|
586
588
|
const orientation = this.getEffectiveOrientation();
|
|
589
|
+
const placement = this.getEffectivePlacement();
|
|
587
590
|
return html`
|
|
588
|
-
<div part="base" class="tabs pk-tabs" data-placement=${
|
|
591
|
+
<div part="base" class="tabs pk-tabs" data-placement=${placement}>
|
|
589
592
|
<div
|
|
590
593
|
part="list"
|
|
591
594
|
class="list pk-tabs__list"
|
|
@@ -618,4 +621,4 @@ PkTabs = __decorate([customElement("pk-tabs")], PkTabs);
|
|
|
618
621
|
//#endregion
|
|
619
622
|
export { PkTabs as t };
|
|
620
623
|
|
|
621
|
-
//# sourceMappingURL=pk-tabs-
|
|
624
|
+
//# sourceMappingURL=pk-tabs-bBNCu_4h.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pk-tabs-bBNCu_4h.js","names":["_decorate"],"sources":["../../src/components/tabs/pk-tabs.styles.ts","../../src/components/tabs/pk-tabs.ts"],"sourcesContent":["import { css } from 'lit';\n\n/**\n * Variant tokens are defined on `pk-tabs` and inherited by slotted\n * `pk-tab` / `pk-tab-panel` shadow roots (custom properties pierce shadow DOM).\n */\nexport const pkTabsStyles = css`\n @layer pk-component {\n :host {\n display: block;\n max-width: 100%;\n font-family: var(--pk-font-family);\n font-size: var(--pk-font-size-base);\n line-height: var(--pk-line-height);\n /* Frame chrome on the host (matches v1 PaneTabs root) so consumer\n * overflow utilities on the host do not clip the pane shadow. */\n border-radius: var(--pk-tabs-root-radius);\n box-shadow: var(--pk-tabs-root-shadow);\n overflow: var(--pk-tabs-root-overflow);\n\n /* Root */\n --pk-tabs-root-gap: 0.75rem;\n --pk-tabs-root-height: auto;\n --pk-tabs-root-radius: 0;\n --pk-tabs-root-shadow: none;\n --pk-tabs-root-overflow: visible;\n\n /* List */\n --pk-tabs-list-display: inline-flex;\n --pk-tabs-list-width: fit-content;\n --pk-tabs-list-align-self: flex-start;\n --pk-tabs-list-align-items: center;\n --pk-tabs-list-padding: 2px;\n --pk-tabs-list-border-width: 1px;\n --pk-tabs-list-border-color: var(--pk-color-gray-150);\n --pk-tabs-list-border-bottom: var(--pk-tabs-list-border-width) solid var(--pk-tabs-list-border-color);\n --pk-tabs-list-radius: var(--pk-radius-md);\n --pk-tabs-list-bg: color-mix(in oklab, var(--pk-color-gray-100) 90%, transparent);\n --pk-tabs-list-shadow: 0 1px 2px rgba(31, 41, 51, 0.06);\n /* Transparent no-op — keyword none in a multi-shadow list invalidates the whole property. */\n --pk-tabs-list-inset-shadow: 0 0 #0000;\n --pk-tabs-list-color: var(--pk-color-gray-500);\n --pk-tabs-list-overflow-x: auto;\n --pk-tabs-list-overflow-y: visible;\n\n /* Trigger (inherited by pk-tab) */\n --pk-tabs-trigger-display: inline-flex;\n --pk-tabs-trigger-justify: center;\n --pk-tabs-trigger-width: auto;\n --pk-tabs-trigger-gap: 0.5rem;\n --pk-tabs-trigger-min-height: 2rem;\n --pk-tabs-trigger-padding-block: 0.375rem;\n --pk-tabs-trigger-padding-inline: 0.75rem;\n --pk-tabs-trigger-radius: var(--pk-radius-sm);\n --pk-tabs-trigger-color: inherit;\n --pk-tabs-trigger-font-size: 13px;\n --pk-tabs-trigger-font-weight: 400;\n --pk-tabs-trigger-text-align: center;\n --pk-tabs-trigger-text-transform: none;\n --pk-tabs-trigger-border-top: 0 solid transparent;\n --pk-tabs-trigger-hover-bg: rgb(255 255 255 / 0.7);\n --pk-tabs-trigger-hover-color: var(--pk-color-gray-700);\n --pk-tabs-trigger-selected-hover-bg: var(--pk-tabs-trigger-selected-bg, var(--pk-color-white));\n --pk-tabs-trigger-selected-hover-color: var(--pk-tabs-trigger-selected-color, var(--pk-color-gray-800));\n --pk-tabs-trigger-selected-bg: var(--pk-color-white);\n --pk-tabs-trigger-selected-color: var(--pk-color-gray-800);\n --pk-tabs-trigger-selected-shadow: 0 1px 2px rgba(31, 41, 51, 0.12);\n --pk-tabs-trigger-selected-radius: var(--pk-radius-sm);\n --pk-tabs-trigger-selected-border-top: 0 solid transparent;\n --pk-tabs-trigger-underline-height: 0;\n --pk-tabs-trigger-underline-inset: 15px;\n --pk-tabs-trigger-label-flex: 0 1 auto;\n --pk-tabs-trigger-icon-size: 1.125rem;\n --pk-tabs-trigger-icon-color: inherit;\n --pk-tabs-trigger-status-margin: 0;\n --pk-tabs-trigger-status-color: inherit;\n\n /* Group headings (pk-tab-heading) */\n --pk-tabs-heading-padding: 0.75rem 0.5rem 0.375rem;\n --pk-tabs-heading-color: var(--pk-color-gray-400);\n --pk-tabs-heading-font-size: 11px;\n --pk-tabs-heading-font-weight: 600;\n --pk-tabs-heading-letter-spacing: 0.04em;\n --pk-tabs-heading-text-transform: uppercase;\n\n /* Panel (inherited by pk-tab-panel) */\n --pk-tabs-panel-flex: none;\n --pk-tabs-panel-min-height: 0;\n --pk-tabs-panel-padding: 0;\n --pk-tabs-panel-bg: transparent;\n --pk-tabs-panel-radius: 0;\n --pk-tabs-panel-font-size: var(--pk-font-size-base);\n }\n\n :host([variant='pane']),\n :host([variant='modal']),\n :host([variant='sidebar']) {\n height: 100%;\n min-height: 0;\n --pk-tabs-root-height: 100%;\n }\n\n .tabs {\n display: flex;\n flex-direction: column;\n gap: var(--pk-tabs-root-gap);\n height: var(--pk-tabs-root-height);\n min-height: 0;\n /* Radius/shadow/overflow live on :host — keep the layout shell fill-only. */\n }\n\n .tabs[data-placement='bottom'] {\n flex-direction: column-reverse;\n }\n\n .tabs[data-placement='start'],\n .tabs[data-placement='end'] {\n flex-direction: row;\n align-items: flex-start;\n gap: 1rem;\n }\n\n .tabs[data-placement='end'] {\n flex-direction: row-reverse;\n }\n\n .tabs[data-placement='start'] .list,\n .tabs[data-placement='end'] .list {\n flex-direction: column;\n align-self: stretch;\n }\n\n .list {\n display: var(--pk-tabs-list-display);\n width: var(--pk-tabs-list-width);\n max-width: 100%;\n align-self: var(--pk-tabs-list-align-self);\n align-items: var(--pk-tabs-list-align-items);\n justify-content: flex-start;\n /* Tab strip must not shrink when panels flex-fill the column — otherwise\n * overflow-y clips trigger padding and the modal active underline. */\n flex-shrink: 0;\n position: relative;\n z-index: var(--pk-tabs-list-z-index, auto);\n isolation: isolate;\n padding: var(--pk-tabs-list-padding);\n border: var(--pk-tabs-list-border-width) solid var(--pk-tabs-list-border-color);\n border-bottom: var(--pk-tabs-list-border-bottom, var(--pk-tabs-list-border-width) solid var(--pk-tabs-list-border-color));\n border-radius: var(--pk-tabs-list-radius);\n background: var(--pk-tabs-list-bg);\n box-shadow: var(--pk-tabs-list-shadow), var(--pk-tabs-list-inset-shadow);\n color: var(--pk-tabs-list-color);\n overflow-x: var(--pk-tabs-list-overflow-x, auto);\n overflow-y: var(--pk-tabs-list-overflow-y, visible);\n }\n\n /* Pane — matches plugin-kit-react PaneTabs */\n :host([variant='pane']) {\n --pk-tabs-root-gap: 0;\n --pk-tabs-root-radius: var(--pk-radius-lg);\n --pk-tabs-root-shadow:\n 0 0 0 1px var(--pk-color-gray-200),\n 0 2px 12px rgb(205 216 228 / 50%);\n --pk-tabs-root-overflow: visible;\n\n --pk-tabs-list-display: flex;\n --pk-tabs-list-width: auto;\n --pk-tabs-list-align-self: stretch;\n --pk-tabs-list-align-items: flex-end;\n --pk-tabs-list-padding: 0;\n --pk-tabs-list-border-width: 0;\n --pk-tabs-list-radius: var(--pk-radius-lg) var(--pk-radius-lg) 0 0;\n --pk-tabs-list-bg: var(--pk-color-gray-50);\n /* Must not use keyword none — box-shadow: none, inset … is invalid and drops the hairline. */\n --pk-tabs-list-shadow: inset 0 -1px 0 0 rgb(154 165 177 / 25%);\n --pk-tabs-list-inset-shadow: 0 0 #0000;\n --pk-tabs-list-overflow-x: auto;\n --pk-tabs-list-overflow-y: visible;\n\n --pk-tabs-trigger-display: flex;\n --pk-tabs-trigger-justify: flex-start;\n --pk-tabs-trigger-min-height: 45px;\n --pk-tabs-trigger-padding-block: 0;\n --pk-tabs-trigger-padding-inline: 24px;\n --pk-tabs-trigger-radius: 0;\n --pk-tabs-trigger-border-top: 0 solid transparent;\n --pk-tabs-trigger-color: var(--pk-color-gray-550);\n --pk-tabs-trigger-font-size: var(--pk-font-size-base);\n --pk-tabs-trigger-font-weight: 400;\n --pk-tabs-trigger-hover-bg: var(--pk-color-slate-100);\n --pk-tabs-trigger-hover-color: var(--pk-color-gray-550);\n --pk-tabs-trigger-selected-bg: var(--pk-color-white);\n --pk-tabs-trigger-selected-color: var(--pk-color-gray-700);\n --pk-tabs-trigger-selected-border-top: 0 solid transparent;\n /* Match Craft .pane-tabs [role=tab].sel — inset top accent + elevation. */\n --pk-tabs-trigger-selected-shadow:\n inset 0 2px 0 var(--pk-color-gray-500),\n 0 0 0 1px rgb(51 64 77 / 10%),\n 0 2px 12px rgb(205 216 228 / 90%);\n --pk-tabs-trigger-selected-radius: 2px 2px 0 0;\n\n /* 0% basis — panel fills leftover height and scrolls; auto basis grew with\n * content and clipped under dialog overflow:hidden (Edit Buttons Appearance). */\n --pk-tabs-panel-flex: 1 1 0%;\n --pk-tabs-panel-min-height: 0;\n /*\n * No built-in panel inset — matches v1 PaneTabsContent (padding came from\n * the consumer: ReportTabPanel / FormBuilderTabContent / DefaultsPanel p-6).\n * A non-zero value here double-pads those surfaces.\n */\n --pk-tabs-panel-padding: 0;\n --pk-tabs-panel-bg: var(--pk-color-white);\n --pk-tabs-panel-radius: 0 0 var(--pk-radius-lg) var(--pk-radius-lg);\n --pk-tabs-panel-font-size: var(--pk-font-size-sm, 14px);\n }\n\n /* Craft bumps the first tab start corner to --radius-lg so the inset\n * accent follows the pane radius instead of reading as clipped at 2px.\n */\n :host([variant='pane']) ::slotted(pk-tab:first-child) {\n --pk-tabs-trigger-selected-radius: var(--pk-radius-lg) 2px 0 0;\n }\n\n /* Modal — matches plugin-kit-react ModalTabs */\n :host([variant='modal']) {\n --pk-tabs-root-gap: 0;\n --pk-tabs-root-height: 100%;\n /* Dialog already rounds the panel — host radius + overflow clips the\n * first tab’s focus ring into a one-corner “rounded border”. */\n --pk-tabs-root-radius: 0;\n /* Clip to the height chain so panels scroll inside, not through the footer. */\n --pk-tabs-root-overflow: hidden;\n\n --pk-tabs-list-display: flex;\n --pk-tabs-list-width: 100%;\n --pk-tabs-list-align-self: stretch;\n --pk-tabs-list-align-items: stretch;\n --pk-tabs-list-padding: 0;\n --pk-tabs-list-border-width: 0;\n --pk-tabs-list-border-bottom: 1px solid var(--pk-color-gray-100);\n --pk-tabs-list-radius: 0;\n --pk-tabs-list-bg: var(--pk-color-white);\n --pk-tabs-list-shadow: 0 1px 5px #cdd8e440;\n /* Transparent no-op — keyword none in a multi-shadow list invalidates the whole property. */\n --pk-tabs-list-inset-shadow: 0 0 #0000;\n --pk-tabs-list-color: inherit;\n --pk-tabs-list-overflow-x: auto;\n /* auto (not hidden): overflow-x:auto + overflow-y:hidden clips ~1 device\n * pixel of the bottom active underline, so the 2px sky bar reads as 1px. */\n --pk-tabs-list-overflow-y: auto;\n /* v1 ModalTabsList z-11 — keep the strip above scrolling panel content\n * (editable-table action columns, etc.) when body/panel scrolls. */\n --pk-tabs-list-z-index: 11;\n\n --pk-tabs-trigger-display: inline-flex;\n --pk-tabs-trigger-justify: center;\n --pk-tabs-trigger-min-height: auto;\n --pk-tabs-trigger-padding-block: 15px;\n --pk-tabs-trigger-padding-inline: 15px;\n --pk-tabs-trigger-radius: 0;\n --pk-tabs-trigger-color: #64788d;\n --pk-tabs-trigger-font-size: 12px;\n --pk-tabs-trigger-font-weight: 500;\n --pk-tabs-trigger-text-transform: uppercase;\n --pk-tabs-trigger-hover-bg: transparent;\n --pk-tabs-trigger-hover-color: var(--pk-color-sky-600);\n --pk-tabs-trigger-selected-bg: transparent;\n --pk-tabs-trigger-selected-color: #64788d;\n --pk-tabs-trigger-selected-hover-bg: transparent;\n --pk-tabs-trigger-selected-hover-color: var(--pk-color-sky-600);\n /* Active (mouse) = 15px-inset underline. Active + :focus-visible = screen3 box. */\n --pk-tabs-trigger-selected-shadow: none;\n --pk-tabs-trigger-selected-radius: 0;\n --pk-tabs-trigger-underline-height: 2px;\n --pk-tabs-trigger-underline-inset: 15px;\n --pk-tabs-trigger-focus-selected-shadow: inset 0 0 0 2px var(--pk-color-sky-600);\n --pk-tabs-trigger-focus-selected-underline-height: 0;\n\n /* 0% basis — panel fills leftover height and scrolls; auto basis grew with\n * content and clipped under dialog overflow:hidden (Edit Buttons Appearance). */\n --pk-tabs-panel-flex: 1 1 0%;\n --pk-tabs-panel-min-height: 0;\n --pk-tabs-panel-padding: 1rem;\n --pk-tabs-panel-bg: transparent;\n --pk-tabs-panel-radius: 0;\n --pk-tabs-panel-font-size: var(--pk-font-size-sm, 14px);\n }\n\n /* Sidebar — vertical nav list with optional icons, status, and headings */\n :host([variant='sidebar']) {\n --pk-tabs-root-gap: 0;\n --pk-tabs-root-radius: 0;\n --pk-tabs-root-shadow: none;\n --pk-tabs-root-overflow: visible;\n\n --pk-tabs-list-display: flex;\n --pk-tabs-list-width: var(--pk-tabs-sidebar-width, 14rem);\n --pk-tabs-list-align-self: stretch;\n --pk-tabs-list-align-items: stretch;\n --pk-tabs-list-padding: 0.5rem;\n --pk-tabs-list-border-width: 0;\n --pk-tabs-list-border-bottom: 0 solid transparent;\n --pk-tabs-list-radius: 0;\n --pk-tabs-list-bg: var(--pk-color-gray-100);\n --pk-tabs-list-shadow: 0 0 #0000;\n --pk-tabs-list-inset-shadow: 0 0 #0000;\n --pk-tabs-list-color: var(--pk-color-gray-600);\n --pk-tabs-list-overflow-x: hidden;\n --pk-tabs-list-overflow-y: auto;\n\n --pk-tabs-trigger-display: flex;\n --pk-tabs-trigger-justify: flex-start;\n --pk-tabs-trigger-width: 100%;\n /* Match Craft/Formie integrations nav: padding 7px 10px, 16px icons, content-sized height. */\n --pk-tabs-trigger-gap: 10px;\n --pk-tabs-trigger-min-height: 0;\n --pk-tabs-trigger-padding-block: 7px;\n --pk-tabs-trigger-padding-inline: 10px;\n --pk-tabs-trigger-radius: var(--pk-radius-md);\n --pk-tabs-trigger-color: var(--pk-color-gray-700);\n --pk-tabs-trigger-font-size: 13px;\n --pk-tabs-trigger-font-weight: 400;\n --pk-tabs-trigger-line-height: 1.2;\n --pk-tabs-trigger-text-align: start;\n --pk-tabs-trigger-text-transform: none;\n --pk-tabs-trigger-border-top: 0 solid transparent;\n --pk-tabs-trigger-hover-bg: color-mix(in oklab, var(--pk-color-gray-200) 70%, transparent);\n --pk-tabs-trigger-hover-color: var(--pk-color-gray-800);\n --pk-tabs-trigger-selected-bg: var(--pk-color-gray-500);\n --pk-tabs-trigger-selected-color: var(--pk-color-white);\n --pk-tabs-trigger-selected-hover-bg: var(--pk-color-gray-500);\n --pk-tabs-trigger-selected-hover-color: var(--pk-color-white);\n --pk-tabs-trigger-selected-shadow: none;\n --pk-tabs-trigger-selected-radius: var(--pk-radius-md);\n --pk-tabs-trigger-selected-border-top: 0 solid transparent;\n --pk-tabs-trigger-underline-height: 0;\n --pk-tabs-trigger-label-flex: 1 1 auto;\n --pk-tabs-trigger-icon-size: 16px;\n --pk-tabs-trigger-status-margin: auto;\n --pk-tabs-trigger-status-color: var(--pk-color-gray-400);\n\n --pk-tabs-heading-padding: 14px 10px 5px;\n --pk-tabs-heading-color: var(--pk-color-gray-400);\n --pk-tabs-heading-font-size: 11px;\n --pk-tabs-heading-font-weight: 600;\n --pk-tabs-heading-letter-spacing: 0.04em;\n --pk-tabs-heading-text-transform: uppercase;\n\n /* 0% basis — panel fills leftover height and scrolls; auto basis grew with\n * content and clipped under dialog overflow:hidden (Edit Buttons Appearance). */\n --pk-tabs-panel-flex: 1 1 0%;\n --pk-tabs-panel-min-height: 0;\n --pk-tabs-panel-padding: 1.25rem;\n --pk-tabs-panel-bg: var(--pk-color-white);\n --pk-tabs-panel-radius: 0;\n --pk-tabs-panel-font-size: var(--pk-font-size-base);\n }\n\n :host([variant='sidebar']) .tabs {\n flex-direction: row;\n align-items: stretch;\n gap: 0;\n }\n\n :host([variant='sidebar']) .tabs[data-placement='end'] {\n flex-direction: row-reverse;\n }\n\n :host([variant='sidebar']) .list {\n flex-direction: column;\n gap: 0.125rem;\n flex: none;\n }\n\n :host([variant='sidebar']) ::slotted(pk-tab) {\n display: block;\n width: 100%;\n }\n\n :host([variant='sidebar']) ::slotted(pk-tab-heading) {\n display: block;\n width: 100%;\n }\n\n /* First group heading sits closer to the list top edge */\n :host([variant='sidebar']) ::slotted(pk-tab-heading:first-child) {\n --pk-tabs-heading-padding: 10px 10px 5px;\n }\n\n /* Hollow inactive dots read better on the selected dark pill */\n :host([variant='sidebar']) ::slotted(pk-tab[selected]) {\n --pk-tabs-trigger-status-color: var(--pk-color-gray-300);\n }\n }\n`;\n","import { html, nothing } from 'lit';\nimport { customElement, property, state } from '../../decorators.js';\nimport type { PropertyValues } from 'lit';\n\nimport { uniqueId } from '../../a11y/focus.js';\nimport { PkElement } from '../../base/pk-element.js';\nimport type { PkTabBase } from './pk-tab-base.js';\nimport type { PkTabPanelBase } from './pk-tab-panel-base.js';\nimport { pkTabsStyles } from './pk-tabs.styles.js';\n\nexport type PkTabsVariant = 'default' | 'pane' | 'modal' | 'sidebar';\nexport type PkTabsOrientation = 'horizontal' | 'vertical';\nexport type PkTabsPlacement = 'top' | 'bottom' | 'start' | 'end';\nexport type PkTabsActivation = 'auto' | 'manual';\n\n/**\n * Tab group — coordinates slotted `pk-tab` (nav) and `pk-tab-panel` children.\n *\n * @slot nav - `pk-tab` triggers and optional `pk-tab-heading` group labels\n * @slot - `pk-tab-panel` content panels\n *\n * @event pk-change - Active tab changed.\n * @event pk-tab-show - A tab panel became visible.\n * @event pk-tab-hide - A tab panel became hidden.\n *\n * @csspart base - Root container\n * @csspart list - Tab list\n */\n@customElement('pk-tabs')\nexport class PkTabs extends PkElement {\n static override styles = pkTabsStyles;\n\n @property()\n value = '';\n\n /** Visual style — `default` (segmented), `pane`, `modal`, or `sidebar` (vertical nav). */\n @property({ reflect: true })\n variant: PkTabsVariant = 'default';\n\n @property({ reflect: true })\n orientation: PkTabsOrientation = 'horizontal';\n\n @property({ reflect: true })\n placement: PkTabsPlacement = 'top';\n\n /**\n * `manual` — arrow keys move focus only; Enter/Space activates (Base UI default).\n * `auto` — arrow keys activate tabs immediately.\n */\n @property({ reflect: true })\n activation: PkTabsActivation = 'manual';\n\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n @property({ attribute: 'aria-label' })\n ariaLabel: string | null = null;\n\n private readonly baseId = uniqueId('pk-tabs');\n\n @state()\n private tabs: PkTabBase[] = [];\n\n @state()\n private panels: PkTabPanelBase[] = [];\n\n @state()\n private focusedValue = '';\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.addEventListener('pk-tab-select', this.handleTabSelect as EventListener);\n this.addEventListener('pk-tab-keydown', this.handleTabKeyDown as EventListener);\n }\n\n override disconnectedCallback(): void {\n this.removeEventListener('pk-tab-select', this.handleTabSelect as EventListener);\n this.removeEventListener('pk-tab-keydown', this.handleTabKeyDown as EventListener);\n super.disconnectedCallback();\n }\n\n override updated(changed: PropertyValues): void {\n if (changed.has('value') || changed.has('disabled') || changed.has('activation')) {\n if (changed.has('value')) {\n this.focusedValue = this.value;\n }\n\n this.applySelection();\n }\n }\n\n private syncTabs = (): void => {\n const slot = this.shadowRoot?.querySelector('slot[name=\"nav\"]') as HTMLSlotElement | null;\n\n if (!slot) {\n return;\n }\n\n this.tabs = slot.assignedElements({ flatten: true }).filter(\n (element) => element.tagName === 'PK-TAB',\n ) as PkTabBase[];\n\n this.ensureDefaultValue();\n this.applySelection();\n };\n\n private syncPanels = (): void => {\n const slot = this.shadowRoot?.querySelector('slot:not([name])') as HTMLSlotElement | null;\n\n if (!slot) {\n return;\n }\n\n this.panels = slot.assignedElements({ flatten: true }).filter(\n (element) => element.tagName === 'PK-TAB-PANEL',\n ) as PkTabPanelBase[];\n\n this.applySelection();\n };\n\n private ensureDefaultValue(): void {\n if (this.value || this.tabs.length === 0) {\n return;\n }\n\n const firstEnabled = this.tabs.find((tab) => !tab.disabled && !this.disabled);\n\n if (firstEnabled) {\n this.value = firstEnabled.value;\n this.focusedValue = this.value;\n }\n }\n\n private getEnabledTabs(): PkTabBase[] {\n return this.tabs.filter((tab) => !tab.disabled && !this.disabled);\n }\n\n /**\n * Sidebar is inherently a vertical nav list. Layout CSS and keyboard arrows\n * both follow this effective orientation so consumers can omit the attrs.\n */\n private getEffectiveOrientation(): PkTabsOrientation {\n return this.variant === 'sidebar' ? 'vertical' : this.orientation;\n }\n\n private getEffectivePlacement(): PkTabsPlacement {\n if (this.variant === 'sidebar') {\n return this.placement === 'top' || this.placement === 'bottom' ? 'start' : this.placement;\n }\n\n return this.placement;\n }\n\n private applySelection(): void {\n const previousValue = this.getAttribute('data-current-value') ?? '';\n const focusTarget = this.activation === 'manual' ? this.focusedValue : this.value;\n\n for (const tab of this.tabs) {\n const selected = tab.value === this.value;\n const tabId = `${this.baseId}-tab-${tab.value}`;\n const panelId = `${this.baseId}-panel-${tab.value}`;\n\n tab.selected = selected;\n tab.disabled = this.disabled || tab.hasAttribute('disabled');\n tab.focusIndex = tab.value === focusTarget ? 0 : -1;\n tab.panelId = panelId;\n tab.id = tabId;\n }\n\n for (const panel of this.panels) {\n const selected = panel.value === this.value;\n const tabId = `${this.baseId}-tab-${panel.value}`;\n const panelId = `${this.baseId}-panel-${panel.value}`;\n\n if (panel.hidden !== !selected) {\n if (selected) {\n this.dispatchEvent(new CustomEvent('pk-tab-show', {\n detail: { value: panel.value },\n bubbles: true,\n composed: true,\n }));\n } else if (previousValue === panel.value) {\n this.dispatchEvent(new CustomEvent('pk-tab-hide', {\n detail: { value: panel.value },\n bubbles: true,\n composed: true,\n }));\n }\n }\n\n panel.hidden = !selected;\n panel.tabId = tabId;\n panel.id = panelId;\n }\n\n this.setAttribute('data-current-value', this.value);\n }\n\n /**\n * `pk-tab-select` / `pk-tab-keydown` bubble + compose out of nested tab groups\n * (e.g. modal tabs inside a pane). Only own nav-slot tabs may drive this instance.\n */\n private isOwnTabEvent(event: Event): boolean {\n const target = event.target;\n\n return target instanceof HTMLElement\n && target.tagName === 'PK-TAB'\n && this.tabs.includes(target as PkTabBase);\n }\n\n private handleTabSelect = (event: CustomEvent<{ value: string }>): void => {\n if (!this.isOwnTabEvent(event) || this.disabled) {\n return;\n }\n\n // Nested groups stop here so ancestor `pk-tabs` never adopt foreign values.\n event.stopPropagation();\n\n const { value } = event.detail;\n\n if (value === this.value && this.activation === 'manual') {\n this.focusedValue = value;\n this.applySelection();\n return;\n }\n\n if (value === this.value) {\n return;\n }\n\n this.selectTab(value);\n };\n\n private selectTab(value: string): void {\n this.value = value;\n this.focusedValue = value;\n this.applySelection();\n\n this.dispatchEvent(new CustomEvent('pk-change', {\n detail: { value: this.value },\n bubbles: true,\n composed: true,\n }));\n }\n\n private handleTabKeyDown = (event: CustomEvent<{ event: KeyboardEvent; value: string }>): void => {\n if (!this.isOwnTabEvent(event)) {\n return;\n }\n\n event.stopPropagation();\n\n const keyboardEvent = event.detail.event;\n const enabled = this.getEnabledTabs();\n\n if (enabled.length === 0) {\n return;\n }\n\n const currentIndex = enabled.findIndex((tab) => tab.value === event.detail.value);\n\n if (currentIndex < 0) {\n return;\n }\n\n let nextIndex = currentIndex;\n const isHorizontal = this.getEffectiveOrientation() === 'horizontal';\n\n switch (keyboardEvent.key) {\n case 'ArrowDown':\n if (isHorizontal) {\n return;\n }\n keyboardEvent.preventDefault();\n nextIndex = currentIndex >= enabled.length - 1 ? 0 : currentIndex + 1;\n break;\n\n case 'ArrowUp':\n if (isHorizontal) {\n return;\n }\n keyboardEvent.preventDefault();\n nextIndex = currentIndex <= 0 ? enabled.length - 1 : currentIndex - 1;\n break;\n\n case 'ArrowRight':\n if (!isHorizontal) {\n return;\n }\n keyboardEvent.preventDefault();\n nextIndex = currentIndex >= enabled.length - 1 ? 0 : currentIndex + 1;\n break;\n\n case 'ArrowLeft':\n if (!isHorizontal) {\n return;\n }\n keyboardEvent.preventDefault();\n nextIndex = currentIndex <= 0 ? enabled.length - 1 : currentIndex - 1;\n break;\n\n case 'Home':\n keyboardEvent.preventDefault();\n nextIndex = 0;\n break;\n\n case 'End':\n keyboardEvent.preventDefault();\n nextIndex = enabled.length - 1;\n break;\n\n default:\n return;\n }\n\n const next = enabled[nextIndex];\n\n if (!next) {\n return;\n }\n\n if (this.activation === 'auto') {\n if (next.value !== this.value) {\n this.selectTab(next.value);\n } else {\n next.focusControl();\n }\n } else {\n this.focusedValue = next.value;\n this.applySelection();\n next.focusControl();\n }\n };\n\n override render() {\n const orientation = this.getEffectiveOrientation();\n const placement = this.getEffectivePlacement();\n\n return html`\n <div part=\"base\" class=\"tabs pk-tabs\" data-placement=${placement}>\n <div\n part=\"list\"\n class=\"list pk-tabs__list\"\n role=\"tablist\"\n aria-orientation=${orientation}\n aria-label=${this.ariaLabel ?? nothing}\n @slotchange=${this.syncTabs}\n >\n <slot name=\"nav\"></slot>\n </div>\n <slot @slotchange=${this.syncPanels}></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pk-tabs': PkTabs;\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { n as
|
|
3
|
-
import { t as
|
|
4
|
-
import {
|
|
5
|
-
import { t as
|
|
6
|
-
import { t as
|
|
7
|
-
import { t as
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
1
|
+
import { i as customElement, t as __decorate } from "./decorate-Br_PE9pq.js";
|
|
2
|
+
import { n as query, r as state, t as property } from "./decorators-BkErmuYK.js";
|
|
3
|
+
import { t as HasSlotController } from "./has-slot-DJv86HKx.js";
|
|
4
|
+
import { n as syncStandaloneControlAria } from "./control-aria-CtNg2izr.js";
|
|
5
|
+
import { t as PkFormAssociatedElement } from "./pk-form-associated-element-Doh2K3pG.js";
|
|
6
|
+
import { t as MirrorValidator } from "./mirror-validator-BkZlEv1Z.js";
|
|
7
|
+
import { t as RequiredValidator } from "./required-validator-I58oJGZ3.js";
|
|
8
|
+
import { t as formControlStyles } from "./form-control.styles-CQ93gnVf.js";
|
|
9
|
+
import { i as uniqueId } from "./focus-DcVUPVqn.js";
|
|
10
|
+
import { n as readLegacyInstructions, t as hasInstructionContent } from "./field-labels-pY-gQDwQ.js";
|
|
10
11
|
import { css, html, nothing } from "lit";
|
|
11
12
|
import { ifDefined } from "lit/directives/if-defined.js";
|
|
12
13
|
import { live } from "lit/directives/live.js";
|
|
@@ -338,4 +339,4 @@ PkTextarea = __decorate([customElement("pk-textarea")], PkTextarea);
|
|
|
338
339
|
//#endregion
|
|
339
340
|
export { PkTextarea as t };
|
|
340
341
|
|
|
341
|
-
//# sourceMappingURL=pk-textarea-
|
|
342
|
+
//# sourceMappingURL=pk-textarea-B401dUWa.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pk-textarea-B401dUWa.js","names":["_decorate"],"sources":["../../src/components/textarea/pk-textarea.styles.ts","../../src/components/textarea/pk-textarea.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const pkTextareaStyles = css`\n @layer pk-component {\n :host {\n display: block;\n width: 100%;\n font-family: var(--pk-font-family);\n font-size: var(--pk-font-size-base);\n line-height: var(--pk-line-height);\n }\n\n .textarea {\n display: block;\n width: 100%;\n min-height: 5rem;\n margin: 0;\n padding: 7px 10px;\n border: var(--pk-input-border);\n border-radius: var(--pk-textarea-border-radius, var(--pk-radius-md));\n background: var(--pk-input-bg);\n background-clip: padding-box;\n /* Craft CP body / field value text. */\n color: var(--pk-color-gray-700);\n font: inherit;\n line-height: 1.4;\n resize: vertical;\n appearance: none;\n box-sizing: border-box;\n outline: none;\n transition: border-color 0.12s ease, box-shadow 0.12s ease;\n }\n\n .textarea::placeholder {\n color: var(--pk-input-placeholder-color, var(--pk-color-gray-400));\n }\n\n /* Craft: focus is box-shadow only — do not also flip border-color (double ring). */\n :host(:not([invalid]):not(:state(user-invalid))) .textarea:focus,\n :host(:not([invalid]):not(:state(user-invalid))) .textarea:focus-visible,\n :host([data-state='focus-visible']:not([invalid]):not(:state(user-invalid))) .textarea {\n box-shadow: var(--pk-input-focus-shadow);\n }\n\n .textarea:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n background: var(--pk-color-gray-50);\n }\n\n :host([invalid]) .textarea,\n :host(:state(user-invalid)) .textarea {\n border-color: var(--pk-color-rose-600);\n }\n\n :host([invalid]) .textarea:focus,\n :host([invalid]) .textarea:focus-visible,\n :host([invalid][data-state='focus-visible']) .textarea,\n :host(:state(user-invalid)) .textarea:focus,\n :host(:state(user-invalid)) .textarea:focus-visible {\n box-shadow: var(--pk-input-invalid-focus-shadow);\n }\n\n /* Editable-table cells (v1): flush into the row and fill cell height.\n * Chain height through form-control — percentage on .textarea alone\n * doesn't resolve when the wrapper sizes to content (rows / min-height). */\n :host([fit-cell]),\n :host([data-editable-table-input]) {\n display: block;\n height: 100%;\n min-height: 100%;\n box-sizing: border-box;\n overflow: hidden;\n }\n\n :host([fit-cell]) .form-control,\n :host([data-editable-table-input]) .form-control {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 100%;\n }\n\n :host([fit-cell]) .textarea,\n :host([data-editable-table-input]) .textarea {\n flex: 1 1 auto;\n border: none;\n border-radius: 0;\n background: transparent;\n box-shadow: none;\n height: 100%;\n min-height: 0;\n max-height: 100%;\n /* Match text-cell inset (v1 py-1.5 / px-2). 0.5rem block padding +\n * line-height 1.4 overflows the 34px et cell and shows a scrollbar\n * even for empty / single-line notes. */\n padding: 0.375rem 0.5rem;\n line-height: 1.25;\n overflow-x: hidden;\n overflow-y: auto;\n resize: none;\n }\n\n :host([fit-cell]:not([invalid]):not(:state(user-invalid))) .textarea:focus,\n :host([fit-cell]:not([invalid]):not(:state(user-invalid))) .textarea:focus-visible,\n :host([fit-cell][data-state='focus-visible']:not([invalid]):not(:state(user-invalid))) .textarea,\n :host([data-editable-table-input]:not([invalid]):not(:state(user-invalid))) .textarea:focus,\n :host([data-editable-table-input]:not([invalid]):not(:state(user-invalid))) .textarea:focus-visible,\n :host([data-editable-table-input][data-state='focus-visible']:not([invalid]):not(:state(user-invalid))) .textarea {\n border: none;\n box-shadow: inset 0 0 0 1px var(--pk-color-gray-200);\n }\n\n :host([fit-cell][invalid]) .textarea,\n :host([fit-cell]:state(user-invalid)) .textarea,\n :host([fit-cell][invalid]) .textarea:focus,\n :host([fit-cell][invalid]) .textarea:focus-visible,\n :host([fit-cell]:state(user-invalid)) .textarea:focus,\n :host([fit-cell]:state(user-invalid)) .textarea:focus-visible,\n :host([data-editable-table-input][invalid]) .textarea,\n :host([data-editable-table-input]:state(user-invalid)) .textarea,\n :host([data-editable-table-input][invalid]) .textarea:focus,\n :host([data-editable-table-input][invalid]) .textarea:focus-visible,\n :host([data-editable-table-input]:state(user-invalid)) .textarea:focus,\n :host([data-editable-table-input]:state(user-invalid)) .textarea:focus-visible {\n border: none;\n box-shadow: inset 0 0 0 1px var(--pk-color-rose-600);\n }\n }\n`;\n","import { html, nothing } from 'lit';\nimport { customElement, property, query, state } from '../../decorators.js';\nimport type { PropertyValues } from 'lit';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\n\nimport { formControlStyles } from '../../base/form-control.styles.js';\nimport { PkFormAssociatedElement } from '../../base/pk-form-associated-element.js';\nimport { uniqueId } from '../../a11y/focus.js';\nimport { HasSlotController } from '../../internal/has-slot.js';\nimport { syncStandaloneControlAria } from '../../internal/control-aria.js';\nimport { hasInstructionContent, readLegacyInstructions } from '../../internal/field-labels.js';\nimport { MirrorValidator, RequiredValidator } from '../../validators/index.js';\nimport { pkTextareaStyles } from './pk-textarea.styles.js';\n\nexport type PkTextareaSize = 'default' | 'sm';\n\n/**\n * Multiline text field — API, Craft visuals.\n *\n * @slot label\n * @slot instructions\n * @slot hint - Alias for `instructions`\n *\n * @csspart form-control - Wrapper\n * @csspart label - Label\n * @csspart instructions - Instructions\n * @csspart textarea - Native textarea\n */\n@customElement('pk-textarea')\nexport class PkTextarea extends PkFormAssociatedElement {\n static override styles = [formControlStyles, pkTextareaStyles];\n\n static override get validators() {\n return [...super.validators, MirrorValidator(), RequiredValidator()];\n }\n\n override assumeInteractionOn = ['blur', 'input'];\n\n private readonly hasSlotController = new HasSlotController(this, 'instructions', 'hint', 'label');\n\n private readonly controlId = uniqueId('pk-textarea');\n\n @query('textarea')\n override input!: HTMLTextAreaElement;\n\n @property()\n placeholder = '';\n\n private _value: string | null = null;\n\n get value(): string {\n if (this.valueHasChanged) {\n return this._value ?? '';\n }\n\n return this._value ?? this.defaultValue ?? '';\n }\n\n @state()\n set value(val: string | null) {\n const next = val ?? '';\n\n if (this._value === next) {\n return;\n }\n\n this.valueHasChanged = true;\n this._value = next;\n }\n\n @property({ attribute: 'value', reflect: true })\n defaultValue: string | null = null;\n\n @property({ reflect: true })\n size: PkTextareaSize = 'default';\n\n @property()\n label = '';\n\n @property()\n instructions = '';\n\n @property({ type: Boolean, reflect: true })\n readonly = false;\n\n @property({ type: Boolean, reflect: true })\n invalid = false;\n\n /** Flush + fill parent cell (editable tables). */\n @property({ type: Boolean, reflect: true, attribute: 'fit-cell' })\n fitCell = false;\n\n /** Native `rows` — use `1` in table cells so intrinsic height doesn't overflow. */\n @property({ type: Number })\n rows?: number;\n\n @property({ type: Number, attribute: 'max-length' })\n maxlength?: number;\n\n @property({ attribute: 'with-label', type: Boolean })\n withLabel = false;\n\n @property({ attribute: 'with-instructions', type: Boolean })\n withInstructions = false;\n\n override connectedCallback(): void {\n this.instructions = readLegacyInstructions(this, this.instructions);\n\n if (this.hasAttribute('with-hint')) {\n this.withInstructions = true;\n }\n\n super.connectedCallback();\n }\n\n protected override syncFormValue(): void {\n this.setValue(this.value || '');\n }\n\n protected override resetToDefaultValue(): void {\n this.valueHasChanged = false;\n this._value = null;\n }\n\n protected override restoreFormState(state: string | File | FormData | null): void {\n if (typeof state === 'string') {\n this.value = state;\n }\n }\n\n override formResetCallback(): void {\n this.valueHasChanged = false;\n this._value = null;\n\n if (this.input) {\n this.input.value = this.defaultValue ?? '';\n }\n\n super.formResetCallback();\n }\n\n override updated(changed: PropertyValues): void {\n if (changed.has('value') || changed.has('defaultValue')) {\n this.setState('blank', !this.value);\n }\n\n super.updated(changed);\n }\n\n protected override syncStandaloneAria(): void {\n if (!this.input) {\n return;\n }\n\n const hasLabel = this.hasLabelContent();\n const hasInstructions = this.hasInstructionsContent();\n\n syncStandaloneControlAria({\n control: this.input,\n labelId: `${this.controlId}-label`,\n instructionsId: `${this.controlId}-instructions`,\n hasLabel,\n hasInstructions,\n required: this.required,\n invalid: this.invalid || !this.internals.validity.valid,\n });\n }\n\n private hasLabelContent(): boolean {\n return Boolean(this.label) || this.hasSlotController.test('label', this.withLabel);\n }\n\n private hasInstructionsContent(): boolean {\n return hasInstructionContent(\n (name, flag) => this.hasSlotController.test(name, flag),\n this.instructions,\n this.withInstructions,\n );\n }\n\n focus(options?: FocusOptions): void {\n this.input?.focus(options);\n }\n\n blur(): void {\n this.input?.blur();\n }\n\n private handleInput(): void {\n this.value = this.input.value;\n this.dispatchEvent(new Event('input', { bubbles: true, composed: true }));\n }\n\n private handleChange(event: Event): void {\n this.value = this.input.value;\n event.stopPropagation();\n this.dispatchEvent(new Event('change', { bubbles: true, composed: true }));\n }\n\n override render() {\n const hasLabel = this.hasLabelContent();\n const hasInstructions = this.hasInstructionsContent();\n\n return html`\n <div part=\"form-control\" class=\"form-control\">\n ${hasLabel\n ? html`\n <label\n part=\"label\"\n class=\"form-control__label\"\n id=${`${this.controlId}-label`}\n for=${`${this.controlId}-control`}\n >\n <slot name=\"label\">${this.label}</slot>\n </label>\n `\n : nothing}\n\n ${hasInstructions\n ? html`\n <p\n part=\"instructions\"\n class=\"form-control__instructions\"\n id=${`${this.controlId}-instructions`}\n >\n <slot name=\"instructions\">${this.instructions}</slot>\n <slot name=\"hint\"></slot>\n </p>\n `\n : nothing}\n\n <textarea\n part=\"textarea\"\n class=\"textarea\"\n id=${hasLabel ? `${this.controlId}-control` : nothing}\n rows=${ifDefined(this.fitCell ? (this.rows ?? 1) : this.rows)}\n .value=${live(this.value)}\n placeholder=${this.placeholder || nothing}\n maxlength=${ifDefined(this.maxlength)}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n ?required=${this.required}\n @input=${this.handleInput}\n @change=${this.handleChange}\n @focus=${() => this.dispatchEvent(new Event('focus', { bubbles: true, composed: true }))}\n @blur=${() => this.dispatchEvent(new Event('blur', { bubbles: true, composed: true }))}\n ></textarea>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pk-textarea': PkTextarea;\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { t as icons_exports } from "./icons-
|
|
2
|
-
import {
|
|
3
|
-
import { t as createIconElement } from "./render-
|
|
4
|
-
import "./pk-option-
|
|
5
|
-
import { n as pkSelectStyles, t as PkSelect } from "./pk-select-
|
|
1
|
+
import { t as icons_exports } from "./icons-k1pvx6yX.js";
|
|
2
|
+
import { i as customElement, t as __decorate } from "./decorate-Br_PE9pq.js";
|
|
3
|
+
import { t as createIconElement } from "./render-DQZp_Rak.js";
|
|
4
|
+
import "./pk-option-B_PF4v_Z.js";
|
|
5
|
+
import { n as pkSelectStyles, t as PkSelect } from "./pk-select-DZNpEk5Z.js";
|
|
6
6
|
import { css } from "lit";
|
|
7
7
|
//#region src/utils/time-options.ts
|
|
8
8
|
var timeOptionsCache = null;
|
|
@@ -225,4 +225,4 @@ PkTimePicker = __decorate([customElement("pk-time-picker")], PkTimePicker);
|
|
|
225
225
|
//#endregion
|
|
226
226
|
export { PkTimePicker as t };
|
|
227
227
|
|
|
228
|
-
//# sourceMappingURL=pk-time-picker-
|
|
228
|
+
//# sourceMappingURL=pk-time-picker-DnNZVwRk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pk-time-picker-DnNZVwRk.js","names":["clock","_decorate"],"sources":["../../src/utils/time-options.ts","../../src/components/time-picker/pk-time-picker.styles.ts","../../src/components/time-picker/pk-time-picker.ts"],"sourcesContent":["export type TimeOption = {\n value: string;\n label: string;\n};\n\nexport type TimepickerFormatOptions = {\n timeFormat?: string;\n lang?: {\n AM?: string;\n PM?: string;\n };\n locale?: string;\n};\n\nlet timeOptionsCache: TimeOption[] | null = null;\n\nfunction resolveTimepickerOptions(): Required<Pick<TimepickerFormatOptions, 'timeFormat' | 'lang'>> & { locale: string } {\n const craft = (globalThis as typeof globalThis & {\n Craft?: { timepicker?: TimepickerFormatOptions };\n }).Craft?.timepicker;\n\n return {\n timeFormat: craft?.timeFormat || 'g:i A',\n lang: {\n AM: craft?.lang?.AM || 'AM',\n PM: craft?.lang?.PM || 'PM',\n },\n locale: craft?.locale || document.documentElement.lang || 'en-US',\n };\n}\n\n/** Generate time options in 30-minute increments — mirrors React `generateTimeOptions`. */\nexport function generateTimeOptions(): TimeOption[] {\n if (timeOptionsCache) {\n return timeOptionsCache;\n }\n\n const options: TimeOption[] = [];\n const { timeFormat, lang, locale } = resolveTimepickerOptions();\n\n for (let hour = 0; hour < 24; hour += 1) {\n for (let minute = 0; minute < 60; minute += 30) {\n const timeString = `${hour.toString().padStart(2, '0')}:${minute.toString().padStart(2, '0')}`;\n\n let displayTime: string;\n\n if (timeFormat === 'g:i A') {\n let displayHour = hour;\n\n if (hour === 0) {\n displayHour = 12;\n } else if (hour > 12) {\n displayHour = hour - 12;\n }\n\n const ampm = hour >= 12 ? lang.PM : lang.AM;\n displayTime = `${displayHour}:${minute.toString().padStart(2, '0')} ${ampm}`;\n } else if (timeFormat === 'G:i') {\n displayTime = timeString;\n } else {\n displayTime = new Date(`2000-01-01T${timeString}:00`).toLocaleTimeString(locale, {\n hour: 'numeric',\n minute: '2-digit',\n hour12: timeFormat.includes('A'),\n });\n }\n\n options.push({\n value: timeString,\n label: displayTime,\n });\n }\n }\n\n timeOptionsCache = options;\n\n return options;\n}\n\nexport function clearTimeOptionsCache(): void {\n timeOptionsCache = null;\n}\n","import { css } from 'lit';\n\nexport const pkTimePickerStyles = css`\n @layer pk-component {\n :host {\n display: inline-block;\n width: 8.125rem;\n min-width: 8.125rem;\n color: var(--pk-color-gray-700);\n --pk-select-trigger-border-width: 1px;\n --pk-select-item-min-height: 2.125rem;\n --pk-select-item-padding-block: 0;\n --pk-select-item-padding-inline: 10px;\n --pk-select-item-font-size: var(--pk-font-size-base);\n }\n\n .control {\n justify-content: flex-start;\n gap: 0.5rem;\n width: 100%;\n height: 2.125rem;\n min-height: 2.125rem;\n border-color: var(--pk-color-slate-400) !important;\n border-radius: var(--pk-radius-lg) !important;\n background: transparent !important;\n background-color: transparent !important;\n text-align: left;\n font-weight: 400;\n line-height: 1.2;\n cursor: default;\n }\n\n :host([open]) .control {\n background: var(--pk-color-slate-150, var(--pk-color-slate-100)) !important;\n background-color: var(--pk-color-slate-150, var(--pk-color-slate-100)) !important;\n border-color: var(--pk-color-slate-400) !important;\n box-shadow: none;\n }\n\n :host(:not([disabled])) .control:hover:not(:disabled) {\n background: var(--pk-color-slate-50) !important;\n background-color: var(--pk-color-slate-50) !important;\n }\n\n :host(:not([disabled])[open]) .control:hover:not(:disabled),\n :host(:not([disabled])) .control:active:not(:disabled) {\n background: var(--pk-color-slate-150, var(--pk-color-slate-100)) !important;\n background-color: var(--pk-color-slate-150, var(--pk-color-slate-100)) !important;\n }\n\n :host(:not([invalid]):not(:state(user-invalid))) .control:focus-visible,\n :host(:not([invalid]):not(:state(user-invalid))[data-state='focus-visible']) .control {\n border-color: var(--pk-color-sky-600) !important;\n box-shadow: var(--pk-input-focus-shadow);\n }\n\n :host(:not([invalid]):not(:state(user-invalid))[open]) .control:focus-visible,\n :host(:not([invalid]):not(:state(user-invalid))[open][data-state='focus-visible']) .control {\n border-color: var(--pk-color-slate-400) !important;\n box-shadow: none;\n }\n\n :host([invalid]) .control,\n :host(:state(user-invalid)) .control {\n border-color: var(--pk-color-rose-600) !important;\n }\n\n :host([invalid]) .control:focus-visible,\n :host([invalid][data-state='focus-visible']) .control,\n :host(:state(user-invalid)) .control:focus-visible,\n :host(:state(user-invalid)[data-state='focus-visible']) .control {\n box-shadow: var(--pk-input-invalid-focus-shadow);\n }\n\n .control-start {\n color: var(--pk-color-gray-400);\n pointer-events: none;\n }\n\n .control-start svg {\n display: block;\n width: 14px;\n height: 14px;\n }\n\n .value {\n flex: 1;\n line-height: 1.2;\n color: inherit;\n }\n\n .value.is-placeholder {\n color: var(--pk-color-gray-400);\n }\n\n .icon {\n margin-inline-start: auto;\n color: var(--pk-color-gray-600);\n }\n\n .panel {\n min-width: 8rem;\n max-height: 15rem;\n }\n\n /* Editable-table cells: flush fill — must live here so !important beats the\n * standalone trigger chrome (external ::part cannot override it). */\n :host(.cell-pk-control) {\n display: block;\n width: 100%;\n min-width: 0;\n height: 100%;\n --pk-select-trigger-border-width: 0;\n --pk-select-item-min-height: 100%;\n --pk-select-item-padding-block: 0;\n }\n\n :host(.cell-pk-control) .control {\n width: 100%;\n height: 100% !important;\n min-height: 100% !important;\n border: 0 !important;\n border-radius: 0 !important;\n background: transparent !important;\n background-color: transparent !important;\n }\n\n :host(.cell-pk-control:not([disabled])) .control:hover:not(:disabled),\n :host(.cell-pk-control[open]) .control,\n :host(.cell-pk-control:not([disabled])[open]) .control:hover:not(:disabled),\n :host(.cell-pk-control:not([disabled])) .control:active:not(:disabled) {\n border-radius: 0 !important;\n }\n\n :host(.cell-pk-control:not([invalid]):not(:state(user-invalid))) .control:focus-visible,\n :host(.cell-pk-control:not([invalid]):not(:state(user-invalid))[data-state='focus-visible']) .control {\n border: 0 !important;\n box-shadow: inset 0 0 0 1px var(--pk-color-gray-200, #e5e7eb);\n }\n }\n`;\n","import { customElement } from '../../decorators.js';\n\nimport { createIconElement, clock } from '../../icons/index.js';\nimport { PkSelect } from '../select/pk-select.js';\n// Time picker seeds light-DOM options at connect — register the CE so getLabel() works.\nimport '../select/pk-option.js';\nimport { pkSelectStyles } from '../select/pk-select.styles.js';\nimport { generateTimeOptions } from '../../utils/time-options.js';\nimport { pkTimePickerStyles } from './pk-time-picker.styles.js';\n\n/**\n * Time picker — select wrapper with 30-minute increments and a clock icon.\n * Mirrors React `TimePicker` (not `pk-time-input`).\n *\n * @slot start - Overrides the default clock icon\n * @slot - Additional `pk-option` items append after the generated list\n *\n * @event input\n * @event change\n * @event pk-change - `detail.value`\n */\n@customElement('pk-time-picker')\nexport class PkTimePicker extends PkSelect {\n // Flatten — `pkSelectStyles` is already a CSSResult[].\n static override styles = [...pkSelectStyles, pkTimePickerStyles];\n\n private optionsSeeded = false;\n\n override connectedCallback(): void {\n this.ensureTimeOptions();\n this.ensureClockIcon();\n super.connectedCallback();\n }\n\n private ensureTimeOptions(): void {\n if (this.optionsSeeded || this.querySelector('pk-option')) {\n this.optionsSeeded = true;\n return;\n }\n\n for (const option of generateTimeOptions()) {\n const element = document.createElement('pk-option');\n element.value = option.value;\n element.textContent = option.label;\n this.append(element);\n }\n\n this.optionsSeeded = true;\n }\n\n private ensureClockIcon(): void {\n if (this.querySelector('[slot=\"start\"]')) {\n return;\n }\n\n const icon = createIconElement(clock);\n icon.setAttribute('slot', 'start');\n this.prepend(icon);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pk-time-picker': PkTimePicker;\n }\n}\n"],"mappings":";;;;;;;AAcA,IAAI,mBAAwC;AAE5C,SAAS,2BAAgH;CACrH,MAAM,QAAS,WAEZ,OAAO;CAEV,OAAO;EACH,YAAY,OAAO,cAAc;EACjC,MAAM;GACF,IAAI,OAAO,MAAM,MAAM;GACvB,IAAI,OAAO,MAAM,MAAM;EAC3B;EACA,QAAQ,OAAO,UAAU,SAAS,gBAAgB,QAAQ;CAC9D;AACJ;;AAGA,SAAgB,sBAAoC;CAChD,IAAI,kBACA,OAAO;CAGX,MAAM,UAAwB,CAAC;CAC/B,MAAM,EAAE,YAAY,MAAM,WAAW,yBAAyB;CAE9D,KAAK,IAAI,OAAO,GAAG,OAAO,IAAI,QAAQ,GAClC,KAAK,IAAI,SAAS,GAAG,SAAS,IAAI,UAAU,IAAI;EAC5C,MAAM,aAAa,GAAG,KAAK,SAAS,CAAC,CAAC,SAAS,GAAG,GAAG,EAAE,GAAG,OAAO,SAAS,CAAC,CAAC,SAAS,GAAG,GAAG;EAE3F,IAAI;EAEJ,IAAI,eAAe,SAAS;GACxB,IAAI,cAAc;GAElB,IAAI,SAAS,GACT,cAAc;QACX,IAAI,OAAO,IACd,cAAc,OAAO;GAGzB,MAAM,OAAO,QAAQ,KAAK,KAAK,KAAK,KAAK;GACzC,cAAc,GAAG,YAAY,GAAG,OAAO,SAAS,CAAC,CAAC,SAAS,GAAG,GAAG,EAAE,GAAG;EAC1E,OAAO,IAAI,eAAe,OACtB,cAAc;OAEd,+BAAc,IAAI,KAAK,cAAc,WAAW,IAAI,EAAA,CAAE,mBAAmB,QAAQ;GAC7E,MAAM;GACN,QAAQ;GACR,QAAQ,WAAW,SAAS,GAAG;EACnC,CAAC;EAGL,QAAQ,KAAK;GACT,OAAO;GACP,OAAO;EACX,CAAC;CACL;CAGJ,mBAAmB;CAEnB,OAAO;AACX;;;AC3EA,IAAa,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACoB9B,IAAM,eAAN,MAAM,qBAAqB,SAAS;;;EAIf,KAAA,gBAAA;;;EAFC,KAAA,SAAA,CAAC,GAAG,gBAAgB,kBAAkB;;CAI/D,oBAAmC;EAC/B,KAAK,kBAAkB;EACvB,KAAK,gBAAgB;EACrB,MAAM,kBAAkB;CAC5B;CAEA,oBAAkC;EAC9B,IAAI,KAAK,iBAAiB,KAAK,cAAc,WAAW,GAAG;GACvD,KAAK,gBAAgB;GACrB;EACJ;EAEA,KAAK,MAAM,UAAU,oBAAoB,GAAG;GACxC,MAAM,UAAU,SAAS,cAAc,WAAW;GAClD,QAAQ,QAAQ,OAAO;GACvB,QAAQ,cAAc,OAAO;GAC7B,KAAK,OAAO,OAAO;EACvB;EAEA,KAAK,gBAAgB;CACzB;CAEA,kBAAgC;EAC5B,IAAI,KAAK,cAAc,kBAAgB,GACnC;EAGJ,MAAM,OAAO,kBAAkBA,cAAAA,KAAK;EACpC,KAAK,aAAa,QAAQ,OAAO;EACjC,KAAK,QAAQ,IAAI;CACrB;AACJ;AAtCC,eAAAC,WAAA,CAAA,cAAc,gBAAgB,CAAA,GAAA,YAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { i as customElement, n as PkElement, t as __decorate } from "./decorate-Br_PE9pq.js";
|
|
2
|
+
import { n as query, t as property } from "./decorators-BkErmuYK.js";
|
|
3
|
+
import { i as createVariableTagDomNodeView, t as tiptapContentProseMirrorStyles } from "./tiptap.styles-Q4ED1nBw.js";
|
|
3
4
|
import { css, html } from "lit";
|
|
4
5
|
import { Editor } from "@tiptap/core";
|
|
5
6
|
import { createTiptapExtensions, valueToContent } from "@verbb/plugin-kit-tiptap-core";
|
|
@@ -75,4 +76,4 @@ PkTiptapContent = __decorate([customElement("pk-tiptap-content")], PkTiptapConte
|
|
|
75
76
|
//#endregion
|
|
76
77
|
export { PkTiptapContent as t };
|
|
77
78
|
|
|
78
|
-
//# sourceMappingURL=pk-tiptap-content-
|
|
79
|
+
//# sourceMappingURL=pk-tiptap-content-C2qzGQKj.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pk-tiptap-content-C2qzGQKj.js","names":["_decorate"],"sources":["../../src/components/tiptap/pk-tiptap-content.styles.ts","../../src/components/tiptap/pk-tiptap-content.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const pkTiptapContentStyles = css`\n @layer pk-component {\n :host {\n display: block;\n width: 100%;\n /* Inherit light-DOM color/size (warning banners, badges). Tokens override when set. */\n color: var(--pk-tiptap-content-color, inherit);\n font-family: var(--pk-font-family);\n font-size: var(--pk-tiptap-content-font-size, inherit);\n line-height: var(--pk-tiptap-content-line-height, 1.4);\n }\n }\n`;\n","import { html } from 'lit';\nimport { customElement, property, query } from '../../decorators.js';\nimport type { PropertyValues } from 'lit';\nimport { Editor } from '@tiptap/core';\nimport {\n createTiptapExtensions,\n valueToContent,\n} from '@verbb/plugin-kit-tiptap-core';\n\nimport { PkElement } from '../../base/pk-element.js';\nimport { createVariableTagDomNodeView } from './variable-tag-node-view.js';\nimport { pkTiptapContentStyles } from './pk-tiptap-content.styles.js';\nimport { tiptapContentProseMirrorStyles } from './tiptap.styles.js';\n\nfunction serializeContent(doc: ReturnType<typeof valueToContent>): string {\n if (!doc) {\n return '[]';\n }\n\n if (Array.isArray(doc.content)) {\n return JSON.stringify(doc.content);\n }\n\n return JSON.stringify(doc);\n}\n\n/**\n * Read-only TipTap / ProseMirror renderer.\n *\n * Pass the same `value` shapes as TiptapEditor: node array, doc object, or JSON string.\n */\n@customElement('pk-tiptap-content')\nexport class PkTiptapContent extends PkElement {\n static override styles = [pkTiptapContentStyles, tiptapContentProseMirrorStyles];\n\n @query('.editor-mount')\n private editorMount!: HTMLDivElement;\n\n private editor: Editor | null = null;\n\n @property({ attribute: 'value' })\n value = '';\n\n override disconnectedCallback(): void {\n this.editor?.destroy();\n this.editor = null;\n super.disconnectedCallback();\n }\n\n override updated(changed: PropertyValues): void {\n if (changed.has('value') && this.editor) {\n this.syncContent();\n }\n\n super.updated(changed);\n }\n\n override firstUpdated(): void {\n this.mountEditor();\n }\n\n private mountEditor(): void {\n this.editor = new Editor({\n element: this.editorMount,\n extensions: createTiptapExtensions({\n variableTagNodeView: createVariableTagDomNodeView(),\n surface: 'content',\n }),\n content: valueToContent(this.value),\n editable: false,\n });\n }\n\n private syncContent(): void {\n if (!this.editor) {\n return;\n }\n\n const doc = valueToContent(this.value) ?? { type: 'doc', content: [] };\n const incoming = serializeContent(valueToContent(this.value));\n const current = serializeContent(this.editor.getJSON() as ReturnType<typeof valueToContent>);\n\n if (incoming === current) {\n return;\n }\n\n this.editor.commands.setContent(doc);\n }\n\n override render() {\n return html`<div class=\"editor-mount\" part=\"content\"></div>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pk-tiptap-content': PkTiptapContent;\n }\n}\n"],"mappings":";;;;;;;AAEA,IAAa,wBAAwB,GAAG;;;;;;;;;;;;;;;ACYxC,SAAS,iBAAiB,KAAgD;CACtE,IAAI,CAAC,KACD,OAAO;CAGX,IAAI,MAAM,QAAQ,IAAI,OAAO,GACzB,OAAO,KAAK,UAAU,IAAI,OAAO;CAGrC,OAAO,KAAK,UAAU,GAAG;AAC7B;AAQO,IAAM,kBAAN,MAAM,wBAAwB,UAAU;;;EAMX,KAAA,SAAA;EAGxB,KAAA,QAAA;;;EARiB,KAAA,SAAA,CAAC,uBAAuB,8BAA8B;;CAU/E,uBAAsC;EAClC,KAAK,QAAQ,QAAQ;EACrB,KAAK,SAAS;EACd,MAAM,qBAAqB;CAC/B;CAEA,QAAiB,SAA+B;EAC5C,IAAI,QAAQ,IAAI,OAAO,KAAK,KAAK,QAC7B,KAAK,YAAY;EAGrB,MAAM,QAAQ,OAAO;CACzB;CAEA,eAA8B;EAC1B,KAAK,YAAY;CACrB;CAEA,cAA4B;EACxB,KAAK,SAAS,IAAI,OAAO;GACrB,SAAS,KAAK;GACd,YAAY,uBAAuB;IAC/B,qBAAqB,6BAA6B;IAClD,SAAS;GACb,CAAC;GACD,SAAS,eAAe,KAAK,KAAK;GAClC,UAAU;EACd,CAAC;CACL;CAEA,cAA4B;EACxB,IAAI,CAAC,KAAK,QACN;EAGJ,MAAM,MAAM,eAAe,KAAK,KAAK,KAAK;GAAE,MAAM;GAAO,SAAS,CAAC;EAAE;EAIrE,IAHiB,iBAAiB,eAAe,KAAK,KAAK,CAGvD,MAFY,iBAAiB,KAAK,OAAO,QAAQ,CAEpC,GACb;EAGJ,KAAK,OAAO,SAAS,WAAW,GAAG;CACvC;CAEA,SAAkB;EACd,OAAO,IAAI;CACf;AACJ;AAzDKA,WAAA,CAAA,MAAM,eAAe,CAAA,GAAA,gBAAA,WAAA,eAAA,KAAA,CAAA;AAKrBA,WAAA,CAAA,SAAS,EAAE,WAAW,QAAQ,CAAC,CAAA,GAAA,gBAAA,WAAA,SAAA,KAAA,CAAA;AATnC,kBAAAA,WAAA,CAAA,cAAc,mBAAmB,CAAA,GAAA,eAAA"}
|
|
@@ -1,21 +1,22 @@
|
|
|
1
|
-
import { t as icons_exports } from "./icons-
|
|
2
|
-
import {
|
|
3
|
-
import "./
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
import "./pk-
|
|
7
|
-
import { t as
|
|
8
|
-
import
|
|
9
|
-
import {
|
|
10
|
-
import "./
|
|
11
|
-
import "./pk-
|
|
12
|
-
import "./pk-
|
|
13
|
-
import "./pk-dropdown-
|
|
14
|
-
import "./pk-dropdown-
|
|
1
|
+
import { t as icons_exports } from "./icons-k1pvx6yX.js";
|
|
2
|
+
import { i as customElement, t as __decorate } from "./decorate-Br_PE9pq.js";
|
|
3
|
+
import { n as query, r as state, t as property } from "./decorators-BkErmuYK.js";
|
|
4
|
+
import { n as renderIconHtml } from "./render-DQZp_Rak.js";
|
|
5
|
+
import "./pk-button-ntSVrer_.js";
|
|
6
|
+
import { t as PkFormAssociatedElement } from "./pk-form-associated-element-Doh2K3pG.js";
|
|
7
|
+
import { t as MirrorValidator } from "./mirror-validator-BkZlEv1Z.js";
|
|
8
|
+
import "./pk-checkbox-L5uRex3b.js";
|
|
9
|
+
import { t as formControlStyles } from "./form-control.styles-CQ93gnVf.js";
|
|
10
|
+
import { i as uniqueId } from "./focus-DcVUPVqn.js";
|
|
11
|
+
import "./pk-input-BUbXj9We.js";
|
|
12
|
+
import "./pk-dialog-C7KZGpQs.js";
|
|
13
|
+
import "./pk-dropdown-item-Ck2N_suK.js";
|
|
14
|
+
import "./pk-dropdown-menu-DBsO1uYR.js";
|
|
15
|
+
import "./pk-dropdown-label-BdZLeizJ.js";
|
|
15
16
|
import "../components/dropdown-menu/pk-dropdown-separator.js";
|
|
16
|
-
import "./pk-field
|
|
17
|
-
import "./pk-tooltip
|
|
18
|
-
import { i as createVariableTagDomNodeView, r as tiptapProseMirrorStyles } from "./tiptap.styles-
|
|
17
|
+
import "./pk-field--PCE9nOd.js";
|
|
18
|
+
import "./pk-tooltip-Cvv2f7T5.js";
|
|
19
|
+
import { i as createVariableTagDomNodeView, r as tiptapProseMirrorStyles } from "./tiptap.styles-Q4ED1nBw.js";
|
|
19
20
|
import { css, html, nothing } from "lit";
|
|
20
21
|
import { unsafeSVG } from "lit/directives/unsafe-svg.js";
|
|
21
22
|
import { Editor, getMarkRange, posToDOMRect } from "@tiptap/core";
|
|
@@ -1041,9 +1042,7 @@ var PkTiptapEditor = class PkTiptapEditor extends PkFormAssociatedElement {
|
|
|
1041
1042
|
case "backgroundColor":
|
|
1042
1043
|
value ? chain.setBackgroundColor(value).run() : chain.unsetBackgroundColor().run();
|
|
1043
1044
|
break;
|
|
1044
|
-
case "lineHeight":
|
|
1045
|
-
value ? chain.setLineHeight(value).run() : chain.unsetLineHeight().run();
|
|
1046
|
-
break;
|
|
1045
|
+
case "lineHeight": value ? chain.setLineHeight(value).run() : chain.unsetLineHeight().run();
|
|
1047
1046
|
}
|
|
1048
1047
|
}
|
|
1049
1048
|
getTextStyleOptionLabel(options, value) {
|
|
@@ -1405,4 +1404,4 @@ PkTiptapEditor = __decorate([customElement("pk-tiptap-editor")], PkTiptapEditor)
|
|
|
1405
1404
|
//#endregion
|
|
1406
1405
|
export { PkTiptapEditor as t };
|
|
1407
1406
|
|
|
1408
|
-
//# sourceMappingURL=pk-tiptap-editor-
|
|
1407
|
+
//# sourceMappingURL=pk-tiptap-editor-y_QyNSR-.js.map
|