@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.
- package/CHANGELOG.md +12 -0
- package/dist/chunks/{pk-editable-table-DQZQ6JLb.js → pk-editable-table-DMHGqZlQ.js} +193 -5
- package/dist/chunks/pk-editable-table-DMHGqZlQ.js.map +1 -0
- package/dist/chunks/{register-C9xZttKy.js → register-DeqrQzRS.js} +2 -2
- package/dist/chunks/{register-C9xZttKy.js.map → register-DeqrQzRS.js.map} +1 -1
- package/dist/components/editable-table/editable-table-model.d.ts +16 -0
- package/dist/components/editable-table/editable-table-model.d.ts.map +1 -1
- package/dist/components/editable-table/pk-editable-table.d.ts +25 -0
- 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/icon/pk-icon.d.ts +4 -0
- package/dist/components/icon/pk-icon.d.ts.map +1 -1
- package/dist/components/icon/pk-icon.js +13 -1
- package/dist/components/icon/pk-icon.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/register.js +2 -2
- package/dist-loader/chunks/{pk-icon-B-OBmJ3K.js → pk-icon-WHUu7wxk.js} +13 -1
- package/dist-loader/chunks/registry-BanyScVR.js +72 -0
- package/dist-loader/components/connect/connect.js +1 -1
- package/dist-loader/components/editable-table/editable-table.js +193 -5
- package/dist-loader/components/icon/icon.js +2 -2
- package/package.json +7 -7
- package/dist/chunks/pk-editable-table-DQZQ6JLb.js.map +0 -1
- package/dist-loader/chunks/registry-CmL0rH9r.js +0 -55
|
@@ -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":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAG1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AAGnF,OAAO,wBAAwB,CAAC;AAChC,OAAO,4BAA4B,CAAC;AACpC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,4BAA4B,CAAC;AACpC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,sCAAsC,CAAC;AAC9C,OAAO,sCAAsC,CAAC;AAC9C,OAAO,sBAAsB,CAAC;AAC9B,OAAO,kCAAkC,CAAC;AAC1C,OAAO,wBAAwB,CAAC;AAChC,OAAO,wBAAwB,CAAC;AAChC,OAAO,4BAA4B,CAAC;AACpC,OAAO,kCAAkC,CAAC;AAG1C,OAAO,
|
|
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-
|
|
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-
|
|
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
|
|
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":";;;;;;
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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";
|