@penn-libraries/web 1.1.0-dev.4 → 1.1.0-dev.6
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/dist/cjs/pennlibs-autocomplete.pennlibs-footer.pennlibs-header.entry.cjs.js.map +1 -1
- package/dist/cjs/pennlibs-autocomplete_3.cjs.entry.js +15 -4
- package/dist/cjs/pennlibs-autocomplete_3.cjs.entry.js.map +1 -1
- package/dist/collection/components/pennlibs-autocomplete/pennlibs-autocomplete.css +2 -1
- package/dist/collection/components/pennlibs-autocomplete/pennlibs-autocomplete.js +16 -5
- package/dist/collection/components/pennlibs-autocomplete/pennlibs-autocomplete.js.map +1 -1
- package/dist/components/pennlibs-autocomplete.js +15 -4
- package/dist/components/pennlibs-autocomplete.js.map +1 -1
- package/dist/docs.json +3 -3
- package/dist/esm/pennlibs-autocomplete.pennlibs-footer.pennlibs-header.entry.js.map +1 -1
- package/dist/esm/pennlibs-autocomplete_3.entry.js +15 -4
- package/dist/esm/pennlibs-autocomplete_3.entry.js.map +1 -1
- package/dist/types/components/pennlibs-autocomplete/pennlibs-autocomplete.d.ts +2 -6
- package/dist/types/components.d.ts +0 -9
- package/dist/web/{p-40119068.entry.js → p-909144f6.entry.js} +16 -5
- package/dist/web/{p-40119068.entry.js.map → p-909144f6.entry.js.map} +1 -1
- package/dist/web/pennlibs-autocomplete.pennlibs-footer.pennlibs-header.entry.esm.js.map +1 -1
- package/dist/web/web.esm.js +1 -1
- package/hydrate/index.js +15 -4
- package/hydrate/index.mjs +15 -4
- package/package.json +1 -1
package/dist/web/web.esm.js
CHANGED
|
@@ -17,7 +17,7 @@ var patchBrowser = () => {
|
|
|
17
17
|
|
|
18
18
|
patchBrowser().then(async (options) => {
|
|
19
19
|
await globalScripts();
|
|
20
|
-
return bootstrapLazy([["p-
|
|
20
|
+
return bootstrapLazy([["p-909144f6",[[1,"pennlibs-autocomplete",{"for":[1],"showSuggestions":[32],"currentIndex":[32],"originalValue":[32],"options":[32]},[[0,"slotchange","handleSlotChange"],[16,"input","handleInputEvent"],[16,"focus","handleFocusEvent"],[16,"blur","handleBlurEvent"],[0,"focusout","handleFocusOut"],[4,"keydown","handleKeyDown"]]],[1,"pennlibs-footer",{"navigationByChildren":[32]}],[1,"pennlibs-header",{"serviceName":[1,"service-name"],"serviceLede":[1,"service-lede"],"serviceHref":[1,"service-href"],"theme":[1],"isMenuOpen":[32],"navigation":[32]}]]],["p-20c0bd7a",[[1,"pennlibs-banner"]]],["p-cbae5952",[[1,"pennlibs-chat",{"href":[32]}]]],["p-5e385536",[[1,"pennlibs-fallback-img"]]],["p-370e32b1",[[1,"pennlibs-feedback",{"error":[32],"answer":[32]}]]],["p-07ad051f",[[1,"pennlibs-hero",{"heroPictureElement":[32],"heroHeadingElement":[32],"heroParagraphElement":[32],"heroSrc":[32]}]]]], options);
|
|
21
21
|
});
|
|
22
22
|
//# sourceMappingURL=web.esm.js.map
|
|
23
23
|
|
package/hydrate/index.js
CHANGED
|
@@ -3165,7 +3165,7 @@ var registerHost = (elm, cmpMeta) => {
|
|
|
3165
3165
|
};
|
|
3166
3166
|
var styles = /* @__PURE__ */ new Map();
|
|
3167
3167
|
|
|
3168
|
-
const pennlibsAutocompleteCss = ":host {\n display: block;\n width: 100%;\n border-radius: 1.25rem;\n padding: 0;\n border-top: 0;\n position: relative;\n}\n\n[role=listbox] {\n position: absolute;\n margin-top: var(--pl-space-xs);\n background: var(--pl-color-bg-default);\n border-radius: 1.25rem;\n box-shadow: rgba(140, 149, 159, 0.3) 0px 8px 24px 0px;\n width: 100%;\n overflow: hidden;\n z-index: 1;\n\n display: flex;\n flex-direction: column;\n}\n\np {\n margin: 0;\n font-size: var(--pl-font-size-s);\n color: var(--pl-color-fg-subtle);\n padding: var(--pl-space-xs) calc(var(--pl-space-m) + var(--pl-space-2xs));\n font-size: var(--pl-font-size-s);\n order: 2;\n font-weight: 500;\n background: var(--pl-color-bg-subtle);\n border-radius: 0 0 1.25rem 1.25rem;\n\n display: flex;\n gap: var(--pl-space-s) var(--pl-space-l);\n flex-wrap: wrap;\n}\n\nol {\n list-style: none;\n margin: 0;\n padding: var(--pl-space-xs) 0;\n order: 1;\n}\n\n[role=option] {\n color: var(--pl-color-fg-default);\n padding: var(--pl-space-s) calc(var(--pl-space-m) + var(--pl-space-2xs));\n text-decoration: none;\n font-weight: 700; \n\n &:hover {\n cursor: pointer;\n }\n\n &:hover,\n &:focus {\n text-decoration-thickness: 2px;\n text-underline-offset: 2px;\n text-decoration: underline;\n }\n}\n\n[aria-selected=true] {\n text-decoration-thickness: 2px;\n text-underline-offset: 2px;\n text-decoration: underline;\n}\n\nmark {\n background: none;\n font-weight: 400;\n}\n\n.suggestion--border {\n border-bottom: solid 1px rgb(from var(--pl-color-fg-default) r g b / 0.2);\n padding-bottom: calc(var(--pl-space-2xs) + var(--pl-space-s));\n margin-bottom: var(--pl-space-2xs);\n}";
|
|
3168
|
+
const pennlibsAutocompleteCss = ":host {\n display: block;\n width: 100%;\n border-radius: 1.25rem;\n padding: 0;\n border-top: 0;\n position: relative;\n}\n\n[role=listbox] {\n position: absolute;\n margin-top: var(--pl-space-xs);\n background: var(--pl-color-bg-default);\n border-radius: 1.25rem;\n box-shadow: rgba(140, 149, 159, 0.3) 0px 8px 24px 0px;\n width: 100%;\n overflow: hidden;\n z-index: 1;\n\n display: flex;\n flex-direction: column;\n}\n\np {\n margin: 0;\n font-size: var(--pl-font-size-s);\n color: var(--pl-color-fg-subtle);\n padding: var(--pl-space-xs) calc(var(--pl-space-m) + var(--pl-space-2xs));\n font-size: var(--pl-font-size-s);\n order: 2;\n font-weight: 500;\n background: var(--pl-color-bg-subtle);\n border-radius: 0 0 1.25rem 1.25rem;\n\n display: flex;\n gap: var(--pl-space-s) var(--pl-space-l);\n flex-wrap: wrap;\n}\n\nol {\n list-style: none;\n margin: 0;\n padding: var(--pl-space-xs) 0;\n order: 1;\n}\n\n[role=option] {\n color: var(--pl-color-fg-default);\n padding: var(--pl-space-s) calc(var(--pl-space-m) + var(--pl-space-2xs));\n text-decoration: none;\n font-weight: 700; \n\n &:hover {\n cursor: pointer;\n }\n\n &:hover,\n &:focus {\n text-decoration-thickness: 2px;\n text-underline-offset: 2px;\n text-decoration: underline;\n }\n}\n\n[aria-selected=true] {\n text-decoration-thickness: 2px;\n text-underline-offset: 2px;\n text-decoration: underline;\n}\n\nmark,\nb {\n background: none;\n font-weight: 400;\n}\n\n.suggestion--border {\n border-bottom: solid 1px rgb(from var(--pl-color-fg-default) r g b / 0.2);\n padding-bottom: calc(var(--pl-space-2xs) + var(--pl-space-s));\n margin-bottom: var(--pl-space-2xs);\n}";
|
|
3169
3169
|
|
|
3170
3170
|
class Autocomplete {
|
|
3171
3171
|
constructor(hostRef) {
|
|
@@ -3185,10 +3185,23 @@ class Autocomplete {
|
|
|
3185
3185
|
}
|
|
3186
3186
|
componentDidLoad() {
|
|
3187
3187
|
this.setupInput();
|
|
3188
|
+
this.setupMutationObserver();
|
|
3188
3189
|
}
|
|
3189
3190
|
disconnectedCallback() {
|
|
3190
3191
|
if (this.blurTimeout)
|
|
3191
3192
|
clearTimeout(this.blurTimeout);
|
|
3193
|
+
if (this.mutationObserver)
|
|
3194
|
+
this.mutationObserver.disconnect();
|
|
3195
|
+
}
|
|
3196
|
+
setupMutationObserver() {
|
|
3197
|
+
this.mutationObserver = new MutationObserver(() => {
|
|
3198
|
+
this.options = this.parseOptionsFromDOM();
|
|
3199
|
+
});
|
|
3200
|
+
this.mutationObserver.observe(this.el, {
|
|
3201
|
+
childList: true,
|
|
3202
|
+
subtree: true,
|
|
3203
|
+
characterData: true
|
|
3204
|
+
});
|
|
3192
3205
|
}
|
|
3193
3206
|
parseOptionsFromDOM() {
|
|
3194
3207
|
const listbox = this.findListbox();
|
|
@@ -3249,7 +3262,6 @@ class Autocomplete {
|
|
|
3249
3262
|
handleInputEvent(event) {
|
|
3250
3263
|
const input = event.target;
|
|
3251
3264
|
if (this.isTrackedInput(input)) {
|
|
3252
|
-
// Reset active option when user manually changes input
|
|
3253
3265
|
this.currentIndex = -1;
|
|
3254
3266
|
this.openSuggestions();
|
|
3255
3267
|
}
|
|
@@ -3372,7 +3384,6 @@ class Autocomplete {
|
|
|
3372
3384
|
const active = document.activeElement;
|
|
3373
3385
|
return !((_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.contains(active)) && active !== this.getInput();
|
|
3374
3386
|
}
|
|
3375
|
-
// Input State Sync
|
|
3376
3387
|
syncInputState() {
|
|
3377
3388
|
const input = this.getInput();
|
|
3378
3389
|
if (!input)
|
|
@@ -3402,7 +3413,7 @@ class Autocomplete {
|
|
|
3402
3413
|
return this.showSuggestions && this.options.length > 0 && this.isInputFocused();
|
|
3403
3414
|
}
|
|
3404
3415
|
render() {
|
|
3405
|
-
return (hAsync("div", { key: '
|
|
3416
|
+
return (hAsync("div", { key: '71422b55533372a9d8697e648e49f87fe223f4e0' }, hAsync("slot", { key: '951511fd2090b9816c2e6c1a5a40169ea08e72fd', name: "start" }), this.shouldShowListbox() && (hAsync("ol", { key: 'e3f6f14686bc99b6e25d34d8e053f01174f23438', role: "listbox", id: "listbox" }, this.options.map((option, index) => (hAsync("li", { role: "option", id: option.id, "aria-selected": this.currentIndex === index ? 'true' : 'false', tabindex: "-1", onClick: () => this.handleOptionClick(index), innerHTML: option.html })))))));
|
|
3406
3417
|
}
|
|
3407
3418
|
get el() { return getElement(this); }
|
|
3408
3419
|
static get style() { return pennlibsAutocompleteCss; }
|
package/hydrate/index.mjs
CHANGED
|
@@ -3163,7 +3163,7 @@ var registerHost = (elm, cmpMeta) => {
|
|
|
3163
3163
|
};
|
|
3164
3164
|
var styles = /* @__PURE__ */ new Map();
|
|
3165
3165
|
|
|
3166
|
-
const pennlibsAutocompleteCss = ":host {\n display: block;\n width: 100%;\n border-radius: 1.25rem;\n padding: 0;\n border-top: 0;\n position: relative;\n}\n\n[role=listbox] {\n position: absolute;\n margin-top: var(--pl-space-xs);\n background: var(--pl-color-bg-default);\n border-radius: 1.25rem;\n box-shadow: rgba(140, 149, 159, 0.3) 0px 8px 24px 0px;\n width: 100%;\n overflow: hidden;\n z-index: 1;\n\n display: flex;\n flex-direction: column;\n}\n\np {\n margin: 0;\n font-size: var(--pl-font-size-s);\n color: var(--pl-color-fg-subtle);\n padding: var(--pl-space-xs) calc(var(--pl-space-m) + var(--pl-space-2xs));\n font-size: var(--pl-font-size-s);\n order: 2;\n font-weight: 500;\n background: var(--pl-color-bg-subtle);\n border-radius: 0 0 1.25rem 1.25rem;\n\n display: flex;\n gap: var(--pl-space-s) var(--pl-space-l);\n flex-wrap: wrap;\n}\n\nol {\n list-style: none;\n margin: 0;\n padding: var(--pl-space-xs) 0;\n order: 1;\n}\n\n[role=option] {\n color: var(--pl-color-fg-default);\n padding: var(--pl-space-s) calc(var(--pl-space-m) + var(--pl-space-2xs));\n text-decoration: none;\n font-weight: 700; \n\n &:hover {\n cursor: pointer;\n }\n\n &:hover,\n &:focus {\n text-decoration-thickness: 2px;\n text-underline-offset: 2px;\n text-decoration: underline;\n }\n}\n\n[aria-selected=true] {\n text-decoration-thickness: 2px;\n text-underline-offset: 2px;\n text-decoration: underline;\n}\n\nmark {\n background: none;\n font-weight: 400;\n}\n\n.suggestion--border {\n border-bottom: solid 1px rgb(from var(--pl-color-fg-default) r g b / 0.2);\n padding-bottom: calc(var(--pl-space-2xs) + var(--pl-space-s));\n margin-bottom: var(--pl-space-2xs);\n}";
|
|
3166
|
+
const pennlibsAutocompleteCss = ":host {\n display: block;\n width: 100%;\n border-radius: 1.25rem;\n padding: 0;\n border-top: 0;\n position: relative;\n}\n\n[role=listbox] {\n position: absolute;\n margin-top: var(--pl-space-xs);\n background: var(--pl-color-bg-default);\n border-radius: 1.25rem;\n box-shadow: rgba(140, 149, 159, 0.3) 0px 8px 24px 0px;\n width: 100%;\n overflow: hidden;\n z-index: 1;\n\n display: flex;\n flex-direction: column;\n}\n\np {\n margin: 0;\n font-size: var(--pl-font-size-s);\n color: var(--pl-color-fg-subtle);\n padding: var(--pl-space-xs) calc(var(--pl-space-m) + var(--pl-space-2xs));\n font-size: var(--pl-font-size-s);\n order: 2;\n font-weight: 500;\n background: var(--pl-color-bg-subtle);\n border-radius: 0 0 1.25rem 1.25rem;\n\n display: flex;\n gap: var(--pl-space-s) var(--pl-space-l);\n flex-wrap: wrap;\n}\n\nol {\n list-style: none;\n margin: 0;\n padding: var(--pl-space-xs) 0;\n order: 1;\n}\n\n[role=option] {\n color: var(--pl-color-fg-default);\n padding: var(--pl-space-s) calc(var(--pl-space-m) + var(--pl-space-2xs));\n text-decoration: none;\n font-weight: 700; \n\n &:hover {\n cursor: pointer;\n }\n\n &:hover,\n &:focus {\n text-decoration-thickness: 2px;\n text-underline-offset: 2px;\n text-decoration: underline;\n }\n}\n\n[aria-selected=true] {\n text-decoration-thickness: 2px;\n text-underline-offset: 2px;\n text-decoration: underline;\n}\n\nmark,\nb {\n background: none;\n font-weight: 400;\n}\n\n.suggestion--border {\n border-bottom: solid 1px rgb(from var(--pl-color-fg-default) r g b / 0.2);\n padding-bottom: calc(var(--pl-space-2xs) + var(--pl-space-s));\n margin-bottom: var(--pl-space-2xs);\n}";
|
|
3167
3167
|
|
|
3168
3168
|
class Autocomplete {
|
|
3169
3169
|
constructor(hostRef) {
|
|
@@ -3183,10 +3183,23 @@ class Autocomplete {
|
|
|
3183
3183
|
}
|
|
3184
3184
|
componentDidLoad() {
|
|
3185
3185
|
this.setupInput();
|
|
3186
|
+
this.setupMutationObserver();
|
|
3186
3187
|
}
|
|
3187
3188
|
disconnectedCallback() {
|
|
3188
3189
|
if (this.blurTimeout)
|
|
3189
3190
|
clearTimeout(this.blurTimeout);
|
|
3191
|
+
if (this.mutationObserver)
|
|
3192
|
+
this.mutationObserver.disconnect();
|
|
3193
|
+
}
|
|
3194
|
+
setupMutationObserver() {
|
|
3195
|
+
this.mutationObserver = new MutationObserver(() => {
|
|
3196
|
+
this.options = this.parseOptionsFromDOM();
|
|
3197
|
+
});
|
|
3198
|
+
this.mutationObserver.observe(this.el, {
|
|
3199
|
+
childList: true,
|
|
3200
|
+
subtree: true,
|
|
3201
|
+
characterData: true
|
|
3202
|
+
});
|
|
3190
3203
|
}
|
|
3191
3204
|
parseOptionsFromDOM() {
|
|
3192
3205
|
const listbox = this.findListbox();
|
|
@@ -3247,7 +3260,6 @@ class Autocomplete {
|
|
|
3247
3260
|
handleInputEvent(event) {
|
|
3248
3261
|
const input = event.target;
|
|
3249
3262
|
if (this.isTrackedInput(input)) {
|
|
3250
|
-
// Reset active option when user manually changes input
|
|
3251
3263
|
this.currentIndex = -1;
|
|
3252
3264
|
this.openSuggestions();
|
|
3253
3265
|
}
|
|
@@ -3370,7 +3382,6 @@ class Autocomplete {
|
|
|
3370
3382
|
const active = document.activeElement;
|
|
3371
3383
|
return !((_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.contains(active)) && active !== this.getInput();
|
|
3372
3384
|
}
|
|
3373
|
-
// Input State Sync
|
|
3374
3385
|
syncInputState() {
|
|
3375
3386
|
const input = this.getInput();
|
|
3376
3387
|
if (!input)
|
|
@@ -3400,7 +3411,7 @@ class Autocomplete {
|
|
|
3400
3411
|
return this.showSuggestions && this.options.length > 0 && this.isInputFocused();
|
|
3401
3412
|
}
|
|
3402
3413
|
render() {
|
|
3403
|
-
return (hAsync("div", { key: '
|
|
3414
|
+
return (hAsync("div", { key: '71422b55533372a9d8697e648e49f87fe223f4e0' }, hAsync("slot", { key: '951511fd2090b9816c2e6c1a5a40169ea08e72fd', name: "start" }), this.shouldShowListbox() && (hAsync("ol", { key: 'e3f6f14686bc99b6e25d34d8e053f01174f23438', role: "listbox", id: "listbox" }, this.options.map((option, index) => (hAsync("li", { role: "option", id: option.id, "aria-selected": this.currentIndex === index ? 'true' : 'false', tabindex: "-1", onClick: () => this.handleOptionClick(index), innerHTML: option.html })))))));
|
|
3404
3415
|
}
|
|
3405
3416
|
get el() { return getElement(this); }
|
|
3406
3417
|
static get style() { return pennlibsAutocompleteCss; }
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@penn-libraries/web",
|
|
3
|
-
"version": "1.1.0-dev.
|
|
3
|
+
"version": "1.1.0-dev.6",
|
|
4
4
|
"description": "Reusable web designs for University of Pennsylvania Libraries websites. This package contains our code for shared Web Components and Cascading Style Sheets (CSS).",
|
|
5
5
|
"main": "dist/index.cjs.js",
|
|
6
6
|
"module": "dist/index.js",
|