@verbb/plugin-kit-web 2.0.6 → 2.0.8
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 +15 -0
- package/dist/a11y/scroll-lock.d.ts +13 -7
- package/dist/a11y/scroll-lock.d.ts.map +1 -1
- package/dist/chunks/{autoloader-DXK9MVuw.js → autoloader-hkX3zcAt.js} +2 -21
- package/dist/chunks/autoloader-hkX3zcAt.js.map +1 -0
- package/dist/chunks/{pk-combobox-DtkXaX67.js → pk-combobox-BqaSsLJb.js} +2 -2
- package/dist/chunks/{pk-combobox-DtkXaX67.js.map → pk-combobox-BqaSsLJb.js.map} +1 -1
- package/dist/chunks/{pk-dialog-DZZd1Tzb.js → pk-dialog-BXJr3iEo.js} +17 -6
- package/dist/chunks/pk-dialog-BXJr3iEo.js.map +1 -0
- package/dist/chunks/{pk-editable-table-DVqOEz3W.js → pk-editable-table-sZO9JwiR.js} +4 -4
- package/dist/chunks/{pk-editable-table-DVqOEz3W.js.map → pk-editable-table-sZO9JwiR.js.map} +1 -1
- package/dist/chunks/{pk-select-odSNU1tN.js → pk-select-BPnO9qgj.js} +2 -2
- package/dist/chunks/{pk-select-odSNU1tN.js.map → pk-select-BPnO9qgj.js.map} +1 -1
- package/dist/chunks/{pk-time-picker-DtX0LtID.js → pk-time-picker-CZGr2dI2.js} +2 -2
- package/dist/chunks/{pk-time-picker-DtX0LtID.js.map → pk-time-picker-CZGr2dI2.js.map} +1 -1
- package/dist/chunks/{pk-tiptap-editor-CdoutapZ.js → pk-tiptap-editor-HemVPILE.js} +2 -2
- package/dist/chunks/{pk-tiptap-editor-CdoutapZ.js.map → pk-tiptap-editor-HemVPILE.js.map} +1 -1
- package/dist/chunks/{register-BYPBQHrq.js → register-BCiqL-PO.js} +7 -7
- package/dist/chunks/{register-BYPBQHrq.js.map → register-BCiqL-PO.js.map} +1 -1
- package/dist/chunks/scroll-lock-Bbh3Sc5g.js +160 -0
- package/dist/chunks/scroll-lock-Bbh3Sc5g.js.map +1 -0
- package/dist/components/combobox/pk-combobox.js +1 -1
- package/dist/components/combobox.js +1 -1
- package/dist/components/dialog/pk-dialog.d.ts +5 -0
- package/dist/components/dialog/pk-dialog.d.ts.map +1 -1
- package/dist/components/dialog/pk-dialog.js +1 -1
- package/dist/components/dialog/pk-dialog.styles.d.ts.map +1 -1
- package/dist/components/dialog.js +1 -1
- package/dist/components/editable-table/pk-editable-table.js +1 -1
- package/dist/components/editable-table.js +1 -1
- package/dist/components/select/pk-select.js +1 -1
- package/dist/components/select.js +1 -1
- package/dist/components/time-picker/pk-time-picker.js +1 -1
- package/dist/components/time-picker.js +1 -1
- package/dist/components/tiptap/pk-tiptap-editor.js +1 -1
- package/dist/components/tiptap-editor.js +1 -1
- package/dist/index.js +9 -9
- package/dist/plugin-kit.css +2 -5
- package/dist/plugin-kit.js +2 -2
- package/dist/register.js +7 -7
- package/dist/tokens.css +2 -5
- package/dist/utils/config.d.ts +2 -2
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/documentScrollStability.d.ts +3 -7
- package/dist/utils/documentScrollStability.d.ts.map +1 -1
- package/dist-loader/chunks/{pk-a11y-Cx5RZvhu.js → pk-a11y-CjB4-U-R.js} +61 -94
- package/dist-loader/chunks/{pk-combobox-fXGaY4L0.js → pk-combobox-IyQd9a1s.js} +1 -1
- package/dist-loader/chunks/{pk-date-picker-CE4TlRRZ.js → pk-date-picker-38hUgJ2-.js} +1 -1
- package/dist-loader/chunks/{pk-dialog-CP1YT85H.js → pk-dialog-DNAhdVbM.js} +16 -5
- package/dist-loader/chunks/{pk-dropdown-menu-CajQAobW.js → pk-dropdown-menu-DsHJ-4Ys.js} +1 -1
- package/dist-loader/chunks/{pk-field-BbKmQmTF.js → pk-field-tDfxz4Fd.js} +1 -1
- package/dist-loader/chunks/{pk-input-CXE7_rTQ.js → pk-input-88DVgoVz.js} +1 -1
- package/dist-loader/chunks/{pk-select-CbmPJCx8.js → pk-select-ClUdE4yB.js} +1 -1
- package/dist-loader/chunks/{pk-textarea-Ch8JpP83.js → pk-textarea-LC_CPUav.js} +1 -1
- package/dist-loader/chunks/{pk-time-picker-DZljwJn9.js → pk-time-picker-Bc6UkCYG.js} +1 -1
- package/dist-loader/chunks/{pk-tooltip-DHiCn33o.js → pk-tooltip-DRU95AZ6.js} +1 -1
- package/dist-loader/chunks/{tiptap.styles-CDjt6Iz4.js → tiptap.styles-gpE_nQ_B.js} +1 -1
- package/dist-loader/components/code-editor/code-editor.js +5 -5
- package/dist-loader/components/combobox/combobox.js +1 -1
- package/dist-loader/components/date-picker/date-picker.js +1 -1
- package/dist-loader/components/dialog/dialog.js +1 -1
- package/dist-loader/components/dropdown-menu/dropdown-menu.js +1 -1
- package/dist-loader/components/editable-table/editable-table.js +7 -7
- package/dist-loader/components/field/field.js +1 -1
- package/dist-loader/components/input/input.js +1 -1
- package/dist-loader/components/popover/popover.js +1 -1
- package/dist-loader/components/select/option-group.js +1 -1
- package/dist-loader/components/select/select.js +1 -1
- package/dist-loader/components/tabs/tabs.js +1 -1
- package/dist-loader/components/textarea/textarea.js +1 -1
- package/dist-loader/components/time-picker/time-picker.js +1 -1
- package/dist-loader/components/tiptap/tiptap-content.js +1 -1
- package/dist-loader/components/tiptap/tiptap-editor.js +7 -7
- package/dist-loader/components/tiptap/tiptap-input.js +1 -1
- package/dist-loader/components/tooltip/tooltip.js +1 -1
- package/dist-loader/plugin-kit.css +2 -5
- package/dist-loader/plugin-kit.loader.js +2 -22
- package/dist-loader/tokens.css +2 -5
- package/package.json +8 -7
- package/dist/chunks/autoloader-DXK9MVuw.js.map +0 -1
- package/dist/chunks/pk-dialog-DZZd1Tzb.js.map +0 -1
- package/dist/chunks/scroll-lock-B4o9vdzJ.js +0 -193
- package/dist/chunks/scroll-lock-B4o9vdzJ.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 2.0.8 - 2026-08-20
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
- Documented that controlled `pk-dialog` zero-footprint hosts still participate in DOM sibling selectors (e.g. Tailwind `space-y-*` / `:not(:last-child)`). Prefer flex/grid `gap-*` or mount overlays outside the spaced stack; a light-DOM portal would also address it.
|
|
9
|
+
- No longer sets permanent `html { scrollbar-gutter: stable }` (tokens + ShadowRoot config injector). That reserved an empty scrollbar strip on every Craft CP page (Formie, Navigation, etc.).
|
|
10
|
+
- Overlay scroll lock now follows Craft / Garnish.Modal’s document model: `body { overflow: hidden }` only (Craft’s `body.no-scroll`), plus wheel/touch/page-key `preventDefault` outside locking hosts so the page cannot scroll under the shade. Does **not** use `body { position: fixed }`, `overflow: hidden` on `html`, lock-time `scrollbar-gutter`, `padding-right`, or scroll-position pin listeners (sticky `#global-sidebar` jumps, width shifts, or rubber-band scrollbar). Dialog hosts stay `position: fixed` like Craft’s modal/shade.
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
- `pk-dialog` / React `Dialog` gain `disableScrollLock` (`disable-scroll-lock`) to skip document scroll lock while open.
|
|
14
|
+
|
|
15
|
+
## 2.0.7 - 2026-08-07
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
- Released alongside the other `@verbb/plugin-kit-*` packages to keep versions aligned.
|
|
19
|
+
|
|
5
20
|
## 2.0.6 - 2026-07-21
|
|
6
21
|
|
|
7
22
|
### Changed
|
|
@@ -3,14 +3,20 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Ref-counted so nested overlays unlock only when all close.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* `body {
|
|
9
|
-
*
|
|
6
|
+
* Aligns with Craft / Garnish.Modal where it matters:
|
|
7
|
+
* - Modal + shade are `position: fixed` (hosts, not the document).
|
|
8
|
+
* - Document lock is `body { overflow: hidden }` (Craft’s `.no-scroll`) — **not**
|
|
9
|
+
* `body { position: fixed }`, and **not** `overflow: hidden` on `html`.
|
|
10
|
+
* Body-only overflow keeps Craft’s sticky `#global-sidebar` stuck at the current
|
|
11
|
+
* scrollY; html overflow / body fixed both make sticky “let go” and the nav jumps.
|
|
10
12
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
13
|
+
* Craft’s class alone still lets the page scroll under the shade (wheel / scrollBy).
|
|
14
|
+
* We add wheel / touch / page-key `preventDefault` outside locking overlay hosts so
|
|
15
|
+
* user scrolling actually stops — without a `scroll` listener that rubber-bands the
|
|
16
|
+
* position back (that felt gross).
|
|
17
|
+
*
|
|
18
|
+
* Also avoid: permanent/lock-time `scrollbar-gutter`, and `padding-right` compensation
|
|
19
|
+
* (Craft fixed tip bars ignore body padding and jump).
|
|
14
20
|
*/
|
|
15
21
|
export declare function lockBodyScrolling(lockingEl: HTMLElement): void;
|
|
16
22
|
export declare function unlockBodyScrolling(lockingEl: HTMLElement): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scroll-lock.d.ts","sourceRoot":"","sources":["../../src/a11y/scroll-lock.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"scroll-lock.d.ts","sourceRoot":"","sources":["../../src/a11y/scroll-lock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AA6FH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI,CAS9D;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI,CAUhE;AAED,8EAA8E;AAC9E,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,4EAA4E;AAC5E,wBAAgB,oBAAoB,IAAI,IAAI,CAO3C;AAED,qEAAqE;AACrE,wBAAgB,cAAc,CAC1B,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,WAAW,EACtB,SAAS,GAAE,YAAY,GAAG,UAAU,GAAG,MAAmB,EAC1D,QAAQ,GAAE,cAAyB,GACpC,IAAI,CA8BN"}
|
|
@@ -1,24 +1,5 @@
|
|
|
1
1
|
import { t as SUPPORTS_POPOVER } from "./supports-popover-CUBsbHpS.js";
|
|
2
2
|
import { n as COMPONENT_MODULE_PATHS } from "./component-registry-BOlxFlou.js";
|
|
3
|
-
//#region src/utils/documentScrollStability.ts
|
|
4
|
-
var DOCUMENT_SCROLL_STABILITY_STYLE_ID = "plugin-kit-document-scroll-stability";
|
|
5
|
-
/**
|
|
6
|
-
* Reserve scrollbar space on the document root so overlay scroll lock
|
|
7
|
-
* can use the stable gutter path instead of body width compensation.
|
|
8
|
-
* Safe to call multiple times; only injects once.
|
|
9
|
-
*
|
|
10
|
-
* tokens.css already sets `html { scrollbar-gutter: stable }` for kit surfaces
|
|
11
|
-
* that import tokens. This injector covers hosts that load components without
|
|
12
|
-
* tokens (e.g. craft CP early boot / ShadowRoot portal config).
|
|
13
|
-
*/
|
|
14
|
-
var ensureDocumentScrollStability = () => {
|
|
15
|
-
if (typeof document === "undefined") return;
|
|
16
|
-
if (document.querySelector(`style[data-plugin-kit-style-id="${DOCUMENT_SCROLL_STABILITY_STYLE_ID}"]`)) return;
|
|
17
|
-
const style = document.createElement("style");
|
|
18
|
-
style.setAttribute("data-plugin-kit-style-id", DOCUMENT_SCROLL_STABILITY_STYLE_ID);
|
|
19
|
-
style.textContent = "html { scrollbar-gutter: stable; }";
|
|
20
|
-
document.head.appendChild(style);
|
|
21
|
-
};
|
|
22
3
|
//#endregion
|
|
23
4
|
//#region src/utils/portal.ts
|
|
24
5
|
var defaultPortalClassName;
|
|
@@ -69,7 +50,7 @@ function resolvePositionMethod(positionMethod, container) {
|
|
|
69
50
|
//#endregion
|
|
70
51
|
//#region src/utils/config.ts
|
|
71
52
|
var configurePluginKitWeb = (config) => {
|
|
72
|
-
if (config.portalContainer instanceof ShadowRoot)
|
|
53
|
+
if (config.portalContainer instanceof ShadowRoot);
|
|
73
54
|
if (config.shadowRootSelectors) setShadowRootSelectors(config.shadowRootSelectors);
|
|
74
55
|
};
|
|
75
56
|
//#endregion
|
|
@@ -174,4 +155,4 @@ var DISCOVERY_COMPLETE_EVENT = DISCOVERY_EVENT;
|
|
|
174
155
|
//#endregion
|
|
175
156
|
export { setPortalClassName as _, startLoader as a, setBasePath as c, getPortalClassName as d, getPortalContainer as f, resolvePositionMethod as g, getShadowRootSelectors as h, preventTurboFouce as i, allDefined as l, getPortalTargetForAppend as m, FOUCE_TIMEOUT_MS as n, stopLoader as o, getPortalMountElement as p, discover as r, getBasePath as s, DISCOVERY_COMPLETE_EVENT as t, configurePluginKitWeb as u, setPortalContainer as v, setShadowRootSelectors as y };
|
|
176
157
|
|
|
177
|
-
//# sourceMappingURL=autoloader-
|
|
158
|
+
//# sourceMappingURL=autoloader-hkX3zcAt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autoloader-hkX3zcAt.js","names":[],"sources":["../../src/utils/documentScrollStability.ts","../../src/utils/portal.ts","../../src/utils/config.ts","../../src/utilities/defined.ts","../../src/utilities/base-path.ts","../../src/utilities/autoloader.ts"],"sourcesContent":["/**\n * @deprecated No-op. Permanent `html { scrollbar-gutter: stable }` was removed —\n * it reserved an empty scrollbar strip on every Craft CP page. Overlay scroll lock\n * compensates only while locked (see a11y/scroll-lock.ts).\n */\nexport const ensureDocumentScrollStability = (): void => {\n // Intentionally empty — kept so older configurePluginKitWeb call sites stay safe.\n};\n","import { SUPPORTS_POPOVER } from './supports-popover.js';\n\nexport type PortalContainer = HTMLElement | ShadowRoot | null;\n\nlet defaultPortalClassName: string | undefined;\nlet defaultPortalContainer: PortalContainer | undefined;\nlet defaultShadowRootSelectors: string[] = ['[data-plugin-kit-shadow-root]'];\n\nexport const setPortalClassName = (className: string): void => {\n defaultPortalClassName = className.trim() || undefined;\n};\n\nexport const getPortalClassName = (className?: string): string | undefined => {\n return (className ?? defaultPortalClassName)?.trim() || undefined;\n};\n\nexport const setPortalContainer = (container: PortalContainer): void => {\n defaultPortalContainer = container;\n};\n\nexport const getPortalContainer = (container?: PortalContainer): PortalContainer | undefined => {\n return container ?? defaultPortalContainer;\n};\n\nexport const setShadowRootSelectors = (selectors: string[]): void => {\n const normalizedSelectors = (selectors || [])\n .map((selector) => selector.trim())\n .filter(Boolean);\n\n defaultShadowRootSelectors = normalizedSelectors.length > 0\n ? normalizedSelectors\n : ['[data-plugin-kit-shadow-root]'];\n};\n\nexport const getShadowRootSelectors = (): string[] => {\n return defaultShadowRootSelectors;\n};\n\n/**\n * Returns an HTMLElement suitable for appendChild — mirrors React `getPortalTargetForAppend`.\n * When the portal container is a ShadowRoot, prefers a dedicated mount node inside it.\n */\nexport function getPortalTargetForAppend(container?: PortalContainer): HTMLElement | undefined {\n const resolved = getPortalContainer(container);\n\n if (!resolved) {\n return undefined;\n }\n\n if (resolved instanceof HTMLElement) {\n return resolved;\n }\n\n const shadowRoot = resolved;\n\n const target = getShadowRootSelectors()\n .map((selector) => shadowRoot.querySelector<HTMLElement>(selector))\n .find((node) => Boolean(node));\n\n if (target) {\n return target;\n }\n\n return shadowRoot.host instanceof HTMLElement ? shadowRoot.host : undefined;\n}\n\n/** Resolves where floating popup layers should mount. Falls back to `document.body`. */\nexport function getPortalMountElement(container?: PortalContainer): HTMLElement {\n return getPortalTargetForAppend(container) ?? document.body;\n}\n\nexport function resolvePositionMethod(\n positionMethod: 'fixed' | 'absolute' | undefined,\n container?: PortalContainer,\n): 'fixed' | 'absolute' {\n if (positionMethod) {\n return positionMethod;\n }\n\n if (SUPPORTS_POPOVER) {\n return 'absolute';\n }\n\n const resolved = getPortalContainer(container);\n\n if (resolved instanceof ShadowRoot) {\n return 'fixed';\n }\n\n return 'absolute';\n}\n","import { ensureDocumentScrollStability } from './documentScrollStability.js';\nimport {\n setShadowRootSelectors,\n type PortalContainer,\n} from './portal.js';\n\nexport type PluginKitWebConfig = {\n /**\n * @deprecated Popups use the Popover API top layer — not DOM reparenting. Ignored if set.\n */\n portalClassName?: string;\n /**\n * When a `ShadowRoot`, used as a React portal target for Base UI compat.\n * No longer injects document scroll-gutter CSS (see scroll-lock.ts).\n */\n portalContainer?: PortalContainer;\n shadowRootSelectors?: string[];\n};\n\nexport const configurePluginKitWeb = (config: PluginKitWebConfig): void => {\n if (config.portalContainer instanceof ShadowRoot) {\n // Historically forced `html { scrollbar-gutter: stable }`; that is a no-op now.\n ensureDocumentScrollStability();\n }\n\n if (config.shadowRootSelectors) {\n setShadowRootSelectors(config.shadowRootSelectors);\n }\n};\n","export type AllDefinedOptions = {\n /**\n * Accepts a custom element tag name and returns `true` if the element should be awaited.\n * Tag names are always lowercase.\n */\n match?: (tagName: string) => boolean;\n /** Additional tag names to await that may not be in the DOM yet. */\n additionalElements?: string | string[];\n /** Root to search within. Defaults to `document`. Shadow roots are not traversed. */\n root?: Document | ShadowRoot;\n};\n\n/**\n * Waits for custom elements on the page to be registered before resolving.\n * By default, waits for all undefined `pk-*` elements.\n */\nexport async function allDefined(options: AllDefinedOptions = {}): Promise<void> {\n const opts = {\n match: (tagName: string) => tagName.startsWith('pk-'),\n additionalElements: [] as string[],\n root: document,\n ...options,\n };\n\n const additionalElements = Array.isArray(opts.additionalElements)\n ? opts.additionalElements\n : [opts.additionalElements];\n\n const undefinedElements = [...opts.root.querySelectorAll(':not(:defined)')]\n .map((el) => el.localName)\n .filter((tag, index, arr) => arr.indexOf(tag) === index)\n .filter((tag) => opts.match(tag));\n\n const tagsToAwait = [...undefinedElements, ...additionalElements];\n await Promise.all(tagsToAwait.map((tag) => customElements.whenDefined(tag)));\n await new Promise(requestAnimationFrame);\n}\n","let basePath = '';\n\nexport function setBasePath(path: string): void {\n basePath = path;\n}\n\nexport function getBasePath(subpath = ''): string {\n if (!basePath) {\n const el = document.querySelector('[data-plugin-kit]');\n\n if (el?.hasAttribute('data-plugin-kit')) {\n const rootRelativeUrl = new URL(el.getAttribute('data-plugin-kit') ?? '', window.location.href).pathname;\n setBasePath(rootRelativeUrl);\n } else {\n const scripts = [...document.getElementsByTagName('script')];\n const pkScript = scripts.find(\n (script) =>\n script.src.endsWith('plugin-kit.js') || script.src.endsWith('plugin-kit.loader.js'),\n );\n\n if (pkScript) {\n const path = String(pkScript.getAttribute('src'));\n setBasePath(path.split('/').slice(0, -1).join('/'));\n }\n }\n }\n\n return basePath.replace(/\\/$/, '') + (subpath ? `/${subpath.replace(/^\\//, '')}` : '');\n}\n","import { COMPONENT_MODULE_PATHS } from '../component-registry.js';\nimport { getBasePath } from './base-path.js';\n\nconst PK_PREFIX = 'pk-';\nconst DISCOVERY_EVENT = 'pk-discovery-complete';\n\nconst observer = new MutationObserver((mutations) => {\n for (const { addedNodes } of mutations) {\n for (const node of addedNodes) {\n if (node.nodeType === Node.ELEMENT_NODE) {\n void discover(node as Element);\n }\n }\n }\n});\n\nexport function startLoader(): void {\n void discover(document.documentElement);\n observer.observe(document.documentElement, { subtree: true, childList: true });\n}\n\nexport function stopLoader(): void {\n observer.disconnect();\n}\n\nexport async function discover(root: Document | Element = document): Promise<void> {\n const rootTagName = root instanceof Element ? root.tagName.toLowerCase() : '';\n const rootIsPluginKitComponent = rootTagName.startsWith(PK_PREFIX);\n const tags = [...root.querySelectorAll(':not(:defined)')]\n .map((el) => el.tagName.toLowerCase())\n .filter((tag) => tag.startsWith(PK_PREFIX));\n\n if (rootIsPluginKitComponent && !customElements.get(rootTagName)) {\n tags.push(rootTagName);\n }\n\n const preloadSelectors = root.querySelectorAll('[data-pk-preload]');\n const preloadRoots =\n root instanceof Element && root.hasAttribute('data-pk-preload')\n ? [root, ...preloadSelectors]\n : preloadSelectors;\n\n for (const el of preloadRoots) {\n tags.push(\n ...el\n .getAttribute('data-pk-preload')!\n .split(/\\s+/)\n .filter((tag) => tag.startsWith(PK_PREFIX)),\n );\n }\n\n const tagsToRegister = [...new Set(tags)];\n const imports = await Promise.allSettled(tagsToRegister.map((tagName) => register(tagName)));\n\n for (const imp of imports) {\n if (imp.status === 'rejected') {\n console.warn(imp.reason);\n }\n }\n\n await new Promise(requestAnimationFrame);\n\n root.dispatchEvent(\n new CustomEvent(DISCOVERY_EVENT, {\n bubbles: false,\n cancelable: false,\n composed: true,\n }),\n );\n}\n\nfunction register(tagName: string): Promise<void> {\n if (customElements.get(tagName)) {\n return Promise.resolve();\n }\n\n const modulePath = COMPONENT_MODULE_PATHS[tagName];\n\n if (!modulePath) {\n return Promise.reject(new Error(`Unable to autoload <${tagName}> — no module path registered`));\n }\n\n const path = getBasePath(modulePath);\n\n return import(/* @vite-ignore */ path).then(() => undefined);\n}\n\nlet turboTimeout = 2000;\n\n/** Prevent FOUCE when navigating with Turbo (Hotwire). */\nexport function preventTurboFouce(timeout = 2000): void {\n turboTimeout = timeout;\n document.addEventListener('turbo:before-render', handleTurboRender);\n}\n\nasync function handleTurboRender(event: Event): Promise<void> {\n const turboEvent = event as CustomEvent<{ newBody: Element; resume: () => void }>;\n const newBody = turboEvent.detail.newBody;\n\n turboEvent.preventDefault();\n\n try {\n await Promise.race([\n discover(newBody),\n new Promise<void>((resolve) => setTimeout(resolve, turboTimeout)),\n ]);\n } finally {\n turboEvent.detail.resume();\n }\n}\n\nexport const FOUCE_TIMEOUT_MS = 2000;\nexport const DISCOVERY_COMPLETE_EVENT = DISCOVERY_EVENT;\n"],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import { t as HasSlotController } from "./has-slot-8BvCt_qo.js";
|
|
|
7
7
|
import { n as renderIconHtml } from "./render-Dvc3MHQR.js";
|
|
8
8
|
import { i as uniqueId, t as LiveRegion } from "./focus-aa5dlv8k.js";
|
|
9
9
|
import { i as unregisterDismissible, n as isTopDismissible, r as registerDismissible } from "./dismissible-stack-XQUMfKO3.js";
|
|
10
|
-
import { i as scrollIntoView } from "./scroll-lock-
|
|
10
|
+
import { i as scrollIntoView } from "./scroll-lock-Bbh3Sc5g.js";
|
|
11
11
|
import { t as PkClearEvent } from "./pk-clear--mPWZP7H.js";
|
|
12
12
|
import { i as PkShowEvent, n as PkAfterShowEvent, r as PkHideEvent, t as PkAfterHideEvent } from "./overlay-lifecycle-D0pkTQyI.js";
|
|
13
13
|
import "./pk-popup-CgiXok-U.js";
|
|
@@ -2013,4 +2013,4 @@ PkCombobox = __decorate([customElement("pk-combobox")], PkCombobox);
|
|
|
2013
2013
|
//#endregion
|
|
2014
2014
|
export { PkCreateEvent as n, PkCombobox as t };
|
|
2015
2015
|
|
|
2016
|
-
//# sourceMappingURL=pk-combobox-
|
|
2016
|
+
//# sourceMappingURL=pk-combobox-BqaSsLJb.js.map
|