@verbb/plugin-kit-web 2.0.12 → 2.0.14

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.
@@ -1 +1 @@
1
- {"version":3,"file":"register-C9xZttKy.js","names":[],"sources":["../../src/register.ts"],"sourcesContent":["// Full-library path: every curated glyph is available to `<pk-icon icon=\"…\">`.\nimport '@verbb/plugin-kit-icons/all.js';\n\nimport { PkButton } from './components/button/pk-button.js';\nimport { PkButtonGroup } from './components/button-group/pk-button-group.js';\nimport { PkButtonGroupSeparator } from './components/button-group/pk-button-group-separator.js';\nimport { PkButtonGroupText } from './components/button-group/pk-button-group-text.js';\nimport { PkCheckbox } from './components/checkbox/pk-checkbox.js';\nimport { PkCheckboxSelect } from './components/checkbox-select/pk-checkbox-select.js';\nimport { PkCodeEditor } from './components/code-editor/pk-code-editor.js';\nimport { PkColorInput } from './components/color-input/pk-color-input.js';\nimport { PkCalendar } from './components/calendar/pk-calendar.js';\nimport { PkDatePicker } from './components/date-picker/pk-date-picker.js';\nimport { PkCombobox } from './components/combobox/pk-combobox.js';\nimport { PkConnect } from './components/connect/pk-connect.js';\nimport { PkConnectOauth } from './components/connect/pk-connect-oauth.js';\nimport { PkCopyButton } from './components/copy-button/pk-copy-button.js';\nimport { PkDialog } from './components/dialog/pk-dialog.js';\nimport { PkDropdownLabel } from './components/dropdown-menu/pk-dropdown-label.js';\nimport { PkDropdownMenu } from './components/dropdown-menu/pk-dropdown-menu.js';\nimport { PkDropdownItem } from './components/dropdown-menu/pk-dropdown-item.js';\nimport { PkDropdownSeparator } from './components/dropdown-menu/pk-dropdown-separator.js';\nimport { PkEditableTable } from './components/editable-table/pk-editable-table.js';\nimport { PkField } from './components/field/pk-field.js';\nimport { PkIcon } from './components/icon/pk-icon.js';\nimport { PkInput } from './components/input/pk-input.js';\nimport { PkInputGroup } from './components/input-group/pk-input-group.js';\nimport { PkInputGroupAddon } from './components/input-group/pk-input-group-addon.js';\nimport { PkInputGroupButton } from './components/input-group/pk-input-group-button.js';\nimport { PkInputGroupInput } from './components/input-group/pk-input-group-input.js';\nimport { PkInputGroupText } from './components/input-group/pk-input-group-text.js';\nimport { PkInputGroupTextarea } from './components/input-group/pk-input-group-textarea.js';\nimport { PkLightswitch } from './components/lightswitch/pk-lightswitch.js';\nimport { PkOption } from './components/select/pk-option.js';\nimport { PkOptionGroup } from './components/select/pk-option-group.js';\nimport { PkPopover } from './components/popover/pk-popover.js';\nimport { PkPopup } from './components/popup/pk-popup.js';\nimport { PkRadio } from './components/radio-group/pk-radio.js';\nimport { PkRadioGroup } from './components/radio-group/pk-radio-group.js';\nimport { PkScrollArea } from './components/scroll-area/pk-scroll-area.js';\nimport { PkSelect } from './components/select/pk-select.js';\nimport { PkSeparator } from './components/separator/pk-separator.js';\nimport { PkSpinner } from './components/spinner/pk-spinner.js';\nimport { PkStatus } from './components/status/pk-status.js';\nimport { PkTab } from './components/tabs/pk-tab.js';\nimport { PkTabHeading } from './components/tabs/pk-tab-heading.js';\nimport { PkTabPanel } from './components/tabs/pk-tab-panel.js';\nimport { PkTabs } from './components/tabs/pk-tabs.js';\nimport { PkTextarea } from './components/textarea/pk-textarea.js';\nimport { PkTiptapContent } from './components/tiptap/pk-tiptap-content.js';\nimport { PkTiptapEditor } from './components/tiptap/pk-tiptap-editor.js';\nimport { PkTiptapInput } from './components/tiptap/pk-tiptap-input.js';\nimport { PkTimePicker } from './components/time-picker/pk-time-picker.js';\nimport { PkToggle } from './components/toggle/pk-toggle.js';\nimport { PkToggleGroup } from './components/toggle-group/pk-toggle-group.js';\nimport { PkTooltip } from './components/tooltip/pk-tooltip.js';\n\nexport * from './components/button/index.js';\nexport * from './components/button-group/index.js';\nexport * from './components/checkbox/index.js';\nexport * from './components/checkbox-select/index.js';\nexport * from './components/input/index.js';\nexport * from './components/input-group/index.js';\nexport * from './components/textarea/index.js';\nexport * from './components/separator/index.js';\nexport * from './components/status/index.js';\nexport * from './components/toggle/index.js';\nexport * from './components/toggle-group/index.js';\nexport * from './components/lightswitch/index.js';\nexport * from './components/connect/index.js';\nexport * from './components/copy-button/index.js';\nexport * from './components/dialog/index.js';\nexport * from './components/dropdown-menu/index.js';\nexport * from './components/field/index.js';\nexport * from './components/popover/index.js';\nexport * from './components/popup/index.js';\nexport * from './components/tooltip/index.js';\nexport * from './components/radio-group/index.js';\nexport * from './components/tabs/index.js';\nexport * from './components/scroll-area/index.js';\nexport * from './components/color-input/index.js';\nexport * from './components/code-editor/index.js';\nexport * from './components/calendar/index.js';\nexport * from './components/date-picker/index.js';\nexport * from './components/select/index.js';\nexport * from './components/spinner/index.js';\nexport * from './components/time-picker/index.js';\nexport * from './components/tiptap/index.js';\n\nexport {\n PkButton,\n PkButtonGroup,\n PkButtonGroupSeparator,\n PkButtonGroupText,\n PkCheckbox,\n PkCheckboxSelect,\n PkColorInput,\n PkCodeEditor,\n PkCalendar,\n PkDatePicker,\n PkCombobox,\n PkConnect,\n PkConnectOauth,\n PkCopyButton,\n PkDialog,\n PkDropdownMenu,\n PkDropdownItem,\n PkDropdownSeparator,\n PkEditableTable,\n PkField,\n PkIcon,\n PkInput,\n PkInputGroup,\n PkInputGroupAddon,\n PkInputGroupButton,\n PkInputGroupInput,\n PkInputGroupText,\n PkInputGroupTextarea,\n PkLightswitch,\n PkOption,\n PkOptionGroup,\n PkPopover,\n PkPopup,\n PkRadio,\n PkRadioGroup,\n PkScrollArea,\n PkSelect,\n PkSeparator,\n PkSpinner,\n PkStatus,\n PkTab,\n PkTabPanel,\n PkTabs,\n PkTextarea,\n PkTimePicker,\n PkTiptapContent,\n PkTiptapEditor,\n PkTiptapInput,\n PkToggle,\n PkToggleGroup,\n PkTooltip,\n};\n\nconst COMPONENTS: [string, CustomElementConstructor][] = [\n ['pk-spinner', PkSpinner],\n ['pk-icon', PkIcon],\n ['pk-button', PkButton],\n ['pk-checkbox', PkCheckbox],\n ['pk-checkbox-select', PkCheckboxSelect],\n ['pk-color-input', PkColorInput],\n ['pk-code-editor', PkCodeEditor],\n ['pk-input', PkInput],\n ['pk-input-group', PkInputGroup],\n ['pk-input-group-addon', PkInputGroupAddon],\n ['pk-input-group-button', PkInputGroupButton],\n ['pk-input-group-input', PkInputGroupInput],\n ['pk-input-group-text', PkInputGroupText],\n ['pk-input-group-textarea', PkInputGroupTextarea],\n ['pk-textarea', PkTextarea],\n ['pk-tiptap-editor', PkTiptapEditor],\n ['pk-tiptap-input', PkTiptapInput],\n ['pk-tiptap-content', PkTiptapContent],\n ['pk-field', PkField],\n ['pk-separator', PkSeparator],\n ['pk-status', PkStatus],\n ['pk-toggle', PkToggle],\n ['pk-toggle-group', PkToggleGroup],\n ['pk-lightswitch', PkLightswitch],\n ['pk-button-group', PkButtonGroup],\n ['pk-button-group-separator', PkButtonGroupSeparator],\n ['pk-button-group-text', PkButtonGroupText],\n ['pk-dialog', PkDialog],\n ['pk-popup', PkPopup],\n ['pk-dropdown-label', PkDropdownLabel],\n ['pk-dropdown-item', PkDropdownItem],\n ['pk-dropdown-separator', PkDropdownSeparator],\n ['pk-dropdown-menu', PkDropdownMenu],\n ['pk-editable-table', PkEditableTable],\n ['pk-popover', PkPopover],\n ['pk-tooltip', PkTooltip],\n ['pk-radio', PkRadio],\n ['pk-radio-group', PkRadioGroup],\n ['pk-tab', PkTab],\n ['pk-tab-heading', PkTabHeading],\n ['pk-tab-panel', PkTabPanel],\n ['pk-tabs', PkTabs],\n ['pk-scroll-area', PkScrollArea],\n ['pk-option', PkOption],\n ['pk-option-group', PkOptionGroup],\n ['pk-select', PkSelect],\n ['pk-calendar', PkCalendar],\n ['pk-date-picker', PkDatePicker],\n ['pk-combobox', PkCombobox],\n ['pk-connect', PkConnect],\n ['pk-connect-oauth', PkConnectOauth],\n ['pk-time-picker', PkTimePicker],\n ['pk-copy-button', PkCopyButton],\n];\n\n/** Side-effect registration for all Plugin Kit web components. */\nexport function registerAll(): void {\n for (const [tag, ctor] of COMPONENTS) {\n if (!customElements.get(tag)) {\n customElements.define(tag, ctor);\n }\n }\n}\n\nexport {\n createRegisterComponents,\n type PkComponentTag,\n} from './register-components.js';\n\nexport { BUNDLER_TAG_IMPORT_PATHS as componentImportPaths } from './component-registry.js';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+IA,IAAM,aAAmD;CACrD,CAAC,cAAc,UAAU;CACzB,CAAC,WAAW,OAAO;CACnB,CAAC,aAAa,SAAS;CACvB,CAAC,eAAe,WAAW;CAC3B,CAAC,sBAAsB,iBAAiB;CACxC,CAAC,kBAAkB,aAAa;CAChC,CAAC,kBAAkB,aAAa;CAChC,CAAC,YAAY,QAAQ;CACrB,CAAC,kBAAkB,aAAa;CAChC,CAAC,wBAAwB,kBAAkB;CAC3C,CAAC,yBAAyB,mBAAmB;CAC7C,CAAC,wBAAwB,kBAAkB;CAC3C,CAAC,uBAAuB,iBAAiB;CACzC,CAAC,2BAA2B,qBAAqB;CACjD,CAAC,eAAe,WAAW;CAC3B,CAAC,oBAAoB,eAAe;CACpC,CAAC,mBAAmB,cAAc;CAClC,CAAC,qBAAqB,gBAAgB;CACtC,CAAC,YAAY,QAAQ;CACrB,CAAC,gBAAgB,YAAY;CAC7B,CAAC,aAAa,SAAS;CACvB,CAAC,aAAa,SAAS;CACvB,CAAC,mBAAmB,cAAc;CAClC,CAAC,kBAAkB,cAAc;CACjC,CAAC,mBAAmB,cAAc;CAClC,CAAC,6BAA6B,uBAAuB;CACrD,CAAC,wBAAwB,kBAAkB;CAC3C,CAAC,aAAa,SAAS;CACvB,CAAC,YAAY,QAAQ;CACrB,CAAC,qBAAqB,gBAAgB;CACtC,CAAC,oBAAoB,eAAe;CACpC,CAAC,yBAAyB,oBAAoB;CAC9C,CAAC,oBAAoB,eAAe;CACpC,CAAC,qBAAqB,gBAAgB;CACtC,CAAC,cAAc,UAAU;CACzB,CAAC,cAAc,UAAU;CACzB,CAAC,YAAY,QAAQ;CACrB,CAAC,kBAAkB,aAAa;CAChC,CAAC,UAAU,MAAM;CACjB,CAAC,kBAAkB,aAAa;CAChC,CAAC,gBAAgB,WAAW;CAC5B,CAAC,WAAW,OAAO;CACnB,CAAC,kBAAkB,aAAa;CAChC,CAAC,aAAa,SAAS;CACvB,CAAC,mBAAmB,cAAc;CAClC,CAAC,aAAa,SAAS;CACvB,CAAC,eAAe,WAAW;CAC3B,CAAC,kBAAkB,aAAa;CAChC,CAAC,eAAe,WAAW;CAC3B,CAAC,cAAc,UAAU;CACzB,CAAC,oBAAoB,eAAe;CACpC,CAAC,kBAAkB,aAAa;CAChC,CAAC,kBAAkB,aAAa;CACnC;;AAGD,SAAgB,cAAoB;AAChC,MAAK,MAAM,CAAC,KAAK,SAAS,WACtB,KAAI,CAAC,eAAe,IAAI,IAAI,CACxB,gBAAe,OAAO,KAAK,KAAK"}
1
+ {"version":3,"file":"register-DeqrQzRS.js","names":[],"sources":["../../src/register.ts"],"sourcesContent":["// Full-library path: every curated glyph is available to `<pk-icon icon=\"…\">`.\nimport '@verbb/plugin-kit-icons/all.js';\n\nimport { PkButton } from './components/button/pk-button.js';\nimport { PkButtonGroup } from './components/button-group/pk-button-group.js';\nimport { PkButtonGroupSeparator } from './components/button-group/pk-button-group-separator.js';\nimport { PkButtonGroupText } from './components/button-group/pk-button-group-text.js';\nimport { PkCheckbox } from './components/checkbox/pk-checkbox.js';\nimport { PkCheckboxSelect } from './components/checkbox-select/pk-checkbox-select.js';\nimport { PkCodeEditor } from './components/code-editor/pk-code-editor.js';\nimport { PkColorInput } from './components/color-input/pk-color-input.js';\nimport { PkCalendar } from './components/calendar/pk-calendar.js';\nimport { PkDatePicker } from './components/date-picker/pk-date-picker.js';\nimport { PkCombobox } from './components/combobox/pk-combobox.js';\nimport { PkConnect } from './components/connect/pk-connect.js';\nimport { PkConnectOauth } from './components/connect/pk-connect-oauth.js';\nimport { PkCopyButton } from './components/copy-button/pk-copy-button.js';\nimport { PkDialog } from './components/dialog/pk-dialog.js';\nimport { PkDropdownLabel } from './components/dropdown-menu/pk-dropdown-label.js';\nimport { PkDropdownMenu } from './components/dropdown-menu/pk-dropdown-menu.js';\nimport { PkDropdownItem } from './components/dropdown-menu/pk-dropdown-item.js';\nimport { PkDropdownSeparator } from './components/dropdown-menu/pk-dropdown-separator.js';\nimport { PkEditableTable } from './components/editable-table/pk-editable-table.js';\nimport { PkField } from './components/field/pk-field.js';\nimport { PkIcon } from './components/icon/pk-icon.js';\nimport { PkInput } from './components/input/pk-input.js';\nimport { PkInputGroup } from './components/input-group/pk-input-group.js';\nimport { PkInputGroupAddon } from './components/input-group/pk-input-group-addon.js';\nimport { PkInputGroupButton } from './components/input-group/pk-input-group-button.js';\nimport { PkInputGroupInput } from './components/input-group/pk-input-group-input.js';\nimport { PkInputGroupText } from './components/input-group/pk-input-group-text.js';\nimport { PkInputGroupTextarea } from './components/input-group/pk-input-group-textarea.js';\nimport { PkLightswitch } from './components/lightswitch/pk-lightswitch.js';\nimport { PkOption } from './components/select/pk-option.js';\nimport { PkOptionGroup } from './components/select/pk-option-group.js';\nimport { PkPopover } from './components/popover/pk-popover.js';\nimport { PkPopup } from './components/popup/pk-popup.js';\nimport { PkRadio } from './components/radio-group/pk-radio.js';\nimport { PkRadioGroup } from './components/radio-group/pk-radio-group.js';\nimport { PkScrollArea } from './components/scroll-area/pk-scroll-area.js';\nimport { PkSelect } from './components/select/pk-select.js';\nimport { PkSeparator } from './components/separator/pk-separator.js';\nimport { PkSpinner } from './components/spinner/pk-spinner.js';\nimport { PkStatus } from './components/status/pk-status.js';\nimport { PkTab } from './components/tabs/pk-tab.js';\nimport { PkTabHeading } from './components/tabs/pk-tab-heading.js';\nimport { PkTabPanel } from './components/tabs/pk-tab-panel.js';\nimport { PkTabs } from './components/tabs/pk-tabs.js';\nimport { PkTextarea } from './components/textarea/pk-textarea.js';\nimport { PkTiptapContent } from './components/tiptap/pk-tiptap-content.js';\nimport { PkTiptapEditor } from './components/tiptap/pk-tiptap-editor.js';\nimport { PkTiptapInput } from './components/tiptap/pk-tiptap-input.js';\nimport { PkTimePicker } from './components/time-picker/pk-time-picker.js';\nimport { PkToggle } from './components/toggle/pk-toggle.js';\nimport { PkToggleGroup } from './components/toggle-group/pk-toggle-group.js';\nimport { PkTooltip } from './components/tooltip/pk-tooltip.js';\n\nexport * from './components/button/index.js';\nexport * from './components/button-group/index.js';\nexport * from './components/checkbox/index.js';\nexport * from './components/checkbox-select/index.js';\nexport * from './components/input/index.js';\nexport * from './components/input-group/index.js';\nexport * from './components/textarea/index.js';\nexport * from './components/separator/index.js';\nexport * from './components/status/index.js';\nexport * from './components/toggle/index.js';\nexport * from './components/toggle-group/index.js';\nexport * from './components/lightswitch/index.js';\nexport * from './components/connect/index.js';\nexport * from './components/copy-button/index.js';\nexport * from './components/dialog/index.js';\nexport * from './components/dropdown-menu/index.js';\nexport * from './components/field/index.js';\nexport * from './components/popover/index.js';\nexport * from './components/popup/index.js';\nexport * from './components/tooltip/index.js';\nexport * from './components/radio-group/index.js';\nexport * from './components/tabs/index.js';\nexport * from './components/scroll-area/index.js';\nexport * from './components/color-input/index.js';\nexport * from './components/code-editor/index.js';\nexport * from './components/calendar/index.js';\nexport * from './components/date-picker/index.js';\nexport * from './components/select/index.js';\nexport * from './components/spinner/index.js';\nexport * from './components/time-picker/index.js';\nexport * from './components/tiptap/index.js';\n\nexport {\n PkButton,\n PkButtonGroup,\n PkButtonGroupSeparator,\n PkButtonGroupText,\n PkCheckbox,\n PkCheckboxSelect,\n PkColorInput,\n PkCodeEditor,\n PkCalendar,\n PkDatePicker,\n PkCombobox,\n PkConnect,\n PkConnectOauth,\n PkCopyButton,\n PkDialog,\n PkDropdownMenu,\n PkDropdownItem,\n PkDropdownSeparator,\n PkEditableTable,\n PkField,\n PkIcon,\n PkInput,\n PkInputGroup,\n PkInputGroupAddon,\n PkInputGroupButton,\n PkInputGroupInput,\n PkInputGroupText,\n PkInputGroupTextarea,\n PkLightswitch,\n PkOption,\n PkOptionGroup,\n PkPopover,\n PkPopup,\n PkRadio,\n PkRadioGroup,\n PkScrollArea,\n PkSelect,\n PkSeparator,\n PkSpinner,\n PkStatus,\n PkTab,\n PkTabPanel,\n PkTabs,\n PkTextarea,\n PkTimePicker,\n PkTiptapContent,\n PkTiptapEditor,\n PkTiptapInput,\n PkToggle,\n PkToggleGroup,\n PkTooltip,\n};\n\nconst COMPONENTS: [string, CustomElementConstructor][] = [\n ['pk-spinner', PkSpinner],\n ['pk-icon', PkIcon],\n ['pk-button', PkButton],\n ['pk-checkbox', PkCheckbox],\n ['pk-checkbox-select', PkCheckboxSelect],\n ['pk-color-input', PkColorInput],\n ['pk-code-editor', PkCodeEditor],\n ['pk-input', PkInput],\n ['pk-input-group', PkInputGroup],\n ['pk-input-group-addon', PkInputGroupAddon],\n ['pk-input-group-button', PkInputGroupButton],\n ['pk-input-group-input', PkInputGroupInput],\n ['pk-input-group-text', PkInputGroupText],\n ['pk-input-group-textarea', PkInputGroupTextarea],\n ['pk-textarea', PkTextarea],\n ['pk-tiptap-editor', PkTiptapEditor],\n ['pk-tiptap-input', PkTiptapInput],\n ['pk-tiptap-content', PkTiptapContent],\n ['pk-field', PkField],\n ['pk-separator', PkSeparator],\n ['pk-status', PkStatus],\n ['pk-toggle', PkToggle],\n ['pk-toggle-group', PkToggleGroup],\n ['pk-lightswitch', PkLightswitch],\n ['pk-button-group', PkButtonGroup],\n ['pk-button-group-separator', PkButtonGroupSeparator],\n ['pk-button-group-text', PkButtonGroupText],\n ['pk-dialog', PkDialog],\n ['pk-popup', PkPopup],\n ['pk-dropdown-label', PkDropdownLabel],\n ['pk-dropdown-item', PkDropdownItem],\n ['pk-dropdown-separator', PkDropdownSeparator],\n ['pk-dropdown-menu', PkDropdownMenu],\n ['pk-editable-table', PkEditableTable],\n ['pk-popover', PkPopover],\n ['pk-tooltip', PkTooltip],\n ['pk-radio', PkRadio],\n ['pk-radio-group', PkRadioGroup],\n ['pk-tab', PkTab],\n ['pk-tab-heading', PkTabHeading],\n ['pk-tab-panel', PkTabPanel],\n ['pk-tabs', PkTabs],\n ['pk-scroll-area', PkScrollArea],\n ['pk-option', PkOption],\n ['pk-option-group', PkOptionGroup],\n ['pk-select', PkSelect],\n ['pk-calendar', PkCalendar],\n ['pk-date-picker', PkDatePicker],\n ['pk-combobox', PkCombobox],\n ['pk-connect', PkConnect],\n ['pk-connect-oauth', PkConnectOauth],\n ['pk-time-picker', PkTimePicker],\n ['pk-copy-button', PkCopyButton],\n];\n\n/** Side-effect registration for all Plugin Kit web components. */\nexport function registerAll(): void {\n for (const [tag, ctor] of COMPONENTS) {\n if (!customElements.get(tag)) {\n customElements.define(tag, ctor);\n }\n }\n}\n\nexport {\n createRegisterComponents,\n type PkComponentTag,\n} from './register-components.js';\n\nexport { BUNDLER_TAG_IMPORT_PATHS as componentImportPaths } from './component-registry.js';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+IA,IAAM,aAAmD;CACrD,CAAC,cAAc,UAAU;CACzB,CAAC,WAAW,OAAO;CACnB,CAAC,aAAa,SAAS;CACvB,CAAC,eAAe,WAAW;CAC3B,CAAC,sBAAsB,iBAAiB;CACxC,CAAC,kBAAkB,aAAa;CAChC,CAAC,kBAAkB,aAAa;CAChC,CAAC,YAAY,QAAQ;CACrB,CAAC,kBAAkB,aAAa;CAChC,CAAC,wBAAwB,kBAAkB;CAC3C,CAAC,yBAAyB,mBAAmB;CAC7C,CAAC,wBAAwB,kBAAkB;CAC3C,CAAC,uBAAuB,iBAAiB;CACzC,CAAC,2BAA2B,qBAAqB;CACjD,CAAC,eAAe,WAAW;CAC3B,CAAC,oBAAoB,eAAe;CACpC,CAAC,mBAAmB,cAAc;CAClC,CAAC,qBAAqB,gBAAgB;CACtC,CAAC,YAAY,QAAQ;CACrB,CAAC,gBAAgB,YAAY;CAC7B,CAAC,aAAa,SAAS;CACvB,CAAC,aAAa,SAAS;CACvB,CAAC,mBAAmB,cAAc;CAClC,CAAC,kBAAkB,cAAc;CACjC,CAAC,mBAAmB,cAAc;CAClC,CAAC,6BAA6B,uBAAuB;CACrD,CAAC,wBAAwB,kBAAkB;CAC3C,CAAC,aAAa,SAAS;CACvB,CAAC,YAAY,QAAQ;CACrB,CAAC,qBAAqB,gBAAgB;CACtC,CAAC,oBAAoB,eAAe;CACpC,CAAC,yBAAyB,oBAAoB;CAC9C,CAAC,oBAAoB,eAAe;CACpC,CAAC,qBAAqB,gBAAgB;CACtC,CAAC,cAAc,UAAU;CACzB,CAAC,cAAc,UAAU;CACzB,CAAC,YAAY,QAAQ;CACrB,CAAC,kBAAkB,aAAa;CAChC,CAAC,UAAU,MAAM;CACjB,CAAC,kBAAkB,aAAa;CAChC,CAAC,gBAAgB,WAAW;CAC5B,CAAC,WAAW,OAAO;CACnB,CAAC,kBAAkB,aAAa;CAChC,CAAC,aAAa,SAAS;CACvB,CAAC,mBAAmB,cAAc;CAClC,CAAC,aAAa,SAAS;CACvB,CAAC,eAAe,WAAW;CAC3B,CAAC,kBAAkB,aAAa;CAChC,CAAC,eAAe,WAAW;CAC3B,CAAC,cAAc,UAAU;CACzB,CAAC,oBAAoB,eAAe;CACpC,CAAC,kBAAkB,aAAa;CAChC,CAAC,kBAAkB,aAAa;CACnC;;AAGD,SAAgB,cAAoB;AAChC,MAAK,MAAM,CAAC,KAAK,SAAS,WACtB,KAAI,CAAC,eAAe,IAAI,IAAI,CACxB,gBAAe,OAAO,KAAK,KAAK"}
@@ -90,4 +90,20 @@ export declare const nextRowId: () => string;
90
90
  export declare const getCustomCellSlotName: (rowId: string, columnName: string) => string;
91
91
  export declare const BUILTIN_COLUMN_TYPES: Set<string>;
92
92
  export declare const isCustomColumn: (column: PkEditableTableColumn) => boolean;
93
+ /** Whether a multi-cell paste gesturing from this cell should run `importData`. */
94
+ export declare const columnInterceptsPaste: (column: PkEditableTableColumn) => boolean;
95
+ /** Whether `importData` should write a clipboard cell into this column. */
96
+ export declare const columnAcceptsPasteImport: (column: PkEditableTableColumn) => boolean;
97
+ /**
98
+ * Craft `Craft.trim(text, ' \\n\\r')` — strip spaces/newlines from both ends so a
99
+ * trailing spreadsheet newline does not create an empty extra row.
100
+ */
101
+ export declare const trimClipboardText: (text: string) => string;
102
+ /** True when clipboard looks like a multi-cell / multi-row TSV paste. */
103
+ export declare const isMultiCellClipboard: (text: string) => boolean;
104
+ /**
105
+ * Parse spreadsheet clipboard text into a grid (rows → cells).
106
+ * Excel / Sheets copy as tab-separated values with newline-separated rows.
107
+ */
108
+ export declare const parseTsvClipboard: (text: string) => string[][];
93
109
  //# sourceMappingURL=editable-table-model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"editable-table-model.d.ts","sourceRoot":"","sources":["../../../src/components/editable-table/editable-table-model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"editable-table-model.d.ts","sourceRoot":"","sources":["../../../src/components/editable-table/editable-table-model.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,16 @@ export declare class PkEditableTable extends PkFormAssociatedElement {
19
19
  allowAdd: boolean;
20
20
  allowDelete: boolean;
21
21
  allowReorder: boolean;
22
+ /**
23
+ * Show Insert above / Insert below in the row ellipsis menu.
24
+ * Insert still requires `allowAdd` (disabled at max rows when the host turns add off).
25
+ */
26
+ allowInsert: boolean;
27
+ /**
28
+ * Optional hard cap on row count. When set, add / insert / paste expansion stop
29
+ * at this length even if `allowAdd` is still true mid-batch.
30
+ */
31
+ maxRows: number | null;
22
32
  addRowLabel: string;
23
33
  /**
24
34
  * Optional form-field prefix for `cellErrors` keys.
@@ -91,8 +101,23 @@ export declare class PkEditableTable extends PkFormAssociatedElement {
91
101
  private emitCellChange;
92
102
  private commitRows;
93
103
  private updateCell;
104
+ private canAddRow;
105
+ private createEmptyRow;
94
106
  private addRow;
107
+ /** Insert a blank row at `index` (0 = above first row). No-ops when add is disallowed. */
108
+ private insertRowAt;
95
109
  private removeRow;
110
+ /**
111
+ * Craft EditableTable paste: intercept only when the clipboard has tabs/newlines.
112
+ * Listens on the scroll wrapper so events compose out of cell control shadows.
113
+ */
114
+ private handleTablePaste;
115
+ /**
116
+ * Apply a TSV grid starting at `[startRowIndex, startColumnIndex]`.
117
+ * Skips non-textual columns (checkbox etc.) but still advances the column
118
+ * cursor — same as Craft writing only into matching `textarea`/`input`s.
119
+ */
120
+ private importTsvData;
96
121
  private moveRow;
97
122
  private commitReorder;
98
123
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"pk-editable-table.d.ts","sourceRoot":"","sources":["../../../src/components/editable-table/pk-editable-table.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pk-editable-table.d.ts","sourceRoot":"","sources":["../../../src/components/editable-table/pk-editable-table.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import { a as nextRowId, i as isCustomColumn, r as getCustomCellSlotName, t as PkEditableTable } from "../../chunks/pk-editable-table-DQZQ6JLb.js";
1
+ import { a as nextRowId, i as isCustomColumn, r as getCustomCellSlotName, t as PkEditableTable } from "../../chunks/pk-editable-table-DMHGqZlQ.js";
2
2
  export { PkEditableTable, getCustomCellSlotName, isCustomColumn, nextRowId };
@@ -1,2 +1,2 @@
1
- import { a as nextRowId, i as isCustomColumn, n as BUILTIN_COLUMN_TYPES, r as getCustomCellSlotName, t as PkEditableTable } from "../chunks/pk-editable-table-DQZQ6JLb.js";
1
+ import { a as nextRowId, i as isCustomColumn, n as BUILTIN_COLUMN_TYPES, r as getCustomCellSlotName, t as PkEditableTable } from "../chunks/pk-editable-table-DMHGqZlQ.js";
2
2
  export { BUILTIN_COLUMN_TYPES, PkEditableTable, getCustomCellSlotName, isCustomColumn, nextRowId };
@@ -5,6 +5,7 @@ import { PkElement } from '../../base/pk-element.js';
5
5
  *
6
6
  * The name registry starts empty — consumers must {@link registerIcons}
7
7
  * (or import `@verbb/plugin-kit-icons/all.js`) before `<pk-icon icon="…">` resolves.
8
+ * Registrations are page-global across bundled Plugin Kit copies (Craft multi-plugin CP).
8
9
  *
9
10
  * Sizing follows `font-size` (defaults to `1em`), colour follows `currentColor`,
10
11
  * so consumers style it like text:
@@ -36,6 +37,9 @@ export declare class PkIcon extends PkElement {
36
37
  * otherwise it is hidden from assistive technology.
37
38
  */
38
39
  label?: string;
40
+ private unsubscribeRegistry;
41
+ connectedCallback(): void;
42
+ disconnectedCallback(): void;
39
43
  render(): import('lit-html').TemplateResult<1> | typeof nothing;
40
44
  }
41
45
  declare global {
@@ -1 +1 @@
1
- {"version":3,"file":"pk-icon.d.ts","sourceRoot":"","sources":["../../../src/components/icon/pk-icon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,OAAO,EAAE,MAAM,KAAK,CAAC;AAKzC,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBACa,MAAO,SAAQ,SAAS;IACjC,OAAgB,MAAM,0BAsBpB;IAEF;;;OAGG;IAEH,IAAI,SAAM;IAEV;;;OAGG;IAEH,IAAI,SAAM;IAEV;;;OAGG;IAEH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEN,MAAM;CASlB;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,SAAS,EAAE,MAAM,CAAC;KACrB;CACJ"}
1
+ {"version":3,"file":"pk-icon.d.ts","sourceRoot":"","sources":["../../../src/components/icon/pk-icon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,OAAO,EAAE,MAAM,KAAK,CAAC;AAKzC,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBACa,MAAO,SAAQ,SAAS;IACjC,OAAgB,MAAM,0BAsBpB;IAEF;;;OAGG;IAEH,IAAI,SAAM;IAEV;;;OAGG;IAEH,IAAI,SAAM;IAEV;;;OAGG;IAEH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,OAAO,CAAC,mBAAmB,CAA6B;IAE/C,iBAAiB,IAAI,IAAI;IASzB,oBAAoB,IAAI,IAAI;IAM5B,MAAM;CASlB;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,SAAS,EAAE,MAAM,CAAC;KACrB;CACJ"}
@@ -2,13 +2,14 @@ import { n as PkElement, t as __decorate } from "../../chunks/decorate-W02hmVTt.
2
2
  import { css, html, nothing } from "lit";
3
3
  import { customElement, property } from "lit/decorators.js";
4
4
  import { unsafeSVG } from "lit/directives/unsafe-svg.js";
5
- import { getIcon, iconToSvg } from "@verbb/plugin-kit-icons";
5
+ import { getIcon, iconToSvg, subscribeIconRegistry } from "@verbb/plugin-kit-icons";
6
6
  //#region src/components/icon/pk-icon.ts
7
7
  var PkIcon = class PkIcon extends PkElement {
8
8
  constructor(..._args) {
9
9
  super(..._args);
10
10
  this.icon = "";
11
11
  this.name = "";
12
+ this.unsubscribeRegistry = null;
12
13
  }
13
14
  static {
14
15
  this.styles = css`
@@ -35,6 +36,17 @@ var PkIcon = class PkIcon extends PkElement {
35
36
  }
36
37
  `;
37
38
  }
39
+ connectedCallback() {
40
+ super.connectedCallback();
41
+ this.unsubscribeRegistry = subscribeIconRegistry(() => {
42
+ this.requestUpdate();
43
+ });
44
+ }
45
+ disconnectedCallback() {
46
+ this.unsubscribeRegistry?.();
47
+ this.unsubscribeRegistry = null;
48
+ super.disconnectedCallback();
49
+ }
38
50
  render() {
39
51
  const icon = getIcon(this.icon || this.name);
40
52
  if (!icon) return nothing;
@@ -1 +1 @@
1
- {"version":3,"file":"pk-icon.js","names":[],"sources":["../../../src/components/icon/pk-icon.ts"],"sourcesContent":["import { html, css, nothing } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js';\nimport { getIcon, iconToSvg } from '@verbb/plugin-kit-icons';\n\nimport { PkElement } from '../../base/pk-element.js';\n\n/**\n * Standalone icon element backed by the Plugin Kit raw-SVG icon set.\n *\n * The name registry starts empty — consumers must {@link registerIcons}\n * (or import `@verbb/plugin-kit-icons/all.js`) before `<pk-icon icon=\"…\">` resolves.\n *\n * Sizing follows `font-size` (defaults to `1em`), colour follows `currentColor`,\n * so consumers style it like text:\n *\n * ```html\n * <pk-icon icon=\"chevron-down\"></pk-icon>\n * <pk-icon icon=\"pen\" label=\"Edit\" style=\"font-size: 20px; color: #6b7280\"></pk-icon>\n * ```\n *\n * Prefer the `icon` attribute over `name`: some server-side form renderers\n * (e.g. Craft CMS `Html::namespaceInputs()`) rewrite every `name=\"…\"` attribute\n * in a form to namespace it, which would corrupt the icon lookup. `icon` is left\n * untouched. `name` is still supported for non-form contexts / back-compat.\n */\n@customElement('pk-icon')\nexport class PkIcon extends PkElement {\n static override styles = css`\n :host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex: none;\n /* Square em box + slight baseline nudge for inline text. Flex\n * parents (e.g. button slots) should zero vertical-align. */\n width: 1em;\n height: 1em;\n line-height: 1;\n vertical-align: -0.125em;\n }\n\n svg {\n display: block;\n width: 100%;\n height: 100%;\n fill: currentColor;\n /* Allow intentional path overhang past the icon canvas. */\n overflow: visible;\n }\n `;\n\n /**\n * Icon name (kebab-case), e.g. `chevron-down`, `gear`, `xmark`.\n * Namespacing-safe alternative to `name` — use this inside CMS form markup.\n */\n @property()\n icon = '';\n\n /**\n * Icon name (kebab-case). Back-compat / non-form alias for `icon`.\n * Avoid in server-namespaced forms, where `name` attributes get rewritten.\n */\n @property()\n name = '';\n\n /**\n * Accessible label. When set the icon is exposed as an image with a title;\n * otherwise it is hidden from assistive technology.\n */\n @property()\n label?: string;\n\n override render() {\n const icon = getIcon(this.icon || this.name);\n\n if (!icon) {\n return nothing;\n }\n\n return html`${unsafeSVG(iconToSvg(icon, { title: this.label }))}`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pk-icon': PkIcon;\n }\n}\n"],"mappings":";;;;;;AA2BO,IAAA,SAAA,MAAM,eAAe,UAAU;;;cA8B3B;cAOA;;;gBApCkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;CA6C5B,SAAkB;EACd,MAAM,OAAO,QAAQ,KAAK,QAAQ,KAAK,KAAK;AAE5C,MAAI,CAAC,KACD,QAAO;AAGX,SAAO,IAAI,GAAG,UAAU,UAAU,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC;;;YAxBlE,UAAU,CAAA,EAAA,OAAA,WAAA,QAAA,KAAA,EAAA;YAOV,UAAU,CAAA,EAAA,OAAA,WAAA,QAAA,KAAA,EAAA;YAOV,UAAU,CAAA,EAAA,OAAA,WAAA,SAAA,KAAA,EAAA;qBA5Cd,cAAc,UAAU,CAAA,EAAA,OAAA"}
1
+ {"version":3,"file":"pk-icon.js","names":[],"sources":["../../../src/components/icon/pk-icon.ts"],"sourcesContent":["import { html, css, nothing } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js';\nimport { getIcon, iconToSvg, subscribeIconRegistry } from '@verbb/plugin-kit-icons';\n\nimport { PkElement } from '../../base/pk-element.js';\n\n/**\n * Standalone icon element backed by the Plugin Kit raw-SVG icon set.\n *\n * The name registry starts empty — consumers must {@link registerIcons}\n * (or import `@verbb/plugin-kit-icons/all.js`) before `<pk-icon icon=\"…\">` resolves.\n * Registrations are page-global across bundled Plugin Kit copies (Craft multi-plugin CP).\n *\n * Sizing follows `font-size` (defaults to `1em`), colour follows `currentColor`,\n * so consumers style it like text:\n *\n * ```html\n * <pk-icon icon=\"chevron-down\"></pk-icon>\n * <pk-icon icon=\"pen\" label=\"Edit\" style=\"font-size: 20px; color: #6b7280\"></pk-icon>\n * ```\n *\n * Prefer the `icon` attribute over `name`: some server-side form renderers\n * (e.g. Craft CMS `Html::namespaceInputs()`) rewrite every `name=\"…\"` attribute\n * in a form to namespace it, which would corrupt the icon lookup. `icon` is left\n * untouched. `name` is still supported for non-form contexts / back-compat.\n */\n@customElement('pk-icon')\nexport class PkIcon extends PkElement {\n static override styles = css`\n :host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex: none;\n /* Square em box + slight baseline nudge for inline text. Flex\n * parents (e.g. button slots) should zero vertical-align. */\n width: 1em;\n height: 1em;\n line-height: 1;\n vertical-align: -0.125em;\n }\n\n svg {\n display: block;\n width: 100%;\n height: 100%;\n fill: currentColor;\n /* Allow intentional path overhang past the icon canvas. */\n overflow: visible;\n }\n `;\n\n /**\n * Icon name (kebab-case), e.g. `chevron-down`, `gear`, `xmark`.\n * Namespacing-safe alternative to `name` — use this inside CMS form markup.\n */\n @property()\n icon = '';\n\n /**\n * Icon name (kebab-case). Back-compat / non-form alias for `icon`.\n * Avoid in server-namespaced forms, where `name` attributes get rewritten.\n */\n @property()\n name = '';\n\n /**\n * Accessible label. When set the icon is exposed as an image with a title;\n * otherwise it is hidden from assistive technology.\n */\n @property()\n label?: string;\n\n private unsubscribeRegistry: (() => void) | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n // Later plugins may register glyphs after this host upgraded — re-resolve.\n this.unsubscribeRegistry = subscribeIconRegistry(() => {\n this.requestUpdate();\n });\n }\n\n override disconnectedCallback(): void {\n this.unsubscribeRegistry?.();\n this.unsubscribeRegistry = null;\n super.disconnectedCallback();\n }\n\n override render() {\n const icon = getIcon(this.icon || this.name);\n\n if (!icon) {\n return nothing;\n }\n\n return html`${unsafeSVG(iconToSvg(icon, { title: this.label }))}`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pk-icon': PkIcon;\n }\n}\n"],"mappings":";;;;;;AA4BO,IAAA,SAAA,MAAM,eAAe,UAAU;;;cA8B3B;cAOA;6BAS4C;;;gBA7C1B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;CA+C5B,oBAAmC;AAC/B,QAAM,mBAAmB;AAGzB,OAAK,sBAAsB,4BAA4B;AACnD,QAAK,eAAe;IACtB;;CAGN,uBAAsC;AAClC,OAAK,uBAAuB;AAC5B,OAAK,sBAAsB;AAC3B,QAAM,sBAAsB;;CAGhC,SAAkB;EACd,MAAM,OAAO,QAAQ,KAAK,QAAQ,KAAK,KAAK;AAE5C,MAAI,CAAC,KACD,QAAO;AAGX,SAAO,IAAI,GAAG,UAAU,UAAU,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC;;;YAzClE,UAAU,CAAA,EAAA,OAAA,WAAA,QAAA,KAAA,EAAA;YAOV,UAAU,CAAA,EAAA,OAAA,WAAA,QAAA,KAAA,EAAA;YAOV,UAAU,CAAA,EAAA,OAAA,WAAA,SAAA,KAAA,EAAA;qBA5Cd,cAAc,UAAU,CAAA,EAAA,OAAA"}
package/dist/index.js CHANGED
@@ -66,7 +66,7 @@ import { t as PkDatePicker } from "./chunks/pk-date-picker-BM4HMb4-.js";
66
66
  import { t as PkOption } from "./chunks/pk-option-Cy7oOcwF.js";
67
67
  import { t as PkSelect } from "./chunks/pk-select-BeMDXEC6.js";
68
68
  import { t as PkTimePicker } from "./chunks/pk-time-picker-RlAqlho4.js";
69
- import { a as nextRowId, i as isCustomColumn, n as BUILTIN_COLUMN_TYPES, r as getCustomCellSlotName, t as PkEditableTable } from "./chunks/pk-editable-table-DQZQ6JLb.js";
69
+ import { a as nextRowId, i as isCustomColumn, n as BUILTIN_COLUMN_TYPES, r as getCustomCellSlotName, t as PkEditableTable } from "./chunks/pk-editable-table-DMHGqZlQ.js";
70
70
  import "./components/editable-table.js";
71
71
  import { t as PkField } from "./chunks/pk-field-JFP24j4o.js";
72
72
  import "./components/field.js";
@@ -96,7 +96,7 @@ import "./components/spinner.js";
96
96
  import { t as PkTiptapContent } from "./chunks/pk-tiptap-content-zzx3-xrD.js";
97
97
  import { t as PkTiptapEditor } from "./chunks/pk-tiptap-editor-DpT4TYdi.js";
98
98
  import { t as PkTiptapInput } from "./chunks/pk-tiptap-input-D7xj13FY.js";
99
- import { t as registerAll } from "./chunks/register-C9xZttKy.js";
99
+ import { t as registerAll } from "./chunks/register-DeqrQzRS.js";
100
100
  import { _ as setPortalClassName, a as startLoader, c as setBasePath, d as getPortalClassName, f as getPortalContainer, g as resolvePositionMethod, h as getShadowRootSelectors, i as preventTurboFouce, l as allDefined, m as getPortalTargetForAppend, n as FOUCE_TIMEOUT_MS, o as stopLoader, p as getPortalMountElement, r as discover, s as getBasePath, t as DISCOVERY_COMPLETE_EVENT, u as configurePluginKitWeb, v as setPortalContainer, y as setShadowRootSelectors } from "./chunks/autoloader-DPX9YYZs.js";
101
101
  import { t as BUNDLER_TAG_IMPORT_PATHS } from "./chunks/component-registry-CNB8PbP_.js";
102
102
  import { t as createRegisterComponents } from "./chunks/register-components-B-qCPFFh.js";
package/dist/register.js CHANGED
@@ -54,7 +54,7 @@ import { t as PkDatePicker } from "./chunks/pk-date-picker-BM4HMb4-.js";
54
54
  import { t as PkOption } from "./chunks/pk-option-Cy7oOcwF.js";
55
55
  import { t as PkSelect } from "./chunks/pk-select-BeMDXEC6.js";
56
56
  import { t as PkTimePicker } from "./chunks/pk-time-picker-RlAqlho4.js";
57
- import { t as PkEditableTable } from "./chunks/pk-editable-table-DQZQ6JLb.js";
57
+ import { t as PkEditableTable } from "./chunks/pk-editable-table-DMHGqZlQ.js";
58
58
  import { t as PkField } from "./chunks/pk-field-JFP24j4o.js";
59
59
  import "./components/field.js";
60
60
  import { t as PkPopover } from "./chunks/pk-popover-G3ojheBD.js";
@@ -82,7 +82,7 @@ import "./components/spinner.js";
82
82
  import { t as PkTiptapContent } from "./chunks/pk-tiptap-content-zzx3-xrD.js";
83
83
  import { t as PkTiptapEditor } from "./chunks/pk-tiptap-editor-DpT4TYdi.js";
84
84
  import { t as PkTiptapInput } from "./chunks/pk-tiptap-input-D7xj13FY.js";
85
- import { t as registerAll } from "./chunks/register-C9xZttKy.js";
85
+ import { t as registerAll } from "./chunks/register-DeqrQzRS.js";
86
86
  import { t as BUNDLER_TAG_IMPORT_PATHS } from "./chunks/component-registry-CNB8PbP_.js";
87
87
  import { t as createRegisterComponents } from "./chunks/register-components-B-qCPFFh.js";
88
88
  export { ALL_VALUE, PkButton, PkButtonGroup, PkButtonGroupSeparator, PkButtonGroupText, PkCalendar, PkCheckbox, PkCheckboxSelect, PkCodeEditor, PkColorInput, PkCombobox, PkConnect, PkConnectOauth, PkCopyButton, PkDatePicker, PkDialog, PkDropdownItem, PkDropdownLabel, PkDropdownMenu, PkDropdownSeparator, PkEditableTable, PkField, PkIcon, PkInput, PkInputGroup, PkInputGroupAddon, PkInputGroupButton, PkInputGroupInput, PkInputGroupText, PkInputGroupTextarea, PkLightswitch, PkOption, PkOptionGroup, PkPopover, PkPopup, PkRadio, PkRadioGroup, PkScrollArea, PkSelect, PkSeparator, PkSpinner, PkStatus, PkTab, PkTabHeading, PkTabPanel, PkTabs, PkTextarea, PkTimePicker, PkTiptapContent, PkTiptapEditor, PkTiptapInput, PkToggle, PkToggleGroup, PkTooltip, BUNDLER_TAG_IMPORT_PATHS as componentImportPaths, createRegisterComponents, getButtonSpinnerSize, registerAll, resolveSpinnerVariant };
@@ -1,13 +1,14 @@
1
1
  import { a as o, f as A, l as n, m as i, p as b, u as customElement } from "./lit-DpLik9Rf.js";
2
2
  import { c as __decorate, l as PkElement } from "./pk-base-B21zXxSo.js";
3
3
  import { t as iconToSvg } from "./svg-_Mtb7CHx.js";
4
- import { t as getIcon } from "./registry-CmL0rH9r.js";
4
+ import { i as subscribeIconRegistry, t as getIcon } from "./registry-BanyScVR.js";
5
5
  //#region src/components/icon/pk-icon.ts
6
6
  var PkIcon = class PkIcon extends PkElement {
7
7
  constructor(..._args) {
8
8
  super(..._args);
9
9
  this.icon = "";
10
10
  this.name = "";
11
+ this.unsubscribeRegistry = null;
11
12
  }
12
13
  static {
13
14
  this.styles = i`
@@ -34,6 +35,17 @@ var PkIcon = class PkIcon extends PkElement {
34
35
  }
35
36
  `;
36
37
  }
38
+ connectedCallback() {
39
+ super.connectedCallback();
40
+ this.unsubscribeRegistry = subscribeIconRegistry(() => {
41
+ this.requestUpdate();
42
+ });
43
+ }
44
+ disconnectedCallback() {
45
+ this.unsubscribeRegistry?.();
46
+ this.unsubscribeRegistry = null;
47
+ super.disconnectedCallback();
48
+ }
37
49
  render() {
38
50
  const icon = getIcon(this.icon || this.name);
39
51
  if (!icon) return A;
@@ -0,0 +1,72 @@
1
+ //#region ../plugin-kit-icons/dist/registry.js
2
+ var camelToKebab = (value) => {
3
+ return value.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
4
+ };
5
+ /**
6
+ * Normalize a consumer-facing name to the registry key.
7
+ * Accepts kebab-case (`chevron-down`) or camelCase (`chevronDown`) — same glyph, not synonyms.
8
+ */
9
+ var normalizeIconName = (name) => {
10
+ const trimmed = name.trim();
11
+ if (!trimmed) return trimmed;
12
+ if (!/[A-Z]/.test(trimmed)) return trimmed.toLowerCase();
13
+ return camelToKebab(trimmed);
14
+ };
15
+ /**
16
+ * Cross-bundle singleton keys. Craft CP pages load several Plugin Kit consumers,
17
+ * each with its own Vite copy of this module — a module-scoped `registry` object
18
+ * would not be shared, so Plugin B’s `registerIcons({ gear })` never reaches
19
+ * Plugin A’s winning `<pk-icon>`. `globalThis` is the same map for every copy.
20
+ */
21
+ var REGISTRY_KEY = "__PK_ICON_REGISTRY__";
22
+ var LISTENERS_KEY = "__PK_ICON_REGISTRY_LISTENERS__";
23
+ var getRegistry = () => {
24
+ const root = globalThis;
25
+ if (!root[REGISTRY_KEY]) root[REGISTRY_KEY] = {};
26
+ return root[REGISTRY_KEY];
27
+ };
28
+ var getListeners = () => {
29
+ const root = globalThis;
30
+ if (!root[LISTENERS_KEY]) root[LISTENERS_KEY] = /* @__PURE__ */ new Set();
31
+ return root[LISTENERS_KEY];
32
+ };
33
+ var notifyRegistryChanged = () => {
34
+ for (const listener of getListeners()) try {
35
+ listener();
36
+ } catch {}
37
+ };
38
+ /**
39
+ * Subscribe to additive `registerIcon(s)` updates (e.g. `<pk-icon>` re-resolves
40
+ * after a later plugin merges glyphs into the shared map). Returns unsubscribe.
41
+ */
42
+ var subscribeIconRegistry = (listener) => {
43
+ const listeners = getListeners();
44
+ listeners.add(listener);
45
+ return () => {
46
+ listeners.delete(listener);
47
+ };
48
+ };
49
+ /** Resolve an icon by kebab-case or camelCase name. Returns `undefined` if unknown. */
50
+ var getIcon = (name) => {
51
+ if (!name) return;
52
+ const registry = getRegistry();
53
+ return registry[normalizeIconName(name)] ?? registry[name];
54
+ };
55
+ /**
56
+ * Register several icons in one call. Equivalent to repeated {@link registerIcon},
57
+ * with a single change notification at the end.
58
+ * Keys may be kebab-case or camelCase (normalized to kebab).
59
+ */
60
+ var registerIcons = (entries) => {
61
+ let changed = false;
62
+ for (const [name, icon] of Object.entries(entries)) {
63
+ const key = normalizeIconName(name);
64
+ if (!key) throw new Error("registerIcon: name must be a non-empty string");
65
+ if (!icon?.path || !icon.width || !icon.height) throw new Error(`registerIcon: icon "${key}" must include width, height, and path`);
66
+ getRegistry()[key] = icon;
67
+ changed = true;
68
+ }
69
+ if (changed) notifyRegistryChanged();
70
+ };
71
+ //#endregion
72
+ export { subscribeIconRegistry as i, normalizeIconName as n, registerIcons as r, getIcon as t };
@@ -1,6 +1,6 @@
1
1
  import { c as r, d as i, f as A, l as n, p as b, u as customElement } from "../../chunks/lit-DpLik9Rf.js";
2
2
  import { c as __decorate } from "../../chunks/pk-base-B21zXxSo.js";
3
- import "../../chunks/pk-icon-B-OBmJ3K.js";
3
+ import "../../chunks/pk-icon-WHUu7wxk.js";
4
4
  import "../../chunks/pk-button-Dh4gjLHw.js";
5
5
  import "../../chunks/pk-dialog-BpPRqFMm.js";
6
6
  import { a as sendCpConnectRequest, c as watchCpFormDirty, i as resolveConnectError, n as buildConnectPayload, o as serializeCpForm, r as escapeCpHtml, t as pkConnectStyles } from "../../chunks/pk-connect.styles-Bfgwu0VH.js";