@verbb/plugin-kit-web 2.0.3 → 2.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/dist/chunks/{autoloader-DzOTQqe6.js → autoloader-DXK9MVuw.js} +2 -2
- package/dist/chunks/{autoloader-DzOTQqe6.js.map → autoloader-DXK9MVuw.js.map} +1 -1
- package/dist/chunks/{component-registry-CpZiIDh4.js → component-registry-BOlxFlou.js} +1 -1
- package/dist/chunks/{component-registry-CpZiIDh4.js.map → component-registry-BOlxFlou.js.map} +1 -1
- package/dist/chunks/decorate-W02hmVTt.js.map +1 -1
- package/dist/chunks/{pk-button-Cilu5WAT.js → pk-button-QpDDlRbG.js} +8 -3
- package/dist/chunks/pk-button-QpDDlRbG.js.map +1 -0
- package/dist/chunks/{pk-calendar-CcV-La-9.js → pk-calendar-TEFA09cI.js} +61 -6
- package/dist/chunks/pk-calendar-TEFA09cI.js.map +1 -0
- package/dist/chunks/{pk-checkbox-select-ZEJ6WIQn.js → pk-checkbox-select-9lqd9Rwz.js} +2 -1
- package/dist/chunks/{pk-checkbox-select-ZEJ6WIQn.js.map → pk-checkbox-select-9lqd9Rwz.js.map} +1 -1
- package/dist/chunks/{pk-color-input-D4L0DE5S.js → pk-color-input-CNnmHJJB.js} +10 -2
- package/dist/chunks/{pk-color-input-D4L0DE5S.js.map → pk-color-input-CNnmHJJB.js.map} +1 -1
- package/dist/chunks/{pk-combobox-Dd1ik0Ko.js → pk-combobox-DtkXaX67.js} +3 -2
- package/dist/chunks/pk-combobox-DtkXaX67.js.map +1 -0
- package/dist/chunks/{pk-copy-button-DPh5TOF9.js → pk-copy-button-C17MLLYS.js} +2 -1
- package/dist/chunks/{pk-copy-button-DPh5TOF9.js.map → pk-copy-button-C17MLLYS.js.map} +1 -1
- package/dist/chunks/{pk-date-picker-CkwU4DzD.js → pk-date-picker-x-qkpQWF.js} +28 -7
- package/dist/chunks/pk-date-picker-x-qkpQWF.js.map +1 -0
- package/dist/chunks/{pk-dropdown-item-BFyjtsL5.js → pk-dropdown-item-P3LLojCI.js} +16 -1
- package/dist/chunks/pk-dropdown-item-P3LLojCI.js.map +1 -0
- package/dist/chunks/{pk-dropdown-label-DfACId-K.js → pk-dropdown-label-ibVrU6-U.js} +10 -4
- package/dist/chunks/pk-dropdown-label-ibVrU6-U.js.map +1 -0
- package/dist/chunks/{pk-dropdown-menu-DWlxkDIs.js → pk-dropdown-menu-CsX95MCP.js} +2 -2
- package/dist/chunks/pk-dropdown-menu-CsX95MCP.js.map +1 -0
- package/dist/chunks/{pk-editable-table-pBkD6izs.js → pk-editable-table-DVqOEz3W.js} +14 -1
- package/dist/chunks/pk-editable-table-DVqOEz3W.js.map +1 -0
- package/dist/chunks/{pk-option-C3Zqmu3z.js → pk-option-C-cR-jOv.js} +11 -3
- package/dist/chunks/pk-option-C-cR-jOv.js.map +1 -0
- package/dist/chunks/{pk-popover-XZZdJ4WI.js → pk-popover-CVvwXMld.js} +2 -2
- package/dist/chunks/pk-popover-CVvwXMld.js.map +1 -0
- package/dist/chunks/{pk-select-B17rV6BR.js → pk-select-odSNU1tN.js} +3 -2
- package/dist/chunks/pk-select-odSNU1tN.js.map +1 -0
- package/dist/chunks/{pk-tab-CzV7pOdp.js → pk-tab-BdoPiYfT.js} +8 -2
- package/dist/chunks/pk-tab-BdoPiYfT.js.map +1 -0
- package/dist/chunks/{pk-time-picker-DbW_hMs2.js → pk-time-picker-DtX0LtID.js} +3 -2
- package/dist/chunks/{pk-time-picker-DbW_hMs2.js.map → pk-time-picker-DtX0LtID.js.map} +1 -1
- package/dist/chunks/{pk-tiptap-editor-umIuEaXh.js → pk-tiptap-editor-CdoutapZ.js} +10 -1
- package/dist/chunks/{pk-tiptap-editor-umIuEaXh.js.map → pk-tiptap-editor-CdoutapZ.js.map} +1 -1
- package/dist/chunks/pk-tooltip-fcUbVGli.js.map +1 -1
- package/dist/chunks/popup-pointer-DMnuZDQl.js +34 -0
- package/dist/chunks/popup-pointer-DMnuZDQl.js.map +1 -0
- package/dist/chunks/register-BYPBQHrq.js +143 -0
- package/dist/chunks/register-BYPBQHrq.js.map +1 -0
- package/dist/chunks/{register-components-DNw6EYNo.js → register-components-BG_6_v_T.js} +1 -1
- package/dist/chunks/{register-components-DNw6EYNo.js.map → register-components-BG_6_v_T.js.map} +1 -1
- package/dist/components/button/pk-button.js +1 -1
- package/dist/components/button/pk-button.styles.d.ts.map +1 -1
- package/dist/components/button.js +1 -1
- package/dist/components/calendar/pk-calendar.d.ts +5 -1
- package/dist/components/calendar/pk-calendar.d.ts.map +1 -1
- package/dist/components/calendar/pk-calendar.js +1 -1
- package/dist/components/calendar.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/color-input/pk-color-input.d.ts +1 -0
- package/dist/components/color-input/pk-color-input.d.ts.map +1 -1
- package/dist/components/color-input/pk-color-input.js +1 -1
- package/dist/components/color-input.js +1 -1
- package/dist/components/combobox/pk-combobox.d.ts.map +1 -1
- package/dist/components/combobox/pk-combobox.js +1 -1
- package/dist/components/combobox.js +1 -1
- package/dist/components/copy-button/pk-copy-button.js +1 -1
- package/dist/components/copy-button.js +1 -1
- package/dist/components/date-picker/pk-date-picker.d.ts +9 -1
- package/dist/components/date-picker/pk-date-picker.d.ts.map +1 -1
- package/dist/components/date-picker/pk-date-picker.js +1 -1
- package/dist/components/date-picker.js +1 -1
- package/dist/components/dropdown-menu/dropdown-menu-size.styles.d.ts.map +1 -1
- package/dist/components/dropdown-menu/pk-dropdown-item.js +1 -1
- package/dist/components/dropdown-menu/pk-dropdown-item.styles.d.ts.map +1 -1
- package/dist/components/dropdown-menu/pk-dropdown-label.js +1 -1
- package/dist/components/dropdown-menu/pk-dropdown-label.styles.d.ts.map +1 -1
- package/dist/components/dropdown-menu/pk-dropdown-menu.d.ts.map +1 -1
- package/dist/components/dropdown-menu/pk-dropdown-menu.js +1 -1
- package/dist/components/dropdown-menu.js +3 -3
- package/dist/components/editable-table/pk-editable-table.d.ts +1 -1
- package/dist/components/editable-table/pk-editable-table.d.ts.map +1 -1
- package/dist/components/editable-table/pk-editable-table.js +1 -1
- package/dist/components/editable-table.js +1 -1
- package/dist/components/popover/pk-popover.d.ts.map +1 -1
- package/dist/components/popover/pk-popover.js +1 -1
- package/dist/components/popover.js +1 -1
- package/dist/components/select/pk-option.js +1 -1
- package/dist/components/select/pk-option.styles.d.ts.map +1 -1
- package/dist/components/select/pk-select.d.ts.map +1 -1
- package/dist/components/select/pk-select.js +1 -1
- package/dist/components/select.js +2 -2
- package/dist/components/tabs/pk-tab.js +1 -1
- package/dist/components/tabs/pk-tab.styles.d.ts.map +1 -1
- package/dist/components/tabs.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-editor.js +1 -1
- package/dist/components/tiptap-editor.js +1 -1
- package/dist/components/tooltip/pk-tooltip.d.ts.map +1 -1
- package/dist/index.js +21 -21
- package/dist/plugin-kit.js +2 -2
- package/dist/register-components.js +1 -1
- package/dist/register.js +20 -81
- package/dist/utils/date.d.ts +9 -0
- package/dist/utils/date.d.ts.map +1 -1
- package/dist/utils/popup-pointer.d.ts +3 -0
- package/dist/utils/popup-pointer.d.ts.map +1 -1
- package/dist-loader/chunks/{pk-button-BlSs4e6V.js → pk-button-CK5FZiwP.js} +9 -5
- package/dist-loader/chunks/{pk-calendar-RXCDDhLI.js → pk-calendar-CoJWxcxi.js} +63 -8
- package/dist-loader/chunks/{pk-checkbox-hJCj8In8.js → pk-checkbox-CoDX2G3J.js} +2 -2
- package/dist-loader/chunks/{pk-color-input-BfNtLznP.js → pk-color-input-B73zaGYj.js} +11 -3
- package/dist-loader/chunks/{pk-combobox-1PJBcIrV.js → pk-combobox-fXGaY4L0.js} +11 -10
- package/dist-loader/chunks/{pk-date-picker-D4vCtbw-.js → pk-date-picker-CE4TlRRZ.js} +36 -15
- package/dist-loader/chunks/{pk-dialog-D1RZjwQN.js → pk-dialog-CP1YT85H.js} +4 -4
- package/dist-loader/chunks/{pk-dropdown-item-BJIhQ0Mw.js → pk-dropdown-item-DkZRcPJ5.js} +20 -5
- package/dist-loader/chunks/{pk-dropdown-menu-I1s3TBiA.js → pk-dropdown-menu-CajQAobW.js} +6 -6
- package/dist-loader/chunks/{pk-field-BnKPT_Kk.js → pk-field-CUySYljn.js} +24 -12
- package/dist-loader/chunks/{pk-input-Oarjv7Vc.js → pk-input-CXE7_rTQ.js} +6 -6
- package/dist-loader/chunks/{pk-lightswitch-D-UrNM3y.js → pk-lightswitch-BHEOy7aK.js} +4 -4
- package/dist-loader/chunks/{pk-option-CCZebfif.js → pk-option-vh8UvSAI.js} +12 -4
- package/dist-loader/chunks/{pk-popup-BNRyCsVX.js → pk-popup-BYFbKaHH.js} +2 -2
- package/dist-loader/chunks/{pk-select-BcbtjIoP.js → pk-select-CbmPJCx8.js} +11 -10
- package/dist-loader/chunks/{pk-textarea-CC6WXpIu.js → pk-textarea-Ch8JpP83.js} +4 -4
- package/dist-loader/chunks/{pk-time-picker-BtGXo-KJ.js → pk-time-picker-DZljwJn9.js} +4 -3
- package/dist-loader/chunks/{pk-tooltip-JJRxVXYD.js → pk-tooltip-DHiCn33o.js} +3 -3
- package/dist-loader/chunks/popup-pointer-BTS3Y6LE.js +32 -0
- package/dist-loader/chunks/{render-DApFfV9S.js → render-BCU9WDSk.js} +1 -1
- package/dist-loader/chunks/{icons-B1i-oRoD.js → svg-BCGsRUz7.js} +34 -1
- package/dist-loader/chunks/{tiptap-Db7MTUH1.js → tiptap-_LAjdgeV.js} +1 -1
- package/dist-loader/chunks/{tiptap.styles-DAH_90Fi.js → tiptap.styles-CDjt6Iz4.js} +1 -1
- package/dist-loader/components/button/button.js +1 -1
- package/dist-loader/components/button-group/button-group-text.js +1 -1
- package/dist-loader/components/calendar/calendar.js +1 -1
- package/dist-loader/components/checkbox/checkbox.js +1 -1
- package/dist-loader/components/checkbox-select/checkbox-select.js +1 -0
- package/dist-loader/components/code-editor/code-editor.js +7 -7
- package/dist-loader/components/color-input/color-input.js +1 -1
- package/dist-loader/components/combobox/combobox.js +1 -1
- package/dist-loader/components/copy-button/copy-button.js +3 -2
- 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 +9 -3
- package/dist-loader/components/dropdown-menu/dropdown-menu.js +1 -1
- package/dist-loader/components/editable-table/editable-table.js +16 -3
- package/dist-loader/components/field/field.js +1 -1
- package/dist-loader/components/icon/icon.js +43 -2
- package/dist-loader/components/input/input.js +1 -1
- package/dist-loader/components/input-group/input-group.js +1 -1
- package/dist-loader/components/lightswitch/lightswitch.js +1 -1
- package/dist-loader/components/popover/popover.js +6 -6
- package/dist-loader/components/popup/popup.js +1 -1
- package/dist-loader/components/radio-group/radio-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/tabs/tab.js +7 -1
- package/dist-loader/components/textarea/textarea.js +1 -1
- package/dist-loader/components/time-picker/time-picker.js +1 -1
- package/dist-loader/components/tiptap/tiptap-content.js +2 -2
- package/dist-loader/components/tiptap/tiptap-editor.js +13 -5
- package/dist-loader/components/tiptap/tiptap-input.js +3 -3
- package/dist-loader/components/toggle/toggle.js +1 -1
- package/dist-loader/components/tooltip/tooltip.js +1 -1
- package/package.json +8 -7
- package/dist/chunks/pk-button-Cilu5WAT.js.map +0 -1
- package/dist/chunks/pk-calendar-CcV-La-9.js.map +0 -1
- package/dist/chunks/pk-combobox-Dd1ik0Ko.js.map +0 -1
- package/dist/chunks/pk-date-picker-CkwU4DzD.js.map +0 -1
- package/dist/chunks/pk-dropdown-item-BFyjtsL5.js.map +0 -1
- package/dist/chunks/pk-dropdown-label-DfACId-K.js.map +0 -1
- package/dist/chunks/pk-dropdown-menu-DWlxkDIs.js.map +0 -1
- package/dist/chunks/pk-editable-table-pBkD6izs.js.map +0 -1
- package/dist/chunks/pk-option-C3Zqmu3z.js.map +0 -1
- package/dist/chunks/pk-popover-XZZdJ4WI.js.map +0 -1
- package/dist/chunks/pk-select-B17rV6BR.js.map +0 -1
- package/dist/chunks/pk-tab-CzV7pOdp.js.map +0 -1
- package/dist/chunks/popup-pointer-C8lypj8V.js +0 -21
- package/dist/chunks/popup-pointer-C8lypj8V.js.map +0 -1
- package/dist/register.js.map +0 -1
- package/dist-loader/chunks/popup-pointer-BC4n_sNb.js +0 -19
- package/dist-loader/chunks/svg-Boar0Kf1.js +0 -34
- /package/dist-loader/chunks/{animate-with-class-DT0jwaR_.js → animate-with-class-B2hHgK5M.js} +0 -0
- /package/dist-loader/chunks/{button-group-item.styles-Dwakbyx5.js → button-group-item.styles-BNc-ksl1.js} +0 -0
- /package/dist-loader/chunks/{codemirror-CSgOT0QM.js → codemirror-CHXb-wYU.js} +0 -0
- /package/dist-loader/chunks/{field-labels-D3lKQ2nq.js → field-labels-Vo3wHq49.js} +0 -0
- /package/dist-loader/chunks/{floating-ui-87vslRWW.js → floating-ui-BTBNFWAR.js} +0 -0
- /package/dist-loader/chunks/{has-slot-BGJeJdHr.js → has-slot-BZDcCpf9.js} +0 -0
- /package/dist-loader/chunks/{mirror-validator-C5XrXPaq.js → mirror-validator-DEz3BsbN.js} +0 -0
- /package/dist-loader/chunks/{overlay-lifecycle-C3tSQ3UR.js → overlay-lifecycle-BG4QMRLw.js} +0 -0
- /package/dist-loader/chunks/{pk-clear-BMZUzwDt.js → pk-clear-BRS8vkV-.js} +0 -0
- /package/dist-loader/chunks/{popup-content-animation.styles-S6CK-zPp.js → popup-content-animation.styles-C9ffC35f.js} +0 -0
- /package/dist-loader/chunks/{popup-placement-animation-WlEXnS85.js → popup-placement-animation-BPjq650B.js} +0 -0
- /package/dist-loader/chunks/{required-validator-0XwZtX9k.js → required-validator-DXqqPVeW.js} +0 -0
- /package/dist-loader/chunks/{sync-listbox-separators-Bcja51HC.js → sync-listbox-separators-CT3oGzTf.js} +0 -0
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { c as r, l as n, m as i, o, p as b, u as t } from "../../chunks/lit-Dnn7gEi2.js";
|
|
2
2
|
import { c as __decorate, l as PkElement } from "../../chunks/pk-base-BlxAYXJD.js";
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
3
|
+
import { m as check } from "../../chunks/svg-BCGsRUz7.js";
|
|
4
|
+
import "../../chunks/pk-button-CK5FZiwP.js";
|
|
5
|
+
import { n as renderIconHtml } from "../../chunks/render-BCU9WDSk.js";
|
|
5
6
|
//#region src/events/pk-copy.ts
|
|
6
7
|
/** Emitted when copy-button successfully copies text. */
|
|
7
8
|
var PkCopyEvent = class extends Event {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as PkDatePicker } from "../../chunks/pk-date-picker-
|
|
1
|
+
import { t as PkDatePicker } from "../../chunks/pk-date-picker-CE4TlRRZ.js";
|
|
2
2
|
export { PkDatePicker };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as PkDialog } from "../../chunks/pk-dialog-
|
|
1
|
+
import { t as PkDialog } from "../../chunks/pk-dialog-CP1YT85H.js";
|
|
2
2
|
export { PkDialog };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as PkDropdownItem } from "../../chunks/pk-dropdown-item-
|
|
1
|
+
import { t as PkDropdownItem } from "../../chunks/pk-dropdown-item-DkZRcPJ5.js";
|
|
2
2
|
export { PkDropdownItem };
|
|
@@ -5,6 +5,13 @@ var pkDropdownLabelStyles = i`
|
|
|
5
5
|
@layer pk-component {
|
|
6
6
|
:host {
|
|
7
7
|
display: block;
|
|
8
|
+
/*
|
|
9
|
+
* Slotted label copy inherits through the flat tree from this host
|
|
10
|
+
* when page metrics would otherwise leak via font:inherit chains.
|
|
11
|
+
*/
|
|
12
|
+
font-size: var(--pk-dropdown-label-font-size, 13px);
|
|
13
|
+
line-height: 1.3;
|
|
14
|
+
color: var(--pk-color-slate-700, rgba(96, 125, 159, 0.7));
|
|
8
15
|
}
|
|
9
16
|
|
|
10
17
|
/* Match v1 DropdownMenuLabel — text-slate-700, regular weight (not medium). */
|
|
@@ -13,10 +20,9 @@ var pkDropdownLabelStyles = i`
|
|
|
13
20
|
padding-block-start: 6px;
|
|
14
21
|
padding-block-end: 4px;
|
|
15
22
|
padding-inline: var(--pk-dropdown-label-padding-inline, 12px);
|
|
16
|
-
color:
|
|
17
|
-
font
|
|
23
|
+
color: inherit;
|
|
24
|
+
font: inherit;
|
|
18
25
|
font-weight: 400;
|
|
19
|
-
line-height: 1.3;
|
|
20
26
|
user-select: none;
|
|
21
27
|
pointer-events: none;
|
|
22
28
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as PkDropdownMenu } from "../../chunks/pk-dropdown-menu-
|
|
1
|
+
import { t as PkDropdownMenu } from "../../chunks/pk-dropdown-menu-CajQAobW.js";
|
|
2
2
|
export { PkDropdownMenu };
|
|
@@ -1,9 +1,22 @@
|
|
|
1
1
|
import { c as r, f as A, i as e, l as n, m as i, o, p as b, t as c, u as t } from "../../chunks/lit-Dnn7gEi2.js";
|
|
2
2
|
import { c as __decorate, i as PkFormAssociatedElement } from "../../chunks/pk-base-BlxAYXJD.js";
|
|
3
|
-
import {
|
|
3
|
+
import { J as xmark, S as gear, b as ellipsis, l as arrowUp, o as arrowDown, z as plus } from "../../chunks/svg-BCGsRUz7.js";
|
|
4
4
|
import { t as getIcon } from "../../chunks/registry-CmL0rH9r.js";
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
5
|
+
import "../../chunks/pk-button-CK5FZiwP.js";
|
|
6
|
+
import { t as RequiredValidator } from "../../chunks/required-validator-DXqqPVeW.js";
|
|
7
|
+
import "../../chunks/pk-checkbox-CoDX2G3J.js";
|
|
8
|
+
import "../../chunks/pk-color-input-B73zaGYj.js";
|
|
9
|
+
import "../../chunks/pk-input-CXE7_rTQ.js";
|
|
10
|
+
import "../../chunks/pk-textarea-Ch8JpP83.js";
|
|
11
|
+
import { n as renderIconHtml } from "../../chunks/render-BCU9WDSk.js";
|
|
12
|
+
import "../../chunks/pk-dropdown-item-DkZRcPJ5.js";
|
|
13
|
+
import "../../chunks/pk-dropdown-menu-CajQAobW.js";
|
|
14
|
+
import "../../chunks/pk-lightswitch-BHEOy7aK.js";
|
|
15
|
+
import "../../chunks/pk-option-vh8UvSAI.js";
|
|
16
|
+
import "../../chunks/pk-select-CbmPJCx8.js";
|
|
17
|
+
import "../../chunks/pk-date-picker-CE4TlRRZ.js";
|
|
18
|
+
import "../../chunks/pk-combobox-fXGaY4L0.js";
|
|
19
|
+
import "../../chunks/pk-time-picker-DZljwJn9.js";
|
|
7
20
|
//#region src/components/editable-table/editable-table-dnd.ts
|
|
8
21
|
/**
|
|
9
22
|
* Table-native pointer drag for `<pk-editable-table>` rows.
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as PkField } from "../../chunks/pk-field-
|
|
1
|
+
import { t as PkField } from "../../chunks/pk-field-CUySYljn.js";
|
|
2
2
|
export { PkField };
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import { A as
|
|
2
|
-
import {
|
|
1
|
+
import { a as o, f as A, l as n, m as i, p as b, u as t } from "../../chunks/lit-Dnn7gEi2.js";
|
|
2
|
+
import { c as __decorate, l as PkElement } from "../../chunks/pk-base-BlxAYXJD.js";
|
|
3
|
+
import { j as icons, t as iconToSvg } from "../../chunks/svg-BCGsRUz7.js";
|
|
4
|
+
import { n as normalizeIconName, r as registerIcons, t as getIcon } from "../../chunks/registry-CmL0rH9r.js";
|
|
3
5
|
//#region ../plugin-kit-icons/dist/all.js
|
|
4
6
|
/**
|
|
5
7
|
* Side-effect entry: register every curated icon for `<pk-icon icon="…">` lookup.
|
|
@@ -15,3 +17,42 @@ var entries = {};
|
|
|
15
17
|
for (const [name, icon] of Object.entries(icons)) entries[normalizeIconName(name)] = icon;
|
|
16
18
|
registerIcons(entries);
|
|
17
19
|
//#endregion
|
|
20
|
+
//#region src/components/icon/pk-icon.ts
|
|
21
|
+
var PkIcon = class PkIcon extends PkElement {
|
|
22
|
+
constructor(..._args) {
|
|
23
|
+
super(..._args);
|
|
24
|
+
this.icon = "";
|
|
25
|
+
this.name = "";
|
|
26
|
+
}
|
|
27
|
+
static {
|
|
28
|
+
this.styles = i`
|
|
29
|
+
:host {
|
|
30
|
+
display: inline-flex;
|
|
31
|
+
align-items: center;
|
|
32
|
+
justify-content: center;
|
|
33
|
+
flex: none;
|
|
34
|
+
width: 1em;
|
|
35
|
+
height: 1em;
|
|
36
|
+
line-height: 1;
|
|
37
|
+
vertical-align: -0.125em;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
svg {
|
|
41
|
+
display: block;
|
|
42
|
+
width: 100%;
|
|
43
|
+
height: 100%;
|
|
44
|
+
fill: currentColor;
|
|
45
|
+
}
|
|
46
|
+
`;
|
|
47
|
+
}
|
|
48
|
+
render() {
|
|
49
|
+
const icon = getIcon(this.icon || this.name);
|
|
50
|
+
if (!icon) return A;
|
|
51
|
+
return b`${o(iconToSvg(icon, { title: this.label }))}`;
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
__decorate([n()], PkIcon.prototype, "icon", void 0);
|
|
55
|
+
__decorate([n()], PkIcon.prototype, "name", void 0);
|
|
56
|
+
__decorate([n()], PkIcon.prototype, "label", void 0);
|
|
57
|
+
PkIcon = __decorate([t("pk-icon")], PkIcon);
|
|
58
|
+
//#endregion
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as PkInput } from "../../chunks/pk-input-
|
|
1
|
+
import { t as PkInput } from "../../chunks/pk-input-CXE7_rTQ.js";
|
|
2
2
|
export { PkInput };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { m as i, p as b, s as e, u as t } from "../../chunks/lit-Dnn7gEi2.js";
|
|
2
2
|
import { a as HostAriaMirror, c as __decorate, l as PkElement } from "../../chunks/pk-base-BlxAYXJD.js";
|
|
3
|
-
import { n as buttonGroupCornerRadiusStyles, r as buttonGroupCornerRoleStyles, t as buttonGroupBorderJoinStyles } from "../../chunks/button-group-item.styles-
|
|
3
|
+
import { n as buttonGroupCornerRadiusStyles, r as buttonGroupCornerRoleStyles, t as buttonGroupBorderJoinStyles } from "../../chunks/button-group-item.styles-BNc-ksl1.js";
|
|
4
4
|
//#region src/components/input-group/pk-input-group.styles.ts
|
|
5
5
|
var pkInputGroupStyles = [
|
|
6
6
|
buttonGroupCornerRoleStyles(),
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as PkLightswitch } from "../../chunks/pk-lightswitch-
|
|
1
|
+
import { t as PkLightswitch } from "../../chunks/pk-lightswitch-BHEOy7aK.js";
|
|
2
2
|
export { PkLightswitch };
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { d as registerDismissible, f as unregisterDismissible, n as uniqueId, u as isTopDismissible } from "../../chunks/pk-a11y-Cx5RZvhu.js";
|
|
2
2
|
import { c as r, f as A, i as e, l as n, m as i, p as b, s as e$1, u as t } from "../../chunks/lit-Dnn7gEi2.js";
|
|
3
3
|
import { c as __decorate, l as PkElement } from "../../chunks/pk-base-BlxAYXJD.js";
|
|
4
|
-
import { r as buttonGroupCornerRoleStyles } from "../../chunks/button-group-item.styles-
|
|
5
|
-
import { i as PkShowEvent, n as PkAfterShowEvent, r as PkHideEvent, t as PkAfterHideEvent } from "../../chunks/overlay-lifecycle-
|
|
6
|
-
import { i as waitForPopupReposition, r as syncPopupPlacementAnimation } from "../../chunks/popup-placement-animation-
|
|
7
|
-
import { t as popupContentAnimationStyles } from "../../chunks/popup-content-animation.styles-
|
|
8
|
-
import { n as resolveElementById } from "../../chunks/pk-popup-
|
|
9
|
-
import { n as isPointerInsideOverlay } from "../../chunks/popup-pointer-
|
|
4
|
+
import { r as buttonGroupCornerRoleStyles } from "../../chunks/button-group-item.styles-BNc-ksl1.js";
|
|
5
|
+
import { i as PkShowEvent, n as PkAfterShowEvent, r as PkHideEvent, t as PkAfterHideEvent } from "../../chunks/overlay-lifecycle-BG4QMRLw.js";
|
|
6
|
+
import { i as waitForPopupReposition, r as syncPopupPlacementAnimation } from "../../chunks/popup-placement-animation-BPjq650B.js";
|
|
7
|
+
import { t as popupContentAnimationStyles } from "../../chunks/popup-content-animation.styles-C9ffC35f.js";
|
|
8
|
+
import { n as resolveElementById } from "../../chunks/pk-popup-BYFbKaHH.js";
|
|
9
|
+
import { n as isPointerInsideOverlay } from "../../chunks/popup-pointer-BTS3Y6LE.js";
|
|
10
10
|
//#region src/components/popover/pk-popover.styles.ts
|
|
11
11
|
var pkPopoverStyles = [
|
|
12
12
|
buttonGroupCornerRoleStyles(),
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as PkPopup } from "../../chunks/pk-popup-
|
|
1
|
+
import { t as PkPopup } from "../../chunks/pk-popup-BYFbKaHH.js";
|
|
2
2
|
export { PkPopup };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { c as r, f as A, i as e, l as n, m as i, p as b, s as e$1, u as t } from "../../chunks/lit-Dnn7gEi2.js";
|
|
2
2
|
import { c as __decorate, i as PkFormAssociatedElement, n as formControlStyles } from "../../chunks/pk-base-BlxAYXJD.js";
|
|
3
|
-
import { t as RequiredValidator } from "../../chunks/required-validator-
|
|
4
|
-
import { t as HasSlotController } from "../../chunks/has-slot-
|
|
5
|
-
import { n as readLegacyInstructions, t as hasInstructionContent } from "../../chunks/field-labels-
|
|
3
|
+
import { t as RequiredValidator } from "../../chunks/required-validator-DXqqPVeW.js";
|
|
4
|
+
import { t as HasSlotController } from "../../chunks/has-slot-BZDcCpf9.js";
|
|
5
|
+
import { n as readLegacyInstructions, t as hasInstructionContent } from "../../chunks/field-labels-Vo3wHq49.js";
|
|
6
6
|
//#region src/components/radio-group/pk-radio-group.styles.ts
|
|
7
7
|
var pkRadioGroupStyles = i`
|
|
8
8
|
@layer pk-component {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as PkOption } from "../../chunks/pk-option-
|
|
1
|
+
import { t as PkOption } from "../../chunks/pk-option-vh8UvSAI.js";
|
|
2
2
|
export { PkOption };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as PkSelect } from "../../chunks/pk-select-
|
|
1
|
+
import { t as PkSelect } from "../../chunks/pk-select-CbmPJCx8.js";
|
|
2
2
|
export { PkSelect };
|
|
@@ -87,6 +87,12 @@ var pkTabStyles = i`
|
|
|
87
87
|
height: auto;
|
|
88
88
|
min-height: auto;
|
|
89
89
|
align-items: stretch;
|
|
90
|
+
/* Pin type metrics for slotted labels — vars cascade from pk-tabs. */
|
|
91
|
+
font-family: var(--pk-font-family);
|
|
92
|
+
font-size: var(--pk-tabs-trigger-font-size, 13px);
|
|
93
|
+
font-weight: var(--pk-tabs-trigger-font-weight, 400);
|
|
94
|
+
line-height: var(--pk-tabs-trigger-line-height, 1.4);
|
|
95
|
+
color: var(--pk-tabs-trigger-color, inherit);
|
|
90
96
|
}
|
|
91
97
|
|
|
92
98
|
.trigger {
|
|
@@ -103,7 +109,7 @@ var pkTabStyles = i`
|
|
|
103
109
|
border-top: var(--pk-tabs-trigger-border-top, 0 solid transparent);
|
|
104
110
|
border-radius: var(--pk-tabs-trigger-radius, var(--pk-radius-sm));
|
|
105
111
|
background: transparent;
|
|
106
|
-
color:
|
|
112
|
+
color: inherit;
|
|
107
113
|
font: inherit;
|
|
108
114
|
font-family: var(--pk-font-family);
|
|
109
115
|
font-size: var(--pk-tabs-trigger-font-size, 13px);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as PkTextarea } from "../../chunks/pk-textarea-
|
|
1
|
+
import { t as PkTextarea } from "../../chunks/pk-textarea-Ch8JpP83.js";
|
|
2
2
|
export { PkTextarea };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as PkTimePicker } from "../../chunks/pk-time-picker-
|
|
1
|
+
import { t as PkTimePicker } from "../../chunks/pk-time-picker-DZljwJn9.js";
|
|
2
2
|
export { PkTimePicker };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { l as n, m as i, p as b, s as e, u as t } from "../../chunks/lit-Dnn7gEi2.js";
|
|
2
2
|
import { c as __decorate, l as PkElement } from "../../chunks/pk-base-BlxAYXJD.js";
|
|
3
|
-
import { k as Editor } from "../../chunks/tiptap-
|
|
4
|
-
import { A as createTiptapExtensions, i as createVariableTagDomNodeView, k as valueToContent, t as tiptapContentProseMirrorStyles } from "../../chunks/tiptap.styles-
|
|
3
|
+
import { k as Editor } from "../../chunks/tiptap-_LAjdgeV.js";
|
|
4
|
+
import { A as createTiptapExtensions, i as createVariableTagDomNodeView, k as valueToContent, t as tiptapContentProseMirrorStyles } from "../../chunks/tiptap.styles-CDjt6Iz4.js";
|
|
5
5
|
//#region src/components/tiptap/pk-tiptap-content.styles.ts
|
|
6
6
|
var pkTiptapContentStyles = i`
|
|
7
7
|
@layer pk-component {
|
|
@@ -1,12 +1,20 @@
|
|
|
1
1
|
import { n as uniqueId } from "../../chunks/pk-a11y-Cx5RZvhu.js";
|
|
2
2
|
import { a as o, c as r, f as A, l as n, m as i, p as b, s as e, u as t } from "../../chunks/lit-Dnn7gEi2.js";
|
|
3
3
|
import { c as __decorate, i as PkFormAssociatedElement, n as formControlStyles } from "../../chunks/pk-base-BlxAYXJD.js";
|
|
4
|
-
import { B as
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
import
|
|
8
|
-
import
|
|
4
|
+
import { A as highlighter, B as quoteRight, C as h1, D as h5, E as h4, F as listOl, G as textSlash, H as subscript, I as listUl, K as triangleExclamation, L as minus, M as italic, O as h6, P as link, R as paragraph, T as h3, U as superscript, V as strikethrough, W as table, a as alignRight, c as arrowRotateRight, d as bold, f as bracketsCurly, h as chevronDown, i as alignLeft, k as heading, n as alignCenter, q as underline, r as alignJustify, s as arrowRotateLeft, w as h2, x as fileDashedLine, y as code } from "../../chunks/svg-BCGsRUz7.js";
|
|
5
|
+
import "../../chunks/pk-button-CK5FZiwP.js";
|
|
6
|
+
import { t as MirrorValidator } from "../../chunks/mirror-validator-DEz3BsbN.js";
|
|
7
|
+
import "../../chunks/pk-checkbox-CoDX2G3J.js";
|
|
8
|
+
import "../../chunks/pk-input-CXE7_rTQ.js";
|
|
9
|
+
import { M as posToDOMRect, j as getMarkRange, k as Editor } from "../../chunks/tiptap-_LAjdgeV.js";
|
|
10
|
+
import { A as createTiptapExtensions, D as getFatalTiptapContentError, O as normalizeContentArray, S as openCraftElementLinkSelector, _ as getLinkOpenInNewTab, a as getToolbarGroupDefaultIcon, b as getCraftLinkOptions, c as isFormattingToolbarPreset, d as parseToolbarConfig, f as runToolbarButton, g as getLinkEditState, h as applyLinkToEditor, i as createVariableTagDomNodeView, k as valueToContent, l as isHeadingsOnlyToolbarPreset, m as isTiptapButtonActive, o as getToolbarGroupMenuItems, p as toolbarIncludesButton, r as tiptapProseMirrorStyles, s as getToolbarGroupTriggerState, u as isToolbarButtonActive, v as getSelectedText, x as getLinkOptionsElementSiteId, y as unsetLinkFromEditor } from "../../chunks/tiptap.styles-CDjt6Iz4.js";
|
|
11
|
+
import { n as renderIconHtml } from "../../chunks/render-BCU9WDSk.js";
|
|
12
|
+
import "../../chunks/pk-field-CUySYljn.js";
|
|
13
|
+
import "../../chunks/pk-dialog-CP1YT85H.js";
|
|
14
|
+
import "../../chunks/pk-dropdown-item-DkZRcPJ5.js";
|
|
15
|
+
import "../../chunks/pk-dropdown-menu-CajQAobW.js";
|
|
9
16
|
import "../dropdown-menu/dropdown-separator.js";
|
|
17
|
+
import "../../chunks/pk-tooltip-DHiCn33o.js";
|
|
10
18
|
//#region src/components/tiptap/tiptap-editor-host.ts
|
|
11
19
|
function serializeTiptapDocumentContent(content) {
|
|
12
20
|
return JSON.stringify(normalizeContentArray(content));
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { c as r, l as n, m as i, p as b, s as e, u as t } from "../../chunks/lit-Dnn7gEi2.js";
|
|
2
2
|
import { c as __decorate, i as PkFormAssociatedElement, n as formControlStyles } from "../../chunks/pk-base-BlxAYXJD.js";
|
|
3
|
-
import { t as MirrorValidator } from "../../chunks/mirror-validator-
|
|
4
|
-
import { k as Editor } from "../../chunks/tiptap-
|
|
5
|
-
import { C as contentToValue, E as valueToContent, T as flattenVariableOptions, i as createVariableTagDomNodeView, j as createTiptapInputExtensions, n as tiptapInputProseMirrorStyles, w as dedupeVariableOptions } from "../../chunks/tiptap.styles-
|
|
3
|
+
import { t as MirrorValidator } from "../../chunks/mirror-validator-DEz3BsbN.js";
|
|
4
|
+
import { k as Editor } from "../../chunks/tiptap-_LAjdgeV.js";
|
|
5
|
+
import { C as contentToValue, E as valueToContent, T as flattenVariableOptions, i as createVariableTagDomNodeView, j as createTiptapInputExtensions, n as tiptapInputProseMirrorStyles, w as dedupeVariableOptions } from "../../chunks/tiptap.styles-CDjt6Iz4.js";
|
|
6
6
|
//#region src/components/tiptap/pk-tiptap-input.styles.ts
|
|
7
7
|
var pkTiptapInputStyles = i`
|
|
8
8
|
@layer pk-component {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { f as A, l as n, m as i, p as b, u as t } from "../../chunks/lit-Dnn7gEi2.js";
|
|
2
2
|
import { c as __decorate, l as PkElement } from "../../chunks/pk-base-BlxAYXJD.js";
|
|
3
|
-
import { i as buttonGroupIndentStyles, n as buttonGroupCornerRadiusStyles, r as buttonGroupCornerRoleStyles, t as buttonGroupBorderJoinStyles } from "../../chunks/button-group-item.styles-
|
|
3
|
+
import { i as buttonGroupIndentStyles, n as buttonGroupCornerRadiusStyles, r as buttonGroupCornerRoleStyles, t as buttonGroupBorderJoinStyles } from "../../chunks/button-group-item.styles-BNc-ksl1.js";
|
|
4
4
|
//#region src/components/toggle/pk-toggle.styles.ts
|
|
5
5
|
var pkToggleStyles = [
|
|
6
6
|
buttonGroupCornerRoleStyles(),
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as PkTooltip } from "../../chunks/pk-tooltip-
|
|
1
|
+
import { t as PkTooltip } from "../../chunks/pk-tooltip-DHiCn33o.js";
|
|
2
2
|
export { PkTooltip };
|
package/package.json
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@verbb/plugin-kit-web",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.5",
|
|
4
4
|
"description": "Plugin Kit web components (shadow DOM, Craft design system)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"sideEffects": [
|
|
8
8
|
"**/*.css",
|
|
9
|
+
"./src/components/**/*.ts",
|
|
9
10
|
"./dist/register.js",
|
|
10
11
|
"./dist/components/**/*.js",
|
|
11
12
|
"./dist-loader/**/*.js"
|
|
@@ -935,18 +936,18 @@
|
|
|
935
936
|
},
|
|
936
937
|
"peerDependencies": {
|
|
937
938
|
"@floating-ui/dom": "^1.7.3",
|
|
938
|
-
"@verbb/plugin-kit-core": "^2.0.
|
|
939
|
-
"@verbb/plugin-kit-icons": "^2.0.
|
|
939
|
+
"@verbb/plugin-kit-core": "^2.0.5",
|
|
940
|
+
"@verbb/plugin-kit-icons": "^2.0.5",
|
|
940
941
|
"lit": "^3.3.0"
|
|
941
942
|
},
|
|
942
943
|
"license": "MIT",
|
|
943
944
|
"dependencies": {
|
|
944
945
|
"@floating-ui/dom": "^1.7.3",
|
|
945
946
|
"@tiptap/core": "^3.22.4",
|
|
946
|
-
"@verbb/plugin-kit-codemirror-core": "2.0.
|
|
947
|
-
"@verbb/plugin-kit-core": "^2.0.
|
|
948
|
-
"@verbb/plugin-kit-icons": "^2.0.
|
|
949
|
-
"@verbb/plugin-kit-tiptap-core": "^2.0.
|
|
947
|
+
"@verbb/plugin-kit-codemirror-core": "2.0.5",
|
|
948
|
+
"@verbb/plugin-kit-core": "^2.0.5",
|
|
949
|
+
"@verbb/plugin-kit-icons": "^2.0.5",
|
|
950
|
+
"@verbb/plugin-kit-tiptap-core": "^2.0.5",
|
|
950
951
|
"composed-offset-position": "^0.0.6",
|
|
951
952
|
"lit": "^3.3.0"
|
|
952
953
|
},
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pk-button-Cilu5WAT.js","names":[],"sources":["../../src/components/button/pk-button.styles.ts","../../src/components/button/pk-button.ts"],"sourcesContent":["import { css } from 'lit';\n\nimport { hostDisplayInlineBlock } from '../../base/styles.js';\nimport { iconStyles } from '../../base/icon.styles.js';\nimport {\n buttonGroupBorderJoinStyles,\n buttonGroupCornerRadiusStyles,\n buttonGroupCornerRoleStyles,\n buttonGroupIndentStyles,\n} from '../button-group/button-group-item.styles.js';\n\nexport const pkButtonStyles = [\n hostDisplayInlineBlock,\n iconStyles,\n buttonGroupCornerRoleStyles(),\n buttonGroupCornerRadiusStyles('.button'),\n buttonGroupIndentStyles(),\n buttonGroupBorderJoinStyles('.button'),\n css`\n @layer pk-component {\n :host {\n font-family: var(--pk-font-family);\n font-size: var(--pk-font-size-base);\n line-height: var(--pk-line-height);\n cursor: pointer;\n --pk-btn-height: var(--pk-btn-height-default);\n --pk-btn-font: var(--pk-btn-font-default);\n --pk-btn-padding-inline: var(--pk-btn-padding-inline-default);\n --pk-btn-icon-size: var(--pk-btn-icon-size-default);\n --pk-btn-icon-gap: var(--pk-btn-icon-gap-default);\n --pk-btn-caret-size: var(--pk-btn-caret-size-default);\n --pk-btn-radius: var(--pk-btn-radius-default);\n }\n\n :host([disabled]) {\n cursor: not-allowed;\n pointer-events: none;\n }\n\n :host([loading]):not([disabled]) {\n pointer-events: none;\n }\n\n .button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--pk-btn-icon-gap);\n box-sizing: border-box;\n width: auto;\n margin: 0;\n /* Every button carries a 1px border (transparent for fill/plain variants) so the box\n * model is identical across variants and states. Prevents width shift when swapping a\n * button between filled and outline/dashed, or toggling states. Matches Bootstrap\n * (transparent baseline) and (border always present, only color changes).\n */\n border: 1px solid transparent;\n border-radius: var(--pk-btn-radius);\n font: inherit;\n font-size: var(--pk-btn-font);\n font-weight: 400;\n line-height: 1.2;\n text-decoration: none;\n white-space: nowrap;\n /* Inherit host cursor so className/style (e.g. cursor-move) pierce shadow. */\n cursor: inherit;\n user-select: none;\n vertical-align: middle;\n appearance: none;\n background: var(--pk-btn-fill, var(--pk-action-fill));\n color: var(--pk-btn-on, var(--pk-action-on));\n height: var(--pk-btn-height);\n min-height: var(--pk-btn-height);\n /* Block padding defaults to 0 (height tokens center content). Override for nav rows. */\n padding-block: var(--pk-btn-padding-block, 0);\n padding-inline: var(--pk-btn-padding-inline);\n transition: background-color 0.12s ease, box-shadow 0.12s ease, color 0.12s ease;\n }\n\n .button:disabled {\n opacity: 0.5;\n }\n\n .icon-slot {\n display: none;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n line-height: 0;\n }\n\n .icon-slot--has-content {\n display: inline-flex;\n }\n\n /* Fixed token sizes for all icons (labeled or icon-only) — matches plugin-kit-react Button. */\n .icon-slot slot::slotted(svg),\n slot[name='start']::slotted(svg),\n slot[name='end']::slotted(svg) {\n display: block;\n width: var(--pk-btn-icon-size);\n height: var(--pk-btn-icon-size);\n flex-shrink: 0;\n pointer-events: none;\n }\n\n .icon-slot slot::slotted(img),\n slot[name='start']::slotted(img),\n slot[name='end']::slotted(img) {\n display: block;\n width: var(--pk-btn-icon-size);\n height: var(--pk-btn-icon-size);\n object-fit: contain;\n flex-shrink: 0;\n pointer-events: none;\n }\n\n /* pk-icon sizes itself from font-size (1em), so scale it to the\n * icon token. This keeps the idiomatic slotted pk-icon usage in\n * sync with raw slotted svg. Set width/height explicitly — %/size-full\n * collapses when the icon-slot has no definite box.\n */\n .icon-slot slot::slotted(pk-icon),\n slot[name='start']::slotted(pk-icon),\n slot[name='end']::slotted(pk-icon) {\n font-size: var(--pk-btn-icon-size);\n width: var(--pk-btn-icon-size);\n height: var(--pk-btn-icon-size);\n /* Kill pk-icon's text-baseline nudge (-0.125em) — flex slots center optically. */\n vertical-align: 0;\n flex-shrink: 0;\n pointer-events: none;\n }\n\n .label {\n display: inline-flex;\n align-items: center;\n min-width: 0;\n line-height: 1.2;\n }\n\n /* Trailing slot (status): grow + clip the label so end sits at the far edge\n * and long titles truncate instead of colliding with the indicator.\n */\n .button:has(.icon-slot--end.icon-slot--has-content) .label:not(.is-empty) {\n flex: 1 1 auto;\n overflow: hidden;\n }\n\n .label.is-empty {\n display: none;\n }\n\n /* Icon-only (no label): square hit box = size height. Button owns the target;\n * glyph size comes from --pk-btn-icon-size. Do not Tailwind-size the Icon.\n * Opt out with icon (compact), size=none, or group-trigger (narrow disclosure cap).\n */\n :host(:not([icon]):not([size='none']):not([group-trigger])) .button:not(.has-label) {\n width: var(--pk-btn-height);\n min-width: var(--pk-btn-height);\n padding-inline: 0;\n }\n\n /* Compact density (icon attr): padless box that hugs the glyph.\n * size still drives --pk-btn-icon-size; height/width tiers do not apply.\n * Use for dense x / ellipsis in cells — not for table action rows (prefer square above).\n * line-height: 0 collapses whitespace flex-struts so the glyph sits dead-center.\n */\n :host([icon]) {\n display: inline-flex;\n line-height: 0;\n vertical-align: middle;\n }\n\n :host([icon]) .button {\n display: flex;\n width: auto;\n min-width: 0;\n height: auto;\n min-height: 0;\n padding-inline: 0.25rem;\n padding-block: 0;\n line-height: 0;\n align-items: center;\n justify-content: center;\n }\n\n /* Keep label space while loading even before slotchange runs. */\n .button.loading .label.is-empty {\n display: inline-flex;\n visibility: hidden;\n }\n\n /* Sizes — token-driven scale (see tokens.css) */\n :host([size='xxs']) {\n --pk-btn-height: var(--pk-btn-height-xxs);\n --pk-btn-font: var(--pk-btn-font-xxs);\n --pk-btn-padding-inline: var(--pk-btn-padding-inline-xxs);\n --pk-btn-icon-size: var(--pk-btn-icon-size-xxs);\n --pk-btn-icon-gap: var(--pk-btn-icon-gap-xxs);\n --pk-btn-caret-size: var(--pk-btn-caret-size-xxs);\n --pk-btn-radius: var(--pk-btn-radius-xxs);\n }\n\n :host([size='xs']) {\n --pk-btn-height: var(--pk-btn-height-xs);\n --pk-btn-font: var(--pk-btn-font-xs);\n --pk-btn-padding-inline: var(--pk-btn-padding-inline-xs);\n --pk-btn-icon-size: var(--pk-btn-icon-size-xs);\n --pk-btn-icon-gap: var(--pk-btn-icon-gap-xs);\n --pk-btn-caret-size: var(--pk-btn-caret-size-xs);\n --pk-btn-radius: var(--pk-btn-radius-xs);\n }\n\n :host([size='sm']) {\n --pk-btn-height: var(--pk-btn-height-sm);\n --pk-btn-font: var(--pk-btn-font-sm);\n --pk-btn-padding-inline: var(--pk-btn-padding-inline-sm);\n --pk-btn-icon-size: var(--pk-btn-icon-size-sm);\n --pk-btn-icon-gap: var(--pk-btn-icon-gap-sm);\n --pk-btn-caret-size: var(--pk-btn-caret-size-sm);\n --pk-btn-radius: var(--pk-btn-radius-sm);\n }\n\n :host([size='default']) {\n --pk-btn-height: var(--pk-btn-height-default);\n --pk-btn-font: var(--pk-btn-font-default);\n --pk-btn-padding-inline: var(--pk-btn-padding-inline-default);\n --pk-btn-icon-size: var(--pk-btn-icon-size-default);\n --pk-btn-icon-gap: var(--pk-btn-icon-gap-default);\n --pk-btn-caret-size: var(--pk-btn-caret-size-default);\n --pk-btn-radius: var(--pk-btn-radius-default);\n }\n\n :host([size='lg']) {\n --pk-btn-height: var(--pk-btn-height-lg);\n --pk-btn-font: var(--pk-btn-font-lg);\n --pk-btn-padding-inline: var(--pk-btn-padding-inline-lg);\n --pk-btn-icon-size: var(--pk-btn-icon-size-lg);\n --pk-btn-icon-gap: var(--pk-btn-icon-gap-lg);\n --pk-btn-caret-size: var(--pk-btn-caret-size-lg);\n --pk-btn-radius: var(--pk-btn-radius-lg);\n }\n\n :host([size='xl']) {\n --pk-btn-height: var(--pk-btn-height-xl);\n --pk-btn-font: var(--pk-btn-font-xl);\n --pk-btn-padding-inline: var(--pk-btn-padding-inline-xl);\n --pk-btn-icon-size: var(--pk-btn-icon-size-xl);\n --pk-btn-icon-gap: var(--pk-btn-icon-gap-xl);\n --pk-btn-caret-size: var(--pk-btn-caret-size-xl);\n --pk-btn-radius: var(--pk-btn-radius-xl);\n }\n\n /* No preset scale — size to content or set --pk-btn-* on the host for one-off dimensions\n * (height, padding, font, icon, radius) without fighting a named size tier.\n * Pair with icon for a padless glyph host, or set --pk-btn-padding-inline / --pk-btn-height yourself.\n */\n :host([size='none']) {\n --pk-btn-height: auto;\n --pk-btn-font: inherit;\n --pk-btn-padding-inline: 0px;\n --pk-btn-padding-block: 0px;\n --pk-btn-icon-size: 1em;\n --pk-btn-icon-gap: 0px;\n --pk-btn-caret-size: 1em;\n --pk-btn-radius: 0px;\n }\n\n :host([size='none']) .button {\n height: auto;\n min-height: auto;\n width: 100%;\n }\n\n /* Variants */\n :host([variant='default']) {\n --pk-btn-fill: var(--pk-action-fill);\n --pk-btn-fill-hover: var(--pk-action-fill-hover);\n --pk-btn-fill-active: var(--pk-action-fill-active);\n --pk-btn-on: var(--pk-action-on);\n }\n\n :host([variant='primary']) {\n --pk-btn-fill: var(--pk-action-primary-fill);\n --pk-btn-fill-hover: var(--pk-action-primary-fill-hover);\n --pk-btn-fill-active: var(--pk-action-primary-fill-active);\n --pk-btn-on: var(--pk-action-primary-on);\n }\n\n :host([variant='primary']) .button,\n :host([variant='secondary']) .button {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n }\n\n :host([variant='secondary']) {\n --pk-btn-fill: var(--pk-color-gray-500);\n --pk-btn-fill-hover: var(--pk-color-gray-550);\n --pk-btn-fill-active: var(--pk-color-gray-600);\n --pk-btn-on: var(--pk-color-white);\n }\n\n :host([variant='outline']) .button {\n background: transparent;\n border-color: var(--pk-color-slate-400);\n color: var(--pk-color-gray-700);\n }\n\n :host([variant='transparent']) .button {\n background: transparent;\n color: var(--pk-color-gray-700);\n }\n\n /* link/none opt out of the shared transparent 1px border: they never render a border, so\n * carrying one only pads the box by 2px inline (and 2px block at size='none', where height\n * is auto). These are the \"inline text\" / \"no chrome\" variants — content-sized is the point,\n * and neither participates in button-group border joins. Other variants keep the stable box.\n */\n /*\n * Craft CP sets --link-color on :root (inherits into shadow). Prefer that,\n * then kit --pk-color-link — not sky-700 (reads as a different “CP blue”).\n * Color on :host so consumer utilities (e.g. text-[var(--link-color)]) can override.\n * Height must be content-sized — default --pk-btn-height (34px) bloated table rows.\n */\n :host([variant='link']) {\n color: var(--link-color, var(--pk-color-link));\n --pk-btn-height: auto;\n --pk-btn-padding-inline: 0;\n --pk-btn-padding-block: 0;\n }\n\n :host([variant='link']) .button {\n background: transparent;\n border-width: 0;\n border-radius: 0;\n color: inherit;\n width: auto;\n height: auto;\n min-height: 0;\n padding: 0;\n text-underline-offset: 2px;\n }\n\n :host([variant='dashed']) .button {\n background: transparent;\n border-style: dashed;\n border-color: var(--pk-color-slate-500);\n color: var(--pk-color-gray-700);\n }\n\n :host([variant='none']) .button {\n border-width: 0;\n border-radius: 0;\n background: transparent;\n color: inherit;\n }\n\n /* Interaction — pseudo-classes only; playground matrices use dev/pk-button-demo-states.css */\n .button:hover:not(:disabled) {\n background: var(--pk-btn-fill-hover, var(--pk-btn-fill));\n }\n\n :host([variant='outline']) .button:hover:not(:disabled),\n :host([variant='transparent']) .button:hover:not(:disabled),\n :host([variant='dashed']) .button:hover:not(:disabled) {\n background: var(--pk-color-slate-150);\n }\n\n :host([variant='link']) .button:hover:not(:disabled) {\n background: transparent;\n text-decoration: underline;\n }\n\n :host([variant='none']) .button:hover:not(:disabled) {\n background: transparent;\n }\n\n .button:active:not(:disabled) {\n background: var(--pk-btn-fill-active, var(--pk-btn-fill-hover, var(--pk-btn-fill)));\n }\n\n :host([variant='outline']) .button:active:not(:disabled),\n :host([variant='transparent']) .button:active:not(:disabled),\n :host([variant='dashed']) .button:active:not(:disabled) {\n background: var(--pk-color-slate-200);\n }\n\n :host([variant='link']) .button:active:not(:disabled),\n :host([variant='none']) .button:active:not(:disabled) {\n background: transparent;\n }\n\n .button:focus {\n outline: none;\n }\n\n .button:focus-visible {\n box-shadow: var(--pk-shadow-focus);\n }\n\n /* Bordered variants: fold the button's own border into the focus ring by recoloring it to\n * the accent (and solidifying dashed) so focus reads as one cohesive ring instead of a\n * doubled border. The ring is thinned to 1px here because the recolored 1px border already\n * supplies the other half — total 2px, matching the filled variants' ring weight.\n */\n :host([variant='outline']) .button:focus-visible,\n :host([variant='dashed']) .button:focus-visible {\n border-color: var(--pk-color-sky-600);\n box-shadow: 0 0 0 1px var(--pk-color-sky-600), 0 0 5px 1px hsl(from var(--pk-color-sky-600) h s l / 0.7);\n }\n\n :host([variant='dashed']) .button:focus-visible {\n border-style: solid;\n }\n\n :host(.pk-dialog__close) .button:focus-visible {\n box-shadow: 0 0 0 2px var(--pk-color-gray-600);\n }\n\n :host-context(pk-button-group) {\n position: relative;\n }\n\n :host-context(pk-button-group[orientation='vertical']) {\n display: block;\n width: 100%;\n max-width: 100%;\n box-sizing: border-box;\n }\n\n :host-context(pk-button-group[orientation='vertical']) .button {\n width: 100%;\n box-sizing: border-box;\n }\n\n :host-context(pk-button-group:focus-visible) {\n z-index: 2;\n }\n\n /* Bordered variants — matching border divider (filled uses margin gap via buttonGroupIndentStyles) */\n\n :host([variant='primary']) .button:focus-visible,\n :host([variant='secondary']) .button:focus-visible {\n box-shadow: var(--pk-shadow-focus-inset);\n }\n\n :host-context(pk-button-group[exclusive]):host([aria-pressed='true']) .button {\n background: var(--pk-color-gray-500);\n color: var(--pk-color-white);\n }\n\n :host-context(pk-button-group[exclusive]):host([aria-pressed='true']) .button:hover:not(:disabled) {\n background: var(--pk-color-gray-550);\n }\n\n :host-context(pk-button-group[exclusive]):host([aria-pressed='true']) .button:active:not(:disabled) {\n background: var(--pk-color-gray-600);\n }\n\n :host-context(pk-button-group[exclusive]):host([aria-pressed='true']) .button:focus-visible {\n box-shadow: var(--pk-shadow-focus);\n }\n\n :host([variant='link']) .button:focus-visible {\n box-shadow: none;\n text-decoration: underline;\n }\n\n .button.loading {\n position: relative;\n cursor: default;\n pointer-events: none;\n }\n\n .label.loading {\n visibility: hidden;\n }\n\n .button.loading .icon-slot,\n .button.loading slot[name='start']::slotted(*),\n .button.loading slot[name='end']::slotted(*) {\n visibility: hidden;\n }\n\n .button.caret .icon-slot--end.icon-slot--has-content {\n display: none;\n }\n\n /* Scope to the caret span — the button host also gets class caret when\n with-caret is set; an unscoped .caret rule was adding 2px margin\n to the whole button and shifting dropdown anchors left. */\n .button > .caret {\n display: inline-flex;\n align-self: center;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n line-height: 0;\n /* Sits slightly further from the label than the flex gap alone. */\n margin-inline-start: 2px;\n }\n\n /* Caret has its own per-size token (--pk-btn-caret-size), kept deliberately smaller than\n * --pk-btn-icon-size so it reads as a subordinate dropdown affordance next to real icons.\n */\n .button > .caret svg {\n display: block;\n width: var(--pk-btn-caret-size);\n height: var(--pk-btn-caret-size);\n }\n\n :host([group-trigger]) .button {\n padding-inline: 6px;\n }\n\n /* Compact disclosure cap — hide content, keep only the shared SVG caret (centered). */\n :host([group-trigger]) .label,\n :host([group-trigger]) .icon-slot {\n display: none;\n }\n\n :host([group-trigger]) .button > .caret {\n margin-inline-start: 0;\n }\n\n :host([size='sm'][group-trigger]) .button,\n :host([size='xs'][group-trigger]) .button,\n :host([size='xxs'][group-trigger]) .button {\n padding-inline: 6px;\n }\n\n :host([size='lg'][group-trigger]) .button {\n padding-inline: 10px;\n }\n\n :host([size='xl'][group-trigger]) .button {\n padding-inline: 12px;\n }\n\n :host-context(pk-button-group[orientation='horizontal']):host([data-pk-group-join]:not([data-pk-group-divider])[variant='outline']) .button,\n :host-context(pk-button-group[orientation='horizontal']):host([data-pk-group-join]:not([data-pk-group-divider])[variant='dashed']) .button,\n :host-context(pk-button-group[orientation='horizontal']):host([data-pk-group-join]:not([data-pk-group-divider])[variant='transparent']) .button {\n border-left-width: 0;\n }\n\n :host-context(pk-button-group[orientation='vertical']):host([data-pk-group-join]:not([data-pk-group-divider])[variant='outline']) .button,\n :host-context(pk-button-group[orientation='vertical']):host([data-pk-group-join]:not([data-pk-group-divider])[variant='dashed']) .button,\n :host-context(pk-button-group[orientation='vertical']):host([data-pk-group-join]:not([data-pk-group-divider])[variant='transparent']) .button {\n border-top-width: 0;\n }\n\n :host([data-pk-group-orientation='horizontal'][data-pk-group-join]:not([data-pk-group-divider])[variant='outline']) .button,\n :host([data-pk-group-orientation='horizontal'][data-pk-group-join]:not([data-pk-group-divider])[variant='dashed']) .button,\n :host([data-pk-group-orientation='horizontal'][data-pk-group-join]:not([data-pk-group-divider])[variant='transparent']) .button {\n border-left-width: 0;\n }\n\n :host([data-pk-group-orientation='vertical'][data-pk-group-join]:not([data-pk-group-divider])[variant='outline']) .button,\n :host([data-pk-group-orientation='vertical'][data-pk-group-join]:not([data-pk-group-divider])[variant='dashed']) .button,\n :host([data-pk-group-orientation='vertical'][data-pk-group-join]:not([data-pk-group-divider])[variant='transparent']) .button {\n border-top-width: 0;\n }\n\n :host([data-pk-group-orientation='horizontal'][data-pk-group-divider][variant='outline']) .button {\n box-shadow: none;\n border-left-width: 1px;\n border-left-style: solid;\n border-left-color: var(--pk-btn-group-divider-color-outline, var(--pk-color-slate-400));\n }\n\n :host([data-pk-group-orientation='vertical'][data-pk-group-divider][variant='outline']) .button {\n box-shadow: none;\n border-top-width: 1px;\n border-top-style: solid;\n border-top-color: var(--pk-btn-group-divider-color-outline, var(--pk-color-slate-400));\n }\n\n :host([data-pk-group-orientation='horizontal'][data-pk-group-divider][variant='dashed']) .button {\n box-shadow: none;\n border-left-width: 1px;\n border-left-style: dashed;\n border-left-color: var(--pk-btn-group-divider-color-dashed, var(--pk-color-slate-500));\n }\n\n :host([data-pk-group-orientation='vertical'][data-pk-group-divider][variant='dashed']) .button {\n box-shadow: none;\n border-top-width: 1px;\n border-top-style: dashed;\n border-top-color: var(--pk-btn-group-divider-color-dashed, var(--pk-color-slate-500));\n }\n\n :host([data-pk-group-orientation='horizontal'][data-pk-group-divider][variant='outline']) .button:focus-visible,\n :host([data-pk-group-orientation='horizontal'][data-pk-group-divider][variant='dashed']) .button:focus-visible {\n box-shadow: var(--pk-shadow-focus);\n }\n\n :host([data-pk-group-orientation='vertical'][data-pk-group-divider][variant='outline']) .button:focus-visible,\n :host([data-pk-group-orientation='vertical'][data-pk-group-divider][variant='dashed']) .button:focus-visible {\n box-shadow: var(--pk-shadow-focus);\n }\n\n :host([data-pk-group-orientation='horizontal'][data-pk-group-internal-trail][variant='outline']) .button,\n :host([data-pk-group-orientation='horizontal'][data-pk-group-internal-trail][variant='dashed']) .button {\n border-right-width: 0;\n }\n\n :host([data-pk-group-orientation='vertical'][data-pk-group-internal-trail][variant='outline']) .button,\n :host([data-pk-group-orientation='vertical'][data-pk-group-internal-trail][variant='dashed']) .button {\n border-bottom-width: 0;\n }\n }\n `,\n];\n","import { html, nothing } from 'lit';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js';\nimport { chevronDown, iconToSvg } from '@verbb/plugin-kit-icons';\n\nimport { PkElement } from '../../base/pk-element.js';\nimport { getButtonSpinnerSize, resolveSpinnerVariant } from '../spinner/spinner-utils.js';\nimport type { PkSpinnerSize, PkSpinnerTone, PkSpinnerVariant } from '../spinner/pk-spinner.js';\n\nexport type { PkSpinnerSize };\nimport '../spinner/pk-spinner.js';\nimport { pkButtonStyles } from './pk-button.styles.js';\n\nexport type PkButtonVariant =\n | 'default'\n | 'primary'\n | 'secondary'\n | 'outline'\n | 'transparent'\n | 'link'\n | 'dashed'\n | 'none';\n\nexport type PkButtonSize = 'default' | 'xxs' | 'xs' | 'sm' | 'lg' | 'xl' | 'none';\n\nconst CARET_ICON = iconToSvg(chevronDown);\n\n/**\n * Craft-aligned action button.\n *\n * @slot - Button label\n * @slot start - Leading icon or prefix\n * @slot end - Trailing icon or suffix\n *\n * @csspart base - The native button element\n */\n@customElement('pk-button')\nexport class PkButton extends PkElement {\n static override shadowRootOptions: ShadowRootInit = {\n mode: 'open',\n delegatesFocus: true,\n };\n\n static override styles = pkButtonStyles;\n\n @property({ reflect: true })\n variant: PkButtonVariant = 'default';\n\n @property({ reflect: true })\n size: PkButtonSize = 'default';\n\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n @property({ type: Boolean, reflect: true })\n loading = false;\n\n /**\n * Override loading spinner size. When unset, derived from `size` via\n * `getButtonSpinnerSize` — same defaults as v1 Button (xxs/xs → xxs, lg/xl → sm, else xs).\n * Formie New Form passes `xs` on `size=\"lg\"` so the ring stays size-4 (1rem), not sm (1.5rem).\n */\n @property({ reflect: true, attribute: 'spinner-size' })\n spinnerSize?: PkSpinnerSize;\n\n @property({ reflect: true, attribute: 'spinner-variant' })\n spinnerVariant?: PkSpinnerVariant;\n\n @property({ reflect: true, attribute: 'spinner-tone' })\n spinnerTone?: PkSpinnerTone;\n\n @property({ type: Boolean, reflect: true, attribute: 'with-caret' })\n withCaret = false;\n\n /**\n * Compact chevron-only trigger for grouped split actions — Craft `.menubtn`.\n *\n * Not a variant or size: set this boolean on the disclosure end-cap in a split group.\n * Hides label/icons and draws a CSS `::after` chevron (0.4375rem, 2px borders).\n * Inherits `variant`/`size` from sibling buttons; inline padding narrows to 8px.\n * Do not pass a chevron icon — use `icon` + a start-slot icon for a padless square control.\n */\n @property({ type: Boolean, reflect: true, attribute: 'group-trigger' })\n groupTrigger = false;\n\n /**\n * Compact icon density: padless box that hugs the glyph (no square hit target).\n *\n * Prefer default icon-only usage for action rows — without this flag, icon-only\n * buttons are square (`width`/`height` = size height) with the glyph from\n * `--pk-btn-icon-size`. Use `icon` for dense × / ⋯ in cells.\n * For one-off dimensions use `size=\"none\"` and set `--pk-btn-*` on the host.\n */\n @property({ type: Boolean, reflect: true })\n icon = false;\n\n @property()\n href?: string;\n\n @property()\n target?: string;\n\n @property()\n rel?: string;\n\n @property()\n name?: string;\n\n @property()\n value?: string;\n\n @property()\n title = '';\n\n @property()\n type: 'button' | 'submit' | 'reset' = 'button';\n\n /**\n * HTML form owner id — same as native `<button form=\"…\">`.\n * Needed when the submit control lives outside the `<form>` (e.g. dialog footer).\n */\n @property({ reflect: true })\n form?: string;\n\n @state()\n private hasDefaultSlotContent = false;\n\n @state()\n private hasStartSlotContent = false;\n\n @state()\n private hasEndSlotContent = false;\n\n private defaultSlotChanged(event: Event): void {\n const slot = event.target as HTMLSlotElement;\n this.hasDefaultSlotContent = slot.assignedNodes({ flatten: true }).some((node) => {\n if (node.nodeType === Node.TEXT_NODE) {\n return node.textContent?.trim();\n }\n\n return node.nodeType === Node.ELEMENT_NODE;\n });\n }\n\n private iconSlotChanged(event: Event, which: 'start' | 'end'): void {\n const slot = event.target as HTMLSlotElement;\n const hasContent = slot.assignedNodes({ flatten: true }).some((node) => {\n if (node.nodeType === Node.TEXT_NODE) {\n return node.textContent?.trim();\n }\n\n return node.nodeType === Node.ELEMENT_NODE;\n });\n\n if (which === 'start') {\n this.hasStartSlotContent = hasContent;\n } else {\n this.hasEndSlotContent = hasContent;\n }\n }\n\n private startSlotChanged = (event: Event): void => {\n this.iconSlotChanged(event, 'start');\n };\n\n private endSlotChanged = (event: Event): void => {\n this.iconSlotChanged(event, 'end');\n };\n\n private buttonClasses() {\n return classMap({\n button: true,\n 'has-label': this.hasDefaultSlotContent,\n loading: this.loading,\n caret: this.withCaret,\n 'group-trigger': this.groupTrigger,\n });\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.setAttribute('data-slot', 'button');\n this.addEventListener('click', this.handleHostClick);\n }\n\n override disconnectedCallback(): void {\n this.removeEventListener('click', this.handleHostClick);\n super.disconnectedCallback();\n }\n\n /**\n * Resolve the light-DOM form for submit/reset.\n * Prefer `form` id (dialog footer submitters), then ancestor `<form>`.\n * Never target Craft’s `#main` shell.\n */\n private resolveAssociatedForm(): HTMLFormElement | null {\n const byId = (this.form || this.getAttribute('form') || '').trim();\n\n if (byId) {\n const el = this.ownerDocument?.getElementById(byId);\n\n if (el instanceof HTMLFormElement && el.id !== 'main') {\n return el;\n }\n }\n\n const closest = this.closest('form');\n\n if (closest && closest.id !== 'main') {\n return closest;\n }\n\n return null;\n }\n\n /**\n * Shadow inner `<button type=\"submit|reset\">` is not a form owner for an\n * ancestor light-DOM `<form>` — bridge click → `requestSubmit` / `reset`.\n * Skip Craft’s `#main` shell form (same guard as implicit Enter submit).\n */\n private handleHostClick = (event: MouseEvent): void => {\n if (this.disabled || this.loading || this.href) {\n return;\n }\n\n if (this.type !== 'submit' && this.type !== 'reset') {\n return;\n }\n\n const form = this.resolveAssociatedForm();\n\n if (!form) {\n return;\n }\n\n // Stop the inner shadow button’s non-associated default; we own submit/reset.\n event.preventDefault();\n event.stopPropagation();\n\n if (this.type === 'reset') {\n form.reset();\n return;\n }\n\n if (typeof form.requestSubmit === 'function') {\n form.requestSubmit();\n return;\n }\n\n form.dispatchEvent(new Event('submit', { bubbles: true, cancelable: true }));\n };\n\n override render() {\n // Explicit spinner-size wins (v1 Button `spinnerSize`); else map from button size.\n const spinnerSize = this.spinnerSize || getButtonSpinnerSize(this.size);\n const spinnerVariant = resolveSpinnerVariant(this.variant, this.spinnerVariant);\n const isLink = Boolean(this.href);\n\n return html`\n ${isLink\n ? html`\n <a\n part=\"base\"\n class=${this.buttonClasses()}\n href=${this.href!}\n target=${this.target ?? nothing}\n rel=${this.rel ?? nothing}\n title=${this.title || nothing}\n >\n ${this.renderInner(spinnerSize, spinnerVariant)}\n </a>\n `\n : html`\n <button\n part=\"base\"\n class=${this.buttonClasses()}\n type=${this.type}\n ?disabled=${this.disabled}\n aria-disabled=${this.disabled ? 'true' : nothing}\n aria-busy=${this.loading ? 'true' : nothing}\n name=${this.name ?? nothing}\n value=${this.value ?? nothing}\n title=${this.title || nothing}\n >\n ${this.renderInner(spinnerSize, spinnerVariant)}\n </button>\n `}\n `;\n }\n\n private renderInner(spinnerSize: PkSpinnerSize, spinnerVariant: PkSpinnerVariant) {\n return html`\n <span\n class=${classMap({\n 'icon-slot': true,\n 'icon-slot--start': true,\n 'icon-slot--has-content': this.hasStartSlotContent,\n })}\n >\n <slot name=\"start\" @slotchange=${this.startSlotChanged}></slot>\n </span>\n ${this.loading\n ? html`\n <pk-spinner\n variant=${spinnerVariant}\n size=${spinnerSize}\n tone=${this.spinnerTone ?? nothing}\n centered\n ></pk-spinner>\n `\n : nothing}\n <span\n class=${classMap({\n label: true,\n 'is-empty': !this.hasDefaultSlotContent,\n loading: this.loading,\n })}\n >\n <slot @slotchange=${this.defaultSlotChanged}></slot>\n </span>\n <span\n class=${classMap({\n 'icon-slot': true,\n 'icon-slot--end': true,\n 'icon-slot--has-content': this.hasEndSlotContent,\n })}\n >\n <slot name=\"end\" @slotchange=${this.endSlotChanged}></slot>\n </span>\n ${this.withCaret || this.groupTrigger\n ? html`<span part=\"caret\" class=\"caret\">${unsafeSVG(CARET_ICON)}</span>`\n : nothing}\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pk-button': PkButton;\n }\n}\n"],"mappings":"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"}
|